劉卜文,姜自燃,宮志強(qiáng),徐世許
(青島大學(xué)自動(dòng)化學(xué)院,山東青島 266071)
稱(chēng)重技術(shù)是生產(chǎn)工業(yè)原料產(chǎn)品所必備的技術(shù),產(chǎn)品需按指定質(zhì)量進(jìn)行出庫(kù)。過(guò)去,許多生產(chǎn)企業(yè)采用人工計(jì)量,即工人在生產(chǎn)現(xiàn)場(chǎng)監(jiān)視稱(chēng)重儀表,待到達(dá)指定質(zhì)量后,將產(chǎn)品轉(zhuǎn)運(yùn)。人工計(jì)量所需人員多,同一生產(chǎn)車(chē)間不同儀表均需人工操作,信息傳遞慢,難以形成系統(tǒng)性的數(shù)據(jù)記錄,不利于日后數(shù)據(jù)的查詢及校對(duì);同時(shí)企業(yè)管理層無(wú)法實(shí)時(shí)監(jiān)管當(dāng)前生產(chǎn)狀況,不利于工作的調(diào)整。
隨著通訊技術(shù)的發(fā)展以及生產(chǎn)過(guò)程自動(dòng)化的實(shí)現(xiàn),完善的稱(chēng)重系統(tǒng)成為現(xiàn)代工業(yè)生產(chǎn)企業(yè)的必備系統(tǒng)。其功能主要包括實(shí)時(shí)監(jiān)視生產(chǎn)車(chē)間內(nèi)儀表數(shù)據(jù);存儲(chǔ)生產(chǎn)信息至SQL Server數(shù)據(jù)庫(kù);實(shí)時(shí)修改操作信息;遠(yuǎn)程監(jiān)管;自動(dòng)生成EXCEL表格等。應(yīng)用此類(lèi)系統(tǒng)可方便工人與管理層實(shí)時(shí)確認(rèn)生產(chǎn)信息;減少人工監(jiān)視稱(chēng)重儀表等待時(shí)間,提高生產(chǎn)效率;方便管理層對(duì)企業(yè)的監(jiān)管[1]。
本稱(chēng)重管理系統(tǒng)主要由上位機(jī)、工業(yè)交換機(jī)、串口服務(wù)器、PLC、稱(chēng)重儀表和工業(yè)臺(tái)秤等構(gòu)成。系統(tǒng)包含2種不同類(lèi)型的儀表,一種為連續(xù)發(fā)送數(shù)據(jù)的C30儀表,另一種為打印模式發(fā)送數(shù)據(jù)的IND236儀表。PLC通過(guò)RS485通信向C30儀表發(fā)送命令循環(huán)讀取數(shù)據(jù),經(jīng)其處理后傳入指定地址;但I(xiàn)ND236儀表只有按下按鈕才發(fā)送數(shù)據(jù),故采用串口服務(wù)器將儀表的串口通信轉(zhuǎn)換為以太網(wǎng)通信,通過(guò)上位機(jī)處理數(shù)據(jù)。HMI觸摸屏負(fù)責(zé)監(jiān)視生產(chǎn)狀況、查詢工作信息、設(shè)置生產(chǎn)參數(shù)等。上位機(jī)軟件負(fù)責(zé)遠(yuǎn)程監(jiān)控生產(chǎn)數(shù)據(jù),并實(shí)現(xiàn)增刪改查數(shù)據(jù)等功能,采用SQL Server數(shù)據(jù)庫(kù)存儲(chǔ)生產(chǎn)數(shù)據(jù)。將上位機(jī)、串口服務(wù)器、HMI觸摸屏和PLC連接在工業(yè)交換機(jī)上,通過(guò)以太網(wǎng)通訊實(shí)現(xiàn)數(shù)據(jù)的傳輸[2]。稱(chēng)重系統(tǒng)硬件結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
本稱(chēng)重系統(tǒng)的稱(chēng)重儀表根據(jù)工廠需求采用C30儀表和IND236儀表。PLC控制器采用CP2E-N;HMI觸摸屏作為生產(chǎn)現(xiàn)場(chǎng)人機(jī)交互模塊,采用TPC7022Ni;串口服務(wù)器采用NPort5650-8-DT,具體硬件型號(hào)見(jiàn)表1[3]。
表1 系統(tǒng)硬件列表
PLC與4臺(tái)實(shí)時(shí)稱(chēng)重的C30儀表通信,因生產(chǎn)車(chē)間較大,多個(gè)儀表分散在不同位置,且相距較遠(yuǎn),故采用RS485通信連接稱(chēng)重儀表。CP2E-N型號(hào)PLC采用外置COMM端口,其RS485通信接線為PLC端的RDA-連接儀表端的B,PLC端的RDB+連接儀表端A,PLC通信設(shè)置與C30稱(chēng)重儀表相同,波特率為9 600,8位數(shù)據(jù)位,1位停止位,無(wú)校驗(yàn)位,超時(shí)響應(yīng)時(shí)間設(shè)置為0.1 s[4]。
PLC與觸摸屏之間采用以太網(wǎng)通信,通過(guò)交換機(jī)連接,在MCGSPro軟件中進(jìn)行通信設(shè)置[5]。PLC與觸摸屏的IP地址需在同一網(wǎng)段下,設(shè)置PLC的IP地址為10.110.59.1,觸摸屏的IP為10.110.59.15,本地端口號(hào)和遠(yuǎn)程端口號(hào)選9600,網(wǎng)絡(luò)類(lèi)型選擇0-UDP,服務(wù)器客戶設(shè)置選擇0-客戶,設(shè)備屬性頁(yè)將PLC節(jié)點(diǎn)地址改為1,計(jì)算機(jī)節(jié)點(diǎn)地址改為12,下載到觸摸屏選擇聯(lián)機(jī),連接方式選TCP/IP網(wǎng)絡(luò),目標(biāo)機(jī)名填觸摸屏IP。
PLC與上位機(jī)通信分配地址如表2所示。
表2 PLC與上位機(jī)通信分配地址
PLC作為數(shù)據(jù)傳輸及處理的中轉(zhuǎn)站,處理4臺(tái)儀表數(shù)據(jù),傳輸7臺(tái)儀表數(shù)據(jù)。地址區(qū)的分配需避開(kāi)特殊功能區(qū),滿足客戶數(shù)據(jù)長(zhǎng)度,留有備用地址區(qū),方便處理。PLC中接收的儀表及上位機(jī)數(shù)據(jù)需傳送至觸摸屏顯示,同時(shí)PLC接收的觸摸屏設(shè)置及儀表等數(shù)據(jù)需傳送至上位機(jī)顯示。
本系統(tǒng)軟件設(shè)計(jì)共分為3部分,采用CX-Programmer軟件對(duì)PLC進(jìn)行通信程序以及數(shù)據(jù)處理程序的設(shè)計(jì);采用昆侖通態(tài)的MCGSPro軟件進(jìn)行觸摸屏操作及監(jiān)視界面的設(shè)計(jì);采用Visual Basic語(yǔ)言進(jìn)行上位機(jī)系統(tǒng)設(shè)計(jì);采用SQL Server數(shù)據(jù)庫(kù)存儲(chǔ)信息。
PLC主要功能為通信數(shù)據(jù)傳輸以及通信數(shù)據(jù)處理,共讀取4臺(tái)儀表,單臺(tái)讀取時(shí)間為0.2 s,每0.8 s讀完一輪,其工作流程圖如圖2所示。
圖2 PLC工作流程圖
CP2E-N對(duì)應(yīng)Modbus-RTU簡(jiǎn)易主站功能的輔助區(qū)位為A640,其固定分配字為D1200~D1299。A640作為簡(jiǎn)易主站功能的執(zhí)行位,其二進(jìn)制位A640.00作為功能的觸發(fā)位,1為觸發(fā),0為停止;A640.01為功能執(zhí)行正常的標(biāo)志位,1為正常,0為錯(cuò)誤。D1200~D1249存放功能命令代碼;D1250~D1299存放返回?cái)?shù)據(jù)。根據(jù)此功能采用梯形圖編程編寫(xiě)數(shù)據(jù)處理及傳輸程序。
簡(jiǎn)易主站功能程序?qū)崿F(xiàn)循環(huán)讀取4臺(tái)稱(chēng)重儀表的實(shí)時(shí)數(shù)據(jù),將數(shù)據(jù)存放在指定地址區(qū)。PLC作為主站,4臺(tái)儀表作為從站,通過(guò)串口對(duì)從機(jī)發(fā)送的讀取功能命令幀為01 03 0001 0007 55C8,讀取1號(hào)從機(jī)的1號(hào)~7號(hào)寄存器內(nèi)容。將命令代碼存放至指定位置,發(fā)送命令地址及接收通道如表3所示。
表3 發(fā)送命令地址及接收通道
D1254高字節(jié)存放后續(xù)地址數(shù)據(jù)長(zhǎng)度,為寄存器數(shù)量的2倍;其低字節(jié)存放讀取的寄存器內(nèi)容,從此開(kāi)始數(shù)據(jù)錯(cuò)位,此地址低字節(jié)和下一地址高字節(jié)共同存放一個(gè)寄存器的內(nèi)容,共讀取7個(gè)寄存器。因多臺(tái)儀表共用一臺(tái)PLC,故在接收到數(shù)據(jù)后立即將數(shù)據(jù)轉(zhuǎn)存至規(guī)劃地址區(qū)。根據(jù)工廠對(duì)不同臺(tái)秤的精度需求,需將讀取的數(shù)據(jù)分別除以浮點(diǎn)數(shù)10和100,將精度變成0.1和0.01。
觸摸屏界面采用MCGSPor組態(tài)軟件設(shè)計(jì),主要包括實(shí)時(shí)監(jiān)視界面、設(shè)置界面、工作量查詢界面、除磁A工作記錄、除磁B工作記錄等功能界面。通過(guò)以太網(wǎng)連接至交換機(jī),與PLC之間建立通信聯(lián)系,將示數(shù)及設(shè)置內(nèi)容關(guān)聯(lián)到指定地址區(qū)。
監(jiān)視界面共監(jiān)視7臺(tái)儀表數(shù)據(jù),當(dāng)有儀表出現(xiàn)通信錯(cuò)誤時(shí),此儀表對(duì)應(yīng)觸摸屏通信指示燈亮紅。設(shè)置界面用來(lái)設(shè)置各臺(tái)儀表所稱(chēng)重的產(chǎn)品名稱(chēng)、批號(hào)以及處理此產(chǎn)品的操作員。工作量查詢界面可查詢當(dāng)天指定操作員在工位生產(chǎn)了多少產(chǎn)品。觸摸屏監(jiān)視界面如圖3、設(shè)置界面如圖4,查詢界面如圖5所示。
圖3 觸摸屏監(jiān)視界面
圖4 觸摸屏設(shè)置界面
圖5 觸摸屏設(shè)置界面
4.3.1 上位機(jī)與PLC通信
在稱(chēng)重過(guò)程中,上位機(jī)需要實(shí)時(shí)讀取PLC處理后的數(shù)據(jù),二者之間的通信采用基于Fins TCP協(xié)議的以太網(wǎng)通信[7]。上位機(jī)既需讀取由PLC直接處理的4臺(tái)C30儀表數(shù)據(jù),也需向PLC發(fā)送3臺(tái)由上位機(jī)讀取的IND236儀表數(shù)據(jù)。讀取具體實(shí)現(xiàn)代碼如下:
(1)采用Winsock控件定義連接PLC的IP地址和波特率,代碼為:
Winsock1.RemoteHost=″10.110.59.1″
Winsock1.RemotePort=9600
(2)定義Fins指令:
Dim fins()As Byte 'SendData發(fā)送的數(shù)據(jù)數(shù)組
fins()= &H80 00 02 00 01 00 00 6D 00 00 01 01 82 07 D1 00 00 8C
其定義含義分別為信息控制域、系統(tǒng)保留、網(wǎng)關(guān)允許數(shù)目、目標(biāo)網(wǎng)絡(luò)地址、PLC節(jié)點(diǎn)號(hào)01、PLC單元號(hào)00、源網(wǎng)絡(luò)地址00、計(jì)算機(jī)節(jié)點(diǎn)號(hào)109、計(jì)算機(jī)單元號(hào)00、服務(wù)標(biāo)識(shí)、指令代碼第一個(gè)字節(jié)、0101表讀0102表寫(xiě)、D內(nèi)存區(qū)代碼、起始地址轉(zhuǎn)十六進(jìn)制、項(xiàng)目數(shù)、讀取140個(gè)通道數(shù)據(jù)[8]。
(3)發(fā)送Fins命令幀:
Winsock1.SendData fins()
4.3.2 上位機(jī)與串口服務(wù)器通信
串口服務(wù)器通過(guò)以太網(wǎng)連接上位機(jī),通過(guò)NPort Administrator軟件虛擬出端口1、2、3,將IND236稱(chēng)重儀表的RS232轉(zhuǎn)RS485通信轉(zhuǎn)換成以太網(wǎng)通信等待上位機(jī)讀取。通信設(shè)置代碼:
MSComm1.CommPort=1
MSComm1.InputMode=1
MSComm1.Settings=″9600,n,8,1″
4.3.3 上位機(jī)連接SQL Server數(shù)據(jù)庫(kù)
上位機(jī)將讀取的數(shù)據(jù)存儲(chǔ)在SQL Server數(shù)據(jù)庫(kù)中,可通過(guò)分類(lèi)查找功能查出具體產(chǎn)品數(shù)據(jù),與數(shù)據(jù)庫(kù)連接關(guān)鍵代碼如下:
Adodc1.RecordSource=″select * from Table_1″
Adodc1.Recordset.AddNew
Adodc1.Recordset.Update
Adodc1.Refresh
4.3.4 軟件主要功能
管理人員遠(yuǎn)距離對(duì)生產(chǎn)現(xiàn)場(chǎng)數(shù)據(jù)進(jìn)行監(jiān)視、增添、存儲(chǔ)、修改和刪除等操作??蓪?shí)現(xiàn)手動(dòng)保存數(shù)據(jù),自動(dòng)備份,數(shù)據(jù)自動(dòng)生成Excel表格信息,系統(tǒng)信息另存為其他存儲(chǔ)路徑等功能。
(1)主界面實(shí)時(shí)顯示7臺(tái)稱(chēng)重儀表數(shù)據(jù),監(jiān)視當(dāng)前生產(chǎn)狀況;顯示最近生產(chǎn)的產(chǎn)品信息(產(chǎn)品名稱(chēng)、批號(hào)、質(zhì)量、操作員、日期時(shí)間等);設(shè)置查詢、設(shè)置等操作按鈕。
(2)查詢界面可顯示當(dāng)日生產(chǎn)的所有信息,并可根據(jù)產(chǎn)品名稱(chēng)、批號(hào)、操作員、臺(tái)秤和日期等多種信息分類(lèi)查詢,同時(shí)可根據(jù)關(guān)鍵詞模糊查詢。查詢界面設(shè)置修改、增添、刪除和批量操作、數(shù)據(jù)導(dǎo)出等按鈕。
(3)修改界面可對(duì)單詞產(chǎn)品生產(chǎn)記錄進(jìn)行信息更改;批量操作界面可實(shí)現(xiàn)對(duì)多條生產(chǎn)記錄同時(shí)刪除;增添界面可對(duì)遺漏訂單進(jìn)行補(bǔ)填;數(shù)據(jù)導(dǎo)出Excel表格可方便第三方調(diào)查生產(chǎn)數(shù)據(jù)信息等。
本文基于PLC和串口服務(wù)器設(shè)計(jì)了針對(duì)多種類(lèi)、多臺(tái)稱(chēng)重儀表的稱(chēng)重管理系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了各臺(tái)稱(chēng)重儀表數(shù)據(jù)的統(tǒng)一顯示、稱(chēng)重?cái)?shù)據(jù)的處理、查詢生產(chǎn)記錄、上位機(jī)對(duì)數(shù)據(jù)的統(tǒng)計(jì)管理、生產(chǎn)車(chē)間對(duì)產(chǎn)品的基本設(shè)置等功能。該系統(tǒng)上位機(jī)軟件及觸摸屏操作簡(jiǎn)單,管理人員及現(xiàn)場(chǎng)工人經(jīng)過(guò)簡(jiǎn)單培訓(xùn)即可適應(yīng)系統(tǒng)。實(shí)際使用證明該系統(tǒng)可準(zhǔn)確無(wú)誤地監(jiān)控當(dāng)前生產(chǎn)狀態(tài),并通過(guò)上位機(jī)對(duì)過(guò)往數(shù)據(jù)記錄進(jìn)行存檔,實(shí)時(shí)調(diào)整生產(chǎn)狀態(tài),簡(jiǎn)化了生產(chǎn)車(chē)間的工作流程,去除了人工記錄數(shù)據(jù)環(huán)節(jié),加強(qiáng)了管理層對(duì)生產(chǎn)現(xiàn)場(chǎng)的信息了解能力,降低了出錯(cuò)率,提升了生產(chǎn)效率并做到了數(shù)據(jù)可追溯。