CODESYSの応用 - catmanとPMXの通信

本文ではPMXのCODESYSアプリケーションを作成する方法を説明します。この説明はCODESYSに関する基本的な経験のある読者を対象にしています。十分に経験のあるユーザーは、自由に独自の方法を使用してください。詳細に関しては、デスクトップ上に標準でインストールされる事例やオンラインヘルプをご参照ください。

必要なファイルは、CODESYSを含むPMXに同梱の「PMX CODESYS」CD上にあります。または、hbm.comのサポートページよりダウンロードできます。

本文での例では、HBMはTCP/IPサーバとして使用され、HBM上のcatman APとのコミュニケーションを行います。

catman APにより、CPUチャンネルはカスタマイズされたコマンドを使用して設定できるようになります。(例:PIDセットポイント値を変更など)。したがって、HBMのPMXを使用すると簡単な自動制御システムを導入できます。

PMX上のTCP/IPサーバに関する基本機能は、関連の「ヒント」に説明があります。ここの例として使用された文字列処理は、提供されたOSCATライブラリ(www.oscat.de)を使用して作成しました。PMX関しては、主にTCP/IPサーバとCPUインタフェースの例を使用しました。PCのコミュニケーション機能はcatman Easyスクリプトにより提供されています。

構成図

CODESYSパッケージを選択

開発環境を開く
CODESYSソフトウェアを「admin(管理者)」として開始

パッケージの選択

次のダイアログでは「Extract」をクリックすることによって抽出プロセスを完了してください。
<br>「File」に行き、「Project Archive」セクションにある「Extract Archive…」を選択してください。
以下のダイアログで、「TCP IP Server.projectarchive」というアーカイブの位置を選んで「Open」を押してください。

PMXを接続

ゲートウェイを追加

「Device(CODESYS Control HBM PMX V3)」をダブルクリックして、次に、「Add gateway…」の右側のスペースを押してください。デフォルト設定であること維持して、「OK」を押して確認してください。

PMXを統合

「Scan network」機能で自動的にPMXが検出されます。それをダブルクリックすることによって、PMXが起動されます。

PMXに対するCODESYSのコマンドのインタープリテ―ション

TCP/IPサーバはブラックボックスとして使用されます。catman APとの接続を確立後、サーバは文字列をCPUインタフェースに送信します。そこで、コマンドは処理(解釈)され実行されます。

始めにサーバインタフェースの例を説明します。次に、コマンド処理(インタープリテ―ション)について少し詳しく見た後、CPUチャンネルへの接続について説明します。ここ例では2個のチャンネルが以下のように設定されています。

サーバインタフェース

  • 入力:
    • sSend(文字列:送信される文字列)
    • ポート(ワード:PMXを接続できるポート)
    • sIpAddress (文字列:ウェブブラウザで示されたIP-アドレスに調整されるIP-アドレス)
    • bStart (論理演算子:サーバ起動)
    • bShutDownServer (論理演算子:サーバ停止)
  • 出力:
    • sReceived (文字列:文字列が受信されました)
    • bClientOnline (論理演算子:クライアントの信号識別)
「TCP/IPサーバ」のブロック図

CPUインタフェースの機能性

CPUインタフェースは、全チャンネルに対してそれぞれ3つのコマンドをサポートします: セット、取得、リセット。 このコマンドは、機能の概略をユーザーに提示するために、"instructionSet" に含まれています。 「set…」コマンドにあるスペース「…」は、実際のコマンドではなく、ここにパラメータを付加して使用します。

"InstructionSet" のコード

TCPサーバがクライアント(例:catman AP)との接続を検出すると、CPUインタフェースはコマンドがないかどうかsReceivedの入力メッセージをチェックし始めます。コマンドが検出されると実行されます。

コマンドで引き起こされる行動は、CPUインタフェースで決定されます。

catman APに返される値は、その最後に必ず文字列の「$R$N」が付きます。これを作成するには、文字列コマンド"Concat()"を使用して、「$R$N」で終わる文字列にします。

