版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要 随着自动化技术以及信息技术的发展,锅炉的管理越来越趋于智能化,省去了很 多的人力物力且管理效率有很大提高,减少了因为监督管理不善而引起的事故。visual basic 是 microsoft 公司于 1991 年推出的基于窗口的可视化程序设计语言,大大简化 windows 程序界面的设计工作,同时其编程系统采用了面向对象、事件驱动机制,它 还引入了使用部件编程的概念,实际上这是对面向对象编程思想的扩展。 本设计是利用 vb 设计上位机的各个界面,并利用对 vb 中的 mscomm (microsoft communication control)通信控件的编程,使上位机与控制主板进行通
2、信 连接,单片机将上位机所需温度数据传输给上位机,上位机对接收到的数据进行校对、 处理和显示,对下位机各个参数进行补偿,下位机修改参数后,将正确的温度数据传 送给上位机,上位机保存修改后各温度数据。并利用 api 函数、vb 中的动态数组及 picture 控件对采集的实时温度数据进行曲线显示,利用文件调用对历史温度进行显示, 利用 vb 数组进行编码与译码,实现 led activex 控件(仿真的七段译码器)的仿真, 可直观的显示锅炉各点的温度。 关键字:上位机;界面设计;串口通信 abastract with the development of automation technolog
3、y and imformation technology, the management of boiler goes to more and more intelligenize, which help to economize much manpower and material resources, reduce accident capable of being attributed to negligent supervisory mangement. visual basic is presented by microsoft company in 1991,whose langu
4、age was designed based on windows visualized program. this had grately simplified the designing work of windows process interface, meanwhile, the programming-mechanism adopt object-orientation and matter driving mechanism. visual basic has also introduced using the concept of part programming. in re
5、ality, this is an expension to the idea of object- oriented program. this design used each interface of monitor-computer of vb design, and make use of programming mscomm to connect monitor-computer and controller mainboard. thus micro- controllor can transfer temperature data that monitor-computer n
6、eeded, who then profreed, dispose and display the data received, and repair each parameter of lower monitor. after that, it will transfer the accurate temperature data to upper monitor and then revamp again to display and preserve. micro-controllor use api function, vb dynamic array, and picture con
7、trol to graphic display the real-time temperature data, use document transfer to vision historical temperature, amd use vb array to coding, so as to implement led activex control simulation, and intuitionisticly vision each temperature of the boiler. keywords: monitor-computer; design of interface;
8、series communication 目录 摘 要i abastractii 1 绪论1 1.1 vb 简介 1 1.2 vb 串口通信简介 1 1.2.1 事件驱动方式1 1.2.2 查询方式2 1.3 系统要研究的主要内容2 1.4各项研究的基本要求2 1.5 项目研究的意义2 2 通信协议设计4 2.1 rs-485 串行接口标准4 2.2 rs-485 通信协议4 3 上位机界面设计6 3.1 窗体设计6 3.1.1 窗体的特点6 3.1.2 窗体的建立6 3.2 主界面设计8 3.3 密码界面设计21 3.4 参数修改界面设计23 4 绘制曲线27 4.1 实时曲线27 4.2
9、历史曲线33 5 系统调试36 5.1 设置调试断点36 5.2 单步执行36 5.3 调试窗口37 结论38 致谢39 参考文献40 附录 a41 附录 b46 1 绪论 1.1 vb 简介 basic 是英文 beginners all-purpose symbolic instruction code(初学者通用符号 指令代码)的缩写,它是专门为初学者设计的高级语言。 visual basic 是 microsoft 公司于 1991 年推出的基于窗口的可视化程序设计语言。 “visual”是“可视化的”、 “形象化的”的意思。visual basic 的语法与 basic 语言的语法基
10、 本相同,因此 visual basic 也具有易学易用的特点,此外它还提供了一套可视化设计工 具,大大简化了 windows 程序界面的设计工作,同时其编程系统采用了面向对象、事 件驱动机制,应用 visual basic 可以方便地完成从小的应用程序,到大型的数据库管理 系统、多媒体信息处理、功能强大的 internet 应用程序等各项任务。 1.2 vb 串口通信简介 通信,对于设备来说就是两设备之间的数据交换,这种通信是通过电信号来实现 的。高电位代表一种状态,而低电位代表另一种状态,在组合了很多种电位状态之后 就形成了设备之间的数据交换。 计算机的发展已经有很长一段时间,其中串行通信
11、存在的时间很长,应用领域也 非常广泛。市场上有很多产品应用了串行通信技术作为产品对外数据交换的桥梁,串 行通信受到如此重视,主要原因就是因为其技术简单而且容易实现。 visual basic 提供了大量的控件供编程人员使用,编程人员可以方便地利用这些组 件中的属性、方法、语言等以事件驱动方式开发应用程序。 mscomm 控件全称为 microsoft communication control,是 microsoft 公司提供的 简化 windows 下串行端口传输和接收数据,为应用程序提供串行通信功能。mscomm 控件提供下列两种处理通信的方式: 1.2.1 事件驱动方式 事件驱动通讯是处
12、理串行端口交互作用的一种非常有效的方法。在许多情况下, 在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 carrier detect (cd) 或 request to send (rts) 线上一个字符到达或一个变化发生时。在这些情况下, 可以利用 mscomm 控件的 oncomm 事件捕获并处理这些通讯事件。oncomm 事件 还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 commevent 属 性。在编程过程中,就可以在 oncomm 事件处理函数中加入自己的处理代码。这种方 法的优点是程序响应及时,可靠性高。每个 mscomm 控件对应着一个串行端口。
13、如 果应用程序需要访问多个串行端口,必须使用多个 mscomm 控件。 1.2.2 查询方式 查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程 序的每个关键功能之后,可以通过检查 commevent 属性的值来查询事件和错误。如 果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简 单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的 字符是调制解调器的“确定”响应。 1.3 系统要研究的主要内容 利用 vb 编程软件完成上位机同下位机的通信控制,通过上位机来监控锅炉温度 等各项指标。 完成单片机同 vb 编程软件通信的连接。
14、实现上位机软件对下位机的参数修改功能。 实现温度采集的上位机显示输出、绘制并且存储温度变化曲线。 完成实际软件的调试。 1.4 各项研究的基本要求 进行上位机的界面设计,利用对 mscomm 通信控件的编程完成对上位机与单片机 的通信连接,单片机将上位机所需数据传输给上位机,上位机对接收到的数据进行处 理和显示,保存单片机向上位机传输的各种温度数据,对下位机各个参数进行补偿。 并利用 vb 中的动态数组及 picture 控件对采集的温度数据进行曲线显示,利用 vb 数 组进行编码与译码,实现七段数码管的仿真,使 led 直观的显示锅炉各点的温度。 1.5 项目研究的意义 随着自动化技术以及信
15、息技术的发展,锅炉的管理越来越趋于智能化,省去了很 多的人力物力且管理效率有很大提高,减少了因为监督管理不善而引起的事故。本课 题的设计正是基于这个目的,在本设计中主要采集锅炉的各点的温度,通过 led 显示 屏直观准确的进行显示,把采集到的数据通过 rs485 传输到上位机,上位机将采集上 来的锅炉温度数据进行实时处理,并在显示屏上显示,使人在电脑面前就能观测到锅 炉房内的温度情况,而且监测人员可以通过电脑把监测时间内任意时刻的温度曲线调 出,便于操作人员进行数据分析,更为以后的维修等提供了数据保障。 2 通信协议设计 本工程主要是通过桥式电路采集锅炉各点的温度,然后将采集的温度转换为电压
16、值,再通过单片机内的 pt100 的 a/d 值与温度的对照表表格一一对照,将电压值一一 转换为温度值,等待上位机的中断信息,系统的主要流程是用户通过计算机串口发出 相应的控制指令,通过电平转化,将控制信号通过 rs-485 串行接口送到单片机的,单 片机接收信号做出相应的反应,将上位机所需要的参数发送回计算机,上位机将其传 送来的数据进行显示,完成一整套控制和监视的功能。 2.1 rs-485 串行接口标准 (1) rs-485 的电气特性:发送端:逻辑“1”以两线间的电压差+(2 至 6)v 表示;逻 辑“0”以两线间的电压差-(2 至 6)v 表示。接收端:a 比 b 高 200mv 以
17、上即认为是 逻辑“1”,a 比 b 低 200mv 以上即认为是逻辑“0”。 (2) rs-485 的数据最高传输速率为 10mbps。但是由于 rs-485 常常要与 pc 机的 rs- 232 口通信,所以实际上一般最高 115.2kbps。又由于太高的速率会使 rs-485 传输距 离减小,所以往往为 9600bps 左右或以下。 (3) rs-485 接口是采用平衡驱动器和差分接收器的组合,抗噪声干扰性好。 (4) rs-485 接口的最大传输距离标准为 1200 米(9600bps 时) ,rs-485 接口在总线 上是容许连接多达 128 个收发器、即 rs-485 具有多机通信功
18、能,这样用户可以利用单 一的 rs-485 接口方便的建立起网络。因为 rs-485 接口组成的半双工网络,一般只需 二根信号线,所以 rs-485 接口均采用双绞线传输。rs-485 的国际标准并没有规定 rs- 485 的接口连接器标准、所以采用接线端子或者 db-9、db-25 等连接器都可以。 2.2 rs-485 通信协议 在 rs-485 通信中,发送过程主要采取了总线仲裁机制: 在向 485 总线写数据时,主设备先写一字节的地址请求,所有的从设备均会收到, 只有地址与之相等的从设备端口打开,其他设备全部关闭。这样,主设备与从设备之 间的通信就是点对点的。 每一个从设备均有一根请求
19、线与主设备相连,若从设备需要与主设备通信时,先 通过请求线进行请求,当请求成功后,从设备应能检测到总线上的地址与自身地址相 同,从设备才能打开发送中断,才能发送消息,发送完之后必须关闭发送中断,释放 总线,以保证其他从设备这段时间能与主设备正常通信,提高通信效率。 rs-485 通信发送流程图如下图所示。 y n y n 开始 握手协议 传输一帧 是否传完 校验和 校验成功 返回 图 2.1 rs-485 发送流程图 面向握手,即每发出一帧,总是要等待确认帧,否则将认为是通信出错。这是一 种可靠的通信方式,适合传输系统命令和一些非常重要的系统参数。在此设计中进行 传输时,先进行握手来确定是否发
20、送数据,在数据发送之后,将所发的数据进行累加 作为所传送数据的最后一个数据,作为校验码,如果校验码错误,则会通信错误,丢 弃该次传送的数据。 3 上位机界面设计 3.1 窗体设计 3.1.1 窗体的特点 实用性的应用程序往往需要多个窗体,以满足用户不同的输入输出操作。在多窗 体中,各个窗体是平等的,每个窗体都有自己的界面和程序代码,具有一定的特点和 功能。对用户而言,多窗体可以使界面丰富多彩。 在某一个时刻只能有一个窗体是激活的。 3.1.2 窗体的建立 进入集成开发环境的新建工程,选择“标准 exe” ,按“确定”按钮后第一个窗体 自动加载,其缺省名为 form1 并缺省定为启动窗口以后的窗
21、口需要有集成开发环境的 “工程”菜单选项中的“添加窗体”来加入。在本设计中主界面为启动窗口,在主界 面中有四个 commandbutton,其中三个可分别调出其它的三个界面。 comchangepara comhistime comrealtime主显示 屏界面 密钥 届面 参数修改 界面 实时温度 曲线界面 历史温度 曲线界面 图 3.1 多窗体示意图 窗体的主要属性 窗体的属性决定了窗体的外观和操作。窗体的大部分属性可用两种方法来设置: 通过属性窗口设置和通过程序代码设置。有少量的属性不能在程序代码中设置。 (1)caption 属性 设置窗体的标题内容。标题内容应概括说明本窗体作用。 (
22、2)maxbutton 属性和 minbutton 属性 maxbutton 属性为 true,窗体右上角有最大化按钮;为 false 时,无最大化按钮。 minbutton 属性为 true,窗体右上角有最小化按钮;为 false 时,无最小化按钮。 (3)borderstyle 属性 决定窗体边框式样及窗体是否能调整大小。 (4)backcolor 属性和 forecolor 属性 backcolor 属性设置窗体的背景颜色,forcolor 属性设置窗体的前景颜色。窗体的前景 颜色是执行 print 方法时所显示文本的颜色。 (5)height 属性和 width 属性 设置窗体的初始高
23、度和宽度。其单位为 twip。1twip=1/20 点=1/1440 英寸=1/567cm。 (6)left 属性和 top 属性 用于设置窗体左边框距屏幕左边界的距离和窗体顶边距屏幕顶端的距离。其单位为 twip。 (7)name(名称)属性 设置窗体的名称,在程序代码中用这个名称引用该窗体。新建工程时,窗体的名称缺 省为 form1;添加第二个窗体,其名称缺省为 form2,依次类推。为了便于识别,用 户通常给 name 属性设置一个有实际意义的名称。 (8)enabled 属性 属性值为 true 或 false,设置对象是否能够对用户产生的事件做出反应。一般在程序中 设置,用于临时屏蔽
24、对窗体或其它控件的的控制。 (9)moveable 属性 属性值为 true 或 false,设置是否可以移动窗体。 (10)visible 属性 属性值为 true 或 false,设置窗体是否被显示。用户可用该属性在程序代码中控制窗体 的隐现。 (11)picture 属性 设置在窗体中显示的图片。单击 picture 属性右边的按钮,弹出“加载图片”对话框,用 户可选择一个图片文件作为窗体的背景图片。若在程序中设置该属性的值,需要使用 loadpicture 函数。 (12)windowstate 属性 设置窗体启动后的大小状态。 表 3.1 窗口属性设置 名称caption 属性 ma
25、xbutton 属性 minbutton 属性 borderstyle 属性 windowstate 属性 mainform主屏true/ true 2-sizable 可修改窗体尺寸 2-maximized 最大化显示 frmrealtime实时温度曲线true/ true 2-sizable 可修改窗体尺寸 2-maximized 最大化显示 frmhistime历史温度曲线true/ true 2-sizable 可修改窗体尺寸 2-maximized 最大化显示 frmchangepara温度对照修正表true/ true 2-sizable 可修改窗体尺寸 0-normal 正常大小
26、 dialogpassword请输入密码true/ true 2-sizable 可修改窗体尺寸 0-normal 正常大小 3.2 主界面设计 主界面的作用用来显示时间,以及显示该时间各点的温度值,并有四个 commandbutton 调用其它的界面和校正时间子过程。 进入 visual basic 的用户界面,这时编辑窗口内有一个新的表单 form1,将表单的 标题(caption)属性改为 mainform,这个表单是该上位机的主界面。在以后的窗体设 计中所用的空间还需在框架的基础上添加 mscomm 控件、dtpicker 控件、 commdialog 控件、msflexgrid 控件
27、和已编辑好 led activex 控件(仿真的七段译码 器) 。 在 mainform 窗口中加入图片框 picture1,为了界面的美观在其 picture 属性中链接 所要图片的地址,在 mainform 界面加入 led activex 控件,进行对系统的时间的显 示和下位机的温度的实时显示,加入时间控件对显示时间和温度的 led activex 控件 进行刷新,再加入 4 个 commandbutton,来调用其它的界面和校正时间子过程,加入 mscomm 控件使得此界面和单片机进行通讯。 图 3.2 主界面设计 在 vb 应用程序中,命令按钮是使用最多的对象之一,常常用它接受用户的
28、操作 信息,触发相应的事件过程,以实现指定的功能。 (1)caption 属性 设定命令按钮上显示的文本。 (2)default 属性 该属性用于设置默认命令按钮。 (3)style 属性和 picture 属性 命令按钮上除了可以显示文字外,还可以显示图形。若要显示图形,首先应将 style 属性设置为 1,然后在 picture 属性中设置要显示的图形文件。 (4)value 属性 该属性只能在程序运行期间引用或设置。true 表示被按下,false(默认)表示未被按 下。commandbutton 最常用的事件是 click 事件 表 3.2 commandbutton 控件属性设计 属
29、性 名称 caption 属性style 属性picture 属性事件 comsettime校正时间0-standardnoneclick 事件 comchangepara修正参数0-standardnoneclick 事件 comhistime历史温度曲线0-standardnoneclick 事件 comrealtime实时温度曲线0-standardnoneclick 事件 在此界面中用到了 timer 控件,时钟控件(timer)又称计时器、定时器控件,用 于有规律地定时执行指定的工作,适合编写不需要与用户进行交互就可直接执行的代 码,如计时、倒计时、动画等。在程序运行阶段,时钟控件不
30、可见。 时钟控件: 图 3.3 时间控件图示 其属性如下 (1)interval 属性 取值范围在 0 到 64767 之间(包括这两个数值) ,单位为毫秒(0.001 秒) ,表示计时 间隔。若将 interval 属性设置为 0 或负数,则计时器停止工作。 (2)enabled 属性 无论何时,只要时钟控件的 enabled 属性被设置为 true 而且 interval 属性值大于 0,则计时器开始工作(以 interval 属性值为间隔,触发 timer 事件) 。 通过把 enabled 属性设置为 false 可使时钟控件无效,即计时器停止工作。 事件 时钟控件只能响应 timer
31、 事件,当 enabled 属性值为 true 且 interval 属性值大于 0 时,该事件以 interval 属性指定的时间间隔发生,需要定时执行的操作即放在该事件过 程中完成。 在主界面中时钟控件有三个, 表 3.3 timer 控件属性设置 名称 interval 属性interval 属性的作用enabled timer11000 每 1000 毫秒(也就是每 1 秒)刷新一次 显示时间的 led activex 控件 true timedrawline10000 每 10 秒刷新显示温度的各 led activex 控件 true timersave1000 每隔一秒对所采集的
32、温度以以下路径 curdir & datay & year(date) & m & month(date) & d & day(date) & &t & hour(time) & .txt保存一次 true 在此界面中首先用 vb 中的 format 函数、right 函数及日期函数将年月日时分秒分 别从右取数并以“00”格式化,将时间赋值给 led activex 控件,由 led activex 控 件将时间显示。在 comsettime_click 事件中再利用 right 函数以及 format 函数格式化 时间,并将所有的时间数字利用与字符组成字符串,字符串的起始三个字符是“#0”
33、,n ;#代表的是传送字符串的起始,而后的“0”表示的是单片机的地址,90nn 再利用 asc 函数与 mid 函数将字符串各个字符进行提取依次相加然后经过一些计算得 到一个数,把该数加在该字符串的最后作为校验码,这就避免了校验码的单一性,每 一组时间都会得到其相应的校验码,之后通过 mscomm 控件传于单片机进行时间校验, 当单片机接受字符串时,亦做同样的计算,如果校验码相同,则根据所传信息对时间 进行修改;如果校验码不相同,则丢弃该信息。 1、format 函数 返回 variant(string) (字符串)值,其中含有一个表达式,它是根据格式表达式中的 指令来格式化的。 2、chr
34、函数 返回字符串,其中包含有与指定的字符代码相关的字符。 语法:chr(charcode) 必要的 charcode 参数是一个用来识别某字符的 long(长整数)值。 0 到 31 之间的数字与标准的非打印 ascii 代码相同。例如,chr(13)可以返回回车 字符。charcode 的正常范围为 0255。 3、asc 函数 返回一个 integer(整数型)值,代表字符串的第一个字符的字符代码。 asc(string) 必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含 任何字符, 则会产生运行时错误。 4、len 函数 返回 long(长整数)值,
35、其中包含字符串内字符的数目,或是存储一个变量所需的字 节数。 语法:len(string | varname) len 函数语法中个参数的说明 string 任何有效的字符串表达式。如果它包含 null,会返回 null varname 任何有效的变量名称。如果它包含 null,会返回 null;如果 varname 是 variant(变体数据类型) ,len 会视其为字符串并且总是返回其包含的字 符数 空字符长度为 0,空格也算一个字符,中方虽然占用 2bytes,但也算一个字符。 5、right 函数 返回 variant(string) (字符串)值,其中包含字符串中从右边算起指定数量
36、的字符。 语法:left(string,length) left 函数的语法的命名参数 string 必要参数。字符串表达式,其中最右边的那些字符将被返回。如果它包 含 null,会返回 null length 必要参数。数值表达式,指出将返回多少个字符。如果为 0,返回零长 度字符串(“” ) ;如果大于或是等于 string 的字符串,则返回整个字符串 6、mid 函数 返回 variant(string) (字符串)值,其中包含字符串中指定数量的字符。 语法:mid(string,strat,length) mid 函数的语法的命名参数 string 必要参数。字符串表达式,其中返回字符
37、。如果 string 包含 null,会返 回 null start 必要参数。为 long。指定 string 中被取出部分的字符位置。如果 start 超 过 string 的字符数,mid 返回零长度字符串(“” ) length 可选参数;为 variant(long) 。要返回的字符数。如果省略或 length 超 过文本的字符数(包含 start 处的字符) ,将返回字符串中从 start 到尾端的所有字符 mid(x,n):由 x 的第 n 个字符起,读取后面的所有字符。 mid(x,n,m):由 x 的第 n 个字符起,读起 m 个字符。 若 nlen(x),则返回空字符串,若
38、第 n 个字符以后不足 m 个字符,则返回后面的所有字 符。 7、input 函数 返回字符串,它包含以 input 或 binary 方式打开的文件中的字符。 语法:input(number,#filenumber) input 函数的语法中各参数: number 必要。任何有效的数值表达式,指定要返回的字符个数; filenumber 必要。任何有效的文件号。 8、input #语句 从已打开的顺序文件中读出数据并将数据指定给变量。 语法:input #filenumber,varlist filenumber 必要。任何有效的文件号; varlist 必要。用逗号分界的变量列表,将文件中
39、读出的值分配给这些变量不可 能是一个数组或对象变量。但是,可以使用变量描述数组元素或用户定义类的元素; 通常用 print #或 put 将 input 函数读出的数据写入文件。input 函数只用于以 input 或 binary 方式打开的文件。 与 input # 语句不同,input 函数返回它所读出的所有字符,包括逗号、回车符、空白 列、换行符、引号和前导空格等。 9、mscomm 控件 图 3.4 通行控件图示 mscomm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。 mscomm 控件在串口编程时非常方便,microsoft communications con
40、trol(以下简称 mscomm)是 microsoft 公司提供的简化 windows 下串行通信编程的 activex 控件, 它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种 处理通信问题的方法:一是事件驱动(eventdriven)方法,一是查询法。 mscomm 控件两种处理通讯的方式 mscomm 控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。 mscomm 控件的常用属性 commport 设置并返回通讯端口号。 settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。 portopen 设置并返回通讯端口的状态。也可以打开
41、和关闭端口。 input 从接收缓冲区返回和删除字符。 output 向传输缓冲区写一个字符串。 下面分别描述: commport 属性:设置并返回通讯端口号。 语法 object.commportvalue (value 一整型值,说明端口号。) 说明 在设计时,value 可以设置成从 1 到 16 的任何数(缺省值为 1) 。但是如 果用 portopen 属性打开一个并不存在的端口时,mscomm 控件会产生错误 68(设 备无效) 。 注意:必须在打开端口之前设置 commport 属性。 rthreshold 属性:在 mscomm 控件设置 commevent 属性为 comev
42、receive 并 产生 oncomm 之前,设置并返回的要接收的字符数。 语法:object.rthreshold = value (value 整型表达式,说明在产生 oncomm 事 件之前要接收的字符数。 ) 说明:当接收字符后,若 rthreshold 属性设置为 0(缺省值)则不产生 oncomm 事件。例如,设置 rthreshold 为 1,接收缓冲区收到每一个字符都会使 mscomm 控件产生 oncomm 事件。 ctsholding 属性:确定是否可通过查询 clear to send (cts) 线的状态发送数据。 clear to send 是调制解调器发送到相联计算
43、机的信号,指示传输可以进行。该属性在 设计时无效,在运行时为只读。 语法: object.ctsholding(boolean) mscomm 控件的 ctsholding 属性设置值: true clear to send 线为高电平。 false clear to send 线为低电平。 说明:如果 clear to send 线为低电平 (ctsholding = false) 并且超时时, mscomm 控件设置 commevent 属性为 comeventctsto (clear to send timeout) 并 产生 oncomm 事件。 clear to send 线用于 r
44、ts/cts (request to send/clear to send) 硬件握手。如果 需要确定 clear to send 线的状态,ctsholding 属性给出一种手工查询的方法。 详细信息有关握手协议,可参阅 handshaking 属性。 sthreshold 属性: mscomm 控件设置 commevent 属性为 comevsend 并产生 oncomm 事件之前,设置并返回传输缓冲区中允许的最小字符数。 语法 object.sthreshold = value value 整形表达式,代表在 oncomm 事件产生之前在传输缓冲区中的最小字符数。 说明:若设置 sthr
45、eshold 属性为 0(缺省值) ,数据传输事件不会产生 oncomm 事件。若设置 sthreshold 属性为 1,当传输缓冲区完全空时,mscomm 控件产生 oncomm 事件。如果在传输缓冲区中的字符数小于 value,commevent 属性设置为 comevsend,并产生 oncomm 事件。comevsend 事件仅当字符数与 sthreshold 交叉 时被激活一次。例如,如果 sthreshold 等于 5,仅当在输出队列中字符数从 5 降到 4 时,comevsend 才发生。如果在输出队列中从没有比 sthreshold 多的字符, comevsend 事件将绝不会
46、发生。 handshake 常数 常数值 描述 comnone0 无握手。 comxonxoff1 xon/xoff 握手。 comrts2 request-to-send/clear-to-send 握手。 comrtsxonxoff3 request-to-send 和 clear-to-send 握手皆可。 oncomm 常数 常数值 描述 comevsend 1 发送事件。 comevreceive2 接收事件。 comevcts 3 clear-to-send 线变化。 comevdsr 4 data-set ready 线变化。 comevcd5 carrier detect 线变
47、化。 comevring 6 振铃检测。 comeveof 7 文件结束。 error 常数 常数 值 描述 comeventbreak 1001 接收到中断信号 comeventctsto1002 clear-to-send 超时 comeventdsrto1003data-set ready 超时 comeventframe 1004帧错误 comeventoverrun1006 端口超速 comeventcdto 1007carrier detect 超时 comeventrxover1008接收缓冲区溢出 comeventrxparity1009parity 错误 comeventtx
48、full 1010传输缓冲区满 comeventdcb 1011 检索端口 设备控制块 (dcb) 时的意外错误 inputmode 常数 常数值 描述 cominputmodetext 0 (缺省) 通过 input 属性以文本方式取回数据。 cominputmodebinary1 通过 input 属性以二进制方式检取回数据。 cdholding 属性:通过查询 carrier detect (cd) 线的状态确定当前是否有传输。 carrier detect 是从调制解调器发送到相联计算机的一个信号,指示调制解调器正在联 机。该属性在设计时无效,在运行时为只读。 语法 object.cd
49、holding 设置值:cdholding 属性的设置值为: 设置 描述 true carrier detect 线为高电平 falsecarrier detect 线为低电平 说明:注意当 carrier detect 线为高电平 (cdholding = true) 且超时时, mscomm 控件设置 commevent 属性为 comeventcdto(carrier detect 超时错误) , 并产生 oncomm 事件。 注意 在主机应用程序中捕获一个丢失的传输是特别重要的,例如一个公告板,因 为呼叫者可以随时挂起(放弃传输) 。 carrier detect 也被称为 recei
50、ve line signal detect (rlsd)。 数据类型:boolean dsrholding 属性:确定 data set ready (dsr) 线的状态。data set ready 信号由 调制解调器发送到相连计算机,指示作好操作准备。该属性在设计时无效,在运行时 为只读。 语法:object.dsrholding object 所在处表示对象表达式,其值是“应用于”列表中的对象。 dsrholding 属性返回以下值: 值 描述说明 truedata set ready 线高 当 data set ready 线为高电平 (dsrholding = true) 且超时时,
51、mscomm 控件设 置 commevent 属性为 comeventdsrto(数据准备超时)并产生 oncomm 事件。 当为 data terminal equipment (dte) 机器写 data set ready/data terminal ready 握手例程时该属性是十分有用的。 数据类型:boolean falsedata set ready 线低 settings 属性: 设置并返回波特率、奇偶校验、数据位、停止位参数。 语法: object.settings = value 说明:当端口打开时,如果 value 非法,则 mscomm 控件产生错误 380(非法 属性
52、值) 。 value 由四个设置值组成,有如下的格式:bbbb,p,d,s bbbb 为波特率,p 为奇偶校验,d 为数据位数,s 为停止位数。value 的缺省 值是:9600,n,8,1 inputlen 属性:设置并返回 input 属性从接收缓冲区读取的字符数。 语法 object.inputlen = value inputlen 属性语法包括下列部分: value 整型表达式,说明 input 属性从接收缓冲区中读取的字符数。 说明:inputlen 属性的缺省值是 0。设置 inputlen 为 0 时,使用 input 将使 mscomm 控件读取接收缓冲区中全部的内容。 若接
53、收缓冲区中 inputlen 字符无效,input 属性返回一个零长度字符串 ()。在 使用 input 前,用户可以选择检查 inbuffercount 属性来确定缓冲区中是否已有需要 数目的字符。该属性在从输出格式为定长数据的机器读取数据时非常有用。 eofenable 属性:确定在输入过程中 mscomm 控件是否寻找文件结尾 (eof) 字符。如果找到 eof 字符,将停止输入并激活 oncomm 事件,此时 commevent 属性设置为 comeveof, 语法:object.eofenable = value eofenable 属性语法包括下列部分: value 布尔表达式,确
54、定当找到 eof 字符时,oncomm 事件是否被激活,如 “设置值”中所描述。 value 的设置值: true 当 eof 字符找到时 oncomm 事件被激活。 false (缺省)当 eof 字符找到时 oncomm 事件不被激活。 说明:当 eofenable 属性设置为 false,oncomm 控件将不在输入流中寻找 eof 字符。 错误消息(ms comm 控件) 下表列出 mscomm 控件可以捕获的错误: 值 描述 380 无效属性值 cominvalidpropertyvalue 383 属性为只读 comsetnotsupported 394 属性为只读 comgetn
55、otsupported 8000端口打开时操作不合法 comportopen 8001超时值必须大于 0 8002 无效端口号 comportinvalid 8003属性只在运行时有效 8004属性在运行时为只读 8005端口已经打开 comportalreadyopen 8006设备标识符无效或不支持该标识符 8007不支持设备的波特率 8008指定的字节大小无效 8009缺省参数错误 8010硬件不可用(被其它设备锁定) 8011函数不能分配队列 8012设备没有打开 comnoopen 8013设备已经打开 8014不能使用 comm 通知 8015不能设置 comm 状态 comset
56、commstatefailed 8016不能设置 comm 事件屏蔽 8018 仅当端口打开时操作才有效 comportnotopen 8019 设备忙 8020 读 comm 设备错误 comreaderror 8021 为该端口检索设备控制块时的内部错误 comdcberror 在程序运行阶段,通信控件不可见。在此界面所用的通信控件的主要作用是将上 位机的时间传送给下位机进行校验,并且在校验过后,把下位机采集到的温度数据通 过串口通信传送给上位机。在该界面中会将其波特率、奇偶校验、数据位、停止位缺 省,程序中将参数分别为设置为 4800,n,8,1。将设置/返回通讯端口号 commport
57、 设置为 1。将 dtrenable 设置为 true 决定在通讯过程忠使 data terminal ready 线有效。接受 缓冲区的大小为 1024 字节,而传输缓冲区的字符数为 512。 图 3.5 显示屏主界面 该界面中显示时间和温度的 led 是 activex 控件,vb 应用程序的界面主要由控 件组成,工具箱中提供了 20 个常用的控件,这些控件总在工具箱中,可以直接使用, 它们称为标准控件。当开发复杂的应用程序时,仅仅使用这些控件是不够的。其实, 除了工具箱中的标准控件之外,还有一些控件,它们平常不在工具箱中,每个这种的 控件都以单独的.ocx 文件存在,需要时,可以从“工程
58、”菜单的“部件”对话框里把 它们选择出来,即把它们添加到工具箱中,使用它们与使用标准控件完全一样。这类 控件称为 activex 控件。activex 控件可以是系统提供的,也可以是第 3 方开发商提供 的,还可以是用户自己开发的。在软件开发中,使用 activex 控件一方面能够节约大 量的开发时间,另一方面,由于许多 activex 控件是作为产品开发的,已经过测试和 许多人的使用,这使得开发的软件正确性和可靠性有很大提高。 在该控件的属性中,最主要的就是对 ledstring 的设置,ledstring 的格式 将决定 led 的初始状态,例如图 3.1 中的时间的 ledstring
59、是“88:88:88” ,所以时 间显示为下图所示: 图 3.6 时间 led 初始显示 3.3 密码界面设计 因为参数修改的重要性,所以点击修改参数按钮时会调出一个密钥窗口,对访问 者进行辨认,使得知道密码的人可以进入参数修改的界面对工程的参数进行修改。在 此窗口中加入 textbox 控件。 文本框(textbox)在窗体中为用户提供一个既能显示文本又能编辑文本的区域。 在文本框内,用户可以用鼠标、键盘按常用的方法对文字进行编辑,例如进行输入、 删除、选择、复制及粘贴等各种操作。 属性 (1)text 属性 设置文本框中显示的内容。 (2)locked 属性 设置文本框中的内容是否可编辑。
60、 (3)maxlength 属性 设置文本框中允许输入的最大字符数。 (4)multiline 属性 决定文本框是否允许接收多行文本。 (5)passwordchar 属性 当 multiline 为 false 时,该属性可设置显示在文本框中的替代符。 (6)scrollbars 属性 决定文本框中是否有滚动条。 文本框除支持 click,dbclick 事件,常用的还有 change、lostfocus 事件。 (1)change 事件 当用户输入新内容,或程序对文本框的 text 属性重新赋值,从而改变文本框的 text 属 性时触发该事件。 (2)lostfocus 事件 当用户按下t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无证房屋交易合同范本
- 合同转让合同的签订技巧
- 广告媒体设计合同
- 广告委托协议-合同范本
- 六年级语文上册第六单元口语交际 意见不同怎么办 公开课一等奖创新教学设计
- 《痴呆震颤麻痹》课件
- 狂犬病辩证论治方案
- 手术区铺无菌手术单
- 胫骨远端骨折术后护理
- 年产xx男帽项目建议书
- 肺栓塞与肺梗塞CT诊断课件
- 晚期直肠癌MDT课件
- Q∕GDW 10364-2020 单相智能电能表技术规范
- 伤口评估及处理ppt课件
- 《人工湿地系统运行与维护标准》
- (生字课件)13、桥(共11张PPT)
- 国开2022年春季《小学数学教学研究》形考任务1-4题库及答案
- 《ANSYS有限元基础》课程教学大纲
- 专用钻床液压系统设计.
- 中继距离的计算
- 购房楼层计算器-日照-
评论
0/150
提交评论