星期一, 八月 18, 2025

自动化软件居然一堆不支持OOP

 最近在折腾EtherCAT模块,做是做得差不多了。开始准备宣传工作。然后上网研究了下几大自动化软件对OOP的支持。结果十分惊人。只有TwinCAT跟CODESYS支持比较完整。当然肯定也不完整,只能说它们支持了完整的IEC 61131-3第三版标准。然后其它的牛逼的RockWell,西门子,OMRON,三菱的PLC软件都支持不完整。特别是日系的三菱,几乎完全不支持,OMRON的Sysmac Studio也只是表现稍好。

为什么要提OOP,OOP就是软件行业先提出来的, 早NN年就普遍使用了。毕竟遇到复杂的工程,搞一堆的全局变量太容易乱了。全局变量太多还有个问题,有时敲键盘错一个字符,然后编译正常通过。运行的时候出错,找错可难了。

所以才一直强调对大型工程,要对象化。把一个个控制的东西变成对象,然后再想办法减少重复的代码。在一些标准化的接口上,尽量全部实现。接口这块就是PackML。

如果没有OOP,要加新功能会比较困难。如果有个模块有bug,得全部代码改一遍。但如果用上OOP,就只要改相应的模块就好了。

当然要说OOP不好的地方,一方面是编程难度相对较高。入门困难。但好处是代码重用率高,未来项目要改的代码比较少。调试的时候依赖经验高。小项目用处不大。