您好,欢迎来到仪表展览网!
请登录
免费注册
分享
微信
新浪微博
人人网
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架构的中国象棋游戏
若网站内容侵犯到您的权益,请通过网站上的联系方式及时联系我们修改或删除