首页 > 其他分享 >ABB AC900F学习笔记331:使用ST做自定义功能块,计算最近60秒的分钟均值和最近60分钟的小时均值

ABB AC900F学习笔记331:使用ST做自定义功能块,计算最近60秒的分钟均值和最近60分钟的小时均值

时间:2024-11-14 20:42:37浏览次数:1  
标签:59 sum 均值 ST 60 功能块 Pv 分钟

前面自己学习了在西门子TIA使用SCL编程,施耐德Unity中使用ST编程做分钟均值和小时均值的方法,今晚在家练习了在ABB Freelance中自定义功能块使用ST语言做分钟均值和小时均值。

新建项目、插入硬件、仿真器、操作站等不做介绍。新建一个用户功能块池,下面建一个功能块类。

功能块类定义下面的变量:

ST脚本如下:

FUNCTION_BLOCK PFBClass_ST

VAR_INPUT
Min : INT;
Sec : INT;
PV : REAL;
END_VAR

VAR_OUTPUT
Min_Avg : REAL;
Hour_Avg : REAL;
END_VAR

(*
PARA_VIS
ClassName : TEXT;
TagName : TEXT;
ShortText : TEXT;
LongText : TEXT;
SelState : BOOL;
END_VAR
*)

 

var
minute_Pv: array[0..59] of real;
hour_Pv: array[0..59,0..59] of real;
sum:real;
i:int;
j:int;
end_var
minute_Pv[Sec]:=PV;
hour_Pv[Min,Sec]:=PV;
sum:=0.0;
for i:=0 to 59 do
sum:=sum+minute_Pv[i];
end_for;
Min_Avg:=sum/60.0;

sum:=0.0;
for i:=0 to 59 do
for j:=0 to 59 do
sum:=sum+hour_Pv[i,j];
end_for;
end_for;
Hour_Avg:=sum/3600.0;

END_FUNCTION_BLOCK

要注意ST脚本要卸载FUNCTION_BLOCK ***和END_FUNCTION_BLOCK之间,而且不能有program *** 和end_program。

完成后保存,编译一下。会有提示,大概就是说有些变量开始几个字母都一样,可能网关无法访问之类的,先不管他。

在任务列表下建立FBD,使用DT解包功能块,把系统分钟和秒从系统日期时间变量分解出来。

在人物列表的FBD程序中调用刚才新建的用户自定义功能块。

由于没有实际的控制系统和仪表,这里使用一个常数表示测量值,内部计算得到分钟均值和小时均值。刚开始内部的数组没有全部赋值,得到的平均值不够准确,积累一定时间后,就可以得到最近一分钟和最近一小时的均值了。

 

标签:59,sum,均值,ST,60,功能块,Pv,分钟
From: https://www.cnblogs.com/fishingsriver/p/18546746

相关文章

  • 3路直接输出功能/高抗干扰触控芯片VK3603 ESOP8/3路/3键触摸触控工控触摸检测芯片
    产品品牌:永嘉微电/VINKA产品型号:VK3603封装形式:ESOP8概述VK3603具有3个触摸按键,可用来检测外部触摸按键上人手的触摸动作。该芯片具有较高的集成度,仅需极少的外部组件便可实现触摸按键的检测。提供了3路直接输出功能。芯片内部采用特殊的集成电路,具有高电源电压抑制比,可减......
  • 如何远程实时监控员工的电脑屏幕?60教会你,五个妙招轻松搞定!
    https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9073269535369745774%22%7D&n_type=1&p_from=4  使用远程桌面协议(RDP)远程桌面协议(RDP)是一种允许用户远程连接到另一台计算机的技术。通过配置RDP,管理员可以实时访问员工的电脑屏......
  • .net 8 实现【JWT】 十分钟领略【无状态设计】
      本文主要分为两个部分:  1、概念  2、.net8demo  第一部分主要描述所有与JWT相关的概念以及词汇,及其原理;第二部分是代码示例。  1、概念JWTjsonwebtoken是一种开放标准(RFC7519),是指定一种数据格式(json)和数据结构(header,payload,si......
  • 花 5 分钟自己构建手写数字识别项目,这是一个完全体,可以识别你自己的图片
    大家好啊,我是董董灿。手写数字识别项目之前写过相关的文章,但是只介绍了这个项目的背景,并且给出了源码。后来有很多朋友反馈,按照源码自己设计的模型,虽然可以很好的识别出给定数据集中的图片,但是自己手写的数字却很难识别出来。这个问题被我解决后,给一部分朋友发过最新的源码,......
  • 晶台推出KL357,电流转换率高达50~600%
    产品描述ProductDescription晶台KL357系列包含一个红外发射二极管,光耦合到一个光电晶体管构成光电耦合器,采用4引脚小外形SMD封装的器件。功能图FunctionalDiagram产品特点ProductFeatures◆电流转换率CTR:50~600%atIF=5mA,VCE=5V◆输入与输出高隔离电压(Viso=......
  • 打卡信奥刷题(225)用C++工具信奥P1760[普及组/提高] 通天之汉诺塔
    通天之汉诺塔题目背景直达通天路·小A历险记第四篇题目描述在你的帮助下,小A成功收集到了宝贵的数据,他终于来到了传说中连接通天路的通天山。但是这距离通天路仍然有一段距离,但是小A突然发现他没有地图!!!但是幸运的是,他在山脚下发现了一个宝箱。根据经验判断(小A有经......
  • 微信小程序 - 解决报错{“errno“:600001,“errMsg“:“request:fail errcode:-202cronet_
    前言关于此问题网上的教程都无法解决,如果您的报错信息与我相似,即可解决。在微信小程序开发中,详细解决小程序请求接口报错:{“errno”:600001,“errMsg”:“request:failerrcode:-202cronet_error_code:-202error_msg:net::ERR_CERT_AUTHORITY_INVALID”},微信小程序发起网络请求......
  • 【菜笔cf刷题日常-1600】C. Good Subarrays(思维,前缀和)
    链接:Problem-1398C-Codeforces思路:考虑每一个新加入的数对于原有序列(长度、数的总和)需求的变化:如1的加入对于原有序列需求无变化;2 的加入需要原有序列长度增加1;0 的加入需要原有序列数的总和增加1;……因此,将每个数减1(如1变为0,0变为 -1)来代表这个数的......
  • MATH6005/6182 probability of rainfall
    MATH6005/6182Assignment1MATH6005:Worth20%MATH6182:Worth20%Submissiondate:18thNovember,2024RulesYoumustworkonyourownonthisassignmentwithnohelpfromothersorGenAI.YoumustsubmitasingleJupyternotebookfileasasubmission......
  • 书生大模型实战营第四期 L1G6000 OpenCompass 评测书生大模型实践
    评测书生大模型实践文章目录评测书生大模型实践前言评测API模型前言OpenCompass提供了API模式评测和本地直接评测两种方式。其中API模式评测针对那些以API服务形式部署的模型,而本地直接评测则面向那些可以获取到模型权重文件的情况。参考:https://github.......