技术论坛

 如何计算模拟量的变化量?

返回主题列表
作者 主题
yming
至圣

经验值: 126844
发帖数: 21987
精华帖: 824
楼主    2018-01-18 10:14:48
主题:如何计算模拟量的变化量? 精华帖  精编帖 

LOGO!通常都是对当前模拟量数值进行控制。但是,很多情况下,当前值并不重要;重要的是数值的变化量,即它的斜率。
例如:温度的突然上升,可能是着火了。水压的突然降低,可能是水管爆裂。这时,需要采取的应对措施是与常规即时控制完全不同的。
实际上,通过变化量(斜率区间)来判断状态;并给出控制项,这也是模糊控制的一个方面。
LOGO!如何,获得模拟量的变化率呢?

学而时习之,不亦说乎?温故而知新,不亦乐乎?
聂昌
奇侠

经验值: 5313
发帖数: 617
精华帖: 0
1楼    2018-01-18 15:16:44
精编帖  主题:回复:如何计算模拟量的变化量?

大神、有点加加速度的感觉,不知理解是否正确。

决不为短期利益而牺牲未来
yming
至圣

经验值: 126844
发帖数: 21987
精华帖: 824
2楼    2018-01-18 20:40:09
精编帖  主题:回复:如何计算模拟量的变化量?

嗯,差不多是这个意思吧。

就是说,许多情况下,实际数值并不重要。

例如:声音60-70分贝下,并不是不能忍受。但是安静的环境中,突然的40-50分贝响声就能吓你一跳。(可能就是锅掉地上了)。而火车驶过,尽管最高音量很大,但过程是比较缓慢的。

这就是模拟量斜率的问题。


也就是说,不是当温度升高的250度来判定着火,而是温度突然升高的速率,来判定。


我已经写了一个,正在测试、优化。

学而时习之,不亦说乎?温故而知新,不亦乐乎?
RENHQ
至圣

经验值: 68881
发帖数: 12215
精华帖: 59
3楼    2018-01-18 21:41:43
精编帖  主题:回复:如何计算模拟量的变化量?

没用过LOGO

LOGO没有数据存储区域吗?

Q群:https://jq.qq.com/?k=9BDuEgf6
RENHQ
至圣

经验值: 68881
发帖数: 12215
精华帖: 59
4楼    2018-01-18 21:42:52
精编帖  主题:回复:如何计算模拟量的变化量?

LOGO是不是程序编写起来比较麻烦

特别是进行计算的东西

Q群:https://jq.qq.com/?k=9BDuEgf6
聂昌
奇侠

经验值: 5313
发帖数: 617
精华帖: 0
5楼    2018-01-18 22:18:49
精编帖  主题:回复:如何计算模拟量的变化量?

我感觉时间是关键、您文中所提到的“突然”如何定义?您这样做的意义何在?预判?

决不为短期利益而牺牲未来
yming
至圣

经验值: 126844
发帖数: 21987
精华帖: 824
6楼    2018-01-18 23:30:16
精编帖  主题:回复:如何计算模拟量的变化量?

LOGO在计算方面只有一些基本算数指令。

但是在时间指令上,却有它独特的指令。

编程也可以用LAD梯形图;但通常还是用功能块编辑。

主要是它和DZ47微型断路器的尺寸是一样的。很容易嵌入在墙壁开关箱中。

因为它本体包含4路模拟量输入,又可以通过以太网编程,多PLC组网传输;还可以与1200等通讯;支持MODBUS_TCP。(我就是配电力猫互联,不需要网线。)

不但可以直接透过浏览器就控制,现在又提供了 WEB用户编辑器。

尽管处理速度慢一些,但是作为某个系统的前端,还是不错的。

何况价格又便宜,编程软件又可以安装在苹果机上。我挺喜欢LOGO!的。

学而时习之,不亦说乎?温故而知新,不亦乐乎?
高山孤影
至圣

经验值: 34740
发帖数: 3236
精华帖: 96
7楼    2018-01-18 23:31:07
精编帖  主题:回复:如何计算模拟量的变化量?

y版,今天忙到很晚,刚看到。

我之前做了一个,比较复杂,用了异步脉冲触发器和模拟量放大器、算术指令等,比较麻烦,晚上找了很长时间也没找到。于是又做了一个,仿真了一下,还可以,请测试是否满足要求。

其实这个用模拟量监控室最简便的方法,采用异步脉冲触发器来设定监控周期,如果在设定周期内超出变化量,则触发报警或进行其他动作。


源程序如下:

模拟量监控.zip


http://blog.163.com/xiuzhang_2000/
yming
至圣

