恭喜,你发布的帖子
发布于 2022-02-23 15:19:20
4楼
基本是不会的,在FB中我们设计的对外形参就是为外部世界进行数据传递使用的,对用户的应用本就是开放的,只是由于参数读写类型的区别在使用时加以规范。
而局部的static变量是内部的运算结果,只不过是有专属的存储区域,现在将stat类型变量开放给HMI,即使进行了修改由于程序是循环往复执行的,也会将该修改在程序执行过程中覆盖。当然,我们也会有标准化的规则保证,例如对于静态变量的只读使用,是不会造成您所担忧的情况。
谢谢,老师对这块知识的补充分享。我大概明白了,这数据的访问牵涉一个执行时序的问题,对于PLC这样的实时操作系统,我们要避免数据的覆盖应该采用另一种机制,比如对该目标区域背景数据写操作的时候,要考虑到该目标区域数据运算是否正在进行,我们的一些覆盖数据行为要在数据运算空闲时候进行。
如果不考虑运行时序,即使是全局数据的访问也是有覆盖的情况的。因为,很多数据区域都会存在交叉访问的情况,我们在空间上划分该数据的访问权限是没有多大的意义的,只有在时间上,防止同一时间的并发访问才是有效的,老师你说我这样理解合理吗?
请填写推广理由:
分享
只看
楼主