施耐德PLCTwidoPLC可编程控制器第六章、指令.docx

上传人:scccc 文档编号:13070332 上传时间:2021-12-13 格式:DOCX 页数:83 大小:623.47KB
返回 下载 相关 举报
施耐德PLCTwidoPLC可编程控制器第六章、指令.docx_第1页
第1页 / 共83页
施耐德PLCTwidoPLC可编程控制器第六章、指令.docx_第2页
第2页 / 共83页
施耐德PLCTwidoPLC可编程控制器第六章、指令.docx_第3页
第3页 / 共83页
施耐德PLCTwidoPLC可编程控制器第六章、指令.docx_第4页
第4页 / 共83页
施耐德PLCTwidoPLC可编程控制器第六章、指令.docx_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《施耐德PLCTwidoPLC可编程控制器第六章、指令.docx》由会员分享,可在线阅读,更多相关《施耐德PLCTwidoPLC可编程控制器第六章、指令.docx(83页珍藏版)》请在三一文库上搜索。

1、.第六章、指令 6-1 布尔指令 6-2 标准功能块 6-2-1 定时器功能块 6-2-2 计数器功能块 6-2-3 移位寄存器功能模块(%SBRi) 6-2-4 步进计数器功能模块(%SCi) 6-3 数字处理指令 6-3-1 赋值指令 6-3-2 比较指令 6-3-3 算术指令 6-3-4 逻辑指令 6-3-5 移位指令 6-3-6 转换指令 6-3-7 单/双字转换指令6-3-8 浮点算术指令6-3-9 三角指令 6-3-10 转换指令6-3-11 整数转换指 <-> 浮点 6-3-12 表求和功能 6-3-13 表比较指令6-3-14 表查找指令6-3-15 表最大值和最小

2、值查找功能 6-3-16 表中某个值的出现次数6-3-17 表循环移动功能6-3-18 表排序功能6-4 程序控制指令 6-4-1 END指令6-4-2 跳转指令 6-4-3 子程序指令 6-5 专用功能块 6-5-1 LIFO/FIFO寄存器功能模块(%Ri)6-5-2 脉宽调制功能模块(%PWM) 6-5-3 脉冲发生器输出功能模块(%PLS)6-5-4 磁鼓控制器功能模块 (%DR) 6-5-5 高速计数6-5-6 超高速计数器功能模块(%VFC)6-5-7 调度模块 6-6 通讯指令 6-6-1 信息发送/接收 6-6-2 数据交换控制 6-1 布尔指令掌握要点:布尔指令:用语所有位元

3、件Load指令(装入):LD,LDN,LDR,LDF分别对应常开,常闭,上升沿,和下降沿 其中: N 代表 “非” R 代表 “上升沿” F 代表 “下降沿”程序例: 逻辑AND 指令 : AND, ANDN , ANDR , ANDF。逻辑与指令执行操作数(或它的反转数,或上升沿,或下降沿)和前面指令的布尔运算结果间的逻辑与操作。程序例: 逻辑OR指令: OR , ORN , ORR , ORF,逻辑或指令执行操作数(或它的反转数,或上升沿,或下降沿)和前面指令的布尔运算结果间的逻辑或操作。程序例: 赋值指令ST, STN, S, 和 R分别对应直接,反转,置位,和复位线圈,其中: N 表示

4、输出的非 S 表示强制置位 R 表示强制复位程序例:异或指令(XOR, XORN, XORR, XORF) 异或指令执行操作数(或它的反转数,或上升沿,或下降沿)和前面指令的布尔运算结果间的异或操作。下图是异或指令示例。特殊情况 下面是对梯形图中使用异或指令的特别警告: 不要在梯级的第一个位置插入异或触点。 不要将异或触点与其它梯形图元素并行放置(见下面示例)。 如下图所示,加入一个与异或触点相并行的元素将会产生确认错误。取反指令(N) 取反(N)指令将前面指令的布尔运算结果取反。下图是取反指令使用示例。 注意:取反指令不可逆,下图显示了取反指令的时序图。6-2标准功能块 6-2-1 定时器功

