在FB中声明了一个TIME类型OUT形参(如图1)
但是调用FB,分配的实参得不到实际值(如图2)
TIME作为OUT参数传递有没有特殊要求?
如果要将TIME传递出去需要如何操作?
问题补充:
各位大大的回答我都看了,非常感谢!
1.使用IN/OUT我也试过,值一样传不出去;
2.我单独写了个测试块,确认TIME类型可以传递;
3.取消多重背景只调用一次也试过,值还是传不出去
现在判断应该是内部逻辑有问题,这个块是我自己练手学习编写的,反反复复检查又找不出来哪有问题。
在块内重新申明了一个OUT,直接赋了个值,也传不出去。
有点懵了,下面图片是程序截图,要是有时间能帮忙看看就再好不过了,我自己也接着研究。
程序大体目的就是,外部输入信号触发时读取系统时间,并将该DT数据依次以字节形式存放在DB块中,输入信号每触发一次就传一组数据到DB块,并计算第一组时间与最后一组时间的时间差,作为OUT参数,传递出去。
(前面还有几段,没有用,只是判断DB和计数器编号是否超限,可以注释掉)
图片说明:
最佳答案
1、你的fb调用一次试试看,如果也不正常就是你的逻辑有问题了。
2、如果一次正常,多次不正常,说明你的程序中使用了全局变量,造成数据不正常。
提问者对于答案的评价:
问题已解决。
我将FC34的调用由程序结尾,改到程序开头就好了。
可以肯定的是程序中某段代码的执行结果导致OUT参数传递不出去。
但是我不知道具体是什么原因,其中有什么隐藏的编程技巧。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc288131.html