您的当前位置:首页 > 技术文章

VB MSCOMM与PLC通讯

 

在启动过程中对串口和输入输出缓冲区初始化
  comm1.Settings = "1200,n,8,1" '设定波特率1200bps,无校验,8位数据位,1位停止位
 comm1.CommPort = 1 '串口1
 comm1.InputLen = 1 '一次从输入缓冲区中读取一个字符
 comm1.InBufferSize = 512 '定义输入缓冲区为512字节(bytes)
 comm1.InBufferCount = 0 '清空输入缓冲区
 comm1.OutBufferCount = 0 '清空输出缓冲区
 comm1.PortOpen = True '启动串口
 

上位机向下位机发送的命令有校时命令、请求内存命令、发送数据命令、快采命令和慢采命令等。发送命令有两种发送方式,即手动方式和自动方式,自动方式是由定时器来完成的。
下面是发送数传命令的子过程,启动该过程由一个定时器控制:
Sub sample_data ()
comm1.RTSEnable = True 将上位机置高,
 Call time_delay 适当延时
comm1.Output = "*关机" + Chr$(13) 发送命令
Do
该循环用来检测命令是否全部发送完毕
Loop Until comm1.OutBufferCount = 0
Call time_delay
适当延时
comm1.RTSEnable = False 将上位机置低,改为接受状态
comm1.InBufferCount = 0 清空接收缓冲区
comm1.RThreshold = 1 设定RThreshold = 1,等待出发OnComm事件
End Sub