TMS320DM368的高精度工业自动测量控制系统
2018-01-15,,
,,
(北京航空航天大学 自动化科学与电气工程学院,北京 100191)
引 言
目前嵌入式系统已广泛应用于生产生活的众多方面,嵌入式工业控制系统在工业自动化控制领域也发挥着越来越重要的作用[1]。传统工业控制主要采用的是可编程逻辑器件(Programmable Logic Controller,PLC),而随着技术的发展,其局限性也逐步凸显,如兼容性差、计算能力弱、可扩展性差等。嵌入式系统的突出特点是在复杂的环境下的抗干扰性强、可扩展性好以及计算能力强等,基于嵌入式技术开发的工业控制系统,能很好地弥补PLC的不足。随着图像识别与人工智能等新技术的快速发展,在工业自动化控制中也逐步将这些新技术与嵌入式系统结合,嵌入式技术或基于嵌入式的PLC技术成为未来工业控制的发展方向。
本文提出的基于TMS320DM368的自动测量系统,结合视频识别技术,将原来采用PLC控制的半自动化系统,改造为基于嵌入式技术的全自动化测量系统。
1 测量系统概述
本系统是一套高精度角度自动测量系统,主要由电子经纬仪、龙门系统、转台系统三部分组成,如图1所示。其中电子经纬仪为测量设备,可以测量水平和垂直角度,由自身的两个电机控制;龙门系统为放置经纬仪的平台,可从垂直、水平、横向、纵向等多个方向调整经纬仪的位置,分别由多个高精度伺服电机控制;转台系统为被测物承载平台,根据需要调整被测角度,通过一台电机控制。
图1 测量系统示意图
龙门系统采用LUST公司的LSMx-Servo Motors系列交流永磁同步电机,电机驱动为LUST公司的ServoOne junior[2]伺服驱动器,系统内部采用Profibus[3]总线协议进行通信。转台系统的普通电机使用松下的VF0变频器控制,通过正余弦角度编码器获取转台角度数据,并需要经过解码器盒解码,与转台系统的数据通信采用485串口。电子经纬仪为Leica公司的TPS1000型经纬仪,使用自带电机控制,内部通信采用GSI(Geo Serial Interface)端口,控制系统通过串口直接与其控制盒进行数据交互。
测量时,从客户端输入转台和龙门以及经纬仪的理论角度数据,从经纬仪目镜可看到亮十字与中间的黑十字,调整龙门系统和经纬仪各个电机,使得两个十字重合,即可得到最终的角度测量数据。
2 自动测量系统设计与实现
2.1 系统总体设计
整个测量系统包括Windows端的人机交互系统、嵌入式软件系统以及底层硬件支持,总体方案如图2所示。
图2 系统总体设计
PC端人机交互界面以C#语言开发,实现与嵌入式控制平台的信息交互以及电子经纬仪目镜的实时画面显示。借助网络传输将人机交互系统与嵌入式控制系统解耦,实现便捷、高效、友好的交互界面。
嵌入式软件系统是整个测量系统的核心,是实际的控制中心。操作系统采用Linux,充分发挥嵌入式Linux系统的优势。嵌入式软件完成视频图像的处理和电机控制算法的计算,实现与上层PC端的数据交互以及对底层电机驱动的控制。
底层硬件包括AR0330图像采集模块和电机驱动。AR0330模块负责采集经纬仪目镜图像,电机驱动根据上层指令完成对各个电机的实际操作控制。此外还有电源电路、时钟电路、网络接口电路、DDR2 SDRAM[6]接口电路等外围电路和接口。
2.2 系统硬件设计
硬件系统的核心芯片TMS320DM368[4](以下简称DM368)为TI达芬奇系列芯片,该芯片内含一个ARM9的核心以及2个图像协处理器,具有强大的视频处理能力。同时拥有丰富的外部接口,包括高速的DDR存储器接口、视频处理接口、SPI、UART、MMC/SD/SDIO接口、10/100M网络接口等,DM368架构如图3所示。
图3 DM368架构框图
其中,视频处理子系统VPSS包括视频输入接口(VPFE)用于外部图像数据的获取,视频输出接口(VPBE)进行视频编码,能很好地满足对从电子经纬仪目镜采集的图像进行处理。
图4 系统硬件框图
各个子系统的硬件连接关系如图4所示。使用APTINA公司的AR0330模块采集经纬仪目镜图像;使用UART转RS485与经纬仪进行数据交互;与转台系统的连接则需要同时使用UART和GPIO,UART从角度编码器的解码模块完成角度数据的读取,GPIO完成变频器的控制。嵌入式系统与龙门各个伺服驱动器以及PC端
的通信通过网络实现。网络接口采用RTL8201CP[5],它是一个单端口的物理层收发器,通过网络变压器接RJ45来实现全部的10/100M以太网物理层功能,其物理层电路实现如图5所示。
图5 网络接口电路
2.3 嵌入式系统软件设计
嵌入式端的软件完成真正的测量控制逻辑,包括采集图像的处理、PC端数据的接收和解析,以及电机控制算法的具体实现三大部分。一次完整的自动测量流程如图6所示。
图6 自动测量流程图
首先需要接收PC端发送的理论数据,控制转台和龙门系统的各个电机运转到指定理论位置。通过AR0330模块完成经纬仪目镜图像采集;采用开源的ffmpeg库实现视频编码,得到压缩编码的H.264视频流,再传输给PC端实时显示;图像识别部分完成图像的分析以及角度偏差的计算。
图像分析采用二值化方法。考虑到中间的黑色十字丝线是固定的,在采集图像时,通过调整采集模块位置,使得黑色十字丝线中心位于图像中心,故而只需要识别亮十字即可。由于整个图像背景较为简单,可以对图像进行二值化处理。首先将彩色图像灰度化,由于灰度范围为0~255,求取所有像素值的均值,大于均值的灰度值置为255,小于均值的设为0,再逐行和逐列扫描,得到灰度值为255且连续的行或列,即亮十字中心位置。角度计算原理如图7所示,以图像为16:9的720P视频为例,将像素点距离转化为实际距离,再结合光的反射原理得到偏差角度计算公式如下:
图7 角度计算原理
至此,可以得到水平和垂直角度偏差,计算出各个系统对应每个电机需要调整的角度。在电机具体控制上,龙门的伺服电机通过伺服驱动器控制,系统按照Profibus协议与驱动器完成对应数据和指令交互,驱动器负责具体的电机控制。电子经纬仪也有自己的GSI控制协议。而对转台的控制,由于变频器无法实现自动控制功能,需要在软件中采用PID控制算法实现控制,故而需要循环通过视频识别,逐步达到指定效果,实现高精度控制。
2.4 PC端人机交互系统设计
PC端人机交互界面采用C#开发,包括实时视频显示、数据交互和电机控制界面三大部分。同时,考虑到实际控制的需求,还增加了图8所示的单电机控制界面。交互系统与嵌入式端的通信采用网络实现,其中指令和测量数据采用TCP传输,保证通信的可靠性,而实时视屏数据则采用UDP传输,保证实时性[7]。自动测量时交互界面如图9所示。
图8 单电机控制界面
图9左上方为实时视频显示,采用ffmpeg和SDL(Simple Direct Media Layer)技术,通过ffmpeg库完成H.264视频的解码,SDL完成图形显示,在软件内嵌了一个简易视频播放器。左下方的灰色区域为理论数据输入和测量数据的输出,可同时输入多组理论数据,且支持Excel文本直接导入。右侧则提供了各个电机状态的监控及基本的操作按钮。整个交互系统界面简单、功能完善。
图9 自动测量界面
结 语
[1] 张坤平,李艳.嵌入式PLC在控制领域的应用研究[J].山东工业技术,2017(3):225.
[2] LUST. ServoOne Parameter Description,2007.
[3] LUST. Profibus ServoOne user manual,2007.
[4] Texas Instruments.TMS320DM36x DMSoC Video Processing Front End User's Guide,2010.
[5] Realtek. RTL8201CP Single-Chip/Single-Port 10/100M Fast Ethernet Phyceiver. JATR-1076-21,2004.
[6] TMS320DM36x DMSoC DDR2/mDDR Memory Controller User’s Guide,2009.
[7] Douglas E Comer,David L Stevens.Internetworking with TCP/IP:Client-Server Programming and Applications[M].Upper Saddle River: Prentice Hall,2002.