经验值: 126844
发帖数: 21987
精华帖: 824
8楼    2018-01-18 23:39:53
精编帖  主题:回复:如何计算模拟量的变化量?

要说是趋势判断吧。其实也不是。

是要获得每秒的变化量。(其实就是信号的微分)LOGO!仅提供PI(增益、积分)调节。

当变化量在较小时,不处理。

当变化量在某区间时,按预定处理。

当变化量超过区间之外时,应急处理。

就是这个意思。

学而时习之,不亦说乎?温故而知新,不亦乐乎?
高山孤影
至圣

经验值: 34740
发帖数: 3236
精华帖: 96
9楼    2018-01-18 23:48:23
精编帖  主题:回复:如何计算模拟量的变化量?

呵呵,您也好晚啊。

如果需要两个区间,那就用两个监控器,估计就能实现了,一个设置变化区间,一个设置为变化区间之外的值,并行输出就可以了。

我上面的程序设置了曲线下行的输出,就是那个50的值,不用可以去掉,AI可以改成pi控制器的输出,或将其输出量化为被控量的实际值。

http://blog.163.com/xiuzhang_2000/
yming
至圣

经验值: 126844
发帖数: 21987
精华帖: 824
10楼    2018-01-19 00:00:13
精编帖  主题:回复:如何计算模拟量的变化量?

谢谢!

但不是这个,这个只是针对模拟量的阈值输出一个开关位。

我说的是对模拟量的变化量。实际就是对模拟量输入的微分(对时间的差分)。它的输出还是一个模拟量。

即:

模拟量一秒前的数值=450;后一秒的数值=455;则输出 +5;代表每秒增长5;如果是 -5;则代表每秒降低5。如果输出+/-2范围,就视为信号是稳定的,没有变化,不做处理。

这样就可以通过另外一个(或多个) 阈值区间,来判断模拟量的斜率;进而执行它的任务处理了。

我使用移位寄存器来实现的。每秒采集4个值,来获得信号的不同变化状态。

学而时习之,不亦说乎?温故而知新,不亦乐乎?
高山孤影
至圣

经验值: 34740
发帖数: 3236
精华帖: 96
11楼    2018-01-19 07:40:26
精编帖  主题:回复:如何计算模拟量的变化量?

这个应该是控制斜率的变化吧?我以前做过一个可以任意设置斜率的程序,不知道能不能用上。微分不就是在单位时间内斜率的变化吗,只是在这个程序的基础上加一个斜率的检测和增减值的判断呗?

http://blog.163.com/xiuzhang_2000/
不枉此生
侠圣

经验值: 4509
发帖数: 522
精华帖: 0
12楼    2018-01-19 08:40:08
精编帖  主题:回复:如何计算模拟量的变化量?

 这有点类似脉冲计数,先通过固定周期采集模拟量的数值,再判断当前周期和上一周期模拟量的变化量(做差运算),如果变化超过设定的区间,进行相应的工艺处理。

孜孜不倦,向高峰挺进!
铁面判官
侠圣

经验值: 3583
发帖数: 302
精华帖: 2
13楼    2018-01-19 08:59:43
精编帖  主题:回复:如何计算模拟量的变化量?

用上限减去当前值,然后取变化量和上限的比值,我感觉这样可以

只为成功找方法,不为失败找借口!
看雪001
至圣

经验值: 19330
发帖数: 2074
精华帖: 72
14楼    2018-01-19 09:25:57
精编帖  主题:回复:如何计算模拟量的变化量?

没用过logo!,说一下思路:

设置一个1秒定时器,每秒进行一次函数计算;

函数里建一个过渡变量(类似三角几何里的辅助线)#EVn0,程序是按先后顺序扫描执行的,先将当前模拟量#EVn - #EVn0,这就是微分值(different)。计算过后要把#EVn -》#EVn0,也就是把当前值再赋值给#EVn0,此时一个计算周期就结束了。

different,差分的意思(对着镜子看,实物与映像的差别), 解三角几何,重要的就是画辅助线,把这面镜子虚拟出来。哈哈哈,我这语气挺象那么回事的!


大道至简,知易行难
看雪001
至圣

经验值: 19330
发帖数: 2074
精华帖: 72
15楼    2018-01-19 11:05:37
精编帖  主题:回复:如何计算模拟量的变化量?

http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1434341&b_id=64&s_id=83&num=4#anch


不需要它有PID,只要PLC有加减乘除,自己就能编一个PID的,难道logo连加减乘除都不支持吗?

大道至简,知易行难
yming
至圣

经验值: 126844
发帖数: 21987
精华帖: 824
16楼    2018-01-19 11:08:16
精编帖  主题:回复:如何计算模拟量的变化量?