5、能块掌握要点:定时器功能块的使用,配置.定时器功能块 %TM i TWIDO PLC 可提供128个定时器(0 到 63:TWDLCAA10DRF 和 TWDLCAA16DRF, 0 到 127对所有其它控制器)。 定时器有三种类型,可在配置时设定: TON(定时器 导通延时):这种定时器用于控制导通延时动作。 TOF (定时器 关断延时):这种定时器用于控制关断延时动作。 TP (定时器脉冲):这种定时器用于产生精确宽度的脉冲。 延时或脉冲周期可编程并可使用TwidoSoft进行修改。 下面是定时器功能模块图例。 定时器功能块使用的参数:参数标识值定时器编号%TMi0 到 63:TWDLCA

6、A10DRF 和 TWDLCAA16DRF0 到 127对所有其它控制器。类型TON 定时器 导通延时(默认)TOF 定时器 关断延时TP 脉冲(单稳态)时基TB1 min (默认), 1 s, 100 ms, 10 ms, 1 ms当前值%TMi.V当定时器工作时,该字从0增加到%TMi.P。可被程序读和测试,但不可写。%TMi.V可以通过活动表编辑器修改。预置值%TMi.P0 ?9999。该字可由程序读取,测试和写入。默认值是9999。周期或产生的延时为%TMi.P x TB。活动表编辑器Y/NY: Yes,预置%TMi.P值可以通过活动表编辑器修改。N: No,预置%TMi.P值不能被修

7、改。输入使能(或指令)IN定时器以上升沿(TON或TP类型)或下降沿(TOF类型)开始。定时器输出Q根据实现的功能相关位%TMi.Q置为1:TON, TOF,或 TP 操作说明: TON: 当输入IN上升沿时定时器启动, 定时器当前值(%TMi.V)以时基TB为单位增加,当定时器当前值(%TMi.V) = 预设值(%TMi.P)时Q(%TMi.Q)输出为"1" 当输入IN的下降沿来临时定时器停止,%TMi.V=0,即使计数器当前值(%TMi.V) 没有到达 预设置(%TMi.P), Q(%TMi.Q)输出为"0".下面是TON类型定时器操作时序图。下表描

8、述了TON类型定时器的操作。阶段描述1定时器在输入IN的上升沿开始工作。2当前值%TMi.V以时基TB的脉冲的一个单位为每次增加量从0增加到%TMi.P。3当当前值到达%TMi.P时%TMi.Q输出位置为1。4当输入IN为1时%TMi.Q输出位保持为1。5当检测到输入IN的下降沿,定时器停止,即使定时器没有到达%TMi.P,且%TMi.V置为0。TOF: 当输入IN上升沿时定时器停止%TMi.V=0, Q(%TMi.Q)输出为"1" 定时器在输入IN的下降沿来临时启动,定时器当前值(%TMi.V)以时基TB为单位增加, 当定时器当前值(%TMi.V) = 预设置(%TMi.

9、P)时Q(%TMi.Q)输出为"0"下面是TOF类型定时器操作时序图。下表描述了TOF类型定时器的操作阶段描述1当前值%TMi.V在输入IN的上升沿置为0,即使定时器处于工作状态。2检测到输入N的下降沿时%TMi.Q输出位置为1。3定时器在输入N的下降沿开始工作。4当前值%TMi.V以时基TB的脉冲的一个单位为每次增加量增加到%TMi.P。5当当前值到达%TMi.P时%TMi.Q输出位置为0。TP: 当输入IN上升沿时定时器启动, Q(%TMi.Q)输出为"1" 定时器当前值(%TMi.V)以时基TB为单位增加,当定时器当前值(%TMi.V) = 预置值

10、(%TMi.P)时Q(%TMi.Q)输出为"0" 当输入IN的下降沿来临时定时器停止,%TMi.V=0,在计数器当前值(%TMi.V) 没有到达 预设置(%TMi.P)时定时器不会停止.下面是TP类型定时器操作时序图。 下表描述了TP类型定时器的操作。阶段描述1定时器在输入IN的上升沿开始工作。如果定时器还没开始则当前值%TMi.V置为0。2当定时器开始时%TMi.Q输出位置为1。3当前值%Tmi.V以时基TB的脉冲的一个单位为每次增加量从0增加到%Tmi.P。4当当前值到达%Tmi.P时%Tmi.Q输出位置为0。5当%TMi.V等于%TMi.P且输入IN回到0时当前值%T

