OPC UAサーバーに接続する

概要

このエミュレーションモジュールを使用すると、データ交換のためにFlexSimをOPC UAサーバーに接続できるようになります。

完全に機能する例を構築するには、次のようにいくつかのステップが必要です。

  1. OPC UAサーバーをインストールし、設定する
  2. OPC UAサーバーによって公開するデータを設定する
  3. FlexSimモデルを準備し、OPC UAサーバーに接続する
  4. OPC UAサーバー接続でモデルをテストする
このチュートリアルを正常に構築して実行するには、使用するマシンにFlexSimをインストールするのは当然ですが、OPC UAサーバーもインストールする必要があります。

ステップ1 OPC UAサーバーをインストールし、設定する

市場では、多くのOPC UAサーバーが、市販品またはオープンプロジェクトの形で提供されています。

このチュートリアルでは、OPC UAサーバーとして、KepwareのWebサイトから入手可能なKepwareServerEX 6を使用します。

上記のリンクからフル機能のデモバージョンをダウンロードできます。

インストールすると、Windowsのシステムトレイにこのサーバー機能が表示されます。

右クリックすると、サーバーの各機能にアクセスできます。

このメニューから[OPC UA Configuration]を選択します。

[OPC UA Configuration Manager]が開きます。この画面では、「サーバーエンドポイント」のリスト、つまりこのサーバーへのアクセス方法を定義できます。

デフォルトでは、TCPプロトコルを使用する2つのエンドポイントがインストーラーによって作成されます。

第1のエンドポイントは、ホストのループバックインターフェイスを使用してサーバーに接続できるURLを示します。つまり、ホスト内部からのみ接続できるURLです。
第2のエンドポイントは、現在のWindowsホスト名を使用するURLを示します。つまり、外部(通常はローカルネットワーク内の別のホスト)からサーバーに接続できるURLです。

デフォルトでは、第1のエンドポイントが有効化されており、第2のエンドポイントは無効化されています。

このチュートリアルをシンプルにするために、この設定を多少調整します。
第1のエンドポイント(127.0.0.1)をクリックし、[Edit...]を押して、[Endpoint Definition]ページを開きます。

[None (Insecure)]オプションをオンにし、[OK]を押して変更内容を保存した後、[OPC UA Configuration Manager]を閉じます。

これで、OPC UAサーバーのインストールと設定が完了し、使用可能な状態になりました。

ステップ2 サーバーによって公開するデータを設定する


第2のステップでは、OPC UAサーバーで公開するデータを設定します。後でこのデータにFlexSimからアクセスします。

KEPServerEX 6でこの操作を行うには、WindowsのシステムトレイのKepwareアイコンを右クリックし、[Configuration]を選択します。
これ以外にも、「KEPServerEX 6 Configuration」アプリの検索や、デスクトップアイコンを使用できます。

設定ページは次のとおりです。

[Connectivity]ノードの下にある[Click to add a channel]アイコンをクリックします。

[Add Channel Wizard]が表示されます。ドロップダウンリストから、「チャネルのタイプ」として[Simulator]を選択します。



[Next]を押します。

新しいチャネルの名前を入力し、[Next]を押します。



次の3つのページでは、パラメータをデフォルト値のままにし、[Next]を押します。


作成ウィザードの最後のページが表示されます。

[End]を押すと、通信チャネルが作成され、ウィザードが閉じます。

チャネルが作成されたので、その下に新しい「デバイス」を作成する必要があります。
そのためには、[Click to add a device]アイコンをクリックします。

[Add Device Wizard]が表示されます。デバイスの名前を入力し、[Next]を押します。

次の3つのページでは、パラメータをデフォルト値のままにし、[Next]を押します。

作成ウィザードの最後のページが表示されます。

[End]を押すと、デバイスが作成され、ウィザードが閉じます。

最後のステップでは、[Project]アイコンを右クリックし、[Properties...]を選択します。

[Property Groups]から[OPC UA]を選択し、[Allow anonymous login]を[Yes]に変更します。

[OK]を押して、設定を保存します。

[Device1]に戻り、右側のパネルのタグリストにある[Click to add static tag]を選択します。
新しく作成したタグを設定する[Property Editor]が表示されます。

上の図のようにプロパティを設定します。[Name]を「input」に、[Address]を「B0000」にします。
[OK]を押して、タグパラメータを確定します。
同じ手順で別のタグを作成します。[Name]を「output」に[Address]を「B0001」にします。

これで、OPC UAサーバーは2つのタグを公開するようになります。FlexSimをはじめとするOPC UAクライアントは、これらのタグを読み書きできます。

ステップ3 FlexSimモデルを準備する

