常见问题大全[移动操作 - 变量 ]
[ 移动操作 - 变量 指令说明 从TIA V13SP1 开始,S7-1200 V4.0开始,支持以下处理Variant类型的变量的指令,如图1所示。 图1 指令位置 VariantGet]
常见问题大全[移动指令]
MOVE 系列指令 本文档将介绍几个常用 MOVE 系列指令,链接如下: MOVE (U)MOVE_BLK MOVE_BLK_VARIANT MOVE LAD为MOVE指令,SCL使用":="表达式可以完成MOVE的功能(“:=”还可以有其他功能)。 MOVE指令是当EN条件满足时,实现相同数据类型(不包括位、字符串、Variant类型)的变量间的传送。 图1 指令位置 注意: (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 MOVE的传送条件 传送源 (IN) 传送目标 (OUT1) 进行 IEC 检查 不进行 IEC 检查 BYTE BYTE、WORD、DWORD BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、TIME、DATE、TOD、CHAR WORD WORD、DWORD BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、TIME、DATE、TOD、CHAR DWORD DWORD BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、TIME、DATE、TOD、CHAR SINT SINT BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD USINT USINT, UINT, UDINT BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD INT INT BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD UINT USINT, UINT BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD DINT DINT BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD UDINT UDINT BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD REAL REAL DWORD, REAL LREAL LREAL LREAL TIME TIME BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME DATE DATE BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, DATE TOD TOD BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TOD CHAR CHAR, String中的字符 BYTE, WORD, DWORD,CHAR,String中的字符 WCHAR WCHAR, WString中的字符 BYTE,WORD,DWORD,CHAR,WCHAR,WString中的字符 String中的字符 CHAR, String中的字符 CHAR, String中的字符 WString中的字符 WCHAR, WString中的字符 WCHAR, WString中的字符 注意: 1.如果输入 IN 数据类型的位长度超出输出 OUT 数据类型的位长度,则源值的高位会丢失。如果输入 IN 数据类型的位长度低于输出 OUT 数据类型的位长度,则目标值的高位会被改写为 0。 2.REAL传送至DWORD时是按位传送,不是取整。如果需要取整,可以使用ROUND、CONVERT_REAL_TO_DINT等指令。 3.(不)进行IEC检查是指,在MOVE指令所在的OB/FC/FB属性中的"IEC检查"选项,仅在此块中生效。默认的"IEC检查"不激活。设置如图2所示。 图2 IEC检查的设置 MOVE的使用 图3 DB25 1. 单个基本类型变量的传送 图4 单个基本类型变量的传送 2. 数组的传送 图5 数组的传送 3. UDT的传送 图6 UDT的传送 4. String中的字符的传送 图7 String中的字符的传送 5. DTL中的变量的传送 图8 DTL中的变量的传送 6. DB整体之间的传送 条件:DB块为非优化块,或者将优化DB块的存储器预留区域与预留可保持性存储器设置为0字节(如图9所示),并且两个DB块结构完全相同。 1. IN和OUT的DB必须同时为优化DB或者非优化DB。 2. 不允许同时输出到多个DB,即图4的形式。 图9 存储器预留区域设置 图10 DB整体传送 图11 DB整体传送程序 (U)MOVE_BLK LAD和SCL均为(U)MOVE_BLK指令。 (U)MOVE_BLK指令是当EN条件满足时,实现相同数组之间部分元素的传送。MOVE_BLK和UMOVE_BLK的区别是UMOVE_BLK不会被中断打断,并且最多16kB的数据量。 图12 程序位置 图13 指令详情 注意: 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]开始的数组中。 图14 程序使用 图15 运行结果 MOVE_BLK_VARIANT LAD和SCL均为MOVE_BLK_VARIANT指令。 MOVE_BLK_VARIANT的基本功能是数组之间部分元素的传送,并且是可以处理Variant类型的变量的指令之一,适合处理Variant指向的变长数组。 从TIA V13SP1,S7-1200 V4.0开始支持该指令。 图16 指令位置 图17 指令详情 表2 参数说明 参数 声明 数据类型 SRC Input Variant、Array、其他(不包括Bool,Array of Bool) COUNT Input UDINT SRC_INDEX Input DINT DEST_INDEX Input DINT DEST Output Variant、Array、其他(不包括Bool,Array of Bool) RET_VAL Return INT 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区 图18 运行结果 需要注意的是将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结构一致即可。 图19 程序详情 2. 实现变长数组的处理 功能:FC15处理MBV类型变量,该变量作为InOut,FC14中输入MBV类型变量的变长数组,在其内部判断数组大小,然后数组元素逐个执行FC15指令,最后送回变长数组。 图20 指令详情
常见问题大全[二代移动面板选型]
[ 第二代 SIMATIC HMI 移动面板可直接移动操作和监视生产设备。第二代移动面板系统由移动面板、连接盒和连接电缆组成。第二代移动面板有 4"、7" 和 9" 屏可供选择。 下图]
常见问题大全[二代移动面板介绍]
[ 第二代移动面板介绍 https://new.siemens.com/global/en/products/automation/simatic-hmi/panels]
常见问题大全[二代移动面板附件]
[ 附件不包含在交付范围内,但可从下列地址订购: HMI附件 1. KTP移动面板墙式安装支架 在固定操作期间,墙式安装支架用于有效固定移动面板。 2. 备用钥匙 KTP 移动面板备用钥匙是第二代故障安全移动]
没找到需要的文档?请前往“全球技术资源库” 为您提供海量技术文档
移动 相关问题_去找答案提问 众多业内高手在线解答问题,最快2分钟有答案
常见问题大全[二代移动面板Audit功能]
Audit选件用于记录审核跟踪中的操作和电子签名。简单点说就是记录下哪个操作员做了哪些操作,多用于医药等特殊行业。 SIMATIC WinCC Audit for SIMATIC Comfort/Mobile Panels 订货号:6AV2107-0RP00-0BB0 WinCC Audit功能组态参考资料: 基于TIA Protal WinCC V14 的Comfort触摸屏的Audit操作记录的实现 https://support.industry.siemens.com/cs/cn/zh/view/109749621 符合 GMP 标准的 WinCC Comfort/Advanced (TIA Portal) 组态 https://support.industry.siemens.com/cs/cn/zh/view/109744244
常见问题大全[二代移动面板ProDiag功能]
SIMATIC ProDiag for SIMATIC Comfort/Mobile Panels 订货号:6AV2107-0UP00-0BB0 使用 ProDiag 对机器与工厂进行诊断 https://support.industry.siemens.com/cs/cn/zh/view/109740151 在 WinCC (TIA) 运行系统中什么情况下需要一个 ProDiag 许可证? https://support.industry.siemens.com/cs/cn/en/view/109781163/zh
常见问题大全[二代移动面板SiVArc功能]
SIMATIC Visualization Architect (SiVArc) – Getting Started https://support.industry.siemens.com/cs/cn/en/view/109740350
[移动面板使用入门]
[无论工业领域的任何应用,当移动性对机器设备的现场控制与监视非常重要时,移动面板将显示出很大优点:机器操作员或调试工程师可在他们能够最佳观察工件或过程的位置工作。 ......]
常见问题大全[二代移动面板连接电缆]
[ 使用坚固耐用的连接电缆将移动面板连接至连接盒。其抗张强度和抗挠强度可根据实际使用条件调节。 连接电缆的功能: 给移动面板供电 实现移动面板和连接盒之间的以太网连接 传输急停/停止]


技术支持
AI小西
风驰卡
产品入门
在线产品选型
售后登记和质保查询
ASP工程师验证
ASP公司证书验证
售后服务常见问题
首页
售前文档(样本、宣传册等)
售后文档(FAQ、手册等)
首页
立即开通1847会员
首页
教室培训课
取证训练营
在线自学课
认证证书查询
培训伙伴验证
首页
最新发帖
精华帖
发新帖
已解决问题
精华常见问题
运维工程师专区
官方商城









