IEC アプリケーションでの奇妙な動作
必要条件
を使用しております CODESYS ランタイム。
トラブルシューティング
奇妙な動作が見られる場合は、ランタイムロガーが貴重なヒントや情報を提供しているかどうかを確認する必要があります。は CODESYS ランタイムロガーには、メッセージをカテゴリ別にフィルタリングするメカニズムがあります。は デバッグ カテゴリはデフォルトでは有効になっていません。このカテゴリを有効にすると、異常な動作や予期しない症状の原因を調べることができます。
グローバルログフィルターとコンポーネント固有のログフィルターがあります。ランタイムのログファイルには、考えられるすべてのコンポーネント固有のフィルターの詳細なリストが表示されます。フィルターは以下の説明に従って使用してください
に関連する症状 | 可能なコンポーネントベースのログフィルター |
---|---|
ライセンス |
|
IEC タスク/タイミング (上位レベル) |
|
IEC タスク/タイミング (低レベル) |
|
IEC アプリケーション (一般) |
|
IEC アプリケーション (メモリ) |
|
ソケット通信 |
|
イーサネット通信 |
|
ファイル/フォルダー |
|
ヒント
すべてのデバッグカテゴリを同時に有効にしないでください。実際の問題を見つけるのが難しくなります。問題をより的確に把握できるように、段階的に進めて「無関係な」フィルターを無効にしてください
を開く CODESYS プロジェクトを作成し、コントローラに接続します。
デバイスツリーのコントローラーをダブルクリックして PLC シェルを開きます。
「?」と入力します。シェルに「」を入力すると、使用可能なすべてのコマンドが表示されます。
を使う
logsetfilter
、loggetfilter
、およびlogdelfilter
フィルターの書き込み、読み取り、削除を行うコマンド。ランタイム全体にグローバルデバッグフィルターを使用することも、特定のコンポーネントにフィルターを使用することもできます。現在のログカテゴリをグローバルに読み込むには:
loggetfilter
次の出力を返す可能性があります。Logger.0.Filter : 0x0000000F
現在のログカテゴリをグローバルに設定するには:
logsetfilter 0xffffffff
特定のコンポーネントの現在のログカテゴリを読み取るには (たとえば、
CmpCodeMeter
):loggetfilter CmpCodeMeter
特定のコンポーネント (CmpCodeMeter など) の現在のログカテゴリを設定するには:
logsetfilter CmpCodeMeter 0xffffffff
例:SSH 接続とテキストエディター経由
デプロイツールを使用してランタイムを停止します。
ターゲットシステムへの接続 (たとえば、
putty
または別の SSH クライアント)。ランタイム環境のユーザー固有の設定ファイルをテキストエディターで開きます (例:
nano
):sudo nano /etc/codesyscontrol/CODESYSControl_User.cfg
見つけて
CmpLog
セクションを作成し、フィルターを設定します。例 1. グローバルフィルターを設定する例:
Logger.0.Filter=0xFFFFFFFFFF
すべてのデバッグメッセージを有効にするには例 2. コンポーネント固有のフィルターを設定する[CmpLog] CmpCodeMeter.Filter=0xFFFFFFFF SysTask.Filter=0xFFFFFFFF
ファイルを保存して閉じます。
デプロイツールを使用してランタイムを再起動します。