收藏 分享(赏)

全球领先的-PLC-编程工具-CoDeSys-中文编程手册.pdf

上传人:weiwoduzun 文档编号:3554495 上传时间:2018-11-13 格式:PDF 页数:32 大小:1.38MB
下载 相关 举报
全球领先的-PLC-编程工具-CoDeSys-中文编程手册.pdf_第1页
第1页 / 共32页
全球领先的-PLC-编程工具-CoDeSys-中文编程手册.pdf_第2页
第2页 / 共32页
全球领先的-PLC-编程工具-CoDeSys-中文编程手册.pdf_第3页
第3页 / 共32页
全球领先的-PLC-编程工具-CoDeSys-中文编程手册.pdf_第4页
第4页 / 共32页
全球领先的-PLC-编程工具-CoDeSys-中文编程手册.pdf_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、 2目 录 1概述和基本概念3 1. 编程对象 ( POUs ).3 2. 资源对象 (设备树)3 2创建并运行一个工程.4 启动CoDeSys并创建一个工程.4 (1) 启动 CoDeSys4 (2) 创建工程4 编写PLC程序.6 (1) 在PLC_PRG中声明变量.6 (2) 在PLC_PRG的实现部分输入程序代码.7 (3) 创建编程POU ( 用ST语言编写功能块FB1).8 为在PLC上运行和控制程序,定义资源对象.9 (1) 启动Gateway Server和PLC.9 (2) 激活“应用”9 (3) 设置通讯参数10 在PLC中运行并查看应用.12 (1) 编译并将应用程序下载

2、到PLC.12 (2) 启动和监控应用程序13 在PLC上启动应用程序:.13 监控应用程序.13 (1) 打开程序的示例窗口13 (2)写入和强制变量 (3)使用监控视窗 调试程序.15 (1) 设置断点并单步执行程序15 3CoDeSys V3 快速入门.17 使用CoDeSys V3来编写一个控制车库门的程序.17 CoDeSys V3 快速学习 1/6.17 CoDeSys V3 快速学习 2/6.18 CoDeSys V3 快速学习 3/6.21 CoDeSys V3 快速学习 4/6.22 CoDeSys V3 快速学习 5/6.26 CoDeSys V3 快速学习 6/6.28

3、下载基于CoDeSys V3的整个工程的应用程序.32 231概述和基本概念 CoDeSys是一种与设备(硬件)无关的可编程控制器(PLC)编程系统。CoDeSys不仅完全支持所有符合IEC 61131- 3标准的编程语言,同时还支持C语言等高级编程语言。与CoDeSys实时运行系统(Runtime System)结合后,可以在一个工程(项目)中对多个控制器(设备)进行统一配置和编程。 使用CoDeSys编程时,请留意下列基本概念: 面向对象的编程: CoDeSys V 3.4中,在编程元素、编程特性、工程结构、版本管理等各个方面都体现了面向对象进行编程的重要思想。可以通过联合、实例化来实现在

4、一个工程中的多设备编程和多应用编程。因此,开发者可以在同一个设备上运行多个应用程序、可以对应用进行拷贝、可以在一个工程中混合配置参数型的和可编程型的硬件(系统)。 基于组件的编程系统结构: 在用户界面中(例如编辑器和菜单等)可以使用的功能,是由在配置文件中定义的所使用的组件(插件)来决定。组件又分为系统组件和可选组件,其中系统组件是必需的基本组件。除了德国3S软件公司提供的这些组件之外,用户还可以使用CoDeSys自动化开发平台工具包(CoDeSys Automation Platform Toolkit)来创建自定义的组件。 版本管理: 在CoDeSys中可以同时安装一个组件的多个版本,并且

