梯形图c语言编程比较,PLC编程语言梯形图与结构化文本的比较
陈世委
[摘 要]本文结合开化华埠污水厂自控编程中遇见的实际情况,举例研究了常用的梯形图语言和结构化文本在顺序控制逻辑以及数据算法中的实现,并对它们的优缺点进行了分析与总结。
[关键词]PLC编程语言;梯形图;结构化文本
中图分类号:TP273 文献标识码:A 文章编号:1009-914X(2017)08-0179-02
0 引言
可编程控制器(Programmable Logic Controller)简称PLC,它是一种用编程来改变控制功能的控制器。最早在20世纪60年代,由美国率先研发成功,伴随着计算机技术、软件技术、芯片技术、互联网技术的发展,PLC的软硬件性能均得到了较大的提高。随着工业技术的发展,特别是中国制造业的兴起以及机器换人等工业化进程的深入,PLC的应用越来越广泛,产生的经济价值也越来越明显。
在PLC发展过程中,国际电工委员会(简称IEC)于1993年指定并公布了PLC的相关标准,称为IEC61131。在IEC61131标准的第三部分,阐述规范了PLC的编程语言,该部分標准为IEC61131-3。该标准规范了PLC编程语言的五种类型,分别为:顺序功能图(SFC)、梯形图(LAD)、功能块图(FBD)、指令表(IL)、结构化文本(ST),PLC编程语言均有各自的优劣,如何合理选用PLC编程语言将直接影响到PLC程序的编辑与执行效率。
1 PLC编程语言
IEC61131-3标准规范了PLC的五种编程语言,具体如下:
1、顺序功能图提供了一种组织程序的图形方法,用来描述开关量控制系统的功能,根据它可以很容易地画出顺序控制梯形图程序。
2、梯形图是使用得最多的PLC图形编程语言。梯形图与继电器控制系统的电路图很相似,直观易懂,很容易被工厂熟悉继电器控制的电气人员掌握。
3、功能块图是一种类似于数字逻辑门电路的编程语言,有数字电路基础的人很容易掌握。
4、指令表是一种与微机的汇编语言中的指令相似的助记符表达式。指令表程序较难阅读,其中的逻辑关系很难一眼看出。早期使用手持式编程器时应用较多。
5、结构化文本(ST)是IEC6113-3标准创建的一种专用的高级编程语言。与梯形图相比,它能实现复杂的数学运算,编写的程序非常简洁和紧凑。
在水行业的PLC控制功能编程过程中,应用最多的是梯形图与结构化文本两种语言。下文对两种编程语言进行深入的探讨。
1.1 梯形图
梯形图语言是PLC程序设计中最早,也是最常用的编程语言。它是与继电器线路类似的一种编程语言。PLC的起源就是替代维护、升级较为复杂的继电器回路。由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。梯形图编程语言的特点是:与电气操作原理图相对应,具有直观性和对应性;与原有继电器控制相一致,电气设计人员易于掌握。
1.2 结构化文本
结构化文本语言是用结构化的描述文本来描述程序的一种编程语言。它是类似于高级语言的一种编程语言。结构化文本编程语言与BASIC语言、PASCAL语言或C语言等高级语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。结构化文本编程语言的特点:采用高级语言进行编程,可以完成较复杂的控制运算;需要有一定的计算机高级语言的知识和编程技巧,对工程设计人员要求较高。
2 梯形图与结构化文本语言的比较
在PLC编程过程中选用哪种编程语言不是绝对的,大部分的程序控制功能梯形图与结构化文本均能实现,但在不同情况下,不同的编程语言将展现出不同的优劣,我们通过几个例子来分析。本文PLC程序案例基于GE的PAC3i系列,硬件环境为PAC3i的IC695CPE310 CPU模块,编程环境为Proficy Machine Edition(简称ME)。
2.1 水泵自锁逻辑
水泵自锁启停逻辑是PLC编程学习过程中最常用的案例,也是在水处理行业设备控制中使用最广泛的逻辑。
具体要求为:当设备处于远程状态时,可由上位机设置设备的运行状态为中控控制或者自动控制。在中控控制模式下,由上位机鼠标操作设备的启动或者停止,在自动控制模式下,由PLC逻辑程序控制设备的启停。
梯形图编程实现如图1:
标签名注释如表1:
梯形图编程实现上述功能简单明了,程序逻辑在此不做分析。
结构化文本实现如下:
IF rem AND ((PC AND (start OR OutQ) AND NOT stop) OR (auto AND auto_start)) AND NOT fault THEN
OutQ:=1;
ELSE
OutQ:=0;
END_IF;
结构化文本虽然也实现了设备不同控制模式下的启停控制功能,但是控制逻辑不够直观,甚至较难理解。当设备故障查询时,较难发现故障点的存在。
上述例子可以发现,在设备的顺序控制逻辑中,梯形图较为直观、简洁,查询处理故障时,较为方便。结构化文本较为复杂、逻辑形式抽象,查询处理故障时,难以入手,直观性和操作性较差。
2.2 模拟量平均值信号处理
在信号采集过程中,由于各种因素的影响,造成模拟量信号的波动,当信号波动时,除了硬件上消除信号干扰的存在,软件上通常也使用多种滤波程序来实现信号采集的稳定,平均值计算是常用的一种方法。
以流量为例,要求利用最近五次采集的瞬时流量的平均值,做为瞬时流量的信号。
梯形图编程实现如图2:
标签名注释如表2:
以上程序分三部分功能组成:
1、每个扫描周期将存储的改周期的流量值赋值给上一个扫描周期的流量值,利用MOVE REAL块功能实现;
2、将五个扫描周期的流量值累加,利用ADD REAL块功能实现;
3、计算五个扫描周期流量累加值的平均值,利用DIV REAL 块功能实现。
结构化文本编程实现如下:
//將本扫描周期流量值赋值给上一个扫描周期
for i:=0 to 3 do
FET[i+1]:=FET[i];
end_for;
FET[0]:=FET_OR;
//计算总值
for i:=0 to 4 do
FET_SUM:=FET[i]+FET_SUM;
end_for;
//计算平均值
FET_AVG:=FET_SUM/5.0;
结构化文本与梯形图实现逻辑基本相似,但结构化文本使用了高级计算机语言的for循环来实现,梯形图只能使用较为原始的赋值、相加、相除等功能块来实现。由于现在PLC的扫描周期是毫秒甚至是微秒级的,如果要实现100个扫描周期的模拟量平均值计算,使用梯形图编程则要不断的叠加,程序将变得异常庞大与复杂。而使用结构化文本,只需要简单修改for循环的次数就可以实现100个扫描周期的平均值计算,不仅修改方便,程序长度几乎没有变化,计算逻辑简洁明了。
3 结论
通过上述两种PLC常用功能程序的分析,我们用梯形图和结构化文本分别编程并做了相关分析,可以很清晰的分辨出:当实现顺序控制逻辑时,使用梯形图编程可以使得程序变得逻辑明确,检修维护较为方便;当实现数值计算、算法处理时,使用结构化文本可以发挥高级计算语言的优势,简单明了的实现较为复杂的数据计算、算法实现。
在实际应用过程中,只有熟悉掌握了不同的PLC编程语言,并深刻了解它们之间的优缺点,才能合理利用PLC编程语言,编写出结构简单、逻辑明确、高效可靠的PLC程序。
参考文献
[1] 娄勇.PLC常用三种编程语言的比较[J].魅力中国,2010,09(下):77.
[2] 邬建新.一种基于PLC梯形图的结构化程序设计方法[J].电工技术,2006(8):56.
梯形图c语言编程比较,PLC编程语言梯形图与结构化文本的比较相关推荐
- st计算机编程语言,ST(结构化文本语言(ST))_百度百科
ST (结构化文本语言(ST)) 语音 编辑 锁定 讨论 上传视频 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 结构化文本/结构式文件编程语言(英语:Structured ...
- Rockwell 罗克韦尔AB Logix 5000控制器 结构化文本语言(ST) 梯形图(LD)顺序功能图(SFC)功能块图(FBD) IEC 61131-3 手册
Logix 5000 Controllers IEC 61131-3 Compliance 1756 ControlLogix, 1756 GuardLogix, 1769 CompactLogix, ...
- 三菱FX3U PLC使用ST结构化文本与梯形图编写的4个仓位配方程序
三菱FX3U PLC使用ST结构化文本与梯形图编写的4个仓位配方程序 程序功能简介: 1.可以随意在触摸屏中设置添加,删除,更改配方,最多可以设置10000种不同配方, 2.通过设置配方编号,和设置生 ...
- PLC结构化文本设计模式和算法
前言 . 目前PLC应用学科并没有设计模式方面的教程,导致学员解题都得从零开始设计.梯形图无法发挥出PLC的真正功能,所以我们需要以结构化文本来实现设计模式.本文以普及结构化文本为目的,将教大家结构化 ...
- plc 编程 c语言编程实例,PLC面向对象编程和梯形图编程,谁OUT了?
在工业自动化领域,梯形图逻辑仍然是最常用的编程语言之一,但对于更加复杂的控制对象,面向对象编程不失为一种高效率的方式.下面先来谈谈面向对象编程: 面向对象编程是计算机高级语言的一种先进的编程模式,在工 ...
- plc编程和计算机编程语言,以S7-300为例谈可编程控制器的编程语言和程序结构
一.可编程控制器的编程语言 PLC为用户提供了完整的编程语言,以适应编制用户程序的需要.PLC提供的编程语言通常有以下几种:梯形图.指令表.功能图和功能块图.下面以S7-300系列PLC为例加以说明. ...
- java结构化语言,如何让Java代码流畅和结构化
说明:为了使逻辑更易懂,也为了可维护性更高,应该把代码按模块分割,而构成模块的类的方法,原则上只能有一个入口和一个出口.另外,关于嵌套的深度和模块的行数,也应该控制在一眼就能看清楚的程度上. 就Jav ...
- python语言结构化语言_如何在python中处理结构化语言文件
我有一个像这样的大型结构化语言文件:TASK SchM_Task { TYPE = AUTO; SCHEDULE = NON; PRIORITY = 160; ACTIVATION = 1; TIMI ...
- Apache Spark【从无到有从有到无】【编程指南】【AS5】结构化流编程指南
目录 1.概观 2.快速示例 3.编程模型 3.1.基本概念 3.2.处理事件时间和延迟数据 3.3.容错语义 4.使用数据集和数据框架的API 4.1.创建streaming DataFrames ...
- 小车运料c语言编程,西门子PLC编程实例及技巧(运料小车控制系统)
原标题:西门子PLC编程实例及技巧(运料小车控制系统) 下面和大家一起探讨一下具体应用程序的编写方法,我们以运料小车控制系统的编程方法为例进行讲解. 运料车主要用于搬运加工工件,在工矿企业的生产车间是 ...
最新文章
- 【通用CSS模板】移动端H5页面统一样式.css
- sqlserver2008 R2中查找未使用过的索引
- 代码管理之SVN服务器及Git的创建与使用
- spring的aop注解配置(了解)
- win7下 apache2.2 +php5.4 环境搭建
- Tensorflow的快速安装(张量图例)
- CDH5.X完全卸载步骤
- android 优化
- 经典算法-(一)汉诺塔(河内之塔)
- scratch迷宫小游戏
- 主板BIOS中的CSM是什么
- 计算机桌面底边出现库如何去掉,桌面图标有蓝底怎么去掉完美全解决方案
- linux路由表命令,在linux下永久保存路由表的写法(转)
- 路由器静态路由配置实验
- Flash builder 网络监视器的使用感想
- 10.13NOIP模拟赛
- 阿里云的重大战略调整,“被集成”成核心,发布SaaS加速器助力企业成长...
- HTML5 canvas 参考手册
- 词汇课程——导论(2)
- oracle 存储过程语法例子
热门文章
- aplay amixer用法详解
- 上海计算机应用基础自考上机,2012年上海自考《计算机应用基础》上机考核大纲...
- Spring AOP实现原理
- java代码格式化的快捷键设置_如何使用VS中的快捷键快速格式化代码使好看,整齐...
- Java实现两个csv文件的对比_比较 csv 文件中数据差异
- JUCE框架教程(1)——Projucer入门
- 【文档/键值数据库】文档数据库和键值数据库有什么区别
- 如何根据芯片手册时序图编写驱动程序
- WPF实现DoEvents
- 互联网晚报 | 1月17日 星期一 | 飞猪推出买机票送核酸检测券服务;洋码头首个文旅场景免税店开业;2022年春运今日开启...