TwinCAT PLC 编程手册_第1页
TwinCAT PLC 编程手册_第2页
TwinCAT PLC 编程手册_第3页
TwinCAT PLC 编程手册_第4页
TwinCAT PLC 编程手册_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、tWinCAT PLC 编 程 手 册2.7 版 本IEC 61131-3 PLC 编程语言德国倍福电气北京代表处 TOC o 1-3 1.TWinCAT PLC 概 述 PAGEREF _Toc58142883 h 32.TWinCAT PLC 要 点 PAGEREF _Toc58142884 h 52.1. 程 序 的 组 成 部 分 PAGEREF _Toc58142885 h 52.3.调试,在线功能 PAGEREF _Toc58142886 h 172.4.标准 PAGEREF _Toc58142887 h 183.让我们写一段小程序 PAGEREF _Toc58142888 h 1

2、94.TWinCAT PLC 的详细组成局部 PAGEREF _Toc58142889 h 304.1.操作工程 PAGEREF _Toc58142890 h 304.2.操作目标 PAGEREF _Toc58142891 h 424.3.常用编辑命令 PAGEREF _Toc58142892 h 454.4.常用在线命令 PAGEREF _Toc58142893 h 464.5.关于视图 PAGEREF _Toc58142894 h 534.6.编排窗口 PAGEREF _Toc58142895 h 544.7.求助信息 ! PAGEREF _Toc58142896 h 555.TWinCA

3、T PLC编辑器 PAGEREF _Toc58142897 h 575.1.说明语句编辑器 PAGEREF _Toc58142898 h 575.2.文本编辑器常用功能 PAGEREF _Toc58142899 h 605.3.指令表编辑器 PAGEREF _Toc58142900 h 645.4.结构化文本编辑器 PAGEREF _Toc58142901 h 665.5.图形编辑器 PAGEREF _Toc58142902 h 765.6.功能块图编辑器 PAGEREF _Toc58142903 h 775.7. 梯形图编辑器 PAGEREF _Toc58142904 h 815.8. 用L

4、D编写的一个POU: PAGEREF _Toc58142905 h 815.9. 顺序功能流程图编辑器 PAGEREF _Toc58142906 h 855.10. 用SFC编写的一个POU: PAGEREF _Toc58142907 h 855.11. PLC组态 PAGEREF _Toc58142908 h 915.12. 全局变量 PAGEREF _Toc58142909 h 915.13. 库管理器 PAGEREF _Toc58142910 h 935.14. 变量观测窗口 PAGEREF _Toc58142911 h 945.15. 采样跟综 PAGEREF _Toc58142912

5、 h 955.16. 任务编辑器 PAGEREF _Toc58142913 h 996.可视化 PAGEREF _Toc58142914 h 1017. DDE接口 PAGEREF _Toc58142915 h 1048.附录 PAGEREF _Toc58142916 h 105A.键盘操作 PAGEREF _Toc58142917 h 105B.IEC运算 PAGEREF _Toc58142918 h 105B.1.算术运算 PAGEREF _Toc58142919 h 105B.2.位串运算 PAGEREF _Toc58142920 h 107B.3.选择函数 PAGEREF _Toc58

6、142921 h 108B.4.比拟函数 PAGEREF _Toc58142922 h 110B.5.地址函数 PAGEREF _Toc58142923 h 113B.6.调用操作符CAL PAGEREF _Toc58142924 h 113C.标准的库函数 PAGEREF _Toc58142925 h 113C.1.类型转换函数 PAGEREF _Toc58142926 h 113C.2.数值函数 PAGEREF _Toc58142927 h 114C.3.位移函数 PAGEREF _Toc58142928 h 116C.4.字符串功能 PAGEREF _Toc58142929 h 117C

7、.5.双稳态功能块 PAGEREF _Toc58142930 h 120C.6.边沿检测 PAGEREF _Toc58142931 h 121C.7.计数器 PAGEREF _Toc58142932 h 122C.8.计时器 PAGEREF _Toc58142933 h 123D.TWinCAT PLC中的操作数 PAGEREF _Toc58142934 h 126E. 错误信息参考 PAGEREF _Toc58142935 h 1301.TWinCAT PLC 概 述TWinCAT PLC是什么?TWinCAT PLC 是 一 个 完 整 的 用 于 逻 辑 控 制 器 的 开 发 系 统。

8、TWinCAT PLC 具 有 功 能 强 的 语 言 结 构, 符 合IEC 国 际 标 准。这 些 使 你 易 于 进 行 程 序 的 开 发。 就 像Visual C+ 一 样,具有高 级 语 言 编 程 系 统的开发 环 境 ,可为编 辑器 的 操 作 和 调 试 功 能设 置 模式。程序的结构是什么? 所 有 的 项 目 数 据 存 在 一 个 有 项 目 名 称 的 文 件 中。 一 个 新 项 目 的 第 一 个POU, 系 统 会 自 动 地 给 定 名 称MAIN, 这 是 程 序 的 起 点。 在 C 程 序 中, 这 是 一 个 主 函数。 从 这 里 开 始, 你 可

