新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DDE協議的Modbus Plus與Ethernet數據交換

        基于DDE協議的Modbus Plus與Ethernet數據交換

        作者: 時間:2012-08-14 來源:網絡 收藏
          不同的硬件平臺所使用的dde數據通信硬件設備也不同,本文介紹的數據通信方法是針對mb+網而言的。pc平臺上使用sa-85的pci卡來連接mb+網。使用前需要配置好sa-85的網絡連接。

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

          plus(以下簡稱mbplus)來連接mb+并提供dde的方式來訪問數據的接口。此工具運行后如圖2所示。


        圖2 mbplus連接

        圖3 topic配置

          要使用此工具,還需要對它進行一些配置。從configure菜單中選擇adapter card setting,設置需要連接的適配器,因為我們只安裝了一個mb+的適配器,所以使用默認配置。之后就可以開始配置dde服務了。我們需要給每一個需要訪問的mb+網上的設備按照dde協議定義一個topic。選擇configure菜單下的topic definition,進行topic的配置,如圖3。

          這里的topic name 就是之后訪問dde服務的topic需要使用的名稱,每個topic需要定義不同的名稱,本系統共連接5個mb+網上的plc,分別定義為plc1、plc2、plc3、plc4、plc5。slave path 處定義的是不同設備的節點地址。配置好以后就可以使用dde協議來訪問mb+網上的數據了。

          3.2 編程實現

          在完成了mb+的dde數據通信安裝與設置后,就要在用戶程序中進行編程,建立dde對話,控制數據通信流程。本文介紹vc2005的dde通信方式。事實上,vc2005并不直接與dde server進行dde對話,它是通過windows操作系統提供的ddeml(dde通信管理庫)來管理dde通信具體工作的。該管理庫的使用方法如下:

          (1) ddeml的初始化工作

          加載頭文件,.#include “ddeml.h” //在工程中引用ddeml庫然后按照dde server提供的3級訪問方式建立vc與ddeserver的對話。此時service為mbplus,topic為plc4。通過選擇不同的item及相應dde函數可以完成接收過程數據、發送控制命令、獲取系統狀態等工作。

          使用ddeml后,實際上客戶和服務器之間的多數會話并不是直達對方的,而是經由ddeml中轉,即用回調函數處理dde交易(transaction)。在調用其他ddeml函數前,必須調用ddeinitialize()函數,以獲取實例標識符,注冊dde 回調函數。通過回調函數來處理dde的事務。

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 中牟县| 河北省| 中方县| 曲靖市| 孟州市| 伽师县| 营口市| 和平县| 资中县| 临沧市| 西畴县| 腾冲县| 夹江县| 冷水江市| 普兰县| 崇州市| 青岛市| 河间市| 晋中市| 白河县| 嘉黎县| 德化县| 永春县| 青龙| 罗江县| 福建省| 革吉县| 绥滨县| 绥江县| 桓仁| 贵溪市| 大姚县| 扎兰屯市| 兴业县| 林西县| 弋阳县| 湘阴县| 邵阳市| 平昌县| 石泉县| 离岛区|