技术论坛

应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?

作者 主题
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
主题:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 楼主 2013-11-12 16:44:25
PLC与HMI通信是大家经常会用到的,我们会根据实际需求来为每个变量设置变量采样周期,比如1S或者100ms,那么是不是只要设置好变量采样周期,HMI上的数据就会按照我们设置的采样周期来刷新呢?PLC的程序执行时间会影响与HMI的数据更新吗?如果HMI的数据更新达不到我设定的数据刷新时间要求,有没有改善或者解决的办法?

本期就以上话题展开讨论,希望大家踊跃参与!

活动奖励:
此次集中交流将持续至12月6日,其中所有精华帖作者将获得加倍精华奖励积分;最终所有有效留帖的网友将获得加倍发帖积分。更多积分带给您更多奖品兑换的自由。
对于有突出发言贡献的网友可获得金币奖励,可以在当前的兑换奖品中兑换奖品。

突出发言的一位网友还可获得《深入浅出西门子 WinCC V6 》一本:



预祝大家交流愉快,收获丰富!
 
以下网友喜欢您的帖子:

  
重要声明:

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

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

至圣

经验值: 19407
发帖数: 2077
精华帖: 73
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 1楼 2013-11-13 12:00:10
"如果HMI的数据更新达不到我设定的数据刷新时间要求",设定的刷新时间最快是100ms,如果需要1ms刷新一次只能用“缓冲”。
具体地说就是用一组连续的变量分时显示这一个变量,用“多”来代替“快”。
大道至简,知易行难
以下网友喜欢您的帖子:

  
至圣

经验值: 19407
发帖数: 2077
精华帖: 73
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 2楼 2013-11-13 12:05:18
一个变量的采样周期还需要配合采集模式,比如采集模式默认是“循环使用”,则变量更新只针对使用中的当前画面变量,那么对一些数据记录则需要“循环连续”
大道至简,知易行难
以下网友喜欢您的帖子:

  
至圣

经验值: 16723
发帖数: 1309
精华帖: 2
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 3楼 2013-11-13 14:42:15
这书我有 我是来学习的
同一个问题ID下,已经先回答此问题的人,如再参考我答案而修改自己答案的,就是王八蛋!
以下网友喜欢您的帖子:

  
至圣

经验值: 19407
发帖数: 2077
精华帖: 73
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 4楼 2013-11-13 15:14:50
我要这书。虽然已经有了,还是可以拿来送人,所以踊跃发言。
讲讲自己遇到的两个问题,可能都与这个采样周期有关,但我解释不了:
1,公司组织篮球赛,用备用的PLC和HMI做个时间和计分显示放在裁判席,操作的MM总是抱怨输入比分时,显示更新比较慢。查看了一下比分变量的采样周期,就是默认的1s,这样,写进读出就2s了,还不算PLC的处理时间,把周期改为100ms就快了。
2,西门子HMI里没有自复位按钮,一般书籍都是说组态自复位按钮,要在事件中组态“按下”来setbit,再组态个“释放”来resetbit;这种方法在一般PLC和HMI中没发现有问题,但在一个基于PC的HIM站中,组态一个自复位按钮,容易出问题,就是怎么按都没反应。无奈,只好在事件中组态一个“按下”来setbit,然后在PLC中自复位。
大道至简,知易行难
以下网友喜欢您的帖子:

  
侠圣

经验值: 3116
发帖数: 581
精华帖: 15
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 5楼 2013-11-13 17:41:31
在触摸屏的变量属性里面,有循环连续 和 循环使用。
循环使用 只有当画面切换到含有该变量的页面时才进行数据采集。
循环连续,不论当前画面如何,该变量一直在采集更新。
在一些对数据采集要求高的画面里,尽量减少循环连续的使用,也是增强触摸屏采集性能的一种方法。
哪有狂澜不能力挽
以下网友喜欢您的帖子:

  
版主

经验值: 76199
发帖数: 19143
精华帖: 378
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 6楼 2013-11-13 17:48:02
呵呵,这是我一直感到困惑和怀疑的问题,苦于没有任何可参考的信息,厂家也不会公开这里面的细节。

