エミュレーション

概要と主要な概念

エミュレーションツールは、FlexSimと外部PLCまたはPLCと通信するクライアント/サーバー間のリンクを作成します。このツールは、複数の接続を作成し、各接続に変数を定義できます。
このツールは、Modbus、OPC DA、OPC UA、MQTTなどのプロトコルや、Allen-Bradley、Siemens、Beckhoff、Mitsubishiなどのメーカー固有のプロトコルなど、複数のプロトコルをサポートします。

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

ライセンス

FlexSimユーザーは、エミュレーションライセンスによって、すべてのエミュレーション接続にアクセスできます。Modbus RTU/TCP接続とOPC DA接続は、すべてのFlexSimユーザーが無償で使用できます。

ユーザーは、さまざまなプロトコルを使用して、同一のFlexSimモデル内に接続をいくつでも作成できます。接続数の上限は、モデルの複雑さと、コンピュータおよび通信ネットワークのパフォーマンスにのみ左右されます。

[接続]タブ

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

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

- 接続を削除します。

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

接続 説明
Modbus RTU シリアル(RS-232またはRS-485)ポートを使用したModbusスレーブまたはマスターへの接続。
Modbus TCP/IPv4 TCP/IPv4を使用したイーサネット経由のModbusクライアントまたはサーバーへの接続。
Modbus TCP/IPv6 TCP/IPv6を使用したイーサネット経由のModbusクライアントまたはサーバーへの接続。
OPC DA データアクセス(DA)プロトコルを使用したローカルまたはリモートのOPCサーバーへの接続。
OPC UA UA(統一アーキテクチャ)プロトコルを使用したローカルまたはリモートのOPCサーバーへの接続。
Allen-Bradley CIP/EIPプロトコルをサポートするAllen-Bradley PLCへの接続。
Siemens S7 Snap7ライブラリを使用した、Siemens SIMATIC S7 PLCへの接続。
Siemens PLCSIM Advanced ローカルまたはリモートのSiemens SIMATIC S7-PLCSIM Advanced V3.0インスタンスへの接続。
Beckhoff BeckhoffファミリーのPLCまたはPLCシミュレーターへの接続。
Mitsubishi MC(MELSEC Communication)プロトコルを使用した、Mitsubishi MELSEC iQ-RまたはQ/LシリーズPLCへの接続。
MQTT MQTTブローカーへの接続。MQTT接続は、トピックのパブリッシュとサブスクライブができます。
各接続のプロパティについては、以下で説明します。

Modbus RTU

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

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

Modbus TCP/IPv4とIPv6

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

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

OPC DA

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

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

