在使用s7-1200PLC编写程序的时候,如果项目上需要用到流量累积功能,但是本款PLC并没有自带流量累积功能块。这时,就需要我们组态工程师自己编写一个具有流量累积功能程序,或者将该程序封装为FB块或者FC块。本文以封装FB块为例。
第一步:在程序块目录下单击添加新块,弹出添加新块对话框,选中FB函数块,在名称栏填上需要命名的名字,如:Totalizer,选择编程需要用的编程语言,本文以SCL语言讲解,FB块的编号可以通过手动或自动生成,然后单击确认,如下图所示
第二步:打开新建功能块,并建立临时变量,如下图所示
第三步:程序编写,如下图所示:
程序编写完成后,进行编译,编译没有错误时,在FC(FC2,FLOWACCUM)中调用该FB块,最后在OB30中断块中调用该FB块。
第四步:在FC中调用名字为“Totalizer”的FB块,并对输入输出参数赋值,如下图所示
再在OB30中调用功能块,OB30中断块是循环中断块,循环时间为100ms,如下图所示
双击循环中断OB30中断块,在中断块中调用FC2(FLOWACCUM)功能块,如下图所示
程序解读:
变量定义:
变量名:Reset,数据类型:Bool,作用:累积清零
变量名:Accum,数据类型:Real,作用:存储累积值
变量名:Total,数据类型:Real,作用:存放累计值
变量名:Intervall,数据类型:TIME,作用:流量单位中的时间,如m3/h,则:变量为1h=3600s,变量单位:秒
变量名:Intervall_DInt,数据类型:Dint,作用:存储Intervall转换为Dint数据类型后的值
变量名:Intervall_Real,数据类型:Real,作用:存储Intervall_DInt转换为Real数据类型后的值
变量名:Cycle,数据类型:TIME,作用:存储程序循环时间,单位:秒
变量名:Cycle_DInt,数据类型:Dint,作用:存储Cycle转换为Dint数据类型后的值
变量名:Cycle_Real,数据类型:Real,作用:存储Cycle_DInt转换为Real数据类型后的值
程序代码:
IF #Reset = true THEN //条件为真时
#Accum := 0.000000e000; //累积清零
#Total := 0.000000e000; //累积清零
ELSE
#Intervall_DInt := TIME_TO_DINT(#Intervall);//将时间型变量Intervall转换为双整型数据,并存在变量中
#Intervall_Real := DINT_TO_REAL(#Intervall_DInt);//将双整型数据转换为实型数据,并存在变量中
#Cycle_DInt := TIME_TO_DINT(#Cycle);//将时间型变量Cycle转换为双整型数据,并存在变量中,本例为0.1s
#Cycle_Real := DINT_TO_REAL(#Cycle_DInt);//将双整型数据转换为实型数据,并存在变量中
#Accum := ((#Value * #Cycle_Real) / #Intervall_Real) + #Accum;//累积计算
#Total := #Accum; //Kopiere Ergebnis nach #Total / Copy result to #Total.//累计值传递
END_IF;
原文标题:如何在S7-1200PLC上实现流量累加算法讲解
文章出处:【微信公众号:PLC威廉希尔官方网站 圈】欢迎添加关注!文章转载请注明出处。
责任编辑:haq
-
plc
+关注
关注
5011文章
13290浏览量
463263 -
编程
+关注
关注
88文章
3615浏览量
93717
原文标题:如何在S7-1200PLC上实现流量累加算法讲解
文章出处:【微信号:xue_PLC,微信公众号:PLC威廉希尔官方网站 圈】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
如何选择适合的西门子S7-1200系列PLC型号?
![如何选择适合的西门子<b class='flag-5'>S7-1200</b>系列<b class='flag-5'>PLC</b>型号?](https://file1.elecfans.com//web3/M00/01/A9/wKgZO2dWxXaAE1O_AAFA8B7JHRA859.jpg)
基于 EtherCAT 转 ProfiNet 网关达成西门子 1200 PLC 与伺服电机通讯连接的应用实例
![基于 EtherCAT 转 ProfiNet 网关达成西门子 <b class='flag-5'>1200</b> <b class='flag-5'>PLC</b> 与伺服电机通讯连接的应用实例](https://file1.elecfans.com/web3/M00/01/9B/wKgZPGdWqXKAdnuwABOUzYfOPOI755.png)
plc200的程序怎么转plc1200
西门子S7-1200 PLC的指令介绍
简述S7-1200 PLC的硬件组成
西门子S7-1200 PLC的优缺点分析
西门子S7-1200 PLC的基本功能
透传网关基于4G/以太网/WIFI联网实现西门子S7-1200/1500PLC的远程监控和程序上下载
![透传网关基于4G/以太网/WIFI联网<b class='flag-5'>实现</b>西门子<b class='flag-5'>S7-1200</b>/1500<b class='flag-5'>PLC</b>的远程监控和<b class='flag-5'>程序</b>上下载](https://file1.elecfans.com/web2/M00/BD/C4/wKgaomWmWliAUbzEAAB9moOq4Ac583.png)
西门子S7-1200与S7-300PLC之间的区别有哪些?
![西门子<b class='flag-5'>S7-1200</b>与<b class='flag-5'>S7-300PLC</b>之间的区别有哪些?](https://file1.elecfans.com//web2/M00/BC/C0/wKgaomWeBuaAJl7yAAEehgINIGQ038.png)
西门子plc如何选型 s7-1500和s7-1200区别
plc西门子s7-1200基础知识:plc与plc之间如何通讯
组态王与S7-1200PLC之间 Profinet无线以太网通信
![组态王与<b class='flag-5'>S7-1200PLC</b>之间 Profinet无线以太网通信](https://file1.elecfans.com//web2/M00/BC/7A/wKgaomWcn3eAVDztAAJhIwsBE2Y386.png)
评论