■ 仮想 IAI ロボット (File: plc_public_codex_xxx | Module:VirtualIAI)

⇒ TO Home Page
内容

株式会 社 アイエイアイ株式会社ダイアディックシステムズ 等のロボシリンダ(電動シリンダ)のポイント番号指定動作を仮想的に 作りました。
【 電動シリンダとは。 ここ に上手く端的に解説されていますので参照してください。(シーケンス制御講座) 】
ここでは4ビットでポイントを指定し、トリガを掛けるとそのポイントまで移動します。移動が完了すれば、完了フラグが立ちます。
ポイントは0〜15で、数値が大きい程移動時間がかかります。また、初めての起動では原点復帰分の時間もかかります。
 
複数のロボシリンダ(以降 RC と表記)を制御する場合、ポ イントデータ線が多数必要になるので、 データ線をバスに して省配線しています
ポイント指定4ビットなので、必要出力数は、台数×トリガ(1ビット)+ポイント(4ビット)、入力数は、台数 × 位置決完(1ビット)のみです。
同時に複数のRCにトリガをかけるとポイントバスが衝突するので、時分割して衝突を防ぐ必要があります。
この仮想ロボットではトリガ信号が入力されてから、受付まで50msに設定おしています。
 
このサンプルでは、RCを16台分記述しています。16台分のコードを書くのは現実的でないので、インデックスレジスタで修飾しています。

●PDFを表示 
◆ シーケンスルーチン

00010
・各デバイスは、インデックスレジスタ[Z6]で修飾されています。[Z6]は『TimeSlice Module』で1スキャン毎に0〜15で循環します。
・入力[R1000]は、ストローブ信号です。これが真になると、立上りで動作でポイント読込遅延タイマをリセットします。
・この遅延は素子の応答時間のバラつきで、誤ったアドレスを読込むのを防ぐためにあります。
・このタイマのアップした立上りで、トリガ受付フラグ[@MR000]をセットし、位置決信号[R1100]をリセットします。また、サブルーチン10を 呼び出します。
・サブルーチン10では、ポイントに対応した動作時間タイマの設定とリセットを担います。[@T16]

・ここで立上り微分を実現するために、微分命令は使っていません。スキャン毎に[Z6]が変化する場合、1スキャン前の状態は無意味なので微分命令は使えないのです。


00013
・トリガ受付フラグ[@MR000]が真で動作時間タイマ[@T16]がアップすると、位置決信号をセットし、トリガ受付を自分自身でリセットします。
・但し、トリガ信号がOFFしないと、位置決信号は出力しません。


◆ タイマルーチン

00006
・また、タイマ入力もインデックス修飾できませんの で上の様なコードにして、常時能動にして他からリセットする様な使用法にします。


◆ サブルーチン 【 SBN10 】

00026
・ポイント番号に対応した動作時間を計算します。
・[R1200]から16ビットを読込み、下4ビットだけを抽出します。通常時動作時間は T = Ponnt * 500 + 1000
原点復帰時(2回目以降フラグ[@MR500]が偽の時)はさらに3000加えます。
・その値を[@T16]に代入します。


00025
・2回目以降の判断は、トリガ時(サブルーチン呼出時)に位置決信号が真である事で分かります。

●PDFを表示