0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于HCS08运动控制系统的数控工作台的软件设计与建模方法

电子设计 来源:郭婷 作者:电子设计 2019-05-03 08:55 次阅读

随着电子技术的发展和运动控制技术的成熟,人们开始将运动控制技术应用于测量设备,产生了数控工作台。数控工作台是利用运动控制系统控制工作台的运动机构动作,以运动到需要的位置,大大提高了工件测量的效率。

UML是一种可用于大型系统建模的统一建模语言, 它不仅支持面向对象的分析和设计, 还支持软件开发过程,利用不同的模型来描述一个应用系统在不同生命周期中的各种静态结构方面和动态行为方面的特征, 为任何具有静态结构和动态行为的系统建模,同时提供模型扩展和管理等方面的支持。

本文针对数控工作台的功能特点,以自主开发的基于HCS08运动控制系统为平台,并以UML为工具,设计相应的软件,满足实际生产需要。

1 数控工作台控制原理

工作台运动系统主要由手柄、载物台等运动机构组成。系统以Freescale HCS08型单片机为核心的运动控制器作为下位机,通过控制伺服电机驱动器来实现对载物台上下、左右、前后运动的控制,以PC作为上位机来实现调速、自动校零、自动找零、位置显示等。

上下位机通过串口进行数据传输。工作台工作时,用户将测量工件(如丝杆)放在载物台上,通过操作手柄让载物台走到测量范围内,通过手柄的高低速按键控制电机的高速或低速运动,方便测量时的粗调和微调。

2 数控工作台功能分析

本文的主要任务是根据用户对系统功能需求进行分析,通过对整个系统框架进行构造和实现下位机软件设计与建模。下位机是整个系统的中间层,主要功能是根据接收的数据和指令控制工作台运动。通过上位机界面可以设定各轴的速度和电机转动方向,以及实时位置显示、零点位置显示等,具体可为自动找零、校零、手动操作、伺服报警信号等。

对于下位机,参与者包括用户、上位机、限位开关、手柄、伺服电机。用户除了可以通过上位机软件显示零点位置、实时位置之外,还可以通过调速界面调整伺服电机转速和方向,故下位机的用户用例为手柄控制。上位机和下位机的连接是系统的关键部分,是整个系统正常运转的通道。伺服电机是动作的执行者,根据下位机的指令进行动作,其用例主要是高低速度控制。限位开关的用例主要包括I/O信号、限位、故障报警。

根据上面的用例分析,使用UML构造下位机的用例图,如图1所示。

基于HCS08运动控制系统的数控工作台的软件设计与建模方法

图1 下位机的用例图

3 下位机软件结构

3.1下位机软件状态模型

通过对数控工作台下位机用例图的分析可以将下位机软件按状态分为几个模块:自动找零点状态、手动控制状态、校零状态、故障状态等。采用UML状态图可以将参与交互的模块及模块之间的消息交互表示清楚,可以比较直观、高效地建立软件的状态模型。建模如图2所示。

基于HCS08运动控制系统的数控工作台的软件设计与建模方法

图2 下位机软件状态模型

系统进入工作状态时首先进入自动找零状态。在自动找零状态下,下位机主程序读取Flash存储的信息,对3个轴的电机按照先Z轴找零,再X轴、Y轴同时找零的顺序发脉冲,使工作台运动到工作起点位置。

一旦自动找零完成之后,系统状态就会自动转移到手动控制状态中去。例如通过手柄控制让电机走到某个位置,同时通过手柄上的高低速切换按键让工作台实现高或低速运动。

校零是设定当前的位置为零点位置,通过上位机操作将数据写入Flash中,在下次上电工作时工作台会在自动找零时,自动运行到这个设定的零点位置。由图2可以清楚地看到,整个状态模型可以分为4个部分:自动找零状态、手动控制状态(包括高低速转换、三轴电机运动的方向)、校零状态和故障状态。其中故障状态可以与其他的状态根据转移条件发生状态转移,而手动控制状态只能与校零状态和故障状态根据转移条件发生状态转移,其内部各个状态之间不能发生状态转移,这是由工作台的工作特性所决定的。从上电开始工作,在同一时间内只允许进行一种活动,只有在当前活动结束后才允许进行其他的活动,这种工作台的工作特性就可以用UML状态图清晰地表现出来,使得任何人都能对系统软件模型有比较直观的认识。

