腳本系統(tǒng)-匠聯(lián)邊緣服務(wù)系統(tǒng)
腳本系統(tǒng)是平臺(tái)的核心引擎之一,它賦予了用戶前所未有的靈活性和控制力,能夠?qū)崿F(xiàn)復(fù)雜的業(yè)務(wù)邏輯、數(shù)據(jù)處理、設(shè)備聯(lián)動(dòng)和系統(tǒng)集成。該系統(tǒng)深度集成了 JavaScript (JS) 作為核心腳本語言,并圍繞其構(gòu)建了豐富的功能模塊。
以下是該腳本系統(tǒng)的核心功能與特點(diǎn)的詳細(xì)展開:
1. 核心技術(shù):JavaScript (JS)
- 語言選擇:采用 JavaScript 作為腳本語言是其一大亮點(diǎn)。JS 語法簡潔、學(xué)習(xí)曲線相對(duì)平緩,擁有龐大的開發(fā)者社區(qū)和豐富的庫資源。這極大地降低了用戶(尤其是熟悉 Web 開發(fā)的工程師)的學(xué)習(xí)和使用門檻。
- 靈活性:JS 的動(dòng)態(tài)特性使其非常適合處理物聯(lián)網(wǎng)場景中多變的數(shù)據(jù)格式和復(fù)雜的邏輯判斷。
- 生態(tài)集成:可以方便地利用成熟的 JS 庫或框架(在平臺(tái)安全沙箱允許的范圍內(nèi))來擴(kuò)展功能。
2. 核心功能模塊
a) 定時(shí)任務(wù)調(diào)度 (Cron-like Scheduling)
- 功能:提供類似 Linux Cron 的定時(shí)任務(wù)調(diào)度機(jī)制。用戶可以精確設(shè)定腳本執(zhí)行的時(shí)間點(diǎn)、頻率(如每分鐘、每小時(shí)、每天特定時(shí)間、每周幾等)。
- 應(yīng)用場景:
- 數(shù)據(jù)采集:定時(shí)輪詢特定設(shè)備或設(shè)備組的實(shí)時(shí)數(shù)據(jù)。
- 報(bào)表生成:每日/每周定時(shí)匯總數(shù)據(jù)并生成統(tǒng)計(jì)報(bào)告。
- 狀態(tài)檢查:定期檢查系統(tǒng)或設(shè)備健康狀態(tài),執(zhí)行預(yù)定義的維護(hù)或告警邏輯。
- 自動(dòng)化運(yùn)維:在非高峰時(shí)段執(zhí)行數(shù)據(jù)備份、清理等后臺(tái)任務(wù)。
b) 設(shè)備數(shù)據(jù)交互
- 讀取設(shè)備實(shí)時(shí)數(shù)據(jù) (Read Real-time Data):
- 功能:通過腳本調(diào)用平臺(tái) API,實(shí)時(shí)獲取指定設(shè)備(或設(shè)備組)的當(dāng)前狀態(tài)、傳感器讀數(shù)、運(yùn)行參數(shù)等。
- 應(yīng)用場景:用于即時(shí)決策、狀態(tài)監(jiān)控、觸發(fā)聯(lián)動(dòng)。
- 記錄趨勢數(shù)據(jù) (Log Trend Data):
- 功能:將采集到的實(shí)時(shí)數(shù)據(jù)或計(jì)算結(jié)果,按照時(shí)間序列存儲(chǔ)到平臺(tái)的時(shí)序數(shù)據(jù)庫中。
- 應(yīng)用場景:用于生成歷史曲線圖、進(jìn)行數(shù)據(jù)分析、性能評(píng)估、故障回溯。
- 記錄事件 (Log Events):
- 功能:將特定的業(yè)務(wù)事件(如設(shè)備啟動(dòng)、模式切換、維護(hù)完成)或系統(tǒng)事件(如腳本執(zhí)行成功/失?。┯涗浀绞录罩局小?/li>
- 應(yīng)用場景:追蹤系統(tǒng)行為、審計(jì)、用戶行為分析。
- 記錄報(bào)警信息 (Log Alarms):
- 功能:當(dāng)腳本檢測到異常條件(如溫度超限、設(shè)備離線、通信故障)時(shí),主動(dòng)創(chuàng)建并記錄報(bào)警信息。通常包含報(bào)警級(jí)別、描述、時(shí)間戳、關(guān)聯(lián)設(shè)備等。
- 應(yīng)用場景:實(shí)現(xiàn)主動(dòng)告警、通知相關(guān)人員、觸發(fā)應(yīng)急流程。
- 記錄參數(shù) (Log Parameters):
- 功能:記錄設(shè)備配置參數(shù)的變更歷史或特定時(shí)刻的參數(shù)快照。
- 應(yīng)用場景:版本控制、故障排查(對(duì)比參數(shù)差異)、合規(guī)性要求。
c) 數(shù)據(jù)庫操作 (Database Operations)
- 功能:腳本可以直接調(diào)用平臺(tái)提供的數(shù)據(jù)庫接口(可能是 SQL 或 NoSQL),執(zhí)行數(shù)據(jù)查詢(SELECT)、插入(INSERT)、更新(UPDATE)、刪除(DELETE)等操作。
- 應(yīng)用場景:
- 持久化存儲(chǔ):將處理后的數(shù)據(jù)、計(jì)算結(jié)果、日志信息等存儲(chǔ)到關(guān)系型數(shù)據(jù)庫中,用于長期保存和復(fù)雜查詢。
- 數(shù)據(jù)關(guān)聯(lián):將物聯(lián)網(wǎng)數(shù)據(jù)與業(yè)務(wù)系統(tǒng)數(shù)據(jù)(如工單、用戶信息)進(jìn)行關(guān)聯(lián)分析。
- 狀態(tài)管理:在數(shù)據(jù)庫中維護(hù)腳本運(yùn)行狀態(tài)、計(jì)數(shù)器、配置信息等。
d) 網(wǎng)絡(luò)通信與集成 (Networking & Integration)
- 創(chuàng)建 HTTP 請求 (HTTP Client):
- 功能:腳本可以發(fā)起 HTTP/HTTPS 請求(GET, POST, PUT, DELETE 等),與外部 Web 服務(wù)、RESTful API、云服務(wù)進(jìn)行交互。
- 應(yīng)用場景:
- 系統(tǒng)集成:與 MES、ERP、SCM 等企業(yè)系統(tǒng)對(duì)接,同步數(shù)據(jù)或觸發(fā)業(yè)務(wù)流程。
- 調(diào)用第三方服務(wù):獲取天氣信息、地圖服務(wù)、支付接口、短信/郵件通知服務(wù)等。
- 數(shù)據(jù)上報(bào):將數(shù)據(jù)推送到其他云平臺(tái)或分析服務(wù)。
- 創(chuàng)建 MQTT Client (MQTT Client):
- 功能:腳本可以作為 MQTT 客戶端,連接到指定的 MQTT Broker(可以是平臺(tái)內(nèi)置的,也可以是外部的),進(jìn)行消息的發(fā)布(PUBLISH)和訂閱(SUBSCRIBE)。
- 應(yīng)用場景:
- 設(shè)備通信橋接:在不同協(xié)議或不同網(wǎng)絡(luò)區(qū)域的設(shè)備間轉(zhuǎn)發(fā)消息。
- 消息廣播:向一組設(shè)備發(fā)送控制指令或配置更新。
- 集成其他 MQTT 系統(tǒng):與使用 MQTT 協(xié)議的其他 IoT 平臺(tái)或應(yīng)用進(jìn)行數(shù)據(jù)交換。
- 實(shí)現(xiàn)輕量級(jí)事件總線:利用 MQTT 的發(fā)布/訂閱模型實(shí)現(xiàn)系統(tǒng)內(nèi)部或跨系統(tǒng)的事件通知。
3. 系統(tǒng)優(yōu)勢總結(jié)
- 高度靈活:JS 腳本 + 豐富 API 的組合,幾乎可以實(shí)現(xiàn)任何自定義邏輯。
- 強(qiáng)大的自動(dòng)化能力:定時(shí)任務(wù)是實(shí)現(xiàn)無人值守自動(dòng)化運(yùn)維和業(yè)務(wù)流程的核心。
- 深度集成:通過 HTTP 和 MQTT,輕松打破信息孤島,連接內(nèi)外部系統(tǒng)。
- 數(shù)據(jù)驅(qū)動(dòng):從實(shí)時(shí)數(shù)據(jù)采集到趨勢分析、事件報(bào)警,形成完整的數(shù)據(jù)閉環(huán)。
- 可擴(kuò)展性強(qiáng):基于腳本的架構(gòu)便于功能擴(kuò)展和業(yè)務(wù)迭代,無需修改平臺(tái)核心代碼。
- 降低開發(fā)成本:利用通用語言和標(biāo)準(zhǔn)化接口,減少專用開發(fā)工具和語言的學(xué)習(xí)成本。