基于JACOB的托利多电子称与计算机通信的研究_第1页
基于JACOB的托利多电子称与计算机通信的研究_第2页
基于JACOB的托利多电子称与计算机通信的研究_第3页
基于JACOB的托利多电子称与计算机通信的研究_第4页
基于JACOB的托利多电子称与计算机通信的研究_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于的托利多电子称与策画机通信的研讨基于的托利多电子称与策画机通信的研讨正在基于javasing妙技开拓的过磅挨面系统中,需要与串心通信,读与电子称的数据。irsft的s是一个成效强衰的串心通信控件,正在vb顶用它去开拓串心通信程序是一个没有错的挑选。java的jni类库用于访谒/+代码是比较便当的,可是用去访谒vb开拓的串心通信程序却很贫困1。jab(java-bridge)是一个开源的基于jni妙技开拓的类库,用于java代码与组件之间的通信。本文操做jab正在javasing中挪用vb下开拓的dll串心通信程序,真现对天磅数据的自动读龋1、8142系列电子秤串心数据格局与s通信控件绿华糖

2、厂操做的托利多电子秤型号是8142或是8142pr,那两种电子秤的串心收支数据方法皆是设置为连续收支,而且数据格局皆是一样的,如表1所示:其中,形态字a、b、分别表示小数面地位、分度倍乘、能可超载等疑息,详细睹电子称所附分析书。限于篇幅,没有再一一给出。综上可知一帧数据共有18个字节,但理想传输中只用了17个字节,终了一个字节检查校验战,一样仄居没有操做。策画机与串心通信程序的开拓操做sativex控件是比较便当的2。它具有以下慌张属性:prt属性:设置与返回通信端心数;settings属性:设置与返回波特率,奇奇校验位,字符串的防止位战数据位;prtpen属性:设置与返回通信端心的形态,并可

3、开放、启锁端心;input属性:返回战删除吸支缓冲区的字符;utput属性:写字符串到收支缓冲区。一数据包的提与数据包的提与是操做n事变去完成的。设置s的rthreshld属性为18,多么当吸支缓冲区支到18个字节时,便会收死s事变。因为电子称工作于连续收支方法,即使支到18个字节仍没有能保证是一个完好的数据郑果而便必须对那18个字节做进一步的阐收,以确认能可为有效数据。由表1的数据格局可知,准确的数据包的第一个字节为02h,第17个字节为0dh。多么,正在s事变中便可以检测那两个地位的字节以断定能可为准确的数据郑两超载检测战背值检测假设担任的数据超载即担任的重量超出电子秤的量程范围年夜要为背

4、值,担任数据便出成心义了,所以必须对它举止检测。超载检测主假设断定命据包中的形态字b的2位数据能可为1,假设为1,那么为超载;假设为0,那么为一般,可以经由过程超载检测。背值检测主假设断定形态字b中的1位数据能可为1,假设为1,那么为背值;假设为0,那么为一般,可以经由过程检测。三重量数据的析与正在托利多电子秤上所表示的重量数据正在数据包中处于5到10位,有6个字节,每一个字节对应于电子秤所表示的一名数值。将每一个字节转换为字符并毗邻为字符串,便可以做为重量数据返回给上层挪用程序了。2、电子称数据网罗dll控件的开拓通信程序的开拓是正在vb6.0情况下完成的。面击文件-新建工程,正在弹出的新建

5、工程对话框中挑选ativexdll控件选项,新建一个工程,与名为tuled8142。并为该工程增减一个s控件。源码主要包含两个函数与一个n事变处理。其中getheng函数供sing挪用以设置通信格局并翻启齿3。其代码以下:publifuntingetheng()s1.prt=1s1.settings=9600,e,7,1s1.rthreshld=18s1.inputlen=18s1.inbufferunt=0s1.prtpen=trueendfuntin正在n事变中断定命据帧能可有效,并背责析与重量数据,主要代码以下:privatesubs1_n()diinbytes()asbyteinbyt

6、es=s1.inputifinbytes(0)=2andinbytes(16)=13thenvalue=hr(inbytes(4)hr(inbytes(5)hr(inbytes(6)hr(inbytes(7)hr(inbytes(8)hr(inbytes(9)s1.inbufferunt=0s1.prtpen=falseexitsubendsubgetvalue函数仅供sing读出重量值:publifuntingetvalue()asstringgetvalue=valueendfuntin接着便需要将该通信程序启拆为x控件。详细程序为,面击文件-天死tuled8142.dll。多么会天死tu

7、led8142.dll文件,可以供sing操做了。3、正在sing中操做数据网罗dll控件一jab的安拆正在elipse3.2中,左键面击工程,翻开nfiguratin对话框,将jab.jar文件参与到lasspath中。两正在sing中的java读磅值函数publistringreadheng()stringresult=ndata;intunt=0;/操做jab启动读称:dispathhengreader=nedispath(yujvheng.lass1);dispath.all(hengreader,beginreadheng);/等待成果:hile(result.equals(ndat

8、a)result=dispath.all(hengreader,getresult).tstring();if(unt+10000)break;returnresu三操做多线程实时表示磅值正在实时表示数据的同时,为了没有影响一般操做的举止,必须用多线称真现数据的表示4。以下是表示数据的线称类:lassdisphengthreadipleentsrunnablepublividrun()dispathhengreader=nedispath(heng4thread.lass1);hile(ishengthreadrunned)trythread.sleep(400);ath(interrupte

9、dexeptine)非常:n);e.printstaktrae();stringresult=ndata;intunt=0;/启动读称:dispath.all(hengreader,beginreadheng);/等待成果:hile(result.equals(ndata)/每隔50s读一次数据:trythread.sleep(50);ath(interruptedexeptine)非常:n);e.printstaktrae();result=dispath.all(hengreader,getresult).tstring();if(unt+10)break;/endhilevaluehenglabel.settext(第+v+次读磅:+result);valueheng=res

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论