根据状态来划分整个系统软件结构,可以有效地对系统工作进行掌控,防止软件功能互相耦合而引起逻辑混乱。简单来说,当系统正处在手动控制中,如果此时收到校零指令,系统就可以根据当前状态转移条件转移到校零状态,工作台会按顺序依次走到各轴的两端限位位置,将两端限位之间的距离保存到Flash中以便下次读取,这样就提高了系统的稳定性和可靠性。

3.2 下位机软件算法活动模型

鉴于数控工作台在日常生产中对于控制的要求,以及Freescale HCS08的特点,在设计软件算法程序时,对电机发脉冲采用PWM重载中断的方式,这样极大地发挥了芯片的性能,并且提高了程序的可靠性。下面采用UML活动图将主循环流程按照时间的顺序展开,如图3所示。

基于HCS08运动控制系统的数控工作台的软件设计与建模方法

图3 下位机程序主循环活动模型

从图3中能够清楚地看到下位机程序就是一直循环采集和事件处理的过程。系统一上电首先对硬件模块和软件功能进行初始化设置,保证程序处在可运行状态。然后程序进入主循环,先进行事件采集,包括读写Flash、串口数据接收、限位传感器输入信号以及伺服报警信号采集。如果没有事件发生,则程序一直处于事件采集状态;如果有事件发生,则对采集到的事件进行分析决策。事件决策则是对当前系统状态进行判断和转移,决定哪些事件可以被执行。最后事件分配和事件处理则是将被允许执行的事件分配给相关的执行函数,调用相关函数来对事件进行处理,完成后返回到主循环开始,而程序也因此周而复始地一直执行下去。

由此可以看出,在程序中事件按从总体到个别的顺序被执行,每一步都有明确的目的性和层次性,条理清晰,逻辑清楚,这样就使得程序在编制和维护时简单易行。

由于下位机采用的Freescale HCS08型单片机作为控制系统核心,其运算处理速度能达到每秒20 M条指令,这样就使得下位机程序对外部事件有了较高的响应速度和处理速度,其实时性可以比较好地满足数控工作台的应用需求。

3.3 下位机软件通信模块设计

Freescale HCS08单片机采用异步通信RS-232作为串行通信协议,其适用于设备之间的通信距离不大于15 m、传输速度最大为20 KB/s的数据传输领域。本系统采用标准不归零NRZ(Non Return to Zero)的数据格式进行数据交互。

本文介绍了数控工作台下位机程序设计与建模,分析和构建了下位机软件的主要功能、实现方式和软件算法,并通过UML图分别展示了下位机供需用例图、软件状态模型和主循环活动模型。使用UML图进行软件设计使得软件层次更加清晰,结构严谨,可维护性强,充分体现出UML图在面向对象的软件编程中起到的重要作用。同时,本文所叙述的软件设计与建模的方法, 对其他下位机的软件开发也有很好的借鉴作用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    51

    文章

    8018

    浏览量

    145256
  • 控制系统
    +关注

    关注

    41

    文章

    6441

    浏览量

    110170
  • 测量
    +关注

    关注

    10

    文章

    4657

    浏览量

    110755
