灯塔沐鸣2 > 网站权重 >

move是甚么意义(S7

作者 灯塔seo  ·  宣布日期 2021-03-17 10:15  ·  来历 未知

  LAD为MOVE指令,SCL利用":="抒发式能够完成MOVE的功效(“:=”还能够有其余功效)。

  MOVE指令是当EN前提知足时,完成不异数据范例(不包含位、字符串、Variant范例)的变量间的传递。

  注重:

  (1)LAD传递字符串须要利用S_MOVE指令(SCL利用“:=”),可是传递字符串中的字符须要利用MOVE指令。

  (2)撑持经由进程一个MOVE指令将一个变量传递到多个变量,可是该功效不撑持传递庞杂数据范例(DTL、布局、数组等)或字符串中的字符。

  (3)传递数组时,请求元素数据范例和元素个数必须完整一样,数组限值能够差别,比方Array[0..1] of Byte能够MOVE到Array[1..2] of Byte。

  (4)若是MOVE双方是根基数据范例,则能够在知足以下兼容前提时传递,参见表1。

  注重:

  1.若是输入 IN 数据范例的位长度超越输入 OUT 数据范例的位长度,则源值的高位会丧失。若是输入 IN 数据范例的位长度低于输入 OUT 数据范例的位长度,则方针值的高位会被改写为 0。

  2.REAL传递至DWORD时是按位传递,不是取整。若是须要取整,能够利用ROUND、CONVERT_REAL_TO_DINT等指令。

  3.(不)停止IEC查抄是指,在MOVE指令地点的OB/FC/FB属性中的"IEC查抄"选项,仅在此块中失效。默许的"IEC查抄"不激活。设置如图2所示。

  MOVE的利用

  1. 单个根基范例变量的传递

  2. 数组的传递

  3. UDT的传递

  4. String中的字符的传递

  5. DTL中的变量的传递

  6. DB全体之间的传递

  前提:DB块为非优化块,或将优化DB块的存储器预留地区与预留可坚持性存储器设置为0字节(如图9所示),并且两个DB块布局完整不异。

  (U)MOVE_BLK

  LAD和SCL均为(U)MOVE_BLK指令。

  (U)MOVE_BLK指令是当EN前提知足时,完成不异数组之间局部元素的传递。MOVE_BLK和UMOVE_BLK的区分是UMOVE_BLK不会被间断打断,并且最多16kB的数据量。

  注重:

  1. IN和OUT必须是数组的一个元素,比方"DB26".Static_1[0],不能是常数、常量、通俗变量,也不能是数组名。

  2. IN和OUT范例必须完整不异,并且必须是根基数据范例,不能是UDT、Struct等的数组。

  3. IN是源数组中传递的肇端元素,OUT是目标数组中领受的肇端元素。

  4. COUNT是传输个数,能够是正整数的常数,若是是变量,数据范例撑持USINT、UINT、UDINT。

  5. 若是目标数组领受地区小于源数组的传递地区,则只传递目标数组可领受的地区的数据。若是激活指令的ENO功效,则ENO=False。

  (U)MOVE_BLK的利用

  完成功效:将"DB26".Static_1[0]起头的4个元素传递至"DB26".Static_2[4]起头的数组中。

  MOVE_BLK_VARIANT

  LAD和SCL均为MOVE_BLK_VARIANT指令。

  MOVE_BLK_VARIANT的根基功效是数组之间局部元素的传递,并且是能够处置Variant范例的变量的指令之一,合适处置Variant指向的变长数组。

  从TIA V13SP1,S7-1200 V4.0起头撑持该指令。

  MOVE_BLK_VARIANT指令凡是用于将源数组SRC的局部元素传递至目标数组DEST的局部元素中,SRC与DEST数组元素必须完整不异。COUNT是传递的元素个数,SRC_INDEX是待传递的源数组的肇端编号,DEST_INDEX是目标数组领受的肇端编号,此处用编号不是下标的意义是,SRC_INDEX和DEST_INDEX都从0起头,对应SRC和DEST的第一个元素。

  一样是传递局部数组元素的指令,MOVE_BLK_VARIANT绝对MOVE_BLK有以下长处:

  1. SRC和DEST不能够是Bool数组,但能够是Struct、UDT等庞杂数据范例数组

  2. SRC和DEST都能够是通俗的单个变量,比方SRC为一个INT变量,DEST作为一个INT数组,此时须要设置COUNT=1,SRC_INDEX=0,而后按照DEST_INDEX的值,传入DEST的指定地位。

  3. SRC和DEST填写的凡是是数组名,也能够是通俗的单个变量,或数组的一个元素,后两种环境都须要像(2)一样处置。

  4. SRC和DEST能够是参数范例Variant的变量,也便是能够间接填写P#指针的格局,指令将会把P#指针看作数组处置(缘由)。即便是SRC和DEST都指向Variant范例,其指向的形参的数组元素数据范例也须要不异,以是凡是须要在利用指令之前用EQ_ElemType查抄此中元素的数据范例。

  利用MOVE_BLK_VARIANT指令的注重:

  (1)COUNT>=1,不然报错并且不传递任何数据。

  (2) COUNT+SRC_INDEX与COUNT+DEST_INDEX决议了SRC与DEST数组元素编号下限,超越规模将报错并且不传递任何数据。

  利用举例:

  1. 完成功效将布局完整一样的M区数据送入DB区

  须要注重的是将DB块改成非优化,M区和DB区均是16Byte,SRC和DEST能够是P#BYTE 16,P#WORD 8,P#DWORD 4等都能够,可是要注重COUNT和元素数不异(P#BYTE 16,COUNT=16;P#WORD 8,COUNT=8;P#DWORD 4,COUNT=4),SRC和DEST布局分歧便可。

  电气相干常识和经历是用来分享,但愿本文能对你有赞助。与人玫瑰,手留余香。

  接待大师存眷,点赞,批评及转发。