9、以 调 用 其 它 的POUs 程 序, 功 能 块 和 函数。TWinCAT PLC 区 分 一 个 项 目 中 的 三 种 不 同 目 标 :POUs, 结 构 和 可 视 化 元 素。 利 用 这 些 目 标, 你 可 以 创 建 你 的 项 目。 在 目 标 表 中, 你 可 以 看 到 你 的 项 目 目 标 。 怎样写程序?首 先, 当 你 开 始 开 发 一 个 新 程 序 时, 你 必 须 对 你 的 硬 件 系 统 进 行 组 态。 这 对 于 检 查 使 用 的 地 址 是 否 正 确 是 必 要 的。现在 你 可 以 对 你 的 问 题 组 态 必 要 的POUs。 然

10、后, 你 开 始 用 你 选 择 的 语 言 对 你 的POUs 进 行 编 程。在 编 辑 完 项 目 的 所 有 目 标 后, 编 译 你 写 的 程 序 并 去 掉 语 法 错 误。怎样测试程序 ?当 修 正 了 程 序 中 的 所 有 语 法 错 误 后, 你 可 以 转 换 到 仿真模 式, 登 录 到 仿真控 制 器 中, 并 把 你 的 项 目 装 入 到 控 制 器 里, 现 在,TWinCAT PCL 以 在 线 方 式 运 行。你 可 以 打 开 图 形 硬 件 组 态 窗 口, 强 制 给 定 输 入, 然 后 观 察 输 出。 在 每 个POU 的 说 明 语 句 部

11、分 以 及 全 局 变 量 表 中, 你 能 够 看 到 项 目 数 据 的 当前值, 你 也 可 以 去 写, 强 制 给 定 数 值。 在 另 一 个 观 察 窗 口 中, 你 可 以 组 态 你 想 要 检 查 的 数 据 单 元。用TWinCAT PLC进行调试在 发 生 程 序 错 误 的 地 方, 你 可 以 设 置 中 断 点。 程 序 停 止 执 行 后, 你 可 以 在 这 个 中 断 点 上 检 查 所 有 的 程 序 数 据。 单 步 功 能 允 许 你 一 步 一 步 地 检 查 程 序 的 逻 辑 是 否 正 确。进一步的在线功能TWinCAT PLC 支 持 进 一

12、 步 的 调 试 功 能。 允 许 按 照 一 定 数 值 强 制 改 变 程 序 变 量 和 输 入/ 输 出 值。 流 程 控 制 使 你 能 够 检 查 哪 一 行 程 序 被 执 行, 并 且 当 运行 编 码 时, 向 你 显 示 该 行 所用 的 每 个 变 量 的 数 值。采 样 跟 综 用 于 跟 综 变 量 并 以 曲 线 方 式 显 示 数 值。在 编 写 和 测 试 程 序 后, 你 可 以 把 程 序 下 装 到 你 的 硬 件 系 统 中, 并 继 续 测 试。 这 时, 像 用 模 拟 方 式 调 试 一 样,你可用 同 样 的 调 试 方 法。TWinCAT PL

13、C的其它功能在 任 何 时 候, 可 以 将 整 个 项 目 存 档 或 输 出 到 一 个 文 本 文 件 中。总 结TWinCAT PLC 是 一 个 完 整 的 用 于 逻 辑 控 制 器 的 开 发 系 统。 使 用TWinCAT PLC, 使 你 大 大减 少 开 发 应 用 软 件 所 需 要 的 时 间。2.TWinCAT PLC 要 点为了便于你掌握TWinCAT PLC, 请阅读下面的根本TWinCAT PLC术语表:2.1. 程 序 的 组 成 部 分 项 目Project)一个工程包括控制器程序的所有目标,保存在有工程名称的文件中。一个文件由以下目标组成:PLCConfi

14、guration, Tasks, POUS, 结构,全局变量表,库,观测 变量,可视化元素。 编 程 组 织 单 元 (POUs)XE POUPOUs由函数,功能块和程序构成。每个POU 由说明语句局部和语体组成。语体用IEC 编 程 语 言 编 写:指令表Instruction List (IL), 结构化文本Structured Text(ST), 功能块图Function Block Diagram (FBD), 梯形图Ladder Diagram (LD) 或顺序功能流程 图Sequential Function Chart (SFC).TWinCAT PLC 支持所有的IEC 标 准

15、POUs。POUs 可以调用其它POUs. 然而,被调用的POUs 不允许再 调用其它的POUs. 函数 (Function)XE Function 一 种函数是一个POU,当执行这种函数时,它精确地提供一个数 据元素 也 可以像数列或结构数据那样由多个数据元素组成。 一种函数总是用一定的形式来说明。 即: 在 功 能名称的后面是一个冒号和类型符。一个正确的函数说明语句如下: FUNCTION Fct:INT另外,一个数值被分配给函数。即,函数名称可以像一个输出变量那样使用。函数数值必须与它的说明类型相一致。下列图举例说明函数FBD-Example。该函数用FBD语言编写,有三个BOOL输入和

