在实际工作场合有许多RS-232串口设备,本身不带地址设置功能,或者不符合MODBUS协议的地址,但是却要接入MODBUS总线。本文介绍如何借助于MODBUS/串口转换器实现这个功能。MODBUS/4路串口转换器(型号:DIZ4232I)用于将MODBUS总线(RS-232或者RS-485)增加4个RS-232口,还可以同时接4个本产品最多增加到16个RS- 232口。
DIZ4232I的4个下位机RS-232口各带地址,由上位机按照MODBUS协议发送地址指令来分别选通。下位机RS-232串行口只有TXD、RXD、GND三个信号。DIZ4232I适用于将本来不带地址的RS-232串口设备接入MODBUS总线。
DIZ4232I的外型为DB-25(针)/DB-25(针)转接盒大小,两端完全一样。产品中间的侧面分别为RS-232口(DB-9孔)和 RS-485/5V电源(接线端子),如图。DIZ4232I需要外接5V电源。DIZ4232I的两头DB-25针端均配套有各带2个DB-9针座的板,共4个DB-9针座;4个DB-9针座为4个下位机RS-232口(0#,1#,2#,3#),在相应的位置带指示灯。使用之前通过发送地址指令(符合MODBUS协议)来分时选通四个下位机RS-232口,选通某个口后端子板上对应位置的灯会亮。选择下位机串口地址只需要加一句指令,刚加电时默认 0#口通,同时0#灯亮。选通后,支持通信速率0-115.2Kbps,自动适应。四个下位机RS-232口还可以外插波仕电子的RS-232/RS- 485转换器等。随产品配套有一个5V稳压电源。J0、J1跳线用来设置本设备地址,一般情况下将跳线J0、J1断开即可,超过4个口才需要设置跳线。
对于接DIZ4232I扩展器的各种串口外设,在通信之前,首先必须从上位机端的串口(RS-232/RS-485均可)向产品以9600bps速率发送MODBUS指令来选通某个下位机。
产品的两个跳线用于设置MODBUS地址:
J0断、J1断表示本产品的设备地址为A(十六进制,相当于十进制的10)
J0通、J1断表示本产品的设备地址为B(十六进制,相当于十进制的11)
J0断、J1通表示本产品的设备地址为C(十六进制,相当于十进制的12)
J0通、J1通表示本产品的设备地址为D(十六进制,相当于十进制的13)
用MODBUS调试精灵V1.024进行设置演示。以本图为例,这里“设备地址”为10(相当于16进制的A,即J0断、J1断),“寄存器地址” 永远填写0,“数值”为1代表选通1#口。按下“写入”,会发现设备地址为A的1#串口灯亮。即使关闭本软件,灯继续亮。除非重新上电或重新写入设置。选通地址之后,后面的通信软件可以适应各种波特率等格式。
也可以用串口调试助手软件scommassistant,在发送栏填写0A 06 00 00 00 01 49 71,再按“手动发送”可以实现一样的功能。
将多个无法设置地址的普通RS-232设备接入MODBUS总线。单独使用一个DIZ4232I时,MODBUS可以用RS-232或RS-485总线;一个以上必须选RS-485作为MODBUS总线。
每用一个DIZ4232I就可以将1~4个RS-232设备接入到MODBUS总线,通过对DIZ4232I进行不同的J0、J1跳线设置(4 种),这样在同一个RS-485总线中最多可以用4个DIZ4232I,总共16个RS-232口。这4个DIZ4232I的上位机侧的RS-485并联(所有A接一起、所有B接一起、所有GND接一起)后接入MODBUS 总线。这样上位机就可以通过RS-485总线发送本产品的选地址指令来选通某个 RS-232设备后进行通信,只要4个DIZ4232I的J0和J1跳线组合选择不同,则每次只选通一个RS-232设备进行通信就不会产生冲突。