问题描述
单点表通讯协议一.硬件连接和设置:1.仪表设置:a.BAUD设置:(默认为BAUD=3)BAUD=0通讯波特率1200数据位=8校验位=N停止位=1BAUD=1通讯波特率2400数据位=8校验位=N停止位=1BAUD=2通讯波特率4800数据位=8校验位=N停止位=1BAUD=3通讯波特率9600数据位=8校验位=N停止位=1b.ID设置:(默认为ID=1)通讯地址可设位0-31(接在同一485口上的通讯地址不能一样)c.硬件连接:(仪表接线以实物准,并请参照本文件接线。仪表端子号对应为)仪表端子号对应为:C804/T804A-12B-11C403A-3B-11C903A-10B-9C904A-22B-21C703/C704A-15B-16与电脑连接:与PLC等MODBUS主站连接:2.电脑或其它主站设备的设置:a.与电脑连接:打开光盘中相应的文件“单点表.exe”,此时若出现一下消息框,请将“MSCOMM32.OCX”复制到WINDOWS目录下“C:WINDOWSsystem32”处,然后重新打开文件“单点表.exe”。选择对应的COM号,选“测量”,此时,若电脑与仪表通讯正常,信息框内数值颜色为黑色,并显示测量值。b.与PLC等MODBUS主站连接:请参照PLC或其它MODBUS主站设备的相关通讯说明b.与PLC等MODBUS主站连接:请参照PLC或其它MODBUS主站设备的相关通讯说明二.软件设置:串口:8位数据位,1位停止位,无奇偶波特率:1200,2400,4800,9600RTU模式当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。代码系统•8位二进制,十六进制数0...9,A...F•消息中的每个8位域都是一个两个十六进制字符组成每个字节的位•1个起始位•8个数据位,最小的有效位先发送•1个奇偶校验位,无校验则无•1个停止位(有校验时),2个Bit(无校验时)错误检测域•CRC(循环冗长检测)RTU帧使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。在网络波特率下多样的字符时间,这是最容易实现的(如下图的T1-T2-T3-T4所示)。传输的第一个域是设备地址。可以使用的传输字符是十六进制的0...9,A...F。网络设备不断侦测网络总线,包括停顿间隔时间内。当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。一个新的消息可在此停顿后开始。整个消息帧必须作为一连续的流转输。如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。这将导致一个错误,因为在最后的CRC域的值不可能是正确的。一典型的消息帧如下所示:起始位设备地址功能代码数据CRC校验结束符T1-T2-T3-T48Bit8Bitn个8Bit16BitT1-T2-T3-T4RTU消息帧以RTU方式读取参数数据的例子主机请求地址功能码开始高高位地址开始低低位地址寄存器的数量的高位寄存器的数量的底位错误校验010300000002C40B从机应答地址功能码字节数数据高字节数据低字节小数点高字节小数点低字节错误校验010304412400016FC4十六进制数4124表示的十进制整数为16676*10-1=1667.6,错误校验值要根据传输方式而定。以RTU方式写参数数据的例子主机请求地址功能码开始高位地址开始低位地址寄存器的个数高位寄存器的个数低位字节计数数据高位数据低位小数点高字节小数点高字节错误校验0110010400020403E80001BE7C从机应答地址功能码开始高位地址开始低位地址寄存器的个数高位寄存器的个数低位错误校验010310000002C0CB十六进制数03E8.0001表示的十进制整数为1000*10-1=100.0,错误校验值要根据传输方式而定。HX/Modbus通讯协议与Modbus通信协议格式兼容,但数据场增加小数点单位。Modbus通信协议详细资料,请参考附带ABBModbus协议和Modbus_Cn/ModbusProtocol协议规范。单点表地址表参数读写高位地址低位地址小数点单位PV读0000根据SL1值定AL1读写0104SL1AL2读写0108SL1AL3读写010CSL1AL4读写0110SL1AH1读写0114SL1AH2读写0118SL1AH3读写011CSL1AH4读写0120SL1SL0读写02000SL1读写02040SL2读写02080SL3读写020C0SL2。读写02100SL3。读写02140SL4读写02180SL5读写021C0SL6读写02200SL7读写02240DE读写02280BT读写022C0PB1读写0230SL1KK1读写02343PB2读写0238SL1KK2读写023C3PB3读写0240SL1KK3读写02443OUL读写0248SL1OUH读写024CSL1PVL读写0250SL1PVH读写0254SL1SLL读写0258SL1SLH读写025CSL1SLU读写02600四回路八回路巡检仪小数点单位:=0整型数据;=1数据带一位小数;=2数据带两位小数;=3数据带三位小数。发送小数点高低字节必须与从机小数点单位一致,才能通讯。
解决方案
解决方案二:
不就是串口读写操作吗?用按照Modbus协议组成命令发送出去就行
解决方案三:
楼主你哪里不明白,是串口方面编程还是Modbus协议?