PROFINET转MODBUS/TCP应用指导
1.概述
Anybus® Modbus-TCP_ProfiNet Gateway能实现一个ProfiNet主站同一个或多个Modbus-TCP从站设备之间通讯连接的网关。
本产品型号:AB9007-B
图1-1 Modbus-TCP_ProfiNetGateway
1.1 AB9007-B功能特点
① 支持10/100Mbit/s的以太网连接;
② 支持SD卡功能;
③ 实时传输(RT);
④ 透明串行通讯;
⑤ Anybus IP config工具简单配置IP地址;
⑥ 通过web browser对网关进行配置;
硬件介绍
电源部分:9-24VAC/DC
通讯接口:2个RJ45 PROFINET以太网口;
2个RJ45 Modbus-TCP以太网口;
1个USB接口;
1个SD卡插槽;
软件介绍
Anybus IP config (Netbiter config);
Web Function;
1.2系统构成
Anybus®Modbus-TCP_ProfiNetGateway网关在ProfiNet侧网络中作为一个ProfiNet从站,接收来自ProfiNet主站的数据帧并进行转换发送至Modbus-TCP侧网络;在Modbus-TCP侧网络中作为一个Modbus-TCP主站,接收来自Modbus-TCP从站的数据帧并进行转换发送至ProfiNet侧网络,实现两种协议下的数据交换。各项设备间的连接简图如下,在使用Anybus®Modbus-TCP_ProfiNetGateway网关前,请确保设备间正确连接。
图1-2电气拓扑图
AB9007-A的Modbus-TCPX2.1网口与PC网口连接;Modbus-TCPX2.2网口与控制器的以太网口EtherNet1连接;ProfiNetX1.1与西门子PLC的ProfiNet网口连接。
2.基本配置
2.1 Anybus Modbus-TCP_ProfiNetGateway配置
软件:Anybus IP config (Netbiter config);
物理接线:网线连接OK。电脑和AB9007-B的Modbus-TCP网口都接入到同一以太网交换机上,或者将电脑与AB9007-B用网线直接相连(注意电脑网口必须配置有效的IP地址)。通过Anybus IPConfig 软件扫描AB9007-B的IP地址。
①安装配置软件
②修改PC端IP地址
AB9007-B默认的IP地址为192.168.1.0,PC端IP地址不同网段即可;
③修改网关的IP地址
右键点击Configuration可以设置网关的IP,本次将网关IP设置为192.168.1.52;
图2-1
图2-2
④网关基本配置
右键点击Open Web-Interface进入网页浏览器(最好是标准IE浏览器),会弹出下图所示的Home选项界面,该界面用于显示网关的基本属性和运行状态。
图2-3
Authentication界面用于设置登陆的用户名和密码,默认为Disabled,(默认即可), 当Authentication 选项被Enabled时,可以创建新的用户名和密码。配置在X-gateway Management界面中被应用后,下次登陆时需输入设定的用户名和密码才能进入配置界面。
Modbus Client界面用于配置TCP主站,设置网关IP即可。
Modbus Servers界面用于配置TCP从站(重要)。点击Add new server添加从站,点击Edit对从站进行配置,可以设定从站Name,Server address为192.168.1.51(机器人EtherNet1的IP地址设置如下图)。其他选项保持默认,点击OK。
图2-4 机器人IP设置
图2-5
在已经添加的从站上点击Transactions添加主站向从站发送的交换。在弹出的窗口中点击Edit对交换进行配置。
图2-6
⑤ 读TCP从站寄存器数据
配置交换New_Trans1 ,用于读取TCP从站12个寄存器数据(机器人当前坐标位置)。名称修改为R_CurrentCoordinates,设定Function Code 为4-Read Input Registers,Starting register为2053(机器人当前位置坐标的Modbus起始地址+1),Elements为12 ,其他选项保持默认,点击OK。
图2-7
⑥ 向TCP从站寄存器写数据
配置交换New_Trans2 ,用于向TCP从站写14个寄存器数据(机器人关节坐标位置)。名称修改为Pos,设定Function Code 为16-Write Multiple Registers,Starting register为34832(写机器人关节点位信息的起始地址+1),Elements为14,Startup-mode为Directly,其他选项保持默认,点击OK。
图2-8
其他线圈读写也是相同的配置,本次测试用到的机器人启动,急停,复位,工位程序等配置好后如下图:
图2-9
配置完毕后点击X-gateway Mannagement进入下面的界面后点击Apply,网关和配置界面重启后,新的配置生效。
图2-10
Mapping Overview 界面用于显示网关两侧网络之间I/O映射关系和两侧网络的基本配置信息。(PLC端需要按照下面的顺序进行配置)
2.2 西门子S7-1200 PLC配置
本次测试的西门子PLC编程软件为TIA PortalV13,双击进入后
(如果电脑为Windows10系统,需要右击以管理员身份运行)。
① 新建一个工程
新建一个工程取名为 PN_test2,在弹出的新界面中点击“组态设备”,选中“添加新设备”,在右侧窗口选择对应型号的 PLC 点击“添加”,过程如下图。
图2-12
图2-13
图2-14
② 添加GSD文件
在组态界面的菜单栏里选择“选项——管理通用站描述文件”,选择 GSD 文件所在的路径,选中 GSD 文件,点击安装。
图2-15
③ 新建PN网络
在网络视图中选中 PLC,选中PROFINET 接口点击右键,在属性中选择“添加 IO 系统”,创建一条 PROFINET 网络,如图2-16 、2-17。
图2-16
图2-17
④ 添加Anybus X-gateway Modbus-TCP(PDev)
在硬件目录中找到“其他现场设备--PROFINET IO--Gateway-- DS co.ltd.--Anybus X-gatewayModbus-TCP(PDev)”,双击即可网关即可添加到网络视图中,如图 4-18。点击模块上的“未分配”,选中 PN 网络,即可把Anybus X-gateway Modbus-TCP(PDev)模块添加到 PN 网络中,如图 4-19。
图2-18
图2-19
⑤ 设备名称修改与分配
在设备视图中左键选中模块图标--属性--常规--PROFINET 接口--PROFINET 取消自动生成PROFINET 设备名称,用户可自定义设备名称。修改完设备名称后需要将修改的设备名称分配到网关中,鼠标左键选中模块图标,在菜单中选择在线下拉菜单-选择分配设备名称。选择正确后点击更新列表按钮。
图2-20
⑥ 存储区对应关系
Anybus X-gateway Modbus-TCP有 62 个槽(逻辑上,非物理设备);0#槽和1#槽已占用,剩下 60 个槽提供用户使用,建立一个PROFINET输入/输出与MODBUS存储区对应关系表。每个槽是关系表的一项;所以该关系表最多有 60 项。硬件目录下的每一个模块可以作为关系表中的一项, 双击可插入在某一个槽中。
图2-21
图2-22
本MODBUS模块建立了线圈读写
读线圈(R_Fun):PROFINET地址100-101与MODBUS 寄存器地址0-15的对应关系,即:PROFINET的%I100.0-%I100.15可以读到Anybus X-gateway Modbus-TCP中 MODBUS 线圈0-15中的输入数据。
写线圈(W_Fun):PROFINET地址100-101与MODBUS 寄存器地址4096-4111的对应关系,即:PROFINET的%Q100.0-%Q100.15可以向Anybus X-gateway Modbus-TCP中 MODBUS线圈bit0-bit15中的写入数据。
读寄存器(R_CurrentPos):PROFINET地址102-125与MODBUS寄存器地址2052-2063的对应关系,即:PROFINET的%ID102-%ID124可以读到Anybus X-gateway Modbus-TCP中 MODBUS寄存器MW2052-MW2063中的输入数据。
写寄存器(W_Pos):PROFINET地址104-131与MODBUS寄存器地址34831-34843的对应关系,即:PROFINET的%ID102-%ID126可以向Anybus X-gateway Modbus-TCP中 MODBUS寄存器MW34831-MW34843中的写入数据。
图2-23
其他输出数据与输入数据同理,其读写原理结构如下图所示。
图2-24
3.通讯测试
3.1PROFINET总线向Modbus TCP发送数据测试
Anybus X-gateway Modbus-TCP和S7-1200都配置完成后,需要对PLC进行编译下载,然后进行转到在线,即可对Modbus TCP从站进行监控和写数值。
图3-1
在西门子S7-1200的PLC中可以添加表量表,对需要使用的变量进行定义;在监控和强制表中可以对读取的线圈以及寄存器进行监控,以及对写入的线圈和寄存器进行强制写入数值等,如下图所示;
图3-2
在TIA Portal V13中创建监控表,并在线监测,修改变量表中的QB区数据,并发送给机器人,可以看到QB区的数据对应机器人的使能、急停、清除报警、工位程序、程序启动等功能均可正常运行。修改变量表中的QD区数据,并发送给机器人,可以看到QD区的数据对应机器人的读取机器人当前位置和以及让机器人从某一点走到给定的点位,均正常运行,说明PROFINET主站把数据成功发送到MODBUS客户端,测试结果如图3-3所示。
现场测流程为:在S7-1200PLC的监控和强制表通过PROFINET总线进行通讯测试,首先进行对“工位程序1(MW4134)”和“把修改位置(MW34832等)写入当前P变量”置TRUE,然后对地址为MW34831-MW34843寄存器写入P[0]点的坐标值(-60,50,-742,-78,0,0),最后对 “程序启动运行”置TRUE,机器人即可从某一点走到P[0]点位置。
注:机器人的IN[0]~IN[15]只能读取不能通过PROFINET总线进行写入,只能通过硬件接线进行写入,但是OUT[0]-OUT[15]既可以通过PROFINET总线进行读,也可以写入,因此可以通过IN和OUT口短接从而通过PROFINET总线进行读写操作。
3.2 ModbusTCP向PROFINET总线发送数据测试
先在Anybus X-gateway Modbus-TCP和S7-1200都配置机器人的16个输入输出,即IN[0]~IN[15]和OUT[0]~OUT[15],其对应的地址分别为64~79和128~143,然后在机器人端对IO进行强制置ON或者OFF,在PLC端进行监视IO状态。
本次测试对IN[3]和IN[4]进行强制置ON,对OUT[3]、OUT[4]和OUT[5]进行强制ON,其他均置OFF,在PLC端监视的结果如下图所示,结果表明Modbus TCP能正常的向PROFINET总线发送的数据。
图3-5 机器人(MODBUS TCP端)发送的数据
图3-5 PLC(PROFINET端)接收的数据