APP下载

虚拟IO控制模块的研制

2013-07-05周晓燕叶小刚宫涛

声学与电子工程 2013年2期
关键词:调用测控宿主

周晓燕叶小刚宫涛

(1.第七一五研究所,杭州,310012;2.杭州瑞利测控技术有限公司,杭州,310012)

虚拟IO控制模块的研制

周晓燕1叶小刚2宫涛2

(1.第七一五研究所,杭州,310012;2.杭州瑞利测控技术有限公司,杭州,310012)

提出了模块化的虚拟IO控制模块,较好的解决了目标的非标化、多样化的问题。从硬件、软件两方面分别描述了虚拟IO控制模块的实现。

虚拟IO;模块化;测控

随着软件技术在工业自动化中扮演越来越重要的作用,硬件层面上的通用化愈来愈成为系统设计过程中的必然要求。在一套以在线检测为主的设备中,与检测目标系统进行IO数据交换必不可少。传统的检测设备是遵循工业标准提供有限并且固定的IO口与目标系统交互。但随着目标系统的非标化、多样化的不断出现,很多工程应用已无标准可循,而新标准产生的速度也越来越跟不上技术和应用的发展,虚拟IO模块的出现能够较好的解决这类问题。

1 虚拟IO模块的定义

在测控设备的开发过程中,经常需要设计各种IO接口板以适应从其他设备获取运行状态位或者控制其他设备的启停,并且也常用IO口来输出本机的各种状态指示位。一般的解决方式是设计专门的IO显控模块或者利用PLC外设,但前者的开发周期长而后者的费用较高,且破坏系统的完整性。虚拟IO模块以模块化设计为起点,建立起以通用型IO硬件为各类设备同种功能部件的基础,通过系统级软件的配置来实现以同种IO硬件达到不同的需求。图1表征了虚拟IO模块在测控系统中的典型作用。

图1 系统中的虚拟IO模块

2 虚拟IO模块设计

根据虚拟IO模块的定义,虚拟IO模块的组成如图2所示。主要由虚拟IO硬件层和虚拟IO软件层组成,工作原理如下:虚拟IO硬件层以MCU为核心,MCU负责与宿主设备(IO模块构成该设备的一部分)通讯,与其他目标设备通讯并根据宿主设备软件层的配置和命令控制外设IO接口板;虚拟IO软件层以应用软件调用XML配置文件来定义虚拟IO硬件层的实际各IO口输入输出配置,并根据应用软件运行时的通讯命令从虚拟IO硬件层取得IO状态或驱动IO输出。虚拟IO软件层通过DLL(微软动态链接库)或VISA(Labview底层驱动模式)驱动形式与虚拟IO硬件层交换数据,从而根据各种应用的需要由上层软件来定义IO的配置模式,这是“虚拟”二字的内涵[1]。

图2 虚拟IO模块的组成

同一测控设备在针对不同种应用时有不同种IO的输入输出,此时无需对硬件进行修改,只要根据不同应用设置IO的不同XML配置参数,通过调用XML配置文件即可实现目标要求的操作,因此实现了同一IO硬件层的不同种需求的IO定义。下面从硬件和软件两方面来描述虚拟IO模块的实现途径。

2.1 硬件设计

虚拟IO模块允许用户自定义IO端口,因此该模块需具备两个特征:第一、存在与宿主设备的通讯接口;第二、可以方便的对IO端口进行定义。图3是一种典型的虚拟IO模块的硬件结构:选择合适的MCU并设计其最小系统作为模块的基础,为适应与宿主设备的通讯,以通讯距离和通讯数据量为主要衡量指标,一般采用标准串口(隔离型的RS232)作为IO模块和宿主设备的通讯方式;以MCU的IO管脚为基础,扩展出多路以三极管、晶体管、晶闸继电器等外设控制接口。通常的应用中,宿主设备还需要进行远距离通讯,常用的为RS485。为防止IO模块和宿主设备、其他外设设备存在较多相互干扰,一般选取隔离型的通讯元件。

图3 虚拟IO模块典型硬件结构

2.2 软件设计

虚拟IO模块的软件包括两个部分:MCU核心板的硬件层的软件和宿主设备上的应用程序对虚拟IO模块的调用部分程序。

2.2.1 虚拟IO硬件层的软件设计

