Skip to main content

の構成 CODESYS

このセクションでは、設定方法を説明します CODESYS 作成した Azure リソースと通信するため。

プロジェクトの準備

これらの説明は例に基づいています MQTT クライアント SL ライブラリを使用する

  1. サンプルをインストールする MQTT クライアント SL ライブラリを使用する

  2. 例を実行可能として設定します。

    詳細については、以下を参照してください。 制作 CODESYS 実行可能なサンプルプロジェクト

  3. 次のことを確認してください CODESYS Security Agent アドオンがに存在する CODESYS インストール。

サムプリントを読む

Azure では、クライアント ID のサムプリントを入力するには、コントローラーの証明書からサムプリントを読み取る必要があります。

  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 をサポートしています。

    詳細については、以下を参照してください。 Microsoft Azure のヘルプページ

    sHostname

    <MQTT Hostname>

    イベントグリッド名前空間内のブローカーの MQTT ホスト名。

    「MQTT ホスト名」セクションで説明されているホスト名を読み、ここに挿入できます。

    udiVerificationMode

    1

    1 := No peer verification

    詳細については、「」を参照してください。 TLS コンテキスト ファンクションブロック。

  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 クライアントは特定の接続パラメータ設定に対応できるようになりました。