说明
该协议适用于维控LX1S系列PLC,关于维控LX2N的协议将在后面描述。
通讯帧
通讯采用ASCII码,校验方式采用和校验。
请求帧格式: | 报文开始 | 命令字 | 地址(有些无) | 长度(有些无) | 数据(有些无) | 报文结束 | 和校验(两位) |
STX(02H) | CMD(两位) | ADDRESS(四位) | LEN(两位) | DATA (2*LEN) | EXT(03H) | SUM | |
例子 | STX, | CMD, | ADDRESS, | LEN, | ETX, | SUM, | |
02H, | 30H | 31H, 30H, 46H, 36H, | 30H, 34H, | 03H | 37H,34H, | ||
指令解释如下: | |||||||
STX, | "0" | "10F6" | "04" | "ETX" | "74" | ||
报文开始 | 读命令 | 地址10F6H处 | 04H字节数据 | 报文结束 | 累加方式和校验 | ||
其中 SUM=(CMD......+ETX) =( 30H + 31H + 30H + 46H + 36H + 30H + 34H + 03H)= 74h 累加和超过两位取低位,转成ascii码,分SUM(upper),SUM(lower)二次传送 |
通讯命令字
通讯命令字含义: | ||||||
分类 | 命令字 | 备注 | 命令字对应的帧格式 | |||
命令 | HEX | 命令解释 | 请求或返回 | STX, CMD, ADDRESS, LEN, DATA, ETX, SUM | ||
基本命令 | STX | 02H | 报文开始 | 格式命令帧 | / | |
ETX | 03H | 报文结束 | 格式命令帧 | / | ||
ENQ | 05H | 通信请求 | 请求帧 | ENQ(05H) | ||
成功返回帧 | ACK(06H) | |||||
ACK | 0H | PLC正确响应 | ||||
NAK | 15H | PLC错误响应 | 返回命令帧 | / | ||
基本命令字 | 0 | 30H | 读数据 | 请求帧 | STX, 0, ADDRESS, LEN, EXT, SUM | |
成功返回帧 | STX, DATA, EXT, SUM | |||||
1 | 31H | 写数据 | 请求帧 | STX, 1, ADDRESS, LEN, DATA, EXT, SUM | ||
成功返回帧 | ACK(06H) | |||||
7 | 37H | 强制BIT位ON | 请求帧 | STX, 7, ADDRESS, EXT, SUM | ||
成功返回帧 | ACK(06H) | |||||
8 | 38H | 强制BIT位OFF | 请求帧 | STX, 8, ADDRESS, EXT, SUM | ||
成功返回帧 | ACK(06H) | |||||
系统命令 | B | 42H | 程序下载结束 | 请求帧 | STX, B, EXT, SUM | |
成功返回帧 | ACK(06H) | |||||
拓展命令字 | E00 | 45H 30H 30H | 读配置(D8000、数据监控缓存区) | 请求帧 | STX, E00, ADDRESS, LEN, EXT, SUM | |
成功返回帧 | STX, DATA, EXT, SUM | |||||
E01 | 45H 30H 31H | 读程序(参数、程序、注释等) | 请求帧 | STX, E01, ADDRESS, LEN, EXT, SUM | ||
成功返回帧 | STX, DATA, EXT, SUM | |||||
E11 | 45H 31H 31H | 写程序(参数、程序、注释等) | 请求帧 | STX, E11, ADDRESS, LEN, DATA, EXT, SUM | ||
成功返回帧 | ACK(06H) | |||||
E7 | 45H 37H | 强制BIT位ON | 请求帧 | STX, E7, ADDRESS, EXT, SUM | ||
成功返回帧 | ACK(06H) | |||||
E8 | 45H 38H | 强制BIT位OFF | 请求帧 | STX, E8, ADDRESS, EXT, SUM | ||
成功返回帧 | ACK(06H) |
通讯数据地址
通讯数据地址: | |||||||
类型 | 寄存器 | 起始地址(含) | 结束地址 (含) | 备注 | 在A地址上加减 | ||
字地址A | C0~C199 寄存器 | 0x0A00 | 0x0B8F | 字地址B(数据监控缓存也是用的该地址) | 不变 | ||
C200~C255 寄存器 | 0x0C00 | 0x0CDF | 不变 | ||||
T0~T255 寄存器 | 0x0800 | 0x0A00 | +0x800 | ||||
D0~D7999 | 0x1000 | 0x4E7F | +0x3000 | ||||
D8000~D8255 | 0x0E00 | 0x0FFE | 不变 | ||||
M0~M1535 | 0x0100 | 0x01BF | -0x100 | ||||
M8000~M8255 | 0x01E0 | 0x01FF | -0x20 | ||||
S0~S1023 | 0x0000 | 0x007F | +0x280 | ||||
T0~T255 线圈 | 0x00C0 | 0x00DF | +0x140 | ||||
C0~C255 线圈 | 0x01C0 | 0x01DF | +0x20 | ||||
X0~X377 | 0x0080 | 0x009F | +0x1C0 | ||||
Y0~Y377 | 0x00A0 | 0x00BF | +0xE0 | ||||
寄存器 | 起始地址(含) | 结束地址 (不含) | 备注 | 起始地址(含) | 结束地址 (不含) | ||
映射地址A | S0~S1023 | 0x0000 | 0x03FF | 映射地址B | 0x1400 | 0x17FF | |
X0~X377 | 0x0400 | 0x04FF | 0x1200 | 0x12FF | |||
Y0~Y377 | 0x0500 | 0x05FF | 0x0C00 | 0x0CFF | |||
T0~7255 | 0x0600 | 0x06FF | 0x1000 | 0x10FF | |||
M0~M1535 | 0x0800 | 0x0DFF | 0x0000 | 0x05FF | |||
C0~C255 | 0x0E00 | 0x0EFF | 0x0F00 | 0x0FFF | |||
M8000~M8255 | 0x0F00 | 0x0FFF | 0x0E00 | 0x0EFF |
维控 LX1S通讯协议举例
以下是从维控HMI和维控PLC–LX1S抓取到的数据帧,请注意在数据帧中读 和 写操作位地址
时位地址寄存器的高低位变化。 在操作字地址时,读写寄存器地址高低位不变。
字