图4给出了一种典型的IO模块硬件MCU程序流程图。在模块上电后,程序需要先对模块进行初始化,如进行看门狗启用、定时器参数、通讯参数设置等方面的工作。设置完毕后,MCU进行自检,完成自检项目即进入与宿主设备的通讯,通讯的协议可自由定义。IO模块的硬件工作在无限循环之内,根据中断时间设置与宿主设备进行通讯,通讯的超时设置和看门狗抗干扰超时设置是必要的。该无限循环的过程可以不断的重新定义IO的输入输出配置,并完成IO端口状态信息的交换。

图4 虚拟IO模块硬件MCU程序典型流程图

2.2.2 虚拟IO软件层的软件设计

虚拟IO模块的通用化离不开宿主设备端应用软件层的专门化,与虚拟IO模块调用相关的应用软件层的典型流程图如图5所示。从图4中可以看到,虚拟IO模块的硬件部分程序是一个无限循环,即其对宿主设备的通讯是可以实时发生的,因此,在虚拟IO模块的宿主设备端的软件层可以按需调用IO模块的资源,这就决定了同一IO模块可以被宿主设备的不同应用程序分时调用,不同的应用程序在对IO模块调用时,只需要调用相应的XML文件即可根据专有设置进行自定义通讯的IO操控。

图5 虚拟IO模块软件层的典型调用流程图

3 实现方案

根据图3中虚拟IO模块的硬件典型结构,从MCU在线调试的便利性、自带看门狗的抗干扰性以及IO的丰富性等出发,结合工业产品的需要,选择Freescale的MC9S08AC8作为虚拟IO模块的MCU核心。该MCU具有内置时钟,具备2个异步SCI,同时多达33个可配置成读写的IO口,因此适合用来作为虚拟IO模块的硬件核心。从通讯角度看,虚拟IO模块需要同宿主设备进行RS232通讯,和目标测控设备进行远程的RS485数据通讯,而这些基本通讯需要特别注意引起相互之间的电源和信号干扰,因此采用隔离型的通讯芯片不失为合适的选择。AD公司推出的ADM2587E和ADM3251E采用其公司特有的芯片级变压器iCouple磁隔离技术,能够同时用于隔离逻辑信号和集成式DC-DC转换器,因此该类器件可提供整体隔离解决方案;选择这两款芯片分别实现虚拟IO模块的RS232和RS485功能,可以有效的实现与外部模块的信号和电气隔离。

利用MC9S08AC8[2]、ADM2587E[3]、ADM3251E[4]构成基本的虚拟IO模块,除去MC9S08AC8的33个IO管脚中因为管脚复用的关系被通讯接口占用外,该虚拟IO模块在硬件结构上保留了28个独立的IO口,这对于大部分的工业应用而言,其IO资源都是及其丰富的。

4 实践应用

在基于机器视觉的经编疵点检测仪[5]和基于机器视觉的整经断纱检测仪以及激光断纱检测仪的开发中,采用前文所述虚拟IO模块作为上述三类测控仪器对经编机、整经机、喷水织机等的状态拾取、报警、启停等控制的接口板,宿主设备只要方便的调用相应的XML文件即可实现不同的控制。目前,该类虚拟IO模块已经在几百台目标机的控制中得到了成功的应用。

5 结语

通过虚拟IO技术,可以实现产品设计的模块化和通用化,这是开发产品时由从原来专注于技术的产品开发方式转移到专注于需求的产品开发方式的转变基础。通过灵活易升级的软件模式来达到不同需求方案的实现,脱离硬件层面的繁复设计,是产品设计中IO层虚拟化的意义所在。

[1] NATIONAL INSTRUMENTS. 软件在虚拟仪器技术中的角色[M]. 2012.

[2] FREESCALE. MC9S08AC8数据手册:技术数据[M]. 2008.

[3] ANALOG DEVICES. ADM2587E Datasheet[M]. 2009.

[4]ANALOG DEVICES. ADM3251E Datasheet[M]. 2008-2010.

[5] 叶小刚, 李江涛, 施彤云, 等. 基于基于机器视觉的经编检测系统的研制[C].中国仪器仪表学术、产业大会, 2010.

猜你喜欢

调用测控宿主
病原体与自然宿主和人的生态关系
龟鳖类不可能是新冠病毒的中间宿主
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
基于LabWindows/CVI与TekVISA的Tek示波器远程测控软件设计
基于系统调用的恶意软件检测技术研究
基于现代测控技术及其应用分析
向着新航程进发——远望7号测控船首航记录
表现为扁平苔藓样的慢性移植物抗宿主病一例
人乳头瘤病毒感染与宿主免疫机制