WINCC 趋势判断

news2024/11/29 2:36:37

在这里插入图片描述

项目函数

//状态:
//稳定 =  2  //稳定
//递增 = -1
//无序 =  0  //波动
//递减 =  1
int ordered(double *Trend_data, int Trend_len)
{
	int Trend_out = 0,Order = 0;
	if (Trend_len == 1)
	{
		return 2;
	}
	Trend_out = (Trend_data[0] < Trend_data[1]) - (Trend_data[0] > Trend_data[1]) + 2 * (Trend_data[0] == Trend_data[1]);	
	Order = ordered(Trend_data + 1,Trend_len - 1);
	if (Trend_out*Order == 0 || Trend_out*Order == -1)
	{
		return 0;
	}
	if (Trend_out > Order)
	{
		Trend_out = Order;
	}
	return Trend_out;
}
//输入:过程值,数组大小
//输出:过程值容器
/*
void yl1array(double AI_IN, double yl1LB[],int LB_CS)
{
	int zqN = 0;

	for(zqN = LB_CS - 1;zqN>=1;zqN--)
	{
		yl1LB[zqN] = yl1LB[zqN-1];
	}
	yl1LB[0] = AI_IN;
}
*/



double yl1LB[601] = {0.0};
double*  yl1array(double AI_IN,int LB_CS)
{
	int zqN = 0;

	for(zqN = LB_CS - 1;zqN>=1;zqN--)
	{
		yl1LB[zqN] = yl1LB[zqN-1];
	}
	yl1LB[0] = AI_IN;

	return yl1LB;
}

全局脚本

#include "apdefap.h"

int gscAction( void )
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END

// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END


/*
static double YL1LB[601];

double V1;

int LEN1;
int QS1;

V1=GetTagDouble("V1");
LEN1=GetTagWord("LEN1");

yl1array(V1,YL1LB,10);
QS1 = ordered(YL1LB,10);

SetTagDouble("QS1",QS1); 
SetTagDouble("YLEND",YL1LB[LEN1-1]); 


printf("方法一:%4.4f——%d\r\n", V1, LEN1);
*/

double V1;
double* YL1;

int LEN1;
int QS1;

V1=GetTagDouble("V1");
LEN1=GetTagWord("LEN1");

YL1 = yl1array(V1,10);
QS1 = ordered(YL1,10);

SetTagDouble("QS1",QS1); 
SetTagDouble("YLEND",YL1[LEN1-1]); 


printf("方法二:%4.4f——%d\r\n", V1, LEN1);

return 0; 

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/470632.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

input 各类事件汇总触发时机触发顺序

今天梳理了一下input框的各类事件&#xff0c;简单介绍一下吧 目录 1.click 2.focus 3.blur 4.change 5.input 6.keydown 7.keyup 8.select 1.click 点击事件&#xff0c;简单易理解&#xff0c;点击触发&#xff0c;等下跟focus事件一起比较 2.focus 获取焦点事件…

新能源行业雨水除铊,污水中铊超标的解决方法

锂电行业的发展会带动相关产业的发展&#xff0c;例如锂电池原材料和生产设备的制造、电池回收和处理等&#xff0c;这些产业的发展可能也会带来铊排放问题。除了锂电池生产过程中可能存在的铊污染外&#xff0c;企业的生活污水也可能含有铊&#xff0c;因为铊是一种广泛存在于…

Java面试题总结 | Java面试题总结6-MYSQL模块(持续更新)

Mysql 文章目录 Mysql关系型数据库和非关系型数据库的区别什么是ORM?-**mybatis**如何评估一个索引创建的是否合理&#xff1f;Count函数执行效果上&#xff1a;执行效率上&#xff1a;count(主键)和count(列名) 数据库的三大范式Mysql中char和varchar的区别数据库设计或者功能…

【科普知识】电机的10种工作制说明:S1~S10

如今&#xff0c;在我们的生活中&#xff0c;电机几乎无处不在&#xff0c;从国防、工农、运输、临床器械、通讯到生活中的洗衣机、风扇、吸尘器、电动机器人等&#xff0c;都在应用着各式各样的电动机。 电机作为一种能够将电能转换成机械能的装置&#xff0c;是现代工业生产和…

Elisp之检测函数运行时,在它之前执行别的程序(六)

公众号&#xff1a;Android系统攻城狮 简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&am…

OpenGLES 实验室之2D篇 第三弹 の 直播白板

本文字数&#xff1a;4555字 预计阅读时间&#xff1a;12分钟 笔者之前发表的音视频文章&#xff0c;有图像的处理&#xff0c;音频的重采样等等&#xff0c;都属于入门级别。通过阅读它们&#xff0c;读者能对音视频有了了解。可在 Gitee 上面回顾。 2023 年&#xff0c;笔者将…

如何使用depcheck检查vue和react的依赖,以后不用把时间浪费在依赖问题上了

当我们在开发 JavaScript 项目时&#xff0c;会引入各种依赖库。但是有些依赖库可能只用到了部分功能&#xff0c;或者已经不再需要了&#xff0c;但是却一直被保留在项目中。 这些未使用的依赖库会占据项目的空间&#xff0c;增加项目的复杂度&#xff0c;影响项目的性能。为…

