欒亮亮
PLC(Programmable Logic Controller)—可編程邏輯控制器是設(shè)備控制柜中的核心部件,用于控制設(shè)備工藝與采集儀表測(cè)量數(shù)據(jù)。其中,儀表測(cè)量數(shù)據(jù)是設(shè)備使用狀況評(píng)估、故障預(yù)判、生產(chǎn)運(yùn)行情況分析的重要依據(jù)。隨著PLC的廣泛應(yīng)用,其控制系統(tǒng)的設(shè)計(jì)越來(lái)越復(fù)雜,所需要采集和記錄的測(cè)量數(shù)據(jù)量不斷增加,有些基于PLC的設(shè)備控制系統(tǒng),需要存儲(chǔ)一年甚至幾年的運(yùn)行數(shù)據(jù)。因此,如何長(zhǎng)期、可靠地通過(guò)PLC采集和記錄儀表測(cè)量數(shù)據(jù),是控制柜設(shè)計(jì)和使用過(guò)程中需要解決的重要問題。
目前,采集和記錄設(shè)備生產(chǎn)數(shù)據(jù)的方法主要有以下幾種:
單片機(jī)雖然成本相對(duì)較低,但其運(yùn)算速度慢,硬件抗干擾能力差,可靠性低,信號(hào)采集過(guò)程濾波能力有限。
觸摸屏的數(shù)據(jù)記錄功能局限性較大,主要體現(xiàn)在:存儲(chǔ)容量低,只適合記錄較少的數(shù)據(jù),無(wú)法長(zhǎng)時(shí)間大規(guī)模記錄數(shù)據(jù);查閱不便,屏幕畫面較小,記錄讀取速度慢,調(diào)閱不方便;可靠性較低,斷電引起的設(shè)備關(guān)閉可能會(huì)造成數(shù)據(jù)丟失。因此,觸摸屏更適于作為就地實(shí)時(shí)顯示使用。
上位機(jī)的數(shù)據(jù)記錄功能強(qiáng),存儲(chǔ)容量大,但其綜合成本高,一般只有大型控制系統(tǒng)才會(huì)配備上位機(jī),小型控制系統(tǒng)僅采用觸摸屏做為人機(jī)界面。
PLC——可編程邏輯控制器,是一種用于工業(yè)自動(dòng)化的控制裝置,功能強(qiáng)大,集成度、可靠性高,使用靈活等,已廣泛應(yīng)用于各行業(yè)。利用PLC的相關(guān)功能進(jìn)行編程組態(tài),直接記錄儀表測(cè)量數(shù)據(jù),有以下幾方面特點(diǎn):成本低,存儲(chǔ)容量大;數(shù)據(jù)安全有保障,斷電后數(shù)據(jù)不會(huì)丟失;記錄讀取、上傳方便,與PC采用網(wǎng)線連接,通過(guò)網(wǎng)絡(luò)瀏覽器即可讀取數(shù)據(jù),不需安裝編程軟件,操作簡(jiǎn)便。
基于此,我們?cè)O(shè)計(jì)了一種以PLC作為數(shù)據(jù)記錄裝置的自動(dòng)控制系統(tǒng),實(shí)現(xiàn)了對(duì)數(shù)據(jù)的長(zhǎng)期、可靠記錄。
PLC數(shù)據(jù)記錄控制系統(tǒng)主要由觸摸屏、PLC模塊(包括CPU模塊與模擬量輸入擴(kuò)展模塊)、變送器、測(cè)量?jī)x表組成。測(cè)量?jī)x表的輸出信號(hào)通過(guò)變送器轉(zhuǎn)換成標(biāo)準(zhǔn)4~20mA信號(hào),送至PLC的擴(kuò)展模塊,經(jīng)過(guò)A/D轉(zhuǎn)換,變?yōu)閿?shù)字量傳送給PLC的CPU模塊;CPU將數(shù)據(jù)以相應(yīng)格式存儲(chǔ)在閃存(CPU或存儲(chǔ)卡)中,并為觸摸屏顯示提供數(shù)據(jù),對(duì)觸摸屏的輸入信息進(jìn)行相應(yīng)的處理;觸摸屏通過(guò)以太網(wǎng)口與CPU通訊,實(shí)現(xiàn)參數(shù)設(shè)置、數(shù)據(jù)實(shí)時(shí)觀察、報(bào)警信息處理等功能。
我們選用了西門子S7-1200系列PLC,其價(jià)格低廉,但功能強(qiáng)大,具有集成以太網(wǎng)接口、集成工藝功能強(qiáng)大和可擴(kuò)展性靈活等特點(diǎn),可為各種工藝任務(wù)提供簡(jiǎn)單的通信和有效的解決方案,尤其可滿足多種應(yīng)用中完全不同的自動(dòng)化需求。與S7-300/400系列相比,在能夠?qū)崿F(xiàn)相應(yīng)功能的前提下,S7-1200的價(jià)格優(yōu)勢(shì)及簡(jiǎn)單易用性十分明顯,而且其組態(tài)軟件操作簡(jiǎn)便、功能強(qiáng)、集成度高。因此,S7-1200 PLC是系統(tǒng)控制器的最佳選擇。
如圖1所示,PLC硬件配置采用CPU1214C+SM1231(8×13Bit)+SM1231(4×13Bit)。
圖1 PLC硬件配置
S7-1200 PLC提供了數(shù)據(jù)日志功能,可以使用Data logging系列指令,將運(yùn)行數(shù)據(jù)值存儲(chǔ)在永久性日志文件中。CPU將數(shù)據(jù)日志文件以標(biāo)準(zhǔn)CSV格式,存儲(chǔ)在S7-1200 CPU的裝載存儲(chǔ)器中。CPU按大小預(yù)定的循環(huán)日志文件形式組織數(shù)據(jù)記錄。
啟用S7-1200 CPU Web服務(wù)器功能管理數(shù)據(jù)日志文件,可以實(shí)現(xiàn)數(shù)據(jù)日志文件的下載、清除和刪除等操作;或?qū)?shù)據(jù)日志文件傳送到PC,使用標(biāo)準(zhǔn)電子表格工具(如Excel)分析數(shù)據(jù)。
S7-1200系列PLC中,數(shù)據(jù)日志與用戶程序、程序數(shù)據(jù)、PLC系統(tǒng)數(shù)據(jù)共享裝載存儲(chǔ)器空間。裝載存儲(chǔ)器又分為內(nèi)部裝載存儲(chǔ)器與外部裝載存儲(chǔ)器,可根據(jù)情況需要選擇其中一個(gè)使用,但不可同時(shí)使用。
內(nèi)部裝載存儲(chǔ)器,即CPU內(nèi)部閃存。本文所使用的CPU 1214C以及更高級(jí)別的1215C、1217C,其內(nèi)部裝載存儲(chǔ)器容量均只有4MB,如果所需存儲(chǔ)數(shù)據(jù)量較大,且要求長(zhǎng)時(shí)間記錄,則無(wú)法滿足要求。
外部裝載存儲(chǔ)器,即西門子的SIMATIC存儲(chǔ)卡(可選件,非必需),可插入CPU代替內(nèi)部裝載存儲(chǔ)器使用,目前有4MB、12MB、24MB、256MB、2GB五種規(guī)格。
數(shù)據(jù)日志文件中需要系統(tǒng)分配存儲(chǔ)空間的部分包括:記錄索引標(biāo)頭(記錄文件中各行的序號(hào));時(shí)間戳標(biāo)頭(每條記錄形成的日期時(shí)間);數(shù)據(jù)日志標(biāo)頭(所記錄數(shù)據(jù)的名稱,即文件中每列數(shù)據(jù)的標(biāo)題);數(shù)據(jù)記錄(儀表數(shù)據(jù)測(cè)量值)。
為方便計(jì)算,我們把需要記錄的數(shù)據(jù)數(shù)量及類型設(shè)定為10個(gè)REAL型變量,每個(gè)變量的標(biāo)題為2個(gè)字符,記錄頻率為1min/次,文件記錄時(shí)間為1年,由此,數(shù)據(jù)日志文件大小計(jì)算如下:
4.1.1 標(biāo)頭部分
數(shù)據(jù)日志標(biāo)頭字節(jié)=標(biāo)頭字符字節(jié)+2字節(jié)
(1)
其中:
標(biāo)頭字符字節(jié)=所有列數(shù)據(jù)標(biāo)題文本(包括分隔符逗號(hào))的字符字節(jié)數(shù)+21字節(jié) (2)
10個(gè)變量共有10個(gè)標(biāo)題,每個(gè)標(biāo)題為2個(gè)字符,10個(gè)標(biāo)題分隔逗號(hào)數(shù)量為9個(gè),根據(jù)式(1)、(2)
計(jì)算,結(jié)果如下:
數(shù)據(jù)日志標(biāo)頭字節(jié)=10×2+9+21+2=52字節(jié)(3)
4.1.2 數(shù)據(jù)部分
根據(jù)西門子PLC技術(shù)規(guī)范,數(shù)據(jù)日志數(shù)據(jù)字節(jié)計(jì)算公式如下:
數(shù)據(jù)日志數(shù)據(jù)字節(jié)=(一條記錄中的數(shù)據(jù)字節(jié)+時(shí)間戳字節(jié)+12字節(jié))×記錄數(shù) (4)
(1)一條記錄中的數(shù)據(jù)字節(jié)
將給出的數(shù)據(jù)類型的出現(xiàn)次數(shù)乘以該數(shù)據(jù)類型所需的字節(jié)數(shù)。
對(duì)一條記錄中的每個(gè)數(shù)據(jù)類型重復(fù)該過(guò)程,并對(duì)所有數(shù)據(jù)類型求和得到一條記錄中所有數(shù)據(jù)元素的總計(jì)字節(jié)。
本文中的數(shù)據(jù)類型為REAL,出現(xiàn)次數(shù)為10次,存儲(chǔ)REAL類型變量,每個(gè)變量需要16個(gè)字節(jié),則:
一條記錄中的數(shù)據(jù)字節(jié)=10×16=160字節(jié)(5)
(2)數(shù)據(jù)日志文件中的記錄數(shù)
記錄數(shù)不能超過(guò)Data logging系列指令里用于設(shè)置數(shù)據(jù)日志文件中可存儲(chǔ)的最大可能數(shù)值4、294、967、295,實(shí)際最大值取決于單個(gè)記錄文件的大小、其他數(shù)據(jù)日志的大小及裝載存儲(chǔ)器的可用資源。此外,Excel對(duì)工作表中允許的行數(shù)及列數(shù)也有一定限制。
本文中,記錄頻率為1min/次,文件記錄時(shí)間為1年,則:
記錄數(shù)為60×24×365=525 600 (6)
(3)一個(gè)數(shù)據(jù)記錄中的時(shí)間戳字節(jié)
有時(shí)間戳的情況下,時(shí)間戳字節(jié)=20字節(jié)(7)
將式(5)~(7)計(jì)算所得3個(gè)參數(shù)值代入式(4),計(jì)算可得:
數(shù)據(jù)日志數(shù)據(jù)字節(jié)=(160+20+12)×525 600=100 915 200字節(jié) (8)
由式(3)、(8)可得,數(shù)據(jù)日志總大小=100 915 200+52=100 915 252字節(jié)≈96MB。
西門子PLC技術(shù)規(guī)范中規(guī)定,單個(gè)數(shù)據(jù)日志文件的大小最大不可超過(guò)可用裝載存儲(chǔ)器大小或500MB(二者之中的較小值)。如果記錄條數(shù)達(dá)到程序參數(shù)設(shè)置的最大記錄數(shù),寫入的下一條記錄將覆蓋最早的記錄,之后再寫入的記錄將覆蓋下一條最早的數(shù)據(jù)記錄,依此類推。
根據(jù)上文的計(jì)算結(jié)果,并參考技術(shù)規(guī)范可知,如果我們選擇2GB規(guī)格的外部裝載存儲(chǔ)器,即西門子的SIMATIC存儲(chǔ)卡,并且在程序中只生成1個(gè)數(shù)據(jù)日志文件,則至少可以保存從查詢之日起向前5年之內(nèi)的數(shù)據(jù)記錄,并且不斷循環(huán)更新。
PLC程序的主要功能是初始化系統(tǒng)、控制設(shè)備工藝、采集儀表測(cè)量信息、記錄數(shù)據(jù)、故障報(bào)警等。我們利用西門子TIA Portal V13 SP1軟件,采用梯形圖語(yǔ)言進(jìn)行編程,其中數(shù)據(jù)記錄是程序的關(guān)鍵部分。
4.2.1 創(chuàng)建數(shù)據(jù)日志名稱、標(biāo)題和Data結(jié)構(gòu)
先建立DB塊(圖2),數(shù)據(jù)日志的名稱、列標(biāo)題文本和記錄的所有數(shù)據(jù)元素的數(shù)據(jù)類型,分別由Name、Header參數(shù)和Data分配。
圖2 創(chuàng)建DB塊
4.2.2 創(chuàng)建和初始化數(shù)據(jù)日志文件
執(zhí)行DataLogCreate操作后,系統(tǒng)會(huì)自動(dòng)打開數(shù)據(jù)日志文件(圖3)。
完成數(shù)據(jù)日志的創(chuàng)建需多個(gè)掃描周期,且DONE位僅在一個(gè)掃描周期內(nèi)有效,因此可通過(guò)編程捕獲“DataLogCreate”指令的DONE信號(hào)位(圖4)。
如果日志創(chuàng)建過(guò)程中存在錯(cuò)誤,則保存狀態(tài)輸出(圖5)。
4.2.3 以固定頻率觸發(fā)寫入指令(圖6)
圖3 日志文件的初始化
圖4“DatalogCreate”指令的DONE信號(hào)位
圖5 錯(cuò)誤狀態(tài)的保存
圖6 定期觸發(fā)寫入指令
4.2.4 將新過(guò)程值存儲(chǔ)在MyDatalog結(jié)構(gòu)中(圖7)
4.2.5 將數(shù)據(jù)寫入日志文件(圖8)何時(shí)開始執(zhí)行寫入命令取決于何時(shí)完成Data?LogCreate操作。數(shù)據(jù)日志的創(chuàng)建操作將跨越多個(gè)掃描周期,并且必須在執(zhí)行寫入操作之前完成。REQ輸入的上升沿信號(hào)是創(chuàng)建操作已完成的信號(hào)。
4.2.6 打開已有數(shù)據(jù)日志文件必須先將數(shù)據(jù)日志文件打開后,才能執(zhí)行Dat?aLogWrite操作。執(zhí)行DataLogCreate操作后,系統(tǒng)會(huì)自動(dòng)打開數(shù)據(jù)日志文件。但如果PLC執(zhí)行RUN-STOP切換或PLC循環(huán),上電后會(huì)自動(dòng)關(guān)閉數(shù)據(jù)日志文件,所以為保證系統(tǒng)每次上電后,可正常執(zhí)行數(shù)據(jù)寫入操作,故采用了DataLogOpen命令(圖9)。
4.2.7 啟用PLC Web服務(wù)器功能(圖10)
4.2.8 通過(guò)S7-1200 CPU Web服務(wù)器查看所創(chuàng)建的數(shù)據(jù)日志文件(圖11)
我們采用西門子S7-1200系列PLC作為控制器,利用其數(shù)據(jù)日志功能,實(shí)現(xiàn)了對(duì)儀表測(cè)量數(shù)據(jù)的記錄,這種方法具有成本低、存儲(chǔ)容量大、記錄時(shí)間長(zhǎng)、可靠性高等特點(diǎn)。
圖7 存儲(chǔ)新過(guò)程值
圖8 數(shù)據(jù)的寫入
圖9 打開已有數(shù)據(jù)日志
圖10 啟用Web服務(wù)器功能
圖11 查看日志文件