热门搜索:
西门子8UD
上海朕锌电气设备有限公司
西门子销售部 cpu plc s7-200
s7-300 s7 400 s7 1200 s7 1500
mm440 mm430 mm420 g120 变频器 V90变频器
s7 288模块 伺服电机 触摸屏
6SL3210-1KE11-8AF2
参数类型指针-POINTER与ANY
所谓参数类型指针就是**于函数FC及函数块FB接口参数的传递,例如可以在IN、OUT、IN/OUT中声明这些变量,也可以在TEMP区(OB也可以)中声明作为一个变量赋值给调用FC/FB的接口参数。
3.1 POINTER指针的数据格式
POINTER指针占用48位地址空间,数据格式如图16所示。
POINTER指针前16位的数值表示数据块DB或DI的块号,如果指针没有指向一个DB块,则数值为0,POINTER指针可以指向的数据区参考下表:
与区域交叉指针相比,POINTER类型指针可以直接指向一个数据块中的变量,例如P#DB1.DBX0.0,所以 POINTER(6个字节)=DB块号(2个字节)+32位指针(4个字节,带有数据区的寄存器和存储器指针)。如果不是指向DB块,就是带有数据区的寄存器和存储器指针,例如P#M2.0。
调用FB、FC时,对POINTER指针数据类型的形参进行赋值时可以选择指针格式直接赋值,例如:
P# DB2.DBX12.0 //指向DB2.DBX12.0。
P#M12.1 //指向M12.1。
也可以选择使用地址声明或符号名(不使用符号P#)的方式进行赋值,例如:
DB2.DBX12.0 //指向DB2.DBX12.0。
M12.1 //指向M12.1。
3.2 ANY指针的数据格式
ANY数据类型指针中包括数据类型、重复系数、DB块号、存储器数据开始地址,占用80位地址空间,数据格式如图17所示。
ANY指针使用的数据类型(存储区)参考下表
ANY指针使用的数据类型(数据区)