基于臺達(dá)PLC的工廠產(chǎn)量監(jiān)控查詢系統(tǒng)(圖)
2006/7/6 14:56:44
中達(dá)電通股份有限公司 供稿
1 引 言
上海佳泰塑膠有限公司是生產(chǎn)手術(shù)專用手套、醫(yī)用手套、科研手套及各種PVC手套的專業(yè)公司,年產(chǎn)值在0.5到1億元人民幣,產(chǎn)品基本上都是出口外銷。全廠有兩個生產(chǎn)車間共26條生產(chǎn)線,整個工廠的所有生產(chǎn)線由工廠產(chǎn)量監(jiān)控查詢系統(tǒng)實施實時監(jiān)控,對每一條生產(chǎn)線的產(chǎn)量數(shù)據(jù)進(jìn)行實時存儲,將PLC中掉電保持區(qū)的數(shù)據(jù)讀到監(jiān)控系統(tǒng)自定義的相應(yīng)變量當(dāng)中去, 每分鐘通過標(biāo)準(zhǔn)的SQL語言對數(shù)據(jù)進(jìn)行存儲(每分鐘向SQLSERVER數(shù)據(jù)庫中存儲26條生產(chǎn)線的產(chǎn)量數(shù)據(jù),即26條生產(chǎn)線的當(dāng)前產(chǎn)量),用戶可以通過日期、時間、時間段、車間、生產(chǎn)線等查詢?nèi)魏诬囬g、任意一條生產(chǎn)線的產(chǎn)量,能對車間、生產(chǎn)線的月產(chǎn)量進(jìn)行統(tǒng)計,并在查詢出滿足條件的記錄后,將結(jié)果通過報表顯示,按規(guī)定報表格式將結(jié)果進(jìn)行存儲和打印。以下是對相關(guān)技術(shù)問題的簡略討論。
2 系統(tǒng)結(jié)構(gòu)與功能
工廠產(chǎn)量監(jiān)控查詢系統(tǒng)的結(jié)構(gòu)示意圖如圖1所示。

該系統(tǒng)要實現(xiàn)的功能是可以任意查詢一車間、二車間任何生產(chǎn)線(共26條生產(chǎn)線)在任何時段的產(chǎn)量。具體要求如下:1)每條生產(chǎn)線產(chǎn)量的數(shù)據(jù)至少能夠保存4個月的儲存期,以便對歷史數(shù)據(jù)進(jìn)行查詢;2)能查詢每條生產(chǎn)線任意月、天、小時、分鐘的產(chǎn)量;3)能對任意一條生產(chǎn)線在任意時段的產(chǎn)量進(jìn)行查詢;4)查詢結(jié)果能以特定的格式在報表中顯示,同時將結(jié)果打印出來;5)各條生產(chǎn)線任意月、日、小時、分鐘的產(chǎn)量可在電腦上以柱狀圖、實時趨勢曲線的形式顯示。
查詢系統(tǒng)的查詢方式可以實現(xiàn):1)按照日期進(jìn)行查詢;2)按照時間進(jìn)行查詢;3)按照生產(chǎn)線進(jìn)行查詢;4)按照任意時間段進(jìn)行查詢;5)按照班次進(jìn)行查詢(早、中、晚班);6)查詢?nèi)我庠碌娜我廛囬g、任意生產(chǎn)線的產(chǎn)量;7)可以運(yùn)用第1)到第5)種不同的排列組合進(jìn)行復(fù)雜的查詢。
3 系統(tǒng)設(shè)計
該系統(tǒng)的設(shè)計是比較簡單的,軟、硬件選型配置如表1所示。
表1 系統(tǒng)軟、硬件配置

