搞工控的兄弟最近应该没少听到”软PLC”和”软件定义自动化”这两个词。说实话,两年前我听到这俩词,第一反应是——又有人在画饼。PLC就是PLC,铁壳子一装,螺丝一拧,接上IO就能跑。你说把这东西搞成软件跑在电脑上?那不是瞎扯吗?
但今年年初被一个做系统集成的老朋友拉去做了个项目,他非要用Codesys软PLC方案。项目是个包装线的改造,原来用的是三菱FX5U,客户想升级成带视觉检测和伺服控制的一体化方案。老朋友说”试试吧,不行再换回来”,我就跟着去了。这一试,三个月下来,有些想法确实发生了不小的变化。
先说结论:软PLC没你想的那么神,也没你想的那么不靠谱。关键看你用在什么场景。
我们是怎么搭的
用的方案是这样的:一台IPC(工业平板电脑,两千多块的国产品牌,i5处理器+8G内存+128G固态),装上Codesys Runtime跑PLC逻辑,通过EtherCAT总线挂两套汇川伺服驱动器和一组远程IO模块。上位机也是同一台机器,跑一个简单的WinForms界面显示产线状态和报警记录。把所有东西装在一个标准控制柜里,外接一个24寸触摸屏当操作面板。整个柜子比以前少了PLC、通讯模块和编程电缆,清爽了不少。
先说好的一面
第一,硬件成本确实降了。一台IPC直接替代了PLC CPU加上位机工控机,还省了以太网交换机、通讯模块、编程电缆这些零碎。整个电控柜算下来,比同等配置的西门子S7-1500方案省了大概30%的硬件成本。老板看到报价单的时候眼睛都亮了。对于做标准机的中小集成商来说,这个成本优势是真金白银。
第二,编程环境确实强大。Codesys支持五种IEC 61131-3编程语言,梯形图、ST、CFC、SFC、IL都可以混编。我在一个项目中同时用了ST写算法逻辑、梯形图写安全链、CFC画模拟量处理流程,一个软件搞定了以前要用博途和GX Works两个软件来回切的事情。而且调试的时候可以同时监控多个任务,哪段逻辑跑得慢了,任务周期有多长,在诊断界面看得一清二楚。
第三,远程维护方便。不用每次改程序都往现场跑。程序在电脑上改完,通过网络下载到IPC上就行,人在办公室就能远程调试。有一次半夜客户打电话说产线速度不对,我坐在家里连上VPN,半个小时就改好了参数,比叫个车去现场省了2个小时。以前这种情况得出趟差至少半天。
第四,功能扩展灵活。传统PLC想加个数据库记录、Web服务器或者跟MES做API对接,往往得额外加模块或者搞个上位机。软PLC直接在IPC上装个SQLite或者跑个HTTP服务就搞定了。我们后来给客户加了个简单的看板显示,用网页实时刷新产线数据,没花一分钱硬件。
但问题也不少
说了好的,该说说坑了。毕竟不能光报喜不报忧。
第一,稳定性有差距。 IPC跑着跑着蓝屏你敢信?不是我们选的机器有问题,是Codesys Runtime在Windows下跑的,Windows本身的稳定性就是天花板。运行了大概一个月左右,有一次半夜自动更新重启了——即使我们关掉了自动更新,Windows自己不知道什么时候又悄悄开了。IPC重启后Runtime没跟着自动启动,产线停了半个多小时,客户半夜打电话把我骂了一顿。后来我们把IPC的操作系统换成了Windows 10 IoT LTSC企业版,彻底关闭了自动更新,做了开机自启服务,才勉强稳住。但跟传统PLC那种一跑三五年不用管的稳定性比,还是有差距。
第二,实时性有局限。 传统PLC的扫描周期是确定性的——说好1ms就是1ms,不会多也不会少。软PLC跑在Windows加实时扩展下,任务调度的抖动会大一些。我们实测下来,设置5ms的扫描周期,实际抖动在正负2ms左右,偶尔能跳到10ms。我们的包装线对实时性要求不算高,这个抖动可以接受。但如果做高速飞剪或者伺服插补,我感觉软PLC还是悬。做运动控制的时候一定要预留足够的时间余量。
第三,工程师门槛高了一点。 传统PLC上手简单,梯形图一画,下载跑起来。软PLC要懂操作系统配置、实时扩展设置、EtherCAT主站配置、还有各种驱动安装调试。我旁边那个做电气的同事以前用三菱GX Works玩得很溜,转过来搞Codesys,光IPC的Windows系统配置就搞了两天——装系统、装运行时、配网口、调防火墙,每一步都可能卡住。这对中小型集成商来说,人员培训和调试时间的成本其实是个隐藏的坑。
第四,售后服务要考虑。 传统PLC坏了,打电话给代理商,当天或者隔天就能拿到替换的。软PLC跑在IPC上,IPC坏了怎么办?你得自己备一台相同配置的IPC,装好系统、装好Runtime、恢复程序、重新配网——这一套操作下来一天就没了。客户可不管你是软PLC还是硬PLC,机器停了就是你的责任。所以如果用软PLC,建议在机柜里放一台备用IPC,预装好系统,万一出问题直接换上。
我的总结
三个月项目做下来,我的结论是这样的:如果你的项目对实时性要求不高(扫描周期5ms以上够用)、项目数量大需要降成本、或者做的是数据采集和上位机结合比较紧密的方案,软PLC确实是个值得认真考虑的方向。Codesys在欧洲已经用了很多年了,技术上不是新东西,只是国内普及率还不高。
但你要是做高速伺服定位、安全等级要求SIL3以上的设备、或者客户现场环境恶劣(高温、震动、粉尘大),老老实实用传统PLC吧。
项目验收那天,老朋友问我下次还搞不搞软PLC。我说看情况。这不是一个”谁取代谁”的问题,而是工具箱里多了一件工具。搞工控的我们不怕学新东西,怕的是在不合适的场景用了不合适的技术。软PLC有它的生态位,传统PLC也有它的一亩三分地。用对了地方,都是好工具。
你们试过软PLC吗?用的Codesys还是PLCnext、TwinCAT还是其他方案?在什么项目上用的?来评论区聊聊,我也学习学习。