举个我观察到的例子,简单说明一下:




很明显,斜率(模拟量的变化量)的数值,可以判断动作。而具体数值则不一定能判断状态。

对吧?

学而时习之,不亦说乎?温故而知新,不亦乐乎?
yming
至圣

经验值: 126844
发帖数: 21987
精华帖: 824
17楼    2018-01-19 11:29:13
精编帖  主题:回复:如何计算模拟量的变化量?

这是做好的程序:

使用移位寄存器。秒表检查周期,仅仅是为了测量时基T。模拟量的(变化量)斜率输出的时基为T。

单独仿真测得时基T=0.15秒。变化量输出 / 时基T,即换算成 变化量/秒


下面是 程序:



附件是UDF。


MyUDF.zip


斜率区间控制项还没写呢。实测斜率输出似乎是正确的。

各位玩LOGO!的大侠帮给看看。


学而时习之,不亦说乎?温故而知新,不亦乐乎?
Zaxife
至圣

经验值: 12573
发帖数: 2503
精华帖: 31
19楼    2018-01-19 17:34:51
精华帖  精编帖  主题:回复:如何计算模拟量的变化量?

弄了一个比较简单的类似FIFO的应该就是楼主要的功能了。

其实很简单,使用了算术运算的E0=0保持上一次的值,然后先FO再FI的顺序移动数据。


差值周期检测.zip

至于比较输出?那就简单多了,相邻的两个算术运算的AQ比较,然后所有的比较指令都是On那么可以说明AI值一直是在上升的。或者计算比较指令On>Off那么就是说在这段时间内上升波动趋势较大。

如果需要更多的周期?扩展也很简单,一个下降沿+一个算术运算组合就可以扩展一位了。


其实,判断两个周期之间的差值变化差值的话,用 异步脉冲发生器 间隔的去触发 模拟量监视器(开启保持)更简单。

yming
至圣

经验值: 126844
发帖数: 21987
精华帖: 824
35楼    2018-01-21 10:28:16
精编帖  主题:回复:如何计算模拟量的变化量?

意思与你这个差不多。但是,我是用了两对称的,一个是在异步脉冲高电平输出斜率,一个是在异步脉冲低电平输出斜率。通过模拟量MUX选择正确、稳定的斜率输出

否则,单一的输出将在EN低电平时,其输出是从0开始变化;错误的。


另外,不需要一秒的脉冲。我用的异步脉冲是Th=100mS; Tl=100mS; 时基T是100mS,斜率输出乘以10就是每秒的变化量。换句话说,车速每小时多少公里,不是一小时采集一次!重要的是时基是固定正确的。


斜率3.lsc 3.zip


学而时习之,不亦说乎?温故而知新,不亦乐乎?
yming
至圣

经验值: 126844
发帖数: 21987
精华帖: 824
37楼    2018-01-21 12:05:34
精编帖  主题:回复:如何计算模拟量的变化量?

用个模拟量斜坡函数发生器替代模拟量输入就看见实际效果了。



设置不同的斜坡来验证。


学而时习之,不亦说乎?温故而知新,不亦乐乎?
yming
至圣

经验值: 126844
发帖数: 21987
精华帖: 824
42楼    2018-01-23 18:36:55
精编帖  主题:回复:如何计算模拟量的变化量?

嗯,这样也可以。

主要是根据不同的要求,能(调整)设置采样周期时间。

例如:气温变化速率就是很慢的。很快的周期,输出结果都差不多。这时最快的也是秒级;而对于昼夜来说,就需要分钟或10分钟的周期来看变化量。


问一下改变周期设置有啥好方法?

可以通过VW变量设置么?哪样可以通过TD一键设置,改参数?

学而时习之,不亦说乎?温故而知新,不亦乐乎?
高山孤影
至圣

经验值: 34740
发帖数: 3236
精华帖: 96
43楼    2018-01-23 23:03:38
精编帖  主题:回复:如何计算模拟量的变化量?

可以通过word变量修改周期值,方法是工具-参数VM映射,插入异步脉冲发生器,将脉冲宽度和脉冲间宽度分别插入即可,这样就可以在触摸屏或网页上插入相对应的地址,点击就可以修改了。

http://blog.163.com/xiuzhang_2000/
甫哥
奇侠

经验值: 9745
发帖数: 1450
精华帖: 72
44楼    2018-01-24 14:58:23
精编帖  主题:回复:如何计算模拟量的变化量?

43楼说的不错。我就是这样用触摸屏设置参数的。

最近我们的供水设备程序与屏组态升级,参数增加到约30个,用的就是此方法。

书山有路勤为径,学海无涯苦作舟;三人行,必有我师;森林之外的树木也能成才
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。