电子说
1.一个200SMART模拟量输入模块采集流量瞬时值,通过模拟量转换指令转换为工程量;
2.初始化相关变量地址并启用定时器中断;
3.中断程序内实现流量累计计算;
4.累积到一定值后,复位清空所有数据,重新开始累计。
二、硬件设备
2.模拟量输入模块:EMAE04(4AI)6ES7 288-1AE04-0AA0。
三、软件
四、地址分配
V区地址 |
注释 |
其它地址 |
注释 |
VD0 |
工程瞬时值 |
M0.0 |
工程量转换允许信号 |
VD4 |
流量/每分钟 |
M0.1 |
复位信号 |
VD8 |
流量整数部分 |
AIW16 |
模拟量通道 |
VD12 |
流量小数部分 |
||
VD100 |
整数和 |
||
VD104 |
小数和 |
||
VD108 |
累积和 |
五、程序思路及编写
2.首先调用模拟量转换指令将采集到的模拟量通道值转换为实际工程值,假设工程值的上下限分别为0.0、50.0,如图1所示:
图1
3.接下来调用初始化指令,目的是每200MS采集一次瞬时流量值,因此需要建立定时中断,还需清空所有存储数据的变量地址,如图2所示:
图2
4.在定时中断程序中做数据的处理,先将瞬时流量分解为整数和小数,然后整数与前一次的整数累计和相加,小数和前一次的小数累积和相加,再将两者的和相加即为当前流量的累积值,需注意整数即整数和也需转化为浮点数,以便于和小数和相加,如图3所示:
图3
5.为不使累积值超出变量地址的存储范围,过一段时间后需将存储数据的地址清零,再从头开始累计,具体时间可根据现场实际要求而定,如图4所示:
图4
该程序采用将浮点数分离为整数和小数两部分,各自求和后再分别相加,得出当前流量累积值,大大减小了累积误差,适用于要求精度不是很高的场合。
全部0条评论
快来发表一下你的评论吧 !