CODESYS - 编程进阶:面向对象的思维-CODESYS软件讨论区-酷德网 - CoDeSys软件教程下载,CoDeSys工控资讯门户 

酷德网

HSC6490-cn中国制造,中国芯~
查看: 238|回复: 0

CODESYS -- 编程进阶:面向对象的思维

[复制链接]
  • TA的每日心情
    擦汗
    2019-8-13 14:13
  • 签到天数: 32 天

    [LV.5]常住居民I

    发表于 2023-9-22 23:29:12 | 显示全部楼层 |阅读模式
    本文介绍基于codesys的新的编程思维,融合了传统plc的按流程编程和高级语言中的面向对象编程,可让程序的架构更加优美,阅读本文前需要对codesys有一定的应用经验。
    首先介绍几种codesys中关键功能:
    1、功能块(FUNCTION BLOCK)
    相比于传统的plc,codesys给予了功能块丰富扩展,
    1.1 属性、方法、动作:
    这三类在PRG中也可以使用,可定义为private、internal(子类)、public权限。
    属性为内部变量的外部访问接口,可以在set、get中设置丰富的变化;方法使用类似函数,可定义输入、局部变量(使用上升沿、timer、counter等需注意);动作仅能使用FB中的变量,相当于给FB中的程序分类。
    1.2 继承(EXTENDS)
    codesys FB最大的进步就是支持继承,这让我们的函数变得更加简洁,子类可继承父类的变量、方法、动作(private除外),目前不支持多重继承。
    1.3 虚类(ABSTRACT)
    虚类无法实例化,是解决多重继承里命名冲突的问题,由于不支持多重继承,在这里意义并不大。
    FB的写法,比如针对运动控制,可采用如下方法进行编写:
    首先编写虚类ABSTRACT FB_MOTION,调用plcopen功能块,在其中实现轴的基本功能控制、状态监控,权限可以设置为internal;
    其次编写FB_SAXIS,继承自FB_MOTION,在其中实现单轴的控制,并提供控制的入口;
    再次编写FB_MAXIS,继承自FB_SAXIS,在其中实现多轴的同步、插补控制等,并提供控制的入口。

    v2-68740504737bbbedb71142e823deb6f1_720w.jpg
    单轴的功能块
    v2-9fd735d43a93810476ab3329858d7220_720w.jpg
    多轴控制功能块
    2、接口(INTERFACE)
    接口是一种规范,支持多接口,与功能块、结构体联合使用,可达到很好的效果。
    3、任务(TASK)
    codesys的任务类类比线程,可以设置不同的优先级、循环周期,实际的任务是否相互独立与CPU的线程数也有关系。
    在实际使用过程中,建议分多个任务:运动控制、通讯、设备逻辑控制、HMI,最优先级别为轴运动控制,通讯建议写成非阻塞模式,如果是阻塞模式,一定要独立线程。不同的POU之间可以通过属性实现内部变量的访问。
    v2-190266d93e787fc3a3cb809581feb006_720w.jpg
    4、指针与引用(POINTER AND REFERANCE)
    通过指针与引用能极大的提高程序编写效率,由于pointer可以直接加减,在使用时候尤其要注意避免使用空指针,这种情况会造成程序重启。
    实际使用可结合for循环、sizeof等使用。
    codesys有一类用于隐式检查的POU,支持除法检测、指针检测等。

    关于程序的结构,提出以下思路:
    在工业控制中,往往存在着复杂的IO点、复杂的执行机构、复杂的流程。在编写时,要结合面向对象和面向流程编程,如何让程序更加简洁优美,是一件很重要的事情。
    1、运动控制:常采用总线,需要较快的刷新周期,建议采用独立的POU+独立任务,功能块采用面向对象方式编写,我们仅需要一个或多个for循环即可实现所有轴的功能。(这里不实现任何逻辑控制)。
    v2-19dd76201a06d4a696c0e94e542ddff6_720w.jpg
    2、流程编写:独立的线程,一般不需要太快的刷新周期,流程尽量写在函数中,mian函数只是对其调用。

    v2-5b1a01d372df88a08f6736d12d6d5011_720w.jpg
    Main函数
    +10
    打赏鼓励一下!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

    本版积分规则

    
    顶部qrcode底部
    关注酷德网订阅号,获取更多资讯!

    QQ|小黑屋|手机版|Archiver|酷德论坛 ( 苏ICP备16065247号-1 )|网站地图

    GMT+8, 2023-12-11 22:49 , Processed in 0.248447 second(s), 60 queries .

    酷德网

    © 2001-2013 Hicodesys. 技术支持 by 酷德网

    快速回复 返回顶部 返回列表