大数跨境
0
0

想要和PLC谈谈?先学会它的语言吧!

想要和PLC谈谈?先学会它的语言吧! 易维通
2019-02-15
2
导读:【PLC学习训练营】讲师“北岛李工”为大家带来:PLC基础篇之编程语言的魅力

干货下载:(点击标题试试)

13大PLC品牌8000个实例程序免费下载!

免费获得2000G电气自动化、机械等工程领域的资料及软件

点击阅读原文,搜索【PLC】获得更多技术文章


Annie导读

这几日不断有朋友向Annie咨询“PLC学习训练营”的情况,有的是还在学校的工控相关专业学生,有的是刚入行又没什么人带,急需学习PLC,有的想转行,有的想提升。


可见不少人都有着迫切的学习需求,那么,来“PLC学习训练营”,我们负责提供好课程,你就负责努力吧!点击文章标题了解详情《如何才能成为一个优秀的自动化工程师?


今天推荐给各位的是“PLC学习训练营”另一位主要讲师【北岛李工】的文章,他在其中循序渐进的向各位揭开了PLC编程语言的魅力。


1 十六进制机器代码

微电子技术的发展使得集成芯片具有了一定程度的“智能”,微处理器(CPU)能够按照预先设定好的“程序”来运行,人们通过编写“程序”代码,达到与计算机(PC)沟通的目的。


在计算机技术发展的早期,“程序”代码的编写并不是一件简单的事情。由于计算机本身只能理解“0”和“1”组成的代码,于是编程人员只能把“0”和“1” 的数字编成的程序代码打在纸带(“1”打孔,“0”不打孔)上,然后将纸带放入计算机的输入系统中,这样计算机才能明白程序员让它完成什么任务。


程序员编程时要充分定义好每一个“位”的含义,然后按照某种逻辑将它们组合成代码。这种由“0”和“1”组成的代码十分地复杂,人类很难理解(不知道外星人看着好理解不?),给程序的编写、修改和维护都带来了很大的困难。下面这张图片是十六进制的机器代码(不管你能不能看懂,我反正是看不懂):


2 汇编语言

为了提高程序编写的效率,提高代码的可读性及可维护性,计算机科学家们发明了“汇编语言”。汇编语言使用特定的英文符号代替机器指令,大大增强了程序的可读性,提高了编程的效率。


汇编语言的英文指令虽然便于人类理解,但微处理器(CPU)却无法理解。于是科学家们设计出一个专门的程序,用来把汇编语言的英文指令,“翻译”成微处理器(CPU)能够执行的机器代码,这个翻译程序,被称为“编译器”(编译器也有个发展的过程,不深究)。那些用汇编语言写成的代码,被称为“源代码”。下面这张图片,左边是机器代码,右边是汇编语言写的“源代码”:



汇编语言编程与早期的纸带打孔编程相比,程序的可读性大大增强。


3 C语言

但随着微处理器技术的迅猛发展,用汇编语言来写程序也逐渐不能满足需求了,主要表现在两个方面:


第一:随着程序复杂性的提高,汇编语言编写的代码量显著增加,编写和维护的难度变大;


第二:汇编语言依赖于特定的微处理器,程序的跨平台移植性很差,很多时候需要重新编写;


于是,一种不需要记忆繁杂指令的、与硬件平台无关的编程语言就成了程序员们梦寐以求的东西。就这样,计算机高级编程语言便顺天应地的诞生了,其典型代表是C语言。


C语言用结构化的语句代替了汇编语言中的指令,提供了丰富的数据类型和运算符,支持指针功能,编写的代码简洁紧凑,自其诞生之初就受到了众多程序员的追捧,被视为编程语言的经典。时至今日C语言仍保持着强大的生命力,在单片机和嵌入式程序设计中有着不可替代的地位。


4 PLC编程语言

随着微电子技术在工业控制领域的使用,PLC(可编程逻辑控制器)取代了传统的继电器控制系统。作为“可编程”逻辑控制器,编程语言必不可少。但是由于各大厂家的PLC产品自成一派,相互不兼容,编程语言的语法也各有所好,形形色色,PLC应用和推广带来了不便。


为了规范PLC的编程语言,国际电工委员会(International Electrotechnical Commission)起草并颁布了工业自动化领域编程语言的标准(IEC 61131-3),制定了五种在工控领域使用的语言,包括图形式语言和文本式语言。图形式语言包括:梯形图(LD-Ladder Diagram)、功能块图(FBD - Function Block Diagram)和顺序功能图(SFC - Sequential Function Chart)。文本式语言包括:指令表(IL-Instruction List)和结构化文本(ST-Strutured Text)。


为了进一步推广IEC61131-3语言标准,1992年成立了PLCOpen国际组织,总部位于荷兰。PLCOpen国际组织是独立于生产商和产品的全球性机构,其宗旨是规范工业控制领域软件的编程方法,推广IEC61131-3语言标准。符合该标准的编程语言,给予颁发PLCOpen证书。


