新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DDE協(xié)議的Modbus Plus與Ethernet數(shù)據(jù)交換

基于DDE協(xié)議的Modbus Plus與Ethernet數(shù)據(jù)交換

作者: 時(shí)間:2012-08-14 來(lái)源:網(wǎng)絡(luò) 收藏
  不同的硬件平臺(tái)所使用的dde數(shù)據(jù)通信硬件設(shè)備也不同,本文介紹的數(shù)據(jù)通信方法是針對(duì)mb+網(wǎng)而言的。pc平臺(tái)上使用sa-85的pci卡來(lái)連接mb+網(wǎng)。使用前需要配置好sa-85的網(wǎng)絡(luò)連接。

  軟件上,使用wonderware公司提供的io server組件中的modicon modbus

  plus(以下簡(jiǎn)稱(chēng)mbplus)來(lái)連接mb+并提供dde的方式來(lái)訪問(wèn)數(shù)據(jù)的接口。此工具運(yùn)行后如圖2所示。


圖2 mbplus連接

圖3 topic配置

  要使用此工具,還需要對(duì)它進(jìn)行一些配置。從configure菜單中選擇adapter card setting,設(shè)置需要連接的適配器,因?yàn)槲覀冎话惭b了一個(gè)mb+的適配器,所以使用默認(rèn)配置。之后就可以開(kāi)始配置dde服務(wù)了。我們需要給每一個(gè)需要訪問(wèn)的mb+網(wǎng)上的設(shè)備按照dde協(xié)議定義一個(gè)topic。選擇configure菜單下的topic definition,進(jìn)行topic的配置,如圖3。

  這里的topic name 就是之后訪問(wèn)dde服務(wù)的topic需要使用的名稱(chēng),每個(gè)topic需要定義不同的名稱(chēng),本系統(tǒng)共連接5個(gè)mb+網(wǎng)上的plc,分別定義為plc1、plc2、plc3、plc4、plc5。slave path 處定義的是不同設(shè)備的節(jié)點(diǎn)地址。配置好以后就可以使用dde協(xié)議來(lái)訪問(wèn)mb+網(wǎng)上的數(shù)據(jù)了。

  3.2 編程實(shí)現(xiàn)

  在完成了mb+的dde數(shù)據(jù)通信安裝與設(shè)置后,就要在用戶(hù)程序中進(jìn)行編程,建立dde對(duì)話(huà),控制數(shù)據(jù)通信流程。本文介紹vc2005的dde通信方式。事實(shí)上,vc2005并不直接與dde server進(jìn)行dde對(duì)話(huà),它是通過(guò)windows操作系統(tǒng)提供的ddeml(dde通信管理庫(kù))來(lái)管理dde通信具體工作的。該管理庫(kù)的使用方法如下:

  (1) ddeml的初始化工作

  加載頭文件,.#include “ddeml.h” //在工程中引用ddeml庫(kù)然后按照dde server提供的3級(jí)訪問(wèn)方式建立vc與ddeserver的對(duì)話(huà)。此時(shí)service為mbplus,topic為plc4。通過(guò)選擇不同的item及相應(yīng)dde函數(shù)可以完成接收過(guò)程數(shù)據(jù)、發(fā)送控制命令、獲取系統(tǒng)狀態(tài)等工作。

  使用ddeml后,實(shí)際上客戶(hù)和服務(wù)器之間的多數(shù)會(huì)話(huà)并不是直達(dá)對(duì)方的,而是經(jīng)由ddeml中轉(zhuǎn),即用回調(diào)函數(shù)處理dde交易(transaction)。在調(diào)用其他ddeml函數(shù)前,必須調(diào)用ddeinitialize()函數(shù),以獲取實(shí)例標(biāo)識(shí)符,注冊(cè)dde 回調(diào)函數(shù)。通過(guò)回調(diào)函數(shù)來(lái)處理dde的事務(wù)。

  本例中使用如下方法來(lái)初始化dde連接,dword idinst = 0; //定義dde實(shí)例標(biāo)識(shí)的變量ddeinitialize(idinst,(pfncallback)ddecallback,appclass_standard | appcmd_clientonly,0);這里將ddecallback函數(shù)指定為dde的回調(diào)函數(shù)。實(shí)例初始化后得到實(shí)例的標(biāo)識(shí)idinst,之后的操作都要使用這個(gè)標(biāo)識(shí)。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