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