恭喜,你发布的帖子
发布于 2022-11-30 14:32:37
31楼
接26楼,
当上述三个例子,把全局数据块都改为非优化访问时,FB优化访问不变,程序不变,那么引用传递变为值传递,FB在调用时对INOUT接口的变量建立了副本,在FB退出时会将副本再刷新到接口变量,这时候就会发现,无论是例程1、2、3都极难通过HMI赋值成功。
因此,例程1能在全优化访问下,HMI百分百修改成功,是因为引用传递下没有对变量的访问操作。
例程2在全优化访问下,看似也是百分百,但实际不然,而是因为引用传递下对变量的读写操作前后连续,HMI值修改被覆盖的概率极低。
例程3,则无论是优化非优化都是同样的表现
由此可以得出结论,并不是优化非优化的方式方式造成了HMI修改变量值的失败的原因,而是1500PLC时间片的通信机制造成的。
同时,与INOUT接口是否定义普通变量,或者结构变量(含STRUCT与UDT)都没有关系。
优化非优化访问,是引用传递与值传递之间是否建立副本的差异,可以认为INOUT的值传递就是对变量的读写操作。
请填写推广理由:
分享
只看
楼主