1968年美国通用汽车公司由于流水线生产受到硬接线继电器控制系统故障率高、灵活性差的严重制约,发出了征集替代者的英雄帖。1969年,第一台可编程控制器(PC,ProgrammableController)诞生,很好的解决了通用汽车公司的痛点。后来避免与PC(PersonalComputer)混淆,改称为PLC(ProgrammableLogicController,可编程逻辑控制器)。PLC相对于继电器控制系统工作更稳定、接线更少、更改程序方便,从此PLC开始取代传统继电器控制系统,得到大面积的使用。

随着电子、软件、通信等技术的大发展,PLC的功能不断丰富:最初只能处理组合逻辑和时序逻辑,后来增加了模拟量的处理、计算功能、通信等功能。
PLC厂家为了满足不同行业、不同应用场景的要求推出了不同的PLC型号,不同的PLC硬件再组合不同的PLC功能,使得PLC软件的开发越来越复杂。为了简化PLC软件的开发,PLC引入了实时操作系统(RTOS)来管理不同的PLC硬件组件,减少了PLC软件对硬件的依赖性、为PLC软件的开发提供统一的接口。从此PLC开始了功能软件化的征程。
2001年ARC咨询公司的CraigResnick提出了PAC(ProgrammableAutomationControllers,可编程自动化控制器)的概念,标志着工业控制器的发展进入了一个新时代:由最初的功能单一的Logic控制器进化到了满足自动化多种应用的Automation控制器(这个变化不是一夜之间发生的,是一个渐进的过程,PAC称呼的出现只是给这类控制器赋予了一个更确切的名称)。PAC的核心无疑是PLC功能,除此之外,PAC还可能有visualization(可视化人机界面)、motioncontrol(运动控制)、CNC(数控)、robotics(机器人)、visonsystem(机器视觉)、filemanagement(文件管理)、Database(数据库)、gateway(网关)、Edge(边缘计算)等功能。


PAC所使用的处理器一般有两大类,一类是x86架构的CISC处理器,供应商有Intel、AMD、VIA威盛、ICOP昭营、RDC金丽科技等,计算能力强,主要用于中高端PAC控制器;另一类是ARM架构的RISC处理器,主流供应商有Infineon、TI、ST、NXP等,低功耗,主要用于中低端PAC控制器。受益于PC和以手机为代表的消费电子产品的巨大出货量,这两款处理器能以较低的成本从不同的供应商长期稳定的供应市场。
PAC所使用操作系统一般也有两大类,一类是实时操作系统(RTOS),如VxWorks、QNX、WindowsCE以及RTLinux;另一类是Windows+实时扩展(Windows不是实时操作系统,任务调度的确定性不够,需要通过外部扩展来增加其确定性,主要实时扩展软件有:IntervalZero的RTX、TenAsysINtime®RTOS、Beckhoff的实时扩展、CoDeSysControlRTE、KitharaRealTimeSuite等)。
PAC可以选择支持各种现场总线(主要是实时以太网),可以选择硬件芯片方案,也可以选择软件协议栈方案。主要供应商有Hilscher、HMS、DeutschmannAutomation、KUNBUS、SIEMENS(PROFIBUS和PROFINET)、Renesas、Altera、Acontis、Softing等。
PAC最核心的PLC功能也有很多供应商可以提供符合IEC61131-3标准的PLCRuntime和集成开发环境(IDE),如3S公司的CoDeSys、KWSoftware(已被PhoenixContact收购,更名为PhoenixContactSoftware)的MULTIPROG(IDE)和ProConOs(Runtime),德国Infoteam的OpenPCS、ICSTriplex(已被RockwellAutomation收购,还可提供IEC61499方案)的ISaGRAF、奥地利的(IDE)和(Runtime)、法国COPA-DATA的straton等。老牌PLC厂商SIEMENS、Allen-Bradley(RockwellAutomation)、Modicon(SchneiderElectric)从PLC诞生开始就自研PLCRuntime并一直进化着,现在也符合IEC61131-3标准。运动控制功能的知名供应商有德国的ISG(),其产品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的WinACRTX,CODESYSControlRTESL等。更宽泛定义的PC-Based控制器也包括x86硬件+RTOS(VxWorks、QNX、WindowsCE以及RTLinux),这种组合的典型PC-Based控制器有GE的PACSystemsRX3i/7i、Allen-Bradley的ControlLogixPAC、BR的X20控制器等。

至于软PLC,我个人认为各种PLC都是软硬件结合的产品,没有纯硬PLC,也没有纯软PLC。通常说的软PLC指的是PLCRuntime可以独立于硬件(通常是IPC)交付的,例如SIEMENS的S7-1500SoftwareController和WinACRTX、Beckhoff的TwinCAT、BR的AR010(ARwin和ARemb),PhoenixContact的PCWORXRTBASIC、Allen-Bradley的SoftLogix等。
特别感谢以下信息源:
国际工业自动化网()
()
Walker,MarkJohn(2012).Theprogrammablelogiccontroller:itsprehistory,emergenceandapplication.
PhDthesisTheOpenUniversity.
Whatisthedefinitionof"PLC"?