的配置 CODESYS
本节介绍如何配置 CODESYS 以便与创建的 Azure 资源进行通信。
准备一个项目
这些说明基于示例 使用 MQTT 客户端 SL 库。
安装示例 使用 MQTT 客户端 SL 库。
将该示例设置为可执行文件。
有关更多信息,请参阅以下内容: 制作 CODESYS 可执行示例项目
确保 CODESYS Security Agent 您的插件中存在 CODESYS 安装。
读取指纹
在 Azure 中,为了输入客户身份的指纹,必须从控制器的证书中读取指纹。
为此,请打开 安全代理 然后导航到 设备 选项卡。
选择 自己的证书。
双击您的设备证书。
该证书通常被命名为 加密通信 其特点是 发行于 和 由... 发行 属性都与设备名称相匹配(→ 自签名证书)。
将打开 Windows 证书属性窗口。
导航到 详情 属性窗口的选项卡。
找到 拇指指纹 属性(通常是表中的最后一个条目)并将其选中。
现在,您可以从窗口的下方文本字段复制证书的指纹以备日后使用。
配置 TLS 上下文
在主程序的声明部分 PRG,您会发现用于使用客户端证书的 TLS 上下文的注释声明。取消注释此声明并调整以下任务:
打开主程序
PRG。在注释后的声明中搜索用于使用客户端证书的 TLS 上下文。取消注释此声明并调整以下作业
参数
示例值
描述
_sCommonName您的控制器的设备名称
证书的 “通用名称” (CN)。对于 PLC 的自签名设备证书,它与设备名称相匹配
_sTLSVersion1.3
Azure 事件网格支持 TLS 版本 1.2 和 1.3。
有关更多信息,请参阅以下内容: 微软 Azure 的帮助页面。
sHostname<MQTT Hostname>
事件网格命名空间内代理的 MQTT 主机名。
您可以按照 “MQTT 主机名” 部分的描述读取您的主机名并将其插入此处。
udiVerificationMode1
1 := No peer verification有关更多信息,请参阅 TLSContext 功能块。
在预先配置的、简化的 TLS 上下文下,查找该行
itfTlsContext : NBS.ITLSContext := tlsContext;将此行移至新声明的 TLSContext 下方,并将赋值调整为
:= _tlsContext。现在
MQTTClient函数块使用您配置的 TLS 上下文,而不是示例项目中预先配置的 TLS 上下文。
设置超时时间 MQTTClient
打开主程序
PRG。在声明部分中,添加一个新的超时变量。
将 CFC 编辑器中的超时变量链接到
udiTimeOut的输入MQTTClient函数块,用于在建立连接时设置超时。或者,您也可以将数字文字(例如 3000000)直接连接到输入。如果不设置超时,则如果无法建立连接,则客户端将永远不会进入错误状态。
提示
的超时期 MQTTClient 功能块以微秒为单位指定。如果你遇到错误 TCP_INIT_ERROR 稍后在测试时,请先检查配置的超时值,必要时将其设置为更高的值。
声明示例:
udiTimeout : UDINT := 3000000; // µs -> 3s
现在 CODESYS 客户端已准备好进行特定的连接参数化。