RS485通信電纜-1×2×0.2
RS-485的電氣特性:采用差分信號(hào)負(fù)邏輯,邏輯"1”以兩線間的電壓差為+(2~6)V表示;邏輯"0"以兩線間的電壓差為-(2~6)V表示。接口信號(hào)電平比RS-232-C降低了,就不易損壞接口電路的芯片, 且該電平與TTL電平兼容,可方便與TTL電路連接。
2. RS-485的數(shù)據(jù)zui高傳輸速率為10Mbps。
3. RS-485接口是采用平衡驅(qū)動(dòng)器和差分,接收器的組合,抗共模*力增強(qiáng),即抗噪聲干擾性好。
4. RS-485zui大的通信距離約為1219m,zui大傳輸速率為10Mbps,傳輸速率與傳輸距離成反比,在100KbpS的傳輸速率下,才可以達(dá)到zui大的通信距離,如果需傳輸更長(zhǎng)的距離,需要加485中繼器。RS-485總線一般zui大支持32個(gè)節(jié)點(diǎn),如果使用特制的485芯片,可以達(dá)到128個(gè)或者256個(gè)節(jié)點(diǎn),zui大的可以支持到400個(gè)節(jié)點(diǎn)。
RS485接口組成的半雙工網(wǎng)絡(luò),一般是兩線制(以前有四線制接法,只能實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的通信方式,現(xiàn)很少采用),多采用屏蔽雙絞線傳輸。這種接線方式為總線式拓?fù)浣Y(jié)構(gòu)在同一總線上zui多可以掛接32個(gè)結(jié)點(diǎn)。在RS485通信網(wǎng)絡(luò)中一般采用的是主從通信方式,即一個(gè)主機(jī)帶多個(gè)從機(jī)。很多情況下,連接RS-485通信鏈路時(shí)只是簡(jiǎn)單地用一對(duì)雙絞線將各個(gè)接口的“A”、“B”端連接起來(lái)。RS485接口連接器采用DB-9的9芯插頭座,與智能終端RS485接口采用DB-9(孔),與鍵盤連接的鍵盤接口RS485采用DB-9(針)。
另有一個(gè)問題是信號(hào)地,上述連接方法在許多場(chǎng)合是能正常工作的,但卻埋下了很大的隱患,這有二個(gè)原因:(1)共模干擾問題: RS-485接口采用差分方式傳輸信號(hào),并不需要相對(duì)于某個(gè)參照點(diǎn)來(lái)檢測(cè)信號(hào),系統(tǒng)只需檢測(cè)兩線之間的電位差就可以了。但人們往往忽視了收發(fā)器有一定的共模電壓范圍,RS-485收發(fā)器共模電壓范圍為-7~+12V,只有滿足上述條件,整個(gè)網(wǎng)絡(luò)才能正常工作。當(dāng)網(wǎng)絡(luò)線路中共模電壓超出此范圍時(shí)就會(huì)影響通信的穩(wěn)定可靠,甚至損壞接口。(2)EMI(電磁兼容性)問題:發(fā)送驅(qū)動(dòng)器輸出信號(hào)中的共模部分需要一個(gè)返回通路,如沒有一個(gè)低阻的返回通道(信號(hào)地),信號(hào)中的共模部分就會(huì)以輻射的形式返回源端,整個(gè)總線就會(huì)像一個(gè)巨大的天線向外輻射電磁波。
由于PC機(jī)默認(rèn)的只帶有RS232接口,有兩種方法可以得到PC上位機(jī)的RS485電路:(1)通過RS232/RS485轉(zhuǎn)換電路將PC機(jī)串口RS232信號(hào)轉(zhuǎn)換成RS485信號(hào),對(duì)于情況比較復(fù)雜的工業(yè)環(huán)境zui好是選用防浪涌帶隔離柵的產(chǎn)品。(2)通過PCI多串口卡,可以直接選用輸出信號(hào)為RS485類型的擴(kuò)展卡。
基于RS485接口的DGL通信協(xié)議(修改)
1. 前言
在常見的數(shù)字式磁致伸縮液位計(jì)中,多采用RS485通信方式。但RS485標(biāo)準(zhǔn)僅對(duì)物理層接口進(jìn)行了明確定義,并沒有制定通信協(xié)議標(biāo)準(zhǔn)。因此,在RS485的基礎(chǔ)上,派生出很多不同的協(xié)議,不同公司均可根據(jù)自身需要設(shè)計(jì)符合實(shí)際情況的通信協(xié)議。并且,RS485允許單總線多機(jī)通信,如果通信協(xié)議設(shè)計(jì)不好,就會(huì)造成相互干擾和總線閉鎖等現(xiàn)象。如果在一條總線上掛接不同類型的產(chǎn)品,由于協(xié)議不一樣,很容易造成誤觸發(fā),造成總線阻塞,使得不同產(chǎn)品對(duì)總線的兼容性很差。
隨著RS485的發(fā)展,Modicon公司提出的MODBUS協(xié)議逐步得到廣泛認(rèn)可,已在工業(yè)領(lǐng)域得到廣泛應(yīng)用。而MODBUS的協(xié)議規(guī)范比較煩瑣,并且每字節(jié)數(shù)據(jù)僅用低4位(范圍:0~15),在信息量相同時(shí),對(duì)總線占用時(shí)間較長(zhǎng)。
DGL協(xié)議是根據(jù)以上問題提出的一種通信協(xié)議。在制定該協(xié)議時(shí)已充分考慮以下幾點(diǎn)要求:
a. 兼容于MODBUS 。也就是說,符合該協(xié)議的從機(jī)均可掛接到同一總線上。
b. 要適應(yīng)大數(shù)據(jù)量的通信。如:滿足產(chǎn)品在線程序更新的需要(未來(lái)功能)。
c. 數(shù)據(jù)傳輸需穩(wěn)定可靠。對(duì)不確定因素應(yīng)加入必要的冗錯(cuò)措施。
d. 降低總線的占用率,保證數(shù)據(jù)傳輸?shù)耐〞场?br />2. 協(xié)議描述
為了兼容其它協(xié)議,現(xiàn)做以下定義:
通信數(shù)據(jù)均用1字節(jié)的16進(jìn)制數(shù)表示。從機(jī)的地址范圍為:0x80~0xFD,即:MSB=1;命令和數(shù)據(jù)的數(shù)值范圍均應(yīng)控制在0~0x7F之間。即:MSB=0,以區(qū)別地址和其它數(shù)據(jù)。
液位計(jì)的編碼地址為:0x82~0x9F。其初始地址(出廠默認(rèn)值)為:0x81。
罐旁表的編織地址為:0xA2~0xBF。其初始地址(出廠默認(rèn)值)為:0xA1。
其它地址用于連接其它類型的設(shè)備,也可用于液位計(jì)、罐區(qū)表地址不夠時(shí)的擴(kuò)充。
液位計(jì)的命令范圍為:0x01~0x2F,共47條,將分別用于參數(shù)設(shè)定、實(shí)時(shí)測(cè)量、診斷測(cè)試、在線編程等。
通信的基本參數(shù)為:4800波特率,1個(gè)起始位,1個(gè)結(jié)束位。字節(jié)校驗(yàn)為奇校驗(yàn)。
本協(xié)議的數(shù)據(jù)包是參照MODBUS RTU 通信格式編寫,并對(duì)其進(jìn)行了部分修改,以提高數(shù)據(jù)傳輸?shù)乃俣?。另外,還部分參照了HART協(xié)議。其具體格式如下:
ADDRESS
COMMAND
Byte Count
DATA
Check SUM
地址
命令
字節(jié)數(shù)
數(shù)據(jù)
校驗(yàn)和
1 Byte
1 Byte
=n, 1 Byte
n Byte
1 Byte
80~9F
01~2F
00~10
0~7F
0~7F
表中,數(shù)據(jù)的大字節(jié)數(shù)為16個(gè)。也就是說,整個(gè)數(shù)據(jù)包長(zhǎng)為20個(gè)字節(jié)。
“校驗(yàn)和”是其前面所有數(shù)據(jù)異或得到的數(shù)值,然后將該數(shù)值MSB位清零,使其滿足0~7F的要求。在驗(yàn)證接收數(shù)據(jù)包的“校驗(yàn)和”是否正確時(shí),可將所有接收數(shù)據(jù)(包括“校驗(yàn)和”)進(jìn)行異或操作,得到的數(shù)據(jù)應(yīng)=0x80。這是因?yàn)?,只?ldquo;地址”的MSB=1,所以異或結(jié)果的MSB也必然等于1。
本協(xié)議不支持MODBUS中所規(guī)定的廣播模式。
3. 時(shí)序安排
在上電后,液位計(jì)將先延遲10秒,等待電源穩(wěn)定。然后,用5秒的時(shí)間進(jìn)行自檢和測(cè)試數(shù)據(jù)。接著產(chǎn)品進(jìn)入待機(jī)狀態(tài)并打開RS485通信接口,等待主機(jī)的請(qǐng)求。因此,主機(jī)應(yīng)在液位計(jì)上電20秒后,再將液位計(jì)置為工作狀態(tài),進(jìn)行測(cè)量操作。
液位控制器(HMT-900或H-1000)主要用于液位計(jì)的供電和防爆安全隔離。主機(jī)可通過RTS信號(hào)控制(HMT-900或H-1000)供給液位計(jì)的電源。當(dāng)RTS有效時(shí),電源將被打開。因此,液位計(jì)的電源是可以通過主機(jī)軟件控制的。
在現(xiàn)場(chǎng)應(yīng)用中,主機(jī)軟件的工作時(shí)序一般應(yīng)遵循以下幾個(gè)步驟。
1) 在開主機(jī)前,并認(rèn)真檢查各相關(guān)設(shè)備的電源和電纜連接情況。
2) 在啟動(dòng)主機(jī)軟件時(shí),打開相應(yīng)串行端口。使能RTS信號(hào),給液位計(jì)上電。
3) 軟件初始化操作,延遲20秒。
4) 讀液位計(jì)的相應(yīng)參數(shù),然后將液位計(jì)置為工作狀態(tài)。
5) 此時(shí),主機(jī)可進(jìn)入正常的輪訓(xùn)、記錄、顯示、報(bào)警等工作
RS485通信電纜-1×2×0.2