1. output参数的读写问题
前段时间读大神的PLC程序时,发现他写的FC、FB块都没有output参数,子程序的输出全都用InOut参数表示。于是,誓把output参数的读写问题搞明白。
编程实验发现,FB函数块的output参数可以读写,博图没有提醒。但是读FC的output参数时,博图给出了提示,不能读输出变量。
其实这也很好理解,FB函数块带有背景数据块,接口参数都有初始值,不需要先给output赋值,即可读取其值。因此,博图没有提醒,读output是可行的。但是,FC块没有背景数据块,调用时需要给其实参,初始状态不明确,不能随便读output的值。
就像大神写的程序,最好用InOut参数来作为输出,这样可保证读写没问题。
2. 多次调用FC、FB时,在线监控到底监控哪次调用?
实验发现,监控的是打开的调用位置。例如下图这个例子,两句程序调用同一个FC,实现起保停的功能。
第一句程序的Start已激活,输出CtrlBit为True。当双击打开第一句程序的模块时,监控的是其激活的状态。
第二句程序的Start未激活,为断开状态。双击打开该模块,监控的是断开的状态。