首頁
新聞動態
產品展示
資料下載
聯系我們
新聞動態
新聞動態
當前位置:
網站首頁
>
新聞動態
>
新聞動態
新聞動態
基于VGUS串口屏的Modbus從機方案
分享到:
點擊次數:
更新時間:2022-08-17 16:26:08 【
打印此頁
】 【
關閉
】
導讀:
該方案將VGUS串口屏作為Modbus從機,用戶設備為Modbus主機。使用Modbus協議通訊,支持常用的功能碼,標準指令格式快速上手。串口模式,傳輸模式可配置。傳輸模式支持RTU模式或ASCII模式,以提供更大的靈活度,能夠方便快速連接到總線。
注意:僅SDWb系列串口屏支持該方案應用。
配置說明及注意事項:
1.設備地址配置路徑:屏參配置->串口參數配置->幀頭->高字節。
(設備地址默認為 0xA5,若設定值為 0,則自動恢復默認設備地址)
2.串行數據格式配置。
波特率配置路徑:屏參配置->串口參數配置->波特率。
工作模式配置路徑:屏參配置->串口參數配置->幀頭->低字節。
工作模式配置數據說明:
使用幀頭低字節的用于定義串口模式和傳輸模式。
bit7-bit4:保留,寫0。
bit3-bit1:定義串口模式。
000:7N1(7數據位,無校驗,1停止位);
001:7E1(7數據位,偶校驗EVEN,1停止位);
010:7O1(7數據位,奇校驗ODD,1停止位);
011:7N2(7數據位,無校驗,2停止位);
100:8N1(8數據位,無校驗,1停止位);
101:8E1(8數據位,偶校驗EVEN,1停止位);
110:8O1(8數據位,奇校驗ODD,1停止位);
111:8N2(8數據位,無校驗,2停止位)。
bit0:定義傳輸模式。
0:RTU模式;
1:ASCII模式。
注意:使用RTU模式時,必須使用8數據位,不滿此條件,將默認配置為8E1模式。
3.RTU模式時,波特率小于或等于19200Bps時,報文幀間隔需大于3.5個字符時間。報文內字符間隔需小于1.5個字符時間。波特率大于19200Bps時,報文幀間隔需大于1.750ms。報文內字符間隔需小于750μs。
4.本方案支持的指令功能與VGUS串口指令集所實現的功能一致。
5.VGUS中涉及到主動上傳串口數據的功能均已屏蔽。
6.需要更新到固件SDWb_Firmware_MODBUS_SLAVE-xxxxxxxx.bin。
7.可以使用Modbus Poll等工具模擬Modbus主機與屏進行通訊測試。
Modbus Slave 指令操作表:
指令舉例說明
注意:以下舉例指令的從機地址均為0xA5。
一、0x03指令舉例說明
1.1 讀變量存儲器
從變量存儲器0x0020地址開始讀取1個變量數據。
發送:A5 03 00 20 00 01 9C E4
成功應答:A5 03 02 12 34 C4 EA
變量存儲器0x0020地址的數據為0x1234。
上述指令ASCII模式的發送和應答:
ASCII發送:3A 41 35 30 33 30 30 32 30 30 30 30 31 33 37 0D 0A
ASCII成功應答:3A 41 35 30 33 30 32 31 32 33 34 31 30 0D 0A
1.2 讀寄存器
從寄存器0x03地址開始讀取2個變量數據。
發送:A5 03 F0 03 00 02 1E 2F
成功應答:A5 03 04 00 00 00 02 9E 38
寄存器0x03地址的數據為0x0002。(讀取數據的低字節為寄存器的有效數據)
上述指令ASCII模式的發送和應答:
ASCII發送:3A 41 35 30 33 46 30 30 33 30 30 30 32 36 33 0D 0A
ASCII成功應答:3A 41 35 30 33 30 34 30 30 30 30 30 30 30 30 35 34 0D 0A
二、0x06指令舉例說明
2.1 寫單個變量存儲器
將變量存儲器0x0020地址的數據寫為0x5566。
發送:A5 06 00 20 55 66 2E 5E
成功應答:A5 06 00 20 55 66 2E 5E
2.2 寫單個變量存儲器
控制蜂鳴器鳴叫200ms。
發送:A5 06 F0 02 00 14 02 21
成功應答:A5 06 F0 02 00 14 02 21
2.3 寫1個數據到單個曲線緩存區
曲線緩沖區通道0寫入一個數據。
發送:A5 06 F1 01 00 60 F3 FA
成功應答:A5 06 F1 01 00 60 F3 FA
三、0x10指令舉例說明
3.1 寫多個數據到變量存儲器:
將字符“hello word”寫入0x0200為起始地址的變量存儲器。
發送:A5 10 02 00 00 06 0C 68 65 6C 6C 6F 20 77 6F 72 64 FF FF AA BC
成功應答:A5 10 02 00 00 06 58 97
3.2 寫多個數據到寄存器:
切換到2號頁面。
發送:A5 10 F0 03 00 02 04 00 00 00 02 21 4D
成功應答:A5 10 F0 03 00 02 9B EC
3.3 寫多個數據到曲線緩存區:
通道0,通道1,通道7分別寫入兩個數據
發送:A5 10 F1 83 00 06 0C 00 10 00 20 00 30 00 40 00 50 00 60 91 F8
成功應答:A5 10 F1 83 00 06 9A 3B
0x83表示數據順序為:(通道0+通道1+通道7)+…+(通道 0+通道1+通道 7)。
通道0數據:0x0010 0x0040
通道1數據:0x0020 0x0050
通道7數據:0x0030 0x0060
3.4 擴展指令功能
3.4.1 直接寫顯存
以(100,100)為起始坐標,設置4個像素點為紅色(0xF800)。
發送:A5 10 F2 00 00 06 0C 00 64 00 64 F8 00 F8 00 F8 00 F8 00 A4 A4
成功應答:A5 10 F2 00 00 06 6B 97
3.4.2 連續播放音頻文件。
連續播放1次編號為1,2,3的音頻文件。
發送:A5 10 F2 03 00 04 08 01 00 01 00 02 00 03 00 90 E3
成功應答:A5 10 F2 03 00 04 1A 56
數據0xF2 0x03表示連續播放音頻文件指令。
四、0x10指令說明
該指令用于設置或清除變量存儲器中指定地址的特定比特。
地址范圍:0x0000-0xEFFF。
指令格式:
功能算法:
結果= (當前內容 AND And_Mask) OR (Or_Mask AND And_Mask)。
如果 Or_Mask 值為零,那么結果是當前內容和 And_Mask 的簡單邏輯 AND(與)。如果 And_Mask 值為零,結果等于 Or_Mask 值。
注:當前內容為變量存儲器參考地址的數據。
示例1:
在不影響其它位的情況下,將位0置1。
And_Mask=0xFFFF
Or_Mask=0x0001
將變量存儲器地址0x0122的位0置1。
發送:A5 16 01 22 FF FF 00 01 C5 BF
成功應答:A5 16 01 22 FF FF 00 01 C5 BF
示例2:
在不影響其它位的情況下,將位0置0。
And_Mask=0xFFFE
Or_Mask=0x0000
將變量存儲器地址0x0122的位0置0。
發送:A5 16 01 22 FF FE 00 00 55 BF
成功應答:A5 16 01 22 FF FE 00 00 55 BF
五、位操作區(線圈)說明
在變量存儲器中開辟一塊區域,用于位變量操作區??山Y合顯示控件和觸摸控件使用。
位變量操作區地址與變量存儲器地址對應關系如下:
使用0x01、0x05、0x15指令時,讀取或寫入的地址需要使用下表中的地址。
線圈地址范圍:0-512
變量存儲器地址與線圈地址對應關系表
5.1 0x01指令,讀線圈:
從線圈地址0開始,讀取10個線圈。
發送:A5 01 00 00 00 0A A5 29
成功應答:A5 01 02 5A 01 33 45
5.2 0x05指令,寫單個線圈:
將線圈地址2寫為“ON”。
發送:A5 05 00 02 FF 00 34 DE
成功應答:A5 05 00 02 FF 00 34 DE
5.3 0x15指令,寫多個線圈:
從線圈地址0開始,寫10個線圈。寫入數據為0xA3 0x02。
發送:A5 0F 00 00 00 0A 02 A3 02 D6 CE
成功應答:A5 0F 00 00 00 0A CC E8
上一條:
一招讓UI“動”起來——用戶體驗從功能機時代躍升到智能機時代
下一條:
圓形進度條在串口屏上的應用
无码人妻精品一区二区三区东京热,日本丰满少妇高潮呻吟,,18禁止裸身美女动漫网站