0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RT-Thread Ethernet/IP 协议技术实践|技术集结

RT-Thread官方账号 ? 2025-04-08 18:47 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Ethernet/IP(以太网工业协议)是一种基于标准以太网架构的工业通信协议,广泛应用于自动化和控制系统中。它结合了TCP/IP协议和CIP(通用工业协议)标准,提供高速、可靠的数据传输,支持各种工业设备之间的实时通信。由于Ethernet/IP兼容现有的以太网硬件和网络,企业能够在不需要专用硬件的情况下,实现工业设备间的互联互通,提升生产效率和系统可靠性。


OpENer 是用于 I/O 适配器设备的 EtherNet/IP 堆栈;支持多个 I/O 和显式连接;包括用于制作符合以太网/IP 规范中定义并由 ODVA 发布的 EtherNet/IP 兼容产品的对象和服务。


在本示例中将使用已经适配的OpENer软件包来实现Ethernet/IP通讯。

前期准备

软件环境:

CODESYS(Ethernet/IP通信模拟)

CODESYS

CODESYS Gateway(网关设备)

CODESYS Control Win SysTray(软PLC设备)

Npcap(该软件是运行CODESYS必须的,需要提前安装好!)

硬件环境:

EtherKit开发板

FSP配置

打开工程配置文件configuration.xml,新增r_gamc Stack:

e2f8cf4c-1466-11f0-9434-92fbcf53809c.png

点击g_ether0 Ethernet,配置中断回调函数为user_ether0_callback:

e321b9fc-1466-11f0-9434-92fbcf53809c.png

下面配置phy信息,选择g_ether_phy0,Common配置为User Own Target;修改PHY LSI地址为1(根据原理图查询具体地址);设置phy初始化回调函数为

ether_phy_targets_initialize_rtl8211_rgmii();同时设置MDIO为GMAC。

e32fb7dc-1466-11f0-9434-92fbcf53809c.png

配置g_ether_selector0,选择以太网模式为交换机模式,PHY link设置为默认active-low,PHY接口模式设置为RGMII。

e35ef0a6-1466-11f0-9434-92fbcf53809c.png

网卡引脚参数配置,选择操作模式为RGMII:

e3850872-1466-11f0-9434-92fbcf53809c.png

ETHER_GMAC配置:

e38fe9fe-1466-11f0-9434-92fbcf53809c.png

RT-Thread Settings 配置

双击打开 RT-Thread Settings,在搜索栏检索OpENer软件包并使能,下面是相关用户配置信息说明;

e3b2316c-1466-11f0-9434-92fbcf53809c.png

下面我们还需要配置禁用dhcp功能并使用静态IP,点击组件->使能lwip堆栈,选择禁用DHCP;

e3bf4744-1466-11f0-9434-92fbcf53809c.png

完成上述配置后,将程序编译下载至开发板。

网络配置

我们使用一根网线连接开发板与PC,同时在PC端配置静态IP:

e3dd27a0-1466-11f0-9434-92fbcf53809c.png

软PLC启动

CODESYS简介:CODESYS是德国3S公司开发的PLC软件,集成了PLC逻辑、运动控制、组态显示等功能。CODESYS,全称为“Controller Development System”,是一种基于 IEC 61131-3 标准的工业自动化编程工具。它不仅支持多种编程语言(如梯形图、结构化文本、功能块图等),还提供了丰富的库和功能模块,帮助工程师快速开发和调试 PLC(可编程逻辑控制器)和工业控制系统。CODESYS 的灵活性和强大功能使其成为工业自动化领域广泛使用的开发平台。

CODESYS创建标准工程

请确保已安装CODESYS软件,安装之后下面这三个是我们需要用到的软件:

e3e74ff0-1466-11f0-9434-92fbcf53809c.png

CODESYS V3.5 SP20 Patch 3:Ethernet/IP通信模拟

CODESYS Gateway V3:网关设备

CODESYS Control Win V3 -x64 SysTray:软PLC设备

首先打开 CODESYS V3.5 SP20 Patch 3,依次选择 -> 新建工程 -> Projects -> Standard project ,配置工程名称及位置后点击确定:

e4047d0a-1466-11f0-9434-92fbcf53809c.png

