0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)ModBus通訊協(xié)議軟件包簡介

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-14 09:38 ? 次閱讀

ModBus通訊協(xié)議簡介

Modbus協(xié)議是一種已廣泛應(yīng)用于當今工業(yè)控制領(lǐng)域的通用通訊協(xié)議。通過此協(xié)議,控制器相互之間、或控制器經(jīng)由網(wǎng)絡(luò)(如以太網(wǎng))可以和其它設(shè)備之間進行通信。Modbus協(xié)議使用的是主從通訊技術(shù),即由主設(shè)備主動查詢和操作從設(shè)備。一般將主控設(shè)備方所使用的協(xié)議稱為Modbus Master,從設(shè)備方使用的協(xié)議稱為Modbus Slave。典型的主設(shè)備包括工控機和工業(yè)控制器等;典型的從設(shè)備如PLC編程控制器等。Modbus通訊物理接口可以選用串口(包括RS232RS485),也可以選擇以太網(wǎng)口。其通信遵循以下的過程:

●主設(shè)備向從設(shè)備發(fā)送請求

●從設(shè)備分析并處理主設(shè)備的請求,然后向主設(shè)備發(fā)送結(jié)果

●如果出現(xiàn)任何差錯,從設(shè)備將返回一個異常功能碼

英創(chuàng)ModBus通訊協(xié)議軟件產(chǎn)品簡介

英創(chuàng)公司推出的ModBus通訊協(xié)議軟件產(chǎn)品主要應(yīng)用于英創(chuàng)ARM9嵌入式主板環(huán)境,英創(chuàng)工控主板均帶有豐富的串口、網(wǎng)絡(luò)資源、通用GPIO接口等,同時具有強大的處理能力。結(jié)合ModBus通訊協(xié)議軟件,就可非常方便地構(gòu)成符合ModBus通訊規(guī)范的主控(Master)及設(shè)備(Slave)的應(yīng)用平臺。針對ModBus通訊的主從方式這一特點,英創(chuàng)公司的ModBus通訊協(xié)議軟件包分為兩個可獨立使用的部分,即“ModBus主控協(xié)議軟件”(簡稱modbus_Master)以及“ModBus設(shè)備方協(xié)議軟件”(簡稱modbus_Slave)。目前英創(chuàng)ModBus通訊協(xié)議軟件運行于WinCE環(huán)境下,均以C函數(shù)加靜態(tài)LIB庫的形式提供給客戶。其主要特征如下:

●非常適用于實時的工業(yè)應(yīng)用

●可以支持基于串口的ModBus通訊協(xié)議應(yīng)用或TCP的ModBus通訊協(xié)議應(yīng)用

●RTU傳輸模式

●支持大多數(shù)的Modbus功能碼操作,包括對線圈、離散開關(guān)輸入的位操作,以及對寄存器的字節(jié)操作

●支持廣播地址

●可以靈活設(shè)置ModBus通訊的超時時間

●可以獲取通訊中傳輸協(xié)議的錯誤代碼的詳細信息

英創(chuàng)ModBus協(xié)議軟件通訊關(guān)系圖

英創(chuàng)ModBus協(xié)議軟件支持的功能碼

功能碼 描述
1 讀單個線圈
2 讀離散量輸入
3 讀多個寄存器
4 讀輸入寄存器
5 寫單個線圈
6 寫單個寄存器
15 寫多個線圈
16 寫多個寄存器
22 屏蔽寫寄存器
23 讀/寫寄存器

軟件基本使用方法

為了方便應(yīng)用程序的使用,對不同的通訊介質(zhì)保持一致的代碼形式,英創(chuàng)所提供的ModBus協(xié)議軟件(包括modbus_Master和modbus_Slave)中的API函數(shù)可以同時支持基于串口和TCP的Modbus協(xié)議,應(yīng)用程序只需要在調(diào)用初始化函數(shù)時,用不同參數(shù)區(qū)分即可,有關(guān)參數(shù)的說明請參見相應(yīng)的頭文件:modbus_Master.h和modbus_Slave.h

1、modbus_Master的應(yīng)用

作為Modbus客戶端模式的應(yīng)用,主要是準備請求并向服務(wù)器設(shè)備發(fā)送請求,并等待服務(wù)器的響應(yīng)。在做此類應(yīng)用開發(fā)時,用戶可參考Modbus標準文獻以及被控設(shè)備的通訊接口數(shù)據(jù)手冊,直接調(diào)用英創(chuàng)提供的modbus_Master軟件包提供了相應(yīng)的操作API函數(shù),來完成對服務(wù)器設(shè)備的訪問和控制。在進行此類應(yīng)用開發(fā)時,用戶只需要包含modbus_master.h/ modbus_master.lib 即可。

