Siemens S7製品ファミリーのPLCまたはシミュレーターに接続する
概要
このエミュレーションモジュールを使用すると、FlexSimをSiemens S7ファミリーのPLCまたはPLCシミュレーターに接続できるようになります。
完全に機能する例を構築するには、次のようにいくつかのステップが必要です。
- TIA Portalプロジェクトを作成します。
- PLCコードを作成し、コンパイルした後、実際のPLCまたはシミュレーション対象のPLCにダウンロードします。
- FlexSimモデルを準備し、PLCに接続します。
- S7接続でモデルをテストします。
- PLCSIM Advanced接続でモデルをテストします。
ステップ1 TIA Portalプロジェクトを作成する
このチュートリアルでは、TIA Portal v16を使用します。
TIA Portalを開き、[Create new project]コマンドを選択します。
新しいプロジェクトを作成し、「tutorial」という名前を指定した後、プロジェクトビューを開きます。
プロジェクトが作成されたら、プロジェクト名を右クリックし、[Properties]メニューアイテムをクリックします。
[Protection]タブを選択し、[Support simulation during block compilation]をオンにした後で保存します。
プロジェクトがシミュレーション用に設定されたため、次に新しいデバイスを追加します。このチュートリアルでは、CPU 1511C-1 PNを使用します。
このデバイスを追加するには:
- プロジェクトビューから[Add new device]を選択します。
- [Controller]を選択し、[SIMATIC S7-1700]、[CPU 1511C-1 PN]の順に移動し、最後に[6ES7 511-1CK01-0AB0]を選択します。
- これにより追加されます。
選択したCPUがプロジェクトに追加されます。
追加したデバイスに設定を行い、シミュレーションに適した状態にする必要があります。
- このCPUを右クリックし、[Properties]アイテムを選択します。
- [PROFINET interface [X1]]のIPアドレスがネットワーク構成と適合しているかどうかをチェックします。
- デジタルI/Oの[I/O addresses]セクションに移動し、[Input addresses]と[Output addresses]の[Organization block]で[None]を選択します。
次に[Protection & Security]セクションに移動し、[Permit access with PUT/GET communication from remote partner]をオンにします。
保存してプロパティパネルを閉じます。
プロジェクトのシミュレーションの準備が整いました。
ステップ2 PLCコードを作成する
PLCコードを作成し、コンパイルした後、実際のPLCまたはシミュレーション対象のPLCにダウンロードします。このチュートリアルでは、デジタル入力の1秒後に出力を行う単純な遅延器を作成します。
詳細に説明すると、このシステムには、1つのブール型入力と1つのブール型出力があります。
ブール型出力は通常は0に設定されていますが、入力が1に切り替わると出力はすぐに1に切り替わり、1秒後に0に戻ります。
最初に行うべき操作は、入力と出力の定義です。
CPUの[PLC tags]セクションに移動し、[Show all tags]アイテムをダブルクリックします。次のテーブルに従って、「input」(入力)と「output」(出力)の2つのタグを定義します。
なお、タグに関連するアドレスは、inputタグの場合は%I10.0、outputタグの場合は%Q4.0です。次に、[Program Block]セクションに移動し、[MAIN [OB1]]アイテムをダブルクリックします。次に、次のラダーブロックを作成します。
このプログラムブロックでは、inputが1になると、outputも1秒の遅延の後に1に設定されます。
ツールバーの[Compile]ボタンでこれをコンパイルします。
このチュートリアルでは、S7接続とPLCSIM Advanced接続の両方を示すために、FlexSimとPLCSIM Advancedを結合します。そのため、コードをPLCSIM Advancedインスタンスにダウンロードします。
コードを実際の1511-1 PNデバイスにダウンロードすると、S7接続を同様に使用できます。
PLCSIM Advancedでtestという名前のインスタンスを作成し、コンパイルしたコードを[Download to device]ボタンでダウンロードします。
ダウンロードが完了した後、このインスタンスを起動します(色付きのウィジェットが閉じ、インスタンス名が緑に変わります)。
コードのダウンロードプロセス中にインスタンスを自動的に起動することもできます。
ステップ3 FlexSimモデルを準備する
このデバイスに接続できるようにFlexSimモデルを準備します。このチュートリアルに使用するモデルは、ボックスアイテムをトートにパッケージングするという、実にシンプルな生産システムです。
モデルを構築するために、2つのソース(1つはボックス用、もう1つはトート用)、トート用の1つのキュー、ボックスとトートを結合する1つのコンバイナを使用します。
上の図に示すように、これらの要素をコンベヤでつなげます。コンベヤの速度は0.5 m/秒に設定します。
ソース名を「Boxes」(ボックス)と「Totes」(トート)に変更します。ソースTotesは時間0の時点で100個のトートを生産するように設定し、ソースBoxesは10秒ごとにボックスを1個生産するように設定します。
フォトアイをボックスのコンベヤに配置します。配置場所は、トートのコンベヤが始まる約1メートル前です。
コンバイナはボックスを5秒でトートに入れます。
最後に、キューのリセット時とトートがキューから出るたびにキューの出力を閉じるように、キューを設定します。
ステップ4 S7接続でモデルをテストする
まず、PLCSIM Advancedでホストされたシミュレーションインスタンスにモデルを直接接続するために、S7接続を作成します。
このチュートリアルを進める前に、インスタンスを起動させる必要があります。また、PLCSIM AdvancedアクセスをPLCSIMの仮想イーサネットアダプターに切り替える必要があります。
PLCSIMの仮想イーサネットアダプターを機能させるには、使用するネットワークのIPアドレスにこのアダプターを結合する必要があります。この仮想インターフェイスにアドレスを割り当てるには、Windowsのネットワーク設定を使用します。
FlexSimで新しいS7接続を作成するには、ツールメニューから新しいエミュレーションまたは接続を追加します。
シミュレーション対象のPLCのIPアドレスを[アドレス]フィールドに挿入し、[接続テスト]ボタンを押します。すべてが適切な場合、詳細メッセージが表示されます。
なお、[ランク]フィールドと[スロット]フィールドはゼロに設定されています。この設定はシミュレーション対象のCPUによって異なります。
これらのフィールドの詳細については、エミュレーションに関するマニュアルを参照してください。
[サンプリング間隔]にはPLC出力に適した時間(このモデルでは50msが適切)を設定し、接続ステータスを[アクティブ]に設定します。
接続を設定した後、TIA Portalからタグテーブルをエクスポートします。[PLC tags]アイテムに移動し、[Export]ボタンを押します。
エクスポートしたファイルをファイルシステムに保存します。
これで、エクスポートしたタグをFlexSimモデルにコントロールおよびセンサーとしてインポートできます。
タグファイルをロードするには、FlexSimのS7接続のパネルにある[PLCタグをインポート]ボタンをクリックし、次に[変数を同期]ボタンをクリックします。
「input」および「output」という2つの変数が作成され、PLCタグに結合されます。
この時点で、FlexSim変数とPLCタグとの接続が確立されました。さらに、FlexSimモデルでPLCのinputをどのように駆動し、PLCのoutputをFlexSimでどのように管理するかを定義する必要があります。
このモデルで行いたいのは、ボックスがフォトアイをカバーするときにPLCのinputを1に設定し、PLCのoutputが1に設定されたときにトートをキューからリリースすることです。
フォトアイがクリアになったときには、PLCのinputを0にリセットする必要があります。
そのためには、input変数を選択してフォトアイに関連付け、フォトアイがカバーされたときには値1を書き込むように、フォトアイがクリアになったときには値0を書き込むように変数を設定します。
さらに、モデルのリセット時にPLCのinputをリセットするために、初期値を0に設定します。
次にoutput変数を選択し、トートのキューに関連付けます。
次に新しいアクションを追加し、PLCの値が0(oldValue)から1(newValue)に変わったときにキューが出力を開くように設定します。
これで、モデルの設定が完了しました。モデルをリセットし、実行できます。
FlexSimの実行速度を1に設定して、PLCのタイミングと一致させることを忘れないでください。
ボックスがフォトアイをカバーしてから1秒後にトートがキューから出るはずです。
ステップ5 PLCSIM Advanced接続でモデルをテストする
このセクションでは、ステップ4と同じPLCプログラムを使用し、PLCSIM Advanced接続を使用して同じオートメーションを構築します。
ここでは、PLCSIM Advancedのシミュレーション対象のインスタンスに直接接続するのではなく、PLCSIM Advancedに接続します。PLCタグの(エクスポートと再インポートを伴わない)直接列挙やインスタンスの参照といった高度な機能を利用できます。
最初のステップでは、ステップ4でS7接続を作成したときと同様に、PLCSIM Advanced接続を作成します。
PLCSIM Advancedには、SoftbusまたはTCP/IPを使用してアクセスできます。
ステップ4で使用した同じPLCSIM Advanced設定を使用するために、まずTCP/IP接続を使用します。
接続オブジェクトを作成した後で、[仮想イーサネットアダプターを使用]をオンにし、[IP アドレス]フィールドにPLCSIM AdvancedのIPアドレスを入力します。
なお、このケースでは、インスタンスに直接接続するわけではないため、シミュレーション対象のインスタンスのIPアドレスではなく、PLCSIM Advancedソフトウェアのアドレスを入力します。
このソフトウェアが同じPCにある場合は、[IP アドレス]フィールドに127.0.0.1と入力します。
IPアドレスを入力した後、[接続]コンボボックスの横にあるボタンを押します。FlexSimはPLCSIM Advancedに実行中のインスタンスの有無を確認し、コンボボックスにそれらを列挙します。
ここで、接続先のインスタンスを選択します。
このモードでタグをインポートする場合、TIA Portalからタグをエクスポートする必要はありません。[PLCタグをインポート]と[変数を同期]を押せば、TIA Portalプロジェクトで宣言したタグが[変数]タブに表示されます。
この時点以降は、ステップ4の変数管理手順に従って、シミュレーション対象のPLCにモデルを接続します。
PLCSIM AdvancedがFlexSimと同じマシンにインストールされている場合、Softbusプロトコルを使用してPLCSIM Advancedに接続することもできます。
そのためには、PLCSIM Advancedのインターフェイスの[Online Access]セクションで[PLCSIM]スイッチを選択し、[接続]パネルの[仮想イーサネットアダプターを使用]をオフにします。
このようにしてPLCSIM Advancedに接続した後、残りの手順は、前に説明した仮想イーサネットアダプターを使用した場合と同じです。