11、mi.V置为0。6定时器不能被复位。一旦%TMi.V等于%TMi.P且输入IN为0,则%Tmi.V置为0。配置: 在编程软件配置菜单下:<定时器>编程:程序例:BLK %TM0%TM1.Q %TM0.Q %Q0.2 LDN %TM1.Q INOUT_BLKLD QST %Q0.2END_BLKBLK %TM1LD %TM0.QINEND_BLK 注意: 使用定时器功能块时必须进行配置,否则所有参数都将是缺省值.6-2-2 计数器功能块掌握要点:计数器功能块的使用,配置.功能说明: 使用UP/DOWN 计数器功能块可用来双向计录事件数,加计数和减计数可同时进行。下面是加/减计数器功能

12、模块图例。 计数器功能模块具有如下参数参数标识值计数器编号%Ci0 到 127当前值%Ci.V字根据输入(或指令)CU 和 CD被增加或减少。可被程序读和测试,但不可写。使用数据编辑器修改%Ci.V。预置值%Ci.P0 ? %Ci.P ?9999. Word can be read, tested, and written (default value: 9999).用活动表编辑器编辑ADJY:Yes, 预置值可以通过活动表编辑器修改。N:No, 预置值不能使用活动表编辑器修改。输入(或指令)复位R状态为1:%Ci.V = 0.输入(或指令)复位S状态为1:%Ci.V = %Ci.P.加运算输

13、入(或指令)CU在上升沿增加%Ci.V。减运算输入(或指令)CD在上升沿减少%Ci.V。减运算溢出输出E (Empty)当减计数器%Ci.V从0变到9999时,相关位%Ci.E=1(当%Ci.V到达9999时置为1,如果计数器继续减少则复位为0)。预置输出达到D (完成)当%Ci.V=%Ci.P时,相关位%Ci.D=1。加运算溢出输出F (Full)当%Ci.V从9999变到0时,相关位%Ci.F=1(当%Ci.V到达0时置为1,如果计数器继续增加则复位为0)。操作说明:向上计数: 当从CU输入一个上升沿时,%Ci.V加1,当%Ci.V=%Ci.P时输出位%Ci.D=1, 当%Ci.V从999

14、9变为0时,相关位%Ci.F=1,计数器继续向上计数,%Ci.F=0向下计数: 当从CD输入一个上升沿时,%Ci.V减1,当%Ci.V从0变为9999时,相关位%Ci.E=1,计数器继续向下计数,%Ci.E=0双向计数: 当同时使用向上计数和向下计数时,CU和CD 必须用软件加以控制,如果CU和CD同时为1,则%Ci.V保持不变复位:当R被置为1时,%Ci.V强制为0 ,并且输出位%Ci.E,%Ci.D,%Ci.F均为0 预置:当S=1且R=0时,%Ci.V=%Ci.P,输出位%Ci.D=1下表描述了加/减计数器操作的主要过程。操作动作结果计数加计数输入CU出现上升沿(或指令CU被激活)。当前

15、值%Ci.V加1。当前值%Ci.V等于预置值%Ci.P。“预置达到”输出位%Ci.D变为1。当前值%Ci.V从9999变为0。输出位%Ci.F(加计数溢出)变为1。如果计数器继续增加。输出位%Ci.F(加计数溢出)复位到0。减计数减计数输入CD出现上升沿(或指令CD被激活)。当前值%Ci.V减1。当前值%Ci.V从0变为9999。输出位%Ci.E(减计数溢出)变为1。如果计数器继续减少。输出位%Ci.E(减计数溢出)复位到0。加/减计数要同时使用加计数和减计数功能(或同时激活指令CD和CU),必须对同时控制两个对应的输入CD和CU。这两个输入被连续扫描。如果它们都为1,则当前值保持不变。复位输

