通讯口
ES2/EX2/SA2/SX2 系列主机最多有 3 个通讯口(COM1~COM3), SS2 系列主机有 2 个通讯口(COM1, COM2)。支持台达人机界面(HMI) “DELTA Q-link” 通讯格式, 可加快 HMI 画面更新速度。
COM1 : RS-232 通讯口,可做主站或从站。为主要的程序编辑通讯口。
COM2 : RS-485 通讯口, 可做主站或从站。
ES2/EX2/SA2 COM3 : RS-485 通讯口,可做主站或从站。
SX2 COM3: USB 通讯口, 可做从站。
COM1~COM3 通讯口可用于 Modbus ASCII 或 RTU 模式通讯.
通讯结构:
通讯口通讯参数 | RS-232(COM1) | RS-485(COM2) | RS-485(COM3) | USB(COM3) |
波特率 | 110~115200 bps | 110~921,000 bps | 110~115200 bps | |
数据位长度 | 7~8 位 | |||
奇偶校验位 | 奇校验/偶校验/无校验 | |||
停止数据位长度 | 1~2 数据位 | |||
通讯参数设置寄存器 | D1036 | D1120 | D1109 | |
通讯格式保持 | M1138 | M1120 | M1136 | |
ASCII 模式 | 主站/从站都有效 | 从站有效 | ||
RTU 模式 | 主站/从站都有效 | 从站有效 | ||
ASCII /RTU 模式切换 | M1139 | M1143 | M1320 | |
从站通讯地址设定缓存器 | D1121 | D1255 | ||
读写数据长度 (ASCII 模式) | 100 个寄存器 | |||
读写数据长度 (RTU 模式) | 100 个寄存器 |
通讯口的默认通讯格式
L Modbus ASCII 模式
L 7 个数据位
L 1 个停止位
L 奇校验位 (EVEN)
L 9600bps 波特率
4.2 ASCII 模式通讯协议
通讯数据结构
9600 (波特率), 7 (数据位), Even (奇偶校验位) 1 (起始位), 1 (停止位)
字段名 | 组成 | 说明 |
起始字符 | STX | 起始字符为:’,冒号的 ASCII 码为 3AH |
从站地址 | ADR 1 | 通讯地址由两个 ASCII 码组成 |
ADR 0 | ||
命令码 | CMD 1 | 命令码由两个 ASCII 码组成 |
CMD 0 | ||
数据 | DATA (0) | 数据内容由 2n 个 ASCII 码组成, ns205。 |
DATA (1) | ||
……… . | ||
DATA (n-1) | ||
LRC 校验码 | LRC CHK 1 | LRC 校验码由 2 个 ASCII 码组成 |
LRC CHK 0 | ||
结束字符 | END1 | 结束字符由 2 个 ASCII 码组成END1 = CR (0DH) ,END0 = LF (0AH) |
END0 |
16 进制与 ASCII 码对应关系如下表所示:
ASCII 码 | “0“ | “1“ | “2“ | “3“ | “4“ | “5“ | “6“ | “7“ |
16 进制 | 30H | 31H | 32H | 33H | 34H | 35H | 36H | 37H |
ASCII 码 | “8“ | “9“ | “A“ | “B“ | “C“ | “D“ | “E“ | “F“ |
16 进制 | 38H | 39H | 41H | 42H | 43H | 44H | 45H | 46H |
4.2.1 ADR (通讯地址)
有效的通讯地址范围为 0~254。当通讯地址为 0 时表示对所有 PLC 广播, 收到广播消息的 PLC 不会 对广播消息做回应。当 PLC 地址不为 0 时, PLC 会回应正常讯息给主站设备。
例如,通讯地址为 16 (十进制) 的 PLC 的地址的 ASCII 码表示方法如下所示(十进制数 16 的十六 进制为 10)。
(ADR 1, ADR 0)=’1’,’0’s’1’=31H, ‘0’ = 30H
4.2.2 命令码及数据
数据字符的格式取决于命令码,有效的命令码的描述如下表所示:
命令码(Hex) | 含义 | 可操作装置 |
01 (01 H) | 读节点状态(不可读输入节点状态) | S, Y, M, T, C |
02 (02 H) | 读节点状态(可读输入节点状态) | S, X, Y, M,T, C |
03 (03 H) | 读寄存器的内容值 | T, C, D |
05 (04 H) | 强制单独节点状态 On/Off | S, Y, M, T, C |
06 (06 H) | 预设单独寄存器的值 | T, C, D |
15 (0F H) | 强制多个节点状态 On/Off | S, Y, M, T, C |
16 (10 H) | 预设多个寄存器的值 | T, C, D |
17 (11 H) | 报告从站地址 | None |
23 (17 H) | PLC LINK 在一个轮询时间内同时 执行读写功能 | None |
例如: 读取 PLC 通讯地址 01, 地址 H0614~H61B (寄存器 T20~T27) 的连续 8 个字符组的数据。0614 (十六进制) 为 PLC 内部 T20 的地址。
PC一PLC:
“: 01 03 06 14 00 08 DA CR LF”
请求讯息:
字段名 | ASCII 码 | 16 进制 |
起始字符 | : | 3A |
从站地址 | 01 | 30 31 |
命令码 | 03 | 30 33 |
起始数据地址高字节 | 06 | 30 36 |
起始数据地址低字节 | 14 | 31 34 |
接点个数高字节 | 00 | 30 30 |
接点个数低字节 | 08 | 30 38 |
LRC 校验码 | DA | 44 41 |
结束字符 | CR LF | 0D 0A |
PLC一PC
“: 01 03 10 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 C8 CR LF”
回应讯息:
字段名 | ASCII 码 | 16 进制 |
起始字符 | : | 3A |
从站地址 | 01 | 30 31 |
命令码 | 03 | 30 33 |
字段名 | ASCII 码 | 16 进制 |
字节数 | 10 | 31 30 |
高字节(T20) | 00 | 30 30 |
低字节(T20) | 01 | 30 31 |
高字节(T21) | 00 | 30 30 |
低字节(T21) | 02 | 30 32 |
高字节(T22) | 00 | 30 30 |
低字节(T22) | 03 | 30 33 |
高字节(T23) | 00 | 30 30 |
低字节(T23) | 04 | 30 34 |
高字节(T24) | 00 | 30 30 |
低字节(T24) | 05 | 30 35 |
高字节(T25) | 00 | 30 30 |
低字节(T25) | 06 | 30 36 |
高字节(T26) | 00 | 30 30 |
低字节(T26) | 07 | 30 37 |
高字节(T27) | 00 | 30 30 |
低字节(T27) | 08 | 30 38 |
LRC 校验码 | C8 | 43 38 |
结束字符 | CR LF | 0D 0A |
4.2.3 LRC校验 (校验和)
LRC 校验码为从站地址至最后一个数据内容的 16 进制数叠加后的值的各位取反后再加 1 的值。如下 例所示,LRC 校验码的值为 F6(16 进制)。LRC 校验码的计算方法如下:01H+03H+04H+01H+00+01H = 0AH, 0A (16 进制)各位取反后的结果再加 1 为 F6 (16 进制)。
字段名 | ASCII 码 | 16 进制 |
起始字符 | : | 3A |
从站地址 | 01 | 30 31 |
命令码 | 03 | 30 33 |
起始数据地址高字节 | 04 | 30 34 |
起始数据地址低字节 | 01 | 30 31 |
接点个数高字节 | 00 | 30 30 |
接点个数低字节 | 01 | 30 31 |
LRC 校验码 | F6 | 46 36 |
结束字符 | CR LF | 0D 0A |
异常响应:
从站在收到主站的命令讯息后期望回应给主站一个正常的回应讯息, 但有时 PLC 在收到主站的命令 讯息后不回应或者回应错误原因,下面将描述 PLC 没有给主站设备回应或回应错误原因的情况。
1. 由于通讯错误, PLC 没有收到正确的命令讯息: 因此当 PLC 没有回应讯息时,主站设备须设置一 个通讯超时条件。
2. 没有通讯错误发生时, PLC 接收到一个有效的通讯讯息, 但 PLC 不能理解此讯息的意思, 所以 PLC 会给主站做异常回应。回应讯息的命令码的最高位会置位为 1 并且会返回一个异常码说明造成异常回 应的原因。
命令码为 01H 时的异常响应范例, 异常响应码为 02H
请求讯息:
字段名 | ASCII 码 | 十六进制 |
起始字符 | : | 3A |
30 31 | ||
从站地址 | 01 | |
命令码 | 01 | 30 31 |
起始数据地址高字节 | 04 | 30 34 |
起始数据地址低字节 | 00 | 30 30 |
接点个数高字节 (单位:位) | 00 | 30 30 |
接点个数低字节 (单位:位) | 10 | 31 30 |
LRC 校验码 | EA | 45 41 |
结束字符 | CR LF | 0D 0A |
回应讯息
字段名 | ASCII 码 | 十六进制 |
起始字符 | : | 3A |
30 31 | ||
从站地址 | 01 | |
命令码 | 81 | 38 31 |
30 32 | ||
异常码 | 02 | |
LRC 校验码 | 7C | 37 43 |
结束字符 | CR LF | 0D 0A |
异常码 | 含义 |
01 | 非法命令码: PLC 接收的命令信息中的命令码无效 |
02 | 非法的装置地址:接收的命令信息中的地址无效。 |
03 | 非法装置值: PLC 接收的命令信息中的数据内容无效。 |
07 | 1. 校验和错误● 检查校验和是否正确 |
异常码 | 含义 |
2. 非法的命令讯息● 命令讯息太短● 命令讯息长度超出范围 |
4.3 RTU 模式通讯协议
通讯数据结构
9600 (波特率), 8 (数据位), Even (奇偶校验位) 1 (起始位), 1 (停止位)
开始 | 保持无输入数据≥10 ms |
从站地址 | 从站地址:: 8 位二进制数地址 |
命令码 | 命令码:: 8 位二进制数地址 |
数据 (n-1) | 数据内容n × 8 位二进制数, n<=202 |
…… . | |
数据 0 | |
CRC 校验和低字节 | CRC 校验和CRC 校验和由两个 8 位二进制数组成 |
CRC 校验和高字节 | |
结束 | 保持无输入数据≥10 ms |
4.3.1 地址 (通讯地址)
有效的通讯地址范围为 0~254。当通讯地址为 0 时表示对所有 PLC 广播, 收到广播消息的 PLC 不会 对广播消息做回应。当 PLC 地址不为 0 时, PLC 会回应正常消息给主站设备。
例如, 当和通讯地址为 16 (十进制) 的 PLC 进行通讯时, 从站地址须设为 10 (16 进制), 十进制数 16 的十六进制为 10)。
4.3.2 命令码及数据
数据字符的格式取决于命令码, 有效的功能码的描述请参考 4.2.2 节。
范例: 读取 PLC 站号 01, 地址 H0614~H61B (T20~T27)的连续 8 个字符组的数据。读取从站设备 (通 讯地址为 1)的值。
PC一PLC
“ 01 03 06 14 00 08 04 80”
传送讯息:
字段名 | 数据 (16 进制) |
开始 | 保持无输入数据≥10 ms |
从站地址 | 01 |
命令码 | 03 |
数据起始地址 | 06 |
字段名 | 数据 (16 进制) |
14 | |
数据个数(以字节为单位) | 00 |
08 | |
CRC 校验和低字节 | 04 |
CRC 校验和高字节 | 80 |
结束 | 保持无输入数据≥10 ms |
PLC一PC
“ 01 03 10 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 72 98”
回应讯息:
字段名 | 数据 (16 进制) |
开始 | 保持无输入数据≥10 ms |
从站地址 | 01 |
命令码 | 03 |
数据个数(以字节为单位) | 10 |
数据高字节 (T20) | 00 |
数据低字节 (T20) | 01 |
数据高字节 (T21) | 00 |
数据低字节 (T21) | 02 |
数据高字节 (T22) | 00 |
数据低字节 (T22) | 03 |
数据高字节 (T23) | 00 |
数据低字节 (T23) | 04 |
数据高字节 (T24) | 00 |
数据低字节 (T24) | 05 |
数据高字节 (T25) | 00 |
数据低字节 (T25) | 06 |
数据高字节 (T26) | 00 |
数据低字节 (T26) | 07 |
数据高字节 (T27) | 00 |
数据低字节 (T27) | 08 |
CRC 校验和低字节 | 72 |
CRC 校验和高字节 | 98 |
结束 | 保持无输入数据≥10 ms |
4.3.3 CRC 校验 (校验和)
CRC 校验从”从站地址” 开始,至”最后一个数据内容”结束。CRC 校验计算方法如下: 步骤 1 : 载入一个内容值为 FFFF (十六进制) 的 16 位寄存器(称为 CRC 寄存器)。
步骤 2 : 指令讯息中的第一个字节的 8 位数据与 CRC 寄存器低字节的 8 位数据进行异或运算,运算 结果存储于 CRC 寄存器内。
步骤 3: CRC 寄存器的内容值右移 1 位并将其最高位填入 0。
步骤 4: 检查 CRC 寄存器最低位的值,如果为 0 则重复步骤 3:如果为 1 , CRC 寄存器的内容与 A001 (十六进制)进行异或运算, 运算结果存储于 CRC 寄存器内。
步骤 5 : 重复步骤 3 及步骤 4,直到CRC 寄存器的内容被右移了8 位。此时, 指令讯息的第一个字节 已完成处理。
步骤 6 : 对指令讯息的下一个字节重复步骤 2 至步骤 5 的操作, 直到指令讯息的所有字节都被处理完 成。CRC 寄存器最后的内容就是 CRC 校验值。在指令讯息中传送 CRC 校验值时, 计算出的 CRC 校 验值高低字节须互换, 即 CRC 校验值低字节先被传送。
下面为用 C 语言求 CRC 校验值的计算范例
unsigned char* data <// 指令讯息内容指针
unsigned char length <// 指令讯息的长度
unsigned int crc_chk(unsigned char* data, unsigned char length)
{
int j;
unsigned int reg_crc=0Xffff;
while(length–)
{
reg_crc ^= *data++;
for (j=0;j<8;j++)
{
If (reg_crc & 0x01) reg_crc=(reg_crc>>1) ^ 0Xa001; /* LSB(b0)=1 */
else reg_crc=reg_crc >>1;
}
}
return reg_crc; // the value that sent back to the CRC register finally
}
异常回应:
从站在收到主站的命令讯息后期望回应给主站一个正常的回应讯息, 但有时 PLC 在收到主站的命令 讯息后不回应或者回应错误原因,下面将描述 PLC 没有给主站设备回应或回应错误原因的情况。
1. 由于通讯错误, PLC 没有收到正确的命令讯息: 因此当 PLC 没有回应讯息时,主站设备须设置一 个通讯超时条件。
2. 没有通讯错误发生时, PLC 接收到一个有效的通讯讯息, 但 PLC 不能理解此讯息的意思, 所以 PLC 会给主站做异常回应。回应讯息的命令码的最高位会置位为 1 并且会返回一个异常码说明造成异常回 应的原因。
下面的例子为命令码为 01H 时的异常回应范例, 异常回应码为 02H。
传送讯息:
字段名 | 数据 (16 进制) |
开始 | 保持无输入数据≥10 ms |
从站地址 | 01 |
命令码 | 01 |
数据起始地址 | 04 |
00 | |
数据个数(以字节为单位) | 00 |
10 | |
CRC 校验码低字节 | 3C |
CRC 校验码高字节 | F6 |
结束 | 保持无输入数据≥10 ms |
回应讯息:
字段名 | 数据(16 进制) |
开始 | 保持无输入数据≥10 ms |
从站地址 | 01 |
命令码 | 81 |
异常码 | 02 |
CRC 校验码低字节 | C1 |
CRC 校验高字节 | 91 |
结束 | 保持无输入数据≥10 ms |
PLC装置地址
装置 | 范围 | 有效范围 | MODBUS地址 | 装置通讯地址 | |
ES2/EX2 | SS2 | SA2/SX2 | |||
S | 000~255 | 000~1023 | 000~1023 | 000001~000256 | 0000~00FF |
S | 256~511 | 000257~000512 | 0100~01FF | ||
S | 512~767 | 000513~000768 | 0200~02FF | ||
S | 768~1023 | 000769~001024 | 0300~03FF | ||
X | 000~377 (Octal) | 000~377 | 000~377 | 101025~101280 | 0400~04FF |
Y | 000~377 (Octal) | 000~377 | 000~377 | 001281~001536 | 0500~05FF |
T | 000~255 bit | 000~255 | 000~255 | 001537~001792 | 0600~06FF |
000~255 word | 000~255 | 000~255 | 401537~401792 | 0600~06FF | |
M | 000~255 | 0000~4095 | 0000~4095 | 002049~003584 | 0800~08FF |
M | 256~511 | 0900~09FF | |||
M | 512~767 | 0A00~0AFF | |||
M | 768~1023 | 0B00~0BFF | |||
M | 1024~1279 | 0C00~0CFF | |||
M | 1280~1535 | 0D00~0DFF | |||
M | 1536~1791 | 045057~047616 | B000~B0FF | ||
M | 1792~2047 | B100~B1FF | |||
M | 2048~2303 | B200~B2FF | |||
M | 2304~2559 | B300~B3FF | |||
M | 2560~2815 | B400~B4FF | |||
M | 2816~3071 | B500~B5FF | |||
M | 3072~3327 | B600~B6FF | |||
M | 3328~3583 | B700~B7FF | |||
M | 3584~3839 | B800~B8FF | |||
M | 3840~4095 | B900~B9FF | |||
C | 000~199 (16-bit) | 000~199 | 000~199 | 003585~003784 | 0E00~0EC7 |
000~199 | 000~199 | 403585~403784 | 0E00~0EC7 | ||
200~255 (32-bit) | 200~255 | 200~255 | 003785~003840 | 0EC8~0EFF | |
200~255 | 200~255 | 401793~401903(奇数位址有效) | 0700~076F |
装置 | 范围 | 有效范围 | MODBUS地址 | 装置通讯地址 | ||
ES2/EX2 | SS2 | SA2/SX2 | ||||
D | 000~255 | 0000~9999 | 0000~4999 | 0000~9999 | 404097~405376 | 1000~10FF |
D | 256~511 | 1100~11FF | ||||
D | 512~767 | 1200~12FF | ||||
D | 768~1023 | 1300~13FF | ||||
D | 1024~1279 | 1400~14FF | ||||
D | 1280~1535 | 405377~408192 | 1500~15FF | |||
D | 1536~1791 | 1600~16FF | ||||
D | 1792~2047 | 1700~17FF | ||||
D | 2048~2303 | 1800~18FF | ||||
D | 2304~2559 | 1900~19FF | ||||
D | 2560~2815 | 1A00~1AFF | ||||
D | 2816~3071 | 1B00~1BFF | ||||
D | 3072~3327 | 1C00~1CFF | ||||
D | 3328~3583 | 1D00~1DFF | ||||
D | 3584~3839 | 1E00~1EFF | ||||
D | 3840~4095 | 1F00~1FFF | ||||
D | 4096~4351 | 436865~440960 | 9000~90FF | |||
D | 4352~4607 | 9100~91FF | ||||
D | 4608~4863 | 9200~92FF | ||||
D | 4864~5119 | 9300~93FF | ||||
D | 5120~5375 | 无 | 9400~94FF | |||
D | 5376~5631 | 9500~95FF | ||||
D | 5632~5887 | 9600~96FF | ||||
D | 5888~6143 | 9700~97FF | ||||
D | 6144~6399 | 9800~98FF | ||||
D | 6400~6655 | 9900~99FF | ||||
D | 6656~6911 | 9A00~9AFF | ||||
D | 6912~7167 | 9B00~9BFF | ||||
D | 7168~7423 | 9C00~9CFF | ||||
D | 7424~7679 | 9D00~9DFF | ||||
D | 7680~7935 | 9E00~9EFF | ||||
D | 7936~8191 | 9F00~9FFF | ||||
D | 8192~8447 | 440961~442768 | A000~A0FF | |||
D | 8448~8703 | A100~A1FF | ||||
D | 8704~8959 | A200~A2FF | ||||
D | 8960~9215 | A300~A3FF | ||||
D | 9216~9471 | A400~A4FF | ||||
D | 9472~9727 | A500~A5FF | ||||
D | 9728~9983 | A600~A6FF | ||||
D | 9984~9999 | A700~A70F |
4.5 命令码
4.5.1 命令码: 01, 读节点状态(不可读输入点状态)
数据个数最大值= 255 (10 进制) = FF (16 进制)
范例:读取从站设备(通讯地址为 1)T20~T56 的节点状态。
PC一PLC: “:01 01 06 14 00 25 BF CR LF”
传送讯息:
字段名 | ASCII 码 |
起始字符 | : |
从站地址 | 01 |
命令码 | 01 |
起始数据地址高字节 | 06 |
起始数据地址低字节 | 14 |
节点状态个数高字节 | 00 |
节点状态个数低字节 | 25 |
LRC 校验码 | BF |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |
假设请求讯息中的节点状态个数为 n (十进制), n/8 的商为 M,余数为 N.。
当 N=0 时, 回应讯息中的字节个数为 M;当 N≠0 时, 回应讯息中的字节个数为为 M+1. PLC一PC: “:01 01 05 CD 6B B2 0E 1B D6 CR LF”
回应讯息:
字段名 | ASCII 码 |
起始字符 | : |
从站地址 | 01 |
命令码 | 01 |
字节个数 | 05 |
T20~T27 节点状态 | CD |
T35~T38 节点状态 | 6B |
T36~T43 节点状态 | B2 |
T44~T51 节点状态 | 0E |
T52~T56 节点状态 | 1B |
LRC 校验码 | E6 |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |
4.5.2 命令码: 02,读节点状态(可读输入节点状态)
范例:读取从站设备(通讯地址为 1) Y024~Y070 的节点状态。
PC一PLC “: 01 02 05 14 00 25 BF CR LF”
传送讯息:
字段名 | ASCII 码 |
起始字符 | : |
从站地址 | 01 |
命令码 | 02 |
起始数据地址高字节 | 05 |
起始数据地址低字节 | 14 |
数据个数高字节 | 00 |
数据个数低字节 | 25 |
LRC 校验码 | BF |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |
假设请求讯息中的节点状态个数为 n (十进制), n/8 的商为 M,余数为 N.。
当 N=0 时, 回应讯息中的字节个数为 M;当 N≠0 时, 回应讯息中的字节个数为为 M+1. PLC一PC “: 01 01 05 CD 6B B2 0E 1B E5 CR LF”
回应讯息:
字段名 | ASCII 码 |
起始字符 | : |
从站地址 | 01 |
命令码 | 02 |
字节个数 | 05 |
Y024~Y033 节点状态 | CD |
Y034~Y043 节点状态 | 6B |
Y044~Y053 节点状态 | B2 |
Y054~Y063 节点状态 | 0E |
Y064~Y070 节点状态 | 1B |
LRC 校验码 | E5 |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |
4.5.3 命令码: 03,读出寄存器内容值
命令码 03 可读寄存器: T, C, D
范例::读取从站地址为 1 的 PLC 的 T20~T27 的内容值。
PC一PLC: “: 01 03 06 14 00 08 DA CR LF”
传送讯息:
字段名 | ASCII 码 |
起始字符 | : |
从站地址 | 01 |
命令码 | 03 |
数据地址高字节 | 06 |
起始数据地址高字节 | 14 |
读取数据个数高字节 | 00 |
读取数据个数低字节(数据个数以字为单位) | 08 |
LRC 校验码 | DA |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |
PLC一PC: “:01 03 10 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 B8 CR LF” 回应讯息:
字段名 | ASCII 码 |
起始字符 | 3A |
从站地址 | 01 |
命令码 | 03 |
字节个数 | 10 |
数据高字节 (T20) | 00 |
数据低字节 (T20) | 01 |
数据高字节 (T21) | 00 |
数据低字节 (T21) | 02 |
数据高字节 (T22) | 00 |
数据低字节 (T22) | 03 |
数据高字节 (T23) | 00 |
数据低字节 (T23) | 04 |
数据高字节 (T24) | 00 |
数据低字节 (T24) | 05 |
数据高字节 (T25) | 00 |
数据低字节 (T25) | 06 |
数据高字节 (T26) | 00 |
数据低字节 (T26) | 07 |
字段名 | ASCII 码 |
数据高字节 (T27) | 00 |
数据低字节 (T27) | 08 |
LRC 校验码 | C8 |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |
4.5.4 命令码: 05, 强制单独节点状态
命令码为 05 时,强制数据 FF00 (16 进制)表示将节点强制为 On; 强制数据 0000 (16 进制)表示 将节点强制为 Off。其它的强制数据无效且不会对强制节点有影响。
范例:强制 Y0 节点为 On。
PC一PLC “: 01 05 05 00 FF 00 F6 CR LF”
传送讯息:
字段名 | ASCII 码 |
起始字符 | : |
从站地址 | 01 |
命令码 | 05 |
节点地址高字节 | 05 |
节点地址低字节 | 00 |
强制数据高字节 | FF |
强制数据低字节 | 00 |
LRC 校验码 | F6 |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |
PLC一PC “: 01 05 05 00 FF 00 F6 CR LF”
回应信息:
字段名 | ASCII 码 |
起始字符 | : |
从站地址 | 01 |
命令码 | 05 |
节点地址高字节 | 05 |
节点地址低字节 | 00 |
强制数据高字节 | FF |
强制数据低字节 | 00 |
LRC 校验码 | F6 |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |
4.5.5 命令码: 06, 预设单独寄存器的值
范例: :设置寄存器 T0 的值为 12 34 (16 进制), T0 的通讯地址为 0600 (16 进制)。 PC一PLC “: 01 06 06 00 12 34 AD CR LF”
传送讯息:
字段名 | ASCII 码 |
起始字符 | : |
从站地址 | 01 |
命令码 | 06 |
寄存器地址高字节 | 06 |
寄存器地址低字节 | 00 |
预设数据值高字节 | 12 |
预设数据值低字节 | 34 |
LRC 校验码 | AD |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |
PLC一PC “: 01 06 06 00 12 34 AD CR LF”
回应信息:
字段名 | ASCII 码 |
起始字符 | : |
从站地址 | 01 |
命令码 | 06 |
寄存器地址高字节 | 06 |
寄存器地址低字节 | 00 |
预设数据值高字节 | 12 |
预设数据值低字节 | 34 |
LRC 校验码 | AD |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |
4.5.6 命令码: 15, 强制多个节点
节点数目最大值 = 255
范例:设置节点 Y007…Y000 = 1100 1101, Y011…Y010 = 01.
PC一PLC: “: 01 0F 05 00 00 0A 02 CD 01 11 CR LF”
传送讯息:
字段名 | ASCII 码 |
起始字符 | 3A |
从站地址 | 01 |
命令码 | 0F |
字段名 | ASCII 码 |
节点地址高字节 | 05 |
节点地址低字节 | 00 |
节点数目高字节 | 00 |
节点数目低字节 | 0A |
字节数目 | 02 |
强制数据高字节 | CD |
强制数据低字节 | 01 |
LRC 校验码 | 11 |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |
PLC一PC: “: 01 0F 05 00 00 0A E1 CR LF”
回应信息:
字段名 | ASCII 码 |
起始字符 | : |
从站地址 | 01 |
命令码 | 0F |
起始数据地址高字节 | 05 |
起始数据地址低字节 | 00 |
预设数据值高字节 | 00 |
预设数据值低字节 | 0A |
LRC 校验码 | E1 |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |
4.5.7 命令码: 16, 预设多个寄存器的值
范例:设置 T0 的值为 000A (16 进制),设置 T1 的值为 0102 (16 进制)。
PC一PLC: “: 01 10 06 00 00 02 04 00 0A 01 02 D6 CR LF”
传送讯息:
字段名 | ASCII 码 |
起始字符 | : |
从站地址 | 01 |
命令码 | 10 |
起始数据地址高字节 | 06 |
起始数据地址低字节 | 00 |
寄存器数目高字节 | 00 |
寄存器数目低字节 | 02 |
数据数目(以字节为单位) | 04 |
数据高字节 | 00 |
数据低字节 | 0A |
数据高字节 | 01 |
数据低字节 | 02 |
LRC 校验码 | D6 |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |
PLC一PC: “: 01 10 06 00 00 02 E7 CR LF”
回应信息:
字段名 | ASCII 码 |
起始字符 | : |
从站地址 | 01 |
命令码 | 10 |
起始数据地址高字节 | 06 |
起始数据地址低字节 | 00 |
寄存器数目高字节 | 00 |
寄存器数目低字节 | 02 |
LRC 校验码 | E7 |
结束字符 1 | 0D (Hex) |
结束字符 0 | 0A (Hex) |