Skip to main content

IEC アプリケーションでの奇妙な動作

必要条件

を使用しております CODESYS ランタイム。

トラブルシューティング

奇妙な動作が見られる場合は、ランタイムロガーが貴重なヒントや情報を提供しているかどうかを確認する必要があります。は CODESYS ランタイムロガーには、メッセージをカテゴリ別にフィルタリングするメカニズムがあります。は デバッグ カテゴリはデフォルトでは有効になっていません。このカテゴリを有効にすると、異常な動作や予期しない症状の原因を調べることができます。

グローバルログフィルターとコンポーネント固有のログフィルターがあります。ランタイムのログファイルには、考えられるすべてのコンポーネント固有のフィルターの詳細なリストが表示されます。フィルターは以下の説明に従って使用してください

に関連する症状

可能なコンポーネントベースのログフィルター

ライセンス

CmpCodeMeter

IEC タスク/タイミング (上位レベル)

CmpIecTask

IEC タスク/タイミング (低レベル)

CmpScheduleSysTask

IEC アプリケーション (一般)

CmpAppCmpIecTask

IEC アプリケーション (メモリ)

SysMem

ソケット通信

SysSocket

イーサネット通信

SysEthernet

ファイル/フォルダー

SysFileSysDir

ヒント

すべてのデバッグカテゴリを同時に有効にしないでください。実際の問題を見つけるのが難しくなります。問題をより的確に把握できるように、段階的に進めて「無関係な」フィルターを無効にしてください

. を有効にする デバッグ PLC シェル経由のメッセージカテゴリ (ランタイムバージョンが SP20 以上の場合)
  1. を開く CODESYS プロジェクトを作成し、コントローラに接続します。

  2. デバイスツリーのコントローラーをダブルクリックして PLC シェルを開きます。

    _rtsl_img_plc_shell.png
  3. 「?」と入力します。シェルに「」を入力すると、使用可能なすべてのコマンドが表示されます。

  4. を使う logsetfilterloggetfilter、および logdelfilterフィルターの書き込み、読み取り、削除を行うコマンド。ランタイム全体にグローバルデバッグフィルターを使用することも、特定のコンポーネントにフィルターを使用することもできます。

    • 現在のログカテゴリをグローバルに読み込むには:

      loggetfilter 次の出力を返す可能性があります。 Logger.0.Filter : 0x0000000F

    • 現在のログカテゴリをグローバルに設定するには:

      logsetfilter 0xffffffff

    • 特定のコンポーネントの現在のログカテゴリを読み取るには (たとえば、 CmpCodeMeter):

      loggetfilter CmpCodeMeter

    • 特定のコンポーネント (CmpCodeMeter など) の現在のログカテゴリを設定するには:

      logsetfilter CmpCodeMeter 0xffffffff

. ランタイム設定ファイルによるロガーカテゴリの有効化 (古いランタイムバージョンの場合)

例:SSH 接続とテキストエディター経由

  1. デプロイツールを使用してランタイムを停止します。

  2. ターゲットシステムへの接続 (たとえば、 putty または別の SSH クライアント)。

  3. ランタイム環境のユーザー固有の設定ファイルをテキストエディターで開きます (例: nano):

    sudo nano /etc/codesyscontrol/CODESYSControl_User.cfg

  4. 見つけて CmpLog セクションを作成し、フィルターを設定します。

    1. グローバルフィルターを設定する

    例: Logger.0.Filter=0xFFFFFFFFFF すべてのデバッグメッセージを有効にするには

    _rtsl_img_plc_shell_global.png


    2. コンポーネント固有のフィルターを設定する
    [CmpLog]
    CmpCodeMeter.Filter=0xFFFFFFFF
    SysTask.Filter=0xFFFFFFFF


  5. ファイルを保存して閉じます。

  6. デプロイツールを使用してランタイムを再起動します。