5、可以组合使用这些版本,编译器也可以安装和使用多个版本;而且无需更新整个版本就可以新增独立的功能。 工程(项目)的组织方式也同样采用了面向对象的方法: 在CoDeSys工程中,包含了由各种编程对象组成的PLC程序对象,还包含了在目标系统(硬件设备)上运行PLC程序时需要的“资源”对象。 由上所述,在一个工程中有两类主要的对象: (1)编程对象 (POUs): 编程对象POU包括程序、函数、功能块、方法、接口、动作、数据类型定义等。 在“POU窗口”中管理的编程对象,在整个工程范围内都有效,且可以被工程中所有的“应用”通过任务配置来调用,即实例化。在“设备窗口”中管理的编程对象(即针对特定应用的编

6、程对象),只能被本应用来使用,或被本应用的“子应用”实例化后使用。 (2)资源对象 (设备树): 资源对象包括设备对象、应用、任务配置、配方管理等。资源对象只能在设备窗口中进行管理,即只能在设备树中进行管理。在设备树中添加对象后,需要按一定的“规则”与被控设备进行映射。对象(如库和GVL等)在工程中的有效范围,会依据设备树中应用和设备对象的层级关系而定,一般来说,一个应用中的对象对其“子应用”也有效,可以被使用。 由集成的编译器生成代码,并使用机器码以便加快执行时间。 34 与控制器设备之间的数据传输:在CoDeSys与目标设备之间,通过Gateway组件和实时运行系统(Runtime Sys

7、tem)进行数据的传输。提供了完善的在线功能对设备程序进行实时监控。 2创建并运行一个工程 以下部分介绍了如何创建一个包含PLC程序的简单工程,以及如何通过Gateway Server将这个程序加载到PLC(目标设备)硬件上,运行并监控此程序。CoDeSys安装程序中缺省提供了用于该示例工程的PLC实时运行系统。 示例程序用结构化文本(ST)语言编写,包含一段程序:PLC_PRG,和一个功能块:FB1;PLC_PRG中包含一个计数器变量ivar,并调用功能块FB1;FB1从PLC_PRG中得到输入值“in”,在这个输入值上加“2”,并将结果输出到out,由PLC_PRG读out。 (注意:下列

8、关于用户界面的默认配置说明由当前安装的软件版本提供) 启动CoDeSys并创建一个工程 (1) 启动 CoDeSys 从开始菜单选择 程序 3S CoDeSys CoDeSys CoDeSys V 3.4 或者双击桌面上的图标 启动CoDeSys。(之后,系统要求用户选择配置文件,点击“继续”后,打开CoDeSys的用户界面) 系统将自动按照预定义配置文件启动,所以事先不需要选择配置文件。 (2) 创建工程 在文件菜单中选择新建工程命令,用来创建一个新的工程。 45在新建工程对话框模板区选择标准工程,并为工程文件输入名称及本地路径,点击“确定”后向导对话框打开,如下图所示: 设备选择“CoDe

9、Sys SP Win V3 (3S-Smart Software Solutions GmbH)”,PLC_PRG的编程语言选择“结构化文本(ST)”。点击“确定”保存配置。 56工程名显示在CoDeSys用户界面的标题栏上,同时作为POUs视窗和设备视窗中的一个根节点符号。 POU视窗包含工程设置。 设备视窗显示一个CoDeSys SP Win V3类型设备树,显示“设备 (CoDeSys SP Win V3)”及其包含的应用。 其中,应用包括: PLC_PRG:程序由结构化文本编辑; 任务配置:用来定义控制PLC_PRG程序的“MainTask”; 库管理器:包含“I/O Standard

10、.library”及“Standard.library”;“I/O Standard.library”用来进行I/O配置;“Standard.library”提供所有符合IEC 61131- 3标准的所有函数和功能块,作为IEC编程系统的标准POUs。 (此时,“设备(CoDeSys SP Win V3)”节点下的“Plc Logic”节点无实际意义,仅是一个符号节点,指示该设备是“可编程”的。) 选择设备名符号节点,点击空格键,进入编辑状态,输入其他名称替换“Device”,可以对设备名重新命名。 编写PLC程序 (1) 在PLC_PRG中声明变量 在设备视窗中,缺省POU为“PLC_PRG

11、”,双击设备树中“PLC_PRG”,自动在CoDeSys用户界面中部的ST语言编辑器中打开。 ST语言编辑器包含声明部分(上部),实现部分(下部),由一个可调的分割线分开。 67声明部分包括:显示在左侧边框中的行号、POU类型和名称(如“PROGRAM PLC_PRG”) ,以及在关键字“VAR”和“END_VAR”之间的变量声明。 实现部分是空,仅显示行号1: 在编辑器的声明部分,将光标移到VAR后,点击回车。插入新的空行,声明INT类型变量“ivar” ,INT类型变量“erg”,FB1类型变量“fbinst” PROGRAM PLC_PRG VAR Ivar: INT; Fbinst:F

12、B1; Erg: INT; END_VAR 另外,也可以使用自动声明功能,在编辑器执行部分直接输入指令,详见第(4) 部分。 (2) 在PLC_PRG的实现部分输入程序代码 ivar := ivar+1; / counter fbinst (in:=11, out=erg); / call function block of type FB1, / with input parameter “in“ / output is written to “erg“ 78代替第(3)步,第(4)步介绍可以使用自动声明功能:在程序的实现部分输入指令,点击回车,如果在新一行中有未声明的变量,则系统打开自动声

