通过串口与ModBus硬件设备通信
探头与变送器
前面的文章已经实现了ModBus客户端与服务端和他们之间的通信。但只是软件不够,毕竟传感器是硬件。
经过我的了解,一个完整的实现了Modbus协议的,并且通过RS485电缆与电脑交换ModBusRTU
报文的Modbus设备,一般由两个部分组成。
-
探头
探头就是将物理量转化为电信号的东西。比如一个测温电阻,温度变化时电阻会改变。这个电阻/电压
的变化情况可以测得。 -
变送器
变送器根据探头传过来的电信号,进行转换和存储,并且给响应电脑ModBusRTU
报文。所以变送器左边通过火线与零线
连接探头,右边通过RS485电缆
连接电脑。内部有一个微型处理器,负责处理探头电信号,查表或者通过曲线得到物理量的值,存储在自身的寄存器中,然后响应报文。
购买设备
RS485转USB转换器
由于我的电脑只有USB接口,没有RS485接口,所以我需要买一个转换器。该设备大概30元,右边是RS485接口,中间是一个芯片,左边是一个USB接口,可以直插电脑。比较令我意外的是,USB接口的访问也是通过串口进行的。
TH10S-B_RS485通讯型温湿度变送器
该设备40元,是一个探头、变送器一体化集成的设备。上面的金属片是温湿度探头,具体的物理原理我没有了解。紧连着金属片后边导线扁平部分就是变送器。服务端程序就在那里。
探头大概几块钱,但变送器贵一点。因为探头的物理特性不同,肯定要和特定型号的变送器适配,才能保证物理量与电信号量的值一一对应,要么就要变送器可以配置这种对应关系。一体化的设备减去了这种麻烦,只需要直接接到转换器上即可。
- 使用说明书
设备连接
其中绿色与黄色线是双工的485信号线,用来传输ModbusRTU数据包。
- 驱动安装
这个地址是店铺客服发送的。USB转485转换器需要安装驱动才能使用,插上后电脑设备管理器中增加了一个串口
驱动地址
- 测试软件
客户端软件地址
测试
把转换器插上电脑后,打开客户端软件,多了一个COM7
串口。
这个变送器和客户端里面还支持设置设备地址。比如我们买了好几个这个设备时,每个设备的初试地址都是默认的1
,因此当我们把这些设备接在一条485总线上时,就无法区分不同设备了。所以就需要我们到一个设备一个设备的连接电脑,设置不同的地址,之后再统一连到总线上,实现多个设备的访问。
我询问了我们部门的嵌入式工程师,他说公司做的还不能动态设置地址,采取的是重新编译程序再刷到设备上。
然后开始测试设备。点击连续读取后,我再用双手把传感器捂住,温度和湿度都上升很快很快。
没有读取在读取数据时,转换器上面的指示灯熄灭。每读取一次,闪烁一次。点击客户端软件的连续读取时,指示灯会连续闪烁。
监控主机
实际上还存在一种叫监控主机的东西,可以上面有一到两个网口、多个485串口,以此实现电脑远程通过光纤网络,经过监控主机,访问现场ModBus设备。在井工煤矿中这个设备大量使用。但是对于这个设备,我还缺乏了解。