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

已锁定

球长

  • 帖子

    52
  • 精华

    0
  • 被关注

    2

论坛等级:游侠

注册时间:2012-05-20

普通 普通 如何晋级?

发布于 2022-11-21 22:06:21

16楼

展开查看
以下是引用smile_JIANG在2022-11-18 16:59:11的发言 >楼主

出现问题的原理:

当数据块在优化访问模式时,DB变量作为输入输出参数,对其进行访问。
在此情况下,数据是用复制模式传送的。运算数据复制后,即使数据未改变,也会在数据块结尾处再次写入回该数据。因此,在数据块过程中HMI系统写入的数据会丢失。


西门子手册:

2.6.5优化和非优化访问的块之间的参数传输

当将结构作为输入/输出参数(InOut)传输到被调用块时,它们默认作为引用传输

但是,如果其中一个块具有“优化访问”属性而另一个块具有“默认访问”属性(我翻译一下,就是FB块和IN/OUT的形参数据一个为优化访问快,一个为非优化访问快),则情况并非如此。在这种情况下,所有参数通常作为副本传输(参见第3.3.1章按值调用)。

在这种情况下,被调用块始终使用复制的值。在块处理期间,这些值可能会更改,并且在处理块调用后将它们复制回原始操作数。

如果原始操作数被异步进程(例如,被HMI或中断OB访问)更改,这可能会出问题。如果在块处理之后将复制的值复制回原始操作数,则原始操作数上异步执行的更改将被覆盖。


实际编程问题:

1513 CPU,

建立一个FB1块(优化访问块),一个IN/OUT接口 ,UDT_AA;

建立一个DB10块(非优化访问快,UDT_AA)DB变量作为输入输出参数


我通过WINCC 或者PLC的监控与强制表,去操作DB块,那么由于调用了FB1,  然后形参使用了DB10。那么会出现操作失败的现象。

比如10bool变量赋值1,赋值0。经常会出现,只能赋值9个,另外有一个无法赋值成功,随机发生。


求助的最终问题:

如果FB和DB 都是优化访问快,或者非优化访问快,则不会出现这个问题。

FB是优化块,INOUT接口参数是非优化块,所以是传值而非传引用

所以问题就是由于一个是优化,一个是非优化,所以IN/OUT变成值传递了。能不能通过VARIANT的什么办法,改成指针传递,然后如何可以解决问题。


资料1:

这个似乎是一个官方的回复,但是有点不理解。

https://support.industry.siemens.com/cs/document/109476062/%E5%BD%93%E4%BD%BF%E7%94%A8-hmi-%E5%8F%98%E9%87%8F%E4%BD%9C%E4%B8%BA%E5%9D%97%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E5%8F%82%E6%95%B0%E6%97%B6%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%E6%9C%89%E6%97%B6%E4%BC%9A%E5%87%BA%E7%8E%B0%E9%80%9A?dti=0&lc=zh-CN

文中提到的补救方法:
在共享数据块中定义变量,并且使用共享DB块变量作为块参数。

我理解他的意思是共享数据块也为优化访问快,但是上位机给的命令,怎么给到这个共享的优化访问快呢?

资料2

https://support.industry.siemens.com/cs/document/109478253/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8-s7-1500-%E4%B8%AD-hmi-%E7%B3%BB%E7%BB%9F%E6%88%96-web-server-%E7%9A%84%E6%95%B0%E6%8D%AE%E6%9C%89%E6%97%B6%E4%BC%9A%E8%A6%86%E7%9B%96%EF%BC%9F?dti=0&lc=zh-WW

资料3

https://www.ad.siemens.com.cn/club/bbs/PostStory.aspx?a_id=1536064&b_id=84

资料2,和资料3,都是说建立两个平行的相同的数据块,HMI操作一个DB,程序操作一个DB。

但是两者数据的交互是个大问题呀,如果在FB的开始,将HMI的数据传给程序的DB,FB结束将程序DB给到HMI的DB。

这意味着在块运行期间,操作数(或操作数的一部分)的异步改变(通过 HMI 写访问或者更高优先等级的运行系统)将会丢失,因为块被调用后,操作数的值会被覆盖。

用仿真按楼主测试了一下,没有发现无法赋值不成功的问题

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10569条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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