弹出下面这个弹窗后保持默认配置(CODESYS Control Win V3 (CODESYS) / x64 (CODESYS))点击确定:

e413493e-1466-11f0-9434-92fbcf53809c.png

注意:如果您购买了CODESYS Control RTE SL,可选择设备:CODESYS Control RTE V3 (CODESYS) / x64 (CODESYS),正常评估用途可选择不安装此扩展包,选择 CODESYS Control Win V3 (CODESYS) / x64 (CODESYS) 设备创建即可。

创建成功后就可以看到主界面了:

e43d1476-1466-11f0-9434-92fbcf53809c.png

Gateway 及 软PLC 启动

依次打开下面两个软件:

CODESYS Gateway V3(右键 Start Gateway)

CODESYS Control Win V3 -x64 SysTray(右键 Start PLC)

e44864ca-1466-11f0-9434-92fbcf53809c.png

回到 CODESYS 主站软件,双击 Device(CODESYS Control Win V3 x64) -> 通信设置 -> 扫描网络:

e462e34a-1466-11f0-9434-92fbcf53809c.png

弹出设备用户登录窗口后,配置用户名和密码(用户自定义):

e4708932-1466-11f0-9434-92fbcf53809c.png

检查网关设备及软PLC设备是否在线:

e498d338-1466-11f0-9434-92fbcf53809c.png

Ethernet/IP EDS文件添加

它包含了有关设备的详细信息,包括设备类型、支持的服务、输入输出的定义、参数设置、设备的状态和配置选项等。


本项目的EDS文件位于如下路径:

..\packages\OpENer_port-latest\eds_file

选择设备存储库安装描述文件,选择上述路径下的 opener_sample_app.eds 文件。

e4a41540-1466-11f0-9434-92fbcf53809c.png

安装成功后可以看到 OpENer PC 从站描述文件:

e4c98424-1466-11f0-9434-92fbcf53809c.png

设备添加

Ethernet添加:左侧导航栏点击Device并右键添加设备,选择以太网适配器;

e4d51fd2-1466-11f0-9434-92fbcf53809c.png

EtherNet/IP扫描器添加:右键左侧导航栏中的Ethernet,选择EtherNet/IP Scanner

e4f657a6-1466-11f0-9434-92fbcf53809c.png

EtherNet/IP总线设备添加:右键左侧导航栏中的 EtherNet/IP Scanner,选择 OpENer PC

e501058e-1466-11f0-9434-92fbcf53809c.png

任务响应

保持默认配置即可。

网络配置

Ethernet 配置:双击左侧导航栏中的Ethernet(Ethernet) -> 通用,修改网络接口为连接到开发板的以太网端口

e5230af8-1466-11f0-9434-92fbcf53809c.png

EtherNet/IP总线设备网络配置:双击左侧导航栏 OpENer_PC(OpENer PC) -> 通用->地址设置, 修改IP参数为开发板IP。

e52d8320-1466-11f0-9434-92fbcf53809c.png

EtherNet/IP线程应用启动

开发板端上电后,一旦检测到网卡 link up,则会自动启动 OpENer线程:

e55659c6-1466-11f0-9434-92fbcf53809c.png

工程编译并启动调试

step1:工程上方导航栏选择 编译-> 生成代码

step2:选择 在线 -> 登录

step3:点击 调试 -> 启动

此时就可以看到 EtherNet/IP Scanner已经正常运行了:

e564ed24-1466-11f0-9434-92fbcf53809c.png

PLC编程及CIP IO控制

首先我们点击左侧面板的Device->PLC逻辑->Application->PLC_PRG(PRG),使用ST语言编程,编写变量及程序代码

变量定义:下面这段变量中包含两个关键变量:Board_SW_Input(按Bit位标识控制器板载按键阵列)和Board_LED_Output(按Bit位标识控制器板载LED)。

e5866170-1466-11f0-9434-92fbcf53809c.png

程序定义:这段代码的功能是:根据Board_SW_Input的每一位的状态,设置Board_LED_Output的相应位。具体来说:

如果Board_SW_Input的某一位为1,则对应的Board_LED_Output的该位为1。