组态软件中,我定义的一个变量数新周期为1秒,与定义了1000个变量刷新周期为1秒,系统的负荷肯定是不一样的,但是编译时系统不会告诉你这时的通讯负荷具体是多少,系统到底能不能达到组态的要求,没准系统自动的把所有的变量的刷新周期都改为2s了也不得而知(这就是所谓的系统优化功能),我们其实大多数时候都不注意这些的,只有在很偶然的情况下,才发现似乎有些问题,但又找不到根据,而且能够改变的手段也很少。

当然,以上说的还仅仅是HMI自身的一方面,通讯的另一方面PLC以及通讯链路的好坏,都会对实际的数据的刷新率带来比较大的影响,

所以,现在但凡是看看的数据,我们就用现成的HMI做,但遇到要分析的数据,我们就自己开发软件了,这样数据的刷新率是可以确保的。
Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
版主

经验值: 76199
发帖数: 19143
精华帖: 378
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 7楼 2013-11-13 17:54:37
quote:以下是引用看雪001在2013-11-13 15:14:50的发言:
我要这书。虽然已经有了,还是可以拿来送人,所以踊跃发言。
讲讲自己遇到的两个问题,可能都与这个采样周期有关,但我解释不了:
1,公司组织篮球赛,用备用的PLC和HMI做个时间和计分显示放在裁判席,操作的MM总是抱怨输入比分时,显示更新比较慢。查看了一下比分变量的采样周期,就是默认的1s,这样,写进读出就2s了,还不算PLC的处理时间,把周期改为100ms就快了。
2,西门子HMI里没有自复位按钮,一般书籍都是说组态自复位按钮,要在事件中组态“按下”来setbit,再组态个“释放”来resetbit;这种方法在一般PLC和HMI中没发现有问题,但在一个基于PC的HIM站中,组态一个自复位按钮,容易出问题,就是怎么按都没反应。无奈,只好在事件中组态一个“按下”来setbit,然后在PLC中自复位。

基于PC的系统我用过不少,也是在按钮的事件中组态“按下”来setbit,再组态个“释放”来resetbit,我也认为楼主说的第二种情况发生会发生,但直至现在我也没有见过。所以是不是还有其他的因素?
Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
游士

经验值: 223
发帖数: 10
精华帖: 2
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 8楼 2013-11-13 18:13:21
至于这个问题,我的想法是HMI数据会按照我们设定的采样周期在更新,因为程序是运行是死的(当然一些极低概率出现BUG错误就不说了),所以我们设定了一个周期程序不会自动改变这个周期,在这里就出现了一个问题,我们监视HMI画面也有会发现采样周期偏长的,这个我想就要考虑到这个程序自身的运行时间了,与负载有关,与设备处理能力有关,比如电脑速度自身运算速度不快使画面卡顿,但这些因素不应该算到采样周期身上,因此在不考虑外围因素的情况下HMI中数据是按我们设定的采样周期来更新。
最好的学习方法就是不停地亲身实践!
以下网友喜欢您的帖子:

  
侠士

经验值: 1221
发帖数: 102
精华帖: 2
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 9楼 2013-11-14 09:43:52
我想对于HMI这样一侧来说,应该是按照设定的时间来更新变量,但是pLC发送过来的数据应该是放在HMI这边的一个缓冲区内,HMI画面所刷新的数据应该也指示在自己的缓冲区内读取,它并不知道里面的数据是PLC何时发送过来的数据、PLC有无对数据跟新。
这样理解的话,我们就要考虑三个时间:
1、PLC程序自己运行所需的扫描周期
2、通信传递数据所花的时间
3、HMI上设定的刷新周期
我觉得应该是1+2<=3的这种情况的,HMI每次刷新的数据就应该是PLC更新的时时数据,如果1+2>3的话,HMI进行变量刷新的时候,读到的数据还是上一次的,比如说有可能HMI更新第2次的时候,才是PLC数据的第一次更新(当然是相对来说的第一次和第二次哈)。
解决办法,我觉的也是一样从上面三点出发:降低1和2占用的时间,或者适当调整3为比较大但是又不影响目标效果的值。
小弟才疏学浅,说错了大家莫笑,我只是希望能多多学习……
努力工作学习,充实自己,为家人创造美好生活!
以下网友喜欢您的帖子:

  
奇侠

