EIO Link協(xié)議編程說明
EIO Link協(xié)議編程說明
1、 與上位機(jī)通訊方式
EIO支持模式>和模式>兩種工作模式。
l 模式>下,EIO監(jiān)聽TCP/IP端口(默認(rèn)為5100),等待遠(yuǎn)程主機(jī)建立連接。
l 模式>下,EIO根據(jù)設(shè)置,主動(dòng)連接指定的或通過域名解析獲得的遠(yuǎn)程主機(jī)地址。
設(shè)備默認(rèn)設(shè)置為模式>。
1) Socket TCP/IP通訊方式
上位機(jī)軟件通過Socket規(guī)范與EIO直接建立TCP/IP連接,在成功建立TCP/IP連接后,上位機(jī)與設(shè)備就可以進(jìn)行數(shù)據(jù)通訊。
2) 虛擬串口通訊方式
EIO支持虛擬串口技術(shù),可以將EIOLink端口映射為本機(jī)的虛擬串口。上位機(jī)軟件只需要按照常規(guī)的串口編程方式,使用EIOLink報(bào)文就可以與設(shè)備進(jìn)行通訊,無需編寫復(fù)雜的網(wǎng)絡(luò)代碼。
2、 功能描述
l 為EIO專有協(xié)議,可以實(shí)時(shí)獲得開關(guān)量輸入狀態(tài)。實(shí)時(shí)設(shè)置EIO開關(guān)量輸出狀態(tài)
l 支持2個(gè)EIO配對(duì),透?jìng)鏖_關(guān)量輸入/輸出狀態(tài)
l EIO Link支持TCP/IP Server、Client兩種工作方式
l 支持開關(guān)量輸入狀態(tài)變化主動(dòng)發(fā)送
l Client模式下,支持動(dòng)態(tài)域名解析
l 7字節(jié)定長(zhǎng)短包傳輸方式
3、 EIOLink協(xié)議報(bào)文
1) 報(bào)文說明
報(bào)文數(shù)據(jù)樣本(十六進(jìn)制):00 00 FF 00 00 00 00
報(bào)文結(jié)構(gòu)
命令碼 | 狀態(tài)碼 | 數(shù)據(jù)1 | 數(shù)據(jù)2 | 數(shù)據(jù)3 | 數(shù)據(jù)4 | 數(shù)據(jù)5 |
00 | 00 | FF | 00 | 00 | 00 | 00 |
l 命令碼
00:狀態(tài)更新命令,定時(shí)發(fā)送的開關(guān)量輸入狀態(tài)報(bào)文。
01:實(shí)時(shí)輸入狀態(tài)變化命令,當(dāng)開關(guān)量輸入狀態(tài)發(fā)生變化時(shí),EIO主動(dòng)發(fā)送此命令碼的報(bào)文。
l 狀態(tài)碼
00:說明報(bào)文正確,否則為報(bào)文為錯(cuò)誤狀態(tài),由此字節(jié)指出錯(cuò)誤碼。
l 數(shù)據(jù)1-數(shù)據(jù)5
1) EIO發(fā)出報(bào)文(上位機(jī)接收時(shí))
命令碼為00時(shí)含義:8-40路開關(guān)量輸入同步狀態(tài)數(shù)據(jù),EIO定時(shí)發(fā)送此報(bào)文。
命令碼為01時(shí)含義: 8-40路開關(guān)量輸入變化實(shí)時(shí)數(shù)據(jù),EIO檢測(cè)到8-40路開關(guān)量輸入任意一路發(fā)生了變化(接通或斷開),將主動(dòng)向上位機(jī)發(fā)送開關(guān)量輸入狀態(tài)數(shù)據(jù)。
例如EIO發(fā)出報(bào)文<00 01 0F 00 00 0000>,上位機(jī)接收并解釋為EIO的開關(guān)量輸入發(fā)生了變化,第1組8路開關(guān)量輸入中的1、2、3、4為接通狀態(tài),5、6、7、8為斷開狀態(tài)。
例如EIO發(fā)出報(bào)文<00 00 F0 00 00 0000>,上位機(jī)接收并解釋為EIO定期發(fā)送的報(bào)文狀態(tài)數(shù)據(jù),當(dāng)前第1組8路開關(guān)量輸入中的1、2、3、4為接通狀態(tài),5、6、7、8為斷開狀態(tài)。如果長(zhǎng)時(shí)間(默認(rèn)為超過5秒)收不到此類型報(bào)文,上位機(jī)可判定網(wǎng)絡(luò)故障或EIO已經(jīng)丟失。
2) EIO接收?qǐng)?bào)文(上位機(jī)發(fā)送時(shí))
命令碼為00或01時(shí)均解釋為:
8-40路開關(guān)量輸出控制數(shù)據(jù),數(shù)據(jù)1控制第1組8路開關(guān)量輸出,數(shù)據(jù)2控制第2組8路開關(guān)量輸出,以此類推。
當(dāng)數(shù)據(jù)的字節(jié)中的數(shù)據(jù)位置1時(shí),對(duì)應(yīng)的開關(guān)量輸出為接通,或低電平狀態(tài)。
例如EIO收到報(bào)文<00 00 8F 00 00 0000>后,將接通第1組輸出中的1、2、3、4、8,或設(shè)置為低電平。而將5、6、7斷開或設(shè)置成高電平。
4、 報(bào)文詳解
l 從EIO設(shè)備接收?qǐng)?bào)文
收到報(bào)文含義為:遠(yuǎn)程EIO設(shè)備的開關(guān)量輸入狀態(tài)。
數(shù)據(jù)1至數(shù)據(jù)5,一共5個(gè)字節(jié),每個(gè)字節(jié)對(duì)應(yīng)EIO的1組8路開關(guān)量輸入狀態(tài),數(shù)據(jù)1對(duì)應(yīng)第1組8個(gè)開關(guān)量輸入,以此類推。超過EIO輸入路數(shù)的數(shù)據(jù)字節(jié)一直為0。
置1的位,表示該路開關(guān)量輸入為接通或低電平狀態(tài)。
置0的位,表示該路開關(guān)量輸入為斷開或高電平狀態(tài)。
EIO設(shè)備支持開關(guān)量狀態(tài)變化主動(dòng)發(fā)送,在與EIO Link端口(默認(rèn)為5100)建立TCP/IP連接后,如果EIO設(shè)備的開關(guān)量輸入狀態(tài)發(fā)生改變,EIO將通過此連接,主動(dòng)發(fā)送實(shí)時(shí)的開關(guān)量輸入狀態(tài)報(bào)文(命令碼為01)。
為了增強(qiáng)可靠性,即使開關(guān)量輸入狀態(tài)沒有變化,EIO也會(huì)根據(jù)設(shè)置的間隔時(shí)間,一直發(fā)送當(dāng)前開關(guān)量輸入狀態(tài)報(bào)文(命令碼為00)。
l 向EIO設(shè)備發(fā)送報(bào)文
發(fā)送報(bào)文含義為:設(shè)置遠(yuǎn)程EIO設(shè)備的開關(guān)量輸出為指定狀態(tài)(命令碼為00或01)。
數(shù)據(jù)1至數(shù)據(jù)5,一共5個(gè)字節(jié),每個(gè)數(shù)據(jù)字節(jié)的8個(gè)數(shù)據(jù)位,控制8路輸出狀態(tài)。超過*大輸出路數(shù)的控制字節(jié)將被忽略。
置1位,對(duì)應(yīng)的輸出為接通或低電平。
置0位,對(duì)應(yīng)輸出為斷開或高電平。
5、 更多示例
l 從EIO收到報(bào)文
收到:00 00 1C 00 00 00 00
說明:EIO的開關(guān)量輸入狀態(tài)為1C=0001 1100,第1、2、6、7、8路輸入為斷開或高電平狀態(tài),第3、4、5路為接通或低電平狀態(tài)。
l 向EIO發(fā)送報(bào)文
設(shè)置EIO的輸出狀態(tài)為指定狀態(tài)
發(fā)送:00 00 FF 00 00 00 00
說明:將EIO的第1組8路輸出設(shè)置為全部接通或低電平狀態(tài)。