エミュレーション

概要と主要な概念

エミュレーションツールは、FlexSimと外部PLCまたはPLCと通信するクライアント/サーバー間のリンクを作成します。このツールは、複数の接続を作成し、各接続に変数を定義できます。このツールは、OPC DAとModbusという2つのプロトコルをサポートしています。

エミュレーションツールはツールボックスからアクセスできます。

[接続]タブ

[接続]タブには、次のプロパティがあります。

- 新しい接続を追加します。

- 接続を削除します。

次の4つの接続タイプを使用できます。

接続 説明
OPC DA データアクセス(DA)プロトコルを使用したローカルまたはリモートのOPCサーバーへの接続。
Modbus TCP/IPv4 TCP/IPv4を使用したイーサネット経由のModbusクライアントまたはサーバーへの接続。
Modbus TCP/IPv6 TCP/IPv6を使用したイーサネット経由のModbusクライアントまたはサーバーへの接続。
Modbus RTU シリアル(RS-232またはRS-485)ポートを使用したModbusスレーブまたはマスターへの接続。
OPC UA UA(統一アーキテクチャ)プロトコルを使用したローカルまたはリモートのOPCサーバーへの接続。

各接続のプロパティについては、以下で説明します。

OPC DA

OPC DA接続は、FlexSimがコンピュータ上の物理的なイーサネットポート経由で通信する実環境、またはソフトウェアプログラムがTCP接続をエミュレートする仮想環境で行うことができます。

  • 名前 - 接続の名前。FlexSimでの接続を識別するために使用します。
  • アクティブ - このチェックボックスをオンにすると、FlexSimをOPCサーバーに接続するための接続が作成されます。これは、モデルの起動時に発生します。
  • アドレス - 接続のIPアドレス。localhostを使用して、このコンピュータ上のサーバーとの接続を作成するか、IPアドレスを190.123.10.1の形式で指定します。
  • 間隔を変更 - FlexSimがサーバーに変更をポーリングする時間間隔(モデル時間単位)。
  • サーバー - 接続先のサーバー。
  • 参照 - [参照]ボタンをクリックすると、定義されたアドレスに接続する可能性のあるサーバーのリストが表示されます。
  • 非同期書き込み - このチェックボックスがオンの場合は、サーバーにデータを書き込むと、FlexSimは書き込みオペレーションが完了するまで待機してから続行します。
  • ユーザー名 - OPCサーバーへの接続にユーザー名が必要な場合に、サーバー認証に使用されます。
  • パスワード - OPCサーバーへの接続にパスワードが必要な場合に、サーバー認証に使用されます。

Modbus TCP/IPv4とIPv6

IPv4とIPv6のプロパティは同じです。唯一の違いは、接続の設定にプロトコルが使用されることです。Modbus TCP接続は、FlexSimがコンピュータ上の物理的なイーサネットポート経由で通信する実環境、またはソフトウェアプログラムがTCP接続をエミュレートする仮想環境で行うことができます。

  • 名前 - 接続の名前。FlexSimでの接続を識別するために使用します。
  • アクティブ - このチェックボックスをオンにすると、FlexSimをイーサネットポート経由でModbusクライアントまたはサーバーに接続するための接続が作成されます。これは、サーバー接続でのモデルのリセット時と、クライアント接続でのモデルの起動時に発生します。
  • アドレス - 接続のIPアドレス。localhostを使用して、仮想クライアントまたはサーバーとの接続を作成するか、IPアドレスを190.123.10.1の形式で指定します。
  • クライアント/サーバー - 接続がクライアントかサーバーかを指定します。サーバー接続の場合は、他のModbusデバイス/アプリケーションをFlexSimに接続できます。
  • 間隔を変更 - FlexSimがサーバーに変更をポーリングする時間間隔(モデル時間単位)。これはサーバー接続には使用されません。
  • マルチレジスター - 接続のエンディアンまたはバイト伝送の順序を指定します。
  • ポート - 接続のポート。

Modbus RTU

