根据楼上的建议,用1200使用了FB功能块和多重背景功能块,并对定时器使用了多重背景数据块,方法截图在下方供大家参考指正。有没有人能做成循环的?就更完美了。
对于本帖开头提到的重复的程序段,个人认为有条件这样做的话好处还是挺多的:
1.程序做成了功能块,修改起来极为方便,只需改修单个功能块就行,不必逐条修改成百上千条类似的语句。当子程序较长时,优势更加明显。
2.排列整齐,输入输出接口清晰,也便于接口数据的输入、检查和修正。
3.避免无数条条重复程序中的部分写错。
4.对于1200、1500而言,对定时器使用多重背景数据块可以节约数据块的数量,避免定时器使用过多的DB块,解放内存。
一:建立”电磁阀控制”功能块FB1,设定INPUT/OUTPUT变量接口参数,在静态变量中设定定时器参数TOF,类型为IEC_TIMER。写入控制程序。插入TOF定时器时,需设置背景数据块为多重背景数据块,接口名称为之前设定的TOF。
二:再建一个”多重背景数据”功能块FB2,在静态变量设定要使用到的多个设备参数“电磁阀1”“电磁阀2”“电磁阀3”……数据类型为“电磁阀控制FB1”。
三.将FB1功能块拖入到程序中,使用几个设备(近似重复的程序段)就用几个FB1,分别设定为使用多重背景,接口类型分别选择“电磁阀1”“电磁阀2”“电磁阀3”……并输入实参。
结果如下:
四.在OB1中调用FB2,将FB2拖入主程序中,建立FB2背景数据块FB2_DB后保存。这样就完成了。