MyEMS核心代码解读001

简介: `myems/myems-modbus-tcp/acquisition.py` 是一个用于从 Modbus TCP 设备采集数据并存储到 MySQL 数据库的 Python 脚本。它通过异步操作检查设备连接,从系统数据库获取数据点列表,读取设备数据,并分类处理后批量插入历史数据库。脚本支持字节交换、比例因子应用等功能,同时具备错误处理和日志记录机制,确保数据采集的稳定性和可靠性。配置信息通过 config 模块加载,适用于工业自动化场景中的数据监控与分析。
  • myems/myems-modbus-tcp/acquisition.py

    这段代码是一个用于从Modbus TCP设备采集数据并存储到MySQL数据库的Python脚本。它主要包含以下几个部分:

    1 导入必要的库:包括处理JSON、数学运算、异步操作、时间、日期、十进制数、MySQL连接以及Modbus TCP通信等。
  1. 检查主机和端口的连通性:使用telnetlib3库异步地检查与Modbus TCP设备的连接是否成功。
  2. 数据采集流程:
  • 步骤1: 检查与Modbus TCP设备的连接。
  • 步骤2: 从系统数据库中获取数据点列表。
  • 步骤3: 从Modbus TCP设备读取数据点的值.。
  • 步骤4: 将采集到的数据批量插入历史数据库,并更新最新值。

    4.数据采集和处理逻辑:

    • 使用while True循环不断进行数据采集。
    • 在每次循环开始时,首先检查与Modbus TCP设备的连接。
    • 从系统数据库中获取需要采集的数据点列表。
    • 对每个数据点,根据其配置(如地址、功能码、偏移量等)从Modbus TCP设备读取值。
    • 将读取到的数据按照数据点的类型(模拟值、能量值、数字值)分类,并进行相应的处理,如字节交换、应用比例因子等。
    • 将处理后的数据批量插入到历史数据库中,并更新每个数据点的最新值。
    • 在每次数据采集周期结束后,休眠指定的时间间隔,然后重复上述过程。

5.错误处理和日志记录: 在数据采集过程中,如果遇到任何错误(如数据库连接失败、Modbus通信错误等),脚本会记录错误信息,并根据情况决定是否重试或跳过当前数据点。
6.数据库操作: 脚本涉及到与两个MySQL数据库的交互——系统数据库和历史数据库。系统数据库用于存储数据点的配置信息,历史数据库用于存储采集到的数据值。
7.配置文件: 脚本使用config模块来获取数据库连接和其他配置信息。
8.字节交换功能: 对于某些Modbus设备,可能需要对读取到的数据进行字节交换,脚本中包含了处理32位和64位数据的字节交换函数。

这段代码实现了一个完整的数据采集流程,包括与设备的通信、数据的读取和处理、以及数据的存储。

相关文章
|
4月前
|
传感器 存储 人工智能
用通义灵码2.5打造智能倒计时日历:从零开始的Python开发体验
本文记录了使用通义灵码2.5开发倒计时日历工具的全过程,展现了其智能体模式带来的高效协作体验。从项目构思到功能实现,通义灵码不仅提供了代码生成与补全,还通过自主决策分解需求、优化界面样式,并集成MCP工具扩展功能。其记忆能力让开发流程更连贯,显著提升效率。最终成果具备事件管理、天气预报等功能,界面简洁美观。实践证明,通义灵码正从代码补全工具进化为真正的智能开发伙伴。
|
5月前
|
人工智能 JSON 自然语言处理
除了MCP我们还有什么?
本文详细描述 agents.json ,涵盖了其背景、工作原理、与 OpenAPI 的关系等内容。
448 94
除了MCP我们还有什么?
|
4月前
|
人工智能 资源调度 监控
LangChain脚本如何调度及提效?
本文介绍了通过任务调度系统SchedulerX管理LangChain脚本的方法。LangChain是开源的大模型开发框架,支持快速构建AI应用,而SchedulerX可托管AI任务,提供脚本版本管理、定时调度、资源优化等功能。文章重点讲解了脚本管理和调度、Prompt管理、资源利用率提升、限流控制、失败重试、依赖编排及企业级可观测性等内容。同时展望了AI任务调度的未来需求,如模型Failover、Tokens限流等,并提供了相关参考链接。
262 28
LangChain脚本如何调度及提效?
|
4月前
|
存储 数据可视化 C#
三维基因组:multiHiCcompare 差异分析
三维基因组:multiHiCcompare 差异分析
115 13
三维基因组:multiHiCcompare 差异分析
|
4月前
|
人工智能 文字识别 算法
搬运5款让你眼前一亮的神器软件
本文推荐了五款小众但实用的软件,涵盖多种需求:GoodSync实现跨端文件同步与备份,采用高效加密技术;Cryptomator提供云盘文件加密保护,确保数据安全;3171.cn集成多种在线AI工具,助力办公学习;OneNote作为全能笔记工具,支持多平台协作与智能管理;EasyRecovery专注数据恢复,解决误删或格式化问题。这些软件功能强大且经过测试,值得尝试。
156 17
搬运5款让你眼前一亮的神器软件
|
4月前
|
搜索推荐 开发工具 UED
apptrace 三大策略,助力电商 App 在 618 突围​
随着“618”电商大促预售开启,各大平台投入百亿流量与现金争夺用户。然而,网络购物市场增量空间趋于饱和,电商App亟需突破曝光、拉新与转化瓶颈。apptrace提供三大增长策略:精准曝光通过智能广告监测优化投放;裂变拉新简化流程,助力社交传播;高效转化实现一键直达活动页面,提升用户体验与留存率。这些技术优势助力开发者和运营者在618大战中抢占先机,实现用户增长与商业价值最大化。
|
4月前
通义灵码2.5版本全新体验
Qwen3:基于70亿参数大模型,代码生成准确率提升35%,支持30+编程语言。具备智能体模式,可自主决策优化代码,记忆上下文达8K tokens,感知工程状态。集成MCP工具,访问魔搭社区广场,一键安装3000+工具,支持自定义扩展。
84 8
|
4月前
|
缓存 前端开发
如何使用 HOC 来增强组件的功能?
如何使用 HOC 来增强组件的功能?
217 74
|
4月前
|
机器学习/深度学习 数据采集 安全
MiMo-7B:从预训练到强化学习,解锁语言模型的推理潜能
目前,大多数成功的 强化学习 工作,包括开源研究,都依赖于相对较大的基础模型,例如 32B 模型,特别是在增强代码推理能力方面。业内普遍认为在一个小模型中同时提升数学和代码能力是具有挑战性的。然而,小米MiMo研究团队相信 RL 训练的推理模型的有效性取决于基础模型固有的推理潜力。为了完全解锁语言模型的推理潜力,不仅需要关注后训练,还需要针对推理定制预训练策略。
363 43