编辑: 星野哀 | 2018-08-15 |
2、4 指令码 含义
2 读光耦输入状态
4 读模拟输入AD值 线圈寄存器地址表: 寄存器名称 寄存器地址 说明 温度输入 输入1 温度输入 4号指令 3x0001 第一路温度输入 输入2 3x0002 第二路温度输入 输入3 3x0003 第三路温度输入 输入4 3x0004 第四路温度输入 输入5 3x0005 第五路温度输入 输入6 3x0006 第六路温度输入 输入7 3x0007 第七路温度输入 输入8 3x0008 第八路温度输入 模拟量输入 输入1 温度输入 4号指令 3x0021 第一路模拟量输入 输入2 3x0022 第二路模拟量输入 输入3 3x0023 第三路模拟量输入 输入4 3x0024 第四路模拟量输入 输入5 3x0025 第五路模拟量输入 输入6 3x0026 第六路模拟量输入 输入7 3x0027 第七路模拟量输入 输入8 3x0028 第八路模拟量输入 配置参数 通信波特率 保持寄存器 4x1001 见下表波特率数值对应表,默认为0,支持0-5,该寄存器同时决定RS232和RS485的通信波特率 备用 4x1002 备用,用户不可写入任何值. 偏移地址 4x1003 设备地址=偏移地址+拨码开关地址 工作模式 4x1004 用户可以使用,存储用户数据 延迟时间 4x1005 用户可以使用,存储用户数据 备注: ①:Modbus设备指令支持下列Modbus地址: 00001至09999是离散输出(线圈) 10001至19999是离散输入(触点) 30001至39999是输入寄存器(通常是模拟量输入) 40001至49999是保持寄存器(通常存储设备配置信息) 采用5位码格式,第一个字符决定寄存器类型,其余4个字符代表地址.地址1从0开始,如00001对应0000. ②:波特率数值对应表 数值 波特率
0 38400
1 2400
2 4800
3 9600
4 19200
5 38400 ③:继电器状态,通过30002地址可以查询,也可以通过00001---00002地址来查询,但控制只能使用00001---00002地址. 30002地址数据长度为16bit.最多可表示16个继电器. 对应结果如下: Bit
15 14
13 12
11 10
9 8
7 6
5 4
3 2
1 0 继电器位置
8 7
6 5
4 3
2 1
16 15
14 13
12 11
10 9 即 寄存器30009数据 的bit8 与寄存器00001的数据一样. 同理:光耦输入也是如此.寄存器30003的bit
8、bit9 与寄存器
10001、10002都对应到指定的硬件上. 寄存器地址按照PLC命名规则,真实地址为去掉最高位,然后减一. 参考资料:http://hi.baidu.com/anyili001/item/573454e6539f60afc10d75c9
3、指令生成说明 应用举例及其说明:本机地址除了偏移地址地址之外,还有默认的254为广播地址.当总线上只有一个设备时,无需关心拨码开关地址,直接使用254地址即可,当总线上有多个设备时通过拨码开关选择为不同地址,发送控制指令时通过地址区别. 注意:RS232总线为1对1总线,即总线上只能有两个设备,例如电脑与继电器板卡,只有485总线才可以挂载多个设备. 指令可通过 聚英翱翔DAM调试软件 ,的调试信息来获取. 指令生成说明:对于下表中没有的指令,用户可以自己根据modbus协议生成,对于继电器线圈的读写,实际就是对modbus寄存器中的线圈寄存器的读写,上文中已经说明了继电器寄存器的地址,用户只需生成对寄存器操作的读写指令即可.例如读或者写继电器1的状态,实际上是对继电器1对应的线圈寄存器00001的读写操作.
4、指令列表 情景 RTU格式(16进制发送) 查询第1路温度 FE040000000125C5 返回信息 FE
04 02
00 00 AD
24 查询第2路温度 FE04000100017405 查询第3路温度 FE04000200018405 查询第4路温度 FE0400030001D5C5 查询第5路温度 FE04000400016404 查询第6路温度 FE040005000135C4 查询第7路温度 FE0400060001C5C4 查询第8路温度 FE04000700019404 查询1~8路温度 FE0400000008E5C3 查询第1路模拟量 FE