OPC UA

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

  • 名前 - 接続の名前。FlexSimでの接続を識別するために使用します。
  • アクティブ - このチェックボックスをオンにすると、FlexSimをOPCサーバーに接続するための接続が作成されます。これは、モデルの起動時に発生します。
  • 検出サーバー - 検出サーバーのIPアドレス。
    localhostを使用してこのコンピュータ上でサーバーを検出するか、IPアドレスを指定します。
    検出サーバーは、デフォルトでTCPポート4840を使用します。
    別のポートを使用するには、IPアドレスの後に「:」を付加し、その後にポート番号を指定します。
    参照]ボタンを押して、接続する特定のエンドポイントURLを参照できます。
  • デバッグ出力を有効 - このチェックボックスをオンにすると、FlexSimは、サーバーとの通信中に情報をシステムコンソールに出力します。
  • エンドポイント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非対称署名アルゴリズムを使用します。
  • メッセージセキュリティモード - メッセージセキュリティモードを定義します。
    • なし - セキュリティが適用されません。
    • 署名 - メッセージは署名されますが、暗号化されません。
    • 署名と暗号化 - メッセージは署名され、暗号化されます。
  • ユーザー識別 - クライアントユーザーを識別する方法または識別するかどうかを定義します。次のオプションを使用できます。
    • 匿名 - 認証が使用されません。
    • ユーザー名 - サーバーを使用して認証するユーザー名とパスワードを指定します。
    • 証明書 - このオプションは、サーバーで生成された証明書がFlexSimを実行中のコンピュータにダウンロードされている場合に使用します。
  • 構成をチェック - このボタンは、入力された設定でターゲットUAサーバーに正しく接続できるかどうかをチェックする場合に押します。
  • 認証パス - 証明書へのファイルパス。
  • プライベートキー - 指定された証明書に関連付けられたプライベートキー。
  • ユーザー名 - サーバーを使用して認証するユーザー名。
  • パスワード - 証明書またはユーザーのパスワード。
  • 変更をポーリング - オンの場合、接続のすべてのコントロール変数の値が、指定の間隔でまとめてサンプリングされます。このオプションは、データ値を読み取るためのOPC UAの標準のサブスクリプションメカニズムを無効化します。
  • 変更の間隔 - [変更をポーリング]オプションを使用する場合のサンプリング間隔を定義します。
  • グループ書き込み - オンの場合、接続のすべてのセンサー変数の値が、指定の間隔でまとめて書き込まれます。このオプションを使用すると、センサー変数をFlexSimで変更した場合、センサー変数はOPC UAセンサーにすぐには送信されず、次の書き込み間隔でまとめて送信されます。
  • 書き込み間隔 - [グループ書き込み]オプションを使用する場合の書き込み間隔を定義します。
  • 読込/書込テスト - パフォーマンスを推定するために読み込み/書き込みテストを実行できます。
    [変更をポーリング]または[グループ書き込み]がオンの場合にのみ使用できます。
    [変更をポーリング]がオンの場合、このボタンを押すと読み込みテストが行われます。
    結果は、最小/平均/最大の3つの値がGUIに表示されます。


    [グループ書き込み]がオンの場合、このボタンを押すと書き込みテストが実行されます。
    結果は、最小/平均/最大の3つの値がGUIに表示されます。

  • データの問題をトレース - オンの場合、OPC UAサーバーと通信するときのさらに詳しい情報が出力/システムコンソールに表示されます。


Allen-Bradley

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

  • 名前 - 接続の名前。FlexSimでの接続を識別するために使用します。
  • アクティブ - このチェックボックスをオンにすると、FlexSimをAllen-Bradley PLCに接続するための接続が作成されます。これは、モデルの起動時に発生します。
  • アドレス - 接続のIPアドレス。localhostを使用して、このコンピュータ上でエミュレートするPLCとの接続を作成するか、IPアドレスを190.123.10.1の形式で指定します。
  • 間隔を変更 - FlexSimがPLCで変更をポーリングする時間間隔(モデル時間単位)。
  • PLCタイプ - 接続先のPLCのタイプまたはファミリー。接続が正しく機能するためには、正しいPLCタイプを指定する必要があります。
  • メッセージング - このオプションは、特定のPLCタイプにしか使用できません。使用可能な場合は、[接続済み]と[未接続]という2つのオプションが表示されます。接続済みメッセージングでは、FlexSimとPLCが一定期間複数のメッセージをやり取りできる明示的な接続が作成されます。未接続メッセージは、FlexSimからPLCに単一のリクエストとして送信されます。
  • タイムアウト - FlexSimがPLCとの間で値を読み書きするときに使用するミリ秒単位の時間間隔。タイムアウトエラーは、
  • 非同期書き込み - このチェックボックスがオンの場合は、PLCにデータを書き込むと、FlexSimは書き込みオペレーションが完了するまで待機してから続行します。
  • デバッグ出力を有効 - このチェックボックスをオンにすると、FlexSimは、PLCとの通信中に情報をシステムコンソールに出力します。

Siemens S7

