Java通过socket和DTU,RTU连接工业传感器通信
现在做DTU传感器监测数据一块,给大家分享如何通过socket技术连接到DTU,并能和DTU下面的传感器通信的,分享一下自己的心得和体会。
?
总体架构图 先来看下整体网络结构图。
文章图片
工业名称解释 传感器:能够采集数据机器,电脑端通过下发指令通过DTU发给传感器,传感器通过DTU返回相应的数据给电脑端,比如雨量计能实时反馈雨量,这很好理解。
RTU:远程传输单元,可以是一台plc(程序过程控制),通俗理解就是能够编程的还可以将数据传输服务器的工具。RTU内部是包含通讯模块的,RTU仪表配置服务器后,他可以通过socket将采集器的数据转发到服务器。咦?你刚才不讲说的DTU吗?现在怎么是DTU了,接下来我们看看。
DTU:数据传输单元,他主要的功能是能将IP数据和串口数据进行等价转化。对比上面RTU的功能,如果说RTU能进行数据处理和数据传输,那么DTU就只能进行数据传输了。像DTU因为没有任何的数据处理动作,所以一般业界叫“透传”即透明传输。所以RTU的价格一般比DTU贵很多,因为有软件编程的成本。
RS485:RS485是一个物理接口,DTU和传感器就是通过RS485接口进行连接的。
Modbus协议:标准的串行工业协议。可以支持RS485,RS232接口。那既然是协议,就需要遵循一定的规范,举个简单的例子,读取雨量计的命令是16进制的_0E04000000027134_
那么0E 04 00 00 00 02 71 34 分别对应的该传感器的通信id,功能码等。如下图,这是一串指令,能够读取雨量的具体数据。
网络:DTU可以配置服务器,通过socket技术通信。
服务器:服务器解析数据并存入数据库。
文章图片
当然,雨量传感器也能返回一串标准16进制数据DTU,_0E0404326640BCDA52,_具体解析格式如下,如果返回正确我们需要读取5,6字节进行解析。
文章图片
这个是我任意举的一个案例,是为了更好说明Modbus协议的。只要支持能modbus的传感器都类似,需要我们对照具体的传感器通讯协议文档进行转化解析,一般都会有说明。
?
思路整理 楼主在刚开始接到任务不理解这些工业,接口,协议的概念,走了一些弯路。因为我们项目是需要从RTU换成DTU做数据采集的,已有项目RTU是能够主动推送数据到服务器的,当时比较困惑有几个点,顺便整理下思路。
- DTU能够主动推送数据给你吗?如果不能,我需要如何做?
- 发什么指令?
- 如何下发指令?如何调试下发指令正确性?
文章图片
- 如何打通socket和DTU连接的传感器?
文章图片
?
结尾 【Java通过socket和DTU,RTU连接工业传感器通信】好的,今天就到这里,希望这边文章能对您有所帮助,有不懂的地方可以给博主留言哦,分享让我们共同成长,喜欢的请点赞加关注哦。点关注,不迷路,我是【叫练】公众号,微信号【jiaolian123abc】边叫边练。
文章图片
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- gitlab|gitlab 通过备份还原 admin/runner 500 Internal Server Error
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用