16、一个BOOL输出:图2.1.1功能在ST语言中,调用一个函数,如同使用一个表达式中的操作数。函数不含有内部的状态信息。这就是说,调用具有相同自变量输入参数的一个函数,总是产生相同的数值输出。举例调用上面所描述的函数:用 IL 语言编写XE ILXE Instruction List:LD7FBD_Example2,4STResult用 ST语言编写XE STXE Structured Text:Result := FBD_Example(7, 2, 4);用 FBDXE FBDXE Function Block Diagram 语言,可这样调用功能 :在SFC语言中,一个功能公可以在一步或一个

17、转换内调用。功能块Function Block) 一个功能块是一个POU,当执行该功能时,它产生一个或多个数值。功能块没有类型说明。XE function block功能块的例程Instances of Function BlocksXE function block, InstanceXE instance一个功能块可以产生多个以不同名称命名的例程。每一例程都有一个相关的标识符例程名称,还有一个数据结构,该数据结构包含有输出,输入和内部变量。像变量一样,功能块例程可被定义在局部变量表中。其方法是用标识符表示,用功能块名称作为类型。下面是功能块FUB,例程名称为INSTANCER :INSTA

18、NCE: FUB;一个功能块的所有数值保持到下一次功能块执行之前。因此,调用同样的功能块,尽管它们有相同的自变量输入变量,但是,功能块的输出值并不总是相同。下列图是一个名称为IL_EXAMPLE的功能块,用IL语言编写,有一个输入变量,二个输出变量。图 2.1.2. 功能块调用功能块的方法,是使用功能块的例程名称。访问功能块变量的方法,是输入功能块的例程名称,其后是一个点和变量名。下面举例说明怎样调用上图描述的功能块ILEXAMPLE。用 IL语言编写XE ILXE Instruction List:图 2.1.3. 用IL语言调用一个功能块用ST语言调用同样的功能块XE ST:图 2.1.4

19、. 用ST语言调用一个功能块用 FBD语言调用功能块:XE FBD图2.1.5. 用FBD语言调用一个功能块在SFC语言中,仅可以在步骤或传送内调用功能块。有关功能块用法的举例见第三章。程序XE Program一个程序就是一个POU。当执行该程序时,它产生一个或多个数值。不允许像功能块那样产生一个程序的例程见功能块。一个程序的所有数值保持到下一次执行程序之前。一个简单程序举例:图 2.1.6. 程序在程序和功能块内,可以调用程序。在一个函数内不允许调用程序。不存在程序例程。如果一个POU调用一个程序并且改变了程序的数值,这些变化将保持到下一次调用程序之前,即使是一个不同的POU调用该程序。这与

20、调用功能块是不同的。调用功能块的POU仅可以改变功能块的某一例程的数值局部或全局数值举例说明上面所描述的调用程序:用 IL语言编写程序:CALPRGexample用 ST语言编写程序:PRGexample;用 FBD语言编写程序:MAIN名称为MAIN的POU是一个特殊的程序。它是一个新工程中产生的第一个POU。在每个控制器运行周期中,这个POU被调用一次。如果你不使用任务(看5.14节),那么就决不能删除这个POU,也不能给它重新命名!PLC 组态PLC Configuration) XE PLC Configuration XE library你可以使用PLC Configuration组

21、态你的控制器。为了检查一个程序,有必要知道哪些地址是有效的。一个工程的有效地址在PLC Configuration中定义。库Libraries) 你可以把一些库与你的工程连接起来。像使用工程中所定义的POUs那样来使用被连接库中的POUs.库Standard.Lib 包括所有IEC标准函数和功能块,它是TWinCAT PLC的一个组成局部。结构Structure)XE Structure一个结构总是由多个根本的数据元素组成。一个结构的组成局部可以是任何类型的数组,其中包括结构。结构定义举例:多边形STRUCTStart:ARRAY (1.2) OF INT;Point1:ARRAY (1.2)

22、 OF INT;Point2:ARRAY (1.2) OF INT;Point3:ARRAY (1.2) OF INT;Point4:ARRAY (1.2) OF INT;End:ARRAY (1.2) OF INT;END_STRUCT任务XE Task 一个任务控制一些程序或功能块状态的运行。按照IEC11213国际标准的划分,有周期任务,事件触发任务和时间触发任务。当使用任务时,不需要使用MAIN程序。2.2.编程语言指令表 Instruction List (IL)XE ILXE Instruction List指令表IL由一系列的指令组成。每条指令从新的一行开始,并根据操作指令,由操

23、作符,一个或多个操作数组成 ,这些操作数用逗号分开。一条指令可用一个标号引导。该标号由标号名和一个冒号组成。一条注释必须是在一行的最后,两条指令之间可以插入空行。举例:LD17STlint(* Comment *)GE5JMPCnextLDidwordEQistruct.sdwordSTNtestnext:结构化文本 Structured Text (ST)XE STXE Structured Text结构化文本由一系列语句组成。这些语句可以有条件地“IFTHENELSE)或者重复地WHILEDO)执行。举例:IF value 7 THENWHILE value 8 DOvalue := va

