是关于VB程序的,编写一个上位机程序,读取甚至修改下位机的参数。通信规约为MODBUS 20

希望可以可到一个具体的例子。setting9600n81稍微说明下。发送方式如下:050301000001crc1crc2地址+命令+寄存器地址+字节长度+校验码其中CR... 希望可以可到一个具体的例子。
setting 9600 n 8 1
稍微说明下。发送方式如下:05 03 01 00 00 01 crc1 crc2
地址+命令+寄存器地址+字节长度+校验码
其中CRC用16的即可。
具体要求是这样的
1)可以实时的读取下位机的数据。
2) 当下位机数据有变化时,上面能跟着变化(CRC16和实时数据刷新最好能具体说下)
新手刚入门不久,希望得到帮忙,有意的发我邮箱,hutong0827@163.com
展开
 我来答
yangfeng9
2011-09-16 · TA获得超过1840个赞
知道小有建树答主
回答量:613
采纳率:0%
帮助的人:260万
展开全部
MSComm 作为一个串行通讯控件为程序员串口通讯编程节省了很多时间。在基于对话框的应用中加入一个MSComm控件非常简单。只需进行以下操作即可:
  打开“Project->Add To Project->Components and Controls->Registered Activex Controls”(工程/部件/控件),然后选择控件:Microsoft Communication Control,version 6.0(Microsoft Comm Control 6.0)插入到当前的工程中。这样就将类 CMSComm 的相关文件 mscomm.cpp 和 mscomm.h 一并加入到了工程中。编程时只需将控件对话中的 MSComm 控件拖至你的应用对话框中就OK了。
追问
这个我知道,我就是用这个写了一个。但是因为写的简单了。CRC校验不会。实时的数据更新也没有。。。。
追答
vb写串口调试软件很简单,就用一个mscomm控件就可以了
下面是主要代码:
Private Sub Cmd_Click()
MSComm1.CommPort = 1 '决定串口号
MSComm1.Settings = "9600,n,8,1" '设置波特率、校验位、数据位、停止位的字符串
MSComm1.PortOpen = True '打开串口
MSComm1.Output = "abcd" '向串口发送字符串"abcd"
MSComm1.PortOpen = False '关闭串口
End Sub

Private Sub MSComm1_OnComm() '当收到串口返回值时触发这个事件
Dim s As String '定义一个字符串变量

s = MSComm1.Input '将串口返回值放到字符串变量s中
MsgBox s '以消息框的方式显示串口返回的内容
End Sub
unsigned short CRC(unsigned char frame[],int n)
//数组frame是CRC校验的对象,n是要校验的字节数
{
int i,j;
unsigned short crc,flag;
crc=0xffff;
for(i=0;i>=1;
if(flag)
{crc&=0x7fff;
crc^=0xa001;
}
}
}
return(crc);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户33990
2011-09-16 · TA获得超过229个赞
知道小有建树答主
回答量:705
采纳率:0%
帮助的人:462万
展开全部
首先你要明白上位机和下位机之间是通过什么通讯协议联接的。

一般上是COM口,这样你可以用MSCOMM来进行读写。

水平高一点,就会知道其实COM口也可以当作个文件来读。用ReadFile等就可以读写。

还有必须有你的下位机的通讯规约。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式