恭喜,你发布的帖子
发布于 2019-03-18 23:05:10
14楼
Zane版,我试了下将全局数据块中的实参改为保持性和非保持性两种,仿真后结果是:output形参类型不保持,inout形参类型可保持。
度娘上看到一个解释:https://www.docin.com/p-2097831216.html
还是没搞透FB ,FC块的调用原理:
这和保持不保持没有任何关系,保持非保持是指断电情况下数据是不是数值是否保持断电前的状态。FB ,FC块调用时首先向系统申请内存空间(FB块的输入,输出,输入输出,静态类型数据不再申请,用其对应的背景数据块DB,要申请临时变量类型的),接着来初始化,也就是 输入类型参数,输入输出参数类型传的值映射到对应的内存地址上,输出参数类型不会初始化,初始化时不会对对输出类型产生影响 。初始化还包果FB的静态类型,临时类型数据的初始化,FB块输入类型,输入输出类型,静态类型,用对应的背景数据块的数据进行(当然这些数据被参数已经修改过了的),FB块的临时类型数据也是随机的,即分配给该区域的内存数据是什么还是什么。FC没有对应的背景数据块,只能用对应的输入,输入输出参数来初始化相应区域的内存,没有办法初始化的数据(如:临时类型的变量,输出类型的变量),就用系统随机分配的数据。
接下来才是处理用户程序,输出逻辑运算结果,然后把结果映射到输出类型,输入输出类型的变量上。当然这些数据对于FB来讲对应背景数据块中的一个存储区保存下来,对于FC只能映射的外部变量。
请填写推广理由:
分享
只看
楼主