《VB编写上位机(MSComm控件)》.pdf
文本预览下载声明
上位机可方便地实现与单片机之间进行信息传递交互,能够更加容易对机械手臂
进行控制,实现操作可视化,更加直观,保存重要数据等功能。我们利用Visual
Basic 6.0( 以下简称VB)来编制上位机,VB 是一种功能强大、简单易学的程序设计
语言。它不但保留了原先Basic 语言的全部功能,而且还增加了面向对象程序设
计功能。它不仅可以方便快捷地编制适用 于数据处理、多媒体等方面的程序,
而且利用ActiveX 控件MSComm 还能十分方便地开发出使用计算机串口的计算机
通信程序。本实验涉及控制六路舵机,所以需要编制上位机实现一次向下位机传
输含有六个数据的数组,同时接受来自下位机的数组,并显示。
整个过程可分为如下几个过程:
一:VB 是面向对象的语言,首先需要绘制程序界面
该上位机大致分为左边的功能部分与右边的可视化调节部分。
功能部分有端口选择,用以选择合适的端口进行串口通信,波特率选择,打开与
关闭端口,动作设置等。
为了便于布局,应用frame 控件建立区域,再将控件拖到frame 区域中,对
于功能相同的控件来说,建立控件组的方式会使编程避免重复繁琐,例如
HScrollbar 控件,先向frame 区域内拖入一个HScrollbar 控件,再复制,粘贴到frame
区域内部,则提示是否建立控件组,点击确定即可。这样便为后续编程带来很大
的方便。
调节部分运用 Hscrollbar 控件来粗略调节度数,设定按钮与文本框配合来精
确调节输出度数。用右列文本框实时读取舵机当前角度。用optionbutton 控件来
选择 hscrollbar 的步进精度,这里分为0.1 度与 1 度两个不同的选项。由于一组
optionbutton 中在程序运行中只能有一个处于选中状态,根据本程序要求,每一
横列的两个optionbutton 为一组,这样就需要frame 控件,在同一个frame 区域
里的optionbutton 默认为一组。这样就可以如上图所示的状态显示,否则真能选
中其中的一个。
端口与波特率的选择应用combobox 控件。
指示灯部分则用 picturebox 控件添加两个图片,分别为红灯与黑灯,用以显
示端口的开关状态。
每个 MSComm 控件对应于一个串行端口。使用多个串行口时,要使用多个
MSComm 控件。MSComm 控件的主要属性及说明如下。
“工程”——“部件”,选中Microsoft Comm control 6.0,“确定”,完成MSComm
控件的添加。
二:在完成了界面的绘制后,就需要对部分的控件的初始属性进行设置。并输入
相应的程序代码。
属性 说明
CommPort 设置并返回通信端口号
以字符串的形式设置并返回波特率、奇
Settings
偶校验、数据位、停止位
设置并返回通信端口的状态。也可以打
PortOpen
开和关闭端口
Input 从接收缓冲区返回字符
Output 向传输缓冲区写一个字符
有两种处理通信的方式:
(1)事件驱动。利用 OnComm 事件捕获并处理通信事件,所有的通信事件和
通信错误列表都包含在控件的CommEvent 属性中。
(2)查询方式。在程序关键功能之后,通过检查CommEvent 的值来查询事件
和错误。
添加MScomm 控件,并在窗体装入时进行初始化
Private Sub Form_Load()
MSComm1.CommPort = 1 ’端口选择1
MSComm1.Settings = 9600,N,8,1’定义数据传输协议,与下位机要保持一致。波特
率9600 ,无奇偶验证,8 个数据位,一个停止位。
MSComm1.InputMode = 1数据传输为二进制方式
MSComm1.InBufferCount = 0 清空接受缓冲区
MSComm1.RThreshold = 1 产生MSComm 事件
If MSComm1.PortOpen = False Then
MSComm1.PortOpen =True 打开串口
End If
End Sub
为随时判断端口是否开启,并用黑红等来显示当前状态,运用 timer 控件,将
interval 设置为 100
显示全部