文档详情

《VB编写上位机(MSComm控件)》.pdf

发布:2015-10-31约6.53千字共7页下载文档
文本预览下载声明
上位机可方便地实现与单片机之间进行信息传递交互,能够更加容易对机械手臂 进行控制,实现操作可视化,更加直观,保存重要数据等功能。我们利用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
显示全部
相似文档