多次调用FC中上升沿的使用问题

想做一个标准FC,在程序中多次调用。其中需要用到上升沿。我把上升沿形式定义为IN_OUT格式,实际地址用的是M区。#START_BUTTON和#START_CONDITION定义为IN格式, #AUTO_IN_CYCLE
定义为OUT格式。


写法如下:
A #START_BUTTON
FP #FP_TEMP1(赋值IN_OUT格式)
A #START_CONDITION
S #AUTO_IN_CYCLE
现在的问题是,如果#START_BUTTON先置ON后,#START_CONDITION再置ON也可以使#AUTO_IN_CYCLE置ON,上升沿没有起到应有的作用。要如何写才能保证首先需要#START_CONDITION置ON,然后#START_CONDITION置ON才能使输出有效呢?

问题补充:
@WWCWWC:需要当AUTO_IN_CYCLE置ON后,两个输入的状态改变就不影响它了。
@艾星落尘:这个FC需要一直调用,因为还有比较指令,到设定值需要输出信号。
@LJCLWYF:所有的地址都是独立不重复的。

除此之外,当使用FC时,无论2个输入条件哪个不具备,输出就会自动置OFF.
用FB写,含有背景数据块时,无论将上升沿的类型设为IN_OUT还是STAT,都可以实现功能,而且输出也可以保持住。

我对FC,形参的理论了解不多。根据实验结果看,我想要的功只能能用FB写才能实现。但具体原因是什么,FC用在什么调用下才比较合适呢?

最佳答案

我经过多次的模拟发现,只要你把上升沿形式定义为IN_OUT格式,实际地址用的是M区(在多次调用时这个地址不能有重复,即使是地址有重复也是不能正确置位应该置位的位。这个是最关键的),就不会出现你说的那个情况。你可以看看在多次调用时是不是OUT的地址有重复的,或者是根本就没有先复位OUT就测试了。还有如果用变量表测试时一定要注意,在变量表上不该干预的地址的修改设置一定要为空,我在这一点上曾经吃过大亏。
     我是用模拟器模拟的。见截图。没有出现你说的那个情况。

图片说明:

多次调用FC中上升沿的使用问题  多次调用FC中上升沿的使用问题  多次调用FC中上升沿的使用问题  多次调用FC中上升沿的使用问题  

提问者对于答案的评价:
确实如此。可能是我程序中的问题。有机会再试试。已经用FB写了。

专家置评

第一行和第二行外面加A(………)

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc222279.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年12月10日 下午10:05
下一篇 2017年12月10日

相关推荐