RS485通信基礎(chǔ)知識(shí)
發(fā)布時(shí)間:2019-7-6 查看:21331
1. 485通信
1.1. 通信連接
1.1.1. 接口定義:
智能型數(shù)顯儀表一般采用RS485通信接口方式,一般為三個(gè)端子:A+,B-,COM。如下圖1:
當(dāng)一條總線上有多臺(tái)485通訊設(shè)備時(shí),連線要采用手拉手的接線方法,一條總線上建議最多不超過32臺(tái)設(shè)備。如圖2
圖1:485通訊接線方法

圖2:多臺(tái)設(shè)備的485總線連接
1.1.2. 通信接口及轉(zhuǎn)換器
由于儀表采用RS485通信接口,一般常見的PLC、觸摸屏等都有此接口。但是電腦上一般沒有此接口。與電腦進(jìn)行通信時(shí),需要進(jìn)行接口轉(zhuǎn)換,常見的設(shè)備有:USB轉(zhuǎn)RS485轉(zhuǎn)換器,RS232轉(zhuǎn)RS485轉(zhuǎn)換器,以太網(wǎng)轉(zhuǎn)RS485串口服務(wù)器,通信管理機(jī)等。如圖3:
圖3:常見串口轉(zhuǎn)換器
1.2. 通信設(shè)置
1.2.1. 協(xié)議:儀表支持標(biāo)準(zhǔn)的Modbus-RTU串口通信協(xié)議;參考相關(guān)國家標(biāo)準(zhǔn):GB/T 19582.1-2008,GB/T 19582.2-2008;
1.2.2. 數(shù)據(jù)傳輸格式為:1位起始位,8位數(shù)據(jù)位,1位停止位,無校驗(yàn)位。
1.2.3. 儀表常規(guī)設(shè)置出廠值為:ADD地址:1,波特率:9600,CRC校驗(yàn):N
1.2.4. 數(shù)據(jù)字節(jié)順序:H-L(高在前,低在后)
1.2.5. 數(shù)據(jù)格式:整型(32位長整型long,16位短整型short),32位浮點(diǎn)型float。根據(jù)不同系列儀表不同。
1.3. 寄存器地址
1.3.1. 我公司說明書中寄存器地址,也叫變量地址或地址映射表,用十六進(jìn)制地址碼表示,如0X2000表示十六進(jìn)制地址2000。32位數(shù)據(jù)占用2個(gè)寄存器位置(4字節(jié)),16位數(shù)據(jù)占用1個(gè)寄存器位置(2字節(jié))。32位數(shù)據(jù)地址以0,2,4,6......等地址分別表示各參數(shù)占用的寄存器位置;16位數(shù)據(jù)以地址0,1,2,3......等地址表示各參數(shù)占用的寄存器位置。
如下圖4:
圖4:傳感器表和電力表的參數(shù)地址表
1.3.2.計(jì)算機(jī)讀取數(shù)據(jù)時(shí),就從以上變量地址中讀取相應(yīng)數(shù)據(jù)。一般計(jì)算機(jī)與儀表通信時(shí),上位機(jī)上直接用十六進(jìn)制數(shù)據(jù)進(jìn)行訪問;但多數(shù)的工控組態(tài)軟件、監(jiān)控系統(tǒng)軟件、PLC、觸摸屏等,需要轉(zhuǎn)換為十進(jìn)制地址碼進(jìn)行讀取。
如下圖5、圖6、圖7設(shè)置,讀0X4000開始的A相電壓值,需將0X4000轉(zhuǎn)換為十進(jìn)制數(shù)得到16384,再用400001+16384=416385
圖5:組態(tài)王串口設(shè)備測(cè)試時(shí)寄存器地址設(shè)置

圖6:昆侖通態(tài)觸摸屏設(shè)備通道采集設(shè)置