S7接続は、FlexSimとSiemens SIMATIC-S7 PLCとの通信を設定します。一般的なSnap7ライブラリに基づいており、CPUファミリー300、400、WinAC、1200、1500、CP343、CP443と互換性があります。

  • 名前 - 接続の名前。FlexSimでの接続を識別するために使用します。
  • アクティブ - このチェックボックスをオンにすると、FlexSimをS7 PLCに接続するための接続が作成されます。これは、モデルの起動時に発生します。
  • アドレス - 接続先PLCのIPアドレス。
  • ランク/スロット - PLCのランクとスロット。これらのフィールドは必要なPLCに基づいて指定する必要があります。
    PLCファミリー ランク スロット 注意
    S7 300 CPU 0 2 常に
    S7 400 CPU 固定の値なし ハードウェア構成に従う
    WinAC CPU 固定の値なし ハードウェア構成に従う
    S7 1200 CPU 0 0 スロットは0または1
    S7 1500 CPU 0 0 スロットは0または1
    CP 343 0 0 またはハードウェア構成に従う
    CP 443 固定の値なし ハードウェア構成に従う
    WinAC IE 0 0 またはハードウェア構成に従う
  • 接続テスト - ボタンを押すと、指定したアドレス、スロット、ランクを使用して、要求したPLCへの接続がチェックされます。
  • サンプリング間隔 - PLCからデータを読み取るために使用するサンプリング間隔(ms単位)。
  • グローバル書き込みスレッドを使用 - 接続時間を最適化するために、書き込み要求をキャッシュしてすべてを一度に送信する単一スレッドでPLCに値を書き込みます。
  • 書き込み間隔 - [グローバル書き込みスレッドを使用]がオンの場合の書き込みスレッドの間隔(ms単位)。
  • PLCタグをインポート - ボタンを押すと、TIA Portal Excel出力のPCLタグが接続テーブルにインポートされます。
  • タグテーブルを開く - ボタンを押すと、TIA PortalからインポートされたPCLタグのテーブルが開きます。
  • 変数を同期 - ボタンを押すと、インポートテーブルに基づいてコントロールとセンサーが作成/更新されます。
  • テーブルを同期 - ボタンを押すと、接続のコントロールとセンサーに基づいて、インポートテーブルが更新されます。

Siemens PLCSIM Advanced

PLCSIM Advanced接続は、Siemens SIMATIC S7-PLCSIM Advanced v3.0のローカルまたはリモートセッションに関連付けることができます。接続は、ベースとなるシミュレーション対象のPLCには依存しません。

  • 名前 - 接続の名前。FlexSimでの接続を識別するために使用します。
  • アクティブ - このチェックボックスをオンにすると、FlexSimをBeckhoffインスタンスに接続するための接続が作成されます。これは、モデルの起動時に発生します。
  • 仮想イーサネットアダプターを使用 - オンにすると、FlexSimはPLCSIM AdvancedにTCP/IPで接続します。この方法はローカル接続とリモート接続のどちらにも適しています。
    オフの場合、FlexSimはSoftbusで通信しますが、これはローカル接続にしか適していません。
  • IP アドレス/ポート - TCP/IP接続の接続パラメータ。
  • 接続 - この接続コンボには、PLCSIM Advancedで検出されたインスタンスのリストが表示されます。シミュレーション中は、実行中のインスタンスのみが使用可能です。このコントロールの横にあるボタンを押すと、接続がテストされ、インスタンスリストが更新されます。
  • サンプリング間隔 - PLCからデータを読み取るために使用するサンプリング間隔(ms単位)。
  • グローバル書き込みスレッドを使用 - 接続時間を最適化するために、書き込み要求をキャッシュしてすべてを一度に送信する単一スレッドでPLCに値を書き込みます。
  • 書き込み間隔 - [グローバル書き込みスレッドを使用]がオンの場合の書き込みスレッドの間隔(ms単位)。
  • PLCタグをインポート - ボタンを押すと、選択したインスタンスからPCLタグがインポートされます。
  • タグテーブルを開く - ボタンを押すと、TIA PortalからインポートされたPCLタグのテーブルが開きます。
  • 変数を同期 - ボタンを押すと、インポートテーブルに基づいてコントロールとセンサーが作成/更新されます。
  • テーブルを同期 - ボタンを押すと、接続のコントロールとセンサーに基づいて、インポートテーブルが更新されます。

