ロジックプログラム
| 説明 |
PolyScope Xのアプリケーションには、メインのロボットプログラムとは独立して、バックグラウンドで継続的に実行される「 ロジックプログラム 」を含めることができます。 これは、アームの電源がオフになっている場合、メインプログラムが一時停止または停止している場合、あるいはオペレーターが安全区域に入った場合でも、実行を継続しなければならないタスクに役立ちます。 代表的な用途としては、フィールドバス通信(Modbus、Ethernet/IP、PROFINET、Socket、XmlRPC)の維持、外部センサー入力への反応、生産用PLCへのロボット状態の報告、およびメインプログラムが停止した際の外部機器の制御などが挙げられます。 ロジックプログラムでは、ロボットアームを直接移動させたり、荷重を変更したり、TCPパラメータを修正したりする関数を使用することはできません。 |
|
ロジックプログラムを用いたアプリケーションの例 |
|
|
ライセンス |
ロジックプログラムの利用にはライセンスが必要であり、ライセンスはカスタマーポータルから購入できます。
|
|
ロジックプログラムの制御 |
「プログラム」ページで、サイドバーから「ロジックプログラム」を選択します。 展開されたサイドバーには、ロジックプログラムの各部分を移動するための操作ボタンが表示されます。 また、プログラムの開始、一時停止、停止、リセットを行うこともできます。
|
||||||
|
|
「プログラム実行」ボタンは、ロジックプログラムの状態に応じて、「プログラム実行」または「プログラム停止」のいずれかに表示が切り替わります。 これは、ロジックプログラムのコンテキストメニューで利用可能なプログラム制御アクションへのショートカットとして機能します。
4つの ロジックプログラムインジケーター は、プログラムの現在の状態を示します。 また、アプリケーションの起動時にプログラムが自動的に開始されるように設定されているかどうかも示されています。
|
|
ロジックプログラム構造 |
ロジックプログラムは、メインプログラムと同じ構造セクションを持っています:
ロボットプログラムとロジックプログラムは、それぞれ独自のグローバル変数セット、独立したスレッドプール、および独立した実行ライフサイクルを持っています。 あるプログラムの起動、停止、または障害が発生しても、他のプログラムは停止しません。 「
|
|
|
「 開始 前」セクションでは、プログラムを1回のみ実行できます。
「 モジュール 」セクションでは、プログラムで使用可能な関数やスレッドの一覧を確認できます。
|
|
ロボットプログラムとのデータ交換 |
ロボットプログラムとロジックプログラム間の通信は、主に「アプリケーション変数」を通じて行われます。 変数は、ロボットおよびロジックプログラムから設定および読み取りが可能です。 この例では、ロボットセルの入力バッファに入力されるアイテムの数をカウントし、そのカウント値をロボットプログラムに表示します。 ロボットアームの電源がオフになっている間も、カウンターは増加し続けます。
|
|
ロボットの状態の読み取り |
ロボットの状態は、組み込みの RTDE 変数を通じて確認できます。 これらの変数は、スクリプト関数 ` 以下の例は、「セーフガード停止」が有効かどうかを確認する方法を示しています:
次の例は、ロボットプログラムが一時停止しているかどうかを確認するものです:
URScript Control API もこの機能をラップしています。
|
|
ロジックプログラムの自動起動 |
アプリケーションの起動時に自動的に実行されるプログラムを選択できます。 「 自動 起動」オプションを選択すると、アプリケーションの読み込み完了直後にロジックプログラムが起動します。
また、ロボットコントローラの電源が投入され、前回のアプリケーションが読み込まれた際に、ロジックプログラムを自動的に起動することも可能です。 「 自動 起動」機能は、動作モードやロボットアームの状態にかかわらず動作します。 読み込み時に「自動起動」がトリガーされると、スナックバー通知によりロジックプログラムが開始されたことが確認されます。
|
|
|
「Logic Program 」アイコン のサイドバーバッジは、プログラムが実行中か停止中かといった現在の状態を常に示しています。
ロボットの電源投入時や、さまざまなアプリケーションが読み込まれる際に、ロジックプログラムが安全であることを確認するのは、お客様の責任となります。
ロジックプログラムは、有線接続またはPLC接続(Modbus、PROFINET、Ethernet/IP、ソケット、ダイレクト出力、その他のインターフェース)を使用して、外部機器の起動および停止を行うことができます。
|
|
モジュールとスレッド |
ロジックプログラムの機能は、関数として整理することができます。 これはロボットプログラム内での動作と同じです。 各機能は「 スレッド」としてマークすることができます。 デフォルトでは、スレッドは1回のみ実行されます。 スレッド関数上の [ ループ ] チェックボックスを選択すると、スレッドが継続的に実行されます。
|
|
リソースの共有 |
ロボットプログラムとロジックプログラムは、それぞれ独自のスレッドおよび変数のプールを持ち、独立して実行されますが、ハードウェアリソースはすべて共有されています。 これに伴い、プログラマーが留意すべきいくつかの制約事項があります:
|
|
制限事項 |
|