一.?基礎(chǔ)知識
巨控模塊配置軟件?GRMDEV,內(nèi)置事件控制和定時器編程,可以完成各種定時,條件,順序控制,數(shù)據(jù)處理和轉(zhuǎn)發(fā),實際上巨控模塊可以做為一個PLC?或者數(shù)據(jù)協(xié)議網(wǎng)關(guān)使用。
該說明書適合巨控GRM?模塊的全部型號(GRM 500?,GRM200,GRM230?GRM530 GRM110?等)。
表達式
表達式是一個?C?語言的數(shù)值表達式,語法符合標(biāo)準(zhǔn)?C?語言規(guī)范,是?C?表達式的子集。表達式可以是單個變量名,也可以是常量,還可以是變量和操作符的運算式。
本產(chǎn)品支持條件表達式、參數(shù)表達式和賦值表達式。
u?條件表達式:用于報警觸發(fā)條件、定時執(zhí)行條件和事件觸發(fā)條件中,表達式計算結(jié)果非?0?表示條件成立。
例如:(溫度>20&&濕度>50)||開關(guān)?1
u?參數(shù)表達式:用于短信報警和短信查詢回送信息模板中,計算結(jié)果與類型有關(guān)。
u?賦值表達式:用于短信寫變量、短信控制命令、定時器和事件控制中。
?操作符
本系統(tǒng)支持以下幾種常用的操作符,手冊中未提到的操作符(如++,--)不被支持。

%注意:操作符雙等號“==”和單個等號“=”兩者區(qū)別。
變量=5,是賦值表達式,執(zhí)行后變量的值改變?yōu)?5.
變量==5,是比較操作,判斷變量是否等于?5,若等于?5,條件為真(1).
操作符的優(yōu)先級別如下

注意:建議使用括號來明確優(yōu)先級如:
(風(fēng)機?1?故障||風(fēng)機?2?故障)&&(溫度>50)
表達式舉例
1)?多個條件同時成立,符號&&表示?2?個條件需要同時成立。
? ? ?? ? ?風(fēng)機?1?故障&&風(fēng)機?2?故障
2)?任何一個條件成立,,符號||表示?2?個條件只需要滿足一個。
?風(fēng)機?1?故障||風(fēng)機?2?故障
3)?組合條件判斷
(風(fēng)機?1?故障||風(fēng)機?2?故障)&&(溫度>50)
以上表達式表示任何一個風(fēng)機故障而且溫度>50?時成立
定時器
GRM?模塊支持間隔定時器、每日定時器和星期定時器三種定時器。定時器可以實現(xiàn)定時發(fā)送查詢短信,也可以實現(xiàn)定時給變量賦值。

u?定時器類型
間隔定時器:始終按指定間隔周期執(zhí)行定義的動作。
如:上圖表示,在壓縮機==1?成立后,過一分鐘后,開始第一次執(zhí)行下面寫變量的操作,然后每過一分鐘重復(fù)一次。
每日定時器:每日指定的時間段內(nèi)(開始時間至結(jié)束時間)按指定間隔周期執(zhí)行定義的動作。
?
星期定時器:每周若干天內(nèi)的指定時間點(開始時間)執(zhí)行一次定義的動作。
u?執(zhí)行條件
是一個條件表達式,當(dāng)表達式計算結(jié)果非?0?時才執(zhí)行定時器定義的動作。
u?定時間隔
連續(xù)執(zhí)行動作之間的時間間隔。
u?觸發(fā)短信查詢
在完成賦值操作后,發(fā)出一條已定義的查詢短信,短信發(fā)送給該查詢授權(quán)的所有用戶。
u?定時執(zhí)行內(nèi)容
定時器執(zhí)行的動作可以是向用戶發(fā)送一個查詢信息,也可以是給變量賦值。
如下圖:
表示每天上午?9:00?觸發(fā)一次查詢,然后?10:00?觸發(fā)一次查詢,一直到下午?17:00?觸發(fā)最后一次查詢。
也就是每隔?1?小時發(fā)出一條短信,如果模塊上電時間是?9:30,那么第一條短信會?10:00?發(fā)出。

事件控制

u?觸發(fā)表達式
觸發(fā)表達式是一個條件表達式。計算結(jié)果非?0?表示觸發(fā)條件成立。只填入數(shù)字“1”,表示為真執(zhí)行。
u?觸發(fā)模式
表達式為真,觸發(fā)?1?次:觸發(fā)條件成立時僅執(zhí)行一次事件動作。
表達式變化觸發(fā):變量值變化時執(zhí)行事件動作。該類型事件會在系統(tǒng)啟動時先執(zhí)行一次。表達式為真,周期性觸發(fā):觸發(fā)條件成立時先執(zhí)行一次,然后按周期性執(zhí)行事件動作。
u?觸發(fā)延時
僅對“表達式為真,觸發(fā)?1?次”事件有效。在設(shè)定時間內(nèi),如果觸發(fā)條件一直成立,GRM?模塊執(zhí)行事件動作?1
次。
u?觸發(fā)周期
僅對“表達式為真,周期性觸發(fā)”事件有效。觸發(fā)條件成立時,系統(tǒng)每隔設(shè)定時間執(zhí)行一次事件動作。第一次事件動作是在觸發(fā)條件成立時立即執(zhí)行。
u?觸發(fā)查詢
在完成賦值操作后,發(fā)出一條已定義的查詢短信,短信發(fā)送給該查詢授權(quán)的所有用戶。
u?事件執(zhí)行內(nèi)容
變量賦值操作??梢詫懭攵嘈校⒁馐鞘录|發(fā)的時候,將右邊的變量值或者計算表達式,復(fù)制給左邊的變量。
高級事件控制
高級事件控制實質(zhì)上是多個事件控制的組合,和前面的使用方法并無區(qū)別。使用高級事件控制可以減少模塊程序里面事件控制的數(shù)量,增強可讀性:?如下二個單獨的事件控制:
要求錯缺相或者壓機過載任何一個條件成立時,關(guān)閉風(fēng)機,壓機,輸出故障。沒有任何報警輸入時,取消報警輸出

