分享
 
 
 

PB中读取地磅称量数据

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

PB中读取地磅称量数据

在PB开发企业应用时我们经常会遇到与仪器仪表接口的处理,这里我总结了一下与地磅接口读取称量数据的方法。

一般的地磅都有以下的参数组成:

串口编号

串口参数

时钟周期

读数长度

读字符串起始位

读字符串长度

首末位字符标志

首末位判断(是否从首位起读) '0'为首位

字符串是否反序

编码类型(1.ASCII 2.BCD 3.其他)

当前使用的大多数地磅都是使用串口与计算机连接的,仪表在其每一个时钟周期发送一次数据到串口,处理程序需要在设备的每个时钟周期读取仪表数据(在PB中是使用timer来处理的)。

从串口取数方法很多,可以直接用API读取,也可以用第三方空间读取,在此就不在描述了。这里主要描述一下对数据的分析处理过程,分别对应ASCII编码和BCD编码。

ASCII编码的数据处理过程(相对比较简单):

1. 读取串口数据(一般读取后的是Blob类型,需要转换成String类型使用)。

2. 根据仪表参数(读字符串起始位,读字符串长度,首末位字符标志)截取数值字串。

3. 如果仪表参数指示需要对读取的字串反序处理就对截取后的字串进行反序处理。

4. 显示字串。

BCD编码的数据处理过程(相对复杂):

使用BCD编码的仪表可能各厂家的是不一样的,具体实现要参照仪表的技术资料。

大多数使用BCD编码的是一位标志位,一位状态位,三个BCD数字位(低位在前),以前描述的就是这种类型。

BCD是一种压缩数字存储方式,每4个二进制位存放一个

BCD码数值采用压缩格式,用一个字节来存放两位数字.

数值99BCD码的存储方法如下(以数值99压缩后的表现为例):

二进制表示 1001 1001

ASCII码字符表示 153

十六进制字符表示 0x99

压缩存储是采用把一个字节分成两部分来存储数据,高4位和低4位各存储一位数字

PB中二进制操作不方便,所以本方法采用将ASCII值转为16进制字符取其两位数字的方法。

1. 读取串口数据(使用Blob读取)

2. 将Blob数据逐个字段转换为String类型在转换为ASCII编码字符串,并且每个ASCII编码之间用一个符号(不能是仪表使用的符号)分割,新的字串末尾需要一个符号位。

3. 在字串中查找格式标志检查这个时钟周期是否收到格式数据,没有收到格式数据停止处理等待下一个时钟周期。

4. 一般字串的第一位为状态位,取出状态位处理。

状态位的值为一个ASCII码值,我们对ASCII码值进行算术运算加简单的判断即可取出状态信息,程序如下:

if li_State > 128 then li_State -= 128 //数据溢出

if li_State > 64 then li_State -= 64 //稳定

if li_State > 32 then li_State -= 32 //符号

if li_State > 16 then //单位:吨

li_State -= 16

ls_Unit = "T"

end if

if li_State >= 8 then li_State -= 8 //重量 ,此时li_State为小数符号位

5. 取出BCD1处理:将ASCII码值转换为16进制在将16进制字符的两位作为数字转换为两位数的数值,并保存BCD1数值。(此时两位数位个位和十位)

6. 取出BCD2处理:同BCD1。(此时两位数位百位和千位)

7. 取出BCD3处理:同BCD1。(此时两位数位万位和十万位)

8. 合并转换后的三个BCD位的数值:BCD = BCD3 * 10000 + BCD2 * 100 + BCD1

9. 处理小数位:此时的小数位位数存放于状态位ASCII值算术处理的后的结果li_State中,所以只要执行操作:BCD = BCD / 10 ^ li_State即可。

10. 处理单位换算,如果单位为吨则执行操作:BCD = BCD * 10 ^ 3

11. 显示仪表数据。

以上为读取地磅数据中最关键的部分内容,希望大家多提宝贵意见。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有