Skip to main content

的配置 CODESYS

本节介绍如何配置 CODESYS 以便与创建的 Azure 资源进行通信。

准备一个项目

这些说明基于示例 使用 MQTT 客户端 SL 库

  1. 安装示例 使用 MQTT 客户端 SL 库

  2. 将该示例设置为可执行文件。

    有关更多信息,请参阅以下内容: 制作 CODESYS 可执行示例项目

  3. 确保 CODESYS Security Agent 您的插件中存在 CODESYS 安装。

读取指纹

在 Azure 中,为了输入客户身份的指纹,必须从控制器的证书中读取指纹。

  1. 为此,请打开 安全代理 然后导航到 设备 选项卡。

  2. 选择 自己的证书

  3. 双击您的设备证书。

    该证书通常被命名为 加密通信 其特点是 发行于由... 发行 属性都与设备名称相匹配(→ 自签名证书)。

    将打开 Windows 证书属性窗口。

  4. 导航到 详情 属性窗口的选项卡。

  5. 找到 拇指指纹 属性(通常是表中的最后一个条目)并将其选中。

  6. 现在,您可以从窗口的下方文本字段复制证书的指纹以备日后使用。

配置 TLS 上下文

在主程序的声明部分 PRG,您会发现用于使用客户端证书的 TLS 上下文的注释声明。取消注释此声明并调整以下任务:

  1. 打开主程序 PRG

  2. 在注释后的声明中搜索用于使用客户端证书的 TLS 上下文。取消注释此声明并调整以下作业

    参数

    示例值

    描述

    _sCommonName

    您的控制器的设备名称

    证书的 “通用名称” (CN)。对于 PLC 的自签名设备证书,它与设备名称相匹配

    _sTLSVersion

    1.3

    Azure 事件网格支持 TLS 版本 1.2 和 1.3。

    有关更多信息,请参阅以下内容: 微软 Azure 的帮助页面

    sHostname

    <MQTT Hostname>

    事件网格命名空间内代理的 MQTT 主机名。

    您可以按照 “MQTT 主机名” 部分的描述读取您的主机名并将其插入此处。

    udiVerificationMode

    1

    1 := No peer verification

    有关更多信息,请参阅 TLSContext 功能块。

  3. 在预先配置的、简化的 TLS 上下文下,查找该行 itfTlsContext : NBS.ITLSContext := tlsContext;

    将此行移至新声明的 TLSContext 下方,并将赋值调整为 := _tlsContext

    现在 MQTTClient 函数块使用您配置的 TLS 上下文,而不是示例项目中预先配置的 TLS 上下文。

设置超时时间 MQTTClient

  1. 打开主程序 PRG

  2. 在声明部分中,添加一个新的超时变量。

  3. 将 CFC 编辑器中的超时变量链接到 udiTimeOut 的输入 MQTTClient 函数块,用于在建立连接时设置超时。或者,您也可以将数字文字(例如 3000000)直接连接到输入。

    如果不设置超时,则如果无法建立连接,则客户端将永远不会进入错误状态。

提示

的超时期 MQTTClient 功能块以微秒为单位指定。如果你遇到错误 TCP_INIT_ERROR 稍后在测试时,请先检查配置的超时值,必要时将其设置为更高的值。

声明示例:

udiTimeout : UDINT := 3000000; // µs -> 3s

现在 CODESYS 客户端已准备好进行特定的连接参数化。