OPC UAサーバーに接続する
概要
このエミュレーションモジュールを使用すると、データ交換のためにFlexSimをOPC UAサーバーに接続できるようになります。
完全に機能する例を構築するには、次のようにいくつかのステップが必要です。
- OPC UAサーバーをインストールし、設定する
- OPC UAサーバーによって公開するデータを設定する
- FlexSimモデルを準備し、OPC UAサーバーに接続する
- 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は通信チャネルにのみ関連するため、このチュートリアルのコントロールロジックは、ユーザーが手作業で提供する必要があります。
[エンドポイント 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からの接続方法、実行中のモデルを(手動で)制御する方法を示しました。これでこのチュートリアルは終了です。