アプリケーションでの診断
The PROFINET コントローラには、診断データ用の内部バッファが装備されています。この「シャドウイングデータベース」は、デバイスから送信されたアラームと接続を確立するための非周期的サービスによって、バックグラウンドで常に更新されます(ユーザーには透過的です)。このようにして、最小限の遅延で、すべてのデバイスの実際の診断ステータスがホストアプリケーションにミラーリングされ、いつでもそこで評価できます。代わりにまたは追加で、アプリケーションは個々のアラームを受信できます(CommFB.RALARM
)または診断データを再読み込みします(CommFB.RDREC
)。
のAPI ProfinetCommon
と CommFB
ここで説明するライブラリは、 CODESYS PROFINET スタックとCIFXソリューション。ただし、個々のサービスはCIFXソリューションによって完全には実装されていません(データシートを参照)。コード例については、以下にリストされている機能ブロックのライブラリドキュメントを参照してください。
デバイス機能ブロック
それぞれについて PROFINET デバイスツリーのデバイスには、デバイスの接続または構成ステータスに関する基本情報を提供する機能ブロックが作成されます。たとえば、診断エントリを要求したり、モジュール構成を逸脱したりします。

同様に、コントローラの機能ブロックインスタンスも作成され、の動作ステータスに関する情報を提供します。 PROFINET コントローラ。
詳細については、以下を参照してください。 IoDrvProfinet.ProfinetController
と IoDrvProfinet.PNSlave
プロバイダーとコンシューマーのステータス
このステータス情報は、常にI / Oデータとともに転送されます。に追加することができます CODESYS それぞれのモジュールのI / Oマッピング。
アラーム
によって送信されるアラーム PROFINET デバイスは、 CommFB.RALARM
ファンクションブロック。情報を評価するためのコード例については、ライブラリのドキュメントを参照してください。 ProfinetCommon.DiagnosisDataReader
。
デバイスとサブモジュールのステータス
の出力への直接アクセスに加えて、 デバイス機能ブロックを使用する可能性もあります。 ProfinetCommon.DeviceIterator
POU は、コントローラー用に設計されたすべてのデバイスを反復処理します。
同様に、 ProfinetCommon.SubmoduleIterator
POUは、 PROFINET デバイスと個人を評価するため ProfinetCommon.SubmoduleState
。
診断バッファー(診断シャドウイング)
とともに ProfinetCommon.DiagnosisDataBuffer
POUは、コントローラーの「シャドウイングデータベース」にローカルにバッファリングされているデータを呼び出すことができます。
あるいは、 ProfinetCommon.GetSubmoduleDiagnosis() サブモジュール診断を取得する この関数は、単一のサブモジュールのすべてのバッファリングされた診断エントリを照会するためにも使用できます。
エラーコードと診断テキスト
数値 PROFINET エラーコード(ErrorCode
そして ExtErrorCode
) は、上記の関数および関数ブロックを使用して呼び出すことができます。アプリケーションで対応するテキスト記述が必要な場合 (たとえば、視覚化で表示する)、これらのテキスト記述を個別にダウンロードする必要があります。詳細については、以下を参照してください。 コマンド: 追加PROFINET診断リソース。