13、明对话框,在此可以进行声明设置。 变量名称、范围及当前POU(对象)将自动添加。根据(3)中声明描述的输入需要的类型和初始值。注意:如果在自动声明对话框中定义注释内容,不需要插入“/ ”,而是以在声明部分以XML格式描述,以便以后作为文档使用。 点击“确定”关闭对话框。在POU的声明部分,erg变量声明之前插入其注释。 (3) 创建编程POU(用ST语言编写功能块FB1) 我们可以再创建一个功能块:FB1,其功能是在输入变量“in”上加“2”,将结果输出到“out”。 从工程菜单中选择“添加对象”命令。 在“添加对象”对话框左侧选择“POU”,输入POU名称:FB1,在类型选项中激活“功能块”

14、选项。 方法实现语言选择“结构化语言(ST)”。 点击“打开”按钮确认对象设置。 用于新功能块FB1的编辑窗口打开。与PLC_PRG的变量声明一样,在此对以下变量声明:FUNCTION_BLOCK FB1 VAR_INPUT in:INT; END_VAR 89VAR_OUTPUT out:INT; END_VAR VAR ivar:INT:=2; END_VAR 在编辑器实现部分输入以下内容: out:= in+ivar ; 为在PLC上运行和控制程序,定义资源对象 (1) 启动Gateway Server和PLC 启动Gateway Server: Gateway Server作为服务程序

15、在系统启动时自动启动,请确认在系统托盘处是否有指示Gateway Server运行的图标 。如果图标为 ,则表明Gateway Server当前未启动。 (这个图标是Gateway Sys Tray程序的一部分,Gateway Sys Tray用来控制和监视Gateway Server,图标右键菜单提供“启动”和“停止”命令,因此允许用户手动停止或者重启程序。Gateway Inspector功能目前尚未实现。使用菜单中的“退出Gateway Control”命令,可以退出Gateway Sys Tray程序。Windows启动时, Gateway Sys Tray程序会自动启动,也可以通过程

16、序菜单手动启动。) 启动PLC: 系统启动时,PLC(CoDeSys SP Win V3)作为服务程序在系统启动时自动启动。其图标会显示在系统托盘中, 代表“停止”状态, 代表“运行”状态。若系统许可,PLC服务程序将在系统启动时自动启动。否则需要手动点击图标右键菜单中的“启动PLC”命令启动服务。 (这个图标是程序CoDeSys SP Sys Tray的一部分,CoDeSys SP Sys Tray用来控制和监视CoDeSys SP server,图标右键菜单提供了“启动”和“停止”命令,因此允许用户手动停止或者重启程序。使用菜单中“退出PLC Control”命令,则退出CoDeSys S

17、P Sys Tray程序。Windows启动时, CoDeSys SP Sys Tray程序会自动启动,也可以通过程序菜单手动启动。) (2) 激活“应用” 点击Standard project 设备视窗中的MainTask,打开包含任务设置的编辑器视图,则如下图所示: 910在设备视窗中,“Application”显示为黑色字体,表明该应用处于激活状态。这样,所有与PLC通讯相关的命令和动作都关联于该应用。在设备视窗中选择应用,从右键菜单中选择 “设置当前的应用” 命令将激活此应用。 (3) 设置通讯参数 在设备视窗中双击Device (CoDeSys SP Win V3),打开通讯设置子对

18、话框。根据以下步骤,可以在此处安装PLC (目标设备)和编程系统的连接。连接将被输入到“给控制器选择网络路径”的下一行。 如果第一次使用CoDeSys V 3.4进行通讯设置,您首先需要设定本地Gateway Server。 (如果之前已经设定过服务程序,则其设置如下图“现在定义” 中通讯设置对话框所示。这样,可省略该步,并继续定义目标通讯通道,也可参见下面的“现在定义”部分。) 该服务程序由CoDeSys安装程序提供。点击“添加网关”按钮打开Gateway对话框: 1011 为网关输入名称,驱动器选择“TCP/IP”,IP地址设置为“local host”(鼠标双击相应列,打开编辑框),端口

19、不用设置,点击“确定”关闭对话框。 网关被添加到通讯对话框左侧,网关名称被添加到“给控制器选择网络路径”选项列表。当网关正常运行时,Gateway前面会显示绿色圆点,红色则表示异常。 现在确认通过网关设置与目标设备的通道是否被连接: 点击“扫描网络”按钮,可以在本地网络上搜寻可用的设备。 至少可以查找到与CoDeSys同时安装的PLC:该PLC在Gateway下缩进显示:在下图中的类似“WST06 003C”的位置会显示您的计算机名称和地址。若未找到PLC,请检查其是否正在运行,请参见第(6)步。 1112选择PLC(设备)项,点击“设置使用路径”。 该操作会激活通讯通道设置,也就是所有与通讯