Beckhoff

Beckhoff接続は、ベースとなるシミュレーション対象のPLCには依存しません。

  • 名前 - 接続の名前。FlexSimでの接続を識別するために使用します。
  • アクティブ - このチェックボックスをオンにすると、FlexSimをBeckhoffインスタンスに接続するための接続が作成されます。これは、モデルの起動時に発生します。
  • アドレス - 接続先システムのAMS NetID。
  • ポート番号 - TCP/IP接続の接続パラメータ。
  • 接続テスト - ボタンを押すと、指定したアドレスとポート番号を使用して、要求したシステムへの接続がチェックされます。
  • サンプリング間隔 - PLCからデータを読み取るために使用するサンプリング間隔(ms単位)。
  • グローバル書き込みスレッドを使用 - 接続時間を最適化するために、書き込み要求をキャッシュしてすべてを一度に送信する単一スレッドでPLCに値を書き込みます。
  • 書き込み間隔 - [グローバル書き込みスレッドを使用]がオンの場合の書き込みスレッドの間隔(ms単位)。
  • PLCタグをインポート - ボタンを押すと、選択したインスタンスからPCLタグがインポートされます。
  • タグテーブルを開く - ボタンを押すと、TIA PortalからインポートされたPCLタグのテーブルが開きます。
  • 変数を同期 - ボタンを押すと、インポートテーブルに基づいてコントロールとセンサーが作成/更新されます。
  • テーブルを同期 - ボタンを押すと、接続のコントロールとセンサーに基づいて、インポートテーブルが更新されます。

Mitsubishi

Mitsubishi接続では、FlexSimがMELSEC iQ-RまたはQ/Lシリーズの物理的なPLCと通信できます。

  • 名前 - 接続の名前。FlexSimでの接続を識別するために使用します。
  • アクティブ - このチェックボックスをオンにすると、FlexSimをBeckhoffインスタンスに接続するための接続が作成されます。これは、モデルの起動時に発生します。
  • アドレス - PLCのIPアドレス。
  • ポート番号 - TCPポート。通常は4095です。
  • 接続テスト - ボタンを押すと、指定したアドレスとポート番号を使用して、要求したシステムへの接続がチェックされます。
  • グローバル書き込みスレッドを使用 - 接続時間を最適化するために、書き込み要求をキャッシュしてすべてを一度に送信する単一スレッドでPLCに値を書き込みます。
  • 書き込み間隔 - [グローバル書き込みスレッドを使用]がオンの場合の書き込みスレッドの間隔(ms単位)。
  • PLCタグをインポート - ボタンを押すと、選択したインスタンスからPCLタグがインポートされます。
  • タグテーブルを開く - ボタンを押すと、TIA PortalからインポートされたPCLタグのテーブルが開きます。
  • 変数を同期 - ボタンを押すと、インポートテーブルに基づいてコントロールとセンサーが作成/更新されます。
  • テーブルを同期 - ボタンを押すと、接続のコントロールとセンサーに基づいて、インポートテーブルが更新されます。

MQTT

