文章目录
- 说明
- 通讯帧
- 通讯命令字
- 通讯数据地址
- 维控 LX2N(LX2V)通讯协议举例
说明
该协议适用于维控LX2N系列PLC,关于维控 LX1S的协议在另一篇文章中描述。
通讯帧
通讯采用ASCII码,校验方式采用和校验。
请求帧格式: | 报文开始 | 命令字 | 地址(有些无) | 长度(有些无) | 数据(有些无) | 报文结束 | 和校验(两位) |
STX(02H) | CMD(两位) | ADDRESS(四位) | LEN(两位) | DATA (2*LEN) | EXT(03H) | SUM | |
例子 | STX, | CMD, | ADDRESS, | LEN, | ETX, | SUM, | |
02H, | 45H, 30H, 30H, | 34H, 30H, 30H, 30H, | 30H, 32H, | 03H | 43H,45H, | ||
指令解释如下: | |||||||
STX, | "E00" | "4000" | "02" | "ETX" | "CE" | ||
报文开始 | 读命令 | 地址4000处 | 02H字节数据 | 报文结束 | 累加方式和校验 | ||
其中 SUM=(CMD......+ETX) =( 45H + 30H + 30H + 34H + 30H + 30H + 30H + 30H + 32H + 03H)= CEh 累加和超过两位取低位,转成ascii码,分SUM(upper),SUM(lower)二次传送 |
通讯命令字
通讯命令字含义: | ||||
分类 | 命令字 | 备注 | ||
命令 | HEX | 命令解释 | ||
基本命令 | STX | 02H | 报文开始 | |
ETX | 03H | 报文结束 | ||
ENQ | 05H | 通信请求 | ||
ACK | 0H | PLC正确响应 | ||
NAK | 15H | PLC错误响应 | ||
拓展命令字 | E7 | 45H 37H | 强制BIT位ON | |
E8 | 45H 30H 31H | 强制BIT位OFF | ||
E00 | 45H 30H 30H | 读数据 | ||
E10 | 45H 31H 30H | 写数据 |
通讯数据地址
通讯数据地址: | ||||||||
类型 | 寄存器类型 | 起始地址(含) | 结束地址 (含) | 备注 | 寄存器类型 | 起始地址(含) | 结束地址 (含) | 备注 |
读位地址E00(45H 30H 30H) | X0-X303237 | 0x0240 | 0x3312 | 写位地址E7/E8(45H 37H/38H) | 0x1200 | 0x989F | 高低字节互换 | |
Y0-Y303237 | 0x0180 | 0x3252 | 0x0C00 | 0x929F | ||||
M0-M99999 | 0x0000 | 0x30D2 | 0x0000 | 0x869F | ||||
SM8000-SM9999 | 0x01C0 | 0x02B8 | 0x0E00 | 0x15CF | ||||
S0-S99999 | 0x0280 | 0x3352 | 0x1400 | 0x9A9F | ||||
T0-T99999 | 0x0200 | 0x32D2 | 0x1000 | 0x969F | ||||
C0-C99999 | 0x01E0 | 0x32B2 | 0x0F00 | 0x959F | ||||
类型 | 寄存器类型 | 起始地址(含) | 结束地址 (含) | 备注 | 寄存器类型 | 起始地址(含) | 结束地址 (含) | 备注 |
读字地址E00(45H 30H 30H) | D0-D7999 | 0x4000 | 0x7E7E | 写字地址E10(45H 31H 30H) | 0x4000 | 0x7E7E | ||
SD8000-SD9999 | 0x0E00 | 0x1D9E | 0x0E00 | 0x1D9E | ||||
T0-T255 | 0x1000 | 0x11FE | 0x1000 | 0x11FE | ||||
C0-C199 | 0x0A00 | 0x0B8E | 0x0A00 | 0x0B8E | ||||
C200-C255 | 0x0C00 | 0x0CDC | 0x0C00 | 0x0CDC |
维控 LX2N(LX2V)通讯协议举例
可以看到返回的数据是高低字节互换的。
字的读写:
可以发现在写X Y等单线圈的时候,写的地址是高低字节互换的;读的时候是没有这个现象的,在字的读写中地址也是按照正常顺序的。