Board logo

标题: 嵌入式软PLC虚拟机在电气测试中应用 [打印本页]

作者: Bazinga    时间: 2014-7-15 20:39     标题: 嵌入式软PLC虚拟机在电气测试中应用

在一些电子部件产品测试时,早先很多生产厂家都使用继电接触控制系统。该系统由分立元件组成,由于线路简单,元件控制精度不高,加上抗干扰能力级差,所以运行不够稳定,误动作频繁,使产品的测试和分析不准确。

  随着现代工艺的高精度要求,为了适应市场需求,采用可编程控制器对原继电电气控制系统进行改造,但由于各PLC厂家硬件模块和软件结构绝大多数都是专用的、互不兼容的,系统各模块间的交互方式、通信机制也各不相同,这使得控制系统相对独立、彼此封闭。随着技术的进步和市场竞争的加剧,这种专用体系结构的控制系统越来越暴露了其固有的缺陷。由于基于PC平台的软件PLC无需专门的编程器,可充分利用PC机的软硬件资源,直接采用梯形图或语言编程,具有良好的人机界面等优点,因此逐渐取代了硬件PLC,成为研究的热点。

  1、电气测试系统原理介绍

  该寿命测试系统能够利用定时器控制电子部件产品的动作频率,利用计时器来控制动作的次数,基本原理如图1所示。


图1 电气测试基本原理


  PLC使用OMRON CQM1H-CPU11 PLC加上扩展模块,其I/O点数可达26个,可满足多路测试,利用控制动
作Relay的定时器和负载反馈Relay的定时器时间差进行判断产品或负载的不良状态,并对系统进行停机保护,实验完成后利用产品或负载在机械和电气方面的特性对其产品进行评价。

  其中,遮断保护、动作Relay和负载反馈Relay都是用PLC内部高精度定时器进行控制的,其原理都是用低电压控制高电压,实现高低压分离,保証了测试系统的安全性,这里的遮断保护用的是Fuji Electric Co.Ltd。JapanSC-13AA型接触器,耐压可达600V,单触点额定电流是32A,动作Relay和负载反馈Relay(也可以用光电耦合或电流互感器)都是用的OMRON的MY系列继电器。

  实际用DL750 scoper测量发现这两种精度都不是很高,误差往往有8-10ms。

  实际中对产品评价需要很多数据,需要测试很多产品,这样需要多独立回路,接线走线困难,而且会产生寄生电路,所以,从PLC产品的兼容性及测试成本考虑,采用目前先进的嵌入式软PLC技术,可大大缩短实验周期并降低成本。

  2、软PLC技术

  传统的PLC经过十几年的发展,技术已经非常成熟,以高速度、高稳定性、高性能在工业控制领域得到了广泛应用,与此同时,随着现代计算机技术和电子技术的发展,在工程方面逐渐表现出其缺点:传统的PLC厂商垄断市场,其产品户不兼容,缺少明确一致的标准,难以构建开放的硬件体系结构;各厂商产品的编程方法差别很大,技术专有性较强,工作人员培训时间长,造成PLC的性价比增长很缓慢。

  20世纪90年代中期,计算机和微电子技术的迅猛发展以及PLC的国际标准IEC61131的制定,产生了软PLC技术,所有"软PLC技术",就是用PC作为硬件支撑平台,利用软件实现标准硬件PLC的基本功能,也就是将PLC的控制功能封装在软件内,运行于PC的环境中,以PC为基础的控制系统,同时提供了PLC的相同功能,却具备了PC的各种优点。

  软PLC技术一般由开发系统和运行系统两个部分组成。开发系统运行在PC平台上,而运行系统则运行在嵌入式硬件平台上,一般而言,嵌入式硬件平台上都要运行某种嵌入式操作系统,比如μC/OS-II、μClinux等。

  现代开发系统的特点一般都是集成化开发环境,界面友好,易于使用。软PLC嵌入式系统是基于IEC61131国际标准的,所以必然要支持其中的几种语言,系统运行在嵌入式硬件平台上,负责解释执行由开发系统编译、链接后产生的目标文件,运行系统一般由运行内核、通信接口和系统管理三大部分组成,其设计和实现精度很高,它的执行效率将直接影响到系统在现场控制中的反应速度。

  3、嵌入式平台的虚拟运行系统

  运行系统的结构组成如图2所示。系统管理器的主要任务是处理不同任务、协调程序执行及从I/O映象读写变量。I/O接口可与本地I/O系统和远程I/O系统通信。通信接口使运行系统可以与开发系统或其他设备进行通信。内核解释器是运行系统的核心部分,负责解释执行由开发系统编译完成的PLC应用程序的目标代码。


图2 运行系统的结构组成


  运行系统可在多种支持平台上运行,它通过将数据区和代码区分离,实现程序的动态更新和代码的高效率动态下载。

  (1)在μClinux平台上实现软PLC虚拟机实现步骤






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0