0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在S7-1200PLC编写程序时实现流量累积?

PLC技术圈 来源:PLC技术圈 作者:PLC技术圈 2021-03-05 18:18 次阅读

在使用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
    plc
    +关注

    关注

    5007

    文章

    13126

    浏览量

    461569
  • 编程
    +关注

    关注

    88

    文章

    3574

    浏览量

    93545

原文标题:如何在S7-1200PLC上实现流量累加算法讲解

文章出处:【微信号:xue_PLC,微信公众号:PLC技术圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    plc200的程序怎么转plc1200

    PLC200的程序转换为PLC1200的过程涉及到多个步骤,包括硬件配置、软件设置、程序转换和调试等。 引言 PLC200和
    的头像 发表于 07-01 10:00 834次阅读

    西门子S7-1200 PLC的指令介绍

    西门子S7-1200 PLC,作为西门子自动化控制产品中的一款紧凑型控制器,凭借其强大的功能和易用性,在工业控制领域得到了广泛的应用。S7-1200 PLC不仅具备标准的
    的头像 发表于 06-18 14:52 2291次阅读

    西门子S7-1200 PLC的基本功能

    西门子S7-1200 PLC(Programmable Logic Controller)是一款紧凑型、模块化的可编程逻辑控制器,专为满足各种自动化应用需求而设计。其强大的功能、灵活的配置以及卓越
    的头像 发表于 06-13 11:29 1841次阅读

    S7-1200如何实现内部数据的掉电保持?

    S7-1200 PLC 可以通过多种方式实现内部数据的掉电保持,以确保在断电或重启后数据不会丢失。
    的头像 发表于 01-29 16:11 6740次阅读

    透传网关基于4G/以太网/WIFI联网实现西门子S7-1200/1500PLC的远程监控和程序上下载

    【技术分享】远程透传网关-单网口快速实现西门子S7-1200/1500 PLC程序远程上下载
    的头像 发表于 01-19 09:30 1413次阅读
    透传网关基于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>上下载

    西门子S7-1200S7-300PLC之间的区别有哪些?

    S7-1200作为新推出的紧凑型控制器,其产品定位在原有的SIMATIC S7-200和S7-300之间,它与S7-300的区别主要体现在硬件、通信、工程、存储器、功能块、计数器、定时
    的头像 发表于 01-10 10:54 994次阅读
    西门子<b class='flag-5'>S7-1200</b>与<b class='flag-5'>S7-300PLC</b>之间的区别有哪些?

    西门子plc如何选型 s7-1500和s7-1200区别

    S7-1200是一种小型的PLC,适用于小型自动化应用。它具有较小的尺寸、较低的成本和中等级别的性能。S7-1200系列提供了多种CPU型号和不同数量的I/O模块,可扩展性较强。
    发表于 01-10 10:48 5348次阅读

    plc西门子s7-1200基础知识:plcplc之间如何通讯

    S7-1200编程软件是Siemens TIA Portal,可以用于编写程序并对PLC进行配置和调试。此外,还有一些辅助软件和工具可用于帮助用户诊断故障和管理数据。
    的头像 发表于 01-10 10:43 2592次阅读

    组态王与S7-1200PLC之间 Profinet无线以太网通信

    组态王与S7-1200PLC之间想要搭建 Profinet无线以太网通信,需要用到以下设备: ● 西门子PLC型号:S7-1200 × 2台 ● 上位机:组态王6.55 × 1台 ● 无线通讯终端
    的头像 发表于 01-09 09:21 883次阅读
    组态王与<b class='flag-5'>S7-1200PLC</b>之间 Profinet无线以太网通信

    介绍S7-1200PLC和V20变频器的Modbus通讯详细步骤

    .找一台带有RS485通讯模块的S7-1200PLC和一台V20变频器。
    的头像 发表于 01-03 18:24 1601次阅读
    介绍<b class='flag-5'>S7-1200PLC</b>和V20变频器的Modbus通讯详细步骤

    labview编写程序的一般步骤

    LabVIEW是一种非常强大的图形化编程工具,它可用于控制、测量、测试和监控应用。编写LabVIEW程序的一般步骤包括以下几个方面: 程序需求分析:在开始编写程序之前,首先需要明确
    的头像 发表于 12-29 10:06 1940次阅读

    codeblocks怎么编写程序

    ::Blocks编写程序的过程,以使您对其操作有更深入的了解。 首先,我们需要下载并安装Code::Blocks。您可以在官方网站https://www.codeblocks.org/上找到适用于您的操作系统的安装程序。安装过程相对简单,只需按照向导指示完成即可。 一旦安
    的头像 发表于 11-26 10:28 1359次阅读

    怎样在codeblocks上编写程序

    何在CodeBlocks上编写程序,并提供一些有用的技巧和建议。 要在CodeBlocks上编写程序,首先需要下载和安装它。你可以从官方网站(http://www.codeblocks.org/)上找到适合你操作系统的安装包,
    的头像 发表于 11-26 09:26 1480次阅读

    PLC西门子S7-200smart和S7-1200的区别?

    PLC西门子S7-200smart和S7-1200的区别? 西门子S7-200 smart和S7-1200是西门子公司推出的两个
    的头像 发表于 11-17 11:41 9577次阅读

    虚拟机linux怎么编写程序

    在虚拟机Linux上编写程序是一项非常常见且有用的任务。无论是开发一个简单的脚本、一个Web应用程序还是一个复杂的软件项目,Linux提供了强大的工具和环境来帮助你进行编程。本文将详细介绍如何在
    的头像 发表于 11-17 10:08 1650次阅读