PLC的编程策略面向对象编程和梯形图逻辑

北京最权威治疗白癜风医院 http://disease.39.net/yldt/bjzkbdfyy/

在产业主动化范畴,梯形图逻辑依然是最罕用的编程言语之一,但关于愈加繁杂的操纵目标,面向目标编程不失为一种高效率的方法。底下先来谈谈面向目标编程:

面向目标编程是策画机高档言语的一种先进的编程形式,在产业操纵系统的PLC程序中也也许采取这类策画心思,纵然咱们没法实行面向目标的许多卓绝特征如“承受”,以至于它根底就不具备面向目标编程言语的特征,但面向目标编程的根底观念便是类和类的实例(即目标),咱们只要要行使这类观念就也许了。在策画机编程中咱们需求把一些事物笼统和总结,才略编写类,而在产业操纵系统中,操纵目标如:机电,阀等等是很显然的操纵范例,不需求笼统就也许很显然的针对它们编写类,下列将会用到西门子的Step7编程言语和施奈德的Unity编程言语来解说PLC的面向目标编程。

一、实行方法

面向目标编程在Step7中行使工能块(即FB)编程,一谈到此众人就会料到西门子提议的模块化编程,不错,便是这个模块化编程,但西门子提议的模块化、布景数据块、多重布景等名词并不能让众人很知道的领会和行使这类卓绝的策画观念。

若是众人从面向目标编程的角度去领会,则也许很好的领会这类策画形式。“FB块”被算做“类”,它也许被算做是对彷佛的操纵目标的代码总结,如对MM的变频器也许编写FB块:MtrMM,这在面向目标编程中称为“类”,当需求编程操纵详细的机电时,也许给它分派一个布景DB块,在面向目标编程中称为类的实行(即创立类的实例:目标),当需求操纵多个机电时,也许分派不同的布景DB到这个FB块,即创立类的多个实例。Step7中有别的一种程序块,即FC块,以FC块为主的编程在西门子中称为构造化编程,这也也许类比于策画机编程中的面向进程编程,即纯洁以函数为主体的编程。

施奈德的Unity软件编程也许更好的领会面向目标编程。它的DFB界说中包罗输入/输出参数,专有/公有变量,以及代码实行,而这恰是策画机的面向目标编程中“类”的根底元素,而创立类的实例(目标)就像创立平凡的“布尔”变量相同,只要在“FunctionBlocks”中界说这类“类”的变量便可。

Step7和Unity均也许采取面向进程和面向目标编程方法,这两种编程方法的差别相仿于策画机高档言语中的C言语和C++言语编程的差别。

下列的解说将会把Step7中的FB和Unity中的DFB称为“类”,Step7中的FB+布景DB以及Unity中DFB的实例称为“目标”。

二、面向目标编程架构

以上解说的是实行细节,而编程心思是创设在程序架构上的,不是某个部分行使了面向目标方法,则也许称之为这类编程便是面向目标编程。这类编程需求从下列方面动手:

1、电路策画的构造化。

这边重要以主动线为主先容,关于单机机床可所以它的简化构造:

1、主动线层:这是最高条理,它占有一个主PLC,对属于它底下的各地区操纵2、工程层:占有自力的配送电系统,但没有PLC,惟独散布式模块,由主动线操纵。顾名思义,它有着较大的自力性,也许做为一个独自的工程项目策画和缔造,当主动线比较小时,也许省略该条理。

3、机能组层:凭借工艺区分,将实行某一个工艺机能的区段装备区分为一个机能组,它附属于工程层,当工程层被省略时,附属于主动线层。面向目标编程并不肯定请求行使以上的构造,但好的电气构造更利于面向目标编程。

2、任何操纵目标逻辑都在“类”中实行。

为了做到这点,必需剖析与操纵目标关连的音信,好比,关于一个机电,有下列关连的音信需求琢磨:

输入音信:

1、电路掩护音信,如机电的空气开关,热继电器等。

2、机能掩护音信,如活动机电的限位开关,风机的风压开关,油泵的油位开关等。

3、启动和停止前提,以上的电路掩护和机能掩护均也许致使机电运行停止,复位也也许致使重启动,但这边的前提指的是寻常运行的启动和停止前提,好比依序操纵的过程步。

4、操纵形式:如手动和主动等。

5、毛病复位:经过复位音信,从新启动。

输出音信:

1、操纵输出,如操纵机电的主来往器。

