觸摸屏數(shù)據(jù)記錄實(shí)戰(zhàn):定時(shí)存盤與U盤導(dǎo)出全攻略)
做自動(dòng)化項(xiàng)目這么多年只要碰到需要追溯工藝參數(shù)、查故障原因的場合我基本上第一時(shí)間就會(huì)想到昆侖通態(tài)觸摸屏的數(shù)據(jù)記錄功能。這功能在國產(chǎn)HMI里屬于又實(shí)用又容易被用歪的典型用得好的老師傅能把歷史數(shù)據(jù)玩出花定時(shí)存盤、U盤導(dǎo)出、曲線回放一氣呵成用不好的呢存盤數(shù)據(jù)莫名丟失、時(shí)間戳亂跳、U盤插上去沒反應(yīng)最后只能拿手機(jī)拍屏幕湊合。這篇文章就把我從配置到落地踩過的坑、驗(yàn)證過的清單完整梳理一遍給正在跟昆侖通態(tài)數(shù)據(jù)記錄死磕的朋友一份能直接抄作業(yè)的參考。先說清楚這篇文章解決什么問題不管你是要在空壓機(jī)、注塑機(jī)還是環(huán)保設(shè)備上做參數(shù)記錄只要涉及昆侖通態(tài)觸摸屏的定時(shí)存盤、歷史數(shù)據(jù)保存、U盤批量導(dǎo)出、Excel二次分析這篇都覆蓋到了。內(nèi)容不涉及太玄乎的理論全是組態(tài)環(huán)境里一步步能落實(shí)的操作以及我在現(xiàn)場調(diào)試時(shí)踩過之后才總結(jié)出來的避坑點(diǎn)。適合剛接觸MCGS組態(tài)軟件的新手也適合已經(jīng)做了幾個(gè)項(xiàng)目但總在數(shù)據(jù)完整性上栽跟頭的工程師。1. 數(shù)據(jù)記錄功能的核心價(jià)值與應(yīng)用定位1.1 什么時(shí)候必須用觸摸屏數(shù)據(jù)記錄而不是PLC很多剛?cè)胄械碾姎夤こ處煏?huì)有一個(gè)慣性思維數(shù)據(jù)記錄是PLC的活觸摸屏只是顯示界面。這話對了一半。大型項(xiàng)目里PLC的DB塊、掉電保持區(qū)、存儲(chǔ)卡確實(shí)能承擔(dān)數(shù)據(jù)存儲(chǔ)任務(wù)但中小型項(xiàng)目尤其是不帶存儲(chǔ)擴(kuò)展模塊的西門子S7-200 SMART、三菱FX系列或者老舊的施耐德UnityPro項(xiàng)目PLC的存儲(chǔ)資源非常緊張一個(gè)數(shù)據(jù)塊分配給工藝參數(shù)后留給歷史記錄的容量少得可憐。這時(shí)候把數(shù)據(jù)記錄放在觸摸屏上就是最優(yōu)解。昆侖通態(tài)觸摸屏本身自帶Flash存儲(chǔ)空間掉電不丟失而且數(shù)據(jù)記錄功能是組態(tài)軟件內(nèi)置的不需要額外寫通信協(xié)議采集周期比PLC循環(huán)掃描還穩(wěn)。加上觸摸屏背后有完整的時(shí)間系統(tǒng)每條記錄自動(dòng)帶時(shí)間戳配合歷史曲線和報(bào)表查詢比在PLC里自己寫FIFO隊(duì)列再通過通信上傳來得省事得多。我在一個(gè)空壓機(jī)項(xiàng)目里就是這么干的??諌簷C(jī)的排氣溫度、排氣壓力、運(yùn)行電流、累計(jì)運(yùn)行時(shí)間這幾個(gè)參數(shù)客戶要求每5分鐘存一條至少保存3個(gè)月。PLC當(dāng)時(shí)選的是經(jīng)濟(jì)型CPU存儲(chǔ)區(qū)根本不夠。后來全部改到昆侖通態(tài)觸摸屏本地存盤U盤每月導(dǎo)出一次問題直接解決PLC程序一行都沒加。1.2 昆侖通態(tài)數(shù)據(jù)記錄的整體架構(gòu)在動(dòng)手配置之前建議大家先把昆侖通態(tài)MCGS數(shù)據(jù)記錄這套機(jī)制的整體結(jié)構(gòu)捋清楚。昆侖通態(tài)的數(shù)據(jù)記錄不是簡單地勾選一個(gè)“啟用存盤”開關(guān)它由三個(gè)環(huán)節(jié)組成數(shù)據(jù)對象、存盤策略、存儲(chǔ)介質(zhì)。數(shù)據(jù)對象是最基礎(chǔ)的單元相當(dāng)于PLC里的變量可以是數(shù)值型、開關(guān)型、字符型。你要記錄的每一個(gè)物理量壓力、溫度、流量都要先在實(shí)時(shí)數(shù)據(jù)庫里建好對應(yīng)的數(shù)據(jù)對象。存盤策略是觸發(fā)動(dòng)作告訴觸摸屏“什么時(shí)候存”常見的有按周期存、按條件存、按變化存。存儲(chǔ)介質(zhì)則決定了數(shù)據(jù)最終落到哪里默認(rèn)是觸摸屏內(nèi)置Flash也可以配置成U盤優(yōu)先。這三個(gè)環(huán)節(jié)任何一個(gè)沒配對記錄出來的數(shù)據(jù)就不完整。舉個(gè)例子你在用戶窗口里做了個(gè)漂亮的趨勢圖但實(shí)時(shí)數(shù)據(jù)庫里根本沒建存盤數(shù)據(jù)對象那趨勢圖就是一張空殼永遠(yuǎn)不會(huì)刷新歷史數(shù)據(jù)。這類問題我在現(xiàn)場見過太多次了所以下面直接按配置順序從數(shù)據(jù)對象開始逐個(gè)說。2. 定時(shí)存盤的完整配置清單2.1 建立存盤數(shù)據(jù)對象的步驟與命名規(guī)范打開昆侖通態(tài)MCGS組態(tài)環(huán)境左側(cè)工程樹的“實(shí)時(shí)數(shù)據(jù)庫”就是建變量的地方。雙擊進(jìn)入后在空白區(qū)域右鍵選擇“新增對象”彈出來的界面需要填對象名稱、初始值、工程單位還有最關(guān)鍵的“存盤屬性”選項(xiàng)卡。很多人在這里會(huì)犯第一個(gè)錯(cuò)誤只建普通數(shù)據(jù)對象沒有勾選“允許存盤”。如果你在實(shí)時(shí)數(shù)據(jù)庫里新建對象后不去動(dòng)存盤屬性那這個(gè)數(shù)據(jù)對象只會(huì)參與實(shí)時(shí)顯示不會(huì)寫入歷史記錄。正確操作是在數(shù)據(jù)對象屬性窗口里找到“存盤屬性”標(biāo)簽頁勾上“允許存盤”然后選擇“定時(shí)存盤”周期按項(xiàng)目需求填。我習(xí)慣把存盤周期統(tǒng)一寫進(jìn)腳本控制而不是在對象屬性里寫死后面會(huì)解釋原因。命名規(guī)范這塊強(qiáng)烈建議用帶前綴的命名方式。比如溫度變量用T_Out_Air、T_Return_Air壓力變量用P_Discharge、P_Suction別用AI0、AO1這種編號(hào)式命名。原因很實(shí)在數(shù)據(jù)記錄導(dǎo)出后用Excel打開滿屏的AI0_1根本不知道對應(yīng)哪個(gè)測點(diǎn)現(xiàn)場排查問題的時(shí)候還要翻變量表對照效率極低。我在一個(gè)環(huán)保項(xiàng)目里接手過別人的程序全工程一百多個(gè)變量全部叫DATA1到DATA120做報(bào)表映射的時(shí)候差點(diǎn)崩潰。2.2 定時(shí)存盤的周期設(shè)定與存盤策略昆侖通態(tài)的定時(shí)存盤支持在數(shù)據(jù)對象屬性里直接設(shè)定存盤周期單位是秒最小可以到1秒。但這里有一個(gè)隱藏邏輯存盤周期的實(shí)際精度受觸摸屏掃描周期影響。昆侖通態(tài)的存盤操作是在后臺(tái)策略中執(zhí)行的如果工程同時(shí)運(yùn)行了很多動(dòng)畫、窗口切換、腳本任務(wù)系統(tǒng)負(fù)荷一高實(shí)際存盤間隔會(huì)比設(shè)定值大。所以追求毫秒級(jí)精度的場合別指望觸摸屏存盤1秒以上的場景問題不大。我常用的周期檔位有幾個(gè)設(shè)備運(yùn)行狀態(tài)類參數(shù)開機(jī)、停機(jī)、故障代碼用變化存盤只有狀態(tài)變了才寫一條這樣數(shù)據(jù)量小而且還原度高工藝參數(shù)溫度、壓力、流量用定時(shí)存盤周期一般是5秒、30秒、5分鐘看客戶的追溯粒度需求累計(jì)量運(yùn)行時(shí)間、總產(chǎn)量用定時(shí)存盤加變化存盤組合防止掉電期間漏記。有一個(gè)踩過的坑必須提存盤周期設(shè)得太短數(shù)據(jù)量會(huì)暴漲觸摸屏的Flash寫入壽命會(huì)快速消耗。昆侖通態(tài)的Flash存儲(chǔ)介質(zhì)有擦寫次數(shù)限制雖然日常使用很難摸到上限但如果你拿一臺(tái)屏7x24小時(shí)運(yùn)行每秒鐘存一條一年下來寫入次數(shù)非??捎^。我一般建議產(chǎn)線設(shè)備最低30秒一條管理層報(bào)表5分鐘一條既能滿足追溯要求又不會(huì)把存儲(chǔ)壽命快速耗盡。2.3 使用循環(huán)腳本實(shí)現(xiàn)靈活的定時(shí)錄制直接在數(shù)據(jù)對象屬性里寫死存盤周期能滿足80%的場景但遇到需要“開機(jī)才存、停機(jī)不存”或者“不同階段不同存盤頻率”的需求就不夠靈活了。這時(shí)候需要在“運(yùn)行策略”里建一個(gè)循環(huán)腳本通過腳本控制存盤開關(guān)和周期。實(shí)際做法是這樣的在工程樹的“運(yùn)行策略”里雙擊“循環(huán)腳本”設(shè)置腳本循環(huán)周期比如500ms或1秒然后在腳本里寫判斷邏輯。舉個(gè)例子空壓機(jī)只在運(yùn)行狀態(tài)時(shí)記錄排氣溫度IF 空壓機(jī)運(yùn)行狀態(tài) 1 THEN T_Exhaust_Temp 實(shí)際采集溫度 T_Exhaust_Temp.SaveData() ENDIF如果是不同工況切換存盤頻率可以通過修改數(shù)據(jù)對象的存盤周期屬性來實(shí)現(xiàn)IF 當(dāng)前工況 0 THEN T_Exhaust_Temp.SaveCycle 300 ELSE T_Exhaust_Temp.SaveCycle 60 ENDIF需要注意SaveCycle這個(gè)屬性在MCGS腳本中是否直接可用要看具體的軟件版本部分版本需要通過“!ChangeSaveCycle”之類的內(nèi)部函數(shù)來改變。我的建議是腳本里控制存盤開關(guān)用SaveData()控制周期用內(nèi)部函數(shù)版本不一致時(shí)以軟件自帶的腳本幫助為準(zhǔn)。調(diào)試時(shí)先在模擬環(huán)境里運(yùn)行打開“存盤數(shù)據(jù)瀏覽”窗口觀察數(shù)據(jù)寫入情況一切正常再下載到真機(jī)。提示循環(huán)腳本里的存盤操作是阻塞式的如果存盤數(shù)據(jù)量很大腳本執(zhí)行時(shí)間會(huì)拉長甚至影響畫面刷新。數(shù)據(jù)量大時(shí)建議把存盤周期放大或者改用定時(shí)器策略不要在一個(gè)循環(huán)里塞太多寫盤任務(wù)。3. U盤導(dǎo)出的配置與實(shí)操流程3.1 U盤導(dǎo)出功能的前提條件昆侖通態(tài)觸摸屏的U盤導(dǎo)出功能我愿稱之為“數(shù)據(jù)拯救者”。沒有這個(gè)功能之前想把歷史數(shù)據(jù)拿出來分析只能一張張截屏或者用上位機(jī)組態(tài)軟件通過以太網(wǎng)讀取。U盤導(dǎo)出直接繞開了這些限制插上U盤按幾個(gè)按鈕數(shù)據(jù)就變成文件落到U盤里。但不是所有昆侖通態(tài)的屏都支持U盤導(dǎo)出。低端型號(hào)比如部分7寸經(jīng)濟(jì)型可能只支持USB下載組態(tài)程序不支持U盤數(shù)據(jù)導(dǎo)出選型的時(shí)候一定要看硬件手冊里“USB接口功能”的說明。另外U盤的格式必須正確絕大多數(shù)昆侖通態(tài)觸摸屏只認(rèn)FAT32格式不認(rèn)NTFS和exFAT。我試過插一個(gè)64GB的exFAT格式U盤進(jìn)去觸摸屏提示“U盤未就緒”格式化FAT32之后一切正常。U盤導(dǎo)出的具體路徑有兩條一是在工程組態(tài)里專門做一個(gè)導(dǎo)出按鈕調(diào)用系統(tǒng)的數(shù)據(jù)導(dǎo)出函數(shù)導(dǎo)出路徑指向U盤二是用系統(tǒng)自帶的“數(shù)據(jù)管理”功能在觸摸屏的啟動(dòng)菜單里直接進(jìn)入存儲(chǔ)管理手動(dòng)執(zhí)行導(dǎo)出。第一種適合給現(xiàn)場操作工用第二種適合維護(hù)工程師自己操作。3.2 工程內(nèi)配置U盤導(dǎo)出按鈕的完整步驟在用戶窗口新建一個(gè)按鈕比如叫“歷史數(shù)據(jù)導(dǎo)出”然后在按鈕的“腳本”屬性里寫導(dǎo)出邏輯。昆侖通態(tài)MCGS的腳本語言類似VB核心是調(diào)用!SaveDataAs或!ExportData這類內(nèi)置函數(shù)不同版本的函數(shù)名稍有差異我用得最多的是通過CSV文本來實(shí)現(xiàn)。標(biāo)準(zhǔn)的腳本流程是這樣的先檢測U盤是否在線再指定導(dǎo)出目錄執(zhí)行導(dǎo)出最后提示結(jié)果。這里貼一段我經(jīng)常用的腳本骨架IF !CheckUSBPort() 0 THEN !MessageBox(未檢測到U盤請插入U(xiǎn)盤后重試) ELSE !SetDataPath(U盤根目錄, DATA) !ExportData(存盤數(shù)據(jù)組1, CSV, D:\數(shù)據(jù)導(dǎo)出_當(dāng)前日期.csv) !MessageBox(導(dǎo)出完成文件已保存) ENDIF上面這段只是示意因?yàn)镸CGS的導(dǎo)出函數(shù)在不同版本中差異很大有的是!SaveDataAs有的是需要先綁定存盤文件名再復(fù)制到U盤。我給大家一個(gè)更穩(wěn)妥的通用方案利用昆侖通態(tài)的系統(tǒng)函數(shù)“!CopyFile”把觸摸屏內(nèi)部Flash中的存盤數(shù)據(jù)文件直接復(fù)制到U盤。存盤數(shù)據(jù)文件通常存在觸摸屏的\Flash\DATA\目錄下文件名帶有工程和日期信息。具體操作時(shí)先打開MCGS的幫助文檔搜索“存盤數(shù)據(jù)”“U盤”“導(dǎo)出”這幾個(gè)關(guān)鍵詞確認(rèn)當(dāng)前版本支持的確切函數(shù)名和參數(shù)格式。然后在模擬環(huán)境里用虛擬U盤功能測試腳本跑通了再下載到真機(jī)。這樣能省掉現(xiàn)場調(diào)試時(shí)反復(fù)燒錄的麻煩。3.3 導(dǎo)出數(shù)據(jù)的Excel查看與常見格式問題無論用哪種方式導(dǎo)出昆侖通態(tài)最終生成的文件常見有兩種格式一種是CSV文本文件用Excel直接打開就能看另一種是二進(jìn)制格式的存盤文件擴(kuò)展名通常是.dat或.mcg需要昆侖通態(tài)配套的“數(shù)據(jù)提取工具”或者升級(jí)版組態(tài)軟件來轉(zhuǎn)換。CSV格式有利有弊。好處是通用性強(qiáng)Excel、WPS、Python的pandas都能直接讀。壞處是如果你在數(shù)據(jù)對象里定義了字符串變量并且字符串中間帶有逗號(hào)或者換行符導(dǎo)出到CSV時(shí)會(huì)導(dǎo)致列錯(cuò)位。我在一個(gè)掃碼槍項(xiàng)目里就踩過這個(gè)坑產(chǎn)品條碼是ABC123,DEF456這種帶逗號(hào)的格式導(dǎo)出CSV后一列變成了兩列后來在腳本里提前把逗號(hào)替換成全角逗號(hào)問題才解決。如果導(dǎo)出的是二進(jìn)制存盤文件處理方式不一樣。打開昆侖通態(tài)組態(tài)軟件在“工具”菜單里找到“存盤數(shù)據(jù)瀏覽”或“數(shù)據(jù)提取”選擇對應(yīng)的存盤文件可以瀏覽每條記錄并另存為CSV。這個(gè)工具還能按時(shí)間范圍批量提取非常適合做月度報(bào)表時(shí)使用。4. 常見問題與排查技巧實(shí)錄4.1 數(shù)據(jù)不存盤或歷史記錄丟失的排查思路做項(xiàng)目最怕的就是調(diào)試時(shí)一切正常交付運(yùn)行一周后客戶突然說數(shù)據(jù)沒記上。數(shù)據(jù)不存盤這個(gè)問題我總結(jié)了一套快速排查路徑按順序檢查基本能定位。先看實(shí)時(shí)數(shù)據(jù)庫里的數(shù)據(jù)對象是否勾選了“允許存盤”。這一步至少能排除一半問題很多人復(fù)制了變量之后沒檢查存盤屬性。再看存盤策略的周期是否設(shè)置正確特別是用腳本控制存盤開關(guān)的工程如果腳本里條件判斷寫反了可能導(dǎo)致整個(gè)存盤邏輯永遠(yuǎn)不觸發(fā)。三看觸摸屏的剩余存儲(chǔ)空間在“工程信息”里可以查看Flash已用空間如果空間滿了新數(shù)據(jù)寫不進(jìn)去舊數(shù)據(jù)可能被覆蓋或直接停止存盤。最后看存盤文件是否能正常打開。用昆侖通態(tài)自帶的存盤數(shù)據(jù)瀏覽工具打開內(nèi)部存盤文件如果提示文件損壞大概率是存盤過程中觸摸屏斷電導(dǎo)致的。這個(gè)問題現(xiàn)場最常見解決方式是選帶掉電保護(hù)的工業(yè)級(jí)U盤作為擴(kuò)展存儲(chǔ)或者選購支持UPS供電的觸摸屏盡量避免存盤瞬間突然斷電。4.2 U盤無法識(shí)別與文件復(fù)制失敗的典型場景U盤插上后觸摸屏沒反應(yīng)這個(gè)問題出現(xiàn)頻率極高。我的排查步驟是這樣的第一看U盤格式必須是FAT32這是老生常談第二看U盤容量部分昆侖通態(tài)老型號(hào)對U盤容量有限制超過32GB的可能無法正確識(shí)別換一個(gè)8GB的老U盤反而穩(wěn)定第三看U盤接口類型觸摸屏的USB Host口一般對USB 3.0的U盤兼容性不太好優(yōu)先用USB 2.0的U盤。文件復(fù)制失敗的情況更隱蔽。觸摸屏的USB接口供電能力有限一些質(zhì)量較差的U盤或者帶加密芯片的U盤在電腦上好好的插到觸摸屏上就“掉盤”。還有U盤里的文件夾層級(jí)太深觸摸屏的文件系統(tǒng)不支持復(fù)雜目錄結(jié)構(gòu)也會(huì)導(dǎo)致復(fù)制失敗。我的建議是U盤根目錄下只建一層文件夾文件名用英文字母和數(shù)字組合不要帶中文、空格和特殊符號(hào)。這個(gè)細(xì)節(jié)看起來不起眼但在昆侖通態(tài)的文件系統(tǒng)里中文文件名偶爾會(huì)出亂碼一旦亂碼文件復(fù)制就會(huì)中斷。4.3 時(shí)間戳混亂與歷史曲線對不上的問題歷史曲線是數(shù)據(jù)記錄功能最直觀的展現(xiàn)形式但我見過不少項(xiàng)目里曲線顯示的時(shí)間和實(shí)際時(shí)間對不上明明10點(diǎn)鐘的數(shù)據(jù)曲線上顯示的卻是8點(diǎn)。這個(gè)問題的根子通常不在存盤功能本身而在于觸摸屏的實(shí)時(shí)時(shí)鐘設(shè)置不對。昆侖通態(tài)觸摸屏的時(shí)鐘來源有三個(gè)一是出廠自帶的RTC實(shí)時(shí)時(shí)鐘靠內(nèi)部紐扣電池供電二是通過腳本從PLC同步時(shí)間三是通過以太網(wǎng)從上位機(jī)或NTP服務(wù)器同步。如果項(xiàng)目里PLC斷電重啟過或者觸摸屏的時(shí)鐘電池沒電了時(shí)間就會(huì)回退到出廠默認(rèn)值導(dǎo)致新存的數(shù)據(jù)時(shí)間戳全部錯(cuò)亂。我的解決習(xí)慣是每次開機(jī)進(jìn)入主畫面時(shí)用腳本從PLC讀取標(biāo)準(zhǔn)時(shí)間并同步到觸摸屏。如果PLC也沒有標(biāo)準(zhǔn)時(shí)鐘源可以在觸摸屏的“系統(tǒng)設(shè)置”里手動(dòng)校正一次時(shí)間然后在工程里做一個(gè)“時(shí)間校準(zhǔn)”按鈕讓現(xiàn)場人員在發(fā)現(xiàn)時(shí)間不對時(shí)一鍵同步。對于嚴(yán)格要求時(shí)間一致性的場景強(qiáng)烈建議讓觸摸屏通過以太網(wǎng)連接一個(gè)NTP時(shí)間服務(wù)器或者用GPS/4G模塊提供時(shí)鐘源這樣能徹底避免時(shí)間漂移。注意時(shí)間戳問題會(huì)影響U盤導(dǎo)出后的數(shù)據(jù)排序和分析結(jié)果。如果你發(fā)現(xiàn)導(dǎo)出的數(shù)據(jù)時(shí)間順序是亂的優(yōu)先檢查觸摸屏的實(shí)時(shí)時(shí)鐘不要憑空懷疑存盤邏輯。5. 實(shí)戰(zhàn)案例空壓機(jī)觸摸屏數(shù)據(jù)記錄的完整方案5.1 需求梳理與數(shù)據(jù)對象設(shè)計(jì)前面說了不少理論這里用一個(gè)我實(shí)際做過的空壓機(jī)項(xiàng)目把從配置到交付的完整流程串一遍。客戶是一家中型工廠三臺(tái)空壓機(jī)要求觸摸屏本地記錄關(guān)鍵運(yùn)行數(shù)據(jù)每臺(tái)設(shè)備每5分鐘存一條保存至少90天每月用U盤導(dǎo)出一次做能耗分析。數(shù)據(jù)對象設(shè)計(jì)如下數(shù)據(jù)對象名含義類型存盤周期工程單位P_Discharge排氣壓力數(shù)值300秒MPaT_Exhaust排氣溫度數(shù)值300秒℃I_Motor電機(jī)電流數(shù)值300秒AState_Run運(yùn)行狀態(tài)開關(guān)變化存盤-Time_Total累計(jì)運(yùn)行時(shí)間數(shù)值300秒小時(shí)Fault_Code當(dāng)前故障碼開關(guān)變化存盤-建對象的順序有個(gè)小技巧先建好所有數(shù)值型模擬量對象再建開關(guān)量對象然后統(tǒng)一修改存盤屬性。這樣能減少屬性窗口的重復(fù)打開次數(shù)配置效率高很多。5.2 存盤策略落地與歷史報(bào)表聯(lián)動(dòng)空壓機(jī)的數(shù)據(jù)記錄不光是存下來就完事客戶還要能在觸摸屏上按月查歷史數(shù)據(jù)并能導(dǎo)出Excel做能耗對比。我在工程里做了三個(gè)畫面歷史曲線畫面、歷史報(bào)表畫面、U盤導(dǎo)出畫面。歷史曲線畫面用的是昆侖通態(tài)“歷史趨勢曲線”控件設(shè)置數(shù)據(jù)源為對應(yīng)數(shù)據(jù)對象的存盤數(shù)據(jù)時(shí)間范圍可以切換24小時(shí)、7天、30天。要注意的是歷史趨勢曲線控件在組態(tài)時(shí)如果綁定了錯(cuò)誤的數(shù)據(jù)對象畫面上會(huì)顯示空白排查時(shí)去控件屬性里看數(shù)據(jù)源是否選擇的是“存盤數(shù)據(jù)”而不是“實(shí)時(shí)數(shù)據(jù)”。歷史報(bào)表畫面用的是“自由報(bào)表”或“歷史報(bào)表”控件按時(shí)間范圍查詢存盤數(shù)據(jù)填充到表格里。昆侖通態(tài)的報(bào)表控件支持頁碼翻頁但不支持直接在控件里修改數(shù)據(jù)只能查看和導(dǎo)出。如果需要客戶在觸摸屏上直接填寫巡檢記錄那是另一套“輸入框數(shù)據(jù)對象”的方案不在本文范圍內(nèi)。5.3 U盤導(dǎo)出畫面與文件管理的細(xì)節(jié)U盤導(dǎo)出畫面我做了一個(gè)很簡潔的交互三個(gè)按鈕分別是“插入U(xiǎn)盤檢測”“導(dǎo)出本月數(shù)據(jù)”“導(dǎo)出全部數(shù)據(jù)”旁邊加一個(gè)狀態(tài)指示燈顯示導(dǎo)出結(jié)果。最關(guān)鍵的一點(diǎn)是導(dǎo)出完成后一定要彈窗提示“導(dǎo)出完成請安全拔出U盤”提醒操作員不要中途拔盤防止寫入不完整。文件命名規(guī)則我統(tǒng)一用設(shè)備編號(hào)_日期范圍.csv比如AC01_20240101_20240131.csv。這樣客戶拿到U盤后不用打開文件就能知道這是哪臺(tái)設(shè)備、哪個(gè)時(shí)間段的數(shù)據(jù)。文件名在腳本里可以通過拼接字符串的方式自動(dòng)生成。還有一個(gè)小細(xì)節(jié)U盤里的數(shù)據(jù)文件如果積累太多現(xiàn)場人員可能會(huì)把U盤插到電腦上誤刪文件。我給客戶寫的操作規(guī)范里特意強(qiáng)調(diào)了這一點(diǎn)同時(shí)建議在工程里增加一個(gè)“存儲(chǔ)空間查看”頁面顯示U盤剩余空間提醒及時(shí)清理舊文件。5.4 從U盤到Excel的能耗分析閉環(huán)導(dǎo)出的CSV文件客戶拿到的下一步就是做能耗分析。這方面的經(jīng)驗(yàn)值得單獨(dú)說一說??諌簷C(jī)的能耗分析通常會(huì)用到排氣壓力、電機(jī)電流、累計(jì)運(yùn)行時(shí)間這幾個(gè)參數(shù)。我建議客戶在Excel里做一張透視表按月匯總平均排氣壓力、平均電流、總運(yùn)行時(shí)間再用公式估算耗電量。這里有一個(gè)數(shù)據(jù)質(zhì)量方面的坑提醒大家如果存盤是每5分鐘一條一個(gè)月的數(shù)據(jù)量大約是12條/小時(shí) × 24小時(shí) × 31天 8928條三臺(tái)設(shè)備就是接近2.7萬條。Excel處理這個(gè)量級(jí)的數(shù)據(jù)沒問題但如果你用的舊電腦打開帶格式的Excel透視表可能會(huì)卡頓。建議導(dǎo)出的CSV用純數(shù)據(jù)格式不要帶公式和樣式導(dǎo)入Excel后再統(tǒng)一格式化。做能耗分析時(shí)注意時(shí)間對齊。如果多臺(tái)設(shè)備的數(shù)據(jù)文件長度不同有的設(shè)備中途停機(jī)了幾天使用VLOOKUP或Power Query做時(shí)間軸對齊時(shí)要以主設(shè)備的時(shí)間作為基準(zhǔn)其他設(shè)備用近似匹配不然會(huì)產(chǎn)生大量空行。6. 幾個(gè)容易踩的隱藏雷區(qū)與個(gè)性化技巧補(bǔ)充6.1 一個(gè)工程里多個(gè)存盤組的管理思路當(dāng)設(shè)備比較大數(shù)據(jù)對象超過幾十個(gè)時(shí)建議拆分存盤組而不是把所有數(shù)據(jù)對象放在同一組里。昆侖通態(tài)的存盤數(shù)據(jù)可以按組管理例如“工藝參數(shù)組”“能耗統(tǒng)計(jì)組”“報(bào)警事件組”每組可以有不同的存盤周期。這樣做的好處是導(dǎo)出時(shí)可以按組導(dǎo)出客戶要工藝數(shù)據(jù)時(shí)只導(dǎo)出工藝參數(shù)組文件小、易閱讀。我在一個(gè)注塑機(jī)項(xiàng)目里就是這么拆的溫度、壓力、速度歸“工藝組”每5秒存一條產(chǎn)成品數(shù)量、合格率歸“產(chǎn)量組”每分鐘存一條故障代碼、報(bào)警信息歸“事件組”變化存盤。三組數(shù)據(jù)互不干擾查問題的時(shí)候可以按時(shí)間交叉比對效率比混在一堆里翻高得多。6.2 攝像頭、掃碼槍等擴(kuò)展數(shù)據(jù)記錄的可能性昆侖通態(tài)的數(shù)據(jù)記錄不僅能存PLC變量還能存一部分?jǐn)U展設(shè)備的數(shù)據(jù)。比如熱詞里提到的昆侖通態(tài)連接掃碼槍掃碼槍讀到的條碼會(huì)以字符串?dāng)?shù)據(jù)對象的形式進(jìn)入實(shí)時(shí)數(shù)據(jù)庫同樣可以設(shè)置存盤屬性。這樣每一條掃描記錄都帶時(shí)間戳后面做產(chǎn)品追溯就很方便。攝像頭接入是另一條可行的路子這需要觸摸屏型號(hào)支持視頻輸入功能可以在畫面里嵌入視頻窗口。不過攝像頭數(shù)據(jù)量比較大普通的數(shù)據(jù)記錄機(jī)制不處理視頻流存儲(chǔ)它只是把視頻窗口疊加在組態(tài)畫面上顯示。所以在設(shè)計(jì)時(shí)別想著用數(shù)據(jù)記錄功能把視頻保存下來視頻錄像應(yīng)該交給獨(dú)立的網(wǎng)絡(luò)錄像機(jī)去做觸摸屏只負(fù)責(zé)展示和聯(lián)動(dòng)。6.3 物聯(lián)網(wǎng)遠(yuǎn)程讀取數(shù)據(jù)記錄的搭配方案如果你的項(xiàng)目有物聯(lián)網(wǎng)模塊數(shù)據(jù)記錄在本地同時(shí)也可以往云平臺(tái)傳一份。昆侖通態(tài)有一些物聯(lián)網(wǎng)盒子或帶4G模塊的觸摸屏型號(hào)可以把實(shí)時(shí)數(shù)據(jù)傳到云端這意味著即使現(xiàn)場沒人插U盤導(dǎo)出歷史數(shù)據(jù)在云端也有一份備份。要注意的是物聯(lián)網(wǎng)傳輸和本地存盤的周期可以不一樣。本地存盤為了保證數(shù)據(jù)密度可能每5秒一條4G網(wǎng)絡(luò)按這個(gè)頻率上傳流量成本很高所以云端采集周期一般放寬到30秒或1分鐘或者只上傳關(guān)鍵狀態(tài)變化量。我在配置時(shí)習(xí)慣把云端通道單獨(dú)建一組數(shù)據(jù)對象跟本地存盤對象分離互不影響免得物聯(lián)網(wǎng)模塊異常時(shí)反過來拖累本地存盤。6.4 隱藏的“輸入換行符號(hào)”與畫面顯示技巧最后說一個(gè)和數(shù)據(jù)顯示相關(guān)的細(xì)節(jié)。熱詞里有人問昆侖通態(tài)觸摸屏輸入換行符號(hào)這個(gè)在數(shù)據(jù)記錄中也會(huì)遇到尤其是字符串?dāng)?shù)據(jù)對象里包含換行符時(shí)導(dǎo)出的CSV文本會(huì)呈現(xiàn)換行影響Excel表格結(jié)構(gòu)。解決辦法是在接收字符串時(shí)把換行符\r\n替換成空格或者/分隔符在腳本里用字符串替換函數(shù)就能處理。另外如果要做歷史數(shù)據(jù)的畫面滾動(dòng)顯示注意別把文本顯示控件綁定到存盤數(shù)據(jù)對象上應(yīng)該綁定實(shí)時(shí)數(shù)據(jù)對象否則控件只會(huì)顯示最近一條記錄而不是滾動(dòng)播放歷史記錄。這個(gè)坑我?guī)蛣e人排查過一次還是翻了半天資料才想到的。7. 日常維護(hù)中的實(shí)用習(xí)慣與建議做數(shù)據(jù)記錄功能久了我養(yǎng)成了幾個(gè)固定習(xí)慣分享給大家參考。第一每次工程下載到觸摸屏之前先在模擬環(huán)境里跑一遍存盤數(shù)據(jù)瀏覽確認(rèn)數(shù)據(jù)對象、存盤周期、導(dǎo)出函數(shù)都正常再進(jìn)現(xiàn)場?,F(xiàn)場燒錄后再改來回跑起來真的很浪費(fèi)工時(shí)。第二給每臺(tái)設(shè)備做一個(gè)“數(shù)據(jù)檢查”頁面顯示最近一條記錄的時(shí)間和狀態(tài)。運(yùn)維人員到現(xiàn)場只要瞄一眼這個(gè)頁面就能知道數(shù)據(jù)記錄是否正常工作不用打開U盤看文件。第三U盤導(dǎo)出的數(shù)據(jù)文件要定期備份建議客戶把U盤里的文件拷到服務(wù)器或網(wǎng)盤上按月份建目錄存放。有些工廠的設(shè)備數(shù)據(jù)要保留兩三年甚至更久只靠U盤保存風(fēng)險(xiǎn)很大U盤損壞或者丟失的案例并不少見。第四對數(shù)據(jù)記錄的準(zhǔn)確性要有一個(gè)合理預(yù)期。觸摸屏的數(shù)據(jù)記錄精度足夠滿足生產(chǎn)管理、能耗分析、故障追溯的需求但它不是計(jì)量級(jí)儀器不可能替代專業(yè)的無紙記錄儀或者SCADA系統(tǒng)。如果客戶需要精確到毫秒、需要審計(jì)級(jí)的數(shù)據(jù)完整性建議在方案里上專業(yè)上位機(jī)系統(tǒng)。我自己在實(shí)際項(xiàng)目里的體會(huì)是數(shù)據(jù)記錄功能用得好不好關(guān)鍵不在于有沒有復(fù)雜參數(shù)而在于前期的數(shù)據(jù)對象規(guī)劃是否合理、存盤策略是否貼合現(xiàn)場工況以及有沒有做好異常情況的兜底方案。把這三件事做扎實(shí)了昆侖通態(tài)的數(shù)據(jù)記錄絕對能扛起中小型設(shè)備的數(shù)據(jù)追溯需求甚至?xí)蔀轫?xiàng)目驗(yàn)收時(shí)的一個(gè)加分項(xiàng)。