山东省德州市西门子PLC,变频器授权一级代理商,西门子技术支持维修
- 供应商
- 广东湘恒智能科技有限公司
- 认证
- 西门子一级代理商
- 触摸屏
- 变频器
- 伺服电机
- 西门子PLC
- 直流调速器
- 联系电话
- 18126392341
- 手机号
- 15267534595
- 联系人
- 梁涛
- 所在地
- 惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)(注册地址)
- 更新时间
- 2024-12-27 09:10
用s7-200 cpu 214的高速计数器hsc累计来自模拟量/频率转换器(a/f的脉冲来计算模拟电压值
本例说明了如何利用cpu214的高速计数器hsc及频率转换器来计算模拟电压。首先频率转换器将输入电压(0~10v)转换为矩形脉冲信号(0~2000hz),再将此信号送入cpu214高速记数器的输入端并累计脉冲数。当预置的问隔时问到后,通过累计脉冲数,计算出被测模拟电压值。
例图
硬件要求
程序结构
主程序 在第一个扫描周期调用子程序sbr0
sbr0 高速计数器和定时中断的初始化
int0 对高速计数器求值的定时中断程序
程序和注释
主程序在第一个扫描周期调用初始化程序sbr0,仅在第一个扫描周期标志位sm0.1=1由子程序sbr0实现初始化。首先,把高速记数器hsc1的控制字节smb47置为16进制‘fc',其含义是:正方向计数,可更新预置值(pv),可更新当前值(cv),激活hsc1。然后,用指令‘hdef’把高速计数器hsc1置成工作模式0}即没有复位或起始输入,也没有外部的方向选择。当前值smd48复位为0,预置值smd52置为ffff (16进制)。定时中断0间隔时间smb34置为100ms,中断程序0分配给定时中断0(中断事件10),并允许中断。用指令hsc1启动高速计数器。
每100ms调用一次中断程序0,读出高速计数器的数值后将其置零。通过hsc1计数值及变换关系(0~2khz对应于0~10v)来求被测的模拟电压值。本例中,计数值仅除以2,然后置入输出字节qb0,以便通过led来显示被测的模拟电压值。显示值与10倍真实电压值相对应。例如,计数值为200除以2是100,那么,被测的模拟电压值就是10.0v。因为计数器100ms内共有200个计数脉冲,这正与2000hz=>10v相对应。假设计数值为104,则实际电压值应为5.2v。
注意:定时中断时间可在5~255ms的范围内变化,然而,通过设立一个标志,可根据需要来延长高速计数器的求值和复位时间,这样就有更长的扫描间隔,以便提高**度,同时也会带来更长的更新时间。例如,定时中断设为100ms,每调用一次,标志增加1,仅当标志满10时,才对高速计数器求值和复位。也就是说,10v 电压可接收的*大脉冲为2000,这样,求值**到5/1000v即**度是上例的10倍,但同时速度也减慢了10倍。