EtherCAT转ModbusTCP网关

news2024/9/24 10:54:29

一、功能概述

1.1设备简介

本产品是EtherCAT和Modbus TCP网关,使用数据映射方式工作。

本产品在EtherCAT侧作为EtherCAT从站,接TwinCAT、CodeSYS、PLC等;在ModbusTCP侧做为ModbusTCP主站(Client)或从站(Server),接ModbusTCP从站如变频器、流量计、温度采集模块等,或者接ModbusTCP主站如PLC、上位机等。

使用场景1:EtherCAT主站读写Modbus TCP从站:

使用场景2:EtherCAT主站和ModbusTCP主站交换数据:

EtherCAT支持最多64个TPDO和最多64个RPDO,每个PDO映射16个字节,故输入输出最多各1024字节。

1.2 硬件参数

硬件参数

参数说明

电源

9-36V(典型值12V/70mA),支持双电源冗余供电,带过压、过流保护

工作温度

-30~75℃

工作湿度

5%~95%无冷凝

EtherCAT口

2个RJ45以太网接口,支持100BASE-TX/RX,MDI/MDIX自检测,用来组成链式网络。

EtherCAT的两个网口严格区分输入输出,不是交换机!!!接线时必须输入接上一个的输出,第一个ECAT从站的输入接主站。

TCP口

1个RJ45以太网接口,支持100BASE-TX/RX,MDI/MDIX自检测,默认IP是192.168.1.37。

1.3 软件参数

软件参数

参数说明

EtherCAT

采用EtherCAT从站芯片AX58100。

工作在FreeRUN模式。

支持COE。

支持最多64个TPDO和64个RPDO,每个PDO映射16个字节。

TCP

做为ModbusTCP主机最多可连接7个ModbusTCP从机;作为Modbus从机支持7个ModbusTCP主机连接。

最大映射数据量

输入1024字节;输出1024字节

工作参数配置

EtherCAT端通过本公司提供的ESI文件配置PDO。

TCP端通过网页和配置软件配置。

硬件说明

2.1 电源接口

本网关电源接口如下图所示,支持压线端子接法和圆头电源接法,支持双电源冗余供电,支持9-36V输入:

接口符号

参数说明

圆头V1

接圆头电源7-36V(和端子V1不能同时接)

端子V1/V2

接直流9-36V正

G

接直流9-36V负

PE

接大地

2.2 指示灯定义

本网关六个指示灯如下图所示:

指示灯

指示灯说明

PWR

电源指示灯,常亮说明电源正常

SY1

Ethercat系统灯,常亮说明Ethercat系统正常启动

OP

常亮说明与Ethercat主站组态成功

TR

闪烁说明Ethercat端与TCP端通讯正常

SY2

TCP系统灯,常亮说明TCP系统正常启动

LNK

本网关做ModbusTCP主机时与至少一个ModbusTCP从机设备连接成功时常亮

本网关做ModbusTCP从机时有至少一个ModbusTCP主机设备连接成功时常亮

2.3 恢复出厂设置按键

当配置错误导致网关工作异常可以按住之后给网关重上电,网关会清除当前所有配置。用户应该等到SYS以5hz频率闪烁再松开按键,网关自动重启恢复正常。

2.4 配置口

配置口用来连接电脑,配置网关。配置口如下:

2.5 EtherCAT口

EtherCAT口如下:

EtherCAT口

接口说明

PORT1

EtherCAT输入口

PORT2

EtherCAT输出口

EtherCAT的两个网口严格区分输入输出,不是交换机!!!接线时必须输入接上一个的输出,第一个ECAT从站的输入接主站。

2.6 TCP接口

TCP口如下:

软件说明

3.1 网页参数

网关TCP侧需要使用网页配置LAN口IP等参数。

①电脑跟网关LAN口直连,电脑IP改为LAN口IP(默认是192.168.1.37)同网段的静态IP,例如LAN口IP为192.168.1.37,电脑IP可以改为192.168.1.210。

②在浏览器地址栏输入网关LAN口IP,输入用户名和密码,默认都是admin,然后点击“登录/重置密码”:

工作方式:网关在TCP侧做ModbusTCP主机时选择Modbus TCP_Client,做从机时选择Modbus TCP_Server。

模块地址:网关LAN口IP。

Mac地址:最好别修改,就算修改也不能跟同一网络内其它网络设备的Mac一致。

服务器1-服务器7及其从机地址:网关在TCP侧做ModbusTCP主机时需要填写,服务器1-服务器7为ModbusTCP从机的IP和端口。从机地址要跟ModbusTCP从机设备的实际站号一致。

