向自动化工程师介绍TC3的OOP编程

在工作中实践总结,在朋友圈分享讨论,做最接地气的公众号

面向对象编程,即Object Oriented Programme,简称OOP编程,是TwinCAT 3编程工具的新功能之一,也是IEC61131-3第3版的新增内容。

在TwinCAT 2.0的PLC编程中,需要重复使用的代码,用户可以写成一个功能块FB。最典型的就是把一类设备的内部逻辑封装成一个FB,比如轴控FB、温控FB、灯控FB,每个FB有自己的输入变量、输出变量和中间变量。输入变量会怎样影响输出变量,这其中的逻辑就用代码来实现。有同一类设备有多少,就把同一个FB实例化多少次。每个实例与外部交互的方式,就是变量。其中,Input变量从外部可读可写,而Output变量和中间变量从外部只能读不能写。

在TwinCAT 3.0中,FB的内部变量对外不可见。但是对外可见的除了输入变量和输出变量之外,还增加了两种内容:Method和Property。这种“方法”和“属性”的思路,就不象传统的PLC而更接近高级语言中的面向对象编程了,这就是TC3 OOP。根据面向对象的理念,FB不仅有Method和Property,它们还可以继承。有继承关系的两个FB之间,父对象的更新会令子对象也自动更新。此外,TC3还引入了一个概念:Interface。在Interface中只有Method和Property的接口定义,却没有任何代码。对于习惯高级语言的用户,这些概念不难理解,对于传统的PLC工程师和电气工程师,这却是个很大的跃进。

需要澄清的是,OOP编程是TC3的新功能,但不是必须使用的功能。在TC3中,不仅支持Method、Property、Interface,同时也支持Input、Output变量和Action代码。什么情况下用Input、Output变量、什么情况下用Method、Property,并没有严格要求。用户也可以根据项目结合使用,甚至完全不理会OOP的新功能,只使用Input、Output变量也一样可以完成项目。

对于许多电气工程师来说,习惯结构化文本编程已经很不容易,而OOP编程则更加让人望而生畏。本文根据自己做为自动化工程师在了解和实践OOP编程过程中遇到的疑惑、对一个个细节的克服,原创和整理自己对OOP编程的见解。并以建立一个自动化工作中最常用的“轴控功能”为例,带领读者由浅入深地实践OOP编程,并一一提醒过程中需要注意的细节。

http://116.255.232.235/20180328_TC3_OOP_MotionDemo/Chapter05_OOP.pdf

配套文档:

http://116.255.232.235/20180328_TC3_OOP_MotionDemo/MotionDemo_OOP_V5.tszip

(******************************)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180328G1MDK700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券