2、形态音信输出

3、毛病输出

形态储蓄音信:

用于代码实行的中央变量以及也许被人机界面读出的形态变量等。把以上音信都调整到一个类中,并只管使类的参数准则化。不过,同高档编程言语仍旧曾在一些不同,针对Step7,理当遵照的准则是:程序构造由FC实行,目标操纵由FB实行,下列的一种构造编制(其电气构造来自上头的先容):这只不过是一个大概的PLC程序架构编制,好的架构理当更完满和科学。

3、经营好数据构造

数据构造的界说相当要害,并只管统一这些构造,不要担心保存空间,现在的PLC内存足以包容大批的数据。注明一点的是在Step7中只管不要在类的外部界说数据构造(UDT),而是在类内部界说,纵然会形成不同类中统一构造的反复性界说,但却抬高了类的自力性。

在接下来的篇幅中,咱们来比较一下这两种编程方法:

面向目标编程的长处与梯形图逻辑比拟,面向目标编程有下列长处:

?代码可移植,易于反复行使;

?易于行使数学函数、轮回等;

?险些在每一门策画机编程课程中,都邑教学面向目标编程;

?代码也许在各类硬件平台上运行。

要把握面向目标编程,首先需求领会目标的观念及其行使。一旦目标或模块类编写实行,就很轻易经过屡次移用来实行反复行使。譬喻,创立一个目标来操纵机电,用来处置全数输入、输出和毛病。当需求时,也许经过屡次实例化该简捷操纵目标,来操纵多个机电。这便是所谓的按需实例化。当需求操纵多个电动机时,也许屡次行使该单个物体。它在需求时移用,并在使历时创立实例。

每个机电的每个实例都有本人的特征,如机电停机、机电运行、机电转速、机电过载等。大大都编程劳动都是在初度创立目标时实行的。这是一种与梯形逻辑不同的心思方法,况且更强壮,由于一旦创设了一个目标,它就很轻易行使和重用。面向目标编程更易于履行繁杂的数学函数、轮回策画、数组和嵌套子例程。险些每一门策画机编程——不管是高中、大学、仍旧网络上的教程,都邑教学这方面的学问。创立的代码是可移植的,也许在各类硬件平台上运行。

“梯形图逻辑遵照继电器操纵系统中行使的梯形电气图的格式,大大都人均也许疾速研习并把握它。”

不过,与梯形图逻辑比拟,面向目标编程有下列瑕玷:

?花费更高;

?更陡峭的研习弧线;

?关于保护人员来讲,毛病消除不是特殊轻易;

?在将源代码上传四处置器以前,每每需求编译。

与梯形图逻辑比拟,面向目标编程通常需求更多的内存和更强的处置技巧,是以花费就更高。面向目标编程言语的研习工夫也许更长。很也许需求讲堂研习,需求大批的工夫、练习、测试和运用来把握重点观念。编程人员必需屡次钻研面向目标编程,以便行使跟踪器来追踪代码,或调试器来调试逻辑。行使这类范例的高档编程,也许很难实行及时在线监督机能。

在将源代码下载到操纵器以前,必需对其举办编译。每每,源代码并不保管在处置器内存中。这象征着必需谨慎备份源代码,由于编译过的代码每每是不行编纂的。行使面向目标编程,库文献必需与在编译进程中行使的别的资本贯串接。若是不认识衔接和资本,将很难使程序运行。

梯形图逻辑上风:

梯形图逻辑是一种简捷且则文档化的编码办法,以至有人质疑它能否是一种编程言语。它遵照继电器操纵系统中行使的梯形电气图的格式,大大都人均也许疾速研习并把握它。它是在从前的数十年来仅有在机械主动化范畴中大范围运用的编程言语,况且在可预示的未来,依然是主动化行业中行使的重要编程言语之一。

跟着工夫的推移,具备不同布景的人从不同范畴加入该行业,各类编程言语被引入产业主动化器械箱中。此中囊括机能块编程、构造化文本、形态编程讲理序机能图。这4种编程言语和梯形图逻辑,形成了IEC-3国际电工委员会(IEC)的准则编程言语。

IEC面前的逻辑是:若是每个供应商都遵照该准则,那末起码在某种水平上,一个体只要研习这5种编程言语,就也许轻便地在来自不同供应商供应的平台之间举办切换。但是,底细却并非如许。

