使用jamod建立Modbus ASCII通讯

  • Post author:
  • Post category:其他


本文主要记录一次使用JAVA 来建立满足Modbus协议的串口通信。

具体如下图通过运行下面的JAVA程序,向Modbus的slave端发送一个请求,而Slave回应这个请求,JAVA程序收到这个回应

在这里插入图片描述

Slave端响应JAVA程序的请求

在这里插入图片描述

本次需要用的工具和软件:

  • javax.comm 包,用于创建串口通讯
  • jamod包,实现了Modbus的协议
  • Modbus Slave 模拟Modbus协议中的Slave端,我的理解就是受的一方,不主动,具体可以看上一个文章关于Modbus协议的解释
  • VSPS 虚拟串口驱动,用来在电脑上模拟两个相连接的串口

写到这里就多说一点吧,现在使用JAVA来创建串口通信的包主要有

  1. Javax.comm 这个最古老了应该,不支持64位的JDK,所以运行本博客的代码请确保你是32位的JDK,当然32位的eclipse也是肯定的。
  2. RXTX,关于Javax.comm和RXTX的关系,请看这个网址,https://www.oschina.net/translate/serial_java?cmp&p=1 已经翻译成了中文,有助对JAVA在串口的编程有个理解
  3. JSSC 这包也是可以,也有例子,我在GITHUB上有人说这个包要比RXTX好,貌似是未来趋势? 不太确定,没细了解

然后是关于JAVA实现Modbus协议的框架有j2mod, jamod 本次使用的这个,因为看着这个稍微简单点,QAQ 还有这个modbus4j



第一步安装VSPD

这个稍微注意一下,有可能下载的VSPD不能用,换成6.9版本就好,我最开始下载的7.1不能用。下面是我所用的VSPD连接ttps://github.com/WunaiDczh/Jamod-demo

下载好创建一对串口就行了,我们后面就是靠这一对串口来通信的,如下图,COM4端口是因为我使用MODbus slave连接上了,所以后面有个[9600-E-E-1]

在这里插入图片描述



第二步下载安装Modbus Slave

这个 在我前一个博客有详细说过,也有下载地址,Slave端需要配置一下,因为要和后面的JAVA代码互相响应的。

在这里插入图片描述

在这里插入图片描述

然后点击连接后,你就会发现你的VSPD里面有变化了

在这里插入图片描述



第三步 JAVA代码

再次说明一下,由于Jamod 官方的手册里面是使用了javax.comm 来连接端口的,所以我也直接使用了javax.comm ,

但是但是但是 javax.comm 不支持64位JDK 所以运行下面的JAVA代码需要你使用32位JDK和32位Eclipse


查看自己的JDK版本,需要去命令行里面 输入 JAVA -VERSION,32位的就是如下的信息,如果是64位的会有64这个数字出现

在这里插入图片描述

Eclipse版本确认方法是找到eclipse的目录下面打开一个文件如下图

在这里插入图片描述

下面这个图就是64的Eclipse了

在这里插入图片描述

  1. javax.comm 安装

    可以直接参考下面给出的那个博客的网址,里面也有javax.comm包的下载地址和安装方法,就是复制几个文件到JDK里面 https://blog.csdn.net/zhanghw_1229/article/details/7025034
  2. JAVA代码

    先去https://github.com/WunaiDczh/Jamod_demo 下载源码,然后使用Eclipse导入,导入方法就是先使用新的WorkSpace地址,然后再FILE的import里面选择
    在这里插入图片描述

    选择下载下来的源码,然后打勾把源码复制到当前的工作路径下

    在这里插入图片描述

    最后就是下图

    在这里插入图片描述

    然后确定Modbus Slave 连接COM4串口了,等着响应请求,打开DIsplay里面的Communication tafiic窗口如下图

    在这里插入图片描述

再运行刚弄好的JAVA程序,就会多出来我箭头指出来的两行通信信息了

在这里插入图片描述

当然也可以使用Modbus PUll 和Modbus Slave通信,可以研究一下他们交换的数据,这个下一个博客再试着讨论下吧



版权声明:本文为qq_32691667原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。