Elasticsearch --- 索引库、文档操作

一、索引库操作 索引库就类似数据库表&#xff0c;mapping映射就类似表的结构。 我们要向es中存储数据&#xff0c;必须先创建“库”和“表”。 1.1、mapping映射属性 mapping是对索引库中文档的约束&#xff0c;常见的mapping属性包括&#xff1a; type&#xff1a;字段数据…

【python】scikit-learn包:机器学习

环境配置&#xff1a;Scikit-learn包 只支持python语言 安装 WinR &#xff0c;输入指令&#xff1a;pip install -U scikit-learn 数据预处理 数据导入 借助pandas和numpy 进行数据导入与处理 字符串类label的数字化编码 机器学习的函数大部分只能对数字信息进行处理&…

轻量级任务看板做任务管理

利用看板管理工作和任务&#xff0c;可以让团队更高效&#xff0c;也可以一目了然的了解任务进度及问题 1、首先创建一个任务看板 使用看板工具轻量级项目模板创建一个任务看板。 任务看板内包含&#xff1a;列表和任务卡片&#xff0c;列表一般代表任务流程及状态&#xff…

(四)ArcMap基础——要素的选择

要素的选择 当要在已有的数据中选择部分要素时&#xff0c;ArcMap提供了三种方式&#xff1a;按属性选择、按位置选择及按图形选择。 目录 要素的选择一、按属性选择二、按位置选择三、按图形选择 一、按属性选择 通过设置 SQL 查询表达式&#xff0c;用来选择与选择条件匹配…

怎样解决高并发下的I/O瓶颈?

大家好&#xff0c;我是易安。 说起Java I/O&#xff0c;相信你一定不陌生。你可能使用I/O操作读写文件&#xff0c;也可能使用它实现Socket的信息传输…这些都是我们在系统中最常遇到的和I/O有关的操作。 我们都知道&#xff0c;I/O的速度要比内存速度慢&#xff0c;尤其是在现…

【致敬未来的攻城狮计划】— 连续打卡第十五天:FSP固件库外部中断处理编程(外部中断检测按键控制LED闪烁)

系列文章目录 1.连续打卡第一天&#xff1a;提前对CPK_RA2E1是瑞萨RA系列开发板的初体验&#xff0c;了解一下 2.开发环境的选择和调试&#xff08;从零开始&#xff0c;加油&#xff09; 3.欲速则不达&#xff0c;今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.…

J - 在赌场玩

第一周任务 - Virtual Judge (vjudge.net) http://t.csdn.cn/rcwO7 第一周任务 - Virtual Judge (vjudge.net) 【题目描述】 然后所有玩家成对玩&#xff0c;每对玩家只玩一次。因此&#xff0c;例如&#xff0c;如果总共有四个玩家&#xff0c;则进行六场比赛&#xff1a;第…

真题详解(二分查找平均值)-软件设计(六十)

真题详解&#xff08;数据流图平衡&#xff09;-软件设计&#xff08;五十九)https://blog.csdn.net/ke1ying/article/details/130394959 全码&#xff1a;指关系模式所有属性都是这个关系模式的候选码。 RISC特点&#xff1a; 指令种类&#xff1a;少&#xff0c;精简 指令…

彻底弄懂Java的泛型1 - 泛型类

Java泛型是初级程序员向中高级程序员进阶的必经之路&#xff0c;他不是特别难&#xff0c;但是想全部搞懂和会用&#xff0c;还是不容易的。 本文从实战角度出发&#xff0c;讲解你在公司做开发&#xff0c;可能会用到泛型的一种场景。 泛型T的用法 引子 先来看一个简单的类…

UDP 协议

目录 一、什么是协议 二、认识UDP 协议 2.2 UDP 协议的报文格式 2.3 使用UDP 协议传输大文件时的策略 2.4 UDP协议的工作流程 一、什么是协议 为了使数据在网络上传输&#xff08;从源头到达目的&#xff09;&#xff0c;网络通信的参与方必须遵循相同的规则&#xff0c;如…

SpaceX的星舰爆炸了:产品开发,快速失败真的很重要

目录 前言 快速失败 产品生命周期 专栏上线 前言 看到很多人都在聊星舰&#xff0c;今天就来简单谈谈“炸星舰”带给我们的启示。 在美国中部时间20日&#xff0c;SpaceX公司的“星舰”超重型火箭进行了首次轨道飞行。 但在该火箭成功点火升空几分钟后&#xff0c;却在半…

Java-synchronized实现详解(从Java到汇编)

synchronized作为java语言中的并发关键词&#xff0c;其在代码中出现的频率相当高频&#xff0c;大多数开发者在涉及到并发场景时&#xff0c;一般都会下意识得选取synchronized。 synchronized在代码中主要有三类用法&#xff0c;根据其用法不同&#xff0c;所获取的锁对象也…

如何通过开源项目搭建私有云平台--第四步下:安装rancher 监控

第四步下&#xff1a;安装rancher 监控,缺告警 本来想监控与告警一起写&#xff0c;但最近几天研究了rancher的告警&#xff0c;按照文档说法&#xff0c;配置了但没有触发&#xff0c;网上找了一些资料&#xff0c;有的在rancer 2.6成功的&#xff0c;但我用同样的方法在2.7.…