技术论坛

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

没用过LOGO

LOGO没有数据存储区域吗?

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

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

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

特别是进行计算的东西

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


源程序如下:

模拟量监控.zip


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

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

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

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

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

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

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

就是这个意思。

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

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

呵呵,您也好晚啊。

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

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

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

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

谢谢!

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

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

即:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

经验值:22507
发帖数:2416
精华帖:87
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
至圣

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

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




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

对吧?

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

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

这是做好的程序:

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

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


下面是 程序:



附件是UDF。


MyUDF.zip


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

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


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

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

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

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


差值周期检测.zip

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

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


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

老兵veteran
至圣

经验值:59333
发帖数:9984
精华帖:505
21楼    2018-01-19 18:56:09
精编帖  主题:回复:如何计算模拟量的变化量?
Logo有定时中断么?在定时中断里计算两次采样的差值,不就是变化率?
天生不宜做胜利者,自来没有胜利的欲望,只是不甘失败,十分十分不甘心失败。木心
yming
至圣

经验值:138360
发帖数:23136
精华帖:880
22楼    2018-01-19 22:10:16
精编帖  主题:回复:如何计算模拟量的变化量?

好像什么类型的中断都没有。有各种定时器;还挺灵活的。

最快的时基设置是10毫秒,还不一定准。不过现在可以通过互联网NTS对时。所以它特别适合长时间变化量的控制。应该能满足那些如车载的、环境的、生活上等较低速的控制。

挺好玩的。熟悉了编程,估计会更好玩。

编程是在JAVA VM虚拟机上使用,苹果机上也能装。随时可以仿真,挺有意思的。


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

经验值:138360
发帖数:23136
精华帖:880
23楼    2018-01-19 22:14:36
精编帖  主题:回复:如何计算模拟量的变化量?

一秒一次的输出延迟大、太慢了。

这就是要“预控”,越快越好,换算后成变化量/秒。

所以要计算个时基T。

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

经验值:38591
发帖数:3518
精华帖:108
24楼    2018-01-19 22:18:20
精编帖  主题:回复:如何计算模拟量的变化量?

有定时中断的话倒好了,没办法只能从程序上解决了。

http://blog.163.com/xiuzhang_2000/
高山孤影
至圣

经验值:38591
发帖数:3518
精华帖:108
25楼    2018-01-19 22:25:56
精编帖  主题:回复:如何计算模拟量的变化量?

今晚上干完活试了一下,模拟量的采集需要先后顺序的,要不正负不好处理,因为LOGO!没法取绝对值啊,所以只有移位,或者按Z侠近似于FIFO的程序来做了。

我在7楼的监控程序可以作为判断,但是模拟量的值没法输出,如果要输出,只能借助于算术功能了。

个人感觉,10mS,对于模拟量的变化来说,一般控制可以,但有紧急情况,还是没法应付。

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

经验值:138360
发帖数:23136
精华帖:880
26楼    2018-01-19 22:56:16
精编帖  主题:回复:如何计算模拟量的变化量?

嗯。我写的那个下载到LOGO!中试过了。基本上能即时反映出模拟量斜率的变化。下降是负,上升是正。响应还好,及时。他写的那个回头我修改一下,回头也下载看看。因为还有其他程序部分要运行。要看看循环周期对结果数值的影响。

反正是适当地越快越好。

我试过,工人看见信号,拍急停,少说也要100毫秒;接触器动作也得60毫秒。

我是觉得,做预判的工作,可以弥补一些固有速度慢的问题。


学而时习之,不亦说乎?温故而知新,不亦乐乎?
慧星
版主

经验值:18732
发帖数:5615
精华帖:36
27楼    2018-01-20 12:55:10
精编帖  主题:回复:如何计算模拟量的变化量?

 这几天比较忙,y侠提出的问题还没怎么考虑。

各位大侠的方案都有独到之处,我先学习学习。

sgpg
慧星
版主

