酷德网

Kx-m3酷自造发布!
查看: 70|回复: 0

干货 | CODESYS六种编程语言的特点

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

    [LV.5]常住居民I

    发表于 2019-8-1 23:59:24 | 显示全部楼层 |阅读模式
    CODESYS共支持六中不同的编程语言,很多学者在学习的过程中常会问一个问题,哪种编程语言最好?
    其实本人觉得没有哪种编程语言是绝对的好或不好,不同的工程应用具有不同的最佳编程方式,每种编程语言都具有其不同的特点,可根据实际工程应用的需求选用合适的编程语言,下面简单介绍下CODESYS的6种不同语言的特点。
    1)梯形图(LD):与电气操作原理图相对应,其优点它的直观性,电气技术人员易于掌握和学习。缺点是在应对复杂的控制系统编程时往往程序描述性不够清晰。梯形图在国内的工业自动化领域中是使用最多的一种PLC编程语言。
    2)功能块图(FBD):以功能块为设计单位,能从控制功能入手,优点是使控制方案的分析和理解变得容易,功能块具有直观性强、容易掌握的特点,有较好的操作性。在应对复杂控制系统时仍可用图形方式清晰描述。缺点是每种功能块要占用程序存储空间,并延长程序执行周期。
    3)指令表(IL):优点是易于记忆及掌握,与梯形图(LD)有对应关系,便于相互转换和对程序的检查,且编程及调试时不受屏幕大小的限制,输入元素不受限制。缺点和梯形图一样,对复杂系统的程序描述不够清晰。
    4)结构化文本(ST):优点是可实现复杂运算控制,对编程人员的技能要求高,其缺点是编译时需要将代码转换为机器语言,会导致编译时间长、执行速度慢,且直观性和易操作性差。
    5)顺序流程功能图(SFC):以完成的功能为主线,优点是操作过程条理清楚,便于对程序操作过程的理解和思路;对大型程序可分工设计,采用较灵活的程序结构,节省程序设计时间和调试时间,由于只对活动步进行扫描,因此,可缩短程序执行时间。
    6)连续功能图(CFC):实际上是功能块图(FBD)的另一种形式。在整个程序中可自定义运算块的计算顺序,易于实现大规模、数量庞大但又不易细分功能的流程运算。在连续控制行业中,得到大量使用。
    编程语言的多样性是CODESYS一大优点。所以在实际的工程项目中,从优化程序和编程便利性的角度建议大家,涉及到算法部分请选择ST语言,编写的程序往往简洁而高效;涉及到流程控制部分,请选择SFC语言,编写的程序会条理清晰,逻辑关系不会混乱;涉及到逻辑控制部分,请选择LD语言,编写的联锁,互锁等逻辑简单易懂;涉及到功能块部分,请选择CFC或者FBD,编写的程序会形成一个网络清晰的网状电路图,易于读懂。当然,在实际的编程时,用户也可以根据自己的使用习惯来选择编程语言,虽然实现的方法不同,但是都能得到同一个结果。

    指令表(IL)
    IEC 61131-3中的指令表IL(Instruction List)语言是一种低级语言,与汇编语言很相似,它是在借鉴、吸收世界范围的PLC厂商的指令表语言的基础上形成的一种标准语言,可用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中将动作和转变的行为。
    指令表语言能用于调用,如有条件和无条件地调用功能块和功能,还能执行赋值以及在区段内执行有条件或无条件的转移。指令表语言不但简单易学,而且非常容易实现,不用编译就可以下载到PLC。指令表编程语言常常被作为基础编程语言,其他编程语言能够方便的转换为指令表语言。但是指令表编程语言对大型的复杂控制问题缺少有效的工具,因此,在大型复杂的控制问题中,通常不采用指令表编程语言。
    4.1.1  指令表编程语言简介
    1.简介
    指令表语言是由一系列指令组成的语言。每条指令在新一行开始,一条完整的指令由操作符和紧随其后的操作数组成,操作数是指在IEC 61131-3的“公共元素”中定义的变量和常量。有些操作符可带若干个操作数,这时各个操作数用逗号隔开。指令前可加标号,后面跟冒号,在操作数之后可加注释。指令表IL编辑器的编程界面如图4.1所示。
    指令表编程语言的特点是:
    — 指令具有简单易学的特点,适用于小型较简单控制系统的编程;
    — 操作符被用于操纵所有基本数据类型的变量、调用函数和功能块;
    — 能够直接在PLC内部解释的语言,适用于大多数PLC制造商;
    — 指令表编程语言的编写较难转换到其他编程语言,其他编程语言编写的程序容易转换到指令表编程语言。
    2.程序执行顺序
    指令表编程语言的执行过程是从上至下的顺序进行执行,如图4.2所示。
    4bbb20c73febbe20f27e17d33542782d.png
    3.指令的格式
    在指令表编程语言中,指令具有如下的格式:
    c456b1daa4cd5c3b2b1896726b77b072.png
    标号:操作符/函数 操作数 注释

    【例4.1】使用指令表实现电机的启保停控制。
    例4.1中的程序用于对设备中的电机进行启保停控制。程序中,标签为START,指令第1行将变量bStart的结果存放至累加器中。第2行的指令将第1行指令的结果和bHold进行或逻辑运算,结果覆盖到累加器中。第3行指令用于将第2行运算结果和停止信号bStop进行取反后的逻辑与运算,结果仍存放在累加器中。第4行指令用于将当前累加器中的结果输出至变量bDone中。
    来自群组: HSC4系列控制器
    打赏鼓励一下!
    回复

    使用道具 举报

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

    本版积分规则

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

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

    GMT+8, 2019-10-20 15:40 , Processed in 0.266816 second(s), 41 queries , MemCache On.

    酷德网

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

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