16、入R置为状态1(或者指令R被激活)。当前值%Ci.V被强制为0。输出%Ci.E, %Ci.D 和 %Ci.F置为0。复位输入优先。置位如果输入S置为1(或指令S被激活)且复位输入为0(或指令R未被激活)。当前值%Ci.V取%Ci.P值且输出%Ci.D置为1。配置:在编程软件配置菜单下:<计数器>编程:程序例:BLK %C0%Q0.0 %S6 %C0.D %C0.D LD %C0.DRLD %S6CUEND_BLKBLK %C1LD %C0.DCUOUT_BLKLD DST %Q0.0END_BLK6-2-3移位寄存器功能模块(%SBRi)移位寄存器功能模块(%SBRi)提供了二进制

17、数据位(0或1)的左移或右移。下面是一个移位寄存器功能模块示例。移位寄存器功能模块具有下列参数。参数标识值寄存器编号 %SBRi0 到 7寄存器位 %SBRi.j移位寄存器的位0到15(j = 0到15)可被测试指令测试,且由赋值指令写。输入(或指令)复位RWhen function parameter R is 1, this sets register bits 0 to 15 %SBRi.j to 0.左移输入(或指令)CU其上升沿将寄存器位左移一位。右移输入(或指令)CD其上升沿将寄存器位右移一位。操作说明:CD上升沿时寄存器位015依次向右移一位,最低位第0位丢失CU上升沿时寄存器位

18、015依次向左移一位,最高位第15位丢失R上升沿时将寄存器位015置位0程序例: LDN %SBR0.15ST %SBR0.0BLK %SBR0LD %S6CUEND_BLK6-2-4步进计数器功能模块(%SCi) 步进计数器功能模块(%SCi)提供了一系列的步,动作可赋值给这些步。从一个步移动到另一个步取决于外部或内部事件。每当一个步处于激活状态时,相关位被置为1。步进计数器在一个时刻只能有一个步被激活。 下面是一个步进计数器功能模块示例。 步进计数器功能模块具有下列参数参数标识值步进计数器编号 %SCiI=0 - 7步进计数器位%SCi.j步进计数器的位0到255(j = 0到255)可被

19、装载逻辑测试,且由赋值指令写。输入(或指令)复位RWhen function parameter R is 1, this resets the step counter.输入(或指令)增加CU其上升沿将步进计数器增加一步。输入(或指令)减少CD其上升沿将步进计数器减少一步。操作说明:CU上升沿时步计数器前进一步,相应的步计数器位被置ONCD上升沿时步计数器后退一步,相应的步计数器位被置ONR上升沿时步计数器被复位.时序图 下面是步进计数器功能模块操作时序图。编程 下面是一个步进计数器功能模块示例。 步进计数器0由输入%I0.2增加。 步进计数器0由输入%I0.3或当它到达步3时复位到0。 步

20、0控制输出%Q0.1,步1控制输出%Q0.2,步2控制输出%Q0.3。 BLK %SC0LD %SC0.3OR %I0.3RLD %I0.2CUEND_BLKLD %SC0.0ST %Q0.1LD %SC0.1ST %Q0.2LD %SC0.2ST %Q0.36-3数字运算指令、浮点数指令、查表指令6-3-1赋值指令 赋值指令用于把操作数Op2装入操作数Op1。 赋值指令语法运算符语法操作数1 (Op1)操作数2 (Op2):=Op1:= Op2 把操作数2(Op2)的值赋给操作数1(Op1)%MWi,%QWi, %QWAi,%SWi %MWi%MWi, %MDi, %MDi%MWi%Mi:L

21、, %Qi:L, %Si:L, %Xi:L%MFi, %MFi%MWjImmediate value, %MWi, %KWi, %IW,%IWAi, %INWi, %QWi, %QWAi %QNWi, %SWi, %BLK.x, %MWi%MWi, %KWi%MWi, %MDi%MWi, %KDi%MWi,%Mi:L,%Qi:L, %Si:L, %Xi:L, %Ii:L立即浮点值, %MFi, %MFi%MWj, %KFi, %KFi%MWj赋值操作可用于: 位串 字 双字 浮点字 字表 双字表 浮点字表程序例:6-3-2比较指令:用来比较两个操作数, 包括: 大于( > ),大于等于(

22、 >= ),小于( < ),小于等于( <= ),不等于( <> ),等于( = ).语法及操作数类型:运算符语法>, >=, <, <=, =, <> LD Op1运算符Op2AND Op1运算符Op2OR Op1运算符Op2操作数: 类型操作数1 (Op1)操作数2 (Op2)字%MWi, %KWi, %INWi, %IW, %IWAi, %QNWi, %QWi, %QWAi, %QNWi, %SWi, %BLK.x立即值, %MWi, %KWi, %INWi, %IW, %IWAi, %QNWi, %QW, %QWAi,