24、lue + 1;END_WHILE;END_IF;顺序功能流程图 Sequential Function Chart (SFC)XE SFCXE Sequential Function Chart顺序功能流程图是一种图形语言。这种语言能使编程者按时间顺序描述一个工程内的不同动作。用SFC语言编写,用TWinCAT PLC SFC编辑器进行编辑的例子:图2.2.1: 用SFC编写的网络步和动作 StepsXE Step and ActionsXE Action用SFC编写的POU由一个步的序列组成(如图2.21中的permanent,Init),这些步直接连接。这里所说的动作可附着在每一步上,A

25、ction意味着与动作有关的编码。 传送TransitionXE Transition步与步之间存在着传送(如图2.21中的TRUE,sin_test),一种条件被附着在转换上,这种条件或是一个布尔变量,一个地址,或是一个有布尔结果的表达式,也可能是一个布尔常量(TRUE,FALSE).激活步Active StepXE active step当执行一个SFCPOU程序时,首先执行的动作是初始步双边框。当一个步的动作被执行时,称该步为激活步。每个步有一个标记。这个标记存储步的状态.当步处于激活状态时,标记为TRUE,否那么为FALSE。标记的标识符就是步的名称。它在SFC-POU程序中被说明。执

26、行完一步后,接着执行下面的传送。如果结果值是TRUE,那么激活下面的步,并在下一个处理器周期中执行。功能块图 (FBD) 功能块图是一种图形编程语言。它由一个网络序列组成。每个网络含有一种结构,这种结构代表了一个逻辑或一个算术表达式,一个功能块的调用,一个跳转或一个返回语句(图2.2.2). 用FBD编写的典型的网络例子:图 2.2.2.:用FBD编写的网络梯形图 Ladder Diagram (LD)XE LDXE Ladder Diagram梯形图是一种图形编程语言,类似于电路原理图。一方面,你可以用LD语言去设计逻辑电路,另一方面,你可以用LD语言设计FBD所编写的网络。因此,你可以使用

27、LD语言去控制调用其它的POUs.触点ContactsXE Contact梯形图由一个网络序列组成,在网络的左侧是触点用二条并行的重线|表示,从左向右传递“ON或“OFF状态。这些状态与布尔值1或0相对应。与每个触点相联的是一个布尔变量。如果这个布尔变量是TRUE,那么触点把左边连接线的状态传递到右边连接线上。否那么,右边连接线的状态是OFF。触点可并联连接。在这种情况下,并行支路中的任一分支传送数值ON就能使并行网络传送ON状态。触点也可以串行连接。在这种情况下,所有触点必须传送数值ON,才能使最后的触点传送ON状态。这一点和电路图中的并联或串联连接原理相一致。线圈CoilsXE “Coil

28、在梯形图的右侧是一个线圈网络。这些线圈不能用水平线连接在一起。一个线圈能不加修改地考贝从线圈左侧到右侧的状态,并把这一状态值存入相联的布尔变量中。当一个线圈为“非运算时,它把这一“非运算值存入一个相联的布尔变量中。当一个触点为“非运算时,只有与之相联的布尔变量值为FALSE时,这个“非运算触点才能传送数值。用LD语言编写的网络例子.图用LD语言编写由触点和线圈组成的网络梯形图中的连接XE Links in LD 网络中的连接可以是水平的或垂直的。水平连接用水平线表示,水平连线将它左边的元件状态传送到它右边的元件。垂直连接用垂直线表示。垂直连线传送如下状态: -OFF, 位于垂线左侧的所有水平连

29、线的状态是OFF。-ON, 位于垂线左侧的一条或多条水平连线的状态是ON。梯形图中的功能块在梯形图中,除了使用线圈和触点外,你还可以插入功能块和程序。被插入功能块的第一个输入和第一个输出与梯形网络相连接。因此,第一个输入变量和第一个输出变量必须是布尔型变量。功能块可用在与触点相同的位置上。这就是说,功能块 梯形网络的左侧。置位/复位线圈线圈可定义为置位或复位线圈。一个置位线圈不能改变相关的布尔变量的TRUE值。这样,一旦把变量设置为TRUE,那么置位线圈保持TRUE不变同样地,复位线圈不能改变相关的布尔变量的FALSE值。这样,一旦把变量设置为FALSE,那么复位线圈 保持FALSE不变。把L

30、D用作FBD XE EN-Input XE EN-Input 当使用LD语言工作时,你常希望用触点网络去控制调用其它的POUs程序。在这种情况下,你可以把一个线圈的结果值存入一个全局变量中,并在其它地方使用这个变量。你也可以使用这个结果值去直接调用一个FBD网络。为此,你插入一个带ENINPUT输入端的元件。这种元件可以是一般运算,函数,功能块或程序,它们带有一个附加的输入标记EN。这个ENINPUT数值总是布尔型,并且只有EN端为TRUE时型,并且只有EN端为TRUE时,才能调用该元件。一个EN元件与线圈并联连接。ENINPUT端连接到触点与线圈之间的连线上。当这条连线传送ON状态时, 才能

