1.常规指令
在PLC常规指令中,使用者可以进行新建程序段、插入空功能框、打开分支和关闭分支等操作。
(1)新建程序
①指令:新建程序段。
②功能描述:插入新的程序段。
(2)插入空功能框
①指令:空功能框。
②功能描述:插入空功能框,通过双击其红色问号,可以在下拉菜单中选择相应的LAD指令,从而将空功能框改为相应LAD指令。
(3)打开分支
①指令:打开分支。
②功能描述:打开多个分支。
(4)关闭分支
①指令:关闭分支。
②功能描述:可以关闭可用的分支。
2.位逻辑运算指令
在PLC基本指令下的位逻辑运算指令中,使用者可以插入常开触点、插入常闭触点、取反RLO、插入线圈、置位输出、复位输出、插入置位/复位触发器、插入复位/置位触发器、扫描操作数的信号上升沿等,如图所示,各指令具体功能、参数和示例如图所述。
(1)插入常开触点
①指令:常开触点。
②功能描述:操作数为1时,常开触点闭合,指令输出为1;操作数为0时,指令输出为0。
(2)插入常闭触点
①指令:常闭触点。
②功能描述:操作数为1时,指令输出为0;操作数为0时,指令输出为1。
(3)取反RLO
①指令:取反RLO。
②功能描述:对逻辑运算结果取反,输入为“1”时,指令输出为“0”;输入为“0”时,输出为“1”。
(4)插入线圈
①指令:线圈。
②功能描述:输入逻辑运算结果为“1”时,指定操作数被置“1”,线圈输入为“0”时,指定操作数被复位为“0”。
(5)置位输出
①指令:置位输出。
②功能描述:线圈输入逻辑运算结果为“1”时,指定的操作数将置位为“1”;线圈输入逻辑运算结果为“0”时,指定操作数保持不变。
(6)复位输出
①指令:复位输出。
②功能描述:线圈输入逻辑运算结果为“1”时,指定的操作数将复位为“0”;线圈输入逻辑运算结果为“0”时,指定操作数保持不变。
(7)插入置位/复位触发器
①指令:置位/复位触发器。
②功能描述:输入S为“1”,R为“0”时,指定操作数被置位为“1”;输入S为“1”,R1为“1”时,指定操作数复位为“0”;输入 S为“0”,R1为“1”时,指定操作数复位为“0”;输入S为“0”,R1为“0”时,指定操作数保持不变。其中,参数S为使能置位;R1为使能复位;Q为操作数状态。
③示例:如图2-6所示,M0.2为1,M0.3为0时,Q0.0置1;M0.2为1,M0.3为1时,Q0.0复位为0;M0.2为0,M0.3为1时,Q0.0复位为0;M0.2为0,M0.3为0时,操作数Tag_1保持不变。
图2-6 置位/复位触发器图
(8)插入复位/置位触发器
①指令:复位/置位触发器。
②功能描述:输入R为“1”,S1为“0”,操作数复位为“0”;输入R 为“1”,S1为“1”,操作数置位为“1”;输入R为“0”,S1为“1”,操作数置位为“1”;输入R 为“0”,S1为“0”,操作数保持不变,其中R为使能复位,S1为使能置位,Q为操作数状态。
③示例:如图2-7所示,M0.2为1,M0.3为0时,Q0.0复位为0;M0.2为1,M0.3为1时,Q0.0置位为1;M0.2为0,M0.3为1时,Q0.0置位为1;M0.2为0,M0.3为0时,操作数Tag_1保持不变。
图2-7 复位/置位触发器图
(9)扫描操作数的信号上升沿
①指令:扫描操作数的信号上升沿。
②功能描述:逻辑运算结果从“0”变为“1”时,该指令输出为“1”,否则,指令输出为“0”。
③示例:如图2-8所示,上一次扫描的信号状态在Tag_2中,当M0.2为1并且M0.4由0变为1时,Q0.0为1。
图2-8 扫描操作数的信号上升沿图
(10)扫描操作数的信号下降沿
①指令:扫描操作数的信号下降沿。
②功能描述:逻辑运算结果从“1”变为“0”时,该指令输出为“1”,否则,指令输出为“0”。
(11)扫描 RLO的信号上升沿
①指令:扫描 RLO的信号上升沿。
②功能描述:逻辑运算结果从“0”变为“1”,该指令输出为“1”,否则,指令输出为“0”。
③示例:如图2-9所示,M0.2由0变为1时,Q0.0为1。
图2-9 扫描 RLO的信号上升沿图
(12)扫描 RLO 的信号下降沿
①指令:扫描 RLO 的信号下降沿。
②功能描述:逻辑运算结果从“1”变为“0”,该指令输出为“1”,否则,指令输出为“0”。
3.定时器操作指令
S7-300系列PLC的定时器相当于继电器控制电路中的时间继电器,S7-300系列PLC的定时器分为脉冲定时器、扩展脉冲定时器、接通延时定时器、保持型接通延时定时器和关断延时定时器,在PLC基本指令下的定时器操作指令中,使用者可以给相关定时器分配参数并调用。
(1)生成脉冲
①指令:生成脉冲。
②功能描述:生成脉冲,其中,IN为启动输入;PT为脉冲持续时间;Q为脉冲输出;ET为当前时间值。
(2)接通延时定时器
①指令:接通延时。
②功能描述:接通延时定时器,其中,IN为启动输入;PT为延时时间;Q为输出;ET为当前时间值。
③示例:接通延时程序如图2-10所示,其时序图如图2-11所示,M0.2从“0”变为“1时,预设的时间 PT开始计时,超过5s后,输出Q置位为“1”。M0.2为“1”时,输出 Q保持置位,M0.2从“1”变为“0”时,输出 Q复位,定时器值从 T#0s开始,5s后结束,M0.2变为“0”,则复位当前值ET。
图2-10 接通延时程序图
图2-11 生成脉冲时序图
(3)关断延时定时器
①指令:关断延时。
②功能描述:关断延时定时器,其中,IN为启动输入;PT为延时持续时间;Q为输。
③示例:关断延时程序如图2-12所示,其时序图如图2-13所示,M0.2为“1”时,输出Q置位为1,当M0.2为“0”时,计时器开始计时。计时时,输出Q 保持置位,超过5s后,输出 Q复位。如果M0.2在计时5s之前变为“1”,则复位定时器,此时,输出Q仍将为“1”。定时器当前值ET从T#0s 开始,达到5s时结束,超出5s后,在M0.2变回“1”之前,ET输出仍保持为当前值,在超出5s之前,M0.2为“1”,则将ET输出复位为T#0s。
图2-12 关断延时程序图
图2-13 关断延时时序图
(4)分配参数并启动脉冲定时器
①指令:分配参数并启动脉冲定时器。
②功能描述:分配参数并启动脉冲定时器,其中S为启动输入;TV为预设定时值;R为复位输入;BI为BI编码的当前值;BCD为BCD编码的当前值,Q为定时器状态。
③示例:如图2-14所示,M0.2从“0”变为“1”时,将启动定时器T0,M0.2为“1”,定时器便会在TV值处超时,如果在定时器超时前M0.2从“1”变为“0”,定时器T0停止,输出 Q0.0复位为“0”,定时器在运行且M0.2为“1”,则Q0.0为“1”,定时器超时或复位后,Q0.0为“0”。
图2-14 分配参数并启动脉冲定时器图
(5)分配参数并启动扩展脉冲定时器
①指令:分配参数并启动扩展脉冲定时器。
②功能描述:分配参数并启动扩展脉冲定时器,其中,S为启动输入;TV为预设定时值;R为复位输入;BI为BI编码的当前值;BCD为BCD编码的当前值;Q为定时器状态。
③示例:如图2-15所示,M0.2从“0”变为“1”,启动定时器T0,定时器在TV值处超时,而不会受到输入S下降沿的影响,定时器超时之前M0.2从“0”变为“1”,定时器会重启,只要定时器在运行,Q0.0便为“1”,定时器超时或复位后,Q0.0将复位为“0”。
图2-15 分配参数并启动扩展脉冲定时器图
(6)分配参数并启动接通延时定时器
①指令:分配参数并启动接通延时定时器。
②功能描述:分配参数并启动接通延时定时器,其中,S为启动输入;TV为预设定时值;R为复位输入;BI为BI编码的当前值;BCD为BCD编码的当前值;Q为定时器状态。
③示例:如图2-16所示,M0.2从“0”变为“1”时,将启动定时器T0,定时器在TV值处超时,定时器超时且M0.2为“1”时,Q0.0被置位为“1”。如果定时器超时前M0.2从“1”变为“0”,则定时器将停止,此时Q0.0为“0”。
图2-16 分配参数并启动接通延时定时器图
(7)分配参数并启动保持型接通延时定时器
①指令:分配参数并启动保持型接通延时定时器。
②功能描述:分配参数并启动保持型接通延时定时器,其中,S为启动输入;TV为预设定时值;R为复位输入;BI为BI编码的当前值;BCD为BCD编码的当前值;Q为定时器状态。
③示例:如图2-17所示,M0.2从“0”变为“1”时,将启动定时器T0,即使M0.2变为“0”,定时器还是会在TV值处超时,定时器超时后,Q0.0将被置位为“1”,定时器计时期间M0.2从“0”变为1”,定时器将重启。
图2-17 分配参数并启动保持型接通延时定时器图
(8)分配参数并启动关断延迟定时器
①指令:分配参数并启动关断延迟定时器。
②功能描述:分配参数并启动关断延迟定时器,其中,S为启动输入;TV为预设定时值;R为复位输入;BI为BI编码的当前值;BCD为BCD编码的当前值;Q为定时器状态。
③示例:如图2-18所示,M0.2从“1”变为“0”时,将启动定时器T0,定时器在TV值处超时。定时器计时期间如果M0.2为“0”,则Q0.0将被置位为“1”。如果定时器计时期间M0.2从“0”变为“1”,定时器将被复位。
图2-18 分配参数并启动关断延时定时器图
(9)启动脉冲定时器
①指令:启动脉冲定时器
②功能描述:信号从“0”变为 “1”时,如果逻辑运算结果为“1”,定时器状态为“1”,在超出定时器值前,逻辑运算结果由“1”变为“0”,定时器状态为“0”。
③示例:如图2-19所示,M0.2从“0”变为“1”时,启动定时器T0,只要M0.2为“1”,定时器T0便会在TV值处超时,在定时器T0超时前M0.2从“1”变为“0”,定时器T0将停止,只要定时器T0在运行,Q0.0便为“1”,M0.2从“1”变为“0”时复位定时器T0。
图2-19 启动脉冲定时器图
(10)启动扩展脉冲定时器
①指令:启动扩展脉冲定时器
②功能描述:信号从“0”变为“1”时,即使逻辑运算结果为“0”,定时器也会在TV值处超时,定时器在运行时,输出状态为“1”,定时器计时时,如果逻辑运算结果从“0”变为“1”,定时器将在设定的TV值处重启,定时器超时时,定时器状态为“0”。
(11)启动接通延迟定时器
①指令:启动接通延迟定时器。
②功能描述:信号从“0”到“1”时,只要逻辑运算结果为“1”,定时器便会在指定持续时间TV中运行。当定时器超时并且逻辑运算结果为“1”,定时器状态为“1”,如果定时器计时过程中逻辑运算结果从“1”变为“0”,则定时器停止,此时定时器状态为 “0”。
(12)启动保持型接通延时定时器
①指令:启动保持型接通延时定时器。
②功能描述:信号从“0”到“1”时,即使逻辑运算结果变为“0”,定时器也会在指定持续时间处超时,定时器超时后,定时器状态为“1”。
③示例:M0.2从“0”变为“1”时,启动定时器T0,定时器T0超时后,操作数Q0.0将被置位为“1”,如果定时器计时期间M0.2从“0”变为“1”,定时器将重启。
(13)启动关断延时定时器
①指令:启动关断延时定时器。
②功能描述:信号从“1”到“0”时,定时器在指定的持续时间后超时,只要定时器在运行,定时器状态为“1”,如果在定时器计时期间逻辑运算结果从“0”变为“1”,则将复位定时器。
③示例:M0.2从“1”变为“0”时,将启动定时器T0,定时器在TV值处超时,只要定时器在运行,Q0.0便被置位为“1”,如果定时器计时期间M0.2从“1”变为“0”,定时器将重启。
4.计数器操作指令
S7-300系列PLC集成了计数器功能,在PLC基本指令下的计数器操作指令中,使用者可以进行加、减计数和加减计数。
(1)加计数
①指令:加计数。
②功能描述:加计数,其中,CU为计数输入;R为复位输入;PV为限值;Q为计数器状态;CV为当前计数值。
③示例:如图2-20所示,M0.2从“0”变为“1”时,执行“加计数”指令,同时 CV值加 1,每出现一个信号上升沿,计数值便加 1,直到达到数据类型的上限值(32767)为止,当前计数值大于或等于PV的值,Q0.0便为“1”,在其他任何情况下,Q0.0均为“0”。
图2.-20 加计数器图
(2)减计数
①指令:减计数。
②功能描述:减计数,其中,CD为计数输入;LD为装载输入;PV为限值;Q为计数器状态;CV为当前计数值。
③示例:如图2-21所示,M0.2从“0”变为“1”时,执行“减计数”指令,且CV值减 1,每出现一个上升沿,计数值便减 1,直到达到数据类型的下限值 (-32768) 为止,当前计数值小于或等于0,Q0.0就为“1”,在其他任何情况下,Q0.0均为“0”。
图2-21 减计数器图
(3)加减计数
①指令:加减计数。
②功能描述:加减计数,其中,CU为加计数输入;CD为减计数输入;R为复位输入;LD为装载输入;PV为限值;QU为加计数器状态;QD为减计数器状态;CV为当前计数值。
③示例:如图2-22所示,M0.2或M0.3从“0”变为“1”时,则执行“加减计数”指令,M0.2出现上升沿时,当前计数值加1并存储在CV中,M0.3出现信号上升沿时,当前计数值减1并存储在CV中,当输入 CU出现信号上升沿时,计数值将递增,直至达到上限 32767,输入CD出现信号上升沿,计数值将递减,直至达到下限-32768。当前计数值大于或等于PV值500,Q0.0就为“1”,在其他任何情况下,Q0.0均为“0”;当前计数值小于或等于0,Q0.1就为“1”,在其他任何情况下,Q0.1均为“0”。
图2-22 加减计数器图
(4)分配参数并运行加计数
①指令:分配参数并运行加计数。
②功能描述:分配参数并运行加计数,其中,CU为加计数输入;S用于干预计数值;PV为预设计数值;R为复位输入;CV为十六进制当前值;CV_BCD为BCD编码当前值;Q为计数器状态。
③示例:如图2-23所示,M0.2从“0”变为“1”且当前计数值小于“999”,则计数值加 1,M0.3从“0”变为“1”时,计数值会被设置为PV值,当M0.6为“1”时,计数值复位为“0”,只要当前计数值不等于“0”,Q0.0便为“1”。(www.xing528.com)
图2-23 分配参数并运行加计数器图
(5)分配参数并运行减计数
①指令:分配参数并运行减计数。
②功能描述:分配参数并运行减计数,其中,CD为减计数输入;S用于干预计数值;PV为预设计数值;R为复位输入;CV为十六进制当前值;CV_BCD为BCD编码当前值;Q为计数器状态。
③示例:如图2-24所示,M0.2从“0”变为“1”且当前计数值大于“0”时,计数值减 1,M0.3“0”变为“1”时,计数值会被设置为PV值,M0.6为“1”时,计数值复位为“0”,当前计数值以十六进制值的形式保存在CV中,以 BCD 编码的形式保存在CV_BCD中,只要当前计数值不等于“0”,输出Q0.0便为“1”。
图2-24 分配参数并运行减计数器图
(6)分配参数并运行加减计数
①指令:分配参数并运行加减计数。
②功能描述:分配参数并运行加减计数,CU为加计数输入;CD为减计数输入;S用于干预计数值;PV为预设计数值;R为复位输入;CV为十六进制当前值;CV_BCD为BCD编码当前值;Q为计数器状态。
③示例:如图2-25所示,M0.2出现上升沿并且当前计数值小于“999”时,计数值加“1”,M0.7出现上升沿并且当前计数值大于“0”时,计数值减“1”,M0.3从“0”变为“1”时,计数值会被设置为PV值,M0.6为“1”时,计数值复位为“0”,当前计数值不等于“0”,Q0.0为“1”。
图2-25 分配参数并运行加减计数器图
(7)设置计数器值
①指令:设置计数器值。
②功能描述:当逻辑运算结果从“0”变为“1”时,计数器被设置为指定计数值。
(8)向上计数
①指令:向上计数。
②功能描述:逻辑运算结果出现信号上升沿,计数器加1,达到上限“999”后,计数值不再递增。
(9)向下计数
①指令:向下计数。
②功能描述:逻辑运算结果出现信号上升沿,计数器减1,达到下限“0”,计数值也不再递减。
5.比较器操作指令
在PLC基本指令下的比较器操作指令中,使用者可以对操作数进行等于、不等于、大于或等于、小于或等于、大于和小于比较操作。
(1)等于
①指令:等于。
②功能描述:如果第一个比较值等于第二个比较值,指令的逻辑运算结果“1”,否则“为0”。
③示例:如图2-26所示,M0.2为1时,比较值1等于比较值2,Q0.0为1。
图2-26 等于图
(2)不等于
①指令:不等于。
②功能描述:如果第一个比较值不等于第二个比较值,指令的逻辑运算结果为“1”,否则为“0”。
(3)大于或等于
①指令:大于或等于。
②功能描述:如果第一个比较值大于或等于第二个比较值,指令的逻辑运算结果为“1”,否则为“0”。
(4)小于或等于
①指令:小于或等于。
②功能描述:如果第一个比较值小于或等于第二个比较值,指令的逻辑运算结果为“1”,否则为“0”。
(5)大于
①指令:大于
②功能描述:如果第一个比较值大于第二个比较值,指令的逻辑运算结果为“1”,否则为“0”。
(6)小于
①指令:小于。
②功能描述:如果第一个比较值小于第二个比较值,指令的逻辑运算结果为“1”,否则为“0”。
6.数学函数指令
在PLC基本指令下的数学函数操作指令中,使用者可以对操作数进行加、减、乘、除等各种数学函数操作。
(1)加法
①指令:加法
②功能描述:在输出OUT(OUT=IN1+IN2)处获得输入IN1值与输入IN2值的总和。其中EN为使能输入;ENO为使能输出;IN1为第一个数;IN2为第二个数;OUT为总和。
③示例:如图2-27所示,M0.2为1时,OUT=IN1+IN2,指令执行成功则Q0.0为1。
图2-27 加法图
(2)减法
①指令:减法。
②功能描述:在输出OUT(OUT=IN1-IN2)处获得输入IN1值与输入IN2值的差值。其中EN为使能输入;ENO为使能输出;IN1为第一个数;IN2为第二个数;OUT为差值。
(3)乘法
①指令:乘法。
②功能描述:在输出OUT(OUT=IN1*IN2)处获得输入IN1值与输入IN2值的乘积。其中EN为使能输入;ENO为使能输出;IN1为第一个数;IN2为第二个数;OUT为乘积。
(4)除法
①指令:除法。
②功能描述:在输出OUT(OUT=IN1/IN2)处获得输入IN1值与输入IN2值的商。其中EN为使能输入;ENO为使能输出;IN1为第一个数;IN2为第二个数;OUT为商。
(5)取余
①指令:取余。
②功能描述:在输出OUT处获得输入IN1值除以输入IN2值的余数。其中EN为使能输入;ENO为使能输出;IN1为第一个数;IN2为第二个数;OUT为余数。
(6)取反
①指令:取反。
②功能描述:更改输入 IN值的符号,结果在OUT处输出。其中EN为使能输入;ENO为使能输出;IN输入;OUT为二进制补码。
(7)计算绝对值
①指令:计算绝对值。
②功能描述:计算输入IN的绝对值,结果在OUT处输出。其中EN为使能输入;ENO为使能输出;IN输入;OUT为绝对值。
(8)取最大值
①指令:取最大值。
②功能描述:比较输入 IN1、IN2 和 IN3的值,最大值在OUT处输出。其中,EN为使能输入;ENO为使能输出;IN1为第一个数;IN2为第二个数;IN3为第三个数;OUT为输出结果。
(9)设置限值
①指令:设置限值。
②功能描述:将输入IN限制在MN与MX之间,当MN<IN<MX时,OUT处输出IN值,当IN<MN时,OUT处输出MN值,当IN>MX时,OUT处输出 MX值。其中,EN为使能输入;ENO为使能输出;MN为下限;IN为输入值;MX为上限;OUT为输出结果。
③示例:如图2-28所示,M0.2为1时,当MN<IN<MX时,OUT处输出IN值,当IN<MN时,OUT处输出MN值,当IN>MX时,OUT处输出 MX值,指令执行成功则Q0.0为1。
图2-28 设置限图
(10)取平方
①指令:取平方。
②功能描述:计算输入IN值的平方,在OUT处输出结果。其中,EN为使能输入;ENO为使能输出;IN为输入值;OUT为输出结果。
(11)取平方根
①指令:取平方根。
②功能描述:计算输入IN值的平方根,在OUT处输出结果,当输入IN值小于零时,OUT处输出一个无效浮点数。其中,EN为使能输入;ENO为使能输出;IN为输入值;OUT为输出结果。
(12)取自然对数
①指令:取自然对数。
②功能描述:计算输入 IN以e为底的自然对数,在OUT处输出结果。其中,EN为使能输入;ENO为使能输出;IN为输入值;OUT为输出结果。
(13)取指数值
①指令:取指数值。
②功能描述:计算输入 IN以e为底数的幂指数,在OUT处输出结果。其中,EN为使能输入;IN为输入值;OUT为输出结果。
7.移动操作指令
在PLC基本指令下的移位操作指令中,使用者可以进行移动值、块移动和填充区域等操作。
(1)移动值
①指令:移动值。
②功能描述:将输入IN的数据,传送到输出OUT1。指令块如图所示,其中,EN为使能输入;ENO为使能输出;IN为源地址;OUT1为目标地址。
③示例:如图2-29所示,M0.2为1时,MD16中的数据复制到MD20中,指令执行成功则Q0.0为1。
图2-29 移动值图
(2)块移动
①指令:块移动。
②功能描述:将数据从一个存储区移动到另一个存储区中。其中EN为使能输入;ENO为使能输出;SRCBLK为源区域;RET_VAL为错误代码;DSTBLK为目标区域。
(3)不可中断的存储区移动
①指令:不可中断的存储区移动。
②功能描述:将数据从一个存储区的移动到另一个存储区,可使用 ANY 指针来定义源区域和目标区域,此复制操作不会被操作系统的其他任务打断。其中,EN为使能输入;ENO为使能输出;SRCBLK为源区域;RET_VAL为错误代码;DSTBLK为目标区域。
8.程序控制操作指令
在PLC基本指令下的程序控制操作指令中,使用者可以进行跳转、插入跳转标签和返回等操作。
(1)若RLO=“1”,则跳转
①指令:若RLO=“1”,则跳转。
②功能描述:中断程序的顺序执行,并从其他程序段继续执行,该指令输入逻辑运算结果为“1”,则将跳转到跳转标签标识的程序段,若输入逻辑运算结果为“0”,则继续执行下一程序段。
③示例:如图2-30所示,M0.2为1时,跳转到程序3,M0.2为0时,顺序执行程序段2。
图2-30 若RLO=“1”则跳转图
(2)若RLO=“0”,则跳转
①指令:若RLO=“0”,则跳转。
②功能描述:中断程序的顺序执行,并从其他程序段继续执行,该指令输入逻辑运算结果为“0”,则将跳转到跳转标签标识的程序段,若逻辑运算结果为“1”,则程序继续执行下一程序段。
(3)跳回标签
①指令:跳回标签。
②功能描述:标识一个目标程序段。
(4)返回
①指令:返回。
②功能描述:输入逻辑运算结果为“1”时,在当前被调用块中终止程序执行,当调用块中执行调用功能后可继续执行。
(5)退出程序
①指令:退出程序。
②功能描述:输入逻辑运算结果为“1”时,CPU更改为STOP模式,终止程序执行,若该指令输入逻辑运算结果为“0”时,不执行该指令。
9.字逻辑运算指令
在PLC基本指令下的字逻辑运算指令中,使用者可以进行“与”运算、“或”运算、“异或”运算和求反码等操作。
(1)“与”运算
①指令:“与”运算。
②功能描述:将输入IN1值与输入IN2值逐位进行“与”运算,在OUT处输出结果。其中,EN为使能输入;ENO为使能输出;IN1为第一个值;IN2为第二个值;OUT为结果。
(2)“或”运算
①指令:“或”运算。
②功能描述:将输入IN1值与输入IN2值逐位进行“或”运算,在OUT处输出结果。其中,EN为使能输入;ENO为使能输出;IN1为第一个值;IN2为第二个值;OUT为结果。
(3)“异或”运算
①指令:“异或”运算。
②功能描述:将输入IN1值与输入IN2值逐位进行“异或”运算,在OUT处输出结果。其中,EN为使能输入;ENO为使能输出;IN1为第一个值;IN2为第二个值;OUT为结果。
10.移位和循环移位指令
在PLC基本指令下的移位和循环移位指令中,使用者可以进行右移、左移、循环右移和循环左移操作。
(1)右移
①指令:右移。
②功能描述:将输入IN中的内容按位向右移位,在OUT处输出结果,无符号值移位时,用零填充左侧区域中空出的位,有符号值移位时,用符号位填充空出的位。其中,EN为使能输入;ENO为使能输出;IN为待移位值;N为移位位数;OUT为结果。
③示例:如图2-31所示,M0.2为1时,将输入IN中的内容按位向右移5位,在OUT处输出结果,指令执行成功则Q0.0为1
图2-31 右移图
(2)左移
①指令:左移。
②功能描述:将输入IN中的内容按位向左移位,在OUT处输出结果,无符号值移位时,用零填充右侧区域中空出的位,有符号值移位时,用符号位填充空出的位。其中,EN为使能输入;ENO为使能输出;IN为待移位值;N为移位位数;OUT为结果。
(3)循环右移
①指令:循环右移。
②功能描述:将输入IN中操作数的内容按位向右循环移位,在OUT处输出结果,用移出的位填充循环移位空出的位。其中,EN为使能输入;ENO为使能输出;IN为待移位值;N为移位位数;OUT为结果。
③示例:如图2-32所示,M0.2为1时,将输入IN中的内容按位循环右移5位,在OUT处输出结果,指令执行成功则Q0.0为1。
图2-32 循环右移图
(4)循环左移
①指令:循环左移。
②功能描述:将输入IN中操作数的内容按位向左循环移位,在OUT处输出结果,用移出的位填充循环移位空出的位。其中,EN为使能输入;ENO为使能输出;IN为待移位值;N为移位位数;OUT为结果。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。