首先咱们先讲一下通讯的基础知识:
通讯有模拟通讯和数字通讯,数字量通讯传输的是二进制脉冲信号,抗干扰能力强,数字量信号加密比较安全。
模拟量通讯:比如广播,发送的是一种波,收音机收到广播之后,进行解调,然后再经过扬声器放大,这个过程就是模拟量通讯。
按照传送方式进行分类:串行通讯和并行通讯
串行通讯:是以二进制(bit位)为单位进行传输,每次只传输一位,需要的线少,信号线是一根,另外一个跟线是信号定线,因为电压是2个点之间的电压,最少两根线(适用距离较远的)
并行通讯:并行通讯按字或者字节为单位整体进行传输,n位 必须N跟线,其特点是传送速度快,通讯线多,成本高,只用于短距离传输,比如机箱里面的并行线传送,计算机里面的内部传输
串行通讯中接收方和发送方,传送速率相同,这叫做同步,
同步传送:以字节为单位,每次传送1~2个字节,若干个数据字节又叫做数据包或者叫做数据块(信息帧),2个字符之间没有间隔,传送完毕之后,告诉接收方传了多少个
异步传送:在传送过程中,发送方可随时传送字符,两个字符之间的时间间隔是不固定的,接收方必须时刻做好准备,字符由二进制位进行接收,简单可靠,效率低,
传送方向:单工,半双工,全双工
单工:单向通讯,只有甲向乙 单向传送,计算机向打印机通讯,打印机不能向电脑发送信息
半双工:甲和乙都可以讲话,通过同一根进行,在某个时刻只能单线传送,对讲机就是一种半双工通讯
全双工:甲方和乙方同时进行发送和接收,同一时刻可以同时进行讲话

通讯格式(波特率,停止位,数据长度,校验位)
在串行异步通讯中,通讯双方必须就通讯数据传送方式,传送的数据长度,校验方式,传送速率进行统一设置,才能保证双方通讯的正确
字符传送的基本格式:
起始位:一个字符开始信息,用逻辑0表示,起始位不用约定,规定就是0,没有选择
停止位:一个字符结束信息,用逻辑为1表示(停止位可以选择一个停止位或者两个停止位)
空闲位:两个字符间的空闲,用逻辑为1表示
数据位:一个字符信息的内容,数据位的个数可以是7位或者8位
校验位:校验数据传输的正确性,也可以没有(有的话可以是奇校验,也可以是偶校验)
通讯之前必须告诉对方,波特率,数据位长度,停止位,校验位信息,这些规定起来就叫做通讯格式
波特率:双方要相同
下面是通过java代码进行调测:
测试之间需要的jar包:modbus4J.jar RXTXcomm.jar seroUtils.jar
rxtxParallel.dll rxtxSerial.dll 这两个dll文件放到JDK的bin目录下

//       创建串口参数对象SerialParameters serialParameters = new SerialParameters();//设定MODBUS通讯的串行口serialParameters.setCommPortId("COM15");//设定成无奇偶校验serialParameters.setParity(0);//设定成数据位是8位serialParameters.setDataBits(8);//设定为1个停止位serialParameters.setStopBits(1);//串行口上的波特率serialParameters.setBaudRate(9600);//创建modbus工厂ModbusFactory modbusFactory = new ModbusFactory();//获取modbus工厂,获取modbus协议对象ModbusMaster master = modbusFactory.createRtuMaster(serialParameters);//设置超时时间master.setTimeout(300);//打开串口master.init();
//       6 表示设备地址,3表示功能码,0表示寄存器地址(所要读取设备信号的地址),4表示读取设备信号的字节长度,ModbusLocator locator = new ModbusLocator(6, 3, 0, 4);
//       读取到数据,Object value = master.getValue(locator);// 遍历字节数组if(value instanceof byte[]){System.out.println("属于字节数组");byte[] b = (byte[]) value;System.out.println("字节数组的个数:"+b.length);for (int i = 0; i < b.length; i++) {System.out.print(b[i]+"     ");}System.out.println();}

java 借助modbus协议实现与硬件之间的通讯相关推荐

  1. java借助modbus协议实现与设备的通讯,收发信息,实现对设备信息的采集

    2018-07-27  4tr  转自 会飞的李小浩 修改微信分享: 扫盲:什么是modbus? Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于 ...

  2. plc通讯的握手信号_基于Modbus协议实现PLC与智能仪表的通讯

    1 引言 Modbus 协议是法国施耐德公司推出的一个全开放的"主从式(Master/Slave)"通讯协议,其本意在于实现上位机(主设备)对PLC(从设备)内部存储区域的&quo ...

  3. SQL Server数据库转MySQL_关于Modbus协议转SQL数据库,实现双向通讯

    IGT-SER智能网关模块,支持各种PLC.智能仪表.远程IO与数据库之间双向通讯,既可以读取设备的数据上报到SQL数据库,也可以从数据库查询数据后写入到设备: 网关安装在设备侧,随设备启动.停止,不 ...

  4. java netty modbus协议接收iot数据

    IoTserver 源代码开源在gitee上 : IoT netty java gitee server sample c++ libuv 的IoT tcp server IoT c++ libuv ...

  5. java des加密解密_JAVA和c# 之间数据通讯时通过DES进行加密解密

    c#开发前端时调用java开发的接口,需要数据加密后通讯.两边都需要同时通过DES(BASE64)进行加解密. 代码如下 c#端: 加密 public static String Encrypt(St ...

  6. java modbus协议

    概念 Modbus是一种串行通信协议,Modbus协议目前存在用于串口.以太网以及其他支持互联网协议的网络的版本. 大多数Modbus设备通信通过串口EIA-485物理层进行. 通讯格式 地址域 功能 ...

  7. 协议篇之Modbus协议入门

    目录 引言 Modbus协议介绍 1.Modbus协议是不是开源的,免费的? 2.怎么传输,有线还是无线? 3.Modbus的数据格式? 4.Modbus和RS485什么关系? 5.什么是主从机? 6 ...

  8. Modbus协议在串行链路上的实现

    目录 1.串行链路通信简介 2.串行链路通信协议原理 3.串行链路通信帧描述 4.RTU.ASCII串行传输模式 4.1.RTU传输模式 4.2.ASCII传输模式 1.串行链路通信简介 Modbus ...

  9. 【物联网毕设基础】单片机:RS485 通信与 Modbus 协议

    文章目录 RS485 通信与 Modbus 协议 单片机 RS485 通信接口.控制线.原理图及程序实例 RS485 通信与 Modbus 协议 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用 ...

最新文章

  1. python pillow 图片处理
  2. 心疼啊今天在四季青买衣服的时候在试衣服的时候,竟然有个小偷把我的n73手机给偷去了,...
  3. vivado中的rtl中电路图无发生成_FPGA零基础学习:数字电路中的组合逻辑
  4. Cuckoo WIndows 安装
  5. Oracle 中文分词CHINESE_VGRAM_LEXER与CHINESE_LEXER比较
  6. 图像处理——图像边缘检测
  7. java随机抽题系统_为什么要使用考试系统的随机组卷功能?
  8. mybatis 取查询值_MyBatis-SELECT基本查询
  9. GetURL (java)
  10. SQL Reverse函数
  11. xcode模拟器不显示键盘解决方案
  12. Linux服务器开发初步
  13. WinSAT 系统评估工具使用
  14. AI伪原创混剪软件脚本,短视频伪原创剪辑工具必备神器
  15. 老哥教你如何将springboot打包成exe程序
  16. MySQL 快速入门之DATE_FORMAT() 函数详解
  17. STM32f429 CubeMx FreeRTOS emWin (Cubemx有BUG)
  18. Stay Hungry,Stay Foolish的解读
  19. 载着 AI 梦想向前奔跑!2022 Amazon DeepRacer 自动驾驶联赛未完待续!
  20. 和数软件新增9项计算机软件著作权登记证书

热门文章

  1. Win10下媲美apt的包管理工具 Scoop 的安装以及常用软件清单
  2. AStar路径规划算法
  3. 大学计算机信息技术教程2020版知识点,大学计算机信息技术教程习题集.doc
  4. Allegro任意形状铜皮倒圆角
  5. sql server中datetime默认值设置和日期函数
  6. 工作站Ubuntu16.04环境下安装nvidia显卡驱动
  7. DSF学习1_Dubbo详解(一)分布式服务框架的概念理解
  8. Unity开发游戏--2D坦克大战(一)
  9. 个人网站到底怎样赚钱 [zt]
  10. 如何通过文档管理控制合同管理