20、相关的操作将与该通道关联。当工程中设置多个通讯通道时,请注意这点。 点击“确定”关闭通讯对话框并应用设置。 在PLC中运行并查看应用 (1) 编译并将应用程序下载到 PLC 如果只检查“激活”应用程序中的语法错误,点击“编译应用”命令(右键菜单,编译菜单)或者使用快捷键 。注意:这种情况下并不产生代码。信息窗口中会显示消息、警告和错误信息,默认的信息窗口在用户界面的底部。即使并未进行过语法检查,仍可以登录到PLC。(首先要确定PLC正在运行,系统任务栏的图标是高亮的)。 选择在线菜单的“登录到应用”命令。如果已经按第(8)步中的描述进行了通讯设置,以下信息框会出现(否则您会被询问更正通讯设置)

21、: “在目标设备中没有应用程序,是否想要创建和继续进行下载?” 1213点击“是”启动应用的编译和下载。信息窗口显示编译信息。如果工程正确创建,不会出现编译错误,此时应用被启动,请参见第(10)步。 (2) 启动和监控应用程序 正如前面步骤所描述的,创建“standard project”,下载至“应用”(已编译无错),设备“CoDeSys SP Win V3”的应用被启动 : 在PLC上启动应用程序: 点击在线菜单中的“启动”命令,程序开始运行,在用户界面的底部状态栏会显示一个绿色的“运行”标志。 监控应用程序 使用以下三种方法,可以监控应用程序中的变量: 1. 包含已定义监控列表的监控窗口

22、; 2. 写入和强制变量; 3. 特殊POU的在线视图; (1). 打开程序的示例窗口 POU的示例视图提供了该示例的所有监控表达式,并在声明部分以表格显示,若激活“在线监控”功能,在实现部分也同样会显示。 双击在设备窗口里的执行程序“PLC_PRG”,或选择该项右键菜单点击 “编辑对象”命令,打开在线视图,出现如下对话框,显示所有PLC_PRG 的示例(该例中仅一个) : 1314这里,可以选择POU以在线模式或是离线模式进行查看。在当前示例中,默认设置为在线模式,点击确定关闭对话框。 PLC_PRG在线视图被打开(如下图):上半部分显示对应于PLC_PRG实现部分视图的程序主体,由每一个变

23、量后的内部监控窗口显示实际的值。上半部分显示 PLC_PRG的监控表达式,如:在PLC的“应用”中的各自变量当前值。 (2). 写入和强制变量 可以通过写入或强制的方式将某一“预设值”“准备值”赋给变量ivar,意思是表示在下一周期开始,变量ivar将显示为该值。在预值栏的区域双击鼠标左键激活输入框,输入所需整数1415的值,单击(点击)回车或者该区域外部,关闭此输入框。 执行命令“写入值”或者“强制值”命令,将写入值或强制值下装到PLC。在准备值的窗口中可以立刻看到结果。 (3). 使用监控视窗 监控窗口可用于配置特定的监控表达式,例如:调试目的。 打开视图菜单,选择监控 - 监控1命令,打

24、开监控窗口。 鼠标点击表达式的第一行,打开编辑框,输入要监控的变量ivar完整路径:“ PLCWinNT. Application .PLC_PRG. Ivar ”。 建议通过输入助手按钮实现该功能,点击回车,关闭编辑框,变量类型将自动添加到表格。 该操作对其他变量同样适用。下图显示的监控列表只包含PLC_PRG的表达式,也可以在工程中创建任意一组变量。注意示例变量中:例如,对于FB1 的示例变量,输入表达式“MyPlc . Application . PLC_PRG . fbinst”就可以了。将自动加入特殊变量,点击加号,可以打开与其相关联的行:在“值”列显示当前变量的值: 如果尚未完成,

25、选择在线菜单上的“启动”命令。PLC上将启动应用程序,当前值显示在“值”对应的列中: 此处也可以对变量进行写入和强制值(同2中的介绍)。 点击在线菜单中的“退出”命令,与PLC断开连接 调试程序 (1) 设置断点并单步执行程序 在线模式下,可以设置断点,定义程序执行的暂停位置。 程序到达一个断点时,可以逐步执行程序。在每个停止位置,都可以在监控视图中查看变量的当前值。 请尝试以下步骤: 1516选择PLC_PRG的第一行,按功能键或者从在线菜单中点击“切换断点”命令,断点显示在相应位置。 如果应用程序当前处于“停止”状态,如下图所示: 如果应用程序当前正在运行,它将在新的断点处停止: 使用功能