如果Board_SW_Input的某一位为0,则对应的Board_LED_Output的该位为0。

通过循环遍历所有8个位,实现了将输入的每一位状态映射到输出的每一位。

e59076c4-1466-11f0-9434-92fbcf53809c.png

工程中的配置位置如下图所示:

e5ac4048-1466-11f0-9434-92fbcf53809c.png

由于加载eds文件后默认只会显示一个连接配置(Board LED Exclusive Owner),我们还需要将eds内置的另外一个配置加载出来,点击左侧菜单栏选择OpENer_PC(OpENer PC)->连接,点击添加连接…,并选择Board SW Input Only。

e5b9e2a2-1466-11f0-9434-92fbcf53809c.png

接下来点击Ethernet/IPI/O映射,这里我们需要把前面定义的ST变量映射到此处的变量中,将Board_LED_Output映射到通道:Board LED Output Data;Board_SW_Input映射到通道:Board SE Input Data。

e5e04e7e-1466-11f0-9434-92fbcf53809c.png

接着我们点击上方导航栏的编译->生成代码,然后选择在线->登录,此时便可动态观察程序运行状态,例如我们按住etherkit开发板上的KEY1,可以发现板载LED0(红灯)处于灭灯状态,当我们松开KEY1,LED0保持常亮;按住开发板的KEY2,板载LED2(绿灯)处于灭灯状态,松开KEY2,LED2保持常亮。

同时在OpENer_PC(OpENer PC)->EtherNet/IPI/O映射也可以观察Bit位的当前值,当对应按键的Bit位为TRUE时,即代表按键按下,同时对应的Bit位LED亮起,并显示当前值为TRUE:

