电工学习网

 找回密码
 立即注册
查看: 7509|回复: 0

西门子PLC流量累计程序编写

[复制链接]
发表于 2020-12-30 09:16:51 | 显示全部楼层 |阅读模式
    经常看到有人发帖找计算流量啊,电量啊等等的案例,公司十月份新购一台设备,为了计算消耗气量,现在做一个气体用量监控。
   采用现有的一台300,利用中断计算流量,大致思路是这样的,plc接受实时流量,所以使用100ms的中断累加该流量。为了尽可能准确我选了100ms,扫描周期越短数值越准,当然1s也可以。
例如:流量计瞬时值为8立方/小时,将此值除以36000就得到100ms的流量,每100ms累加得到的值就是累积量。这个方法就跟上学时求圆的面积一个道理,将圆无线分割得到长方形,分的越细数值越精确。但是这里我们考虑到plc负荷选择100ms以上。
流量计就是个传感器,使用模拟量输入的方式接线,我采用两线制4~20mA的流量计,因为两线接线简单 m_0017.gif
接下来说程序,次程序包含OB1,OB35,FB1,FC105,DB1.
6374483905108980398352658.jpg

OB 35是设置100ms中断扫描,FB1是功能块,FC105是模拟量数据处理。将电流值转换为流量值。
6374483939537585097866424.jpg

DB1为背景数据块,存放FB1信息。
首先将OB35改为需要的中断时间块,100ms就是0.1s。
6374483944821671969728734.jpg

OB35为主程序。调用FB1,以DB1作为背景数据库。
其中FLOW 1N为流量计接入plc中的模拟量通道。hi为流量计上限3000,low为流量计下线0. Division是分辨率,对于100ms就是36000.也就是m3/100ms. Clear是流量计清零,触发M0.0可以清零。输出从FLOW rt是转换完从流量数值。FLOW Accu为累积量,可以通过clear清零。

打开FB1.如图 6374483948418571726072041.jpg
6374483997932953937804477.jpg
一二行为模拟量数据处理,将电流值转换为流量值;

第三行将流量值输出到外部;
第四行将分辨率改为实数;
第五行将流量值除以分辨率;
第六行将数值相加,得到最终累计流量;
第七行通过外部数据清零。
整体程序就是这样,可以将设备启动一次耗费的气量计算监控,然后进行清零。当然我这种办法算是比较笨的办法,计算结果也会有一定的误差,不过对于监控精度要求不高的项目还能用,累计流量的方法肯定有很多种,中断计数只是其中一种,也可以采用脉冲数计算。
总结:
用plc做流量计算。首先的看你用什么计流量,如果是脉冲信号,因为PLC本身有运行周期,如果控制要求较高的场台,通过脉冲来计算出瞬时流量,计算出来实际上是不准的,而且控制上滞后比较严重。TI430单片机之类具有硬件脉冲捕捉功能的单片机,在通过脉冲计算流量上,有得天独厚的优势。这个可以参考一些基本的测速概念。 脉冲用来计算累积量很准。
   如果流量计本身反馈的是4~-20ma的速度模拟信号,这个就直接采集,然后在0B35里边用积分模块进行流量累计。这个较准确,但中断模块调用积分,也会有误差,不如脉冲计量准。
来源:西门子工业技术论坛

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-16 21:10

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表