Modbus RTU接続は、FlexSimがコンピュータ上の物理的なシリアルポート経由で通信する実環境、またはソフトウェアプログラムがシリアルポートをエミュレートする仮想環境で行うことができます。

  • 名前 - 接続の名前。FlexSimでの接続を識別するために使用します。
  • アクティブ - このチェックボックスをオンにすると、FlexSimをシリアルポート(仮想または実環境)経由でModbusスレーブまたはマスターに接続するための接続が作成されます。これは、スレーブ接続でのモデルのリセット時と、マスター接続でのモデルの起動時に発生します。
  • シリアルポート - 接続を作成するシリアルポート。
  • スレーブ/マスター - 接続がスレーブかマスターかを指定します。スレーブ接続の場合は、他のModbusデバイス/アプリケーションをFlexSimに接続できます。
  • ボーレート - 接続のボーレート。ボーレートは、時間あたりの伝送に対する信号イベントの数を定義します。
  • パリティ - 接続にパリティを含めるかどうかを指定します。これは、伝送におけるエラー検出方法です。
  • スレーブID - 接続のスレーブIDを定義します。
  • マルチレジスター - 接続のエンディアンまたはバイト伝送の順序を指定します。
  • ストップビット - 伝送中の各文字の最後にストップビット数またはビット数を指定します。
  • データビット - 伝送中の各文字に可能なデータビット数を指定します。
  • 間隔を変更 - FlexSimがスレーブに変更をポーリングする時間間隔(モデル時間単位)。これはマスター接続でのみ使用できます。

OPC UA

OPC UA接続は、FlexSimがコンピュータ上の物理的なイーサネットポート経由で通信する実環境、またはソフトウェアプログラムがTCP接続をエミュレートする仮想環境で行うことができます。

  • 名前 - 接続の名前。FlexSimでの接続を識別するために使用します。
  • アクティブ - このチェックボックスをオンにすると、FlexSimをOPCサーバーに接続するための接続が作成されます。これは、モデルの起動時に発生します。
  • 検出サーバー - 検出サーバーのIPアドレス。localhostを使用してこのコンピュータ上でサーバーを検出するか、IPアドレスを190.123.10.1の形式で指定します。:51510などの接尾辞を使用して、通信する非デフォルトTCPポート番号を定義します。基本値を入力した場合は、[参照]ボタンを押して、接続する特定のエンドポイントURLを参照できます。
  • エンドポイントURL - 接続するサーバーとプロトコルを定義する特定のURL。[参照]ボタンを使用してこのフィールドを自動入力できます。
  • セキュリティポリシー - サーバーと通信するときに使用するセキュリティアルゴリズムとキー長のセットを定義します。
    • なし - セキュリティが適用されません。
    • Basic128Rsa15 - Aes 128 対称暗号化アルゴリズム、SHA1キーハッシュ、およびRSA-PKCS15非対称署名アルゴリズムを使用します。2017年にSHA-1が破られたため、このポリシーは安全と見なされなくなったことに注意してください。
    • Basic256 - Aes 256 対称暗号アルゴリズム、SHA1キーハッシュ、およびRSA-PKCS15非対称署名アルゴリズムを使用します。2017年にSHA-1が破られたため、このポリシーは安全と見なされなくなったことに注意してください。
    • Basic256Sha256 - Aes 256 対称暗号アルゴリズム、SHA2-256キーハッシュ、およびRSA-PKCS15非対称署名アルゴリズムを使用します。
  • メッセージセキュリティモード - メッセージセキュリティモードを定義します。
    • なし - セキュリティが適用されません。
    • 署名 - メッセージは署名されますが、暗号化されません。
    • 署名と暗号化 - メッセージは署名され、暗号化されます。
  • ユーザー識別 - クライアントユーザーを識別する方法または識別するかどうかを定義します。接続を匿名として定義することも、[ユーザー名]と[パスワード]を入力することもできます。
  • 構成をチェック - このボタンは、入力された設定でターゲットUAサーバーに正しく接続できるかどうかをチェックする場合に押します。

