最新技术文档
当前位置:首 页>> 技术支持>> 技术文档 [阅读]

数据转储——NetDDE连接配置

原理

DDE是一种动态数据交换机制(Dynamic Data Exchange,DDE。动态数据交换是微软公司提出的一种数据通讯形式,它使用共享的内存在应用程序之间进行数据交换。DDE不同于剪切板方法,它能够及时更新数据,在两个应用程序之间自动更新信息,无须用户参与。

使用DDE通讯需要连个Windows应用程序,其中一个作为服务器处理信息,另外一个作为客户机从服务器获得信息。客户机应用程序向当前所激活的服务器应用程序发送一条消息请求信息,服务器应用程序根据该信息作出应答,从而实现两个程序之间的数据交换。

通信要素

两个程序间建立DDE通讯称作DDE会话,一个会话由服务名与话题来标识。DDE会话中包括很多数据项,每个数据项对应一个DDE项目名。如果通过网络与远程机器的DDE通信,还要提供远程节点的名称。机器名、服务名、话题和项目名构成DDE 通信的四要素。

机器名:远程机器名称,若为本机可以忽略。

应用名: DDE 服务器的名字,软件程序通常使用自己的名字作为应用名。紫金桥?支持 的应用名为DB。

话题名:DDE 服务器上数据组的名字。可能是数据的文件名或工作表名。紫金桥?支持 的话题名也为DB。

项目名:单个数据项。紫金桥?数据库中的点名加参数名为数据项名称。如:TI101.PV。

您可以通过一个形象的比喻来理解这四要素:把机器名想成某个人居住的“国家”,把应用程序想成“城市”,话题名当作“街道”,项目名当作“门牌号”。假如您要访问一个朋友,当您知道了他住在哪个国家后,哪个城市、街道和门牌号就能找到这个朋友了。

紫金桥?监控组态软件提供了DDE 客户和DDE 服务器支持。DDE 服务器可以使紫金桥?软件的过程信息传送到其它应用程序进行分析,例如微软的Excel软件。DDE 客户支持可以使来自其它应用程序的信息传送到紫金桥?的数据库中。

Net DDE配置

要想使DDE客户端程序通过网络访问远程DDE服务器,客户端计算机及服务器端计算机必须支持Net DDE(Windows NT/2000/XP/2003缺省支持,Windows 95/98不支持)。下面介绍一下NetDDE的服务器和客户端的相关配置操作。

服务器端配置

DDE服务器端需要以下四部分设置:

1.         建立用户以供客户端使用。

2.         启用Network DDE和Network DDE DSDM

3.         配置DDE共享

4.         端口设置

下面详细介绍一下各步骤的具体设置。

1. 建立用户

客户端通过Network DDE访问服务器时,需要以当前用户的身份登陆到服务器(系统自动完成登陆过程),所以在服务器端需要提供客户登陆访问时使用的用户。

打开“控制面板”,选择“管理工具”中的“计算机管理”,在导航树中选择“系统工具”下的“本地用户和组”,展开后在其中的“用户”上点击鼠标右键选择“新建用户”,如下图:

建立新的用户,注意口令不能为空。

2. 启用Network DDENetwork DDE DSDM

利用DDE远程访问数据需要用到Windows自带的Network DDE和Network DDE DSDM。在服务器中需要将Network DDE和Network DDE DSDM设置为自动启动。具体设置如下:

打开“控制面板”—“管理工具”下的“服务”一项,或者直接在运行中输入“services.msc /s”打开“服务”设置。找到Network DDE DSDM,双击打开属性对话框,在“常规”选项中将启动类型改为“自动”,并启动该服务,如下图,Network DDE也要进行同样的修改。

3. 配置DDE共享

只有在服务器中需要建立DDE共享,客户端才能够通过DDE远程访问到服务器中的数据。在运行中输入“DDEshare”打开“DDE共享”设置对话框。如下图:

配置DDE共享需要三步:选择计算机,DDE共享,设置信任共享。

(1)      选择计算机

选择服务器的名称,设置共享的计算机。打开“共享”菜单下的“选择计算机”,弹出“选择计算机”对话框,如下图:

服务器端所要选择的计算机为本机,选择本机名称即可。

(2)      DDE共享

打开“共享”菜单下的“DDE共享”,弹出“DDE共享”对话框,如下图:

点击“添加共享”,弹出“DDE共享属性”对话框。如下图:

以采集紫金桥监控组态软件的数据为例,共享名自行设置,应用程序和话题名均为DB。

以上操作完成之后,点击右下方的“权限”按钮,打开“DDE共享名的权限”对话框。如下图:

这里有两种选择,1.直接选择everyone,访问类型为完全控制。2.点击“添加”,添加新建立的用户,访问类型同样为完全控制,如下图

选择“显示用户”,找到新建的ddeuser,点击添加完成添加过程。如果出现“文件名过长”的错误提示,可以在通过以下步骤修改计算机名称

(1)选择桌面“我的电脑”图标,点右键,选择“属性”,如下图

(2)选择计算机名,点击“更改”,如下图

  • 填入新的计算机名称,注意名称不宜过长,如下图

  • 重启系统后再进入DDE共享设置,重新添加用户即可。

注意:两种方式的访问类型可以根据实际情况设置,一般为完全控制。

点击“确定”完成“DDE共享属性”设置。

(3)      设置信任共享

在“DDE共享”对话框中选中新添加的DDE共享,点击“信任共享”按钮,将其添加到受信任的共享中。如下图:

在弹出的“受信任的共享属性”对话框中,进行如下设置,如图:

注意:必须选中允许启动应用程序、允许初始化应用程序和替代Cmd显示项,并且替代Cmd显示,使用“0”值。

可以通过“共享”菜单下的“受信任的共享”,看到当前受信任的共享。

4. 端口设置

客户端通过DDE远程访问服务器时,服务器中的端口要进行相应的设置。

(1)      网卡端口

为了使客户端能通过DDE远程访问到服务器,服务器中的网卡端口需要全部打开。不允许有封闭的端口。

打开本地连接的属性对话框,如下图:

选择Internet协议(TCP/IP),点击属性,打开“Internet协议(TCP/IP) 属性”对话框,如下图:

点击“高级”按钮,打开“高级TCP/IP设置”对话框,如下图:

选择“选项”,点击“属性”按钮,打开“TCP/IP 筛选”对话框,如下图:

选择“全部允许”,点击确定,即可打开所有端口,注意:完成设置要重启计算机。

(2)      防火墙端口

这里仅介绍Windows防火墙端口的设置,其它防火墙请参考使用说明作相应的设置。

在Windows 2003 SP1/XP SP2系统中自带一个安全防火墙,如果它处于启动状态,要对其做相应配置。

1. 打开Windows防火墙配置对话框

进入“控制面板”,选择“安全中心”,打开“Windows 安全中心”配置窗口。

在窗口的右下角选择“Windows 防火墙”,则可打开Windows防火墙配置对话框。Windows防火墙配置对话框包括“常规”、“例外”和“高级”三个选项卡,在这里只对例外选项卡进行操作。点击“例外”标签则可切换到例外属性,如下图:

2. 启用远程过程调用端口(RPC)

DCOM是基本远程过程调用(RCP)服务实现的,因此要通过DCOM实现远程通讯必需启动RCP服务,并将它使用的端口添加到Windows防火墙的例外中。在例外选项卡中点击“添加端口”按钮,打开“添加端口”对话框:

将名称命名为“RCP”,在端口号中输入135,协议类型为TCP,单“确定”完成设置。

  注意:1.必须保证Network DDE和Network DDE DSDM设置为自动。

2.防火墙中的135端口必须打开,并且网卡端口不允许封闭。

客户端配置

客户端需要以下四部分设置:

1.         建立用户

2.         启用Network DDE和Network DDE DSDM

3.         配置DDE共享

4.         端口设置

1. 建立用户

客户端需要建立和服务器中新建的相同的用户,包括用户名和口令,只有这样才能登陆到服务器中,实现远程访问。具体步骤请参考服务器端新建用户的步骤。

客户端在利用DDE远程访问时,必须要用这个新建的用户登录客户端,然后才能进行相关的操作。

2. 启用Network DDENetwork DDE DSDM

客户端需要将Network DDE和Network DDE DSDM服务设置为手动,这样在用DDE远程访问时系统就能够自动将其启动。具体步骤请参考服务器端的具体设置。

3. 配置DDE共享

在运行中输入“DDEshare”打开“DDE共享”设置对话框。客户端只需在选择计算机中选中服务器的名称即可。即打开“共享”菜单下的“选择计算机”,在弹出“选择计算机”对话框中填入服务器的名称。

4. 端口设置

客户端同样需要打开防火墙的端口,具体步骤请参考服务器端的端口设置。

注意:1. 必须要用新建的用户登陆客户端才能进行相关的操作。

      2. 必须保证Network DDE和Network DDE DSDM设置为自动。

3. 客户机与服务器的IP地址要处于同一网段。

紫金桥作为DDE 服务器

紫金桥?监控组态软件可以作为DDE服务器,第三方程序可以通过DDE方式访问数据库中的实时数据。

示例:

客户端使用Excel,保证用新建的用户登录,在本地客户端的Excel中就可以通过公式对其进行访问了。如

“=\\[ComputerName]\NDDE$|[DDEShareName]![TagID]”

[ComputerName]为实际的机器名,[DDEShareName]为在远程计算机上建立DDE 共享名[TagID]包括数据库中点名和参数名,如:A1.PV。

紫金桥作为DDE 客户

紫金桥?数据库将DDE 服务器程序当作一个I/O设备,通过DDE 设备驱动程序与DDE 服务器通信。例如要与EXCEL 通信,需要建一I/O设备,该设备定义时,指定了与EXCEL的哪个文件进行通信,而具体与哪个单元格,则需要通过I/O连接来指明。步骤如下:

[1] 添加 Excel I/O设备

在开发界面的导航器“数据库”选项卡中的“I/O设备驱动”,然后依次展开目录“DDE协议”、厂商“Microsoft”,选择驱动程序“DDE”,双击驱动程序名称“DDE”,或用鼠标右击后在右键菜单中选择“添加设备驱动”。将出现设备定义框。如下图:

在设备定义框中填写设备名如DDE1。

此处的服务名和话题名需要根据DDE服务器来定访问远程时,首先需要完成与DDE远程访问相关的设置,此时服务器名为:\\[ComputerName]\NDDE$,话题名为设置好的DDE共享名。

此处采集类型中的变化通知项是指驱动并不直接采集数据,只有当数据发生了变化时,才进行采集数据。周期采集是,简单的周而复始的采集。推荐使用周期采集,只有服务器中的数据变化比较缓慢才建议使用变化通知项。否则由于变化通知选项需要发送变化消息,在数据频繁变化时,采集速度反而降低。

点击“高级”按钮会出现如下图所示的对话框:

其中,采集到的字符串中去除逗号主要是针对有些DDE服务器的某些特性设置的,比如1234某些DDE服务器会传递1,234此时应该把逗号去除方能采集到正确的数据。特定字符串转换数值主要是为了把采集到的特定字符串转换为特定值时使用。比如,把ON或Open转换为1,把OFF或Close转换为0,注意此处的字符串是不区分大小写的。

可以通过添加、修改、删除按钮来编辑字符串转换的设置。

[2] 建立连接项

进入数据库组态,选择一位号,建立数据连接,选择设备DDE1,输入连接项如A1.pv(所要采集服务器端数据的点名),依次建立其他连接项。

建立联结的对话框如下图所示:

其中的子串索引主要是针对某些设备而定的,比如有些设备一个联结项就可以返回多个数据,中间用Tab分割,比如“Open    Close    123”,如果此时组态三个点联结,它们的子串索引分别是0、1、2那么采集数据之后它们的值分别是Open、Close、123对应的数据。

建好所有连接项后,运行紫金桥?监控组态软件,可以观察到数据库中相应数据与服务器端的相应的数据是一致的。