移動の途中でDOUTオン、移動途中でDOUTオンする制御【2】

※この記事は2009年8月14日に書かれたものです。

昨日の続きで、

移動命令の途中でOUTポートON、別の移動命令の途中でOUTポートOFFしたい。

緑の●でポートONして、緑の■でポートOFFする。 

Windowsで手軽にリアルタイムIO制御環境「MOS Bench(モスベンチ)」のリアルタイム制御言語(MOS言語)では、以下のように書く。さわりの部分。座標の代入は、省略している。

WritePort(5122,0);  //ポートOFF

RobSetMoveProgressDo(1,1,10,5122,1);  //移動の10%でポートON

 // 移動進捗度でポートON/OFFする命令

RobLinearMove(1,pos2,3); //  1の部分の直線補間

RobArcMove(1,pos3,pos4,3); // 2の部分の円弧補間

RobLinearMove(1,pos5,3); // 3の部分の直線補間

RobArcMove(1,pos6,pos7,3); // 4の部分の円弧補間

RobLinearMove(1,pos8,3); // 5の部分の直線補間

RobArcMove(1,pos9,pos10,3); // 6の部分の円弧補間

RobLinearMove(1,pos11,3); //  7の部分の直線補間

RobResetMoveProgressDo(1,1);

 // 移動進捗度でポートON/OFFする命令をリセット

RobSetMoveProgressDo(1,2,90,5122,0);//移動の90%でポートOFF

 // 移動進捗度でポートON/OFFする命令

RobArcMove(1,pos12,pos1,3); // 8の部分の円弧補間

RobResetMoveProgressDo(1,2);

 // 移動進捗度でポートON/OFFする命令をリセット

5122番のポートを使用している。これは、フラグとして使える仮想ポートである。実際には物理的に存在しているポート番号を使う必要がある。

これは、新卒社員が書いたコードです。