设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
PLC案例详解 | S7-200SMART 如何减少流量累计误差? ...
返回列表
发新帖
[西门子]
PLC案例详解 | S7-200SMART 如何减少流量累计误差?
[复制链接]
65144
|
0
|
2024-3-18 10:35:50
|
显示全部楼层
|
阅读模式
点击上方"蓝字"关注我们吧!
一、流程描述
1.一个200SMART模拟量输入模块采集流量瞬时值,通过模拟量转换指令转换为工程量;
2.初始化相关变量地址并启用定时器中断;
3.中断程序内实现流量累计计算;
4.累积到一定值后,复位清空所有数据,重新开始累计。
二、硬件设备
1.西门子PLC :S7-200SMART CPUSR30 6ES7 288-1SR30-0AA1;
2.模拟量输入模块:EMAE04(4AI)6ES7 288-1AE04-0AA0。
三、软件
西门子200SMART plc编程软件:STEP7-MicroWIN SMART V2.7版。
四、地址分配
V区地址
注释
其它地址
注释
VD0
工程瞬时值
M0.0
工程量转换允许信号
VD4
流量/每分钟
M0.1
复位信号
VD8
流量整数部分
AIW16
模拟量通道
VD12
流量小数部分
VD100
整数和
VD104
小数和
VD108
累积和
五、程序思路及编写
1.因有的十进制小数转化为二进制存储时会无限循环,而200SMART只能存储23位单精度浮点数的小数位,当前一个累积值比较大,而现时流量瞬时值较小时,两者相加会因舍弃小数值造成误差,累积次数越多,误差越大。为减小误差,可采用将采集的瞬时值分解成整数和小数两部分,整数部分相加,小数部分相加,两者的和再相加即为累积值,这样可极大的减小累积误差。
2.首先调用模拟量转换指令将采集到的模拟量通道值转换为实际工程值,假设工程值的上下限分别为0.0、50.0,如图1所示:
图1
3.接下来调用初始化指令,目的是每200MS采集一次瞬时流量值,因此需要建立定时中断,还需清空所有存储数据的变量地址,如图2所示:
图2
4.在定时中断程序中做数据的处理,先将瞬时流量分解为整数和小数,然后整数与前一次的整数累计和相加,小数和前一次的小数累积和相加,再将两者的和相加即为当前流量的累积值,需注意整数即整数和也需转化为浮点数,以便于和小数和相加,如图3所示:
图3
5.为不使累积值超出变量地址的存储范围,过一段时间后需将存储数据的地址清零,再从头开始累计,具体时间可根据现场实际要求而定,如图4所示:
图4
总结
该程序采用将浮点数分离为整数和小数两部分,各自求和后再分别相加,得出当前流量累积值,大大减小了累积误差,适用于要求精度不是很高的场合。
本文源程序
扫描左侧二维码即可获取
文章来源:技成培训网原创,作者:何晓刚;未经授权禁止转载,违者必究!
精彩推荐
不藏着了!100个PLC和传感器工作原理动图..
电工考证,电气技能提升!用这个程序..
43页PPT说清楚modbus协议,竟然这么简单..
别再到处找变频器说明书了,1120册变频器说明书..
一文带你了解PLC的基本数据类型,很多电气师傅..
戳“阅读原文”我们一起进步
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
机器人及PLC
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』