| 作者 | 主题 |
|---|---|
|
吉利 侠士 经验值:1486 发帖数:268 精华帖:2 |
楼主
主题:1200FB块调用出现的奇怪现象 |
|
吉利 侠士 经验值:1486 发帖数:268 精华帖:2 |
3楼
主题:回复:1200FB块调用出现的奇怪现象
经过3个多小时的折腾总算找到了问题(心情好),其实错误不在FB块内部,而是出在“能调周期时间PT”这个管脚的参数设置上。这几天一直在忙整机调试和交接验收工作,今天才有时间过来把产生问题的原因分享给大家。
这个FB块一供调用了7处,其中有6处调用时运行一直正常(稍有信心),足够证明FB块本身应该不存在错误。但在另1处调用时FB块输出没有动作(头大),只好暂停其它程序调用FB块,针对此处的调用进行FB块内部监控,打开FB块点监控按钮,把块内程序细看一遍,看到FB块的定时器#IEC_Timer_0_Instance全通且不计时,改变FB块的输入管脚“能调周期时间PT”的设定值问题照样存在,好端端的定时器为何不计时的呢(纳闷),查看#IEC_Timer_0_Instance是多重背景定时器,有6处调用能正常运行应该选择没错呀。 心急之时改变检查思路,对照本FB调用与其它6处有何不同,把每个输入管脚的参数都比对一下,发现本处FB块的“能调周期时间PT”值是由屏录入的,其它6处是程序给的固定值,感觉到了一线希望。立即设置“能调周期时间PT”值=6S,对FB再进行监控,哈哈!FB块能输出了,坚信问题就出在此处,再将“能调周期时间PT”值=0,FB块出能输出的问题再现,经过多次的测试,确认FB块无输出的问题就是“能调周期时间PT”值=0引起的。 归纳原因:FB块内定时器PT值必须在调用FB块之前设置不等于0,定时器才能正常计时,如果在调用FB块之后进行PT值设置,定时器不能计时。 ![]() |