技术论坛

单位时间内模拟量波动一定数值则输出报警的程序段

作者 主题
新手

经验值: 42
发帖数: 2
精华帖: 0
主题:【求助】单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 楼主 2021-04-02 10:25:18

对于输入的模拟量怎么设计一个 模拟量在十分钟内波动超过一定数值则输出报警 的程序段

例如: 液面在十分钟内波动超过3cm,或者在60分钟内波动超过10cm 则输出报警 


 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1689485&b_id=4&s_id=0&num=13

至圣

经验值: 23746
发帖数: 3385
精华帖: 52
回复:单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 2楼 2021-04-02 10:56:35

楼说描述的不准确。 你这个不叫波动, 叫采样偏差。  必须先滤波,然后进行周期比较偏差。


不忘初心
以下网友喜欢您的帖子:

  
至圣

经验值: 43597
发帖数: 15780
精华帖: 61
回复:单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 3楼 2021-04-02 12:28:07

既然说波动,那就和平均值有关系了。假设你的信号1s取样一次,那么计算十分钟的波动则需要建立一个600个元素的数组,采用fifo队列,把数据输入数组中,然后数组求平均值,平均值和当前值求差后求却对之,如果结果大于3则输出报警。

如果abs(pv-average(600个数组元素的值))>=3.0则警告为1,否则警告为0


活到老,学到老!为了生活学习吧!
以下网友喜欢您的帖子:

  
至圣

经验值: 12573
发帖数: 2503
精华帖: 31
回复:单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 4楼 2021-04-02 14:27:37

这种玩意,建议还是上位机去折腾比较好。

PLC感觉没这么多内存没这么多运算量可以这样折腾。

如果每1秒采样一次,60分钟就是3600秒,3600个Word的数组保存的60分钟偏差值缓存,然后还要每秒都要FIFO要计算3600个偏差和,PLC不用干其他事了。如果很多个模拟量要这样折腾PLC直接罢工了。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 23746
发帖数: 3385
精华帖: 52
回复:单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 5楼 2021-04-02 14:33:23
以下是引用zhangli0在2021-04-02 12:28:07的发言 >3楼

既然说波动,那就和平均值有关系了。假设你的信号1s取样一次,那么计算十分钟的波动则需要建立一个600个元素的数组,采用fifo队列,把数据输入数组中,然后数组求平均值,平均值和当前值求差后求却对之,如果结果大于3则输出报警。

如果abs(pv-average(600个数组元素的值))>=3.0则警告为1,否则警告为0

一阶滤波是干啥的?


一个公式解决问题。


yn = a * yn  + (1 - a ) * value;


yn: 滤波输出

0 < a < 1,  一般取a > 0.9;  越大, 滤波效果越强;


value:  当前读入的实际值;


不忘初心
以下网友喜欢您的帖子:

  
至圣

经验值: 12573
发帖数: 2503
精华帖: 31
回复:单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 6楼 2021-04-02 17:13:26
以下是引用锋言锋语在2021-04-02 14:33:23的发言 >5楼

一阶滤波是干啥的?


一个公式解决问题。


yn = a * yn  + (1 - a ) * value;


yn: 滤波输出

0 < a < 1,  一般取a > 0.9;  越大, 滤波效果越强;


value:  当前读入的实际值;

以下是引用zhangli0在2021-04-02 12:28:07的发言 >3楼:既然说波动,那就和...

引用3楼详细内容:

既然说波动,那就和平均值有关系了。假设你的信号1s取样一次,那么计算十分钟的波动则需要建立一个600个元素的数组,采用fifo队列,把数据输入数组中,然后数组求平均值,平均值和当前值求差后求却对之,如果结果大于3则输出报警。

如果abs(pv-average(600个数组元素的值))>=3.0则警告为1,否则警告为0

人家要的是规定时间内的波动差和,而不是每段时间内的差和,与一阶滤波没啥关系。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 23746
发帖数: 3385
精华帖: 52
回复:单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 7楼 2021-04-02 17:32:58
以下是引用Zaxife在2021-04-02 17:13:26的发言 >6楼