[変数]タブ

[変数]タブには次のプロパティがあります。

アイコン 説明
変数を追加します。
選択した変数を複製します。
選択した変数を削除します。
選択した変数をリストの上に移動します。
選択した変数をリストの下に移動します。

変数リスト

変数のリストを表示します。このリストは、リストの上にあるドロップダウンボタンを使用して接続でフィルタリングされます。

センサー(PLC入力)とコントロール(PLC出力)の2種類の変数を追加できます。

センサー(PLC入力)

センサーを使用して、PLCまたはサーバーにデータを書き込みます。センサーから読み取る場合、返される値はFlexSimに格納されるローカル値になります。センサーの接続がアクティブな場合は、値を変更すると、その値がPLCまたはサーバーに書き込まれます。接続が非アクティブな場合、その値はローカルでのみ変更されます。

コントロール(PLC出力)

コントロールを使用して、PLCまたはサーバーからデータを読み取ります。コントロールは、コントロールの接続が非アクティブな場合のみ変更できます。これにより、内部ラダーロジックがPLCとして動作し、モーターの開始/停止などのコントロールを変更できます。接続がアクティブな場合にコントロールの値を変更しようとすると、例外がスローされます。

コントロールから読み取る場合、戻り値はコントロールの設定方法によって異なります。コントロールが[変更をサブスクライブ]または[外部変更をポーリング](接続タイプによって異なる)に設定されている場合は、サーバーがFlexSimに変更された値を通知するか(サブスクライブ)、FlexSimがイベントを使用して変更を要求します(ポーリング)。後でコントロールから値を読み取ろうとすると、戻り値はFlexSimが最後に値を読み取ったときのキャッシュされた値になります。[変更をサブスクライブ]または[外部変更をポーリング]チェックボックスがオフの場合は、コントロールの値を読み取ると、PLCまたはサーバーにアクセスし、値を同期して読み込みます(FlexSimは値を受け取るまで待機してからシミュレーションを続行します)。

コントロールとセンサーのプロパティについては、以下で説明します。

OPC DAタグ

OPCタグ変数のプロパティは、センサーとコントロールの間で非常に似ています。これらのプロパティの説明は以下のようになります。

  • 名前 - 変数の名前。FlexSimで変数を識別するために使用されます。
  • 接続 - この変数が関連付けられている接続。
  • タグID - サーバー上のタグのパス。[参照]ボタンをクリックすると、サーバーの使用可能なタグのリストが表示されます。
  • 関連付けられたオブジェクト - この変数とモデル内のオブジェクトを関連付けます。関連付けられたオブジェクトによって、センサーに利用できるイベントを書き込むが定義されます。[イベントを書き込む]と[アクション]の選択オプションでは、currentが関連付けられたオブジェクトです。
  • イベントを書き込む - センサーにオブジェクトが関連付けられている場合、そのオブジェクトのイベントをリッスンできます。 をクリックすると、新しいイベントが追加されます。
    • イベント - リッスン対象のイベント。
    • 書き込み値 - センサー(および接続が有効な場合はサーバー)に書き込む値。
  • 変更をサブスクライブ - サーバーの変更をサブスクライブします。値が変更されるとFlexSimに通知されます。
    • デッドバンド(%) - アナログの変更をサブスクライブする場合、デッドバンド(%)でコントロールの値に対する小さい変更(ノイズ)を除外できます。
    • アクション - 変更をサブスクライブする場合、コントロールの値が変更されると、変更通知がFlexSimに送信されます。アクションを使用すると、新しい値に基づいてその通知で何を行うかを定義できます。各アクションは、新しい値がフィールドと一致するか、デフォルトに達するまで、トップダウンで評価されます。アクションが起動し、それ以上のアクションはテストされません。 をクリックすると、新しいアクションが追加されます。
    • - 照合する値。
    • アクション - 新しい値がと一致したときに実行するアクション。

Modbusレジスター

