通过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