31、调用ENcomponent元件。从这样一个ENcomponent元件开始,你可以像用FBD语言那样去开发你的网络。图 2.2.4. 使用EN-operator运算元件的局部LD网络。2.3.调试,在线功能采样跟综Sampling TraceXE Sampling Trace采样跟综使你有可能跟综程序的数值变化过程,采样跟综依赖于所谓的触发器事件。这就是事先定义的布尔变量触发变量的下降或上升边缘。TWinCAT PLC 使你能够跟综20个变量的500个数值。调试(Debugging)XE DebuggingTWinCAT PLC的调试功能帮助你找出程序中的逻辑错误。为了选择调试功能,执行命令“P

32、rojectBuild Options,并在对话框中选择 Debugging 选项、断点BreakpointXE BreakpointTWinCATPLC支持中断点的设置。当程序遇到中断点时,停止执行。这时你可以查看中断点处所有的程序数据即变量值。在所有的TWinCAT PLC编辑器中可以设置断点。在文本编辑器中,可以在行号上 设置断点。在FBD和LD中,中断点设置在网络号上。在SFC中,中断点设置在步上。单步Single stepXE single step单步的含义:在 IL中: 程序一直执行,直到遇到下一个CAL,LD 或JMP指令。在 ST中: 执行下一个指令。在FBD, LD中:执行

33、下一个网络。 在SFC中:执行下一步的动作。 通过步进方式,你可 以检查程序的逻辑是否正确。单循环Single cycle如果选择 Single Cycle选项,那么每次循环之后,程序停止执行。监视Monitoring)采用在线方式,在可视变量说明语句的后面,对控制器中的现行值进行监视。为了能够监视可视变量,执行命令 ProjectBuild Options, 并在对话框中选择Monitoring选项。 流程控制Flow Control XE Snap shot 采用快照的方法,通过定义快照区并产生快照,你可以显示一个循环周期内的变量值。这样,在不停止执行程序的情况下,快照区中的一行内的任一变

34、量都可采用现行值来进行监视。仿真SimulationXE Simulation采用仿真方式,用户程序可以在PC机上运行,而代替PLC。在这种方式下,所有在线功能都在工作,不用任何硬件你就能够对你的程序进行逻辑校验。2.4.标准IEC1131-3XE IEC1131-3IEC 1131-3 是PLC编程语言的国际标准。TWinCAT PLC 提供了国际标准中所描述的所有编程语言。3.让我们写一段小程序现在我们来写一段小程序。该程序用于控制交叉路口的两盏交通灯。这两盏交通灯将交替出现红,绿阶段。为了防止事故,我们将插入黄和黄/红转换阶段。红色和绿色阶段要比黄色和黄/红转换阶段持续的时间长。这个例子

35、将告诉你怎样用IEC11313语言编写时间控制的程序,以及怎样用TWinCAT PLC编辑不同的语言。首先,起动TWinCAT PLC并选择 FileNew 选项.建立POUsXE POU通过执行Project Add Object 命令来建立一个POU。 TWinCAT PLC 自动地把这个POU定名为MAIN,你不能改变这个名称,也不能改变这个POUPRG的类型,因为每个工程需要一个名称为MAIN的程序。我们选择顺序功能流程图SFC来编写这个POU。现在我们建立另外两个目标。用功能块图FBD语言编写的块PHASES和用指令表(IL)编写的功能块POU WAIT。XE ILXE Instru

36、ction List.功能块PHASES的用途 ?在PHASES中,交通灯的每个阶段将变换为正确的颜色。这就是说,在红色阶段和黄/红阶段中,红灯一直亮着,在绿色阶段中,绿灯一直亮着,等等。功能块WAIT的用途?WAIT功能块是一个简单的记时器。它有一个输入,用微秒为单位记忆某一阶段持续的时间,当时间到时,记时器变为TRUE。 PLC_PRG 的用途?PLC_PRG用适当的参数调用上述的两个POUs,以便使交通杰在准确的时间点亮,并满足所要求的时间间隔。PHASES 说明语句现在让我们写PHASE。在说明语句局部,你必须说明一个输入变量STATE,其类型为INT在关键词VARINPUT和ENDV

37、AR之间。STATE将有5个可能的状态,也就是每一个阶段有一个状态绿,黄,黄/红,红和断开。相应地,交通灯有四个输出变量,名称为RED,YELLOW,GREEN和断开。请你按照图3.1中所看到的那样来说明这四个变量。 PHASES的说明语句局部如下图:图 3.1: 功能块PHASES的说明语句局部 PHASES 文本现在我们根据输入变量的状态来确定输出变量.为此,你用鼠标器在第一个网络的网络号上击一下左边的灰色区域,包括号码0001。现在你已选择了第一个网络。选择命令InsertOperator 在网络中,将插入一个方块,它的运算符为AND,有二个输入.用你的鼠标器选择AND,将其文本改为EQ

