回复:1500 FB 优化访问块,然后DB块是非优化访问块。大量使用IN/OUT接口、通过HMI赋值,经常出现赋值失败的现象

已锁定

Zane

版主 西门子1847工业学习平台

  • 帖子

    21476
  • 精华

    405
  • 被关注

    1508

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2022-11-30 14:32:37

31楼

展开查看
以下是引用Zane在2022-11-30 00:01:42的发言 >26楼

 @ smile_JIANG


这是引用传递的例程1:全部优化,块内对端口无操作,百分之百修改成功。


这是引用传递例程2:全部优化,对端口读写操作,极小概率修改不成功。


这是引用传递的例程3:全部优化,端口取值,延时后运算,端口输出,极难修改成功。



接26楼,


当上述三个例子,把全局数据块都改为非优化访问时,FB优化访问不变,程序不变,那么引用传递变为值传递,FB在调用时对INOUT接口的变量建立了副本,在FB退出时会将副本再刷新到接口变量,这时候就会发现,无论是例程1、2、3都极难通过HMI赋值成功。


因此,例程1能在全优化访问下,HMI百分百修改成功,是因为引用传递下没有对变量的访问操作。


例程2在全优化访问下,看似也是百分百,但实际不然,而是因为引用传递下对变量的读写操作前后连续,HMI值修改被覆盖的概率极低。


例程3,则无论是优化非优化都是同样的表现


由此可以得出结论,并不是优化非优化的方式方式造成了HMI修改变量值的失败的原因,而是1500PLC时间片的通信机制造成的。


同时,与INOUT接口是否定义普通变量,或者结构变量(含STRUCT与UDT)都没有关系。


优化非优化访问,是引用传递与值传递之间是否建立副本的差异,可以认为INOUT的值传递就是对变量的读写操作。

Zane 注册自动化系统工程师 Always save before download
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11079条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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