2、modbus_Slave的應(yīng)用

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

由此可見在這類的開發(fā)應(yīng)用時,需包含兩個部分的內(nèi)容,一部分是 modbus_slave.h/ modbus_slave.lib定義的API函數(shù);另一部分是DataProvider.h /DataProvider.cpp定義的用戶數(shù)據(jù)接口函數(shù),其中接口函數(shù)需要用戶在DataProvider.cpp中具體實現(xiàn)。

為了及時地響應(yīng)ModBus應(yīng)用報文,需要注意的是在程序設(shè)計時應(yīng)設(shè)計一個線程反復調(diào)用modbus_Slave執(zhí)行函數(shù),該函數(shù)為阻塞模式。

舉例如下:

(1)啟動modbus設(shè)備方協(xié)議

hPort = mbusSlave_StartupServer( _T('*'), 1, 10000, mbusSlave_Interface );

或者

hPort=mbusSlave_StartupServer( _T('COM3:9600-8-1-0'),1,10000, mbusSlave_Interface );

(2)線程中調(diào)用執(zhí)行函數(shù)Serverloop 響應(yīng)請求

while( 1 )

{

// 調(diào)用執(zhí)行函數(shù),用于對ModBus報文的分析和響應(yīng)。

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 );

}

}

}

之前英創(chuàng)公司提供的ModBus通訊協(xié)議軟件,均是以C函數(shù)加靜態(tài)庫(modbus.lib或libmodbus.a文件)的形式提供給客戶。隨著越來越多的客戶使用,英創(chuàng)將ModBus通訊協(xié)議,特別是主控協(xié)議軟件(簡稱modbus_Master)以動態(tài)庫(modbus_Master.dll或libmbusmaster.so文件)的形式預裝到英創(chuàng)嵌入式工控主板內(nèi)核系統(tǒng)中,以方便客戶應(yīng)用程序的調(diào)用。預裝Modbus協(xié)議的工控主板包括英創(chuàng)ESM系列所有主板(ESM6802、ESM6800、ESM335x、ESM928x等)。

相關(guān)參考資料

4~20mA電流環(huán)采集應(yīng)用方案 WinCE下的Modbus主控通訊協(xié)議軟件
WinCE下的Modbus設(shè)備方協(xié)議軟件 英創(chuàng)嵌入式Linux工控主板支持Modbus主控協(xié)議軟件
Linux下的Modbus設(shè)備方協(xié)議軟件介紹 ESM6802支持Qt MODBUS程序開發(fā)
在英創(chuàng)主板中預裝Modbus通訊協(xié)議

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207894
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6081

    瀏覽量

    34936
