【摘要】:S7-1200 PLC的移动指令如表5-5所示。表5-5 移动指令(续)对于数据复制操作有以下规则:1)要复制Bool型数据,应使用SET_BF、RESET_BF、R、S或输出线圈指令。另外需要注意,MOVE_BLK和UMOVE_BLK指令在处理中断的方式上有所不同:MOVE_BLK指令执行期间排队并处理中断事件。UFILL_BLK指令完成执行前排队但不处理中断事件。如果在执行中断OB子程序前移动操作必须完成且目标数据必须一致,则使用UFILL_BLK指令。
使用移动指令将数据元素复制到新的存储器地址,并从一种数据类型转换为另一种数据类型。移动过程不会更改源数据。S7-1200 PLC的移动指令如表5-5所示。
表5-5 移动指令
(续)
对于数据复制操作有以下规则:
1)要复制Bool型数据,应使用SET_BF、RESET_BF、R、S或输出线圈指令。
2)要复制单个基本数据类型、结构或字符串中的单个字符,使用MOVE指令。
3)要复制基本数据类型数组,使用MOVE_BLK或UMOVE_BLK指令。
4)要复制字符串,使用S_CONV指令。
5)MOVE_BLK和UMOVE_BLK指令不能用于将数组或结构复制到I、Q或M存储区。
另外需要注意,MOVE_BLK和UMOVE_BLK指令在处理中断的方式上有所不同:
MOVE_BLK指令执行期间排队并处理中断事件。在中断OB中未使用移动目标地址的数据时,或者虽然使用了该数据,但目标数据不必一致时,使用MOVE_BLK指令。如果MOVE_BLK操作被中断,则最后移动的一个数据元素在目标地址中是完整并且一致的。MOVE_BLK操作会在中断OB执行完成后继续执行。
UMOVE_BLK指令完成执行前排队但不处理中断事件。如果在执行中断OB前移动操作必须完成且目标数据必须一致,则使用UMOVE_BLK指令。
对于数据填充操作有以下规则:
1)要使用BOOL数据类型填充,使用SET_BF、RESET_BF、R、S或输出线圈指令。
2)要使用单个基本数据类型填充或在字符串中填充单个字符,使用MOVE指令。
3)要使用基本数据类型填充数组,使用FILL_BLK或UFILL_BLK。
4)FILL_BLK和UFILL_BLK指令不能用于将数组填充到I、Q或M存储区。
另外需要注意,FILL_BLK和UFILL_BLK指令在处理中断的方式上有所不同:
FILL_BLK指令执行期间排队并处理中断事件。在中断OB未使用移动目标地址的数据时,或者虽然使用了该数据,但目标数据不必一致时,使用FILL_BLK指令。
UFILL_BLK指令完成执行前排队但不处理中断事件。如果在执行中断OB子程序前移动操作必须完成且目标数据必须一致,则使用UFILL_BLK指令。
相关推荐