回复:SAPCII01_Chapter2.zap16该例程中,触摸屏对背景数据块中私有变量的访问是否破坏了封装性

天涯牧歌

  • 帖子

    32
  • 精华

    0
  • 被关注

    0

论坛等级:游士

注册时间:2018-08-08

普通 普通 如何晋级?

发布于 2022-02-23 15:19:20

4楼

展开查看
以下是引用贾岑在2022-02-23 14:57:29的发言 >

基本是不会的,在FB中我们设计的对外形参就是为外部世界进行数据传递使用的,对用户的应用本就是开放的,只是由于参数读写类型的区别在使用时加以规范。

而局部的static变量是内部的运算结果,只不过是有专属的存储区域,现在将stat类型变量开放给HMI,即使进行了修改由于程序是循环往复执行的,也会将该修改在程序执行过程中覆盖。当然,我们也会有标准化的规则保证,例如对于静态变量的只读使用,是不会造成您所担忧的情况。

谢谢,老师对这块知识的补充分享。我大概明白了,这数据的访问牵涉一个执行时序的问题,对于PLC这样的实时操作系统,我们要避免数据的覆盖应该采用另一种机制,比如对该目标区域背景数据写操作的时候,要考虑到该目标区域数据运算是否正在进行,我们的一些覆盖数据行为要在数据运算空闲时候进行。

如果不考虑运行时序,即使是全局数据的访问也是有覆盖的情况的。因为,很多数据区域都会存在交叉访问的情况,我们在空间上划分该数据的访问权限是没有多大的意义的,只有在时间上,防止同一时间的并发访问才是有效的,老师你说我这样理解合理吗?

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

PLC编程精英训练营

共有1623条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。