26、键或者从在线菜单中选择“跳入”命令,进入到功能块示例中。按功能键键或者从在线菜单中选择“跳出”命令,可以跳出功能块。PLC中每个变量的当前值都会显示出来。 通过视图菜单中的“断点”命令打开断点对话框查看。此处,除可以查看和编辑断点的当前设置外,还可以输入新的断点。 注意:在退出时,断点位置会被保存,并由浅红色圆点指示。 16173CoDeSys V3 快速入门 使用CoDeSys V3来编写一个控制车库门的程序 在下面的描述中,我们将向您展示:使用CoDeSys V3编写一个简单的自动化工程是如此的容易。 首先,我们先让您熟悉一下这个真实的工程任务。为了让您更快地掌握它,我们将这个工程分为多个

27、容易实现的单元。我们将和您一起:一步一步地编写这个应用程序,您也可以在这个教程的最后来下载整个工程。一般来说,按照正常的学习速度,您可在30到60分钟内就可完成这个工程项目。 祝您好运! 同时,我们非常荣幸能得到您的反馈信息。如果您有任何疑问或建议,请直接联系我们: 友情提示:此应用程序仅能做示例之用,禁止用于工业现场或实际应用。 CoDeSys V3 快速学习 1/6 工程任务: 使用CoDeSys V3 SoftPLC来控制一个标准的车库门。 任务描述: 如果用户按下控制按钮(驱动),车库门根据当前的状态,执行由开门到关门,或者由关门到开门的动作。在此过程中,控制器激活相应的执行部件(升门

28、/ 降门),直到传感器(门开 / 门闭 / 门过载)报告门已达到了最终位置,或有错误发生,终止了门的开闭过程。再次按下控制按钮,用户可以随时手动停止车库门。在车库门开启或者关闭的过程中,车库内顶灯会自动打开,经过一定的时间间隔后,顶灯会自动关闭。任何错误的发生,比如车库门过载,或者车库门开或关的时间过长,当前动作立即中断,顶灯开始闪烁,直到再次按下按钮。 1718CoDeSys V3 快速学习 2/6 工程配置: 让我们开始学习。双击CoDeSys V3的图标。 请注意:不同的安装版本,图标有不同的标题。 CoDeSys V3是基于.net平台,当CoDeSys V3启动的时候,这个安装版本的

29、所有需要的的组件都要进行初始化。在此期间,您可以关注一下窗口中的进度条。 我们可以看到,屏幕左边是空的项目树窗口,由设备标签(device tab)和程序组织单元标签(POU tab)组成。由于这个例子中,我们不需要任何独立于设备的POUs,所以我们可以暂时忽略程序组织单元标签。在右手边,我们可以看到一个属性窗口和一个工具箱窗口。属性窗口暂时不需要,可以关闭。位于屏幕底部的是消息窗口,将会显示一些有用的信息,主要是编译报错信息。 因为CoDeSys V3的窗口布局可以按照用户的特定需要来布置,所以可以和上面描述的布局不同。当你打开 CoDeSys 窗口时,可能是两个独立的窗口(Devices,

30、POUs)就像上面的图片一样出现在屏幕的左手边,而不像上面描述的是单一的对象树和两个标签页。这两个独立的窗口可以分别放置、缩放和关闭。在菜单视图下,我们可以打开所有的窗口。通过打开菜单“工具 / 定制化”,然后点击“恢复到默认状态”,可以恢复到CoDeSys V3刚打开时的默认布局。 1819点击菜单“文件/ 新建工程”或者图标 我们可以打开一个工程向导。 在这个对话框中,我们可以选择一个标准的工程,为其命名,并决定存储位置。 为了能够生成这个标准工程,我们必须告诉CoDeSys,我们打算使用什么样的目标设备和选择哪种IEC 61131- 3的编程语言来编写我们的主要任务。在我们的车库应用程序

31、中,我们将使用功能模块图语言(FBD)。我们将选择软PLC “CoDeSys SP Win V3”来作为目标设备,CoDeSys SP Win V3可以安装后自动启动。我们或许需要检查一下,软PLC的版本是否和编程系统的版本是对应的。一般来说,这是由系统自动来做的。Windows 任务栏中的图标 告诉我们软PLC 已经激活。如果软PLC 的图标是灰色的( ),这是由于演示模式(DEMO)下的运行系统的运行时间是 2 个小时,运行 2 个小时后自动停止了。这时,您只需用鼠标右键点击软PLC的图标,然后点击“启动PLC”即可。 1920现在向导创建的对象树的基本配置如下: 这棵对象树包含一个带有

