恭喜,你发布的帖子
发布于 2017-03-24 09:24:08
3楼
给你总结一下吧:
1------FC重复调用的时候,IN、OUT 形参对应的实参如果是DB块,那么多次调用之前会互相干扰,而实参IQM不会相互干扰
2------但是IN_OUT 形参对应的实参 DBIQM都不会干扰
3------TEMP变量不允许用来作为需要将上一次的值保留到下一次调用的情况,比如边沿状态。最好是任何时候在调用之前都对temp清零后在调用
4------FB的stat不存在TEMP的这种情况,可以随意使用。因为stat有专门的存储区
5-----FB不存在FC的这种特性,因为所有FB都有自己对应的DB。
IN OUT 与IN_OUT不同的是,IN_OUT每次调用的时候都是先读其值,结束时在讲运行的状态值付给他,而in就是块调用的时候读取实参其值,执行完后不刷新其状态,而out就是 只在块结束最后把out形参存储区域里的值甩出去刷新out对应实参的值。
temp就是 每次执行完后并不会保存其状态,每次调用之前其值可能是任意的-----,所以用之前最好清零
至于IQM 与DB的区别 我觉得是因为IQM 都是PLC固有的烧底层程序的时候就烧到PLC的CPU里了,你可以直接访问的印象区域,而DB块是人为后建立的,其实PLC在访问DB块的时候 要先执行一个动作就是打开DB块 这一步是比I/Q/M多出来的一步。我想这里的M与DB所产生的的区别就是因为DB块需要先打开的这个特性引起的,但至于具体分析逻辑,我却不知道,估计这要开发PLC的人应该知道,跟DB块的具体运行机制有关系
请填写推广理由:
分享
只看
楼主