23、%SWi, %BLK.x, %MWi %MWi, %KWi %MWi双字%MDi, %KDi立即值, %MDi, %KDi, %MDi %MWi, %KD %MWi浮点字%MFi, %KFi立即浮点值, %MFi, %KFi, %MFi %MWi, %KFi %MWi程序例6-3-3整数算术指令算术指令用于执行两个整数操作数之间或一个整数操作数上的算术运算。下表列出了算术指令类型。指令功能+两个操作数相加-两个操作数相减*两个操作数相乘/两个操作数相除REM两个操作数相除的余数SQRT一个操作数的平方根INC一个操作数递增 DEC一个操作数递减 ABS一个操作数的绝对值 语法取决于使用的运算符

24、,如下表所示。运算符语法+,-,*,/,REMOp1:= Op 2运算符Op3INC, DEC运算符Op1SQRT (1)Op1:= SQRT(Op2)ABS (1)Op1:= ABS(Op2)操作数: 类型操作数1 (Op1)操作数2和3 (Op2 & 3) (1)字%MWi, %QWi, %QWAi, %SWi立即值, %MWi, %KWi, %INW, %IW, %IAi, %QNW, %QW, %QWAi, %SWi, %BLK.x双字%MDi立即值, %MDi, %KDi溢出和出错条件 加法 字运算中溢出如果结果超出-32768 和 +32767范围,位%S18(溢出)被置为

25、1。且所得结果不正确(见下页例1)。用户程序管理位%S18。 注意:对双字,其范围是-2147483648 和 21474836487。乘法 运算时溢出如果结果超出字的范围,位%S18(溢出)被置为1,且结果没有意义。 除法/取余 被0除如果除数是0,则不能进行除法运算且系统位%S18被置为1。结果不正确。 运算时溢出如果商超出字的范围,位%S18被置为1。 平方根开方 运算时溢出平方根开方只适用正值。这样,其结果总为正。如果平方根操作数为负,系统位%S18被置为1且结果不正确。 程序例:6-3-4逻辑指令逻辑指令用于执行两个字操作数之间或一个字操作数的逻辑运算。下表列出了逻辑指令类型。指令功

26、能AND与(位方式),用于两个操作数之间OR逻辑或(位方式),用于两个操作数之间XOR异或(位方式),用于两个操作数之间NOT逻辑反(位方式),用于一个操作数语法取决于使用的运算符: 运算符语法操作数1 (Op1)操作数2和3 (Op2 & 3)AND, OR, XOROp1:= Op2 运算符 Op3%MWi, %QWi, %QWAi, %SWi立即值 (1), %MWi, %KWi, %IW, %IWAi, %QW, %QWAi, %SWi, %BLK.xNOTOp1:=NOT(Op2)程序例 6-3-5移位指令移位指令将操作数向右或向左移动若干位。下表列出了移位指令类型。语法取决

27、于使用的运算符,如下表所示。运算符语法SHL, SHROp1:=运算符(Op2,i)ROL, ROR操作数: 类型操作数1 (Op1)操作数2 (Op2)字%MWi, %QWi, %QWAi, %SWi%MWi, %KWi, %IW, %IWAi, %QW, %QWAi, %SWi, %BLK.x双字%MDi%MDi, %KDi程序例6-3-6转换指令 转换指令执行数字不同类型间的转换。下表列出了转换指令类型。指令功能BTI BCD -> 二进制 转换ITB 二进制-> BCD转换语法取决于使用的运算符,如下表所示。运算符语法BTI, ITBOp1:=运算符(Op2)操作数: 类型

28、操作数1 (Op1)操作数2 (Op2)字%MWi, %QWi, %QWAi, %SWi%MWi, %KWi, %IW, %IWAi, %QW, %QWAi, %SWi, %BLK.x双字%MDi%MDi, %KDi 程序例6-3-7单/双字转换指令下表描述了用于执行单字和双字之间转换的指令: 指令功能LW抽取双字的LSB到一个字。HW抽取双字的MSB到一个字。CONCATW连接两个字到一个双字。DWORD转换一个16位字到一个32位字。语法取决于使用的运算符,如下表所示:l运算符语法操作数1 (Op1)操作数2 (Op2)操作数3 (Op3)LW, HWOp1 =运算符(Op2)%MWi%M

