人们谈起工业互联网,就会讨论起工业现场的PLC,不过,大部分人似乎对PLC的理解停留在20年前——PLC就是逻辑控制吗?其实,20年前就已经不是这样了。
控制器的形式已经发生了变化
是的,今天的自动化行业,在软硬件上都不像当年的MCS-51单片机的时代,寄存器只有128字节,就算16位8096级的CPU寻址空间也仅能支持512kB的存储卡,在那样的CPU上处理以太网数据帧封装和解包这样的任务实在是不敢想象,因此带有以太网接口的PLC在21世纪初期还是很厉害的,如果要处理高速的任务DSP、CPLD更是极其昂贵的,回想起来,即使在上个世纪80年代的PLC,一个逻辑点在当时就达到1000元。
这些问题已然解决,一个手机的处理器就能处理当年登月工程所有计算机的处理能力,而一个芯片才几百块钱,128GB的USB也不到100元,科技的进步也让自动化享用了这些资源,硬件不再是问题。
当然了,另一方面,机器的控制任务也比以前复杂了,早期PLC主要用于处理替代不便利的继电器控制柜,因此,它的任务主要在继电器开关、延时、顺序控制这样的动作,区别于DCS的连续型自动化,但是,今天我们的机器包括了更为复杂的任务,运动控制、视觉、机器人、安全、复杂的工艺算法、液压,包括一个机器的生产数据、配方、用户、报警、趋势、文件等任务,因此,本身对控制器的需求也更为复杂—确切的说,机器对控制器的要求已经早已超越了PLC这个词,可编程逻辑控制器的要求了。
图1-早期PLC主要为了代替复杂而不灵活的继电器回路
(图片来源于网络)
尽管现在大家还习惯上把机器的控制器称为PLC,但是,实际上PLC的形式是多样的,例如PLC会与HMI结合构成一个控制器,这样就省略通信连接造成的不稳定性,另外,PLC的控制任务也可以纳入到工业PLC中,现在的多核处理CPU完全可以支持两个不同的操作系统运行不同的任务,如RTOS和Windows/Linux同时运行。
PLC可以写算法吗?
这个问题大概你可以在20多年前就可以问了,那个时候的PLC就可以了,贝加莱有一款黑色系列PLC,在1993年推出,其运行了一个名为pSOS+的操作系统,可以支持BASIC的编程,这个pSOS+是一个定性分时多任务的操作系统,可以支持复杂的算法设计。
后来的PLC就更不用提了,传统需要专用的控制系统来处理的套色控制任务也被贝加莱给集成到一个PLC上了,因为这种针对多变量系统耦合解耦的算法完全可以用C/C++来编写并运行在一个PLC上。
在贝加莱的集成套色凹版印刷无轴传动系统中,逻辑、色标检测、套色、电子轴传动完全由一个控制器来实现控制。
图2-集成套色控制算法由一个PLC实现处理
这样的应用案例举不胜举,PLC早就可以针对复杂的工艺算法进行处理了。
PLC的网络通信怎么样?
其实,IT在讨论低延时的需求时,是在现有的高带宽需求然后想进入OT时开始的,而事实上在2001年基于百兆以太网的POWERLINK当时就可以达到比较高的响应,最初90个节点(2000个I/O,50个伺服轴)的刷新是2.4mS,现在采用OPC UA over TSN的话这些节点刷新也就100μS了。
那别的通信呢?
图3-支持丰富连接的PLC
2 个USB
1个标准以太网
1个POWERLINK实时以太网接口
1个RS232接口
3个槽位,可选插入:
Profibus-DP主站/从站
Profinet主从
DeviceNet/ControlNet
Ethernet/IP
CAN/CANopen
RS485
通常每个插入的卡可以有两个不同的接口,这意味着X20一个PLC可以支持到的接口最大可以达到11个。
运动控制可以玩吗?
什么!运动控制可以玩吗?——Yes,of course.
PLCopen就是大家平时用的IEC61131-3那些编程的梯形图、结构文本都是PLCopen的标准,在PLCopen Motion Part IV的协同运动控制中,机器人、CNC、定位与同步控制早已纳入统一架构了。
一个PLC就可以搞定了。
在传统的PLC因为CPU仅能处理比较简单的逻辑任务,往往需要一个专用的Motion Control模块,早期采用了脉冲或模拟量,那么需要大量的接线,现在早已采用实时以太网技术进行连接,而另一个方面,运动控制模块这种方式也会带来较低的反应速度,尤其是在PLC的逻辑与运动控制要协同的时候,举个例子,在一个电子凸轮裁切的时候,需要一个外接编码器,而这个在原有的PLC+运动控制模块的架构中,就会因为响应慢而无法达到比较高速的裁切,但是,在ACOPOS系统中可以通过直接的编码器输入解决此问题。
在1997年贝加莱推出ACOPOS系列伺服驱动器时即采用了基于总线的控制,采用CAN总线与PLC的控制器进行通信,由PLC对其进行复杂的电子齿轮同步任务的协同、包括电子凸轮,后来又将NC模块加入可以实现针对CNC的差不运算的处理,到了2010年推出GMC(Generic Motion Control-通用运动控制),将机器人、液压也纳入了统一的控制架构,并采用了标准化的PLCopen Motion的Part IV协同运动控制进行编程,在此基础又封装可复用的mappMotion模块。
图4-PLC可以处理复杂的运动控制任务
复杂的运动曲线需要高阶的函数支持,而函数的阶次又决定了能够达到的曲线光滑度,而曲线光滑度影响对机械的冲击会带来较大影响,这会影响精度与机器的寿命,由于采用高阶曲线(最大达到六阶),使得传动控制更为平滑,就像乘坐电梯,有些电梯是比较舒适度高的,因为变频器的曲线比较光滑,阶次比较高的缘故。
PLC可以做边缘计算吗?
边缘侧的计算通常会针对一些策略性、优化类的问题,边缘计算是一种计算的疆界扩展,从本地控制到分布式计算,控制器也在其中扮演了非常重要的角色,边缘焦点首先解决连接问题,例如通过Profibus、POWERLINK、CAN等的边缘节点进行连接,在嵌入式节点可以进行一些本地的计算处理如产线的OEE、能源状态显示、资产管理等任务,到车间与工厂级的边缘控制器则可以针对协同、优化、规划类问题进行处理。
图5-PLC可以用于边缘侧任务处理
这样的边缘侧任务可以从一个PLC的边缘连接模块、也可以是一个PLC或一个Windows+RTOS的工业PC。
PLC可以有Web服务吗?
这事都说到十多年前了,PLC早就可以集成一个Web Server或一个VNC Server,通过远程的IE浏览器就可以访问了。
早期的PLC往往采用RISC架构的CPU,而且没有实时操作系统,仅有类似计算机BIOS的处理,其硬件执行的逻辑任务速度极快,但这也使得无法处理复杂算法、复杂的高速信号处理、以太网任务等,而基于Intel复杂指令集的CPU可以运行功能强大的操作系统,可以运行Web Server这样的大块数据任务处理,因此,在X20系列CPU中可以集成Web Server、VNC Server、FTP Server。
图6-基于Web技术的远程诊断
基于Web技术可以实现远程的诊断与维护,并且,支持Web方式的数据发布,任意支持IE浏览器的终端均可以访问远程的设备维护数据,包括通过FTP服务来上传和下载程序。
PLC可以仿真吗?
仿真建模这个大概也发生在很早很早以前,在之前就可以了,2008年Mathworks推出SimulinkPLC的时候,贝加莱就是第一批接受这个接口的,通过C代码导入,由MATLAB/Simulink建模仿真,自动代码生成的程序就可以下载到PLC上,实现硬件在环测试(Hardware In the Loop)。
图7-支持与建模仿真软件的接口
图8-采用建模仿真可以自动代码生成并直接运行于PLC
PLC的安全性怎么样?
其实,安全性包括了三个方面的问题,程序安全性、信息安全、功能安全;
(1)程序安全性:普通的PLC采用的是解释执行方式,这个不难破解,但是,如果像X20那样的,采用了编译系统直接编译为二进制代码下载到PLC,你的确可以把程序读出来,只是你看到的全是二进制代码,你认识二进制代码吗?
(2)信息安全性(Security):PLC通常控制采用的是非商用的Windows/Linux这样的OS,并且网络也是POWERLINK、Profinet这样的工业实时网络,因此,与通用的系统还是隔离的,即使采用了OPC UA来连接上位系统,其本身也有授权、验证的环节,并且,通常也提供SiteManager的专用通道来建立VPN连接确保数据加密传输。
图9-基于安全的PLC远程连接
(3)功能安全性(Safety):满足IEC61508、IEC62061、IEC62784的安全规约的SafeLOGIC和软件的SafeDesigner、总线的openSAFETY。
图10-完整的Safety产品线
PLC可以玩机器学习吗?
机器学习能干吗?——没问题啊!
其实,如果我们认识到机器学习是一个“数学问题”即,选择特征值、建立损失函数(或成本函数)或惩罚函数、选择模型、测试评估,那么,你可以发现这些都是可以用软件来实现的。
图11-机器学习算法可以对现有控制任务的数据进行监测
像贝加莱的X20系列PLC支持定性分时多任务的操作系统,以及支持高级语言编程,那么,问题简单了,机器学习的程序相当于高级语言开发的一个线程,并可以对控制器的现有控制任务如一个注塑机射胶过程PID控制进行观测,并获得质量与工艺参数之间的关系(可以采用遗传算法、监督学习),这样就可以获得最优的工艺学习。
是的,PLC早已不是那个“可编程逻辑控制器”了。
相关文章