收藏 人收藏

    評論

    相關(guān)推薦

    ModBus Scan32模擬軟件的使用方法

    Modbus采用主從式通信,日常使用較多的是Modbus RTU和Modbus TCP/IP兩種協(xié)議。我司儀表較多為Modbus RTU
    發(fā)表于 07-24 08:04

    Modbus協(xié)議轉(zhuǎn)Profibus協(xié)議網(wǎng)關(guān)接溫控表與PLC通訊

    Modbus協(xié)議轉(zhuǎn)Profibus協(xié)議網(wǎng)關(guān)(XD-MDPB100)則是實現(xiàn)這一通訊的重要工具。Modbus轉(zhuǎn)Profibus網(wǎng)關(guān)的主要功能是實現(xiàn)Mo
    的頭像 發(fā)表于 06-21 11:31 ?1716次閱讀
    <b class='flag-5'>Modbus協(xié)議</b>轉(zhuǎn)Profibus<b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)接溫控表與PLC<b class='flag-5'>通訊</b>

    Modbus-RTU通訊協(xié)議是什么?

    Modbus-RTU通訊協(xié)議是一種串行通訊協(xié)議,它可以用于連接不同類型的設(shè)備,以實現(xiàn)遠程監(jiān)控和控制。Mo
    的頭像 發(fā)表于 05-23 15:06 ?438次閱讀

    軟通動力與捷創(chuàng)技術(shù)簽訂戰(zhàn)略合作協(xié)議

    近日,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱“軟通動力”)與寧波捷創(chuàng)技術(shù)股份有限公司(以下簡稱“捷創(chuàng)技術(shù)”)正式簽訂戰(zhàn)略合作
    的頭像 發(fā)表于 02-03 16:35 ?1001次閱讀

    MODBUS通訊協(xié)議有哪幾種?

    MODBUS通訊協(xié)議是工業(yè)自動化領(lǐng)域中廣泛使用的一種串行通信協(xié)議。它由美國Modicon公司于1979年開發(fā),現(xiàn)在已經(jīng)成為工業(yè)電子設(shè)備之間通信的標準。
    的頭像 發(fā)表于 12-13 10:53 ?3694次閱讀

    Modbus轉(zhuǎn)Profinet網(wǎng)關(guān)連接EthernetIP協(xié)議的PLC和Modbus協(xié)議的儀表

    的Ethernet網(wǎng)絡(luò)進行通訊。使用設(shè)備為PLC、Modbus 轉(zhuǎn)EtherNET/IP網(wǎng)關(guān)、Modbus從站為氣體探測儀。 項目中通訊配置方法:打開PLC的配置
    發(fā)表于 12-07 14:27

    解讀Modbus通訊協(xié)議

    作為工控人,Modbus 通訊協(xié)議想必都不陌生,Modbus 通訊協(xié)議可以說是工業(yè)自動化領(lǐng)域應(yīng)用
    的頭像 發(fā)表于 11-09 16:39 ?1281次閱讀

    怎么可以用modbus_rtu協(xié)議通訊?

    怎么可以用modbus_rtu協(xié)議通訊
    發(fā)表于 11-02 07:04

    開鴻智谷受邀參加2023軟件信息技術(shù)服務(wù)業(yè)創(chuàng)新發(fā)展論壇

    10月18日,以“智薈雄安創(chuàng)想未來”為主題的雄安新區(qū)2023軟件信息技術(shù)服務(wù)業(yè)創(chuàng)新發(fā)展論壇在雄安新區(qū)國際酒店會議中心召開。本次論壇以推動軟件信息
    的頭像 發(fā)表于 10-20 08:30 ?686次閱讀
    開鴻智谷受邀參加2023<b class='flag-5'>軟件</b>和<b class='flag-5'>信息技術(shù)</b>服務(wù)業(yè)創(chuàng)新發(fā)展論壇

    Modbus通訊協(xié)議是什么?

    不少人在采購工業(yè)路由器的過程中都會看到modbus協(xié)議,那么modbus協(xié)議到底是什么呢?今天就跟大家分享一下。Modbus協(xié)議作為當今工業(yè)控制領(lǐng)域的通用通訊
    的頭像 發(fā)表于 10-17 14:40 ?1115次閱讀
    <b class='flag-5'>Modbus</b><b class='flag-5'>通訊</b><b class='flag-5'>協(xié)議</b>是什么?

    RT-Thread中mymqtt軟件包的使用方法

    在上一篇文章 RT-Thread中Lan8720和lwip協(xié)議棧的使用的工程基礎(chǔ)上添加mymqtt軟件包。 使能mqtt example和mqtt test,保存,等待下載更新軟件包。
    的頭像 發(fā)表于 10-13 10:44 ?807次閱讀
    RT-Thread中mymqtt<b class='flag-5'>軟件包</b>的使用方法

    軟件包0 error計劃流程介紹

    可以在這一百個軟件包中認領(lǐng)自己感興趣的軟件包,不限于一個
    的頭像 發(fā)表于 10-12 10:13 ?461次閱讀
    <b class='flag-5'>軟件包</b>0 error計劃流程介紹

    RT-Thread中Agile Modbus軟件包的使用方法

    開發(fā)環(huán)境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的資源為0.2.2,Agile Modbus軟件包版本為v1.1.2。工程使用上一篇 RT-Thread中RS485驅(qū)
    的頭像 發(fā)表于 10-11 15:37 ?1864次閱讀
    RT-Thread中Agile <b class='flag-5'>Modbus</b><b class='flag-5'>軟件包</b>的使用方法

    使用pkgs-test工具對軟件包進行qemu測試

    pkgs-test是一個可以在github actions上面檢查軟件包編譯情況的工具。除了檢查軟件包的編譯情況pkgs-test目前還添加了qemu運行測試。
    的頭像 發(fā)表于 09-25 16:19 ?591次閱讀

    信息技術(shù)是干什么?

    廣播電子技術(shù)信息技術(shù)
    橙群微電子
    發(fā)布于 :2023年09月22日 09:17:48