工廠產(chǎn)量監(jiān)控查詢系統(tǒng)的設(shè)計主要在于軟件系統(tǒng)的設(shè)計,以下問題是考慮的重點。
1)兩個車間共26條生產(chǎn)線,每分鐘要有26條記錄生成,每分鐘向數(shù)據(jù)庫插入26條記錄。該系統(tǒng)全天24小時工作,不允許停,所以一天的數(shù)據(jù)量為37440條記錄。每月的數(shù)據(jù)量為1160640條記錄。如果要存儲4個月,則數(shù)據(jù)量為4642260條記錄。數(shù)據(jù)量是相當(dāng)龐大的,硬盤的數(shù)據(jù)存儲接近2-3G,不僅會造成在查詢時,系統(tǒng)資源嚴(yán)重被占用,同時普通的數(shù)據(jù)庫如ACCESS的表格沒有能力管理如此龐大的數(shù)據(jù)系統(tǒng)。ACCESS在管理如此龐大的數(shù)據(jù)時,不僅系統(tǒng)會造成不穩(wěn)定,同時會出現(xiàn)不可預(yù)料的情形。所以只能尋找能夠管理大型數(shù)據(jù)系統(tǒng)的數(shù)據(jù)庫,因此可以選擇SQLSERVER或Oracle。
2)組態(tài)軟件(組態(tài)王)支持對標(biāo)準(zhǔn)的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的插入、選擇、刪除等基本的操作,同時支持標(biāo)準(zhǔn)的SQL語言。靈活的運(yùn)用該組態(tài)軟件提供的SQL函數(shù)使監(jiān)控系統(tǒng)通過ODBC(開放性的數(shù)據(jù)源)配合標(biāo)準(zhǔn)的SQL語言對數(shù)據(jù)庫進(jìn)行各種簡單和復(fù)雜的操作。
3)即使使用大型的數(shù)據(jù)庫,SQL Server或Oracle,由于每天的數(shù)據(jù)量多達(dá)37440條記錄,如果將1個月,甚至是4個月的記錄全部寫入同一個數(shù)據(jù)庫的同一個表格,則所有的數(shù)據(jù)量大的將使表格崩潰,即使數(shù)據(jù)庫能夠管理,查詢的速度也是可想而知的,將會非常的慢。解決問題的思路是以系統(tǒng)的日期作為當(dāng)天的表格名稱。當(dāng)系統(tǒng)時間為00:00:00時刻時,新建一個表格,通過SQLCreateTable( DeviceID, "TableName", "TemplateName" )函數(shù)建立不同的表格,因為組態(tài)軟件支持字符串函數(shù)。
4)查詢條件比較復(fù)雜。為了完成如此復(fù)雜的查詢,使用了Active控件,因為組態(tài)軟件支持第三方控件,將所有的條件羅列出來進(jìn)行排列組合,將每一種情況都考慮在內(nèi)。然后通過程序來實現(xiàn)選擇條件轉(zhuǎn)換成SQLSELECT()函數(shù)工作的條件。因為工藝要求能夠任意查詢?nèi)我馍a(chǎn)線在任意時段的產(chǎn)量,為了能夠?qū)崿F(xiàn)該功能,可以新建站點及站點變量(\\本站點\CX_Hour,\\本站點\CX_Minute,\\本站點\CX_Hour1,\\本站點\CX_Minute1)。在以時間段進(jìn)行查詢時,先將以前兩個變量輸入的時間做為條件進(jìn)行查詢,將查詢出記錄的數(shù)據(jù)賦給在過程中自定義的中間變量。然后再以后兩個變量輸入的時間作為條件進(jìn)行查詢,將查詢出的結(jié)果同樣賦給自定義的中間變量。將兩次查詢的結(jié)果求差,然后將日期、時間、車間生產(chǎn)線產(chǎn)量通過報表的組態(tài)添到表格當(dāng)中。
5)對于月產(chǎn)量的查詢。需要判斷輸入的月份有幾天,然后從該月的第一天開始到最后一天進(jìn)行查詢,查詢的時刻為每一天的23:59分時各生產(chǎn)線的產(chǎn)量。然后對查詢出的數(shù)據(jù)進(jìn)行累加,直到該月的最后一天。具體程序?qū)崿F(xiàn)是按照特定的格式將數(shù)據(jù)填寫到報表當(dāng)中。
6)當(dāng)查詢的條件比較復(fù)雜時,有些條件不可能同時成立,因此,在選擇條件時,要互相限制,以避免出現(xiàn)混亂現(xiàn)象。
7)工藝要求能夠查詢?nèi)我馍a(chǎn)線每分鐘的產(chǎn)量,可以通過事件發(fā)生命令實現(xiàn),即每當(dāng)系統(tǒng)時間的秒等于59時,觸發(fā)執(zhí)行相應(yīng)程序。
8)在系統(tǒng)時間等于00:00:00時刻時,用事件命令建立相應(yīng)程序,以得到需要新建表格的名稱,并同時將PLC中累計產(chǎn)量的寄存器清零,重新開始對該日的產(chǎn)量進(jìn)行累計。
4 系統(tǒng)調(diào)試考慮
針對本文討論的特定工廠產(chǎn)量監(jiān)控查詢系統(tǒng),在系統(tǒng)安裝調(diào)試過程中有些問題是不能被忽略的。
1)因為兩個車間之間的距離在300m左右,而從第一個車間到監(jiān)控室的距離有500m左右,距離比較遠(yuǎn),為了遏制信號的衰減,將信號線用網(wǎng)線代替,同時加中繼器將信號放大。保證數(shù)據(jù)傳輸?shù)陌踩浴?BR>
2)要求現(xiàn)場布線時嚴(yán)格按照電氣規(guī)范施工,保證安裝的合格。
3)正確的設(shè)置操作系統(tǒng)中數(shù)據(jù)源ODBC的選項,以保證監(jiān)控系統(tǒng)能通過ODBC與數(shù)據(jù)庫SQL Server連接。在運(yùn)行監(jiān)控系統(tǒng)執(zhí)行任何操作時,觀察運(yùn)行反饋信息,以得到相關(guān)的錯誤信息,可根據(jù)提示的錯誤信息檢查程序。
4)報表組態(tài)非常靈活,可以通過While{}循環(huán)語句,將查詢結(jié)果按照順序填寫到報表中。靈活的運(yùn)用While{}語句可將程序簡化,減少監(jiān)控系統(tǒng)后臺運(yùn)行程序的時間。
5)靈活運(yùn)用應(yīng)用程序命令、數(shù)據(jù)改變命令、事件命令、熱鍵命令、按鈕的彈起、按住、按下命令進(jìn)行編程。
6)在程序量大的項目中應(yīng)養(yǎng)成良好的編程習(xí)慣,定義變量時最好使用英文對程序進(jìn)行標(biāo)注,以增加程序的可讀性。
系統(tǒng)經(jīng)調(diào)試正常后,投入生產(chǎn)運(yùn)行的產(chǎn)品產(chǎn)量柱狀圖如圖2所示,產(chǎn)量的趨勢圖如圖2所示。

