过程数据画面实时刷新方法

文档序号:6292845阅读:216来源:国知局
专利名称:过程数据画面实时刷新方法
技术领域
本发明涉及 一种过程数据画面刷新方法。
技术背景作为冶金行业现场过程控制级的过程机,即通常说的两级机(L2),是位于企业管理层(L3) 和基础Q动化层(Ll)之间,以过程监控优化为主要目的过程控制计算机系统,它起着承上 启下的作用。在过程控制计算机系统的应用软件中,目前比较流行的结构通常采用客户/服务器 (Client/Server)体系结构。在这种结构下,由服务器端的服务程序负责过程数据的收集、 处理,由客户端的画面程序负责过程数据的展现。这些过程数据包括来自基础自动化层L1 的基础测量数据,以及基于这些测量数据计算而产生的导出数据。当这些过程数据发生变化 时,往往需要实时地反映到客户端的画面上。通常客户端的画面采用定时轮询的方式对后台的服务程序进行数据访问。例如申请号为 200610024323。 X,名称为《一种基于数据库的低负荷画面刷新方法》就是采用轮询的方式, 该专利申请中的控制画面的刷新是通过定周期检查保存在数据库中的控制字来实现。此种轮询方式在一定程度上解决了不必要刷新的问题。在这种情况下,轮询周期的选择就需要特别 考虑。原因是,轮询意味着前台对后台的数据采样,如果要复现后台过程数据的所有取值(虽 然在L2画面上不一定要求达到这个目的),则轮询频率必须大于或者等于过程数据的变化频 率。因此,在同一副画面上,如果显示了数据变化频率不同的过程数据,在这种情况下,如 果按照某个频率来轮询,则必然会导致以下结果1、 要么所有的数据都能够实时地刷新,数据变化的某个细节都能捕捉,但是造成网络负 荷加重,系统资源浪费的情况;2、 要么某些过程数据变化的细节画面无法捕捉。发明内容本发明的目的在于,提供一种过程数据画面实时刷新方法,以减少了网络上无效的传输和客户端画面的资源占用。本发明采用如下技术方案-一种过程数据画面实时刷新方法,包括以下步骤步骤一、注册请求客户端的某个画面在第一次装载或被切换显示时,该客户端运行的 前台画面程序收集注册信息后,该注册信息包括当前画面![YUN3]显示的过程数据点的名称、 本机IP地址和计算机特征信息,向服务器端运行的后台服务程序发送注册请求,该注册请求 中包括有注册信息,之后通过所述后台服务程序获取该客户端需要显示的过程数据点的值, 刷新画面;歩骤二、注册后台服务程序收到前台画面程序的注册请求后,根据注册信息生成该客 户端画面对象,并将其加入客户端画面对象列表,所述客户端画面对象包括a、 该客户端的唯一识别号;b、 该客户端当前画面中注册的所有过程数据点;C、过程数据点的值发生变化时用于发布的客户端画面程序的代理; d、需要发布给该客户端的过程数据点的列表;步骤三、过程数据点发布服务器端运行的数据采集组件采集过程数据点的值,当过程 数据点的值发生更新时,所述后台服务程序将该过程数据点的值加入对应的d客户端画面对 象的过程数据点的列表中,并向客户端分发,在分发完成后,清空d需要发布给该客户端的过程数据点的列表;步骤四、客户端画面刷新所述前台画面程序在收到过程数据点的更新值后,进行画面 刷新。进一步地,所述步骤三中,当所述数据采集组件采集过程数据点中有多个过程数据点的 值发生更新时;还具体包括以下步骤-步骤31、准备;步骤32、判断当前过程数据点的值是否已经发生变化,如果是,则进入步骤33,否则读 取下一个过程数据点,转步骤32;歩骤33、判断该过程数据点是否需要在当前客户端发布,如果是,进入步骤34,否则, 转歩骤35;歩骤34、将该过程数据点添加至该客户端画面对象的过程数据点的列表中;步骤35、判断是否存在下一个客户端画面对象需要处理,如果是,则读取下一个客户端 画面对象,转步骤33,否则,进入步骤36;步骤36、判断是否存在下一个过程数据点需要处理,如果是,则读取下一个过程数据点, 转步骤32,否则,进入步骤37;步骤37、通过RaiseDataChanged向客户端画面对象中过程数据点的列表发生更新的对应 的客户端发布,清除发生更新的过程数据点的列表中的值,为下一次发布做准备; 步骤38、结束该批过程数据点发布。进一步地,在所述步骤36中,在向客户端画面对象中过程数据点的列表发生更新的对应 的客户端发布后,清除发生更新的过程数据点的列表中的值。 ~进一歩地,所述服务器端还包括一存储有全部过程数据点当前值的数据存储区,所述数 据采集组件采集过程数据点的值后,更新该数据存储区内对应的过程数据点的值,所述步骤一 中注册请求完成后,后台服务程序从该数据区获取该客户端需要显示的过程数据点的值后,发送至该客户端。进一歩地,所述步骤三的过程数据点发布过程中,如果某个已经注册的客户端画面因画 面切换或重启时,发生同时访问该数据存储区时,则挂起客户端访问事件,优先执行服务端 的过程数据点发布过程。进一歩地,所述步骤一中,前台画面程序保留了过程数据点和画面显示的元素的映射关 系,当该客户端的画面刷新时,调用该映射关系。进一步地,所述前台画面程序与所述后台服务程序之间采用互联网通信平台方式通讯。进一歩地,所述后台服务程序与所述数据采集组件采用互联网通信平台方式通讯。进一歩地,所述步骤2具体包括如下步骤步骤21、准备;步骤22、判断客户端画面对象列表中是否存在该客户端,如果是,进入步骤23;如果否,转步骤25;步骤23、清除该客户端上次注册的过程数据点;步骤24、为该客户端添加本次注册的过程数据点,转步骤29;步骤25、生成新的客户端画面对象;步骤26、获取该客户端的发布代理;步骤27、添加本次注册的过程数据点;步骤28、将该客户端画面对象添加至客户端画面对象列表;步骤29、结束注册。本发明可以保证只将值发生变化的过程数据点(同时,该数据点还必须在客户端当前画 面上显示)发布给客户端画面。在这种情况下,客户端当前画面上的每个过程数据点的每个 取值都将会从后台发布到前台显示,所有细节都能捕捉,提高了数据显示的实时性和精细度, 同时还减少了网络上无效的传输和客户端画面的资源占用,其实时性和系统负荷都能有效得 到解决。


