645 97規約是(shi)電表(biao)使用的(de)國(guo)標通(tong)(tong)訊協議,使用非常(chang)廣泛。一般通(tong)(tong)過RS485總(zong)線讀當(dang)前(qian)功率、當(dang)前(qian)電壓、本月電量(liang)等數據。但是(shi)由于RS485總(zong)線原理的(de)限制,不能有兩(liang)臺主(zhu)機同時去讀電表(biao)。但是(shi)在能源(yuan)監(jian)控領域,經常(chang)需(xu)要有多個(ge)計算機、顯示屏獲取(qu)電表(biao)的(de)數據。
普通(tong)的(de)“透傳”的(de)RS485轉TCP/IP的(de)產品在這里(li)無法使用,這里(li)就介紹(shao)一下卓嵐的(de)ZLAN5143的(de)多主機功(gong)能如何解決這個問題。
如圖:ZLAN5143的(de)多主(zhu)機(ji)功能會調(diao)度(du)RS485的(de)總(zong)線(xian),當主(zhu)機(ji)1和主(zhu)機(ji)2同(tong)時(shi)(shi)需要使用(yong)總(zong)線(xian)的(de)時(shi)(shi)候(hou)ZLAN5143則會擔任“裁(cai)判”的(de)角色(se),禁止同(tong)時(shi)(shi)搶占,并合理(li)調(diao)度(du)總(zong)線(xian)的(de)使用(yong)時(shi)(shi)間(jian),從而(er)起(qi)到“多主(zhu)機(ji)”順(shun)利同(tong)時(shi)(shi)訪問的(de)效果。多主(zhu)機(ji)還可以讓主(zhu)機(ji)1查詢的(de)返回數據(ju)不會發送到主(zhu)機(ji)2,引起(qi)數據(ju)干擾。
需要指(zhi)出(chu)的(de)(de)是(shi)Modbus網關(guan)一般具(ju)有自動(dong)查詢和(he)存儲(chu)寄存器內(nei)容的(de)(de)功能,從而解決多(duo)主機訪問的(de)(de)沖突(tu)問題,但(dan)是(shi)此類Modbus網關(guan)對于非Modbus RTU的(de)(de)RS485協議(例如(ru)645協議)則(ze)無能為力。但(dan)是(shi)5143則(ze)可(ke)以同(tong)樣(yang)可(ke)以適用于非Modbus RTU類型的(de)(de)多(duo)主機實(shi)現。
首先我們測(ce)試一下(xia)不啟用多主機,而是普通“透傳”方式(shi)下(xia)的(de)情況(kuang):
我們使用兩個SocketDlgTest工具連接(jie)上5143,不斷(duan)同時(shi)(shi)發(fa)(fa)送(song)(song)645的協議指令68 50 00 00 00 00 00 68 01 02 46 C7 30 16,如圖所示(shi)本來為:68 50 00 00 00 00 00 68 81 06 46 c7 53 35 34 33 a3 16的指令沖突(tu)后(hou)變為68 50 00 00 00 00 00 68 81 06 c6。也(ye)就(jiu)是出現丟失和(he)誤碼。另(ling)外(wai)只(zhi)有一個SocketDlgTest發(fa)(fa)送(song)(song)時(shi)(shi),在(zai)數(shu)據(ju)返回的時(shi)(shi)候兩個SocketDlgTest窗(chuang)(chuang)口(kou)都收到數(shu)據(ju),這(zhe)樣也(ye)不符合要求。應該是不發(fa)(fa)送(song)(song)數(shu)據(ju)的窗(chuang)(chuang)口(kou)不收到任何返回。
現在(zai)開啟“多(duo)主機功能”,配置(zhi)5143時保持“轉化(hua)協議”為(wei)“無”,點擊“更多(duo)高級選項…”,設置(zhi)如下。
由于這里串(chuan)口(kou)為(wei)1200bps設(she)(she)置超時為(wei)1000。返回“設(she)(she)備設(she)(she)置”后(hou)點擊“修改設(she)(she)置”。此后(hou)再進行(xing)以(yi)上的(de)實(shi)驗,發現(xian)(xian)無(wu)論如何同時發送,都會(hui)得(de)到(dao)正(zheng)確的(de)數(shu)據(ju)。并(bing)且不發送的(de)SocketDlgTest窗口(kou)不會(hui)收到(dao)數(shu)據(ju)。真正(zheng)實(shi)現(xian)(xian)了防沖突和獨立收發通訊(xun)。另外結合ZLvricom的(de)虛(xu)擬串(chuan)口(kou),可以(yi)在兩個主機上使用原來的(de)串(chuan)口(kou)軟件進行(xing)通訊(xun)。
總之,“多(duo)主機(ji)功(gong)能”為各(ge)類非Modbus RTU的(de)RS485儀(yi)表的(de)多(duo)主機(ji)訪問提供了一種有效(xiao)的(de)方(fang)案。