Modbusレジスター変数のプロパティは、センサーとコントロールの間で非常に似ています。これらのプロパティの説明は以下のようになります。

  • 名前 - 変数の名前。FlexSimで変数を識別するために使用されます。
  • 接続 - この変数が関連付けられている接続。
  • レジスタータイプ - レジスターのタイプ。コイル、離散入力、保持レジスター、入力レジスターを設定できます。保持レジスターと入力レジスターの場合は、データタイプドロップダウンボタンでレジスターのデータタイプを定義します。
  • レジスター# - レジスターのアドレスを定義します(0~9999)。
  • 初期値 - レジスターの初期値。これは、独自のデータを格納するサーバーまたはスレーブタイプの接続でのみ使用できます。
  • 関連付けられたオブジェクト - この変数とモデル内のオブジェクトを関連付けます。関連付けられたオブジェクトによって、センサーに利用できるイベントを書き込むが定義されます。[イベントを書き込む]と[アクション]の選択オプションでは、currentが関連付けられたオブジェクトです。
  • イベントを書き込む - センサーにオブジェクトが関連付けられている場合、そのオブジェクトのイベントをリッスンできます。 をクリックすると、新しいイベントが追加されます。
    • イベント - リッスン対象のイベント。
    • 書き込み値 - センサー(および接続が有効な場合はサーバー)に書き込む値。
  • 外部変更をポーリング - コントロールの値の変更についてスレーブまたはサーバーをポーリングします。これは、マスターまたはクライアントタイプの接続でのみ使用できます。
    • アクション - 変更をポーリングすると、接続の間隔を変更に基づいてFlexSimイベントが作成されます。このイベントが起動すると、サーバーから値が読み込まれます。コントロールの値が変更された場合は、コントロールのアクションが評価されます。各アクションは、新しい値がフィールドと一致するか、デフォルトに達するまで、トップダウンで評価されます。アクションが起動し、それ以上のアクションはテストされません。 をクリックすると、新しいアクションが追加されます。
    • - 照合する値。
    • アクション - 新しい値がと一致したときに実行するアクション。

OPC UA 変数

OPC UA変数のプロパティは、センサーとコントロールの間で非常に似ています。これらのプロパティの説明は以下のようになります。

  • 名前 - 変数の名前。FlexSimで変数を識別するために使用されます。
  • 接続 - この変数が関連付けられている接続。
  • 表示名 - サーバー上の変数のパス。[参照]ボタンをクリックしてサーバーの使用可能なタグのリスト表示し、そこからタグを選択します。
  • ノードID - 変数のUA ID文字列を表示します。
  • 説明 - 変数のUA説明を表示します。
  • 関連付けられたオブジェクト - この変数とモデル内のオブジェクトを関連付けます。関連付けられたオブジェクトによって、センサーに利用できるイベントを書き込むが定義されます。[イベントを書き込む]と[アクション]の選択オプションでは、currentが関連付けられたオブジェクトです。
  • イベントを書き込む - センサーにオブジェクトが関連付けられている場合、そのオブジェクトのイベントをリッスンできます。 をクリックすると、新しいイベントが追加されます。
    • イベント - リッスン対象のイベント。
    • 書き込み値 - センサー(および接続が有効な場合はサーバー)に書き込む値。
  • 変更をサブスクライブ - サーバーの変更をサブスクライブします。値が変更されるとFlexSimに通知されます。
    • サンプリング間隔[ms] - 変数に対する変更を検出するために変数をサーバーからサンプリングする頻度を定義します。
    • アクション - 変更をサブスクライブする場合、コントロールの値が変更されると、変更通知がFlexSimに送信されます。アクションを使用すると、新しい値に基づいてその通知で何を行うかを定義できます。各アクションは、新しい値がフィールドと一致するか、デフォルトに達するまで、トップダウンで評価されます。アクションが起動し、それ以上のアクションはテストされません。 をクリックすると、新しいアクションが追加されます。
    • - 照合する値。
    • アクション - 新しい値がと一致したときに実行するアクション。