38、。现在把上面的TRUE改为STATE,下面的TRUE改为1。这样你就建好了下面的网络:在方块右边的任一位置击一下。现在就选择了运算的输出。选择Insert Assign.命令,把 result文本改为GREEN。现在你就编好了下面的网络:STATE与1进行比拟,其结果。赋值GREEN:如果STATE值为1,那么网络将使GREEN接通.我们需要别处三个网络,用于其它的交通灯颜色和断开状态。使用InsertNetwork (after)命令建立网络。你应按图3.2所示的方法组态这些网络。现在一个完整的POU如下列图所示:图3.2:功能块 PHASES 的文本为了把一个运算器插到另一个运算器的左边在

39、网络2和3中是必要的,你必须在某个位置上击一下,使新的运算器输出与后面运算器的方块相连接。现在你可以执行 InsertOperator ,命令接下来的工作就是像 个网络那样进行编辑.这样就完成了第一个POU。根据输入值STATE,PHASES控制交通 要求的颜色。 WAIT 说明语句现在让我们开始对WAIT进行编码.这个POU是一个记时器,用于控制交通灯阶段持续的时间。这个POU有一个输入变量TIME1,类型为TIME,并产生一个布尔变量,名称为OK。如果记时器记到了所期望的时间,那么这个布 尔变量值为TRUE。这个变量的初始值是FALSE,它的设置方法是在说明语句后面分号前面插入:= FAL

40、SE. 连接标准库为了对记时器进行编程,你必须使用标准库中的一个POU。执行WindowLibrary Manager命令,翻开库管理器。你将看到与你的工程连接的所有库。标准库也被连 接。根据我们的用途,我们需要POU TP,一个脉冲记时器,这个POU有两个输入(IN, PT) 和两个输出(Q, ET). TP有如下功能:只要IN是TRUE,那么ET为0,Q为FALSE,ET设有从TRUE到FALSE所持续的时间值,单位为微秒。当ET到达PT值时,那么ET保持它的值不变。只要ET比PT小,那么Q值就为TRUE。当ET到达PT值以后,Q值再次变为FALSE。 注意:在附录B节中,你可以找到标准库

41、中所有元素的简要描述。为了在POUWAIT中使用TP,我们必须对TP的局部变量进行说明。因此,我们要说明一个TP型局部变量TEL在关键词VAR与ENDVAR之间该变量代表持续的时间.WAIT的说明语句局部如下列图所示:图3.3.: 功能块WAIT的说明语句局部为了实现所期望的记时器,POU的文体必须按下面的方法编程:WAIT 的文体图3.4.: 功能块WAIT文体首先装入Q值。如果Q为TRUE记时器正在运行,那么我们跳转到标号Lable和cal TEL语句,检查时间是否已到。否那么,我们复位记时器,并且用所期望的时间(time1)来启动记时器.最后,Q的负值存在OK中。因此,time1到达记时

42、时间以后,OK在一个周期中其值为TRUE。 现在记时器已编写完。主程序PLCPRG将把前面的两个功能块WAIT和PHASES连在一起.MAINXE PLC_PRGXE main program 程序的第一步开发首先我们要说明所需要的变量表。这些变量包括功能块PHASES的二个状态 (LIGHT1, LIGHT2),以及功能块 WAIT状态 (DELAY我们得到下面的说明语句:图3.5.: 程序PLC_PRG的第一层,说明语句怎样用SFC语言建立一个图形用SFC编写的一个POU的初始化程序,由下面几局部组成:一个“Init步,接在其后的转换“trans0以及回到Init的一个跳转图3.5。我们打

43、算稍微扩展这个结构。首先我们确定图形的结构。然后我们可以对不同的动作和转换进行编码。对交通灯的每一阶段都需要一个步。你可以通过选择TransO来插入一个步,并执行 Insert Step-Transition (after)XE StepXE Transition命令。连续三次重复以上的过程。直接在一个转换或一个步的名称上击一下,这样就选择了这个名称,并可以改变名 称。用TRUE 代替Trans0,用“ DELAY.OK代替其它的转换。意义是:如果DELAY.OK的值功能块状态DELAY的输出变量是TRUE,这就是说,当time1到达记时时间时,控制总是通过第一个转换和其它的转换。这些步从上到

44、下的名称 是:Switch1,Green2,Switch2,Green1.Init的名称不变。“Switch总是一个黄色阶段。在激活Green1期间,LIGHT1将是绿色。在激活Green2期间,LIGHT2将是绿色。最后,把跳转目标Init改为Switch1.如下图:图3.6.: 程序MAIN的语体,第一次开发现在我们必须填写步骤的动作。如果你双击一个步,那么你得到一个翻开新动作的对话框。在我们的例子中,总是选择IL指令表)编写程序。动作和传送条件XE ActionXE TransitionsbedingungInit步的动作是使变量初始化。LIGHT1的变量STATE被赋值为1绿色。LIG

45、HT2的变量STATE被赋值为3红色。图3.7.Action Init 在Switch1步, LIGHT1 的变量STATE变为2黄色, LIGHT2 的变量STATE变为4 (黄色和红色).延时时间设置为2秒。图3.8. Action Switch1在Green2, LIGHT1 是红色(STATUS:=3), LIGHT2 是绿色(STATUS:=1), 延时时间设置为5000毫秒。图3.9. Action Green2在Switch2步,LIGHT1的变量STATE变为4黄色和红色, LIGHT2的变量STATE变为2黄色,延时时间为2000毫秒图3.10. Action Switch2

