1、着重记录连续写多个寄存器 鸣志 modbus 多个寄存器格式 欧姆龙 A641.00 上升沿触发数据传输。 假设从站地址 1,用串行端口 1,则 d32200 赋值 #1; 设定将数据传送至目标寄存器AC:40028(short)=#70,DE:20029(short)=#70,VE:40030(short)=#600 寄存器数量为 3,总 Byte 为为 6. 其中 D32002 为欧姆龙发送命令时总字节数,从 D32003 开始计算,结束至总字节数完毕。 一个 D 寄存器为 2 个字节。 上图的 D32002 设为 B,即为 11 字节 D32003 为起始地址,数据为 1B,换算 10
2、进制为 27,鸣志寄存器地址=40000+27+1=40028,40028 即为寄存器写入目标起始地址。占 d32002 中的 2 个字节。 D32004 为写入的寄存器总数,数据为 3,换算 10 进制为 3(分别是鸣志步进控制器地址为 40028,40029,40030。因为他们数据类型为 Short)。占 d32002 中的 2 个字节。 D32005 高位字节为写入寄存器总字节数,根据 D32004 中的数据计算而来,共 6 字节,即数据为 6。占 d32002 中的 1 个字节。 D32005 低位字节 +D32006 高位字节为写入的寄存器 1 的内容数据。合并起来为#0070.占
3、 d32002 中的 2 个字节。 D32006 低位字节 +d32007 高位字节为写入的寄存器 2 的内容数据。合并起来为#0070.占 d32002 中的 2 个字节。 D32007 低位字节 +d32008 高位字节为写入的寄存器 3 的内容数据。合并起来为#0600.占 d32002 中的 2 个字节。 D32008 低位字节无用,不参与数据传送,写出是因为 d32008 在欧姆龙 PLC 中是一个整体寄存器。不占 D32002 字节。 以上占用的字节数相加正好等于 d32002 中的数据。即 d32002 数据取决于后面写入的总字节数。 读取数据 报文注释 01 03 00 3C 00 06 05 C4 从站地址 读寄存器命令 首地址 读取字节数 自用格式 欧姆龙 PLC 程序如下 D32200 从站地址 D32201 功能码 D32202 欧姆龙发送数据字节数 D32203 读取首地址 D32204 读取寄存器数量