恭喜,你发布的帖子
发布于 2019-06-18 08:14:50
1楼
根据你描述的问题研究了下你给的程序:
1、程序结构
1)FB126?使用多重背景方式调用了FB600
2)FB600使用多重背景方式调用了FB26
3)DB126是上述三个功能块的多重背景数据块
2、FB26的参数声明
1)输入参数
分配了2个Bool类型输入参数IN0-IN1、1个Int类型输入参数IN2、4个Time类型输入参数IN3-IN6
2)输出参数
分配了6个Bool类型输出参数OUT7-OUT13
3)临时变量
定义了2个Struct类型的临时变量#TEMP18(2个元素,Bool类型)、#TEMP21(7个元素)、1个Bool类型临时变量#TEMP29
3、FB26的程序代码
1)Network 1中B[AR2,P#0.0],实际就是一个指向对应多重背景数据块的指针(FB中为了方便背景数据块参数的寻址,自动使用AR2寄存器,AR2寄存器指向背景数据块的首地址)
2)LB 0就是临时变量TEMP18
3)整段代码的意思即将多重背景数据块中对应偏移地址1个字节长度的数据传递到临时变量中
4) 而在多重背景数据块中对应的首地址正是FB26的的输入参数,偏移P#20.0个字节后正是输出参数
5)所以Network 1的意思就是将输入、输出参数转存到临时变量
4、输出参数的逻辑条件
1)在清楚了上述问题后,可以很快弄明白输出参数OUT11对应的即是临时变量#TEMP21.TEMP26
2)找到#TEMP.TEMP26的接通条件,再往下面就是纯粹的逻辑控制了,代码有点长有点绕,就不细说了
请填写推广理由:
分享
只看
楼主