《Unity Pro编程培训教程第07章 IEC语言梯形图.ppt》由会员分享,可在线阅读,更多相关《Unity Pro编程培训教程第07章 IEC语言梯形图.ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Unity Training course V2.0-Module 3.9:Language ladder 1第七章第七章IEC 语言语言:梯形图梯形图Unity Training course V2.0-Module 3.9:Language ladder 2概览概览n梯形图语言的结构与继电器控制回路相似.n电源母线位于LD编辑器的左边。左电源母线对应环路的相线(L 梯形).对于 LD 编程,只有当 LD 对象连接至电源,或连接到左电源母线时,才会被处理.右电源母线对应于中性线.所有线圈和 FFB 输出必须与它连接,这样会产生电流.n遵循 IEC 61131-3 标准n所有对象连接在一起并与
2、其它对象没有连接的组(除电源母线以外)称为网络或梯级.Unity Training course V2.0-Module 3.9:Language ladder 3概览概览(续续)nLD 编程语言是面向单元格的,如只有一个对象可以放置在一个单元格内n一个 LD 程序段包括一个单页窗口n该窗口以网格来划分不同的行和列n每个 LD 程序段包含11-64 列和 17-2000 行nLD 程序段段中对象的执行顺序执行顺序由程序段内的数据流决定.连接至左边电源母线的梯级,其处理顺序为从上至下(与左边电源母线连接).程序段内互相独立的网络按照位置顺序处理(从上至下)Unity Training cours
3、e V2.0-Module 3.9:Language ladder 4LD 段举例段举例Unity Training course V2.0-Module 3.9:Language ladder 5执行顺序执行顺序n梯级执行从上至下,从左至右(见例子)n执行顺序由执行序号指示(FFB框架右上角的编号).n注:触点和线圈的执行编号一般不显示.Unity Training course V2.0-Module 3.9:Language ladder 6更改执行顺序更改执行顺序n网络的执行顺序和对象在网络中的执行顺序由一些规则来定义.n在某些情况下,系统建议的执行顺序可以修改.n定义/更改网络执行顺
4、序的步骤如下:o使用连接而不是真实的参数o网络位置n定义/更改网络中对象执行顺序的步骤如下n对象定位 Unity Training course V2.0-Module 3.9:Language ladder 7梯形图连接梯形图连接nLD对象之间的连接(触点,线圈和FFB 等.).有 2 种不同类型的连接种不同类型的连接:o布尔连接布尔连接 包括一个或多个段,连接布尔对象(触点,线圈).有 2 种布尔连接类型:水平布尔连接 可以进行顺序触点和线圈的切换.垂直布尔连接 可以进行并行触点和线圈的切换.oFFB 连接连接-FFB 连接是连接FFB输入/输出与其它对象的水平和垂直段的总称.Unity
5、Training course V2.0-Module 3.9:Language ladder 8创建梯形图程序段创建梯形图程序段Unity Training course V2.0-Module 3.9:Language ladder 9编程对象编程对象n有 3 种方法访问梯形图编程对象:o点击“Edit”,然后“New”.Unity Training course V2.0-Module 3.9:Language ladder 10编程对象编程对象 工具条工具条n有 3 种方法访问梯形图编程对象:o点击“Edit”,然后“New”.o使用梯形图对象工具条梯形图对象工具条Unity Trai
6、ning course V2.0-Module 3.9:Language ladder 11编程对象编程对象n有 3 种方法访问梯形图编程对象:o点击“Edit”,然后“New”.o使用梯形图对象工具条梯形图对象工具条o把光标放置在任何空的逻辑编辑单元逻辑编辑单元,然后右击右击选择对象组Unity Training course V2.0-Module 3.9:Language ladder 12编程对象编程对象 工具条工具条Unity Training course V2.0-Module 3.9:Language ladder 13梯形图控制单元梯形图控制单元n控制单元用于在 LD 程序段
7、内执行跳转和从子程序(SRx)或导出功能块(DFB)中返回至主程序.控制元素占一个单元.名称表示描述JumpNEXT当左侧连接的状态为1时,能够执行从当前位置到一个标号的跳转。如需实现一个无条件的跳转,则跳转对象应该直接与左电源母线相连接。如需实现一个有条件的跳转,跳转对象须放置在一序列开关对象的后面。TagLABEL:标号(跳转目标)以末端带冒号的文本对象来指示。该文本对象最多包含32各字符,并且在整个程序段中必须唯一。它的命名必须遵循通用的命名规则。跳转标号只能够放置在电源母线右侧的第一个单元中。注意:跳转标号不能穿过网络,例如,一条从跳转标号到程序段右侧的假想线不能够被另外一个对象穿过。
8、这也适用于布尔连接和FFB连接。ReturnRETURN每一个子程序和每一个DFB在被处理完毕之后会退回到调用它的主程序当中。如果子程序/DFB需要提前退出,可以通过Return对象强制返回到主程序当中。如果左侧连接的状态为1,子程序和DFB中的Return指令被执行,逻辑解算返回到主程序中。Return对象只能够用于DFB或者子程序当中,不能用于主程序。要实现一个有条件的返回,Return对象须放置在一序列开关对象的后面。Unity Training course V2.0-Module 3.9:Language ladder 14操作操作&比较功能块比较功能块n除了 IEC 61131-3
9、 定义的对象,还有两个其它运算块用于执行ST指令和ST表达式以及用于简单比较操作.这些运算块只在LD 编程语言中.它们是:n操作块操作块n比较块比较块Unity Training course V2.0-Module 3.9:Language ladder 15操作块操作块n操作块只在 LD 编程语言中使用.它们用于执行 ST 指令.当左侧连接状态为 1时,执行块中 ST 指令.n除了以下除了以下控制指令外,所有的 ST 指令都可以使用:RETURN,IF,FORJUMP,CASE,etc.)n对于操作块,左侧连接的状态传递到右侧连接(不考虑ST指令的结果).o操作块可以在任何单元中放置.操作
10、块占用 1 行和 4 列.o如果操作块放置在对象已经占用的单元中,则会返回一个错误信息.nA placed operate block automatically creates a connection with itsnneighboring objects on the left if they are of the BOOL data typenand there are no free cells between them.See Additional CommentsUnity Training course V2.0-Module 3.9:Language ladder 16比较
11、块比较块n比较块只用于 LD 编程语言编程语言.它们用于执行ST编程语言中的比较表达式(,=,=,).(注注:ST 表达式可实现相同功能)n如果左侧连接状态为 1,比较结果为 1,则右侧连接的状态也为 1.n比较块可以放在任意单元格中,除了与右侧电源母线相邻的最后一个单元n比较功能块需要 1 行和 2 列.n如果比较块放置在已经被其它对象占用的单元当中,将会返回一个错误信息.n如果比较块被放置在两个相邻的对象之间,并且它们的数据类型为BOOL类型,则比较块会自动产生与左右相邻对象的连接Unity Training course V2.0-Module 3.9:Language ladder 1
12、7边沿检测对象边沿检测对象nLD 对象的不同实现(如系统调用vs.FB 调用)需要使用StateRam 变量(0 x/1x 寄存器).o一个扫描周期内CPU可能对 0 x/1x 寄存器进行多次写访问,因此可以产生不同的在线行为.上升沿检测的开关下降沿检测开关Unity Training course V2.0-Module 3.9:Language ladder 18边沿检测对象示例边沿检测对象示例Unity Training course V2.0-Module 3.9:Language ladder 19梯形图梯形图n网格代表所有对象包括连接和短路。(此例代表一种夸张的情况)Unity T
13、raining course V2.0-Module 3.9:Language ladder 20减少交叉减少交叉Unity Training course V2.0-Module 3.9:Language ladder 21避免带短路和连接的岛避免带短路和连接的岛:n线圈直接连接至右侧电源母线n垂直短接与水平连接的性质一样Unity Training course V2.0-Module 3.9:Language ladder 22避免交叉连接和向后连接避免交叉连接和向后连接n向后连接需要交叉,因为被选择的线圈必须与电源母线相连.Unity Training course V2.0-Modu
14、le 3.9:Language ladder 23实实 验验Unity Training course V2.0-Module 3.9:Language ladder 24实验一实验一步骤步骤动作动作1在 Mast 任务中,右键 Sections 文件夹,使用 New Sections 创建一个新的代码段,名称为 Conveyor,选用 LD 语言进行编程。2添加一个常开触点,双击触点,从 Contact Properties 对话框中单击 按钮,从变量列表当中选择 Run 变量,关联到触点上。3仿照步骤 2 再加一个常开触点,并且将变量 BOX关联到该触点上。4添加一个常闭触点,按照步骤 2
15、 将变量 Stop 关联到该常闭触点上,将三个触点串连在一起。5添加一个常开触点,将变量 RUNNING 关联到该触点上,并且将该触点并联到 Box 触点上。6点击 按钮,点击 FFB Type 字段的 按钮,从功能库 Libset-Base Lib-Timers&Counters 选择 TON 类型,点击确定把该定时器放置到编辑器当中。7将定时器模块的 IN 管脚与 Stop 触点相连接,PT 管脚设为 T#5s,ET 管脚与变量 TIMER1相关联。8添加一个输出线圈,将该线圈与变量 Running 相关联。9Running 线圈的左端与定时器模块的 Q 管脚相连,右端与编辑器的右电源母线
16、相连接。nLD编程Unity Training course V2.0-Module 3.9:Language ladder 25步骤步骤动作动作10换行加入一个上升沿检测触点,与变量 running 相关联。11仿照步骤 6 加入一个计数功能块,功能块的类型为 CTU_UDINT。将该计数器的CU 管脚与 running 的上升沿检测触点相连接,R 管脚与变量 Reset1 相连接,PV 值设为10000,CV 管脚与变量 counter1相连接。12换行加入一个 COMP 块,在 ST Expression 中键入 running。13加入一个 OPER 块,在 ST Statement 中键入 flash:=%s6。14将COMP 块的输出与 OPER 块的输入相连接,并将OPER 块的输出与编辑器的右电源母线相连接。15在 Build 菜单下面选择 Analyze 命令,对当前代码段进行语法分析。如有错误或者警告,双击输出窗口中的信息行对相应的代码进行修改,之后重新进行 Analyze 的操作,直到代码正确无误为止。nLD编程(续)Unity Training course V2.0-Module 3.9:Language ladder 26nLD编程代码示例