通过VM7000的RS485接口读取数值
1.vm7000的RS485功能不是标配,先确认记录仪是否有RS485接口。
2.参数设置:
modbus1参数设 置:系统设定—通讯设定—moubus1
modbus2参数设 置:系统设定—通讯设定—moubus2(如果画面没有modbus2选项,请先把动作模式改成进阶模式:系统设定—装置其他—动作模式—进阶)


modbus1根据实际情况设置,modbus2选择modbus tcp+RTU选项。
3。接线
根据透明盖板接线提示,端子58接+,端子59接 – 。
4.调试:(本例子是通过串口调试软件操作):
其中串口设置和记录仪MODbus1要一致,

具体指令内容参考vm7000通讯协议,
例如:发送发送 01 04 00 64 00 06 31 D7 ,说明如下:
1: 01 是站号 Slave Address,也就是RS485的机台号码。
2: 04 是 Function Code ,功能是读取暂存器的值
3: 00 64 是 relative address ,就是暂存器的相对位置 ,00 64 就是Ch1 的暂存器位置
4: 00 06 是要读取的资料个数, 00 06 就是读6个,在这里就是读到Ch6
5: 31 D7 是Modbus的 CRC,算好之后位置要互换
回传值:
VM7000回传的值如下(以Hex表示)
01 04 0C 00 BB 13 88 13 88 13 88 13 88 13 88 33 98
1: 01 是站号 Slave Address,也就是RS485的机台号码。
2: 04 是 Function Code ,功能是读取暂存器的值
3: 0C 是 资料Bytes 数,不是全部的Bytes数。这里是取6个Ch的值,一个Ch 2 Bytes ,所以资料数量就是12 Bytes ,16进位表示就是 0C
4: 00 BB第一通道温度,转成十进制187,小数点有一位,所以得到值要除以10,得到18.7度
如果测量数值的小数点有2位,要除以100。
如果数值为负值,例如: FF 38 是负的温度 -19.9度。计算如下: 如果温度值是 Fxxx 那就是负数, FF 38换算成十进制就是 65336,减去 65535 再除以10 (因为K型是小数点以下一位),就是温度 -19.9