接收超时时间:网关在TCP侧做ModbusTCP从机时填写,不为0时,如果接收超时时间内没收到ModbusTCP主机设备的数据,网关会主动断开与ModbusTCP主机之间的TCP连接,为0则不会主动断开TCP连接。

Client全断开清零写入:网关在TCP侧做ModbusTCP从机时填写,如果勾选,则没有ModbusTCP主机设备连接时将EtherCAT主站的输入数据清零,不勾选则不会主动将EtherCAT主站的输入数据清零。

③修改完网页参数后点击“设置并重启模块”按钮,配置的参数立即生效。

3.2 配置软件参数

配置软件页面如下图所示:

3.2.3 ModbusTCP主机参数部分

主从模式选择主机模式时,网关在TCP侧做ModbusTCP主站。

该模式下可以设置是否启用指令状态监控,当使能监控时会为每条Modbus指令在Input留一个bit的状态位,该位为0表示这条指令从站应答正常,该位为1表示这条指令从站应答有问题(超时或错误)。

通道配置为Modbus主机需要设置轮询空闲、应答超时、写次数、指令条数以及Modbus指令。

Modbus主机参数

参数说明

轮询空闲

1-60000ms,当完成一条Modbus指令之后延迟多长时间开始下一条指令。

应答超时

1-60000ms,当发送完Modbus指令之后等待从站应答最大超时时间。

写次数

0-255,0:每个轮询周期都发送写指令;1-255:当要写的内容发生变化时才写,直到写指令应答成功或达到写次数。

指令条数

本Modbus通道配置的指令数量

Modbus指令

标准Modbus指令,需要设置从机地址、功能码、寄存器地址、寄存器长度

指令状态位置

使能主站模式下指令状态监控时有效。每条Modbus指令都有一个对应的状态,占一个bit,指示该指令应答的状态,为0代表这条指令应答正常,为1代表这条指令应答有异常。

指令数据位置

每条Modbus指令对应的数据都会对应到EtherCAT的PDO映射到对象上。读指令对应到Input也就是TPDO,写指令对应到Output也就是RPDO。

该模式下需在网页界面配置工作模式为Modbus TCP_Client。

3.2.4 ModbusTCP从机参数部分

做为ModbusTCP从站只需要设置从机地址即可。

该模式下需在网页界面配置工作模式为Modbus TCP_Server。

3.2.5 计算数据映射

当配置完所有通道之后点击“计算数据映射”,可以看到主站下指令对应的数据映射到地址。

3.3 配置软件使用说明

首先在本公司网站下载该配置软件。

配置软件用来配置本网关TCP部分,流程如下:

①打开软件。

②设置通道的工作模式,工作在ModbusTCP主机或从机模式。

③工作在主机模式,设置主机时相关参数,工作在从机模式设置从机相关参数。

如果配置内容很多建议在软件上填好参数后点击一下保存配置,这样再次开启软件可以通过读取配置来加载刚保存的参数

使用USB线连接电脑和网关,此时电脑会多出来一个串口,选择这个串口,打开串口、之后点击“配置网关”,弹出配置成功说明配置完成。

.4 数据映射

3.4.1 EtherCAT  PDO映射表

EtherCAT支持64个TPDO和64个RPDO,每个PDO映射16个字节,映射表如下:

TPDO映射表

TPDO映射表

TPDO

映射对象

0x1A00

0x6000,16个字节输入(对于ECAT主站)

0x1A01

0x6001,16个字节输入(对于ECAT主站)

。。。

。。。

0x1A3F

0x603F,16个字节输入(对于ECAT主站)

RPDO映射表

RPDO

映射对象

0x1600

0x7000,16个字节输出(对于ECAT主站)

0x1601

0x7001,16个字节输出(对于ECAT主站)

。。。

0x163F

0x703F,16个字节输出(对于ECAT主站)

3.4.1 ModbusTCP做主机时 

EtherCAT和ModbusTCP从机是通过数据映射的方式交换数据的。当用户在软件页面上填好参数后点击一下计算数据映射,这时软件会根据软件页面上的参数自动计算映射地址。数据映射分为两个部分:指令状态和指令数据部分

使能主站模式下指令状态监控,在配置页面添加了四条指令,数据映射如下:

指令状态

状态

第1条指令状态

Input[0.0] =0x6000第0个字节的bit0

第2条指令状态

Input[0.1]=0x6000第0个字节的bit1

第3条指令状态