人家要的是规定时间内的波动差和,而不是每段时间内的差和,与一阶滤波没啥关系。

以下是引用锋言锋语在2021-04-02 14:33:23的发言 >5楼:一阶滤波是干啥的?...

引用5楼详细内容:

一阶滤波是干啥的?


一个公式解决问题。


yn = a * yn  + (1 - a ) * value;


yn: 滤波输出

0 < a < 1,  一般取a > 0.9;  越大, 滤波效果越强;


value:  当前读入的实际值;

以下是引用zhangli0在2021-04-02 12:28:07的发言 >3楼:既然说波动,那就和...

引用3楼详细内容:

既然说波动,那就和平均值有关系了。假设你的信号1s取样一次,那么计算十分钟的波动则需要建立一个600个元素的数组,采用fifo队列,把数据输入数组中,然后数组求平均值,平均值和当前值求差后求却对之,如果结果大于3则输出报警。

如果abs(pv-average(600个数组元素的值))>=3.0则警告为1,否则警告为0

不滤波的情况下搞采样偏差, 很大概率不能用。 参考下 编码器的滤波 和 每周期采用速度偏差。


还有粉料重量滤波 和 周期喷吹速度。


可以说, 如果不滤波, 这种程序就没有实际意义。


不忘初心
以下网友喜欢您的帖子:

  
新手

经验值: 42
发帖数: 2
精华帖: 0
回复:单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 楼主 8楼 2021-04-06 16:54:33

请问大家有没有相关案例或者程序段可以参考一下


 
以下网友喜欢您的帖子:

  
至圣

经验值: 43597
发帖数: 15780
精华帖: 61
回复:单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 9楼 2021-04-07 16:05:34
以下是引用藤原拓江在2021-04-06 16:54:33的发言 >8楼

请问大家有没有相关案例或者程序段可以参考一下

我给你的思路你去做了吗?


活到老,学到老!为了生活学习吧!
以下网友喜欢您的帖子:

  
侠客

经验值: 958
发帖数: 242
精华帖: 0
回复:单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 10楼 2021-04-09 10:05:18

这是工控行业现场经常会遇到的问题啊,监测某个液位,压力,温度的变化快慢的情况。

我们都这么做的,假设第1s读个测量值P1,存在一个地址,10s后再读下测量值P2,存在另个地址,

拿(p2-p1)/监测的时长==测量值变化率,也就是斜率。

变化率大于某个设定值就触发报警或者其他动作,反之,无动作。

在第2次读取测量值的同时,又开始下一轮计时,把第3次测量值P3,存入一个地址,

同样用上面的公式去处理数据,

第4次测量数据来了,又存入第1个地址,

就这样新的一圈又开始了,一圈一圈的存储,计算,存储循环。。。。。。



VX:laoxiong988,就是老熊988全拼。 Q969465290
以下网友喜欢您的帖子:

  
侠圣

经验值: 2707
发帖数: 441
精华帖: 0
回复:单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 11楼 2021-04-13 22:46:24

楼上说明的很详细了,可以编程使用


懒是人类前进的动力
以下网友喜欢您的帖子:

  
侠圣

经验值: 3818
发帖数: 834
精华帖: 3
回复:单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 12楼 2021-09-13 09:45:45

10楼说的方法可行,因为按照楼主的意思应该是变化率高就报警,而不是信号采集不准确或者是波动较大


路漫漫其修远兮,吾将上下而求索!!!
以下网友喜欢您的帖子:

  
奇侠

经验值: 8295
发帖数: 641
精华帖: 0
回复:单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 13楼 2021-10-05 14:09:48

用一个比较数值的大小就可以实现的


努力向上
以下网友喜欢您的帖子:

  
侠圣

经验值: 2515
发帖数: 177
精华帖: 0
回复:单位时间内模拟量波动一定数值则输出报警的程序段


只看楼主 14楼 2021-10-09 08:45:29

这个可以学习一下!


没什么大不了
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
单位时间内模拟量波动一定数值则输出报警的程序段
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。