5 結(jié)束語
盡管臺達(dá)PLC屬于小型PLC,但其性能可靠、支持485通訊等特點,足以完成集中控制的功能,配合組態(tài)軟件實現(xiàn)復(fù)雜的工廠監(jiān)控、數(shù)據(jù)查詢、打印、報表等DCS系統(tǒng)的功能。
上海佳泰塑膠有限公司是生產(chǎn)手術(shù)專用手套、醫(yī)用手套、科研手套及各種PVC手套的專業(yè)公司,年產(chǎn)值在0.5到1億元人民幣,產(chǎn)品基本上都是出口外銷。全廠有兩個生產(chǎn)車間共26條生產(chǎn)線,整個工廠的所有生產(chǎn)線由工廠產(chǎn)量監(jiān)控查詢系統(tǒng)實施實時監(jiān)控,對每一條生產(chǎn)線的產(chǎn)量數(shù)據(jù)進(jìn)行實時存儲,將PLC中掉電保持區(qū)的數(shù)據(jù)讀到監(jiān)控系統(tǒng)自定義的相應(yīng)變量當(dāng)中去, 每分鐘通過標(biāo)準(zhǔn)的SQL語言對數(shù)據(jù)進(jìn)行存儲(每分鐘向SQLSERVER數(shù)據(jù)庫中存儲26條生產(chǎn)線的產(chǎn)量數(shù)據(jù),即26條生產(chǎn)線的當(dāng)前產(chǎn)量),用戶可以通過日期、時間、時間段、車間、生產(chǎn)線等查詢?nèi)魏诬囬g、任意一條生產(chǎn)線的產(chǎn)量,能對車間、生產(chǎn)線的月產(chǎn)量進(jìn)行統(tǒng)計,并在查詢出滿足條件的記錄后,將結(jié)果通過報表顯示,按規(guī)定報表格式將結(jié)果進(jìn)行存儲和打印。以下是對相關(guān)技術(shù)問題的簡略討論。
2 系統(tǒng)結(jié)構(gòu)與功能
工廠產(chǎn)量監(jiān)控查詢系統(tǒng)的結(jié)構(gòu)示意圖如圖1所示。

