请登录 免费注册
分享
  • 微信
  • 新浪微博
  • 人人网
  • QQ空间
  • 开心网
  • 豆瓣
会员服务
进取版 标准版 尊贵版
| 设为首页 | 收藏 | 导航 | 帮助 |
移动端 |
官方微信扫一扫
微信扫一扫
收获行业前沿信息
产品 资讯
请输入产品名称
噪声分析仪 纺织检测仪器 Toc分析仪 PT-303红外测温仪 转矩测试仪 继电保护试验仪 定氮仪
首页 产品 专题 品牌 资料 展会 成功案例 网上展会
词多 效果好 就选易搜宝!
大庆紫金桥软件技术有限公司
新增产品 | 公司简介
注册时间:2004-08-13
联系人:
电话:
Email:
首页 公司简介 产品目录 公司新闻 技术文章 资料下载 成功案例 人才招聘 荣誉证书 联系我们

产品目录

实时数据库
组态软件
首页 >>> 技术文章 >

技术文章

紫金桥软件中的人工录入历史数据的同步

在一些大型的生产管理系统中,往往都会应用到人工录入历史数据功能,从而对生产数据进行系统的管理,这部分的数据不能够在仪表中采集到,只能通过人为的填写,这部分数据不但要存储到客户端,还要上传到服务器端进行显示,这样就会引发一个关键问题:如何做到服务器端与客户端的数据同步?下面提供三种解决方案。
 
 **种:服务器端直接调取客户端数据。
这种方案制作过程比较简单,只需要在服务器端针对于相应的客户端建立一个数据源,选择远程节点,并将IP指向客户端即可。如下图所示。
 其中:主机名/地址为客户端的IP地址。当这一切配置好之后,只需在自由报表中调用GetHisDataEx()函数,在运行的情况下就可以调取到客户端的历史数据。GetHisDataEx()函数的声明如下:
GetHisDataEx(string DataSource,string VarName,int StartTime,int MilliSecond)。
其中:DataSource要填写相应客户端的数据源名称,VarName要填写该数据源下的数据库变量名称。这样当系统运行时,在服务器端就可以调取到客户端的数据了。但这中方案存在一个弊端,即当客户端停止运行或着客户端与服务器端通讯终端时,那么在服务器端则看不到客户端的任何数据。
**种:客户端直接向服务器端插入历史数据。
这种方案与**种方案基本类似,需要在客户端建立一个数据源,并指向服务器端,客户端在保存历史数据时调用InsertHisDataEx()函数,该函数的声明如下:
InsertHisDataEx(string DataSource,string VarName,real Data,int StartTime,int MilliSec)。
其中,DataSource要填写相应服务器端的数据源名称,VarName要填写该数据源下的数据库变量名称。这样在客户端与服务器端通讯正常的状态下,保存动作执行时,客户端就会直接向服务器端插入历史数据。服务器端在报表中调用GetHisDataEx()函数就可以调取到本地相应的数据。这种方案的弊端则是增大了客户端的负荷,会导致客户端运行速度变慢。优点则是在服务器端和客户端都存有数据,相当于做了一次数据备份。
第三种:客户端触发服务器端自行保存历史数据。
这种方案制作过程相对于前两种要复杂一些,首先要在服务器端建立一个数据源指向客户端,并在服务器端建立相应的点关联到客户端的点上。其次,在服务器端数据库全局脚本中编写一段存储这些点PV值的历史数据的脚本,通过一个标志位触发存储动作。客户端在保存历史数据时要把相应点的PV值也做修改,这样服务器上做了相应关联的点的PV值也会跟着做改变。在通过客户端触发服务器端的保存标志位,服务器端就会自行的将这部分数据存储下来,在运行的状态下通过报表调用GetHisDataEx()把历史数据调取出来即可。还可以在数据源**选项中把数据故障恢复勾选上,如下图所示。即使因通讯中断,客户端无法触发服务器端的保存标志而导致两端数据不同步,在通讯恢复时,客户端也会自动的把这部分数据长传到服务器中,这样就更加**的保证了两端数据的同步性。
 第三种方案完全的解决了**种方案中增加了客户端负荷的弊端,也解决了**种方案中通讯中断时服务器端看不到之前历史数据的弊端,同时还具备了前两种方案中不具备的优势:故障数据恢复,因此在类似这种的案例中,推荐使用第三种方案。

上一篇:紫金桥组态软件与mysql数据库的连接简介
下一篇:基于紫金桥C-S架构的中国象棋游戏
            
若网站内容侵犯到您的权益,请通过网站上的联系方式及时联系我们修改或删除