VisualHMI サポート的通信プロトコル详解:DCBUS/XGUS/Modbus 主从フレーム形式与設定

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

这篇把 VisualHMI サポート的协议挨个过一遍,重点放在Modbus RTU 主モデルから。フレーム形式上——因为这是和 modbus.cn 读者最贴的部分,也是デバッグ时最容易踩坑的地方。其他 PLC Protocol(FX2N/台達/信捷/永宏)設定项大同小异,文末一并列了。

⚠️ 铁律:同一路シリアルポート只能跑一种协议。 你不能在 UART1 上既挂 Modbus 又挂 DCBUS。多协议需求得靠硬件多路シリアルポート。

一、DCBUS Protocol(大彩组态协议)

DCBUS 是屏和自有主板对接常用的组态协议,フレーム構造如下:

fieldLength説明
フレーム头2 byteデフォルト 0xAA55,可自定义
ステーション番号1 byteデフォルト 0,255 为广播
Length1 bytefunction code+data+チェック的总Bytesの数
function code1 byte0xF1 写 / 0xF2 读
address2 byte用户区 0x0100~0xFFFF,系统区 <0x1000
datan byteregister value
check2 byteCRC16 或预留 0xCCCC

CRC16 算法(大彩给的 C 参照,Modbus 同款查表法):

uint16 MB_calc_crc16(uint8 *buffer, uint32 n){
  uint16 crc = 0xffff;
  for(i = 0; i < n; i++){
    crc = crc ^ buffer[i];
    for(j = 0; j > 1;
      if(carry_flag == 1) crc = crc ^ 0xa001;
    }
  }
  return crc;
}

写变量(0xF1)example,向 0x1000 写 100、ステーション番号 0、不开 CRC:

AA55 00 07 F1 1000 0064 CCCC
 ↑フレーム头 ↑站 ↑Length ↑写 ↑address  ↑值   ↑预留

ステーション番号设为 1 且开 CRC 时:AA55 01 07 F1 1000 0064 7289,屏应答 AA55 01 03 F1 E174

读变量(0xF2)example,读 0x1000(假设值 100):

主板リクエスト: AA55 00 06 F2 1000 01 CCCC
屏戻る:   AA55 00 08 F2 1000 01 0064 CCCC
💡 デバッグ提示: Open"自动上传"后,你在屏上点按钮改了レジスタ,屏会主动发 0xF2 フレーム上报给主板,不用主板去ポーリング。这点和 Modbus スレーブ主动上报不一样,DCBUS 的上报是屏→主板方向。

二、XGUS Protocol

XGUS フレーム头デフォルト 0x5AA5,構造:フレーム头(2) + Length(1) + function code(1) + address(2) + data(n) + CRC16。切换画面2つのモデル:

モード1: 5AA5 03 80 03 XX        // XX=画面ID
モード2: 5AA5 07 82 0084 5A01 XXXX // XXXX=画面ID

三、Modbus RTU(重点)

屏サポート標準 Modbus-RTU,可设マスター(Master)スレーブ(Slave)

3.1 マスターモード ModbusMaster

屏当マスター去ポーリング下挂的スレーブ(仪表、周波数変換器、PLC)。关键設定项:

設定项含义
最多読み取り数单条指令読み取り的最大Bytesの数
読み取り間隔数アドレス間隔小于此值可合并成一条readコマンド
写リトライ回数写失敗后最大重试
タイムアウト時間等スレーブ应答的毫秒数
間隔时间收到应答后延时多久发下一条
写レジスタ命令自动(0x06 单写/0x10 多写)或全用 0x10
オフライン优化読み取り勾选后オフライン的スレーブ不再发リクエスト
スレーブ数目デフォルト 1,RS485 多スレーブ界面最多配 10 个,もっと見る用 LUA
预设バイトオーダーデフォルトビッグエンディアン,浮点/长整型可重指定

サポート機能コード:0x01 0x02 0x03 0x04 0x05 0x06 0x0F 0x10

⚠️ 重点:バイトオーダー坑最多。 デフォルトビッグエンディアン(AB CD),但很多デバイス是"ビッグエンディアンバイトオーダー + ビッグエンディアン字序"(CD AB)或反之。浮点表示错乱先查バイトオーダー,ではない协议問題。用 Modbus RTU Tutorial 里的バイトオーダー对照表对照设。

3.2 スレーブモード ModbusSlave

屏自己当一条 Modbus slave,等トップマシン(PLC、ゲートウェイ、你的デバッグ软件)来读。設定项:

設定项含义
スレーブステーション番号本屏的 Modbus address
文字間隔超过该 ms 认为断フレーム
延时应答收到リクエスト后延时再应答

同样サポート 0x01~0x10 全套機能コード。スレーブモード下"画面写入アドレス/画面取自アドレス"可実装屏和 PLC 画面連動。

四、PLC Protocol(FX2N/FX3U/台達/信捷/永宏)

这些設定项高度一致,列核心差异:

Protocolレジスタ寻址特点
FX2N標準モード指令短(如 02 30 31 30 30 30 30 32 03 35 36),扩展モード指令长、アドレス範囲大
FX3U同 FX2N,標準/扩展两モード
DELTA DVPASCII モード:STX+address+指令+data+LRC check+CR LF
信捷 XC/XD標準信捷 PLC Protocol
永宏 FB標準永宏协议

すべての PLC 协议都有"与 PLC 同步画面"选项:画面变化写到指定 PLC address,或 PLC 某アドレス变值时切换画面(0xFFFF 为自动)。

本記事整理自 广州大彩科技 VisualHMI 开发ドキュメント(hmi-doc.gz-dc.com)合意書の概要章节,フレーム形式与レジスタ設定均按原文保真,著作権は大彩科技すべての,此处做重点标注重排。

Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.