西门子PLC的P#指针说明
当Variant类型的实参指向形如P#DB1.DBX0.0 BYTE 10,指令内部将判断该形参为一个10字节的数组。
------------------------------------------------------------------------------------------指针结构-----------------------------------------------------------------------------------------------------
P#DB1.DBX0.0 BYTE 10这种结构起源于S7-300/S7-400的Any指针,S7-1200无法像S7-300/S7-400一样定义以及拆解Any指针,但是在参数类型为Variant时,可以输入这种指针。并且,如前所述,S7-1200将识别其为数组。
P#DB1.DBX0.0 BYTE 10的解释:指向从DB1.DBX0.0开始的10个字节,并且DB1必须是非优化的DB块,并包含有10字节长度的变量。
P#DB1.DBX位置可以替换成其他DB块号例如P#DB10.DBX,或者I区:P#I,Q区:P#Q,M区:P#M。
0.0的位置为这种指针的起始地址,例如1.0、100.0、......,并且小数点后一定是0。
BYTE位置可以是以下类型:Bool、Byte、Word、DWord、Int、DInt、Real、Char、Date、TOD、Time类型。
10的位置为指针执行前面数据类型的个数,Bool类型比较特殊,只能是1,或者8的倍数。
P#指针举例,P#I0.0 Bool 8,P#Q0.0 Word 20,P#M100.0 Int 50。
本文详细介绍了西门子PLC中P#指针的使用,特别是针对S7-1200系列。P#指针允许在Variant类型参数中指定类似P#DB1.DBX0.0BYTE10的地址,表示从DB1的0号字节开始的10字节数组。指针结构包括DB块号、起始地址和数据类型及数量。例如,P#I0.0Bool8表示从I区0号地址开始的8个布尔值。需要注意的是,DB块必须是非优化的,并且地址后的小数点后总是0。

9369

被折叠的 条评论
为什么被折叠?