圖7:西門子s7-200smart PLC讀指令設(shè)置
1.4.1. 儀表一般用十六進(jìn)制數(shù)據(jù)進(jìn)行發(fā)送,上位機(jī)接收到數(shù)據(jù)后,需要進(jìn)行數(shù)據(jù)轉(zhuǎn)換處理,常用的一般是長整型、短整型、浮點(diǎn)型。long長整型數(shù)據(jù)為32位,占用2寄存器,4字節(jié); short短整型數(shù)據(jù)為16位,占用1個(gè)寄存器,2字節(jié);float浮點(diǎn)型為32位數(shù)據(jù),占用2寄存器4字節(jié)。
1.4.2.上位機(jī)在處理數(shù)據(jù)時(shí)需要根據(jù)產(chǎn)品的實(shí)際數(shù)據(jù)類型做相應(yīng)轉(zhuǎn)換,以下表為例:
1.4.3. PLC存儲(chǔ)區(qū)數(shù)據(jù)說明
設(shè)讀取的數(shù)據(jù)存儲(chǔ)在以VB100開始的V存儲(chǔ)區(qū)中,那么對(duì)于long\short\float等不同類型數(shù)據(jù),應(yīng)根據(jù)PLC定義的類型進(jìn)行轉(zhuǎn)換:
1.5.顯示處理
1.5.1. 整型數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制后,需要將小數(shù)點(diǎn)進(jìn)行處理,可根據(jù)說明書進(jìn)行小數(shù)點(diǎn)的倍率換算,一般是將轉(zhuǎn)換的十進(jìn)制數(shù)整數(shù)乘以小數(shù)位數(shù)。如:
2.Modbus-RTU通信協(xié)議簡單介紹
2.1. 介紹
Modbus協(xié)議為工控行業(yè)的標(biāo)準(zhǔn)協(xié)議,分為兩種協(xié)議,一種為Modbus-RTU串口協(xié)議,另一種Modbus-TCP網(wǎng)口協(xié)議。
Modbus協(xié)議為莫迪康(Modicon)開發(fā)的,后來被施耐德收購,現(xiàn)在已作為施耐德的標(biāo)準(zhǔn)協(xié)議。modbus協(xié)議在工業(yè)控制中得到了廣泛的應(yīng)用,它已經(jīng)成為一種通用的工業(yè)標(biāo)準(zhǔn),該協(xié)議支持rs-232、rs-422、rs-485和以太網(wǎng)設(shè)備。不同廠商生產(chǎn)的控制設(shè)備通過modbus協(xié)議可以連成通信網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。許多工控產(chǎn)品,例如plc、變頻器、人機(jī)界面、dcs和自動(dòng)化智能儀表等,都在廣泛地使用modbus協(xié)議。
根據(jù)傳輸網(wǎng)絡(luò)類型的不同分為串行鏈路上的modbus和基于tcp/ip協(xié)議的modbus。
Modbus串行鏈路協(xié)議是一個(gè)主-從協(xié)議,采用請(qǐng)求-響應(yīng)方式,主站發(fā)出帶有從站地址的請(qǐng)求報(bào)文,具有該地址的從站接收到后發(fā)出響應(yīng)報(bào)文進(jìn)行應(yīng)答。
Modbus協(xié)議中,一條RS-485串行總線中只有一個(gè)主站,可以有1~247個(gè)從站。modbus通信只能由主站發(fā)起,從站在沒有收到來自主站的請(qǐng)求時(shí),不會(huì)發(fā)送數(shù)據(jù),從站之間也不會(huì)互相通信。
2.2. modbus的報(bào)文傳輸模式---RTU模式
Modbus網(wǎng)絡(luò)上的rtu模式的報(bào)文以字節(jié)為單位進(jìn)行傳輸,一個(gè)字節(jié)由兩個(gè)十六進(jìn)制數(shù)組成。傳輸?shù)拿總€(gè)字節(jié)包含一個(gè)起始位,8個(gè)數(shù)據(jù)位(先發(fā)送最低的有效位),奇偶校驗(yàn)位、停止位與ascii模式的相同,報(bào)文最長為256字節(jié)。
Modbus的rtu模式報(bào)文的最后兩個(gè)字節(jié)是循環(huán)冗余校驗(yàn)碼(crc)。其校驗(yàn)方式是將整個(gè)報(bào)文的所有字節(jié)(不包括最后兩個(gè)字節(jié))按規(guī)定的方式進(jìn)行位移并進(jìn)行xor(異或)計(jì)算。接收方在收到該字符串時(shí)按同樣的方式進(jìn)行計(jì)算,并將結(jié)果與收到的循環(huán)冗余校驗(yàn)碼進(jìn)行比較,如果一致則認(rèn)為通信正確,如果不一致,則認(rèn)為通信有誤,從站將發(fā)送crc錯(cuò)誤應(yīng)答。
Modbus中rtu采用crc-16的冗余校驗(yàn)方式。
2.3.modbus功能碼
2.4. 通信報(bào)文舉例說明