1979年,施耐德電氣為工業(yè)現(xiàn)場(chǎng)總線協(xié)議制定了Modbus協(xié)議?,F(xiàn)在很多工業(yè)上使用RS485通信的地方都使用Modbus協(xié)議,所以今天我們就來(lái)了解一下RS485通信和Modbus通信協(xié)議。
【一】前言
在工業(yè)控制、電力通信、智能儀器等領(lǐng)域,數(shù)據(jù)交換通常以串口通信的形式進(jìn)行。最初的方法是RS232接口。由于工業(yè)現(xiàn)場(chǎng)復(fù)雜,各種電氣設(shè)備會(huì)在環(huán)境中產(chǎn)生更多的干擾信號(hào),導(dǎo)致數(shù)據(jù)傳輸錯(cuò)誤。
1979年,施耐德電氣為工業(yè)現(xiàn)場(chǎng)總線協(xié)議制定了Modbus協(xié)議?,F(xiàn)在很多工業(yè)上使用RS485通信的地方都使用Modbus協(xié)議,所以今天我們就來(lái)了解一下RS485通信和Modbus通信協(xié)議。
【二】 RS485通訊
1、RS232實(shí)際上是在RS485之前誕生的,但RS232也存在不足:
1)接口的信號(hào)電平值較高,達(dá)到10V以上,容易損壞通信接口的芯片,與TTL電平不兼容。因此,如果與單片機(jī)電路連接,則必須增加轉(zhuǎn)換電路。
2)接口中使用的電源線與其他設(shè)備在共地模式下通信,容易產(chǎn)生干擾,抗干擾性能差。
3)傳輸距離和速度有限,最多只能通信幾十米;通信只能在兩點(diǎn)之間進(jìn)行,不能實(shí)現(xiàn)多機(jī)網(wǎng)絡(luò)通信。
2、對(duì)于RS232接口以上不足,出現(xiàn)了RS485等新的接口標(biāo)準(zhǔn),RS485具有以下特點(diǎn):
1)邏輯“1”以兩條線之間的電壓差為基礎(chǔ)(2-6)V表示;邏輯“0”表示兩條線之間的電壓差為-(2-6)V。接口信號(hào)電平低于RS232,不易損壞電路芯片,電平適合TTL電平,便于與TTL電路連接。
2)RS485通信速度快,數(shù)據(jù)最高傳輸速度在10Mbps以上;其內(nèi)部物理結(jié)構(gòu)采用均衡控制器與查分接收器的結(jié)合,大大提高了抗干擾性。
3)最大傳輸距離可達(dá)1200米左右,但傳輸速度與傳輸距離成反比。只有100KB/s以內(nèi)的傳輸速度才能實(shí)現(xiàn)最大的通信距離。如果需要更長(zhǎng)的傳輸距離,可以使用中繼器。
4)可在總線實(shí)現(xiàn)多機(jī)通信,總線允許掛多臺(tái)收發(fā)器,從現(xiàn)有RS485芯片來(lái)看,可掛325、64、128、256等各種設(shè)備的控制器。
3、RS485有兩線系統(tǒng)和四線系統(tǒng),四線系統(tǒng)只能實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信模式,現(xiàn)在很少選擇。這種兩線系統(tǒng)的接線模式是一個(gè)簡(jiǎn)單的總線結(jié)構(gòu),最多可以連接到同一總線上的32個(gè)節(jié)點(diǎn)。在RS485通信網(wǎng)絡(luò)中,一般采用主從通信模式,即一個(gè)主機(jī)帶多個(gè)從機(jī)。
4、在很多情況下,在連接RS-485通信鏈路時(shí),只需使用一對(duì)雙絞線將每個(gè)接口“A”、“B“端相互連接。忽略了信號(hào)連接,這種連接方式在很多地方都能正常工作,但卻埋下了很大的隱患。原因有二:
1)共模干擾問(wèn)題:RS-485接口采用差分法傳輸信號(hào)法,不需要與參考點(diǎn)相比檢測(cè)信號(hào)。系統(tǒng)只需要檢查兩條線之間的電勢(shì)差。但人們通常忽略了收發(fā)器具有一定的共模電壓范圍,RS-485收發(fā)器共模電壓范圍-785~ 12V,只有滿足上述條件,整個(gè)網(wǎng)絡(luò)才能正常工作。當(dāng)網(wǎng)絡(luò)線路中的共模電壓超過(guò)此范圍時(shí),會(huì)影響通信的安全性和可靠性,甚至損壞接口。
2)EMI問(wèn)題:發(fā)送控制器輸出信號(hào)中的共模部分需要返回通道。如果沒(méi)有低阻返回通道(信號(hào)地點(diǎn)),它將以輻射的方式返回源,整個(gè)總線將像一個(gè)巨大的天線一樣向外輻射電磁波。
5、由于PC機(jī)默認(rèn)只包含RS232接口,以下措施可獲得PC上位機(jī)的RS485電路:
1)PC串口RS232信號(hào)通過(guò)RS232/RS485轉(zhuǎn)換電路轉(zhuǎn)換為RS485信號(hào)。對(duì)于復(fù)雜的工業(yè)環(huán)境,最好使用防浪涌帶隔離商品。
2)通過(guò)PCI多串口卡,可直接使用輸出信號(hào)為RS485型的擴(kuò)展卡。
【三】 Modbus 通訊協(xié)議
Modbus協(xié)議是一種應(yīng)用于電子控制器的通用語(yǔ)言。通過(guò)該協(xié)議,控制器可以通過(guò)網(wǎng)絡(luò)(如以太網(wǎng))和設(shè)備之間的相互通信。它已成為一個(gè)通用的行業(yè)標(biāo)準(zhǔn)。有了它,不同制造商制造的控制系統(tǒng)可以連接到工業(yè)網(wǎng)絡(luò)進(jìn)行集中監(jiān)控。
該協(xié)議定義了一個(gè)控制器可以理解使用的消息結(jié)構(gòu),描述了一個(gè)控制器要求瀏覽其他設(shè)備的過(guò)程,如何響應(yīng)其他設(shè)備的要求,以及如何檢測(cè)和記錄錯(cuò)誤。它制定了消息域模式和內(nèi)容的公共格式。
1、Modbus具有以下特點(diǎn):
1)規(guī)范開(kāi)放,客戶可以免費(fèi)放心使用Modbus協(xié)議,無(wú)需繳納許可證費(fèi)或侵犯知識(shí)產(chǎn)權(quán)。目前支持Modbus的廠商有400多家,支持Modbus的產(chǎn)品有600多種。
2)Modbus可以提供多種電氣接口,如RS-232、RS-485等,也可在各種介質(zhì)上傳輸,如雙絞線、光纖、無(wú)線等。
3)Modbus的幀格式簡(jiǎn)單、緊湊、易懂。用戶方便,廠家開(kāi)發(fā)方便。
2、Modbus 顯示存儲(chǔ)器的類型
1)線圈情況:輸出端口,可設(shè)置端口導(dǎo)出情況,也可讀取該位導(dǎo)出情況;
2)離散輸入狀態(tài):輸入端口,通過(guò)外部設(shè)置改變輸入狀態(tài),可讀但不能寫;
3)維護(hù)存儲(chǔ)器:控制器運(yùn)行中設(shè)置的一些參數(shù),可讀可寫;
4)輸入存儲(chǔ)器:控制器運(yùn)行中從外圍設(shè)備獲得的一些參數(shù),可讀不可寫。
3、Modbus 通信數(shù)據(jù)類型
1)單個(gè)寫入:
2)多個(gè)寫入:
3)讀?。?/span>
4、Modbus 功能碼概述
功能碼可分為位操作和字節(jié)操作,位操作的最小單位是Bit,字節(jié)操作的最小單位是兩個(gè)字節(jié)(Byte)。
(1)位操作指令:01H讀線圈、02HH離散輸入狀態(tài)02H、寫一個(gè)線圈05H、寫多個(gè)線圈0FH。
(2)字節(jié)操作指令:閱讀存儲(chǔ)存儲(chǔ)器03HH、04H讀取輸入存儲(chǔ)器、寫單個(gè)存儲(chǔ)存儲(chǔ)器06H、10H寫多個(gè)存儲(chǔ)存儲(chǔ)器。