开疆智能ModbusTCP转Canopen网关连接三菱FX5u配置案例

发布于:2025-06-12 ⋅ 阅读:(39) ⋅ 点赞:(0)

本案例是三菱PLC通过Modbus转Canopen网关读写西克RFID读码器的配置案例,过程如下。

一、PLC本体的IP地址设置

首先需要确认一个概念:PLC本体网口只有一个IP,无论使用什么功能都是共用一个IP。

二、ModbusTCP主站功能

三菱的PLC做ModbusTCP主站功能一般通过程序实现,需要用到“通信协议支持功能”。

1)在对象设备连接配置设置中添加“Active连接设备”选择“通信协议”,需要填写本机的端口号,对方IP以及对方端口号(图4)。其中本机端口号需要注意不要使用系统默认已经分配的端口。(图5)

active设备是指主动发起连接的设备

【记得点击“反应设置并关闭”】

2)打开“通信协议支持功能”,选择CPU(以太网),并新建,添加协议,选择ModbsuTCP,选择功能码。(图6-图7)

3)红色字“变量未设置”意思为:没有对这个连接协议分配对应的软元件用来写参数和数据存储用。可以右键“软元件批量设置”,占用其实软元件后一部分用作通讯协议用。(图7)

4)分配好后可以点进去看分配的每个软元件对应的定义,现在以03功能码D400做起始地址,对主要用到的寄存器做说明,后面一些储存报错信息的寄存器可以点开变量设置查看。(图8)

D400:握手ID,如果是本体以太网口,握手ID就是0,模块就不是0

D401:从站站号

D402:03功能码对应就是读取的寄存器起始Modbus地址

D403:读取的点数(寄存器数)

D406~D531:储存读取到的数据(注意!,D406保存的是数据的个数(数据长度),D407开始才是数据内容)

5)编辑好后通过在线、写入模块,将这部分内容写入PLC

(这部分通信协议编辑,保存的时候是一个独立的文件,与Works3文件独立,需要注意关闭这个窗口前记得保存)

6)在程序中建立连接、调用通信协议。

①建立连接,使用SP.SOCOPEN指令,对应关闭连接使用SP.SOCCLOSE指令

SP.SOCOPEN的第一个操作数没有实际意义,按照说明填写“U0”即可;

S1:连接编号对应图4中的连接编号;

S2:对应OPEN指令的一些参数占用10个寄存器,其中如果我们在图4中做了参数设置,我们只需要把参数首地址置位0,就可以调用设置好的参数。

其中,SD10680,SD10681是通信打开和请求标志位,在这两个标志位都没有导通的情况下我们才执行建立连接的动作。

②通过SP.ECPRTCL指令调用预先设置好的通讯协议。

其中

S1 的连接编号是指图4中的连接编号

S2 连续执行的协议数是指中S3+2开始的“执行协议编号指定”,如果只有1个就写K1,并且给S3+2赋值需要执行的协议,对应的是图8中的协议编号。

下面是通信协议触发示例

SP.ECPRTCL的第三个操作数为k1,对D202赋值1,表示执行且只执行通信协议1。

D402赋值k10,D403赋值K4,表示从 从站保持寄存器的10地址开始读取,读取4个寄存器。

在触发后,我们可以在D407开始的4个寄存器看到读取到的值。

点击工具-通信协议支持功能

选择好模块类型

设置好连接变量后下载到PLC

完成后打开网关配置软件

1. 使用ModbusTCP转CANopen网关的配置软件修改CANopen主站参数:

首先新建项目,选择对应网关模块

2. 设置波特率:250 kbps(需与SICK RFID读写器一致)。

设置同步周期时间(如果出发类型不是同步周期可以不写)

3. 加载SICK RFID的EDS/文件:

导入SICK提供的设备描述文件(EDS),解析其对象字典(如RFID标签数据的对象地址)。

4. 配置PDO通信

定义TPDO1/RPDO1映射(例如:TPDO1发送RFID标签号,RPDO1接收读写指令)。

设置网关IP地址及掉线后数据处理方式,(注意:分为ModbusTCP和Canopen两部分)

确认无误后将配置下载进网关即可

5. SICK RFID读写器设置

硬件配置

设置节点ID(通过DIP开关或软件配置,需与网关配置一致)。

波特率设置为250 kbps。

对象字典配置

通过CANopen服务配置读写参数(如触发模式、数据格式)