基于SoC的工业以太网远程I/O系统设计与实现

2022-02-06 02:17崔可夫刘世昌徐东良李佺威
仪表技术与传感器 2022年12期
关键词:适配器主站以太网

崔可夫,刘世昌,张 磊,韩 伟,徐东良,李佺威

(山东新松工业软件研究院股份有限公司,山东济南 250101)

0 引言

传统制造业向数字化、网络化、智能化方向转型升级过程中对工业现场通讯的实时性、可靠性、安全性、抗干扰性及传输速度提出了更高的要求。传统现场总线技术在网络规模、传输效率、实时性等方面已不能满足现代工业控制系统的需求,在具有1 000个以上I/O点的中大规模控制系统中无法保证数据准确而实时地刷新,从而影响整体工业控制系统性能[1]。为解决这样的问题,许多领先的制造商自主开发了特定的工业以太网标准,这类标准通常是基于通用以太网结合其现有的串行现场总线衍生出来的,发展至今,技术已趋向成熟[2]。如西门子的Profinet、倍福的EtherCAT、三菱主导的CC-Link、罗克韦尔的EtherNet/IP等,这些工业以太网以其高速传输、应用简单、联网快速、潜力巨大的优势迅速扩张,已逐渐覆盖工业自动化领域的各个行业。

各类相关设备制造商如伺服驱动器制造商、传感器制造商、远程I/O制造商等为使其产品能够支持多种工业以太网协议从而匹配客户的不同需求,常用的一种解决方法是为每个工业以太网协议开发专用的接口电路模块[3]。这种方式开发周期较长且硬件利用率低,在大规模生产中不利于芯片采购、材料清单(BOM)管理和印刷电路板(PCB)生产排程。

利用多协议系统级芯片(SoC)可为工业以太网适配问题提供另一种解决方案,多协议SoC具有双核或多核结构,以独立的“通信核心”实现特定工业以太网的从站控制功能,因此能够在不改变设备硬件结构的条件下仅通过下载不同类型的协议栈固件切换从站控制功能[4]。

本文以netX 90 SoC为基础,对Profinet从站远程I/O系统进行设计,该系统可在单个Profinet从站下灵活配置I/O通道数量,实现对多个数字量信号的测量和控制,对工业自动化领域的设备开发具有十分重要的借鉴意义。

1 系统概述

工业以太网远程I/O系统主要由总线适配器与I/O扩展模块2部分组成,总体结构如图1所示。这种分离式结构能够灵活配置I/O数量,以应对在项目初期无法确定I/O具体数量和类型的情况。系统中,总线适配器负责与工业以太网主站通信并对I/O扩展模块采集和下发数据,2个RJ45接口根据不同工业以太网类型可分别作为网络输入、输出接口或一对通用网络接口,通过标准100BASE-TX网线连接主站和其他从站,1路RS232接口作为固件烧写接口,可通过烧写固件改变从站类型,集成的稳压电源模块为整个系统提供电源,1路RS485接口作为扩展应用的通信总线;I/O扩展模块具备一定数量的模拟量或数字量I/O通道,用以读取终端传感器数据或控制执行器动作。每个远程I/O系统由1个总线适配器和若干个I/O扩展模块组合而成。远程I/O系统的上位机为SIMATIC S7-1215C可编程逻辑控制器,应用程序在TIA Portal V16上位机软件环境下开发,能够以在线模式运行,实时监控每个I/O通道的状态。

图1 工业以太网远程I/O系统总体结构

2 硬件电路设计

2.1 多协议SoC结构概述

总线适配器主控芯片使用netX 90集成芯片,芯片结构如图2所示,芯片面积(10×10) mm2,采用144针BGA封装,片上提供Flash、2个高速以太网PHY、上电复位电路以及DC-DC转换器,其主要特点是芯片内部具有2个独立的ARM Cortex-M4核心分别作为通信处理器和应用处理器,令通信任务(即工业以太网协议处理)和应用任务(即I/O数据和应用处理)逻辑分离,从而限制应用程序对通信核心外设的访问,提高通信稳定性[5]。通信核心主要实现数据链路层功能,负责主从站之间的协议处理,应用核心负责解析主站命令并通过现场总线传达给本地输出模块,同时将从现场总线收集到的本地输入模块数据反馈给主站进行决策。

图2 netX 90芯片结构

netX 90通过一组通信固件来实现设备的特定应用,通信固件包括Flash设备标签文件、硬件配置文件和用于通信任务的软件协议栈文件。自定义应用程序使用双端口内存(DPM)与协议栈接口进行数据交换,即通信固件通过DPM为各类协议栈的数据交换服务提供了一个标准应用程序接口(API)。这种双核DPM数据交换方式在数据吞吐量较大的情况下仍能保持高度的互操作性,相比于SPI或I2C等串行数据交换方式,DPM传输在短周期、低延迟、多协议、硬实时应用方面具有优势。

2.2 总线适配器硬件设计

