当前位置:首页 > 技术知识 > 正文内容

[三菱PLC] 用"C语言"玩转PLC,三菱PLC使用ST语言超详细教程

maynowei2周前 (08-02)技术知识14

ST语言,全称为结构化文本(Structured Text),是一种高级编程语言,专为工业自动化和控制系统设计。



我们学习PLC一般是用梯形图,梯形图学会后,学习SFC,但是我发现梯形图和SFC虽然简单,但是做大一点的项目比较复杂就有点乱,然后我就想有没有和单片机一样,用类似C语言的方法,来对PLC编程,然后我就发现可以使用ST语言(结构化文本)来对PLC编程,可以用类似C语言的语法来编程。进行了几个星期的了解和学习之后,我将学习的一些心得和方法写下来。同时可以给入门PLC的同学,提供一个新的、方便的方法。文章可能有些地方有问题,欢迎大家指正,大家可以一起交流、学习!

ST语言的通用性



ST语言介绍(一)工程选择我们使用GX Works2软件,工程类型选择结构化工程,程序语言分为两种,一种是FBD结构化梯形图,一种是STFBD是梯形图和ST共同使用,ST则是完全使用ST语言为了学习,我们完全使用ST语言


(二)页面选择页面分为标签设置和程序本体,标签设置可以理解为存放变量和设置函数的地方,程序本体则是写代码的地方


(三)操作符


(四)指令和关键词



ST语言计数器、定时器我们通过数据类型可以看到FB所有的指令,通过学习里面的指令,可以学习到重要的功能,如检测上下沿、计数器、定时器等...


(一)加、减计数器。CTD减计数器、CTU加计数器











CTD和CTU所需的参数差不多,可以参考我的模板,模板可以实现Y001亮一次就计一次,10次后清空重置===CTU===【CU】计数器+1【RESET】复位计数值【PV】设定计数值【Q】输出,数值到达设定值后,导通【CV】当前计数值===CTD===【CD】计数器-1【LOAD】复位计数值【PV】设定计数值【Q】输出,数值到达设定值后,导通【CV】当前计数值(二)通电延时、断电延时定时器。TON通电延迟、TOF断电延迟











TON和TOF所需的参数一样,TON通电延时是:设定时间到才通电。TOF断电延时是:设定时间内一直通电,设定时间到断电我的模板可以实现LED闪烁0.5秒/次===TON/TOF===【IN】定时器开始工作【PT】设定时间:开头以T#,后面接时间,单位S/MS【Q】定时时间到,通电/断电【ET】当前计时时间(需要创建一个Time的数据类型,用于保存时间)



ST语言常用命令这一部分就和c语言非常类似了,一样用if、for、while等函数,如果有编程语言基础,应该很快上手(一)赋值


C语言中的赋值是 "=",在ST语言是 ":=",注意要加个英文的冒号 ":"对于PLC来说,我们可以直接将灯、按钮、辅助继电器等元器件直接赋值0或1,相当于控制开启或关闭,非常的方便(二)IF判断语句





注意IF语句的判断语句中,不用c语言的"=="而是用一个"="即可执行语句后要加分号";"还有一个区别是判断语句后面要加 "THEN",末尾则是 "END_IF"可以参考我的模板,可以实现按下按钮X001,Y001灯亮,抬起按钮则Y001灯灭(二)FOR循环语句








FOR语句,首先定义一个数的初值,如D50:=0,TO是结束值,BY是每次增加的数,DO是固定加在最后的我的模板实现,每次D100会自己加101,因为每次循环由D50从1加到100的过程,D100在100次循环就从1加到101,所以FOR完整一次循环D100会加101每次(三)WHILE循环语句





WHILE语句相对来说比较简单,但是注意WHILE循环不能进入死循环,否则PLC会报错不执行模板程序可以实现M10 = 1时,D10自加到5000则跳出循环(四)注释注释对于写代码来说,非常重要,程序多起来,可能前面写了什么都忘光了


ST语言的注释 (*注释注释*)
总结


通过本文,可以对新手朋友们对ST语言有个大概的了解,当然ST语言的内容有非常多,一篇文章肯定讲不完,里面很多函数都和C语言类似,稍微变通一下就可以学会。ST语言、SFC、梯形图各有各的优缺点,大家可以根据自己的需求和项目开发要求,选择合适自己的语言。我推荐大家是先入门简单的梯形图、SFC后再学习ST语言,这样可以更好的了解PLC,更好的完成项目。

用"C语言"玩转PLC,三菱PLC使用ST语言超详细教程

http://bbs.plcjs.com/forum.php?mod=viewthread&tid=502205&fromuid=42656

(出处: PLC论坛-全力打造可编程控制器专业技术论坛)

#非标自动化#

相关文章

作为初级产品汪,我是这么理解APP登录注册功能的

目前大多数产品都有登录注册功能,有的有自身平台账号体系,有的依靠大平台账号体系授权登录。接下来我跟大家分享一下我对登录注册功能的理解。登录注册的根本意义登录注册,众所周知,就是创建的ID,然后访问(操...

Axure RP设计伸缩导航、遮罩弹窗、返回顶部的方法

以下几小教程使用的是Axure的动态面板来实现,内容简单,适合菜鸟查阅,老鸟可飘过,顺便帮忙点个赞哈/偷笑。一.伸缩/隐藏导航栏例如:鼠标移动到一级导航上,二级导航会下拉方式显示1.打开Axure,拖...

从零搭建网站?5个步骤详解网站建设全流程

在数字化时代,拥有一个专业网站已成为企业或个人品牌展示的核心竞争力。但对于新手而言,网站建设往往显得复杂难懂。本文梳理出5大关键步骤,手把手带你完成从策划到上线的全流程,省时省力不踩坑!一、前期准备:...

单片机C语言编程,心得都在这里了

单片机写代码总踩坑,头文件被无视,老工程师的经验哪里来?前几天写8x8矩阵键盘的程序,搞了三天代码一直乱报错。后来发现自己连头文件是什么都不清楚,之前写的都是小程序,压根没碰过.h文件。看别人的程序都...

2018年度回顾:挖矿木马为什么会成为病毒木马黑产的中坚力量

一、概述根据腾讯御见威胁情报中心监测数据,2018年挖矿木马样本月产生数量在百万级别,且上半年呈现快速增长趋势,下半年上涨趋势有所减缓。由于挖矿的收益可以通过数字加密货币系统结算,使黑色产业变现链条十...

webview 渲染机制:硬件加速方式渲染的Android Web

webview 渲染是什么?webview 渲染是用于展现web页面的控件; webview 可以内嵌在移动端,实现前端的混合式开发,大多数混合式开发框架都是基于 webview 模式进行二次开发的w...