littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于C语言的X20CP1586 PLC与Azure IoT Hub连接项目

项目简介

本项目基于C语言,借助Azure SDK和Automation Runtime 4.27,在X20CP1586 PLC上运行简单的AMQP示例,实现了X20CP1586 PLC与Azure IoT Hub的连接,可进行设备数据上传及与云服务的交互。

项目的主要特性和功能

  1. 连接Azure IoT Hub:可建立与Azure IoT Hub的连接,实现设备数据上传和云服务交互。
  2. 设备数据上传:支持将设备数据上传到Azure Blob存储服务,用于后续数据分析和处理。
  3. 日志记录:利用日志系统记录关键信息和错误消息,便于调试和监控。
  4. 线程管理:使用线程API管理非循环线程,保证程序正常运行和资源合理分配。

安装使用步骤

前提条件

  • 完成 [Azure IoT Hub 的设置][lnk-setup-iot-hub]。
  • 完成 [设备配置并获取凭证][lnk-manage-iot-hub]。
  • 准备一台 X20CP1586 设备。
  • 安装 Automation Studio 4.2.7 或更高版本,Automation Runtime 4.27 或更高版本。

准备设备

此步骤文档未详细说明,可按常规设备准备操作进行。

构建并运行示例

  1. 构建 SDK 和示例
    • 下载移植到 Automation Runtime 的 Microsoft Azure IoT 设备 SDK。
    • 使用 Automation Runtime 4.27 或更高版本创建一个新的 Automation Studio 项目。
    • 将 AzureSDK 库作为现有库插入到新项目中,并放置在 Libraries 下。
    • 自动插入 AzureSDK 依赖的库,此时应有相应的库集合。
    • 在“Project/Change Runtime Versions../Build”菜单下,为项目设置包含目录。
    • 使用对象目录工具箱添加一个新程序。
    • 在软件配置的“Program/Properties/Build”中,为新程序设置编译器选项为 C99(-std=gnu99)。
    • 在“Project/Settings..”中勾选“Enable declaration of PLC variables”,以激活从代码创建 _LOCAL 和 _GLOBAL 变量。
  2. 向 IoT Hub 发送设备事件
    • 从以下地址获取运行 AMQP 消息示例所需的文件。
    • 将这些文件复制到你的程序中(可通过从资源管理器拖放或使用对象目录 - 现有文件的方式),需替换 Main.cpp。
  3. 接收来自 IoT Hub 的消息
    • 参考 [Manage IoT Hub][lnk-manage-iot-hub] 学习如何向应用程序发送云到设备的消息。
    • 只要 g_continueRunning 标志设置(保持线程存活),示例应用程序将在日志中输出所有接收到的消息。可通过设备资源管理器发送“quit”远程关闭线程,这将把 g_continueRunning 标志设置为 FALSE。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】