总线适配器的作用是实现工业以太网主站设备与数字量、模拟量等扩展模块之间的通信,硬件架构如图3所示。处理器外部使用振荡频率为25 MHz的晶体作为时钟源,配置有2路调试接口,既可以通过JTAG接口直接调试,也可进入控制台模式由串口进行调试。8位拨码开关用于模式切换,通过调整IO引脚的初始状态来设定系统启动模式。外部FLASH用于升级和备份固件,通过SPI接口与处理器进行数据传输,当以“切换”模式启动设备时,外部FLASH中的新固件将替换原有固件实现升级。netX 90内置2路PHY,经过网络变压器与标准RJ45接口相连,再通过网线连接外部主站或其他从站设备。适配器与扩展模块通过RS485总线通信,适配器作为RS485通信主站最多可接入64个扩展模块从站。

图3 总线适配器硬件架构

2.3 I/O扩展模块硬件设计

I/O扩展模块硬件框图如图4所示,使用STM32F405RGT6微处理器实现多通道数字量信号的测量及控制,单个扩展模块可测量8路数字量输入信号或控制8路数字量输出信号。采用振荡频率为12 MHz的晶体与容量为2 MB的FLASH分别为微处理器提供时钟基准和数据存储空间,处理器通过RS485接口与适配器进行数据交互。内部控制系统电路与外部传感器、执行器等终端器件通过光耦隔离,由2个独立的电源模块分别供电,输入输出端口的通断状态可通过LED指示灯显示。

图4 I/O扩展模块硬件框图

3 软件设计

3.1 软件系统概述

软件系统主要由2部分组成,即适配器软件系统和I/O扩展模块软件系统。

适配器软件系统具有3层结构,即驱动层、工业以太网协议栈层和I/O数据收发应用层。驱动层主要负责netX 90芯片中通信核与应用核之间数据交换;工业以太网协议栈层配合主站控制器实现各类工业以太网协议数据解析功能,本软件系统以Profinet协议为例阐述设计方法;I/O数据收发应用层主要功能是收发I/O扩展模块的数据及处理模块诊断信息。

I/O扩展模块软件系统分为扩展模块通信层和I/O任务应用层。扩展模块通信层实现背板总线帧的收发和数据的存取;I/O任务应用层负责实现输入数据的采集和输出数据的应用。

3.2 适配器软件设计

3.2.1 驱动层

netX 90通信核与应用核之间以DPM交互数据,可满足通信核和应用核之间全双工的数据交换需求,DPM最大地址空间为64 KB,分为系统通道、握手通道、通讯通道(0~3)和应用通道(0~1)。

通讯通道0用于循环数据和非循环数据的收发,握手通道用于DPM握手机制,系统通道用于通信核的系统通讯。循环数据区按照生产者消费者模型划分为输入数据区和输出数据区,非循环数据通过接收邮箱和发送邮箱传递[6]。

通讯核将PLC等控制器发出的输出数据放入DPM输入数据区,再从DPM输出数据区读取应用核放置的输入数据,并将非循环数据存入接收邮箱,再取走发送邮箱内的数据,应用核则与其相反。设置Profinet总线最小周期为1 ms,即通讯核与应用核每隔1 ms通过握手机制刷新 DPM循环数据区,确保总线数据不丢失。

3.2.2 Profinet协议栈

要完成Profinet协议栈功能,首先应初始化外设、通信核和应用核,然后进行系统热启动参数配置,此过程配置包括厂商名、设备名、模块识别等组态信息,建立从地址到实际I/O端口的映射关系[7]。配置完成后协议栈周期性地将DPM接口数据调入处理,程序对于循环数据和非循环数据采用了不同的处理方式:非循环数据处理主要针对于DPM收发邮箱数据,包括Profinet参数配置和诊断信息等,其数据优先级较低,通过UDP/IP路径传输;循环数据处理针对于DPM输出数据区和输入数据区内的数据,这部分数据具有实时性,优先级较高,处理完毕后调用I/O数据收发应用层程序[8],协议栈运行过程如图5所示。

(a)主程序流程(b)中断子程序流程图5 协议栈运行流程

3.2.3 I/O数据收发应用层

I/O数据收发应用层负责收发I/O扩展模块的周期性数据并处理诊断信息,流程如图6所示。

图6 I/O数据收发应用层程序流程

RS485通信主站初始化后,为I/O扩展模块分配设备地址、查询扩展模块设备类型并上传到通讯核。通讯核解析组态信息与控制器建立连接后即可进行循环数据的收发。主站每隔一段时间要对从站进行心跳检测以确认其工作状态,若有异常则触发诊断修复机制。如发生热插拔事件时,首先判断异常类型,然后重新配置从站地址等参数并将新的组态信息上传给协议栈处理。若不存在异常,则将控制权限交还给通讯核。

3.3 I/O扩展模块软件设计

3.3.1 I/O扩展模块程序

