社区
COM/DCOM/COM+
帖子详情
怎样在VB中对多个下位机实现多机通信,要求的是发送的奇偶校验位为1,怎么做?在给等待。
Cerike
2004-04-24 03:59:22
我要用VB写多机通信的上位机通信程序,但是VB中只有一个MSCOMM不能实现谁有办法帮个忙。
但是想了一下可以用C写一个发送程序做成的DLL的文件,可是做不出来,大家帮个忙吧!
...全文
124
6
打赏
收藏
怎样在VB中对多个下位机实现多机通信,要求的是发送的奇偶校验位为1,怎么做?在给等待。
我要用VB写多机通信的上位机通信程序,但是VB中只有一个MSCOMM不能实现谁有办法帮个忙。 但是想了一下可以用C写一个发送程序做成的DLL的文件,可是做不出来,大家帮个忙吧!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sendwb
2004-05-12
打赏
举报
回复
用API函数打开串口进行通讯,这样灵活得多
hhyttppd
2004-05-04
打赏
举报
回复
gys_yxr(毛毛) 给他个DLL和调用说明不就行了,偶没搞过,但偶是学机械的,将来肯定要接触这方面的东西,学习。
Cerike
2004-05-04
打赏
举报
回复
我是用VB写的,不太明白,
tangxiaosan001
2004-05-04
打赏
举报
回复
同意。
dongge2000
2004-05-02
打赏
举报
回复
同意楼上
gys_yxr
2004-04-27
打赏
举报
回复
HANDLE hidcomdrv;
bool opened=false ;
extern"C"_declspec(dllexport)bool open(int nport,LPSTR Settings)
{
if (opened) return(true);
char spname[8];
DWORD dwerror;
DCB dcb;
wsprintf(spname,"COM%d",nport);
hidcomdrv=::CreateFile(spname,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);
if (hidcomdrv==INVALID_HANDLE_VALUE)
{
dwerror=::GetLastError();
AfxMessageBox("Can not Open Comm");
return(false);
}
if(::GetCommState(hidcomdrv,&dcb))
{
dcb.BaudRate=9600;
dcb.ByteSize =8;
dcb.fParity =0;
dcb.StopBits =0;
dcb.Parity =0;
// ::Beep(500,100);
if(!::SetCommState(hidcomdrv,&dcb))
{
AfxMessageBox("Can not Open Comm");
return(false);
}
else
{
opened=true;
AfxMessageBox(" Com is Opened");
return(opened);
}
}
else
{
opened=false;
AfxMessageBox(" Com is not Opened");
return(opened);
}
}
extern"C"_declspec(dllexport)bool close()
{
if(!opened||hidcomdrv==NULL)return(true);
::PurgeComm(hidcomdrv,PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
::EscapeCommFunction(hidcomdrv,CLRDTR);
::CloseHandle (hidcomdrv);
AfxMessageBox("Comm is Colsed");
opened=false;
hidcomdrv=NULL;
return(true);
}
extern"C"_declspec(dllexport)int readStr(LPSTR buffer)
{
int rlen;
if (!opened||hidcomdrv==NULL)return(0);
DWORD dwbytesread,dwerrorflags;
COMSTAT comstat;
static OVERLAPPED ovread;
::ClearCommError (hidcomdrv,&dwerrorflags,&comstat);
dwbytesread=(DWORD)comstat.cbInQue ;
rlen=(int)dwbytesread;
::Beep(500,100);
if (rlen>300)
{
dwbytesread=(DWORD)300;
}
if(!::ReadFile(hidcomdrv,buffer,dwbytesread,&dwbytesread,&ovread))
{
::GetLastError ();
::Beep(5000,1000);
return(0);
}
else
{
rlen=(int)dwbytesread;
::Beep(500,100);
return(rlen);
}
}
extern"C"_declspec(dllexport)int writeStr(LPSTR buffer,int wlen)
{
// char spname[8];
if (!opened||hidcomdrv==NULL)return(0);
DWORD dwbyteswritten=0;
static OVERLAPPED ovwrite;
dwbyteswritten=(DWORD)wlen;
if(!::WriteFile (hidcomdrv,buffer,dwbyteswritten,&dwbyteswritten,&ovwrite))
{
::GetLastError();
::Beep(5000,1000);
return(0);
}
else
{
// wsprintf(spname,"Ret%d",(int)dwbyteswritten);
// AfxMessageBox(" ");
::Beep(500,100);
return((int)dwbyteswritten);
}
}
extern"C"_declspec(dllexport)bool settime(int time)
{
LPCOMMPROP cp;
COMMTIMEOUTS to;
cp=(LPCOMMPROP)malloc(1000);
if(!::GetCommProperties(hidcomdrv,cp))
{
return(false);
}
if (!(cp->dwProvCapabilities &PCF_TOTALTIMEOUTS))
{
AfxMessageBox("Comm OUTTIME SET IS CLOSED");
return(false);
}
to.ReadIntervalTimeout =0;
to.ReadTotalTimeoutMultiplier =0;
to.ReadTotalTimeoutConstant =time;
to.WriteTotalTimeoutMultiplier =0;
to.WriteTotalTimeoutConstant =time;
// ::Beep(500,100);
if(!::SetCommTimeouts (hidcomdrv,&to))
{
return(false);
}
return (true);
}
c51串行
通信
汇编语言,基于
VB
与C51串行
通信
协议的设计与
实现
1 引言串行
通信
是计算机之间较常用的
通信
手段之一,在工业控制
中
,经常要将带有rs232总线接口的仪器作为i/o接口设备,通过rs232串行总线与pc计算机组成一整套仪器系统。单片机c语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。本文通过制定串行
通信
协议,上位机采用
vb
语言,单片机用c语言编程来
实现
计算机与单片机之间的串行
通信
,这对功能复杂的
通信
,采用串口
通信
协议将...
Win10下
VB
6.0开发之串口
通信
基础(一)控件属性篇
前言:
VB
串口
通信
的方法一般有两种:一是通过Windows的
通信
API进行
通信
;另一种是通过
VB
的标准控件MSComm来
实现
。这篇文章要讲的是上位机如何通过
VB
的串口控件MSComm和
下位机
进行串口
通信
的过程。 以下是给
VB
初学者推荐的两本书籍: 《Visual+Basic+6.0基础教程》 《Visual_Basic与RS-232串行
通信
控制》 其
中
,《Visual+Basic+6.0基础教...
【
VB
串口】
VB
串口
通信
vb
串口
通信
编程 一、概述 串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用于PC间的通讯以及PC和单片机之间的通讯之
中
。提到串口通讯的编程,人们往往立刻想到C、汇编等对系统底层操作支持较好的编程语言以及大串繁琐的代码。 实际上,只要我们借助相关ActiveX控件的帮助,即使是在底层操作一向不被人看好的
VB
中
,一样能够
实现
串口通讯,甚至其
实现
方法...
plc
vb
c语言编程,【实例】
VB
实现
plc与上位机通讯应用程序
有关
VB
实现
的plc与上位机通讯应用程序,包括
通信
初始化程序,
通信
控件MSComm1属性设置,从PLC读取资料,将寄存器内数据资料PC上显示观察监控等,一起来看看。
VB
实现
plc与上位机通讯应用程序可编程控制器PLC与上位机PC之间
通信
,
下位机
为PLC,基于其可靠性极高,主要承担控制功能,而上位PC机主要承担监察管理功能,兼备部分控制功能,如发出运行,停止命令。
VB
语言是基于WINDOWS操作系统...
基于
VB
的串口通讯及其软件
实现
1 串口
通信
的
通信
机理 PC串行
通信
是指直接对串行端口的UART(PC机的通用异步收发器,也叫异步
通信
适配器,是PC机用于异步
通信
的接口)进行编程
实现
的
通信
一般说来,PC机都有一个或
多个
串行端口,它们依次为Com1、Com2……。这些串口提供了外部设备与PC进行数据传输和
通信
的通道,在CPU和外设之间充当了解释器的角色。当字符数据从CPU
发送
给外设时,这些字符数据将被转换
COM/DCOM/COM+
863
社区成员
3,659
社区内容
发帖
与我相关
我的任务
COM/DCOM/COM+
VB COM/DCOM/COM+
复制链接
扫一扫
分享
社区描述
VB COM/DCOM/COM+
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章