該系統(tǒng)要實現(xiàn)的功能是可以任意查詢一車間、二車間任何生產(chǎn)線(共26條生產(chǎn)線)在任何時段的產(chǎn)量。具體要求如下:1)每條生產(chǎn)線產(chǎn)量的數(shù)據(jù)至少能夠保存4個月的儲存期,以便對歷史數(shù)據(jù)進(jìn)行查詢;2)能查詢每條生產(chǎn)線任意月、天、小時、分鐘的產(chǎn)量;3)能對任意一條生產(chǎn)線在任意時段的產(chǎn)量進(jìn)行查詢;4)查詢結(jié)果能以特定的格式在報表中顯示,同時將結(jié)果打印出來;5)各條生產(chǎn)線任意月、日、小時、分鐘的產(chǎn)量可在電腦上以柱狀圖、實時趨勢曲線的形式顯示。
查詢系統(tǒng)的查詢方式可以實現(xiàn):1)按照日期進(jìn)行查詢;2)按照時間進(jìn)行查詢;3)按照生產(chǎn)線進(jìn)行查詢;4)按照任意時間段進(jìn)行查詢;5)按照班次進(jìn)行查詢(早、中、晚班);6)查詢?nèi)我庠碌娜我廛囬g、任意生產(chǎn)線的產(chǎn)量;7)可以運(yùn)用第1)到第5)種不同的排列組合進(jìn)行復(fù)雜的查詢。
3 系統(tǒng)設(shè)計
該系統(tǒng)的設(shè)計是比較簡單的,軟、硬件選型配置如表1所示。
表1 系統(tǒng)軟、硬件配置