32、MainTask 的任务配置,这个任务配置包含在主程序 POU PLC_PRG中。通过双击自动创建的MainTask,我们可以在打开的窗口中设置间隔的扫描时间,来满足我们的需求。 为了把我们电脑上的软PLC与编程系统CoDeSys V3连接起来,我们现在必须双击对象树中的设备图标 2021如果“Gateway-1”没有自动出现在设备窗口中,请单击按钮“添加网关”。现在我们选择左边的网关服务器(gateway sever),点击右边的“扫描网络”,运行在我们PC上的软PLC就出现在网关服务器的目录树下。现在我们选择这个条目,点击按钮“设置使用路径”。被选的设备例如运行在我们的PC上的软PLC现在

33、会以粗体显示,并已经连接到编程系统。现在工程配置已经成功设置,我们可以关闭设备窗口了。 CoDeSys V3 快速学习 3/6 变量声明 在我们的例子中,我们计划在全局变量列表中声明输入和输出变量。如果我们右键点击应用程序的图标 ,选择“添加对象”,我们就可以增加不同的对象到我们的应用程序中。我们将选择“全局变量列表”并命名为“仿真信号”。 2122需要声明输入变量是 DoorOpen,DoorClosed,DoorOverloaded(用作传感器)和Actuation(用作控制按钮)。需要声明的输出变量是DoorUp 和DoorDown作为驱动,Lighting作为灯的驱动。 所有的I/O变

34、量都是布尔类型变量。 CoDeSys V3 快速学习 4/6 车库门控制的编程 编写应用程序的第一件事情就是双击设备树中的主程序单元POU“PLC-PRG”来打开主程序编辑器。 首先,我们将编写打开车库门这一部分的应用程序,我们将使用一个变量功能块来实现它。 2223我们可以从工具箱窗口中选择RS功能块(在功能块的目录中)将其拖到POU编辑器中的指定位置(“Start here”)。该功能块初始化后,分配到一块内存区域,在功能块的上部有 “?”的地方书写该实例的名字。写完名字后,我们只要一按回车键,变量自动声明的对话框就会自动打开。实例的名字和变量类型(如这个功能块RS)就已经输入好了。通过点

35、击OK按钮,声明就会传到POU PLC_PRG的本地变量声明区(在FBD编辑器的上部)。 通过使用 RS 功能块,只要设置功能块的输入端发送所需的条件比如来自控制按钮的上升沿,执行部件DoorUp就能很容易闭锁。在设置输入端输入控制按钮变量Actuation。在输入端的三个问号上输入变量的第一个字母时,CoDeSys的智能输入就列出了所有可用的变量,变量Actuation就可以从列表中选择一个回车输入。 在标记了输入后,通过按F2在线帮助键可以实现同样的效果。和前面相同,我们仅仅需要 2324从全局变量的目录中选取我们想要的变量。 当控制按钮没有被按时,布尔变量Actuation的值为假,按下

36、去时,变量值为真。这就意味着这个变量是一个上升沿。为了确保输入的是一个上升沿,我们可以使用FBD编辑器集成的沿检测功能。通过点击输入前的标记,激活工具条,点击工具条中的沿信号。图标 表示为上升沿,再点击一次变成下降沿。 为了确保控制按钮按下时车库门不是每次都会打开,我们必须引入一个附加变量,用来表示门正在朝上移动,或者在朝下移动:仅当NextUp为真时,门可以被打开。这个新的布尔变量,就像功能块实例一样,使用自动声明对话框来声明,和先前的变量Actuation是与(and)的关系,输入这个功能块。可从右侧工具箱/布尔操作符的列表中,点击操作符AND(2输入)拖到功能块的输入设置(Replace

37、方框)位置即可实现。控制按钮变量Actuation自动移动到AND操作符的第一个输入端。功能块的I/O前的钻石符显示了可能的插入点。如果你把操作符放在绿色钻石附上,则操作符就插入到这个地方。下一步,我们将连接变量DoorOpen到RS块的输出Q1上。鼠标右键点击输出端,选择命令“插入输出”。在“?”的地方,输入变量。 2425由于有三种可能的原因停止车库门打开的过程,所以我们放置一个OR操作符(3输入)在RS功能块的RESET1输入端。三种可能的原因被连在OR操作符的输入端:DoorOpen传感器报告车库门已经到达它的最高位置。这个变量已经被声明,可以直接连接到OR操作符的输入端。用户按下控制

