求助IFIX问题 点击:915 | 回复:13



BLUECAT.V

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 23回
  • 年度积分:0
  • 历史总积分:44
  • 注册:2007年2月28日
发表于:2007-03-15 14:46:00
楼主
我们公司最近做一个工程里,有一部分用到的相同仪表非常多(720个类似于PID调节器的仪表),每个仪表涉及参数温度、电流、电压、报警等有14个,但这种仪表设定值只能通过通讯由上位机提供,上位机使用IFIX,由于参数和仪表的类似性,并且在电流设定一画面中,设定值这个参数涉及到的情况很多,比如手动设定、自动设定、出现故障时候的设定,所以使用IFIX提供的连接工具很难实现,所以我就VBA做了这些工作,功能是实现了,可是为了让数据实时更新,不得不把VBA里要用的参数以数组的形式定时从IFIX数据库中读上来,再用VBA处理,当用到定时器的时候,这个时候由于数据量大(720*14=10080点),并且IFIX在处理定时器的时候CPU使用率达到了100%,虽然使用DoEvents,其他的操作还是卡到里面不能操作了,这个时间能够持续2分钟之久,一直在寻求怎么增快速度的方法,未果,请教高手怎么提高IFIX在处理定时器时的速度。非常感谢!



刚刚上路

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:72
  • 注册:2007年2月10日
发表于:2007-03-15 20:31:00
1楼
解决了,告诉我一声,我也对这个问题有兴趣,就是还不知道怎么解决。

M3300

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 141回
  • 年度积分:0
  • 历史总积分:201
  • 注册:2006年2月24日
发表于:2007-03-16 09:00:00
2楼
可以分批处理吗?
读IFIX数据库是很慢,我做报表处理的时候也是CPU100%很久,头痛。。。。

BLUECAT.V

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 23回
  • 年度积分:0
  • 历史总积分:44
  • 注册:2007年2月28日
发表于:2007-03-16 10:01:00
3楼
下面引用由www.gkzl.com在 2007-3-15 20:15:00 发表的内容:
  不插加密锁试试!如果有明显差距我可以告诉你原因了.<br>www.gkzl.com<br>工控资料网<br>qq:119936812
--------------------------------------------------------------------------------------------
目前在前期阶段,没有插加密锁呢,而且这个程序里面我还没有加入
泵站,水处理等其他几个部分,纯硬件总点数应该在3W左右,而且我还不知道IFIX能不能带动这么多个点位?如果是用IFIX内部提供的连接是很快的,是不是VBA运行就是比较慢呀?看IFIX说明书中说道这个定时器也是比较慢的,占用CPU很多,是不是这个原因呢?

BLUECAT.V

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 23回
  • 年度积分:0
  • 历史总积分:44
  • 注册:2007年2月28日
发表于:2007-03-16 10:05:00
4楼
哦还有一点就是,这部分纯粹是有VBA做的,因为画面上除显示参数不一样,其他全一样,所以就做了一个画面,参数转换之类全用VBA做的,就象那个标签组差不多的,我也想过把每个画面重新做一下,但是这个数据如果是读到VBA中做处理,总是要读数据库的,就这个读数据库占用了周期时间的90%左右。大家谁有好主意还望不吝赐教,多谢多谢!

粗纤维

  • 精华:0帖
  • 求助:0帖
  • 帖子:36帖 | 203回
  • 年度积分:0
  • 历史总积分:522
  • 注册:2005年6月04日
发表于:2007-03-16 10:29:00
5楼
呵呵! 这样啊! 别用定时改为当某一界面打开时只刷新界面上的数据这样可以减小CPU的负担!!

BLUECAT.V

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 23回
  • 年度积分:0
  • 历史总积分:44
  • 注册:2007年2月28日
发表于:2007-03-16 15:00:00
6楼
楼上大哥,这些数据要实时刷新的,不能画面打开的时候取一次吧!不用定时器来定时把数据去到VBA里来判断,怎么知道现在现场的参数是多少呢?

jeffxiaoli11

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 103回
  • 年度积分:0
  • 历史总积分:125
  • 注册:2007年3月11日
发表于:2007-03-16 15:35:00
7楼
别用定时改为当某一界面打开时只刷新界面上的数据这样可以减小CPU的负担!!

BLUECAT.V

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 23回
  • 年度积分:0
  • 历史总积分:44
  • 注册:2007年2月28日
发表于:2007-03-19 09:32:00
8楼
可能是我说的不够详细,每一个不同的画面上虽然显示的参数不同,温度,电压,电流等,但是他们都是同一个仪表的参数,涉及到连锁报警的问题,所以当在显示温度界面的时候,电压、电流等还是要经过判断是否过高,是否需要报警、连锁等,所以,参数还是要定时来读的。是不是定时器总是这么占用CPU的呀?有没有其他办法来处理这些呢?

BLUECAT.V

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 23回
  • 年度积分:0
  • 历史总积分:44
  • 注册:2007年2月28日
发表于:2007-03-20 13:46:00
9楼
米人顶,自己顶顶,谁知道挖/?

BLUECAT.V

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 23回
  • 年度积分:0
  • 历史总积分:44
  • 注册:2007年2月28日
发表于:2007-03-23 09:51:00
10楼
UPUP,怎么人气这么差呀?

BLUECAT.V

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 23回
  • 年度积分:0
  • 历史总积分:44
  • 注册:2007年2月28日
发表于:2007-03-27 15:54:00
11楼
谢谢楼上大哥,VBA效率是不高的,以前他们的上位软件也是支持不来的,他们原来的软件也是两部分,一部分是处理这些常规的东西,另一部分,就是我现在说的这些,他们是用VB来做的,然后在上位机软件和VB程序之间可以切换,这样单独的VB程序是不是比嵌入到上位软件里的VBA要快很多呀?

BLUECAT.V

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 23回
  • 年度积分:0
  • 历史总积分:44
  • 注册:2007年2月28日
发表于:2007-04-05 13:45:00
12楼
还没见答案,自己继续顶

BLUECAT.V

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 23回
  • 年度积分:0
  • 历史总积分:44
  • 注册:2007年2月28日
发表于:2007-04-16 10:57:00
13楼
不是D版是Z版,现在我准备把每个画面先减少点程序,再不成,我只有用VB来做这个蒹控程序了,然后在IFIX里调用VB程序,不知道成是不成的

热门招聘
相关主题

官方公众号

智造工程师