設(shè)備驅(qū)動(dòng)與變量定義
為了節(jié)省流量采用手動(dòng)發(fā)送,因此不能使用官方驅(qū)動(dòng),需要使用用戶自定義驅(qū)動(dòng),這里提供百度網(wǎng)盤下載地址(見(jiàn)評(píng)論區(qū))。鏈接:https://pan.baidu.com/s/1ORy2UFOlHeRCXraYKC1xUA 提取碼:tl3i
添加用戶自定義設(shè)備,不能使用官方提供的Modbus RTU驅(qū)動(dòng),官方驅(qū)動(dòng)不支持手動(dòng)發(fā)送,此例程是基于整點(diǎn)自動(dòng)發(fā)送指令實(shí)現(xiàn)的,可以將流量消耗降到最低,若對(duì)流量消耗無(wú)限制也可使用官方驅(qū)動(dòng)實(shí)現(xiàn),此處不做講解。

無(wú)論是采用自定義驅(qū)動(dòng)還是官方驅(qū)動(dòng),對(duì)于無(wú)線設(shè)備都需要適當(dāng)增加超時(shí)時(shí)間,在后續(xù)實(shí)機(jī)調(diào)試時(shí)說(shuō)明方法。
本例程使用變量表如下:
變量名
|
描述
|
類型
|
初值
|
注釋
|
collection_run
|
用于標(biāo)記通訊執(zhí)行中
|
開關(guān)型
|
0
|
0:空閑
1:忙
|
meter_IrAt_01
|
存儲(chǔ)電流變比
|
數(shù)值型
|
1
|
1-9999
|
meter_UrAt_01
|
存儲(chǔ)電壓變比,使用時(shí)需要×0.1
|
數(shù)值型
|
10
|
1-9999
|
meter_state_01
|
設(shè)備狀態(tài)
|
開關(guān)型
|
0
|
0:通訊正常
1:通訊異常
|
nReturn
|
Modbus異常碼
|
開關(guān)型
|
0
|
返回碼
|
meter_value_01
|
有功電能綜合,原始值,不含變比
|
數(shù)值型
|
0
|
——
|
resend_set_value
|
重發(fā)次數(shù)配置值
|
開關(guān)型
|
3
|
——
|
resend_value
|
重發(fā)次數(shù)運(yùn)行值
|
開關(guān)型
|
0
|
——
|
采集執(zhí)行策略(帶重發(fā)機(jī)制)
MCGS嵌入式組態(tài)環(huán)境的“運(yùn)行策略”下添加用戶策略,具體配置如下:

定時(shí)發(fā)送
MCGS嵌入式組態(tài)環(huán)境的“運(yùn)行策略”下添加循環(huán)策略,并添加兩個(gè)策略行,一個(gè)用于總線繁忙時(shí)用于延時(shí),一個(gè)用于觸發(fā)采集,配置如下:

腳本程序與調(diào)用策略配置如下圖所示:

人機(jī)交互界面制作
添加人機(jī)交互界面“HOME”,并在啟動(dòng)策略中添加手動(dòng)獲取變比與有功總功率的Modbus指令發(fā)送函數(shù)如下:
!SetDevice(設(shè)備0,6,"ReadP(4,7,WUB,2,meter_IrAt_01,meter_UrAt_01,nReturn)")
!SetDevice(設(shè)備0,6,"ReadP(4,4127,DF,1,meter_value_01,nReturn)")
添加13個(gè)“標(biāo)簽”控件,以下僅說(shuō)明有關(guān)聯(lián)函數(shù)“標(biāo)簽”,添加2個(gè)“按鈕”控件。

采集狀態(tài),使用兩個(gè)“標(biāo)簽”控制,分別在變量“meter_state_01”等于1或者0時(shí)隱藏。

通過(guò)DTSU666手冊(cè)提供計(jì)算公式,顯示當(dāng)前真實(shí)有功總功率。

電流變比與電壓變比僅關(guān)聯(lián)對(duì)應(yīng)變量顯示,不再說(shuō)明。
手動(dòng)采集調(diào)用用戶自定義策略“采集執(zhí)行”,該按鈕在自動(dòng)采集過(guò)程中不生效。

更新變比“按鈕”控件調(diào)用腳本函數(shù)實(shí)現(xiàn):
!SetDevice(設(shè)備0,6,"ReadP(4,7,WUB,2,meter_IrAt_01,meter_UrAt_01,nReturn)")
相關(guān)文章:MCGS用戶程序云端授權(quán)系統(tǒng)設(shè)計(jì)
虛擬串口工具M(jìn)CGS開發(fā)調(diào)試的靈活應(yīng)用教程
|