原創(chuàng)|使用教程|編輯:黃竹雯|2018-08-09 10:52:37.000|閱讀 745 次
概述:你是否遇到需要根據(jù)某些預(yù)定義的變量或條件將特定過程數(shù)據(jù)記錄到數(shù)據(jù)庫或文本文件中卻無從下手的情況?本文將告訴你如何解決這個(gè)問題。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
你是否需要根據(jù)某些預(yù)定義的變量或條件將特定過程數(shù)據(jù)記錄到數(shù)據(jù)庫或文本文件中?我們通常將此概念稱為“條件”或“基于條件”的日志記錄。這聽起來很簡(jiǎn)單,但如果沒有計(jì)劃,那么實(shí)施起來可能是一項(xiàng)棘手的任務(wù)。
在這篇文章中,我將向你介紹條件數(shù)據(jù)記錄所涉及的注意事項(xiàng),并介紹如何輕松設(shè)置 OPC DataLogger 以根據(jù)各種條件記錄數(shù)據(jù),而不會(huì)帶來太多麻煩。
現(xiàn)在請(qǐng)考慮以下情形:你的任務(wù)是從生產(chǎn)線中創(chuàng)建區(qū)塊來收集重量信息。
當(dāng)這些區(qū)塊中的每一個(gè)通過傳送帶移動(dòng)時(shí),它將通過檢重秤,該檢重秤將當(dāng)前重量發(fā)送到正在運(yùn)行該線的PLC,并且當(dāng)塊穿過秤的前緣時(shí),視覺系統(tǒng)讀取區(qū)塊的條形碼允許權(quán)重與正確的區(qū)塊相關(guān)聯(lián)。
你現(xiàn)在的任務(wù)是為每個(gè)區(qū)塊記錄一個(gè)權(quán)重,將其與正確的序列號(hào)相關(guān)聯(lián),并將其作為一行記錄到SQL數(shù)據(jù)庫中。聽起來不是那么難吧?
那你怎么來設(shè)置這個(gè)呢?
當(dāng)然,有可能在PLC中對(duì)此進(jìn)行編碼。但是,這是一個(gè)OEM線路安裝,我們無法訪問PLC代碼。
那么,我們可以在OPC服務(wù)器中設(shè)置掃描速率,以便不經(jīng)常輪詢PLC,使得我們可能不能獲得單個(gè)塊的多個(gè)權(quán)重值。但是當(dāng)線路停止時(shí)會(huì)發(fā)生什么?你是否需要在重新啟動(dòng)后將服務(wù)器掃描速率與線路重新同步?如果線速度改變?cè)趺崔k?
聽起來這對(duì)于需要長期維持的人而言會(huì)是一個(gè)巨大的麻煩,對(duì)于我們這些已經(jīng)有長串責(zé)任清單的人來說,絕對(duì)是不太理想的。
實(shí)際上,我使用過的大多數(shù)系統(tǒng)都只是連續(xù)地記錄值,并且使用一些“Macgyvered”解決方案,然后從數(shù)據(jù)庫中選擇正確的值。雖然這種方法沒有任何內(nèi)在錯(cuò)誤,但它不僅使用了更多的數(shù)據(jù)庫空間,而且還需要進(jìn)行大量修剪才能將數(shù)據(jù)降低到你實(shí)際感興趣的值。
那么什么是更好的替代方案呢?接下來,我將逐步介紹使用 OPC DataLogger 的條件記錄來處理這種情況是多么容易。
盡管我非常熟悉 OPC Data Logger,但我仍然使用項(xiàng)目向?qū)砼渲梦业娜罩卷?xiàng)目,直到今天,為了使這篇文章完全只是對(duì)向?qū)У闹鸩浇忉專业睦訉⒓俣ù嬖谑褂媚J(rèn)設(shè)置的基本項(xiàng)目。
在單步向?qū)Р⒈3帜J(rèn)值后,查看關(guān)鍵組件的存在:
1.我配置了一個(gè)指向我的OPC服務(wù)器的數(shù)據(jù)收集器:
2.我有一個(gè)配置了單個(gè)組的日志記錄任務(wù),已經(jīng)添加了我感興趣的兩個(gè)OPC標(biāo)記。當(dāng)前的 BlockWeight(區(qū)塊重量)和相應(yīng)的 SerialNumber(序列號(hào))如下:
現(xiàn)在,我們將把 Group 的 Read 類型保留為 Subscription - 這是默認(rèn)的 - 但我們稍后會(huì)再回過頭來看看。
3.日志記錄被任務(wù)配置為將數(shù)據(jù)記錄到我的SQL數(shù)據(jù)庫:
此時(shí),我們有一個(gè)工作的OPC Data Logger項(xiàng)目,如果我們進(jìn)入運(yùn)行時(shí),將每隔250ms檢查一次權(quán)重和序列號(hào)標(biāo)記,并在任何一個(gè)值更改時(shí)記錄這兩個(gè)值。
然而,這將捕捉到我們不感興趣的各種數(shù)據(jù),包括區(qū)塊在部分檢查秤上的重量信息 - 重量數(shù)據(jù)對(duì)我們來說幾乎無用。因此,這是我們得到等式的條件部分,并在你需要時(shí)僅記錄你需要的部分。
1.讓我們首先添加我們將用于驅(qū)動(dòng)實(shí)際日志記錄的觸發(fā)器。這將是一個(gè)受監(jiān)控的項(xiàng)目觸發(fā)器:
2.此觸發(fā)器將配置為監(jiān)視我們的OPC服務(wù)器中的 Boolean tag(布爾標(biāo)記) - weighReady - 當(dāng)區(qū)塊完全位于檢重秤上時(shí),預(yù)計(jì)會(huì)變高:
這可以是傳感器或類似的外圍設(shè)備,用于測(cè)量區(qū)塊完全越過檢重秤的前沿時(shí)的數(shù)據(jù)。關(guān)鍵是Monitored Trigger配置為在此Boolean tag(布爾標(biāo)記)變?yōu)楦撸?1 / True)時(shí)觸發(fā)。
3.回到我承諾將要重新訪問的 Group Properties 中的 Read 選項(xiàng)卡,讓我們將 Read 類型從 Subscription 更改為 Asynchronous Triggered Reads:
類似地,在Triggers選項(xiàng)卡上,我們現(xiàn)在想要添加我們配置的Monitored Trigger,并指定Effect是“One-shot Read Now”,即當(dāng)觸發(fā)器變高時(shí),我們應(yīng)該讀取并記錄組中的每個(gè)標(biāo)記一次:
此時(shí),我們的配置已完成了。在運(yùn)行時(shí),這個(gè)OPC Data Logger項(xiàng)目將處于空閑狀態(tài),直到 WeighReady 位變?yōu)楦邽橹梗藭r(shí)我們將從OPC服務(wù)器(從PLC讀取數(shù)據(jù))中檢索當(dāng)前的序列號(hào)和重量,我們將記錄一個(gè)我們的SQL數(shù)據(jù)庫。
隨著它越來越容易獲取數(shù)據(jù),你可以更輕松地訪問你在流程中,甚至是企業(yè)級(jí)別可能會(huì)需要的任何數(shù)據(jù)。我們注意到應(yīng)用程序?qū)嶋H需要的數(shù)據(jù)變得越來越重要。整理成千上萬的標(biāo)簽只是為了找到一個(gè)或兩個(gè)具有統(tǒng)計(jì)意義的標(biāo)簽通常比手動(dòng)記錄的更低效。
對(duì)于毫秒通常意味著節(jié)省或損失數(shù)萬,數(shù)十萬甚至數(shù)百萬元之間的差異的行業(yè),在正確的時(shí)間獲得正確的數(shù)據(jù)至關(guān)重要。你已經(jīng)看到了如何以最小的努力,使用條件日志與 OPC Data Logger配置起來非常容易,以確保你只需在需要時(shí)收集所需的數(shù)據(jù)。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn