3 软件设计
软件的编程语言为C#,采取了自顶向下的设计结构,对功能独立的硬件(如数据采集卡,伺服电机等)编写了独立的类和函数,不仅方便使用和维护,还为今后的代码重用提供了可能,提高代码的重用率。软件设计了大量可调参数,如组合开关的动作列表,可以兼容不同厂家的组合开关,兼容性好,功能强大。
3.1软件系统设计框图
本系统使用面向对象的结构化、模块化设计方法,将整个系统抽象成几个硬件控制类和系统结构类,并使用了表义的变量命名规则,方便使用、维护和调试。整个系统的设计框图见图5。
其中,控制类为Windows Form类,为程序主窗口和动作设定窗口的载体,并负责控制和采集数据。硬件类分别为实际硬件抽象出来的功能类:ServoMotor类为伺服电机的功能类,PCI1718类为研华数据采集卡PCI-1718的功能类,WindowMotion为气缸电磁阀和磁性开关的功能类,Ini为数据存储类。每个类的功能相对独立,类与类之间的数据传递由类内的公共函数以及封装的公共变量完成。
3.2类设计及类结构
每个控制类或硬件类均包含特定的功能函数以及变量。其中,可以由其他类调用的为公共属性,否则为私有属性,最大程度地防止功能或数据混乱情况的出现。各个类的封装变量和函数列表如图6所示。
下面对重要的类的主要属性和函数进行简介。
1) ServoMotor类:O CorrectMove函数:控制伺服电机转过指定角度。② MotionDI 、MotionDO函数:设置或读取运动控制卡自带的数字量输入、输出值。
2) PCI1718类:① ActionMove函数:根据预设动作列表完成组合开关的某一个步骤运动。②Cylinder函数:控制气缸运动函数。③ MoveCylinder、PauseCylinder函数:手动调试气缸函数。
3) Form l类:10SwitchStart函数:控制组合开关试验开始。② SwitchStop函数:控制组合开关试验停止(正常或异常停止)。娜tartCylinderExperiment函数:控制电动玻璃升降器试验开始。StopCylinderExperiment函数:控制电动玻璃升降器试验停止。
4 结束语
本系统基于C#、运动控制卡MPC2810和伺服电机MSME082GIU+MCDHT3530开发,可以完成组合开关的转向灯控制杆、刮水控制杆、时钟弹簧、电动玻璃升降器的耐久性试验,自系统投人运行以来,完成了组合开关,电动玻璃升降器开关数十次实车负载试验,运行稳定可靠。