这篇把 VisualHMI 支持的프로토콜挨个过一遍,重点放在Modbus RTU 主从모드和帧형식上——因为这是和 modbus.cn 读者最贴的部分,也是디버깅时最容易踩坑的地方。其他 PLC 프로토콜(FX2N/台达/信捷/永宏)설정项大同小异,文末一并列了。
一、DCBUS 프로토콜(大彩구성(SCADA)프로토콜)
DCBUS 是屏和自有主板对接常用的구성(SCADA)프로토콜,帧结构如下:
| 필드 | 길이 | 설명 |
|---|---|---|
| 帧头 | 2 byte | 默认 0xAA55,可自定义 |
| 站号 | 1 바이트 | 默认 0,255 为广播 |
| 길이 | 1 바이트 | 기능 코드+데이터+체크섬的总바이트数 |
| 기능 코드 | 1 바이트 | 0xF1 写 / 0xF2 读 |
| 주소 | 2 byte | 用户区 0x0100~0xFFFF,系统区 <0x1000 |
| 데이터 | n byte | 레지스터 값 |
| 체크섬 | 2 byte | CRC16 或预留 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)예제,向 0x1000 写 100、站号 0、不开 CRC:
AA55 00 07 F1 1000 0064 CCCC
↑帧头 ↑站 ↑길이 ↑写 ↑주소 ↑值 ↑预留
站号设为 1 且开 CRC 时:AA55 01 07 F1 1000 0064 7289,屏应答 AA55 01 03 F1 E174。
读변수(0xF2)예제,读 0x1000(假设值 100):
主板请求: AA55 00 06 F2 1000 01 CCCC
屏返回: AA55 00 08 F2 1000 01 0064 CCCC
二、XGUS 프로토콜
XGUS 帧头默认 0x5AA5,结构:帧头(2) + 길이(1) + 기능 코드(1) + 주소(2) + 데이터(n) + CRC16。전환화면两种모드:
모드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)。关键설정项:
| 설정项 | 含义 |
|---|---|
| 最多읽기数 | 单条指令읽기的最大바이트数 |
| 읽기间隔数 | 주소间隔小于此值可合并成一条读指令 |
| 写重试次数 | 写失败后最大重试 |
| 超时时间 | 等从机应答的毫秒数 |
| 间隔时间 | 收到应答后延时多久发下一条 |
| 写레지스터命令 | 自动(0x06 单写/0x10 多写)或全用 0x10 |
| 离线优化읽기 | 勾选后离线的从机不再发请求 |
| 슬레이브数目 | 默认 1,RS485 多슬레이브界面最多配 10 个,更多用 LUA |
| 预设바이트序 | 默认大端,浮点/长整型可重指定 |
支持기능 코드:0x01 0x02 0x03 0x04 0x05 0x06 0x0F 0x10。
3.2 从机모드 ModbusSlave
屏自己当一条 Modbus 슬레이브,等上位机(PLC、게이트웨이、你的디버깅软件)来读。설정项:
| 설정项 | 含义 |
|---|---|
| 从机站号 | 本屏的 Modbus 주소 |
| 문자间隔 | 超过该 ms 认为断帧 |
| 延时应答 | 收到请求后延时再应答 |
同样支持 0x01~0x10 全套기능 코드。从机모드下"화면쓰기주소/화면取自주소"可实现屏和 PLC 화면联动。
四、PLC 프로토콜(FX2N/FX3U/台达/信捷/永宏)
这些설정项高度一致,列核心差异:
| 프로토콜 | 레지스터寻址特点 |
|---|---|
| FX2N | 표준모드指令短(如 02 30 31 30 30 30 30 32 03 35 36),扩展모드指令长、주소范围大 |
| FX3U | 同 FX2N,표준/扩展两모드 |
| DELTA DVP | ASCII 모드:STX+주소+指令+데이터+LRC 체크섬+CR LF |
| 信捷 XC/XD | 표준信捷 PLC 프로토콜 |
| 永宏 FB | 표준永宏프로토콜 |
所有 PLC 프로토콜都有"与 PLC 同步화면"选项:화면变化写到指定 PLC 주소,或 PLC 某주소变值时전환화면(0xFFFF 为自动)。
本文整理自 广州大彩科技 VisualHMI 개발문서(hmi-doc.gz-dc.com)프로토콜설명章节,帧형식与레지스터설정均按原文保真,版权归大彩科技所有,此处做重点标注重排。
답글 작성