昨天跟zane版主通了一个电话。
起因是我写了一篇文章
【万泉河】PLC系统变量的作用域和生存期.pdf,想咨询下他对我文章的看法。
一聊,还真有。 除却复杂章节的不算, 一个最底层的认知分歧是FB函数里面的static静态变量,算不算全局变量。
zane认为它是全局变量, 因为它和所有的全局数据块内的变量一样, 可以被外部访问,完全等同于全局变量。
而我认为不是。 因为在我看来,它只是能被跨周期记忆的内部变量,纵然能被外部访问, 也只是被允许而已。 西门子随时可以在未来发布的新版软件中, 宣布这些变量对外部访问隐藏, 不再运行被访问。
至少, 我倒是很希望未来的PORTAL软件增加一个功能, 就是我在设计FB块时,可以选择某个STATIC变量是否对外部访问可视。就像现在有功能可以设定是否被HMI访问一样。 那样, 我在调用某个FB的实例的参数的时候, 不必越过一大堆我根本不想访问的无用的内部变量。

类似这样的, 超长的, 鼠标总也拉不到底的选择框。
现在, 把问题抛给大家来选择:
这是十多年来,我和zane为数不多的观点不一致之处。 所以大家也不必担心哪一个完全对, 哪一个完全错。也不需要骑墙式两边都不得罪的既是又不是。 只需要仔细思考, 做出你倾向性的选择即可。
思考比什么都重要。