IEC61131-3语言标准颁布后,各大PLC厂家纷纷表示支持,对自己的产品进行了修正,下图是西门子公司S7产品编程语言与IEC61131-3语言标准的对比:


5 五种编程语言

下面我们来聊聊这五种编程语言。


A. 梯形图

在各种PLC的编程语言中,使用最多的梯形图(LD-Ladder Diagram)语言。梯形图是从早期继电器控制系统原理图演变而来,与继电器电路图相似,直观易懂,保留了继电器电路图的风格和习惯,是熟悉继电器控制系统人员最容易接受和使用的语言。下图是一个简单的梯形图代码:



梯形图虽然容易上手,但是在编写大型系统程序的时候会很吃力。很多书都建议初学者学习梯形图,我不敢苟同,除非你接触的都是些简单逻辑控制。当你感到需要控制的逻辑系统变得复杂,想换一种语言的时候,基本还是要从头学起。所以我建议初学者学习功能块图(FBD - Function Block Diagram)。


B. 功能块图

功能块图(FBD)使用数字电路的逻辑符号(“与”、“或”、“非”)来表达控制逻辑,在编写大型复杂系统的时候也能保证逻辑清晰。下图是功能块图(FBD)的简单示例:


C. 结构化文本

结构化文本(ST-Strutured Text)编程语言,在西门子PLC编程中被称为SCL(Structure Language),先给你看看我在某项目中使用SCL编写的程序代码的截图:



是不是和计算机编程很相似?SCL的语法类似VB(PASCAL)等高级语言,接近人类的思维方式,程序的可读性很强。在西门子Step7 5.x平台下可以使用插入源文件的方式进行编程,在博途平台下可以直接编写。SCL可以说是工控领域里“高大上”的编程语言,它的源代码编译后的效率也很高,如果你之前接触过计算机高级语言编程,强烈建议深入学习下SCL语言。


D. 指令表

指令表(IL),在西门子PLC中称为语句表(STL)。它类似于汇编语言,对编程人员要求较高,需要熟悉PLC内部的各种寄存器、状态字等等,需要熟悉各种指令,并清楚某指令执行后会对哪些寄存器产生影响。语言表(STL)编写的程序可读性相对较低,但其执行效率在所有的语言中是最高的。有些特殊的功能使用其它语言(比如梯形图)表达很困难,或者根本无法表达,语言表(STL)可能几行代码就完成了。下图是一段简单的STL代码的截图:



E. 顺序功能图

顺序功能图(SFC- Sequential Function Chart)语言,在西门子PLC中称为S7-GRAPH。该语言非常适合生产过程的顺利控制,它把整个生产过程分成若干“步”,每一“步”都有某些动作要完成,当某个条件满足后,可以跳到下一“步”,也就是所谓的“顺序控制”。下图是S7-GRAPH代码的示意图:



IEC61131-3推荐的五种语言,在不同的工控场合下均有使用,作为初学者,建议学习功能块图(FBD)语言。如果你有计算机高级语言编程的基础,建议学习下SCL语言。当然,无论学哪种语言,都首先要理解PLC本身,要知道PLC内部资源是如何存储?程序是如何调用?知道了这些后,你才清楚程序应该怎样写,以及为什么这样写。


-END-



了解易维通,你有如下途径:

【易维通订阅号】

1.每日发布工业领域优质技术文章、行业热点话题、技术问答等。

2.菜单栏提供大量技术资料,分类打包奉送,最新课程尝鲜推荐,并持续更新。

【易维通服务号】

1.发布、推荐易维通APP的最新服务&优质服务

2.菜单栏提供丰富的软件、资料下载,了解工控前沿新知,看热点,找大牛,并持续更新。

【易维通小程序】

微信搜索易维通小程序,快速了解易维通平台。



【易维通APP】

下载易维通APP,不仅获取以上所有内容,使用体验更流畅,还有更多惊喜,助你打破发展瓶颈,让自己不负此生!



 ↓↓↓  点击阅读原文,快速进入【易维通

【声明】内容源于网络
0
0
易维通
易维通是工业互联网技术服务创新模式的代表。以企业身边的工业保姆,服务工程师职业发展全周期为己任。在易维通,用户可以随时随地找到技术精湛且靠谱的工程师;技术人才入驻后可以通过开设付费课程和问答等知识分享方式打造个人品牌从而获得机会和订单。
内容 1120
粉丝 0
易维通 易维通是工业互联网技术服务创新模式的代表。以企业身边的工业保姆,服务工程师职业发展全周期为己任。在易维通,用户可以随时随地找到技术精湛且靠谱的工程师;技术人才入驻后可以通过开设付费课程和问答等知识分享方式打造个人品牌从而获得机会和订单。
总阅读2.5k
粉丝0
内容1.1k