38、按钮的同时,执行部件DoorUp被激活。通过插入一个AND操作符(2输入),连接控制按钮变量Actuation(带有沿检测),变量DoorUp连接到操作符的输入端,来查询这种情形。由于驱动过载,或者过长时间的Door-up或者Door-down都会引起错误。这个错误需要用到第二个附加变量,并且在自动声明的对话框中声明为一个布尔变量。 现在我们的第一个网络完成如下: 第二个网络将负责关闭车库门,因此几乎和第一个网络是相同的。我们可以通过点击编辑器的左侧选取并且复制粘贴第一个网络,或者也可以在选取第一个网络后,使用快捷键“Ctrl+C” 和“Ctrl+V ”。这样,第二个网络现在就出现在第一个网络

39、中。当然,我们现在需要将负责开门的变量替换为负责关门的变量: 同样重要的是,负责辨识车库门上移,还是下移的变量必须取反。这需要单击NextUp后边的横线,然后工具栏中的 从插入到横线上。第三个网络用来设置附加变量,来负责辨识门是在上移还是下移,使用变量NextUp。通过从工具箱目录常规拖拽新网络插入并且放置在现存网络的下方。首先,我们可以将熟悉的RS功能块插入到这个网络当中。通过在功能块的上方输入实例名字“RS Next Direction”来初始化该功能块,我们将变量 NextUp放置在输出端。因为智能输入功能的支持,只要输入首字母,我们可以得到一个备选变量的2526列表,供我们选择。先前的

40、动作可以推测出后来可能发生的动作:例如,如果执行部件DoorOpen,负责打开车库门的部件,发出一个下降沿(逻辑值由真到假),我们就知道了车库门打开过程结束。因此,下一个动作将是车库门的关闭。可以将一个带有下降沿检测的变量 DoorDown来激活这个沿检测,并且将这个变量插入到这个 RS功能块的输入设置端(通过双击工具条中沿检测符号 可以变为下降沿检测符号)。同样的做法可以应用在DoorUp上,将该变量插入到RESET1输入端。 所有需要控制车库门的步骤都已经完成。现在仍缺少的就是灯光的控制和对车库门错误监控的控制。 CoDeSys V3 快速学习 5/6 关于错误监控和控制灯光的编程 当我们

41、编程第一个网络时,我们引入了变量Error,用来报告错误和车库门的停止。这个变量可以如下编程: 当传感器变量DriveOverload设置为真的时候,或者开关车库门的时间超过了20秒的时候,就会有错误发生。为了重现上述的情景,我们需要在一个新网络中插入一个OR的操作符。这个OR的操作符的输出端设置为变量Error。可以通过鼠标单击输出端,并且点击工具条中的“Set / Reset”按钮,直到一个S出现在输出管脚上。这样的话,连在管脚上的变量就可以通过点击“Set / Reset”按钮来复位。 该功能块的第一个输入将分配为传感器变量DriveOverload。 为了能够检测开关门的最大时间跨度是

42、否被超过了,我们需要一个时间监控机制。恰好我们从工具箱引入了功能块TON(Timer On Delay延时通),并且将它初始化命名为Monitor。 一个布尔为“真”的量连接到该模块的输入端,在过了一定预置时间(PT)后,布尔量“真”就被写入到Q输出端。但是,如果在预置的时间段之内,输入端IN转换到“假”,那么输出仍旧保持“假”。 2627一旦我们的车库门开始移动,例如开或者关(执行变量DoorUp / DoorDown代表这两个动作),TON功能块就开始工作。在正常的操作中,两个传感器变量DoorOpen或者DoorClosed中的一个将在10-20秒内结束门的运动。执行部件变量设成“假”,

43、定时器模块的输出也保持“假”,没有错误报告。如果整个流程占用的时间超过了20秒,TON模块的输出Q就会变为“真”,并且报错。TON功能块的第二个输出ET(消逝时间),是用来报告从定时器开始工作所消逝的时间。由于在我们的实例中,我们不需要这个输出,我们可以通过鼠标左键单击输出管脚选中,按Del键将这个管脚删除即可。既然时间监控机制应用于两个执行部件变量,我们将在这两个执行部件变量和TON功能块中间插入一个OR操作符。 输入预设的时间量的时候,必须按照IEC 61131- 3的格式:“T#”需要作为时间规范的前缀。 用户可以通过按控制按钮Actuation来复位错误。为了实现我们的应用,我们必须创

44、建一个新网络。一种方式是从工具箱的的常规菜单来拖出实现,另一种是在最后一个网络左边的内容菜单,点击右键,选择“插入网络(下方)”。一旦我们创建了新网络,我们现在就能输入一个新任务到这个网络里。有三种方式来输入这个新任务:从工具箱的常规菜单中拖出,鼠标右键打开智能选择菜单,或者使用快捷键“Ctrl+A”。 变量Actuation写到任务的输入端,它的值分配给变量Error。但是在这个案例中,变量Error必须可以重置,所以我们必须在输出端设置“Reset”R (从工具条中拖出,或者使用鼠标右键,或者使用组合键 “Ctrl+M”)。 应用程序的最后一个网络是负责开灯的。如同以上所写,当车库门打开或

