单位一泵站上流量传感器是脉冲输出,最初是通过f-v转换模块,将频率信号转换成相应的电压值,一直正常工作。最近突发奇想,认为既然200自带高速计数器模块,为何不直接利用一下,麻烦也就随之而来。
编好程序,用I0.0的HSC0计数器,在初始化中,分别按要求设置相应字节,通过200ms的时间中断去读SMD38(当前值),通过换算实际流量,再将SMD38=0。
运行时,泵站前,I0.0灯灭,开启后,I0.0灯一直亮,但是SMD38为0。 为了测试传感器好坏,自编一个简单的增计数器程序,自己断开脉冲输出端,用手去搭碰,无论通断多少次,只显示1。
感觉很怪异,传感器刚标定完,而且泵站前,I0.0灯灭,开启后,I0.0灯一直亮,感觉不像是传感器的问题。程序方面,通过高速计数器和普通计数器都不能得到正确地结果。应该也不是程序的问题。上网查过一些,有人说要用光电耦合模块,可是在这里发现也有很多人似乎直接就能用。
不知道有谁能有这方面的经验。看完这么长的问题,已经很感谢了。
流量传感器是LWGY型液体涡轮流量计,端子 + - P 分别结 +24V 、 M、 I0.0。
问题补充:
我希望是瞬间流量
“只要输入点会亮会灭就ok了”
流量脉冲频率较高,肉眼看不出来。问题是用普通的计数器命令也不行,
请你先取消SMD38=0的指令看看是否有计数?再一个HC0的模式是0吗?控制字设置正确无误吗?1M接0V了吗?查查!
0模式 控制字也没有问题 L M之间确实是24V
最佳答案
问题可能出在高速计数器的定义上,定义高数计数的那些指令只用一次就行了,而不是每个扫描周期都执行。可以使用SM0.1调用定义高速计数的程序。
在定时中断程序里,只读出当前SMD38的值并复位SMD38,把流量计算部分放到常规程序里,这样可以提高精度。
提问者对于答案的评价:
en
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc354843.html