您的位置  > 互联网

基于任何现场总线的远程IO模块分析工具以及开发应用

图1 IO-Link系统结构

为了进一步研究IO-Link系统结构、通信机制和开发应用,可以设计开发IO-Link从站工具包,包括IO-Link通用开发模块、IO-Link分析工具和IO-Link从站协议栈。 IO-Link通用开发模块是这项工作的基础,也是IO-Link主站与设备信号之间的桥梁。 IO-Link 分析工具可帮助开发人员和测试人员分析通信细节以识别和解决问题。 IO-Link从站协议栈是一个提供硬件抽象层和应用程序接口的固件库。 开发人员可以使用它在各种微处理器平台上快速轻松地开发IO-Link从站产品。 本文研究的IO-Link从站仅针对数字(按钮)信号输入和数字信号输出(指示灯)。 IO-Link通用开发模块的设计只需要在此基础上进行扩展,使其能够处理模拟信号。 。

1系统结构

图2是IO-Link从站工具套件及演示系统的结构示意图。

图2 IO-Link从站工具包及演示系统结构图

本文使用的IO-Link主模块USB IO-Link可以将IO-Link设备连接到PC,从而可以通过IO-Link Tool软件对IO-Link设备或演示设备功能进行配置和测试。 IO-Link设备必须通过设备描述文件(IODD文件)进行描述,该文件由一组XML文本文件和PNG图形文件组成,其中包含有关设备的标识、通信特性、参数、过程数据和诊断数据的信息。 图2椭圆虚线内部分为IO-Link三线电缆,L+/I-为24V直流电源,C/Q为信号线,用于传输过程数据、诊断信息IO-Link通用开发模块主要由数据收发器和微处理器组成。 它可以处理传感器的输入信号并将信息传输到IO-Link主站。 它还可以接收、处理来自主站的数据信息并进行传输。 到执行器。 IO-Link分析工具可以帮助开发人员查看、记录、分析数据并了解通信细节。 这部分设计本文不予讨论。

2 IO-Link通讯模式介绍

IO-Link设备可以工作在SIO模式(标准I/O模式)或IO-Link模式(通信模式)。 上电后,设备始终工作在SIO模式。 主站端口有不同的配置方法。 如果配置为SIO 模式,则主站将该端口视为标准数字输入。 如果配置为通讯模式,主站会自动识别可以通讯的设备并进行通讯。

2.1 数据类型

IO-Link 通信的三种基本数据类型是:周期性数据(或过程数据 PD)、非周期性数据(或服务数据 SD)和事件。

设备的过程数据(PD)以数据帧的形式周期性传输,而服务数据(SD)只有在主站发出请求后才进行交换。 图 3 显示了典型的 IO-Link 消息结构。 当事件(Event)发生时,设备的“事件标志”被置位。 主站检测设置并读取上报事件(读取过程中不能交换业务数据)。 因此,诸如污染、过热、短路等事件或设备状态可以通过主站传输到PLC或可视化软件。

图3 IO-Link消息结构

2.2 参数数据交换

由于服务数据(SD)必须通过PLC请求传输,因此定义了SPDU(服务协议数据单元)。 在主站中,读写服务的请求被写入SPDU并通过IO-Link接口传输到设备。

SPDU的总体结构如图4所示,其排列顺序与传输顺序一致。 SPDU 中的每个元素可以根据服务类型采取不同的形式。 SPDU 允许访问所需传输的数据对象,索引用于指定远程 IO-Link 设备上所请求数据对象的地址。 IO-Link中有一个术语叫直接参数页(page),里面存储了最小周期时间、供应商ID、主站命令等参数信息。直接参数页中可访问的数据对象可以通过SPDU选择性地提供。 。

图4 SPDU总体结构

3 IO-Link从站硬件设计

IO-Link从站的系统结构如图5所示,主要包括数据收发器、单片机AT-、信号输入输出通道、电压电流监控模块、过流保护模块。

图5 IO-Link从站结构图

