在VB下实现无线通信的方法
- 格式:doc
- 大小:35.50 KB
- 文档页数:5
vb建无线wifi热点(附图)本程序是利用vb读写文件来实现的,再通过调用计算机中的explorer运行新建的文件,程序思想是通过dos命令建立虚拟无线热点,因此你的计算机必须要求带无线网卡,如果你的计算机有无线网卡但不能运行,请尝试升级网卡驱动。
由于运行当中会调用explorer程序,和某些计算机病毒的投放方法有所相同,所以程序在运行时会引起一些安全软件的误判。
程序运行时会在C:\Users\Administrator\Documents目录下生成文件。
原程序已上传到我的百度网盘上/netdisk/singlepublic?fid=52019_1022037011还有许多不足,希望大家指出改进!程序源码如下:Public a As Integer, e As Integer, f As Integer, b As String, c As String, d As StringPrivate Sub Command2_Click()b = Text1.Textc = Text2.Textd = "netsh wlan set hostednetwork mode=allow"If b = "" Or c = "" ThenMsgBox "请填写新建无线网络名称或密码!", 48, "错误!"ElseIf Len(c) = 8 ThenOpen "C:\Users\Administrator\Documents\wifibuild.bat" For Output As #1Print #1, "netsh wlan set hostednetwork mode=allow", "ssid="; b, "key="; cPrint #1, "netsh wlan start hostednetwork"Close #1Shell "explorer.exe " & "C:\Users\Administrator\Documents\wifibuild.bat", 1Label5.Caption = "已连接"Timer1.Enabled = TrueElseMsgBox "密码长度应为8位!", 48, "错误!"End IfEnd IfEnd SubPrivate Sub Command3_Click()If Dir("C:\Users\Administrator\Documents\wifibuild.bat") <> "" ThenOpen "C:\Users\Administrator\Documents\wifiend.bat" For Output As #1Print #1, "netsh wlan set hostednetwork mode=disallow"Shell "explorer.exe " & "C:\Users\Administrator\Documents\wifiend.bat", 1Close #1Timer1.Enabled = FalseElseMsgBox "您还没有创建wifi热点!", 48, "错误!"End IfEnd SubPrivate Sub Form_Load()a = 0e = 0f = 0End SubPrivate Sub Form_Unload(Cancel As Integer)If Dir("C:\Users\Administrator\Documents\wifibuild.bat") <> "" Then Kill "C:\Users\Administrator\Documents\wifibuild.bat"End IfIf Dir("C:\Users\Administrator\Documents\wifiend.bat") <> "" Then Kill "C:\Users\Administrator\Documents\wifiend.bat"End IfEnd SubPrivate Sub Option1_Click()Text2.PasswordChar = ""End SubPrivate Sub Option2_Click()Text2.PasswordChar = "*"End SubPrivate Sub Timer1_Timer()r: a = a + 1If a = 60 Thene = e + 1a = -1GoTo rEnd IfIf e = 60 Thenf = f + 1e = 0End IfLabel6.Caption = f & "小时" & e & "分钟" & a & "秒"End Sub附图:1.未连接2.已连接3.4.打开网络和共享中心——》更改适配器设置,会发现多了个无线网络连接25.设置宽带共享之后你就可以用你的手机连接你的电脑共享网络上网,再也不怕月末流量报警了有木有!注意:程序运行点击创建wifi时会出现如下情况点允许执行就行了,我试过用cmd.exe直接打开新建的文件,好像不行,所以只能用explorer 了。
摘要当今社会,采用无线通信技术的工控产品很多,有的采用扩频通信原理;有的采用RF调频通信原理。
根据发射功率的不同,无线通信的距离也各不相同。
也有很多公司开发出了应用于不同场合的无线数传模块,大大方便了无线通信测控系统的设计,可以减少有线设备在连线上的麻烦,同时也可以节省空间,故障检修方便,必定会成为未来工业现场的一个发展方向同时也给使用者带来了极大的方便。
无线通信网络,由于其特有的非接线通信方式的优点,广泛应用于特定地理位置(如山区、油田和水利设施等)的现场遥测遥控领域。
尤其在分布距离较远且数据传输量不大时,无线通信控制网络的优势更为明显。
因此研究无线通信在工业控制中设备的连接、通信协议、数据采集等技术的应用具有相当重要的现实意义。
本实验可以实现多种液体的混合,包括其中每种液体的配比,混合液的搅拌时间,固定混合液的总质量,超过固定值后液体即可停止注入,混合液的排放,及相关数据的采集和保存,同时也可调用根据经验已经保存的混合液的配比。
它基于牛顿工控模块搭建实现的,其中包括无线收发模SST900EXT、单路模拟量输入模块7012,、数字量模块7044、模拟量输出模块7021、液体混合实验箱。
在PC机上使用vb编程软件编制上位机界面,无线模块与上位机通过RS-232方式连接,其他设备通过简单的连线整个模拟液体混合控制系统的搭建,此系统关键字:无线通信,牛顿工控模块,液体混合控制系统。
目录1基础知识 (1)1.1牛顿模块的概述 (1)1.2 牛顿-7000系列模块的特点 (1)2系统设计 (2)2.1设计原理 (2)2.2设计方案 (2)2.3 设计流程图 (2)3硬件设计 (4)3.1试验箱介绍 (4)3.2 牛顿工控模块搭建 (4)3.3 液体混合控制原理图 (5)3.4实验连线图 (6)4 软件设计 (7)4.1 VB简介 (7)4.2 登陆界面、主界面、数据显示及采集界面设计 (8)4.3 各个功能模块设计 (10)4.31模拟进料通道和搅拌模块 (10)4.32 数据输入及选择模块 (10)4.33 显示及输出模块 (11)4.34 基本设置模块 (11)5 调试及运行结果 (12)5.1调试 (12)5.2 运行结果 (12)6总结 (13)7 参考文献 (14)1基础知识1.1牛顿模块的概述牛顿-7000是远程数据采集模块,提供了A/D,D/A,DI/DO,Timer/Counter(定时器、计数器)以及其它一些便携功能模块,赚为工业现场数据采集与控制而设计。
在VB中使用Winsock实现通信2007-12-11 10:08:35|最近刚接触VB,学习了用Winsock创建聊天应用程序。
下面的实例分别用TCP协议和UDP协议实现通讯。
1. 选择通讯协议的标准在使用WinSock控件时,可以使用的协议包括TCP和UDP。
两种协议之间的重要区别在于它们的连接状态:a).TCP协议控件是基于连接的协议,可以将它同电话系统相比。
在开始数据传输之前,用户必须先建立连接。
b).UDP协议是一种无连接协议,两台计算机之间的传输类似于传递邮件:消息从一台计算机发送到另一台计算机,但是两者之间没有明确的连接。
2. Winsock控件使用TCP协议如果应用程序要使用TCP协议,那么首先必须决定应用程序是服务器还是客户端。
如果要创建一个服务器端,那么应用程序需要“监听”指定的端口。
当客户端提出连接请求时,服务器端能够接受请求并建立连接。
在连接建立之后,客户端与服务器端可以自由地互相通讯。
2.1 TCP服务器端窗体设计:为窗体添加如下的代码:Private Sub Form_Load()'设置本地端口号为6000Winsock1.LocalPort = 6000'打开监听Winsock1.ListenEnd SubPrivate Sub Winsock1_ConnectionRequest(ByVal RequestID As Long) Dim myStr As String'如果当前状态处于连接状态,则先关闭连接,再接收新的请求If Winsock1.State <> sckClosed ThenmyStr = MsgBox("客户请求建立连接,是否允许?", vbOKCancel) If myStr = vbOK Then'关闭连接Winsock1.Close'接收客户请求,建立连接Winsock1.Accept RequestIDWinsock1.SendData "接收"MsgBox "与客户建立了新连接"End IfEnd IfEnd SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim myStr As String'调用GetData方法接收数据Winsock1.GetData myStrText2.Text = myStrEnd SubPrivate Sub Winsock1_Close()Winsock1.CloseWinsock1.ListenMsgBox "与客户断开连接"End SubPrivate Sub Text1_Change()'当服务器端的文本框中的内容发生变化时,使用SendData方法发送信息Winsock1.SendData Text1.TextEnd Sub2.2 TCP客户端窗体设计:为窗体添加如下代码:Private Sub Form_Load()Text1 = "192.168.1.22"Text2 = 6000End SubPrivate Sub Command1_Click()If Winsock1.State = sckClosed Then'设置服务器的IP地址Winsock1.RemoteHost = Trim(Text1.Text)'设置服务器的端口号Winsock1.RemotePort = Trim(Text2.Text)'发出连接请求Winsock1.ConnectEnd IfEnd SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim myStr As String'调用GetData方法接收数据Winsock1.GetData myStrText4.Text = myStrOption1.Value = TrueEnd SubPrivate Sub Winsock1_Close()Winsock1.CloseOption2.Value = TrueEnd SubPrivate Sub Text3_Change()'当txtSend控件的内容发生变化时,调用SendData将信息传送给主机Winsock1.SendData Text3.TextEnd Sub2.3 运行方法1)同时运行服务器端程序和客户端程序,得到两个示意图(略)2)在客户端程序的界面中单击“连接”按钮,此时,服务器端程序显示“客户请求建立连接,是否允许?”3)单击“确定”,客户端的连接状态会变成“连接”状态,此时,两端已建立起连接。
VB网络通讯程序设计WinSock控件能够通过UDP协议(用户数据报协议)或TCP协议(数据传输协议)连接到远程的机器并进行数据交换。
这两种协议都能用来创建客户端和服务端应用程序。
就像定时器控件一样,WinSock控件运行时没有一个可视的界面。
下面就是分别用TCP和UDP协议来创建的网络聊天软件。
TCP协议网络聊天程序的运行过程及原理第一步:建立连接主要过程是:由客户端程序向服务端程序发出连接请求,服务端程序收到并接受连接请求,至此客户机与服务器创建了数据交流通道。
第二步:开始聊天主要过程是:在客户机的“发送的信息”文本框中输入文字时,服务器端的“收到的信息”文本框中就会实时地显示相同的文字,反之亦然。
服务器的界面设计1.创建一个“标准 EXE”工程,选中“工程”菜单的“部件”,在控件中找到Microsoft Winsock Control并将其选中。
2.将Form1的名称改为Form_Load(),并在其中添加两个命令按钮(Command1的Caption属性为“退出”,Command2的Caption属性为“发送”)。
3.在窗体是添加三个TextBox控件,其名称分别为txtServerIP,txtSend和txtReceive。
4.在窗体上添加一个Winsock控件,将其Protocol(协议)属性设置为0(即sckTCPProtocol)。
服务器端的源代码:Private Sub Form_Load()'设置侦听端口WinsockServer.LocalPort = 10001'读取服务器的IP地址txtServerIP.Text = WinsockServer.LocalIP'开始侦听WinsockServer.ListenEnd SubPrivate Sub Command1_Click()'点击“退出”按钮后关闭应用程序Unload MeEnd SubPrivate Sub Command2_Click()'只要txtSend文本框的容写好以后就由WinsockServer控件发送 WinsockServer.SendData txtSend.TextEnd SubPrivate Sub WinsockServer_ConnectionRequest(ByVal requestIDAs Long)'当收到连接请求时,Winsock处于侦听状态'此时应该使用Close方法关闭Winsock,然后使用Accept方法接受连接请求WinsockServer.CloseWinsockServer.Accept requestIDEnd SubPrivate Sub WinsockServer_DataArrival(ByVal BytesTotal As Long)'当客户端有信息发送来时,利用WinsockServer控件的GatData 方法读取数据'并将其显示在txtReceive文本框中Dim MyStr As StringWinsockServer.GetData MyStrtxtReceive.Text = MyStrEnd Sub运行界面如下图:客户端的界面设计1.创建一个新的“标准 EXE”工程,并添加Winsock 控件。
摘要:本文给出了一种以数传电台为通讯媒体,由控制中心PC机和多个AT89C51单片机系统组成的远程无线通信系统,重点介绍了利用VB实现PC机与多个单片机控制系统远程无线通讯程序设计方法,实现了PC机对多个远端单元的实时控制与管理。
关键词:Visual Basic、串行通讯、数传电台、单片机、远程控制1 引言随着现代电子与信息技术的不断发展,计算机与单片机控制系统之间的远程无线通讯技术得到了广泛的应用,而数传电台目前已发展成为远程无线通信的一种重要工具,它使用灵活、性价比高,环境适应能力强,非常适用于大范围、分散控制系统及在恶劣环境中,不适于铺设有线网络的实时监控系统,数传电台已成功应用于电力设备监控、计算机实时监控与数据采集(SCADA)以及实时交易数据遥测遥控等领域。
同时VB6.0具有界面友好、编程简便高效、数据处理及驱动底层硬件功能强等优点,成为许多用户开发PC 机与单片机串行通信程序的首选工具。
本文以美国MDS OEM EL705数传电台为通讯媒体,利用VB6.0的通讯控件MSComm实现了控制中心PC机与多个远端AT89C51单片机控制系统之间远程无线通讯,实现了控制中心PC机对多个远端单元的实时控制与管理,并应用于工程设计中,通过实际应用,取得了满意的效果。
2 系统的组成及工作原理2.1系统的组成系统由控制中心和多个远端单元RTU(Remote Terminal Unit)组成。
控制中心主要由上位机PC和数传电台组成,各远端单元由数传电台、AT89C51单片机系统及现场设备组成,各远端单元根据实际需要分布在距控制中心一定距离的范围内,控制中心及远端单元结构分别如图1、图2所示。
2.2工作原理控制中心作为系统的数据终端设备DTE(Data Terminal Equipment),负责实现对远端单片机系统的实时控制与管理,打印单片机系统工作状态信息、自检信息、记录报表信息及远程单片机系统故障报警信息等,并可通过局域网与其它PC机进行信息传递。
目录一无线通信网络简介 (2)二无线通信平台的VB控制系统实验 (3)1 实验目的 (3)2 实验仪器 (3)3 实验内容 (3)4实验电路 (3)5 实验步骤 (4)三基于无线通信平台的VB温度PID控制系统硬件设计 (5)1系统硬件设计 (5)2系统界面设计 (5)3 数据采集与显示程序设计 (6)4 系统控制方法设计 (9)四系统运行结果与分析 (19)1 系统运行结果 (19)2 分析改进措施 (20)五参考文献 (20)一 无线通信网络简介Visual Basic (VB )是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。
从任何标准来说,VB 都是世界上使用人数最多的语言——不仅是盛赞VB 的开发者还是抱怨VB 的开发者的数量。
它源自于BASIC 编程语言。
VB 拥有图形用户界面(GUI )和快速应用程序开发(RAD )系统,可以轻易的使用DAO 、RDO 、ADO 连接数据库,或者轻松的创建ActiveX 控件。
程序员可以轻松的使用VB 提供的组件快速建立一个应用程序。
无线通信(Wireless Communication )是利用电磁波信号可以在自由空间中传播的特性进行信息交换的一种通信方式,近些年信息通信领域中,发展最快、应用最广的就是无线通信技术。
无线通信网络,由于其特有的非接线通信方式的优点,广泛地应用于特定的地理位置(如山区、油田和水利设施等)的现场遥测遥控领域。
尤其在分布距离较远且数据传输量不大时,无线通信控制网络的优势更为明显。
典型无线通信网络分布式控制系统见图1所示图1.无线通信控制网络图1中,采用台湾威达(ICP )无线通信模块SST900EXT,通信距离1km;波特率最大19200;232/485通信接口。
PC COM 口 无线模块 232232 测控对象无线模块+控制模块 测控对象无线模块+控制模块二 无线通信平台的VB 控制系统实验1 实验目的1)掌握电热炉温度控制的原理及方法。
1.引言目前已经有多种主流的网络通信软件,也有很多种制作网络聊天室的方法。
而使用VB制作是最为简单易行的。
使用VB实现网络通信方法大同小异,本次制作参考的文献资料基本方法基本都是使用Winsock控件编写服务器端、客户端通信程序,实现了对基于TCP /IP协议的、面向连接的流方式套接字网络通信程序设计。
本次设计同样使用了VB 中的Winsock 控件完成了本次网络通信软件的设计制作,实现了两台计算机之间的通信初步实现服务器和客户端的通信和实现客户端之间的通信。
2.Winsock控件介绍Winsock控件对用户来说是不可见的,它提供了访问TCP 和UDP 网络服务的方便途径。
为编写客户或服务器应用程序,不必了解TCP 的细节或调用低级的Winsock APIs。
通过设置控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且还可双向交换数据。
打开Visual Basic6.0,点击“工程”→“部件”,弹出对话框,选择Microsoft Winsock Control 6.0 。
这时在工具箱中会多一个控件,这就是Winsock控件,现在就可以开始使用它进行设计编程。
Winsock控件的常用属性:BytesReceived属性(接受数据的字节数),LocalHostName属性(本地主机名称),LocalIP属性(本地主机IP),LocalPort属性(本地主机端口),RemoteHost属性(远程主机名称),State属性(Winsock控件)(网络状态【连接、未连接】),Protocol属性(值为0-sckTCPProtocol 时使用TCP/ IP 协议,为1-sckUDPProtocol 时使用UDP 协议),Name属性(控件的名称),RemotePort属性(ActiveX控件)(远程主机端口),Object属性。
Winsock控件的常用方法:Accept方法(接受TCP连接请求),Bind方法,Close方法(关闭TCP连接),Listen方法(监听TCP数据),PeerData方法(获得数据),SendData方法(传输数据),GetData方法(获得数据)Winsock控件的常用事件:Close事件(关闭连接),ConnectionRequest事件(连接请求),DataArrival事件(数据到达),SendComplete事件(数据传输完毕),SendProgress事件(数据传输中),Error事件(发生错误),Connect事件(建立连接)。
基于VB6.0的无线数据通信上位机设计与实现作者:边晓鋆徐玲玲王颖曹世华来源:《物联网技术》2018年第01期摘要:在现代控制系统中,上位机负责管理整个系统及各部分功能的实现、调节调度、信息处理等工作。
Visual Basic是一款由微软公司开发,用于协助开发环境事件驱动的编程语言。
VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易使用DAO、RDO、ADO连接数据库,或轻松创建ActiveX控件。
文中针对上位机开发过程中VB与蓝牙4.0通信以及VB与数据库如何传输数据的问题,采用VB语言编写了上位机与PLC的通信程序、界面程序以及上位机与数据库的通信程序。
实现了将电脑接收到的蓝牙传输文件内容显示在VB窗口,并将数据写入MySQL数据库并存储,及查询MySQL数据库已存储数据等功能。
关键词:VB;数据库;上位机;通信中图分类号:TP311 文献标识码:A 文章编号:2095-1302(2018)01-00-030 引言上位机又称PC机或Host Computer,是可以发送控制命令的主机或计算机。
下位机是指具有数据采集、数据存储、传输控制等功能,可以直接获取硬件设备运行状态数据的主机,一般由PLC和单片机组成。
上位机与下位机之间是从属关系,上位机是控制者,利用软件程序发送相关指令给下位机;下位机是受控制者,将该指令翻译成相应的时序信号,然后直接控制对应设备完成用户需要的对应操作,同时下位机在完成对数据和硬件设备的读取操作后,再将数据编码传回上位机[1,2]。
总体而言,上位机主要负责系统管理、调配、状态监控、信息处理和分析等工作,下位机主要在现场进行数据采集和和控制。
在某些特殊场合,上位机和下位机的控制和被控制角色可以互换。
上位机和下位机之间的通信是整个控制系统的关键。
Visual Basic(VB) 6.0是微软公司开发的可视化编程语言,是基于Windows环境面向对象的应用程序。
如何用VB编程实现计算机通讯作者:孙亮来源:《电子技术与软件工程》2016年第01期VB编程对于计算机通讯发挥着重要的作用。
作为一种传递方式,在终端设备与计算机之间负责将数据传递。
本文结合VB编控件的两种通讯方法,对计算机通讯进行分析,解出VB 编程对计算机通讯的运用。
让计算机通讯的实现变得非常简单易懂。
【关键词】VB编程计算机通讯实现在计算机与各个终端设备之间形成联系的桥梁,进行信息传输。
在计算机内部有着特别的数据传输通道。
还有一种传输方式,是有关于终端的。
计算机通讯的传输,就是在终端设备与计算机之间信息通讯的一个过程。
1 VB编程语言介绍它能够在通讯运用中运转自如,同时因为它的可靠性,对于通讯的长久性稳定性拥有也做出了很大的贡献。
处理临时性发生的问题也非常的迅速与快捷。
同时在处理问题上也处在非常高的效率。
VB语言的运用在各个领域都有所涉及,它在计算机通讯中也是发挥着非常重要的作用。
想要更好将VB编程与计算机通讯联系好,做好,VB编程语言是一定要掌握好的。
2 VB编程与计算机通讯如何将VB程序灵活运用到计算机通讯中,让信息的传输变的方便与快捷。
针对主要系统RAD和GUI系统进行部分解析,然后通过以上的介绍作为铺垫,引出计算机通讯。
计算机通讯的传输,就是在终端设备与计算机之间信息通讯的一个过程,如何用VB编程实现计算机通讯。
2.1 计算机通讯中MScomm控件的使用使用MScomm控件在查询方法上,可以得到广泛使用。
在事件驱动中也可以发挥它的作用。
2.1.1 查询法查询法是有一定的规律的。
信号的读取是具有周期性的,根据读取的缓冲区的信号来判断事情的发生,再根据信号的显示来进行处理。
在端口查询的过程中,是不允许让任何信息或事件遗失的。
查询法它非智能化的,不能起到自动判断的,需要人为的控制,才能对数据进行处理。
2.1.2 事件驱动法它能够自动的做出感应,并且做出相应的判断。
它是利用MScomm控件的OnComm事件来完成的。
1、前言本文是以笔者参与的某啤酒厂的监控系统实现的项目为背景。
监控系统主要由前端监视设备、传输设备、后端控制显示设备这三大部分组成,其中后端设备可进一步分为中心控制设备和分控制设备。
前、后端设备有多种构成方式,它们之间的联系(也可称作传输系统)可通过电缆、光纤或微波等多种方式来实现。
由于现场的PLC或单片机控制系统的资源、功能有限,不能长期保存数据,人机界面差,上位机丰富的资源可以对采集到的数据进行分析,存盘,运算、打印、报警并进行各种相应显示。
上位机形象的人机界面可使操作员更直观,全面的了解现场的情况。
采用Intouch、VB来实现。
vb是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序。
它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。
在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。
2、系统结构笔者参与的监控系统呈两层分布式体系结构:数据采集层和监控层。
数据采集层主要采用数据通信标准接口;监控层属于局域网,遵循局域网的协议标准。
数采层进行数据的采集、处理将数据传递到上一层;监控层共享数采层传来的数据。
该系统的数采层由多台测控装置组成。
这些测控装置采用RS-485标准总线与数采管理站通信。
在软件方面采用VB来实现测控装置数采程序,它主要完成上位机与测控装置之间的数据通信和所采集数据的DDE(动态数据交换)转换功能。
在工控机上的人机界面则采用监控平台软件来实现。
工控机即工业控制计算机,但现在,更时髦的叫法是产业电脑或工业电脑,英文简称IPC,全称Industrial Personal Computer.工控机通俗的说就是专门为工业现场而设计的计算机。
目录一无线通信网络和VB的简介 (1)1无线通信网络 (1)2Visual Basic (2)二无线通信平台的VB控制系统实验 (3)1实验目的 (3)2实验仪器 (3)3实验内容 (4)4实验电路 (4)5实验步骤 (4)三无线通信平台VB交通灯控制系统设计 (5)1系统硬件设计 (5)2系统界面设计 (6)2.1Visual Basic设计主要元素 (6)2.2主画面对象窗口设计 (7)3数据采集与显示程序设计 (9)4系统控制方法设计 (11)四系统运行结果与分析 (15)1系统运行结果 (15)2分析改进措施 (16)五参考文献 (17)一无线通信网络和VB的简介1无线通信网络无线通信网络,由于其特有的非接线通信方式的优点,广泛应用于特定地理位置(如山区、油田和水利设施等)的现场遥测遥控领域。
尤其在分布距离较远且数据传输量不大时,无线通信控制网络的优势更为明显。
目前,采用无线通信技术的工控产品很多,有的采用RF调频通信原理;有的采用扩频通信原理。
根据发射功率的不同,无线通信的距离也各不相同。
也有很多公司开发出了应用于不同场合的无线数传模块,大大方便了无线通信测控系统的设计。
考虑到实验系统的要求及实际应用情况,我们选用了台湾威达(ICP)的牛顿无线通信模块和工控模块开发无线通信控制网络实验平台。
台湾威达(ICP)公司是著名的工控产品研发和生产公司,其公司生产的工业控制计算机、数据采集卡和工控模块都是目前工控行业的主流产品。
尤其是工控模块产品,由于性价比高、组合使用方便,深受用户好评。
典型无线通信网络分布式控制系统见图1-1所示。
PC COM口测控对象测控对象无线通信模块+控制无线通信模块+控制图1-1典型无线通信控制网络232无线通信模图1-2中,采用台湾威达(ICP)无线通信模块SST900EXT,通信距离1km;波特率最大19200;232/485通信接口无线通信控制网络系统是由牛顿工控模块构成,系统原理图如图1-2所示:1-2系统原理图系统各部件说明如下:(1)SST900EXT:无线接收/发送模块,232/485接口;速率最高19.2Kbps;距离200米,加放大天线可达1km.本实验系统速率设为9.6Kbps。
用Visual Basic实现点对点通讯使用TCP协议时,如果需要创建一个客户应用程序,就必须识别服务器的名称或IP地址。
应用程序的通信端口随时都将仔细监测对方发出的消息,这是系统进行可靠连接的保证。
一旦连接发生,任何一方都可以通过SendData 发送和接收数据,并借助GetData把自己的数据分离出来。
传送数据时,需要先设定客户机的LocalPort属性,服务器则只需要把RemoteHost属性设定为客户机以太网的地址,并设定与客户机LocalPort属性相同的端口地址,借助SendData方法开始发送消息。
客户机则在GetData事件中通过DataArrival 事件分离出发送的信息。
一个Winsock控件可以让本地计算机连接到远程的计算机上,同时使用UDP或TCP协议,两个协议都能创建客户机和服务器应用。
使用Winsock控件时,通信的双方需要选定相同的协议。
TCP协议适用于传送大容量、需要安全性保证的数据文件,而UDP协议适用于需要分别与很多下属通信,或者建立的连接比较多且为时变的情况,特别是在数据量很小的时候。
设定时可以使用Winsock1.Protocol =sckTCPProtocol方法,首先要找到你的计算机的名称,并把它添入Winsock的LocalHost属性中。
创建一个应用程序时,首先要确定你建立的是客户方应用还是服务器服务,只有建立的服务器应用开始工作,并进入监听状态时,客户应用程序才开始建立连接,进入正常的通信状态。
笔者建立了一个应用程序,它的功能是当客户方的鼠标移动时,服务器应用程序上能够实时显示该鼠标的位置。
下面是建立服务器应用的方法:1.创建一个新的标准EXE文件;2.加入一个Winsock控件;3.加入如下代码:建立客户应用的方法为:1.创建一个新的标准EXE文件;2.加入一个Winsock控件;3.加入两个Text框——txtx和txty;4.加入如下代码:接收数据以上例程实现的是一个非常简单的点对点通信,在此基础上略加改造,可以形成功能复杂的实时计算机网络A-A交互通信系统,用于控制、图形仿真等。
在VB下实现无线通信的方法一、 VB串行通信利用VB开发通信程序主要的方法有两种:一是利用VB本身提供的控件(CONTRALS);另一种方法是利用Windows API应用程序接口。
Windows API 主要提供了三个动态连接库(KERNEL.EXE、USER.EXE、GDI.EXE)供开发人员调用,其中KERNEL.EXE 主要包括一些底层操作函数,完成一些资源管理、任务、内存等操作;USER.EXE包含了一些与Windows管理有关的函数,如通信、菜单、消息、光标、插入符、计时器以及绝大多数非显示函数;GDI.EXE图形设备接口库,主要内容为与设备输出有关的函数。
和串口通信有关系的函数BuilidCommDCB、ClearCommBreak、SetCommBreak、FlushComm、GetCommError、GetCommState、WriteComm、ReadComm、SetCommState、CloseComm等均在 \Windows\system 子目录下的USER.EXE动态连接库中,在VB调用之前应该先在全局变量定义处声明API通信函数、定义常量。
在VB的控件工具箱中,提供了一个使用非常方便的串行通信控件MSComm,它提供了一个事件OnComm,该事件可以截取串口的任何消息,转入事件处理程序。
OnComm事件是唯一的,OnComm可以捕获通信时发生的串口事件和错误信息,当有串口事件或错误发生时,VB会立刻触发一个OnComm事件,程序就会自动转入OnComm事件处理程序中。
CommEvent属性是OnComm事件的指示器,该属性在设计时不能使用,在程序运行时为只读,CommEvent 属性存有最近的事件或错误的数值代码,可以在程序中随时读取CommEvent 属性值来了解通信的状况,OnComm事件是和CommEvent属性密切相关、一起使用,当任何一个OnComm 事件或错误发生时,都会使得CommEvent属性值改变,在OnComm事件处理过程中,可以通过判断CommEvent属性值,对于不同的属性值转入不同的事件处理过程,一般采用的办法是SELECT CASE.......END SELECT。
由于在无线通信中没有使用有线Modem,CommEvent 属性涉及到的有线Modem 的属性数值代码和本项目无关。
二、无线传输接口和协议用Intel 586/120的PC机为上位机,通信程序用VB开发,用8031单片机作CPU、 AD574作数据采集的下位机,上位机作数据接收和数据处理中心站,下位机实时采集数据之后,进行简单的数据平均计算,当收到上位机发来的发送指令之后,开始向上位机发送数据。
上位机无线通信接口使用的是一块插在ISA扩展槽中的无线Modem ZX-02,无线Modem与Kenwood 公司的TK-378无线对讲机相连,数字信号通过无线Modem调制成为音频信号之后,送到TK-378无线对讲机上的MIC口。
下位机有一台外置无线Modem ZX-01,单片机的数字信号经过串口送入无线Modem,Modem对信号进行调制后送入Kenwood TK-378无线对讲机上,接收数据的方式与上述相同,由TK-378收到信号后,经无线Modem 将音频信号解调为数字信号进入计算机或单片机处理。
由于在通信网络中,并非点对点的通信,而是一点对多点的广播式的通信方式,因此,我们在通信协议中增加站点识别码,给下位机编码可以保证网络通信的有序性。
由于无线通信可能会有空间的燥声干扰,因此,采取了多项抗干扰措施,首先是包头识别码,在发送了传输命令之后,下位机开始以打包的形式传输数据,每一包都有一个包头和包尾识别码,假如识别码有误,这一次的传输为不正常数据处理。
打包发送另外一个原因是TK-270对讲机连续发送数据的时间不能超过一分钟,超过一分钟就会自动中断发送,因此,当数据较多时不打包连续发送的时间就会超过一分钟,发送数据中断。
在下位机中有32KB的NVRAM,可以保存32KB的数据。
该数据可以由上位机发送清除命令的方法清除掉,当32KB满了以后,最早放入的数据就会丢掉,由于采样速率不高,在慢采的情况下,两天的时间才能存满,这样不论上位机或下位机出现断电、死机等问题,数据不会丢失掉。
由于使用的无线Modem所限,传输速率只能达到2400bps,而在我们的使用中1200bps、N Parity、8 DATA、1 STOP为较稳定状态。
上位机向下位机发送的命令有校时命令、请求内存命令、发送数据命令、快采命令和慢采命令等。
发送命令有两种发送方式,即手动方式和自动方式,自动方式是由定时器来完成的。
作者:王萍霞出处:yesky责任编辑:方舟 [ 2002-03-04 10:40 ]利用VB开发通信程序主要的方法有两种:一是利用VB本身提供的控件;另一种方法是利用Windows API 应用程序接口三、应用实例由于该项目的软件源代码较长,我们只拿出和串口通信有关的程序片段来供大家参考。
在我们的工作中实践了三种通信方式,即查询方式、事件驱动方式、事件驱动转查询方式。
这三种方式各有利弊,查询方式方便可靠,可利用协议或设定时钟进入和退出查询状态,但不是资源的有效利用方式;事件触发方式对于定长通信非常有效,但定长通信在有些场合不实用;事件驱动转查询方式既有事件驱动的特点又有转查询方式特点,可以说是集二者之长,有效利用资源。
下面着重介绍事件驱动转查询方式。
首先在公共模块中定义和ONCOMM有关的参数:Global Const MSCOMM_EV_RECEIVE = 2‘收到 Rthreshold 个字符。
该事件将持续产生直到用 Input 属性从接收缓冲区中删除数据。
Global Const MSCOMM_ER_RXOVER = 1008‘接受缓冲区溢出,接收缓冲区没有空间。
Global Const MSCOMM_ER_TXFULL = 1010 ‘传输缓冲区已满。
传输字符时传输缓冲区已满。
在启动过程中对串口和输入输出缓冲区初始化:下面是发送数传命令的子过程,启动该过程由一个定时器控制:在OnComm编写接收和处理代码:Sub Comm1_OnComm ()Select Case mEventCase MSCOMM_ER_RXOVER 接收缓冲区溢出,可插入相应的代码Case MSCOMM_ER_TXFULL 传输缓冲区已满,可插入处理代码Case MSCOMM_ER_RECEIVE 收到1个字符,可进入以下处理过程comm1.RThreshold = 0 不再响应OnComm事件,转入查寻方式接收ii = 0iii = 0: sinn = Chr$(42): sinn1 = Chr$(42)初始化变量Doduration = Timer + .2 设定超时退出的时间值iii = iii + 1sinn1 = sinnDo 该循环判断输入缓冲区是否有数据或是否超时'dummy% = DoEvents()Loop Until comm1.InBufferCount >= 1 Or Timer >= duration If Timer >= duration Theniii = iii - 1overtime = True 确定超时退出,并非正常退出Exit DoEnd Ifsinn = comm1.Input 正常退出,取值付给sinnIf header_er = 0 ThenGoTo test_headerEnd IfIf Asc(sinn) > 175 Or Asc(sinn) < 160 Then 判断包头是否正确iii = 0GoTo station_number_er 包头不正确,丢掉该数据End Iftest_header:header_er = 0 包头正确,接受到包头,header_er=0ssin(iii) = sinn 'put date into string dimantionstation_number = Asc(ssin(1))package_number = Asc(ssin(2))sentence_number = Asc(ssin(3))last_character = Asc(ssin(iii))station_number_er: Loop Until sinn1 = Chr$(10) andsinn = Chr$(13) 当收到正确的包尾0A,0D后退出If overtime = True Then 如果超时非正常退出overtime = Falsecomm1.RThreshold = 1 重新启动OnComm事件,等待接收下一包timer6_wait.Enabled = TrueGoTo endsubEnd If以下是接收数据正确以后的数据处理程序,包括解码和计算。
If package_number = 1 Then 如果接收数据正确,而且是最后一包timer2_sample.Enabled = True 启动控制数传命令定时器comm1.RTSEnable = True 置PTT为高comm1.OutBufferCount = 0 清空输出缓冲区Call time_delay适当延时comm1.Output = "*MACK" + Chr$(13)发送清内存命令Do检测是否发送完毕Loop Until comm1.OutBufferCount = 0Call time_delay 适当延时comm1.RTSEnable = False 置PTT为低End IfIf package_number > 1 Then 如果不是最后一包comm1.RThreshold = 1启动OnComm准备接收下一包timer6_wait.Enabled = TrueEnd Ifendsub: header_er = 1: comm1.InBufferCount = 0'empty inbuffer protect from bed data on the inbuffer。