我想使用HC3、HC4、HC5检测三路频率,使用了frequency库。当使能其中一个时很准,但是当把三个都使能了就不对了。估计是根据这个库的全局变量分配有关系吧。我要怎么办才能使用这个库同时检测三路频率呢?谢谢!
问题补充:
首先非常感谢:hbttkj
测了一个晚上,感觉应该不是输入点冲突。因为计数器的模式都是配置的模式0.而且在测试过程中发现HC4、HC5的Counter数值都是对的,但是库输出Hz不对(特别是当一路脉冲中断再接入后数值就很不稳定)。请见截图1。
因有两路脉冲输入是5V的幅值,而S7-200只有I0.3、I0.4、I0.5能接收到5V的脉冲,所以没有办法使用HC0、HC1、HC4,我至少要使用HC4、HC5。(HC4、HC5的配置请见截图2、3)请问还有其他方法吗?比如再导入一个同样的库分别调用?
图片说明:
最佳答案
1.楼主你有一个明显的错误,HC3、HC4、HC5检测三路频率发生了冲突。
高速计数器要根据选择的高速计数器号和模式来确定,见上传图片。
使用了多个高速计数器时,被某一高速计数器占用了的输入点,其它高速计数器不能再使用。如HSC4的模式3已经占用了I0.4作为外部方向控制点,那么HSC5高速计数器就不能再使用I0.4,因为它的计数输入点也是I0.4,与之冲突了。
楼主改为HC0、HC1、HC4试试。
2."Frequency"功能:使用该库指令可以测定高速脉冲串的频率和速度。
下载地址:http://support.automation.siemens.com/CN/view/zh/27864874
请参考官方资料:
《如何测定高速脉冲串的频率和速度》
下载地址:http://support.automation.siemens.com/CN/view/zh/27864874
3.问题补充:
今天测试了一下,计数器的模式都是0时,多个高速计数器输入不会冲突。我使用了HC0到HC5,六个高速计数器,测试发现数值都正确。
这个应该和frequency库有关,库里面有上升沿、下降沿、定时器指令,当子程序在同一个周期内被多次调用时,就出现了意外情况。
但二次导入frequency库肯定是不行,我想办法参考了frequency库技术说明,道理其实非常的简单。
利用开始间隔时间捕捉,计算间隔时间,然后计数器差值 / 时间差=频率。
我又补充了二个图片,你参考此方法,根据实际需要,再试试吧。
4.楼主也可参考《如何同时测量2个通道的频率值》里面介绍的方法,看能不能满足你的要求。
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=100429&cid=1028
图片说明:
提问者对于答案的评价:
非常感谢hbttkj。问题解决,为你点赞。
专家置评
已阅,最佳答案正确。
库存储区冲突,在使用频率库是需要注意,将库复制,从新定义库存储区。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc199935.html