29、Di, %KDi-CONCATWOp1 =运算符(Op2, Op3)%MDi%MWi, %KWi, 立即值%MWi, %KWi, 立即值DWORDOp1 =运算符(Op2)%MDi%MWi, %KWi-程序例6-3-8浮点算术指令 这些指令用于执行两个操作数或一个操作数底算术运算。 + 两个操作数相加 SQRT 一个操作数的平方根 - 两个操作数相减 ABS 一个操作数的绝对值 * 两个操作数相乘 TRUNC 浮点值的整数部分 / 两个操作数相除 EXP 自然指数 LOG 以10为底的对数 EXPT 实数的实求幂 LN 自然对数 程序例:指令列表语言LD %M0%MF0:=%MF10+129.

30、7LD %I3.2%MF1:=SQRT(%MF10)LDR %I3.3%MF2:=ABS(%MF20) 6-3-9三角指令 这些指令使得用户可以执行三角运算。 SIN一个角度(弧度)的正弦,ASIN反正弦COS一个角度(弧度)的余弦,ACOS反余弦TAN一个角度(弧度)的正切,ATAN反正切三角运算指令的运算符,操作数和语法运算符语法操作数1 (Op1)操作数2 (Op2)SIN, COS, TAN, ASIN, ACOS, ATANOp1:=运算符(Op2)%MFi%MFi, %KFi程序例:指令列表语言LD %M0%MF0:=SIN(%MF10)LD %I3.2%MF2:=TAN(%MF1

31、0)LDR %I3.3%MF4:=ATAN(%MF20)6-3-10 转换指令 这些指令用于执行转换操作。 DEG_TO_RAD 将角度转换为弧度,结果值介于0和 之间 RAD_TO_DEG 将弧度转换为角度,结果值介于0和360度之间 程序例指令列表语言LD %M0%MF0:=DEG_TO_RAD(%MF10)LD %M2%MF2:=RAD_TO_DEG(%MF20)6-3-11整数转换指 <-> 浮点 提供了四个转换指令。整数转换指令列表<-> 浮点:INT_TO_REAL转换一个整数字-> 浮点DINT_TO_REAL转换双整数字-> 浮点REAL_T

32、O_INT浮点转换-> 整数字(结果为最接近的代数值)REAL_TO_DINT浮点转换-> 双整数字(结果为最接近的代数值) 程序例6-3-12表求和功能 SUM_ARR功能将一个对象表的所有元素加在一起: 如果表由双字组成,则结果以双字格式给出 如果表由浮点字组成,则结果以浮点字格式给出 表求和指令语法:Res:=SUM_ARR(Tab)表求和指令参数类型结果(res)表 (Tab)双字表 %MDi%MDi:L,%KDi:L浮点字表%MFi%MFi:L,%KFi:L程序例6-3-13表比较指令 EQUAL _ARR功能对两个表的元素逐个进行比较。如果找到不同,则第一个不同元素的序

33、列号以一个字的形式返回,否则返回值等于-1。对整个表执行比较操作。 程序例%MW5:=EQUAL_ARR(%MD30:4,%KD0:4)2个表的比较:序列号字表常字表区别0%MD30=10%KD0=10=1%MD31=20%KD1=20=2%MD32=30%KD2=60区别3%MD33=40%KD3=40=字%MW5的值是2(第一个不同元素的序列号)6-3-14表查找指令表查找指令 有3个查找函数: FIND_EQR: 在双字或浮点字表中查找与给定值相等的第一个元素的位置 FIND_GTR: 在双字或浮点字表中查找比给定值大的第一个元素的位置 FIND_LTR: 在双字或浮点字表中查找比给定值

