新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于VB的计算机与软起动器的通讯

基于VB的计算机与软起动器的通讯

作者:时间:2014-02-17来源:网络收藏

4 通讯程序及监控界面的设计

  vb是一种面向对象的编程语言,应用方便,功能强大,利用microsoft公司提供的activex控件mscomm.ocx就可以方便实现的串口通讯。

  主机发送两种形式的命令,一是周期性命令,一是非周期性命令。周期性命令即主机以轮询的方式周期性读取从机的状态字,判断从机运行状况及通讯情况;非周期性命令即主机发出的控制命令,如起动、停止、编辑参数报警查询等。

  以下是主要通讯程序:

  首先要初始化串行通讯端口

  private sub initcomport() ;初始化通讯端口子程序

  comm.commport=1 ;使用串口com1

  comm.setting=9600,m,8,1;波特率、奇偶校验位、8位数据位、1位停止位

  comm.inbuffersize=1024 ;缓冲区大小

  comm.inputlen=0 ;清空接收缓冲区

  comm.rtsenable=false ;无须硬件握手

  comm.portopen=true ;打开通讯口

  end sub

  值得注意的是,通讯协议中规定以奇偶校验位作为地址选择标志,下面一发送读状态指令为例。

  读状态字

  private sub readstatusword() ;读状态字子程序

  mscomm1.output=command_s ;发送第一个字节(地址及快速指令读状态)

  mscomm1.settings=“9600,s,8,1” ;将奇偶校验位设 ;为0,即接收响应状态

  mscomm1.output=outdatabyte_l;发送低8位

  delay(10) ;延时10ms

  call recieverespond(y) ;接收从机握手信 ;号(y为接收状态)

  if y《》0 then call dealerror ;如果握手信号不 ;正确,调用故障处理子程序

  mscomm1.output=outdatabyte_h;如果握手信号正 ;确,发送高8位

  mscomm1.output= command_s+ outdatabyte_l+ outdatabyte_h+fh ;发送校验码

  call recieverespond(y) ;接收从机握手信号

  if y《》0 then call dealerror ;如果握手信号不正 ;确,调用故障处理子程序

  callrecievedata ;如果正确,调用接收状态字子程序

  call verifys1 ;接收并验证校验和

  end sub

  收到的状态字为二进制双字节(dl,dh),每一位含义如表5和表6所示。

  上位机收到状态字后,判断该机的状态,进而根据状态字和工况要求,对该机进行适当的远程控制。

5 结束语

  strc可靠性高,中文液晶显示,容易操作,易于实现与的联网,本文的程序是用vb6.0编写的简单的单机通讯程序,已调试成功,用于软起动器的上位机控制,在实践中应用正常。在此基础上,可以用vb、vc++等高级语言编程,将监控和管理报表与其溶为一体,做出更灵活,功能更强大的控制软件,进而实现对电机灵活而可靠的控制。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