如何監控RS485網絡環境
壹:前言
在現實生活環境中,我們可能要用到很多的攝像頭來實時監控環境以及記錄影像。于是在某些情況下,我們事后就可以回播影像記錄來還原某些事件發生時的情形。
在工業控制環境中,RS485是一種相當普遍的數據傳輸方式。這些數據可能是下達給某個設備的控制命令,也可能是某個設備所回傳的監控狀態(溫度、壓力、濕度、氧氣濃度…等)。如果我們可以實時的監看及記錄RS485網絡上面的數據傳輸狀態,則如果整個控制環境出現某些異常,我們也可以對這些被記錄的數據進行解析,來找出可能的原因。是因為命令發送錯誤,還是狀態回報錯誤造成誤判,或是其它原因造成問題。擁有這個能力對于判斷事件可能發生的原因會有極大的幫助,對于系統提升可靠度有相當大的幫助。本文將介紹幾種瑞旺科技的產品來幫助大家來達成這個工作。
貳:TWIN485盒的使用
1. 在TWIN485盒的橋接式模式底下,我們可以把兩個RS485網絡進行信號橋接工作,而此時所有RS485網絡的數據可以送到RS232串口上面。只要我們監控及記錄RS232串口上面的數據(例如PC的COM1串口與TWIN485盒的RS232串口連接,并且在PC上面執行瑞旺科技所提供的免費RAYMON軟件就可以實時顯示接受到的數據并且貯存之)。
2. 由于瑞旺科技提供RAYMON的源程序,任何使用者可以依據自己的應用需求自行修改源程序來符合自己專用的應用環境。
參:ULOG485盒的使用
1. 在ULOG485盒,我們提供有兩組RS232對地電位隔離RS422/485界面轉換器。同時經由USB電纜連接,我們可以在PC上面產生4個串口,所有在RS232接口或RS485接口所接收的數據都會傳到USB串口上面。于是我們只要監控及記錄這些USB串口的接收資料就可以知道RS485網絡的工作情形。
2. 在一些RS232設備必須利用RS232對RS485界面轉換器才可以連上RS485網絡的應用環境,我們可以同時紀錄RS232端及RS485端的數據傳輸狀態。
3. 瑞旺科技提供有免費的RAYREAL軟件,這個軟件可以顯示在不同時間點上面兩個COM端口的接收數據。當我們在其中一個COM端口接收RS232界面端的數據,另一個COM端口接收RS485界面端的數據,則我們就可以看到RS232界面端設備與RS485界面端設備的對話過程。這就好像兩個人的電話交談過程,被電話錄音一樣。當發生某些事件,我們可以由電話錄音來發現某些可能問題所在。在一個RS485網絡控制環境中,如果出現某些異常,則我們可以經由RS485網絡數據記錄的回播來解析可能的問題原因。這就好像飛機的黑盒子一樣,如果飛機出現問題,事后要找出可能原因,也是要依靠這個黑盒子來解析可能問題所在。
4. 由于瑞旺科技提供RAYREAL軟件的全部源程序,使用者可以依據自己的應用環境需求來修改源程序以符合自己的期望應用。
5. 目前ULOG485提供兩組RS232對RS485轉換器功能,所以每一組RS232對RS485轉換器要有兩個COM端口來接收數據加以監控及記錄。所以兩組轉換器共要有4個COM端口來工作。很幸運的,我們只要利用USB電纜的連接就可以產生4個COM端口來完成工作。
肆:iLOG101盒的使用
1. 在iLOG101盒,我們提供有一組RS232對地電位隔離RS422/485界面轉換器。同時經由IP網絡的連接,我們可以在遠程連網的PC上面產生2個串口。所有在RS232接口或RS485接口所接收到的數據都會傳到IP網絡的串口上面。于是我們可以在遠方利用IP網絡來監控及記錄這些在RS485網絡的工作情形。
2. 所以在一些RS232設備必須利用RS232對RS485轉換器才可以連上RS485網絡的應用環境,我們利用iLOG101盒就可以同時完成轉換器的功能,又可以同時紀錄RS232端口及RS485端口的數據傳輸狀態。而且利用IP網絡,我們的監控地點可以在任何IP網絡可到達的地方。特別是被監控的RS485網絡環境如果是人類不適合長期存在的地方,iLOG101盒更是******選擇。我們可以把數據如同影像或聲音一樣,實時監控及紀錄。
3. 瑞旺科技提供免費的RAYREAL軟件可以同時顯示及記錄兩個COM端口的資料,于是所有RS232設備與RS485網絡端的對話過程,都可以被我們掌握及記錄。而且利用iLOG101盒,所有的應用環境都不必改變就可以達成所期望的監控與紀錄工作。飛機的黑盒子只記錄在飛機上,事后才能尋找出黑盒子來解析。iLOG101盒則可以實時利用IP網絡來記錄。
伍:監控的重要性
1. 當我們的生活環境中,出現愈來愈多的影像攝像頭,希望可以盡快的發現問題、解決問題,或者在事件發生后可以經由影像記錄來找出問題。可是這些都是實體的影像功能。
2. 對于數據傳輸而言,我們無法像實體一樣來記錄嗎?即然我們在實體世界有必要用攝像頭來記錄,則我們當然有必要對數據傳輸進行記錄。
3. 在現代化的工業控制環境中,由于缺少對數據傳輸的記錄,于是在出現控制異常時并不容易找出問題所在。當一個軟件程序因為某些邏輯缺失,在正常情況下,可能不會出錯,可是在符合特定環境條件下,可能就會送出錯誤指令而造成巨大災難。但是這些環境問題要如何在事后找出原因呢?如果不找出原因,又如何保證以后不會發生呢?一個機器,一個零件是實體的東西,我們可能由事情發生后的殘骸來推論或發現其異常原因。但是軟件或者數據是看不到,摸不著的東西,如果我們不記錄數據傳輸的內容,則要發現或推論其異常原因是不容易的。所以要提供系統的安全性,在未來一定要提供數據傳輸的監控功能。
陸:實際案例
1. 我們自己在DOS系統對兩個串口進行控制。
2. 傳統上PCI卡是由主機板指定I/O地址空間給每個UART控制器,每個UART控制器會占有8字節空間。
3. 由于I/O地址是由主機板動態給定其值,而且要在位?給予值1來指示此地址為I/O空間。所以我們的應用軟件會在取得此值時,把位?清為?以取得UART的真正起始地址。
IOADDR = IOMAP & 0xfffe;
4. 當我們有一行程序誤打成
IOADDR = IOMAP & 0xfff0;
5. 在多年的使用過程中,我們都沒有出現問題,直到有一天有人反應某塊新主機板不能工作,可是相同PCI卡在所有其它主機板上面都沒有問題。
6. 我們發現這塊有問題的主機板給予UART的地址分別為0xfff1及0xfff9。大家可以發現經過錯誤的IOADDR=IOMAP & 0xfff0過程,則兩個UART的起始地址變成相同的0xfff0,而不是正確的0xfff0及0xfff8。
7. 現在大家可以了解為何軟件的問題不容易找到的原因。因為在廣大的I/O地址空間中,主機板廠商給予I/O地址相當寬松,雖然每個UART只要求8個字節,可是主機板給不同的UART I/O地址時相鄰距離可能是256字節,或者16字節以上我們都不會出問題。在發現問題的主機板上面,偏偏它就把16字節空間指定給兩個UART來使用。于是在我們有問題的軟件程序行的邏輯動作下,錯誤就顯現了。如果沒有這件事情發生,我們可能也不會發現上述程序錯誤,但大家也都工作的相安無事。