RS485由于是單雙工方式的總線,為了防止總線上的競(jìng)爭(zhēng)一般只能有一臺(tái)主機(jī),并且采用一次主機(jī)詢問,一次從機(jī)應(yīng)答的方式。但是有的時(shí)候,我們我們確實(shí)需要多臺(tái)主機(jī)去監(jiān)控多個(gè)RS485設(shè)備,比如需要兩臺(tái)電腦都可以監(jiān)控相同的幾個(gè)RS485設(shè)備,而且最好共用RS485總線。
這個(gè)問題雖然在實(shí)際中經(jīng)常碰到,但是沒有很好的解決。其難點(diǎn)在于,2臺(tái)主機(jī)是完全獨(dú)立的,那么它們沒有協(xié)調(diào)機(jī)制,如果2臺(tái)主機(jī)同時(shí)詢問從設(shè)備,那么必然引起RS485總線上的數(shù)據(jù)沖突。
由于RS485總線本身的問題,用RS845無(wú)法解決以上沖突問題。使用ZLAN5142轉(zhuǎn)換器(如上圖轉(zhuǎn)換器1所示)可以先將RS485信號(hào)轉(zhuǎn)換為網(wǎng)絡(luò)(TCP/IP)信號(hào)。由于網(wǎng)絡(luò)信號(hào)本身能夠處理并發(fā)性,所以可以很好的解決RS485總線的沖突問題。
雖然從設(shè)備這端仍然是RS485,但是沒有關(guān)系,因?yàn)閆LAN5142能夠?qū)⒔邮盏亩鄠€(gè)主機(jī)的數(shù)據(jù)進(jìn)行排隊(duì),數(shù)據(jù)會(huì)暫時(shí)緩存在ZLAN5142內(nèi)部,而不會(huì)從串口同時(shí)輸出到RS485上。ZLAN5142支持同時(shí)10個(gè)TCP連接訪問。
卓嵐ZLAN5142的數(shù)據(jù)緩存功能是解決以上RS485多主機(jī)問題的關(guān)鍵因素,但是這還不能夠完全解決問題,這是因?yàn)槎嘀鳈C(jī)還涉及到更為復(fù)雜的針對(duì)特定協(xié)議等待時(shí)間的定制化的排隊(duì)機(jī)制。這也是就說(shuō)普通的串口轉(zhuǎn)以太網(wǎng)轉(zhuǎn)換器是無(wú)法實(shí)現(xiàn)多主機(jī)RS485功能,就是卓嵐普通的ZLAN5102也是不具備這個(gè)功能,RS485多主機(jī)必須選擇具有特定的RS485多主機(jī)定制化程序的ZLAN5142型號(hào).
如果主機(jī)是計(jì)算機(jī),那么實(shí)現(xiàn)方法上基本上有3種方式:(1)用戶將原來(lái)的打開COM口的串口通信方式改為TCP/IP的網(wǎng)絡(luò)通信方式,采用基于socket的網(wǎng)絡(luò)編程來(lái)實(shí)現(xiàn)。(2)將原來(lái)的基于RS485的Modbus RTU協(xié)議改為使用Modbus TCP協(xié)議,這是因?yàn)閆LAN5142具有Modbub TCP轉(zhuǎn)RTU功能。使用該方法時(shí),請(qǐng)?jiān)谵D(zhuǎn)化協(xié)議部分選擇“Modbus TCP轉(zhuǎn)RTU”。(3)最快捷的方式是在多臺(tái)主機(jī)上使用虛擬串口,這樣用戶的原來(lái)的串口軟件無(wú)需修改即可使用
如果主機(jī)是RS485設(shè)備,那么首先將多個(gè)主站RS485串口使用ZLAN5102轉(zhuǎn)化為網(wǎng)絡(luò),然后再連接到ZLAN5142上,關(guān)于多個(gè)ZLAN5102和ZLAN5142的對(duì)聯(lián)的方法,可以參考這里。如果多個(gè)串口比較近也可以使用多串口服務(wù)器ZLAN5400來(lái)代替多個(gè)ZLAN5102。