经验值: 6754
发帖数: 843
精华帖: 46
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 10楼 2013-11-14 16:57:27
V3.2版的S7-300CPU属性的“Cycle/Clock Memory ”下有一个选项“Prioritized OCM communication",看帮助说能提高和HMI的通信速度。
Let's build the automation future!
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 11楼 2013-11-14 17:12:51
说到周期,首先也是多年来迷糊的地方。
在WINCC的通道属性中,有个周期管理的选项:




而也有帮助提示:




可以看到整个翻译都是乱的,整个就是不知所云。
说明恐怕德国人自己都没搞明白这几个选项具体啥意思。

有高人先给说明白了先。
前几年四书五经在的时候曾经说过一会,但还是没懂。

我曾经接到电话有人问我怎么搞,是勾上还是不勾。我给的答复是你都试试,哪样能通讯用哪样。
微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 19407
发帖数: 2077
精华帖: 73
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 13楼 2013-11-14 19:45:18
西门子PLC里有OB35等周期中断,HMI里的数据采样周期在原理上应该一样也是利用中断来查询,但HMI要访问的数据是在PLC的存储区,这就象PLC程序中的块,块的外部如何赋值给块的内部?(以前也有帖子讨论过,块本身需要带一个数据存储区)
现在,总线的应用越来越广泛,不管什么协议,总线这个概念本质是将CPU的内部、外部总线之间的区别变得越来越模糊,一些专用的单片机高速数据采集思路,慢慢也应用在通用的PLC平台上,因为实际应用有这个需要,PLC就要向这个方向发展。
为什么我用普通的方法实现自复位按钮不能在基于PC的控制上可靠运行,因为基于PC的控制是使用“软总线”,它是虚拟的总线。
大道至简,知易行难
以下网友喜欢您的帖子:

  
游民

经验值: 68
发帖数: 1
精华帖: 0
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 14楼 2013-11-14 20:49:23
我一般都设成200ms 效果还可以
这个世界太疯狂,一切不过如此而已……
以下网友喜欢您的帖子:

  
版主

经验值: 76199
发帖数: 19143
精华帖: 378
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?
精华帖精华帖星级2级


只看楼主 只看精华 15楼 2013-11-14 21:40:47
PLC里倒是有个通讯负载的参数可以设置,在CPU属性里,可以设定每个扫描周期用于通讯的时间的比例。
Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
tln
游民

经验值: 97
发帖数: 3
精华帖: 1
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?
精华帖精华帖星级4级


只看楼主 只看精华 16楼 2013-11-15 09:15:54
我研究过别的品牌的HMi,截取过HMI发向PLC的通讯数据.HMI理论上可以按照设定的采样周期更新,但在数据量较大时HMI来不及发送数据,可能会造成更新周期延时.严重时HMI的数据更新会出现假死的状况.
另外,在编写HMI时将相关的数据软元件地址最好按照顺序连续编写,这样HMI向PLC发送的读写指令时可以将多条指令整合成一条.这样可以提升通讯效率.
PLC的一个扫描周期分,处理通讯,映射IO区域和执行程序等步骤,若程序越大,扫描周期越长.PLC和HMI的通讯相应也就越慢.
 
以下网友喜欢您的帖子:

  
新手

