在使用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

用计算机语言编写累加程序,如何在S7-1200PLC编写程序时实现流量累积?相关推荐

  1. linux命令行运行c程序,如何在Linux中编写和运行C程序

    Linux正在成为开发人员的编程天堂,成为开源和免费操作系统. Turbo C编译器已经是一种编译程序的旧方法,所以让程序员转向Linux以获得新的编程环境. 在本文中,我们将解释如何编写,编译和运行 ...

  2. python编写html文件,如何在python中编写和保存html文件?

    ' % (colour[j % len(colour)], k))等有什么问题? 另外,你混合了print"string"和print("string").坚持 ...

  3. 如何在 Go 中编写 Switch 语句

    如何在 Go 中编写 Switch 语句 目录 在 Go 中导入包 理解 Go 中包的可见性 如何在 Go 中编写条件语句 如何在 Go 中编写 Switch 语句 如何在 Go 中构造 for 循环 ...

  4. 「每周译Go」如何在 Go 中编写 Switch 语句

    目录 在 Go 中导入包 理解 Go 中包的可见性 如何在 Go 中编写条件语句 如何在 Go 中编写 Switch 语句 如何在 Go 中构造 for 循环 在循环中使用 Break 和 Conti ...

  5. 如何在IDEA上编写Spark程序?(本地+集群+java三种模式书写代码)

    本篇博客,Alice为大家带来关于如何在IDEA上编写Spark程序的教程. 文章目录 写在前面 准备材料 图解WordCount pom.xml 本地执行 集群上运行 Java8版[了解] 写在前面 ...

  6. 如何在Hadoop上编写MapReduce程序

    1. 概述 1970年,IBM的研究员E.F.Codd博士在刊物<Communication of the ACM>上发表了一篇名为"A Relational Model of ...

  7. matlab矩阵指定行最大值,求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.*...

    导航:网站首页 > 求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.* 求Matlab程序:在2行矩阵中,如何求 ...

  8. [基础题] 6.(*)按如下要求编写Java程序: (1)编写一个接口:OneToN,只含有一个方法int dispose(int n)

    package HomeWork_10;public class Test_06 { /*6.(*)按如下要求编写Java程序: (1)编写一个接口:OneToN,只含有一个方法int dispose ...

  9. 如何在Go中编写防弹代码:不会失败的服务器工作流程

    by Tal Kol 通过塔尔科尔 如何在Go中编写防弹代码:不会失败的服务器工作流程 (How to write bulletproof code in Go: a workflow for ser ...

最新文章

  1. java date truncate_在Java中将dateTime转换为dd / mm / yy格式的日期
  2. Pensando Distributed Services Architecture [Pensando 分布式服务架构] - 翻译
  3. 日语学习-多邻国-人
  4. 关于兔子的一些往事~
  5. (新聞) 友達光電 A+種子暑期實習計畫 埋下希望的光電種子 (日記)
  6. openapi回调地址请求不通过_必看!OpenAPI知识来了!
  7. java jdk 9 64位下载地址_jdk9.0官方下载|jdk9 64位下载官方正式版 1.9 - 系统天堂
  8. 如何将密切好友的微信聊天记录恢复到自己的微信中
  9. 清理垃圾文件属于计算机安全维护吗,如何清理c盘垃圾文件
  10. MySQL倒计时查询剩余时间xx年xx月xx天
  11. Excel如何隔行插入图片?
  12. (程序员必备技能)基于Python的鼠标与键盘控制实战扩展与源码
  13. 痞子衡嵌入式:串行NOR Flash的页编程模式对于量产效率的影响
  14. win11+kodcloud、h5ai+phpstudy+ipv6搭建私人云盘、私人影院
  15. mysql INSERT语句加where 条件
  16. 计算机组装模拟网址,装机模拟器PC Building Simulator-电玩之家
  17. 10 23 周总结+一道奇妙数论
  18. 清华大学计算机基础实验部,2019计算机考研清华大学计算机基础教学部简介
  19. org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException : Unsupported major.minor versio
  20. 计算机网络技术的发展模式背景,浅谈计算机网络技术发展模式

热门文章

  1. 重庆高职单招计算机试题及答案,重庆高职单招模拟试卷答案
  2. 出现身份验证错误。 要求的函数不受支持, 远程计算机:192.168.0.101 这可能是由于CredSSP加密数据库修正。 若要了解详细信息,请访问https://go.microsoft.com/
  3. 比亚迪汽车的优势是什么
  4. 【成为架构师课程系列】架构设计中的核心思维方法
  5. Linux中删除目录命令
  6. 解决mac mysql无法启动
  7. mybatis通过注解使用动态sql
  8. grep和sed配合替换文件中的字串
  9. 虚幻4UMG控件实用技巧
  10. php中遍历文件夹代码,php简单遍历文件夹以及文件