PLC编程有诸多限制,如:
但有时候我们希望把DB设计得灵活一些,当给PLC增加一些小的元素时,我们不希望覆盖大量的DB。
有时我们希望PLC程序设计得模块化、产品化、基于配置。
在这些应用场景中,我们可以参考面向对象的方法进行PLC编程。
本文以质量安灯实例说明了面向对象的PLC编程方法。
业务需求为:
下表列出了所有对象,及对应的属性/事件/方法:
为了让对象更加灵活,我们为每个属性分配1个DB,除了ID,这是因为我们使用数组ARRAY存储数量,每个对象的所有属性DB使用了同样长度的数组,而数组的序号就是对象的ID:
因此当我们需要给拉绳增加一个新的属性时,我们只要建立一个新的DB,基本结构为长度为200的数组,并以数组序号的形式建立了与其它拉绳DB的联系。
PLC程序调用结构非常简洁:
由于使用了数组,我们可以很方便地利用SCL的循环语句进行遍历调用:
寻找外部引用ID也很简单,因为我们可以直接使用数组序号进行符号寻址:
对于I/Q设备的位&字节地址,我们可以用STRUCT进行定义:
这样,就可以很方便地利用SCL的PEEK_BOOL/POKE_BOOL函数进行动态调用:
FC_PEEK_BOOL针对SCL的PEEK_BOOL进行封装:
Set事件:
Reset事件:
下面列出几条PLC面向对象编程的参考建议:
TIA V13源代码:
http://pan.baidu.com/s/1c28HOOg
原文:http://www.cnblogs.com/tallrain/p/7143635.html