它是一个IO-Link从机收发器芯片。 它是具有外部传感器或执行器的 MCU 与支持 IO-Link 通信的 24 V 信号线之间的桥梁。 当IO-Link设备连接到主站时,主站会初始化通信并与MCU交换数据,MCU充当通信的物理层。

由于MCU输出端口控制的三个指示灯(额定电压24V)均由IO-Link电源线供电,因此需要监测电源线上的电流,以便在电流超过一定值时触发相应的动作。设置阈值。 纠正措施包括移除 IO-Link 电源线上的指示灯。 电流监测模块采用电流检测放大器。 作为高压电流检测器,它直接连接到电源,可以检测所有下游故障。 它具有非常高的共模抑制比、较大的带宽和响应速度,并且可以将检测电阻上的电压放大5O倍,输出到MCU内部电压比较器的正向输入端AIN0。 当AIN0的电压值超过反向输入端设定的阈值时,控制PB0输出低电平,指示灯LAMP从IO-Link电源线上移除,实现过流保护功能。 这部分电路如图6所示。

图6 电流监测及过流保护电路

4 IO-Link从站软件设计

软件设计基于IO-Link设备通信协议栈。 IO-Link设备通信协议栈提供了通用的应用程序接口(API函数),方便了IO-Link从站开发模块的设计。

软件设计主要包括初始化模块和IO-Link通信相关的主循环模块。 主程序流程如图7所示。

图7 主流程图

图8所示的初始化程序中,堆栈初始化、SP-DU值初始化和直接参数页初始化分别是通过调用API函数来实现的。

图8 初始化过程大厅流程图

图9为主循环流程图。 主循环每 1 ms 执行一次,看门狗每 255 ms 触发一次。 运行IO-Link从站协议栈后,可以检测主站发送的有效输出过程数据并将其传递给应用模块(3个指示灯),并根据按钮的状态设置输入过程数据,并将传递的数据发送到主站点。 此外,如果发生对直接参数页的写访问或设置了SPDU标识符,则必须运行相应的处理程序。

图9 主循环流程图

5实验结果与结论

实验中搭建了如图2所示的系统,并通过IO-Link Tool软件测试了系统功能。 图10是显示过程数据和参数的界面。 程序中将过程数据设置为一个字节,格式如图l1所示。 从图11可以看出,输入过程数据的Bit7为故障诊断位。 当IO-Link电源线上的电压和电流正常时,该位为0,否则设置为1; Bit5至Bit0分别代表六个按钮的状态。 输出过程数据的Bit2~Bit0分别代表三个指示灯的状态。

图10 过程数据及参数显示界面

图11 过程数据格式

当电压、电流正常时,如果没有按下按钮,则输入过程数据为63(0011 1111)(见图10a),如果只按下按钮1,则输入过程数据为62(),以此类推。 当电压或电流不在规定范围内时,如果不按任何按钮,则输入过程数据为-65(1011 1111)。 如果进行图10b所示的操作,则可以将得到的按键状态反转并发送给主站。 这样,当没有按下按钮且电压、电流正常时,输入的过程数据为0()。 如果电压或电流不在指定范围内,则输入过程数据为-128 (1000 0000)。

过程输出数据的Bit2至Bit0可分别控制3个灯的状态。 如果电压、电流正常,当输出过程数据为1(0000 0001)时,只有指示灯1亮。 当输出过程数据为27(0000 0111))时,3个灯全部亮。 等等。 然而,当电流超过一定范围时,硬件电路将实施过流保护并切断IO-Link电源线上的指示灯。 此时输出的过程数据将无法控制指示灯的状态,直到故障排除并重新上电。

IO-Link从站工具包对于IO-Link系统结构、通信机制以及开发应用的研究具有重要意义。 本文设计的IO-Link从站是IO-Link主站与设备信号之间的桥梁,也是IO-Link从站工具包的基础和核心。 本文构建的基于IO-Link从站的演示系统生动地展示了IO-Link通信的特点和优势,对于理解和深入研究IO-Link通信系统具有重要意义。

关键词:

加入微信

获取电子行业的最新消息