本文介紹了地磅儀表與計(jì)算機(jī)、PLC 等通訊故障的原因及排除方法。
1概述
地磅使用中經(jīng)常需要與計(jì)算機(jī)、PLC和DCS系統(tǒng)通訊,以實(shí)現(xiàn)自動控制、計(jì)算機(jī)管理等需求。地磅儀表的通訊也是經(jīng)常出故障的環(huán)節(jié)。本文就地磅儀表通訊中常用的RS232和RS485串行接口的通訊故障現(xiàn)象、原因及排除方法做了一些介紹,希望對地磅的安裝調(diào)試人員和使用維護(hù)人員有一些幫助。
2.通訊總線與通訊協(xié)議
按通訊接口的電氣特性,可分為RS-232和RS-485。稱重儀表的RS-232接口通常是簡化的版本,僅使用發(fā)送Tx D、接收Rx D兩根數(shù)據(jù)線和地線GND。RS-232采用不平衡傳輸方式,信號線對地-3V到-15V表示邏輯1,+3V到+18V表示邏輯0。不平衡傳輸方式的干擾抑制能力較差,容易受到共地噪聲和外部干擾的影響,一般用于低速、短距離的通訊,通訊距離≤15m。RS-485采用兩線平衡傳輸方式,一般稱同相端為A,反相端為B。發(fā)送端當(dāng)數(shù)據(jù)為1時(shí),A電平相對B電平為+2V~+6V,為0時(shí),A電平相對B電平為-2V~-6V;在接收端當(dāng)A電平比B電平高于200m V時(shí),輸出為1,當(dāng)A電平比B電平低于200m V時(shí),則輸出為0;信號線的共模電壓范圍為-7V~+12V。RS485 總線抗共模干擾能力較強(qiáng),最大傳輸速率為 10Mbps,傳輸速率與傳輸距離成反比,在 100Kbps 的傳輸速率以下,可以達(dá)到 1200m 通信距離,如果需傳輸更長的距離,需要加 485 中繼器。RS-485 總線一般最大支持 32 個(gè)節(jié)點(diǎn),如果使用特制的 485 芯片,可以達(dá)到 128個(gè)或者更多的節(jié)點(diǎn)。RS485 一般采用終端匹配的總線型結(jié)構(gòu),不要用環(huán)形或星形網(wǎng)絡(luò)。在傳輸率較高且通訊距離較長時(shí)需要加終端電阻,防止反射造成誤碼。因?yàn)榇蠖鄶?shù)雙絞線電纜特性阻抗大約在 100Ω~120Ω 之間,故終端電阻一般取 120Ω。
稱重儀表通訊接口一般采用異步串行方式,有 4 個(gè)重要參數(shù)必須雙方一致:波特率、數(shù)據(jù)位個(gè)數(shù)、停止位個(gè)數(shù)和奇偶校驗(yàn)。數(shù)據(jù)位一般為 7位或 8 位,停止位有 1 位、1.5 位或 2 位,奇偶校驗(yàn)有無校驗(yàn)、偶校驗(yàn)、奇校驗(yàn)或校驗(yàn)位置 1、置 0等幾種方式。通訊接口的傳輸率一般有 300pbs、600pbs、1200pbs 直到數(shù) Mpbs。
通訊協(xié)議就像通訊雙方交流的語言,必須雙方一致才能正確交流。許多稱重儀表都有自己的通訊協(xié)議,所以必須按儀表生產(chǎn)廠規(guī)定的協(xié)議格式才能進(jìn)行通訊。為了保證數(shù)據(jù)傳輸正確,許多協(xié)議采用了校驗(yàn)和,校驗(yàn)和的計(jì)算方法和表示方法也各不相同,上位機(jī)通訊軟件編程時(shí)需要仔細(xì)推敲。
Modbus 協(xié)議是標(biāo)準(zhǔn)的通訊協(xié)議,采用 Modbus 協(xié)議的儀表,只要知道需要數(shù)據(jù)的地址即可讀取,可方便地與 PLC 或組態(tài)軟件通訊,組建自動化控制系統(tǒng)。串口通信的 Modbus 協(xié)議分 RTU 模式和 ASCII 模式。RTU 是必備的模式,傳輸效率較高; ASCII 是可選的模式。使用組態(tài)軟件編程時(shí)要注意,許多組態(tài)軟件按照一些 PLC 廠商的習(xí)慣,將 Modbus 功能碼與變量地址結(jié)合起來作為變量的地址,例如西門子和莫迪康系列用 0dddd 表示輸出線圈,1dddd 表示輸入位寄存器,3dddd 表示輸入寄存器,4dddd 表示保持寄存器,dddd 表示地址,范圍按系統(tǒng)不同為 1~9999 或 1~65535,讀寫時(shí)系統(tǒng)自動選用相應(yīng)的功能碼。中航電測和上海耀華的 C602、C606+ 等系列儀表的說明書則按 GB/T19582.1 的方式定義變量的地址,變量地址從 0 開始計(jì)算,因此使用組態(tài)軟件時(shí)要進(jìn)行相應(yīng)的轉(zhuǎn)換。比如讀 C602 儀表整數(shù)表示的凈重,按 C602 說明書為輸入寄存器 0 和保持寄存器 0,按西門子或莫迪康系列則為 30001 和 40001。另外變量的表示形式是整數(shù)還是浮點(diǎn)數(shù),高低位的排列次序,變量的長度等也要特別注意。C602 的數(shù)據(jù)是按高位字節(jié)、次高位、次低位、最低字節(jié)排列。
3.通訊故障常見原因
儀表通訊的調(diào)試是比較麻煩的事情,許多因素會影響正常的通訊功能。下面按安裝調(diào)試和使用的不同的階段分析可能的故障原因,為排除通訊故障提供一些思路。
3.1 在系統(tǒng)安裝與調(diào)試階段容易出現(xiàn)的故障原因有:
3.1.1接線錯(cuò)誤
比如 RS232 通訊中,儀表的 TxD 要與上位機(jī)的 RxD 連接,儀表的 TxD 與上位機(jī)的 RxD 連接,儀表的 GND 與上位機(jī)的 GND 連接。常見的現(xiàn)象是一端 RxD 和 TxD 接反。
RS485 總線經(jīng)常出現(xiàn)的現(xiàn)象是 A、B 兩線接反。需要注意的是,有的廠家 A、B 的定義與通常的習(xí)慣不一致。比如 HBM 公司的 AD104 等數(shù)字模塊就是 A 為反向端,B 為同相端,與一般的習(xí)慣相反。有的儀表如耀華的 C602 等 RS485 采用四線制總線,如果要接兩線制 RS485 總線,要將儀表的 T+ 與 R+,T- 與 R- 端子分別短接,再與 A、B連接。雖然 RS485 采用兩線平衡的方式傳輸,理論上不需要連接地線,但是如果共模電壓超出了規(guī)定的 -7V~+12V 范圍輕則會干擾通訊,重則會損壞接口器件。我們曾實(shí)測連接一臺使用開關(guān)電源的儀表的接地線與一臺計(jì)算機(jī)接地線之間連線的電流,在接通儀表電源的瞬間,流過連接線電流的最大峰值會達(dá)到數(shù)安培。如果儀表與計(jì)算機(jī)通訊接口接地線沒有連接,這個(gè)電流將流過接口信號線,極可能會損壞器件。
3.1.2 通訊協(xié)議不一致
如前所述,如果雙方的通訊協(xié)議不一致,是無法進(jìn)行有效的通訊的,在大多數(shù)情況下,哪怕是錯(cuò)一個(gè)空格符都能造成通訊故障。有時(shí)一些與協(xié)議有關(guān)的隱性問題也會影響通訊。曾遇到一個(gè)系統(tǒng)的通訊故障的原因是由于某型號的 PLC 在發(fā)出查詢命令后沒有及時(shí)釋放 RS485 總線,而儀表響應(yīng)時(shí)間太短,造成總線沖突、通訊失敗。后來修改了儀表通訊程序,延遲響應(yīng) PLC 的指令才正常通訊。
3.1.3連接方式不合適
RS485 要采用總線連接方式,即用一根雙絞線連接所有的設(shè)備。特別是當(dāng)波特率較高、設(shè)備分散的情況,采用星型連接將使通訊非常不穩(wěn)定,這時(shí)如果必須用星型連接的話,要通過 RS485 集線器連接。通訊距離較長、通訊速率較高或干擾較大的場合,通訊線要選用專門的 RS485 電纜,兩端要加上終端電阻。如果是多線對的 RS485 電纜,一個(gè)總線一定要接同一對雙絞線。
3.1.4空閑時(shí)的總線狀態(tài)
RS485 總線如果沒有適當(dāng)?shù)纳侠蛳吕?,會使總線電平在一個(gè)不確定或錯(cuò)誤的狀態(tài),影響通訊的穩(wěn)定性或不能通訊。在總線空閑狀態(tài),應(yīng)確保信號線 A 的電平高于 B 的電平,即邏輯電平處于“1”的狀態(tài)。
3.2在系統(tǒng)投產(chǎn)以后出現(xiàn)故障的常見原因
3.2.1 接口電路的故障
接口電路損壞的情況比較常見,許多原因會損傷接口電路如靜電放電、帶電插拔接口的連接件、電源線上浪涌電流的沖擊、接口電路沒有連接地線等等。接口電路損壞是使用中通訊故障的主要原因。
3.2.2 線路故障
由于各種原因使通訊線路斷路、短路,接插件氧化、松動造成接觸不良都會使通訊中斷。
3.2.3 設(shè)置錯(cuò)誤
儀表或上位機(jī)的通訊設(shè)置被操作人員無意中錯(cuò)誤修改,也是通訊故障的一個(gè)原因。
4.通訊故障的診斷與排除
有一些合適的工具對排除通訊故障會有很大的幫助。常用的工具有:萬用表、示波器、通訊監(jiān)控軟件、監(jiān)控計(jì)算機(jī)等,最起碼也要有一塊萬用表。
下面以 XK3190-C602 儀表為例,按故障診斷排查的次序介紹各種方法。
首先要檢查核對接線是否有錯(cuò)誤,C602 有兩個(gè)通訊口,通訊口 1 是 RS232 接口,通訊口 2 是 RS232/RS485 共用,用主板上的跳線選擇通訊模式。出廠時(shí)為 RS232 模式,如果用 RS485 模式要將主板上的 JP4 跳線改在 RS485 的位置上。如果采用兩線制 RS485,接線時(shí)要將 R+、T+ 和 R-、 T- 分別短接。排除了接線錯(cuò)誤才可以進(jìn)行下一步的調(diào)試工作。再次強(qiáng)調(diào)要特別注意 RS485 總線的地線是否接好。
在調(diào)試儀表與上位機(jī)通訊時(shí),調(diào)試時(shí)首先設(shè)置和檢查儀表波特率、數(shù)據(jù)位、停止位和校驗(yàn)位等通訊參數(shù),應(yīng)與上位機(jī)的設(shè)置一致。如果上位機(jī)工作軟件通訊異常,可用串口調(diào)試軟件測試通訊接口。網(wǎng)絡(luò)上有許多免費(fèi)的串口調(diào)試軟件可下載使用。如果上位機(jī)軟件是采用指令方式通訊而收不到儀表的應(yīng)答,可先將儀表設(shè)置為連續(xù)發(fā)送模式。上位機(jī)能收到儀表的數(shù)據(jù)后再調(diào)試指令通訊方式。如果上位機(jī)軟件采用比較復(fù)雜的協(xié)議如Modbus 協(xié)議,可先把串口 2 設(shè)置為指令方式,將儀表地址設(shè)置為“1”,用串口調(diào)試軟件按十六進(jìn)制方式發(fā)送“02 41 41 30 30 03”即“握手”指令,上位機(jī)應(yīng)能收到同樣的返回?cái)?shù)據(jù),即表示儀表與計(jì)算機(jī)的雙向通訊是正常的。如果收不到返回?cái)?shù)據(jù),將串口 1 關(guān)閉,看上位機(jī)發(fā)送時(shí)儀表“通訊”指示燈是否點(diǎn)亮,如果指示燈亮但沒有返回?cái)?shù)據(jù),可能是波特率、地址、校驗(yàn)等通訊參數(shù)不對;如果“通訊”不亮,則可能是接線錯(cuò)誤、接口損壞等原因。
如果通訊口 2 的 RS485 通訊不正常,可先用 RS232 方式測試,如果 RS232 方式通訊正常而 RS485 方式不正常,則檢查接線是否有問題,主機(jī)側(cè)的 RS232/RS285 轉(zhuǎn)換器或 USB/RS485 轉(zhuǎn)換器是否正常。
不能通訊而目測找不到接線和設(shè)置錯(cuò)誤,可以通過測量總線電壓來進(jìn)一步檢查。
檢測 RS232 接口,在總線空閑即儀表和上位機(jī)均未發(fā)送數(shù)據(jù)時(shí),用萬用表直流電壓檔在儀表端子上測量 RS-232 接口 RxD、TxD 對 GND 端子的直流電壓,正常情況兩線的電壓在 -5V~-10V之間。如果 RxD 電壓接近 0V,即表示該線沒有與上位機(jī) RS-232 發(fā)送端連接,可能是兩線接反、線路短路或斷路。如果 TxD 電壓接近 0V,將線路斷開再測量電壓,如果仍接近 0V,是儀表接口損壞,如果電壓恢復(fù)正常了,則是線路短路。兩線電壓正常但不能通訊,將儀表設(shè)置為連續(xù)發(fā)送狀態(tài),用萬用表交流電壓檔測量 TxD 端子與 GND 端子的電壓,應(yīng)有幾百 mV 到幾 V 的電壓。如果有交流電壓而上位機(jī)沒有收到數(shù)據(jù),檢查上位機(jī)串口的設(shè)置是否正確。如果沒有交流電壓,檢查儀表串口的設(shè)置是否正確。
檢測 RS485 接口,在總線空閑時(shí)用萬用表直流電壓檔在儀表端子上測量 T+、T- 之間的電壓,沒有加總線終端電阻時(shí)電壓應(yīng)在 3V 以上。如果是四線制接法,還要測量 R+、R- 之間的電壓。如果電壓為 0V 左右,可以加適當(dāng)?shù)纳侠娮琛?/span>C602主板上 JP3 跳線 1~2、5~6 之間短接為接收端上下拉電阻有效,3~4 短接為 120Ω 終端電阻有效。電壓正常但不能通訊時(shí),將儀表設(shè)置為連續(xù)發(fā)送狀態(tài),用萬用表交流電壓檔測量 T+、T- 之間的電壓,應(yīng)有幾百 mV 以上的電壓。如果有交流電壓而上位機(jī)沒有收到數(shù)據(jù),檢查上位機(jī)串口的設(shè)置是否正確,RS485 轉(zhuǎn)換器是否失效。檢測接收電路可參照上述 RS232 的方法,看通訊指示燈是否點(diǎn)亮來判斷是否收到上位機(jī)數(shù)據(jù)。
可用萬用表測量通訊接口端子對地線端子的電阻大致判斷接口電路是否損壞。用數(shù)字萬用表測量正常的 RS232 接口端子和沒有上下拉電阻的 RS485 接口端子對地的電阻大于兆歐級,如果某接口電阻異常小,只有數(shù)千歐甚至更低,則該接口已經(jīng)損壞。
有時(shí)復(fù)雜的通訊故障需要用示波器等儀器檢測,可以方便地發(fā)現(xiàn)總線沖突、接口電路性能下降等較軟的故障。特別是有的示波器有協(xié)議分析的功能,更方便檢測軟件方面的故障。
用串口調(diào)試軟件可以通訊但用上位機(jī)軟件不能正常通訊,可咨詢軟件供應(yīng)商解決。調(diào)試應(yīng)用軟 件 與 儀 表 的 通 訊 時(shí) 可 以 用 CommMonitor、Comsky、AccessPort 等串口監(jiān)控工具軟件采集應(yīng)用軟件如與儀表串口的通訊數(shù)據(jù),協(xié)助分析故障的原因。
調(diào)試 PLC 與稱重儀表的通訊時(shí)可參考上述方法,也可以用一臺監(jiān)控計(jì)算機(jī)采集 PLC 與儀表之間的通訊數(shù)據(jù),分析通訊故障原因。