I/O扩展模块作为RS485从站接收来自适配器的数据和指令,处理并上传I/O数据。其程序执行流程如图7所示。

(a)主程序流程 (b)中断子程序流程图7 I/O扩展模块流程图

首先完成初始化配置,当接收中断收到完整的数据帧时,判断该数据帧地址是否与本扩展模块匹配,然后根据数据帧指令选择发送I/O数据给主站或处理其他指令。其他指令包括从站状态机切换指令、心跳报文回复指令、参数调整指令等。若地址不匹配则忽略此帧数据,刷新I/O数据并等待主站的下一帧命令。

3.3.2 I/O扩展模块状态机

I/O扩展模块状态机确保主从站之间协调运行,保障输入输出的安全。状态机包含4个状态,分别为初始化(INIT)、预运行(PreOP)、停止(STOP)和运行(OP)[9],如图8所示。

图8 I/O扩展模块状态机

状态机转换遵循一定的规律,设备上电默认处于初始化状态,完成从站地址初始化转入预运行态,预运行态用于配置从站参数,可以通信但不能传输I/O数据,从站参数配置完成后状态机自动转换为运行状态,可收发I/O数据。当主站检测到从站异常或从站自检出现错误时,从站会转入停止状态并切断I/O数据传输。一个正常的启动过程设备状态依次为初始化状态、预操作状态及操作状态,初始化状态无法直接切换到运行状态或停止状态[10]。

4 验证结果

4.1 设备组态

小型工业自动化单个站点I/O数量一般不超过300点,本远程I/O系统以1个适配器搭配16个8通道DI模块和16个8通道DO模块,组成I/O系统可提供256个I/O点,接入主站网络后其在西门子博图软件中的组态界面如图9所示,实际使用中模块的类型和数量可根据需求自由增删替换。

图9 远程I/O系统组态界面

4.2 响应时间

在某些流程自动化控制领域,对I/O端口的真实响应时间要求较为严格。为测得本系统真实响应时间,选取任一DI模块的一个端口作为信号输入点,再选取任一DO模块的一个端口作为信号输出点,将外部开关量信号连接至信号输入点,上位机编程将输入信号变化作为输出信号的触发条件,使用示波器同时监测信号输入点和信号输出点,测量其时间差值即得到系统响应时间。应用以上方法测试本设备的系统响应时间,并同时测试设备A、设备B两个同类型设备(采用专用芯片,非SoC方案设计)作为对比参考,分别测量30组响应时间数据,结果如图10所示。设备A的系统响应时间平均值为10.0 ms,设备B的系统响应时间平均值为16.5 ms。本设备的系统响应时间平均值为10.44 ms,介于设备A与设备B之间,可以验证SoC方案相比于专用芯片方案不会降低系统响应速度,能够满足实际应用需求。

图10 系统响应时间测试结果

4.3 初始化时间

远程I/O设备从上电到启动数据服务再到过程数据有效的初始化时间能够反映设备的硬件性能和软件对资源的利用效率,通过网络封包分析软件Wireshark抓取Profinet数据帧可以较准确地定位设备初始化通信过程并统计此过程占用的时间。

分别对本设备、设备A和设备B抓取20组初始化数据帧,图11是根据测试数据绘制的设备初始化时间比较图,通过统计得出本设备平均初始化时间为8.57 s,设备A和设备B的设备平均初始化时间分别为8.85 s和10.33 s,在初始化时间方面本设备对比同类设备具有一定的优势。同时根据散点分布情况可知本设备初始化时间稳定,反映本设备具有良好的系统性能。

图11 设备初始化时间测试结果

4.4 通信稳定性

工业现场对网络的稳定性具有较高的要求,应用Wireshark抓取分析本设备从初始化到运行一段时间的通信数据,统计结果如表1所示。本设备在30 min的运行过程中Profinet总线通讯速率保持平稳且无丢包现象,能够满足工业现场通信要求。

表1 设备Profinet数据包收发统计

5 结束语

本文分析了将SoC应用到工业以太网远程I/O系统中的硬件和软件实现,并构建了测试系统,分析了设备的性能。本设计方案能够提高设备的灵活性和扩展性,便于针对特定主站切换工业以太网协议以及根据应用需求配置合适的I/O点数。测试结果表明系统与主站通信稳定快速,适用于工业自动化生产线、非标设备、机器人等领域,具有良好的应用前景。

猜你喜欢
适配器主站以太网
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
基于S7-1200 PLC的DP总线通信技术在马里古伊那水电站泄洪冲沙孔门机上的应用
变电站综合自动化系统调试新方法研究
基于3D打印的轻型导弹适配器
潜空导弹垂直发射出筒适配器受载变形仿真研究
EtherCAT主站与主站通信协议的研究与实现*
多表远程集抄主站系统
谈实时以太网EtherCAT技术在变电站自动化中的应用
电源适配器怎么选
美国麦格普公司新型M—LOK相机三脚架适配器