可以使用一個高級事件控制完成:

二.?簡單例子
簡例?1:根據(jù)輸入開關(guān),啟動電機
要求開關(guān)?1?閉合,電機輸出,開關(guān)斷開,電機斷開

%注意:左邊的事件控制只會在開關(guān)閉合時,執(zhí)行一次,讓電機啟動,并不會在開關(guān)斷開為?0?時,關(guān)閉電機,?需要右邊的事件控制實現(xiàn)關(guān)電機。
也就是說執(zhí)行方式和PLC?編程的置位復(fù)位指令類似,而不是線圈和觸點。
簡例?2:溫度顯示修正
PLC?里面獲取的測量溫度和實際有偏差,要求?APP?上顯示的溫度加以修正,可以在模塊數(shù)據(jù)詞典里面把測量溫度的網(wǎng)絡(luò)讀寫屬性取消,APP?只顯示修正后的值,不顯示原始值。
簡例?3:根據(jù)溫度啟動停止風(fēng)機?

啟動風(fēng)機邏輯如下:
要求溫度>設(shè)定溫度,啟動風(fēng)機。用事件控制實現(xiàn)如下圖:
?如前所述,如下配置會在溫度>溫度設(shè)定時,打開風(fēng)機,溫度<=溫度設(shè)定時不會關(guān)閉風(fēng)機。

如果希望設(shè)定溫度作為參數(shù),掉電后模塊依然保存上次設(shè)定值,數(shù)據(jù)詞典里面勾選上保存值即可

關(guān)閉風(fēng)機的邏輯如下:
溫度<設(shè)定溫度-5?度?30?秒,關(guān)閉風(fēng)機。用事件控制實現(xiàn)如下圖:?
注意,需要在?30?秒內(nèi)持續(xù)滿足條件溫度<設(shè)定溫度-5?度才會執(zhí)行,

計算風(fēng)機運行時間:
要求在風(fēng)機運行時,計算風(fēng)機運行時間,單位是秒?。
用事件控制實現(xiàn)如下圖,風(fēng)機運行時,每秒鐘執(zhí)行一次運行時間的計數(shù)

簡例?4:每周定時開關(guān)機
周?1?到周?5?每天早上?8:30?打開空調(diào),每天下午?17:30?關(guān)閉空調(diào)。

注意:周一到周五的開機和關(guān)機邏輯是由上圖?2?個獨立的定時器分別執(zhí)行的。周末整天都需要關(guān)閉空調(diào),配置方法如下:

注意:因為模塊通電運行時刻是不一定的,所以使用上圖的每日定時器,在時間段內(nèi)每秒鐘檢查一次當(dāng)前時間是需要開空調(diào)還是關(guān)空調(diào),可以確保正確的邏輯。
?如果使用下圖的星期定時,因為是每天僅在?8:30?檢查一次是否需要開啟空調(diào),如果模塊是?8:30?之后通電運行,當(dāng)天的空調(diào)啟動不會執(zhí)行。

三.?完整控制邏輯案例(W-X? 188-264-37-096)
案例?1:冷庫控制邏輯
?運行邏輯:
1.?當(dāng)冷庫溫度>=設(shè)定溫度+溫度偏差且持續(xù)?200?秒時,壓機開啟,制冷。
2、?當(dāng)壓機開啟后,經(jīng)過風(fēng)機延遲時間,開啟風(fēng)機。
3、當(dāng)冷庫溫度<=設(shè)定溫度,壓機將關(guān)閉。風(fēng)機關(guān)閉。
停機邏輯:
按下停機,關(guān)閉風(fēng)機和壓機
?故障邏輯:當(dāng)壓機故障輸入或者錯缺相閉合時,關(guān)閉風(fēng)機,壓機。報警輸出閉合。
案例使用巨控GRM232Q-4D4N4Q,輸入輸出全部使用模塊本機?IO?資源,將模塊當(dāng)PLC?使用。

具體實現(xiàn)請參考Sample?目錄下:冷庫控制邏輯.grmprj?全部使用事件控制和高級事件控制實現(xiàn)。
Sample?目錄下還提供了一個稍微復(fù)雜的冷庫控制案例供參考?:復(fù)雜案例.grmprj。
案例?2:液位控制水泵
?自動運行邏輯:
1.?當(dāng)液位<=設(shè)定液位底限,啟動水泵,有?2?個水泵,要求輪換啟動
2.?當(dāng)液位>=設(shè)定液位高限,停止水泵
手動運行邏輯:
可遠程在APP?上手工啟停任何一個水泵,不受液位控制。
故障邏輯:
當(dāng)電源輸入錯缺相閉合時,關(guān)閉水泵。
具體實現(xiàn)請參考?Sample?目錄下:液位控制水泵.grmprj?全部使用事件控制和高級事件控制實現(xiàn)。lw
?
電子發(fā)燒友App

































































評論