e5ef195e-1466-11f0-9434-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Ethernet IP
    +关注

    关注

    0

    文章

    43

    浏览量

    5632
  • 工业通信
    +关注

    关注

    0

    文章

    159

    浏览量

    15857
  • RT-Thread
    +关注

    关注

    32

    文章

    1424

    浏览量

    42143
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    国民技术携手RT-Thread共同推进MCU与RT-Thread操作系统广泛适配

    日前,国民技术股份有限公司与知名物联网操作系统厂商睿赛德科技(RT-Thread)签署会员合作协议,正式成为RT-Thread高级会员。国民技术
    的头像 发表于 12-16 09:56 ?2695次阅读

    国民技术与睿赛德科技(RT-Thread)签署会员合作协议

    日前,国民技术股份有限公司与知名物联网操作系统厂商睿赛德科技(RT-Thread)签署会员合作协议,正式成为RT-Thread高级会员。国民技术
    的头像 发表于 01-18 16:46 ?5066次阅读

    RT-Thread全球技术大会:RT-Thread开源重塑软件发展新生态

    RT-Thread全球技术大会:RT-Thread开源重塑软件发展新生态,市场空间巨大,以开放的心态不断提升技术水平,大胆创新,迎接挑战! ? ? ? 审核编辑:彭静
    的头像 发表于 05-27 10:47 ?1478次阅读
    <b class='flag-5'>RT-Thread</b>全球<b class='flag-5'>技术</b>大会:<b class='flag-5'>RT-Thread</b>开源重塑软件发展新生态

    RT-Thread全球技术大会:萤石研发团队使用RT-Thread技术挑战

    RT-Thread全球技术大会:研发团队使用RT-Thread技术挑战 ? ? ? ? 审核编辑:彭静
    的头像 发表于 05-27 11:36 ?1597次阅读
    <b class='flag-5'>RT-Thread</b>全球<b class='flag-5'>技术</b>大会:萤石研发团队使用<b class='flag-5'>RT-Thread</b>的<b class='flag-5'>技术</b>挑战

    2022 RT-Thread全球技术大会:萤石EZIOT SDK对RT-Thread的支持

    2022 RT-Thread全球技术大会:RT-Thread在摄像头及IoT设备上的实践经验分享
    的头像 发表于 05-27 11:08 ?1563次阅读
    2022 <b class='flag-5'>RT-Thread</b>全球<b class='flag-5'>技术</b>大会:萤石EZIOT SDK对<b class='flag-5'>RT-Thread</b>的支持

    RT-Thread全球技术大会:RT-Thread Smart更好的兼容Linux生态

    RT-Thread全球技术大会:RT-Thread Smart更好的兼容Linux生态 ? ? ? ? ? ? 审核编辑:彭静
    的头像 发表于 05-27 14:31 ?2127次阅读
    <b class='flag-5'>RT-Thread</b>全球<b class='flag-5'>技术</b>大会:<b class='flag-5'>RT-Thread</b> Smart更好的兼容Linux生态

    RT-Thread全球技术大会:RT-Thread构建配置系统

    RT-Thread全球技术大会:RT-Thread构建配置系统,构建系统也称为组件自动化,通常需要通过脚本声明构建行为。 ? ? ? ? 审核编辑:彭静
    的头像 发表于 05-27 14:39 ?1543次阅读
    <b class='flag-5'>RT-Thread</b>全球<b class='flag-5'>技术</b>大会:<b class='flag-5'>RT-Thread</b>构建配置系统

    RT-Thread全球技术大会:Kconfig在RT-Thread中的工作机制

    RT-Thread全球技术大会:Kconfig在RT-Thread中的工作机制 ? ? ? ? ? ? ? 审核编辑:彭静
    的头像 发表于 05-27 14:49 ?1885次阅读
    <b class='flag-5'>RT-Thread</b>全球<b class='flag-5'>技术</b>大会:Kconfig在<b class='flag-5'>RT-Thread</b>中的工作机制

    RT-Thread全球技术大会:在RT-Thread上编写测试用例

    RT-Thread全球技术大会:在RT-Thread上编写测试用例 ? ? ? ? ? 审核编辑:彭静
    的头像 发表于 05-27 16:28 ?1785次阅读
    <b class='flag-5'>RT-Thread</b>全球<b class='flag-5'>技术</b>大会:在<b class='flag-5'>RT-Thread</b>上编写测试用例

    RT-Thread全球技术大会:RT-Thread测试用例集合案例

    RT-Thread全球技术大会:RT-Thread测试用例集合案例 ? ? ? ? ? 审核编辑:彭静
    的头像 发表于 05-27 16:34 ?2423次阅读
    <b class='flag-5'>RT-Thread</b>全球<b class='flag-5'>技术</b>大会:<b class='flag-5'>RT-Thread</b>测试用例集合案例

    RT-Thread全球技术大会:RT-Thread对POSIX的实现情况介绍

    RT-Thread全球技术大会:RT-Thread对POSIX的实现情况介绍 ? ? ? ? ? ? 审核编辑:彭静
    的头像 发表于 05-27 16:52 ?2186次阅读
    <b class='flag-5'>RT-Thread</b>全球<b class='flag-5'>技术</b>大会:<b class='flag-5'>RT-Thread</b>对POSIX的实现情况介绍

    RT-Thread Studio如何测试Ethernet连网

    RT-Thread 是一款开源实时操作系统,包括 RT-Thread 内核、FinSH 命令行工具、设备文件系统、TCP/IP 协议栈、RT-Thr
    的头像 发表于 05-31 11:17 ?3365次阅读
    <b class='flag-5'>RT-Thread</b> Studio如何测试<b class='flag-5'>Ethernet</b>连网

    RT-Thread文档_RT-Thread SMP 介绍与移植

    RT-Thread文档_RT-Thread SMP 介绍与移植
    发表于 02-22 18:31 ?9次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> SMP 介绍与移植

    新书发布——《实时操作系统应用技术RT-Thread与ARM编程实践

    RT-Thread又一本新书《实时操作系统应用技术——基于RT-Thread与ARM的编程实践》发布,标志着RT-Thread生态和实时操作
    的头像 发表于 05-11 08:35 ?1488次阅读
    新书发布——《实时操作系统应用<b class='flag-5'>技术</b>:<b class='flag-5'>RT-Thread</b>与ARM编程<b class='flag-5'>实践</b>》

    2024 RT-Thread 全球技术大会演讲议程发布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技术大会)致力于围绕RT-Thread
    的头像 发表于 05-16 08:34 ?954次阅读
    2024 <b class='flag-5'>RT-Thread</b> 全球<b class='flag-5'>技术</b>大会演讲议程发布!