45、者关闭的同时,车库门的灯会自动打开,持续一段时间后关闭,比如10秒钟。这就意味着,我们需要另外一个定时功能块。因为我们在一定的时间段之后,我们需要关闭布尔信号,因此我们需要功能块TOF(Timer Off Delay延时断)。把TOF功能块拖入网络后,我们必须把该功能块实例化,命名为“T1”。在我们的例子当中,ET管脚仍然没有用,可以直接删除了。 在TOF功能块的输出端赋值变量lighting,将上述的时延10s按照IEC 61131- 3的格式填写到输入端PT。输入端IN可插入OR运算符,可以通过工具箱拖拽,也可用鼠标右键选取,也可使用组合键“Ctrl+B”。执行部件变量DoorUp和Doo

46、rDown直接与OR运算符的两个输入端相连。第二个输出端ET代表已经消逝的时间,在本例子当中没有什么作用,可以鼠标单击选中,直接按Del键把这个管脚删除。 我们现在也完成了车库门驱动无故障操作的灯光控制。 2728为了能在同样的网络里实现我们的错误情景,我们必须在变量Lighting之前放置OR操作符。这个OR操作符使得为现存网络增加一个新线程的可能性,这个网络主要负责错误发生的处理。另外一个线程仅在无故障操作的时候需要。所以,我们现在需要在OR操作符的每一个输入端连接一个AND操作符。第一个AND 可以插入到现存的现场中,正常的操作下,控制灯光之前。第二个 AND 的输入分配给一个取反的变量

47、 Error。结果就是,如果没有错误发生,整个线程将仅仅影响输出灯光控制。 在我们的负责错误的步骤中的 AND 操作符的第二个输入也分配给变量 Error,但是这次不用取反符号。结果是,如果错误确实发生,整个过程将仅仅输出灯光控制。在负责错误的线程中的AND 操作符的第一个输入需要灯光闪烁,所以我们串接了两个TON 功能块。左边TON 功能块的输出连接着右边 TON 功能块的输入,右边功能块的输出依次连接着我们的AND操作符的第一个输入。两个TON的预定时为1s,ET管脚删除。当然,我们必须实例化两个模块为T2和T3。左边TON的输入管脚IN是右边TON的输出管脚的值。要实现这种方法,可以在左

48、边的第一个输入管脚处输入右边TON功能块的实例名T3.,CoDeSys就知道了我们现在想使用功能块TON数据结构中的一个变量,智能输入窗口就会列出T3所有的变量供我们选择。 在正常工作或者错误操作下的,控制灯管的网络已经完成。这也意味着我们成功的编写了我们的应用程序 CoDeSys V3 快速学习 6/6 测试应用程序 现在我们完成了整个车库门应用程序的编写,我们需要做些测试来确保每个功能都是正确的。但是我们没有一个真正的带有车库门驱动以及所有传感器和执行部件,我们只能人工仿真这个应用程序。CoDeSys提供了一整套完善的、综合的调试功能来帮助我们测试应用程序。 2829首先,我们登录控制器,

49、下载应用程序。这个过程中,CoDeSys使用集成的编译器,将图形 FBD 代码翻译成真正的机器代码,这些可以运行在多种不同的 CPU 和操作系统之上。而示例中运行在PC上的软PLC是我们在编程之前就在工程配置当中配置好的(参见单元2 中工程配置)。当然,我们可以将我们的应用程序运行在任何可以使用 CoDeSys 编程的设备和控制器上。我们可以从菜单“在线”选取命令“登录应用程序 名称 ”。CoDeSys开始检查应用程序是否已经运行在目标设备(软 PLC)上了;如果没有应用程序在运行,那么会跳出一个对话框,“设备上没有应用程序,你想创建并且下载应用程序吗?”如果你确认了这个对话框,CoDeSys就编译这个应用程序并且下载到目标设备上。在编程窗口的底部的左手边进度条会显示程序代码的编译下载状态。 只要下载顺利地结束了,下列状况和事项就会发生: 我们创建的应用程序的 FBD 编辑器的代码部分从编辑模式变为了在线模式,所有变量的当前值都会显示出来。 所有编辑器的变量声明部分都变为了在线模式。现在我们不能再编辑变量声明部分,但是所有的变量值都可以显示,也可以被改变(这种功能可以用来测试我们的应用程序)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 产品手册

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报