图l本发明方案系统结构框图;图2是实现本发明方法服务器端提供的注册方法程序流程图;图3是实现本发明方法服务器端过程数据变化处理方法程序流程图;具体实施方式
一种过程数据画面实时刷新方法,如图1所示,所述服务器端的后台服务程序与多个客 户端的前台画面程序通过互联网通信平台方式(Internet Communications Engine, Ice) 提供的Slice (Specification Language for Ice, Ice的特殊语言)的接口定义语言定义通 信接口。本实施例中通过Ice提供的工具slice2cpp和slice2cs将Slice语言描述的接口定 义映射成0++和C射吾言描述的接口定义。本实施例中的程序操作主要接口如下表接口名称(slice语言)实现者调用者int RegisterGraphTag(TAGNAMEARRAY tagN柳es, string strTopic)后台服务程序前台画面程序void RaiseDataChanged(TAGVAUJECOIXECTION tagPairs)前台画面程序后台服务程序int ChangeTagValue(TAGVAUJEMAP tagPairs)后台服务程序数据收集组件步骤一、注册请求,前台画面程序调用RegisterGraphTag接口;客户端的某个画面在第一次装载或被切换显示时,该客户端的前台画面程序收集注册信 息,所述注册信息包括当前画面需要显示的过程数据点的名称、本机IP地址和计算机特征信息等,并将注册信息发送至服务器端的后台服务程序,用于注册;并通过后台服务程序获取 该客户端需要显示的过程数据点的值后,刷新画面;此外,前台画面程序保留了过程数据点 和画面显示的元素的映射关系,如文本框(TextBox)、框架(Grid)等控件,这些对应关系 将在后台过程数据点的值发生变化而刷新画面时被使用;其中,计算机特征信息可以是计算机名称等。歩骤二、注册,后台服务程序通过RegisterGraphTag接口实现;后台服务程序收到前台画面程序的注册请求后,生成该客户端画面对象,并将其加入客 户端画面对象列表;所述客户端画面对象包括a、 该客户端的唯一识别号;本实施例中由本机IP地址和机器名生成。b、 客户端当前画面中注册的所有过程数据点;C、过程数据点的值发生变化时用于发布的客户端画面程序(订阅者)的代理;d、需要发布给该客户端的过程数据点列表。对于某个客户端画面来说,在其第一次向后台服务程序注册时,确定了a、 c两项内容;在其后画面的切换或装载时,将确定b项内容,d项内容是在过程数据点值发生变化时确定的。所述步骤二、具体流程如图2所示,具体描述如下步骤21、准备(后台服务程序收到前台画面程序的注册请求);步骤22、判断客户端画面对象列表中是否存在该客户端,如果是,进入步骤23;如果否,转步骤25;步骤23、清除该客户端上次注册的过程数据点;步骤24、为该客户端添加本次注册的过程数据点,转步骤29;步骤25、生成新的客户端画面对象;步骤26、获取该客户端的发布代理;步骤27、添加本次注册的过程数据点歩骤28、将该客户端画面对象添加至客户端画面对象列表;步骤29、结束注册。步骤三、过程数据点发布,所述服务器端的数据采集组件采集过程数据点的值之后调用 ChangeTagValue接口,并且在后台服务程序通过ChangeTagValue接口实现后;由后台服务程序调用RaiseDataChanged接口 ;所述服务器端的数据采集组件采集过程数据点的值,当过程数据点的值发生了更新时, 后台服务程序将该过程数据点的值加入对应的客户端的过程数据点的列表中,并向客户.端分发。由于采集的过程数据点往往都是成批更新的,因此在一批过程数据点的更新中,需要判 断每个过程数据点,在每个过程数据点的判断里,首先判断该点的值是否发生变化,如果值 发生了变化,则需要遍历客户端画面对象,以确定该过程数据点是否属于该客户端画面注册 过的过程数据点,如果是,就加入d需要发布给该客户端的过程数据点列表。当该批过程数 据点都处理完之后,调用RaiseDataChanged向每个客户端画面发布。在发布完成后,淸空d 客户端画面对象中需要发布的过程数据点列表,为下一次发布做准备。其流程如图3所示, 具体描述如下步骤31 、准备(已经采集一批过程数据点);歩骤32、判断当前过程数据点的值是否巳经发生变化,如果是,则进入步骤33,否则读 取下一个过程数据点,转歩骤32;步骤33、判断该过程数据点是否需要在当前客户端发布,如果是,进入步骤34,否则,转歩骤35;歩骤34、将该过程数据点添加至该客户端画面对象的过程数据点的列表中;歩骤35、判断是否存在下一个客户端画面对象需要处理,如果是,则读取下一个客户端 画面对象,转歩骤33,否则,进入步骤36;歩骤36、判断是否存在下一个过程数据点需要处理,如果是,则读取下一个过程数据点, 转步骤32,否则,进入步骤37; '步骤37、通过RaiseDataChanged向客户端画面对象中过程数据点的列表发生更新的对应 的客户端发布,清除发生更新的过程数据点的列表中的值,为下一次发布做准备; 歩骤38、结束该批过程数据点发布。歩骤四、客户端画面刷新,前台画面程序通过RaiseDataChanged接口实现; 的前台画面程序在收到过程数据点的更新值后,进行画面刷新。进一歩地,所述服务器端还包括一存储有全部过程数据点当前值的数据存储区,所述数 据采集组件采集过程数据点的值后,更新该数据存储区内对应的过程数据点的值。所述步骤一注册请求时,后台服务程序从该数据区获取该客户端需要显示的过程数据点 的值后,发送至该客户端。所述步骤三的过程数据点发布过程中,如果某个已经注册的客户端画面因画面切换或重 启时,发生同时访问该数据存储区时,则挂起客户端访问事件,优先执行步骤三的过程数据 点发布过程,以提高程序执行的安全性。从负载均衡的角度来看,本发明方法减少了客户端设置定吋器、轮询数据等重复工作, 具有集中管理和易于维护的优点。本实施例中,由于釆用的是基于Ice的面向对象的分布式应用中间件平台,可以屏蔽前 台画面和后台服务之间的操作系统,实现语言上的差异性。同样,可以选择其它的中间件平 台来实现本发明中类似的功能,譬如公共对象请求代理架构(C0RBA)、分布式组件对象模型 (DC0M)等平台。在钢厂精炼过程机项目中,后台的模型程序(相当于数据采集组件)会定周期的计算推 定碳含量、推定氧含量、推定温度值等模型计算结果,这些结果需要实时地显示在客户端画 面上给操作人员做操作指导。在这种情况下,它们定周期的向后台的过程数据处理服务(相 当于后台服务程序)写入更新的过程数据点,过程数据处理服务负责过滤并发布到客户端画 面刷新显示,其具有非常好的使用效果。
权利要求
1、一种过程数据画面实时刷新方法,其特征在于包括以下步骤步骤一、注册请求;客户端的某个画面在第一次装载或被切换显示时,该客户端运行的前台画面程序收集注册信息后,该注册信息包括当前画面[YUN1]显示的过程数据点的名称、本机IP地址和计算机特征信息,向服务器端运行的后台服务程序发送注册请求,该注册请求中包括有注册信息,之后通过所述后台服务程序获取该客户端需要显示的过程数据点的值,刷新画面;步骤二、注册后台服务程序收到前台画面程序的注册请求后,根据注册信息生成该客户端画面对象,并将其加入客户端画面对象列表,所述客户端画面对象包括a、该客户端的唯一识别号;b、该客户端当前画面中注册的所有过程数据点;c、过程数据点的值发生变化时用于发布的客户端画面程序的代理;d、需要发布给该客户端的过程数据点的列表;步骤三、过程数据点发布服务器端运行的数据采集组件采集过程数据点的值,当过程数据点的值发生更新时,所述后台服务程序将该过程数据点的值加入对应的d客户端画面对象的过程数据点的列表中,并向客户端分发,在分发完成后,清空d需要发布给该客户端的过程数据点的列表;步骤四、客户端画面刷新所述前台画面程序在收到过程数据点的更新值后,进行画面刷新。
2、 根据权利要求1所述的过程数据画面实时刷新方法,其特征在于所述步骤三中,当 所述数据采集组件采集过程数据点中有多个过程数据点的值发生更新时,还具体包括以下步 骤步骤31、准备;步骤32、判断当前过程数据点的值是否已经发生变化,如果是,则进入步骤33,否则读 取下一个过程数据点,转步骤32;步骤33、判断该过程数据点是否需要在当前客户端发布,如果是,进入步骤34,否则,转步骤35;步骤34、将该过程数据点添加至该客户端画面对象的过程数据点的列表中;步骤35、判断是否存在下一个客户端画面对象需要处理,如果是,则读取下一个客户端画面对象,转步骤33,否则,进入步骤36;步骤36、判断是否存在下一个过程数据点需要处理,如果是,则读取下一个过程数据点, 转步骤32,否则,进入步骤37;歩骤37、向客户端画面对象中过程数据点的列表发生更新的对应的客户端发布,清除发 生更新的过程数据点的列表中的值;步骤38、结束该批过程数据点发布。
3、 根据权利要求2所述的过程数据画面实时刷新方法,其特征在于在所述步骤36中, 在向客户端画面对象中过程数据点的列表发生更新的对应的客户端发布后,清除发生更新的 过程数据点的列表中的值。
4、 根据权利要求1所述的过程数据画面实时刷新方法,其特征在于所述服务器端.还包 括一存储有全部过程数据点当前值的数据存储区,所述数据采集组件采集过程数据点的值后, 更新该数据存储区内对应的过程数据点的值,所述步骤一中注册请求完成后,后台服务程序从 该数据区获取该客户端需要显示的过程数据点的值后,发送至该客户端。
5、 根据权利要求4所述的过程数据画面实时刷新方法,其特征在于所述歩骤三的过程 数据点发布过程中,如果某个己经注册的客户端画面因画面切换或重启时,发生同时访问该 数据存储区时,则挂起客户端访问事件,优先执行服务端的过程数据点发布过程。
6、 根据权利要求l所述的过程数据画面实时刷新方法,其特征在于所述步骤一中,前台画面程序保留了过程数据点和画面显示的元素的映射关系,当该客户端的画面刷新时,调 用该映射关系。
7、 根据权利要求1至6中任一所述的过程数据画面实时刷新方法,其特征在于所述前 台画面程序与所述后台服务程序之间采用l互联网通信平台方式通讯tYUN2]。
8、 根据权利要求7所述的过程数据画面实时刷新方法,其特征在于;所述后台服务程序与所述数据采集组件采用互联网通信平台方式通讯。
9、 根据权利要求1所述的过程数据画面实时刷新方法,其特征在于所述步骤2具体包括如下步骤步骤21、准备;步骤22、判断客户端画面对象列表中是否存在该客户端,如果是,进入步骤23;如果否,转步骤25;步骤23、清除该客户端上次注册的过程数据点;步骤24、为该客户端添加本次注册的过程数据点,转步骤29;步骤25、生成新的客户端画面对象;步骤26、获取该客户端的发布代理;步骤27、添加本次注册的过程数据点;步骤28、将该客户端画面对象添加至客户端画面对象列表;歩骤29、结束注册。
全文摘要
一种过程数据画面实时刷新方法,包括以下步骤步骤一、注册请求;步骤二、注册;步骤三、过程数据点发布服务器端运行的数据采集组件采集过程数据点的值,当过程数据点的值发生更新时,所述后台服务程序将该过程数据点的值加入对应的d客户端画面对象的过程数据点的列表中,并向客户端分发;步骤四、客户端画面刷新。本发明可以保证只将值发生变化的过程数据点发布给客户端画面。每个过程数据点的每个取值都将会从后台发布到前台显示,所有细节都能捕捉,提高了数据显示的实时性和精细度,同时还减少了网络上无效的传输和客户端画面的资源占用,其实时性和系统负荷都能有效得到解决。
文档编号G05B19/418GK101329576SQ20081003904
公开日2008年12月24日 申请日期2008年6月17日 优先权日2008年6月17日
发明者研 赵 申请人:上海宝信软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1