根底梯形图逻辑(如行使继电器触点和线圈)也是相同的;但是在编程时,必需研习每个供应商的语法和用户领会,以及怎么行使编程平台的详细音信。纵然不够准则化,但与面向目标编程比拟,梯形图逻辑有下列上风:

?特殊合适机械和进程操纵;

?由于实质上是自文档,是以更易于领会;

?易于对受控系统举办毛病消除;

?易于调试;

?源代码每每也许保存在处置器中。

梯形图逻辑特殊合适于机械和进程操纵,特殊是具备大批分散输入、输出(I/O)的主动化系统。多年来,梯形图逻辑也在持续矫正,以处置摹拟量I/O,使其更合适于浩繁的进程操纵运用。

与机械操纵运用比拟,进程运用中摹拟量I/O的比例通常较高。

由于梯形图逻辑比面向目标编程更易于行使,是以浩繁纯熟的技巧人员和工程人员也许疾速研习梯形图逻辑。逻辑高度系统化、有序化,再加之其具备自文档的性质,使其更易于领会和把握。在启动某个装备以前,每行代码都必需为真。若是有5个机电需求操纵,那末起码需求5行代码,实行了高度简化。

“梯形图逻辑源代码和描绘符每每保管在操纵器中,无需拜会源代码,这也许消除程序员在试图领会编译程序所蒙受的挫败。”

对电气工程师和保护人员来讲,梯形图逻辑特殊直觉。纵然梯形图逻辑需求有与面向目标编程不同的心思方法,但经过研习也许疾速把握,况且领会别人编写的代码所需的工夫也较少。逻辑何时为真,何时为假,一目了然。即便编程阅历有限的人,也很轻易弄认识开或关、线圈通电、比较变量和罕见的数学函数。

它简捷易用,简化了毛病消除和调试劳动。监督逻辑时,也许很轻易知道当前正在产生的工况。无需软件学位或高档编程技巧。有了梯形图逻辑,保护人员和工程人员就很轻易跟踪过程,认识正在产生的事变。也许将梯形图逻辑看做真值表。若是左侧的逻辑为真,则右边的逻辑就会启动。

梯形图逻辑源代码和描绘符,每每被保管在操纵器中。这也许消除程序员在试图领会编译程序而没法拜会源代码时所蒙受的挫败,面向目标编程也是如许。

但是,与面向目标编程比拟,梯形图逻辑也犹下列瑕玷:

?策画机程序员和IT人员对梯形图逻辑不熟习;

?难于举办数学函数、文本和数据处置;

?依赖于扫描工夫;

?需求特意的硬件来履行,如可编程逻辑操纵器(PLC)。

梯形图逻辑是策画机程序员和IT人员所不熟习的一种标识言语,他们在黉舍里并没有研习这类言语。在梯形图逻辑中处置数学函数、文本字符串和数据也许会很窘迫,这主如果由于梯形图逻辑最后并不是为了处置这些函数而策画的。

梯形图逻辑也依赖于扫描工夫。较大的程序,需求更长的工夫来扫描和处置逻辑。履行梯形图逻辑时,读取输入、扫描逻辑、革新数据表和输出、履行通讯,而后轮回反复。也许实行中止和别的编程技巧等机能,以保证更快地履行某些逻辑。

纵然建设了梯形图逻辑的基于软件的PLC也许在PC上运行,但每每硬件(如PLC)要与编程软件相般配,两者最佳都是从统一个供应商处采办的。如许就也许保证兼容性,但若是想要替换供应商,则不是特殊便利。

除了比较梯形图逻辑和面向目标编程的是非外,用户还理当评价这些编程言语在将要布置的处境中的行使处境。若是工场或设备已实行了梯形图逻辑的准则化,那末即便面向目标编程更合适于该运用,也不鞭策将梯形图逻辑替换为面向目标编程。跟着面向目标编程的行使日趋加多,瞻望在未来几十年内,它将与梯形图逻辑并存。一个有远见的主动化专科人士,最佳要把握这两种言语。

在平时的劳动中,你更爱好哪一种编程方法呢?

End

本文系网络转载,版权归原做家全数。但因转载浩繁,没法确用心实原始做家,故仅表明转载起原。本文所用视频、图片、文字如触及做品版权题目,请第一工夫告诉,咱们将凭借您供应的证实材料确认版权并按国度准则支出稿酬或即时节略体例!本文体例为原做家观念,并不代表本


转载请注明:http://www.aierlanlan.com/tzrz/778.html