Input[0.2]=0x6000第0个字节的bit2

第4条指令状态

Input[0.3]=0x6000第0个字节的bit3

第1条指令数据

Input[1.0-1.7] =0x6000第1个字节的bit0-bit7

第2条指令数据

Input[2-17] =0x6000第2-15字节和0x6001的0-1字节

第3条指令数据

Output[0.0-0.7] =0x7000第0个字节的bit0-bit7

第4条指令数据

Output[1-16] =0x7000第1-15字节和0x7001的0字节

能主站模式下指令状态监控,在配置页面添加了四条指令,数据映射如下:

指令状态

状态

第1条指令数据

Input[0.0-0.7] =0x6000第0个字节的bit0-bit7

第2条指令数据

Input[1-16] =0x6000第1-15字节和0x6001的0字节

第3条指令数据

Output[0.0-0.7] =0x7000第0个字节的bit0-bit7

第4条指令数据

Output[1-16] =0x7000第1-15字节和0x7001的0字节

3.4.2 ModbusTCP做从机时

该模式下支持1、2、3、4、5、6、15、16号功能码,1、2、3、4共用1个内存、5、6、15、16对应1个内存,内存地址都是从0开始的。

数据映射如下:

寄存器

状态

保持寄存器0-7、线圈0-127

0x6000,16个字节输入(对于ECAT主站)

保持寄存器8-15、线圈128-255

0x6001,16个字节输入(对于ECAT主站)

。。。

。。。

保持寄存器504-511、线圈8064-8191

0x603F,16个字节输入(对于ECAT主站)

输入寄存器0-7、离散输入0-127

0x7000,16个字节输出(对于ECAT主站)

输入寄存器8-15、离散输入128-255

0x7001,16个字节输出(对于ECAT主站)

。。。

。。。

输入寄存器504-511、离散输入8064-8191

0x703F,16个字节输出(对于ECAT主站)

保持寄存器就是4xxxx寄存器,使用6、16功能码写,03功能码读;输入寄存器就是3xxxx寄存器,使用04功能码读;线圈就是0xxxx,使用5、15功能码写,1功能码读;离散输入就是1xxxx,使用2功能码读。

电话18822766545

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1430397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【蓝桥杯冲冲冲】[NOIP2003 普及组] 数字游戏

蓝桥杯备赛 | 洛谷做题打卡day25 文章目录 蓝桥杯备赛 | 洛谷做题打卡day25[NOIP2003 普及组] 数字游戏题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路 题解代码我的一些话 [NOIP2003 普及组] 数字游戏 题目描述 丁丁最近沉迷于一个数字游戏之中。这个游戏看…

MySQL for update锁表还是锁行校验

select * from user where id 1 for update ; 1. for update作用 在MySQL中,使用for update子句可以对查询结果集进行行级锁定,以便在事务中对这些行进行更新或者防止其他事务对这些行进行修改。 当使用for update时,锁定行的方式取决于wh…

【初中生讲机器学习】4. 支持向量机算法怎么用?一个实例带你看懂!

创建时间:2024-02-02 最后编辑时间:2024-02-03 作者:Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏,很高兴遇见你~ 我是 Geeker_LStar,一名初三学生,热爱计算机和数学,我们一起加…

【八大排序】冒泡排序 | 快速排序 + 图文详解!!

📷 江池俊: 个人主页 🔥个人专栏: ✅数据结构冒险记 ✅C语言进阶之路 🌅 有航道的人,再渺小也不会迷途。 文章目录 交换排序一、冒泡排序1.1 算法步骤 动图演示1.2 冒泡排序的效率分析1.3 代码实现1.4 …

HSRP配置指南

实验大纲 第 1 部分:验证连通性 步骤 1:追踪从 PC-A 到 Web 服务器的路径 步骤 2:追踪从 PC-B 到 Web 服务器的路径 步骤 3:观察当 R3 不可用时,网络的行为 第 2 部分:配置 HSRP 主用和 备用路由器 步…

【Crypto | CTF】BUUCTF rsarsa1

天命:第二题RSA解密啦,这题比较正宗 先来看看RSA算法 这道题给出了 p,q,E,就是给了两个质数和公钥 有这三个东西,那就可以得出私钥了 最后把私钥和质数放进去解密即可得到解密后的明文 from gmpy2 impor…

公交最短距离-算法

题目 给定一个一维数组,其中每一个元素表示相邻公交站之间的距离,比如有四个公交站A,B,C,D,对应的距离数组为,1,2,3,4,如下图示 给定目标站X和Y,求他们之间最短的距离 解题 遍历一次整个数组,…