MQTT接続では、FlexSimがパブリッシャー/サブスクライバーとしてMQTTブローカーと通信できます。

  • 名前 - 接続の名前。FlexSimでの接続を識別するために使用します。
  • アクティブ - このチェックボックスをオンにすると、FlexSimをBeckhoffインスタンスに接続するための接続が作成されます。これは、モデルの起動時に発生します。
  • アドレス - MQTTブローカーのIPアドレス。
  • ポート番号 - TCPポート。デフォルトの非暗号化MQTTポートは1883です。暗号化ポートは8883です。
  • 接続テスト - ボタンを押すと、指定したアドレスとポート番号を使用して、要求したシステムへの接続がチェックされます。
  • ID - クライアントのID。空白のままにすると、ランダムIDが使用されます。
  • QoS - サービス品質。利用可能な値は0、1、2です。
    QoS パブリッシャー サブスクライバー
    0:1回以下 メッセージを1回だけ送信します。 メッセージを受信する場合と受信しない場合があります。
    1:1回以上 確認応答を受信する限り、あるいは送信終了コマンドを受信する限り、メッセージを少なくとも1回送信します。 メッセージを少なくとも1回受信する可能性があります(メッセージを複数回受信することもありえます)。
    2:厳密に1回 メッセージを1回だけ送信します。 メッセージを1回だけ受信します。
  • ユーザー名 - この接続のユーザー名。ブローカーにユーザー名とパスワードが必要な場合にのみ必要です。
  • パスワード - この接続のパスワード。ブローカーにユーザー名とパスワードが必要な場合にのみ必要です。
  • SSL - この接続のSSLオプションを指定します。
    方法 説明
    なし この接続はSSLを使用しません。
    PSK 認証方法として、事前共有キー(PSK)を使用します。
    この方法では、PSKキーと識別文字列を指定する必要があります。
    詳細については、後述を参照してください。
    CA/Cert Transport Layer Security(TLS)とSecure Sockets Layer(SSL)を使用して、セキュアな通信チャネルを提供します。
    この方法では、次の項目を指定する必要があります。
    • PEMエンコーディングされた信頼できるCA証明書ファイル
    • このクライアントのPEMエンコーディングされた証明書ファイル
    • このクライアントのPEMエンコーディングされたプライベートキー
    • キーファイルが暗号化されている場合、キーのパスフレーズ
    詳細については、後述を参照してください。
  • PSK識別 - このクライアントの識別。サーバーの設定によっては、ユーザー名として使用されることがあります。
  • PSK - 16進形式の事前共有キー文字列(先頭の「0x」を除く)。
  • CAファイル - PEMエンコーディングされた信頼できるCA証明書ファイルのパス。
  • 証明書 - このクライアントのPEMエンコーディングされた証明書ファイルのパス。空のままにすることもできます。その場合、クライアント証明書は使用されません。
  • プライベートキー - このクライアントのPEMエンコーディングされたプライベートキーのファイルのパス。[証明書]フィールドが空の場合、このパラメータは不要です。
  • パスキー - プライベートキーの復号キー。プライベートキーが暗号化されている場合にのみ必要です。

[変数]タブ

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

フィルタ

変数リストを絞り込む方法は3つあります。

  • 接続 - このタイプの接続だけを表示します。
  • 変数 - エミュレーションツールウィンドウを使用して作成される変数であるローカル変数にすることも、動的に作成される処理フロー変数にすることもできます。
  • 変数タイプ - このタイプの変数だけを表示します。
アイコン 説明
変数を追加します。
選択した変数を複製します。
選択した変数を削除します。
選択した変数をリストの上に移動します。
選択した変数をリストの下に移動します。

変数リスト

変数のリストを表示します。

センサー(PLC入力)、コントロール(PLC出力)、およびデータの3種類の変数を追加できます。

センサー(PLC入力)

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

コントロール(PLC出力)

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

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

データ

Allen-Bradley接続などの一部の接続タイプには、データをサーバー/PLCからプルしてから、センサーやコントロールタイプの変数にリンクする追加のデータ変数タイプがあります。これらの変数は、モデル内のオブジェクトに関連付けられていません。

これらの変数のプロパティを以下で説明します。

Modbusレジスター

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

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

OPC DAタグ

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

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

OPC UA 変数

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

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

Allen-Bradleyタグ

