Springboot串口编程和modbus编程前的配置以及资源下载
一.准备工作
1、下载相关软件以及jar包
链接如下:
1)virtual serial port driver 6.9 汉化版 by 耿川汉化
2)串口调试小助手v1.3
3)友善串口调试助手
4)较低版本的windows-x64-jdk8-8u91 因为如果jdk版本不够低,会导致rxtx发送信息失败
5)modbus4j-3.0.3.jar
6)SeroUtils.jar
7)RXTXComm.jar以及相关dll文件
8)主站modbus poll
9)从站modbus slave
10)demo1-Java串口编程例子
11)demo2-使用Modbus4J进行RTU模式串口通信
二、环境配置
- 本地jar配置
尤其scope必须设置,不然无法从本地导入从以上网址导入的jar包
<!--
<dependency>
<groupId>com.automation</groupId>
<artifactId>seroUtils</artifactId>
<systemPath>${project.basedir}/src/lib/seroUtils.jar</systemPath>
<scope>system</scope>
</dependency>
-->
<dependency>
<groupId>com.automation</groupId>
<artifactId>modbus4j-3.0.3</artifactId>
<systemPath>${project.basedir}/src/lib/modbus4j-3.0.3.jar</systemPath>
<scope>system</scope>
</dependency>
- 多个jdk配置(可选,因为也可以卸载原来的jdk,只是比较不好)
2.1. 具体来说,就是在环境变量位置配置多个java_home,以及 path变量处java_home的位置要前移到最前面 ,不然配置的java_home会失效。
2.2. 我的path变量值
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0;%SYSTEMROOT%\System32\OpenSSH;%MAVEN_HOME%\bin;D:\node;
- RXTX的配置
从上面的网址下载下来后需要进行配置
3.1. rxtxComm.jar 放到 %JAVA_HOME%\jre\lib\ext 中
3.2. 其余dll文件放置到**%JAVA_HOME%\jre\bin**中
3.3. idea中或许还要在右键点击项目,project structure -> SDKS 中加入RXTXComm.jar_(%JAVA_HOME%\jre\lib\ext里的)
三、实操
- 首先创建虚拟串口
因为进行串口通信,必须需要一对绑定的虚拟串口,这个工作就由virtua serial port driver 所实现。如何开启虚拟串口的具体操作可参考demo1-Java串口编程例子。但是该demo里有个的 串口位置 没讲全,若 未重启电脑 开启虚拟串口后,具体可在设备管理器的 virtual port 那一栏可看到自己的串口,而非是 端口 项 - 虚拟串口间简单通信
打开 串口调试助手 ,任意一个都可以,但是需要能在 端口 位置选择自己创建的虚拟串口,然后再打开一个该助手实例,在这两个界面里的端口位置选择自己创建的端口,然后输入消息,点击发送,就可以在两个页面里看到。 - 编写软件进行串口通信
具体参考
demo1-Java串口编程例子
demo2-使用Modbus4J进行RTU模式串口通信
至于为什么我讲这方面的东西,因为编写不是大问题,百度上很多,但是这个编写前的各种配置挺烦人。
最后的最后:如果以上demo出bug,很大原因就是jdk版本略高导致的,望君须知。
to be contined