java RS232串口通讯(电子天平数据抓取)

写这篇文章是为了记录RS232串口通讯,当时有个央企项目里需要实现自动抓取RS232串口数据,需要支持主要浏览器:Chrome,Firefox,IE8以上等。看了很多有关rs232的资料和也找了很多方法,终于找到了解决方案,实现了此功能很是开心。现在分享下给朋友们...

在此方法解决参阅几篇文章,感谢你们留下的解决思路。

http://elkan1788.iteye.com/blog/1463049

http://wenku.baidu.com/link?url=dC91PCN5bezV_NyXxKfH7SojfUqs3aNeulUinI0eyu2hVWIXr8kf07BQg7AQ8gK-W4RhfnBg3JSYUKAxP68wigp6MgZ5L60CbHxA-gCYiu_

http://blog.csdn.net/luoduyu/article/details/2182321

http://blog.csdn.net/ssrc0604hx/article/details/7979868

1.准备USB-RS232串口线(从京东上购买),在搜索RS232

2.装USB虚拟驱动PL232

USB-Serial Controller D驱动(通过驱动精灵安装后重启生效)检查下是否安装成功在设备和打印机区域查看或至管理,在计算机-》管理-》设备管理器-》设备驱动会显示PL232驱动,没有黄色感叹号,说明驱动已经成功

3.安装个vspd虚拟串口软件,增加一对COM口

4.测试COM口是否开通。

第一安装jar包
我本机是win64的安装的是RXTXjar包,下载地址是http://fizzed.com/oss/rxtx-for-java
Copy RXTXcomm.jar ---> \jre\lib\ext
Copy rxtxSerial.dll ---> \jre\bin
Copy rxtxParallel.dll ---> \jre\bin

若是win32的安装
从sun网站下载对应操作系统的java-Communication API包
win32com.dll复制到\bin目录下;
将comm.jar复制到 \lib;
把javax.comm.properties也同样拷贝到\lib目录下

第二、启动测试端口程式JAVARS232 Preferences->java->Installed JREs->Edit-->ADD External JARS引入RXTXcomm.JAR

new main 方法,测试:

import gnu.io.CommPortIdentifier;

import java.util.Enumeration;


public class Test {
  
    public static void main(String[] args) throws InterruptedException { 
        Enumeration en = CommPortIdentifier.getPortIdentifiers(); 
        CommPortIdentifier portId; 
        while (en.hasMoreElements()) { 
            portId = (CommPortIdentifier) en.nextElement(); 
            // 如果端口类型是串口,则打印出其端口信息 
            if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { 
                System.out.println(portId.getName()); 
            } 
        } 
    }
}

  1. Enumeration en = CommPortIdentifier.getPortIdentifiers();  
  2. CommPortIdentifier portId;  
  3. while (en.hasMoreElements()) {  
  4.     portId = (CommPortIdentifier) en.nextElement();  
  5.     // 如果端口类型是串口,则打印出其端口信息  
  6.     if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {  
  7.         System.out.println(portId.getName());  
  8.     }  

运行代码后,控制台有输出正确的端口(如下图),说明所有环境正常可进行下步工作,否则请检查。
java RS232串口通讯(电子天平数据抓取)_第1张图片
5.JS测试rs232.htm


JavaScript串口测试




 


  


 

    

   配置串口
   
  
   
  
   串口号:
      
   
  
   波特率:
      
   

 
   校验位:
      
   
  
  
   数据位:
   
   

 
   停止位:
   
   

   

          
          
   
 




   发送区域
   

    
   

   16进制
      
   
 




   接收区域   
   

     
   

   16进制
   
   

  
 
HKEY_CLASSES_ROOT\CLSID\{06F15699-BE3F-4486-A676-AC25857131BD}
 CLASSID="CLSID:06F15699-BE3F-4486-A676-AC25857131BD"
 CODEBASE="SComm32x.ocx">
   
   
   
   
   
   



在此之前先安装SCOMM32X.OCX控件

通过win+r,在运行输入regedit.exe,打开的注册表的 HKEY_CLASSES_ROOT\CLSID\下的值安装的ocx的CLASSID,不知道CLASSID可以通过HKEY_CLASSES_ROOT\CLSID\右键属性->查询Scomm32.ocx会显示在注册表

6.在页面设置好仪器设备对应的波特率串口号: 波特率: 校验位: 数据位:停止位,这个很重要,不知道的可以根据仪器设备型号的查阅此设备的说明文档。厂商一般都会提供。

7.最后收工啦,测试下接收和发送的数据是否OK。

备注:我的csdn上有RS232资源下载。


你可能感兴趣的:(rs232)