下面我就做一个DTU传感器的监控数据,给大家分享一下如何通过socket技术连接DTU,与DTU下的传感器进行通信。分享自己的心得体会。整体架构图我们先来看一下整体网络架构图。工业名称说明传感器:一种能够收集数据的机器。计算机通过DTU向传感器发送指令,传感器通过DTU向计算机返回相应的数据。比如雨量计,可以实时反馈降雨量,这个很好理解。RTU:remotetransmissionunit,可以是plc(programprocesscontrol),通俗的理解就是一种可以编程,也可以向服务器传输数据的工具。RTU包含一个通信模块。RTU仪器配置好服务器后,可以将采集器的数据通过socket转发给服务器。嗯?你刚刚不是说了DTU吗?DTU现在怎么样了,我们接着看。DTU:数据传输单元,主要作用是将IP数据和串口数据进行等值转换。与上述RTU的功能相比,如果说RTU可以进行数据处理和数据传输,那么DTU就只能进行数据传输了。由于DTU不做任何数据处理动作,所以业内一般称之为“透传”,即透传。所以RTU的价格一般要比DTU贵很多,因为软件编程的成本。RS485:RS485是物理接口,DTU??和传感器通过RS485接口连接。Modbus协议:一种标准的串行工业协议。可支持RS485、RS232接口。既然是协议,就需要遵循一定的规范。举个简单的例子,读取雨量计的命令是十六进制_0E04000000027134_,那么0E04000000027134对应传感器的通讯id,功能码等。如下图,这是一个系列指令,可以读取降雨量的具体数据。网络:DTU可以配置服务器,通过socket技术进行通信。服务器:服务器解析数据并将其存储在数据库中。当然,雨量传感器也可以返回一串标准的十六进制数据DTU,_0E0404326640BCDA52,_具体解析格式如下,如果返回正确,我们需要读取5和6字节进行解析。这是我随便举的一个案例,用来更好的说明Modbus协议。只要是支持modbus的传感器都是类似的,我们需要对具体的传感器通讯协议文档进行转换分析,一般都会有说明。思路梳理楼主刚接到任务的时候不了解这些行业、接口、协议的概念,走了一些弯路。因为我们的项目需要从RTU换成DTU进行数据采集,而现有的项目RTU可以主动向服务器推送数据。当时有几个困惑点,顺便整理了一下思路。DTU能主动给你推送数据吗?如果没有,我需要做什么?不是,既然DTU是透明的,那就意味着我们需要通过DTU向传感器发送指令。'什么顺序?这里的命令是modbus命令。上面也有类似的命令说明。该命令需要从相应的传感器通信协议中获取。一般都有说明。如果你是新手,可以找传感器厂商的支持。对了,都是搞硬件的,他们可能对软件不是很清楚。这时候就需要判断对方向了。如何下单?如何调试下发指令的正确性?因为当时是新手,只懂程序,调试都是通过自己写的程序来完成的。一直在执行程序,没有调试,最后知道是usb接串口转485工具,然后直接接传感器。通过串口工具,可以直接发送。命令返回相应的数据,一目了然。我使用sscom作为串口工具。这个问题深深触动了我。您可以直接在工具上分析结果,无需编写代码。我主要使用以下三个工具。socket与DTU连接的传感器如何打通?最后一步比较简单。通过socket获取二进制数据后,转为十六进制,分析得到结果。我会发布一些代码。好了结束,今天就到这里,希望这篇文章能对你有所帮助,有什么不懂的可以给博主留言,分享让我们一起成长,喜欢就点赞关注它。注意,别迷路,我是【叫连】公众号,微信[jiaolian123abc]边打电话边练习。
