探讨:工业物联网,纯上报设备的数采

2024-02-17 00:28

本文主要是介绍探讨:工业物联网,纯上报设备的数采,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        事情是这样的,有一台设备是modbus-tcp协议,手工操作测量,自动发送测量结果,就这,没别的了。

        开始看起来挺简单,连接上去就等着收数据嘛,多简单!后来发现麻烦得很啊,关键的麻烦就是TCP连接断开是无法知晓的(TCP的keep-alive机制非常慢,要以小时计),所以设备如果断电(关掉),DTU(程序是我写的)是无法及时发现的,只会傻等,而设备再次打开后程序不会发现,于是客户反应没有数据。由于没有设备验证,以上也只是我的猜测。

        但是不管怎么样,此类问题还是要有个通用的防范机制的。

        首先可以把问题分为两类,或者说两个思路:

  • 用交互解决。因为这种设备其实不会离开人工操作独立运行(不按下按钮就不会测量),所以DTU独立运行的模式根本就是错的,只要通过界面操作手动连接或重连,就不会发生问题了。这个思路没什么问题,但是实际实施有问题,因为整个系统是别人设计的(展开说就不是技术问题了)。
  • 纯技术解决。想办法自动发现连接断开,比如自动重连以确认设备正常。由于手头没有设备,不知道设备有没有特别限制(比如某些设备只允许一个连接,第二个连接直接拒绝),只能先从通用角度考虑。

        然后分别分析一下具体做法。

        交互方式比较容易,就是支持用户发一个指令来重新连接,只要前端肯配合,实现是很容易的。前端不配合的话,我可以写个单独的客户端,就一个大大的按钮“重新连接”(好像不太好意思哦)。

        纯技术考虑的就是这么几个点:

  • 超时无数据自动断开重连。超时时间不好控制,因为测量是人工触发,间隔可能会很久很久,但是又可能刚好是断开重连的时候出结果,这样就会错过数据。
  • 原有连接不断开,尝试一个新连接。这就与设备特性有关了,设备会不会只支持一个连接(这种设备确实有),第二个连接会不会破坏第一个连接(猜的),会不会导致数据丢失?
  • 差不多吧,先写写看,再测测看。

(这里是结束)

这篇关于探讨:工业物联网,纯上报设备的数采的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/716145

相关文章

Java内存区域与内存溢出异常的详细探讨

《Java内存区域与内存溢出异常的详细探讨》:本文主要介绍Java内存区域与内存溢出异常的相关资料,分析异常原因并提供解决策略,如参数调整、代码优化等,帮助开发者排查内存问题,需要的朋友可以参考下... 目录一、引言二、Java 运行时数据区域(一)程序计数器(二)Java 虚拟机栈(三)本地方法栈(四)J

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

Python使用DeepSeek进行联网搜索功能详解

《Python使用DeepSeek进行联网搜索功能详解》Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用P... 目录一、环境准备与依赖安装二、DeepSeek简介三、联网搜索与数据集准备四、实践示例:图像分类1.

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

驱动(RK3588S)第七课时:单节点设备树

目录 需求一、设备树的概念1、设备树的后缀名:2、设备树的语法格式3、设备树的属性(重要)4、设备树格式举例 二、设备树所用函数1、如何在内核层种获取设备树节点:2、从设备树上获取 gpio 口的属性3、获取节点上的属性只针对于字符串属性的4、函数读取 np 结点中的 propname 属性的值,并将读取到的 u32 类型的值保存在 out_value 指向的内存中,函数的返回值表示读取到的

物联网之流水LED灯、正常流水灯、反复流水灯、移动流水灯

MENU 硬件电路设计软件程序设计正常流水LED灯反复流水LED灯移动流水LED灯 硬件电路设计 材料名称数量直插式LED1kΩ电阻杜邦线(跳线)若干面包板1 每一个LED的正极与开发板一个GPIO引脚相连,并串联一个电阻,负极接GND。 当然也可以选择只使用一个电阻。 软件程序设计 正常流水LED灯 因为要用到多个GPIO引脚,所以最好把所有的GPI