分享

PLC国产化时代,ST编程从一个CoDeSys实例开始!

2022-03-31  敬工
【导读】本文基于CoDeSys提出基于梯形图编程思维快速实现ST编程的设计方法。PLC国产化时代,CoDeSys启航!
技术交流点此进群
销售采购点此进群
项目对接点此进群
人才招聘点此进群

前言

信息技术与传统制造技术的深度交融为生产制造的智能化打下了基础,而具体在工控领域的体现就是以(Structured text西门子SCL)ST结构化文本所代表的高级编程语言编程设计中的广泛应用。它的优点是能简化复杂的算法方程,进行梯形图难以执行的复杂计算,完成算法方程式的建立。因其对复杂算法的高适应和高移植通用性,ST越来越广泛应用于工业控制,掌握ST结构本文本设计已经成为了电气工程师必备要求。但对于未接触过高级语言的传统电气从事人员来说,对ST编程有着一定的挑战。故本文基于CoDeSys提出基于梯形图编程思维快速实现ST编程的设计方法。

一、电机起保停控制梯形图实现与ST转换

下图所示为电机的启动保持停止梯形图控制程序,包括启动、停止、自锁三个触点和一个输出线圈,它们的都是开关型的变量,即只有开和关2个状态,在高级语言中,这种数据类型叫做BOOL型,即二进制开关变量,即闭合为1(TRUE),断开为0(FALSE)。如下梯形图的实质可以抽像的理解为“触点+触点*触点=线圈”,即M0+Y0*M1=Y0

图1.1 启保停控制梯形图

在ST等高级语言中M0和Y0的逻辑关系为或OR,M0和M1逻辑关系为与AND NOT,NOT表示逻辑关系非即取反。上述梯形图算式即可表达为M0 OR Y0AND NOTM1 =Y0,而在ST语言中“=”表达的是比较2数值,赋值采用“:=”,同时高级语言采用从右往左赋值。因此如上梯形图程序转化为ST标准表达式为:

图1.2 启保停ST程序

同理电机正反转控制程序亦可实现如下转换:

图1.3 启保停ST程序

图1.4 启保停ST程序

通过参考如上启动保持停止和电机正反转控制程序的转换实例已能实现基本逻辑控制梯形图程序向ST的转换,即线圈:=触点的逻辑关系表达式。而接下来将逐步对ST的一些应用基础知识进行分析。

二、数据类型介绍

下图所示是ST语言编程最常用的数据类型,即开关型变量BOO型,整数INT型,小数浮点型REAL,然后还有基于上述类型的数据类型,如UINT、LREAL等等,对于刚入门者建议由简至繁,先重点关注BOOL、INT、REAL三种数据类型。BOOL型用于表示二进制,即启动、停止、开关等变量,整型一般用于作为步和命名,小数一般用来映射速度、转矩、位置等物理量,具体如下小车控制实例所示。

图2.1三种常用数据类型

图2.2运料小车工作示意

如图小车的控制动作为,启动系统,小车在A点装料,装料完成前往B点卸一半的料,再前往C点卸料,卸料完成,返回A点如此循环。小车控制系统要考虑的控制IO为输入:启动、停止、A位置、B位置、C位置,输出小车前进、小车后退。从工作要求分析可得,此控制对象适宜顺序控制编程方法,也就是步进,而在ST语言里步进通过CASE功能语句实现。CASE用法是CASE 运行步变量(INT OF A步(INT: .........;B.......;当运行步=A步,则执行A步,同理,可适用其它条件,如下程序实例所示。
IF...THEN...END_IF为最常用的逻辑判断语句,它的说明是当某某条件成立,则达到某某结果,此处要特别算命的是IF是条件成立执行,而条件不成立并不会影响以及生成的结果,这与梯形图中的开关逻辑有异。如梯形图中启动按钮闭合(为TRUE)则线圈得电,启动按钮断开(为FALSE)则线圈失电。而IF条件中(IF 启动 THEN线圈 END_IF)只有当启动为TRUE才会生成线圈TRUE,启动为FALSE时线圈线圈状态不会发生任何变化。具体可参考下图2.3所示小车运行最简系统:

图2.3运料小车ST控制程序

三、ST入门基础逻辑运算介绍

接下来将重点介绍一些常用运算符,最常见的逻辑运算符有“与AND、或OR、非NOT”,然后就是一些常用的算术运算符“+、-、*、/、=”,这里要特别注意的是在C语言里赋值采用的是“=”,而在ST语言里“=”的意义是用来比较两变量的大小,ST语言里赋值采用“:=”。了解了如上运算符编写简单的ST逻辑程序便不在话下,由简入繁,不断深入研究。如图3.1是常用的运算符及其优先级:

图3.1常用运算符及其优先级

四、ST运动控制程序实例

在本节将用如上基本语法达到运动控制系统的实现,如下采用图示,功能块为运动控制中伺服轴使能和点动的功能集合,可以通过ST语句实现对其外部输入的控制,以实现对伺服电机的正反转控制,如下实例说明了ST入门只要掌握了一些基础规则便可实现简单逻辑和运动控制系统的程序的设计,然后由简入繁,迅速实现新的编程方法的学习。

图4.1伺服电机点动控制实现

五、总结

本文粗浅的总结了一些ST学习的小经验,讲述了梯形图编程和ST语言编程的相通之处,如上知识点也是本人在学习ST过程中所遇到的问题,刚入门时,掌握基础的通用知识即可,然后不断使用和实践就能达到不断深化的效果。所以作者建议ST初学者可参考以上建议,把握通用知识点,触类旁通,由简入繁,逐步深入,水到渠成。对国产CoDeSys运动控制系统有兴趣的朋友欢迎留言。

作者简介

中星立川:工控行业老兵,熟悉ARM DSP FPGA LINUX等工控嵌入式系统开发,曾参与多种小型PLC、中型运动控制器研发,同时深耕多年工业现场,熟悉博途、CoDeSys等工控PLC平台集成开发。



大家都在看




【视频】德国工程师是如何制作PLC柜的?

【视频】德国威图电气柜是如何生产出的?

【视频】德国工程师的办公环境是怎样的?

【视频】PROFINET为何比PROFIBUS牛?

回复“1200yd”下载运动控制实例

    转藏 全屏 打印 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多