ModBus協議軟件支持的功能碼及使用方法
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 );
}
}
}
通信傳輸的數據中途失真接收方如何發現 | |
通信傳輸的數據中途失真,接收方都是通過編碼校驗的方式發現錯誤的。常用的校驗方式有如下: 1)奇偶校驗:這是最簡單的校驗方式,根據被傳輸數據的二進製編碼中,數位為1的個數是奇數還是偶數來進行校驗,然後把1的個數是奇數或者偶數也做為1bit的編碼,附... |
工業交換機與商用交換機有什麼樣的區別 | |
工業交換機兼容性強,(各種PLC、交換機等工業類產品),可以適應惡劣的環境。具體體現在哪些方麵? 工業交換機分為網管和非網管的,根據不同數量有各種不同的輸出接口(4、5、8、16、24口等),不同的功能和接口的價格不一樣。一般工業交換機可以提供3種工... |
RS485的通信方式及應用 | |
我們在工業控製、儀器儀表以及電力通信等領域中是需要進行較遠距離數據交換的。我們知道在以前使用的RS232串口通信由於采用的是點對點通訊方式,最大的傳輸距離也隻有十幾米遠,並且在傳輸數據時RS232傳輸方式會受電磁的幹擾造成信號傳輸的錯誤。為了彌補RS2... |
路由器交換機兩種網絡設備的區別是什麼 | |
首先看外觀 路由器不管是低端、中端、高端,也不管是家用還是商用,最少有1個WAN口,1~8個LAN口。中高端的可能還有Console口,用於配置設備。 交換機沒有WAN口,隻有LAN口,LAN口數量從5~48口不等,看具體的需求。中高端的還有Console口,用於配置設備。 其... |
交換機和路由器有哪些配置方法 | |
如果是非網管的交換機,根本就不需要配置,也配置不了,直接上電,即插即用。如果是可網管的交換機,分兩種情況: 1、Web界麵。找到交換機的管理地址和默認的登錄用戶名、密碼(一般在設備的背麵標簽上有,如果沒有,請翻閱設備附帶的說明書),通過電腦的瀏... |
- 模擬信號和數字信號的優缺點
- h3c dldp工作過程與配置命令
- 光纖耦合器和隔離器在通信裏的作用
- Cisco QoS常見問題解答
- 光波分複用技術特點
- gpon二層數據轉發模式
- 移動4g頻段是多少?移動4g頻段全國分配表
- gps如何實現定位功能?GPS實現定位過程詳
- 串口通信為什麼要設置波特率?串口通信波
- 企業千兆路由器配置圖解
- 光纖收發器英文字母含義詳解
- 光纖收發器故障分析及處理辦法圖解
- 光纜型號命名方法_光纜色譜排列圖
- 串行通信調幅和調頻方式
- tdscdma可以作為wcdma的鄰區麼
- 二層交換機和三層交換機的區分
- 200m寬帶測速隻有100m是什麼原因
- 如何製作網線水晶頭_網線水晶頭的製作過
- Mbps、Mb/s、MB/s有什麼不一樣?區別是什
- 如何使用交換機和路由器組建家庭網絡