一种EtherCAT现场总线控制系统的实现方法技术方案

技术编号:23048675 阅读:54 留言:0更新日期:2020-01-07 14:33
本发明专利技术属于工业自动化控制相关技术领域,其公开了一种EtherCAT现场总线控制系统的实现方法,该方法包括以下步骤:(1)通过对I/O APIC的可编程重定向表修改,以使I/O APIC接收到的每个外部中断都重定向到CPU1,将CPU0作为实时CPU核(2)用SOEM EtherCAT开源主站作为EtherCAT主站协议栈,将SOEM EtherCAT开源协议栈编译成一内核驱动模块;(3)采用NDIS协议驱动来发送和接收SOEM EtherCAT开源协议栈的数据;(4)采用DPC定时器提供定时中断来实现EtherCAT主站与从站之间的通信。本发明专利技术降低了成本及开发周期,适用性较强,有利于推广应用。

An implementation method of EtherCAT fieldbus control system

【技术实现步骤摘要】
一种EtherCAT现场总线控制系统的实现方法
本专利技术属于工业自动化控制相关
,更具体地,涉及一种EtherCAT现场总线控制系统的实现方法。
技术介绍
为了保持市场竞争力,许多企业逐步采用先进的工业自动化技术,以最大限度地提高生产力、经济规模和产品质量。实时工业以太网的出现,为自动化行业的发展创造了新的动力。EtherCAT是一种新型的实时工业以太网现场总线,在实时性、可靠性和确定性等方面具有传统现场总线无法比拟的优势,辅以拓扑灵活、易于实现等特点,在工业自动化领域得到了广泛应用。运动控制是自动化领域的重要技术,EtherCAT不仅可以为其提供高速实时的数据通信,还能显著降低生产和运行成本。实时性是运动控制系统的重要技术指标之一,提高运动控制系统的实时性能有效降低工业以太网数据传输过程中的通信延时,从而提高控制过程中的精度。工业自动化领域中的实时应用一直都是一个需要昂贵专用硬件的领域。现有的EtherCAT主站控制系统几乎全部基于Linux系统搭建,硬件平台大多为ARM或者ARM+FPGA的架构,这种方案涉及硬件平台的设计与开发、Linux系统的系统移植和驱动的开发或者移植,整体工作量繁琐且庞大,并且Linux系统多为命令行操作,增加了操作工人对控制系统操作的学习成本和时间。相应地,本领域存在着发展一种成本较低的EtherCAT现场总线控制系统的实现方法的技术需求。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种EtherCAT现场总线控制系统的实现方法,其基于现有实时工业以太网现场总线控制系统的特点,研究及设计了一种成本较低的EtherCAT现场总线控制系统的实现方法。所述实现方法基于Windows系统,其Windows平台的EtherCAT主站的开发可以将控制软件、操作界面等工控所需软件的开发统一集中到Windows平台进行,充分发挥Windows系统提供的丰富的开发工具和良好的图形操作体验,省去了跨平台开发进行交叉编译的繁复操作;精简了开发流程,丰富了开发工具,缩短了开发周期,同时,Windows系统也能给工业现场操作人员提供良好的操作界面,减轻了工作人员的劳动强度,降低了操作学习成本,这对工业自动化领域的发展都有着极其深远的意义。为实现上述目的,本专利技术提供了一种EtherCAT现场总线控制系统的实现方法,所述实现方法包括以下步骤:(1)采用DPC定时器对Windows系统进行实时性优化和扩展,其中,通过对I/OAPIC的可编程重定向表进行修改,以使I/OAPIC接收到的每个外部中断都重定向到CPU1,且将CPU0作为实时CPU核;同时采用DPC定时器加载并运行实时任务;(2)使用SOEMEtherCAT开源主站作为EtherCAT主站协议栈,将SOEMEtherCAT开源协议栈按照Windows系统内核框架编译成一个内核驱动模块;(3)采用NDIS协议驱动来发送和接收SOEMEtherCAT开源协议栈的数据,所述NDIS协议驱动对上直接将接收到的数据通过小端口驱动发送出去,对下直接将从小端口驱动中接收到的数据发送给上层驱动;(4)采用DPC定时器提供定时中断来实现EtherCAT主站与从站之间的周期性过程数据通信。进一步地,步骤(1)中,使用DPC创建并维护一个DPC对象,DPC对象与一个DPC定时器例程绑定,在DPC定时器例程中执行实时任务,DPC定时器定时结束时将DPC定时器例程插入实时CPU核的DPC队列,并请求一个DISPATCH_LEVEL级的中断。进一步地,采用ExSetTimerResolution例程来确定分辨率,其中,当且仅当设置的系统时钟分辨率小于当前系统时钟分辨率时,设置的系统时钟分辨率才会生效;如果内核驱动程序设置的系统时钟分辨率大于当前的系统时钟分辨率,则维持当前系统时钟分辨率,不做修改;如果内核驱动程序设置的系统时钟分辨率小于系统时钟所能支持的最小分辨率时,则采用系统所能支持的最小分辨率。进一步地,使用ExSetTimerResolution例程将时钟分辨率设为100ns。进一步地,DPC定时器内部使用定时器对象KTIMER,当定时器设定为一个时间间隔后,每隔这个时间间隔操作系统将一个DPC例程插入DPC队列,当操作系统读取DPC队列时,对应的DPC例程被执行。进一步地,步骤(2)中,将SOEMEtherCAT开源协议栈中凡是使用用户态库的函数全都改用底层内核函数实现,如果该函数没有与其对应的内核函数,则编写与原函数功能一致的函数。进一步地,SOEM主站的硬件抽象层抽象出来的四个接口ecx_setupnic、ecx_closenic、ecx_outframe和ecx_recvpkt分别由ec_create_ndisprot、ec_close_ndisprot、ec_writepacket和ec_readpacket替换;ec_create_ndisprot用于与NDIS协议驱动建立联系,以为数据收发功能实现提供基础;ec_close_ndisprot用于断开与NDIS协议驱动的联系,方便下次进行重新连接;ec_writepacket用于将接收到的数据进行简单封装后调用NDIS协议驱动将数据发送出去;ec_readpacket用于读取网卡接收到的返回数据帧。进一步地,步骤(4)中,协议栈过程数据通信模块通过调用实时性模块中的DPC定时器操作接口,创建DPC对象,开启定时器,定时结束后,将数据发送任务插入实时CPU核的DPC队列,实时CPU核处理发送任务,调用底层NDIS协议驱动将数据通过网卡发送给从站;在发送任务被响应之后触发接收任务的执行,协议栈将接收任务发送给NDIS协议驱动,NDIS协议驱动将网卡收到的数据返回给协议栈,该协议栈收到返回数据后对数据进行解析和处理。进一步地,步骤(4)中,协议栈中状态机管理和邮箱通信通过调用硬件抽象层提供的数据发送接口和操作系统抽象层提供的时间相关接口将数据发送任务传递给底层NDIS协议驱动,该底层NDIS协议驱动将数据从网卡发送给从站;数据帧经从站处理后会返回给主站,协议栈调用硬件抽象层提供的接收接口和操作系统抽象层提供的超时函数将接收数据的请求发送给NDIS协议驱动,NDIS协议驱动将网卡接收的数据返回给上层协议栈,上层协议栈完成对接收数据的解析和处理,至此即完成一次非周期性通信。进一步地,步骤(4)中使用的IRP是采用IoAllocateIrp构造的。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,本专利技术提供的EtherCAT现场总线控制系统的实现方法主要具有以下有益效果:1.使用DPC定时器进行Windows系统的实时性扩展,性能良好且稳定、实现方法简单、能满足简单场景下的实时性需求。2.将EtherCAT主站在Windows系统平台上实现,可以利用Windows系统优势开发出优秀、功能强大的图形用户界面,使EtherCAT总线在工业领域中的应用更简单方便,同时可以降低工控领本文档来自技高网...

