1968年美国通用汽车公司由于流水线生产受到硬接线继电器控制系统故障率高、灵活性差的严重制约,发出了征集替代者的英雄帖。1969年,第一台可编程控制器(PC,Programmable Controller)诞生,很好的解决了通用汽车公司的痛点。后来避免与PC(Personal Computer)混淆,改称为PLC (Programmable Logic Controller,可编程逻辑控制器)。PLC相对于继电器控制系统工作更稳定、接线更少、更改程序方便,从此PLC开始取代传统继电器控制系统,得到大面积的使用。
随着电子、软件、通信等技术的大发展,PLC的功能不断丰富:最初只能处理组合逻辑和时序逻辑,后来增加了模拟量的处理、计算功能、通信等功能。
PLC厂家为了满足不同行业、不同应用场景的要求推出了不同的PLC型号,不同的PLC硬件再组合不同的PLC功能,使得PLC软件的开发越来越复杂。为了简化PLC软件的开发,PLC引入了实时操作系统(RTOS)来管理不同的PLC硬件组件,减少了PLC软件对硬件的依赖性、为PLC软件的开发提供统一的接口。从此PLC开始了功能软件化的征程。
2001年ARC咨询公司的CraigResnick提出了PAC(Programmable Automation Controllers,可编程自动化控制器)的概念,标志着工业控制器的发展进入了一个新时代:由最初的功能单一的Logic控制器进化到了满足自动化多种应用的Automation控制器(这个变化不是一夜之间发生的,是一个渐进的过程,PAC称呼的出现只是给这类控制器赋予了一个更确切的名称)。PAC的核心无疑是PLC功能,除此之外,PAC还可能有visualization(可视化人机界面)、motion control(运动控制)、CNC(数控)、robotics(机器人)、vison system(机器视觉)、file management(文件管理)、Database(数据库)、gateway(网关)、Edge(边缘计算)等功能。
PAC之于PLC类似智能手机之于传统手机:PLC和传统手机功能比较聚焦,对用户而言是一个只知道其功能及使用方法的黑盒子。PAC和智能手机的参数列表里一般可以看到所用的处理器型号、内存大小、存储空间大小、搭载什么操作系统以及运行哪些应用程序。PAC的简化架构如下图,底层是硬件(主要关注处理器和现场总线芯片)、中间是管理硬件资源的操作系统和驱动程序、上面是PLC、HMI、运动控制(PtP、插补、SoftCNC、Robotics)、机器视觉等应用。
PAC所使用的处理器一般有两大类,一类是x86架构的CISC处理器,供应商有Intel、AMD、VIA威盛、ICOP昭营、RDC金丽科技等,计算能力强,主要用于中高端PAC控制器;另一类是ARM架构的RISC处理器,主流供应商有Infineon、TI、ST、NXP等,低功耗,主要用于中低端PAC控制器。受益于PC和以手机为代表的消费电子产品的巨大出货量,这两款处理器能以较低的成本从不同的供应商长期稳定的供应市场。
PAC所使用操作系统一般也有两大类,一类是实时操作系统(RTOS), 如VxWorks、QNX、WindowsCE以及RT Linux;另一类是Windows + 实时扩展(Windows不是实时操作系统,任务调度的确定性不够,需要通过外部扩展来增加其确定性,主要实时扩展软件有:IntervalZero的RTX、TenAsysINtime® RTOS、Beckhoff的实时扩展、CoDeSys Control RTE、KitharaRealTime Suite等)。
PAC可以选择支持各种现场总线(主要是实时以太网),可以选择硬件芯片方案,也可以选择软件协议栈方案。主要供应商有Hilscher、HMS、Deutschmann Automation、KUNBUS、SIEMENS(PROFIBUS和PROFINET)、Renesas、Altera、Acontis、Softing等。
PAC最核心的PLC功能也有很多供应商可以提供符合IEC61131-3 标准的PLC Runtime 和集成开发环境(IDE) ,如3S公司的CoDeSys、KW Software(已被Phoenix Contact收购,更名为Phoenix Contact Software)的MULTIPROG(IDE)和ProConOs(Runtime),德国Infoteam的OpenPCS、ICS Triplex(已被Rockwell Automation收购,还可提供IEC 61499方案)的 ISaGRAF、奥地利logi.cals的logi.CAD(IDE)和logi.RTS(Runtime)、法国COPA-DATA的straton等。老牌PLC厂商SIEMENS、Allen-Bradley(Rockwell Automation)、Modicon(Schneider Electric)从PLC诞生开始就自研PLC Runtime并一直进化着,现在也符合IEC61131-3 标准。运动控制功能的知名供应商有德国的ISG(https://www.isg-stuttgart.de/en/isg-kernel/information.html),其产品ISG-kernel覆盖从PtP、插补到CNC、Robotics的全套运动控制功能,被多家主流的PAC厂家采用。
谈到PC-Based控制器,首先要明确PC的定义。狭义的PC指的是x86硬件+ Windows操作系统,这种情况下PC-Based控制器的下面两层就是x86硬件+ Windows操作系统(带实时扩展),典型的PC-Based控制器有Beckhoff的CX1000/CX2000/CX5000/IPC+TwinCAT, Siemens的WinAC RTX,CODESYS Control RTE SL等。更宽泛定义的PC-Based控制器也包括x86硬件+ RTOS (VxWorks、QNX、Windows CE以及RTLinux), 这种组合的典型PC-Based控制器有GE 的PACSystemsRX3i/7i、Allen-Bradley的 ControlLogix PAC、B&R的X20控制器等。
至于软PLC,我个人认为各种PLC都是软硬件结合的产品,没有纯硬PLC,也没有纯软PLC。通常说的软PLC指的是PLC Runtime可以独立于硬件(通常是IPC)交付的,例如SIEMENS的S7-1500 Software Controller和WinAC RTX、Beckhoff的TwinCAT、B&R的AR010(ARwin和ARemb),PhoenixContact 的PC WORX RT BASIC 、Allen-Bradley的SoftLogix 等。