为机床工具企业提供深度市场分析                     

用户名:   密码:         免费注册  |   申请VIP  |  

English  |   German  |   Japanese  |   添加收藏  |  
广州数控
数控系统

车床 铣床 钻床 数控系统 加工中心 锻压机床 刨插拉床 螺纹加工机床 齿轮加工机床
磨床 镗床 刀具 功能部件 配件附件 检验测量 机床电器 特种加工 机器人

数控系统

电工电力 工程机械 航空航天 汽车 模具
仪器仪表 通用机械 轨道交通 船舶

搜索
热门关键字:

数控机床

 | 数控车床 | 数控系统 | 滚齿机 | 数控铣床 | 铣刀 | 主轴 | 立式加工中心 | 机器人
您现在的位置:数控系统网> 技术前沿> 嵌入式伺服控制器调试软件的研究
嵌入式伺服控制器调试软件的研究
2017-7-25  来源:中国科学院大学  作者:史秀玉,何 平,王志成,,吴文江,张玉磊

      摘要: 随着工业控制领域的不断发展,传统的控制器已经无法满足用户在线调试的需求,只能通过仿真得到实验结果,这种系统仿真具有一定的理想性。针对传统控制器的缺陷,提出设计一种嵌入式伺服控制器调试软件,能有效弥补这一缺陷。文章采用. NET Framework 平台及 Visual Studio 集成开发环境,基于嵌入式伺服控制器设计了编辑器、汇编器以及调试器( 硬件在回路仿真测试系统) 。运用硬件在回路( Hardware-in-the-loop,HIL) 技术,让处理器运行仿真模型来模拟电机的运行状态,满足了用户实时调试的需求。

      关键词: Visual Studio; HIL; 嵌入式伺服控制器; 调试软件

      0.引言

      随着微控制器的快速发展,其应用已经遍及各个领域,如: 电机控制、工业自动化等。传统控制器中,单轴控制器和伺服驱动器采用分立的设计结构,系统成本高、通讯时延长、灵活性差。因此,嵌入式单轴控制器应运而生,它将单轴控制器和伺服驱动器结合在一起,解决了传统控制器的缺陷; 嵌入式单轴控制器的出现也对调试工具提出了新的要求,在对指令进行编辑编译的同时,也需要满足用户的实时调试的需求。目前国内尚无成熟的嵌入式伺服控制器调试软件,因此在参考文献[1]的基础上,文章设计了基于嵌入式伺服控制器的调试软件。嵌入式伺服控制器调试软件可用于实现运动控制器监控、编码器角度检测、Osci 控制等功能,其核心功能是编辑、汇编以及调试,其中,调试功能采用了硬件在回路的仿真设计,硬件在回路仿真已逐渐成为控制系统设计的重要工具[2],满足了用户实时调试的需求。

      1.总体结构设计

      1.1 伺服控制系统

      伺服控制系统整体的工作流程如图 1 所示: 用户在上位 PC 机的调试软件上编写程序,通过 USB 端口将程序指令代码序列下载到嵌入式单轴控制器中,解释器模块对下载的代码序列进行解释处理并调用相应的处理函数,得到电机的运动参数,因为单轴控制器和伺服驱动器共享内存,伺服驱动器可以根据参数直接控制电机的运动轨迹,不需要再使用通讯接口。其中,运动控制器中变量监测模块保存记录数据,并将各个变量同样通过 USB 接口反馈给上位 PC 机调试软件中的调试器,便于用户实时调试,控制电机的运转轨迹。


图 1 伺服控制系统结构

      1.2 伺服驱动指令

      伺服驱动指令由汇编器汇编,具有一定的指令格式,包括指令标识符和相关的参数。统一编译为二进制代码,根据指令标识符的不同,调用不同的指令处理函数,当然这就是解释器的功能了,不是我们讨论的范畴。根据参考文献[1]设计的伺服驱动指令集,设计一个类,定义统一的指令规范格式,定义各个变量,分别存储助记符的名称、指令代码、参数个数以及各个参数。定义该类型的数组,数组中存放的是所有的指令集合,最后定义所有输入输出参数可能的类型指令。

      2.调试软件的设计

      2.1 编辑器的设计

      采用 Visual Studio 平台的 rich Text Box 组件,在 C#win Form 程序中作为汇编器的编辑界面,同时采用 la-bel 控件为代码添加行号。为 Label 控件添加 Paint 事件,来实现行号的添加。具体代码设计如图 2 所示:


图 2 绘制行号

      其中,line Num Point 是一个 List 数组,存放的是Point 类型的数。Line Num Point 中的坐标是由 Line N-um Point. Add( ) 函数逐一添加的。遍历该数组得到数组中元素的个数( 即行数) ,g. Draw String( ) 函数绘制行号。此中存在一个设计难点,就是滚动条的问题。随着滚动条的滚动,行号需要不断的刷新才能满足正常的需要。为此设计一个滚动条的垂直滚动事件( rich Text Box 的 VScroll 事件) ,实现行号的刷新。首先用 clear( ) 函数将坐标数组清空,重新计算字符串坐标,我 们 知 道 文 本 框 的 行 数,即 rich Text Box. Line.Length,先用 Get First Char Index From Line ( ) 函数从行号得到给定行第一个字符的索引,再根据函数 Get Posi-tion From Char Index( ) 得到字符在指定索引处的位置,进而得到每行行号的坐标。到此为止,编辑器已经做好了,但是为了使其更加美观实用,这里为其实现了关键字高亮。高亮代码如图 3 所示。


图 3关键字高亮

      2.2 汇编器的设计

      汇编器需要在上位 PC 机调试软件中使用,在上位 PC 机调试软件的编辑器的编辑框里输入相关的汇编指令,汇编器将这些汇编指令一一进行汇编,即编译为可执行的二进制代码,如果编译不通过,则需进行相应的代码调试,直至编译通过为止。汇编过程的流程图如图 4 所示。


图 4 汇编程序流程图

      2. 2.1 定义用户输入指令

      定义用户输入指令类,包括的变量有: 用户输入命令的名称 name,参数 arg X,参数 arg Y,参数 a-rg Z,行号line,String 类型的输入参数数组 in Arg,Int32 类型的输出参数数组 out Arg,以及 byte 类型的数组 bin,长度等于 8,一条指令的长度,8 个字节,用于保存编译后的二进制指令。

      2.2.2 设计难点

      设计过程中需要考虑的两大问题,第一: 若用户输入的有空白行,则必须先去除空白行,否则就算编程让




    投稿箱:
        如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com