|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于ARM7与UC/OS II的焊接机设计
# K8 |) z, s! I( r7 Q1 U$ @[摘 要]:本文介绍了一种采用嵌入式操作系统的焊接控制系统的实现方案,该系统采用了高速ARM处理器作为主体,由嵌入式控制系统控制显示、检测、运动等任务。2 B9 [/ T& D7 [
[关键词]:焊接机; ARM;UC/OS_II;
9 l& h1 `) K% y[Abstract]:This article presents a kind of jointing system based on UC/OS_II, The system uses high speed ARM MCU and the embedded system to control the display,testing,moving of task.
; Z6 A7 Y: \7 {[Key Words]:the jointing of machine;ARM ; UC/OS_II ;
0 C8 O# S4 @+ u! p7 J \ s" s8 X; ]
1引言
! F4 p( ?4 x+ e0 _ 焊接技术是现代化制造技术的基础技术,它在现在机械、工程建设、汽车、船舶、电力设备等各种生产行业中都有极广泛的应用。随着生产力的发展,早期的半自动方式的焊接技术逐渐退出历史舞台,取而代之的是现代化全自动焊接技术。基于ARM与UCOS_II开发的焊接系统,是目前焊接潮流的佼佼者。1 Q+ |5 ?7 [" B, r( f4 [% H
2系统组成及工作原理
# S- P! G5 t- A+ I# q2.1 组成
6 M4 U+ e: `; k) I5 m- Q V8 H! E 焊接控制系统主要由ADT-TS540(深圳众为兴数控技术有限公司开发的一款控制器),原点、限位传感器,Q2BYG403M驱动器、56BYGH630A/B步进电机以及空气等离子切割发生器组成,如图1。0 ~; L) k$ u( J$ v2 \0 d
http://www.adtechcn.com/news/myupload/20070106538.gif
+ S, v/ C2 g+ H6 @0 e图1
/ g' R+ B9 B! y$ L; g9 z2.2 工作原理3 |% M; l) D0 F5 j/ T
整个系统为数字智能化操作系统。系统可以根据客户需求,独自设置自己所需焊接的样式。ADT-TS540是整个系统的核心,由嵌入式系统、微电脑芯片、运动芯片等组成,采用SANSUNG系列的S3C44BOX单片机(ARM7),主频64MHZ,内含2M NOR FLASH ROM、8M SDRAM以及32M NAND FLASH ROM,可支持USB1.1 接口设备,现场四轴步进/伺服脉冲光耦输出,最高频率可达4MHZ,它内含32路光耦输入,4轴编码器AB相脉冲输入,16路光耦输出,4路脉冲/方向信号输出,RS232/485通信模块,U盘功能,可现场编程。采用单色图形液晶显示屏,320x240点阵。; E& U& l: K+ M+ R9 D6 T/ X X5 I
嵌入式控制系统接收到外部启动信号后,系统根据客户预先设计焊接轨迹数据,开始发送位置指令给外部步进电机或伺服电机驱动器,驱动器功率放大以后,控制电机作相应运动。系统运动过程中,可以随时暂停,在线调整参数,如:速度,加速度 等参数。在软件和硬件上都作了抗干扰措施,以防止在程式跑飞了情况下,系统无限的发送脉冲给电机,当电机运动到指定位置时,能立刻停止下来,以免损坏系统。
/ ?3 X& Q( l. k5 F) {3 L& @+ Z3系统的实现
" z9 G$ {5 G3 \7 ?* `3.1 前端控制系统
& v7 r6 d+ Q8 I. [0 y 焊接机采用嵌入式系统来实现,原理如图2,将操作系统和应用软件存储在Flash芯片中,嵌入式系统通过读取存储系统的数据,发送到运动系统,运动系统控制步进电机或伺服电机以实现焊接功能,串口可以用来和远端的主机通信,将当前的一些数据发送给主机,实现系统功能的扩展。
) T2 P/ O/ y( `. Z3 j- @3 S; }http://www.adtechcn.com/news/myupload/20070106539.gif- }7 n% K2 I7 W. Y
图27 s7 b. @1 \9 G& a! l7 S
3.2 嵌入式系统软件结构
& _+ a1 Y" C% B5 q: s0 H 本系统采用ARM744B0X芯片作为硬件平台,UC/OS_II作为软件操作系统。; J* c B+ N' H |/ d6 h
ARM(Advanced RISC Machines)是微处理行业的一家知名企业Samsung公司设计的高性能、廉价、耗能低的RISC处理器,相关技术以及软件技术具有性能高、成本低和能耗省的特点,适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。ARM744B0X使用ARM架够体系中较低端的处理器核,也是世界上广泛使用的32位嵌入式RISC处理器。
' X) n0 g8 U, P' r0 d- f UC/OS_II操作系统是一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分,良好的持续发展能力,高性能的内核以及友好的用户开发环境、在嵌入式实时操作系统领域占据一席之地。
% J4 C4 j+ ~& U5 M* @ 软件编写工作主要包括:操作系统的裁减、应用程序的编写。
% C& Q( y. d, R8 N& c UC/OS_II由一个体积很小的内核以及一些可以根据需要进行定制的系统模块组成。UC/OS_II内核最小可以达到2.7KB,即便加上其他必要模块,所占用的空间也很小,且不失其实时多任务的系统特性,由于它的高度灵活性,用户可以很容易地对这一操作系统进行定制或作适当开发,来满足系统的实际应用需要。) Y$ p3 N) [) Q9 s% S- L% J* ?
3.3 应用系统工艺流程* }0 y. n5 S ^" c a T4 x
(1)调节好小车行走速度以及焊接电流等等的所有参数后。; e( D2 {: w) z3 }& q1 s, T
(2)按焊接开关,系统发出一个闭合信号给焊枪启动,然后再按设定的参数开始焊接及控制小车行走。
( v/ r4 E4 a% p' C% a(3)当小车按设定的参数从零点开始焊接直到焊接终点后,小车停止,焊接停止,假设进入继续运行程序,(焊枪升高)小车将延时0至5秒后,自动返回到零点上。- ~6 [1 [7 |/ }
(4)小车停止在零点上后,假设进入继续程序时,(左压件)汽缸会自动关闭,左工件松开;(右压件)汽缸自动关闭,右工件松开。6 v9 S& T' y; R: U" V* {0 Z
(5)当两边压件汽缸松开后取出工件,动作完成。# F Y' n1 a9 s- F
3.4 应用系统任务结构
! D3 Q0 K0 a' A* j 应用程序采用多任务结构,任务划分如下:) R0 i$ X+ w9 Y
系统显示任务:) h3 d: B2 w0 X, g5 _/ R6 ~* O9 e
系统运行过程中,根据任务间的不同标志位,显示不同模式的界面。
' X0 j3 g5 |2 Y$ U. ~+ x信号检测任务:
! P. r% E8 a, \! E) E$ u; ` l 此任务检测按键信号以及外部信号检测。
. c4 w5 G; K& C# b" q运动模式任务:
- I$ E! \0 A" M2 U# A 实现运动的轨迹,此为焊接机的核心任务,它处理的是焊接效果是直线插补,也可以是圆弧插补。
8 V6 f: }; \. e3.5 应用系统部分操作流程图
2 s/ D- n; o" N$ o Vhttp://www.adtechcn.com/news/myupload/20070106540.gif
3 h" L0 G5 n1 k4 x1 N8 m. N; p; R7 r图3
* d2 z# d* S1 O: ]- \3.6 系统焊接轨迹及分析+ p% _- \1 f5 W
本系统可以焊接直线和圆弧,可以是开环结构,也可以闭环结构,现以一简单焊接为例,如图4:8 F# s' t3 E! l: D1 L
http://www.adtechcn.com/news/myupload/20070106541.gif
: v" w- T! _0 h p% f图 4! m3 n8 Q9 E+ V& ]. P
在系统运行前,系统模拟一坐标系,原点为o(0,0),焊接轨迹分为1、2、3、4部分,并且1、2、3、4部分的开始坐标和终点坐标由系统设置。系统案例从1部分的直线上任意一点开始运行,开始运行时,系统可以通过“小车向前”或“小车向后”运动寻找开始运行点,该点可以在1部分的任意,由于焊接现场情况比较复杂,该起始点的定位由为重要,起始定位不当,可能焊接的效果可能不合要求。定位好起始点的xy坐标以后,系统自动记录该点的坐标,以备运行完4部分弧线以后,再从1部分直线的开始坐标运行到起点坐标。在直线焊接时,可以根据系统设置方便可用直线插补运行方式也可单轴运行方式,这两个方式运行出的结果都可以实现相同的轨迹。在运行完1部分直线以后2部分开始之前,这两个轨迹间有个拐角,如果系统要求精度高的,那么可以先运行完1部分然后减速停止以后再接着开始焊接2部分弧线,这样的效果好,但是运行的效率比较低,其中就浪费了一些时间,换言之就是以时间作为代价获得好的焊接效果。根据MCX314运动芯片资料,我们可以从另一方案得到这样的焊接轨迹,不过焊接的效果可能会出现有所偏差,但是运行速度明显比方案一的快,如图5:' S9 K. v) W) g0 i. a6 |; {
http://www.adtechcn.com/news/myupload/20070106542.gif
; G; S/ p/ Z+ Q1 n图54 d8 z0 m9 N8 g, h) }& N
方案一速度的变化为: 直线速度停止速度圆弧速度% q5 Z& P0 C* a" `2 j" H) X4 r
方案二速度的变化为: 直线运行快到终点的时,速度慢慢下降,在达到终点时,速度在图5的虚线部分,此时开始运行圆弧运动。这就节约了从停止开始加速到虚线位置的时间。3、4部分焊接与1、2部分类似,只是运动的方向有所改变。实际生产中,根据需求从中选择所需合理方案。) V' u+ z& v' m6 i( v
. Y. f0 ]% X/ c3.7 系统任务分配程序
3 q7 E2 R& z8 avoid Task_DISP(void *Id)1 x* \+ ~0 ^/ ]. M8 s
{: f2 Y5 z4 y/ S0 S" a' @+ R2 [
for(; $ o% C$ b9 M+ |5 @0 I& g6 _/ k8 p
{- ^$ W4 e) b: d9 ]/ o
system_menu_disp();' k- c i$ ~" _6 I
OSTimeDly(100);
6 a! R6 h; z3 J& p1 Y }
! v7 \ L3 P) ?5 W8 C5 |}5 o8 ]( a9 s: J3 f% ^
8 l. z$ L% ?% f- w) cvoid Task_KEY(void *Id)
+ t- F5 K0 `4 X# l4 ]# H{6 k- {/ | A6 A6 q' J* p
for(;;)! H: z s7 D6 _% I
{0 t* \1 m, H; g5 I! Q- n
system_key_input();" y7 I e7 E$ S- a
OSTimeDly(100);
7 w2 T# e3 t* A }
- F6 `8 b. V; R0 g7 S6 r}% {& j: A; X3 p/ \
7 U: {; I- V& n; ]void Task_RUN(void *Id)
2 W1 Y6 A1 n+ o5 _$ t9 o! E{
/ {( C+ z- Y/ p7 K2 b3 E- y6 F% Z" w for(;;)
, H7 f5 [" E5 X( ?# M {
$ _/ H9 j; {/ d; }3 b run();
; \7 `1 W# E/ W I- @0 ^ OSTimeDly(200);
# X$ J; x5 i% Q- z- I3 \ }
% H! X7 I- Z% q& h! k; y# s6 `}5 u/ d- D; T, Z. j: N6 x9 H
% |( q M( K T8 R; T' E/******************************************************************************
- {/ w1 E: ^ E, ]/ b【功能说明】主任务,在本任务中启动系统定时器并创建其他任务
" F7 f" Y" W+ O1 N% \8 _3 ^& [******************************************************************************/
. ^1 p" c4 ~ q l6 L' e7 \) r. ~( B* m4 o
void Main_Task( void *Id )& u! m/ W& v+ J1 r/ [' l
{
8 R# b2 S5 P2 M- X( A0 h/ _ INT8U err;5 z" m1 z2 H& M4 S) A. \
Uart_Printf("nEnter Main_Task...n");- @+ G2 M' F/ ~$ e
ARMStartTimer();* l. J, G" _1 b) N
OSStatInit();6 z& j3 A& b" ?9 p- W& X% S
Inital_File(); //初始化文件夹以及个人参数
* d5 Z% J% z( u; O //主任务
6 O( C* c [% y4 f$ o- P. B8 m OSTaskCreate( Task_RUN, (void *)0, (OS_STK *)&Task_STOP_Stack[TASK_STACK_SIZE*2-1>, Task_STOP_PRIO ) ;
" |/ |( ^$ d- ^ OSTaskCreate( Task_DISP, (void *)0, (OS_STK *)&Task_DISP_Stack[TASK_STACK_SIZE-1>, Task_DISP_PRIO ) ;
- o0 c3 {+ b, w/ M2 @. n OSTaskCreate( Task_KEY, (void *)0, (OS_STK *)&Task_KEY_Stack[TASK_STACK_SIZE-1>, Task_KEY_PRIO ) ;% \9 Z# }0 b" h7 X9 c
for( ; ; ) 1 K$ S9 ^; h9 G0 a8 V: y) v, E6 c; ?% E
{5 A& X% \1 S! k8 u& m6 t3 }
OSTimeDly(10000); 1 y _" `* f4 }4 ]. B
OSSemPend(UART0_SEM, 0, &err) ; ( x' Y8 \. f( q
Uart_Printf( "n+++++++++" ) ;( w' C2 ^8 w9 c
Uart_Printf( "OSCPUUsage = %d n", OSCPUUsage ) ;
, q& Y3 a) O, T2 x+ q; `& P OSSemPost(UART0_SEM) ; //置起指定的信号量3 k% E, X8 K2 [" q* a2 N
}2 u% x7 @4 h0 V; s2 Y5 p
}
. a) |, |3 r4 b" S; s6 i
- v3 t& U( x G1 u: v1 l其中主任务为Main_Task( void *Id ),该任务是创建3个任务,分别为:Task_RUN()、Task_DISP()、Task_KEY()。此三个任务在3.4 应用系统任务结构中分别有介绍。
{4 v$ k5 W; ]* D! o2 N2 M, D$ Q) w4结束语
+ u, u5 z" H. J1 x r该焊接机控制系统采用高性能的MCX系列的运动芯片,可以输出脉冲高达4MHZ,且脉冲丢失率低,又是基于UC/OS_II的嵌入式系统的使用,大大加快了系统的实时性和可靠性,该系统的建立有效的提高工业焊接的生产率,它必将成为将来中小型工业控制系统的手选。3 _# E9 S1 f1 R* G* e6 I" ~( {
5参考文献
3 W0 }, L1 L' ?[1> 吴明晖 . 基于ARM的嵌入式系统开发与应用。[M> 人民邮电出版社,2006.6) l) Z! N" d' z$ p$ L+ w
[2> 田 泽 . 嵌入式系统开发与应用。[M> 北京航空航天大学出版社,2005.1[/td][td][table=98%,#ebebeb][/table] |
|