MPC-816 BBS CATEGORY別表示

CATEGORY 'パルス' : 13 thread(s)

#120 PLS_MIFコマンド仕様追加
acceleng 2008年11月13日(木) 10:46 関連: パルス
"------------------------------------
"  TNYFSC(R) Rev-3.53t[VER-PmaX2044]
"  Copyright(C)by ACCEL Corp/BcSoft
"  [300p MPC-816K  MPG  MODE5|6]K8bd
"------------------------------------
"  PLS_MIF n
"    n=無し   : WPLS等出力をMIF-816 J5コネクタに設定(従来通り) 
"      -1     : MIF-816パルス出力設定解除
"      0~&HFF : MIF-816 J5 出力パターン
"               この出力はパルス発生中も保持されます。
"               方向指示信号等に使用できます。
"
"  下記のプログラムは MIF-816 J5 4番ピンを方向指示信号としています。
"  ※この場合、パルスは常に2番ピン(XCW)から出力され、カウンタC0も常に加算です。

'----------
PLS_MIF 0           " MIF J5 出力クリア
A0=1                " axis_dir
B0=100              " on time
B1=100              " off time
C0=0                " counter

WPLS A0 B0 C0       " puls out
WAIT C0>=1000
A0=0                " puls stop
WAIT A0=256         " confirm puls stop
PR C0
TIME 100

'----------
PLS_MIF 2           " MIF J5 4番ピン(XCCWのポート)オン
A0=1                " axis_dir
B0=100              " on time
B1=100              " off time
C0=0                " counter

WPLS A0 B0 C0       " puls out
WAIT C0>=1000
A0=0                " puls stop
WAIT A0=256         " confirm puls stop
PR C0

'----------
PLS_MIF 0           " MIF J5 出力クリア

#115 MPG-303 マルチタスクによるパルス発生途中停止例
acceleng 2007年6月29日(金) 9:38 関連: パルス
一時的にマルチタスクを使用して、複数のスイッチによる条件停止を行っています。

◆動作
押しボタンSW(8)が押されている間は軸がCW方向へ、
押しボタンSW(9)が押されている間は軸がCCW方向へ移動します。
移動中にリミットスイッチ(SW(3),SW(4))がオンすれば停止します。

◆*R_UPサブルーチン
'STOP 3' でパルス発生コマンドの前に停止条件を設定しています。
'STOP 3' の停止条件に与えられる入力は1つなので、別のタスクで3つのスイッチを監視
して、メモリI/Oでインターロックをしています。

◆*R_DNサブルーチン
別タスクで3つのスイッチを監視してMPG#1に対して'STOP 1'(または2)を発行します。
このプログラムの場合、TASK0とTASK1のパルスコマンドはMPG#1に対して発行されます。

※タスクのPG引当
   TASK0     PG nコマンドにより操作するMPGを設定します。
              nの番号がDSWの番号に対応します。
   TASK1〜3  MPG#1 DSWを1に設定したものです。(出荷時)
   TASK4〜7  MPG#2 DSWを2に設定したものです。
   TASK8〜11 MPG#3 DSWを3に設定したものです。

◆サンプルプログラム

  PG 1                      "TASK0 は MPG#1 に引当
  MODE 5
  ACCEL 10000 1000 500
  OVRUN 0
  D45 0

*LOOP
  IF SW(8)=1 GOSUB *R_UP    "押しボタンSW(8)が押されたらX軸CW移動
  IF SW(9)=1 GOSUB *R_DN    "押しボタンSW(9)が押されたらX軸CCW移動
  GOTO *LOOP
'------
*R_UP                       "SW(8)が押された場合
  OFF -1                    "メモリI/O -1 オフ
  FORK 1 *SW_UP             "SW監視をするタスク起動
  STOP 3 -1 1               "停止条件。メモリI/O -1 がオンで停止
  RMOV 100000 0             "X軸CW。正常停止やSTOP停止まで次の行には進みません
  PRINT BSY(0)              "停止状態を表示
  QUIT 1                    "SWを監視するタスク終了(正常停止時のため)
  WAIT SW(8)=0
  RETURN
