陳文杰
摘 要:介紹西門子S7-1500 PLC 與斑馬打印機(jī)之間如何建立開放式用戶通信的技巧,如何使用ZPL-II-語言編程對(duì)斑馬打印機(jī)的標(biāo)簽?zāi)0暹M(jìn)行定義,并打印出來。
關(guān)鍵詞:S7-1500 斑馬打印機(jī) 開放式用戶通信 TCP
1 開放式用戶通信及通信任務(wù)概述
TCP支持面向TCP/IP的Socket。TCP支持給予TCP/IP的發(fā)送和接收,使得設(shè)備在工業(yè)以太網(wǎng)上的通信非常容易。這就允許 CPU 與任何通信設(shè)備進(jìn)行開放式數(shù)據(jù)交換,通信伙伴可以是兩個(gè) SIMATIC PLC,也可以是 SIMATIC PLC 和相應(yīng)的第三方設(shè)備,前提是這些設(shè)備支持該集成接口可用的連接類型。由于此通信僅由用戶程序中的指令進(jìn)行控制,因此可以在程序中建立和終止事件驅(qū)動(dòng)型連接。 在運(yùn)行期間,也可以通過用戶程序修改連接。
1.1 硬件和軟件需求及所完成通信任務(wù)
硬件:
(1)S7-1500 CPU
(2)斑馬打印機(jī)G430T(帶以太網(wǎng)口)
(3)PC(帶以太網(wǎng)卡)
(4)以太網(wǎng)電纜(交叉或直連)
(5)交換機(jī)EKI-2528(方便監(jiān)控)
軟件:
(1)STEP7 V13 SP1
(2)Zebra Setup Utilities(可在斑馬打印機(jī)的隨機(jī)光盤獲?。?/p>
通信任務(wù)
(1)S7-1500發(fā)送DB1中的254個(gè)字節(jié)到斑馬打印機(jī)G430T
(2)斑馬打印機(jī)G430T接收到S71500的DB1數(shù)據(jù)區(qū)中的254個(gè)字節(jié),并將其按規(guī)定的格式打印出來。
(3)實(shí)現(xiàn)根據(jù)產(chǎn)品文字號(hào)碼追溯產(chǎn)品的生產(chǎn)過程信息的目的。
2 S7-1500側(cè)的編程組態(tài)
使用STEP7 V13 SP1 軟件新建一個(gè)項(xiàng)目并完成硬件配置和網(wǎng)絡(luò)組態(tài)。本例中在S7-1500側(cè)采用集成的簡(jiǎn)單指令“TSEND_C”來實(shí)現(xiàn)連接關(guān)系的建立中止以及數(shù)據(jù)的發(fā)送。
2.1 在STEP7 V13 SP1中組態(tài)S7-1500CPU,并且打開 “設(shè)備視圖”→“PROFINET 接口_1” →“屬性”→“常規(guī)”→“以太網(wǎng)地址”→“IP協(xié)議” → “在項(xiàng)目中設(shè)置IP”,為集成PN口分配IP地址192.168.0.100,子網(wǎng)掩碼255.255.255.0。
2.2在主循環(huán)程序中調(diào)用功能塊“TSEND_C”編寫集成發(fā)送程序,為其分配背景數(shù)據(jù)塊。其接口參數(shù)可以通過組態(tài)進(jìn)行配置,在2.4中介紹。該塊在REQ上升沿時(shí)觸發(fā)數(shù)據(jù)發(fā)送。本例中調(diào)用打印機(jī)標(biāo)簽?zāi)0宓腪PL-II-語言程序就存儲(chǔ)在DB1數(shù)據(jù)區(qū)以DBB0開頭的這254個(gè)字節(jié)中。
2.3“TSEND_C”指令可以用“TCP”協(xié)議或者“ISO_on_TCP”,使本地機(jī)與遠(yuǎn)程機(jī)進(jìn)行通信,本地機(jī)向遠(yuǎn)程機(jī)發(fā)送數(shù)據(jù)。該指令能被CPU自動(dòng)監(jiān)控和維護(hù)。具體參數(shù)含義可以選中該塊并按F1鍵,參考在線幫助。
2.4 選中“TSEND_C”塊,在屬性組態(tài)菜單中,按如下順序?yàn)椤癟SEND-C”塊組態(tài)連接參數(shù)。在本例中,S7-1500與第三方通信設(shè)備進(jìn)行開放式數(shù)據(jù)交換,所以首先通信伙伴選擇為未指定。然后新建連接數(shù)據(jù),系統(tǒng)自動(dòng)分配連接數(shù)據(jù)存儲(chǔ)在PLC_1_Send_DB中。選擇連接類型TCP,選擇組態(tài)模式為使用程序塊。指定通信伙伴的IP地址192.168.0.2,指定連接ID為1,選擇一方主動(dòng)要建立連接,本例中選擇S7-1500主動(dòng)建立連接。接下來定義本地的端口號(hào)和通信伙伴端口號(hào)。本例中PLC選擇端口號(hào)2000,第三方通信設(shè)備選擇端口號(hào)2100。此處定義的端口號(hào)和IP地址必須與斑馬打印機(jī)G430T側(cè)一致。配置完成后,可以點(diǎn)擊打開:程序塊→系統(tǒng)塊→系統(tǒng)資源→PLC_1_Send_DB查看,可以看到其中包含TCP連接所需的參數(shù),并且該P(yáng)LC_1_Send_DB作為變量已經(jīng)自動(dòng)填到“TSEND_C”相應(yīng)的輸入管腳CONNECT上。
2.5 在本例中,CPU以接收 “PrintSwich”按鈕信號(hào)來發(fā)送數(shù)據(jù),在REQ上升沿時(shí)激活。連接關(guān)系在CONT為1時(shí)建立并保持,為0時(shí)斷開。發(fā)送的地址區(qū)為DB1.DBX0.0開始的254個(gè)字節(jié)。 完成編程組態(tài)并下載后,可以在S7-1500中,通過點(diǎn)擊“TSEND_C”程序塊右上角的診斷圖標(biāo) ,進(jìn)入連接在線信息頁面可以查看連接狀態(tài)。
3 斑馬打印機(jī)側(cè)的配置與編程
在對(duì)斑馬打印機(jī)進(jìn)行設(shè)置與編程前,需先將電腦與斑馬打印機(jī)通過USB打印線連起來,并接上電源,再安裝驅(qū)動(dòng)。
3.1 安裝 zebra setup utility 軟件,并打開軟件。
3.2 用USB 或者并口或者網(wǎng)絡(luò)接口連接好打印機(jī)與PC 機(jī),點(diǎn)擊“InstallNewPrinter”。本例中是通過USB打印線與打印機(jī)進(jìn)行通信設(shè)置。
3.3安裝驅(qū)動(dòng)后,將會(huì)可以看到你需要配置的打印機(jī),并選中該打印機(jī)。
3.4 然后點(diǎn)擊 “configure printer connectivity”,對(duì)打印機(jī)的參數(shù)進(jìn)行配置。
3.5 選擇打印機(jī)的連接類型。選中“Wireless”點(diǎn)擊下一步。
3.6設(shè)置打印機(jī)的IP地址,選擇“Static”,為打印機(jī)分配IP地址192.168.0.2,子網(wǎng)掩碼255.255.255.0。點(diǎn)擊“Nest”繼續(xù)打印機(jī)設(shè)置向?qū)?,其它設(shè)置一般采用默認(rèn)設(shè)置即可,直至所有打印機(jī)的設(shè)置向?qū)ЫY(jié)束。
3.7完成打印機(jī)的設(shè)置向?qū)Ш螅诖蛴C(jī)綠燈常亮狀態(tài)下,按住打印機(jī)上面的鍵,綠燈第一次閃一下后松開,打印機(jī)將打印出其修改后的參數(shù)數(shù)據(jù),看是否與設(shè)置向?qū)е性O(shè)置的參數(shù)一致。
3.8 打印機(jī)的默認(rèn)端口號(hào)是9100,也可以根據(jù)需要自行修改,如本例中打印機(jī)的端口號(hào)為2100。端口號(hào)的修改:將電腦與打印機(jī)通過網(wǎng)線連接,在網(wǎng)頁中輸入當(dāng)前打印機(jī)的IP地址如192.168.0.2回車即可打開打印機(jī)的參數(shù)網(wǎng)頁,默認(rèn)修改密碼為1234。
3.9 接下來我們就要根據(jù)事先設(shè)計(jì)好的標(biāo)簽?zāi)0?,按斑馬打印機(jī)-ZPL-II-語言編程,并將編好的程序發(fā)送給打印機(jī)。打開zebra setup utility 軟件,選中剛才設(shè)置的打印機(jī),點(diǎn)擊“Open Communication With Printer”按鈕,彈出“Direct Communication” 設(shè)置畫面,把編譯好的ZPL-II-語言程序黏貼到“untitled1”發(fā)送框,點(diǎn)擊“Send To Printer”按鈕,將程序程序下載到打印機(jī)中。該程序?qū)?biāo)簽?zāi)0宓牟季诌M(jìn)行定義。詳細(xì)定義程序如下:
^XA
^DFE:TCS0950.ZPL^FS
^MMT
^PW673
^LL0325
^LS0
^LT10
^FT512,351^BQN,2,5^FN1^FS
^FT143,239^A0N,42,40^FH\^FN2^FS
^FT143,295^A0N,42,40^FH\^FN3^FS
^FT145,48^A0N,42,36^FH\^FN4^FS
^FT156,109^A0N,42,36^FH\^FN5^FS
^FT193,171^A0N,42,40^FH\^FN6^FS
^FT510,109^A0N,42,40^FH\^FN7^FS
^FT520,170^A0N,42,40^FH\^FN8^FS
^FT474,49^A0N,42,40^FH\^FN9^FS
^FT574,48^A0N,42,40^FH\^FN10^FS
^FO3,123^GB668,0,4^FS
^FO2,185^GB668,0,2^FS
^FO2,61^GB669,0,5^FS
^FO461,3^GB0,181,3^FS
^FO332,3^GB0,181,4^FS
^FO131,3^GB0,322,4^FS
^FT604,170^A0N,42,40^FH\^FDm^FS
^FT372,171^A0N,42,40^FH\^FDQty^FS
^FT371,109^A0N,42,40^FH\^FDPIC^FS
^FT360,48^A0N,42,40^FH\^FDTime^FS
^FT38,268^A0N,42,40^FH\^FDNo.^FS
^FT15,170^A0N,42,40^FH\^FDModel^FS
^FT5,109^A0N,42,40^FH\^FDSection^FS
^FT21,49^A0N,42,40^FH\^FDName^FS
^FO669,3^GB0,321,3^FS
^FO2,4^GB0,321,3^FS
^FO1,321^GB668,0,4^FS
^FO3,3^GB668,0,3^FS
^PQ1,0,1,Y
^XZ
3.10調(diào)用模板,對(duì)打印機(jī)打印標(biāo)簽紙進(jìn)行打印及微調(diào)。這樣打印機(jī)的設(shè)置工作也就完成了。詳細(xì)調(diào)用模板程序如下:
^XA
^XFE:TCS0950.ZPL^FS
^FN1^FDMM,AL15ZGY000000101L13516093000003^FS
^FN2^FDL15ZGY0000001^FS
^FN3^FD01L13516093000003^FS
^FN4^FDPOSITIVE^FS
^FN5^FDL15SPL.^FS
^FN6^FDL135^FS
^FN7^FD002644^FS
^FN8^FD1312^FS
^FN9^FD1110^FS
^FN10^FD11:54^FS
^XZ
圖1打印出來的產(chǎn)品信息
最后,只需將調(diào)用打印機(jī)標(biāo)簽?zāi)0錤PL-II-語言程序與S7-1500程序整合起來,即可將調(diào)用標(biāo)簽?zāi)0宓某绦蚣癙LC中的生產(chǎn)信息如:操作機(jī)臺(tái)、操作人員、經(jīng)過的工序、生產(chǎn)時(shí)間日期和工藝參數(shù)等以字符串的形式串連起來,存儲(chǔ)在以DB1.DBX0.0開始的254個(gè)字節(jié)中,點(diǎn)擊打印按鈕PLC通過TCP通信發(fā)送給打印機(jī),并將其打印出來。達(dá)到根據(jù)產(chǎn)品文字號(hào)碼追溯產(chǎn)品的生產(chǎn)過程信息的目的(見圖1)。
參考文獻(xiàn)
[1]《西門子PLC工業(yè)通信完全精通教程》向曉漢主編 北京化學(xué)工業(yè)出版社2013.2.
[2]《GX420t / GX430t 用戶指南》Zebra Teachno
logies 980612-061 修訂版 C.
[3]《ZPL II 語言編程基礎(chǔ)》.Zebra Teachnolo'
gies.