考研/计算机二级数据结构刷题之顺序表

目录 第一题 顺序表的初始化,销毁,头插,尾插,头删,尾删,指定位置插入,指定删除以及打印 第二题 移除元素 题目链接: OJ链接 题目详解:移除元素 第三题:删…

回溯法:回溯法通用模版汇总以及模版应用

从一个问题开始 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4] ] 很容易想到 用两个for循环就可以解决。 如果n为100,k为50呢,那就50层for循…

问题:测风站应设置在平直的巷道中,其前后()范围内不得有障碍物和拐弯等局部阻力。 #微信#媒体

问题:测风站应设置在平直的巷道中,其前后()范围内不得有障碍物和拐弯等局部阻力。 参考答案如图所示

U盘里的东西刚存进去就没了怎么回事?怎么办

U盘里的东西刚存进去就没了怎么办?U盘是我们平时常用的存储设备之一,但有时候会出现一些问题。其中之一就是将东西存进去后,发现数据竟然消失了。这是一个令人困扰的问题,可能会导致我们的重要文件丢失。在本文中,我们…

RT-Thread线程管理(使用篇)

layout: post title: “RT-Thread线程管理” date: 2024-1-26 15:39:08 0800 tags: RT-Thread 线程管理(使用篇) 之后会做源码分析 线程是任务的载体,是RTT中最基本的调度单位。 线程执行时的运行环境称为上下文,具体来说就是各个变量和数据&#xff0c…

利用OpenCV实现物流与生产线自动化的革命性突破

背景介绍: 在当今高度自动化的时代,物流和生产线上的每一个环节都关乎企业的核心竞争力。传统的生产方式往往依赖于人工检测和操作,这不仅效率低下,而且容易出错。为了解决这一问题,越来越多的企业开始寻求利用计算机视…

流畅的Python(七)-函数装饰器和闭包

一、核心要义 主要解释函数装饰器的工作原理,包括最简单的注册装饰器和较复杂的参数化装饰器。同时,因为装饰器的实现依赖于闭包,因此会首先介绍闭包存在的原因和工作原理。 二、代码示例 1、变量作用域规则 #!/usr/bin/env python # -*-…

记录一次使用ant design 中 ConfigProvider来修改样式导致样式改变的问题(Tabs嵌套Tabs)

一 说明 继之前的一篇文章:antd5 Tabs 标签头的文本颜色和背景颜色修改 后,发现在被修改后的Tab中继续嵌套Tabs组件,这个新的Tabs组件样式跟外层Tabs样式也是一致的,如下图所示: 二 原因 在修改外层tabs样式时&…

学习Spring的第十三天

非自定义bean注解开发 设置非自定义bean : 用bean去修饰一个方法 , 最后去返回 , spring就把返回的这个对象,放到Spring容器 一 :名字 : 如果bean配置了参数 , 名字就是参数名 , 如果没有 , 就是方法名字 二 : 如果方法产生对象时 , 需要注入数据 , 在方法参数设置即可 , …

iOS 包含行间距计算富文本size

在一次开发过程中,发现带有行间距的富文本计算高度,会有不准确的情况,富文本内容明明很长,但是计算出的高度只有不到20像素,导致整个cell的高度计算异常。 需求上是文字固定宽度,最多显示3行,超…

【Simulink系列】——动态系统仿真 之 简单系统

引入 不同的系统具有不同的输入与输出。一般来说,输入输出数目越多,系统越复杂。最简单的系统只要一个输入一个输出(SISO),且其任意时刻的输出只与当前时刻的输入有关。 一、简单系统定义 对于满足下列条件的系统&a…

android 网络拦截器统一处理请求参数和返回值加解密实现

前言 项目中遇到参数加密和返回结果加密的业务 这里写一下实现 一来加深记忆 二来为以后参考铺垫 需求 项目在开发中涉及到 登陆 发验证码 认证 等前期准备接口 这些接口需要单独处理 比如不加密 或者有其他的业务需求 剩下的是登陆成功以后的业务需求接口 针对入参和返回值…

【Android新版本兼容】onBackPressed()方法被弃用的解决方案

提示:此文章仅作为本人记录日常学习使用,若有存在错误或者不严谨得地方欢迎指正。 文章目录 一、使用 AndroidX API 实现预测性返回手势1.1 添加依赖1.2 启用返回手势1.3 注册OnBackPressedCallback()方法来处理返回手势 一、使用 AndroidX API 实现预测…