串口通讯问题,电子称(地磅)数据格式问题 ( 积分: 300 )

  • 主题发起人 主题发起人 linuxer
  • 开始时间 开始时间
L

linuxer

Unregistered / Unconfirmed
GUEST, unregistred user!
有急差事要请教大家了。我接到差事要做地磅(电子称)程序,以下为地磅的LCD显示屏生产厂家提供的串口通讯格式(杭州衡天公司,型号为HT9800跟HT9800-D两种),但我看不明白。所有要请大家帮帮忙。谢了!

串行通迅方式:
(1)波特率:600/1200/2400/4800/9600可选
(2)连续发送称重值
(3)数据格式:
每发送一次数据有5帧,每帧数据有11位:1位起始位(0),8位数据位(D0 ~ D7),2位停止位(1)。

(*注:此处有图,但在帖子无法很好的表示,详见连接 http://bbs.2ccc.com/topic.asp?topicid=166249 )

注:(1)第二帧中D4—1 表示称重稳定  0 表示称重未稳定
D5—1 表示重量为负 0 表示重量为正
D7—1 表示溢出 D3、D6 – NC
(2)BCD3、BCD2、BCD1为由高到低的称重值的BCD码

请大家讨论一下,我最不了解的是何谓"帧"?
 
有急差事要请教大家了。我接到差事要做地磅(电子称)程序,以下为地磅的LCD显示屏生产厂家提供的串口通讯格式(杭州衡天公司,型号为HT9800跟HT9800-D两种),但我看不明白。所有要请大家帮帮忙。谢了!

串行通迅方式:
(1)波特率:600/1200/2400/4800/9600可选
(2)连续发送称重值
(3)数据格式:
每发送一次数据有5帧,每帧数据有11位:1位起始位(0),8位数据位(D0 ~ D7),2位停止位(1)。

(*注:此处有图,但在帖子无法很好的表示,详见连接 http://bbs.2ccc.com/topic.asp?topicid=166249 )

注:(1)第二帧中D4—1 表示称重稳定  0 表示称重未稳定
D5—1 表示重量为负 0 表示重量为正
D7—1 表示溢出 D3、D6 – NC
(2)BCD3、BCD2、BCD1为由高到低的称重值的BCD码

请大家讨论一下,我最不了解的是何谓"帧"?
 
就是一次送出的数据,包括标志和BCD码,你要做的就是截取BCD码,在相应的文职加上小数点
 
我做的地磅管理系统运行两年了,支持7种磅秤仪表
 
是不是说我可以不管这个帧的概念,而直接将一次送过来的数据看作一个包,而这个包有
5(帧)*11位/帧=55位的数据?
 
我这次是第二次做,发觉以前的数据包没有那么复杂。我之前是做条码仓库软件用过
 
帧就是一个叫法,
这样的数据包,每个都有起始标志,方便分出包来。
通讯协议一般都这样,数据包复杂点儿,出错的机会就相对能减少点儿
 
每帧数据有11位:1位起始位(0),8位数据位(D0 ~ D7),2位停止位(1)。
其实你所关心的就是8位数据位(D0 ~ D7),其他的你可以不用管她,通讯协议设置好就行了
 
所谓的帧,从效果上看就是一个字节的数据,因为串口通信,对每个字节,都可能会有校验比特等通信协议内容,故称为帧.
而因为你的终止位2比特是不变的,因此可以忽略.
所以你直接使用Win32API得到的数据其实是 8*5=40 比特.
 
同意楼上的意见,实际上就是5个字节的问题,建议楼主用串口大师调试,协议调试OK了再编程实现。
 
看不懂,也想听听
 
可以直接用串口取出数据自己分析,也可以用另一个APRO的分析数据包
 
之前我搞错了波特率,所以几法分析取得的数据,现在跟生产厂家联系了一下.应是可以了,
开发中,开发完结贴.谢谢大家
 
是这样的,先用一个串口调试软件把电子称发过来的数据,接收过来,就是显示在串口的调试软件里,你再参照他给你的协义,分析出来那部分是你想要的数据,分析出来就好办了,
再编程序就可以了
 
协议已经分析完毕,现在程序编写中,谢谢大家。
==========================================
做这样的程序最麻烦的地方就是分析数据格式、程序调试不方便。我不可能老是呆在客户那里,也不可能买一台地磅(软件才卖1w)。
 
学习
也想接触这方面的开发
 
关注此帖;
我做的软件,就是取你从地磅读来的数据;
分析之后保存到数据库里;
估计你应该是根据地磅传来的数据进行收费处理的吧?
 
是电子称取数+条码+仓库管理系统.
关于电子称接口,刚刚到客户那里测试通过了.
 
OK了,谢谢各位
 
后退
顶部