想学PLC编程?先弄清5种PLC专用语言!
PLC目前有5种标准的编程语言,包括图形化编程语言和文本化编程语言。
图形化编程语言包括:
梯形图(LD-Ladder Diagram);
功能块图(FBD - Function Block Diagram);
顺序功能图(SFC - Sequential Function Chart)。
文本化编程语言包括:
指令表(IL-Instruction List)& 结构化文本(ST-Strutured Text)。
IEC 1131-3的编程语言是IEC工作组 对世界范围的PLC厂家的编程语言合理地吸收、借鉴的基础上形成的一套针对工业控制系统的国际编程语言标准。它不但适用于PLC系统,而且还适用于更广泛的工业控制领域,为PLC编程语言的全球规范化做出了重要的贡献。
继电器梯形图(LD)
继电器梯形图(LD-Ladder Diagram)语言是PLC首先采用的编程语言,也是PLC最普遍采用的编程语言。
梯形图编程语言 是从继电器控制系统原理图的基础上演变而来的,与继电器控制系统梯形图的基本思想是一致的,只是在使用符号和表达方式上有一定区别。
PLC的设计初衷是为工厂车间电气技术人员而使用的,为了符合继电器控制电路的思维习惯。
作为首先在PLC中使用的编程语言,梯形图保留了继电器电路图的风格和习惯,成为广大电气技术人员最容易接受和使用的语言。
1. 软继电器
PLC梯形图中的某些编程元件沿用了继电器这一名称,如输入继电器、输出继电器、内部辅助继电器等,但是它们不是真实的物理继电器,而是一些存储单元(软继电器),每一软继电器与PLC存储器中映像寄存器的一个存储单元相对应。
如果该存储单元为“1”状态,则表示梯形图中对应软继电器的线圈“通电”,其常开触点接通,常闭触点断开,称这种状态是该软继电器的“1”或“ON”状态。
如果该存储单元为“0”状态,对应软继电器的线圈和触点的状态与上述的相反,称该软继电器为“0”或“OFF”状态。使用中也常将这些“软继电器”称为编程元件。
2. 能流
有一个假想的“概念电流”或“能流”(Power Flow)从左向右流动,这一方向与执行用户程序时的逻辑运算的顺序是一致的。
能流只能从左向右流动。利用能流这一概念,可以帮助我们更好地理解和分析梯形图。
3.母线
梯形图两侧的垂直公共线称为母线(Bus bar)。
在分析梯形图的逻辑关系时,为了借用继电器电路图的分析方法,可以想象左右两侧母线(左母线和右母线)之间有一个左正右负的直流电源电压,母线之间有“能流”从左向右流动。右母线可以不画出。
.梯形图的逻辑解算
根据梯形图中各触点的状态和逻辑关系,求出与图中各线圈对应的编程元件的状态,称为梯形图的逻辑解算。
梯形图中逻辑解算是按从左至右、从上到下的顺序进行的。解算的结果,马上可以被后面的逻辑解算所利用。
逻辑解算是根据输入映像寄存器中的值,而不是根据解算瞬时外部输入触点的状态来进行的。
1、与电气操作原理图相对应,具有直观性和对应性;
2、与原有继电器逻辑控制技术相一致,对电气技术人员来说,易于掌握和学习;
3、与原有的继电器逻辑控制技术的不同点是,梯形图中的能流(Power Flow)不是实际意义的电流,内部的继电器也不是实际存在的继电器,因此,应用时,需与原有继电器逻辑控制技术的有关概念区别对待;
4、与指令表程序设计语言有一一对应关系,便于相互的转换和程序的检查。
功能块图(FBD)
功能块图(FBD - Function Block Diagram)采用类似于数字逻辑门电路的图形符号,逻辑直观,使用方便,它有梯形图编程中的触电和线圈等价的指令,可以解决范围广泛的逻辑问题。
1、以功能模块为单位,从控制功能入手,使控制方案的分析和理解变得容易;
2、功能模块是用图形化的方法描述功能,它的直观性大大方便了设计人员的编程和组态,有较好的易操作性;
3、对控制规模较大、控制关系较复杂的系统,由于控制功能的关系可以较清楚地表达出来,因此,编程和组态时间可以缩短,调试时间也能减少。
顺序功能图(SFC)
顺序功能图(SFC - Sequential Function Chart)亦称流程图或状态转移图,是一种图形化的功能性说明语言,专用于描述工业顺序控制程序,使用它可以对具有并发、选择等复杂结构的系统进行编程。
1、以功能为主线,条理清楚,便于对程序操作的理解和沟通;
2、对大型的程序,可分工设计,采用较为灵活的程序结构,可节省程序设计时间和调试时间;
3、常用于系统的规模较大,程序关系较复杂的场合;
4、只有在活动步的命令和操作被执行,对活动步后的转换进行扫描,因此,整个程序的扫描时间较其他程序编制的程序扫描时间要大大缩短。
指令表
指令表(IL-Instruction List)编程语言类似于计算机中的助记符汇编语言,它是可编程控制器最基础的编程语言,所谓指令表编程,是用一个或几个容易记忆的字符来代表可编程控制器的某种操作功能。
1、采用助记符来表示操作功能,具有容易记忆,便于掌握的特点;
2、在编程器的键盘上采用助记符表示,具有便于操作的特点,可在无计算机的场合进行编程设计;
3、与梯形图有一一对应关系,其特点与梯形图语言基本类同。
结构化文本(ST)
结构化文本(ST-Strutured Text)是一种高级的文本语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。
结构化文本语言表面上与 PASCAL语言很相似,但它是一个专门为工业控制应用开发的编程语言,具有很强的编程能力用于对变量赋值、回调功能和功能块、创建表达式、编写条件语句和迭代程序等。
1、采用高级语言进行编程,可以完成较复杂的控制运算;
2、需要有一定的计算机高级程序设计语言的知识和编程技巧,对编程人员的技能要求较高,普通电气人员无法完成。
3、直观性和易操作性等性能较差;
4、常被用于采用功能模块等其他语言较难实现的一些控制功能的实施。
提示注意:不是所有的PLC都支持所有的编程语言(如功能块图、顺序功能图就有很多低档PLC不支持),而大型的PLC控制系统一般都支持这5种标准编程语言或类似的编程语言。
还有一些标准以外的编程语言,它们虽然没有被选择进标准语言中,但是它们是为了适合某些特殊场合的应用而开发的,在某些情况下,它们也许是较好的编程语言。
比如D7-SYS的连续功能图CFC就是专为大型连续工艺控制而开发,只要调用程序中的CFC功能块就可以轻易实现象PID控制器、计数器、定位器、斜坡函数发生器等一系列特殊功能,而且不需要专门的编程知识,只需要懂得图形化处理和标准程序块的使用,进行简单的设置即可。
聊聊PLC的学习方法
1、学习PLC编程需要坚强的毅力和足够的耐心
人各有所长。有些人把编程看作一项冗长而枯燥的工作;有些人把编程看作一项趣味的智力游戏。如果你是前者,强烈建议你远离这份工作。
毕竟编程工作是对人的毅力和耐心的挑战,编程需要经历无数次的试错,调试-修改-调试-修改…经过无数次失败后,当看到PLC按照自己的控制要求有条不紊的运行时,你将得到极大的成就感,这就如同打通了一个游戏的关口,那种感觉是一样的。
2、学习PLC编程需要敢于实践的信心
很多初学者往往是出于一种畏惧,担心损坏设备,而不敢进行实际操作。其实这些畏惧是没有任何道理的,只要你仔细的阅读手册,遵循标准的规范去接线实操的,都不会出什么问题。
不必担心自己写的程序会有什么问题,会影响PLC的正常工作,程序有没有问题,只有让PLC运行了才能发现。所以,要有敢于实践的信心,大胆的实践是PLC编程的必由之路。
3、编程需要有缜密的逻辑思维
编程本身就是一种逻辑思维过程。
最初的PLC是用来替代继电器逻辑电路的,所以继承了继电器电路以触点作为触发条件的描述方式。
在PLC中,以虚拟触点代替了继电器触点,而继电器电路所表达的逻辑关系还是被完整的保留下来。所以,要理顺对象之间的逻辑关系,要有缜密的逻辑思维。
4、养成良好的编程习惯
每个人编程都会有不同的习惯和特点,不能强求一致。但是一些好的习惯还是应该为大多数人所遵循。
一、理顺逻辑关系、时序关系,编制程序框图;
二、合理分配主程序、子程序和中断程序;
三、合理分配寄存器,编制寄存器符号表。
PLC的很多操作都是直接针对寄存器的,如果在程序中出现不合理的寄存器地址重叠,可能会造成程序错误。
编制寄存器符号表不仅可以避免上述问题,而且可以使程序具备更好的可读性。
PLC提供了丰富的指令、模块,初学者编程时应尽量先使用简单的指令达到目的,这对你理解那些较为复杂的指令会有帮助,具备了一定经验后,应该考虑掌握复杂指令的应用,以及程序的优化。
5、有一定的程序设计基础知识
有一定的程序设计基础知识,以及弄通有关PLC程序设计理论是重要的。
没有这方面的理论准备或指导,仅靠在实践中摸索,简单的问题还好办,复杂的就不好办了,不仅无从下手,而且花了很多时间与精力,也难编出质量也较高的程序,常常是事倍功半。
任何理论也都只是经验的总结,归根到底也都是来自实践。
最美编程语言Pascal,经典学院派语言,成就了Delphi的传奇
1971年世界上第一台微处理器 —— 由成立三年的Intel公司推出的 4004 CPU —— 在美国硅谷诞生。……而与此同时,世界上第一个结构化编程语言 Pascal 正式诞生,软件编程领域也开始由此走出了象牙塔、走向了大众。……Delphi 是 Windows 平台下著名的快速应用程序开发工具(RAD),一个集成开发环境(IDE)……“真正的程序员用C++,聪明的程序员用Delphi”
1971年世界上第一台微处理器 —— 由成立三年的Intel公司推出的 4004 CPU —— 在美国硅谷诞生,开启了微型计算机的新时代。同时也使得计算机的应用领域,开始从科学计算、事务管理、过程控制逐步走向普通家庭。而与此同时,世界上第一个结构化编程语言 Pascal 正式诞生,软件编程领域也开始由此走出了象牙塔、走向了大众。
作为一门高级编程语言,Pascal语言语法严谨,层次分明,程序易写,可读性强。这些特点与当时阳春白雪的其他编程语言形成了极大反差,一出世就受到广泛欢迎,促使其被广泛用于各种软件的编写,同时也降低了软件编程语言的学习曲线,为软件领域的大发展打下了坚实的基础。
作为一门软件编程语言,基于ALGOL的Pascal语言是最早出现的结构化编程语言,具有丰富的数据类型和简洁灵活的操作语句。由瑞士苏黎世联邦工业大学的Niklaus Wirth(尼古拉斯·沃斯)教授于六十年代末设计并创立,并在1971年正式以数学家Pascal(帕斯卡)的名字为之命名,由此被称为Pascal之父。当然此Pascal是指Pascal编程语言。
尼古拉斯·沃斯教授曾提出著名的公式:“算法+数据结构=程序”,这一公式言简意赅的定义了程序,充分说明了软件程序的设计思想核心。凭借这一句话,尼古拉斯·沃斯教授获得了1984年的图灵奖。
在软件编程高级语言发展过程中,Pascal语言是一个重要的里程碑,因为其是第一个系统地体现了结构化程序设计概念的编程语言。由Pascal语言开发的程序,源代码一般分为名称(program后自拟)、设置(var后规定)、开始(begin)、程序(正文)、读取(read/read ln)、结束(end),结构层次强,严谨而又紧密。
在最初,由于有益于培养良好的程序设计风格和习惯,Pascal语言在很大程度上,就是为了教授学生结构化编程,作为计算机编程的入门语言,因此也被称之为“学院派语言”。在国内八九十年代的大学中,真正接触编程就是从学习 Pascal 语言开始的,之后才轮到汇编语言、C 语言。
Pascal 语言的高峰时期,很多公司都采用其作为开发语言,很多著名应用软件也都是使用其进行编写的。比如,Pascal 语言是苹果公司早期开发使用的高级语言;而像Total Commander 应用是使用 Object Pascal语言编写的。另外,Pascal语言还是国际信息学奥林匹克竞赛和全国奥林匹克信息学竞赛的程序设计语言之一。
在Pascal语言问世后,先后产生了适合于不同机型的各种各样的版本,其中影响最大的莫过于Turbo Pascal系列软件,而应用最广泛的则是是 Free Pascal 软件。
Pascal语言发展到后来,也形成了一些标准,并由Pascal标准委员会所创立和维护了部分版本,但却不包括影响巨大的Borland Pascal。由于 Turbo Pascal 系列和 Delphi 系列软件功能强大并且广为流行,其使用的 Borland Pascal 和 Delphi Object Pascal 基本上已自成一种标准。
Borland Pascal 和Delphi Object Pascal 都是由 Borland (宝蓝)公司专门为其开发的编译工具设计的 Pascal 语言。前者是用于DOS的 Turbo Pascal 系列和 Windows 3.x 的 Turbo Pascal for Windows 的传统高级语言,后者是用于 Windows 操作系统的 Delphi 和 Linux 的Kylix 的面向对象程序设计语言。
Delphi 是 Windows 平台下著名的快速应用程序开发工具(RAD),一个集成开发环境(IDE),最早的版本由美国 Borland(宝兰)公司于1995年开发,主创者为 Anders Hejlsberg(安德斯·海尔斯伯格)。
作为计算机科学家和 Delphi 的创立者,安德斯·海尔斯伯格最早先是编写了一个被称之为“Compass Pascal” 编译器核心。后来他把这个编译器核心授权给了美国Borland公司,并作为雇员加入 Borland 公司,并且是后来所有 Turbo Pascal 版本与 Delphi 前三个版本的架构师。而后来安德斯·海尔斯伯格被比尔.盖茨亲自挖到了微软,成为了Borland公司和微软公司后续一系列官司的。
Delphi 使用的核心是由传统 Pascal 语言发展而来的 Object Pascal,以图形用户界面为开发环境,透过IDE、VCL(可视化控件库)工具与编译器,配合连接数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。
Delphi 的最后版本为发布于2004年的Delphi 2005,已变成了一个综合性的IDE,已经不是纯粹的 Pascal 语言的RAD了。而Delphi的命运也开始变得波折起伏,让 Delphi 粉丝痛惜不已。
Borland公司在随后的2005年发布的Delphi版本,被改名为 Borland Developer Studio(BDS) 2006。时间进入2006年后,Borland公司没有发布新的BDS版本,而是将BDS 2006拆分成几个独立的版本,包括Delphi for win32。与此同时将内部IDE生产部份单独成立了一家被命名为 CodeGear 的公司,企图恢复Delphi昔日的荣光。
然而,现实是残酷的, CodeGear 公司在发布了 Delphi 2007 后,于2008年被Borland公司整体卖给了Embarcadero(易博龙)技术公司。让还在坚守的 Delphi 程序员,以及Delphi 迷们稍感欣慰的是易博龙公司保留了 Delphi 的名称,但将其包含于Embarcadero RAD Studio中,新版本被命名为了 Delphi XE 系列。最新的发布版本是Embarcadero Delphi 10,但知道、使用的人已经非常有限了。
Delphi被称为第四代编程语言,具有简单、高效、功能强大的特点。由于其兼具高效强大和简单易学的特点,所以在坊间流传有一句绝对是对Delphi最经典、最实在的描述的话,这句话就是“真正的程序员用C++,聪明的程序员用Delphi”。
Pascal语言作为一门结构化高级编程语言,在面向对象编程成为主流前的时代,曾经影响了整整几代的程序员。以Pascal语言成名的 Delphi 也造就了传奇,成为了过去时,但Pascal语言之父 尼古拉斯·沃斯 教授的“算法+数据结构=程序”的软件思想,还必将会继续指引现在和以后的程序员们前进的方向。
Delphi是开发工具史上的奇迹,必将留存于很多人的记忆之中。作为曾经靠 Delphi 吃饭的“失败”程序员,人生第一段程序代码就是在草稿本上使用 Pascal 语言编写的人,至今依然深深的怀念与迷醉于Pascal语言的严谨和层次分明的结构,其产生的编程美感是其他编程语言所不能给予的。
虽然 Delphi 已然老去,成为了传奇,在更名后的岁月里不断挣扎扑腾,渐渐远离了新生代程序员的视野,但历史必将有其地位,必将有无数人向其致敬。
在岁月逐渐褪去光华的今天,回首曾经不分昼夜的编写代码的日子,因为Delphi,可以无悔。在此向 尼古拉斯·沃斯 教授、 安德斯·海尔斯伯格大师 表示深深的敬意!
欢迎大家关注 “梦想视角” !一起关注互联网、科技、手机、数码资讯!
Pascal 编程语言前世今生
Pascal是一种过程式编程语言,具有丰富的数据类型和简洁灵活的操作语句,可以方便地书写出结构化程序,保证了程序的正确性和易读性。70、80、90年代,它可是非常流行的。年龄大一点的老程序员,都对他曾有过一段难忘的美好回忆。Pascal 是探索代码世界的启蒙导师,它那简洁明了的语法结构,严谨的逻辑规范,为他们打下了坚实的编程基础。就如同一位亲切的老友,陪伴着他们走过了最初的学习之路,留下了无数珍贵的瞬间和难忘的经历。
“真正的程序员用C++,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。Delphi就是使用Object Pascal语言编写。
虽然,Pascal现在不是流行的语言,但是它也曾在Borland公司里发展壮大、并一时辉煌,盖过了当时的微软。本文的目的,和粉丝一起回忆曾经辉煌的过去。
Pascal由Niklaus Wirth于1968年设计并于1970年发布,并以法国数学家和哲学家Blaise Pascal的名字命名。Pascal语言语法严谨,一出世就受到广泛欢迎。Pascal可以运行在多种平台上,例如Windows、Mac OS和各种版本的UNIX/Linux。高级语言发展过程中,Pascal是一个重要的里程碑。占用一席之地。
在Pascal问世以来的五十余年间,先后产生了适合于不同机型的各种各样版本。在Pascal的发展史上,其中影响最大的莫过于美国Borland公司设计、研制的Turbo Pascal系列软件。它运行于PC机上。1983年推出1.0版本,直到1992年推出的7.0版本。这之前,在软件开发公司领域 Borland 公司几乎是高品质软件代名词!基本没有微软什么事情。提到微软,不得不提到微软的Visual Basic。1991年,Visual Basic 1.0 Windows 版本横空出世。尤其是可视化窗口编程,深受世界程序员的喜爱和欢迎。那个时候,Borland公司只有BC++与其争夺市场。就在这时,Borland公司捡起了Pascal语言,推出了面向对象的Object Pascal(属于Pascal发展分支),于1995年推出了delphi1.0 ,支持Windows开发。
delphi的问世,迅速得到世界程序员的青睐。和VB相比,除了表达的语言不一样,可以说Delphi同时兼备了VC功能强大和VB简单易学的特点,而且delphi编写的程序运行非常流场,不是VB可比的。从1999年发布Delphi5,Delphi以其开发快捷、控件丰富、易于上手等优势吸引了众多的开发者,用户人数达到高潮,一度超越微软的Visual Studio。可是好景不长,在推出Delphi7之后不久,Borland公司也走向衰败,2009年最终被人收购。
之后从Delphi2005到Delphi2010,这些版本基本不受Delphi开发者关注。Embarcadero推出DelphiXE,版本升得很快,到了XE8。之后就是10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio†, 10.4 Sydney†, 11 Alexandria†等版本,关心的人就比较少了。
2023年11月,发布了最新的版本已是RAD Studio 12。具有改进的VCL 和 FireMonkey库。一次开发,Windows, Android, iOS, macOS, and Linux五种操作系统都可以编译使用。delphi12,似乎要重新焕发青春、重新崛起之势。
虽然Object Pascal的发展非一帆风顺,再也没有Delphi7之前的辉煌,但是另外的一个Free Pascal却得到了发展。Free Pascal是一款成熟、通用、开源的Pascal编译器。它可以在多个处理器架构中运行,几乎可以运行所有的操作系统上,是一个跨平台的编译器。虽然Free Pascal尽量设计得和Turbo Pascal接近,但Turbo Pascal只是16位编译器,只在windows和DOS上使用。此外,Free Pascal团队维护了一个Pascal到Javascript的transpiler,名为pas2js。目前,Free Pascal最新版本是2021年推出的版本3.2.2。似乎也比较老了,好久没有更新了。
提到Free Pascal,就不得不提到Lazarus。Lazarus一词大有来头,它是Eleazar的拉丁文写法,本意是“神是我的帮助”,来源于圣经人物,是的朋友。Lazarus在死后第三天被从坟墓中唤醒复活。具有神奇色彩。
Lazarus的设计目标是应用Free Pascal,所以所有凡是Free Pascal能运行的平台,Lazarus都可以运行。最新版本是3.4版本,能运行于Linux,Win32和Mac OS。整个界面的外观和操作和Delphi IDE一样,因此,如果你会使用Delphi的话,用起Lazarus IDE来就一定能得心应手了。正是这种结合,使得Pascal成为Lazarus这种先进开发环境的编程语言。可以说,使用Lazarus,让Delphi以另外一种方式存活,得以继续发展。
在当今的编程世界中,Pascal 确实已经不再像曾经那样广泛地被大众所采用和追捧。曾经,它或许在编程领域占据着重要的一席之地,为无数开发者提供了入门和成长的基石。然而,随着时间的推移和技术的飞速发展,新的编程语言不断涌现,使得 Pascal 逐渐淡出了主流视野。
如今,尽管 Pascal 的光芒有所黯淡,但 Delphi 12 和 Lazarus 3.4 依然在延续着它的发展。Delphi 12 凭借其强大的可视化开发环境和丰富的组件库,为开发者提供了高效便捷的开发体验。Lazarus 3.4 则以其开源的特性和跨平台的优势,吸引了众多爱好者和开发者的参与和贡献。它们在 Pascal 的基础上不断创新和改进,融入了新的技术和理念,努力适应着不断变化的编程需求和市场环境,为 Pascal 这一经典语言注入了新的活力,使其在特定的领域和用户群体中继续发挥着重要的作用。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。