1、第6章 算术及移动指令,6.1 目的及目标6.2 二进制算术6.3 有符号的二进制数值6.4 Allen-Bradley算术指令6.5 Allen-Bradley算术和移动指令的运算6.6 A-B数学和移动指令的标准梯形逻辑图6.7 数学和移动指令的经验设计过程6.8 数学和移动梯形逻辑的故障排除6.9 指令的位置,6.1 目的及目标,目的提供二进制算术四则运算介绍A-B的PLC算术及移动指令介绍在PLC中将算术及移动指令应用于自动化系统,目标了解二进制算术的概念掌握二进制反码和补码表示方法描述A-B PLC系统算术指令 开方清零描述A-B PLC系统移动、带掩码移动、取反指令使用A-B PL
2、C系统算术和移动指令开方梯形图在经验设计过程中使用算术和移动指令描述含有算术与移动指令梯形图的故障排除技术,6.2 二进制算术6.3 有符号的二进制数值原码反码补码正数=补码负数=反码+1,6.4 Allen-Bradley算术指令,常用的算术指令,典型的四则运算,就是把源A和源B操作的结果存储到目的单元中。SLC通常是单精度运算,而Logix处理器的缺省数据是32位数(Dint或Real)。数据类型与取值范围见下表。个别指令在这两个系列的处理器中的缩写和操作有所不同,如SWP指令是SLC指令,在Logix平台则是SWPB。具体见各自的指令参考手册。,ControlLogix数据类型及取值范围
3、,6.5 A-B算术和移动指令的运算,指令寄存器的参数、状态位,数学寄存器输入参数源 对其执行操作或移动的数值存放的地址目的 运算结果存储地址算术状态位,算术寄存器S:13 执行MUL指令时产生的32位数值低16位 执行DIV指令的余数。S:14 执行MUL指令时产生的32位数值高16位 执行DIV指令的非四舍五入的商。 当算术参数是实数时,不使用S:13、S:14浮点数据文件的编址,Ff:e,浮点文件,文件编号8,9255,元素分隔符,元素编号9255,6.5.1.6.5.5(自学),DDV指令适用范围所有SLC 及 MicroLogix 1000 处理器(MicroLogix 1200,
4、1400 或 1500 处理器不支持)Logix系统中操作数可以为标签名,所有算术指令中可以使用立即数Logix系统中可以用ST语言编程,可以简化程序(如p216例题6.9),IF input1 THENc:=SQRT(a*a+b*b );END_IF;,6.5.6 移动指令,本节讨论3个指令移动指令(MOV) S D于将数据从源移动到目标值。只要梯级保持为真,每次扫描时指令就会移动数据。带屏蔽字的移动(MVM) S D数据从源移动到目标,允许屏蔽目标值的部分。将屏蔽码中的位设置为零屏蔽数据;将屏蔽码中的位设置为1放行数据。取反指令(NEG) S D 更改源的符号并将结果置于目标值中执行上述指
5、令后源数据不变,屏蔽字,取反,MVM指令执行前目标数据,指令执行后目标数据变化,不变的位,不变的位,6.6 A-B数学和移动指令的标准梯形逻辑图,无梯级条件,每次扫描均执行通过现场设备的操作控制运算进行,仅在开关合上后的第一次扫描时执行使用ADD(SUB)指令构造增(减)量加(减)法器Logix或MicroLogix 1200以上用ONS指令,应用颜色传感器的例子,输入逻辑真,500ms,700ms,I:4/0,I:2.0模拟量输入,颜色传感器,触发脉冲I:4/0,颜色数据I:2.0,400ms,再次读入颜色数据,初次读入颜色数据,一次有效,颜色传感器触发脉冲为真,延时400ms,再次读入颜色
6、数据,例题6.13 小球装箱计数问题。 从传送带上下来要装入纸箱的塑胶小球通过一个位置开关进行计数。四种不同尺寸的小球使用同一传送带和相同尺寸的纸箱。纸箱能够装A类小球96个、B类小球48个、C类小球24个、D类小球12个。箱子装满,指示灯亮。,6.7 数学和移动指令的经验设计过程,6.7.1 在过程中加入数学和移动指令数学指令步骤1 写出过程描述步骤2 为所有的数学指令写出输入逻辑表达式步骤3 确定所需数学指令数量步骤4 确定简化后的数学指令操作顺序或次序移动指令步骤1 写出过程描述步骤2 为所有移动指令的触发写出逻辑表达式,例题6.14例题5.2 设计传输罐装蔬菜传送带的梯形图。传感器探测
7、到12个罐头,就启动一个包装操作。生产线每轮需要包装200个装有12听罐头的盒子。系统包装罐头时,绿灯亮;当200个包裹完成时,红灯亮。另外,需要记录每轮所包装罐头总数。修改要求:标签检测器验证罐头是否贴有标签,无标签这剔除对剔除的罐头计数,并确定正品罐头数剔除罐头数量和正品罐头数量没60秒被传递到整型寄存器中选择需要的寄存器,解:经验设计包括所有数据值都为整型数据对无标签罐头计数可以是传感器输入(NO)或罐头弹出器输出数据传递周期为60秒,Logix定时器预置值为60000 弹出器逻辑 ejector=bad_can_sensor 无标签罐头计数器 Bad_can_count=ejector 移动指令= transfer_timer/DN 减法指令= transfer_timer/DN,6.8 数学和移动梯形逻辑的故障排除,6.9 指令的位置,