「CPUインタフェース」のコード

CPUチャンネルへの配置

CPUチャンネルへの配置

CPUチャンネルへの変数の配置は以下のCODESYS開発環境で実行されます:

  • 開発環境のディレクトリの左にある「Device」をダブルクリックして、対応する構成ウィンドウを開いてください
  • 「Internal I/O Mapping」タブをクリックしてください(2)
  • 「Codesys Output x」までスクロールして、「Variable」コラムの空欄をダブルクリックしてください(3)
  • 開いた空欄に、希望の変数を選択してください(変数には必ずREALタイプを使用してください)
  • 最後に右下隅にある「Always update variables」にチェックをいれてください(4)

catman AP

catman APでの可視化

catman Easyのスクリプトはcatman APで作成されます.catman APは「EA_Comm」というオブジェクトライブラリを使用して、TCP/IPクライアントを作成したり、CODESYSで定義されたコマンドを扱かったりできます。もちろん、他のいかなるTCP/IPクライアントでもPMXに接続して、コマンドで交信できます。

この例は、接続が確立される手順を数個のボタンを使用して可視化しています。ボタンは次に述べる順番で操作されるべきです: PMXに接続、必要な値をセットまたは取得、PMXを遮断。問題が起きた場合は、通常、PMXを遮断して再接続すると解決します。

フィールド(5)の値がゼロに等しくない場合は、問題がある事をユーザーに示しています。

「Connect to PMX」ボタン(1)を使用して、接続を開始します。PMXの接続が成功すると、「Ready」がフィールド(3)表示されます。接続されたCPUチャンネル1と2は、これより、設定(2)と取得(4)がフィールド(3)で行えます。設定値はPMXの特定の範囲内になるよう注意してください。 範囲外であると値は無効となり、CPUチャンネルは設定されていても、接続ハードウェアは無効な値をプロセスできません。またフィールド(3)に数値がない場合は、ゼロが自動的にチャンネルに設定されます。

また、フィールド(3)にリターン値が表示されます。フィールド(5)はスクリプトの中でエラー検出を提供するだけです。表示された値がゼロでない場合はすぐに、切断してから再接続してください。チャンネルのパラメタリゼーションの後では、接続は常に切断されます(6)。

スクリプトコードにより、「EA_Comm」ライブラリがTCP/IPクライアントのインストールにどのように使用されるかを理解することができます。対応するルーチンかサブルーチンが、可視化されている押しボタンによって起動されます。以下のextract(抽出)は単にCPUチャンネル1を設定するだけです。しかしながら、CPUチャンネル2にサブの方式を移すことができます。

「Timeout」の変数は、応答に対してサーバが待てる時間を定義します。時間はPLCのサイクルより必ず長く設定されます。「Id」は基礎となるソケットを管理するためのハンドルかディスクリプタを提供します。「Terminator」はバッファのメッセージのASCII文字がどこまで読まれるかを定義します-char10は「ラインフィード」を表し、これはCODESYSの「$R$N」と同じです。バッファサイズは「MaxBytes」によって定義されて、PMXのバッファサイズとマッチしています。同じ事が、もちろんポートナンバーとIPアドレスにも当てはまります。

受信バッファはライブラリによって自動的に空にされません。すなわち、メッセージを読んだ後に再読するとき、前メッセージのすべての残っているバイト(関連情報を全く含んでいない)が読まれます。この問題は、バッファバイトを空になるまでバイト単位で読むことによって解決されます。 対応する部分はサブの"getCPU1"に示されます。

catman Easyスクリプト

免責事項

本文に含まれている例は単に説明を補助する目的で使用されています。いかなる保証や法的クレームの根拠としては使用できないことをご了承のうえご利用ください。

HBMへのお問合せ HBMやHBMの製品について「もっと詳しく知りたい」、「わからないことがある」、「こんな製品を探している」などございましたら、お気軽に下記お問合せフォームでご連絡ください。