S7-200PLC用高速计数器实现测量模拟量信号的方法

1、模拟量采集要求信号本身环境要好,包括传感器、仪表的供电良好!模拟量传输线路尽量避开强电电
缆和高、中、低频干扰,例如:高频焊管机、中频加热炉和变频器的输出到电机的电缆等,否则,给你的
真实信号中加点"佐料",从而污染了信号源;
2、电气系统接地在施工设计中就要特别重视,如果现场接地处理不好,轻者干扰PLC系统正常工作,重者
在带有模拟量的控制回路中根本不能使用或者会损坏传感器、PLC的电源、模拟量等模块。
如果说上面的注意事项仅仅是施工设计中需要注意的话,而下面的情况你就需要花更大的功夫了:
1、PLC的模拟量采集模块,没有采用模拟量与PLC回路隔离方式,因此,模拟量输入、输出回路就需要特
别当心,如果传感器或者输入回路串入高电压信号,当心其损坏PLC主机?
2、PLC模块采用了高速采样方式,可分辨0.25ms的信号变化,这本来是件好事,但实际使用其来却十分讨
厌,因为它太敏感了,以致影响了模拟量信号的正常采集,如果遇到信号回路串入干扰、屏蔽不良,则想
去掉干扰,单靠增加滤波时间是根本无法解决这类问题,我们曾经就遇到此类问题,不得已,将输入信号
经RC滤波回路过滤后才能勉强工作!
由于PLC控制的某些系统,经常要测量各类模拟电压/电流信号,以往通常用电压/电流传感器进行采样,
由PLC的模拟量扩展模块进行运算处理。电压传感器输出是模拟量,在电磁***扰较强的环境中,容易出现
较大的测量误差;同时,由于占用模拟量扩展模块宝贵的输入点(模拟量扩展模块价格接近中、小型PLC
的价格,且输入点极少),使系统的性价比降低。当用电压/电流/频率转换器进行采样,进而用PLC高速
计数器计数,能较好地解决上述问题,VFC或IFC转换器输出是脉冲信号,该信号在电磁***扰下变化极小;
另外,该信号是数字量,可直接接入PLC高速计数器的输入点。
CPU224有HSC0-HSC5共6个高速计数器,每个高速计数器都有多种工作模式以完成不同的功能,在使用一个
高速计数器时,根据系统的控制需要,首先要给计数器选定一种工作模式,可用高速计数器定义指令HDEF
来进行设置。只有定义了计数器和计数器模式,才能对计数器的动态参数进行编程。编程时,每个高速计
数器只能使用一条HDEF指令。每个高速计数器都有一个控制字节,包括允许或禁止计数,计数方向的控制
,要装入的计数器当前值和要装入的预置值。
V/F传感器把测量的模拟电压信号按着固定的比率转换成矩形脉冲信号,
首先,VFC或IFC变送器将输入电压(电流)转换为脉冲信号,再将此信号送入高速计数器HSC1的输入端,
并累计脉冲数。通过设置定时中断0的间隔时间,来控制高速计数器累计脉冲的时间,当预置的间隔时间
到后,根据累计脉冲数,计算出被测电压(电流)值。
编程原理:
主程序在第一个扫描周期调用子程序SBR0;
SBR0高速计数器和定时中断的初始化;
INT0对高速计数器求值的定时中断程序;
程序和注释
主程序在第一个扫描周期调用初始化子程序SBR0,仅在第一个扫描周期标志位SM01=1。由子程序
SBR0实现初始化。
首先,把高速计数器HSC1的控制字节MB47置为16进制数FC,其含义是:正方向计数,可更新预置值
(PV),可更新当前值(CV),激活HSC1。
然后,用定义指令HDEF把高速计数器HSC1设置成工作模式0,即没有复位或启动输入,也没有外部的方向
选择。当前值SMD48复位为0,预置值SMD52置为FFFF(16进制)。定时中断0间隔时间SMB34置为100ms,中
断程序0分配给定时中断0,并允许中断,用指令HSC1启动高速计数器。
每100ms调用一次中断程序0,读出高速计数器的数值后,将其置零。通过HSC1计数值及变换关系来求
被测的电压值。
以上方法已用于多个自控项目,实践证明,该方法进行模拟电压信号测量,具有精度高,抗干扰性强,运行可靠。