如题,FC中输入的形参指定DB地址,类型STRING. DB中存储一个字符串。程序如下
L P##IN_STRING
LAR1
L W[AR1,P#0.0]
T #NUM
问题:为什么这样就取出DB号了?有什么依据?
程序运行无错,更改实参相应的DB号,#NUM内数据为相应号。
问题补充:
我是逆向分析的但是不确定是pointer指针,补充一点,#IN_STRING指定的实参处也带有P#字样,这个怎么理解
最佳答案
L P##IN_STRING //#IN_STRING 这个应该是一个pointer指针,比如说DB13.DBX0.0
LAR1
L W[AR1,P#0.0]
T #NUM
pointer指针共6个字节,第一个字代表DB号或者0,第二和第三个字是32位的地址指针。
W[AR1,P#0.0]是P#0.0所以取得是DB号,若果改成 W[AR1,P#2.0]那么就是相应地址对应的数据了,比如我之前说的是DB13.DBX0.0 作为指针,那么 W[AR1,P#2.0]就是DBW0
补充:不好意思,我也不是很理解你说的情况,这个程序是SIMOTION D 上的吗?可能跟PLC的不太一样,最好能将调用的程序发上来,让大家看看!
提问者对于答案的评价:
不是,这个区域搞错了,是300PLC,我顺便问一下,定义的形参输入不是POINTER类型能不能作为POINTER指针使用?
最佳答案作者回复:
不行,如果要用到POINTER 就要定义这个形参;j建议下载链接的资料看看
http://www.ad.siemens.com.cn/download/docMessage.aspx?Id=1597
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc134536.html