楊奉偉 劉燕卿 徐伯俊 謝春萍 蘇旭中
(江南大學(xué),江蘇無錫,214122)
竹節(jié)紗是花式紗線的重要品種之一,即在單紗的長(zhǎng)度方向上分布有粗細(xì)節(jié)狀態(tài),其產(chǎn)品應(yīng)用廣泛,如窗簾,牛仔布,裝飾用品等。竹節(jié)紗生產(chǎn)參數(shù)主要包括基紗號(hào)數(shù)、竹節(jié)號(hào)數(shù)、節(jié)距及節(jié)長(zhǎng)等,影響竹節(jié)紗表面竹節(jié)分布及粗細(xì)分布[1-2]??紤]到竹節(jié)紗工藝參數(shù)設(shè)置的方便快捷,節(jié)長(zhǎng)、節(jié)粗等重要工藝參數(shù)的快速有效設(shè)置,以及工藝參數(shù)的存儲(chǔ),開發(fā)一種可在PC端進(jìn)行操作的竹節(jié)紗生產(chǎn)監(jiān)控系統(tǒng),實(shí)現(xiàn)工藝參數(shù)的實(shí)時(shí)修改以及工藝的存儲(chǔ)和提取,從而降低勞動(dòng)強(qiáng)度,提高生產(chǎn)效率。
考慮到竹節(jié)紗生產(chǎn)設(shè)備的實(shí)際生產(chǎn)環(huán)境,本系統(tǒng)采用C/S架構(gòu),客戶端主機(jī)通過PPI協(xié)議直接與竹節(jié)紗生產(chǎn)設(shè)備相互通信,其優(yōu)點(diǎn)在于無需增加其他組態(tài)軟件即可實(shí)現(xiàn)與西門子S7-200系列PLC通信。同時(shí)該系統(tǒng)也具有很大的可移植性,有利于現(xiàn)階段竹節(jié)紗生產(chǎn)設(shè)備的智能化改造。
竹節(jié)紗按生產(chǎn)原理可分為變牽伸型、植入型、涂色型、纖維型,其中變牽伸型是通過不斷改變細(xì)紗機(jī)中后羅拉的速度來控制紗線的后區(qū)牽伸倍數(shù),從而實(shí)現(xiàn)控制細(xì)紗的粗細(xì)節(jié)分布,竹節(jié)紗形成原理如圖1所示。由江南大學(xué)研發(fā)的數(shù)字智能竹節(jié)紗生產(chǎn)設(shè)備就是采用了上述原理,節(jié)長(zhǎng)等工藝參數(shù)可根據(jù)需求任意調(diào)節(jié)。中后羅拉速度根據(jù)工藝參數(shù)進(jìn)行調(diào)節(jié),如圖2所示。
圖1 竹節(jié)紗形成原理
圖2 中后羅拉變速原理
本軟件的開發(fā)是為了解決在竹節(jié)紗生產(chǎn)過程中工藝參數(shù)的存儲(chǔ)、修改和查詢時(shí),設(shè)置與核對(duì)易出錯(cuò)等問題而開發(fā)的。軟件設(shè)計(jì)主要實(shí)現(xiàn)如下的功能。
(1)能夠?qū)χ窆?jié)紗生產(chǎn)過程中的單修正系數(shù)、雙修正系數(shù)、模糊方式的選擇、前羅拉轉(zhuǎn)速以及電機(jī)轉(zhuǎn)速等基本的工藝參數(shù)實(shí)時(shí)查看和修改。
(2)工藝參數(shù)的錄入與保存。長(zhǎng)度與倍率參數(shù)決定了竹節(jié)紗的節(jié)長(zhǎng)、節(jié)距和節(jié)粗,進(jìn)而決定著竹節(jié)紗織物的外觀特征。
(3)工藝參數(shù)的查詢和載入。軟件能夠?qū)崿F(xiàn)對(duì)生產(chǎn)工藝參數(shù)的數(shù)據(jù)庫查詢,將工藝參數(shù)快速地從數(shù)據(jù)庫中提取到軟件相應(yīng)的位置。
竹節(jié)紗管理在線監(jiān)控系統(tǒng)由硬件和軟件兩部分組成,能夠?qū)崟r(shí)修改和監(jiān)視竹節(jié)紗的生產(chǎn)過程。硬件部分是在原有的竹節(jié)紗生產(chǎn)設(shè)備上進(jìn)行改造,取代觸摸屏的部分,采用PC與S7-200系列的PLC相連接。它的硬件組成部分主要包括普通PC、PLC、伺服電機(jī)、細(xì)紗機(jī),其中PC與PLC采用PPI協(xié)議專用電纜連接。
根據(jù)系統(tǒng)所需實(shí)現(xiàn)的功能,以及竹節(jié)紗生產(chǎn)過程中所需的工藝參數(shù),將系統(tǒng)主要分為4個(gè)部分進(jìn)行設(shè)計(jì),具體的軟件結(jié)構(gòu)設(shè)計(jì)如圖3所示。主界面與監(jiān)控界面中包括竹節(jié)紗生產(chǎn)的基本工藝參數(shù),如輪系系數(shù)、紡紗方式、單修正系數(shù)、雙修正系數(shù)等;竹節(jié)紗設(shè)備的運(yùn)行狀態(tài),如前羅拉轉(zhuǎn)速、速度控制門限、錠速、生產(chǎn)效率以及節(jié)長(zhǎng)、節(jié)粗等各項(xiàng)參數(shù)。主界面與監(jiān)控界面與通信程序相連接,可以實(shí)時(shí)監(jiān)控機(jī)器的運(yùn)行狀態(tài)以及當(dāng)前竹節(jié)紗參數(shù),修改竹節(jié)紗的各項(xiàng)參數(shù)。品種查詢和品種創(chuàng)新界面主要包括保存品種、查詢品種、刪除品種等操作,并與SQL數(shù)據(jù)庫相鏈接,用戶可以通過訪問數(shù)據(jù)庫的方式實(shí)現(xiàn)對(duì)新工藝的存儲(chǔ)和舊工藝的提取等。
圖3 系統(tǒng)終端的功能結(jié)構(gòu)示意圖
PLC作為竹節(jié)紗生產(chǎn)設(shè)備的控制核心,內(nèi)部存儲(chǔ)大量生產(chǎn)數(shù)據(jù)包括機(jī)器運(yùn)行狀態(tài)、竹節(jié)紗生產(chǎn)參數(shù)等重要數(shù)據(jù)。通信程序基于PPI協(xié)議實(shí)現(xiàn)上位機(jī)對(duì)S7-200系列PLC內(nèi)部數(shù)據(jù)的監(jiān)控與控制,進(jìn)而實(shí)現(xiàn)對(duì)竹節(jié)紗生產(chǎn)設(shè)備的監(jiān)控與控制。
在竹節(jié)紗監(jiān)控軟件的開發(fā)過程中,需要PC端與S7-200系列PLC連接,因此需要選取合適的通信方式。S7-200系列的PLC支持4種通訊協(xié)議,包括MPI、Modbus、PPI和自由口通信[3]。其中MPI和Modbus通訊都需要額外的模塊支持,若采用自由口通信,實(shí)現(xiàn)起來較困難,通信協(xié)議不穩(wěn)定,也會(huì)占用PLC內(nèi)部有限的存儲(chǔ)空間;目前已有郭在峰基于Modbus通信實(shí)現(xiàn)了與S7-200系列PLC的通信[4],但是采用Modbus通信需要在上位機(jī)和PLC中都編寫對(duì)應(yīng)的通信程序,不便于后期系統(tǒng)的維護(hù)和修改。采用PPI通訊只需要上位機(jī)按照PPI協(xié)議編寫程序,即可與PLC進(jìn)行通信,無需在PLC中編寫通信程序,針對(duì)本軟件來說,極大地節(jié)省了PLC內(nèi)部有限的存儲(chǔ)空間。PPI協(xié)議通訊采用主從方式,主設(shè)備為 PC,從設(shè)備為 PLC。一個(gè)完整的讀寫過程如圖4所示。
圖4 PPI協(xié)議通訊流程圖
關(guān)于指令的編寫,何德軍、盧志俊、彭魏臻等已進(jìn)行了詳細(xì)的研究[5-7], 因此不在此進(jìn)行過多介紹,但是對(duì)于PPI協(xié)議的地址協(xié)議指令需要根據(jù)竹節(jié)紗生產(chǎn)設(shè)備實(shí)際的生產(chǎn)過程進(jìn)行相應(yīng)的修改。
3.2.1 PPI協(xié)議地址
在竹節(jié)紗生產(chǎn)設(shè)備中,PLC內(nèi)部存儲(chǔ)的數(shù)據(jù)可分為6類參數(shù),包括生產(chǎn)狀態(tài)監(jiān)控參數(shù)、參數(shù)設(shè)置、運(yùn)轉(zhuǎn)產(chǎn)量管理參數(shù)、機(jī)臺(tái)性能監(jiān)測(cè)參數(shù)、系統(tǒng)調(diào)試參數(shù)及報(bào)警信息參數(shù)。每個(gè)分類下面又分多個(gè)參數(shù),每個(gè)參數(shù)在PLC內(nèi)部都有一個(gè)唯一的地址,通過讀取該地址寄存器的值來獲取對(duì)應(yīng)參數(shù)的值。每個(gè)參數(shù)在PLC內(nèi)部根據(jù)功能不同存儲(chǔ)為不同的軟元件類型,在利用PPI協(xié)議讀取相應(yīng)地址的數(shù)據(jù)時(shí)需根據(jù)參數(shù)不同采用不同的功能碼,同時(shí)讀取地址也需加上偏移量指針,見表1。
表1竹節(jié)紗內(nèi)部參數(shù)地址偏移
生產(chǎn)參數(shù)軟元件類型軟元件功能碼存儲(chǔ)地址數(shù)據(jù)通信地址前羅拉轉(zhuǎn)速模糊非模糊紡紗方式 紡紗時(shí)間 VWMST8483041F5126010.151000H01E0H0058H0028H
3.2.2 PPI協(xié)議指令
PPI協(xié)議指令的正確運(yùn)用對(duì)于竹節(jié)紗生產(chǎn)設(shè)備的正常運(yùn)行至關(guān)重要,同時(shí)也影響著竹節(jié)紗的生產(chǎn)質(zhì)量。該協(xié)議指令分為讀寫指令,在竹節(jié)紗設(shè)備正常運(yùn)行過程中,不能隨意更改竹節(jié)紗生產(chǎn)數(shù)據(jù),否則影響正常生產(chǎn)。因此為了杜絕此類誤操作,在編寫程序時(shí)需對(duì)用戶指令進(jìn)行分類與區(qū)別對(duì)待,如在設(shè)備運(yùn)行時(shí)無法發(fā)送修改竹節(jié)紗生產(chǎn)參數(shù)指令,并提示錯(cuò)誤等,如圖5所示。
圖5 指令調(diào)用確認(rèn)流程圖
3.3.1 通信程序流程
在C#.NET環(huán)境中,一般利用計(jì)算機(jī)串口實(shí)現(xiàn)上位機(jī)與PLC的通信。采用串行通信方式性能可靠,操作簡(jiǎn)單。SerialPort控件與MSComm控件都能實(shí)現(xiàn)與PLC下位機(jī)的通信[8-9],根據(jù)實(shí)際運(yùn)行效果,本軟件采用了MSComm控件,此控件是Microsoft公式提供的簡(jiǎn)化Windows下串行通信編程的Active控件,此控件可以用來創(chuàng)建功能完備事件驅(qū)動(dòng)的通信程序,也能夠用來提供本軟件所需要的串行端口通信功能。此串口通信程序的設(shè)計(jì)圖如圖6所示。
整個(gè)通信的過程主要包括通信數(shù)據(jù)的寫入和PLC應(yīng)答數(shù)據(jù)的解析。通信數(shù)據(jù)的寫入是指在通信開始之前,系統(tǒng)會(huì)根據(jù)用戶的操作,自動(dòng)選取對(duì)應(yīng)的通信串口,并對(duì)串口進(jìn)行初始化,并調(diào)用對(duì)應(yīng)的函數(shù)生成符合PPI協(xié)議的主機(jī)發(fā)送指令。PLC應(yīng)答數(shù)據(jù)的解析是指在PLC收到主機(jī)讀寫指令后,回復(fù)對(duì)應(yīng)的數(shù)據(jù),系統(tǒng)根據(jù)回復(fù)數(shù)據(jù)的長(zhǎng)度以及關(guān)鍵字節(jié)的值來判斷是否通信正常。讀取數(shù)據(jù)操作還需對(duì)回復(fù)數(shù)據(jù)進(jìn)行對(duì)應(yīng)字節(jié)數(shù)據(jù)的解析,以提取出需要的數(shù)據(jù),寫入數(shù)據(jù)無需進(jìn)行此項(xiàng)操作。
圖6 通信程序流程圖
3.3.2 通信數(shù)據(jù)的解碼
通信程序發(fā)送成功后PLC回復(fù)包含所需數(shù)據(jù)的全部信息,包括數(shù)據(jù)類型、數(shù)據(jù)長(zhǎng)度等,因此需要對(duì)數(shù)據(jù)進(jìn)行解碼,表2為讀取竹節(jié)紗第一段節(jié)長(zhǎng)PLC的應(yīng)答數(shù)據(jù)。
表2PLC應(yīng)答數(shù)據(jù)分析
字節(jié)編號(hào)字節(jié)含義字節(jié)數(shù)據(jù)2122232425262728返回值 數(shù)據(jù)類型 數(shù)據(jù)長(zhǎng)度 實(shí)際返回值實(shí)際返回值校檢碼 校檢碼 結(jié)束符 FF04000016XXXX16
Byte24-25為數(shù)據(jù)區(qū)塊,這一部分為實(shí)際需要讀取到的數(shù)據(jù),需要進(jìn)行解碼,讀取的數(shù)據(jù)為0016H,轉(zhuǎn)換成十進(jìn)制后為22,因此第一段節(jié)長(zhǎng)為22 cm,數(shù)據(jù)單位根據(jù)參數(shù)類型不同而定。根據(jù)用戶需要讀取數(shù)據(jù)的類型和長(zhǎng)度的不同,PLC回復(fù)的數(shù)據(jù)長(zhǎng)度也有所不同,相對(duì)應(yīng)需要解碼的數(shù)據(jù)區(qū)塊的字節(jié)數(shù)也不同,見表3。
表3數(shù)據(jù)解碼區(qū)間對(duì)應(yīng)表
數(shù)據(jù)類型數(shù)據(jù)個(gè)數(shù)回復(fù)長(zhǎng)度截取區(qū)間驗(yàn)證字節(jié)位 單字雙字121293333Byte26Byte25-28Byte25-28Byte18=00HByte18=00HByte18=00H
3.4.1 數(shù)據(jù)庫流程
在SQL數(shù)據(jù)庫的使用過程中,主要是通過對(duì)應(yīng)的SQL語句實(shí)現(xiàn)對(duì)竹節(jié)紗工藝的存儲(chǔ)、提取和查詢操作。其程序流程如圖7所示。
圖7 數(shù)據(jù)庫程序流程設(shè)計(jì)圖
3.4.2 ADO.NET數(shù)據(jù)訪問技術(shù)
作為將用戶應(yīng)用程序與SQL數(shù)據(jù)庫相鏈接的紐帶,ADO.NET數(shù)據(jù)訪問技術(shù)可將程序中的臨時(shí)數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫,也可將數(shù)據(jù)庫中的數(shù)據(jù)提取到內(nèi)存中供程序調(diào)用,這是本系統(tǒng)訪問數(shù)據(jù)的技術(shù)基礎(chǔ)。該技術(shù)包含兩個(gè)核心組件Dataset和Data Provider程序,Dataset對(duì)象主要用于存儲(chǔ)用戶暫時(shí)調(diào)用的竹節(jié)紗生產(chǎn)設(shè)備中的各項(xiàng)生產(chǎn)數(shù)據(jù),Data Provider程序則是上述實(shí)現(xiàn)的基礎(chǔ),負(fù)責(zé)執(zhí)行SQL命令來存取竹節(jié)紗生產(chǎn)數(shù)據(jù)。其存取數(shù)據(jù)的一般過程如圖8所示。
圖8 ADO.NET數(shù)據(jù)庫訪問流程
本系統(tǒng)選取C#作為開發(fā)語言,C#十分適合開發(fā)運(yùn)行在Windows設(shè)備下的應(yīng)用程序,介于目前工廠中采用的計(jì)算機(jī)大部分都是運(yùn)行在 Windows環(huán)境下,因此本系統(tǒng)主要采用C#為主要編程語言。
系統(tǒng)界面主要分為4個(gè)部分:主界面、監(jiān)控界面、品種查詢與品種創(chuàng)建界面。主界面與監(jiān)控界面中包括竹節(jié)紗的各項(xiàng)基礎(chǔ)參數(shù)、運(yùn)行狀態(tài)、節(jié)長(zhǎng)與節(jié)粗等各項(xiàng)參數(shù),并且與串口通信程序鏈接??梢詫?shí)時(shí)監(jiān)控機(jī)器的運(yùn)行狀態(tài)以及當(dāng)前竹節(jié)紗參數(shù),修改竹節(jié)紗的各項(xiàng)參數(shù)。品種查詢和品種創(chuàng)建界面借助ADO.NET數(shù)據(jù)訪問技術(shù)與SQL數(shù)據(jù)庫相連接,用戶可以通過訪問數(shù)據(jù)庫的方式調(diào)用以前的工藝以及進(jìn)行對(duì)新工藝的存儲(chǔ)操作。
紡制的竹節(jié)紗號(hào)數(shù)20.5 tex,節(jié)長(zhǎng)15 cm~26 cm,節(jié)距35 cm~45 cm,節(jié)粗2.5倍,其生產(chǎn)數(shù)據(jù)見表4。將系統(tǒng)監(jiān)測(cè)到的竹節(jié)紗產(chǎn)量與實(shí)際生產(chǎn)產(chǎn)量對(duì)比,誤差率均小于1%,低于規(guī)定誤差。
表4竹節(jié)紗生產(chǎn)數(shù)據(jù)對(duì)比
機(jī)器編號(hào)終端產(chǎn)量/km實(shí)際產(chǎn)量/km誤差/km誤差率/%123422.6316.7419.8527.5622.7116.6919.7927.680.080.050.060.120.350.290.300.43
圖9為實(shí)際監(jiān)測(cè)的PLC內(nèi)部數(shù)據(jù),用戶點(diǎn)擊運(yùn)行監(jiān)測(cè)按鈕即可監(jiān)控當(dāng)前竹節(jié)紗生產(chǎn)設(shè)備運(yùn)行狀態(tài)。但為保證機(jī)器正常運(yùn)轉(zhuǎn)及生產(chǎn)數(shù)據(jù)按計(jì)劃進(jìn)行,此界面用戶無法對(duì)生產(chǎn)參數(shù)進(jìn)行修改,只有查看權(quán)限,以保證機(jī)器正常運(yùn)行。圖10為用戶品種創(chuàng)建界面,用戶可根據(jù)實(shí)際紡紗工藝填寫對(duì)應(yīng)數(shù)據(jù),點(diǎn)擊保存品種即可將當(dāng)前工藝存儲(chǔ)在數(shù)據(jù)庫,點(diǎn)擊發(fā)送機(jī)號(hào)即可選擇要發(fā)送的機(jī)臺(tái),并將數(shù)據(jù)送到對(duì)應(yīng)竹節(jié)紗生產(chǎn)設(shè)備。圖11 為品種查詢界面,用戶可查詢過往生產(chǎn)工藝或直接調(diào)用數(shù)據(jù)庫中的生產(chǎn)工藝單。
圖9 用戶監(jiān)控界面
圖10 品種創(chuàng)建界面
圖11 品種查詢界面
本文通過解析PPI協(xié)議指令,并加以總結(jié)與測(cè)試,利用計(jì)算機(jī)語言C#集成開發(fā)了竹節(jié)紗生產(chǎn)監(jiān)控軟件。實(shí)踐證明,本竹節(jié)紗監(jiān)控軟件無需使用西門子相關(guān)通信驅(qū)動(dòng)程序,通過PC端讀寫西門子S7-200系列PLC對(duì)應(yīng)地址中的數(shù)據(jù),可在線修改、存儲(chǔ)以及監(jiān)控竹節(jié)紗生產(chǎn)過程中的對(duì)應(yīng)工藝參數(shù)。該監(jiān)控軟件易于開發(fā),無需其他組態(tài)軟件,投資較少且運(yùn)行穩(wěn)定,通過PC端監(jiān)控竹節(jié)紗生產(chǎn),相比于觸摸屏更加方便快捷,對(duì)于開發(fā)其他小型監(jiān)控系統(tǒng)也具有一定的借鑒意義。