このデバイスに接続できるようにFlexSimモデルを準備します。
このチュートリアルに使用するモデルは、ボックスアイテムをトートにパッケージングするという、実にシンプルな生産システムです。

モデルを構築するために、2つのソース(1つはボックス用、もう1つはトート用)、トート用の1つのキュー、ボックスとトートを結合する1つのコンバイナを使用します。

上の図に示すように、これらの要素をコンベヤでつなげます。コンベヤの速度は0.5 m/秒に設定します。

ソース名を「Boxes」(ボックス)と「Totes」(トート)に変更します。ソースTotesは時間0の時点で100個のトートを生産するように設定し、ソースBoxesは10秒ごとにボックスを1個生産するように設定します。

フォトアイをボックスのコンベヤに配置します。配置場所は、トートのコンベヤが始まる約1メートル前です。

コンバイナはボックスを5秒でトートに入れます。

最後に、キューのリセット時とトートがキューから出るたびにキューの出力を閉じるように、キューを設定します。

ステップ4 OPC UA接続でモデルをテストする

まず、モデルをサーバーに接続するために、OPC UA接続を作成します。

OPC UAサーバーは通信ゲートウェイであるため、PLCのようにコントロールロジックを作成するツールではありません。
つまり、「OPC UAでモデルをテストする」場合、OPC UAは通信チャネルにのみ関連するため、このチュートリアルのコントロールロジックは、ユーザーが手作業で提供する必要があります。

FlexSimで新しいOPC UA接続を作成するには、ツールメニューから新しいエミュレーションまたは接続を追加します。

[エンドポイント Url]にOPC UAサーバーのエンドポイントのURLを入力します。このチュートリアルの場合、文字列「opc.tcp://127.0.0.1:49320」です。

[セキュリティポリシー]は[なし]、[ユーザー識別]は[匿名]のままにします。

[構成をチェック]ボタンを押します。すべてが適切な場合、次のメッセージが表示されます。

[変更をポーリング]には一般的なPLCアプリケーションに適した時間(このモデルでは50msが適切)を設定し、接続ステータスを[アクティブ]に設定します。

[変数]タブをクリックし、プラス(+)記号から[OPC UA センサー変数]を選択します。



[OPC UA センサー変数]が追加されます。この変数を「input」タグに結合します。
結合するには、[参照]ボタンを押し、「input」ノードを選択します。


[タグを選択]を押します。選択したタグを参照するために[ノードID]が更新されます。


前のステップを繰り返し、「output」タグとペアにする「OPC UAコントロール変数」を作成します。

この時点で、FlexSim変数とOPC UAタグとの接続が確立されました。さらに、FlexSimモデルでPLCのinputをどのように駆動し、PLCのoutputをFlexSimでどのように管理するかを定義する必要があります。

このモデルで行いたいのは、ボックスがフォトアイをカバーするときに「input」タグを1に設定し、「output」タグが1に設定されたときにトートをキューからリリースすることです。

フォトアイがクリアになったときには「input」タグを0にリセットする必要があります。

そのためには、[OPC UA センサー変数]を選択してフォトアイに関連付け、フォトアイがカバーされたときには値1を書き込むように、フォトアイがクリアになったときには値0を書き込むように変数を設定します。

さらに、モデルのリセット時に「input」タグをリセットするために、初期値を0に設定します。

次に[OPC UAコントロール変数]を選択し、トートのキューに関連付けます。

次に新しいアクションを追加し、PLCの値が0(oldValue)から1(newValue)に変わったときにキューが出力を開くように設定します。

これで、モデルの設定が完了しました。モデルをリセットし、実行できます。

FlexSimの実行速度を1に設定することを忘れないでください。

前述のように、OPC UAは通信ゲートウェイにすぎないため、コントロールロジックを手動で提供する必要があります。
そのため、モデルをテストするには、「input」タグが1に変わるときに、「output」タグを手動で1に設定する必要があります。

そのためには、[KEPServerEX 6 Configuration]を開き、[Tools]メニューから[Launch OPC Quick Client]を選択します。

このクライアントが開いたら、左側の「FlexSim.Device1」ノードを選択して、タグの現在の値を表示します。

「input」タグの値が1に変わることは、フローアイテムが/PE1フォトアイをカバーしたことを示すため、そのたびに「output」タグを手動で1に変更できます。

タグの値を更新するには、値を右クリックし、[Syncronous Write]を選択します。

次に[Write Value]列に1と入力し、[Apply]を押します。

新しい値が書き込まれ、FlexSimモデル内のキューからフローアイテムがリリースされます。

OPC UAサーバーの作成方法とFlexSimからの接続方法、実行中のモデルを(手動で)制御する方法を示しました。これでこのチュートリアルは終了です。