恭喜,你发布的帖子
发布于 2019-06-21 18:36:41
8楼
我猜测啊
IN INOUT 是在调用fc子程序开始就将实参赋值形参,
INOUT OUT 是在fc子程序扫描到时?(或结束前?)才会将形参赋值实参。
所以如果在out形参 输出 使用前,使用其作为 条件输入 ,其形参值是不确定的。如果在同一扫描周期中,前后连续调用了fc子程序,那么out值就可能会是上一次调用fc子程序时的运算值
200的子程序没有static型的变量存放过程数据,如果有过程数据需要读出和写入就需要INOUT变量来接纳这样的数据,或者编程用间接寻址的方式开辟管理一块子程序专有的V寄存器存放每次调用产生的过程数据。比如边沿检测指令的输入状态暂存就是这样的数据,它用于存储上次扫描时输入的状态,先是读出与当前的输入状态共同决定沿输出,然后把当前输入状态写入刷新。每个沿检测都需要分配这样一个过程数据存储。由于300,1200之类的FB块有static变量且有背景数据块一一对应存储每次调用产生的过程数据,用户可以省心不少。
请填写推广理由:
分享
只看
楼主