技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 块调用

块调用

郑志武 发布于2013-01-18 00:24 144 0 标签:

根据工程需要需要数值转换,但是fc105输入只有整数,不符合精度需要,需要精确到小数点后,于是就只好按照fc105帮助说明上面的公式自己做了个fc块,声明了in,out,temp等形参,实参都放在共享数据块,供其他块调用该fc时赋于实参,所有参数初始值都为零,但是做好后发现当某个调用块赋于被调用块某个确定的参数值时就有一个正确的数值输出(out),但问题是其他所有被调用块的输出都和前面调用块的输出(out)数值一样,而输入都是初始状态并没有改动,即使是程序有错也不会参数乱传递呀,如果用fb做,并且每个调用都创建不同的背景数据块该问题就不会发生,而用fc105这样的问题也不会出现!

问题补充:
为什么fc105不会出现上述情况

佳答案

这个可能是临时变量方面的原因,fc的参数如果是绝对地址引用的db块数据时,比如db1.dbd0这种形式,fc将使用临时变量来处理,对于一个out参数在块结束是把用于形参的临时变量值写入out变量的实参里,而临时变量使用要遵循先赋值后使用的原则,所以这种情况一定要保证在程序里对out变量写入一个确定的数值,否则out变量将得到一个不确定的值,因为临时变量的区域在块结束后可能被其他块重复使用,这样就出现了你问题描述的情况,你也可以用in_out替换out来避免这种情况,in_out类型在块开始时会读入实参到临时变量。

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签