4).串行口命令码:本仪器作为从机与主机通信,接收命令后执行相应操作,命令码为单字节。
2DH:复位仪器
20H:向主机回送所有参数数据(V,A,W,PF,HZ),每个参数占5个字节,共5*5=25个字节。数据格式见串行数据结构
(5)。数据结构
本仪器在接到命令码后,回送相应的参数数据,每个参数由5个字节组成前4字节表示尾数,后1字节表示阶码,数据格式采用科学记忆法即小数点在第一个bcd码之后,其结构如下:
尾数(4字节):小数点;数码
阶码(1字节):数符;阶符;阶码
阶码最高为数符,次高位为阶码,(0代表下数,1代表负数),低6位为阶码值,范围为0~63H,例:
1.2345678*10^4其浮点数为12345.678,接收字节次序:78,56,34,12,04
-8.7654321*10^-2其浮点数为0.087654321,接收字节次序:21,43,65,87,12
上面是产品说明书上的内容,好多错误,我参照之后接收到了字符串,但是实在不知道怎样分析得到的数据,希望各位做过这个的能给个建议,源码最好,本人急用
这是我用加了hex函数接收到的字符串
405845CC28
202020A0E8
4040404028
E040404028
20E04040E8
不加也能收到,但是经常不完整,下面是一段
1685178344
1616160820
4016160820
1640160820
1616400844
谢谢各位帮忙,用的仪器是杭州威博的电参数测量仪,说明书好多错误,客服什么都不懂,大家以后不要用!请大家帮我分析一下数值,怎么搞?小弟先谢谢了。这个码实在不知道怎么转换成10进制的,能看懂的帮忙 啊 !
我把接收的源码也贴上
Private Sub MSComm1_OnComm()
Dim Buffer() As Byte
Dim str As String
Dim i As Integer
Select Case MSComm1.CommEvent
Case 2
Buffer = MSComm1.Input
For i = 0 To UBound(Buffer)
strRec = strRec & Right("0" $ Hex(Buffer(i), 2))
Next i
str = strRec
End Select
End Sub
各位大侠,我的qq是503922432,如果有能帮助解决的,小弟感激不尽,主要是读上来的数据实在看不懂,不能显示,没办法解码,谢谢了
2DH:复位仪器
20H:向主机回送所有参数数据(V,A,W,PF,HZ),每个参数占5个字节,共5*5=25个字节。数据格式见串行数据结构
(5)。数据结构
本仪器在接到命令码后,回送相应的参数数据,每个参数由5个字节组成前4字节表示尾数,后1字节表示阶码,数据格式采用科学记忆法即小数点在第一个bcd码之后,其结构如下:
尾数(4字节):小数点;数码
阶码(1字节):数符;阶符;阶码
阶码最高为数符,次高位为阶码,(0代表下数,1代表负数),低6位为阶码值,范围为0~63H,例:
1.2345678*10^4其浮点数为12345.678,接收字节次序:78,56,34,12,04
-8.7654321*10^-2其浮点数为0.087654321,接收字节次序:21,43,65,87,12
上面是产品说明书上的内容,好多错误,我参照之后接收到了字符串,但是实在不知道怎样分析得到的数据,希望各位做过这个的能给个建议,源码最好,本人急用
这是我用加了hex函数接收到的字符串
405845CC28
202020A0E8
4040404028
E040404028
20E04040E8
不加也能收到,但是经常不完整,下面是一段
1685178344
1616160820
4016160820
1640160820
1616400844
谢谢各位帮忙,用的仪器是杭州威博的电参数测量仪,说明书好多错误,客服什么都不懂,大家以后不要用!请大家帮我分析一下数值,怎么搞?小弟先谢谢了。这个码实在不知道怎么转换成10进制的,能看懂的帮忙 啊 !
我把接收的源码也贴上
Private Sub MSComm1_OnComm()
Dim Buffer() As Byte
Dim str As String
Dim i As Integer
Select Case MSComm1.CommEvent
Case 2
Buffer = MSComm1.Input
For i = 0 To UBound(Buffer)
strRec = strRec & Right("0" $ Hex(Buffer(i), 2))
Next i
str = strRec
End Select
End Sub
各位大侠,我的qq是503922432,如果有能帮助解决的,小弟感激不尽,主要是读上来的数据实在看不懂,不能显示,没办法解码,谢谢了
解决方案 »
- 用vb控制文件上传得问题!万分感谢阿!
- tdbgrid导出到Excel问题
- vb使用directshow开发视频采集程序
- 用vb做的ocx控件嵌入到asp里,能与asp传递变量吗?怎样传?请指教,多谢?
- 一个很简单的被复杂化了的问题,来者有分!
- InStr(buffer$, Chr(112)) ,请问一下此函数什么意思?返回什么值??来者有分。。
- 如何在vb中调用authoware做的东东,急急!!
- 请教,如何将文本框(text)里面的字符打印出来?或者有什么更好的方法打印出来?我只能一次给这么多分了,谢谢!!
- can Vb make very good GUI(User interface)?
- 虚心求教:使用ADO连远程数据库。
- 弹出数据选择框
- SetProcessWorkingSetSize后面参数问题请教
{
int *p;
int i;
double iinn[2], t;p=in+3;
iinn[0]=(*p%16+(*p/16)*10)/10.0;
p--;
iinn[0]=iinn[0]+(*p%16+(*p/16)*10)/1000.0;
p--;
iinn[0]=iinn[0]+(*p%16+(*p/16)*10)/100000.0;
p=in+4;
i=*p;
if (i>=192)
t=-iinn[0]*pow(10,192-i);
else if (i>=128) t=-iinn[0]*pow(10,i-128);
else if (i>=64) t=iinn[0]*pow(10,64-i);
else t=iinn[0]*pow(10,i);
return(t);
}
这个是那家公司给我的处理程序,但是我取得的数据按照这个分析也是不对,谁能帮我转成vb的啊,还有,我读取到的数据有什么错误呢,各位高手帮忙想一下,那家公司的工程师也不知道什么数字算是对的,汗啊