ob体育竞彩 _欧宝体育在线链接 學習網站
當前位置: ob体育竞彩 > 通信技術> 正文

ModBus協議軟件支持的功能碼及使用方法

時間:2017-05-30 17:33 來源:ob体育竞彩

ModBus協議軟件支持的功能碼

功能碼

描述

1

讀單個線圈

2

讀離散量輸入

3

讀多個寄存器

4

讀輸入寄存器

5

寫單個線圈

6

寫單個寄存器

15

寫多個線圈

16

寫多個寄存器

22

屏蔽寫寄存器

23

讀/寫寄存器

軟件基本使用方法
為了方便應用程序的使用,對不同的通訊介質保持一致的代碼形式,英創所提供的ModBus協議軟件(包括modbus_Master和modbus_Slave)中的API函數可以同時支持基於串口和TCP的Modbus協議,應用程序隻需要在調用初始化函數時,用不同參數區分即可,有關參數的說明請參見相應的頭文件:modbus_Master.h和modbus_Slave.h

1、modbus_Master的應用
作為Modbus客戶端模式的應用,主要是準備請求並向服務器設備發送請求,並等待服務器的響應。在做此類應用開發時,用戶可參考Modbus標準文獻以及被控設備的通訊接口數據手冊,直接調用英創提供的modbus_Master軟件包提供了相應的操作API函數,來完成對服務器設備的訪問和控製。在進行此類應用開發時,用戶隻需要包含modbus_master.h/ modbus_master.lib 即可。

2、modbus_Slave的應用
作為ModBus服務器模式的應用,主要需要實現了對於ModBus應用報文的分析與響應,但這還隻是ModBus整個通訊的一部分,另一部分是還需要有對應用數據的訪問,這部分的內容則需要用戶自己來進行定義。為了方便客戶的使用,在modbus_Slave軟件包中通過函數指針的形式,實現了這些用戶接口函數的自動加載,將用戶應用數據處理和ModBus應用報文響應關聯起來。用戶隻需根據需求定義這些接口函數來實現相應的功能,各個函數具體的定義是通過專門的一個CPP文件:DataProvider.cpp來實現。

由此可見在這類的開發應用時,需包含兩個部分的內容,一部分是 modbus_slave.h/ modbus_slave.lib定義的API函數;另一部分是DataProvider.h /DataProvider.cpp定義的用戶數據接口函數,其中接口函數需要用戶在DataProvider.cpp中具體實現。

為了及時地響應ModBus應用報文,需要注意的是在程序設計時應設計一個線程反複調用modbus_Slave執行函數,該函數為阻塞模式。

舉例如下:

(1)啟動modbus設備方協議
hPort = mbusSlave_StartupServer( _T('*'), 1, 10000, mbusSlave_Interface );
或者
hPort=mbusSlave_StartupServer( _T('COM3:9600-8-1-0'),1,10000, mbusSlave_Interface );

(2)線程中調用執行函數Serverloop 響應請求
while( 1 )
{
// 調用執行函數,用於對ModBus報文的分析和響應。
result = mbusSlave_ServerLoop( hPort );
if( result!=0 ) // 檢查是否返回錯誤
{
// 出錯處理:本例為獲取並打印錯誤代碼的文本信息
wcscpy( szText, mbusSlave_GetErrorText( result ) );
i1 = wcslen( szText );
if( i1>0 )
{
wcstombs( strText, szText, i1 );
printf( ' error code: %s!\n', strText );
}
}
}

    看過《ModBus協議軟件支持的功能碼及使用方法》的人還看了以下文章
    通信傳輸的數據中途失真接收方如何發現 通信傳輸的數據中途失真接收方如何發現
    通信傳輸的數據中途失真,接收方都是通過編碼校驗的方式發現錯誤的。常用的校驗方式有如下: 1)奇偶校驗:這是最簡單的校驗方式,根據被傳輸數據的二進製編碼中,數位為1的個數是奇數還是偶數來進行校驗,然後把1的個數是奇數或者偶數也做為1bit的編碼,附...
    工業交換機與商用交換機有什麼樣的區別 工業交換機與商用交換機有什麼樣的區別
    工業交換機兼容性強,(各種PLC、交換機等工業類產品),可以適應惡劣的環境。具體體現在哪些方麵? 工業交換機分為網管和非網管的,根據不同數量有各種不同的輸出接口(4、5、8、16、24口等),不同的功能和接口的價格不一樣。一般工業交換機可以提供3種工...
    RS485的通信方式及應用 RS485的通信方式及應用
    我們在工業控製、儀器儀表以及電力通信等領域中是需要進行較遠距離數據交換的。我們知道在以前使用的RS232串口通信由於采用的是點對點通訊方式,最大的傳輸距離也隻有十幾米遠,並且在傳輸數據時RS232傳輸方式會受電磁的幹擾造成信號傳輸的錯誤。為了彌補RS2...
    路由器交換機兩種網絡設備的區別是什麼 路由器交換機兩種網絡設備的區別是什麼
    首先看外觀 路由器不管是低端、中端、高端,也不管是家用還是商用,最少有1個WAN口,1~8個LAN口。中高端的可能還有Console口,用於配置設備。 交換機沒有WAN口,隻有LAN口,LAN口數量從5~48口不等,看具體的需求。中高端的還有Console口,用於配置設備。 其...
    交換機和路由器有哪些配置方法 交換機和路由器有哪些配置方法
    如果是非網管的交換機,根本就不需要配置,也配置不了,直接上電,即插即用。如果是可網管的交換機,分兩種情況: 1、Web界麵。找到交換機的管理地址和默認的登錄用戶名、密碼(一般在設備的背麵標簽上有,如果沒有,請翻閱設備附帶的說明書),通過電腦的瀏...
    Baidu
    map