Allen-Bradleyタグは、PLCと直接通信してデータの読み書きを行います。その後で、Allen-Bradleyのコントロールとセンサーがタグにリンクされ、そのタグの値を取得または設定できるようになります。これにより、変数ごとに1つずつのリクエストではなく、単一のネットワークリクエストで大量のデータをPLCからプルすることができます。タグは、単一の要素または複数の要素を指すことができます。複数の要素にリンクされた場合は、FlexSimがタグデータを配列として扱います。

  • エイリアス - 変数の名前。FlexSimで変数を識別するために使用されます。
  • 接続 - この変数が関連付けられている接続。
  • CPUパス - 追加のルーティングが必要なPLCの場合は、タグを介して通信するCPUへのパスになります。たとえば、1, 0です。
  • タグ名 - PLC上のタグの名前。タグのフルネームにする必要があります。配列から単一の要素にアクセスする場合は、TestBigTag[10,42]を使用して要素を指定します。[参照]ボタンをクリックすると、PLCの使用可能なタグのリストが表示されます。
  • 要素タイプ - タグ内の各要素のデータタイプを定義します。
  • 要素サイズ - 各要素のデータサイズ(バイト単位)。
  • 要素カウント - タグの要素の数。

Allen-Bradley変数

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

  • エイリアス - 変数の名前。FlexSimで変数を識別するために使用されます。
  • Allen-Bradleyタグ - この変数が関連付けられたAllen-Bradleyタグ。
  • オフセット - 読み取りを開始するAllen-Bradleyタグ内の最初の要素(0ベース)。たとえば、タグの値が[3, 5, 6, 9]でオフセットが2に設定されている場合は、コントロール値が6から始まります。
  • 要素カウント - コントロール専用。Allen-Bradleyタグの[オフセット]から読み取る要素の数。要素カウントが1より大きい場合は、値が配列になります。
  • 関連オブジェクト - この変数とモデル内のオブジェクトを関連付けます。関連付けられたオブジェクトによって、センサーに利用できるイベントを書き込むが定義されます。[イベントを書き込む]と[アクション]の選択オプションでは、currentが関連付けられたオブジェクトです。
  • 非同期書き込み - センサー専用。このオプションは、接続が[非同期書き込み]を使用するように設定されていない場合にのみ使用できます。オフになっている場合は、FlexSimが、書き込みオペレーションが完了するのを待ってから実行を続行します。そうでない場合は、FlexSimが、書き込みオペレーションが完了するのを待たずに実行を続行します。
  • イベントを書き込む - センサーにオブジェクトが関連付けられている場合、そのオブジェクトのイベントをリッスンできます。 をクリックすると、新しいイベントが追加されます。
    • イベント - リッスン対象のイベント。
    • 書き込み値 - センサー(および接続がアクティブな場合のPLC)に書き込む値。
  • 変更を確認 - オンになっている場合は、リンク先のAllen-Bradleyタグが、PLCでタグに対する変更をポーリングするように設定されます。コントロール変数のデータが変更されると、タグによってその変数の値が更新されます。
    • アクション - 変更を確認する場合は、接続の[間隔を変更]に基づいてFlexSimイベントが作成されます。イベントが発生すると、PLCから値が読み取られます。コントロールの値が変更された場合は、コントロールのアクションが評価されます。各アクションは、新しい値がフィールドと一致するか、デフォルトに達するまで、トップダウンで評価されます。アクションが起動し、それ以上のアクションはテストされません。 をクリックすると、新しいアクションが追加されます。
    • - 照合する値。
    • アクション - 新しい値がと一致したときに実行するアクション。

Siemens S7とSiemens PLCSIM Advancedのコントロール

S7とPLCSIM Advancedのコントロールのプロパティについて説明します。

  • エイリアス - 変数の名前。FlexSimで変数を識別するために使用されます。
  • 接続 - この変数が関連付けられている接続。
  • データタイプ - このコントロールが関連付けられているSiemensのデータタイプ。なお、すべてのデータタイプがFlexSimで管理されるわけではないため、すべてのデータタイプが表示されるわけではありません。
  • ビット# - ビット番号。コントロールのデータタイプがブール型の場合のバイト内のビット番号です。TIA Portalから報告されます。
  • アドレス - タグのアドレス。TIA Portalから報告されます。
  • カスタムサンプリング間隔を使用 - オンの場合、このコントロールにはカスタムのサンプリングスレッドが使用されます。オフの場合、接続のサンプリングスレッドが使用されます。
  • サンプリング間隔 - カスタムのサンプリングスレッドを使用する場合のサンプリング間隔(ms単位)。
  • 関連オブジェクト - この変数とモデル内のオブジェクトを関連付けます。関連オブジェクトによって、呼び出されたトリガーとサンプリングされた値の変更でのcurrentオブジェクトが定義されます。
  • アクション - ボタンを押すと、サンプリングされた値の変更時に実行するアクションを選択できます。