【技术保护点】
1.一种EtherCAT现场总线控制系统的实现方法,其特征在于,该实现方法包括以下步骤:/n(1)采用DPC定时器对Windows系统进行实时性优化和扩展,其中,通过对I/O APIC的可编程重定向表进行修改,以使I/O APIC接收到的每个外部中断都重定向到CPU1,且将CPU0作为实时CPU核;同时采用DPC定时器加载并运行实时任务;/n(2)使用SOEM EtherCAT开源主站作为EtherCAT主站协议栈,将SOEM EtherCAT开源协议栈按照Windows系统内核框架编译成一个内核驱动模块;/n(3)采用NDIS协议驱动来发送和接收SOEM EtherCAT开源协议栈的数据,所述NDIS协议驱动对上直接将接收到的数据通过小端口驱动发送出去,对下直接将从小端口驱动中接收到的数据发送给上层驱动;/n(4)采用DPC定时器提供定时中断来实现EtherCAT主站与从站之间的周期性过程数据通信。/n

【技术特征摘要】
1.一种EtherCAT现场总线控制系统的实现方法,其特征在于,该实现方法包括以下步骤:
(1)采用DPC定时器对Windows系统进行实时性优化和扩展,其中,通过对I/OAPIC的可编程重定向表进行修改,以使I/OAPIC接收到的每个外部中断都重定向到CPU1,且将CPU0作为实时CPU核;同时采用DPC定时器加载并运行实时任务;
(2)使用SOEMEtherCAT开源主站作为EtherCAT主站协议栈,将SOEMEtherCAT开源协议栈按照Windows系统内核框架编译成一个内核驱动模块;
(3)采用NDIS协议驱动来发送和接收SOEMEtherCAT开源协议栈的数据,所述NDIS协议驱动对上直接将接收到的数据通过小端口驱动发送出去,对下直接将从小端口驱动中接收到的数据发送给上层驱动;
(4)采用DPC定时器提供定时中断来实现EtherCAT主站与从站之间的周期性过程数据通信。