经验值:18732
发帖数:5615
精华帖:36
28楼    2018-01-20 13:06:50
精编帖  主题:回复:如何计算模拟量的变化量?

没有定时中断,但是LOGO!也能实现类似的功能!

sgpg
yming
至圣

经验值:138360
发帖数:23136
精华帖:880
29楼    2018-01-20 13:22:01
精编帖  主题:回复:如何计算模拟量的变化量?

确实有像Zaxife大侠说的那样,有更简单的方法。我正在试。要下载到实际LOGO!中测试。


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

经验值:138360
发帖数:23136
精华帖:880
30楼    2018-01-20 19:34:23
精编帖  主题:回复:如何计算模拟量的变化量?

琢磨分析了一下,做了个比较满意的检测模拟量的变化量的电路。

异步脉冲发生器为100毫秒间隔的高低电平;VW102为上一100毫秒间隔的模拟输入变化量。该值乘以10即为每秒变化量。

理论上,异步脉冲可以做到10毫秒。对我来说设成100毫秒已经够了。





学而时习之,不亦说乎?温故而知新,不亦乐乎?
慧星
版主

经验值:18732
发帖数:5615
精华帖:36
31楼    2018-01-21 03:02:19
精编帖  主题:回复:如何计算模拟量的变化量?

模块B006中计算符号是不是“+”?

sgpg
慧星
版主

经验值:18732
发帖数:5615
精华帖:36
32楼    2018-01-21 03:51:43
精编帖  主题:回复:如何计算模拟量的变化量?

 我编了一个程序,请Y侠测试一下,能否满足要求?B007中P3为放大系数。

 

模拟量变化量检测.zip

 

sgpg
慧星
版主

经验值:18732
发帖数:5615
精华帖:36
33楼    2018-01-21 03:56:47
精编帖  主题:回复:如何计算模拟量的变化量?

 

 

增加预处理与紧急处理


sgpg
慧星
版主

经验值:18732
发帖数:5615
精华帖:36
34楼    2018-01-21 04:16:34
精编帖  主题:回复:如何计算模拟量的变化量?

 B007也可以设置为(B006-B005)/B006*100,

sgpg
yming
至圣

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

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

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


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


斜率3.lsc 3.zip


学而时习之,不亦说乎?温故而知新,不亦乐乎?
慧星
版主

经验值:18732
发帖数:5615
精华帖:36
36楼    2018-01-21 11:11:04
精编帖  主题:回复:如何计算模拟量的变化量?

 数据采集相当于0.02秒一个,频率高,可以减少异步脉冲触发器低电平带来的采集误差;

当算术指令En为低电平时,可以保持上一个采集的数值;

采用多个模拟量偏差触发器,根据不同的输出,就能知道模拟量上升或者下降的斜率范围。


sgpg
yming
至圣

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

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



设置不同的斜坡来验证。


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

经验值:10005
发帖数:1448
精华帖:72
38楼    2018-01-22 09:35:36
精编帖  主题:回复:如何计算模拟量的变化量?

用算数指令与模拟量比较器做了一个

可方便扩展多种变化率的比较及正负变化率的不同比较组合。


20180120 如何计算模拟量的变化量.zip


书山有路勤为径,学海无涯苦作舟;三人行,必有我师;森林之外的树木也能成才
甫哥
至圣

经验值:10005
发帖数:1448
精华帖:72
39楼    2018-01-22 11:26:02
精编帖  主题:回复:如何计算模拟量的变化量?

38楼的存在yming在35楼说的错误【否则,单一的输出将在EN低电平时,其输出是从0开始变化;错误的。】

看下面的是否可以

20180120如何计算模拟量的变化量.zip


书山有路勤为径,学海无涯苦作舟;三人行,必有我师;森林之外的树木也能成才
yming
至圣

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

嗯,这样也可以。

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

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


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

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

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

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

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

http://blog.163.com/xiuzhang_2000/
甫哥
至圣

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

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

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

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