正如图3.2.1中所示的人机界面,当进行实验时,首先选择串口通道并打开串口后。单击启动模式中所需要的模式:单步是指步进电机只运转一步0.72度;连续则是指步进电机连续运转,直到按下停止按钮;行程则是控制步进电机运转设定的行程后停止运转。设定上升(或下降)速度后,单击上升(或下降)按钮,步进电机则开始运转。其中,若选择行程模式,则还要设定上升(或下降)的行程。在电机运转过程中,只要单击“停止”按钮,电机将停止运转。
图3.2.1 上位机操作界面
图3.2.2 MFC集成开发环境
3.2.4 程序编写
与单片机的程序相对应,MFC的实现程序中各命令字都是与单片机程序中相对应的。最后生成的EXE界面如图3.2.1所示。进行三通管拉制时可在窗口界面设置步进电机运转的方式、转速、行程等参数,通过串口通信将控制信息传送给单片机,从而控制步进电机的驱动。
本文中使用MFC实现串口编程,实现程序主要包括Mscomm控件的设置和各个按钮发送的控制数据列。
(1) Mscomm控件的初始化命令如下:
m_COM.SetCommPort(1); //选择com1
m_COM.SetSettings("9600,n,8,1"); //波特率9600,无校验,8个数据位,1个停止位
m_COM.SetInputMode(1); //1:表示以二进制方式读写数据
m_COM.SetRThreshold(2); //参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件
m_COM.SetInputLen(0); //设置当前接收区数据长度为0
m_COM.GetInput(); //先预读缓冲区以清除残留数据
(2) MFC实现程序中控制字是与下位机相对应的,自定义宏说明如表3.2.1所示。
表3.2.1 上位机自定义宏说明
宏名 字符串
SLEEP 0x00
SEND_START 0xaa
SEND_START_D0 0xdd
SEND_START_D1 0xcc
SEND_STOP 0xbb
MODE_STEP 0x00
MODE_RUN 0x01
MODE_CODE 0x02
(3) 单击“上升”按钮控制电机按照所设定参数正转(滑块上升),“上升”按钮所发送的数据包如表3.2.2所示:
表3.2.2 “上升”按钮所发送数据包
数据 数据含义
SEND_STOP 发送停止指令
SEND_START 发送开始命令
SEND_START_D1 发送转向设定指令
LOBYTE(m_v) 发送速度参数的低八位
HIBYTE(m_v) 发送速度参数的高八位
m_mode 发送模式选择数据
LOBYTE(stepnum) 发送步数低八位
HIBYTE(stepnum) 发送步数高八位
(4) 单击“下降”按钮控制电机按照所设定参数反转(滑块下降),“下降”按钮所发送的控制数据包如表3.2.3所示:
表3.2.3 “下降”按钮所发送的数据包
数据 数据含义
SEND_STOP 发送停止指令
SEND_START 发送开始命令
SEND_START_D0 发送设定指令
LOBYTE(m_v2) 发送速度参数的低八位
HIBYTE(m_v2) 发送速度参数的高八位
m_mode 发送模式选择数据
LOBYTE(stepnum) 发送步数低八位
HIBYTE(stepnum) 发送步数高八位 三通管拉制仪材料分配系数精确控制系统设计+PCB+源程序(11):http://www.youerw.com/jixie/lunwen_2394.html