PLC领域中,PLC语言有多种,对应的是一个国际规范IEC61131-3:
所定义的。
所以,实际上,PLC语言,就等价于IEC61131-3。下面详细解释:
各种PLC语言简介
对应的多种PLC语言,其就是由相关国际规范IEC 61131-3,所定义的。
目前常见的是5种:
LD==LaDder Logic==梯形图
IL==Instruction List==指令表
ST==Structured Text==结构式文本
FBD==Function Block Diagram==功能图
SFC==Sequential Function Chart==顺序功能流程图
还有一个不常见的,第6种:
CFC== Continuous Function Chart== 连续功能图
PLC语言发展历史
IEC61131-3组成部分
IEC 61131-3主要分成两部分:
通用元素
编程语言
如图:
IEC 61131-3 软件模型
IEC 61131-3通用的元素
Data Types
POU
Functions
Function Blocks==FBs
Programs
Variables
Configuration elements:Resources and Tasks
SFC==Sequential Function Chart
各种不同PLC语言示例
PLC语言:梯形图(LD)
举例:
允许编程人员图形化的去连接中继器和线圈。
PLC语言:功能块图(FBD)
举例:
允许用户可以快速地实现二进制和模拟表达式方面的编程。
PLC语言:指令表(IL)
类似于汇编语言Assembly
举例:
PLC语言:结构化文本(ST)
类似于C语言或PASCAL语言
主要代码逻辑
判断:条件是否满足
赋值:设置IO点为True还是False
举例:
下面详细解释ST语言:
ST语言支持操作符,控制语言和功能,支持下述方面内容:
- 控制语句:例如条件判断语句,分支语言,循环
- 操作符:*,/,+,-,<,>,=
- 调用用户定义的功能模块FB
- 调用的函数:MELSEC函数,IEC函数
- 注释描述
下面详细的解释,对于MELSEC-Q系列的ST语言的特点:
- 把常用的过程,定义为功能模块FB->相当于高级语言中的函数,以及多个函数组成了库,可被重复利用
- 在线修改:在不停止PLC的CPU的前提下,允许在线修改正在运行的程序
- 与其他语言连接互通:比如用LD梯形图实现顺序控制,然后用ST语言实现操作控制
- 有大量的可用的功能函数:MELSEC-Q系列的函数和IEC函数,有很多通用的指令,均已在IEC61131-3中定义好了,支持ST语言。
PLC语言:顺序功能图(SFC)
举例:
适用于顺序的过程或流程。
PLC语言:连续功能图(CFC)
CFC==Continuous Function Chart
CFC就像一种徒手画出来的FBD的编辑器。
不像面向网络的FBD,其中FBD是对于不同的输入之间的连接点,操作符,输出都是自动设置的。
而CFC则是需要自己手动画的。
因此,所有的模块盒子都可以自由的被替换,因此其无需临时变量即可支持反馈循环(feedback loop)。
不同PLC语言对比 + 如何选择合适自己的PLC语言
Ladder Diagram (LD)==基于US-style of programming, resembling electrical drawing standard
Instruction List (IL)==基于German ‘Anweisungsliste’, AWL
Structured Text (ST)==类似于PASCAL
Function Block Diagram (FBD)==类似于电路图circuit diagram
Sequential Function Chart (SFC)==基于French Grafcet (IEC 848),类似于flowchart流程图
由于各种技术员和工程师的教育水平、擅长的专业领域不同,所以,需要多种PLC语言之间,可以互通。
因为实际情况是,对于不同的领域内的人,其所培训和使用的PLC语言都不同,而导致不同领域之间的人在PLC语言方面,互相很难沟通。
美国的汽车工业领域:倾向于用LD梯形图;
欧洲的汽车工业领域:更喜欢用FBD功能模块图
计算机科学家:喜欢用ST结构图(类似于高级语言,比如C语言)
而不同的PLC语言有各自的优缺点和适用的领域:
内存管理方面的工作:对于内存的读和写,IL和ST(比LD)更加合适;
控制传送带的程序:如果用LD写,很明显会比ST写,逻辑会更清晰;
顺序控制系统:用SFC无疑使最好的选择;
因此,实际上很多时候,是不同的PLC语言混合搭配去使用的:
一个PLC制造商,想要实现一个POU,可能就会选择用IL去处理IO模块
一个传送带制造商,想要用PLC监视和控制限位开关盒马达:更倾向于用LD去实现
而PLC软件人员:会去根据需求去修改对应的IL,使用LD去实现控制
而(上述的传送带可能又会卖给)一个工厂建造商,其都是用FBD,并且要求IO控制程序有对应完整和统一的文档
常用的PLC语言
PLC编程语言中 最常用的语言是梯形图和指令语句表。
梯形图形式上与继电器控制线路很相似。
在继电器控制线路的基础上略加改动就形成PLC的梯形图程序。
在完成梯形图程 序后为使PLC按程序完成控制任务就需要将一段程序存入到PLC的用户程序存储器中这时就要使用编程器将程序的一条一条指令按顺序键入到PLC中即 可。
梯形图与指令语句表的之间存在相互对应关系。
并可以互相转换。
编写简单的程序用梯形图编程比较方便初学者容易掌握。
但是编写复杂程序使则显得繁锁 程序越大越麻烦 不容易编程。
二、步进顺控指令语言编程它是一种专用于顺序控制的较复杂程序的编程方法。
此方法编程方法简单规律性强初学者较易掌握可大大提高工作效率并给调试修改程序带来很大方便。
参考资料
Structured Text Prog Manual_百度文库
Ladder logic – Wikipedia, the free encyclopedia
CODESYS – Wikipedia, the free encyclopedia
转载请注明:在路上 » 【整理】详解IEC 61131-3==多种PLC语言