IOT-Tree Server是個(gè)開(kāi)源物聯(lián)網(wǎng)軟件,可以作為組態(tài)軟件成為自動(dòng)化系統(tǒng)的上位軟件。她提供了接入、數(shù)據(jù)組織管理、控制邏輯和人機(jī)交互多個(gè)方面的功能。從版本0.99開(kāi)始,IOT-Tree Server新增了西門(mén)子以太網(wǎng)驅(qū)動(dòng),能夠通過(guò)以太網(wǎng)的方式直接訪問(wèn)S7-300/1200/1500.
S7-200 smart好像也支持S7協(xié)議,估計(jì)也能直接支持(目前沒(méi)有測(cè)試)。
對(duì)于更早的S7-200,建議使用RS485接口PPI協(xié)議直接訪問(wèn),具體可以查看:
使用IOT-Tree Server通過(guò)PPI(RS485)連接西門(mén)子PLC S7-200
如果你對(duì)IOT-Tree Server還不熟悉可以參考如下文檔:
使用開(kāi)源IOT-Tree Server進(jìn)行工業(yè)現(xiàn)場(chǎng)自動(dòng)化控制
使用IOT-Tree Server的OPC DA Client連接組態(tài)王提取數(shù)據(jù)到云端
在此假設(shè)你對(duì)西門(mén)子PLC S7系列已經(jīng)熟悉(當(dāng)然用相關(guān)PLC做過(guò)一些項(xiàng)目就更好了)。
1 設(shè)備和環(huán)境準(zhǔn)備
本例子以S7-1500作為測(cè)試PLC,你如果沒(méi)有相關(guān)設(shè)備,可以安裝西門(mén)子的仿真環(huán)境,配合NetToPLCsim軟件模擬。
- STEP 7 Basic/Professional 和 WinCC Basic/Comfort/Advanced
- 使用IOT-Tree Server通過(guò)PPI(RS485)連接西門(mén)子PLC S7-200
?具體請(qǐng)參考網(wǎng)上的相關(guān)文章.
1.1?PLC端準(zhǔn)備
通過(guò)TIA Portal對(duì)PLC進(jìn)行本地控制編程,其中PLC IP地址為:192.168.18.8,端口:102
給PLC通電,下載程序啟動(dòng)。
使用KEPServerEx6進(jìn)行連接測(cè)試,確保PLC外部連接正常,我配置的點(diǎn)位信息如下:
?點(diǎn)擊Quick Client按鈕,彈出窗口查看對(duì)應(yīng)節(jié)點(diǎn)下的數(shù)據(jù)項(xiàng),確保全部都是"Good"
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-780224.html
1.2?PC端IOT-Tree Server安裝配置
本例子使用普通PC Windows環(huán)境安裝部署IOT-Tree Server。如果你還沒(méi)有安裝過(guò)IOT-Tree Server,可以參考:https://github.com/bambooww/iot-tree/blob/main/web/doc/cn/doc/quick_start.mdhttps://github.com/bambooww/iot-tree/blob/main/web/doc/cn/doc/quick_start.md
?以上所有準(zhǔn)備完成之后,接下來(lái)我們就可以使用IOT-Tree通過(guò)相關(guān)驅(qū)動(dòng)對(duì)接了。
?2 IOT-Tree 端配置過(guò)程
在IOT-Tree中,新建項(xiàng)目和在現(xiàn)有項(xiàng)目中新增接入和設(shè)備差別不大。我本地已經(jīng)建立了自動(dòng)化監(jiān)控項(xiàng)目,已經(jīng)接入并配置了一些的設(shè)備。點(diǎn)擊進(jìn)入項(xiàng)目配置界面,我的項(xiàng)目?jī)?nèi)容如下:
?
2.1 新增TcpClient?Connector和通道
點(diǎn)擊左上角Connectors,在菜單中選擇Tcp Client,然后在彈出的窗口中,填寫(xiě)如下內(nèi)容:
?其中,主要內(nèi)容就是PLC的IP地址和端口,點(diǎn)擊Ok按鈕,就可以看到左邊新增了一個(gè)TcpClient接入。
接著我們?cè)陧?xiàng)目根節(jié)點(diǎn)鼠標(biāo)右鍵,選擇New Channel,在彈出窗口中,填寫(xiě)如下內(nèi)容:
?
?其中,Driver點(diǎn)擊選擇Siemens TCP/IP Ethernet。這個(gè)驅(qū)動(dòng)對(duì)應(yīng)與西門(mén)子PLC相關(guān)協(xié)議。點(diǎn)擊OK完成通道的添加。此時(shí),你可以看到s7eth通道左邊和其他通道不一樣,左邊并沒(méi)有連接正方形框。這是因?yàn)榛赥CP/IP的PLC每個(gè)設(shè)備都會(huì)需要自己的Tcp連接,所以和以總線方式的通道不同,此驅(qū)動(dòng)下面的接入關(guān)聯(lián)必須通過(guò)設(shè)備進(jìn)行。因此,我們?cè)谕ǖ老旅嫦仍黾覲LC設(shè)備。
?2.2 新增PLC設(shè)備并關(guān)聯(lián)TcpClient
在通道s7eth節(jié)點(diǎn)上鼠標(biāo)右鍵,選擇New Device,在彈出窗口中填寫(xiě)設(shè)備信息:
Name=plc3
Model=S7-1500
?
?
其他都不需要填寫(xiě)了,點(diǎn)擊OK之后,通道下面就會(huì)出現(xiàn)對(duì)應(yīng)設(shè)備節(jié)點(diǎn)。此時(shí),你會(huì)發(fā)現(xiàn)設(shè)備左邊有個(gè)圓形連接框。
接著,鼠標(biāo)點(diǎn)擊接入c18_8的右邊的小正方形不松開(kāi),拖拉線段到設(shè)備plc3左邊的小圓形上方松開(kāi),系統(tǒng)就會(huì)建立接入到設(shè)備之間的關(guān)聯(lián),如下圖:
?
從中我們可以看出,如果左邊接入使用不同的以太網(wǎng)接入方式,也可以和相關(guān)設(shè)備進(jìn)行對(duì)接。一般情況下,plc端實(shí)現(xiàn)的是Tcp Server,只能等待Client的接入。我們可以使用中間代理節(jié)點(diǎn),代理節(jié)點(diǎn)可以是個(gè)client主動(dòng)連接IOT-Tree Server,并在另一端使用client方式連接PLC,這樣我們就可以更靈活的支持復(fù)雜的網(wǎng)絡(luò)環(huán)境;可以看出接入和數(shù)據(jù)組織的分離,使得IOT-Tree能夠更加優(yōu)雅的應(yīng)對(duì)各種設(shè)備和數(shù)據(jù)的接入。
點(diǎn)擊plc3節(jié)點(diǎn),在右邊主內(nèi)容區(qū)域點(diǎn)擊Properties標(biāo)簽,我們可以修改S7 Communication Parameters相關(guān)機(jī)架和槽位參數(shù)。如下圖:
?
?2.3 新增設(shè)備數(shù)據(jù)項(xiàng)(Tag)
S7-1500內(nèi)部數(shù)據(jù)通過(guò)不同的存儲(chǔ)區(qū)方式進(jìn)行,如輸出映像寄存器區(qū)Q、輸入映像寄存器I、DB存儲(chǔ)區(qū)等等。IOT-Tree Server對(duì)應(yīng)的驅(qū)動(dòng)也兼容此PLC數(shù)據(jù)尋址方式。
在主內(nèi)容區(qū)域點(diǎn)擊[Tags]標(biāo)簽,下面的內(nèi)容就是plc3設(shè)備對(duì)應(yīng)的數(shù)據(jù)項(xiàng)列表界面。我們可以點(diǎn)擊上方的+Add Tag按鈕進(jìn)行添加。
在彈出窗口中,我們填寫(xiě)如下內(nèi)容:
Name=d1
Title=d1
Date type=uint32
R/W=Read/Write
Address=DB200,DBD0
編輯窗口如圖所示:
??點(diǎn)擊OK之后,就可以看到列表中新增了這一項(xiàng)。
用同樣方法,我們新增如下內(nèi)容:
Name=d2
Title=d2
Date type=uint16
R/W=Read/Write
Address=DB200.DBW1
Name=d3
Title=d3
Date type=uint16
R/W=Read/Write
Address=DB200.W3
Name=i1_0
Title=I1.0
Date type=bool
R/W=Read Only
Address=I1.0
Name=i1_1
Title=I1.1
Date type=bool
R/W=Read/Write
Address=I1.1
Name=q0_1
Title=Q0.1
Data Type=bool
R/W=Read/Write
Address=QX0.1
Name=q0_3
Title=q0_3
Data Type=bool
R/W=Read/Write
Address=Q0.3
Name=qb2
Title=QB2
Data Type=uint8
R/W=Read/Write
Address=QB2
Name=x2_6
Title=x2_6
Data Type=bool
R/W=Read/Write
Address=DB200.X2.6
最終,我們?cè)谠O(shè)備plc3下面,完成了如下數(shù)據(jù)項(xiàng)列表:
?
其中,關(guān)鍵內(nèi)容是每個(gè)Tag的Address內(nèi)容,這個(gè)寫(xiě)法兼容西門(mén)子的PLC編程軟件。另外一個(gè)對(duì)應(yīng)的是值類型(Value type),可以看出輸入的Address可能會(huì)限定Value type。在編寫(xiě)時(shí),可以點(diǎn)擊Address右邊的“Check Address"按鈕,就會(huì)自動(dòng)幫你修改。
我們配置的這些Tag會(huì)在IOT-Tree Server的這個(gè)項(xiàng)目中被使用,很明顯,如果你想讓上位系統(tǒng)和PLC內(nèi)部的程序協(xié)調(diào)配合做控制,那么通過(guò)一些公共的變量定義成Tag進(jìn)行互相寫(xiě)入讀取即可。
仔細(xì)看這些數(shù)據(jù)項(xiàng)的定義,可以發(fā)現(xiàn)與OPC軟件KEPServerEx很相似。實(shí)時(shí)上,IOT-Tree Server確實(shí)可以作為一個(gè)OPC軟件,其不同之處就是多了更多的功能,如在線UI繪制、腳本任務(wù)運(yùn)行、基于HTTP的JSON格式輸出,以更方便與物聯(lián)網(wǎng)應(yīng)用。
接下來(lái),我們就可以運(yùn)行查看效果了。
3 運(yùn)行效果
在確保PLC已經(jīng)通電運(yùn)行,點(diǎn)擊項(xiàng)目配置上方的綠色啟動(dòng)項(xiàng)目按鈕。
可以看到,所有的數(shù)據(jù)點(diǎn)都正常運(yùn)行了。此時(shí),我們可以配合KEPServerEx軟件,進(jìn)行寫(xiě)入數(shù)據(jù)并交叉查看數(shù)據(jù)變化。
如對(duì)于q0_1這個(gè)點(diǎn),你可以在Write列輸入1,點(diǎn)擊右邊寫(xiě)入按鈕,可以發(fā)現(xiàn)PLC的Q0.1端口有輸出(指示燈也同時(shí)變亮,前提是此輸出沒(méi)有受到你的PLC程序控制);同時(shí)查看Quick Client,可以發(fā)現(xiàn)q0_1的值也跟著變化了,反過(guò)來(lái)也一樣。如下圖:
?
4 更進(jìn)一步
你可以在此項(xiàng)目中,新增人機(jī)交互節(jié)點(diǎn)(HMI),并且通過(guò)在線編輯功能進(jìn)行操作界面的設(shè)計(jì)。這部分內(nèi)容請(qǐng)參考上面推薦的連接。如,在我的項(xiàng)目中,在,我實(shí)現(xiàn)了如下監(jiān)控畫(huà)面:
?
?
或者,你也可以把項(xiàng)目中的組織節(jié)點(diǎn)直接輸出http json格式的數(shù)據(jù),方便其他系統(tǒng)調(diào)用實(shí)時(shí)數(shù)據(jù)。如你在plc3節(jié)點(diǎn)上鼠標(biāo)右鍵,點(diǎn)擊Access,在彈出窗口中可以查看輸出的json格式數(shù)據(jù),非常方便其他系統(tǒng)調(diào)用:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-780224.html
?
到了這里,關(guān)于使用IOT-Tree Server連接西門(mén)子PLC S7-300/1200/1500的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!