经验值: 24
发帖数: 2
精华帖: 0
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 17楼 2013-11-15 10:23:56
主题:回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?
2013-11-14 09:43:52 9楼 我想对于HMI这样一侧来说,应该是按照设定的时间来更新变量,但是pLC发送过来的数据应该是放在HMI这边的一个缓冲区内,HMI画面所刷新的数据应该也指示在自己的缓冲区内读取,它并不知道里面的数据是PLC何时发送过来的数据、PLC有无对数据跟新。
这样理解的话,我们就要考虑三个时间:
1、PLC程序自己运行所需的扫描周期
2、通信传递数据所花的时间
3、HMI上设定的刷新周期
我觉得应该是1+2<=3的这种情况的,HMI每次刷新的数据就应该是PLC更新的时时数据,如果1+2>3的话,HMI进行变量刷新的时候,读到的数据还是上一次的,比如说有可能HMI更新第2次的时候,才是PLC数据的第一次更新(当然是相对来说的第一次和第二次哈)。
解决办法,我觉的也是一样从上面三点出发:降低1和2占用的时间,或者适当调整3为比较大但是又不影响目标效果的值。
小弟才疏学浅,说错了大家莫笑,我只是希望能多多学习……


我看到这才是最合理的解释,其实影响通讯速度的就是这3个因素:1,PLC的扫描周期,是根据程序来决定的,一般程序结构简单,程序越少,CPU越好,扫描周期很短,我用最快的是1MS ,最慢的是50MS;2,是根据所设定波特率来的,DP总线的波特率越高,传输时间越短,当然用以太网是最快的;3,CPU每刷新一次自动把数据放在HMI缓存里,而触摸屏根据其自己的刷新来读取数据。个人总结,CPU刷新和HMI无关。
 
以下网友喜欢您的帖子:

  
侠圣

经验值: 3427
发帖数: 1473
精华帖: 6
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 18楼 2013-11-15 11:11:58
楼上说的很对,CPU刷新跟HMI无关。
这里可以理解为,地层刷新时间和应用显示时间无关(我是这么理解的)
刷新可以分三层,第一层,PLC刷新,PLC在程序里可以设置刷新频率,可根据CPU的不同,最低各有不同
第二层是传输层,串口的波特率的大小,以太网的传输都会直接影响刷新时间。
第三层就是HMI显示层,我以前做过12条皮带的动画,本想把皮带上的煤炭也动起来,煤炭+滚筒都转起来后,发现界面卡的不得了,我点了一个按钮,里面弹出一个msgbox,都要4,5秒后才能出来。所以更不要说数据刷新记录了。所以归档的刷新时间,也要跟HMI软件负荷也有关系。
年经就是一种态度
以下网友喜欢您的帖子:

  
侠圣

经验值: 3427
发帖数: 1473
精华帖: 6
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 19楼 2013-11-15 11:14:00
当然,一般工控对刷新时间要求不是太高。所以一般用户感觉不到。
只要1秒内有变化,我都可以接受了。

像一些比如汽车行业,要求数据实时性极高的,WINCC等HMI之类的组态软件就不能用了。
有些WINDOWS都不能用。
年经就是一种态度
以下网友喜欢您的帖子:

  
奇侠

经验值: 6676
发帖数: 2327
精华帖: 19
回复:应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?


只看楼主 只看精华 20楼 2013-11-15 12:49:49
1:有这样一种现象,如果将变量的采集周期设置的太快的话,增加了实际hmi的负担,实际效果hmi的刷新频率不升,反而降低了。这是为什么呢?
所以说设置好变量采样周期,HMI上的数据不一定会按照我们设置的采样周期来刷新。
2:winccflexible是否有可以像wincc那样支持数据打包上传呢?在wincc中,如果PLC是400的话,可以支持打包,在wincc中进行数据解析,最高速度可以达到1ms,目前winccflexible没见到相关的资料
3:如何合理的选择hmi变量的扫描周期,目前的项目到没遇到太大的问题,如果项目非常大的话,有可能会遇到这样的问题。目前项目的做法是需要显示快的话,设置成100ms,刷新速率慢的,直接按照默认。这样做肯定不合理,正确的方法应该如何去做呢?
4:在变量的定义,是否最好用统一变量区,变量地址尽量在固定的一片区域内呢?
 
以下网友喜欢您的帖子:

  
收起
应用探讨——HMI中的数据真的是按照你设定的采样周期在更新吗?
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。