数据指令(比较、移位、传送、转换)
-
1 1 比较...
-
2 2 数学...
-
3 3 其他...
上一节
下一节

比较指令
传送指令
移位指令
交换指令


一、比较指令
用来比较数据类型相同的两个操作数IN1和IN2的大小。6个比较指令如下:


注:
比较语句将影响状态字中的状态位 CC 1、CC 0、OV 和 OS。
比较语句的状态位(CC 1 和 CC 0)设置与比较关系无关。
使用无效浮点数时,状态位 CC 1、CC 0、OV 和 OS 将置位为“1”。
下表列示了如何通过比较语句设置状态位:

注意:
比较指令的使用:相比较的两个数IN1和IN2的数据类型必须相同。当数据IN1和IN2满足比较关系式给出的条件时,等效触点接通;否则,等效触点断开。操作数可以是I、Q、M、L、D存储区中的变量或常数。

二、传送指令(MOVE,MOVE_BLK,UMOVE_BLK,SWAP)
MOVE:可以使用“移动值”指令,将 IN 输入处操作数中的内容传送给 OUT1 输出的操作数中。始终沿地址升序方向进行传送。如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”。


MOVE_BLK:可以使用“块移动”指令将一个存储区(源范围)的数据移动到另一个存储区(目标范围)中。使用参数 COUNT 可以指定将移动到目标范围中的元素个数。可通过输入 IN 中元素的宽度来定义元素待移动的宽度。仅当源范围和目标范围的数据类型相同时,才能执行该指令。如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”。


UMOVE_BLK:“不可中断的存储区移动”将一个存储区(源范围)的数据移动到另一个存储区(目标范围)中。该指令不可中断。使用参数 COUNT 可以指定将移动到目标范围中的元素个数。可通过输入 IN 中元素的宽度来定义元素待移动的宽度。


SWAP:可以使用“交换”指令更改输入 IN 中字节的顺序,并在输出 OUT 中查询结果。


下图说明了如何使用“交换”指令交换数据类型为 DWORD 的操作数的字节:
三、移位和循环指令
备注:SHR知识点错误,前面补0




举例:将整数数据类型操作数的内容向右移动 4 位


举例:将 WORD 数据类型操作数的内容向左移动 6 位


举例:将 DWORD 数据类型操作数的内容向右循环移动 3 位


举例:将 DWORD 数据类型操作数的内容向左循环移动 3 位
四、举例
彩灯循环的PLC控制设计



