34、小的第一个元素的位置 如果找到符合条件的第一个元素,则指令的结果等于它的序列号,否则等于-1。表查找指令语法:功能语法FIND_EQRRes:=函数(Tab,Val)FIND_GTRFIND_LTR浮点字和双字表查找指令参数:类型结果 (Res)表 (Tab)值 (val)浮点字表%MWi%MFi:L,%KFi:L%MFi,%KFi双字表%MWi%MDi:L,%KDi:L%MDi,%KDi程序例:梯形图语言 %MW5:=FIND_EQR(%MD30:4,%KD0)查找表中=%KD0=30的第一个双字的位置:序列号字表结果0%MD30=10-1%MD31=20-2%MD32=30值 (val),

35、 序列号3%MD33=40-6-3-15表最大值和最小值查找功能 有2个查找函数: MAX_ARR: 查找双字或浮点字表中的最大值 MIN_ARR: 查找双字或浮点字表中的最小值 这些指令的结果等于表中发现的最大值(或最小值)。最大值最小值表查找指令语法:功能语法MAX_ARRRes:=函数(Tab)MIN_ARR最大值最小值表查找指令参数:类型结果 (Res)表 (Tab)双字表%MDi%MDi:L,%KDi:L浮点字表%MFi%MFi:L,%KFi:L程序例:梯形图语言6-3-16表中某个值的出现次数 这个查找函数: OCCUR_ARR: 查找双字或浮点字表中与给定值相等的元素的个数。 最

36、大值最小值表查找指令语法:功能语法OCCUR_ARRRes:=函数(Tab,Val)最大值最小值表查找指令参数:类型结果 (Res)表 (Tab)值 (Val)双字表%MWi%MDi:L,%KDi:L%MDi,%KDi浮点字表%MFi%MFi:L,%KFi:L%MFi,%KFi程序例梯形图语言6-3-17表循环移动功能 有2个移动函数:ROL_ARR: 在浮点字表中从上到下循环移动n个位置 ROL_ARR函数图例ROR_ARR: 在浮点字表中从下到上循环移动n个位置 ROR_ARR函数图例循环移动指令语法有关浮点字或双字表ROL_ARR andROR_ARR功能语法ROL_ARR功能(n,Ta

37、b)ROR_ARR循环移动指令参数有关浮点字表ROL_ARR andROR_ARR:类型位置数(n)表 (Tab)浮点字表%MWi, 立即值%MFi:L双字表%MWi, 立即值%MDi:L程序例:梯形图语言 6-3-18表排序功能 有下面的排序函数可用: SORT_ARR: 对一个双字或浮点字表的元素按照升序或降序进行排序并将结果存储在相同的表中。 表排序函数语法: 功能语法SORT_ARR函数(direction,Tab)"direction"参数给出排序顺序:direction > 0表示升序;direction < 0,表示降序,direction = 0

38、表示不进行排序。结果(已排序表)返回到Tab参数(要排序的表)。表排序函数参数:类型排序顺序表 (Tab)双字表 %MWi, 立即值%MDi:L浮点字表%MWi, 立即值%MFi:L梯形图语言 64 程序指令6-4-1 END指令 END指令定义一个程序扫描执行的结束。END, ENDC, 和 ENDCN 有三个不同的结束指令可用: END:程序无条件结束 ENDC:如果前面测试指令布尔运算结果是1,则程序结束。 ENDCN:如果前面测试指令布尔运算结果是0,则程序结束。 默认(正常模式)情况下,当程序结束被激活时,输出被更新且开始下一次扫描。如果是周期扫描,则当周期结束时输出被更新且开始下一

39、次扫描。6-4-2 跳转指令 跳转指令使程序执行立即中断并转入执行标号为%Li(i = 1到16对于一体型控制器,1到63对于其它控制器)的程序行。JMP, JMPC 和 JMPCN 有三个不同的跳转指令可用: JMP:程序无条件跳转 JMPC:如果前面逻辑布尔运算结果为1,则程序跳转 JMPCN:如果前面逻辑布尔运算结果为0,则程序跳转 跳转指令示例。指导 跳转指令不允许用于圆括号内,且不能位于指令AND(, OR(和右括号指令")"之间。 标号只能位于指令LD, LDN, LDR, LDF 或 BLK之前。 标号%Li的编号在程序中只能被定义一次。 程序可以向下或向上跳转当向上跳转时,必须注意程序扫描时间。延长扫描时间可能导致看门狗的触发。

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1