指南-第十三章-外部通信.doc
PAGE328第二部分用户指南
第十三章外部通信PAGE329
PAGE308
第十三章外部通信
在很多情况下,为了解决异构环境下不同系统之间的通信,用户需要CAREER与其他第三方厂商提供的应用程序之间进行数据交换。CAREER支持目前主流的数据通信、数据交换标准,包括:DDE、OPC、ODBC等。
13.1DDE
CAREER的实时数据库是数据处理的核心平台,它支持DDE标准,可以和其他支持DDE标准的应用程序(如:EXCEL)进行数据交换。
一方面,CAREER数据库可以作为DDE服务器,其他DDE客户程序可以从CAREER数据库中访问数据。另一方面,CAREER数据库也可以作为DDE客户程序,从其他DDE服务程序中访问数据。
CAREER数据库作为DDE服务器
我们以EXCEL为例,说明第三方DDE客户程序如何将CAREER数据库作为DDE服务器进行数据交换。
1、在CAREER数据库中创建一个模拟I/O点TAG1。
2、启动CAREER数据库。
3、用EXCEL程序打开一个工作薄,在工作单的2个单元格内分别输入以下内容:
“=DB|DB!TAG1.PV”和“=DB|DB!TAG1.DESC”
其中“DB”是CAREER数据库作为DDE服务器时的服务(SERVICE)名称,同时“DB”(即“|DB!”部分中的“DB”)也是话题(TOPIC)名称。“TAG1.PV”和“TAG1.DESC”是数据库中的点参数名,也就是DDE项目(ITEM)名称。
在这里我们解释一下DDE的命名约定。
通常的DDE协议使用一个三段的命名约定来标识一个数据单元,这个三段所得名称包括应用程序名、主题名和项名。也可以叫做服务(Service)、话题(Topic)和连接项(Item)。
提示:有个很容易的方法来记住这三部分信息:把应用程序想成某个人居住的“城市”,主题当作“街道”,而项当作“门牌号”。假如您要访问一个朋友,当您知道了他住在哪个省后,只需知道城市、街道和门牌号就能找到这个朋友。您会发现这是一个很简单的办法来“定位到”一个单独的数据项。使用一个实际的DDE/EXCEL的例子,因为EXCEL可以同时维护多个电子表格,我们需要更多的“定位”工作。主题是那个有所需数据的电子表格,项是在这个电子表格中这个数据所在的那个单元。
CAREER数据库作为DDE客户程序
当CAREER数据库作为客户端访问DDE服务器程序时,是将DDE服务器程序当作一个I/O设备。数据库中的点参数通过I/O数据连接与DDE服务器程序进行数据交换。
我们以EXCEL为例,说明CAREER数据库如何将EXCEL作为DDE服务器进行数据交换。
首先在数据库中创建一个模拟I/O点FI101,FI101的PV参数为实型,FI101的DESC参数为字符型。FI101.PV和FI101.DESC通过DDE方式分别连接到EXCEL工作薄BOOK1.XLS的工作单的R1C1和R1C2单元,即EXCEL工作单第一行的左起第一个和第二个单元格(CELL)。
1、在Draw导航器中展开项目“I/O设备驱动”,然后依次展开设备类型“DDE”、厂商“Microsoft”,选择驱动程序“DDE”,双击驱动程序名称“DDE”或用鼠标右键单击后在右键菜单中选择“添加设备驱动”,如下图所示:
这时出现“DDE通信定义”对话框:
2、我们不妨将设备名称定义为“EXCEL”(设备名称是一个人为定义的名称,可以为任意名字)。在输入框“服务名”中输入EXCEL的服务程序名“EXCEL”(不要键入程序名的扩展名部分“.EXE”)。在输入框“话题”中输入被访问的主题名(主题名是特定应用程序数据元素的子组)。在数据来自DDE应用程序的情况下,主题名和DDE应用程序中主题配置名完全相同。当与EXCEL通信时,主题名必须是它保存时赋予电子表格的名称,在这里是“BOOK1.XLS”。
注意:当用DDE方式连接到一个EXCEL文件时,主题名指定为EXCEL文件的名称,但由于操作系统和EXCEL版本的不同,EXCEL文件名称是否指定扩展名(比如:是“BOOK1.XLS”还是“BOOK1”)可能会有所不同。一个简单的方法是:以EXCEL在打开文件时应用程序标题为准,如下图所示情况主题名称显然应为“BOOK1”:
最后的对话框形式如下:
3、单击确认按钮返回,在导航器驱动程序“DDE”下面增加了“EXCEL”一项。我们现在可以使用新定义的I/O设备“EXCEL”来创建数据连接了。
4、在Draw导航器中双击“数据库组态”以启动DBManager程序,然后在DBManager中双击FI101点,选择“数据连接”使其展开,选择“I/O设备”下面的“EXCEL”项,如下图所示:
5、在上述“数据连