西门子PLC第三大坑,最近剖析了西门子两...
西门子PLC第三大坑,最近剖析了西门子两大坑,引起了许多网友的反响,然而这些坑仍然在继续存在在300/400 和 S71200/1500中。
对于那些没有经过九九八十一难的读者来说,还是需要继续前赴后继的去跳别人跳过的坑。
既然大家对西门子的坑非常感兴趣。我就再列举一例。熟悉了西门子200smart的读者都知道,在200里有SMx标识的特殊寄存器,和Mx
系的位标志继电器。话又说回来,也就是说在西门子200/200SMART中这两种寄存器分处在内存的不同区域,所以我们分别使用,也不会发生什么问题。
可惜到了S7 1200 S71500里西门子取消SM特殊功能寄存器,把SM和M合二为一,统一使用M标志位,按理来说,系统内部内定标志统一稳定便于编程者记忆和使用。而西门子非要大逆不道,将系统应该使用的标志采用让编程者动态分配的方式,况且这些标志位都是按照字节分配的,假若说你定义SMB0作为系统时钟,那么连续8个位会被占用。当然你可以不按照西门子的套路玩,定义为别SMB也可以。看似高端大气上档次的玩法可以把所有人绕晕,估计这种设计就是反人类设计。那么西门子为什么要这么设计呢?目的只有一个,让别人看不懂你代码。
其实这样设计没有多大用处,反而导致初学者无所适从,过于灵活和自由不但不能放纵自己,反而迷失方向。就如同现在比较热闹的特斯拉,导致好多司机命丧黄泉。
其实在1200/1500里类似的坑还有许多,比如即可以按位,字节,字,双字访问的内存导致我们一不小心,就会可能出现重复定义和内存覆盖的风险,而这样的坑全靠编程者自己驾驭,一不留神,自己到死都不知道自己是怎么死的。
蜀道难,难于上青天。蚕丛及鱼凫,我们只膜拜我们的祖先,历史需要传承,希望西门子好自为之,别耍小聪明,为了绕晕读者,别把自己也载进去。[捂脸][捂脸][大笑]