Siemens S7とSiemens PLCSIM Advancedのセンサー

S7とPLCSIM Advancedのセンサーのプロパティについて説明します。

  • エイリアス - 変数の名前。FlexSimで変数を識別するために使用されます。
  • 接続 - この変数が関連付けられている接続。
  • データタイプ - このコントロールが関連付けられているSiemensのデータタイプ。なお、すべてのデータタイプがFlexSimで管理されるわけではないため、すべてのデータタイプが表示されるわけではありません。
  • ビット# - ビット番号。コントロールのデータタイプがブール型の場合のバイト内のビット番号です。TIA Portalから報告されます。
  • アドレス - タグのアドレス。TIA Portalから報告されます。
  • 初期値 - リセット時にPLCで設定する初期値。
  • 関連オブジェクト - この変数とモデル内のオブジェクトを関連付けます。関連付けられたオブジェクトによって、センサーに利用できるイベントを書き込むが定義されます。[イベントを書き込む]と[アクション]の選択オプションでは、currentが関連付けられたオブジェクトです。
  • イベントを書き込む - センサーにオブジェクトが関連付けられている場合、そのオブジェクトのイベントをリッスンできます。 をクリックすると、新しいイベントが追加されます。
    • イベント - リッスン対象のイベント。
    • 値を書き込む - センサー(および接続が有効な場合はサーバー)に書き込む値

Beckhoff コントロール

Beckhoffのコントロールのプロパティについて説明します。

  • エイリアス - 変数の名前。FlexSimで変数を識別するために使用されます。
  • 接続 - この変数が関連付けられている接続。
  • データタイプ - このコントロールが関連付けられているBeckhoffのデータタイプ。なお、すべてのデータタイプがFlexSimで管理されるわけではないため、すべてのデータタイプが表示されるわけではありません。
  • インデックスグループ - このコントロールに関連付ける変数のインデックスグループ。
  • アドレス - このコントロールに関連付ける変数のアドレス。
  • カスタムサンプリング間隔を使用 - オンの場合、このコントロールにはカスタムのサンプリングスレッドが使用されます。オフの場合、接続のサンプリングスレッドが使用されます。
  • サンプリング間隔 - カスタムのサンプリングスレッドを使用する場合のサンプリング間隔(ms単位)。
  • 関連オブジェクト - この変数とモデル内のオブジェクトを関連付けます。関連オブジェクトによって、呼び出されたトリガーとサンプリングされた値の変更でのcurrentオブジェクトが定義されます。
  • アクション - ボタンを押すと、サンプリングされた値の変更時に実行するアクションを選択できます。

Beckhoff センサー

Beckhoffのセンサーのプロパティについて説明します。

  • エイリアス - 変数の名前。FlexSimで変数を識別するために使用されます。
  • 接続 - この変数が関連付けられている接続。
  • データタイプ - このコントロールが関連付けられているBeckhoffのデータタイプ。なお、すべてのデータタイプがFlexSimで管理されるわけではないため、すべてのデータタイプが表示されるわけではありません。
  • インデックスグループ - このコントロールに関連付ける変数のインデックスグループ。
  • アドレス - このコントロールに関連付ける変数のアドレス。
  • 初期値 - リセット時にPLCで設定する初期値。
  • 関連オブジェクト - この変数とモデル内のオブジェクトを関連付けます。関連付けられたオブジェクトによって、センサーに利用できるイベントを書き込むが定義されます。[イベントを書き込む]と[アクション]の選択オプションでは、currentが関連付けられたオブジェクトです。
  • イベントを書き込む - センサーにオブジェクトが関連付けられている場合、そのオブジェクトのイベントをリッスンできます。 をクリックすると、新しいイベントが追加されます。
    • イベント - リッスン対象のイベント。
    • 書き込み値 - センサー(および接続が有効な場合はサーバー)に書き込む値。

