Beckhoff製品ファミリーのPLCまたはシミュレーターに接続する

概要

このエミュレーションモジュールを使用すると、FlexSimをBeckhoffファミリーのPLCまたはPLCシミュレーターに接続できるようになります。

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

  1. Beckhoffプロジェクトを作成します。
  2. PLCコードを作成し、コンパイルした後、実際のPLCまたはシミュレーション対象のPLCにダウンロードします。
  3. FlexSimモデルを準備し、PLCに接続します。
  4. モデルをテストします。
このチュートリアルを正常に構築して実行するには、使用するマシンにFlexSimをインストールするのは当然ですが、Beckhoff TwinCATソフトウェアもインストールする必要があります。

ステップ1 TwinCATプロジェクトを作成する

このチュートリアルでは、TwinCATを使用します。

TwinCATを開き、[Create a new project]コマンドを選択します。

新しいプロジェクトを作成し、「tutorial」という名前を指定した後、プロジェクトビューを開きます。

TwinCATから新しいアイテムを要求されます。[Standard PLC Project]を選択して追加します。

ステップ2 PLCコードを作成する

PLCコードを作成し、コンパイルした後、実際のPLCまたはシミュレーション対象のPLCにダウンロードします。
このチュートリアルでは、デジタル入力の1秒後に出力を行う単純な遅延器を作成します。

プロジェクトが作成されたら、[PLC]セクションの下にあるプロジェクト名を右クリックし、関連するアイテムを開きます。



[GLVs]アイテムに移動して[GLV]アイテムをクリックし、ブール型の2つのグローバル変数を追加します。それぞれ名前を「input」、「output」にします。

次に[POUs]セクションに移動し、既存の[MAIN]アイテムを削除します(ある場合)。新しいPOUを作成します([POUs]アイテムを右クリックして作成)。[Type]では[Program]を選択し、[Method Implementation language]では[Ladder Logic Diagram (LD)]を選択します。

ブロックを作成した後、ブロック内で次のラダー回路を実装します。


このプログラムブロックでは、「input」変数が1になると、「output」変数も1秒の遅延の後に1に設定されます。
使用しないinput/output接続をTONブロックから忘れずに削除してください。そうしない場合、プログラムはコンパイルされません。

この時点でターゲットのコンボボックスに移動し、[Choose Target System...]アイテムをクリックします。



新規インストールの場合、[<Local>]接続が表示されるはずです。NetID(この例では、192.168.1.199.1.1)をコピーします。



これでTwinCATプロジェクトが完成しました。[Activate Configuration]ボタンでプロジェクトを有効化できます。

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

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

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

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

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

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

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

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

ステップ4 モデルをテストする

まず、TwinCATでホストされ、すでに実行中のシミュレーションインスタンスにモデルを直接接続するために、Beckhoff接続を作成します。

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



先ほどコピーしたNetIDを[アドレス]フィールドに挿入し、[接続テスト]ボタンを押します。すべてが適切な場合、詳細メッセージが表示されます。

接続に成功した場合、[PLCタグをインポート]ボタンを押して変数をインポートできます。

タグのテーブルが表示されます。



TwinCATの変数をFlexSimオブジェクトに変換するために、「GLV.input」タグを「S」(センサー)とマークし、[Synchronize]列の該当フィールドを「true」に設定します。
GLV.output変数についても同様に操作しますが、ここでは「C」(コントロール)とマークします。
次に、[接続]パネルの[変数を同期]ボタンを押して、選択したタグをFlexSimのセンサーおよびコントロールとしてインポートします。

エミュレーションパネルの[変数]タブに、インポートしたアイテムが表示されます。


ここで、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秒後にトートがキューから出るはずです。