2021-09-14 08:43:29 索煒達電子 991
項目編號:E1193
文件大?。?.2M
源碼說明:帶中文注釋
開發(fā)環(huán)境:C編譯器
簡要概述:
Modbus 通信,用的是原子的阿波羅 STM32F429 開發(fā)板
通信協(xié)議:
1. MODBUS TCP/IP 主站 可以預(yù)定義采集從站的報文,報文有優(yōu)先級.優(yōu)先級的數(shù)量在MB.H中定義
2. MODBUS TCP/IP 從站(TCP服務(wù)端)可以支持4個主站(連接數(shù)量可以在MB.H中定義)連接本站
3. MODBUS RTU 主站 可以預(yù)定義采集從站的報文,報文有優(yōu)先級.優(yōu)先級的數(shù)量在MB.H中定義
4. MODBUS RTU 從站
由于網(wǎng)口占用了串口2和串口3的端口,所以主站和從站我都定義為串口1,通過宏定義只使用主站或從站。
MODBUS TCP/IP的主站和從站與RTU可以同時使用,如果通過跳線將RTU主站或從站進行端口映射不與網(wǎng)口沖突,4個功能可以同時開啟。
屏的驅(qū)動我這里只有7寸電容屏,所以驅(qū)動只保留了7寸屏的驅(qū)動,如果有屏的話,有一些調(diào)試信息打印在屏上。
OS操作系統(tǒng)就不要抱怨了,這個是我自己編的,自己要什么功能自己加的,如果要改其他OS的話應(yīng)該UCOSII比較接近,MODBUS任務(wù)的話根據(jù)UCOSII改就可以了。我的MODBUS任務(wù)用了信號量,MODBUS TCP/IP 主站和MODBUS RTU 主站各一個信號量。屏幕打印用了一個互斥量。
功能碼我沒有全部做全,01,02,03,04,05,06做了,15,16還沒來得及做。
MODBUS_BIN.rar這個是bin文件,可以在阿波羅429的綜合例程里,用運行器運行。
配置:
作為modbus TCP/IP從站:可以有4個MODBUS TCP/IP主站來采集數(shù)據(jù)。本機的IP地址為:192.168.3.30 modbus地址 1.
作為modbus TCP/IP主站:連接的Modbus TCP/IP從站IP地址為192.168.3.131 modbus地址為2.程序里使用了03功能碼讀數(shù)據(jù)和06功能碼寫數(shù)據(jù)。
modbus RTU從站:串口沖突,沒有配置,如果通過跳線和串口端口映射到其他串口,可以開啟。
Modbus RTU主站:使用串口1 波特率19200,8,N,1 讀取的modbus地址為2,使用03功能碼讀數(shù)據(jù)和06功能碼寫數(shù)據(jù)。
目錄│文件列表:
│ MODBUS.rar
│ MODBUS_BIN.rar