1、施耐德PLC Twido PLC 可编程控制器 第六章指令第六章、指令 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 表
2、查找指令6-3-15 表最大值和最小值查找功能 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分别对应直接,
4、反转,置位,和复位线圈,其中: N 表示输出的非 S 表示强制置位 R 表示强制复位程序例:异或指令(XOR, XORN, XORR, XORF) 异或指令执行操作数(或它的反转数,或上升沿,或下降沿)和前面指令的布尔运算结果间的异或操作。下图是异或指令示例。特殊情况 下面是对梯形图中使用异或指令的特别警告: 不要在梯级的第一个位置插入异或触点。 不要将异或触点与其它梯形图元素并行放置(见下面示例)。 如下图所示,加入一个与异或触点相并行的元素将会产生确认错误。取反指令(N) 取反(N)指令将前面指令的布尔运算结果取反。下图是取反指令使用示例。 注意:取反指令不可逆,下图显示了取反指令的时序图
5、。6-2标准功能块 6-2-1 定时器功能块掌握要点:定时器功能块的使用,配置. 定时器功能块 %TM i TWIDO PLC 可提供128个定时器(0 到 63:TWDLCAA10DRF 和 TWDLCAA16DRF, 0 到 127对所有其它控制器)。 定时器有三种类型,可在配置时设定: TON(定时器 导通延时):这种定时器用于控制导通延时动作。 TOF (定时器 关断延时):这种定时器用于控制关断延时动作。 TP (定时器脉冲):这种定时器用于产生精确宽度的脉冲。 延时或脉冲周期可编程并可使用TwidoSoft进行修改。 下面是定时器功能模块图例。 定时器功能块使用的参数:参数标识值定
6、时器编号%TMi0 到 63:TWDLCAA10DRF 和 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值可以通过活动表编辑器修
7、改。N: No,预置%TMi.P值不能被修改。输入使能(或指令)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类型定时器操作时序图。下表描述了T
8、ON类型定时器的操作。阶段描述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.P)时Q(%TMi.Q)输出为
9、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) = 预置值(%TMi.P)时Q(%TMi.Q)输出为0 当输入IN的下降沿来临时定时器停
10、止,%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时当前值%Tmi.V置为0。6定时器不能被复位。一旦%TMi.V等于%TMi.P且输入IN为0,则%Tmi.V置为
11、0。配置: 在编程软件配置菜单下: 编程: 程序例: BLK %TM0 LDN %TM1.Q IN OUT_BLK LD Q ST %Q0.2 END_BLK BLK %TM1 LD %TM0.Q IN END_BLK 6-2-2 计数器功能块 掌握要点:计数器功能块的使用,配置. 功能说明: 使用UP/DOWN 计数器功能块可用来双向计录事件数,加计数和减计数可同时进行。下面是加/减计数器功能模块图例。 计数器功能模块具有如下参数参数标识值计数器编号%Ci0 到 127当前值%Ci.V字根据输入(或指令)CU 和 CD被增加或减少。可被程序读和测试,但不可写。使用数据编辑器修改%Ci.V。预
12、置值%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.加运算输入(或指令)CU在上升沿增加%Ci.V。减运算输入(或指令)CD在上升沿减少%Ci.V。减运算溢出输出E (Empty)当减计数器%Ci.V从0变到9999时,相关位%Ci.E=1(当%Ci.V到达99
13、99时置为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从9999变为0时,相关位%Ci.F=1,计数器继续向上计数,%Ci.F=0向下计数: 当从CD输入一个上升沿时,%Ci.V减1,当%Ci.V从0变为9999时,相关位%Ci.E=1,计数器继续向下计数,%Ci
14、.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被激活)。当前值%Ci.V加1。当前值%Ci.V等于预置值%Ci.P。“预置达到”输出位%Ci.D变为1。当前值%Ci.V从9999变为0。输出位%Ci.F(加计数溢出)变为1。如果计数器继续增加。输出位%Ci.F(
15、加计数溢出)复位到0。减计数减计数输入CD出现上升沿(或指令CD被激活)。当前值%Ci.V减1。当前值%Ci.V从0变为9999。输出位%Ci.E(减计数溢出)变为1。如果计数器继续减少。输出位%Ci.E(减计数溢出)复位到0。加/减计数要同时使用加计数和减计数功能(或同时激活指令CD和CU),必须对同时控制两个对应的输入CD和CU。这两个输入被连续扫描。如果它们都为1,则当前值保持不变。复位输入R置为状态1(或者指令R被激活)。当前值%Ci.V被强制为0。输出%Ci.E, %Ci.D 和 %Ci.F置为0。复位输入优先。置位如果输入S置为1(或指令S被激活)且复位输入为0(或指令R未被激活)
16、。当前值%Ci.V取%Ci.P值且输出%Ci.D置为1。配置:在编程软件配置菜单下: 编程:程序例: BLK %C0 LD %C0.D R LD %S6 CU END_BLK BLK %C1 LD %C0.D CU OUT_BLK LD D ST %Q0.0 END_BLK 6-2-3移位寄存器功能模块(%SBRi)移位寄存器功能模块(%SBRi)提供了二进制数据位(0或1)的左移或右移。下面是一个移位寄存器功能模块示例。移位寄存器功能模块具有下列参数。参数标识值寄存器编号 %SBRi0 到 7寄存器位 %SBRi.j移位寄存器的位0到15(j = 0到15)可被测试指令测试,且由赋值指令写。
17、输入(或指令)复位RWhen function parameter R is 1, this sets register bits 0 to 15 %SBRi.j to 0.左移输入(或指令)CU其上升沿将寄存器位左移一位。右移输入(或指令)CD其上升沿将寄存器位右移一位。操作说明:CD上升沿时寄存器位015依次向右移一位,最低位第0位丢失CU上升沿时寄存器位015依次向左移一位,最高位第15位丢失R上升沿时将寄存器位015置位0程序例:LDN %SBR0.15ST %SBR0.0BLK %SBR0LD %S6CUEND_BLK6-2-4步进计数器功能模块(%SCi) 步进计数器功能模块(%S
18、Ci)提供了一系列的步,动作可赋值给这些步。从一个步移动到另一个步取决于外部或内部事件。每当一个步处于激活状态时,相关位被置为1。步进计数器在一个时刻只能有一个步被激活。 下面是一个步进计数器功能模块示例。 步进计数器功能模块具有下列参数参数标识值步进计数器编号 %SCiI=0 - 7步进计数器位%SCi.j步进计数器的位0到255(j = 0到255)可被装载逻辑测试,且由赋值指令写。输入(或指令)复位RWhen function parameter R is 1, this resets the step counter.输入(或指令)增加CU其上升沿将步进计数器增加一步。输入(或指令)减
19、少CD其上升沿将步进计数器减少一步。操作说明:CU上升沿时步计数器前进一步,相应的步计数器位被置ONCD上升沿时步计数器后退一步,相应的步计数器位被置ONR上升沿时步计数器被复位.时序图 下面是步进计数器功能模块操作时序图。编程 下面是一个步进计数器功能模块示例。 步进计数器0由输入%I0.2增加。 步进计数器0由输入%I0.3或当它到达步3时复位到0。 步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
20、.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, %Qi:L, %Si:L, %Xi:L%MFi, %MFi%MWjImmediate value, %MWi, %KWi, %IW,%IWAi, %INWi, %QWi, %QWAi %QNWi, %SWi, %BLK.x, %MWi%
21、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比较指令:用来比较两个操作数, 包括: 大于( ),大于等于( = ),小于( ),小于等于( = ),不等于( ),等于( = ).语法及操作数类型:运算符语法, =, , =, =, LD Op1运算符Op2AND Op1运算符Op2OR Op1运算符Op2操作数: 类型操作数1 (Op1)操作数2 (Op
22、2)字%MWi, %KWi, %INWi, %IW, %IWAi, %QNWi, %QWi, %QWAi, %QNWi, %SWi, %BLK.x立即值, %MWi, %KWi, %INWi, %IW, %IWAi, %QNWi, %QW, %QWAi, %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整数算术指令算术指令用于执行两个整数操作数之间或一个整数操作
23、数上的算术运算。下表列出了算术指令类型。指令功能+两个操作数相加-两个操作数相减*两个操作数相乘/两个操作数相除REM两个操作数相除的余数SQRT一个操作数的平方根INC一个操作数递增 DEC一个操作数递减 ABS一个操作数的绝对值 语法取决于使用的运算符,如下表所示。运算符语法+,-,*,/,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, %KW
24、i, %INW, %IW, %IAi, %QNW, %QW, %QWAi, %SWi, %BLK.x双字%MDi立即值, %MDi, %KDi溢出和出错条件 加法 字运算中溢出如果结果超出-32768 和 +32767范围,位%S18(溢出)被置为1。且所得结果不正确(见下页例1)。用户程序管理位%S18。 注意:对双字,其范围是-2147483648 和 21474836487。乘法 运算时溢出如果结果超出字的范围,位%S18(溢出)被置为1,且结果没有意义。 除法/取余 被0除如果除数是0,则不能进行除法运算且系统位%S18被置为1。结果不正确。 运算时溢出如果商超出字的范围,位%S18被
25、置为1。 平方根开方 运算时溢出平方根开方只适用正值。这样,其结果总为正。如果平方根操作数为负,系统位%S18被置为1且结果不正确。 程序例:6-3-4逻辑指令逻辑指令用于执行两个字操作数之间或一个字操作数的逻辑运算。下表列出了逻辑指令类型。指令功能AND与(位方式),用于两个操作数之间OR逻辑或(位方式),用于两个操作数之间XOR异或(位方式),用于两个操作数之间NOT逻辑反(位方式),用于一个操作数语法取决于使用的运算符: 运算符语法操作数1 (Op1)操作数2和3 (Op2 & 3)AND, OR, XOROp1:= Op2 运算符 Op3%MWi, %QWi, %QWAi, %SWi立
26、即值 (1), %MWi, %KWi, %IW, %IWAi, %QW, %QWAi, %SWi, %BLK.xNOTOp1:=NOT(Op2)程序例 6-3-5移位指令移位指令将操作数向右或向左移动若干位。下表列出了移位指令类型。语法取决于使用的运算符,如下表所示。运算符语法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转换指令 转换
27、指令执行数字不同类型间的转换。下表列出了转换指令类型。指令功能BTI BCD - 二进制 转换ITB 二进制- BCD转换语法取决于使用的运算符,如下表所示。运算符语法BTI, ITBOp1:=运算符(Op2)操作数: 类型操作数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位字。语法取决于使用的运算符,如下表所示:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1