DP200J01 MODBUS应用流程示例.docx
《DP200J01 MODBUS应用流程示例.docx》由会员分享,可在线阅读,更多相关《DP200J01 MODBUS应用流程示例.docx(9页珍藏版)》请在冰豆网上搜索。
DP200J01MODBUS应用流程示例
MODBUS转PROFIBUSDP模块应用流程
一概述
本模块用于PROFIBUS现场总线与MODBUS设备之间交换数据,采用PROFIBUS专用芯片,支持所有PROFIBUS-DP现场总线系统。
可以实现MODBUS数据与PROFIBUS总线数据之间相互交换。
与之前模块不同的是,此设备可实现MODBUS与PROFIBUS之间的相互转换,并不只局限于PROFIBUS转MODBUS。
1信息传输简介
本模块与设备之间的通讯使用主从技术,在PROFIBUS一侧只能做从站,MODBUS一侧既能做主站,也能做从站,用户可自选。
主机能起动数据传输,称查询。
而其它设备(从机)应返回对查询作出的响应,或处理查询所要求的动作。
如下图所示:
此模块可连接十个从站,分配十个从站地址,各个设备之间采用轮循方式处理,也就是说先读一号站点的地址,处理一号站点的请求,处理完毕后在处理下一站点,依此轮循进行通讯。
二应用举例
1外部接线:
PROFIBUS-DP线用9针插头连接PLC与此模块的PB端口,9针SUB-D头座的针脚定义Pin3为B(P,+)、Pin8为A(N,-)。
9针MB端口经MODBUS数据线连接9针串口RS485转RS232转换器,最后转换器RS232端接入电脑串口。
9针串口针脚定义如下图所示:
如果用户自制插头请遵循针脚定义Pin3为P(+)、Pin8为N(-)。
PLC与模块的24V都是由外部供电给予24V电压,接线参考Modbus-DP-J说明书。
此为J01的外部接线方式。
2内部软件应用举例:
组态和网关的地址设置请参照说明书一步步建立,此例中,网关地址设为5,即把网关的“×10”拨到0,“×1”拨到5。
组态完成后,通过选择参数赋值,设置网关设备的从站地址、寄存器类型、ProfibusI/O的选择、Profibus读写数据在寄存器里的长度、Profibus读写数据在寄存器里起始地址的低字节和高字节、波特率,奇偶校验、数据类型、通讯类型等参数选择。
网关设备的从站地址对于每个网关设备最多可以设置十个从站。
当Modbus设备即接收,又发送数据的时候,该设备将会占用两个从站地址。
此例中,我们把网关侧从站地址都设为01,说明只连接了一台仪表。
如图所示:
寄存器类型分为四种,0000Xcoil输出位状态寄存器、1000Xinputstatus输入位状态寄存器、3000Xinputreg输入数值寄存器、4000Xholdreg输出数值寄存器。
此例中寄存器选择都选为0000xcoil,如图所示:
ProfibusI/O的选择分为两种Iwxinput输入和QWxoutput输出种。
此例中ProfibusI/O的选择都为Iwxinput,如图所示:
Profibus读写数据在寄存器里的长度最低是1字节。
如果是位信号没有一字节的数据信号,也要选择最低数据长度1字节。
此例中Profibus读写数据在寄存器里的长度都设为1bit,如图所示:
Profibus读写数据在寄存器里起始地址的低字节和高字节,该低字节和高字节所组成的地址为该交换数据用到的寄存器的初始地址。
此例中Profibus读写数据在寄存器里起始地址的低字节和高字节分别按下图进行设置:
选择功能时,当选择的是0000Xcoil输出位状态寄存器或1000Xinputstatus输入位状态寄存器则该初始地址按位计算.。
当选择的是3000Xinputreg输入数值寄存器或4000Xholdreg输出数值寄存器时初始地址按字计算。
通信波特率,可设定为2400Bps、4800Bps、9600Bps、19200Bps、38400Bps、57600Bps、115200Bps。
缺省为:
9600bps,校验方式分为奇校验、偶校验和无校验设置。
数据结构为8位或7位。
通讯形式分为RTUMASTER模式和ASICIIMASTER,其中RTU模式数据位为8位,ASICII模式为7位数据位。
本例中波特率、校验方式、数据结构、MODBUS通讯形式的设置按下图所示:
若Modbus做从站,则上图中Modbud通讯类型应该选择MODBUSRTUslave.
参数设置完成后,按图中的编译并下载
。
然后按下图在块文件中建立一个变量表,建立方法为:
右击块文件,弹出插入新对象,选择变量表。
图中TST既为变量表。
然后打开变量表,显示格式为十六进制,如下图所示,
3仿真软件介绍
为什么要在这里用仿真软件呢,其实在这里,仿真软件就好比是一个现场仪表,它内部定义了报文结构,我们用它来模拟主站通过网关与现场仪表进行的数据交换。
这对大家理解本产品有很好的帮助。
运行ModSim32软件
,点击文件—→新建,设置DeviceId为1(因为我们开始只用了一个设备,前述以把设备地址设为01,因此此处设为1),Address为00001,MODBUSPointType为01,当然这里的参数可以根据自己的需要来设定,但须和变量表中的参数对应,简便之余按以上设定。
结果如下图所示:
参数设定完后,点击Connection→Connect→Port1(本例使用的是端口1,若用户使用的端口为2,则应该连接Port2),弹出一对话框,设定波特率,数据位,停止位,校验方式等,点击OK确定,如下图
所示,此设置需与组态的J01从站属性设置一样。
在新建的报文表中,我们将00001,00002,00005,00006,00007,00008,00010对应的数值设为一,看设备能不能正确读取,如下图所示:
打开我们新建的变量表,按下监视变量
,监视PLC读取的数值如下图所示:
显然,这就是我们需要的结果
下面再举个读PLC输出的例子,就是把上面的ProfibusI/O的选择都设为Qwxoutput,其他参数设置都不变,编译并下载,打开变量表与仿真报文表,这次,我们在变量表中强制QB0、QB1、QB5为1,如图所示:
在让我们来看看报文会有什么变化,如下图所示:
正如我们期望的一样,数据写入报文。
这两个例子为01:
COILSTATUS的例子,如01,02这两种Profibus读写数据在寄存器里的长度是以字节为单位。
若要用到03和04,则Profibus读写数据在寄存器里的长度要以字为单位,各种功能的输入输出也要注意,否则会通讯错误。
此例中Modsim32相当于现场仪表或传感器,软件里新建的数据区相当于仪表或传感器的报文,这样来模拟信息的读取与交换,方便大家理解。
此手册仅作为用户理解使用,现场连接与详细使用方法请参考J01详细说明书。