在windows2000平台上实现VB对IO口的操作
VB串口操作
设置Comm控件的 RThreshold和
SThreshold属性,如 图
RThreshold设置串口一次性从接收缓冲区中读取 的字节数,SThreshold设置串口一次性从发送缓冲 区中读取的字节数;
Settings属性格式为: ‘波特率’,’奇偶校验’,’数据 位’,’停止位’
这些代码分别实现” 接收清除”,”发送清除” 和程序装载时的初始
根据图示,画出程 序外观,并对相应
属性进行修改
右键单击工具箱 空白处,选择部件
找到Microsoft Comm Control 6.0并选中,点击 确定按扭,加载Comm控
件
现在发现工具箱中已 经添加了一个Comm
控件,选中该控件
绘制Comm 控件
分别双击窗体空白处、 接收清除按扭和发送 清除按扭并编辑它们
化
mport=3表示将 Comm控件的端口号设为3 Mscomm1.portopen=true表示打开 端口3
双击发送按扭,进 入该编辑窗口,编 辑”发送”按扭
的过程代码
Mscomm1.output=Text2.text是将文本框控 件,进入串口 接收过程代码
接收过 程代码
定义一个字符 串变量receive
多分支判断语句判断 串口的当前事件
Dim receive As String
Select Case mEvent
Case comEvReceive
如果当前事件为接
receive = MSComm1.Input 收,则顺序执行
Text1.Text = Text1.Text & receive
End Select
在文本框1中显示 接收到的数据
在Windows2000平台上实现VB对I/O端口操作
20 00平台上的 V B也能对 IO端 口进行操 作。文 中就 此介 绍编写动 态链接库 时涉及到的 关键 问题 , / 并给 出了部分源代码 。 关键词 : no s 00 V IO端 口操作 ; Wi w 0 ; B; d 2 / 设备驱动程序 ; 动态链接库 中图分类号 : P 1 . T 3 67 文献标识码 : A
然而 Widw O n o 2 O对多种 硬件平 台的支 持 , s 0 使得 在用户 程序 或动态链接库 中已不能直接使 用 I o r N、 v 指令 或最终 要编译 成 I、U N O T指令 的 C函数 , IO端 口打 交道只能谓用硬件抽 和 /
象 层 ( A ) 数 ( R A -P R _ C A 、 H L 函 如 E D O T U H R wⅢn P 砌1 o -
维普资讯
第 2 卷第 1 2 期
2O O2年 1月
文章编号 :e 1 9 s < ̄ 2 1 0 0— 2 l — o 12o ) 一C 3 0 O
计 算机 应 用
Co u e p ia o s mp t rAp lc t n i
V 12 . o 1 0 2 N . Jn. 2 O a ,O 2
还使用驱动程序对象 、 资源表、 O栈单元等多种 数据结构 。 I /
一
个完整的 W M驱动 程序好 比一个 “ D 容器 它包含 许 ,
U H R等) CA 。而 Wi o O n w 2 O的安 全机制又 不允许在 用户态 ds 0 直 接调用 H L函数 。注意到 测控 系统 中太 多数 ^ D D A、 A / 、/
不同层次的若干 驱动程 序组成 。当在用户 态发 一个 IO请 /
1 问题 的提 出
[试题]湖南省计算机二级VB选择题第三部分
505.在启动程序或打开文档时,如果记不清某个文件或文件夹位于何处,则可以使用Windows 2000操作系统提供的( C )功能。
A.设置B.帮助C.查找D.浏览516.在任何时候想得到关于当前打开菜单或对话框处内容的帮助信息,可( A )。
A.按F1键B.按F2键C.借助菜单帮助D.单击工具栏帮助按钮517.在使用键盘操作时,可以同时按下( D )键和菜单项中带下划线的字母来选取某个菜单项。
A.InsB.DelC.CtrlD.Alt518.关闭一个应用程序窗口后,该应用程序将( B )。
A.被暂停执行B.被终止执行C.继续执行D.转入后台执行519.将一个项目从“Windows资源管理器”窗口拖到“开始”菜单,是将( A )。
A.该项目放到“开始”菜单中B.该项目从所在的文件夹放到StartMenu文件夹中C.该项目的一个副本(快捷方式)放入“开始”菜单D.该项目从所在的文件夹复制到StartMenu文件夹中520.用剪贴板复制文件,一般适用于(D )情况。
A.距离短,复制一次B.距离长,复制一次C.距离短,复制多次D.距离长,复制多次521.用键盘打开菜单项,必须按住( B),再按菜单项括号中的字母即可。
A.CtrlB.AltC.ShiftD.Tab522.用键盘对文档中的图片进行剪切操作,应先按住( A)键。
A.CtrlB.AltC.ShiftD.Del523.若将文本从一个地方移动到另一个地方,需要先执行( B )。
A.复制命令B.剪切命令C.删除命令D.粘贴命令524.使用Windows 2000“资源管理器”工具栏上的(D )按钮会将操作对象删除,并存放到剪切板上。
A.删除B.复制C.粘贴D.剪切525.使用键盘选择文本,只要按( C )键同时进行光标定位操作就行了。
A.AltB.CtrlC.ShiftD.Ctrl+Alt526.下列操作中,( D )不能启动一个应用程序。
A.用“开始”菜单中的“运行”命令B.用鼠标左键双击查找到的文件名C.用“开始”菜单中的“文档”命令D.用鼠标右键单击“任务栏”中该程序的图标527.要显示以前打开过的文档清单,应该选择“系统”菜单中的(C )选项。
建立支持VB进行IO端口操作的动态链接库
VC VB
int Integer
unsigned short Integer
unsigned long Long
可以看出,在VB中用带符号的数据类型和VC中的无符号数据类型相对应。在VB调用DLL函数时,只要将这些类型的数据用十六进制表示,就可以做到和VC完全对应(因为十六进制数转换成内部的二进制表示仅是一种简单的展开,其结果和无符号数的内部表示相同)。如果采用十进制表示,则需在调用DLL函数之前进行预处理。例如对16位数,若小于等于32 767,则取本身,否则取其16位补码,即取该值与65 536的差,为一负数(实际做时,应是两次减去32 768)。
DATAPRELOAD MOVEABLE SINGLE
HEAPSIZE 1024
EXPORTS WEP @1
inportb @2
inportw @3
inportd @4 Fra bibliotek outportb @5
outportw @6
Command1 上单击。
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook
As Long, ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As
Long) As Long
Key words:dynamic link library,I/O-port,VB,VC
目前VB是深受工程技术人员欢迎的编程语言之一,编写测控程序尤为方便。但当系统中要增加某种非标准设备或自行开发一些接口板时,就有些为难,因为VB本身不支持I/O端口操作。解决这个问题的简便方法是建立用户自己的动态链接库(DLL)。从编程角度看,和外设打交道实际是和外设端口打交道。只要编写出能实现I/O端口操作的DLL,就可以驱动设备进行各种动作。本文介绍编写VB能调用的实现I/O端口操作的DLL的一些关键问题。
用VB控制电脑串口(正确版)
如何用VB 实现电脑串口通信无协技术顾问: 陈文斯什么是串口,为何要学习串口串口是计算机上一种非常通用设备通信的协议。
大多数台式计算机包含两个基于RS232的串口(一般用9针公头接出其中一个接口,如图1所示)。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB 兼容的设备也带有RS-232口。
鉴于串口应用如此广泛,大多数单片机也内置了串口。
通过串口,单片机可以很轻松地与其它设备交换信息。
用VB 编写串口通信的好处Windows 操作系统由于其友好的用户界面赢得了很多用户的青睐。
Visual Basic 即是微软公司基于Windows 操作系统的可视化编程平台。
有些同学会疑问:我又不是计算机专业的,学习VB 是不是十分痛苦。
我告诉你们,非也!要是你对它感兴趣,很快,你会爱上它的。
VB 十分容易入门。
设计用户界面就像我们平时制作PPT 的界面一样。
只需把你需要的控件拖到界面上并调整即可。
VB 的代码也很通俗易懂。
其实基本上都是调用系统函数的。
为抛砖引玉,现举个例子,简要介绍一下VB 编写。
(以下的所有例程都是基于VB6.0的,对于较高.net 版本,可能有所不同)任务1:软件界面上有一个文本框和按钮,当点击按钮时,文本框上显示“爱电子,爱生活。
华南理工大学电子爱好者协会”1、 运行VB ,在新建程序的界面上画出一个文本框(textbox )和按钮(commandbotton )。
如图2所示;2、 双击按钮,出现代码编辑窗口。
并在其中输入代码,如图3所示;3、 运行程序,点击按钮,即可看到如图4所示的效果:是不是很简单呢?!图2图3图1图4个人建议大一大二的师弟师妹应该学习如何用VB操作串口,特别是学会如何实现电脑跟单片机的通信。
这样子,我们日后设计的电子作品必定增色不少。
现在详细讲解一下如何用VB操作串口。
(读者可去图书馆借阅相关图书,掌握串口跟VB的基础知识)要用VB操作串口,需要用到Mscomm控件。
VB实现PC与欧姆龙PLC通讯的串口编程
VB实现PC与欧姆龙PLC通讯的串口编程第一篇:VB实现PC与欧姆龙PLC通讯的串口编程Private Sub Form_Load()Dim i As Integer'OPEN COM1If ComTrue(1)= 0 ThenIf ComOpen(1, 38400, 7, 1, 1, “sjh”)= 1 Then 'MsgBox(“已注册”)'sjh为你的注册账号Call SetDelayNum(64)End IfEnd Ifjisujisu1jisu2End Sub第二篇:VB中串口通讯的实现VB中串口通讯的实现.txt VB中串口通讯的实现------------------一、概述串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用于PC 间的通讯以及PC和单片机之间的通讯之中。
提到串口通讯的编程,人们往往立刻想到C、汇编等对系统底层操作支持较好的编程语言以及大串繁琐的代码。
实际上,只要我们借助相关ActiveX控件的帮助,即使是在底层操作一向不被人看好的VB中,一样能够实现串口通讯,甚至其实现方法和C、汇编相比,要更加快捷方便。
下面,笔者就介绍一下在VB 中实现串口通讯的方法。
在Visual Basic中有一个名为Microsoft Communication Control(简称MSComm)的通讯控件。
我们只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。
下面,笔者就简要地介绍一下MSComm控件的使用方法。
二、MSComm控件的主要属性、事件1、MSComm的属性由于MSComm控件属性很多,在此笔者仅介绍与实现串口通讯密切相关的核心属性。
Commport:设置通讯所占用的串口号。
如设成1(默认值),表示对Com1进行操作。
Setting:对串口通讯的相关参数。
包括串口通讯的比特率,奇偶校验,数据位长度、停止位等。
其默认值是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校验,8位数据位,1个停止位。
VB对硬件控制
Open_Driver.Enabled=NotHwCtrl.ActiveHW
Close_Driver.Enabled=HwCtrl.ActiveHW
B_Unmask.Enabled=HwCtrl.ActiveHW
EndSub
PrivateSubForm_Load()
ShowButtons
)
参数
HwCounter:中断次数
LPT_DataReg:如果使用IRQ7,
则为打印并口的数据
LPT_StatusReg:如果使用IRQ7,
则为打印并口的数据
ScanKode:如果使用IRQ1,
则为按键的扫描码
属性IRQNumber指定中断号,
范围IRQ1--15
属性IRQMasked中断非屏蔽则为True;
屏蔽为False。
示例的窗体,程序运行后首先按Open_Driver钮打开驱动程序,然后选择Unmarsk 复选框开放中断,此时每按一次键框中分别显示该键的扫描码和中断次数。处理其他中断只 需更改中断号即可(中断号1—15)。
程序清单:
PublicSubShowButtons()
EndSub
PrivateSubOpen_Driver_Click()
HwCtrl.OpenDriver打开驱动程序
IfNotHwCtrl.ActiveHWThen
MsgBox(“ThedriverVICHWxxnotfound")
Else:
HwCtrl.IRQNumber=1中断号为1,键盘中断
“vbio.dll"()
PrivateDeclareFunctionInpLib
VBO软件操作手册
1.硬件 (4)1.1硬件` (4)1.2新手上路 (5)1.3LED 解释 (7)1.4电池 (7)1.5连接图 (8)1.6蜂鸣器声音 (10)2.使用技巧 (11)3.操作手则 (12)4.设置 VBOX (15)VBOX安装 (15)4.2Misc Channels其它通道 (16)4.4设置 (17)4.5Info (19)5.软件—新手上路 (20)5.1怎样做加速试验 (20)5.2怎样做制动实验 (20)5.3怎样通过图形化的界面查看测试结果 (20)5.5怎样在没有手提计算机连接的情况下进行试验 (21)6.软件–开始使用 (22)6.1主屏幕 (22)6.1.1用户设置前面板 (23)7.软件主菜单 (24)7.1File 文件 (24)7.1.1File load 文件载入 (24)7.1.2File save 文件保存 (24)7.1.3Replay file 文件回放 (24)7.1.4Repair/expand file 修补/扩充文件 (24)7.1.5Language语言 (24)7.2Options 选项 (24)7.2.1Unit of measurement测量单位 (24)7.2.2GPS cold start GPS 冷启动 (24)7.2.3 com口选择 (25)7.2.4Lock results until manually reset锁定结果直到手动复位 (25)7.2.5VBOX II & Pro Rev 4 (25)7.2.6 Measure distance using external trigger 使用外部触发器测量距离 (25)7.2.7Accel table columns 加速表纵列 (26)7.2.8Reset time when stationary 停止时把时间复位 (26)7.2.9Enable Slip angle calculations on Yaw sensor data 允许在偏航传感器数据上进行偏离角计算 (26)7.2.10Show Real Time Scope 显示实时范围 (26)7.2.11Put radius of turn in channel data 把转弯半径放到通道数据中 (26)7.2.12Delimiter for text files 文本文件的分隔符 (26)7.2.13Use target speed 1 for MFDD 使用的目标速度给MFDD (26)7.3Target speeds 目标速度 (26)7.3.1Test range 1 试验范围1 (26)7.3.2Test range 2试验范围2 (26)7.3.30 to 100 to 0 range 零到100到零范围 (27)7.4Real time plot 实时绘图 (27)7.5Select Run 选择运行 (28)7.5.1Default setups 缺省设置 (29)7.5.2Manual setup 手动设置 (31)7.6VBOX Setup VBOX 设置 (31)7.7Graph 图形 (31)7.8Start Finish 起点终点 (31)7.8.1Load start finish line and splits载入起/终点线和分离位置 (31)7.8.2Save start/finish line and splits保存起/终点线和分离位置 (32)7.8.3Start finish line length起/终点线的长度 (32)7.8.4Start finish line tolerance起终点线的公差 (32)7.8.5Accumulative split times 累计分离时间 (32)7.9.1Enable log file creation 允许记录文件产生 (32)7.9.2Include MFDD in logfile 在记录文件中包括MFDD (32)7.9.3Include test range 2 in logfile 在记录文件中包括试验范围2 (32)7.10Help 帮助 (32)8.GRAPH图形 (33)8.1概述 (33)8.2选择通道 (34)8.3设置外部输入信号的比例大小 (35)8.4键盘和鼠标指令 (36)8.5快捷键 (36)8.6定义起点/终点线和分离点。
VB并口操作
sky655302005-11-22 09:02我现在在XP系统下通过WINIO操作并口跟下位机通讯,我们之间有时序要求,比如读BUSY(11脚)为低(反相后)时将ENB脚置低(14脚,反相后)然后向数据端口写数据(8位一个字节数据,采用数据线)。
但是传输速度特别慢,4KB数据需要3秒,50多K需要三十多秒,而且数据还不能保证正确,为什么会这样?下位机在读数据端口之前需要延时一段时间,否则就读不到正确数据,一定要延时吗?希望哪位高手给予指点,不胜感激!xhs11152005-11-22 09:04希望一起讨论能说得详细点么,有必要的话把程序发上来行么.我写过一个在vc下通过并口控制16x2液晶的程序,希望能和你一起讨论一下。
你说的winIo是一个驱动吧,我用的也是这个。
并口的control是双向的,在使用之前需要设置一下。
另外有的控制端口需要外接上拉电阻。
延迟这个东西最好用示波器看一下来确定。
梦想成真2005-11-22 09:12WINIO操作并口本来就慢或者说XP下面操作并口本来就慢吗?是啊,控制端口用来告诉下位机我是否忙,状态端口用来检查下位机是否处于忙状态,也就是时序配合了,时序方面的配合好像没什么问题,就是下位机读数据时延迟少了就不行,这样导致整个传输速度很慢。
你用并口控制液晶显示器的数据量有多少?我现在传输的速度也就1K左右,我希望达到10K以上才行。
程序是用VB做的一个小测试程序,很简单,主要就是读写端口操作,因为您是用VC的,所以不知道您是否能看明白,我大概写一下主要语句吧。
//SetPortVal(端口地址,要发送的数据,数据长度)--写端口//GetPortVal(端口地址,存放读取数据地址,数据长度)--读端口//读下位机状态不为BUSY时运行for i=0 to 4096 //发送数据循环SetPortVal &H378,data(i),1 //向数据端口发送一字节数据data(i) setPortVal &H379,2,1 //将ENB脚置低,告诉下位机已发送数据//读BUSY脚,看下位机是否在处理数据READ_BUSY //子程序//读BUSY脚,看下位机是否准备好接收数据//READ_NBUSY //子程序next izlg9002005-11-22 09:26我测试了一下,还是比较快的。
使用VB开发Windows环境下的串行通信程序
随着Windows在国内的普及,特别是Windows95的推出,越来越多的微机用户转向了Windo ws操作系统。
不过Windows应用软件的开发对于一般工程技术领域的技术人员来说并非易事,不但Windows的消息循环机制不易理解,而且要开发一个功能强、界面美观的应用软件,其编程和调试的工作量是非常大的。
许多并非搞软件出身的工程技术人员对Windows编程望而生畏。
然而使用微软的VisualBasic来开发这些方面的Windows应用软件就十分方便,一般工程技术人员易于掌握,设计软件界面非常方便,编程工作量相对较小,只需进行主要应用功能的编程和少量界面控制的编程。
本文介绍了笔者使用VB在串行通信编程方面的一些收获,由于在报刊杂志上对Windows下串行通信编程的介绍多为用MicrosoftC++或Borlan dC++,故笔者愿意就VB在该方面的应用与大家探讨。
对于采用了RS-232接口进行串行通信的计算机测控系统软件的开发,具有一定的参考价值。
在该系统中使用了80C31单片机作为下位机采集惯性敏感部件的测量数据,经过一定的预处理后通过RS-232串行口将数据传送给上位PC机。
在PC机上Windows环境下运行检测软件,接受串行口传来的数据,进行数据处理、显示、存盘等。
数据处理结果以表格形式打印输出。
在VB3.0中,有许多专业厂商提供用户定制的控件(Customcontrol),这些控件以.VBX为后缀,其中MSCOMM.VBX即是用于串行通信的控件。
对于VB3.0,启动后该控件就包含于控件工具箱(toolbox)内,否则可以通过File|AddFile将该控件加入控件工具箱。
然后就可以利用该控件进行串行通信的程序设计。
下面举一个简单的例子,说明了如何进行串行通信的程序设计,该程序在Windows95环境下,使用VB3.0已经实现:1.先建立一个项目文件,其控件如下表所示:2.代码如下:SubForm_Load()mPort=1‘使用串行口1'波特率9600,偶校验,8个数据位,1个停止位。
VB编程直接控制IO口
一、I/O端口介绍信号采集与控制是工业控制的最重要组成部分。
在工业控制中,通常采集到的信号有两类:一类是电压或电流模拟信号;另一类是开关量或数字脉冲量(开关量、脉冲量都属于数字信号)。
通常检测出的信号如果是模拟量的话,必须经过放大、变换变为电压0~10伏或电流0~10mA,这些模拟量必须经过模/数转换器(ADC:Analog-Digital Cnverter)转换成数字量, 才能被计算机所接受。
同样输出控制量信号也必须是数字信号,得经过数/模转换器(DAC:Digital-Analog Cnverter),将数字信号转换成模拟信号0~10伏(或0~+5伏)或变为电流0~10mA, 再送入到控制器去控制生产设备的运行。
而在计算机中,CPU通过总线与输入输出设备相连。
系统中的很多其他设备都要通过总线,按照CPU规定的时序分时地与CPU进行指令或数据的传输。
因此输入输出设备不能直接与总线相连并占用总线,I/O端口就是在总线和输入输出设备之间进行数据交换的数据中转站,我们与输入输出设备的对话实际上是与I/O端口的对话,下面就详细讲述在Visual BASIC环境下如何进行输出和输入操作。
二、编写操作I/O端口的动态链接库函数Visual BASIC没有提供直接读写I/O端口的方法,所以只能借助其他语言来编写动态链接库DLL(Dynamic Link Library)或VXD,然后再在Visual BASIC中调用。
因此我们不得不先了解如何编写操作I/O端口的动态链接库函数。
1.在汇编语言中,可以用in、out 指令操作I/O端口,具体示例如下:输入操作:MOV DX, Port;Port为端口号IN AL, DX;读入端口数据到AL寄存器输出操作:MOV DX, Port;Port为端口号MOV AL, ConByte;ConByte为控制字,将控制字送到AL寄存器OUT DX, AL;送出控制字到端口2.在C/C++中,通常用inp和_outp函数操作I/O端口,编写动态链接库我们可以编写如下两个函数,并把它编译生成DLL:/*作用:从指定端口读入一个字节,参数:portid端口号,返回值:读入的字节*/ int _stdcall Inport(short portid){return inp(portid);}/*作用:向指定端口写入一个字节,参数:portid端口号*/void _stdcall Outport(short portid,short value){outp(portid, value);}当需要一次操作两个字节时,我们就必须用到inpw和outpw两个函数,具体用法同inp和outp。
Windows 2000下使用VC++6.0实现中断处理和IO读写
本文链接:/Periodical_dnbcjqywh200304014.aspx 授权使用:吉林大学(jldx),授权号:8b30a267-4fce-43ac-87ac-9ec400ebac68 下载时间:2011年4月13日
dwP0 rl=dwl0Addr: Data Bvte=pdata,
trans
cara恤m[O】 【…dw0鲫ons=BT NUnter ruptU一
card
t rans
0PTlONS: cardReg
ca
w0Jransfer ChwD.&trans),
itom【O】ltem=rrEMJO, lO break.
ca
rd
Item
ste
0】
WD』e rslon《hwD,&verB uf),/7返回版本后鼻
ffverBuf dwve r<WD_yER) {Af×MessageBoxI
e r ror lnco rrect
WD_cardReg
r{hwD,&ca,dReg).
_工(ca rdRe日hCa rd==0j
首先.使用WinD而ver的Ddver wizard,对B码板进行中断 设置和I/O地址设置.对编码板进行I/O地址设置、D^ver wjzard有很好的向导功能,可以根据硬件没备的特点.生成库
M0dem)
驱动程序完成,禁止用户态的应用程序直接操纵硬件。 以前,windows系统下设备驱动程序的开发采用DDK工 具,这种方法对开发人员要求比较高,并且对大多数非专门驱
供其他d用
caraReg ca,d
vvDJRANSFER
lteml0]怕m=iTEMjNTERRu口T.//硬1上类型
BZER0(tfans)。
vb中winsock简单实例
vb中winsock简单实例VB中的Winsock简单实例Winsock是一种来自于VB的库,它允许我们通过网络进行数据传输。
使用Winsock可以在计算机之间建立网络连接,发送和接收数据包等。
本文将为您介绍如何在VB中创建和使用Winsock的简单实例。
首先,我们需要了解一些基本的网络概念。
在计算机网络中,有两种常见的通信协议:TCP和UDP。
TCP(传输控制协议)提供可靠的数据传输,而UDP(用户数据报协议)提供不可靠但更快的数据传输。
在本文中,我们将重点介绍使用TCP进行数据传输的Winsock实例。
第一步是在VB中添加Winsock控件。
打开VB开发环境,并在工具箱中找到Winsock控件。
将其拖放到您的表单中。
第二步是为Winsock控件设置属性。
选中Winsock控件,然后在属性窗口中设置以下属性:- LocalPort:这是本地使用的端口号。
您可以选择任意未被其他应用程序使用的端口号。
- Protocol:选择TCP协议。
- RemoteHost:指定远程主机的IP地址。
您可以输入主机名或IP地址。
- RemotePort:指定远程主机的端口号。
这是目的地主机上的应用程序正在监听的端口号。
第三步是编写VB代码来建立连接并发送数据。
在表单中的代码窗口中添加以下VB代码:Private Sub Command1_Click()Winsock1.Connect '建立与远程主机的连接End SubPrivate Sub Command2_Click()Winsock1.SendData "Hello World" '向远程主机发送数据End SubPrivate Sub Winsock1_Connect()MsgBox "连接成功" '连接成功时显示一条消息End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim data As StringWinsock1.GetData data '接收从远程主机传输过来的数据MsgBox "接收到的数据:" & dataEnd Sub在上面的代码中,Command1按钮的Click事件将建立与远程主机的连接。
在VB中实现ICommand接口
15 在OnCreate方法中,传递hook到应用程序;
Private Sub ICommand_OnCreate(ByVal hook As Object)
Set m_pApp = hook
End Sub
16 当按钮被点击时执行的代码写在OnClick事件中;
Private Property Get ICommand_Name() As String
ICommand_Name = "MyCommand"
End Property
13 为Tooltip属性写实现代码;
Private Property Get ICommand_Tooltip() As String
Private Sub ICommand_OnClick()
MsgBox "MyCommand"
m_pApp.Caption = "The OnClick method for MyCommand has executed"
End Sub
17 在代码窗口,在对象下拉列表中选择Class,在功能下拉列表中选择每一个Class的成员;
ICommand_Tooltip = "Tooltip: MyCommand"
End Property
注意:这个字符串会在鼠标移动到按钮上时提示。
14 在常规申明段,加上下面两句,这是关系到此命令在arcmap中的使用的。
Option Explicit
Private m_pApp As IApplication
在dll中创建自定义的命令和工具,需要实现ICommand接口,下面就是实现Icommand接口的过程描述。
VB中的OLE技术与OLE控制...
VB中的OLE技术与OLE控制...VB中的OLE技术与OLE控制自VB4.0之后,OLE技术在VB中得到了越来越广泛的支持,目前流行的ActiveX技术的核心也是OLE 。
OLE技术可以满足用户在一个文档中加入不同格式数据的需要(如文本、图像、声音等),即所谓建立复合文档问题。
我们在Word文档中嵌入Excel表格,当用鼠标双击电子表格时,Word的菜单、工具条都变为Excel的菜单、工具条,这是OLE技术的使用;在WIN95下,我们可以将一个数据对象用鼠标拖动到另一个软件的文档中,这也是OLE技术的使用。
1993年Microsoft公司发布了OLE2.0规范,OLE2.0是由多层模型构成的(见图1),底层服务(COM)由操作系统管理,对于VB程序员是屏蔽不可见的,VB程序设计者使用最多的是中间一层。
VB中经常用到的有OLE可视化编辑、复合文档、拖动、剪贴板和OLE自动化等服务。
OLE有4种基本的应用:对象链接(Object Link)、对象嵌入(Object Embed)、OLE自动化(OLE automation)和OLE控件。
·OLE对象是指由支持OLE技术的应用程序(OLE服务器)可提供的数据。
·对象链接是指在OLE对象和VB中支持OLE控件之间建立一个链,并未将OLE数据复制过来。
这是一种动态联系。
·对象嵌入是指将OLE对象复制到VB当前程序中,即在OLE控件内部保存数据。
·OLE自动化使得VB程序使用另外程序的功能,如用Word的拼写器程序检查当前程序的文本框中文本的拼写错误而不必再费力编写相同功能的程序。
自4.0版后,VB中的控件库VBX(Visual Basic Extension )已经由OCX(OLE Control Extension )所代替,即所谓的OLE控件。
例如VB的窗体就能起到OLE 包容器的作用,通过处理窗体的OLEDragOver和OLEDragDrop事件过程,可将图形、工作表、声音等OLE对象直接拖放到窗体中,有了这种技术的支持,VB的程序员就可以在自己的程序中使用各种应用程序功能的接口,并将它们集成显示在窗口中。
如何用VB编写串口程序
如何用VB编写串口程序VB控件MSComm功能介绍VB中的MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。
MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi 等语言中均可使用。
Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。
具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。
1.MSComm控件两种处理通讯的方式MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。
1.1 事件驱动方式事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。
在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。
在这些情况下,可以利用MSComm 控件的OnComm 事件捕获并处理这些通讯事件。
OnComm 事件还可以检查和处理通讯错误。
所有通讯事件和通讯错误的列表,参阅CommEvent 属性。
在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。
这种方法的优点是程序响应及时,可靠性高。
每个MSComm 控件对应着一个串行端口。
如果应用程序需要访问多个串行端口,必须使用多个MSComm 控件。
1.2 查询方式查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。
在程序的每个关键功能之后,可以通过检查CommEvent 属性的值来查询事件和错误。
如果应用程序较小,并且是自保持的,这种方法可能是更可取的。
例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
利用Winscok控件实现VB与PLC的以太网通信
利用Winscok控件实现VB与PLC的以太网通信关键词:VB MODBUS/TCP协议可编程控制器以太网1、引言在网络的各个层上,随着自动化和控制工程师需要与网络打交道的机会越来越多,联网的愿望和需要也正在逐渐高涨。
而且,在监控和数据采集应用中,大多数工程师已将以太网协议应用于数据采集与监视控制系统(SCADA)和工厂的诊断、测试及维护。
如何简便地实现与PLC的交互已经成为众多厂商新的竞争战场。
由此产生了人机界面及各种组态软件产品,这些产品的出现简化了对PLC的控制、操作,使PLC的应用更加方便。
但也有其共同的缺点,价格普遍偏高和可二次开发性较差。
VB作为“原始”的编程语言,兼具了上述两方面的优势。
本文结合一个简单的案例来粗略讨论如何通过VB实现PC 机与PLC的以太网通信问题。
2、以太网通信的基本概念2.1以太网的标准以太网是一种局域网。
早期标准为IEEE 802.3,数据链路层使用CSMA/CD,10Mb/s速度物理层有:(1)10 Base 5粗同轴电缆,RG-8,一段最长为500m。
(2)10 Base 2细同轴电缆,RG-58,一段最长为185m。
(3)10 Base T双绞线,UTP或STP,一段最长为100m。
2.2工业以太网与商用以太网的区别什么是工业以太网?技术上,它与IEEE802.3兼容,故从逻辑上可把商用网和工业网看成是一个以太网,而用户可根据现场情况,灵活装配自己的网络部件。
但从工业环境的恶劣和抗干扰的要求,设计者希望采用市场上可找到的以太网芯片和媒介,兼顾考虑下述工业现场的特殊要求:首先要考虑高温、潮湿、振动。
二是对工业抗电磁干扰和抗辐射有一定要求,如满足EN50081-2、EN50082-2标准,而办公室级别的产品未经这些工业标准测试,表1列出了一些常用工业标准。
为改善抗干扰性和降低辐射,工业以太网产品多使用多层线路板或双面电路板,且外壳采用金属如铸铝屏蔽干扰。
三是电源要求,因集线器、交换机、收发器多为有源部件,而现场电源的品质又较差,故常采用双路直流电或交流电为其供电,另外考虑方便安装,工业以太网产品多数使用DIN导轨或面板安装。