回首我的工控生涯,曾经我认为我使用的那种工控产品都是在当时那种场景下最好的。
同样的,我选择的PLC,甚至编程语言也是最好的。
无知不是福
这种自我强加的信仰导致的问题是,它让我们看不到真相。
我的观点是,我们大多数人极力争辩我们选择的技术或者产品是最好的,而甚至没有尝试过别的技术。
想象一下,似乎很可笑。但是甚至今天,我都能发现我还是这样。
我发现,如果花一些时间学习一门技术并了解为什么别人这么喜欢它,我就不会如此轻易地把我不知道的技术当做“垃圾”或者“废物”一样扔掉。正如他人所说,一个人的垃圾正是另一个人的宝藏。
虽然太多工控人会为siemens vs ab谁更好用这样的问题而大动干戈——很多工控人还是喜欢大声争论自己的意见, 甚至盛气凌人地推翻他人的工作。
我们可能觉得,我们的真理并没有伤害任何人,并且我们觉得他们活该因为他们明显是错的,然而真相是,我们的无知造成了相当多的破坏。
回首过去,我感到非常羞愧,因为我将梯形图程序员贬低得一无是处,完全否定他们的劳动成果,并且非常无知地推举语句表为可以净化他们的唯一救世主。
但是最重要的是,我发现我伤害的其实是我自己。
我职业生涯最大的成长得益于,我曾经在这两家公司工作过。那时觉得step7是最好的,无所不能,只要你能想到的我能通过STL或者SCL全部实现,并为自己能够S7 OS底层开发系统功能块SFC相当狂热过宣传过自己的博客和论坛。
后来接触了AB产品,我被这个产品折磨得够呛。因为我骨子里认为AB是垃圾、是邪恶的。AB缺少像step7 指针,需要用数组来完成,ab没有FB和FC只有头疼的add-on,另外ab没有sfc和sfb需要手写gsv和scv,感觉天就要塌下来。
然而,经过了一些年的使用,我发现,AB的产品非常优秀,有其自己的技术特点,比如标签编程省去了定义地址的繁琐,加快了工期;丢去指针使用数组简化了编程难度,增加了系统的稳定性;add-on自定义指令省去背景数据块,修改后省去单独下载数据块不同而造成程序混乱;网络透明一点接入全部可视,省去定义网络和节点通过代码诊断才能得知网络问题。还有太多的技术先进性就不一一列举了。
更重要的是,我开始意识到我过去的代码偏执使我关上了很多扇门。我开始觉得,可能我过去所有的技术选择都不一定是最好的。我开始思考,其实许多最流行的技术,它们之间并没有那么大的区别。
我开始意识到,相对于盲目崇拜某个首次选择的技术,广泛地理解一系列技术和编程语言可以使我变得更有价值。
现在,我发现我对单个的技术理解得特别快,因为不再是“闭门造车”,我可以用我的大脑去比较和对比不同编程语言和技术之间的区别,这样使我对所有的一切都有了更深的理解。
说了这么多,我的观点就是,对技术的选择持封闭态度最后只会伤害你自己并限制你作为一个开发者的个人成长。
没有最好的
在结束这篇文章之前,但愿你能相信我说的”世上没有最好的PLC或者编程语言“。
我不是在用说编程语言各有各的好、各自处理不同的情况来侮辱你的智商,。因为真相远比这个深刻。
真相是,有很多很好的方法能做成同一件相同的事情,使用不同的工具和技术。
真相是,所有的编程语言和技术都有一些大错误和大弱点。
真相是,你学的不同技术越多,你越能发现大多数技术核心的东西是非常相似的。我指的是,编写软件的核心概念,无关乎技术和编程语言语法。
跟我一样,你也会发现,如果你愿意接受其他技术并且承认自己的无知,并从中学习,那么,不管你去了哪里,你都会找到很多乐于助人的友好人士,他们非常乐于把他们知道的东西教给你。
楼主最近还看过
《Simatic S7 到 Logix5000 应用程序转换指南.rar》
这本书是AB公司编制的,这里面有西门子和AB的详细比较,大家可以看看。 我们不讨论谁是第一名,只看双方各自的优缺点,某些应用场合西门子更适合,有些应用AB更适合,到底选谁做项目,更多情况是甲方说了算,所以系统集成商需要做的是,根据甲方的要求做方案,发挥出西门子或者AB应该的性能。这也是对一个技术人员的起码要求。
下面摘抄一段文中 的原话:
如果使用 STEP 7 语句列表编程,就会非常熟悉累加器和 AR1 和 AR2 指针寄存器。在 Logix 中没有对应的功能。所有操作数都是标签。
若要实现通常针对 S7 应用的功能,举例来说,可以使用下列方法
之一:
• 使用程序作用域标签。
• 如果要使用附加指令进行编程,可使用本地标签 (附加指令数
据的组成部分)。
• 考虑是否需要 S7 累加器和特殊寄存器的对应 Logix 功能。
S7 语句列表具有低级的特性,因此使用累加器和特殊寄存器,
在结构文本等语言中,不可能需要它们。