1、微硬创新MODBUS转PROFIBUS网关PBMD-K20硬件连线如下:
(1) 如图1-0,顶部为电源接口(直流24V)、Modbus主从设置拨码(MS为Modbus做从站, MM为做Modbus主站)、Profibus地址设置拨码(采用的是8421码,如AD1-AD3拨到ON的 位置地址为7)。
(2) 底部为Modbus通讯接口,B(+),A(-),本产品内置终端电阻,需要接入终端的时候将TB和B短接,TA和A短接即可。
(3) 正面为Profibus通讯接口和指示灯。
图1-0:PBMD-K20接线示意图
2、MODBUS转PROFIBUS网关Step7的配置说明
(1) Modbus-RTU侧接口的配置
在Step7硬件配置界面,添加了微硬模块PBMDP-K20之后,双击图标,在出现如图1-1的窗口,选择Parameter Assignment。
图1-1:Modbus-RTU接口的设置
波特率和校验:必须设置的和您要连接的Modbus设备的一致,否则微硬模块和你要连接的设备无法通讯,下面设备的通讯接口的设置请参看他们手册的说明或者致电设备厂 家询问。
从站状态监测和数据更新模式:可以选择默认。
等待时间:推荐默认的500mS,他的意思是微硬模块发出一条Modbus报文之后等待下面设备回答的时间,如果超出500mS,不再等待直接发送下一条,如果在500mS内回来了, 紧接着等待一个空闲时间后发送下一条报文。
总线空闲时间:推荐默认的50mS,他的意思是指,接到下面设备回答的报文之后等待50mS再发送下一条报文。有些设备响应速度比较慢,如果50mS太快的话,建议将此时间调长。
(2) MODBUS转PROFIBUS网关Modbus报文的配置
下面举例说明,如阅读有困难请参看第三章Modbus-RTU简介。假如您要读取Modbus 站号为1的设备的3区的寄存器地址从0开始的连续三个寄存器的值(3区用户手册上可能 是300XX或者说支持04功能码(Modbus报文第二个字节))。您可以在右边产品列表里面 PBMD-K20下面选择“read 3 Words(3XXXX)”模块插入到Slot3里面,如图1-2。
双击你插入的模块,选择Parameter Assignment,从站站号即为你要访问的Mobus设备的站地址,此例为1;起始地址就是你要访问寄存器的起始地址,此例为0。那么三个寄存 器回来的数据就存放在这里分配的IB256-IB261着6个字节里面。
其他您要读写的数据都可根据此例来配置。
图1-2:Modbus-RTU报文的配置
(3) 启动微硬MODBUS转PROFIBUS网关模块开始工作。
以上工作完了,最后一点就是要启动微硬模块开始工作。将控制字最低为置1。本例控制字为QB0(在Slot2里面,具体地址是多少还要看您的配置),所以您需要在OB1模块里 面加上如图1-3的程序。
图1-3:启动设备
在这里,有需要更进一步了解我们产品使用的用户,可以看看下面通讯状态字和通讯控制字的说明。
MODBUS转PROFIBUS网关 通信状态字 Status
D7:奇偶校验
|
D6:CRC校验
|
D5:等待超时
|
D4~D1:异常应答
|
D0:接收/发送
|
0:没有错误
1:奇偶校验错
|
0:没有错误
1:CRC校验错
|
0:没有错误
1:等待超时
|
0:没有错误
1:Modbus访问异常
|
0:准备接收
1:准备发送
|
注意:正常情况下我们会看到状态字是0和1交替变化,其他位如果出现1,证明Modbus通讯有问题,下面讲解一下出现错误后解决方法:
D4~D1:异常应答如果不为0,说明你发出去的Modbus报文对于被访问设备来说是无效的, 有可能是地址超限,或者写给设备的值是非法的。解决此问题的方法就是一定要弄清楚你要访问的数据是什么,寄存器地址是多少?被设置的值有没有范围限制等。
D5:等待超时,可以将此手册图1-1中总线空闲时间调大。
D6:CRC校验错,可能用户编写的CRC高低自己反了,或者在没有完整收到一帧报文也会出现CRC错,这时候我们可以通过串口调试助手或者Modsim32之类监控一下报文。
D7:奇偶校验错,接口没有设置的一致!图1-1中的波特率和奇偶校验没有和设备的相一致。
需要提醒的是,往往一个错误有可能使得几个地方报错,这就需要现场调试人员判断 错误出现在那里,最简单的自助办法就是学会使用串口调试助手和Modsim32以及Modscan 等软件,一般情况下只要和这三个软件能通讯的上的话,肯定能和我们产品进行通讯。
MODBUS转PROFIBUS网关 通信控制字Control
D7
|
D6
|
D5
|
D4-D3
|
D2
|
D1
|
D0
|
强制复位
|
停止等待
|
清除错误
|
保留
|
写允许
|
读允许
|
启动工作
|
注意:这里不推荐用户使用其他功能,仅仅需要你将D0置1,启动PBMD-K20发送Modbus报文即可。