ライブラリ: メカトロニクス
ヒント
図書館 Mechatronics
これは、逐次プロセスを使用したメカトロニクス ユニットの単純な (完全ではない) 実装の例として意図されています。完全なメカトロニクス アプリケーションに必要なすべての要件を満たしているわけではありません。むしろ、このタイプのアプリケーションの導入または基礎となることを目的としています。
提示されたメカトロニクス モデルの中核は、次のモジュール構造に基づいています。
Mechatronics

各マシンは、たとえばそれぞれがグリッパーを表す複数のメカトロニクス サブアセンブリで構成されていると想定されます。サブアセンブリは、アクチュエータ (メカトロニクス ユニット自体で構成されますが、その機能実装や I/O 管理も含みます) とプログラム マネージャーに分割されます。プログラム マネージャーは、メカトロニクス サブアセンブリのさまざまな状態を管理することを目的としています。 Idle
- または Execute
-状態。最終的に、これらの状態は、アクチュエータを動かしたり、その他の必要な機能を実行したりするプログラム シーケンスによってライブラリ内で表現されます。
この時点で、さまざまな部分について簡単に詳細に説明します。ライブラリを使用する場合、多くの場合、独自のアクチュエータ、プロセス ステップ、またはプログラム シーケンスを実装する必要がありますが、これについてもここで説明します。
俳優 アクチュエーターであると考えられるすべてのモジュールは、インターフェースとなる機能ブロックによって実装する必要があります。
IActuator
実装されました。このインターフェイスにはメソッドやプロパティがなく、モジュールの互換性の理由でのみ使用されます (ドキュメントを参照してください)IActuator
図書館で)。アクチュエーターの実装にはルールや制限がないため、そのようなアクチュエーターの移動またはアクティブ化は個別に行う必要があります。これは通常、アクチュエータを基準スロットに収容し、シーケンスの一部として望ましい方法でアクチュエータを移動できるシーケンス ステップ モジュールを実装することによって実現されます(たとえば、追加のインターフェイスを使用して実装されます)。プロセスのステップ
プロセスステップを関数ブロックの派生クラスとして実装することを強くお勧めします。
StepBase
実行する。これにより、インターフェイスの必要な基本実装がすべて提供されます。IProgramSequenceStep
利用可能。次のドキュメントを参照してください。IActuator
図書館で。基本クラスを使用する場合StepBase
必要なのはメソッドだけですExecute
実装する。後者は、変数が終了するまでプログラム フローによって周期的に呼び出されます。xDone
基本クラスTRUE
が設定されています。さらに、それぞれのプロセスステップがアクティブである限り、フラグはxActive
の上TRUE
悩ませる。アクチュエータへの接続は、任意の方法で実装できます (たとえば、推奨されるリファレンス スロットを介して (1 を参照))。プログラムシーケンス / プログラムマネージャー プログラム シーケンスは、状態を表すプログラム マネージャーのサブモジュールです。これらの状態は、OMAC ステート マシンの形式で管理されます。これらの実装もやはり「Execute」メソッドに基づいています (詳細については、ライブラリの実装を参照してください)。ただし、ほとんどの場合、ユーザーがそのようなプログラム フローを実装する必要はありません。ただし、ステート マシンの動作がプログラム マネージャーに実装され、それによってプログラム シーケンスが実行される方法については、ここで簡単に説明します。
状態には、実行状態 (「ing」で終わる) と待機/デュアル状態 (残り) の 2 種類があります。待機状態は外部コマンドによって終了しますが、実行状態は実行後に終了します。使用可能なコマンドは、プログラム マネージャーの現在のステータスによって異なります。 OMAC ステータス図は、簡単な概要を示しています。
図 66. OMAC図図 67. モジュールMovableBarrier
モジュール
MovableBarrier
関連する機能ブロックは次のように実装されます。MovableBarrier
作成したインターフェースを実装しますIMovableBarrier
。このインターフェースは、(比喩的な) 保護フードを移動するためのメソッドを定義します。IMovableBarrier
今度はインターフェースIActuator
モジュールがMovableBarrier
メカトロニクス アセンブリの下のモジュール ツリーでアクチュエータとして使用できます。図 68. モジュールの実装MovableBarrier
このアクチュエータ「MovableBarrier」はフローステップモジュールによって作成されます
MoveBarrierForTime
移動は次の方法で実装されます。図 69. モジュールの実装MoveBarrierForTime
モジュールを実装する機能ブロック
MoveBarrierForTime
基本的な機能ブロックから単純に派生しますAC_MEC.StepBase
それはライブラリに含まれています。これは関数ブロックを実装しますMoveBarrierForTime
すでにインターフェースIProgramSequenceStep
。その結果、モジュールは次のことが可能になります。MoveBarrierForTime
プログラムシーケンスの下にプロセスステップとして挿入できます。ファンクションブロックの機能実装MoveBarrierForTime
モジュールの参照スロットを定義することにより、MoveBarrierForTime
、インターフェースが実装されたアクチュエーターを備えています。IMovableBarrier
対応できる場合は、既存の「MovableBarrier」アクチュエーターに接続します。このアクチュエータの動きは最終的には機能で行われます。Execute
ファンクションブロックのMoveBarrierForTime
、これは単に保護フードを(比喩的に)移動するためのメソッドを呼び出します。このメソッドは参照アクチュエータによって使用されます。IMovableBarrier
実装され、利用可能になります。なお、物件は、Done
そして変数xActive
TONEと組み合わせることで「動き」の機能ブロックを実現IMovableBarrier
指定された時間 (TON) が経過するまで周期的に呼び出され、その後Done
TRUEに設定し、xActive
は FALSE に設定されます。物件Done
インターフェースの一部ですIProgramSequenceStep
したがって、プロセスの次のステップを実行する必要があることを上位レベルのプログラム フローに報告します。プロセスステップの独自の実装とは別に、
AC_Mechatronics.library
一般的な論理演算に使用できる、事前に実装されたいくつかのステップが利用可能です。例えばステップになりますBranchOnBool
これには 2 つのサブステップ/分岐が含まれます。これらのサブステップは、ブール変数の値に応じて実行されます。図書館にもありますAC_Mechatronics.library
並列プロセスのプロセス ステップ、条件付きジャンプや単純な待機ステップ、その他多くのタスクが利用可能です。