上位机组态软件显示曲线的问题请教大家。 点击:3628 | 回复:12



popmusic

    
  • 精华:1帖
  • 求助:6帖
  • 帖子:213帖 | 456回
  • 年度积分:1
  • 历史总积分:4478
  • 注册:2009年8月04日
发表于:2011-08-14 00:06:05
楼主

由于是台测试仪器,需要快速的采集现场模拟量的数据回来,然后显示到电脑上,问题就是现在PLC可以做到10ms采样一次数据,但是上位机组态软件和电脑通信,做不到10ms刷新一下曲线,现在要求的就是要在上位机的组态软件上观察到现场10ms之内数据的变化。我做了一下组态软件最快刷新曲线也是100ms左右,所以监控出来的都是直线,这样没有什么意义了。

现在的问题就是PLC能做到10ms采集数据了,电脑显示不出来10ms数据的曲线。我用的是组态王。

大家看有什么好的办法,可以让PLC采集到的10ms的数据显示到组态软件的曲线上吗?

不用同步的显示,延时一段时间显示也行,只要能显示出,PLC采集到的10ms数据变化的曲线就行。

请大家指教谢谢




miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2011-08-14 10:14:05
1楼
你这个问题 可能把 概念搞错了, 这种高速的信号 你应该在控制器里处理,例如,把数据线传到PLC 里,采集到得数据存储到PLC 里,再从PLC 传到 上位机, 这样就把数据采集 ,和  显示分离了;

popmusic

  • 精华:1帖
  • 求助:6帖
  • 帖子:213帖 | 456回
  • 年度积分:1
  • 历史总积分:4478
  • 注册:2009年8月04日
发表于:2011-08-14 14:09:22
2楼

我做了一下实验,PLC可以捕捉到10ms数据的变化,但是PLC刷新很快,上位机的组态软件还没等着采样PLC的数据,PLC的数据就已经刷新好几次了,现在要解决的就是上位机怎么显示出10ms数据的变化。不知道怎么解决

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2011-08-15 09:50:48
3楼

你是要显示数据 当前值? 历史数据要显示么? 曲线的话要显示若干次采集的数据才行;

你在PLC 中做一个数据缓冲区, 例如 1024 个字节, 依次存储每10ms 采集到的数据(就像先进先出队列),  再通过COM口 每 200MS 读取一次数据(256个自己) 到 上位机, 到上位机再分解数据包,做处理;

popmusic

  • 精华:1帖
  • 求助:6帖
  • 帖子:213帖 | 456回
  • 年度积分:1
  • 历史总积分:4478
  • 注册:2009年8月04日
发表于:2011-08-16 10:09:34
4楼

你好3楼的师傅,实际是这样的:

现在要在组态王上建立个XY曲线,检测位置移动和压力的关系,下位机是PLC,一个动作周期是600ms,由于是台测试仪,需要快速记录位置移动和压力模拟量的变化,需要10ms记录一次位置移动和压力模拟量的数值,PLC是可以做到10ms采集一次,但是PLC和组态王通信存在延时,XY曲线最低也是55ms才能取一次PLC采集回来的数据,这样的话,XY曲线就看不出10ms之内数据的关系了,出来的有可能是条直线。

我现在用的是这样的方法,由于一个周期是600ms,PLC 10ms采集一次数据,总共需要采集60次,然后我写程序将位置移动和压力10ms采集一次的数据分别放到120个存储器中(由于2个变量,每个变量采集60次就需要用到60个存储器,所以需要分配120个存储器)

我想让组态王来调用这120数据区,从第一个数据到最后一个数据,然后慢慢的再在XY曲线上画出来,这样也行。慢不要紧,曲线准确就行,目的就是要看出10ms之内数据的变化曲线就行,但是组态王的XY曲线只能建立2个数据词典的变量来对应XY曲线,那么这120个数据我该怎么做,让组态王准确的显示出来呢?

请师傅们指教,谢谢

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2011-08-17 09:09:40
5楼

但是组态王的XY曲线只能建立2个数据词典的变量来对应XY曲线,那么这120个数据我该怎么做,让组态王准确的显示出来呢?

---------------------------------

哦,我想我 知道你的 意思了 , 组态王提供的是一个变量,实时的读取数据到这个变量,曲线功能块应该是每600MS采集一次当前值做X,Y 轴曲线, 其实这个功能是组态王曲线控件自身实现的,这个控件内部有一个数组(是不可见的),所以 ,现在问题是 你怎么把数据传输到 数组里?  最好自己做个 功能块函数,来实现这个功能!

   组态王我不太熟悉, 你看看组态王有没有类似的 控件 ;

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2008年3月28日
发表于:2014-07-31 12:03:21
6楼

我现在遇到了与楼主同样的问题,我现在使用楼主的方法,用WinCC看是否可以实现。

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2008年3月28日
发表于:2014-07-31 13:22:34
7楼

回复内容:

对:   我现在遇到了与楼主同样的问题,我现在使用楼主的方法,用... 内容的回复!


 硬件 FX2N-232BD --> PC上位机

软件 KEPServerEX OPC 和 WinCC组态

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2008年3月28日
发表于:2014-07-31 13:26:52
8楼

回复内容:

对:   回复内容:对:   我现在遇到了与楼主同样的问题,我现... 内容的回复!


 其实:KEPServerEx OPC软件 对 PLC的扫描速度可以达到10ms,只是工控组态软件达不到这个速度(WinCC是100ms),如果能找到一个快速扫描的组态软件就可以实时反映出现场的曲线了。

Cristina_Lee

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2014年12月11日
发表于:2014-12-11 16:38:09
9楼

和我遇到的情况一样啊,请问楼主后来是怎么解决了的

nufwang

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2012年5月02日
发表于:2016-02-29 10:42:51
10楼

楼主后来有没有解决该问题?

蹉跎人生

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 117回
  • 年度积分:0
  • 历史总积分:247
  • 注册:2010年10月29日
发表于:2016-02-29 12:23:49
11楼

这个问题 需要定制开发了

 

一般组态软件 读取数据也可以做到10ms的,只是在存储数据或显示的时候做不到,

这个就需要功能定制了,软件方面 先高速读取数据,把数据放到一个缓冲区中,然后再从缓存区中取出数据进行存储或显示

leichaohua

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:0
  • 历史总积分:271
  • 注册:2011年5月19日
发表于:2018-02-12 15:33:46
12楼

有一种迂回的处理方式。PLC先按照10ms的采样方式,将数据存在DB块中(DB块数据在记录之前清0),同时按照500ms的周期(wincc最小的记录周期),顺序的把这个DB块的值一个一个的转给上位机的记录变量。上位机会按照500ms自动的记录这个记录变量的值。

这样做的问题是,wincc里面的时间不是反应的实际时间。只有开始的时间是对的,后面的时间显示都比实际的时间晚。这样只是时间不同步,但是所有的值都会被上位机记录。


热门招聘
相关主题

官方公众号

智造工程师