用户自定义库,同一个库在一个程序中调用两次为什么只分配一个库的库存储区,怎么让我调用几次分配几次库存储区,如图调用一次需要4个字节,调用两次怎么分配8个字节
图片说明:
产品版区:SIMATIC S7-200
悬赏西币:5 | 解决时间:2020-03-04 18:48:14 | 提问者: 手机用户20170811DV8L24 - 新生  第1级
钻石用户推荐最佳答案
回答者:
大宝朱林森
-
高级顾问  第14级
2020-02-26 00:41:24
提问者对于答案的评价:
西门子 S7-200 SMART PLUS V2.3 技术参考
https://support.industry.siemens.com/cs/cn/zh/view/76488152
本回答有1位钻石用户推荐
回答者: CoolCool的猪 - 高级顾问  第14级
2020-02-26 08:30:50
S7-200(SMART)库存储器区(指定的V区),并不等同S7-1200的FB的背景数据块DB,尽管他们都是全局变量区。
FB多次调用,可以指定不同的背景数据块,数据传递不冲突。因此定时器、边沿检测指令都可以在FB中使用。
而S7-200(或者Smart)的库指令,只能指定一次库存储器区(V区),这个V区,更像一个有记忆功能的中间变量存储器区,例如,通信往往需要多个周期处理,并不是指令一使能调用就完成了,那就需要定义一个队列交给通信处理芯片处理。这也是我们同时调用一个通信指令,要等到上一个完成,done信号为1才能触发下一次调用的原因。若定义的库指令,是一触而就,调用即完成然后继续执行主程序,那多次调用这个指令也不会冲突(那自然也没必要指定不同的中间存储区)。定时器指令、边沿指令、通信指令都无法在一个扫描周期完成,在子程序中使用,主程序调用这些子程序必须更谨慎。很容易出错。
本回答有2位钻石用户推荐
回答者: 如是 - 高级工程师  第11级
2020-02-26 11:16:34
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!