twincat plc 编程手册plc怎么生成boot

当前位置: >>
twincat操作步骤
Twincat 操作步骤 1.进入 Properties 2.设置 AMS Router3.进入 System Manager,进入 choese Target ,添加设置好的 system 表明已连接到 PLC4.进入 PLC control,打开相应程式 5.进入 LOG in 状
态6.修改程序后,需要按下 crl+F7 进行程式的烧录 7.点击 Creat bootproject 将更改的程序考入 PLC 8.点击 reset all 9.log out 退出。
TWINCATPLC程序下载步骤_计算机软件及应用_IT/计算机_专业资料。图1 图2 图3 ...程序下载的操作步骤 3页 1下载券
程序下载步骤 5页 1下载券
程序下载流程...TwinCAT软件安装FAQ_电脑基础知识_IT/计算机_专业资料。目录 Q:在 PC 上安装 ...A:方法一:按以下步骤进行操作,手动删除注册表里相应的键值。 开始,运行,输入:...TwinCAT3 安装在 64 位操作系统上的时候,运行 PLC 没什么问题,但如果要运行 matlab-simulink 或者 C++则需要安装测试证书, 以下步骤就是教大家如何正确安装数字...TwinCAT 无法正常安装的处理方法 概述 该文档用于在安装 TwinCAT 时, 提示: ...方法一:按以下步骤进行操作,手动删除注册表里相应的键值。 方法二:直接执行附件...(如果没有弹出自己再次点击 FULL 安装包) 随后操作步骤和 3-7 一样 开始第...安装后同样弹出重启窗口,这次重启后就把 TwinCAT3 完整版安装完成了。 (二) ...TwinCAT常见问题-PLC支持哪些PLC语言类型_计算机硬件及...表达方法非常适合于 PLC 程序中 实现继电开关操作。...转换条件和他们之间的连接组成,步骤和转换条件可以用...不用选中“QoS Packet Scheduler”,因为对于 TwinCAT 驱动,它是不起作用的。 For questions or comments, email s..cn 现在需要的步骤都已经...随后扫描设备并添加路由,步骤省略,和 TwinCAT2 一样。 5. 随后选择目标控制器点 OK 即可 看到工具栏中是目标控制器的名称说明已经连上目标控制器 6. 点击工具...要实现它,首先新建一个 TwinCAT System manager 然后进行下面的 步骤: 注意: ...Q:64 位的操作系统安装了 Tc211x64Engineering_R3_2.11.2230 之后,无法切换...打开 TwinCAT 软件的 system manager,进入如下界面 点击 Choose Target,进入如下...然 后才可以继续去测试下一个点, 这样可以避免在后面的操作过程中出现误操作等...
All rights reserved Powered by
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。君,已阅读到文档的结尾了呢~~
倍福PLC编程应用常见问题解答
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
倍福PLC编程应用常见问题解答
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口The Windows Control and Automation Technology
The Beckhoff TwinCAT software system turns almost any compatible PC into a real-time controller with a multi-PLC system, NC axis control, programming environment and operating station. TwinCAT replaces conventional PLC and NC/CNC controllers as well as operating devices with:
open, compatible PC hardware
embedded IEC 61131-3 software PLC, software NC and software CNC in Windows NT/2000/XP/Vista, Windows 7, NT/ XP Embedded, CE
programming and run-time systems optionally together on one PC or separated
connection to all common fieldbuses
PC interfaces support
data communication with user interfaces and other programs by means of open Microsoft standards (OPC, OCX, DLL, etc.) &
: IEC 61131-3 Multi-PLC on the PC
: Point-to-point axis positioning
: Axis interpolation in three dimensions
: High-performance CNC solution for complex applications
: universal I/O interface for all common fieldbuses
: Driver for Beckhoff Control Panels
: Extensive libraries for the execution of tasks typical in automation technology.
: The supplement products enable the basic TwinCAT packages to be customised with additional functions.TwinCAT PLC 教程
自动化新技术TwinCAT PLC 编程手册德国倍福电气有限公司 2005 年 5 月 目录第 1 页目录1 TwinCAT PLC Control 简介...............................................................................................................1 1.1 1.2 引言............................................................................................................................................1 项目组件.....................................................................................................................................31.3 语言..........................................................................................................................................10 1.3.1 编程语言............................................................................................................................10 1.3.2 指令表 (IL) ........................................................................................................................10 1.3.3 结构化文本(ST) ............................................................................................................12 1.3.4 顺序功能图(SFC)..........................................................................................................17 1.3.5 功能块图(FBD) .............................................................................................................21 1.3.6 连续功能图编辑器(CFC)...............................................................................................21 1.3.6 梯形图(LD) ...................................................................................................................22 1.4 1.5 2 调试,联机功能 ........................................................................................................................24 IEC 61131-3 .............................................................................................................................26样例程序..........................................................................................................................................27 2.1 样例程序...................................................................................................................................273子项组件..........................................................................................................................................36 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 主窗口 ......................................................................................................................................36 选项..........................................................................................................................................38 项目管理...................................................................................................................................53 对象..........................................................................................................................................74 编辑功能...................................................................................................................................87 联机功能...................................................................................................................................92 窗口........................................................................................................................................101 帮助系统.................................................................................................................................102 日志........................................................................................................................................1034编辑器 ...........................................................................................................................................105 4.1 4.2 4.3 4.4 4.5 4.6 4.7 概述........................................................................................................................................105 声明编辑器 .............................................................................................................................107 文本编辑器 .............................................................................................................................118 指令表编辑器..........................................................................................................................122 结构化文本编辑器 ..................................................................................................................124 图形编辑器 .............................................................................................................................125 功能块图编辑器 ......................................................................................................................127 目录 4.8 4.9 4.10 5第 2 页 梯形图编辑器..........................................................................................................................132 连续功能图编辑器 ..................................................................................................................137 顺序功能图编辑器...................................................................................................................150资源 ...............................................................................................................................................159 5.1 5.2 5.3 5.4 5.5 5.6 概述........................................................................................................................................159 全局变量.................................................................................................................................160 PLC 配置 ...............................................................................................................................163 任务配置.................................................................................................................................164 抽样跟踪.................................................................................................................................167 监视和接收管理器 ..................................................................................................................1726库管理 ...........................................................................................................................................175 6.1 库管理器.................................................................................................................................1757工程接口(ENI)...........................................................................................................................177 7.1 概述........................................................................................................................................1778附录 ...............................................................................................................................................180 8.1 数据类型.................................................................................................................................180 8.1.1 概述.................................................................................................................................180 8.1.2 标准数据类型 ..................................................................................................................181 8.1.2.1 BOOL ........................................................................................................................181 8.1.2.2 BYTE .........................................................................................................................181 8.1.2.3 WORD .......................................................................................................................182 8.1.2.4 DWORD ....................................................................................................................182 8.1.2.5 SINT ..........................................................................................................................182 8.1.2.6 USINT........................................................................................................................182 8.1.2.7 INT ............................................................................................................................182 8.1.2.8 UINT ..........................................................................................................................182 8.1.2.9 DINT ..........................................................................................................................183 8.1.2.10 UDINT .......................................................................................................................183 8.1.2.11 REAL .........................................................................................................................183 8.1.2.12 LREAL.......................................................................................................................183 8.1.2.13 STRING.....................................................................................................................183 8.1.2.14 TIME..........................................................................................................................184 8.1.2.15 TIME_OF_DAY .........................................................................................................184 8.1.2.16 DATE.........................................................................................................................184 8.1.2.17 DATE_AND_TIME.....................................................................................................184 8.1.3. 用户数据类型 ..................................................................................................................185 8.1.3.1 数组...........................................................................................................................185 8.1.3.2 指针...........................................................................................................................186 8.1.3.3 枚举(ENUM) .........................................................................................................186 目录 8.1.3.4 8.1.3.5 8.1.3.6第 3 页 结构(STRUCT) .....................................................................................................187 参考类型(别名) .....................................................................................................188 子范围类型................................................................................................................1898.2 操作符 ....................................................................................................................................190 8.2.1 概述.................................................................................................................................190 8.2.2 IEC 操作符概述 ..............................................................................................................190 8.2.3 数值操作符 ......................................................................................................................193 8.2.3.1 ABS...........................................................................................................................193 8.2.3.2 ACOS........................................................................................................................193 8.2.3.3 ASIN .........................................................................................................................194 8.2.3.4 ATAN.........................................................................................................................194 8.2.3.5 COS ..........................................................................................................................194 8.2.3.6 EXP...........................................................................................................................194 8.2.3.7 EXPT ........................................................................................................................194 8.2.3.8 LN .............................................................................................................................195 8.2.3.9 LOG ..........................................................................................................................195 8.2.3.10 SIN ............................................................................................................................195 8.2.3.11 SQRT ........................................................................................................................195 8.2.3.12 TAN ...........................................................................................................................195 8.2.4 算术操作符 ......................................................................................................................197 8.2.4.1 ADD ..........................................................................................................................197 8.2.4.2 MUL ..........................................................................................................................197 8.2.4.3 SUB ..........................................................................................................................197 8.2.4.4 DIV............................................................................................................................198 8.2.4.5 MOD .........................................................................................................................198 8.2.5 位串操作符 ......................................................................................................................199 8.2.5.1 AND ..........................................................................................................................199 8.2.5.2 OR ............................................................................................................................199 8.2.5.3 XOR ..........................................................................................................................199 8.2.5.4 NOT ..........................................................................................................................200 8.2.6 位移操作符 ......................................................................................................................200 8.2.6.1 SHL...........................................................................................................................200 8.2.6.2 SHR ..........................................................................................................................201 8.2.6.3 ROL ..........................................................................................................................202 8.2.6.4 ROR..........................................................................................................................202 8.2.7 选择操作符 ......................................................................................................................204 8.2.7.1 SEL ...........................................................................................................................204 8.2.7.2 MAX ..........................................................................................................................204 8.2.7.3 MIN ...........................................................................................................................205 8.2.7.4 LIMIT.........................................................................................................................205 8.2.7.5 MUX..........................................................................................................................205 8.2.8 比较操作符 ......................................................................................................................207 8.2.8.1 GT.............................................................................................................................207 8.2.8.2 LT..............................................................................................................................207 目录第 4 页8.2.8.3 LE .............................................................................................................................207 8.2.8.4 GE.............................................................................................................................208 8.2.8.5 EQ.............................................................................................................................208 8.2.8.6 NE.............................................................................................................................209 8.2.9 选择不同的操作符 ...........................................................................................................210 8.2.9.1 INDEXOF..................................................................................................................210 8.2.9.2 SIZEOF.....................................................................................................................210 8.2.9.3 ADR(地址操作符) ...............................................................................................210 ) 8.2.9.4 ^(内容操作符) .......................................................................................................210 8.2.9.5 CAL(调用操作符)..................................................................................................210 8.2.9.6 BITADR.....................................................................................................................211 8.2.10 类型转换操作符...............................................................................................................212 8.2.10.1 BOOL_TO 转换 ........................................................................................................212 8.2.10.2 TO_BOOL 转换 ........................................................................................................212 8.2.10.3 STRING_TO 转换 ....................................................................................................212 8.2.10.4 TO_STRING 转换 ....................................................................................................212 8.2.10.5 TIME_TO 转换 .........................................................................................................213 8.2.10.6 DATE_TO 转换.........................................................................................................213 8.2.10.7 TOD_TO 转换 ..........................................................................................................213 8.2.10.8 “DT_TO 转换 ............................................................................................................213 8.2.10.9 REAL_TO-/LREAL_TO 转换 ....................................................................................214 8.2.10.10 整型数类型之间的转换 ..............................................................................................214 8.2.10.11 TRUNC .....................................................................................................................214 8.3 操作数 ....................................................................................................................................215 8.3.1 常数.................................................................................................................................215 8.3.1.1 BOOL 常数 ...............................................................................................................215 8.3.1.2 TIME 常数 ................................................................................................................215 8.3.1.3 DATE 常数 ...............................................................................................................215 8.3.1.4 TIME_OF_DAY 常数 ................................................................................................215 8.3.1.5 DATE_AND_TIME 常数 ...........................................................................................216 8.3.1.6 数值常数........................................................................................................................216 8.3.1.7 REAL/LREAL 常数 ...................................................................................................216 8.3.1.8 STRING 常数 ...........................................................................................................216 8.3.1.9 类型符 ...........................................................................................................................217 8.3.2 变量.................................................................................................................................218 8.3.2.1 变量...........................................................................................................................218 8.3.2.2 地址...........................................................................................................................218 8.3.2.3 存取数组、结构和 POU 变量...................................................................................219 8.3.2.4 变量的位寻址 ............................................................................................................219 8.3.2.5 功能...........................................................................................................................219 8.3.2.6 系统标志 ...................................................................................................................219 8.3.2.6.1 概述 ........................................................................................................................219 8.3.2.6.2 SYSTEMINFO........................................................................................................220 8.3.2.6.3 SYSTEMTASKINFOARR .......................................................................................220 目录第 5 页8.4 系统功能.................................................................................................................................221 8.4.1 CheckBounds 功能 ............................................................................................221 8.4.2 CheckDivByte 功能 ............................................................................................222 8.4.3 CheckDivReal 功能............................................................................................222 8.4.4 CheckDivWord 功能 ............................................................................................223 8.4.5 CheckDivDWord 功能............................................................................................223 8.4.6 CheckRangeSigned 功能............................................................................................224 8.4.7 CheckRangeUnsigned 功能 ...........................................................................................225 8.5 8.6 8.7 使用键盘.................................................................................................................................227 创建错误表 .............................................................................................................................231 命令行命令 .............................................................................................................................246 TwinCAT PLC Control:简介第 1 页 共 249 页11.1TwinCAT PLC Control 简介引言什么是 TwinCAT PLC Control? TwinCAT PLC Control 是为 PLC 设计的一种完整的开发环境。TwinCAT PLC Control 为 PLC 编程提供 了一种简便的方法,可以自由地处理功能强大的 IEC 语言。编辑器和调试功能的使用则基于先进编程语 言和已验证的程序开发环境。TwinCAT PLC Control 概述一个项目是如何构成的? 一个项目置于一个在项目后期命名的文件内。首先打开一个默认的“Task Configuration(任务配置)”。 任务的名字是“Standard(标准)”。在一个新项目中建立的第一个 POU(程序组织单元)将自动地命 名为“MAIN(主程序)”。你可以在任务配置中重新命名这个 POU。TwinCAT PLC Control 能够区分一 个项目中不同类型的对象:POU,数据类型和资源。对象管理器(Object Organizer)包括一个表,该表 列出了项目中所有的对象。 怎样建立项目? 首先,你应该选择目标系统。然后配置任务。你可以建立解决你的问题所需要的 POU。现在你可以应用 所期望的编程语言对你所需要的 POU 进行编程。一旦编程完成,你就可以编译该项目,并修改可能存在 的任何错误。 如何测试项目? 一旦已经修改完成所有的错误, 联机 PLC 并将你的项目 “下载” PLC 内。 到 现在, TwinCAT PLC Control 处于“联机”模式。测试你的项目是否为正确顺序。为此,手动设置输入变量并观察输出是否为期望值。 你还可以观察 POU 中本地变量的数值顺序。在“Watch and Receipt Manager(监视和接收管理器)” 中,你可以配置你想要检查的数据记录。 当程序出现错误时,你可以设置断点。如果程序在该断点处停止,你可以及时在该断点处检查项目所有的 变量值。并按照顺序操作(单步),检查程序的逻辑正确性。 TwinCAT PLC Control 还有另外一种调试功能:你可以设置程序变量以及输入和输出为某些值。你可以使 用流控制来检查哪些程序行已经运行。使用“Sampling Trace(抽样跟踪)”,可以在扩展的时间范围内 跟踪和显示变量的实际变化过程。 “Log(日志)”则按时间顺序记录在联机对话期间的操作、用户采取的动作和各种内部过程。 整个项目可随时进行文档化或输出到一个文本文件。 其它功能 整个项目可随时进行文档化或输出到一个文本文件。也可将它翻译成其它语言。 ENI:通过 ENI 接口(“工程接口”),可以将编程系统连接到一个外部数据库。在那里可以存储创建一 个自动化项目过程中所需要的各种数据。外部数据库的使用保证了数据的一致性,这些数据以后可以被多 个用户、项目和程序所共享。 小结 TwinCAT PLC Control:简介所需要的时间。第 2 页 共 249 页TwinCAT PLC Control 是一个完整的开发工具,用来对你的 PLC 进行编程,它能大量节省建立应用程序 TwinCAT PLC Control:简介第 3 页 共 249 页1.2项目组件一个项目包含一个 PLC 程序中的所有对象。项目保存在项目后期命名的一个文件内。一个项目包括以下 对象: POU(程序组织单元),数据类型,资源和软件库。POU(程序组织单元)功能、功能块和程序都是 POU,它们可以使用动作(Action)加以补充。 每个 POU 都由一个声明部分和一个程序本体组成。程序由 IEC 编程语言中的一种语言编写(这些语言 包括 IL、ST、SFC、FBD、LD 或 CFC)。TwinCAT PLC Control 支持所有 IEC 的标准 POU。如果你 需要在项目中使用这些标准 POU,则必须在你的项目中包括标准库(standard.lib)。 一个 POU 可调用其它 POU。然而不允许进行递归调用。 功能 一个功能即是一个 POU,当对它进行处理时,它可准确地生成数据元素(诸如由几个字段或结构等元素组 成),并在文本语言调用时作为表达式内的一个操作符出现。 当声明一个功能时,不要忘记功能必须返回一个类型。这意味着,在功能名后,你必须输入一个冒号,后 跟一个类型。 一个正确的功能声明有如下示例那样的形式: FUNCTION Fct:INT 此外,必须对功能分配一个结果。这意味着,功能名作为一种输出变量使用。 以下为使用 IL(指令表)编写的一个功能例子,它有三个输入变量,并返回由前二个变量乘积除以第三个 变量的结果:由 ST(结构化文本)编写的一个功能调用可作为表达式中的一个操作数。功能没有任何内部条件。这意 味着,由相同变元(输入参数)调用的一个功能总是产生相同的值(输出)。 注意:如果你在一个功能内声明一个保持型的本地变量,这是没有意义的。变量不会保存到保留区! 调用上述功能的示例: 使用 IL: LD 7 Fct 2,4 ST Result TwinCAT PLC Control:简介使用 ST 语言: Result := Fct(7, 2, 4); 使用 FBD:第 4 页 共 249 页使用 SFC 时,一个功能调用只出现在一个步或一个转换内。 注意: 如果在项目中应用名称“CheckBounds”来定义一个功能,你可以使用这个名字来检查项目中是否有范围 溢出!该功能名是系统预定义的,而且系统只识别这个标识符。 下面的典型程序是使用 CheckBounds 功能测试超出一个定义数组的边界。CheckBounds 功能可以确认 TRUE 值没有分配给 A[10],而是分配给上边界 A[7],在这一位置,A[7] 仍然有效。因此,Check Bounds 功能可以用来检查是否超出数值边界。注意: 如果在你的项目中,使用了 CheckDivByte、CheckDivWord、CheckDivDWord 和 CheckDivReal 定义的 功能,并且使用了操作符 DIV,则它们可以用于检查除数的有效性,例如用来避免出现被 0 除。该功能名 是系统预定义的,而且系统只识别这个标识符。 如果你使用 CheckRangeSigned 和 CheckRangeUnsigned 来定义功能,则超出由子范围类型声明的变 量范围可以被截断。 所有这些检查的功能名都被系统作为应用程序的保留名。 功能块 一个功能块即是一个 POU ,它提供程序运行过程中的一个或多个值。与功能相比,功能块不提供返回值。 以下是有二个输入变量和二个输出变量的一个功能块的例子,使用 IL 语言编写。其中一个输出是二个输 入的乘积,另一个输出则比较它们是否相等: TwinCAT PLC Control:简介第 5 页 共 249 页功能块实例 可以创建一个功能块的拷贝或实例(复制)。每个实例都具有其自身的标识符(实例名),以及包含有输 入、输出和内部变量的数据结构。实例可以作为本地或全局变量加以声明,而功能块名是作为标识符类型 予以指示的。 示例,名称为“INSTANCE”的 FUB 功能块的实例: INSTANCE:FUB; 功能块总是通过上述实例调用的。 只能从一个功能块实例的外部存取输入和输出参数,而不能从其内部变量存取这些参数。 存取一个输入变量的示例: 功能块 FB 有一个类型 INT 的输入变量 in1。 PROGRAM prog VAR inst1: END_VAR LD 17 ST inst1.in1 CAL inst1 END_PROGRAM 功能块和程序的声明部分可包含实例声明。在功能内不允许有实例声明。 对一个功能块实例的访问除非它们是全局声明的, 否则只限于声明它们的 POU。 一个功能块实例的实例名 可用作一个功能或一个功能块的输入。 注意: 处理一个功能块后,所有的值直到下一次处理之前都加以保留。因此,通过相同变元的功能块调用并不总 是返回相同的输出值! 提示: TwinCAT PLC Control:简介如果至少有一个功能块变量是一个保留变量,则全部实例都存储在保留区。 调用一个功能块第 6 页 共 249 页通过建立一个功能块实例,并用以下语法规定所期望的变量,则可以从其它 POU 存取一个功能块的输入 和输出变量。 &实例名&.&变量名& 当你打开功能块时,如果要设置输入参数(输入变量的值),你可以使用文本语言 IL 和 ST,通过对括号 (位于功能块实例名后)内的参数赋值来设置输入参数(使用“:=”进行赋值,如同在声明位置的变量初 始化)。 请注意,POU 的输入/输出变量 (VAR_IN_OUT) 将转变成为一个指针。因此,在调用时不能对它们赋值 常数,而且不能进行外部的读或写操作。 应用 ST 语言编写的调用 POU fubo 的 VAR_IN_OUT 变量 inout1 示例: VAR inst: var1: END_VARvar1:=2; inst(inout1:=var1); 不允许:inst(inout1:=2); 或 inst.inout1:=2;调用上述功能块 FUB 的例子。乘法结果保存在变量 ERG 内,比较结果保存在 QUAD 内。并声明功能 块 FUB 的实例名为 INSTANCE: 使用 IL 语言,按以下程序调用功能块: TwinCAT PLC Control:简介在以下例子中,使用 ST 语言表示的调用。声明部分同 IL 语言:第 7 页 共 249 页使用 FBD 语言,屏幕显示如下(声明部分同 IL 语言):使用 SFC 语言,只能按步调用功能块。 程序 一个程序即是一个 POU,它在运行过程中返回若干个值。并全局识别整个项目的程序。从上一次运行程序 直到下一次运行程序,一直保留所有的值。程序可以被调用。不允许在一个功能内调用一个程序。也不存在程序的实例。如果一个 POU 调用一个程 序,而且如果程序的值随之改变,那么,这些改变将被保留到下一次调用程序(即使从其它 POU 内已调 用了该程序)。这不同于调用一个功能块。那里只改变功能块给定实例中的值。因此仅当调用相同实例时, 这些改变才起作用。一个程序声明以关键字 PROGRAM 开始,以 END_PROGRAM 结束。 上述程序调用的示例: 使用 IL 语言: TwinCAT PLC Control:简介CAL PRG Example LD PRGexample.PAR ST ERG 使用 ST 语言: PRGE Erg := PRGexample.PAR; 使用 FBD 语言:第 8 页 共 249 页如果从程序 PRGexample 来的变量 PAR 是通过一个带有 0 的主程序初始化, 然后以上述命名的程序调 用逐一调用其它程序,那么,程序中的 ERG 结果将有值 1、2 和 3。如果交换调用顺序,那么,给定结 果参数的值也应相应的改变。 动作 作为功能块和程序的附加特性,你可以定义各种动作(Action)。一个动作是使用步实现的。它可以使用 与“normal(常规)”实现体不同的语言编写。每个动作有一个名字。 一个动作是与关联的功能块或程序的数据一起工作的。它与“常规”实现体一样,使用相同的输入/输出变 量和局部变量。参见上图中的示例: 当调用功能块 Counter 时,输出变量随输入变量 'in' 增加或减小。当调用附属于功能块的动作 Reset时,输出变量设置为 0。在这两种情况下,编写相同的输出变量 Out。 相应于 &实例名&.&动作名&,通过 &程序名&.&动作名& 调用一个动作。如果必须在主模块内调用动作, 则在文本编辑器中,只使用动作名,在图形编辑器中,功能块的调用不需要实例名。 示例 对所有示例的声明: PROGRAM PLC_PRG VAR Inst : C END_VAR TwinCAT PLC Control:简介使用 IL 语言: CAL Inst.Reset(In := FALSE) LD Inst.out ST ERG 使用 ST 语言: Inst.Reset(In := FALSE); Erg := Inst. 使用 FBD 语言:第 9 页 共 249 页注意: 有关 SFC 动作的详细信息,请参见“SFC”章节。 在 IEC 61131-3 标准中,只描述用于 SFC 的动作。 资源 为了配置和组织项目以及跟踪变量值,你需要使用资源: “全局变量(Global Variable)”,它可以在整个项目中使用。 用来配置硬件的“PLC 配置(PLC Configuration)”。 引导程序执行各种任务的“任务配置(Task Configuration)”。 用于变量图形化显示的“抽样跟踪(Sampling Trace)”。 用来显示变量和设置默认变量的“监视和接收管理器(Watch and Receipt Manager)”。 参见“资源”章节。 软件库 你可以在项目中包括一系列的软件库。你可以像用户定义变量那样使用这些库的 POU、数据类型以及全局 变量。&standard.lib& 库是程序的一个标准部分,供你随时使用。 参见章节“库管理器”。 数据类型 除标准数据类型之外,用户还可以定义自己的数据类型。并可以建立结构、枚举类型和子类型。 参见附录中的“标准数据类型”和“用户定义的数据类型”。 TwinCAT PLC Control: 简介第 10 页 共 249 页1.31.3.1语言编程语言TwinCAT PLC Control 支持所有的 IEC61131-3 编程语言。有两种文本编程语言和三种图形编程语言。 文本编程语言 指令表 (IL) 结构化文本(ST) 图形编程语言 功能块图(FBD) 梯形图 (LD) 连续功能图(CFC) 顺序功能图(SFC)1.3.2指令表 (IL)指令表(IL)由一系列指令组成。每个指令在一个新行的开始,包含有一个操作符以及取决于操作符类型 的一个或几个以逗号分隔的操作数。在指令前面可以有标识符号(标记),后跟一个冒号(:)。 注释必须是一行的最后元素。指令之间可以插入空行。 例: LD ST GE 17 lint 5 (* 注释 *)JMPC next LD EQ STN next: 使用 IL 语言的修饰符和操作符 在 IL 语言中,可以使用以下操作符和修饰符。 修饰符: JMP、CAL、RET 带有 C:仅当前面的表达式结果是 TRUE(真)时,才执行指令。 JMPC、CALC、RETC 带有 N:仅当前面的表达式结果是 FALSE(假)时,才执行指令。 其它情况的 N:操作数的求反运算(不是累加器) 以下列出所有用于 IL 语言的操作符以及可能的修饰符和操作符相应的含义: 操作符 LD 修改符 N 含义 使当前的结果等于操作数 idword istruct.sdword test TwinCAT PLC Control: 简介ST S R AND OR XOR ADD SUB MUL DIV GT EQ NE LE LT JMP CAL RET ) N, ( N, ( ( ( ( ( ( ( ( ( ( ( CN CN CN N 在操作数位置保存当前结果 如当前结果是 TRUE,将布尔操作数设置为 TRUE 如当前结果是 TRUE,将布尔操作数设置为 FALSE 按位逻辑“与” 按位逻辑“或” 按位“异或” 加法 减法 乘法 除法 & = && &= & 跳转到标号 调用功能块 从功能块调用返回 后期评估操作第 11 页 共 249 页你可以在附录表中找到所有的 IEC 操作符。 使用修饰符的一个 IL 程序示例: LD TRUE (*在累加器中装载 TRUE*) (*BOOL1 变量取反进行“与”运算*) (*如果结果是“TRUE”,则跳转到标号“Label”*) (*装载 BOOL2 取反值*) (*在 ERG 中存储 BOOL2*)ANDN BOOL1 JMPC label LDN ST BOOL2 ERGlabel:LD STBOOL2 ERG(*存储 BOOL2 的值*) (*在 ERG 中存储 BOOL2*)使用 IL 语言还可以在操作符后放置括号。从而,括号内的值被认为是一个操作数。 例: LD 2 MUL 2 ADD 3 ST Erg 这里,Erg 值是 7。然而,如果加上括号: TwinCAT PLC Control: 简介LD 2 MUL( 2 ADD 3 ) ST Erg第 12 页 共 249 页这里,Erg(结果)的最终值为 10,从而,只有到达“)”,才能求值操作 MUL;这是因为操作 MUL5 是 以后计算出来的。1.3.3结构化文本(ST)结 构 化 文 本 由 一 系 列 指 令 组 成 。 可 以 执 行 如 同 高 级 语 言 所 确 定 的 (&IF..THEN..ELSE&) 或 循 环 (WHILE..DO) 语句。 例: IF value & 7 THEN WHILE value & 8 DO value := value + 1; END_WHILE; END_IF;表达式 表达式是一种结构,它返回计算后的值。表达式由操作符和操作数组成。操作数可以是常数、变量、功能 调用,或其它表达式。 表达式的求值 按照优先级规则,通过对操作符的处理可执行表达式的求值。首先处理最高优先级的操作符,然后处理次 优先级的操作符,依次类推,直至处理完所有的操作符为止。有相同优先级的操作符是从左到右处理的。 以下按操作符的优先级大小列出 ST 操作符表: 操作 置于括号内 功能调用 缭怂 负值 取反 乘 除 取模 加 减 比较 等于 不等于 符号 (表达式) 功能名(参数表) ** NOT * / MOD + &,&,&=,&= = && 优先级 最高优先级 TwinCAT PLC Control: 简介布尔“与” 布尔“异或” 布尔“或” AND XOR OR 最低优先级第 13 页 共 249 页以下是使用 ST 语言的指令,表中同时给出示例: 指令 赋值 调用功能块并使用 FB 形式 RETURN IF 示例 A:=B; CV := CV + 1; C:=SIN(X); CMD_TMR(IN := %IX5, PT := 300);A:=CMD_TMR.Q; RETURN; IF D&0.0 THEN C:=A; ELSIF D=0.0 THEN C:=B; ELSE C:=D; END_IF; CASE INT1 OF 1: BOOL1 := TRUE; 2: BOOL2 := TRUE; ELSE BOOL1 := FALSE; BOOL2 := FALSE; END_CASE; FOR I:=1 TO 100 BY 2 DO IF ARR[I] = 70 THEN J:=I; EXIT; END_IF; END_FOR; WHILE J&= 100 AND ARR[J] && 70 DO J:=J+2; END_WHILE; REPEAT J:=J+2; UNTIL J= 101 OR ARR[J] = 70 END_REPEAT; EXIT; ;CASEFORWHILEREPEATEXIT 空指令 结构化文本中的指令前面提到,结构化文本(ST)用于结构化的编程,亦即 ST 为诸如编程循环等这些常用的结构提供预先规 定的结构。这样做的好处是可以降低出现差错的可能性,并提高程序的可读性。 例如,让我们比较使用 IL 和使用 ST 编写的二个相同功能的程序: 使用 IL 语言编写的计算二次方绲囊桓鲅罚 TwinCAT PLC Control: 简介Loop : LD EQ JMPC LD MUL ST LD SUB ST JMP End: LD ST Var1 ERG 1 Counter Loop 2 Var1 Counter Counter 0 end Var1第 14 页 共 249 页使用 ST 语言编写同样的循环程序为: WHILE Counter&&0 DO Var1:=Var1*2; Counter:=Counter-1; END_WHILE Erg:=Var1; 可以看出,使用 ST 编写的循环程序不仅编程速度快,而且更容易阅读,尤其是在大型结构中的嵌套循环 时更是如此。 使用 ST 语言编写的不同结构有以下意义: 赋值操作符 在一个赋值语句的左侧有一个操作数(变量、地址),对它赋值右侧表达式的值,赋值操作符为 := 示例: Var1 := Var2 * 10; 执行该行后,Var1 值为 10 倍的 Var2 值。 使用 ST 语言编写的功能块调用 使用 ST 语言编写的功能块调用,采用的是调用功能块的实例名,以及将括号内的参数赋值。在以下例子 中,通过对参数 IN 和 PT 赋值,调用一个定时程序。然后将结果变量 Q 赋值给变量 A。 如同使用 IL 那样,结果变量使用功能块名,后跟一个“点(.)”以及变量名: CMD_TMR(IN := %IX5, PT := T#300MS); A:=CMD_TMR.Q RETURN(返回)指令 RETURN 指令可按条件用于结束一个功能。 IF 指令 使用 IF 指令可检查一个条件,以及按照这个条件执行指令。 语法: TwinCAT PLC Control: 简介IF &Boolean_printout1& THEN &IF_instructions& {ELSIF &Boolean_printout2& THEN &ELSIF_instructions1& . . ELSIF &Boolean_printout n& THEN &ELSIF_instructions n-1& ELSE &ELSE_instructions&} END_IF; 括号 {} 中的部分是任选项。第 15 页 共 249 页如果上述指令集中 &Boolean_printout1& 返回的是 TRUE,那么只执行 &IF_Instructions&,其它指令都 不执行。否则逐个计算以 &Boolean_printout2& 开始的布尔表达式,直至表达式中的一个返回 TRUE 时 为止。然后,只计算这个布尔表达式后和下一个 ELSE 或 ELSIF 前的那些指令。如果没有一个布尔表达 式返回 TRUE,则只计算 &ELSE_instructions&。 示例: IF temp&17 THEN heating_on := TRUE; ELSE heating_on := FALSE; END_IF; 这里,当温度下降到低于 17 度时,加热装置接通。否则加热装置一直保持断开。 CASE 指令 使用 CASE 指令可在一个结构中,以相同的条件变量组合几个条件指令。 语法:CASE &Var1& OF &Value 1&: &instruction 1& &Value 2&: &instruction 2& ... &Value n&: &instruction n& ELSE &ELSE-instruction& END_CASE; 按以下方式处理一个 CASE 指令: 若 &Var1& 的变量值为 &Value i&,则执行指令 &Instruction i&。 若 &Var1& 没有指示值,则执行 &ELSE Instruction&。 若对几个变量值执行相同的指令,则可用逗号分隔并逐一写出这些值,从而规定共同执行的条件。 示例: TwinCAT PLC Control: 简介CASE INT1 OF 1, 5: BOOL1 := TRUE; BOOL3 := FALSE; 2: BOOL2 := FALSE; BOOL3 := TRUE; ELSE BOOL1 := NOT BOOL1; BOOL2 := BOOL1 OR BOOL2; END_CASE; FOR 循环 使用 FOR 循环可编程重复的过程。 语法:第 16 页 共 249 页INT_Var :INT;FOR &INT_Var& := &INIT_VALUE& TO &END_VALUE& {BY &stepsize&} DO &instructions& END_FOR; 括号 {} 中的部分是任选项。 只要计数器 &INT_Var& 不大于 &END_VALUE& 就一直执行 &Instructions&。这在执行 &Instructions& 之 前 进 行 检 查 , 以 便 在 &INIT_VALUE& 大 于 &END_VALUE& 时 不 执 行 &Instructions& 。 当 执 行 &Instructions& 时,&INT_Var& 总是增加 &Step size(步长)&。步长可以是任何整数值。若没有给定这 个值,则它设置为 1。由于 &INT_Var& 只会逐步变大,因而循环也必须结束。 示例: FOR counter:=1 TO 5 BY 1 DO Var1:=Var1*2; END_FOR; Erg:=Var1; 假设 Var1 的a认值设定为 1,则经过 FOR 循环后,它的值为 32。 WHILE 循环 可以像 FOR 循环那样使用 WHILE 循环,其区别是,后者的终止条件可以是任何布尔表达式。这意味着, 你可以指定条件,当条件满足时就执行循环。 语法: WHILE &Boolean expression& DO &instruction& END_WHILE; 只要& Boolean expression &返回 TRUE,就重复执行 &Instruction&。如第一次求值时 & Boolean expression &已经是 FALSE,则不会执行 &Instruction&。若 & Boolean expression & 从不出现值 FALSE,则 &Instruction& 将无休止地重复,并导致一个相应的死循环。 注意:编程员必须确认,不会形成无休止的循环。可通过改变循环语句指令部分中的条件来检查是否会出 现这种情况(例如通过一个计数器的加计数或减计数)。 TwinCAT PLC Control: 简介示例: WHILE counter&&0 DO Var1 := Var1*2; counter := counter-1; END_WHILE第 17 页 共 249 页WHILE 和 REPEAT 循环在某种意义上要比 FOR 循环的功能更强,这是因为在执行循环之前,我们不 需要知道循环次数。 因而在某些场合, 我们运用这二种循环类型。 然而, 如果循环次数是明确的, 则使用 FOR 循环,这是因为采用这种循环不会出现无休止的循环。 REPEAT 循环 REPEAT 循环与 WHILE 循环不同,这是因为前者只在循环已完成后才检查终止条件。这意味着,与终止 条件的运行无关,这种循环至少运行一次。 语法: REPEAT &instructions& UNTIL &Boolean expression& END_REPEAT; 直到&Boolean expression&返回 TRUE 为止,一直执行 &Instructions&。如果在第一个 TRUE 求值时已 经生成 &Boolean expression&,则只执行一次 &Instructions&。若 &Boolean_expression& 从不出现值 TRUE,则 &Instructions& 将无休止地重复,并导致一个相应的死循环。 注意:编程员必须确认,不会形成无休止地循环。可通过改变循环语句指令部分中的条件来检查是否会出 现这种情况(例如通过一个计数器的加计数或减计数)。 示例: REPEAT Var1 := Var1*2; Counter := Counter-1; UNTIL Counter=0 END_REPEAT EXIT 指令 若在 FOR、WHILE 或 REPEAT 循环中出现 EXIT 指令,则与终止条件无关,结束最内层的循环。1.3.4顺序功能图(SFC)顺序功能图是一种面向图形表示的语言,使用顺序功能图,可以按时间顺序描述程序内的不同动作 (Action)。 使用顺序功能图语言的一个网络示例: TwinCAT PLC Control: 简介第 18 页 共 249 页步 使用顺序功能图语言编写出的 POU 是由一系列的步组成的,通过定向连接(转换)将这些步彼此连接。 步有二种类型。 简化类型由一个动作和一个表示该步是否有效的标记组成。若要实施一个步的动作,则在该步的右上 角出现一个小三角形。 一个 IEC 步由一个标记和一个或几个分配的动作组成。相应的动作出现在步的右边。 动作 一个动作可以包含一系列由 IL 或由 ST 编写的指令,由 FBD 或由 LD 编制的若干网络,或再次以顺序 功能图(SFC)表示的网络。对于简化步,一个动作总是连接到一个步。为了编辑一个动作,在动作所属 的步上双击鼠标。或选择步并选择菜单命令“Extras”(附加)“Zoom Action/Transition”(缩放动作/ 转换)。此外,步可以有输入或输出动作。 IEC 步的动作位于“Object Organizer(对象管理器)”中,并直接处于其 SFC-POU 下。通过双击或通 过按压其编辑程序中的 &Enter& 键进行装载。使用“Project(项目)”“Add Action(添加动作)”可建 立新的动作。 进入或退出动作 除了步的动作外,你还可对一个步附加一个进入动作和一个退出动作。进入动作只执行一次,正好在该步 有效之后。退出动作只在该步失效之前执行一次。带有进入动作的步由一个左下角“E”指示,退出动作由 一个右下角“X”指示。可用任何一种语言来实现进入和退出动作。为了编辑进入或退出动作,在步的相应 角双击鼠标。只能对简化步定义一个进入和退出动作,而不能对一个 IEC 步定义进入和退出动作。 带有进入和退出动作的步示例: TwinCAT PLC Control: 简介第 19 页 共 249 页转换/转换条件 在各步之间有所谓的转换。一个转换条件必需具有值 TRUE 或 FALSE。从而,它可以由一个布尔变量、 一个布尔地址或者是一个布尔常数组成。 它也可包含一系列有布尔结果的指令, 这些指令或是用 ST 语言, (例如,(i&= 100) AND b),或是使用任何所希望的语言(参见“附加”“缩放动作/转换”)编写,但是, 一个转换也许并不包含程序、功能块或赋值! 注意: 除了转换外,包含的模式也可用于跳转到下一步;参见 SFCtip 和 SFCtipmode。 激活步 调用 SFC POU 后,首先执行属于初始化步的动作(用一个双边框表示)。正在执行步动作的步称为有效 步。若步是有效的,则每个循环执行一次相应的动作。在 Online(联机)模式,有效步用蓝色表示。每个 步都附属有一个标志,该标志存储步的条件。应用布尔结构元素 &步名字&.x 的逻辑值来表示步标志(步 的有效或失效条件)。若相应的步是有效的,这个布尔变量有值 TRUE,若是失效的,则为值 FALSE。 这个变量是隐式地声明的,并可用于 SFC POU 的任何动作和转换。在一个控制周期内,执行属于有效步 的所有动作。此后,若后继步的转换条件为 TRUE,则有效步相应动作的后继步成为有效步。当前的有效 步将在下一个周期内执行。 注意: 若有效步包含一个输出动作,则这个有效步仅在下个周期内执行(假定后继的转换是 TRUE)。 IEC 步 与 简 化 步 一 起 , 也 提 供 使 用 SFC 语 言 编 写 的 标 准 IEC 步 。 为 了 能 使 用 IEC 步 , 你 必 需 将 库 TcSystem.Lib 连接到你的项目内。 可将任何数量的动作分配给一个 IEC 步。IEC 动作并不像简化步那样将输入步或输出动作固定在某些步 上,而是独立于步进行存储,并可在一个 POU 内多次地重复使用。为此目的,IEC 步必须使用命令 'Extras''Associate action'(‘附加’‘关联动作’)与单个步相关联。 与动作一起,可将布尔变量分配给步。 动作和布尔变量的有效和失效可应用所谓修饰符加以控制。延时是可能的。由于一个动作可以依旧是有效 的(若已处理下一步),例如经过修饰符 S (Set),因而可实现并行处理。 每一次用 SFC 块来置位或复位一个关联的布尔变量。这意味着,随着每次调用,更改 TRUE 或 FALSE 的值,或重新回到原值。 与 IEC 步相关联的动作示于步右侧的一个二分框内。左边区域包含修饰符,(可能有时间常数),右边区 域包含动作名。 带有二个动作的 IEC 步示例: TwinCAT PLC Control: 简介查,察看哪一个动作是有效的。第 20 页 共 249 页为了方便地跟踪过程,所有联机模式下的有效动作如同有效步那样以蓝色表示。在每个循环后进行一次检还要注意在动作中使用时间修饰符的一些约束条件,在相同的循环内,这些约束条件是可以被重复使用的。 注意: 若已撤消了一个动作,它还可能再执行一次。这意味着,每个动作至少会执行二次(以及有修饰符 P 的动 作)。若出现一个调用首先执行失效的动作,然后每次以字母的次序执行有效的动作。 一个新插入的步是否是一个 IEC 步,取决于是否已选用菜单命令 &Extras&(附加) &Use IEC-Steps&(使 用 IEC 步)。 在 “Object Organizer 对象管理器) 内, ( ” 动作直接附加在相应的 SFC POU 下面。 &Project 项目) &Add ( & Action(添加动作)&可建立新的动作。为了使用 IEC 步,必需在项目内包括专用的 SFC 库 lecsfc.lib。为了使动作与 IEC 步相关联,提供以下的修饰符: N R S L D P SD DS SL 注意: 如果在二个直接紧邻的步中采用有修饰符的相同动作(它影响时间流),时间修饰符在第二次使用时不能 成为可操作的。为了避免出现这种情况,必须插入一个中间步。这样,当通过附加循环时可以重新使动作 状态初始化。 SFC 语言内的隐含变量 SFC 语言具有隐含声明的可用变量。每个步都有一个保存该步状态的标志。步标记(步的有效或失效状态) 对 IEC 步而言称为 &步名&.x,或对简化步而言称为 &步名&。当关联的步有效时,这个布尔变量具有值 TRUE,当它失效时,其值为 FALSE。它可用于 SFC 块的每个动作和转换。我们可使用变量 &动作名&.x 进行一次询问,以了解一个 IEC 动作是有效的还是失效的。 选择分支 不存储 复位优先 置位(存储的) 时间“有限制的” 时间“延迟的” 脉冲 存储的和时间‘延迟的’ “延迟的”和“存储的” 只要步有效动作就有效 动作失效 动作有效并在复位之前一直保持有效。 在一定的时间内动作是有效的。 只要步始终保持有效,经过一定的时间后,动作有效。 若步是有效的,动作只执行一次。 经过一定的时间后该动作有效,并且保持直到出现一个‘复位’。 只要步仍然保持有效, 经过一定的时间后该动作有效, 并且保持有 效,一直到出现一个‘复位’。“存储的” 和时间 “有限制的”在一定时间内该动作是有效的。 TwinCAT PLC Control: 简介第 21 页 共 249 页SFC 语言中的两个或多个分支可定义为选择分支(alternative branch)。每个选择分支必需由一个转换来 开始和结束。 选择分支可包含并行分支和其它选择分支。 一个选择分支由一条水平线开始 (选择分支开始) , 并由一条水平线或一次跳转结束(选择分支结束)。 如果位于分支开始线之前的步是有效的,则从左向右求值每个选择分支的第一个转换。如果从左边开始的 第一个转换其转换条件为值 TRUE,则开放相应的支路,随后的步均为有效。 对于 IEC 步而言,隐含变量 &步名&.t 可用来询问各步的有效时间。其它程序也可存取隐含变量。示例: boolvar1:=sfc.step1.x;这里 step1.x 是隐含布尔变量,它表示 POU Sfc1 中的 step1(步 1)的 IEC 步 状态。 并行分支 SFC 语言中的两个或多个分支可定义为并行分支(parallel branch)。每个并行分支必需由一个步来开始 和结束。并行分支可包含选择分支或其它并行分支。一个并行分支由一条双线开始(并行分支开始),并 由一条双线或一次跳转结束(并行分支结束)。 如果并行开始线以前的步是有效的,而且这个步以后的转换条件是值 TRUE,则所有并行分支的第一步都 成为有效的(见“有效步”)。至此,这些分支彼此并行地进行处理。如果所有以前的步都有效,而且该 步前面的转换条件生成值 TRUE,则并行结束线后的步变为有效。 跳转 跳转(jump)即是到一个步的连接,该步名出现在跳转符号下。由于不允许建立向上的引导或彼此交叉的 连接,因此需要跳转。1.3.5功能块图(FBD)功能块图是一种图形化的编程语言。它以列举的若干网络运行,每个网络包含一种结构,该结构可以是逻 辑表达式、算术表达式、功能块调用、跳转或是返回指令。 在 TwinCAT PLC Control 中,功能块图中可能出现的典型网络示例如下:1.3.6连续功能图编辑器(CFC)连续功能图编辑器的操作不同于带有网络的功能块图(FBD),而是带有可自由布置的元素。这就允许(例 如)反馈。在连续功能图编辑器中可能出现的典型网络示例: TwinCAT PLC Control: 简介 1.3.6 梯形图(LD)梯形图也是一种面向图形的编程语言,它近似于电路结构。第 22 页 共 249 页一方面,梯形图适用于建立逻辑开关,另一方面,我们也可以如同使用 FBD 那样建立各种网络。因此, LD 在控制其它类型 POU 调用方面是非常有用的。(更为详细的情况在后面叙述)。梯形图由一系列网 络组成。网络局限于由左、右各一条垂直的电流线所限定的左、右侧内。其中间是一个电路图,由接点、 线圈和连接线组成。 每条电路左侧由一系列接点组成, 从左至右传递条件 “ON” “OFF” 这相当于布尔值 TRUE 和 FALSE。 或 , 每个接点都有一个布尔变量。若这个变量是 TRUE,则沿着连接线从左至右传递条件。否则,右侧连接接 收值 OFF。 TwinCAT PLC Control 可能出现的典型梯形图网络示例:接点 LD 中的每条网络由网络左侧开始的接点(接点由二条并行线‖表示)组成,这些接点从左至右表示条件 “On” “Off” 其条件相当于布尔值 TRUE 和 FALSE。 或 。 每个接点有一个布尔变量。 若这个变量是 TRUE, 则条件从左至右借助于连接线通过,否则,右边连接接收值“Out”。接点可并联连接,因此并行分支必须 有一个分支传输值“On”,才能使并联支路传输值“On”。接点亦可以串联,因此所有接点必须传输条件 “On”,以便使最后一个接点传输“On”条件。以上相当于一条并联或串联电路。也可以对一个接点求反, 通过在接点符号中的斜线“|/|”加以识别。因此,若变量是 FALSE,则传输“On”值。 线圈 LD 中的网络右侧,可以有任何数量的线圈,它用括号“( )”表示。它们只能并联。一个线圈将连接的值从 左传输到右, 并将它复制到一个相应的布尔变量。 在进入线处, 可以出现值 ON (相当于布尔变量 TRUE) , 或值 OFF(相当于布变量 FALSE)。也可对接点和线圈求反(示例中,接点 SWITCH1 和线圈 %QX3.0 是求反的)。若一个线圈是求反的(可通过线圈符号中的斜线“(/)”识别),则它将求反值复制到相应的 布尔变量内。若一个接点是求反的,则它仅当相应的布尔值为 FALSE 时才接通。 梯形图中的功能块 与接点和线圈一起,你也可以插入功能块和程序。在网络中,它们必须有带布尔值的一个输入和一个输出, 并可在相同位置上像接点那样使用,也就是说在 LD 网络的左侧。 置位/复位线圈 TwinCAT PLC Control: 简介第 23 页 共 249 页也可将线圈定义为置位线圈或复位线圈。置位线圈可通过线圈符号“(S)”中的“S”来识别。它从不改写 在其相应布尔变量中的值 TRUE。这就是说,若变量一旦设置为 TRUE,则它将保持下去。复位线圈可通 过线圈符号“(R)”中的“R”来识别。它从不改写在其相应布尔变量中的值 FALSE。这就是说,若变量 一旦设置为 FALSE,则它将始终保持下去。 如同 FBD 的 LD 当使用 LD 时,有可能要利用接点开关的结果控制其它 POU。一方面,你可使用线圈将结果作为一种全 局变量,随后将它用于其它地方。然而,你也可以将可能的调用直接插入到你的 LD 网络内。为此,可引 入一个带有 EN 输入的 POU。 这种 POU 是完全常规的操作数、 功能、 程序、 或有一个附加输入 “EN” (以 标记) 的功能块。 EN 输入总是为布尔类型, 其含义是: EN 有值 TRUE 时, 当 计算有 EN 输入的 POU。 一个 EN POU 与线圈并联连接,因而 EN 输入将连接到接点和线圈之间的连接线。若 ON 信息经过这条 线传输,则这个 POU 将完全正常地进行计算。从这样一个 EN POU 出发,你可建立类似于 FBD 的网 络。 带有一个 EN POU 的一个 LD 网络部分 TwinCAT PLC Control: 简介第 24 页 共 249 页1.4抽样跟踪调试,联机功能通过抽样跟踪,可根据触发事件跟踪变量值的顺序。这是预定义的布尔变量(触发变量)的上升沿或下降 沿。TwinCAT PLC Control 允许最多跟踪 20 个变量。有一个 64 kB 的环形缓冲区。 调试 使用 TwinCAT PLC Control 的调试功能,可方便地查找错误所在。 断点 一个断点是程序内处理停止的地方。从而有可能在程序内的一些特定位置观察变量的值。 可以在所有的编辑器内设置断点。在文本编辑器中,断点设置在行上;在 FBD 和 LD 中,设置在网络号 上;而在 SFC 中,设置在步上。 在功能块实例中不能设置断点。 单步 单步意味着: 使用 IL 语言:直到下一个 CAL、LD 或 TMP 命令之前,一直执行程序。 使用 ST 语言:执行下一个指令。 使用 FBD,LD:执行下一个网络。 使用 SFC:直到下一个步之前,动作一直继续。 使用 CFC:执行 CFC 程序中的下一个 POU(Box)。 通过逐步操作,你可以检查程序的逻辑正确性。 单循环 若已选用单循环,则在每次循环后执行被停止。 在联机情况下改变值 在操作过程中,可将变量一次设定在某个值(写入值),或在每个循环后再次设定为某个值(强制值)。 在联机工作方式,通过在该值上双击可更改变量值。通过对每个其它类型的变量进行从 TRUE 到 FALSE (或相反)的布尔变量改变,我们可得到对话框“Write Variable xy”(写变量 xy),在该对话框中可编 辑变量的实际值。 监视 在联机工作方式,所有可显示的变量都是从控制器中读出的,并以实时方式显示。你可以在声明和程序编 辑器中看到这种显示;也可从监视和接收管理器和可视化设备中读出变量的当前值。若要监视功能块的实 例变量,应首先打开相应的实例。 在监视 VAR_IN_OUT 变量时,输出为间接引用的值。在十字准线上单击或在行上双击,显示会被扩大或 被截短。 在监视指针时,将在声明部分输出指针和间接引用的值。在程序部分则只有指针输出: + --pointervar = '&'pointervalue'&' 另外,还相应地显示间接引用值的指针。 在十字准线上单击或在行上双击,则显示会被扩大或被截短。 TwinCAT PLC Control: 简介监视 ARRAY 部件:除了以常数索引数组部件外,还可显示由变量索引的部件: anarray[1] = 5 anarray[i] = 1 若索引由表达式(例如 [i+j] 或 [i+1])组成,则不能显示部件。 仿真第 25 页 共 249 页在仿真过程中,不是在 PLC 中处理已建立的 PLC 程序,而是在 TwinCAT PLC Control 的计算空间内 处理运行。提供所有的联机功能。因此不需要 PLC 硬件,你就可以测试程序的逻辑正确性。 仿真工作方式只能用于 Buscontroller (BCxx00)。若你在 PC (Code generation i386) 上使用 TwinCAT, 不需要物理 I/O,你可以直接在运行系统中仿真程序。 “Log”(日志) 联机方式运行时,日志按时间顺序记录用户动作、内部过程、状态改变和异常事件。日志用于监视和用于 跟踪错误。 TwinCAT PLC Control: 简介第 26 页 共 249 页1.5IEC 61131-3IEC 61131-3 标准是用于可编程序控制器编程语言的国际标准。在 TwinCAT PLC Control 中提供的编程 语言符合该国际标准的要求。按照该标准,一个程序由以下元素组成: 结构 POU 全局变量 与 IEC 61131-3 有关的文献: Flavio Bonifatti et al.: IEC 1131-3 Programming Methology, Seyssins: CJ International, 1997. ISBN 2--5 Karl-Heinz John, Michael Tiegelkamp: Iec 61131-3 Programming Industrial Automation Systems, Berlin: Springer-Verlag, 2001. ISBN 3- R. W. Lewis: Programming industrial control systems using IEC 1131-3, London: IEC Publishing, 1998. ISBN 0
TwinCAT PLC Control: 样例程序第 27 页 共 249 页22.1样例程序样例程序现在让我们开始编写一个小样例程序。它用于一个小型交通讯号装置,假定用来控制一个路口的两个交通 讯号。两个交通讯号的红灯/绿灯阶段交替,为了避免发生意外,我们在这两个阶段之间插入黄灯或黄灯/ 红灯过渡阶段。后者的持续时间小于前者。在这个例子中,你会理解,如何使用 IEC61131-3 标准的语言 资源来表示与时间有关的程序,如何借助于 TwinCAT PLC Control 来编辑该标准的不同语言。 建立 POU 首先选中 TwinCAT PLC Control,并选择命令“File(文件)”→“New”(新建)。在出现的对话框中, 第一个 POU 应用名 PLC_PRG。POU 的类型应确定是一个程序。在这种情况下,我们选用该 POU 的 语言为顺序功能图 (SFC)。现在应用菜单条或快捷菜单(在“Object Organizer(对象管理器)”中按鼠 标右键),通过命令“Project(项目)”→“Object Add(添加对象)”建立两个对象。对于以功能块图 (FBD)语言编写的名为 TRAFFICSIGNAL 的一个功能块,以及也是功能块类型的一个 POU WAIT,我 们将要以指令表(IL)加以编程。 在 POU TRAFFICSIGNAL,我们将各交通讯号阶段分配给信号灯,亦即,我们要确认在红灯阶段和在黄 灯/红灯阶段,红灯要发红光;在黄灯和黄灯/红灯阶段,黄灯要发黄光,依次类推。 在 WAIT 中,我们将对一个简单的定时器编程,它作为输入将接收以毫秒为单位的时间长度,并作为输出 会在定时时间到达瞬间立即生成 TRUE。 PLC_PRG 将在结束处组合每件事,以便在所需要的时段使合适的灯在合适的时间发光。 现在让我们返回到 POU TRAFFICSIGNAL。在编辑器的声明中,一个名为 STATUS、类型为 INT 的变 量将作为输入变量声明(在关键字 VAR_INPUT 和 END_VAR 之间)。STATUSE 有五种可能的状态, 分别用于 TRAFFICSIGNAL 绿灯、黄灯、黄灯/红灯、红灯和熄灭阶段。 因此,我们的 TRAFFICSIGNAL 有四个输出,即 RED(红灯)、YELLOW(黄灯)、GREEN(绿灯), 以及熄灭。你应声明这四个变量。从而功能块 TRAFFICSIGNAL 的声明部分如下: TwinCAT PLC Control: 样例程序功能块 TRAFFICSIGNAL,声明部分第 28 页 共 249 页现在要从 POU 的输入 STATUS 确定输出变量值。为此,进入到 POU 的本体。点击第一个网络的左边 字段 (有数字 1 的灰色字段) 现在你已选择出第 1 个网络。 。 随即选择菜单项 “Insert” (插入) “Operator” → (操作符)。在第一个网络中,插入操作符 AND 和两个输入的一个框图:用鼠标指针单击文本 AND 并将该文本改为 EQ。从两个输入的第一个输入选择三个问号并输入变量 STATUS。然后选择第二个输入的三个问号并输入常数“1”。你得到如下的网络:现在, 点击 EQ 框后的一个位置。 现在选择 EQ 操作的输出。 选择命令 “Insert” (插入) “Assignment” → (赋值)。将三个问号“???”改为 GREEN(绿灯)。至此,你已建立了以下结构的一条网络:STATUS 与 1 相比较,其结果赋值给 GREEN。若预置状态值为 1,这条网络会切换到 GREEN。对于 其它的 TRAFFICSIGNAL 颜色或对于 OFF(熄灭),我们还需要三条网络。你可用命令“Insert”(插 入)→“Network (after)”(网络(后向))建立这三条网络。这些网络应如样例所示那样建立。最后,完 成的 POU 如下: TwinCAT PLC Control: 样例程序第 29 页 共 249 页为了将一个操作符插入到其它操作符前面,你必须选择一个位置,在这一位置,你要连接到被插入操作符 的输入,并馈送到框内。然后利用命令“Insert”(插入)→“Operator”(操作符)。或者用其它方法, 如 同 第 一 条 网 络 那 样 建 立 这 些 网 络 。 现 在 , 第 一 个 POU 已 完 成 。 按 照 STATUS 的 输 入 值 , TRAFFICSIGNAL 控制所要求的交通灯颜色。 对于 POU WAIT 中的定时器,我们需要一个来自标准库的 POU。因此,用命令“Window”(窗口)→ “Library Manager”(库管理器)打开库管理器。选择命令“Insert”(插入)→“Additional library”(附 加库)。出现用于打开文件的对话框。从库表中选择 standard.lib(标准库)。 现 在 , 让 我 们 回 到 POU WAIT 。 假 定 这 个 POU 成 为 一 个 定 时 器 , 我 们 可 用 它 来 确 定 每 个 TRAFFICSIGNAL 阶段的时段长度。POU 作为输入变量,它接收类型 TIME(时间)的变量 TIME_IN; 而作为输出, 它生成 OK 的一个布尔值, 并在所需要的时段结束时, 它应是 TRUE。 通过在声明结束处 (在 分号之前)插入“:= FALSE”来设置 FALSE。 对于我们的目的而言,我们需要 POU TP(一个时钟脉冲发生器)。它有两个输入(IN,PT)和两个输出 (Q,ET)。TP 有以下作用: TwinCAT PLC Control: 样例程序第 30 页 共 249 页只要 IN 是 FALSE,则 ET 为 0,Q 为 FALSE。一旦 IN 提供值 TRUE,则在输出 ET 处立即以毫秒 单位计算时间。当 ET 达到值 PT 时,ET 不再计数。与些同时,只要 ET 小于 PT,Q 就生成 TRUE。 一旦 PT 达到预设置值,Q 就立即变为 FALSE。此外,你从附录中的标准库中还可以找到所有 POU 的 简要描述。 为了将 POU 用于 POU WAIT, 必需从 TP 建立一个局部实例。 为此, 需要说明类型 TP (在关键字 VAR、 END_VAR 之间)的局部变量 ZAB(用于定时)。这样,WAIT 的声明部分是这样:功能块 WAIT,声明部分 为了建立所需要的定时器,必须按以下方式对 POU 本体进行编程:功能块 WAIT,指令部分 首先提出的问题是,Q 是否已经设置为 TRUE(就像已经执行了计数),在这种情况下,调用 ZAB 不改 变任何事情,但是我们宁可不用输入来调用功能块 ZAB(为了检查时段是否已经超时)。 其它情况下, 我们在 ZAB 的变量 IN 设置为 FALSE, 因此, 同时在 ET 处设置为 0, Q 处为 FALSE。 在 用这种方式,所有的变量都设置在所要求的初始状态。接下来我们将变量 TIME_IN 的时间赋值到变量 PT,并用 IN:=TRUE 调用 ZAB。现在,在功能块 ZAB 内,直到 ET 达到值 TIME_IN 之前一直对它进 行计算,然后,Q 设置为 FALSE。 每次执行 WAIT 后,将 Q 的求反值保存在 OK 内。一旦 Q 是 FALSE,OK 就生成 TRUE。 TwinCAT PLC Control: 样例程序PLC_PRG 中。第 31 页 共 249 页就 在 这 个 时 刻完 成 定 时 器 计数 。 至 此 需 将 两 个 功 能 块 WAIT 和 TRAFFIGSLGNAL 组 合 在 主 程序首先,我们声明所需要的变量。这就是功能块 TRAFFICSIGNAL 的两个实例(TRAFFICSIGNAL1, TRAFFICSIGNAL2)和类型 WAIT(作为延时的 DELAY)。PLC_PRG 如下:程序 PLC_PRG,版本 1,声明部分 SFC 语言的 POU 初始图总是由后随转换“Trans0”的一个动作“Init”和返回到 Init 的一个跳转组成。 需要将它们适当地进行扩展。 首先,在对各 个动作(action)和转换(transition)进行编程之前,先确定图的结构。需要为每个 TRAFFICSIGNAL 阶段编程一个步。通过标记 Trans0 和选择命令“Insert”(插入)→“Step transition (behind)”(步转换(后向)),将步插入。并重复三次这个步骤。 如果你直接在一个转换和一个步名上点击,则可作出标记,并进行更改。对 Init 后的第一个转换命名为 “TRUE”,所有其它转换命名为“DELAY.OK”。 第一个转换总是切换,而所有其它转换为,当 DELAY 时为 OK,并生成 TRUE,即完成设置时段。 各步 (从上到下) 命名为 Switch1、 Green2、 Switch2、 Green1, 当然, Init 保持其 Name (名) “Switch” 。 (切换) 意味着, 每当一个黄灯阶段, Green1 TRAFFICSIGNAL1 和在 Green2 TRAFFICSIGNAL2 将 在 是绿灯。最后,更改 Switch1 后的 Init 返回地址。如果你已经正确地完成了上述的每个操作步骤,则显 示下图: TwinCAT PLC Control: 样例程序第 32 页 共 249 页程序 PLC_PRG,版本 1,指令部分 现在,我们将完成对各步的编程。若在一个步的字段上双击,则打开一个对话框,从而打开一个新的动作。 在我们的示例中,我们将使用 IL(指令表)语言。 动作和转换条件 在 步 动 作 Init , 对 变 量 进 行 初 始 化 , 即 TRAFFICSIGNAL1 的 STATUS 应 是 1 ( 绿 灯 ) 。 TRAFFICSIGNAL2 的状态应是 3(红灯)。从而动作 Init 如下所示:动作 Init Switch1 将 TRAFFICSIGNAL1 改变为 2(黄灯),将 TRAFFICSIGNAL2 改变为 4(黄灯-红灯)。此 外,现在设定一个 2000 毫秒的延时。动作如下: TwinCAT PLC Control: 样例程序第 33 页 共 249 页动作 Switch1 对于 Green2,TRAFFICSIGNAL1 是红灯(STATUS:=3),TRAFFICSIGNAL2 是绿灯(STATUS:=1), 延时设定在 5000 毫秒。动作 Green2 在 Switch2,TRAFFICSIGNAL1 的 STATUS 改变为 4(黄灯-红灯),TRAFFICSIGNAL2 改变为 2(黄 灯)。现在设定一个 2000 毫秒的延时。动作 Switch2 Green1,TRAFFICSIG-NAL 是绿灯(STATUS:=1),TRAFFICSIG-NAL2 是红灯(STATUS:=3),延 时设定在 5000 毫秒。动作 Green1 至此已完成程序的第 1 个版本。现在可以编辑这个程序和测试仿真。 为了保证图表至少有一个选择分支,以便使我们在夜晚能断开交通讯号灯,需要在图中包括一个计数器, 它在 TRAFFICSIGNAL 计数到一定次数的循环后将设备断开。 首先,我们需要一个类型为 INT 的新变量 COUNTER。应用 PLC_PRG 声明部分中常用的方式对它进 行声明,并用 0 将它在 Init 处初始化。 TwinCAT PLC Control: 样例程序第 34 页 共 249 页动作 Init,版本 2 现在,

我要回帖

更多关于 twincat plc hmi 的文章

 

随机推荐