见截图1、2,在完全没有负载时,Index=2,我对程序的理解跟动态监测差别很大请大侠帮我分析分析,谢谢!
图片说明:
最佳答案
分析的基本正确,AR1=64转换为指针常数为P#8.0,所以L DID[AR1,P#4.0]其实就是地址DID12,下面的是DID8。最终就是将DID12传递给DID8。下一个循环应该是DID16传递给DID12,这样就可以把#Buffer[25]存入到数组中了。
提问者对于答案的评价:
我挺不解的是,没看出哪句程序是把#Buffer[25]装入到DID[AR1,P#4.0]的,而且,为什么要把地址传来传去的呢,作用是什么?在实际监测中,看到当Index=2时,在(31)程序段,在没有指明是DI数据块之前,AR2=8400000,是不是针对FB功能块,就是这样的?谢谢,希望能得到继续指导!
最佳答案作者回复:
你这是不是FB块中的程序啊,尽量不要使用AR2,这是表示起始地址。
当第二次执行程序时,就把第一次采集的值放到了#Buffer[24],新采集的值在#Buffer[25],以此类推。这样取平均数或是其他计算得数准确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc208803.html