Mitsubishiコントロール

Mitsubishiのコントロールのプロパティについて説明します。

  • エイリアス - 変数の名前。FlexSimで変数を識別するために使用されます。
  • 接続 - この変数が関連付けられている接続。
  • データタイプ - このコントロールが関連付けられているMCのデータタイプ。なお、すべてのデータタイプがFlexSimで管理されるわけではないため、すべてのデータタイプが表示されるわけではありません。
  • アドレス - このコントロールに関連付ける変数のアドレス。MELSECシステムのアドレス文字列は、デバイス名とそれに続くデバイス番号(オフセット)で構成されます。FlexSimは現在次のデバイス名をサポートしています。
    デバイス名 記号 タイプ
    特殊リレー SM ビット
    特殊レジスタ SD ワード
    入力 X ビット
    出力 Y ビット
    ラッチリレー L ビット
    内部リレー M ビット
    データレジスタ D ワード
  • カスタムサンプリング間隔を使用 - オンの場合、このコントロールにはカスタムのサンプリングスレッドが使用されます。オフの場合、接続のサンプリングスレッドが使用されます。
  • サンプリング間隔 - カスタムのサンプリングスレッドを使用する場合のサンプリング間隔(ms単位)。
  • 関連オブジェクト - この変数とモデル内のオブジェクトを関連付けます。関連オブジェクトによって、呼び出されたトリガーとサンプリングされた値の変更でのcurrentオブジェクトが定義されます。
  • アクション - ボタンを押すと、サンプリングされた値の変更時に実行するアクションを選択できます。

Mitsubishiセンサー

Mitsubishiのセンサーのプロパティについて説明します。

  • エイリアス - 変数の名前。FlexSimで変数を識別するために使用されます。
  • 接続 - この変数が関連付けられている接続。
  • データタイプ - このコントロールが関連付けられているBeckhoffのデータタイプ。なお、すべてのデータタイプがFlexSimで管理されるわけではないため、すべてのデータタイプが表示されるわけではありません。
  • インデックスグループ - このコントロールに関連付ける変数のインデックスグループ。
  • アドレス - このコントロールに関連付ける変数のアドレス。
  • 初期値 - リセット時にPLCで設定する初期値。
  • 関連オブジェクト - この変数とモデル内のオブジェクトを関連付けます。関連付けられたオブジェクトによって、センサーに利用できるイベントを書き込むが定義されます。[イベントを書き込む]と[アクション]の選択オプションでは、currentが関連付けられたオブジェクトです。
  • イベントを書き込む - センサーにオブジェクトが関連付けられている場合、そのオブジェクトのイベントをリッスンできます。 をクリックすると、新しいイベントが追加されます。
    • イベント - リッスン対象のイベント。
    • 書き込み値 - センサー(および接続が有効な場合はサーバー)に書き込む値。

MQTTコントロール(サブスクライバー)

MQTTのコントロールのプロパティについて説明します。
MQTTコントロールはMQTTサブスクライバーの変数です。

  • エイリアス - 変数の名前。FlexSimで変数を識別するために使用されます。
  • 接続 - この変数が関連付けられている接続。
  • トピック - サブスクライブするトピックを定義するUTF-8文字列。

MQTTセンサー(パブリッシャー)

MQTTのセンサーのプロパティについて説明します。
MQTTセンサーはMQTTパブリッシャーの変数です。

  • エイリアス - 変数の名前。FlexSimで変数を識別するために使用されます。
  • 接続 - この変数が関連付けられている接続。
  • トピック - パブリッシュするトピックを定義するUTF-8文字列。