*SW_UP                      "SWを監視するタスク
  IF SW(8)=0 THEN *SW_UP_STP    "SW(8)がオフしたら停止
  IF SW(3)=1 THEN *SW_UP_STP    "SW(3)がオンしたら停止
  IF SW(4)=1 THEN *SW_UP_STP    "SW(4)がオンしたら停止
  GOTO *SW_UP
*SW_UP_STP
  ON -1                     "メモリI/O -1 オン。
  END                       " タスク終了
'------
*R_DN                       "SW(9)が押された場合
  FORK 1 *SW_DN             "SW監視をするタスク起動
  RMOV -100000 0            "X軸CCW。正常停止やSTOP停止まで次の行には進みません
  PRINT BSY(0)              "停止状態を表示
  QUIT 1                    "SWを監視するタスク終了(正常停止時のため)
  WAIT SW(9)=0
  RETURN
*SW_DN                      "SWを監視するタスク
  IF SW(9)=0 THEN *SW_DN_STP    "SW(9)がオフしたら停止
  IF SW(3)=1 THEN *SW_DN_STP    "SW(3)がオンしたら停止
  IF SW(4)=1 THEN *SW_DN_STP    "SW(4)がオンしたら停止
  GOTO *SW_DN
*SW_DN_STP
  STOP 1                    "減速停止
  'STOP 2                   "急停止
  END

#109 4軸マイクロステップ・ドライバ「QUATTRO-2」
acceleng 2006年6月2日(金) 10:35 関連: パルス
  1
4軸 in ONE のステップモータドライバです。
まもなく発売。

特徴です↓
http://acceleng.jp/_bbs35/bbs35.cgi?article=57

#101 MPC-816 異なる論理のOVRUNセンサを使う
acceleng 2006年1月27日(金) 13:38 関連: パルス
下記は MIF-816 J5からパルス発生します。
SW(24)とSW(25)をOVRUN入力とします。
SW(24)はNC接点、SW(25)はNO接点を使用し、SW(24)がオフまたはSW(25)がオンになると
パルス発生を停止します。
パルス発生中、他のタスクは停止します。
OVRUNの設定は Ctrl+A (または [)での停止、パワーオンリセットで解除されます。

>VER
 TNYFSC(R) Rev-3.53s[VER-PmaX2044]          " このサンプルはP版です
 Copyright(C)by ACCEL Corp/BcSoft
 [300p MPC-816K  MPG  MODE5|6]K8bd

5       FORK 1,*OUT
10      PG -1             " MIF-816 J5からパルス発生
20      ACCEL 5000
30      OVRUN &H0103      " OVRUN検出 SW(24)はNC接点、SW(25)はNO接点
40      SETPOS 0,0
50      MOVE 10000,0
60      IF SW(24)=0 THEN *OVRUN
70      IF SW(25)=1 THEN *OVRUN
80      'MORMAL STP
90      PRINT STR(-1),X(0)
100     END
110     *OVRUN
120     PRINT STR(-1)
130     PRINT SW(24),SW(25)
140     END
150     *OUT              " MOVE中、このタスクは動かない
160     ON 8
170     TIME 50
180     OFF 8
190     TIME 50
200     GOTO *OUT
RUN
 MORMAL STP 10000         " パルスを出し切って停止した
RUN
 OVRUN
 0 0                      " SW(24)=0で停止した
RUN
 OVRUN
 1 1                      " SW(25)=1で停止した

#93 MPG-303 Y軸の現在点だけ0に設定する
acceleng 2005年8月9日(火) 14:22 関連: パルス
X軸の現在点はそのままでY軸の現在点を0にするには

PR P(0)         "現在点の確認
10000 123 0 0   "X=1000,Y=123,Z=0,U=0

X=X(0)          "X軸現在点を変数Xに入力
SETPOS X 0      "現在点設定

PR P(0)         "現在点の再確認
10000 0 0 0

※Y(0)=0 としてもだめです。