用S7-200高速计数器采集流量计脉冲的相关问题

刚入行不久
现在手上有个项目配有计量泵,流量计
PLC用200的
请问各位高手如何用高速计数器来采样流量计的脉冲信号?已知流量计每2ML发出一个脉冲信号
现想收集脉冲信号并在人机界面上显示每秒的瞬时流量
我在系统手册上看了
还是没搞明白 
若要显示每秒瞬时流量
计数器如何每秒计数完后自动复位
然后下一秒从零开始计数
如此循环
原理是这样的吗
请高人指点迷津
不胜感激

最佳答案

根据您说的“流量计每2ML发出一个脉冲信号”,首先要知道此信号是有源,还是无源,如有源高电平是多少V,如是无源那就是一个开关量;这一点关系到流量计信号该如何接入PLCs7200。因这一点您没说清,我暂且把它当作高电平为15-24VDC的脉冲信号。具体做法如下:
    把流量计脉冲信号输出高电平端接入s7200I0.0端子,而流量计脉冲信号输出低电平端接入s7200输入端的“1M”端子。编程时使用“向导”中高速计数器指令向导,选“HC0”计数器,选模式6,“PV”设置10000(如每秒脉冲数比它大可加大此数由实际情况而定),“CV”设置0;在子程序中选中断事件“21”(定时器 T32 CT=PT 中断)。按此程序,每秒开始计数,在一秒的最后1ms(999ms)把计的数存入VD90,再把1ms的计量数存入VD94,VD90+VD94的数(即1秒钟流量计所计的ML数)存入VD100。第二秒再从新开始计数;如此不间断循环。您就可以把s7200存储器VD100的数据送到触摸屏相应画面中,实时显示出流量计每秒流过的ML数。我在检测流量、速度时都用过此类程序,只要根据实际物理量纲加以统一即可。具体程序如下:
主程序
网络1
LD     SM0.1
CALL   HSC_INIT:SBR1  //调用并初始化子程序HSC_INIT

网络2
LD     SM0.0
LPS
AN     M0.0
TON    T32, 1000  //设置秒脉冲发生器
LRD
A      T32
=      M0.0
LPP
AW>=   T32, 999
AW<    T32, 1000
MOVD   HC0, VD90 
*D     2, VD90  //把999ms流量计所计量的ML数存入D90存储器

LRD
MOVR   VD90, VD94
*R     0.001, VD94 //1ms流量计的ML数
LPP
+R     VD94, VD100 //1秒钟流量计所计量的ML数存入D100

子程序:HSC_INIT
网络1 HSC 指令向导
LD     SM0.0
MOVB   16#F8, SMB37    //设置控制位:增计数;已使能;
MOVD   +0, SMD38       //装载 CV
MOVD   +10000, SMD42   //装载 PV
HDEF   0, 6
ATCH   INT_0:INT0, 21  //定时器T32=1000ms时调用中断程序INT_0:INT0
ENI
HSC    0               //使能高速计数器HC0

中断程序:INT_0:INT0
网络1 HSC 指令向导
LD     SM0.0
MOVB   16#C8, SMB37   //设置控制位:改变计数值;
MOVD   +0, SMD38      //每秒复位高位计数器当前值
HSC    0              //使能高速计数器HC0
东方探索

提问者对于答案的评价:
谢谢东方探索的答案,信号是有源的

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 上午11:47
下一篇 2020年11月5日 上午11:47

相关推荐

  • 如何判定一个模拟量是否发生突变?

    我现在用s7-200实时采集一个模拟量信号,我想请教一下大家,怎么去判定这个模拟量发生了突变。比如说从一秒前还是20,一秒后变成了50。 谢谢大家指教 问题补充:多谢大家…

    SIMATIC S7-200 2020年10月31日
  • 请教用来PLC编程笔记本的配置

    低价位笔记本初装操作系统大部分是DOS或LINUX,这样的本本行不行,要做些什么处理才可以用? 最佳答案 低价位笔记本初装操作系统大部分是DOS或LINUX? 好像不是这…

    SIMATIC S7-200 2021年7月5日
  • 池子排水恒液位控制,s7-200,pid调节

    液位模拟量通过模块进入plc,用向导做pid模块。排水由变频器控制提问:如何将pid输出值转化为abb变频器的频率? 最佳答案 pid输出转换成0~32000输出(线性变换),然后…

    SIMATIC S7-200 2021年7月5日
  • s7-200模拟电位器的作用及使用

    请问s7-200模拟电位器的作用及使用? 最佳答案 一般也就是做实验的时候用用. 或者你在程序中需要得到一个给定的常量,可以通过模拟电位器得到. 编程是一个人创…

    SIMATIC S7-200 2021年7月5日
  • S7200的EM253问想咨询一下,

    刚接触到S7200的EM253定位模块,看了一些资料,现有一些疑问想咨询一下,   资料上讲 EM253模块有配置表,和轨迹表,从VDn+0…

    SIMATIC S7-200 2021年7月4日
  • s7-200CN 2个PLC之间的通讯

    按照论坛上的说明设置好主站和从站,通讯不上http://www.ad.siemens.com.cn/service/article/S7-200/s7-200modbus/#lib…

    2017年6月11日
  • S7-200掉电保持是存在哪?

    S7-200掉电保持是存在RAM中用电容保持吗?我今天看一本书写着PLC在掉电的时候利用电容的电将V区的掉电保持的变量马上存到EEPROM中使它可以永久保持,是这样吗?我原来一直以…

    SIMATIC S7-200 2021年7月4日
  • 在中断路面调用标准PID指令出错

    我在中断里面调用标准PID指令。调用1个没问题。调用2个指令,然后监控中断程序的时候就会出现看门狗超时错误,不知道是什么原因 图片说明:    最佳答案 用中断…

    2020年10月31日
  • 高速计数器

    子程序中有高速计数器,当子程序停止调用时,高速计数器会停止计数吗? 最佳答案 看你在指令向导中的定义了。如果高速计数器在向导中定义CV=PV即当前值等于预置值,在高速计数器子程序中…

    SIMATIC S7-200 2021年7月5日
  • 局部变量如何赋值

    主程序中的顶部有个小框是定义局部变量的,我定义了一个LJIJ的变量,请问如何给他赋值 最佳答案 你定义的局部变量做什么用,是中间变量(TEMP),还是做参数传入(IN),还是OUT…

    SIMATIC S7-200 2021年7月5日