茅 飞
基于轨道车辆门系统控制的图形化开发平台设计
茅 飞
(南京康尼电子科技有限公司,江苏 南京 210038)
轨道车辆门系统是轨道车辆的重要组成部分,传统的门控制软件设计方式是根据门系统的实际需求,编写文本语言代码,实现DSP驱动无刷直流电机。但对于大型企业,客户繁多,而且不同项目之间的差异比较小,若采用上述方式设计控制程序,会浪费过多的设计时间,而且底层源代码经过多位设计人员的修改,容易造成软件泄密。因此,本文采用图形化的编程方式来设计门系统控制程序,基于门系统控制软件设计的图形化开发平台,通过编写图形化控制软件,实现车辆门系统的逻辑控制功能。
门系统,DSP,图形化
轨道交通车辆对门系统的要求极高,门系统质量直接关系到车辆的安全[1]。门系统主要功能为通过门控器控制电机开关车门,故障诊断存储,网络通讯等功能,其控制对象主要为电机。传统的电机驱动程序,由开发人员在上位机编辑软件中编写电机控制源程序,编写完成的源程序经过编译器编译后,生成可执行文件,再下载到门控器DSP(Digital Signal Process)芯片。以上方式对于客户比较单一或者小型企业来说,可能比较适用,但对于大型企业,项目过多,设计人员疲于应对,而且还增加了软件代码泄密的风险。
基于以上现状,采用操作简单、修改方便、封装性好的创新方法,设计出基于图形化的门系统开发平台,用来替代原有的编程平台。采用Visual Studio C#.NET集成开发环境开发出一款界面交互性好、参数覆盖广、模块集成度高、软件扩展性强的图形化配置工具,结合DSP控制电机,可以简化门系统电机驱动程序的设计,缩短项目开发周期,满足企业的实际需求。
轨道车辆门系统的控制核心为门控器,作用对象主要有电机、指示灯、蜂鸣器等,门系统控制器根据输入信号的要求,发送控制指令,驱动电机,电机驱动门板,系统功能得以实现。其结构如图1所示。
门控器中央处理器为TI公司开发的DSP控制器,DSP是为电机控制应用而优化的数字芯片处理器。电机类型为无刷直流电机。利用DSP芯片控制无刷直流电机,可以对电机信号快速地作出响应。
DSP芯片控制无刷直流电动机的策略,在硬件电路设计中,主要为DSP数字信号处理器和无刷直流电机电路设计。采用双闭环的控制方式完成DSP对BLDCM的控制。DSP芯片的3个捕获单元cap管脚与无刷直流电机霍尔元件相接,用以获取电机的位置和速度信息,速度值的大小则根据两位置交变时刻之间的位置变化通过计算得到[2-3]。速度信号经过速度调节器调节后作为相应的电流给定值,速度调节器由PI控制器来实现。电流值经过电流调节器的输出再去控制PWM装置,PWM信号控制驱动电路中功率电子开关的导通截止,用来驱动电机,其中电流调节器也采用的是PI调节。驱动电机的电流又经过电流采样和A/D转换,反馈到电流调节器,用来对电流进行反馈控制,无刷直流电机按照导通相序周而复始的转动,并通过PI调节器的调节,产生稳定的转速,驱动车辆门的开关。其硬件框图如图2所示。
图1 门控器结构
图2 系统硬件框图
图形化编程是通过图形化的表现形式,用抽象的图形语言实现程序的设计。图形化编程是一种源码级的开发方式,它的整个程序编写过程都可视,在编程过程中避免编写字符代码,用户在图形编辑区域,拖放功能组件到指定位置,像搭“积木”一样搭建出所见即所得的图形程序,编程人员可以比较容易掌控整个程序的功能开发以及程序的设计 过程[4-6]。
目前国内外对于图形化开发平台的研发涌现出了许多的新技术、新方法,其中最主要的设计方式是基于特征提取技术和基于组件技术。
(1)基于特征提取技术
特征提取技术是在模式识别的基础上演变、发展起来的。特征指的是任何已被接受的某一对象的几何功能元素和属性,通过它们可以很好地理解该对象的功能、行为和操作。对于比较特殊的行业,例如机器人系统,许多的动作指令必须分步骤来实现,这些步骤的集合则构成了一个特征集,而针对这些分步骤建立起来的信息库,可以完整地表示该动作,该过程称之为特征提取。
(2)基于组件技术
基于组件技术从软件角度来定义的话,是把一个巨大的应用程序软件分成若干个功能模块,并且保持每个功能模块在功能上的独立性,在调用功能模块的时候通过模块之间的接口协同工作。这样的模块内部保持有功能的内聚性,但模块之间保持着功能的低耦合这样一个特性。一般来说的话,这些组件可以独立的进行设计、开发,并单独编译运行。在程序设计的时候,只需将组件有机的组合,就能实现其功能,完成程序的设计。这种模块组件化的开发方式,类似于面向对象的开发方法,具有良好的封装性以及信息隐蔽功能,还具有良好的继承性和易维护性。
以上基本上涵盖了图形化设计的所有领域,应用范围比较广泛[7-9]。本文主要运用基于组件的技术,在软件设计中,将各功能模块封装为组件,在图形模块的功能扩展中,根据各控制功能模块的特点,将功能信息在组件中以图形符号描述出来,用以区分不同的组件;同时整合DSP驱动无刷直流电机的功能模块,将各功能模块设置成单个的C文件,各图形组件通过调用与之对应的C文件,组合到一起,形成一个完整的C文件工程,图形化编程其实质是对C文件的调用。
围绕图形化开发平台的设计,主要分为三部分:平台框架设计、图形编程区设计、编译功能设计[10]。平台的框架设计综合考虑产品的各组成部分,合理分配界面组成区域,确定产品的大致框架和产品的功能属性。编程区设计包括画布编程区的设计和图元模块的设计,二者组合生成图形化程序。编译功能指对源程序代码的转换,转换结果在编译输出区可见,并能提示编译错误。该产品经过上述设计后,基本上具备了图形化开发平台的所有功能,软件总体结构如图3所示。
图3 开发平台总体设计示意图
(1)平台界面区设计
平台主体界面包括菜单栏和工具栏,如图4所示。其中菜单栏包括文件、视图、工具等五部分,文件的子栏实现工程的创建、打开、保存以及退出功能。
新建项目时,图形化开发平台会生成一个完整的图形化工程,它包含以下三个文件夹:
Projectfile:用于存放图形化编辑得到的结果,也可以放置CCS的基础工程。
CCSproject:拷贝自基础工程,编程工具可以有两个编译步骤。第一,检查编辑的图形是否正常,各项配置值是否合法;第二,将修改正常的C文件拷贝到CCSproject,启动工程编译。
Binfile:拷贝CCS工程编译的结果。
工具栏与菜单栏的功能相似,是对菜单栏功能的联调,是菜单栏中常用快捷方式的具体体现。子栏以图标的形式在工具栏中显示,方便用户使用。
图4 开发平台界面结构示意图
(2)图形编程区设计
图形编程区的设计包括画布的设计和图形模块的设计。对于画布的设计,采用扩展Panel控件的方式,通过修改控件功能,生成新的FlatTabControl控件。FlatTabControl控件支持图形程序的绘制,可以在画布的任意区域放置图形模块,支持编程界面的自适应软件框架,支持右键单击等等。由于二维坐标可以表示出界面上的任意一点,组件界面以二维坐标的方式,将界面拆分成由若干个点所组成,由点的坐标再来确定图形模块的位置,实现对界面移动目标位置信息的标记。图形模块也是在C#原有控件的基础上,扩展控件结构,增加组件功能,使之满足图形模块要求。图形模块分为两大类,一类是功能模块,另一类是连线模块。在扩展button组件时,主要从两个方面进行扩展,一个是组件的外观,另一个是组件的文件属性。组件的外观包括连接点的设置以及模块的样式。连接点的位置取button组件的高和宽的中点,高和宽长度的计算可根据组件的横纵坐标值通过计算得到;图形模块的形状与button组件相似,但在整体表现风格上,区别于原有组件。组件的文件属性指点击组件时的功能响应,功能模块需要实现模块所封装的函数功能,系统将函数文件同步复制到工程中,系统对图形模块的设置可同步反映到工程文件中。
图5 图形模块功能扩展
图形模块生成后,接下来完成模块功能。将图形模块与模块功能函数绑定链接在一起,实现模块与C文件动态地同步联动。在图形化编程时,图形模块被拖放到编程区,C函数文件随着图形模块也被复制到所在的工程,工程函数再根据具体项目的要求设置电机参数值,执行相应的指令[11-12]。这样整个编程区的功能就实现了。
(3)编译功能区设计
图形化开发平台生成的源代码,下位机无法识别其代码指令,需要进行编译转换。如果直接设计一个编译器,技术难度太大,而且花费的时间也较多,不可取。在此所采用的方法是调用CCStudio编辑软件的代码编译器,将该编译器内嵌到图形化开发平台,通过点击编译按钮,将编译结果显示在output输出区,生成.out格式的可执行文件。具体实现方式是在点击编译按钮的时候,触发事件响应,调用CCStudio内嵌的timake.exe编译程序,执行其编译功能。
在完成以上述功能后,整个开发平台基本上可以实现程序的图形化设计。图形化开发平台界面如图6所示。
在验证调试图形化开发平台的功能过程中,结合DSP芯片控制无刷直流电机策略,以输入端口信号作为输入指令,控制无刷直流电机的转动停止;以输出端口信号作为电机输出指令,指示电机的运动状态。将图形化开发平台中的motor模块绑定电机控制程序所在的C文件,输入口I0~I3接入110 V正电压,其中I0、I1作为电机启动控制逻辑,I2、I3作为电机停止控制逻辑,其中电机的运动以及停止指令均由输入口的高电平决定;输出LED灯O0作为开门指示灯,O1灯作为关门指示灯,监视门系统的运行情况。
新建工程项目,选择系统工程文件,编写图形程序,并在模块属性窗口设置控制参数。
根据电机的转速情况,相应地调整速度值,使得电机运动速度有规律地变化,并稳定运行。图7为图形程序修改参数后编译生成的界面。
在调试当中,采用中断定时器循环定时,控制电机的转动停止,中断定时器通过设初值为-1,启动定时器,定时器周期为100 ms,置计数周期为40 s,扫描输入端口的输入信号,如果I0或I1管脚有信号输入,电机设为启动模式,调用启动函数程序,电机开始转动;当电机转动运行20 s后,再次扫描输入端口的信号变化,I2或I3管脚有信号输入,电机转为停止模式,调用停止函数程序,电机停止转动;当计数为0时,计时器清零,并置初值为0。其电机控制程序流程图如下8所示。
在电机循环转动过程中,通过修改电机速度的参数值,逐渐增大电机给定值,电机的转速变化明显,其转动速度与电机给定值成正比,可以达到预期的设计目标,取得了良好的控制效果。
将上述电机转动情况与传统方式控制下的电机转动情况进行对比,在初始速度取相同值的情况下,电机的转动速度一致,其转动情况不发生变化;此时修改电机转速,可以看到,采用图形化开发平台编写的电机控制程序,只需在属性窗口中修改电机速度值,经编译运行后,电机的转速立刻就会有变化,这比传统的控制程序编写方式要简单许多,但运行效果却一致。因此,由此可以得出该图形化开发平台可以满足对电机的控制要求,达到了预期的设计目标。
图6 图形化编程界面
图7 图形化程序编译结果
图8 中断定时器控制流程图
从以上所述的图形化开发平台可以看出,采用图形化的编程方式,可以实现DSP对无刷直流电机的控制要求。该控制方式的源码不可见,设计过程简单明了,较好的保护了源码的安全,节约代码编码时间,并且程序结构清晰,可修改性强,易于实现,具有很好的应用推广价值。
[1] 高伟. 智慧门系统的智能监控设计与开发[D]. 南京理工大学, 2013.
[2] 孟彦京, 常杰, 朱玉国.基于DSP的直流无刷电机控制系统设计[J]. 陕西科技大学学报, 2009, 27(3): 101-105.
[3] Digital Motor Control C2000 Systems and Applications[M]. Texas Instruments, 2012.
[4] 李锋. 机器人大脑图形化开发平台的研究[D]. 西安: 长安大学, 2011.
[5] 徐成. 机器人图形化编程系统的设计与实现[D]. 武汉: 武汉理工大学, 2010.
[6] 魏兰, 李文锋, 陈维克. 机器人控制软件的图形化编程系统设计[J]. 计算机工程与设计, 2007, 27(8): 3723-3725.
[7] 谢宣松, 林君. G语言结构及运行模型[J]. 吉林大学学报(工学版), 2006, 36(2): 38-40.
[8] 程学敏. 基于LabVIEW信号分析系统的设计[D]. 兰州: 兰州大学, 2008.
[9] 安晓荣, 吴文江, 彭勇, 等. 有向几何在图形化数控编程系统中的应用[J]. 组合机床与自动化加工技术, 2010, (5): 52-55.
[10] 张为平. 参数化设计研究与实践[J]. 城市建筑, 2009, (11): 112-117.
[11] 金建国, 周明华, 邬学军. 参数化设计综述[J]. 计算机工程与应用, 2003, 39(7): 16-18.
The Design of Graphical Development Platform Based on the Rail Vehicle’s door Control System
MAO Fei
(Nanjing Kangni Technology Industry CO., LTD, Nanjing 210038, China)
Rail vehicle’s door system is an important part of railway vehicle, the traditional way of door control program’s design method is to write the text language code according to each customer’s demand, and realize the brushless DC motor’s driven by DSP. But for large enterprises, there are many customers and the difference between different projects is relatively small. If we use the above way to design control programs, it will waste too much time and the codes’ safety can’t be guaranteed if the source codes is modified by many designers. So, a graphical programming method is adopted to design the control program of the door system in this paper. A graphical development platform based on door system’s control software is designed and implemented, and the logic control function of vehicle‘s door system is realized by compiling graphical control software.
Door system; Digital Signal Processing; Graphing
TP273+.5
A
10.3969/j.issn.1003-6970.2018.09.020
茅飞(1975-),男,硕士,主要研究方向:直流无刷电机数字化驱动、轨道交通设备网络通讯、诊断及维护技术、安全性及可靠性设计。
本文著录格式:茅飞. 基于轨道车辆门系统控制的图形化开发平台设计[J]. 软件,2018,39(9):97-102