在科学、技术、工程和数学(STEM)教育、FIRST组织(一个美国的非盈利机构,旨在鼓励学生在工程范畴和科技范畴方面不时拓展)的活动以及高中的其它技术课程中,许多年轻人曾经运用树莓派(RaspberryPi)、Arduino、或相似的微控制器来编程。通常状况下,大多数人都在学习运用某品种型的面向对象编程(OOP),当他们走入社会的时分,自然的就会倾向于运用面向对象编程。
工业自动化不断依赖于梯形图逻辑(也被称为梯形图)曾经有近50年的历史了。编程人员曾经具有数十年的工业编程经历。但这些经历丰厚的编程人员,不会不断工作下去,他们也会退休;大量熟习面向对象编程的年轻员工,正不时涌入到这个行业。如何向这些重生劳动力引见梯形图逻辑?
固然面向对象编程有优点也有缺陷,但它是学习、运用梯形图逻辑十分好的动身点。
面向对象编程呈现于20世纪60年代初或更早,比梯形图逻辑的历史还要长远。在制造业范畴,有很多可用的硬件和软件使其更受欢送。先进的微控制器,如Arduino和树莓派就是一个例子。
Arduin
o微控制器硬件通常运用Zui根本的C言语来编程(见图1)。树莓派基于Linux系统,有许多面向对象编程平台,如Python和Java。这些低本钱的微控制器和微软的.net平台,为想学习面向对象编程的人员提供了资源。
图1:Arduino微控制器硬件通常运用面向对象言语停止编程,普通是Zui根本的C言语。本文图片来源: AutomationDirect
面向对象编程的优点
与梯形图逻辑相比,面向对象编程有以下优点:
●代码可移植,易于反复运用;
●易于运用数学函数、循环等;
●简直在每一门计算机编程课程中,都会教授面向对象编程;
●代码能够在各种硬件平台上运转。
要控制面向对象编程,需求了解对象的概念及其运用。一旦对象或模块类编写完成,就很容易经过屡次调用来完成反复应用。例如,创立一个对象来控制电机,用来处置一切输入、输出和毛病。当需求时,能够经过屡次实例化该单一控制对象,来控制多个电机。这就是所谓的按需实例化。当需求控制多个电动机时,能够屡次运用该单个物体。它在需求时调用,并在运用时创立实例。
每个电机的每个实例都有本人的特性,如电机停机、电机运转、电机转速、电机过载等。大多数编程工作都是在初次创立对象时完成的。这是一种与梯形逻辑不同的思想方式,更强大,由于一旦构建了一个对象,它就很容易运用和重用。
面向对象编程更易于执行复杂的数学函数、循环计算、数组和嵌套子例程。简直每一门计算机编程——无论是高中、大学、还是网络上的教程,都会教授这方面的学问。创立的代码是可移植的,能够在各种硬件平台上运转。
面向对象编程的缺陷
与梯形图逻辑相比,面向对象编程有以下缺陷:
●费用更高;
●更峻峭的学习曲线;
●关于维护人员来说,毛病扫除不是特别容易;
●在将源代码上传四处理器之前,通常需求编译。
与梯形图逻辑相比,面向对象编程常常需求更多的内存和更强的处置才能,费用就更高。面向对象编程言语的学习时间可能更长。很可能需求课堂学习,需求大量的时间、理论、测试和应用来控制中心概念。
编程人员必需经常研讨面向对象编程,以便运用跟踪器来追踪代码,或调试器来调试逻辑。运用这品种型的gaoji编程,可能很难完成实时在线监视功用。
在将源代码下载到控制器之前,必需对其停止编译。通常,源代码并不保管在处置器内存中。这意味着必需当心备份源代码,由于编译过的代码通常是不可编辑的。
运用面向对象编程,库文件必需与在编译过程中运用的其它资源相衔接。假如不理解衔接和资源,将很难使程序运转。
梯形图逻辑的优势
梯形图逻辑是一种简单且自文档化的编码办法,以至有人疑心它能否是一种编程言语。它遵照继电器控制系统中运用的梯形电气图的格式,大多数人都能够快速学习并控制它。它是在过去的数十年来独一在机器自动化范畴中大范围应用的编程言语,并且在可预见的未来,依然是自动化行业中运用的主要编程言语之一(见图2)。
图2: AutomationDirect提供的一款PLC,可为执行梯形图逻辑提供工业硬件平台。
随着时间的推移,具有不同背景的人从不同范畴进入该行业,各种编程言语被引入工业自动化工具箱中。其中包括功用块编程、构造化文本、状态编程和次第功用图。这4种编程言语和梯形图逻辑,构成了IEC61131-3国际电工委员会(IEC)的规范编程言语。
IEC61131背后的逻辑是:假如每个供给商都遵照该规范,那么至少在某种水平上,一个人只需学习这5种编程言语,就能够轻松地在来自不同供给商提供的平台之间停止切换。事实却并非如此。
根本梯形图逻辑(如运用继电器触点和线圈)也是一样的;在编程时,必需学习每个供给商的语法和用户体验,以及如何运用编程平台的细致信息。
缺乏规范化,但与面向对象编程相比,梯形图逻辑有以下优势:
●十分合适机器和过程控制;
●由于实质上是自文档,更易于了解;
●易于对受控系统停止毛病扫除;
●易于调试;
●源代码通常能够存储在处置器中。
梯形图逻辑十分合适于机器和过程控制,特别是具有大量离散输入、输出(I/O)的自动化系统。多年来,梯形图逻辑也在不时改良,以处置模仿量I/O,使其更合适于众多的过程控制应用。与机器控制应用相比,过程应用中模仿量I/O的比例常常较高。
由于梯形图逻辑比面向对象编程更易于运用,众多纯熟的技术人员和工程人员能够快速学习梯形图逻辑。逻辑高度系统化、有序化,再加上其具有自文档的性质,使其更易于了解和控制。在启动某个设备之前,每行代码都必需为真。假如有5个电机需求控制,那么至少需求5行代码,完成了高度简化。
更易于学习
对电气工程师和维护人员来讲,梯形图逻辑十分直观。固然梯形图逻辑需求有与面向对象编程不同的思想方式,但经过学习能够快速控制,并且了解别人编写的代码所需的时间也较少。逻辑何时为真,何时为假,一清二楚。即便编程经历有限的人,也很容易弄分明开或关、线圈通电、比拟变量和常见的数学函数(见图3)。
图3:梯形图逻辑编程的直观特性,即便是经历有限的用户也能够快速控制。
它简单易用,简化了毛病扫除和调试工作。监视逻辑时,能够很容易明白目前正在发作的工况。无需软件学位或gaoji编程技艺。有了梯形图逻辑,维护人员和工程人员就很容易跟踪流程,理解正在发作的事情。能够将梯形图逻辑看作真值表。假如左边的逻辑为真,则右侧的逻辑就会启动。
梯形图逻辑源代码和描绘符,通常被保管在控制器中。这能够消弭程序员在试图了解编译程序而无法访问源代码时所遭受的挫败,面向对象编程也是如此。
与面向对象编程相比,梯形图逻辑也有如下缺陷:
●计算机程序员和IT人员对梯形图逻辑不熟习;
●难于停止数学函数、文本和数据处置;
●依赖于扫描时间;
●需求特地的硬件来执行,如可编程逻辑控制器(PLC);
梯形图逻辑是计算机程序员和IT人员所不熟习的一种符号言语,他们在学校里并没有学习这种言语。在梯形图逻辑中处置数学函数、文本字符串和数据可能会很艰难,这主要是由于梯形图逻辑Zui初并不是为了处置这些函数而设计的。
依赖扫描时间
梯形图逻辑也依赖于扫描时间。较大的程序,需求更长的时间来扫描和处置逻辑。执行梯形图逻辑时,读取输入、扫描逻辑、更新数据表和输出、执行通讯,循环反复。能够完成中缀和其它编程技术等功用,以确保更快地执行某些逻辑。
配置了梯形图逻辑的基于软件的PLC能够在PC上运转,但通常硬件(如PLC)要与编程软件相匹配,两者zuihao都是从同一个供给商处购置的。这样就能够确保兼容性,但假如想要改换供给商,则不是特别便当。
除了比拟梯形图逻辑和面向对象编程的利害外,用户还应该评价这些编程言语在将要部署的环境中的运用状况。假如工厂或设备已完成了梯形图逻辑的规范化,那么即便面向对象编程更合适于该应用,也不鼓舞将梯形图逻辑改换为面向对象编程。随着面向对象编程的运用日益增加,估计在将来几十年内,它将与梯形图逻辑共存。一个有远见的自动化专业人士,zuihao要控制这两种言语。