收藏 人收藏

    评论

    相关推荐

    请问基于labview的X/Y工作台运动控制系统该怎么办写?

    请问基于labview的X/Y工作台运动控制系统该怎么办写?有这方面的资料吗,求分享。
    发表于 12-03 10:10

    基于HCS08系列MCU的仪表步进电机驱动

    较贵的带驱动电路的MCU,而是用普通的MCU直接去驱动步进电机。本文介绍了在Freescale的HCS08系列MCU上,如何用软件来实现对VID29系列步进电机的直接驱动。本文所附带的程序,已经在Freescale的LG32 Cluster Reference Desig
    发表于 07-22 08:28

    怎么在HCS08系列MCU上用软件实现仪表步进电机的驱动?

    VID29系列步进电机的工作原理是什么怎么在HCS08系列MCU上用软件实现仪表步进电机的驱动?
    发表于 05-12 06:28

    如何对数控直线工作台直线控制系统进行仿真?

    数控直线工作台直线控制系统工作原理是什么?数控直线工作台直线
    发表于 07-13 08:35

    两坐标步进电机驱动运动工作台控制系统的设计

    设计是完成一两坐标步进电机驱动运动工作台控制系统的设计;完成交流电机启停的电气控制系统设计。其硬件部分共包括键盘操作、单片机控制、输入电路、控制
    发表于 04-11 18:19 7次下载

    深入讨论HCS08的内部时钟源模块

    本文档将深入介绍内部时钟源模块(Internal ClockSource, ICS),该模块可以在部分HCS08 系列微控制器中找到。对HCS08 MCU 来说, ICS 模块不但是一个非常灵活的时钟源,而且对于该系列
    发表于 04-17 22:08 13次下载

    HCS08中文资料 pdf

    新型的FreescaleHCS08 系列微控制器,尽管包含新指令,可以执行快速调试和开发功能,但仍然和旧的M68HC08 系列完全兼容。这个参考手册使用第一个HCS08 系列的成员——
    发表于 01-11 14:20 90次下载

    HCS08系列单片机的低功耗特性

    摘要:本文主要介绍了飞思卡尔HCS08系列8位单片机的低功耗特性。丈章对比HC08系列单片机,介绍了HCS08系列单片机在STOP模式方面的改进,并评细说明了3种STOP子模式。另外,文幸还介
    发表于 09-19 21:07 40次下载

    基于HCS08数控工作台控制系统设计

    以自主开发的基于Freescale HCS08运动控制嵌入式系统为平台,以用户对数控工作台的需
    发表于 11-30 15:06 25次下载

    基于飞思卡尔HCS08的汽车ECAS设计

    基于飞思卡尔HCS08的汽车ECAS设计 摘要:设计了一种以飞思卡尔MC9S08GB60 单片机为控制核心的汽车电控空气悬架系统。着重阐述了其硬件电路
    发表于 07-11 14:39 2974次阅读
    基于飞思卡尔<b class='flag-5'>HCS08</b>的汽车ECAS设计

    MC9S08LC60,pdf(low-cost, high-performance HCS08)

    MC9S08LC60 Series MCUs are members of the low-cost, high-performance HCS08 Family
    发表于 05-12 15:14 35次下载
    MC9S<b class='flag-5'>08</b>LC60,pdf(low-cost, high-performance <b class='flag-5'>HCS08</b>)

    M68HC08HCS08系列MCU开发的串行引导程序

    针对M68HC08HCS08控制器单元(MCU)的串行引导程序,选用标准的通信媒介,如串行异步端口,对Freescale半导体公司的M68HC08
    发表于 08-31 15:19 57次下载
    M68HC<b class='flag-5'>08</b>和<b class='flag-5'>HCS08</b>系列MCU开发的串行引导程序

    HCS08系列微控制器介绍

    新型的FreescaleHCS08 系列微控制器,尽管包含新指令,可以执行快速调试和开发功能,但仍然和旧的M68HC08 系列完全兼容。这个参考手册使用第一个HCS08 系列的成员MC
    发表于 09-05 11:57 0次下载
    <b class='flag-5'>HCS08</b>系列微<b class='flag-5'>控制</b>器介绍

    工作台

    基于FLASH软件设计的动画,演示工作台的正反转过程。
    发表于 05-27 16:44 0次下载

    基于单片机控制步进电机驱动的XY工作台

    我设计的是单片机控制步进电动机驱动的XY工作台。首先确定设计的总体方案,然后对机械部分进行设计,其中包括工作台、滚动导轨、滚珠丝杠、步进电动机的设计和选用,最后对数控系统硬件和
    发表于 04-23 09:18 12次下载
    基于单片机<b class='flag-5'>控制</b>步进电机驱动的XY<b class='flag-5'>工作台</b>