46、在Green1步,LIGHT1是绿色(STATUS:=1),LIGHT2是红色(STATUS:=3), 延时时间设置 为5000毫秒.图3.11. Action Green1现在,已经编写完程序的第一层。你可以编译程序,并用模拟方式测试程序.MAIN 程序的第二步开发现在所要考虑的问题是,在经过假设干周期以后,即在夜里,你想要关断交通灯。为此,在程序中我们插入一个记数器,该记数器向上记忆交通灯的运行周期数,并且当记数器到达一定的数值时,交通灯断电。首先,我们需要一个变量类型为INT的新变量COUNTER。在程序PLCPRG的说明语句中说明这处变量,并在动作Init中,使它的初始值为0。LD 0

47、ST COUNTER现在选择Switch1后面的转换,并在这个转换后面插入一个步/转换。 选择新的转换,按SHIFT键并选择跳转前的最后一个置换。主一个选择性支路,(用命令InsertAlternativeBranch(left)在左侧支路转换的后面,插入一个步和一个转换。在新的转换后面,插入一个跳转Switch1.给新增加的局部定名如下:在新增的二个步中,上面的一个定名为Counting.另一个定名为Off.新的转换(从上到下,从左向右)分别被称为“FINISH, TRUE and DELAY.OK.现在,修改后的结构图如下所示:图3.12. 交通灯MAIN程序如同你所看到的,另外两个新增加

48、的动作和一个传送条件已经编写完。. 在Counting步中,记数器每次增加1.图3.13. Action Counting在传送FINISH中,检查记数器是否比某一数值 在,比方说与数值7比拟:图3.14. Transition FINISH在步OFF中,两盏灯的STATE值设置为5(OFF),COUNTER值设置为0, 延时时间设定为10秒 (10,000 微秒):图3.15. Action Off结果在交通灯运行了七个周期以后,天黑下来。在黑暗持续了10秒钟以后,交通灯再次被点亮,等等。交通灯的仿真XE Simulation现在用仿真方式测试编好的程序。通过选择菜单项Online Simu

49、lation mode 来选择仿真方式。用OnlineStart命令执行用户程序。翻开PLCPRG程序,观看激活步蓝色的变化。翻开步骤和传送,监视各个变量。4.TWinCAT PLC 的详细组成局部在下面的章节中,你将找到对TWinCAT PLCXE CoDeSys特性的详细说明。我们将仔细研究每个 菜单项以及它们的用途。两个菜单项Insert和Extras取决于激活的子窗口通常是带有光标的窗口。因此,在编辑器一章中,对它们进行说明。4.1.操作工程XE Project用于操作整个工程的菜单命令放置在菜单项File和Project的下面。在菜单项 Project下面的某些命令仅用于操作目标(t

50、he.Objectitems).在下一章中,对它们进行描述.FileNewXE File用这个命令翻开一个名称为Untitled的新工程。当存这个工程时,必须更改这个名称.FileOpen用这个命令翻开已有的工程。如果一个工程已被翻开并修改,那么,TWinCAT PLC询问是否存这个工程。标准窗口FileOpenDialog出现.从文件表中选出一个扩展名为*.pro的工程文件。这个文件必须存在,否那么,用open命令来建立一个工程是不可能的。要使用NEW命令建立工程。 为了翻开最近使用的一个工程,使用File菜单中Exit命令后面的菜单项。FileClose这个命令用于关闭正翻开的当前工程。如

51、果当前工程被修改,那么TWinCAT PLC询问是否存这个工程。 如果要存的工程名称为Untitled,那么必须按照下面FileSaveas中所描述的方法确定工程的名称。FileSave如果工程已被修改,那么用这个命令存当前工程.快婕键: +.如果要存的工程名称为Untitled,那么必须按照下面FileSave as中所描述的方法确定工程的名称.FileSave as这个命令用于把当前的工程存到一个不同的文件中,原有的工程文件不被改变.选择这个命令以后,标准窗口SaveDialog翻开。选择已有的文件各或输入 一个新的文件 。灰后击一下OK按钮。当前的工程就被存到指定的文件中。如果文件名已经

52、存在,TWinCAT PLC提示你是否覆盖这个文件。FileSave as libraryXE Library这个命令用于把当前工程作为库文件存起来,以便在其它的工程中使用.首先,标准窗口Save Dialog出现。 选择一个已有的文件名或输入任何一个文件名。 然后击一下OK按钮。重新建立整个工程。如果出现任何错误,那么TWinCATPLC显示一个有关的信息。含有错误的工程是不能作为库文件 存入的。如果没有错误发生,那么 当前工程作为库文件存入指定的文件中.如果文件名已存在,那么 TWinCAT PLC提示你是否覆盖这个文件。 一个 用途在库管理器一章中描述。FilePrintXE Print

53、这个命令用于打印激活窗口的内容.快捷键: +.选择这个命令后,标准窗口PrintDialog出现。选择你需要的选项或组态打印机,然后击一下OK按钮。打印激活窗口中所显示的目标。打印工程的局部资料或整个工程资料,使用菜单项Project Documentation.把一个外部文件的注释插到一个目标资料中是可能的。具体做法在全局变量一章中描述.为了确定打印的标题和脚文,使用命令File Printer Setup.FilePrinter SetupXE Documentation这个菜单项选择项允许你设置打印的脚文和标题,以及确定打印机的选项,如使用主象或风景画式的格式等等.选择这个命令后,pri

54、nter Setup 话框出现.图4.1.1 Printer Setup对话框 对每一页输入脚文和标题。可插入下面的文本符号:(Page)打印当前页(Date)当前日期(FileName)工程文件的路径(POUName)当前打印的目标名按和键输入标记.在第一个TAB标记前的任一个文本左对齐打印。在第一个与第二个TAB标记之间的文本对中打印.其余的文本将右对齐打印。你可以选择是否每一页有一个边框,是否每一个新目标另起一页,并且你可以调整左边框 的宽度。缺省值 是10 mm.最下面的Printer Setup按钮是用于翻开标准的Windows Printer Setup 对话框, 这个对 话框的内

55、容取决于你的打印机类型.FileExit这个命令用于退出TWinCAT PLC.快捷键: +.如果一个工程已经翻开 并被修改,那么TWinCAT PLC询问是否存这个工程 ProjectCheckXE Check这个命令用于检查你的程序是否有语法错误.发生的每一错误显示在另一个窗口上,该窗口称为信息窗口。与命令Rebuild all比拟,没有编码产生.ProjectBuildXE Build对所有更改的POUs和结构产生编码.翻开信息窗口,显示编译的过程和发生的错误.注意:如果PLC支持online change功能,那么,Build功能才能被支持.Onlinechange功能的含义是,在PL

56、C运行期间可以改变PLC中程序的某些局部,而不用中断执行程序,所有的数据尽可能保存。ProjectRebuild all对所有更改的POUs和结构产生编码.翻开信息窗口,显示编译的过程和发生的错误.信息窗口:信息窗口显示编译的过程。显示错误所在的POU行和类型。在信息窗口中,选择显示错误的那一行, 并敲键(或双击鼠标).POU的一个窗口翻开。选择网络,现 在你可 以容易地修改错误.使用 (+)键,你可以得到下一个或前一个错误。图4.1.2.信息窗口:编译10个POUs,产生4个错误.在附录中,你可找到所有的错误信息表。Project Options这个菜单包括所有的工程选项。可被设定的选项在下

57、一页中描述:ProjectBuilding optionsXE Building options这个命令允许对产生编码的选项进行设置.选择这个命令后,出现一个对话框.图4.1.3. Build Options 对话框Enable Debugging选择这一选项,使得产生附加的调试编码。当有C-Code编码产生时,才选择这一选项.Enable Monitoring选择这一选项 ,使得产生附加的监视编码当有C-Code编码产生时,才选择这一选项.Enable Online Changes你可以选择是否在线更改你的程序。当有CCode编码产生并且PLC允许在线更改程序时,选择这一选项才是恰当的.Nu

58、mber of Data segments这个号码决定控制器为你的工程所留出存储空间。一个数据存储区等于32Kb。当有可能在线更改程序时,选择这一选项才是恰当的.编译前自动存储 Autosave before compilation如果选择了这一选项,那么在做任何编译之前,你的程序被自动存储.询问工程信息 Ask for Projectinfo如果选择了这一选项,那么当一个工程第一次被存储或者用新的名称存工程时,工程信息对话框便自动翻开。这一选项对工作区来说是特殊的。它不能存在工程文件中,而存在TWinCATPLC.ini 信息文件中。用户信息 User Info用这个命令翻开一个窗口,该窗口

59、中有工程的用户信息.图4.1.4. User Information窗口用户信息由用户名,名称的开头字母和公司名称组成。这些选项对一个工作 来说是特殊的。它们不能存在工程文件中,而存在 TWinCAT PLC.ini 信息文件中.目录 Directories用这个命令翻开一个对话框,你可以插入目录路径,在这里有TWinCAT PLC的库文件和编译文件.图4.1.5. 目录路径这些路径对一个工作区来说是特殊的。它们不能存在工程文件中,而存在TWinCAT PLC.ini 信息文件中.存储选项 Save options图4.1.6. Save Options对话框你可以选择TWinCATPLC是否

60、在下次存储工程时,建立工程的备份版本。如果选择了这一选项,那么TWinCATPLC将把实际工程存到扩展名为。bak的文件中。这样,你可以在最后的平安期之前,恢复这个版本文件。已有的备份文件不能重写。为了得到一个新的备份文件,就要删除或移走已有的备份文件。如果选择了AutoSave这一选项后,那么当时间插入到AutoSaveInterval自动存时间间隔之后,TWinCATPLC将把工程存到扩展名为 .asd 的一个临时文件中。当TWinCAT PLC正常结束时,这个文件被删除。否那么,不能删除这个文件。当再次翻开文件时, TWinCAT PLC检测这个平安文件,并翻开下面的信息框:图4.1.7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论