彭瑜|漫谈自动控制与被忽略的工业软件
1994
自动控制永远是工厂里面的焦点,无论是智能制造,还是工业互联网,都无法回避。而最近圈里对 PLC 和基于 PC 控制这两种控制器又有了很多讨论。实际上,关于这两种控制的争论有很长的历史。笔者想起二十多年前在美国全球最大的自动化展会 ISA Show 上,看到有一个专做 PC 控制的公司,打着一个很醒目的标语“ PLC die , PC-based Control immortal ”(可编程控制器死了,基于 PC 的控制永生)。这个剪影深深留在人们的记忆中。这就是说早在二十多年前,在美国的自动化界就有过 PLC 与 PC-based 控制孰优孰劣、孰胜孰输的争论。这一争论至少持续了七八年,结果呢?
那个高唱 PLC 死了的美国公司,经过几年的折腾却早已销声匿迹了。当然,这个公司没有了并不能掩盖 PC 控制依然存在、依然在发展的事实。
事实证明, PLC 是个常青树,它不仅不会死,还在发展演进,还在与时俱进。要打倒经典 PLC 的“鲁莽小生”并不少,本世纪前十年它还经历了 PAC (可编程自动控制器,基本上相当于 PLC+PC 的部分功能)的一轮冲击,而最近几年还出现了一个新的品种 EPIC (边缘可编程工业控制器),同时具备 PLC 、 运动控制 和 工业互联网 的功能。但 PLC 依然长盛不衰。
这背后有着深刻的原因。自动化界中明智之士指出, PLC 的两个本征特性是高可靠和容易使用。 PLC 本身是按工业应用要求设计的:要在严酷的工业环境下长期可靠使用,具有很高的电磁兼容性(可抗各类工业电磁干扰,现在还要求抗各类频谱的无线干扰)、环境适应性(宽温度范围、防高湿、防霉防盐雾、耐振动冲击等等);要容易编程,一般的电工,只要经过适当培训,就可以编写逻辑控制的梯形图程序;容易维护。这些看似简单的要求,其实是需要很深的工业功底。
这方面笔者有很多亲身经历。我见到过用了三十多年的一家日本公司的 PLC 仍然能正常使用;也亲自处理过中国二汽制造厂一台万吨卧式压力机,因在高强度的震动和冲击下 PLC 的输出继电器的接点发生颤动而无法正常工作,后来改用另一家公司 PLC ,不用任何加固就能正常运行;我还为上海的通用汽车公司的行车解决了由于变频器的干扰使得 GE 的 PLC 老是出故障的问题。以上这些例子说明一台工业用的控制器要提供的除了软件的控制功能以外,还需要 I/O 和电源具有足够高的抗干扰,以及坚固的机械结构等等性能。
PC 控制从它出世的那一天起,就是想取代 PLC 的软件控制功能。它的 I/O 常常是插在 PC 总线上,或者是通过 RS 485 与外挂的 I/O 连接。这些 I/O 用在实验室里没有问题。不过,没有工业级的 I/O 和电源来加固 PC 控制,就无法具有 PLC 的抗干扰和环境适应性。何况还有一个在工业应用上的敏感因素——成本。 PC 控制最早发端于美国,也一度盛行于美国,但最后的成功应用,却是在欧洲。靠着贝加莱、倍福等公司将 PC 控制 PLC 化,让 PC 控制具有 PLC 所有的优势,提供适应各类工业要求的的 I/O ,解决了电源的散热和抗干扰问题,可以直接安装在严酷的工业现场,具有统一的工程设计运维平台等。
在当下,简单去比较 PLC 与 PC 控制没有太多意义。我们需要的搞清楚的是,在硬件、软件和通信突飞猛进二十年多年之后,如何能让 PLC 和 PLC 化的 PC 控制满足市场和技术发展的要求。
上世纪 90 年代美国密执根大学机械学院有一篇博士论文,专门评述曾经出现过的几十种自动化控制编程语言,包括 IEC 61131-3 规范的 5 种图形和文本语言,以及在美国一度流行的流程图语言。到今天,能够沉淀和积累几十年工控界的经验,真正有生命力能够形成生态的,也就是只有有限几种,即 LD 、 SFC 、 FBD 、 STL 。就连类似汇编语言的 IL 指令表语言,也因用的越来越少,也即将从 IEC 61131-3 的新版本中被删除。而面向对象的编程方式已经引入了 IEC 61131-3 ,甚至像 C 、 C++ 等高级语言,也实际变成 PLC 常用的编程语言。下图是 2020 年美国的的一个名为国际自动化 网站和 PLCopen 国际组织联合调查的结果,也印证了上述的结论。这也是 PLC 与日俱进的一个实证。而 IEC 61131-8 ,里面详细说明了 IEC 61131-3 选择这 5 种语言的实际背景和缘由。
图 1 国际自动化 调查结果
1970 年诞生的第一台 PLC 在通用汽车 GM 投入工业应用,对金属切割、钻孔、材料处理和装配等环节进行控制。世界上首次推出 PLC 的成功,表现为两个方面:一是用计算机来解析过去用继电器实现的逻辑控制;二是采用梯形图逻辑编程,使原来的电气工程技术人员能在自己原有的技术基础上采用计算机编程。
这应该是早期工业软件应用的一个标志,可是至今为止很少有人在谈论工业软件时提及这一重要的贡献。
被誉为 PLC 之父的 Richard Morley 当时是 Bedford Associate 公司的工程师,他率先完成了创新的最初设计,然后与他的团队研制了工厂自动化和连续处理应用的固态的顺序逻辑解算器,这是第一台实际可运用的可编程逻辑控制器,被命名为 Modicon 084 。 1969 年 11 月在得知 GM 公司的要求后,他们向公司的液压部门展示了 Modicon 084 ,获得 GM 的青睐。
梯形图逻辑作为一种控制语言,第一次用在硅器件搭建的控制器上大约是在 1969 年。为了支持这个控制语言的运用,构建了由三个部分组成的硬件平台,即一台双端口的存储器、一台逻辑解算器(后来被命名为 PLC )和一台通用计算机。这个语言最大的优点是能被世界上所有从业的电气工程人员理解。之后梯形图扩展为多个节点,还附加了一些功能。梯形图逻辑的功能性和 PLC 的适用性迅速在所有的工业中大量采用。
梯形图逻辑编程极受电气工程技术人员欢迎,其优点是不言而喻的。首先,这种由 Bedford 公司开发的梯形图逻辑编程中相关的符号,来源于电气工程中描述顺序操作功能,这使广大的电气工程师和电工能以非常容易理解的方式用计算机对 PLC 编程。这体现了工业软件最基本的特征——源自工业的基础电气工业。其次,这个语言是最早利用通用计算机作为工具,对工业控制器进行编程的案例之一。沿用至今,既体现了“工业软件以工具软件为主流”的特点,又历经几十年电气工程和工业自动化从业人员的反复锤炼,并在所有的工业场合中广泛采用。仅凭这两点就应该奠定其在工业软件发展中的地位。可惜的是,在众多讨论工业软件的文章中我们却没有发现其踪迹,人们似乎已将它忘却。
有人或许会质疑,编程语言凭什么可以算是工业软件?
殊不知用于工控领域的编程语言特别是图形化的编程语言,与 IT 领域的编程语言是有很大区别的。工控用的编程语言都是用来表达和实现控制系统所必须完成的功能,而这些功能则是严格按照工艺要求和加工顺序制定的。工业生产过程千变万化,经过不断的抽象和提炼,概括起来基本上就是用于流程工业的连续流程、用于离散制造业的逻辑控制、顺序控制和运动控制(或是这三种控制的集合),以及兼有离散和连续的批量间歇过程。
功能块图能够完美表达连续流程控制的各种要求,梯形图和顺序功能图能够完美表达离散过程控制的各种要求。具体将这些图形化的编程语言集合起来实现编程的软件,都是以 IT 领域的编程语言为工具运用一些相关的数学方法(例如图论、逻辑代数等等)编制而成。由此可以推断,用于工控领域的编程语言不仅属于工业软件中用于控制类别的基础软件,而且是运用范围最为广泛的一类工业软件。更何况近二十多年的发展已经形成了包括概要设计、详细设计、编程、调试、运行维护、工程项目管理等在内的综合性的统一工程平台的软件套件,已经是能够自立于 自动化 领域的公司的标准配置和系统基础。
一个成熟的控制系统的应用软件需要经过设计、验证和测试等过程,按照 V&V 的模式在经过系统的概要设计后还要将其划分为模块进行详细设计,之后才能动手写代码。接着就需要将所有的模块集成起来形成系统的应用程序,并通过硬件在环仿真测试和检验。这些过程虽然严谨,但大大限制了工作进度和效率。 IEC 61131 标准定义了几种控制语言,但依赖于单个控制器的模型,而不是分布式系统。 IEC 61499 标准的主要提升是:它允许将控制系统建模和开发集成为单一的系统,但在部署时却是一个分布式系统。这就为今后发展成为无需硬件在环就能实现仿真创造了前提条件。
未来的统一工程平台一定会大大提高工程项目的设计,乃至现场调试、运维的效率和质量。控制器快速发展,它与控制类 工业软件 的联动,将会使得自动化上升到一个全新的境界。