高亞丹,徐世許,馮 平
(青島大學(xué) 自動化與電氣工程學(xué)院,青島 266071)
基于485通信的壓縮機注油檢測系統(tǒng)設(shè)計
高亞丹,徐世許,馮 平
(青島大學(xué) 自動化與電氣工程學(xué)院,青島 266071)
為了確保生產(chǎn)線上的所有壓縮機都能夠得到加工,設(shè)計了一個基于485串行通信的多臺壓縮機注油檢測系統(tǒng)。系統(tǒng)由上位機和下位機組成,能夠?qū)崿F(xiàn)同一流水線上四臺PLC同時運行并將數(shù)據(jù)上傳,而且能夠應(yīng)用于多條流水線。下位機包括PLC與觸摸屏。下位機通過獲取PLC內(nèi)的注油數(shù)據(jù)從而獲取向壓縮機注入的油量,檢測注油加工過程是否合格。上位機經(jīng)由RS232轉(zhuǎn)RS485端口完成485串行通訊與多臺PLC連接,讀取產(chǎn)品信息和加工狀態(tài)。它依據(jù)三菱通信協(xié)議(其中包括MC協(xié)議),使用VB6.0開發(fā)了上位機與PLC之間通信的程序,并實現(xiàn)注油量的檢測與數(shù)據(jù)傳輸,將海量數(shù)據(jù)存入SQL Server數(shù)據(jù)庫。該檢測系統(tǒng)已在實際生產(chǎn)中得到了成功應(yīng)用。系統(tǒng)自動檢測對比,確保加工質(zhì)量,避免了工人的重復(fù)勞作,提高了生產(chǎn)效率。
檢測系統(tǒng);485通信;MC協(xié)議;SQL Server數(shù)據(jù)庫
壓縮機在很多方面都有著重大的作用,例如空調(diào)、冰箱等等。其中注油量的多少是有嚴(yán)格規(guī)定的,油量過多或者過少都會影響壓縮機自身的性能。國內(nèi)很多企業(yè)還采用人工注油檢測的方式,這樣會造成很大的誤差而且效率很低,加上工業(yè)現(xiàn)場環(huán)境復(fù)雜,整個加工過程不斷重復(fù),一直持續(xù),因此需要設(shè)計出壓縮機注油檢測系統(tǒng)對加工過程進行檢測,確保注油檢測過程順利進行且節(jié)省人力物力。就實際的應(yīng)用需求而言,還要能記錄每一個產(chǎn)品的詳細(xì)信息并存入數(shù)據(jù)庫,便于以后查詢追溯。
國外注油檢測系統(tǒng)較為成熟,但是進口比較昂貴。國內(nèi)有人使用RS232通訊設(shè)計注油檢測系統(tǒng),但RS232傳輸距離較短,傳輸速率低,受工業(yè)環(huán)境限制、穩(wěn)定性差,相對而言RS485串行總線線路比較簡單、傳輸距離相對較遠(yuǎn)而且組網(wǎng)比較靈活,穩(wěn)定性高,因而被普遍應(yīng)用于多種檢測及監(jiān)管系統(tǒng)中。本設(shè)計采用PLC作為控制器,使用了三菱FX系列與Q系列PLC,其中Q系列PLC用了MC通訊協(xié)議。上位機采用VB編程,進行通信設(shè)置并采用SQL Server數(shù)據(jù)庫,可以存儲大量數(shù)據(jù),解決數(shù)據(jù)丟失溢出的問題。
注油檢測系統(tǒng)由上位機、三菱PLC、觸摸屏以及注油槍構(gòu)成,系統(tǒng)硬件結(jié)構(gòu)如圖1所示。由于注油速度一定,通過控制注油時長便可得知注油量。PLC將注油量通過RS485串口傳給上位機,并在上位機中記錄數(shù)據(jù),判斷是否合格。觸摸屏中選擇并顯示注油量、注入油的種類等信息,便于現(xiàn)場查看。上位機通過讀取PLC內(nèi)的標(biāo)志位0、1判斷注油是否完成,并記錄采集信息以便于存儲。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
2.1 軟件設(shè)計流程圖
該檢測系統(tǒng)是在VB6.0環(huán)境下編程,簡單方便。軟件設(shè)計流程如圖2所示。
圖2 軟件設(shè)計流程圖
2.2 485串行通信協(xié)議
通過轉(zhuǎn)換器將RS-232串行口的TXD和RXD信號轉(zhuǎn)換成兩線平衡半雙工的RS-485信號,通訊方式如圖3所示。三菱Q系列PLC采用MC協(xié)議。MC協(xié)議就是外部設(shè)備通過Q系列C24或Q系列E71來進行PLC軟元件數(shù)據(jù)和程序的讀出或?qū)懭氲耐ㄐ艆f(xié)議[1]。其數(shù)據(jù)編碼方式主要有兩種:采用ASCII代碼通訊數(shù)據(jù)和使用二進制代碼通訊數(shù)據(jù)。
圖3 通訊方式圖
2.2.1 Q系列通信格式
通過串行通信模塊與Q系列PLC通信的方法有四類,包括A兼容1C幀、QnA兼容2C幀、QnA兼容3C幀以及QnA兼容4C幀。注油檢測系統(tǒng)使用QnA兼容3C幀。3C幀主要用于外部設(shè)備訪問QnA CPU全部軟元件以及全部文件,使用ASCII與C24模塊進行通訊的協(xié)議,使用到的為3C中的基準(zhǔn)格式:格式1。訪問PLC CPU時,通過GX Developer進行開關(guān)設(shè)置的“通訊協(xié)議設(shè)置”選擇形式NO.1的幀訪問。
讀取PLC內(nèi)部數(shù)據(jù)時的通信格式如表1所示。
表1 讀取PLC內(nèi)部數(shù)據(jù)時的通信格式
對應(yīng)的外部設(shè)備讀取PLC數(shù)據(jù)正常時PLC的返回幀如表2所示。
表2 返回幀
3C幀格式中的內(nèi)容:1)控制碼。即為在這一幀開頭以及結(jié)尾的特殊代碼。在使用的3C幀中ENQ表明發(fā)起請求,STX表明字符開始。2)幀識別號。指用于辨識收發(fā)的文件到底是QnA兼容3C幀還是4C幀的編號,其中3C格式下對應(yīng)的編號為F9。3)站號。即為外部設(shè)備連接的C24的模塊中設(shè)置的能夠比較區(qū)分的地址,通過指定的站號與模塊進行通訊。4)網(wǎng)絡(luò)號。外部設(shè)備能夠經(jīng)由此PLC訪問網(wǎng)絡(luò)上的其他PLC。5)PLC號。用于設(shè)定外部設(shè)備將要訪問的某個網(wǎng)絡(luò)上的其他PLC站號。6)上位站號。通訊過程使用ASCII通信,設(shè)置為字符串00。7)命令代碼,即輸入將要執(zhí)行的命令。將命令變換為4位數(shù)ASCII代碼(十六進制數(shù))后使用,從高位數(shù)起發(fā)送。8)字符區(qū)??捎糜诎l(fā)送數(shù)據(jù)的控制字或者返回數(shù)據(jù)的返回值。各字符部分的用途分別為:A部分字符,用于使PLC CPU執(zhí)行用命令指定的讀出請求的數(shù)據(jù)。B部分字符,用于用命令指定的請求向?qū)Ψ皆O(shè)備返回的數(shù)據(jù)。C部分字符,用于使PLC CPU執(zhí)行用命令指定的寫入請求的數(shù)據(jù)。選擇使用ASCII代碼進行數(shù)據(jù)通訊時,將字符部分變換成為ASCII代碼后再進行發(fā)送。9)和校驗碼。用于檢驗發(fā)送內(nèi)容是否正確,其組成是發(fā)送幀中的校驗范圍內(nèi)的各個字節(jié)相加從而得到的數(shù)值的低八位。有和校驗時,PLC CPU編寫和校驗代碼并附加在發(fā)送文件上,并且對接收文件中的和校驗代碼進行核對比較。
2.2.2 FX系列通信格式
FX系列的通信協(xié)議與Q系列略有不同,檢測系統(tǒng)使用的是三菱專用協(xié)議的格式一。格式一的控制順序如表3所示。返回幀的格式如表4所示。
表3 FX系列讀取PLC時的通信格式
表4 FX系列返回幀
報文等待:計算機發(fā)送信息到變?yōu)榻邮諣顟B(tài)的時間。若設(shè)為100ms,則對應(yīng)的報文等待字符設(shè)為A。
2.2.3 Q系列命令碼
圖4 成批寫入命令示意圖
字單位的成批寫入命令為1401。向字軟元件存儲器寫入時,用ASCII代碼進行通訊,作從D450起至D451的2點份的寫入。成批寫入命令的示意圖如圖4所示。
字單位的成批讀出命令碼為0401。讀出字軟元件存儲器時,用ASCII代碼進行通訊,讀取從D450到D455的6點份的當(dāng)前值。
2.2.4 FX系列命令碼
FX系列寫入與讀出的指令也與Q系列并不一樣。字單位的成批讀出指令為WR,而相應(yīng)的字單位的成批寫入指令為WW。
2.3 檢測系統(tǒng)
2.3.1 數(shù)據(jù)檢測
If Val(Form1.Text2.Text) >= Val(Form1.Text3.Text) - Val(Form1.Text1.Text) or Val(Form1.Text2.Text) <= Val(Form1.Text3.Text) + Val(Form1.Text1.Text) Then
rss![合格] = "是"
其中,Text1為允許的誤差,注油允許的誤差為10ml。Text3為設(shè)定值,Text2為實際值。如果實際值在誤差允許范圍之內(nèi),那么該壓縮機合格,并在數(shù)據(jù)庫中“合格”這一欄顯示“是”。如果不合格,顯示“否”。
2.3.2 SQL Server數(shù)據(jù)庫
數(shù)據(jù)庫作為常用的工具,經(jīng)常會使用到。常用的為ACCESS數(shù)據(jù)庫,功能能夠滿足日常需求。但注油檢測系統(tǒng)由于持續(xù)不斷地在進行,數(shù)據(jù)量龐大,ACCESS數(shù)據(jù)庫已經(jīng)不能滿足使用需求,所以使用SQL Server數(shù)據(jù)庫。SQL Server具有高可用性、更高的安全性以及可伸縮性。通過VB進行連接使用,而使用VB訪問該數(shù)據(jù)庫,可供選擇的編程接口主要有3種,分別為:ADO、DAO、RDO。ADO即為ActiveX Data Object,是微軟公司數(shù)據(jù)庫應(yīng)用程序開 發(fā)的新接口,是在OLE DB的基礎(chǔ)之上進行的[2]。
檢測系統(tǒng)使用ADO控件連接數(shù)據(jù)庫,除了放置“Adodc”控件之外,還需要設(shè)置Connection對象,連接數(shù)據(jù)來源,對應(yīng)好相應(yīng)的數(shù)據(jù)庫。即設(shè)置ConnectionString確定數(shù)據(jù)庫,生成連接字符串,設(shè)置Recordset記錄集,即設(shè)置RecordSource屬性,以此來確定具體能夠訪問的數(shù)據(jù)。放置Data Grid控件,使得數(shù)據(jù)庫中的信息能夠直觀的顯示。并將Data Grid控件的DataSource 設(shè)置為相應(yīng)的Adodc,即DataSource=Adodc1使其能夠連接到對應(yīng)的數(shù)據(jù)庫。
壓縮機注油檢測系統(tǒng)基于485協(xié)議實現(xiàn)PLC與上位機之間的通信,實現(xiàn)對注油系統(tǒng)的加工檢測以及數(shù)據(jù)保存?zhèn)浞莸龋?jīng)過多次調(diào)試,確保能夠?qū)崿F(xiàn)工廠流水線的需求。重點介紹三菱Q系列PLC的MC通協(xié)議,并使用SQL Server數(shù)據(jù)庫對采集到的信息進行存儲備份和顯示。在使用FX系列PLC的基礎(chǔ)上,顯示出利用三菱MC協(xié)議實現(xiàn)多臺PLC通訊的可行性、實用性,能夠用于多條流水線的加工作業(yè),節(jié)省了人力物力,而且確保的工作的精確度和效率,同時可應(yīng)用于其他類似流水線的推廣。
[1] 王輝.三菱電機通信網(wǎng)絡(luò)應(yīng)用指南[M].北京:機械工業(yè)出版社,2006:256-260.
[2] 劉鈞,馬旭東,施健.VB訪問SQL Server的幾種編程接口及其應(yīng)用[J].微型電腦應(yīng)用,2001,17(6):51-53.
[3] 徐世許.可編程序控制器原理·應(yīng)用·網(wǎng)絡(luò)[M].合肥:中國科學(xué)技術(shù)大學(xué)出版社,2008:284-292.
[4] 祁新安,侯清江.SQL Server數(shù)據(jù)庫的運用研究[J].制造業(yè)自動化,2010,32(12):30-32.
[5] 周巍,張仁杰.基于MC協(xié)議的工控機與PLC通信方法研究[J].數(shù)據(jù)通信,2015,(1):30-35.
[6] 吳光強,徐世許,張德芹.配料監(jiān)管系統(tǒng)設(shè)計[J].工業(yè)控制計算機,2014,27(7):58-59.
Design of compressor oil detection system based on 485 communication
GAO Ya-dan, XU Shi-xu, FENG Ping
TP277
:A
1009-0134(2017)01-0024-03
2016-09-14
高亞丹(1992 -),女,河南南陽人,碩士研究生,研究方向為計算機控制技術(shù)。