各位有没有好一点的列子来深入一下
问题补充:
2楼你好,补充问题,如果P1定义的不是POINTER数据类型,而指定的实参是DB,这样能作为POINTER指针使用吗?
1楼的资料打印在手看了很多遍了,原谅我是个新手
最佳答案
POINTER是一种用于传递指针的形参数据类型,长度为6个字节。第一个字存放DB块的号,第二和第三个字存放的是32位的地址指针;POINTER数据类型要在FC块里定义;在FC块的输入端我定义了一个pointer的数据 P1,在调用FC的这个P1输入的参数为DB1.DBX0.0
那么程序:
L P##P1 //读取P1的数据
LAR1
L W [AR1,P#0.0] //取pointer指针的DB数据
T #TEMP1
L D [AR1,P#2.0] //取pointer指针的数据的地址
T #TEMP2
OPN DB [#TEMP1] //打开DB号
L DBW [#TEMP2] //取DB1.DBW0的数据
不妨做一个例子来看看,
补充:如果输入的P1为一个16位的数据TEMP3,并且输入的这个数据是对应的DB号,比如12
那么就能用
OPN DB[TEMP3]
我也是通过一楼的那个资料慢慢学习起来的,那个资料很有用,慢慢看,细心研究;新手更要好好理解有关指针的定义了。
提问者对于答案的评价:
谢谢!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc217380.html