基于Modbus協(xié)議的串口通訊程序_RS485總線系統(tǒng)應(yīng)用
本文在遵循Modbus協(xié)議的基礎(chǔ)上,闡述了Modbus的兩種傳輸模式和串口通訊程序的設(shè)計(jì)實(shí)例,并給出了VB語(yǔ)言的程序清單。
基于Modbus協(xié)議的串口通訊程序----Modbus協(xié)議簡(jiǎn)介MODBUS協(xié)議支持傳統(tǒng)的RS-232、RS-422、RS-485和以太網(wǎng)設(shè)備。許多工業(yè)設(shè)備,包括PLC,DCS,智能儀表等都在使用Modbus協(xié)議作為他們之間的通訊標(biāo)準(zhǔn)。
Modbus 協(xié)議是應(yīng)用于電子控制器上的一種通用語(yǔ)言。通過(guò)此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。Modbus 協(xié)議定義了一個(gè)控制器能認(rèn)識(shí)使用的消息結(jié)構(gòu),而不管它們是經(jīng)過(guò)何種網(wǎng)絡(luò)進(jìn)行通信的。它描述了一控制器請(qǐng)求訪問(wèn)其它設(shè)備的過(guò)程,如果回應(yīng)來(lái)自其它設(shè)備的請(qǐng)求,以及怎樣偵測(cè)錯(cuò)誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。
基于Modbus協(xié)議的串口通訊程序----RS485總線簡(jiǎn)介
rs-485采用半雙工工作方式,支持多點(diǎn)數(shù)據(jù)通信。rs-485總線網(wǎng)絡(luò)拓?fù)湟话悴捎媒K端匹配的總線型結(jié)構(gòu)。即采用一條總線將各個(gè)節(jié)點(diǎn)串接起來(lái),不支持環(huán)形或星型網(wǎng)絡(luò)。
rs-485采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力。加上總線收發(fā)器具有高靈敏度,能檢測(cè)低至200mv的電壓,故傳輸信號(hào)能在千米以外得到恢復(fù)。 有些rs-485收發(fā)器修改輸入阻抗以便允許將多達(dá)8倍以上的節(jié)點(diǎn)數(shù)連接到相同總線。rs-485最常見(jiàn)的應(yīng)用是在工業(yè)環(huán)境下可編程邏輯控制器內(nèi)部之間的通信。
串口通訊程序設(shè)計(jì)實(shí)例為了便于理解,下面列舉一種采用RTU模式通訊的應(yīng)用實(shí)例。這個(gè)實(shí)例的硬件由一臺(tái)計(jì)算機(jī)和分布在10個(gè)房間的10塊溫濕度表組成RS485網(wǎng)絡(luò)架構(gòu)。溫濕度表的地址分別設(shè)定為01H至0AH。計(jì)算機(jī)讀各溫濕度表數(shù)據(jù)的命令消息幀包含8個(gè)字節(jié):
被點(diǎn)名的溫濕度表接收到上述命令消息后,向計(jì)算機(jī)發(fā)送溫濕度數(shù)據(jù),該消息幀包含11個(gè)字節(jié):