工廠產(chǎn)量監(jiān)控查詢系統(tǒng)的設(shè)計主要在于軟件系統(tǒng)的設(shè)計,以下問題是考慮的重點。
1)兩個車間共26條生產(chǎn)線,每分鐘要有26條記錄生成,每分鐘向數(shù)據(jù)庫插入26條記錄。該系統(tǒng)全天24小時工作,不允許停,所以一天的數(shù)據(jù)量為37440條記錄。每月的數(shù)據(jù)量為1160640條記錄。如果要存儲4個月,則數(shù)據(jù)量為4642260條記錄。數(shù)據(jù)量是相當(dāng)龐大的,硬盤的數(shù)據(jù)存儲接近2-3G,不僅會造成在查詢時,系統(tǒng)資源嚴(yán)重被占用,同時普通的數(shù)據(jù)庫如ACCESS的表格沒有能力管理如此龐大的數(shù)據(jù)系統(tǒng)。ACCESS在管理如此龐大的數(shù)據(jù)時,不僅系統(tǒng)會造成不穩(wěn)定,同時會出現(xiàn)不可預(yù)料的情形。所以只能尋找能夠管理大型數(shù)據(jù)系統(tǒng)的數(shù)據(jù)庫,因此可以選擇SQLSERVER或Oracle。
2)組態(tài)軟件(組態(tài)王)支持對標(biāo)準(zhǔn)的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的插入、選擇、刪除等基本的操作,同時支持標(biāo)準(zhǔn)的SQL語言。靈活的運(yùn)用該組態(tài)軟件提供的SQL函數(shù)使監(jiān)控系統(tǒng)通過ODBC(開放性的數(shù)據(jù)源)配合標(biāo)準(zhǔn)的SQL語言對數(shù)據(jù)庫進(jìn)行各種簡單和復(fù)雜的操作。
3)即使使用大型的數(shù)據(jù)庫,SQL Server或Oracle,由于每天的數(shù)據(jù)量多達(dá)37440條記錄,如果將1個月,甚至是4個月的記錄全部寫入同一個數(shù)據(jù)庫的同一個表格,則所有的數(shù)據(jù)量大的將使表格崩潰,即使數(shù)據(jù)庫能夠管理,查詢的速度也是可想而知的,將會非常的慢。解決問題的思路是以系統(tǒng)的日期作為當(dāng)天的表格名稱。當(dāng)系統(tǒng)時間為00:00:00時刻時,新建一個表格,通過SQLCreateTable( DeviceID, "TableName", "TemplateName" )函數(shù)建立不同的表格,因為組態(tài)軟件支持字符串函數(shù)。
4)查詢條件比較復(fù)雜。為了完成如此復(fù)雜的查詢,使用了Active控件,因為組態(tài)軟件支持第三方控件,將所有的條件羅列出來進(jìn)行排列組合,將每一種情況都考慮在內(nèi)。然后通過程序來實現(xiàn)選擇條件轉(zhuǎn)換成SQLSELECT()函數(shù)工作的條件。因為工藝要求能夠任意查詢?nèi)我馍a(chǎn)線在任意時段的產(chǎn)量,為了能夠?qū)崿F(xiàn)該功能,可以新建站點及站點變量(\\本站點\CX_Hour,\\本站點\CX_Minute,\\本站點\CX_Hour1,\\本站點\CX_Minute1)。在以時間段進(jìn)行查詢時,先將以前兩個變量輸入的時間做為條件進(jìn)行查詢,將查詢出記錄的數(shù)據(jù)賦給在過程中自定義的中間變量。然后再以后兩個變量輸入的時間作為條件進(jìn)行查詢,將查詢出的結(jié)果同樣賦給自定義的中間變量。將兩次查詢的結(jié)果求差,然后將日期、時間、車間生產(chǎn)線產(chǎn)量通過報表的組態(tài)添到表格當(dāng)中。
5)對于月產(chǎn)量的查詢。需要判斷輸入的月份有幾天,然后從該月的第一天開始到最后一天進(jìn)行查詢,查詢的時刻為每一天的23:59分時各生產(chǎn)線的產(chǎn)量。然后對查詢出的數(shù)據(jù)進(jìn)行累加,直到該月的最后一天。具體程序?qū)崿F(xiàn)是按照特定的格式將數(shù)據(jù)填寫到報表當(dāng)中。
6)當(dāng)查詢的條件比較復(fù)雜時,有些條件不可能同時成立,因此,在選擇條件時,要互相限制,以避免出現(xiàn)混亂現(xiàn)象。
7)工藝要求能夠查詢?nèi)我馍a(chǎn)線每分鐘的產(chǎn)量,可以通過事件發(fā)生命令實現(xiàn),即每當(dāng)系統(tǒng)時間的秒等于59時,觸發(fā)執(zhí)行相應(yīng)程序。
8)在系統(tǒng)時間等于00:00:00時刻時,用事件命令建立相應(yīng)程序,以得到需要新建表格的名稱,并同時將PLC中累計產(chǎn)量的寄存器清零,重新開始對該日的產(chǎn)量進(jìn)行累計。
4 系統(tǒng)調(diào)試考慮
針對本文討論的特定工廠產(chǎn)量監(jiān)控查詢系統(tǒng),在系統(tǒng)安裝調(diào)試過程中有些問題是不能被忽略的。
1)因為兩個車間之間的距離在300m左右,而從第一個車間到監(jiān)控室的距離有500m左右,距離比較遠(yuǎn),為了遏制信號的衰減,將信號線用網(wǎng)線代替,同時加中繼器將信號放大。保證數(shù)據(jù)傳輸?shù)陌踩浴?BR>
2)要求現(xiàn)場布線時嚴(yán)格按照電氣規(guī)范施工,保證安裝的合格。
3)正確的設(shè)置操作系統(tǒng)中數(shù)據(jù)源ODBC的選項,以保證監(jiān)控系統(tǒng)能通過ODBC與數(shù)據(jù)庫SQL Server連接。在運(yùn)行監(jiān)控系統(tǒng)執(zhí)行任何操作時,觀察運(yùn)行反饋信息,以得到相關(guān)的錯誤信息,可根據(jù)提示的錯誤信息檢查程序。
4)報表組態(tài)非常靈活,可以通過While{}循環(huán)語句,將查詢結(jié)果按照順序填寫到報表中。靈活的運(yùn)用While{}語句可將程序簡化,減少監(jiān)控系統(tǒng)后臺運(yùn)行程序的時間。
5)靈活運(yùn)用應(yīng)用程序命令、數(shù)據(jù)改變命令、事件命令、熱鍵命令、按鈕的彈起、按住、按下命令進(jìn)行編程。
6)在程序量大的項目中應(yīng)養(yǎng)成良好的編程習(xí)慣,定義變量時最好使用英文對程序進(jìn)行標(biāo)注,以增加程序的可讀性。
系統(tǒng)經(jīng)調(diào)試正常后,投入生產(chǎn)運(yùn)行的產(chǎn)品產(chǎn)量柱狀圖如圖2所示,產(chǎn)量的趨勢圖如圖2所示。

5 結(jié)束語
盡管臺達(dá)PLC屬于小型PLC,但其性能可靠、支持485通訊等特點,足以完成集中控制的功能,配合組態(tài)軟件實現(xiàn)復(fù)雜的工廠監(jiān)控、數(shù)據(jù)查詢、打印、報表等DCS系統(tǒng)的功能。
免責(zé)聲明:本文僅代表作者個人觀點,與電源在線網(wǎng)無關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,對本文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關(guān)內(nèi)容。
本文鏈接:基于臺達(dá)PLC的工廠產(chǎn)量監(jiān)控查詢系統(tǒng)(
http:m.mangadaku.com/news/2006-7/200676145644.html
http:m.mangadaku.com/news/2006-7/200676145644.html
文章標(biāo)簽: 臺達(dá)

