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位数据的字节交换函数。

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

相关文章
|
7月前
|
传感器 存储 人工智能
用通义灵码2.5打造智能倒计时日历:从零开始的Python开发体验
本文记录了使用通义灵码2.5开发倒计时日历工具的全过程,展现了其智能体模式带来的高效协作体验。从项目构思到功能实现,通义灵码不仅提供了代码生成与补全,还通过自主决策分解需求、优化界面样式,并集成MCP工具扩展功能。其记忆能力让开发流程更连贯,显著提升效率。最终成果具备事件管理、天气预报等功能,界面简洁美观。实践证明,通义灵码正从代码补全工具进化为真正的智能开发伙伴。
|
7月前
|
人工智能 资源调度 监控
LangChain脚本如何调度及提效?
本文介绍了通过任务调度系统SchedulerX管理LangChain脚本的方法。LangChain是开源的大模型开发框架,支持快速构建AI应用,而SchedulerX可托管AI任务,提供脚本版本管理、定时调度、资源优化等功能。文章重点讲解了脚本管理和调度、Prompt管理、资源利用率提升、限流控制、失败重试、依赖编排及企业级可观测性等内容。同时展望了AI任务调度的未来需求,如模型Failover、Tokens限流等,并提供了相关参考链接。
373 28
LangChain脚本如何调度及提效?
|
7月前
|
存储 数据可视化 C#
三维基因组:multiHiCcompare 差异分析
三维基因组:multiHiCcompare 差异分析
228 13
三维基因组:multiHiCcompare 差异分析
|
7月前
|
人工智能 文字识别 算法
搬运5款让你眼前一亮的神器软件
本文推荐了五款小众但实用的软件,涵盖多种需求:GoodSync实现跨端文件同步与备份,采用高效加密技术;Cryptomator提供云盘文件加密保护,确保数据安全;3171.cn集成多种在线AI工具,助力办公学习;OneNote作为全能笔记工具,支持多平台协作与智能管理;EasyRecovery专注数据恢复,解决误删或格式化问题。这些软件功能强大且经过测试,值得尝试。
282 17
搬运5款让你眼前一亮的神器软件
|
7月前
|
搜索推荐 开发工具 UED
apptrace 三大策略,助力电商 App 在 618 突围​
随着“618”电商大促预售开启,各大平台投入百亿流量与现金争夺用户。然而,网络购物市场增量空间趋于饱和,电商App亟需突破曝光、拉新与转化瓶颈。apptrace提供三大增长策略:精准曝光通过智能广告监测优化投放;裂变拉新简化流程,助力社交传播;高效转化实现一键直达活动页面,提升用户体验与留存率。这些技术优势助力开发者和运营者在618大战中抢占先机,实现用户增长与商业价值最大化。
|
7月前
|
编解码 人工智能 人机交互
从代码到沉浸感:聊聊V游戏开发那些事儿
从代码到沉浸感:聊聊V游戏开发那些事儿
131 16
|
7月前
通义灵码2.5版本全新体验
Qwen3:基于70亿参数大模型,代码生成准确率提升35%,支持30+编程语言。具备智能体模式,可自主决策优化代码,记忆上下文达8K tokens,感知工程状态。集成MCP工具,访问魔搭社区广场,一键安装3000+工具,支持自定义扩展。
144 8
|
7月前
|
API
微服务引擎 MSE 及 API 网关 2025 年 4 月产品动态
微服务引擎 MSE 及 API 网关 2025 年 4 月产品动态
401 44
|
7月前
|
人工智能 自然语言处理 测试技术
UGMathBench:评估语言模型数学推理能力的动态基准测试数据集
近年来,人工智能蓬勃发展,自然语言模型(LLM)进展显著。语言模型被广泛应用于自动翻译、智能客服、甚至医疗、金融、天气等领域。而研究者们仍在不断努力,致力于提高语言模型的规模和性能。随着语言模型的蓬勃发展,评估一个语言模型的性能变得越来越重要。其中一个重要的评估指标,就是衡量语言模型的推理能力和解决数学问题的能力。
344 38