2.如权利要求1所述的EtherCAT现场总线控制系统的实现方法,其特征在于:步骤(1)中,使用DPC创建并维护一个DPC对象,DPC对象与一个DPC定时器例程绑定,在DPC定时器例程中执行实时任务,DPC定时器定时结束时将DPC定时器例程插入实时CPU核的DPC队列,并请求一个DISPATCH_LEVEL级的中断。


3.如权利要求1所述的EtherCAT现场总线控制系统的实现方法,其特征在于:采用ExSetTimerResolution例程来确定分辨率,其中,当且仅当设置的系统时钟分辨率小于当前系统时钟分辨率时,设置的系统时钟分辨率才会生效;如果内核驱动程序设置的系统时钟分辨率大于当前的系统时钟分辨率,则维持当前系统时钟分辨率,不做修改;如果内核驱动程序设置的系统时钟分辨率小于系统时钟所能支持的最小分辨率时,则采用系统所能支持的最小分辨率。


4.如权利要求1所述的EtherCAT现场总线控制系统的实现方法,其特征在于:使用ExSetTimerResolution例程将时钟分辨率设为100ns。


5.如权利要求1所述的EtherCAT现场总线控制系统的实现方法,其特征在于:DPC定时器内部使用定时器对象KTIMER,当定时器设定为一个时间间隔后,每隔这个时间间隔操作系统将一个DPC例程插入DPC队列,当操作系统读取DPC队列时,对应的DPC例程被执行。


6.如权利要求1-5任一项所述的EtherCAT现场总线控制系统的实现方法,...

【专利技术属性】
技术研发人员:叶伯生饶阿龙陶婕妤张文彬谢鹏谭朝帅思远
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1