西门子FC FB中关于Temp变量的使用、OUT线圈的使用说明

您所在的位置:网站首页 博途自锁 西门子FC FB中关于Temp变量的使用、OUT线圈的使用说明

西门子FC FB中关于Temp变量的使用、OUT线圈的使用说明

2024-07-06 09:11| 来源: 网络整理| 查看: 265

我试了在FC中用块接口OUT变量来驱动别的OUT变量,会警告,但是先赋值线圈后使用触点还是可以正常使用的,如果先使用触点后赋值线圈不能正常使用. 可是在FB中同样用块接口OUT变量来驱动别的OUT变量,不用管先后顺序都能正常使用,为什么?

第二个问题,为什么在IF表达式中,CASE状态中,REGION里使用块接口的OUT变量有警告,提示参数无法初始化是什么意思.

第三 个问题,CASE语句中 上一个状态转移到下一个状态,如果当前 状态不定义会保持上一状态的输入输出对吗

 

这个东西说起来有点绕,记住这么用就行了。FC运行后没有东西保存上次运行的数据,

FB运行后 有东西保存的数据(Temp不保存);

FC中的 out 类型 没有保存数据,运行时的初始状态也不知道,西门子不建议根据它的状态去控制其他逻辑,你要用也禁止,风险由你把控。

你的第三个问题,分几种情况如果被赋值的变量是全局变量会保持,是Temp的变量就未知了。

 

1、FC没有背景DB块,所有的接口参数都是临时变量,在下一个以扫描周期值将清零,所以不赋值的话就一直是零!FB有背景DB块,变量值可以保存到下一个扫描周期!2、OUT变量是只写参数,所以无法获取它接口上连接变量的状态,只能获取DB块中OUT的状态!3、SCL的赋值相当于置位、复位所以会保持的!

 

说明:FC中使用 OUT 全局变量可以正常使用,数据块静态变量不能正常使用,先使用触点再使用线圈不正常

                    使用SET指令时触点、线圈使用正常

===================================================

别用temp类型的中间变量FC的话,可以把这个中间变量改成INOUT类型FB的话,可以使用stat静态类型的变量可以实现

中间变量必须先读后写,你这种起保停还有沿指令 不要用temp类型的变量

===================================================

temp变量必须是先赋值,后使用的原则,看似你的程序能够满足这个需求。但是,作为典型的起、保、停控制回路,这个线圈变量的地址又必须具有双重特性,即即要有输出特性,又要有输入特性。而且且temp这个变量没有输入特性而言,因为当该函数扫描完成后,temp是无法保持原有的运算结果(是一个随机数),这个从你的图示上就能够反映这个情况。如果你采用置位、复位方式,那这个程序就没有问题。另外,程序编辑提倡简洁、明了,而你的程序这个为什么不直接做输出,而多一个temp变量来转移,这个不可取。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3