rcx340 p/m japanese...35 exit for for 〜next 文のループを強制的に終了する 8-59 36...

502
プログラミングマニュアル RCX340 JGR9173131 J135 Ver. 1.31 ヤマハ4軸ロボットコントローラ

Upload: others

Post on 28-Mar-2020

38 views

Category:

Documents


2 download

TRANSCRIPT

プログラミングマニュアルRCX340

JGR9173131

J135Ver. 1.31

ヤマハ4軸ロボットコントローラ

はじめに

このたびは、ヤマハロボットコントローラ RCX340 をお買い上げいただきまして誠にありがと

うございます。

本書は、ヤマハロボットコントローラ RCX340 に対するロボットプログラム命令等の説明を記

載しております。

本ヤマハロボットコントローラのご使用に際しては、本書および関連のマニュアルをお読みいた

だくと共に、安全に対して充分注意をはらって、正しく取り扱いをしていただくようにお願いい

たします。

ロボットコントローラに対する取り扱いについては、ヤマハコントローラに付属のマニュアルを

熟読ください。

適用機種:RCX340

安全上のご注意

ご使用になる前に必ずお読みください

本製品のご使用に際しては、本マニュアルおよび関連マニュアルをお読みいただくと共に、安全

に対して充分注意をはらって、正しく取り扱いをしていただくようにお願いいたします。

本マニュアルで示す注意事項は、本製品に関するものについて記載したものです。本製品を使用

したロボットコントローラシステムとしての安全上のご注意に関しては、お客さまにてご考慮頂

きますようお願いいたします。

本マニュアルでは、安全注意事項のランクを「注意」、「要点」として区分してあります。

c 注意

取り扱いを誤った場合に、危険な状況が起こりえて、中程度の傷害や軽傷を受ける可能性が想

定される場合および物的傷害だけの発生が予想される場合を記載しています。

n 要点

主にバージョンによる機能の違いなどを記載しています。

MEMO

ロボットの操作手順を、簡潔にかつ、明確に記載しています。

なお、「注意」に記載した事項でも、状況によっては重大な結果に結びつく可能性があります。

本マニュアルは、必要なときに読めるように大切に保管すると共に、必ず最終ユーザーまでお届

けいただくようお願いいたします。

CONTENTS RCX340プログラミングマニュアル

T-1

はじめに

安全上のご注意

第 1章 プログラミングの記述方法

1 概要 1-1

2 文字 1-1

3 プログラムの基本 1-1

4 プログラム名 1-2

5 識別子 1-4

6 LABEL 文 1-4

7 コメント 1-5

8 命令文形式 1-5

第 2章 定数

1 概要 2-1

2 数値型定数 2-1

2.1 整数型定数 2-1

2.2 実数型定数 2-1

3 文字型定数 2-2

第 3章 変数

1 概要 3-1

2 ユーザー変数とシステム変数 3-2

2.1 ユーザー変数 3-2

2.2 システム変数 3-2

3 変数名 3-3

3.1 動的変数の名前 3-3

3.2 静的変数の名前 3-3

CONTENTS RCX340プログラミングマニュアル

T-3T-2

4 変数の型 3-4

4.1 数値型 3-4

4.2 文字型 3-4

5 配列 3-5

6 値の代入 3-5

7 型の変換 3-6

8 値渡しと参照渡し 3-6

9 システム変数 3-7

9.1 ポイント変数 3-7

9.2 シフト変数 3-8

9.3 パラレル入力変数 3-8

9.4 パラレル出力変数 3-9

9.5 内部出力変数 3-10

9.6 アームロック出力変数 3-11

9.7 タイマ出力変数 3-12

9.8 シリアル入力変数 3-13

9.9 シリアル出力変数 3-14

9.10 シリアルワード入力 3-15

9.11 シリアルダブルワード入力 3-15

9.12 シリアルワード出力 3-16

9.13 シリアルダブルワード出力 3-16

10 ビット指定 3-17

11 変数の有効範囲 3-18

11.1 動的変数・動的配列の有効範囲 3-18

11.2 静的変数の有効範囲 3-18

12 変数のクリア 3-19

12.1 動的変数のクリア 3-19

12.2 静的変数のクリア 3-19

CONTENTS RCX340プログラミングマニュアル

T-3T-2

第 4章 式と演算

1 算術演算 4-1

1.1 算術演算子 4-1

1.2 関係演算子 4-1

1.3 論理演算子 4-2

1.4 演算の優先順位 4-3

1.5 型の変換 4-3

2 文字列演算 4-4

2.1 文字列の連結 4-4

2.2 文字列の比較 4-4

3 ポイントデータの形式 4-5

4 DI/DO 条件式 4-6

第 5章 複数台ロボット制御

1 概要 5-1

2 ロボット指定付き命令一覧 5-2

第 6章 マルチタスク

1 概要 6-1

2 タスクの定義方法 6-1

3 タスクの状態と遷移 6-2

3.1 タスクの起動 6-2

3.2 タスクのスケジューリング 6-3

3.3 タスクの条件待ち 6-4

3.4 タスクの中断(SUSPEND) 6-5

3.5 タスクの再開(RESTART) 6-5

3.6 タスクの削除 6-6

3.7 タスクの停止 6-7

4 マルチタスクプログラム例 6-8

5 データの共有 6-9

6 注意事項 6-9

CONTENTS RCX340プログラミングマニュアル

T-5T-4

第 7章 シーケンス機能

1 シーケンス機能について 7-1

2 シーケンスプログラムの作成 7-1

2.1 プログラム方法 7-1

2.2 コンパイル 7-3

3 シーケンスプログラムの実行 7-4

3.1 シーケンスプログラムのステップ実行 7-4

4 シーケンスプログラムのプログラミング 7-5

4.1 代入文 7-5

4.2 入出力変数 7-5

4.2.1 入力変数 7-5

4.2.2 出力変数 7-6

4.3 タイマ定義文 7-7

4.4 演算子(論理演算子) 7-7

4.5 演算の優先順位 7-8

4.6 シーケンスプログラム仕様 7-8

第 8章 ロボット言語一覧

ロボット言語一覧表の見方 8-1

アルファベット順 8-2

機能別 8-7

関数:アルファベット順 8-12

関数:機能別 8-15

1 ABS 絶対値を求める 8-17

2 ABSRPOS マシンリファレンス(マーク方式の軸)を取得する 8-18

3 ACCEL 加速度係数パラメータを設定/取得する 8-19

4 ARCHP1/ARCHP2 パラメータのアーチ位置を設定/取得する 8-20

5 ARMCND アーム状態の取得 8-21

6 ARMSEL 現在の手系選択を設定 / 取得 8-22

7 ARMTYP プログラムリセット時の手系を設定 / 取得 8-23

8 ASPEED 指定されたロボットの自動移動速度を設定 / 取得する 8-24

CONTENTS RCX340プログラミングマニュアル

T-5T-4

9 ATN/ATN2 逆正接値を求める 8-25

10 AXWGHT 軸先端質量を設定/取得する 8-26

11 CALL サブプロシージャを呼び出す 8-27

12 CHANGE ハンドを切り替える 8-28

13 CHGPRI タスクの優先順位を変更する 8-29

14 CHR$ 指定したキャラクタコードを持つ文字を求める 8-30

15 CLOSE 指定された汎用イーサネットポートを閉じる 8-31

16 COS 余弦値を求める 8-32

17 CURTQST 指定された軸の定格トルクに対する現在トルクを取得 8-33

18 CURTRQ 指定された軸の現在トルク値を取得する 8-34

19 CUT 起動中の他のタスクを強制終了する 8-35

20 DATE$ 日付を取得する 8-36

21 DECEL 減速比率パラメータを設定/取得する 8-37

22 DEFFN ユーザーが使用可能な関数を定義する 8-38

23 DEGRAD 角度変換(度→ラジアン) 8-39

24 DELAY 指定された時間プログラムの実行を待つ 8-40

25 DI パラレルポートからの入力状態を取得する 8-41

26 DIM 配列変数を宣言する 8-42

27 DIST 2 点間の距離を求める 8-43

28 DO パラレルポートに出力または出力状態を取得する 8-44

29 DRIVE 軸単位で絶対移動 8-46

30 DRIVEI ロボットを軸単位で相対移動 8-50

31 ENDSELECT SELECT CASE 文を終了する 8-55

32 ENDSUB サブプロシージャの定義を終了する 8-56

33 ERR/ERL エラーコード / エラー発生行番号の取得 8-57

34 ETHSTS イーサネットポートの状態を取得する 8-58

35 EXITFOR FOR 〜 NEXT 文のループを強制的に終了する 8-59

36 EXITSUB SUB 文〜 END SUB 文で定義されたサブプロシージャを強制的に終了す

る 8-60

37 EXITTASK 実行している自分自身のタスクを終了する 8-61

38 FOR 〜 NEXT 変数が指定の値を超えるまでループする 8-62

39 GEPSTS 汎用イーサネットポートの状態を取得する 8-63

40 GOSUB 〜RETURN サブルーチンにジャンプする 8-64

41 GOTO 指定した行に無条件でジャンプする 8-65

42 HALT プログラムを停止してリセットする 8-66

43 HALTALL 全てのプログラムを停止してリセットする 8-67

CONTENTS RCX340プログラミングマニュアル

T-7T-6

44 HAND ハンド定義をする 8-68

44.1 スカラロボットの場合 8-69

44.2 直交系ロボットの場合 8-71

45 HOLD プログラムを一時停止する 8-73

46 HOLDALL 全てのプログラムを一時停止する 8-74

47 IF 条件式の値を評価し、条件に応じて命令文を実行します。 8-75

47.1 単純 IF文 8-75

47.2 ブロック IF文 8-76

48 INPUT プログラミングボックスなどから変数に値を代入する 8-77

49 INT 小数点以下の切り捨て 8-79

50 JTOXY 軸単位系変換(パルス→ミリ) 8-80

51 LEFT$ 左端から文字列を抽出する 8-81

52 LEFTY スカラロボットの手系を左手系に設定する 8-82

53 LEN 文字列の長さを取得する 8-83

54 LET 変数に値を代入する 8-84

55 LO アームロックを出力または出力状態を取得する 8-87

56 LOCx ポイントデータを軸単位またはシフトデータを要素単位で 設定/取得する 8-88

57 LSHIFT ビットの左シフト 8-89

58 MCHREF マシンリファレンス(センサ方式または突き当て方式の軸)を 取得する 8-90

59 MID$ 文字列を指定した位置から取得する 8-91

60 MO 指定された値を MO ポートに出力または出力状態を取得する 8-92

61 MOTOR モータ電源状態をコントロールする 8-94

62 MOVE ロボットの全軸を絶対位置移動する 8-95

63 MOVEI ロボットの全軸を相対位置移動する 8-109

64 MOVET ロボットの全軸をツール座標相対位置移動する 8-120

65 MTRDUTY 指定された軸のモータ負荷率を取得 8-131

66 OFFLINE 通信ポートをオフラインモードに設定する 8-132

67 ONERRORGOTO エラー発生時に指定したラベルにジャンプする 8-133

68 ON 〜 GOSUB 式の値によって指定したサブルーチンを実行する 8-134

69 ON 〜 GOTO 式の値によって指定したラベルにジャンプする 8-135

70 ONLINE 通信ポートをオンラインモードに設定する 8-136

71 OPEN 指定された汎用イーサネットポートを開く 8-137

72 ORD キャラクタコードを求める 8-138

73 ORGORD ロボットの原点復帰順序を設定/取得する 8-139

CONTENTS RCX340プログラミングマニュアル

T-7T-6

74 ORIGIN 原点復帰をする 8-140

75 OUT 指定されたポートの出力をオンする 8-141

76 OUTPOS ロボットのアウト有効位置のパラメータを設定/取得する 8-142

77 PATH PATH 移動経路を設定する 8-144

78 PATHEND PATH の経路設定を終了する 8-150

79 PATHSET PATH の経路設定を開始する 8-151

80 PATHSTART PATH 移動を開始する 8-153

81 PDEF パレットを定義する 8-156

82 PGMTSK 指定されたプログラムが登録されているタスク番号を取得する 8-157

83 PGN 指定されたプログラム名からプログラム番号を取得する 8-158

84 PMOVE ロボットのパレット移動を実行する 8-159

85 Pn ポイントを定義する 8-163

86 PPNT パレットポイントデータ作成 8-165

87 PRINT プログラミングボックスなどに指定した式の値を表示する 8-166

88 PSHFRC 押付力パラメータを設定 / 取得 8-167

89 PSHJGSP 押付判定速度閾値パラメータを設定 / 取得 8-168

90 PSHMTD 押付方式パラメータを設定 / 取得 8-169

91 PSHRSLT PUSH 文終了時の状態を取得 8-170

92 PSHSPD 押付速度比率パラメータを設定 / 取得 8-171

93 PSHTIME 押付時間パラメータを設定 / 取得 8-172

94 PUSH 軸単位で押付動作 8-173

95 RADDEG 単位変換(ラジアン→度) 8-178

96 REM コメントを挿入する 8-179

97 RESET 指定ポートのビットをオフまたは変数をクリアする 8-180

98 RESTART 一時停止中の他のタスクを再起動する 8-181

99 RESUME エラーの回復処理後にプログラムを再開する 8-182

100RETURN GOSUB で分岐した処理を、GOSUB の次行に戻す 8-183

101RIGHT$ 右端から文字列を抽出する 8-184

102RIGHTY スカラロボットの手系を右手系に設定する 8-185

103RSHIFT ビットの右シフト 8-186

104SELECTCASE 〜 ENDSELECT 式の値によって指定された命令ブロックを実行する 8-187

105SEND 読出しファイルのデータを書き込みファイルに転送する 8-188

106SERVO サーボ状態をコントロールする 8-190

107SET 指定されたポートのビットをオンする 8-191

108SETGEP 汎用イーサネットポートを設定する 8-192

CONTENTS RCX340プログラミングマニュアル

T-9T-8

109SGI 指定された整数型静的変数に値を代入/取得する 8-193

110SGR 指定された実数型静的変数に値を代入/取得する 8-194

111 SHARED 変数を引き渡さずにサブプロシージャで参照可能にする 8-195

112SHIFT シフト座標を設定する 8-196

113SI 指定された SI の状態を取得する 8-197

114SID 指定されたシリアル入力のワード情報 ( ダブルワード ) を取得する 8-198

115SIN 正弦値を求める 8-199

116SIW 指定されたシリアル入力のワード情報を取得する 8-200

117Sn シフト座標を定義する 8-201

118SO シリアルポートに指定された値を出力または出力状態を取得する 8-202

119SOD 指定されたシリアル出力のワード情報 ( ダブルワード ) を 出力または出力状態を取得する 8-203

120SOW 指定されたシリアル出力のワード情報を出力または出力状態を 取得する 8-204

121SPEED プログラム移動速度を変更する 8-205

122SQR 平方根を求める 8-206

123START 新規タスクを起動する 8-207

124STR$ 数値を文字列に変換する 8-208

125SUB 〜 ENDSUB サブプロシージャを定義する 8-209

126SUSPEND 実行中の他のタスクを一時停止する 8-211

127SWI 実行プログラムを切り替える 8-212

128TAN 正接値を求める 8-213

129TCOUNTER タイマ・カウンタ 8-214

130TIME$ 現在時刻を取得する 8-215

131TIMER 現在時刻を取得する 8-216

132TO TO ポートに指定した値を出力または出力状態を取得する 8-217

133TOLE 公差パラメータを設定/取得する 8-218

134TORQUE 最大トルク指令値を設定/取得する 8-219

135TSKPGM 指定されたタスク番号に登録されているプログラム番号を 取得する 8-221

136VAL 文字列を数値に変換する 8-222

137WAIT 条件式が成立するまで待つ 8-223

138WAITARM ロボットの軸動作の完了を待つ 8-224

139WEIGHT 先端質量パラメータを設定/取得する 8-225

140WEND WHILE 文の命令ブロックを終了する 8-226

141WHERE アーム現在位置(パルス座標)を取得する 8-227

CONTENTS RCX340プログラミングマニュアル

T-9T-8

142WHILE 〜 WEND 条件が成立している間動作を繰り返す 8-228

143WHRXY アーム現在位置を直交座標で取得する 8-229

144XYTOJ 直交座標データ(ミリ)を関節座標データ (パルス)に変換する 8-230

第 9章 PATH 文

1 概要 9-1

2 特徴 9-1

3 使用方法 9-1

4 注意事項 9-2

第 10章 データファイル詳細

1 概要 10-1

1.1 データファイルの種類 10-1

1.2 注意点 10-2

2 プログラムファイル 10-3

2.1 プログラム全体 10-3

2.2 プログラム単位 10-4

3 ポイントファイル 10-5

3.1 ポイント全体 10-5

3.2 ポイント単位 10-7

4 ポイントコメントファイル 10-8

4.1 ポイントコメント全体 10-8

4.2 ポイントコメント単位 10-9

5 ポイントネームファイル 10-10

5.1 ポイントネーム全体 10-10

5.2 ポイントネーム単位 10-11

6 パラメータファイル 10-12

6.1 パラメータ全体 10-12

6.2 パラメータ単位 10-14

7 シフト座標定義ファイル 10-16

7.1 シフト全体 10-16

CONTENTS RCX340プログラミングマニュアル

T-11T-10

7.2 シフト単位 10-17

8 ハンド定義ファイル 10-18

8.1 ハンド全体 10-18

8.2 ハンド単位 10-19

9 パレット定義ファイル 10-20

9.1 パレット定義全体 10-20

9.2 パレット定義単位 10-22

10 汎用イーサネットポート定義ファイル 10-24

11 入出力ネームファイル 10-26

11.1 入出力ネーム全体 10-26

11.2 入出力タイプ単位 10-27

11.3 入出力ポート単位 10-28

11.4 入出力ビット単位 10-29

12 領域判定出力定義ファイル 10-30

12.1 領域判定出力定義全体 10-30

12.2 領域判定出力定義単位 10-31

13 オールファイル 10-32

13.1 オールファイル全体 10-32

14 プログラムディレクトリファイル 10-34

14.1 プログラムディレクトリ全体 10-34

14.2 プログラムディレクトリ単位 10-35

15 パラメータディレクトリファイル 10-36

15.1 パラメータディレクトリ全体 10-36

16 マシンリファレンスファイル 10-37

16.1 マシンリファレンス (センサ、突き当て ) 10-37

16.2 マシンリファレンス (マーク ) 10-38

17 システム構成情報ファイル 10-39

18 バージョン情報ファイル 10-40

19 オプションボードファイル 10-41

CONTENTS RCX340プログラミングマニュアル

T-11T-10

20 自己診断ファイル 10-42

21 アラーム履歴ファイル 10-43

22 メモリ残量ファイル 10-45

23 変数ファイル 10-46

23.1 動的変数 10-46

23.2 静的変数 10-48

23.2.1 整数型静的変数 (SGI) 10-48

23.2.2 実数型静的変数 (SGR) 10-50

24 定数ファイル 10-52

24.1 文字列単体 10-52

25 配列変数ファイル 10-53

25.1 配列変数全体 10-53

25.2 配列変数単位 10-54

26 DI ファイル 10-55

26.1 DI全体 10-55

26.2 DIポート単位 10-56

27 DO ファイル 10-57

27.1 DO全体 10-57

27.2 DOポート単位 10-58

28 MO ファイル 10-59

28.1 MO全体 10-59

28.2 MOポート単位 10-60

29 LO ファイル 10-61

29.1 LO全体 10-61

29.2 LOポート単位 10-62

30 TO ファイル 10-63

30.1 TO全体 10-63

30.2 TOポート単位 10-64

31 SI ファイル 10-65

31.1 SI全体 10-65

31.2 SIポート単位 10-66

CONTENTS RCX340プログラミングマニュアル

T-13T-12

32 SO ファイル 10-67

32.1 SO全体 10-67

32.2 SOポート単位 10-68

33 SIWファイル 10-69

33.1 SIW全体 10-69

33.2 SIW単位 10-70

34 SOWファイル 10-71

34.1 SOW全体 10-71

34.2 SOW単位 10-72

35 EOF ファイル 10-73

35.1 EOFデータ 10-73

36 シリアルポート通信ファイル 10-74

36.1 シリアルポート通信ファイル 10-74

37 Ethernet ポート通信ファイル 10-75

37.1 Ethernetポート通信ファイル 10-75

第 11章 ユーザープログラム例

1 基本編 11-1

1.1 ポイントデータを直接プログラム中に書く 11-1

1.2 ポイント番号を使用する 11-2

1.3 シフト座標の使用 11-3

1.4 パレタイジング 11-4

1.4.1 ポイント座標の算出 11-4

1.4.2 パレット移動の利用 11-6

1.5 DI/DO(デジタル入出力)動作 11-7

2 応用編 11-8

2.1 2点間のピック &プレイス 11-8

2.2 パレタイジング 11-10

2.3 段積みの部品のピック &プレイス 11-12

2.4 部品の検査 1(マルチタスクの例) 11-14

2.5 シーリング 11-17

2.6 外部装置と RS-232Cを使用した接続(その1) 11-18

2.7 外部装置と RS-232Cを使用した接続(その2) 11-19

CONTENTS RCX340プログラミングマニュアル

T-13T-12

第 12章 オンライン命令

1 オンライン命令一覧表 12-1

1.1 オンライン命令一覧表:機能別 12-2

1.2 オンライン命令一覧表:アルファベット順 12-6

2 操作・設定コマンド 12-9

2.1 プログラム操作 12-9

2.2 手動モード操作 12-17

2.3 アラームリセット 12-18

2.4 出力メッセージバッファクリア 12-19

2.5 入力データ設定 12-20

2.6 アクセスレベル変更 12-21

2.7 パスワード変更 12-21

3 参照コマンド 12-22

3.1 原点復帰状態取得 12-22

3.2 サーボ状態取得 12-23

3.3 モータ電源状態取得 12-23

3.4 アクセスレベル取得 12-24

3.5 ブレークポイント状態取得 12-24

3.6 モード状態取得 12-25

3.7 通信ポート状態取得 12-25

3.8 メインプログラム番号取得 12-26

3.9 シーケンスプログラム実行状態取得 12-26

3.10 バージョン取得 12-27

3.11 起動 /一時停止状態タスク取得 12-27

3.12 タスク稼働状態取得 12-28

3.13 タスク終了条件取得 12-28

3.14 シフト状態取得 12-29

3.15 ハンド状態取得 12-29

3.16 メモリ残容量取得 12-30

3.17 アラーム状態取得 12-30

3.18 非常停止状態取得 12-31

3.19 手動移動速度取得 12-31

3.20 インチング移動量取得 12-32

3.21 最終参照ポイント番号取得 12-32

3.22 出力メッセージ取得 12-33

CONTENTS RCX340プログラミングマニュアル

T-15T-14

3.23 入力データ取得 12-33

3.24 値取得 12-34

4 動作コマンド 12-36

4.1 アブソリセット 12-36

4.2 原点復帰動作 12-37

4.3 手動移動:インチング 12-38

4.4 手動移動:ジョグ 12-39

5 データファイル操作コマンド 12-40

5.1 コピー操作 12-40

5.2 削除操作 12-41

5.3 プログラム名変更 12-46

5.4 プログラム属性変更 12-46

5.5 初期化処理 12-47

5.6 データ読出し処理 12-49

5.7 データ書込み処理 12-50

6 ユーティリティコマンド 12-51

6.1 シーケンスプログラム実行フラグ設定 12-51

6.2 日付設定 12-51

6.3 時刻設定 12-52

7 ロボット言語の単独実行 12-53

8 制御コード 12-54

第 13章 付録

1 予約語一覧表 13-1

2 従来機種からの変更点 13-3

1 プログラム名 13-3

2 複数台ロボット制御 13-3

3 マルチタスク 13-4

4 ロボット言語 13-4

5 オンラインコマンド 13-5

6 データファイル 13-5

索引

CONTENTS RCX340プログラミングマニュアル

T-15T-14

サービス依頼票

第 1章

プログラミングの記述方法

1 1 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1-1

2 2 文字 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1-1

3 3 プログラムの基本 ・・・・・・・・・・・・・・・・・・・・・ 1-1

4 4 プログラム名 ・・・・・・・・・・・・・・・・・・・・・・・・・ 1-2

5 5 識別子 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1-4

6 6 LABEL 文 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1-4

7 7 コメント ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1-5

8 8 命令文形式 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1-5

1

2

3

4

5

6

7

概要 ● 1-1

1 概要

ヤマハロボットのプログラミングは、ヤマハで開発した独自のロボット言語を使用します。この

言語は BASIC(Begginer's All-purpose Symbolic Instruction Code)に似た簡単なプログラミング

言語で、誰でも容易に習得でき、複雑なロボットの動作を簡単に記述することができます。本書

では、このロボット言語の記述の方法やその応用例を説明します。

2 文字

ヤマハロボット言語で使用できる文字・記号は下記の通りです。

使用できる文字は全て半角です。 ・・ 英文字

A 〜 Z , a 〜 z・・ 数字

0 〜 9・・ 特殊記号

( ) [ ] + - * / ^ = < > & | ~ _ % ! # $ : ; , . { } ’ @ ?・・ カナ文字

・ カナ文字は、プログラミングボックスでは入力できません。 ホストコンピュータ等からの

通信によってのみ使用することができます。

・ スペースも1つ1文字としてカウントされます。

3 プログラムの基本

プログラムは 1 行に一つの命令文を記述します。 全ての行に命令文が記述されている必要があ

り、空白の行があるとプログラム実行の際にエラーとなりますので注意してください(最終行で

改行をすると空白行が発生するので注意してください)。

プログラム中で同一の処理を繰り返し行う場合は、サブルーチンやサブプロシージャとして記述

し、メインルーチンから呼び出すことで、プログラムを効率的に作成することができます。

また、複数のプログラムで同一の処理を行う場合は、プログラム名を「COMMON」としたプログ

ラムに共通ルーチンを記述し、複数のプログラムから呼び出してその処理を行うことができます。

決まった計算を行う場合は、ユーザー関数を定義することができます。一度定義したユーザー関

数は簡単に呼び出すことができますので、複雑な計算も簡単に処理することができます。

さらに、マルチタスクプログラムを使用することで、複数の命令文を同時に実行させて並列処理

を行うことも可能です。

これらの機能を使うことにより、複雑な処理を行うプログラムを作成することが可能です。

MEMO

n 要点

・・ サブプロシージャについては 8 章「11 CALL」及び「125 SUB 〜 END SUB」を参照してください。

n 要点

・・ ユーザー定義関数については 8 章「22 DEF FN」を参照してください。

1-2 ● 第 1章 プログラミングの記述方法

1

2

3

4

5

6

7

4 プログラム名

プログラム名とは、コントローラ内に作成することのできるプログラム固有の名前のことです。

プログラム名は、次の条件を満たせば自由に決めることができます。

■ 長さ 32 文字以内の英数字と _(アンダースコア)の組合せで表します。

■ 重複して付けることはできません。

下記の 2 つのプログラム名はあらかじめ予約されており、これらの名前を付けたプログラムは特

別な意味を持ちます。

A) SEQUENCE

B) COMMON

それぞれのプログラムの機能は下記の通りです。

A) SEQUENCE

 機能  RCX340 は、通常のロボットプログラムとは別に、ロボット入出力(DI, DO, MO,

LO, TO, SI, SO)に対して高速で処理を行うプログラム(シーケンスプログラム)を動

作させることができます。この機能を使い、コントローラ内に疑似 PLC(シーケンサ)

を作り出すことができます。

シーケンスプログラムは、専用入力:DI10(シーケンスコントロール入力)の信号が

入力されていると、プログラムの実行状態に関わらずコントローラが自動または手動

モードの時に、一定の周期で動作します(周期はプログラム容量によって決まります。

詳細は 7 章「4.6 シーケンスプログラム仕様」を参照してください)。

これにより、センサ、押しボタンスイッチ、電磁弁等の入出力信号の監視または動

作を行うことが可能です。

また、シーケンスプログラムはロボット言語を用いて記述しますので、新たな言語

を使用する必要はなく、簡単に作成することができます。

SAMPLE

DO(20)=~DI(20) DO(25)=DI(21) AND DI(22) MO(26)=DO(26) OR DO(25) :

 参照  詳細は、7 章「4.6 シーケンスプログラム仕様」を参照してください。

1

2

3

4

5

6

7

プログラム名 ● 1-3

B)COMMON

 機能  複数のロボットプログラムがあり、それぞれのプログラムで同一の処理を行う場合、

「COMMON」という名前のプログラムを用意し、その中に共通の処理ルーチンを記述

することにより、複数のプログラムからその処理を呼び出して実行することができ

ます。これにより、プログラム領域を有効に使うことができます。

下記のサンプルプログラムは、COMMONに「2 点間の距離を求める(SUB *DISTANCE)」

「面積を求める(*AREA)」という二つの処理を共通ルーチンとして記述し、それを別

のプログラム(SAMPLE1 および SAMPLE2)から呼び出します。

SAMPLE1 または SAMPLE2 を実行すると、SUB *DISTANCE(A!,B!,C!)および

*AREA ルーチンが実行されます。

SAMPLE

プログラム名 :SAMPLE1 X!=2.5 Y!=1.2 CALL *DISTANCE(X!,Y!,REF C!) GOSUB *AREA PRINT C!,Z! HALT

プログラム名 :SAMPLE2 X!=5.5 Y!=0.2 CALL *DISTANCE(X!,Y!,REF C!) GOSUB *AREA PRINT C!,Z! HALT

プログラム名 :COMMON ・・・・・・・・・・・・・・・・・ 共通ルーチン

SUB *DISTANCE(A!,B!,C!) C!=SQR(A!^2+B!^2) END SUB *AREA: Z!=X!*Y! RETURN

 参照  詳細は、本書の各命令を参照してください。

1-4 ● 第 1章 プログラミングの記述方法

1

2

3

4

5

6

7

5 識別子

ラベル名・変数名・プロシージャ名などに使われる文字や数字の組み合わせを「識別子」と呼び

ます。識別子は、次の範囲内で自由に決めることができます。

■ 英字・数字・アンダースコア( _ )のいずれかを用います。特殊な記号を含めることはできません。

また、アンダースコア( _ )は先頭文字として使用できません。

■ 長さは最大で 32 文字までです(32 文字を超えた部分は読み捨てられます)。

■ 使用できる識別子の最大数は識別子の長さにより変わります。全ての識別子の長さが 32 文字

のときに最大で、局所変数(ローカル変数):128 個(1 プログラムタスク当り)、全域変数(グロー

バル変数):512 個まで使用できます。

■ 変数名については、予約語と同じ変数名、システム変数で定義されている名前で始まる変数名

は使用できません。文字つづりの先頭は必ず英文字で始めます。ただし、ラベル名の場合、“*”

に続く文字は数字でも構いません。

SAMPLE

LOOP, SUBROUTINE, GET_DATA

 参照  予約語については、13 章「1 予約語一覧表」を参照してください。

システム変数については 3 章「9 システム変数」を参照してください。

6 LABEL 文

プログラム行にラベルを定義します。

形式

*ラベル:

ラベルは常に“*”で始まらなくてはなりません。また、行の先頭から記述する必要があります。

ラベルの定義時には末尾に「:」が必要ですが、プログラム中でジャンプ先を記述する場合は不

要です。

1. 一文字目は英字または数字で始まらなくてはなりません。

2. 英字・数字・アンダースコア( _ )のいずれかを用います。

特殊な記号を含めることはできません。

3. 長さは最大で 32 文字までです(32 文字を超えた部分は読み捨てられます)。

SAMPLE

*ST: ・・・・・・・・・・・・・・・・・・・・・・・・・・ *STを定義

 MOVE P,P0 DO(20) = 1 MOVE P,P1 DO(20) = 0GOTO *ST ・・・・・・・・・・・・・・・・・・・・・・・・・・ *STへジャンプ

HALT

1

2

3

4

5

6

7

コメント ● 1-5

7 コメント

REM または ’(アポストロフィ)以降の文字はコメントとみなされます。コメント文は実行され

ません。

また、コメントは行の途中から書くことも可能です。

SAMPLE

REM *** MAIN PROGRAM *** (メインプログラム)

’*** SUBROUTINE *** (サブルーチン)

HALT ’HALT COMMAND ・・・・・・・・・・・ 行の途中からでも記述可能

8 命令文形式

形式

ラベル : 文 オペランド

ロボット言語の 1 つの命令文は、下記の形式で必ず 1 行以内に記述します。

・・    (網掛け)の部分は省略可能であることを示します。

・・ 斜体の項目は、規定形式で記述します。

・・ | | で囲まれた項目は、中に記述されている項目のいずれかを記述します。

・・ ラベルは省略可能です。ラベルを宣言する時は、必ずアスタリスク(*)で始まり、コロン(:)

で終わる必要があります(ジャンプ先としてラベルを記述する時は、コロンは不要です)。

ラベルについては、本章「6 LABEL 文」を参照してください。

・・ オペランドは命令文により不要な場合があります。 ・・ ジャンプ指定がないときは、プログラムは上の行から下の行へ順に実行されます。

1 行に記述できる最大文字数は 255 文字です。

第 2章

定数

1 1 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 2-1

2 2 数値型定数 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 2-1

3 3 文字型定数 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 2-2

1

2

3

4

5

6

7

概要 ● 2-1

1 概要

定数は大きく「数値型」と「文字型」に分けられ、それぞれさらに下記のように分類されます。

分 類 タイプ 詳細/範囲

数値型 整数型 10 進整定数

-2,147,483,648 〜 2,147,483,647

2 進定数

&B0 〜 &B11111111

16 進定数

&H80000000 〜 &H7FFFFFFF

実数型 単精度実数

-999,999.9 から +999,999.9

指数形式単精度実数

-1.0×1038 〜 +1.0×1038

文字型 文字列 255 バイト以内の英文字、数字、特殊文字、カナ文字

2 数値型定数

2.1 整数型定数

1. 10 進整定数

-2,147,483,648 〜 2,147,483,647 までの整数。

2. 2 進定数

8 ビット以下の符号なし 2 進数。2 進数を表す &B を先頭に付けます。

範囲:&B0(10 進:0)〜 &B11111111(10 進:255)

3. 16 進定数

32 ビット以下の符号付き 16 進数。16 進数を表す &H を先頭に付けます。

範囲:&H80000000(10 進:-2,147,483,648)〜 &H7FFFFFFF(10 進:2,147,483,647)

2.2 実数型定数

1. 単精度実数

範囲:-999,999.9 から +999,999.9 までの実数

・整数と小数を足して 7 桁以下( 例:.0000001 も可能)。

2. 指数形式の単精度実数

範囲:-1.0× 1038 〜 +1.0× 1038

・仮数は整数と小数を足して 7 桁以下

例: -1. 23456E-12 3. 14E0 1. E5

・ 整数型定数の範囲、-2,147,483,648 〜 2,147,483,647 を符号付き 16 進数で表現すると、

&H80000000 〜 &H7FFFFFFF となります。

MEMO

2-2 ● 第 2章 定数

1

2

3

4

5

6

7

3 文字型定数

文字型定数は前後を"(ダブルクォーテーション)で囲んだ文字列データです。長さは 255 バイ

ト以内で、文字列中では、英大文字、数字、特殊記号、カナ文字が使用できます。

文字列として"(ダブルクォーテーション)を使用する場合には、"を続けて記述します。

SAMPLE

"YAMAHA ROBOT" "EXAMPLE OF""A""" ・・・・・・・・・・・・・・・・ EXAMPLE OF "A"となる

PRINT "COMPLETED""ヤマハロボット "

第 3章

変数

1 1 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 3-1

2 2 ユーザー変数とシステム変数 ・・・・・・・・・・・ 3-2

3 3 変数名 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 3-3

4 4 変数の型 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 3-4

5 5 配列 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 3-5

6 6 値の代入 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 3-5

7 7 型の変換 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 3-6

8 8 値渡しと参照渡し ・・・・・・・・・・・・・・・・・・・・・ 3-6

9 9 システム変数 ・・・・・・・・・・・・・・・・・・・・・・・・・ 3-7

10 10 ビット指定 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 3-17

11 11 変数の有効範囲 ・・・・・・・・・・・・・・・・・・・・・・ 3-18

12 12 変数のクリア ・・・・・・・・・・・・・・・・・・・・・・・・ 3-19

1

2

3

4

5

6

7

概要 ● 3-1

1 概要

変数には、自由に定義できる「ユーザー変数」と、あらかじめ名前や機能が決められている「シス

テム変数」があります。

ユーザー変数には、プログラム編集、プログラムリセット、プログラム切り替えなどで内容がク

リアされる「動的変数」と、メモリをクリアしない限り内容が保持される「静的変数」があります。

このうち、動的変数は自由に名前を定義することができ、配列変数を使用することもできます。

変数を利用する場合は、変数の名前と型を決めてプログラム中に記述するだけで良く、特に宣言

を行う必要はありません。ただし、配列変数はあらかじめ DIM 文での定義が必要です。

  

動的変数 数値型

数値型

文字列型変数

整数型変数

実数型変数(単精度)

整数型変数

実数型変数(単精度)

静的変数

入出力変数

ポイント変数

シフト変数

出力変数

入力変数

文字型

ユーザー変数

システム変数

ユーザー変数とシステム変数

31301-R9-00

 参照  配列についての詳細は、本章「5 配列」を参照してください。

1

2

3

4

5

6

7

3-2 ● 第 3章 変数

2 ユーザー変数とシステム変数

2.1 ユーザー変数

数値型変数には「整数型」と「実数型」があり、扱うことのできる数値の範囲が異なります。

その他、文字型変数、配列変数など、使用できる変数の型とデータの範囲を示します。

分 類 変数の型 詳細・値の範囲

動的変数 数値型 整数型変数

-2,147,483,648 〜 2,147,483,647

( 符号付き 16 進数:&H80000000 〜 &H7FFFFFFF)

実数型変数(単精度)

-1.0×1038 〜 +1.0×1038

文字型 文字列型変数

255 バイト以内の英文字、数字、特殊文字、カナ文字

静的変数 数値型 整数型変数

-2,147,483,648 〜 2,147,483,647

実数型変数(単精度)

-1.0×1038 〜 +1.0×1038

配列変数 数値型 整数型配列

-2,147,483,648 〜 2,147,483,647

実数型配列(単精度)

-1.0×1038 〜 +1.0×1038

文字型 文字列型配列

255 バイト以内の英文字、数字、特殊文字、カナ文字

2.2 システム変数

システム変数は下記のようにあらかじめ名前が決まっており、変更することはできません。

分 類 タイプ 詳 細 具体例

入出力変数 入力変数 外部からの信号・状態入力 DI, SI, SIW, SID

出力変数 外部への信号・状態出力 DO, SO, SOW, SOD

ポイント変数 ポイントデータを扱う Pnnnn

シフト変数 シフト番号を定数または式で指定 Sn

 参照  詳細は、本章「9 システム変数」を参照してください。

n 要点

・・ 配列変数は動的変数です。

1

2

3

4

5

6

7

変数名 ● 3-3

3 変数名

3.1 動的変数の名前

動的変数の変数名は、次の規則に従えば自由に決めることができます。

■ 英字・数字・アンダースコア( _ )のいずれかを用います。特殊な記号を含めることはできません。

■ 長さは最大で 32 文字までです(32 文字を超えた部分は読み捨てられます)。

■ 一文字目は英字で始まらなくてはなりません。

SAMPLE

COUNT ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ○ 使用可能

COUNT123 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ○ 使用可能

2COUNT ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ × 使用不可

■ 予約語と同じ名前の変数名は使用できません。

■ システム変数(定義済み変数)で使用されている名前およびユーザ定義関数で始まる変数名は

使用できません。

FN, DIn, DOn, MOn, LOn, TOn, SIn, SOn, Pn, Sn, Hn(n は数値)

SAMPLE

COUNT ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ○ 使用可能 ABS ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ × (予約語)

FNAME ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ × (FN:ユーザ定義関数)

S91 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ × (Sn:定義済み変数)

 参照  予約語については、13 章「1 予約語一覧表」を参照してください。

3.2 静的変数の名前

静的変数の変数名は下記のように決められており、他の名前を使用することはできません。

変数の型 変数名

整数型 SGIn (n:0 〜 31)

実数型 SGRn (n:0 〜 31)

静的変数は、オンライン命令で初期処理を行わない限り内容はクリアされません。

 参照  静的変数のクリアについては、本章「12 変数のクリア」を参照してください。

1

2

3

4

5

6

7

3-4 ● 第 3章 変数

4 変数の型

変数の型は変数名の最後に型宣言文字を付けて区別します。

但し、静的変数は変数の型ごとに名前が決まっているため、型宣言文字は不要です。

宣言型文字 変数の型 具体例

$ 文字型変数 STR1$

% 整数型変数 CONT0%, ACT%(1)

! 実数型変数 CNT1!, CNT1

・ 型宣言文字がない場合、実数型と見なされます。

・ 同じ識別子を使った変数では、変数の型の違いで別の変数と認識されます。

・ASP_DEF% ・・ 整数型の変数 

) ・ASP_DEF ・・・・ 実数型の変数 → それぞれ異なる変数として扱われます。

・ASP_DEF! ・・・ 実数型の変数 

) ・ASP_DEF ・・・・ 実数型の変数 → どちらも同じ変数として扱われます。

4.1 数値型

整数型

整数型変数、整数型配列変数の要素が扱える整数値は、-2,147,483,648 〜 2,147,483,647 です ( 符

号付き 16 進数で表現すると、&H80000000 〜 &H7FFFFFFF)。

例: R1% = 10 R2%(2) = R1% + 10000

実数型

実数型変数、実数型配列変数の要素が扱える実数値は、-1.0 × 1038 〜 1.0 × 1038 です。

例: R1! = 10.31 R2!(2)= R1% + 1.98E3

4.2 文字型

文字型変数、文字列配列の要素が扱える文字列は、最大 255 文字です。

文字列中では、英文字、数字、特殊文字、カナ文字が使用できます。

例: R1$ = "YAMAHA" R2$(2) = R1$ + "MOTOR" ・・・・・・・・・・"YAMAHA MOTOR"になる

MEMO

n 要点

・・実数を整数型の変数に代入すると、四捨五入されます。詳しくは 4 章「1.5 型の変換」を参照してください。

n 要点

・・ 実数型の「!」は省略可能です。

1

2

3

4

5

6

7

配列 ● 3-5

5 配列

動的変数は、数値型・文字型のいずれも配列を使用することができます。

配列を使うと、連続した同じ型の複数のデータをまとめて管理することが可能です。

配列の各要素は、一つの変数名の後にカッコで添字を振ることで参照します。添字は整数または

式を使用することができ、最大 3 次元まで使用できます。

配列を使用するためにはあらかじめ DIM 文によって宣言する必要があり、使用できる要素数は

宣言した添字+ 1 までとなります(0 〜添字まで)。

・ 配列変数はすべて動的変数です(動的変数については本章「11 変数の有効範囲」を参照して

ください)。

・ DIM 文で定義できる配列変数の大きさは、プログラムの大きさによって変化します。

形式

変数名  %  (式 ,式 ,式 )     !     $

SAMPLE

A%(1) ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 整数型配列変数 DATA!(1,10,3) ・・・・・・・・・・・・・・・・・・・・・ 単精度実数型配列変数(3次元配列)

STRING$(10) ・・・・・・・・・・・・・・・・・・・・・・・・・ 文字型配列変数

6 値の代入

変数に値を代入する場合は、代入文(LET)を使用することもできます。

・ “LET”は常に省略可能で、代入文を直接記述できます。

形式

LET 変数 = 式

値を代入したい変数を左辺に置き、右辺に代入したい値、または式を書きます。式には、定数、

変数、算術演算式などを記述することができます。

 参照  詳細は、8 章「54 LET(代入文)」を参照してください。

MEMO

MEMO

1

2

3

4

5

6

7

3-6 ● 第 3章 変数

7 型の変換

変数に異なる型の値を代入する場合、下記の通りデータの型が変換されます。

・・ 整数型に実数を代入

小数点以下が四捨五入されて代入されます。

・・ 実数型に整数を代入

そのまま代入され、実数として扱われます。

・・ 文字列型に数値を代入

数値は自動的に文字列に変換されて代入されます。

・・ 数値型に文字列を代入

代入できません。プログラム実行時にエラーとなります。命令「VAL」で数値に変換してから

代入してください。

8 値渡しと参照渡し

CALL 文でサブプロシージャを呼び出す際に変数を渡すことができます。

変数の渡し方には、値渡しと参照渡しの二つの方法があります。

値渡し

サブプロシージャに変数の値を渡す方法です。サブプロシージャ内で値を変更しても、呼び出し

元の変数の内容は変わりません。

CALL 文の実引数に定数、式、変数、配列の要素(配列名の後に(添字)がついたもの)を指定し

た場合、値渡しとなります。

参照渡し

サブプロシージャに、変数への参照(メモリ中のアドレス)を渡す方法です。サブプロシージャ

内で値を変更すると、元の変数の内容も同じように変更されます。

CALL 文の実引数に配列全体(配列名の後に( )がついたもの)を指定するか、または実引数の

前に REF を付加した場合、参照渡しとなります。

  

X%=5

CALL *TEST( X% )

PRINT X%

HALT

’SUB ROUTINE

SUB *TEST( A% )

A%=A%*10

END SUB

X%=5

CALL *TEST( REF X% )

PRINT X%

HALT

’SUB ROUTINE

SUB *TEST( A% )

A%=A%*10

END SUB

X%の値は「5」のまま X%の値は「50」になる

値渡し 参照渡し

実行結果 実行結果

値渡しと参照渡し

31302-R7-00

1

2

3

4

5

6

7

システム変数 ● 3-7

9 システム変数

下記の変数はあらかじめ定義されています。これらの変数名で始まる名前は使用できません。

変数の種類 形式 意 味

ポイント変数 Pnnn / P[式] ポイント番号を指定する

シフト変数 Sn / S[式] シフト番号を定数または式で指定する

パラレル入力変数 DI(mb), DIm(b) パラレル入力信号の状態

パラレル出力変数 DO(mb), DOm(b) パラレル出力信号の指定と状態

内部出力変数 MO(mb), MOm(b) コントローラ内部の出力信号の指定と状態

アームロック出力変数 LO(mb), LOm(b) 軸ごとに移動を禁止する

タイマ出力変数 TO(mb), TOm(b) シーケンスプログラムのタイマ機能用

シリアル入力変数 SI(mb), SIm(b) シリアル入力信号の状態

シリアル出力変数 SO(mb), SOm(b) シリアル出力信号の指定と状態

シリアルワード入力 SIW(m) シリアル入力のワード情報の状態

シリアルダブルワード入力 SID(m)      〃    (ダブルワード)

シリアルワード出力 SOW(m) シリアル出力のワード情報の出力と状態

シリアルダブルワード出力 SOD(m)      〃    (ダブルワード)

9.1 ポイント変数 ・ ポイント番号を定数または式で指定する・

形式

Pnnnnn または P[式]

 値  n:ポイント番号 ・・・・・・・・・・・ 0 〜 9

 機能  先頭の文字Pとそれに続く 5桁以下の数値、または[式]でポイント番号を表現します。

ポイント番号は、0 〜 29999 を指定できます。

例: P0 P110 P[A] P[START_POINT] P[A(10)]

1

2

3

4

5

6

7

3-8 ● 第 3章 変数

9.2 シフト変数 ・ シフト番号を定数または式で指定する

形式

Snn または S[式]

 値  n:シフト番号 ・・・・・・・・・・・・・ 0 〜 9

 機能  先頭の文字 S とそれに続く 2 桁の数値、または、[式]でシフト番号を表現します。シ

フト番号は、0 〜 39 を指定できます。

例: S1 S[A] S[BASE] S[A(10)]

・ シフト番号ごとに設定される「シフト座標範囲」を変更する場合は、プログラミングボック

スなどで行ってください。

9.3 パラレル入力変数 ・ パラレル入力信号の状態を示す・

形式 1

DIm(b,・・・,b)

形式 2

DI(mb,・・・,mb)

 値  m:ポート番号 ・・・・・・・・・・・・ 0 〜 7, 10 〜 17, 20 〜 27

b:ビット指定 ・・・・・・・・・・・・・ 0 〜 7

形式 1 で b,・・・,b が省略された場合、8 ビットすべてが対象になります。

例: A%=DI1() → DI(17)から DI(10)までの入力状態を変数 A%に代入

A%には 0〜 255までの整数が代入される

A%=DI5(7,4,0) → DI(57),DI(54),DI(50)の入力状態を変数 A%に代入

(上記の信号がすべて 1(ON)の時、A%=7となる)

A%=DI(27,15,10) → DI(27),DI(15),DI(10)の入力状態を変数 A%に代入

(上記の信号の DI(10)以外がすべて 1(ON)の時、A%=6となる)

WAIT DI(21)=1 → DI(21)が 1(ON)になるのを待つ

・ 複数のビット指定を行う場合は、左から降順(大→小)に記述してください。

・ 実際に入力ポートが存在しない場合、0 が入力されます。

MEMO

MEMO

1

2

3

4

5

6

7

システム変数 ● 3-9

9.4 パラレル出力変数 ・ パラレル出力信号の指定または出力状態を示す

形式 1

DOm(b,・・・,b)

形式 2

DO(mb,・・・,mb)

 値  m:ポート番号 ・・・・・・・・・・・・ 0 〜 7, 10 〜 17, 20 〜 27

b:ビット指定 ・・・・・・・・・・・・・ 0 〜 7

b,・・・,b が省略された場合、8 ビットすべてが対象になります。

例: A%=DO2() → DO(27)から DO(20)までの出力状態を変数 A%に代入

A%=DO5(7,4,0) → DO(57),DO(54),DO(50)の出力状態を変数 A%に代入

(上記の信号がすべて 1(ON)の時、A%=7となる) A%=DO(37,25,20) → DO(37),DO(25),DO(20)の出力状態を変数 A%に代入 (上記の信号の DO(20)以外すべて 1(ON)の時、A%=6となる) DO3()=B% → DO(37)から DO(30)までの出力を B%で表される状態に変化させる

例えば B%が 123の場合、123を 2進数で表すと“01111011”となり、

DO(37)および DO(32)が“0”、その他のビットが“1”となる

DO4(5,4,0)=&B101 → DO(45)および DO(40)を“1”、DO(44)を“0”にする

・ 複数のビット指定を行う場合は、左から降順(大→小)に記述してください。

・ 実際に出力ポートが存在しない場合、外部出力されません。

MEMO

1

2

3

4

5

6

7

3-10 ● 第 3章 変数

9.5 内部出力変数・ コントローラ内部の出力信号の指定と状態

形式 1

MOm(b,・・・,b)

形式 2

MO(mb,・・・,mb)

 値  m:ポート番号 ・・・・・・・・・・・・ 0 〜 7, 10 〜 17, 20 〜 27, 30 〜 33

b:ビット指定 ・・・・・・・・・・・・・ 0 〜 7

・形式 1 で b,・・・,b が省略された場合は、8 ビットすべてが対象になります。

 機能  コントローラ内部でのみ使用される内部出力変数について、状態の指定および参照

を行うことができます。

シーケンスプログラムとの信号のやりとり等で使用されます。

ポート 30 〜 33 は、専用の内部出力変数で、参照のみ可能です(変更はできません)。

1. ポート 30 には、ビット 0から順に第 1軸〜 8軸の原点センサの状態、ポート 31 には、

ビット 0から順に第 9軸〜 16軸の原点センサの状態が保持されます。

原点センサがオンすると 1 に、オフすると 0 になります。

2. ポート 34 には、ビット 0から順に第 1軸〜 8軸の軸ホールドの状態、ポート 35 には、

ビット 0から順に第 9軸〜 16軸の軸ホールドの状態が保持されます。

軸がホールドすると 1 に、非ホールドの状態では 0 になります。

ビット 7 6 5 4 3 2 1 0

ポート 30ポート 31

8 軸16 軸

7 軸15 軸

6 軸14 軸

5 軸13 軸

4 軸12 軸

3 軸11 軸

2 軸10 軸

1 軸9 軸

  原点センサ状態 0:オフ/ 1:オン(未接続軸は 1)

ポート 34ポート 35

8 軸16 軸

7 軸15 軸

6 軸14 軸

5 軸13 軸

4 軸12 軸

3 軸11 軸

2 軸10 軸

1 軸9 軸

  ホールド状態 0:非ホールド/ 1:ホールド(未接続軸は 1)

・ 原点センサが接続されていない軸は常時オン状態となります。

・ ホールド状態とは、軸の移動が停止し公差内に位置決めされた状態です。

・ サーボがオフした場合は非ホールドとなります。

・ 未使用の軸は 1(ホールド)になります。

・ 状態はロボット 1 で使用している若い軸番号の軸から順に各軸の状態が保持されます。

例)ロボット 1 は 5 軸、ロボット 2 は 4 軸の構成の場合、

ポート 30 のビット 0 〜 4 にロボット 1 の第 1 〜 5 軸、ポート 30 のビット 5 〜 7 にロボッ

ト 2の第 1〜 3軸の状態、ポート 31のビット 0にロボット 2の第 4軸の状態が保持されます。

MEMO

1

2

3

4

5

6

7

システム変数 ● 3-11

例: A%=MO2 () → MO(27)から MO(20)までの内部出力状態を変数 A%に代入

A%=MO5(7,4,0) → MO(57),MO(54),MO(50)の内部出力状態を変数 A%に代入

(例:上記の信号がすべて 1(ON)の時、A%=7となる) A%=MO(37,25,20) → MO(37),MO(25),MO(20)の内部出力状態を変数 A%に代入

(例:上記の信号の MO(25)以外がすべて 1(ON)の時、A%=5となる)

・ 複数のビット指定を行う場合は、左から降順(大→小)に記述してください。

9.6 アームロック出力変数・ 軸ごとに移動禁止の設定を行う

形式 1

LOm(b,・・・,b)

形式 2

LO(mb,・・・,mb)

 値  m:ポート番号 ・・・・・・・・・・・・ 0 、1

b:ビット指定 ・・・・・・・・・・・・・ 0 〜 7

・形式 1 で b,・・・,b が省略された場合は、8 ビット全てが対象になります。

 機能  変数への状態の指定および参照ができます。

ポート 0 は、ビット 0 から順に、第 1 軸〜 8 軸、ポート 1 は、ビット 0 から順に、

第 9 軸〜 16 軸に対応しています。

ビットがオン状態のとき、対応する軸の移動が禁止されます。

例: A%=LO0()

→ LO(07)から LO(00)までのアームロック状態を変数 A%に代入 A%=LO0(7,4,0) → LO(07),LO(04),LO(00)のアームロック状態を変数 A%に代入

(上記の信号がすべて 1(ON)の時、A%=7となる)

A%=LO0(06,04,01) → LO(06),LO(04),LO(01)のアームロック状態を変数 A%に代入

(上記の信号が LO(01)以外がすべて 1(ON)の時、A%=6となる)

LO1()=&B0010 → LO(11)が 1(ON)になり、第 10軸の移動が禁止される

LO1(2,0)=3 → LO(12)とLO(10)が1(ON)になり、第11軸と第9軸の移動が禁止される

MEMO

1

2

3

4

5

6

7

3-12 ● 第 3章 変数

・ 複数のビット指定を行う場合は、左から降順(大→小)に記述してください。

・ 1 軸でもアームロックが有効になっている場合、サーボ OFF 状態からサーボ ON させるこ

とができません。

・ 手動モードで JOG 移動を行う際、アームロックが有効になっている軸がある場合でもアー

ムロックが無効になっている軸は動作させることができます。

・ プログラム等で移動命令を実行する際、動作対象となる軸にアームロックが有効となってい

る軸が含まれる場合は「12.401:アームロック ON」のエラーが発生します。

・ アームロックはロボット 1 で使用している若い軸番号の軸から順に対応します。

例)ロボット 1 は 5 軸、ロボット 2 は 4 軸の構成の場合、

ポート 0 のビット 0 〜 4 でロボット 1 の第 1 〜 5 軸、ポート 0 のビット 5 〜 7 でロボット

2の第 1〜 3軸の状態、ポート 1のビット 0でロボット 2の第 4軸の移動禁止設定を行います。

9.7 タイマ出力変数 ・ シーケンスプログラムのタイマ機能で使用する

形式 1

TOm(b,・・・,b )

形式 2

TO(mb,・・・,mb)

 値  m:ポート番号 ・・・・・・・・・・・・ 0、1

b:ビット指定 ・・・・・・・・・・・・・ 0 〜 7

・形式 1 で b,・・・,b が省略された場合は、8 ビット全てが対象になります。

 機能  変数の内容の変更および参照ができます。

タイマ機能はシーケンスプログラムでのみ有効です。通常のプログラムでは出力状

態の参照のみ可能です。

シーケンスプログラムでの使用例については、7 章「4.2 入出力変数」のタイマ使用例を参照して

ください。

例: A%=TO0()

→ TO(07)から TO(00)までの状態を変数 A%に代入 A%=TO0(7,4,0) → TO(07),TO(04),TO(00)の状態を変数 A%に代入

(上記の信号がすべて 1(ON)の時、A%=7となる) A%=TO(06,04,01) → TO(06)、TO(04)、TO(01)の状態を変数 A%に代入

(上記の信号が TO(01)以外すべて 1(ON)の時、A%=6となる)

・ 複数のビット指定を行う場合は、左から降順(大→小)に記述してください。

MEMO

MEMO

1

2

3

4

5

6

7

システム変数 ● 3-13

9.8 シリアル入力変数 ・ シリアル入力信号の状態を示す

形式 1

SIm(b,・・・,b )

形式 2

SI(mb,・・・,mb)

 値  m:ポート番号 ・・・・・・・・・・・・ 0 〜 7, 10 〜 17, 20 〜 27

b:ビット指定 ・・・・・・・・・・・・・ 0 〜 7

・形式 1 で b,・・・,b が省略された場合、8 ビットすべてが対象になります。

例: A%=SI1()

→ SI(17)から SI(10)までの入力状態を変数 A%に代入

A%=SI5(7,4,0) → SI(57),SI(54),SI(50)の入力状態を変数 A%に代入

(上記の信号がすべて 1(ON)の時、A%=7となる)

A%=SI(27,15,10) → SI(27),SI(15),SI(10)の入力状態を変数 A%に代入

(上記の信号の SI(10)以外がすべて 1(ON)の時、A%=6となる)

WAIT SI(21)=1 → SI(21)が 1(ON)になるのを待つ

・ 複数のビット指定を行う場合は、左から降順(大→小)に記述してください。

・ 実際にシリアルポートが存在しない場合、0 が入力されます。

MEMO

1

2

3

4

5

6

7

3-14 ● 第 3章 変数

9.9 シリアル出力変数 ・ シリアル出力信号を指定または出力状態を示す

形式 1

SOm(b,・・・,b )

形式 2

SO(mb,・・・,mb)

 値  m:ポート番号 0 〜 7, 10 〜 17, 20 〜 27

b:ビット指定 0 〜 7

・形式 1 で b,・・・,b が省略された場合、8 ビットすべてが対象になります。

例: A%=SO2()

→ SO(27)から SO(20)までの出力状態を変数 A%に代入

A%=SO5(7,4,0) → SO(57),SO(54),SO(50)の出力状態を変数 A%に代入 (上記の信号がすべて 1(ON)の時、A%=7となる)

A%=SO(37,25,20) → SO(37),SO(25),SO(20)の出力状態を変数 A%に代入

(上記の信号の SO(25)以外がすべて 1(ON)の時、A%=5となる)

SO3()=B% → SO(37)から SO(30)までの出力を B%で表される状態に変化させる

例えば B%が 123の場合、123を 2進数で表すと B01111011となり、

SO(37)および SO(32)が 0(オフ)、その他のビットが 1(オン)となる

SO4(5,4,0)=&B101 → SO(45)および SO(40)を 1(オン)、SO(44)を 0(オフ)にする

・ 複数のビット指定を行う場合は、左から降順(大→小)に記述してください。

・ 実際にシリアルポートが存在しない場合、外部出力されません。

MEMO

1

2

3

4

5

6

7

システム変数 ● 3-15

9.10 シリアルワード入力・ シリアル入力のワード情報の状態を示す

形式

SIW(m)

 値  m:ポート番号 ・・・・・・・・・・・・ 2 〜 15

取得範囲は 0(&H0000)〜 65,535(&HFFFF)です。

例: A%=SIW(2) → SIW(2)の入力状態を変数 A%に代入

A%=SIW(15) → SIW(15)の入力状態を変数 A%に代入

・ 符号無しのワードデータとして扱われます。

・ 実際にシリアルポートが存在しない場合、0 が入力されます。

9.11 シリアルダブルワード入力・ シリアル入力のワード情報の状態をダブルワードで示す

形式

SID(m)

 値  m:ポート番号 ・・・・・・・・・・・・ 2, 4, 6, 8, 10, 12, 14

取得範囲は -2,147,483,648(&H80000000) 〜 2,147,483,647(&H7FFFFFFF) です。

例: A%=SID(2) → SIW(2),SIW(3)の入力状態を変数 A%に代入

A%=SID(14) → SIW(14),SIW(15)の入力状態を変数 A%に代入

・ 符号付きのダブルワードデータとして扱われます。

・ 実際にシリアルポートが存在しない場合、0 が入力されます。

・ データの配置は下位のポート番号のデータが下位のアドレスに配置されます。

例えば SIW(2)=&H2345,SIW(3)=&H0001 の場合、SID(2)=&H00012345 となります。

MEMO

MEMO

1

2

3

4

5

6

7

3-16 ● 第 3章 変数

9.12 シリアルワード出力 ・ シリアル出力のワード情報に出力または出力状態を示す

形式

SOW(m)

 値  m:ポート番号 ・・・・・・・・・・・・ 2 〜 15

出力範囲は、0(&H0000)〜 65,535(&HFFFF)です。

ただし、負の値を出力した場合、16 進数に変換した下位のワード情報が出力されます。

例: A%=SOW(2) → SOW(2)の出力状態を変数 A%に代入

SOW(15)=A% →変数 A%の内容を SOW(15)に代入

変数 A%の値が出力範囲を越えている場合、下位のワード情報が代入される

SOW(15)=-255 → -255(&HFFFFFF01)の内容を SOW(15)に代入

-255は負の値なので、下位のワード情報(&HFF01)が代入される

・ 符号無しのワードデータとして扱われます。

・ 実際にシリアルポートが存在しない場合、外部へは出力されません。

・ 出力範囲を越える値を代入した場合、下位より 2 バイトの情報が出力されます。

9.13 シリアルダブルワード出力 ・ シリアル出力のワード情報の状態をダブルワードで出力または出力状態を示す

形式

SOD(m)

 値  m:ポート番号 2, 4, 6, 8, 10, 12, 14

出力範囲は -2,147,483,648(&H80000000) 〜 2,147,483,647(&H7FFFFFFF) です。

例: A%=SOD(2) → SOD(2)の出力状態を変数 A%に代入 SOD(14)=A% →変数 A%の内容を SOD(14)に代入

・ 符号付きのダブルワードデータとして扱われます。

・ 実際にシリアルポートが存在しない場合、外部へは出力されません。

・ データの配置は下位のポート番号のデータが下位のアドレスに配置されます。

例えば SOW(2)=&H2345,SOW(3)=&H0001 の場合、SOD(2)=&H00012345 となります。

MEMO

1

2

3

4

5

6

7

ビット指定 ● 3-17

10 ビット指定

入出力変数でビット指定を行う場合は、下記のいずれかの方法を使用してください。

1. 単独ビット

いずれかの 1 ビットのみを指定する場合は、指定したいポート番号とビット番号をカッコ内に記

述します。

ポート番号をカッコの外に出した記述も可能です。

記述例:DOm(b)DOm(b)

例: DO(25) ポート 2のビット 5を指定

DO2(5)

2. 同一ポートの複数ビット

同一ポートの複数ビットをまとめて指定する場合、ポート番号に続いてカッコ内にビット番号を

カンマで区切って記述します。

ポート番号をカッコ内に記述することも可能です。

記述例:DOm(b,b,...,b)DO(mb,mb,...,mb)

例: DO2(7,5,3) DO(27),DO(25),DO(23)を指定

DO(27,25,23)

3. 異なるポートの複数ビット

異なるポートの複数ビットをまとめて指定する場合、カッコ内にポート番号とビットの二桁をカ

ンマで区切って記述します。8 ビットまで記述することが可能です。

記述例:DO(mb,mb,...,mb)

例: DO(37,25,20) DO(37),DO(25),DO(20)を指定

4. ポート内の全ビット

ひとつのポート内の全ビットをすべて指定する場合、ポート番号に続けて()を記述します。

なお、上記 2.または 3.の方法で記述することもできます。

記述例:DOm()

例: DO2() DO(27)〜 DO(20)の全てを指定

 → DO(27,26,25,24,23,22,21,20)または

DO2(7,6,5,4,3,2,1,0)でも同じ

1

2

3

4

5

6

7

3-18 ● 第 3章 変数

11 変数の有効範囲

11.1 動的変数・動的配列の有効範囲

動的変数・動的配列は、宣言されるプログラム位置によって、全域変数(グローバル変数)と局

所変数(ローカル変数)とに分けられ、それぞれ有効範囲が異なります。

変数のタイプ 説 明

グローバル変数(全域変数)

サブプロシージャ外(SUB 文〜 ENDSUB 文で囲まれた領域以外)で宣言された変数。プログラム全体で有効となる。

ローカル変数(局所変数)

サブプロシージャ内で宣言された変数。そのサブプロシージャ内でのみ有効となる。

・ 配列についての詳細は、3 章「5 配列」を参照してください。

・ プログラムレベルで宣言した変数を、仮引数として引き渡さないでサブプロシージャから参

照するには、SHARED 文を使用します(詳しくは、8 章「111 SHARED」を参照してください)。

11.2 静的変数の有効範囲

静的変数は実行プログラムのリセットによりデータがクリアされない変数です。

どのプログラムからも変数のデータを変更、参照することができます。

変数名は下記のように決められており、任意の変数名で使用することはできません。

変数の型 変数名

整数型 SGIn (n:0 〜 31)

実数型 SGRn (n:0 〜 31)

MEMO

1

2

3

4

5

6

7

変数のクリア ● 3-19

12 変数のクリア

12.1 動的変数のクリア

下記のいずれかの場合、数値型変数はゼロに、文字型変数はヌルストリング(空の文字列)にク

リアされます。配列も同様にクリアされます。

■ プログラムリセットを実行したとき。

■ 自動モードで、プログラム停止中に専用入力信号 DI15(プログラムリセット入力)を OFF か

ら ON したとき。

■ 初期処理操作で、下記のどちらかを初期処理したとき。

1. プログラムメモリ

2. 全メモリ

■ 下記のオンライン命令を実行したとき。

@RESET、@INIT PGM、@INIT MEM、@INIT ALL ■ プログラム中で、HALTALL 文を実行したとき(HALT 文ではクリアされません)。

12.2 静的変数のクリア

下記のいずれかの場合、整数型、実数型ともにゼロにクリアされます。

■ 初期処理操作で、下記の初期処理をしたとき。

全メモリ

■ 下記のオンライン命令を実行したとき

@INIT MEM、 @INIT ALL

第 4章

式と演算

1 1 算術演算 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 4-1

2 2 文字列演算 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 4-4

3 3 ポイントデータの形式 ・・・・・・・・・・・・・・・・ 4-5

4 4 DI/DO 条件式 ・・・・・・・・・・・・・・・・・・・・・・・・ 4-6

1

2

3

4

5

6

7

算術演算 ● 4-1

1 算術演算

1.1 算術演算子

演算子 記述例 意 味

+ A+B A と B を加算する

ー A-B A から B を減算する

* A*B A と B を乗算する

/ A/B A を B で除算する

^ A^B A の B 乗(べき乗)を求める

ー -A A の符号を反転する

MOD A MOD B A を B で除算した余りを求める(剰余)

剰余の演算で扱われる数値が実数である場合、小数点以下切り捨てし、整数に変換した後、実行

されます。結果は整数の割算の余りです。

例: A=15 MOD 2 → A=1(15/2=7....1) A=17.34 MOD 5.98 → A=2(17/5=3....2)

1.2 関係演算子

関係演算子は 2 つの値を比較するのに用います。比較の結果が「真」なら「-1」、「偽」なら「0」とな

ります。

演算子 記述例 意 味

= A=B A と B が等しければ「-1」、そうでなければ「0」

<> , >< A<>B A と B が等しくなければ「-1」、そうでなければ「0」

< A<B A が B より小さければ「-1」、そうでなければ「0」

> A>B A が B より大きければ「-1」、そうでなければ「0」

<= , =< A<=B A が B 以下なら「-1」、そうでなければ「0」

>= , => A>=B A が B 以上なら「-1」、そうでなければ「0」

例: A=10> 5 → 10> 5は「真」となるので A=-1

・ 実数変数や実数配列に対して、等価関係演算子を使用した場合、丸め誤差などにより期待し

た結果が得られないことがあります。

例: ・・・・・・・・・・・・・・・・・・・・・ A=2

B=SQR(A!)

IF A!=B!*B! THEN・・・

→ このとき、A! と B! * B! は等しくなりません。

MEMO

4-2 ● 第 4章 式と演算

1

2

3

4

5

6

7

1.3 論理演算子

論理演算子は 1 つまたは 2 つの値をビットごとに操作するのに用います。たとえば I/O ポートの

入出力状態の操作に使用できます。

■ 論理演算の結果は各ビットごとに 0 または 1 で表します

■ 実数データに対する論理演算は整数に変換してから行われます

演算子 機 能 意 味

NOT, 〜 否定 各ビットを反転する

AND、& 論理積 両方のビットが 1 の時に 1 となる

OR, | 論理和 どちらかのビットが 1 の時に 1 となる

XOR 排他的論理和 両方のビットが異なる時に 1 となる

EQV 論理等価演算 両方のビットが等しい時に 1 となる

IMP 論理包含演算 1 つ目のビットが 1 で、2 つ目のビットが 0 の時に 0 となる

例:A%=NOT 13.05 → A% には「-14」が代入される(13 に四捨五入してから反転)

ビット 7 6 5 4 3 2 1 0

13 0 0 0 0 1 1 0 1

NOT 13 = -14 1 1 1 1 0 0 1 0

例:A%=3 AND 10 → A% には「2」が代入される

ビット 7 6 5 4 3 2 1 0

3 0 0 0 0 0 0 1 1

10 0 0 0 0 1 0 1 0

3 AND 10 = 2 0 0 0 0 0 0 1 0

例:A%=3 OR 10 → A% には「11」が代入される

ビット 7 6 5 4 3 2 1 0

3 0 0 0 0 0 0 1 1

10 0 0 0 0 1 0 1 0

3 OR 10 = 11 0 0 0 0 1 0 1 1

例:A%=3 XOR 10 → A% には「9」が代入される

ビット 7 6 5 4 3 2 1 0

3 0 0 0 0 0 0 1 1

10 0 0 0 0 1 0 1 0

3 XOR 10 = 9 0 0 0 0 1 0 0 1

1

2

3

4

5

6

7

算術演算 ● 4-3

1.4 演算の優先順位

演算は下記の優先順位に従って行います。優先順位が同じである場合、その式の中で左側に書か

れている演算から順に実行されます。

優先順位 演算内容

1 ( )で囲まれた式

2 関数 , 変数

3 ^(指数)

4 独立した+ , ー(単項演算子)

5 * , /

6 MOD

7 + , ー

8 関係演算子

9 NOT, 〜 (否定)

10 AND, & (論理積)

11 OR, |, XOR(論理和 , 排他的論理和)

12 EQV(論理等価演算)

13 IMP(論理包含演算)

1.5 型の変換

式の中で形式の異なるデータどうしの演算を行なうと、データの型が変換されます。

1. 実数を整数に代入すると、四捨五入となります。

例:A%= 125.67 → A%= 126

2. 整数を実数で四則演算すると、結果は実数となります。

例:A(0)= 125 * 0.25 → A(0)= 31.25

3. 整数を整数で割ると、余りは捨てられ、結果は整数となります。

例:A(0)= 100/3 → A(0)= 33

4-4 ● 第 4章 式と演算

1

2

3

4

5

6

7

2 文字列演算

2.1 文字列の連結

文字列は演算子 " + " によって連結できます。

SAMPLE

A$="YAMAHA"B$="ROBOT"C$="LANGUAGE"D$="MOUNTER"E$=A$+" "+B$+" "+C$F$=A$+" "+D$PRINT E$PRINT F$

実行結果: YAMAHA ROBOT LANGUAGE YAMAHA MOUNTER

2.2 文字列の比較

文字も、数値の比較と全く同じ関係演算子を用いて比較できます。文字列の比較は文字の内容を

調べたり、文字をアルファベット順に並べたりする(ソート)時等に使用します。

■ 比較は列の最初から 1 文字ずつ行います

■ 文字列が相互に全く同じである場合、2 つの文字列は等しくなります

■ 1 箇所でも違う場合には、その文字のキャラクタコードの大きい方の文字列が大きくなります ■ 文字列長さが違う場合、長い文字列の方が大きくなります

下記の例はすべて「真」になります。

例: "AA"< "AB" "X&"> "X#" "DESK"< "DESKS"

1

2

3

4

5

6

7

ポイントデータの形式 ● 4-5

3 ポイントデータの形式

ポイントデータには関節座標形式と直交座標形式の 2 種類があります。

ポイント番号は、0 〜 29999 の範囲となります。

座標形式 データ形式 説 明

関節座標形式 ± nnnnnnn 符号付 8 桁以下の 10 進整定数です。-99,999,999 〜 99,999,999 の範囲で指定できます。単位 :[パルス]

直交座標形式 ± nnn.nn 〜± nnnnnnn 小数部 3 桁以下で、合計桁数は 7 桁以下の符号付き 10 進小数です。単位 :[mm]または[度]

スカラ型ロボットで、拡張設定の手系フラグを設定する場合は、データ後尾に 1 および 2 を設定

します。1 および 2 以外の数値もしくは数値の指定がない場合は、手系フラグの設定無しとして

0 が設定されます。

手系 データ値

右手系 1

左手系 2

YK-TW シリーズは、第 1 アームおよび第 2 アームの動作範囲が、360 度以上に拡張されています。

(第 1 アームおよび第 2 アームともに動作範囲は、-225度〜+225度です)

そのため、直交座標データ(ミリ単位)を関節座標データ(パルス単位)に変換する場合、複数の

解が存在し位置を特定することができません。

関節座標に変換する時にロボットの位置とアームの姿勢を正しく特定できるようにするために、

ミリ単位のポイントデータの拡張設定の手系フラグの後に第 1 アーム回転数情報と第 2 アーム回

転数情報が追加されています。

設定された第1・第2アーム回転数情報に応じて、直交座標データ(ミリ単位)を関節座標データ(パ

ルス単位)に変換します。

YK-TW シリーズで、拡張設定の第 1・第 2 アーム回転数情報を設定する場合は、手系フラグの

語尾に、-1、0、1 のいずれかの値を設定します。-1、0、1 以外の数値もしくは数値の指定がな

い場合は、0 が設定されます。

アーム回転数情報 データ値

ミリ→パルス変換後の角度データ x(*1)の範囲は、-180°< x <= 180° 0

ミリ→パルス変換後の角度データ x(*1)の範囲は、180°< x <= 540° 1

ミリ→パルス変換後の角度データ x(*1)の範囲は、-540°< x <= -180° -1

*1:関節座標に変換後のパルスデータを、各アームのメカ原点からの角度に変換したデータです。

n 要点

・・ 関節座標形式、直交座標形式ともにデータ形式は 1 〜6 軸で共通です。

・・+は省略可能です。

・・YK-TW シリーズ以外のロボットでは、第 1 ・第 2 アーム回転数情報は無効です。

4-6 ● 第 4章 式と演算

1

2

3

4

5

6

7

4 DI/DO 条件式

MOVE 文の STOPON オプションと WAIT 文の条件設定には、DI/DO 条件式を使用します。

DI/DO 条件式で使用可能な定数、変数、演算子は以下の通りです。

・・ 定数

10 進整定数、2 進定数、16 進定数 ・・ 変数

グローバル整数型変数、グローバル実数型変数、入出力型変数 ・・ 演算子

関係演算子、論理演算子 ・・ 演算の優先順位

1. 関係演算子

2. NOT, 〜

3. AND, &

4. OR, |, XOR

例: WAIT DI(31)=1 OR DI(34)=1 → DI31か DI34のどちらかが(ON)するまで待つ

第 5章

複数台ロボット制御

1 1 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 5-1

2 2 ロボット指定付き命令一覧 ・・・・・・・・・・・・・ 5-2

1

2

3

4

5

6

7

概要 ● 5-1

1 概要

RCX340 では、複数台(4 台まで)のロボット制御を行うことができます。

さらに、マルチタスク機能を使って複数台のロボットを非同期に動作させることもできます。

この機能を使うためには、出荷時にシステムジェネレーションで複数台ロボットまたは付加軸の

設定が行われている必要があります。

ロボットの軸は下記の様な設定が可能です。

■ ロボット 1(4 軸)

■ ロボット 1(1 軸)+ロボット 2(1 軸)+ロボット 3(1 軸)+ロボット 4(1 軸)

■ ロボット 1(6 軸)+ロボット 2(2 軸) (YC-LINK/E オプションを使用した場合)

■ ロボット 1(4 軸)+ロボット 2(4 軸) (YC-LINK/E オプションを使用した場合)

■ ロボット 1(2 軸)+ロボット 2(2 軸)

■ ロボット 1(4 軸)+ロボット 2(4 軸)+ロボット 3(4 軸)+ロボット 4(4 軸)

(YC-LINK/E オプションを使用した場合)

さらに、各ロボットは通常軸と付加軸から構成されています。

1 台のロボットで付加軸を使用しない場合は、通常軸だけの設定になっています。

  

メイングループ ロボット 1 通常軸

(軸数:1~4)

1. ロボット 1 の場合

2. ロボット 1 とロボット 2 の場合

3. 1 台のロボットで付加軸を使用しない場合

4. 2 台のロボットで付加軸の設定がない場合

ロボット 1 付加軸

(軸数:1~4)

ロボット 1 ロボット 1 通常軸

(軸数:1~2)

ロボット 1 付加軸

(軸数:1~2)

ロボット 2 ロボット 2 通常軸

(軸数:1~2)

ロボット 2 付加軸

(軸数:1~2)

ロボット 1 ロボット 1 ロボット

(軸数:1~4)

ロボット 1 付加軸

(なし)

ロボット 1 ロボット 1 ロボット

(軸数:1~2)

ロボット 1 付加軸

(なし)

ロボット 2 ロボット 2 ロボット

(軸数:1~2)

ロボット 2 付加軸

(なし)

軸構成

31501-R9-00

1

2

3

4

5

6

7

5-2 ● 第 5章 複数台ロボット制御

2 ロボット指定付き命令一覧

ロボット動作、座標制御などロボット専用の命令は全ロボットにおいて共通です。ロボットの指

定は命令のオプションにて指定できます。主な命令は下記の通りです。

演算子 命令名

ロボット動作 DRIVEMOVEMOVETPMOVEWAIT ARM

DRIVEIMOVEIPATHSERVO

座標制御 CHANGELEFTYRIGHTY

HANDPATHSHIFT

状態変更 ACCELARCHP2ARMTYPAXWGHTMSPEEDOUTPOSTOLE

ARCHP1ARMSELASPEEDDECELORGORDSPEEDWEIGHT

ポイント演算 JTOXYXYTOJ

WHEREWHRXY

パラメータ変更 ACCELARCHP2AXWGHTORGORDTOLE

ARCHP1ARMTYPDECELOUTPOSWEIGHT

状態参照 ABSRPOSARMSELCURTQSTMCHREFWHRXY

ARMCNDARMTYPCURTRQWHERE

トルク制御 TORQUETRQTIME

TRQSTSCURTRQ

■ 付加軸に設定された軸は、MOVE、MOVEI、MOVET、PMOVE 命令では動作しません。

DRIVE、DRIVEI 命令を使用します。

第 6章

マルチタスク

1 1 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 6-1

2 2 タスクの定義方法 ・・・・・・・・・・・・・・・・・・・・・ 6-1

3 3 タスクの状態と遷移 ・・・・・・・・・・・・・・・・・・・ 6-2

4 4 マルチタスクプログラム例 ・・・・・・・・・・・・・ 6-8

5 5 データの共有 ・・・・・・・・・・・・・・・・・・・・・・・・・ 6-9

6 6 注意事項 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 6-9

1

2

3

4

5

6

7

概要 ● 6-1

1 概要

マルチタスク機能は複数の処理を同時に並列処理する機能で、より複雑で高度なプログラムを作

成するときに使用します。マルチタスク機能を使用する場合、この項の内容を良く理解してから

ご使用ください。

マルチタスクは、複数のタスク(仕事)を並列して実行する機能です。ただし、タスクを実行す

る CPU は 1 つなので、同時にタスクが実行している訳ではありません。CPU の占有時間を分け

合うことやタスクに優先順位を付けることにより効率良く実行し、複数のタスクを並行処理して

います。

■ タスク 1 〜タスク 16 までの最大 16 タスクを実行することができます

■ タスクには優先順位をつけることができ、優先順位の高いタスクを優先的に実行します

■ 優先順位は 1 〜 64 の間で自由に設定することができます

■ 優先順位は数が少ない方が高く、大きい方が低くなります(高い:1 ⇔ 64:低い)

2 タスクの定義方法

タスクとは、一連の仕事のまとまりで、下記のように定義します。

1. タスクとして定義したい命令を記述した 1 つのプログラムを作成します。

2. メインタスクのプログラム中に記述した START 文で、1 で作成したプログラムを指定し、

タスク番号を割り当て、起動します。

SAMPLE

’MAIN TASK(TASK1)START <SUB_PGM>,T2 ・・・・・・・・・・・・・・ <SUB_PGM>をタスク 2として起動する

*ST1:MOVE P,P1,P0 IF DO(20)= 1 THEN HALTALL ENDIFGOTO *STHALTALL

プログラム名 :SUB_PGM’SUB TASK(TASK2)*IOTASK: ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ここからタスク 2 IF DI(21)=1 THEN DO(30)=1 ELSE DO(30)=0 ENDIFGOTO *IOTASK ・・・・・・・・・・・・・・・・・・・・・・・ ここまでがタスク 2の処理

EXIT TASK

1

2

3

4

5

6

7

6-2 ● 第 6章 マルチタスク

3 タスクの状態と遷移

タスクの状態には、下記の 6 種類があります。

1. STOP 状態 ( 停止状態 )

タスクは存在しますが、タスク処理を実行していない状態です。

2. RUN 状態 ( 実行状態 )

タスクが存在し、CPU が割付けられタスク処理を実行している状態です。

3. READY状態 ( 実行可能状態 )

タスクが存在し、タスク処理の CPU の割り付け待ちをしている状態です。

4. WAIT 状態 ( 待ち状態 )

タスクが存在し、タスク処理が何らかの事象待ちをしている状態です。

5. SUSPEND 状態 ( 強制待ち状態 )

タスクが存在し、タスク処理が強制的に実行待ちをしている状態です。

6. NONEXISTENT 状態 ( 未登録状態 )

タスクが存在しない状態です(起床するには START 命令を使用します)。

タスクの状態遷移

削除 起床

NON EXISTENT : 未登録

再開

起動

中断

待ち条件待ち解除

停止停止 停止 停止

CPU割付け

CPU割付け待ち

STOP : 停止

RUN

実行

SUSPEND

強制待ち

READY

実行可能

WAIT

待ち

31601-R9-00

3.1 タスクの起動

START 命令が実行されると、指定したプログラムをタスクに登録し、RUN 状態になります。

START 命令でタスク番号 ( 1 〜 16) を指定しなかった場合、起動していないタスクのうち一番

若い番号のタスクが自動的に指定されます。

START 命令の詳細は、8 章「123 START」を参照してください。

・ LOAD 命令を実行した場合、指定したプログラムをタスクに登録し、STOP 状態になります。

LOAD 命令の詳細は、12 章「2.1 プログラム操作」の「1. タスク登録」を参照してください。

・ START 命令 , LOAD 命令で指定したタスク番号に、他のプログラムが登録されている場合、

“6.215:タスク運転中” のエラーになります。

・ すべてのタスク番号にプログラムが登録された状態で、タスク番号を指定せずに START 命

令 , LOAD 命令を行うと、“6.263:タスク数オーバー” のエラーになります。

・ HALTALL 命令を実行した場合、すべてのタスクを終了し、タスクが未登録状態になります。

メインプログラムが設定されている場合、メインプログラムをタスク 1 に登録し、先頭行で

停止します。メインプログラムが設定されていない場合、最後に実行したプログラム ( カレ

ントプログラム ) をタスク 1 に登録し、先頭行で停止します。

 メインプログラムの詳細は、別冊のオペレーションマニュアル「メインプログラムの設定」

を参照してください。

MEMO

1

2

3

4

5

6

7

タスクの状態と遷移 ● 6-3

3.2 タスクのスケジューリング

タスクのスケジューリングとは、READY(実行可能)状態のタスクを CPU に割り付け、実行さ

せる順番を決定することです。

READY 状態のタスクが 2 つ以上ある場合、レディキューと呼ばれる CPU の割り付け待ち行列

に割り付けされ、タスクの優先順位が決められます。そして、これら複数ある READY 状態のタ

スクの中から 1 つのタスクが選択され、RUN(実行)状態となります。

ひとつのレディキューには、同じ優先順位のタスクのみが割り付けされます。そのため、複数の

優先順位のタスクが存在する場合は、優先順位の数だけレディキューが作成されます。

同じレディキューの中では、タスクは FCFS(First Come First Service:最初に READY 状態になっ

たものから先に実行される)で管理されます。タスクの優先度は、数字が小さい方が高くなります。

  

タスク1 タスク3

タスク1

タスク4

タスク5

タスク2

レディキュー1

レディキュー2

レディキュー3

READY状態になった順番

最も高い優先順位を持つタスクの

先頭がRUN状態に遷移されます。高い

低い

32

33

34

優先順位

タスクのスケジューリング

31602-R7-00

RUN状態のタスクは、下記のいずれかの場合READY状態となりレディキューの後尾に移動します。

1) WAIT 状態になる命令を実行した場合

2) CPU 占有時間が一定時間を経過した場合

3) 自分よりも優先順位の高いタスクが READY 状態になった場合

  

タスク1

RUN状態 READY状態

レディキューの後尾に移動し、タスク3が実行される

タスク3 タスク4

実行される順番

1

タスク1 タスク3 タスク4 タスク1

2

レディキューの後尾に移動し、タスク4が実行される

タスク3 タスク4 タスク1 タスク3

3

レディキュー

31603-R7-00

n 要点

・・ CPU 占有時間が一定時間を経過すると、処理中の命令を終了して次のタスクに移行します。 但し同じ優先度(レディ・キュー)以上の中に READY状態の他のタスクが無い場合、再度同じタスクが実行されます。

1

2

3

4

5

6

7

6-4 ● 第 6章 マルチタスク

3.3 タスクの条件待ち

タスクは、WAIT 状態になる命令を実行すると、WAIT 状態(何らかの事象待ち状態)となります。

このとき、条件待ちが解除されないと READY 状態に遷移できません。

1. WAIT 状態になる命令を実行すると下記の状態遷移が起こります。

■ WAIT 状態になる命令を実行したタスク → WAIT 状態

■ 優先順位の高いレディキューにある先頭のタスク → RUN 状態

・ たとえば、MOVE 文(WAIT 状態になる命令のひとつ)を実行すると、CPU はドライバに対

して「移動」の指示を与えた後、ドライバからの「移動完了」の応答を待ちます。これが事象

待ちの状態です。

この場合、MOVE 文を実行したタスクは WAIT 状態になりレディキューの後尾に移動、次の

タスクが RUN 状態となります。

2. WAIT 状態のタスクに対する条件待ちの事象が起こった場合、スケジューリングが実行され

下記の状態遷移が起こります。

■ WAIT 状態の条件待ちの事象が起こったタスク → READY 状態

但し、READY 状態になったタスクが最上位の優先順位で、かつ、レディキューの先頭にあ

る場合、下記の状態遷移が起こります。

1) 現在、RUN 状態のタスク → READY 状態

2) 優先順位の高いレディキューにある先頭のタスク → RUN 状態

・ 上記の MOVE 文の例では、タスクがレディキューの最後尾に移動した後に「移動完了」の応

答があると、そのタスクは READY 状態になります。

WAIT 状態になる命令は下記の通りです。

事 象 命 令

軸移動完了待ち 軸移動命令 MOVE DRIVEISERVO

MOVEIPMOVEWAIT ARM

MOVET PATH

DRIVEMOTOR

パラメータ命令 ACCELDECELWEIGHT

ARCHP1OUTPOS

ARCHP2TOLE

AXWGHTORGORD

ロボット状態変更命令

CHANGEMSPEED

SHIFTSPEED

LEFTY ASPEED

時間経過待ち DELAY, SET(時間指定あり)

条件成立待ち WAIT

送受信待ち SEND

表示バッファ空待ち PRINT

入力待ち INPUT

・ これらの命令を実行開始する時点で事象が成立している場合、WAIT 状態になりません。

MEMO

n 要点

・・ 複数のタスクが、同一の条件待ちの事象待ちの場合、また、異なる条件の事象が同時に起こった場合、条件待ちの事象が起こったタスクはすべて READY 状態に遷移します。

MEMO

MEMO

1

2

3

4

5

6

7

タスクの状態と遷移 ● 6-5

3.4 タスクの中断(SUSPEND)

SUSPEND 命令を使用することにより、他のタスクを中断し SUSPEND(強制待ち)状態するこ

とができます。

SUSPEND 命令を実行すると下記の状態遷移が起こります。

■ SUSPEND 命令を実行したタスク → RUN 状態

■ 指定されたタスク → SUSPEND 状態

タスクの中断(SUSPEND)  

タスク1 タスク2 タスク1

タスク2RUN READY RUN

SUSPEND

SUSPEND

タスク3

READY

タスク3

READY

SUSPEND状態になり、レディキューから外れる

31604-R7-00

3.5 タスクの再開(RESTART)

RESTART 命令を使用することにより、SUSPEND(強制待ち)状態のタスクを再開することがで

きます。

RESTART 命令を実行すると下記の状態遷移が起こります。

■ RESTART 命令を実行したタスク → RUN 状態

■ 指定されたタスク → READY 状態

タスクの再開(RESTART)  

タスク1

タスク2

タスク1 タスク3

RUN

SUSPEND

RUN READY

RESTART

タスク2

READY

タスク3

READY

READY状態になり、レディキューに割り付けられる

31605-R7-00

1

2

3

4

5

6

7

6-6 ● 第 6章 マルチタスク

3.6 タスクの削除

自タスクの削除(EXIT TASK)

EXIT TASK 命令を使用することにより、自タスクを削除し NON EXISTENT(未登録)状態にす

ることができます。

EXIT TASK 命令を実行すると下記の状態遷移が起こります。

■ EXIT TASK 命令を実行したタスク → NON EXISTENT 状態

■ 優先順位の高いレディキューにある先頭のタスク → RUN 状態

自タスクの削除(EXIT TASK)  

タスク2 タスク3

タスク2

タスク3

RUN READY

NON EXISTENT

RUN

EXIT TASK

タスク4

READY

タスク4

READY

NON EXISTENT状態になり、レディキューから外れる

31606-R7-00

他タスクの削除(CUT)

CUT 命令を使用することにより、他のタスクを削除し NON EXISTENT(未登録)状態にするこ

とができます。

CUT 命令を実行すると下記の状態遷移が起こります。

■ CUT 命令を実行したタスク → RUN 状態

■ 指定されたタスク → NON EXISTENT 状態

他タスクの削除(CUT)  

タスク2 タスク3 タスク2

タスク3RUN READY

タスク4

READY

タスク4

READY RUN

NON EXISTENT

CUT

NON EXISTENT状態になり、レディキューから外れる

31607-R7-00

・ WAIT 状態のタスクに対して SUSPEND 命令が実行された場合、指定されたタスクが実行

している命令は、終了したことになります。

MEMO

1

2

3

4

5

6

7

タスクの状態と遷移 ● 6-7

3.7 タスクの停止

下記の要因により全タスクが STOP(停止)状態になります。

1. HALTALL 命令が実行された(停止・リセット)

すべてのプログラムがリセットされ、タスクは NON EXISTENT 状態になります。メインプ

ログラムが設定されている場合、メインプログラムをタスク 1 に登録し、先頭行で STOP

状態になります。メインプログラムが設定されていない場合、最後に実行したプログラム (カ

レントプログラム ) をタスク 1 に登録し、先頭行で STOP 状態になります。

2. HOLDALL 命令が実行された(一時停止)

すべてのタスクが、STOP 状態になります。再度、プログラム起動されると STOP 状態の

タスクは READY 状態もしくは、SUSPEND 状態になります。

3. プログラミング装置の STOP キーが押されたまたはインターロック信号が遮断

HOLDALL 命令実行された場合と同様に、すべてのタスクが、STOP 状態になります。再度、

プログラム起動されると STOP 状態のタスクは READY 状態(もしくは READY 状態の後に

SUSPEND 状態)になります。

4. プログラミング装置の非常停止ボタンが押されたまたは非常停止信号が遮断

すべてのタスクが、STOP 状態になります。このとき、ロボットに対する電源供給が遮断さ

れ、サーボのホールド力は失われた状態になります。

非常停止状態を解除し、再度、プログラム起動されると STOP 状態のタスクは READY 状

態もしくは、SUSPEND状態になります。ただし、ロボットに対する電源供給を再開するには、

サーボオン処理が必要となります。

・ 上記 1. 以外の要因によってタスクを停止した後、プログラムリセットせずにプログラム起

動した場合、タスクを停止した状態から各タスクは処理を開始します。これは、コントロー

ラに対する電源の遮断と投入があった場合も同様です。

MEMO

1

2

3

4

5

6

7

6-8 ● 第 6章 マルチタスク

4 マルチタスクプログラム例

各タスクは、スケジューリングにしたがって処理が実行されます。下記にマルチタスクプログラ

ムの例を示します。

SAMPLE

’TASK1START <SUB_TSK2>,T2START <SUB_TSK3>,T3*ST1: DO(20) = 1 WAIT MO(20) = 1 MOVE P,P1,P2,Z=0 IF MO(21)=1 THEN *FINGOTO *ST1 *FIN:CUT T2HALTALL

プログラム名 :SUB_TSK2’TASK2 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ここからタスク 2

*ST2: IF DI(20) = 1 MO(20) = 1 DELAY 100 ELSE MO(20) = 0 ENDIFGOTO *ST2EXIT TASK ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ここまで

プログラム名 :SUB_TSK3’TASK3 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ここからタスク 3

*ST3: IF DI(21) = 0 THEN *ST3 IF DI(30) = 0 THEN *ST3 IF DI(33) = 0 THEN *ST3 MO(21) = 1EXIT TASK ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ここまで

1

2

3

4

5

6

7

データの共有 ● 6-9

5 データの共有

すべてのグローバル変数、静的変数、入出力変数、ポイントデータ、シフト座標定義データ、ハ

ンド定義データおよびパレット定義データは、すべてのタスクで共有されています。

したがって、複数のタスクで同じ変数やデータを使用し、各タスクの実行を制御することができ

ます。

・ 複数のタスクで同じ変数やデータを共有しそれらを書換えた場合、各タスクでの処理に不具

合が生じる可能性があります。同じ変数やデータを共有する場合は十分注意してください。

6 注意事項

メインタスクによるサブタスクの起動処理 (START 命令 ) と、サブタスクのタスク終了 (EXIT

TASK 命令 ) を交互に連続して実行すると、フリーズ状態が発生することがあります。

これは、メインタスクとサブタスクの優先順位が同じ場合、サブタスクの終了処理を実行中にメ

インタスクへのタスク遷移が発生し、メインタスクでサブタスクの起動処理を実行しようとして

タスクが不正な状態になることによって発生します。。

したがって、このようなプログラムを実行する場合は、サブタスクの優先順位をメインタスクよ

り高く設定し、EXIT TASK 命令の実行中にタスク遷移が発生しないようにしてください。

下記のサンプルプログラムでは、優先順位をタスク 1(メインタスク)は 32、タスク 2 は 31 に

設定しています。(数の少ない方が優先順位が高くなります)

SAMPLE

FLAG1 = 0*MAIN_TASK: IF FLAG1=0 THEN FLAG1 = 1 START <SUB_PGM>, T2, 31 ・・・・・・・・ <SUB_PGM> をタスク 2として、

優先順位 31で起動する

ENDIFGOTO *MAIN_TASKHALTALL

プログラム名 :SUB_PGM'==============' TASK2'==============*TASK2: DRIVE(1,P1) WAIT ARM(1) DRIVE(1,P2) WAIT ARM(1) FLAG1 = 0EXIT TASK

MEMO

第 7章

シーケンス機能

1 1 シーケンス機能について ・・・・・・・・・・・・・・・ 7-1

2 2 シーケンスプログラムの作成 ・・・・・・・・・・・ 7-1

3 3 シーケンスプログラムの実行 ・・・・・・・・・・・ 7-4

4 4 シーケンスプログラムのプログラミング ・ 7-5

シーケンス機能について ● 7-1

1

2

3

4

5

6

7

1 シーケンス機能について

RCX340 は通常のロボットプログラムとは別に、ロボット入出力(DI, DO, MO, LO, TO, SI,SO)

に対して高速で処理を行うプログラム(シーケンスプログラム)が作成可能です。

・この機能を利用し、センサー・押しボタンスイッチ・電磁弁等の入出力信号の監視、動作を

行うことができます。コントローラの電源オンと同時に実行を開始します。

・シーケンスプログラムはロボット言語を用いて記述します(ラダー言語などは使用しません)。

・プログラム作成時の名称を「SEQUENCE」とする事でシーケンスプログラムとしてコントロー

ラが認識します。

・シーケンスプログラムを実行するための条件については「3 シーケンスプログラムの実行」を

参照してください。

・シーケンスプログラム運転中は、プログラムリセットでの汎用出力のリセットは出来ません。

シーケンスプログラム運転手中でも、以下の方法で汎用出力をリセットすることができます。

・コントローラパラメータのシーケンスフラグの値を 3 に設定する。

・RCX-Studio Proのシーケンス実行フラグダイアログで出力リセット許可にチェックする。

2 シーケンスプログラムの作成

2.1 プログラム方法

1 プログラミングボックスのメニュー画面で、

「編集」 メニューの中から 「プログラム編集」

を選択します。

プログラム編集Step 1

32701-R9-00

2 プログラム選択の画面で「F1 新規作成」を押

します。

プログラム選択Step 2

32702-R9-00

n 要点

・・シーケンスプログラムは、専用入力「DI10(※):シーケンスコントロール入力」がオンになっている場合に、一定の周期で動作。 ※ SIO ボード挿入時は、「SI10」

・・シーケンスプログラム実行中の出力は以下の通りです。 > 専用 PIO ボード挿入時…専用出力「DO12:シーケンスプログラム運転中」信号 >SIO ボード挿入時…専用出力「SO12:シーケンスプログラム運転中」信号

MEMO

1

2

3

4

5

6

7

7-2 ● 第 7章 シーケンス機能

3 プログラム新規作成の画面の Program Name

に「SEQUENCE」と入力し、「OK」を押します。

プログラム新規作成Step 3

32703-R9-00

4 プログラム選択画面の「▲」、「▼」で

「SEQUENCE」のプログラムを選択し、「F2

編集」を押します。

プログラム選択Step 4

32704-R9-00

5「3.220:プログラムステップ無し」のメッセー

ジが表示されるので、「閉じる」を押します。

「プログラムステップ無し」メッセージStep 5

32705-R9-00

6「プログラム編集」画面でプログラムを入力し

ます。使用可能命令は制限されますが、編集

方法は通常のロボットプログラムと同様です。

入力可能な命令は本章「4 シーケンスプログラ

ムのプログラミング」にて説明します。

プログラム編集Step 6

32706-R9-00

n 要点

・・ プログラム新規作成時はプログラムが何も書かれていないことからアラームが発生します。プログラム中に既にロボット言語の記述がある際はこのアラームは発生しません。

シーケンスプログラムの作成 ● 7-3

1

2

3

4

5

6

7

2.2 コンパイル

コンパイルを行い、シーケンスプログラムの実行プログラムを生成します。

1 プログラム選択の画面で「F3 SEQ コンパイル」

を押します。

プログラム選択Step 1

32707-R9-00

2 シーケンスプログラムのコンパイルを行うか

の確認メッセージが表示されます。「OK」を

押せばコンパイルを開始します。

コンパイル確認メッセージStep 2

32708-R9-00

・ 入力した命令文の形式に誤りがあるとエ

ラーメッセージが表示されます。

・ コンパイルが正常に終了すれば、プログ

ラム選択に戻り、Flag に「s」が表示され

ます。これはシーケンスプログラムのコ

ンパイルが正常終了して、実行プログラ

ムが作成されていることを示します。

コンパイル成功時MEMO

32708-R9-00

・ シーケンスプログラム用の実行プログラムは次の場合に削除されて、フラグの「s」が表示さ

れなくなります。このとき、シーケンスプログラムの実行は禁止状態になります。

1. シーケンスプログラムを削除したとき

2. シーケンスプログラムを編集したとき

3. プログラムデータを初期化したとき

4. “9.729:シーケンスオブジェクトチェックサムエラー” が発生したとき

MEMO

MEMO

1

2

3

4

5

6

7

7-4 ● 第 7章 シーケンス機能

3 シーケンスプログラムの実行

シーケンスプログラムは次の条件全てが成立していないと実行しません。

1. シーケンスプログラムがコンパイルされていること

2. シーケンスプログラムの実行フラグを許可状態に設定してあること。

( シーケンスプログラム実行フラグの設定については、別冊のオペレーションマニュアルを

参照してください )

3. 外部入力のシーケンスコントロール入力「DI10」(SIO ボードが挿入時は、「SI10」) がオンで

あること

シーケンスプログラム実行状態

実行中に表示

32710-R9-00

3.1 シーケンスプログラムのステップ実行

シーケンスプログラムを 1 行ずつステップ実行させて動作の確認を実行したい場合は、通常のプ

ログラムと同じ方法で実行できます。

詳細は、別冊のオペレーションマニュアルを参照してください。

ステップ実行の際、前項の実行条件の成立は不要です。

シーケンスプログラムのプログラミング ● 7-5

1

2

3

4

5

6

7

4 シーケンスプログラムのプログラミング

シーケンスプログラムの記述は入出力変数と論理演算子を組み合わせた代入文のみで行います。

4.1 代入文

形式

出力変数 = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 下記のいずれかが使用できます。

・ パラレル入力・出力変数

・ 内部出力変数

・ アームロック出力変数

・ タイマ出力変数

・ シリアル入力・出力変数

・ 上記の論理演算式

4.2 入出力変数

各変数は 1 ビット指定の形式のみ使用可能です。

・正しい例 DO(35) MO(24) DI(16)・正しくない例 DO(37, 24) DI3(4) MO3()

4.2.1 入力変数

● パラレル入力変数

形式

DI(mb) m:ポート番号 ・・・・・・・ 0〜 7, 10〜 17, 20〜 27 b:ビット指定 ・・・・・・・ 0〜 7

パラレル入力信号の状態を示します。

● シリアル入力変数

形式

SI(mb) m:ポート番号 ・・・・・・・ 0〜 7, 10〜 17, 20〜 27 b:ビット指定 ・・・・・・・ 0〜 7

シリアル入力信号の状態を示します。参照のみで制御はできません。

1

2

3

4

5

6

7

7-6 ● 第 7章 シーケンス機能

4.2.2 出力変数

● パラレル出力変数

形式

DO(mb) m:ポート番号 ・・・・・・・ 0〜 7, 10〜 17, 20〜 27 b:ビット指定 ・・・・・・・ 0〜 7

パラレル出力を指定、または出力状態を参照します。ポート 0, 1 は参照のみで出力はでき

ません。

● 内部出力変数

形式

MO(mb) m:ポート番号 ・・・・・0〜 7, 10〜 17, 20〜 27、30〜 37 b:ビット指定 ・・・・・0〜 7

コントローラ内部で使用します。ポート 30 〜 37 は参照のみでオン/オフの制御はできま

せん。

● アームロック出力変数

形式

LO(mb) m:ポート番号 ・・・・・0、1 b:ビット指定 ・・・・・0〜 7

アーム(軸)の移動を禁止するために使用します。オンの時移動が禁止になります。LO(00)

〜 LO(07) はそれぞれ第 1 軸から第 8 軸、LO(10) 〜 LO(17) は第 9 軸から第 16 軸に対応し

ています。

● タイマ出力変数

形式

TO(mb) m:ポート番号 ・・・・・0、1 b:ビット指定 ・・・・・0〜 7

TO(00) 〜 TO(17) の合計 16 点あり、各変数のタイマは、タイマ定義文 TIM00 〜 17 で定義

します。

● シリアル出力変数

形式

SO(mb) m:ポート番号 ・・・・・0〜 7, 10〜 17, 20〜 27 b:ビット指定 ・・・・・0〜 7

シリアル出力信号の状態を制御または参照をします。ポート 0 は参照のみで制御はできませ

ん。

シーケンスプログラムのプログラミング ● 7-7

1

2

3

4

5

6

7

タイマ使用例

SAMPLE

TIM02= 2500 ・・・・・・・・・・・・・・・・・・・・・・・・・・ タイマ 02を 2.5秒に設定

TO(02)= DI(23) ・・・・・・・・・・・・・・・・・・・・・ DI(23)がオンするとタイマスタート

・DI(23) がオンしてから 2.5 秒後に TO(02) がオンします。

・DI(23) がオフすると、TO(02) もオフします。

・DI(23) が 2.5 秒以上オンしなければ、TO(02) はオンしません。

タイマ使用例:タイミングチャート

DI(23)

2.5sec

TO(02)

1.6sec

31701-R7-00

4.3 タイマ定義文

形式

TIMmb=時間 m:ポート番号 ・・・・・・・ 0、1 b:ビット指定 ・・・・・・・ 0〜 7

 値  時間 ・・・・・・・・・・・・・・・・・・・・・・ 0 〜 2, 147, 483, 647msec(0 秒〜 24 日)

 意味  タイマ出力変数のタイマ値を設定します。この定義文はプログラム中のどこにあっ

てもかまいません。

タイマ出力変数を省略すると、そのタイマ出力変数の設定値は 0 になります。

TIM00 〜 TIM17 は、それぞれ TO(00) 〜 TO(17) のタイマ出力変数に対応しています。

1msec単位で設定できますが、シーケンスプログラムのスキャン周期 (2〜 8msec)や、

PIO ボードの更新周期 (2 〜 4msec)、SIO ボードの更新周期 (5msec) に影響されます。

4.4 演算子(論理演算子)

演算子 機 能 意 味

NOT, ~ 否定 ビットを反転する

AND、& 論理積 両方のビットが 1 の時に 1 となる

OR, | 論理和 どちらかのビットが 1 の時に 1 となる

XOR 排他的論理和 両方のビットが異なる時、1 となる

EQV 論理等価演算 両方のビットが等しい時、1 となる

IMP 論理包含演算 1 つ目のビットが 1 で、2 つ目のビットが 0 の時、0 となる

1

2

3

4

5

6

7

7-8 ● 第 7章 シーケンス機能

4.5 演算の優先順位

優先順位 演算内容

1 ( )で囲まれた式

2 NOT, ~ (否定)

3 AND, & (論理積)

4 OR, | (論理和)

5 XOR (排他的論理和)

6 EQV (論理等価演算)

7 IMP (論理包含演算)

● ラダー文に置き換えた例

SAMPLE

DO(23)= DI(16)& DO(35)MO(34)= DO(25) | ~DI(24)DO(31)=(DI(20) | DO(31))& ~DI(21)

ラダー図

DI(16)

DO(25)

~DI(24)

DI(20)

DO(31)

DO(35)

~DI(21)

DO(23)

MO(34)

DO(31)

(自己保持回路)

31702-R7-00

・ 演算子の否定は "(" の直前及び代入文の左辺には使用できません。例えば、次の文は使用不

可です。

・DO(21) = ~(DI(30) | DI(32))

・~DO(30) = DI(22) & DI(27)

・ 代入文の右辺に数値を指定することはできません。

・MO(35) = 1

・DO(26) = 0

・ プログラムの最後に "HALT" や "HOLD" を定義する必要はありません。

・ シーケンスプログラムで使用している各変数は、ロボットプログラムと共通のため、お互い

に同じ変数を使う場合は注意してください。

4.6 シーケンスプログラム仕様

項目 内 容

命 令 否定(NOT)、論理積(AND)、論理和(OR)、排他的論理和(XOR)、論理等価演算(EQV)、論理包含演算(IMP)

入出力 ロボット言語と同じ

プログラム容量 8,192 バイト(最大 2,048 変数指定)

スキャンタイム 2msec からステップ数に応じ、最大 8msec まで自動的に変化

MEMO

第 8章

ロボット言語一覧

ロボット言語一覧表の見方 ・・・・・・・・・・・・・・・・・・ 8-1

アルファベット順 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-2

機能別 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-7

関数:アルファベット順 ・・・・・・・・・・・・・・・・・・・ 8-12

関数:機能別 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-15

1 1 ABS ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-17

2 2 ABSRPOS ・・・・・・・・・・・・・・・・・・・・・・・・ 8-18

3 3 ACCEL ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-19

4 4 ARCHP1/ARCHP2 ・・・・・・・・・・・・・・・・・ 8-20

5 5 ARMCND ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-21

6 6 ARMSEL ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-22

7 7 ARMTYP ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-23

8 8 ASPEED ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-24

9 9 ATN / ATN2 ・・・・・・・・・・・・・・・・・・・・・・・ 8-25

10 10 AXWGHT ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-26

11 11 CALL ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-27

12 12 CHANGE ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-28

13 13 CHGPRI ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-29

14 14 CHR$ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-30

15 15 CLOSE ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-31

16 16 COS ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-32

17 17 CURTQST ・・・・・・・・・・・・・・・・・・・・・・・・ 8-33

18 18 CURTRQ ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-34

19 19 CUT ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-35

20 20 DATE$ ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-36

21 21 DECEL ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-37

22 22 DEF FN ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-38

23 23 DEGRAD ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-39

24 24 DELAY ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-40

25 25 DI ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-41

26 26 DIM ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-42

27 27 DIST ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-43

28 28 DO ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-44

29 29 DRIVE ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-46

30 30 DRIVEI ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-50

31 31 END SELECT ・・・・・・・・・・・・・・・・・・・・・ 8-55

32 32 END SUB ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-56

33 33 ERR / ERL ・・・・・・・・・・・・・・・・・・・・・・・・ 8-57

34 34 ETHSTS ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-58

35 35 EXIT FOR ・・・・・・・・・・・・・・・・・・・・・・・・ 8-59

36 36 EXIT SUB ・・・・・・・・・・・・・・・・・・・・・・・・ 8-60

37 37 EXIT TASK ・・・・・・・・・・・・・・・・・・・・・・・・ 8-61

38 38 FOR 〜 NEXT ・・・・・・・・・・・・・・・・・・・・・ 8-62

39 39 GEPSTS ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-63

40 40 GOSUB 〜 RETURN ・・・・・・・・・・・・・・・ 8-64

41 41 GOTO ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-65

42 42 HALT ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-66

43 43 HALTALL ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-67

44 44 HAND ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-68

45 45 HOLD ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-73

46 46 HOLDALL ・・・・・・・・・・・・・・・・・・・・・・・・ 8-74

47 47 IF ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-75

48 48 INPUT ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-77

49 49 INT ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-79

50 50 JTOXY ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-80

51 51 LEFT$ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-81

52 52 LEFTY ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-82

53 53 LEN ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-83

54 54 LET ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-84

55 55 LO ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-87

56 56 LOCx ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-88

57 57 LSHIFT ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-89

58 58 MCHREF ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-90

59 59 MID$ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-91

60 60 MO ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-92

61 61 MOTOR ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-94

62 62 MOVE ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-95

63 63 MOVEI ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-109

64 64 MOVET ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-120

65 65 MTRDUTY ・・・・・・・・・・・・・・・・・・・・・・・ 8-131

66 66 OFFLINE ・・・・・・・・・・・・・・・・・・・・・・・・ 8-132

67 67 ON ERROR GOTO ・・・・・・・・・・・・・・・ 8-133

68 68 ON 〜 GOSUB ・・・・・・・・・・・・・・・・・・・ 8-134

69 69 ON 〜 GOTO ・・・・・・・・・・・・・・・・・・・・ 8-135

70 70 ONLINE ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-136

71 71 OPEN ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-137

72 72 ORD ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-138

73 73 ORGORD ・・・・・・・・・・・・・・・・・・・・・・・・ 8-139

74 74 ORIGIN ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-140

75 75 OUT ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-141

76 76 OUTPOS ・・・・・・・・・・・・・・・・・・・・・・・・ 8-142

77 77 PATH ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-144

78 78 PATH END ・・・・・・・・・・・・・・・・・・・・・・・ 8-150

79 79 PATH SET ・・・・・・・・・・・・・・・・・・・・・・・ 8-151

80 80 PATH START ・・・・・・・・・・・・・・・・・・・・・ 8-153

81 81 PDEF ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-156

82 82 PGMTSK ・・・・・・・・・・・・・・・・・・・・・・・・ 8-157

83 83 PGN ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-158

84 84 PMOVE ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-159

85 85 Pn ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-163

86 86 PPNT ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-165

87 87 PRINT ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-166

88 88 PSHFRC ・・・・・・・・・・・・・・・・・・・・・・・・ 8-167

89 89 PSHJGSP ・・・・・・・・・・・・・・・・・・・・・・・ 8-168

90 90 PSHMTD ・・・・・・・・・・・・・・・・・・・・・・・・ 8-169

91 91 PSHRSLT ・・・・・・・・・・・・・・・・・・・・・・・ 8-170

92 92 PSHSPD ・・・・・・・・・・・・・・・・・・・・・・・・ 8-171

93 93 PSHTIME ・・・・・・・・・・・・・・・・・・・・・・・・ 8-172

94 94 PUSH ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-173

95 95 RADDEG ・・・・・・・・・・・・・・・・・・・・・・・・ 8-178

96 96 REM ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-179

97 97 RESET ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-180

98 98 RESTART ・・・・・・・・・・・・・・・・・・・・・・・ 8-181

99 99 RESUME ・・・・・・・・・・・・・・・・・・・・・・・・ 8-182

100 100 RETURN ・・・・・・・・・・・・・・・・・・・・・・・・ 8-183

101 101 RIGHT$ ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-184

102 102 RIGHTY ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-185

103 103 RSHIFT ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-186

104 104 SELECT CASE 〜 END SELECT ・・・ 8-187

105 105 SEND ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-188

106 106 SERVO ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-190

107 107 SET ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-191

108 108 SETGEP ・・・・・・・・・・・・・・・・・・・・・・・・ 8-192

109 109 SGI ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-193

110 110 SGR ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-194

111 111 SHARED ・・・・・・・・・・・・・・・・・・・・・・・・ 8-195

112 112 SHIFT ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-196

113 113 SI ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-197

114 114 SID ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-198

115 115 SIN ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-199

116 116 SIW ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-200

117 117 Sn ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-201

118 118 SO ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-202

119 119 SOD ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-203

120 120 SOW ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-204

121 121 SPEED ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-205

122 122 SQR ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-206

123 123 START ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-207

124 124 STR$ ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-208

125 125 SUB 〜 END SUB ・・・・・・・・・・・・・・・・・ 8-209

126 126 SUSPEND ・・・・・・・・・・・・・・・・・・・・・・・ 8-211

127 127 SWI ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-212

128 128 TAN ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-213

129 129 TCOUNTER ・・・・・・・・・・・・・・・・・・・・・ 8-214

130 130 TIME$ ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-215

131 131 TIMER ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-216

132 132 TO ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-217

133 133 TOLE ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-218

134 134 TORQUE ・・・・・・・・・・・・・・・・・・・・・・・・ 8-219

135 135 TSKPGM ・・・・・・・・・・・・・・・・・・・・・・・・ 8-221

136 136 VAL ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-222

137 137 WAIT ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-223

138 138 WAIT ARM ・・・・・・・・・・・・・・・・・・・・・・・ 8-224

139 139 WEIGHT ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-225

140 140 WEND ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-226

141 141 WHERE ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-227

142 142 WHILE 〜 WEND ・・・・・・・・・・・・・・・・・ 8-228

143 143 WHRXY ・・・・・・・・・・・・・・・・・・・・・・・・・ 8-229

144 144 XYTOJ ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8-230

8

9

10

11

12

13

ロボット言語一覧表の見方 ● 8-1

ロボット言語一覧表の見方

以下にロボット言語一覧表の見方を説明します。

(1) (2) (3) (4)| | | |

No. 名称 機能 オンライン 種類

26 DIM 配列変数の名前と要素数を宣言する × 命令

(1) No.

それぞれのロボット言語について詳しく書かれている項目番号を表します。

26 DIM配列変数を宣言する

形式

DIM 配列指定 ,配列指定,...

配列指定

名称 % (定数 ,定数,定数 ) !$

値 定数 ・・・・・・・・・・・・・・・・・・ 配列の添字:0 ~ 32,767 の正の整数

意味 直接配列変数の名前と要素数を宣言します。配列の添字は最大 3 次元まで使用でき

ます。“ , ”(コンマ)で区切ることによって 1 行に複数の配列を宣言できます。

・ 配列の添字は、0 ~指定した値まで、合計定数 + 1 個となります。

・ 配列の各次元の大きさによっては、“ 9.300:メモリフル” のエラーが発生します。

SAMPLE

DIM A%(10) ・・・・・・・・・・・・・・・・・・・・・・・・ 整数型の配列変数 A%(0)~ A%(10)を定義する (要素数 11)

DIM B(2,3,4) ・・・・・・・・・・・・・・・・・・・・・ 実数型の配列変数 B(0,0,0)~ B(2,3,4)

を定義する(要素数 60) DIM C%(2,2),D!(10) ・・・・・・・・・・・ 整数型の配列 C%(0,0)~ C%(2,2)と実数型

の配列 D!(0)~ D!(10)を定義する

MEMO

"No."欄の例

No.

(2) 機能

ロボット言語の機能を説明します。

(3) オンライン

この項目が“○”の場合、オンラインコマンドで使用できます。

“×”の場合、オンラインコマンドでは一部実行できないオペランドがあります。

(4) 種類

ロボット言語の種類を、“命令”または“関数”で示します。

命令と関数の両方で使用できる場合は、“命令/関数”と表記します。

8

9

10

11

12

13

8-2 ● 第 8章 ロボット言語一覧

アルファベット順

No. 名称 機能 オンライン 種類

A1 ABS 指定された値の絶対値を求める ○ 関数

2 ABSRPOS 指定されたロボットの指定された軸のマシンリファレンス

値を求める(原点復帰方式がマーク方式の場合のみ有効)

○ 関数

3 ACCEL 指定されたロボットの加速度係数パラメータを設定/取得

する

○ 命令/関数

4 ARCHP1 指定されたロボットのアーチ位置 1 パラメータを設定/取

得する

○ 命令/関数

4 ARCHP2 指定されたロボットのアーチ位置 2 パラメータを設定/取

得する

○ 命令/関数

5 ARMCND 指定されたロボットの現在のアームの状態を取得する ○ 関数

6 ARMSEL 指定されたロボットの現在の手系の設定を設定/取得する ○ 命令/関数

7 ARMTYP 指定されたロボットの手系設定を設定/取得する ○ 命令/関数

8 ASPEED 指定されたロボットの自動移動速度を設定/取得する ○ 命令/関数

9 ATN 指定された値の逆正接値を求める ○ 関数

9 ATN2 指定された X-Y 座標の逆正接値を求める ○ 関数

10 AXWGHT 指定されたロボットの軸先端質量パラメータを設定/取得

する

○ 命令/関数

C11 CALL サブプロシージャを呼び出す × 命令

12 CHANGE 指定されたロボットのハンドの切り替えを行う ○ 命令

13 CHGPRI 指定されたタスクの優先順位を変更する ○ 命令

14 CHR$ 指定したキャラクタコードを持つ文字を求める ○ 関数

15 CLOSE 指定された汎用イーサネットポートを閉じる ○ 命令

16 COS 指定された値の余弦値を求める ○ 関数

17 CURTQST 指定された軸の定格トルクに対する現在トルクを取得する ○ 関数

18 CURTRQ 指定されたロボットの指定された軸の現在トルク値を取得

する

○ 関数

19 CUT 実行中または一時停止中の他のタスクを強制終了する ○ 命令

D20 DATE$ 日付を "yy/mm/dd" の形式の文字列で求める ○ 関数

21 DECEL 指定されたロボットの減速比率パラメータを設定/取得する ○ 命令/関数

22 DEF FN ユーザーが使用可能な関数を定義する × 命令

23 DEGRAD 値をラジアンに変換する(↔ RADDEG) ○ 関数

24 DELAY 指定された時間(単位 ms)だけ待つ × 命令

25 DI 指定された DI の状態を取得する ○ 関数

26 DIM 配列変数の名前と要素数を宣言する × 命令

27 DIST 指定される 2 点間の距離を求める ○ 関数

28 DO 指定された値を DO ポートに出力または出力状態を取得す

○ 命令/関数

29 DRIVE 指定されたロボットを軸単位で絶対位置移動する ○ 命令

30 DRIVEI 指定されたロボットを軸単位で相対位置移動する ○ 命令

E31 END SELECT SELECT CASE 文を終了する × 命令

32 END SUB サブプロシージャの定義を終了する × 命令

8

9

10

11

12

13

アルファベット順 ● 8-3

No. 名称 機能 オンライン 種類

33 ERR / ERL エラー発生時のエラーコード番号 / エラー発生行番号を取

得する

○ 関数

34 ETHSTS イーサネットポートの状態を取得する ○ 関数

35 EXIT FOR FOR 文〜 NEXT 文のループを強制的に終了する × 命令

36 EXIT SUB SUB 文〜 END 文 で定義されたサブプロシージャを強制的

に終了する

× 命令

37 EXIT TASK 実行している自分自身のタスクを終了する × 命令

F38 FOR 〜 NEXT 繰り返しを制御する指定値を超えるまで、FOR 文の次から

NEXT 文までを繰り返し実行する

× 命令

G39 GEPSTS 汎用イーサネットポートの状態を取得する ○ 関数

40 GOSUB 〜

RETURNGOSUB 文で指定されるラベルのサブルーチンにジャンプ

し、サブルーチンを実行する

× 命令

41 GOTO ラベルで指定される行に無条件ジャンプする × 命令

H42 HALT プログラムを停止し、かつ、リセットする × 命令

43 HALTALL 全てのプログラムを停止してリセットする × 命令

44 HAND 指定されたロボットのハンドの定義をする ○ 命令

45 HOLD プログラムを一時停止する × 命令

46 HOLDALL 全てのプログラムを一時停止する × 命令

I47 IF 条件によって制御の流れを分岐する × 命令

48 INPUT プログラミングボックスなどから指定した変数に値を代入

する

○ 命令

49 INT 値の小数点以下を切り捨てた整数値を得る ○ 関数

J50 JTOXY 関節座標データを指定されたロボットの直交座標データに

変換する(↔ XYTOJ)○ 関数

L51 LEFT$ 指定した文字列の左側から指定した桁数の文字列を抜き出す ○ 関数

52 LEFTY 指定されたロボットの手系を左手系に設定する ○ 命令

53 LEN 指定した文字列の長さ(バイト数)を得る ○ 関数

54 LET 指定された代入文を実行する ○ 命令

55 LO 指定された値を LO ポートに出力し、軸移動の禁止や解除

を行うまたは出力状態を取得する

○ 命令/関数

56 LOCx ポイントデータを軸単位またはシフトデータを要素単位で

設定/取得する

○ 命令/関数

57 LSHIFT 値を指定したビット数だけ左にシフトさせる

(↔ RSHIFT)○ 関数

M58 MCHREF 指定されたロボット軸の原点復帰動作およびアブソサーチ

動作のマシンリファレンスを求める(原点復帰方式がセン

サ方式または突き当て方式の場合のみ有効)

○ 関数

59 MID$ 指定した文字列中から任意の長さの文字列を抜き出す ○ 関数

60 MO 指定された値を MO ポートに出力または出力状態を取得する ○ 命令/関数

61 MOTOR モータ電源状態をコントロールする ○ 命令

8

9

10

11

12

13

8-4 ● 第 8章 ロボット言語一覧

No. 名称 機能 オンライン 種類

62 MOVE 指定されたロボットの全軸を絶対移動する ○ 命令

63 MOVEI 指定されたロボットの全軸を相対移動する ○ 命令

64 MOVET 指定されたロボットの全軸をツール座標相対移動する ○ 命令

65 MTRDUTY 指定された軸のモータ負荷率を取得する ○ 関数

O66 OFFLINE 指定した通信ポートをオフラインモードに設定する ○ 命令

67 ON ERROR GOTO

プログラムを停止せずにラベルで示されるエラー処理ルー

チンへジャンプまたは、エラーメッセージを表示して、プ

ログラムの実行を停止する

× 命令

68 ON 〜 GOSUB 条件によって、GOSUB 文で指定される各ラベルのサブルー

チンにジャンプし、サブルーチンを実行する

× 命令

69 ON 〜 GOTO 条件によって、ラベルで指定される各行にジャンプする × 命令

70 ONLINE 指定した通信ポートをオンラインモードに設定する ○ 命令

71 OPEN 指定された汎用イーサネットポートを開く ○ 命令

72 ORD 指定した文字列の最初の文字のキャラクタコードを得る ○ 関数

73 ORGORD 指定されたロボットの原点復帰動作およびアブソサーチ動

作を行う軸順序パラメータを設定/取得する

○ 命令/関数

74 ORIGIN 原点復帰動作を実行する ○ 命令

75 OUT 指定された出力ポートのビットをオンして命令文を終了する × 命令

76 OUTPOS 指定されたロボットのアウト有効位置パラメータを設定/

取得する

○ 命令/関数

P77 PATH PATH 移動経路を設定する × 命令

78 PATH END PATH 移動の経路設定を終了する × 命令

79 PATH SET PATH 移動の経路設定を開始する × 命令

80 PATH START PATH 移動を開始する × 命令

81 PDEF パレット移動命令を実行するためのパレットを定義する ○ 命令

82 PGMTSK 指定されたプログラムが登録されているタスク番号を取得

する

○ 関数

83 PGN 指定されたプログラム名からプログラム番号を取得する ○ 関数

84 PMOVE 指定されたロボットのパレット移動命令を実行する ○ 命令

85 Pn プログラムの中でポイントを定義する ○ 命令

86 PPNT パレット定義番号とパレット位置番号で指定されるポイン

トデータを作成する

○ 関数

87 PRINT プログラミングボックスの画面に文字列を表示する × 命令

88 PSHFRC 押付力パラメータを設定/取得する ○ 命令/関数

89 PSHJGSP 押付判定速度閾値パラメータを設定/取得する ○ 命令/関数

90 PSHMTD 押付方式パラメータを設定/取得する ○ 命令/関数

91 PSHRSLT PUSH 文終了時の状態を取得する ○ 関数

92 PSHSPD 押付速度比率パラメータを設定/取得する ○ 命令/関数

93 PSHTIME 押付時間パラメータを設定/取得する ○ 命令/関数

94 PUSH 軸単位で押付動作する ○ 命令

R95 RADDEG 値を度に変換する(↔ DEGRAD) ○ 関数

96 REM コメント文を記述する × 命令

97 RESET 指定された出力ポートのビットをオフする ○ 命令

98 RESTART 一時停止中の他のタスクを再起動する ○ 命令

99 RESUME エラーの回復処理後、プログラムの実行を再開する × 命令

8

9

10

11

12

13

アルファベット順 ● 8-5

No. 名称 機能 オンライン 種類

100 RETURN GOSUB で分岐した処理を、GOSUB の次行に戻す × 命令

101 RIGHT$ 指定した文字列の右側から指定した桁数の文字列を抜き出す ○ 関数

102 RIGHTY 指定されたロボットの手系を右手系に設定する ○ 命令

103 RSHIFT 値を指定したビット数だけ右にシフトさせる

(↔ LSHIFT)○ 関数

S104 SELECT CASE 〜

END SELECT条件によって制御の流れを分岐する × 命令

105 SEND ファイルを転送する ○ 命令

106 SERVO 指定されたロボットの指定された軸または全軸のサーボ状

態をコントロールする

○ 命令

107 SET 指定された出力ポートのビットをオンする △ 命令

108 SETGEP 汎用イーサネットポートを設定する ○ 命令

109 SGI 指定された整数型静的変数に値を代入/取得する ○ 命令/関数

110 SGR 指定された実数型静的変数に値を代入/取得する ○ 命令/関数

111 SHARED 変数を引き渡さずにサブプロシージャで参照可能にする × 命令

112 SHIFT シフト変数を指定し、そこで指定されるシフトデータで指

定されたロボットのシフト座標を設定する

○ 命令

113 SI 指定された SI の状態を取得する ○ 関数

114 SID 指定されたシリアル入力のワード情報の状態をダブルワー

ドで取得する

○ 関数

115 SIN 指定された値の正弦値を求める ○ 関数

116 SIW 指定されたシリアル入力のワード情報を取得する ○ 関数

117 Sn プログラムの中でシフト座標を定義する ○ 命令

118 SO 指定された値を SO ポートに出力または出力状態を取得す

○ 命令/関数

119 SOD 指定されたシリアル出力のワード情報にダブルワードで出

力または出力状態を取得する

○ 命令/関数

120 SOW 指定されたシリアル出力のワード情報に出力または出力状

態を取得する

○ 命令/関数

121 SPEED 指定されたロボットのプログラム移動速度を変更する ○ 命令

122 SQR 指定された値の平方根を求める ○ 関数

123 START 指定したプログラムのタスク番号および優先順位を設定

し、そのプログラムを起動する

○ 命令

124 STR$ 指定した値を文字列に変換する(↔ VAL) ○ 関数

125 SUB 〜 END SUB

サブプロシージャを定義する × 命令

126 SUSPEND 実行中の他のタスクを一時停止する × 命令

127 SWI 実行プログラムを切り替え、1 行目から実行する × 命令

T128 TAN 指定された値の正接値を求める ○ 関数

129 TCOUNTER TCOUNTER 変数がリセットされた時点から、1ms 毎にカ

ウントアップされた値を出力する

○ 関数

130 TIME$ 現在時刻を "hh:mm:ss" の形式の文字列で求める ○ 関数

131 TIMER 現在時刻を午前 0 時からの秒で求める ○ 関数

132 TO 指定された値を TO ポートに出力または出力状態を取得する ○ 命令/関数

133 TOLE 指定されたロボットの公差パラメータを設定/取得する ○ 命令/関数

134 TORQUE 指定されたロボットの指定された軸の最大トルク指令値を

設定/取得する

○ 命令/関数

8

9

10

11

12

13

8-6 ● 第 8章 ロボット言語一覧

No. 名称 機能 オンライン 種類

135 TSKPGM 指定されたタスク番号に登録されているプログラム番号を

取得する

○ 関数

V136 VAL 指定した文字列表記の値を実際の数値に変換する(↔ STR $) ○ 関数

W137 WAIT 条件式が成立するまで待つ ( タイムアウト付 ) × 命令

138 WAIT ARM 指定されたロボットの軸動作の完了を待つ × 命令

139 WEIGHT 指定されたロボットの先端質量パラメータを設定/取得する ○ 命令/関数

140 WEND WHILE 文の命令ブロックを終了する × 命令

141 WHERE 指定されたロボットのアームの現在位置を関節座標(パル

ス)で読み出す

○ 関数

142 WHILE〜WEND 繰り返しを制御する × 命令

143 WHRXY 指定されたロボットのアームの現在位置を直交座標(mm、

度)で読み出す

○ 関数

X144 XYTOJ ポイント変数の直交座標データを指定されたロボットの関

節座標データに変換する(↔ JTOXY)○ 関数

8

9

10

11

12

13

機能別 ● 8-7

機能別

プログラム命令

一般命令

No. 名称 機能 オンライン 種類

26 DIM 配列変数の名前と要素数を宣言する × 命令

54 LET 指定された代入文を実行する ○ 命令

96 REM コメント文を記述する × 命令

算術命令

No. 名称 機能 オンライン 種類

1 ABS 指定された値の絶対値を求める ○ 関数

9 ATN 指定された値の逆正接値を求める ○ 関数

9 ATN2 指定された X-Y 座標の逆正接値を求める ○ 関数

16 COS 指定された値の余弦値を求める ○ 関数

23 DEGRAD 値をラジアンに変換する(↔ RADDEG) ○ 関数

27 DIST 指定される 2 点間の距離を求める ○ 関数

49 INT 値の小数点以下を切り捨てた整数値を得る ○ 関数

57 LSHIFT 値を指定したビット数だけ左にシフトさせる

(↔ RSHIFT)○ 関数

95 RADDEG 値を度に変換する(↔ DEGRAD) ○ 関数

103 RSHIFT 値を指定したビット数だけ右にシフトさせる

(↔ LSHIFT)○ 関数

115 SIN 指定された値の正弦値を求める ○ 関数

122 SQR 指定された値の平方根を求める ○ 関数

128 TAN 指定された値の正接値を求める ○ 関数

日付・時刻

No. 名称 機能 オンライン 種類

20 DATE $ 日付を "yy/mm/dd" の形式の文字列で求める ○ 関数

129 TCOUNTER TCOUNTER 変数がリセットされた時点から、1ms 毎にカ

ウントアップされた値を出力する

○ 関数

130 TIME $ 現在時刻を "hh:mm:ss" の形式の文字列で求める ○ 関数

131 TIMER 現在時刻を午前 0 時からの秒で求める ○ 関数

文字列操作

No. 名称 機能 オンライン 種類

14 CHR $ 指定したキャラクタコードを持つ文字を求める ○ 関数

51 LEFT $ 指定した文字列の左側から指定した桁数の文字列を抜き出す ○ 関数

53 LEN 指定した文字列の長さ(バイト数)を得る ○ 関数

59 MID $ 指定した文字列中から任意の長さの文字列を抜き出す ○ 関数

72 ORD 指定した文字列の最初の文字のキャラクタコードを得る ○ 関数

101 RIGHT $ 指定した文字列の右側から指定した桁数の文字列を抜き出す ○ 関数

124 STR $ 指定した値を文字列に変換する(↔ VAL) ○ 関数

136 VAL 指定した文字列表記の値を実際の数値に変換する(↔ STR $) ○ 関数

8

9

10

11

12

13

8-8 ● 第 8章 ロボット言語一覧

ポイント・座標・シフト座標

No. 名称 機能 オンライン 種類

12 CHANGE 指定されたロボットのハンドの切り替えを行う ○ 命令

44 HAND 指定されたロボットのハンドの定義をする ○ 命令

50 JTOXY 関節座標データを指定されたロボットの直交座標データに

変換する(↔ XYTOJ)○ 関数

52 LEFTY 指定されたロボットの手系を左手系に設定する ○ 命令

56 LOCx ポイントデータを軸単位またはシフトデータを要素単位で

設定/取得する

○ 命令/関数

77 PATH PATH 移動経路を設定する × 命令

85 Pn プログラムの中でポイントを定義する ○ 命令

86 PPNT パレット定義番号とパレット位置番号で指定されるポイン

トデータを作成する

○ 関数

102 RIGHTY 指定されたロボットの手系を右手系に設定する ○ 命令

117 Sn プログラムの中でシフト座標を定義する ○ 命令

112 SHIFT シフト変数を指定し、そこで指定されるシフトデータで指

定されたロボットのシフト座標を設定する

○ 命令

144 XYTOJ ポイント変数の直交座標データを指定されたロボットの関

節座標データに変換する(↔ JTOXY)○ 関数

分岐命令

No. 名称 機能 オンライン 種類

35 EXIT FOR FOR 文〜 NEXT 文のループを強制的に終了する × 命令

38 FOR 〜 NEXT 繰り返しを制御する指定値を超えるまで、FOR 文の次から

NEXT 文までを繰り返し実行する

× 命令

40 GOSUB 〜

RETURNGOSUB 文で指定されるラベルのサブルーチンにジャンプ

し、サブルーチンを実行する

× 命令

41 GOTO ラベルで指定される行に無条件ジャンプする × 命令

47 IF 条件によって制御の流れを分岐する × 命令

68 ON 〜 GOSUB 条件によって、GOSUB 文で指定される各ラベルのサブルー

チンにジャンプし、サブルーチンを実行する

× 命令

69 ON 〜 GOTO 条件によって、ラベルで指定される各行にジャンプする × 命令

104 SELECT CASE 〜

END SELECT条件によって制御の流れを分岐する × 命令

142 WHILE〜WEND 繰り返しを制御する × 命令

エラー制御

No. 名称 機能 オンライン 種類

33 ERR / ERL エラー発生時のエラーコード番号 / エラー発生行番号を取

得する

○ 関数

67 ON ERROR GOTO

プログラムを停止せずにラベルで示されるエラー処理ルー

チンへジャンプまたは、エラーメッセージを表示して、プ

ログラムの実行を停止する

× 命令

99 RESUME エラーの回復処理後、プログラムの実行を再開する × 命令

8

9

10

11

12

13

機能別 ● 8-9

プログラム・タスク制御

プログラム制御

No. 名称 機能 オンライン 種類

11 CALL サブプロシージャを呼び出す × 命令

42 HALT プログラムを停止し、かつ、リセットする × 命令

43 HALTALL 全てのプログラムを停止してリセットする × 命令

45 HOLD プログラムを一時停止する × 命令

46 HOLDALL 全てのプログラムを一時停止する × 命令

82 PGMTSK 指定されたプログラム番号が登録されているタスク番号を取得する ○ 関数

83 PGN 指定されたプログラム名からプログラム番号を取得する ○ 関数

109 SGI 指定された整数型静的変数に値を代入/取得する ○ 命令/関数

110 SGR 指定された実数型静的変数に値を代入/取得する ○ 命令/関数

127 SWI 実行プログラムを切り替え、1 行目から実行する × 命令

135 TSKPGM 指定されたタスク番号に登録されているプログラム番号を

取得する

○ 関数

タスク制御

No. 名称 機能 オンライン 種類

13 CHGPRI 指定されたタスクの優先順位を変更する ○ 命令

19 CUT 実行中または一時停止中の他のタスクを強制終了する ○ 命令

37 EXIT TASK 実行している自分自身のタスクを終了する × 命令

98 RESTART 一時停止中の他のタスクを再起動する ○ 命令

123 START 指定したタスクのタスク番号および優先順位を設定し、そ

のタスクを起動する

○ 命令

126 SUSPEND 実行中の他のタスクを一時停止する × 命令

ロボット制御

ロボット動作

No. 名称 機能 オンライン 種類

29 DRIVE 指定されたロボットを軸単位で絶対位置移動する ○ 命令

30 DRIVEI 指定されたロボットを軸単位で相対位置移動する ○ 命令

61 MOTOR モータ電源状態をコントロールする ○ 命令

62 MOVE 指定されたロボットの全軸を絶対移動する ○ 命令

63 MOVEI 指定されたロボットの全軸を相対移動する ○ 命令

64 MOVET 指定されたロボットの全軸をツール座標相対移動する ○ 命令

74 ORIGIN 原点復帰動作を実行する ○ 命令

84 PMOVE 指定されたロボットのパレット移動命令を実行する ○ 命令

94 PUSH 軸単位で押付動作する ○ 命令

106 SERVO 指定されたロボットの指定された軸または全軸のサーボ状

態をコントロールする

○ 命令

8

9

10

11

12

13

8-10 ● 第 8章 ロボット言語一覧

状態取得

No. 名称 機能 オンライン 種類

2 ABSRPOS 指定されたロボットの指定された軸のマシンリファレンス

値を求める(原点復帰方式がマーク方式の場合のみ有効)

○ 関数

5 ARMCND 指定されたロボットの現在のアームの状態を取得する ○ 関数

6 ARMSEL 指定されたロボットの現在の手系を設定/取得する ○ 命令/関数

7 ARMTYP 指定されたロボットの手系設定を設定/取得する ○ 命令/関数

17 CURTQST 指定された軸の定格トルクに対する現在トルク値を取得 ○ 関数

58 MCHREF 指定されたロボット軸の原点復帰動作およびアブソサーチ

動作のマシンリファレンスを求める(原点復帰方式がセン

サ方式または突き当て方式の場合のみ有効)

○ 関数

65 MTRDUTY 指定された軸のモータ負荷率を取得する ○ 関数

91 PSHRSLT PUSH 文終了時の状態を取得する ○ 関数

92 PSHSPD 押付速度比率パラメータを設定 / 取得する ○ 命令/関数

93 PSHTIME 押付時間パラメータを設定 / 取得する ○ 命令/関数

138 WAIT ARM 指定されたロボットの軸動作の完了を待つ × 命令

141 WHERE 指定されたロボットのアームの現在位置を関節座標(パル

ス)で読み出す

○ 関数

143 WHRXY 指定されたロボットのアームの現在位置を直交座標(mm、

度)で読み出す

○ 関数

状態変更

No. 名称 機能 オンライン 種類

3 ACCEL 指定されたロボットの加速度係数パラメータを設定/取得

する

○ 命令/関数

4 ARCHP1 指定されたロボットのアーチ位置 1 パラメータを設定/取

得する

○ 命令/関数

4 ARCHP2 指定されたロボットのアーチ位置 2 パラメータを設定/取

得する

○ 命令/関数

8 ASPEED 指定されたロボットの自動移動速度を設定/取得する ○ 命令/関数

10 AXWGHT 指定されたロボットの軸先端質量パラメータを設定/取得

する

○ 命令/関数

12 CHANGE 指定されたロボットのハンドの切り替えを行う ○ 命令

21 DECEL 指定されたロボットの減速比率パラメータを設定/取得す

○ 命令/関数

44 HAND 指定されたロボットのハンドの定義をする ○ 命令

52 LEFTY 指定されたロボットの手系を左手系に設定する ○ 命令

73 ORGORD 指定されたロボットの原点復帰動作およびアブソサーチ動

作を行う軸順序パラメータを設定/取得する

○ 命令/関数

76 OUTPOS 指定されたロボットのアウト有効位置パラメータを設定/

取得する

○ 命令/関数

81 PDEF パレット移動命令を実行するためのパレットを定義する ○ 命令

88 PSHFRC 押付力パラメータを設定 / 取得する ○ 命令/関数

89 PSHJGSP 押付判定速度閾値パラメータを設定 / 取得する ○ 命令/関数

90 PSHMTD 押付方式パラメータを設定 / 取得する ○ 命令/関数

102 RIGHTY 指定されたロボットの手系を右手系に設定する ○ 命令

108 SETGEP 汎用イーサネットポートを設定する ○ 命令

121 SPEED 指定されたロボットのプログラム移動速度を変更する ○ 命令

133 TOLE 指定されたロボットの公差パラメータを設定/取得する ○ 命令/関数

139 WEIGHT 指定されたロボットの先端質量パラメータを設定/取得する ○ 命令/関数

8

9

10

11

12

13

機能別 ● 8-11

PATH制御

No. 名称 機能 オンライン 種類

77 PATH PATH 移動経路を設定する × 命令

78 PATH END PATH 移動の経路設定を終了する × 命令

79 PATH SET PATH 移動の経路設定を開始する × 命令

80 PATH START PATH 移動を開始する × 命令

トルク制御

No. 名称 機能 オンライン 種類

17 CURTQST 指定された軸の定格トルクに対する現在トルク値を取得 ○ 関数

18 CURTRQ 指定された軸の現在トルク値を取得する ○ 関数

94 PUSH 軸単位で押付動作する ○ 命令

134 TORQUE 指定されたロボットの指定された軸の最大トルク指令値を

設定/取得する

○ 命令/関数

入出力・通信制御

入出力制御

No. 名称 機能 オンライン 種類

24 DELAY 指定された時間(単位 ms)だけ待つ × 命令

28 DO 指定された値を DO ポートに出力または出力状態を取得する ○ 命令/関数

34 ETHSTS イーサネットポートの状態を取得する ○ 関数

39 GEPSTS 汎用イーサネットポートの状態を取得する ○ 関数

55 LO 指定された値を LO ポートに出力し、軸移動の禁止や解除

を行うまたは出力状態を取得する

○ 命令/関数

60 MO 指定された値を MO ポートに出力または出力状態を取得する ○ 命令/関数

75 OUT 指定された出力ポートのビットをオンして命令文を終了する × 命令

97 RESET 指定された出力ポートのビットをオフする ○ 命令

107 SET 指定された出力ポートのビットをオンする △ 命令

113 SI 指定された SI の状態を取得する ○ 関数

114 SID 指定されたシリアル入力のワード情報の状態をダブルワー

ドで取得する

○ 関数

116 SIW 指定されたシリアル入力のワード情報を取得する ○ 関数

118 SO 指定された値を SO ポートに出力または出力状態を取得する ○ 命令/関数

119 SOD 指定されたシリアル出力のワード情報にダブルワードで出

力または出力状態を取得する

○ 命令/関数

120 SOW 指定されたシリアル出力のワード情報に出力または出力状

態を取得する

○ 命令/関数

132 TO 指定された値を TO ポートに出力または出力状態を取得する ○ 命令/関数

137 WAIT 条件式が成立するまで待つ ( タイムアウト付 ) × 命令

通信制御

No. 名称 機能 オンライン 種類

15 CLOSE 指定された汎用イーサネットポートを閉じる ○ 命令

66 OFFLINE 指定した通信ポートをオフラインモードに設定する ○ 命令

70 ONLINE 指定した通信ポートをオンラインモードに設定する ○ 命令

71 OPEN 指定された汎用イーサネットポートを開く ○ 命令

105 SEND ファイルを転送する ○ 命令

8

9

10

11

12

13

8-12 ● 第 8章 ロボット言語一覧

関数:アルファベット順

No. 名称 種類 機能

A1 ABS 算術関数 指定された値の絶対値を求める

2 ABSRPOS 算術関数 指定されたロボットの指定された軸のマシンリファレンス値を求

める(原点復帰方式がマーク方式の場合のみ有効)

3 ACCEL 算術関数 指定されたロボットの加速度係数パラメータを取得する

4 ARCHP1 算術関数 指定されたロボットのアーチ位置 1 パラメータを取得する

4 ARCHP2 算術関数 指定されたロボットのアーチ位置 2 パラメータを取得する

5 ARMCND 算術関数 指定されたロボットの現在のアームの状態を取得する

6 ARMSEL 算術関数 指定されたロボットの現在の手系の設定を取得する

7 ARMTYP 算術関数 指定されたロボットの手系設定を取得する

8 ASPEED 算術関数 指定されたロボットの自動移動速度を取得する

9 ATN 算術関数 指定された値の逆正接値を求める

9 ATN2 算術関数 指定された X-Y 座標の逆正接値を求める

10 AXWGHT 算術関数 指定されたロボットの軸先端質量パラメータを取得する

C14 CHR$ 文字列関数 指定したキャラクタコードを持つ文字を求める

16 COS 算術関数 指定された値の余弦値を求める

17 CURTQST 算術関数 指定された軸の定格トルクに対する現在トルク値を取得する

18 CURTRQ 算術関数 指定された軸の現在トルク値を取得する

D20 DATE$ 文字列関数 日付を "yy/mm/dd" の形式の文字列で求める

21 DECEL 算術関数 指定されたロボットの減速比率パラメータを取得する

23 DEGRAD 算術関数 値をラジアンに変換する(↔ RADDEG)

27 DIST 算術関数 指定される 2 点間の距離を求める

E33 ERR / ERL 算術関数 エラー発生時のエラーコード番号 / エラー発生行番号を取得す

34 ETHSTS 算術関数 イーサネットポートの状態を取得する

G39 GEPSTS 算術関数 汎用イーサネットポートの状態を取得する

I49 INT 算術関数 値の小数点以下を切り捨てた整数値を得る

J50 JTOXY ポイント関数 関節座標データを指定されたロボットの直交座標データに変換

する(↔ XYTOJ)

L51 LEFT$ 文字列関数 指定した文字列の左側から指定した桁数の文字列を抜き出す

53 LEN 算術関数 指定した文字列の長さ(バイト数)を得る

56 LOCx ポイント関数 ポイントデータを軸単位またはシフトデータを要素単位で取得

する

57 LSHIFT 算術関数 値を指定したビット数だけ左にシフトさせる(↔ RSHIFT)

8

9

10

11

12

13

関数:アルファベット順 ● 8-13

No. 名称 種類 機能

M58 MCHREF 算術関数 指定されたロボット軸の原点復帰動作およびアブソサーチ動作

のマシンリファレンスを求める(原点復帰方式がセンサ方式ま

たは突き当て方式の場合のみ有効)

59 MID$ 文字列関数 指定した文字列中から任意の長さの文字列を抜き出す

65 MTRDUTY 算術関数 指定された軸のモータ負荷率を取得する

O72 ORD 算術関数 指定した文字列の最初の文字のキャラクタコードを得る

73 ORGORD 算術関数 指定されたロボットの原点復帰動作およびアブソサーチ動作を

行う軸順序パラメータを取得する

76 OUTPOS 算術関数 指定されたロボットのアウト有効位置パラメータを取得する

P82 PGMTSK 算術関数 指定されたプログラムが登録されているタスク番号を取得する

83 PGN 算術関数 指定されたプログラム名からプログラム番号を取得する

86 PPNT ポイント関数 パレット定義番号とパレット位置番号で指定されるポイント

データを作成する

88 PSHFRC 算術関数 押付力パラメータを取得する

89 PSHJGSP 算術関数 押付判定速度閾値パラメータを取得する

90 PSHMTD 算術関数 押付方式パラメータを取得する

91 PSHRSLT 算術関数 PUSH 文終了時の状態を取得する

92 PSHSPD 算術関数 押付速度比率パラメータを取得する

93 PSHTIME 算術関数 押付時間パラメータを取得する

R95 RADDEG 算術関数 値を度に変換する(↔ DEGRAD)

101 RIGHT$ 文字列関数 指定した文字列の右側から指定した桁数の文字列を抜き出す

103 RSHIFT 算術関数 値を指定したビット数だけ右にシフトさせる(↔ LSHIFT)

S109 SGI 算術関数 指定された整数型静的変数の値を取得する

110 SGR 算術関数 指定された実数型静的変数の値を取得する

113 SI 算術関数 指定された SI の状態を取得する

114 SID 算術関数 指定されたシリアル入力のワード情報の状態をダブルワードで

取得する

115 SIN 算術関数 指定された値の正弦値を求める

116 SIW 算術関数 指定されたシリアル入力のワード情報を取得する

122 SQR 算術関数 指定された値の平方根を求める

124 STR$ 文字列関数 指定した値を文字列に変換する(↔ VAL)

T128 TAN 算術関数 指定された値の正接値を求める

129 TCOUNTER 算術関数 TCOUNTER 変数がリセットされた時点から、1ms 毎にカウントアッ

プされた値を出力する

130 TIME$ 文字列関数 現在時刻を "hh:mm:ss" の形式の文字列で求める

131 TIMER 算術関数 現在時刻を午前 0 時からの秒で求める

133 TOLE 算術関数 指定されたロボットの公差パラメータを取得する

134 TORQUE 算術関数 指定されたロボットの指定された軸の最大トルク指令値を取得

する

135 TSKPGM 算術関数 指定されたタスク番号に登録されているプログラム番号を取得

する

8

9

10

11

12

13

8-14 ● 第 8章 ロボット言語一覧

No. 名称 種類 機能

V136 VAL 算術関数 指定した文字列表記の値を実際の数値に変換する(↔ STR $)

W139 WEIGHT 算術関数 指定されたロボットの先端質量パラメータを取得する

141 WHERE ポイント関数 指定されたロボットのアームの現在位置を関節座標(パルス)で

読み出す

143 WHRXY ポイント関数 指定されたロボットのアームの現在位置を直交座標(mm、度)

で読み出す

X144 XYTOJ ポイント関数 ポイント変数の直交座標データを指定されたロボットの関節座

標データに変換する(↔ JTOXY)

8

9

10

11

12

13

関数:機能別 ● 8-15

関数:機能別

ポイント関連

No. 名称 機能

50 JTOXY 関節座標データを指定されたロボットの直交座標データに変換する(↔ XYTOJ)

56 LOCx ポイントデータを軸単位またはシフトデータを要素単位で取得する

86 PPNT パレット定義番号とパレット位置番号で指定されるポイントデータを作成する

141 WHERE 指定されたロボットのアームの現在位置を関節座標(パルス)で読み出す

143 WHRXY 指定されたロボットのアームの現在位置を直交座標(mm、度)で読み出す

144 XYTOJ ポイント変数の直交座標データを指定されたロボットの関節座標データに変換する(↔ JTOXY)

パラメータ関連

No. 名称 機能

2 ABSRPOS 指定されたロボットの指定された軸のマシンリファレンス値を求める(原点復帰方式がマーク方式の場合のみ有効)

3 ACCEL 指定されたロボットの加速度係数パラメータを取得する

4 ARCHP1 指定されたロボットのアーチ位置 1 パラメータを取得する

4 ARCHP2 指定されたロボットのアーチ位置 2 パラメータを取得する

5 ARMCND 指定されたロボットの現在のアームの状態を取得する

6 ARMSEL 指定されたロボットの現在の手系の設定を取得する

7 ARMTYP 指定されたロボットの手系設定を取得する

10 AXWGHT 指定されたロボットの軸先端質量パラメータを取得する

17 CURTQST 指定された軸の定格トルクに対する現在トルク値を取得

18 CURTRQ 指定されたロボットの指定された軸の現在トルク値を取得する

21 DECEL 指定されたロボットの減速比率パラメータを取得する

53 LEN 指定した文字列の長さ(バイト数)を得る

58 MCHREF 指定されたロボット軸の原点復帰動作およびアブソサーチ動作のマシンリファレンスを求める(原点復帰方式がセンサ方式または突き当て方式の場合のみ有効)

65 MTRDUTY 指定された軸のモータ負荷率を取得する

72 ORD 指定した文字列の最初の文字のキャラクタコードを得る

73 ORGORD 指定されたロボットの原点復帰動作およびアブソサーチ動作を行う軸順序パラメータを取得する

76 OUTPOS 指定されたロボットのアウト有効位置パラメータを取得する

88 PSHFRC 押付力パラメータを取得する

89 PSHJGSP 押付判定速度閾値パラメータを取得する

90 PSHMTD 押付方式パラメータを取得する

91 PSHRSLT PUSH 文終了時の状態を取得する

92 PSHSPD 押付速度比率パラメータを取得する

93 PSHTIME 押付時間パラメータを取得する

133 TOLE 指定されたロボットの公差パラメータを取得する

134 TORQUE 指定されたロボットの指定された軸の最大トルク指令値を取得する

139 WEIGHT 指定されたロボットの先端質量パラメータを取得する

8

9

10

11

12

13

8-16 ● 第 8章 ロボット言語一覧

プログラム関連

No. 名称 機能

82 PGMTSK 指定されたプログラムが登録されているタスク番号を取得する

83 PGN 指定されたプログラム名からプログラム番号を取得する

135 TSKPGM 指定されたタスク番号に登録されているプログラム番号を取得する

数値演算関連

No. 名称 機能

1 ABS 指定された値の絶対値を求める

9 ATN 指定された値の逆正接値を求める

9 ATN2 指定された X-Y 座標の逆正接値を求める

16 COS 指定された値の余弦値を求める

23 DEGRAD 値をラジアンに変換する(↔ RADDEG)

27 DIST 指定される 2 点間の距離を求める

49 INT 値の小数点以下を切り捨てた整数値を得る

57 LSHIFT 値を指定したビット数だけ左にシフトさせる(↔ RSHIFT)

95 RADDEG 値を度に変換する(↔ DEGRAD)

103 RSHIFT 値を指定したビット数だけ右にシフトさせる(↔ LSHIFT)

115 SIN 指定された値の正弦値を求める

122 SQR 指定された値の平方根を求める

128 TAN 指定された値の正接値を求める

136 VAL 指定した文字列表記の値を実際の数値に変換する(↔ STR $)

文字列演算関連

No. 名称 機能

14 CHR $ 指定したキャラクタコードを持つ文字を得る

20 DATE $ 日付を "yy/mm/dd" の形式の文字列で求める

51 LEFT $ 指定した文字列の左側から指定した桁数の文字列を抜き出す

59 MID $ 指定した文字列中から任意の長さの文字列を抜き出す

101 RIGHT $ 指定した文字列の右側から指定した桁数の文字列を抜き出す

124 STR $ 指定した値を文字列に変換する(↔ VAL)

130 TIME $ 現在時刻を “hh:mm:ss” の形式の文字列で求める

その他

No. 名称 機能

33 ERR / ERL エラー発生時のエラーコード番号 / エラー発生行番号を取得する

34 ETHSTS イーサネットポートの状態を取得する

39 GEPSTS 汎用イーサネットポートの状態を取得する

109 SGI 指定された整数型静的変数の値を取得する

110 SGR 指定された整数型静的変数の値を取得する

129 TCOUNTER TCOUNTER 変数がリセットされた時点から、1ms 毎にカウントアップされた値を出力する

131 TIMER 現在時刻を午前 0 時からの秒で求める

A

B

C

D

E

F

G

H

I

J

K

L

M

8

ABS ● 8-17

1 ABS絶対値を求める

形式

ABS(式)

 意味  式 で指定された値の絶対値を返します。

SAMPLE

A=ABS(-326.55) ・・・・・・・・・・・・・・・・・・ -362.54の絶対値(362.54)を変数 Aに代入

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-18 ● 第 8章 ロボット言語一覧

2 ABSRPOSマシンリファレンス(マーク方式の軸)を取得する

形式

ABSRPOS[ロボット番号](軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボットの 軸番号 で指定された軸のマシンリファレンス

値を取得します(単位:%)。

この関数の対象となるのは、原点復帰方式がマーク方式に設定されている軸です。

センサ方式、突き当て方式の軸は関係ありません。

・ 原点復帰方式がマーク方式に設定されている軸では、マシンリファレンス値が 44 〜 56% の

範囲にある時、アブソリセットが可能です。

SAMPLE

A=ABSRPOS(4)・・・・・・・・ ロボット 1の第 4軸のマシンリファレンス値を変数 Aに代入

MEMO

A

B

C

D

E

F

G

H

I

J

K

L

M

8

ACCEL ● 8-19

3 ACCEL加速度係数パラメータを設定/取得する

形式

1. ACCEL [ロボット番号] 式2. ACCEL [ロボット番号] (軸番号)=式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  ロボット番号 で指定されたロボット軸の加速度係数パラメータを 式 の値に変更しま

す。

形式 1 は指定ロボットに設定された全軸を変更します。

形式 2 は 軸番号 で指定された軸のみを変更します。

関数

形式

ACCEL[ロボット番号](軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボット軸のうち 軸番号 で指定された軸の加速度係数パ

ラメータの値を取得します。

SAMPLE

A=50ACCEL A ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の全軸の加速度係数を 50%にする

ACCEL(3)=100 ・・・・・・・・・・・・・・・・・・・・ ロボット 1の 3軸目のみ 100%にする

’CYCLE WITH INCREASING ACCELERATIONFOR A=10 TO 100 STEP 10 ・・・ 加速度係数パラメータを 10%から 100%まで 10%

ずつ変化させる

ACCEL A MOVE P,P0 MOVE P,P1NEXT AA=ACCEL(3)・・・・・・・・・・・・ ロボット 1の第 3軸の加速度係数パラメータを変数 Aに代入

HALT "END TEST"

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-20 ● 第 8章 ロボット言語一覧

4 ARCHP1/ARCHP2パラメータのアーチ位置を設定/取得する

形式

1. ARCHP1[ロボット番号] 式2. ARCHP1[ロボット番号] (軸番号)=式

形式

1. ARCHP2[ロボット番号] 式2. ARCHP2[ロボット番号] (軸番号)=式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 99999999(単位:パルス)

 意味  ARCHP1 はアーチ位置 1 パラメータ、ARCHP2 はアーチ位置 2 パラメータにそれぞ

れ対応します。パラメータのアーチ位置を 式 の値に変更します。

形式 1 は指定ロボットに設定された全軸を変更します。

形式 2 は、 軸番号 で指定された軸のみを 式 の値に変更します。

関数

形式

ARCHP1 [ロボット番号] (軸番号)

形式

ARCHP2 [ロボット番号] (軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ARCHP1 はアーチ位置 1 パラメータ、ARCHP2 はアーチ位置 2 パラメータにそれぞ

れ対応します。

軸番号 で指定された軸のアーチ位置パラメータの値を取得します。

SAMPLE

ARCHP1(3)=10 ・・・・・・・・・・・・・・・・・・・・ ロボット1の第 3軸のアーチ位置 1パラメータ値

を 10パルスに変更

ARCHP2(3)=20 ・・・・・・・・・・・・・・・・・・・・ ロボット1の第 3軸のアーチ位置 2パラメータ値

を 20パルスに変更 ・ ・ ・

FOR B=1 TO 4  SAV(B-1)=ARCHP1(B) ・・・・・・・ 配列変数SAV(0)〜(3)に、アーチ位置パラメー

タ ARCHP1(1)〜 (4)を代入

NEXT

A

B

C

D

E

F

G

H

I

J

K

L

M

8

ARMCND ● 8-21

5 ARMCNDアーム状態の取得

形式

ARMCND[ロボット番号]

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  スカラ型ロボットに対する現在のアーム状態を与えます。 ロボット番号 でアーム状

態を取得するロボットを指定します。

右手系の場合は 1、左手系の場合は 2 です。

スカラ型ロボット使用時のみ有効です。

SAMPLE

A=ARMCND ・・・・・・・・・・・・・・・・・・・・・・・・・・ 変数 Aにロボット 1の現在のアーム状態を代入

IF A=1 THEN ・・・・・・・・・・・・・・・・・・・・・・ 右手系状態

 MOVE P, P100, Z=0ELSE ・・・・・・・・・・・・・・・・・・・・・・・・・・ 左手系状態

 MOVE P, P200, Z=0ENDIF

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-22 ● 第 8章 ロボット言語一覧

6 ARMSEL現在の手系選択を設定 /取得

形式

ARMSEL [ロボット番号 ] 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1:右手系、2:左手系

 意味  スカラ型ロボットの現在の手系選択を設定します。 ロボット番号 で手系選択を設定

するロボットを指定します。

スカラ型ロボット使用時のみ有効です。

SAMPLE

ARMSEL[2] 2 ・・・・・・・・・・・・・・・・・・・・・ ロボット 2 の手系選択を左手系に設定

関数

形式

ARMSEL [ロボット番号 ]

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  スカラ型ロボットの現在選択されている手系を与えます。 ロボット番号 で手系を取

得するロボットを指定します。

右手系の場合は 1、左手系の場合は 2 です。

スカラ型ロボット使用時のみ有効です。

SAMPLE

A=ARMSEL ・・・・・・・・・・・・・・・・・・・・・・・・・ 変数 Aにロボット 1の現在の手系選択を代入

IF A=1 THEN ・・・・・・・・・・・・・・・・・・・・・ 手系選択が右手系

 MOVE P,P100,Z=0ELSE ・・・・・・・・・・・・・・・・・・・・・・・・・・ 手系選択が左手系

 MOVE P,P200,Z=0ENDIF

A

B

C

D

E

F

G

H

I

J

K

L

M

8

ARMTYP ● 8-23

7 ARMTYPプログラムリセット時の手系を設定 /取得

形式

ARMTYP[ロボット番号 ] 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1:右手系、2:左手系

 意味  スカラ型ロボットのプログラムリセット時の手系を設定します。 ロボット番号 で手

系選択を設定するロボットを指定します。

スカラ型ロボット使用時のみ有効です。

SAMPLE

ARMTYP[2] 2 ・・・・・・・・・・・・・・・・・・・・・ ロボット 2 の手系を左手系に設定

関数

形式

ARMTYP [ロボット番号 ]

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  スカラ型ロボットのプログラムリセット時の手系を与えます。 ロボット番号 で手系

を取得するロボットを指定します。

右手系の場合は 1、左手系の場合は 2 です。

スカラ型ロボット使用時のみ有効です。

SAMPLE

A=ARMTYP ・・・・・・・・・・・・・・・・・・・・・・・・・ 変数 Aにロボット 1 のアームタイプ値を代入

IF A=1 THEN ・・・・・・・・・・・・・・・・・・・・・ アームタイプが右手系

 MOVE P,P100,Z=0ELSE ・・・・・・・・・・・・・・・・・・・・・・・・・・ アームタイプが左手系

 MOVE P,P200,Z=0ENDIFHALTALL ・・・・・・・・・・・・・・・・・・・・・・・・・・ プログラムリセット

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-24 ● 第 8章 ロボット言語一覧

8 ASPEED指定されたロボットの自動移動速度を設定 /取得する

形式

ASPEED[ロボット番号] 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  ロボット番号 で指定したロボットの自動移動速度を 式 で指定した値に変更します。

全ての軸のスピードが変更されます。

動作速度は、プログラミングボックスの操作や ASPEED 命令によって設定された自

動移動速度と SPEED 命令等によって指定されたプログラム移動速度の積によって決

まります。

動作速度 = 自動移動速度×プログラム移動速度

例:

自動移動速度 ・・・・・・・・・・ 80%

プログラム移動速度 ・・・・ 50%

移動速度 = 40%(80% × 50%)

関数

形式

ASPEED[ロボット番号 ]

 値  ロボット番号・・・・・1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  ロボット番号 で指定したロボットの自動移動速度の値を取得します。

SAMPLE

SPEED 70 ASPEED 100 MOVE P,P0 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット1を現在位置からP0へ70%(=100*70)

の速度で移動

ASPEED 50 MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置から P1へ 35%(=50*70)

の速度で移動

MOVE P,P2,S=10 ・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置から P2へ 5%(=50*10)の速度で移動

HALT

関連 SPEED

n 要点

・・自動移動速度 プログラミングボックスの操作または ASPEED 命令によって設定

・・プログラム移動速度 SPEED 命令または MOVE、DRIVE の速度指定によって設定

A

B

C

D

E

F

G

H

I

J

K

L

M

8

ATN・/・ATN2 ● 8-25

9 ATN / ATN2逆正接値を求める

形式

ATN(式)

形式

ATN2(式 1,式 2)

 意味  ATN: 式 で指定された値の逆正接値を与えます。得られる値は - π /2 から

+ π /2 までの範囲のラジアンです。

ATN2: 式 1 と 式 2 で指定された X-Y 座標の逆正接値を与えます。得られる

値は - πから + πまでの範囲のラジアンです。

SAMPLE

A(0)=A*ATN(Y/X) ・・・・・・・・・・・・・・・・ 式 (Y/X)の逆正接値と変数 Aとの積を配列

A(0)に代入

A(0)=ATN(0.5) ・・・・・・・・・・・・・・・・・・・ 0.5の逆正接値を配列 A(0)に代入

A(0)=ATN2(B,C)-D ・・・・・・・・・・・・・・ X-Y座標上の(B,C)の逆正接値と変数 Dとの差

を配列 A(0)に代入

A(1)=RADDEG(ATN2(B,C)) ・・・・・ X-Y座標上の(B,C)の逆正接値を度に変換して

配列 A(1)に代入

関連 COS, DEGRAD, RADDEG, SIN, TAN

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-26 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-26 ● 第 8章 ロボット言語一覧

10 AXWGHT軸先端質量を設定/取得する

形式

AXWGHT[ロボット番号](軸番号)=式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 設定されているロボットによって異なる

 意味  ロボット番号 で指定されたロボット軸のうち 軸番号 で指定された軸の軸先端質量パ

ラメータを 式 の値に変更します。

ロボット設定が“MULTI”の軸または、付加軸に対してのみ有効です(ロボットの機種

および付加軸は、出荷時に設定されています)。

関数

形式

AXWGHT[ロボット番号](軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボット軸のうち 軸番号 で指定された軸の軸先端質量パ

ラメータの値を与えます。

ロボットが“MULTI”の軸または付加軸に対してのみ有効です。

SAMPLE

A=5 B=0

C=AXWGHT(1)���������������������ロボット 1の第 1軸の軸先端質量の値を取得 (現在の値を変数 Cへ保存)

AXWGHT(1)=A DRIVE(1,P0) AXWGHT(1)=B DRIVE(1,P1) AXWGHT(1)=C ・・・・・・・・・・・・・・・・・・・・・ ロボット 1の第 1軸の軸先端質量の値を再設定

HALT

関連 WEIGHT

8

CALL ● 8-27

A

B

C

D

E

F

G

H

I

J

K

L

M

A

B

C

D

E

F

G

H

I

J

K

L

M

11 CALLサブプロシージャを呼び出す

形式

CALL ラベル(実引数 ,実引数 ...)

 意味  SUB 文〜 END SUB 文で定義されたサブプロシージャを呼び出します。

ラベル は、SUB 文で定義された名前と同じものを指定します。

1. 実引数に定数または式を指定した場合、値渡しとなります。

2. 実引数に変数または配列の要素を指定した場合、値渡しとなります。ただし、

実引数の前に、「REF」を付加することにより、参照渡しとなります。

3. 実引数に配列全体(配列名の後ろに( )がついたもの)を指定した場合、参照渡

しとなります。

・ CALL 文は、続けて 120 回まで使用できます。ただし、FOR 文や GOSUB 文など、スタッ

クを使用する命令の使用状態や識別子の使用状況により回数は減少します。

・ CALL 文でサブプロシージャを呼び出した場合、サブプロシージャは必ず END SUB 文また

は EXIT SUB 文で終了してください。GOTO 文などでサブルーチンからジャンプした場合、

“5.212:スタックオーバーフロー”などのエラーが発生することがあります。

SAMPLE 1

X%=4 Y%=5 CALL *COMPARE( REF X%, REF Y% ) HALT ’SUB ROUTINE: COMPARE SUB *COMPARE( A%, B% ) IF A% < B% THEN TEMP%=A% A%=B% B%=TEMP% ENDIF END SUB

SAMPLE 2

I = 1 CALL *TEST( I ) HALT ’SUB ROUTINE: TEST SUB *TEST X = X + 1 IF X < 15 THEN CALL *TEST( X ) ENDIF END SUB

関連 SUB, END SUB, EXIT SUB, SHARED

n 要点

・・値渡しの場合、サブプロシージャ内で値を変更しても、実引数の元の値は変化しません。

・・参照渡しの場合、サブプロシージャ内で値を変更すると、実引数の元の値も変化します。

・・詳細は、3 章「8 値渡しと参照渡し」を参照してください。

MEMO

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-28 ● 第 8章 ロボット言語一覧

12 CHANGEハンドを切り替える

形式

CHANGE[ロボット番号] Hn OFF

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

n: ハンド番号・・・・・・・・・・・・・・ 0 〜 31

 意味  ロボット番号 で指定されたロボットのハンドの切り替えを行います。

OFF を指定した場合、ハンド設定無しとなります。

ハンドの切り替えを行う前に HAND 文やプログラミングボックス、RCX-Studio Pro

でハンドの設定を行なってください。

詳細は「44 HAND」を参照してください。他のロボットを指定して定義されたハンド

データを指定すると“6.258:ロボット番号エラー”が発生します。

SAMPLE

HAND H1= 0 150.000 0.000HAND H2= -5000 20.000 0.000P1= 150.000 300.000 0.000 0.000 0.000 0.000CHANGE H2 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンドをハンド 2に変更

MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンド 2の先端が P1へ移動(1) CHANGE H1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンドをハンド 1に変更

MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンド 1の先端が P1へ移動(2) HALT

8

CHGPRI ● 8-29

A

B

C

D

E

F

G

H

I

J

K

L

M

A

B

C

D

E

F

G

H

I

J

K

L

M

13 CHGPRIタスクの優先順位を変更する

形式

CHGPRI Tn ,p <プログラム名>

PGm

 値  m:プログラム番号 ・・・・・・・・ 1 〜 100

n:タスク番号 ・・・・・・・・・・・・・ 1 〜 16

p:タスク優先順位 ・・・・・・・・・ 1 〜 64

 意味  直接指定されたタスク n の優先順位を p に変更します。

優先順位は、値が小さいほど高く、大きいほど低くなります(高い 1 ⇔低い:64)。

タスク優先順位の高いタスクが READY 状態の場合、優先順位の低いタスクは

READY 状態のままとなります。

SAMPLE

START <SUB_PGM>,T2,33 *ST: MOVE P,P0,P1 IF DI(20) = 1 THEN CHGPRI T2,32 ELSE CHGPRI T2,33 ENDIF GOTO *ST HALTALL

プログラム名 :SUB_PGM’SUBTASK ROUTINE *SUBTASK: IF LOC3(WHERE) > 10000 THEN DO(20) = 1 GOTO *SUBTASK ENDIF DO(20) = 0 GOTO *SUBTASKEXIT TASK

関連 CUT, EXIT TASK, RESTART, SUSPEND, START

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-30 ● 第 8章 ロボット言語一覧

14 CHR$指定したキャラクタコードを持つ文字を求める

形式

CHR$(式)

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 255

 意味  指定したキャラクタコードを持つ文字を返します。 式 の値が 0 〜 255 の範囲にない

場合、エラーになります。

SAMPLE

A$=CHR$(65) ・・・・・・・・・・・・・・・・・・・・・・ A$に "A"を代入

関連 ORD

8

CLOSE ● 8-31

A

B

C

D

E

F

G

H

I

J

K

L

M

A

B

C

D

E

F

G

H

I

J

K

L

M

15 CLOSE指定された汎用イーサネットポートを閉じる

形式

CLOSE GPm

 値  m:汎用イーサネットポート番号 ・・・・・・・・ 0 〜 7

 意味  指定した汎用イーサネットポート番号の通信ポートを閉じます。

SAMPLE

OPEN GP1 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 汎用イーサネットポート番号 1の通信ポートを開く

SEND “123” TO GP1 ・・・・・・・・・・・・・ 汎用イーサネットポート番号 1から文字列 “123” を送信する

SEND GP1 TO A$ ・・・・・・・・・・・・・・・・ 汎用イーサネットポート番号 1からデータを受信

し、受信したデータを変数 A$へ保存する

CLOSE GP1 ・・・・・・・・・・・・・・・・・・・・・・・・ 汎用イーサネットポート番号 1の通信ポートを閉じる

関連 OPEN, SEND, SETGEP, GEPSTS

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-32 ● 第 8章 ロボット言語一覧

16 COS余弦値を求める

形式

COS(式)

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 角度(単位:ラジアン)

 意味  式 の値に対する余弦値を与えます。

SAMPLE

A(0)=B*COS(C) ・・・・・・・・・・・・・・・・・・・ 変数 Cの余弦値と変数 Bとの積を配列 A(0)に代

A(1)=COS(DEGRAD(20)) ・・・・・・・・ 20.0°の余弦値を配列 A(1)に代入

関連 ATN, DEGRAD, RADDEG, SIN, TAN

8

CURTQST ● 8-33

A

B

C

D

E

F

G

H

I

J

K

L

M

A

B

C

D

E

F

G

H

I

J

K

L

M

17 CURTQST指定された軸の定格トルクに対する現在トルクを取得

形式

CURTQST [ロボット番号 ](軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボットの、 軸番号 で指定した軸の定格トルク値に対す

る現在トルク値(-1000 〜 1000)を取得します。

値は、定格トルク値に対する比率を表します。また、符号は向きを表しています。

SAMPLE

A = CURTQST(3) ・・・・・・・・・・・・・・・・・ ロボット 1の第 3軸の定格トルクに対する現在ト

ルク値を変数 Aに代入

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-34 ● 第 8章 ロボット言語一覧

18 CURTRQ指定された軸の現在トルク値を取得する

形式

CURTRQ[ロボット番号](式)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボット軸のうち 式 で指定される軸の現在トルク値

(-100 〜 100) を取得します。

値は、最大トルク指令値に対する比率を表します。また、符号は向きを表しています。

SAMPLE

A = CURTRQ(3) ・・・・・・・・・・・・・・・・・ ロボット 1の第 3軸の現在トルク値を変数 Aに代入

8

CUT ● 8-35

A

B

C

D

E

F

G

H

I

J

K

L

M

A

B

C

D

E

F

G

H

I

J

K

L

M

19 CUT起動中の他のタスクを強制終了する

形式

CUT Tn    <プログラム名>

    PGm

 値  m:プログラム番号 ・・・・・・・・ 1 〜 100

n:タスク番号 ・・・・・・・・・・・・・ 1 〜 16

 意味  直接実行中または一時停止中の他のタスクを強制終了します。タスクは実行してい

るプログラムの名前、または番号により指定することも可能です。

自分自身のタスクを強制終了させることはできません。

・ 起動していないタスク(プログラム)を指定して実行した場合、エラーが発生します。

SAMPLE

’TASK1 ROUTINE *ST: MO(20) = 0 START <SUB_PGM>,T2 MOVE P,P0 MOVE P,P1 WAIT MO(20) = 1 CUT T2 GOTO *ST HALTALL

プログラム名 :SUB_PGM’TASK2 ROUTINE *SUBTASK2: P100=JTOXY(WHERE) IF LOC3(P100) > = 100.0 THEN MO(20) = 1 ELSE DELAY 100 ENDIF GOTO *SUBTASK2EXIT TASK

関連 EXIT TASK, RESTART, START, SUSPEND

MEMO

8

8-36 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

20 DATE$日付を取得する

形式

DATE$

 意味  日付を、yyyy/mm/dd の形式の文字列で与えます。

yyyy は西暦、mm は月、dd は日を意味します。

日付の設定は、プログラミングボックスなどの操作端末で行います。

SAMPLE

A$=DATE$PRINT DATE$HALT

関連 TIME$

8

DECEL ● 8-37

A

B

C

D

E

F

G

H

I

J

K

L

M

21 DECEL減速比率パラメータを設定/取得する

形式

1. DECEL [ロボット番号] 式2. DECEL [ロボット番号] (軸番号)=式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100 (単位:%)

 意味  ロボット番号 で指定されたロボット軸の減速比率パラメータを 式 の値に変更します。

形式 1 は指定されたロボットの全軸を変更します。

形式 2 は 軸番号 で指定された軸のみを変更します。

・ 命令文:ACCEL を使用すると、加速度パラメータを変更できます。

関数

形式

DECEL [ロボット番号] (軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボット軸のうち 軸番号 で指定された軸の減速比率パラ

メータの値を与えます。

SAMPLE

A =50 DECEL A ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の全軸の減速比率パラメータに 50を設定

DECEL(3)=100 ・・・・・・・・・・・・・・・・・・・・ ロボット 1の第 3軸の減速比率パラメータに 100を設定

’CYCLE WITH INCREASING DECELERATION FOR A =10 TO 100 STEP 10 DECEL A ・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の全軸の減速比率パラメータに変数 A

の値を設定

MOVE P ,P0 MOVE P ,P1 NEXT A A=DECEL(3) ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の第 3軸の減速比率パラメータを変数

Aに代入

HALT "END TEST "

MEMO

8

8-38 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

22 DEF FNユーザーが使用可能な関数を定義する

形式

DEF FN名称    %  (仮引数 ,仮引数 ...)= 関数の定義式

           !           $

 値  名称 ・・・・・・・・・・・・・・・・・・・・・・ 関数の名称。FN を含めて 16 文字以内

仮引数 ・・・・・・・・・・・・・・・・・・・・ 数値型または文字型の変数

 意味  DEF FN は、ユーザーが使用可能な関数を定義する命令です。定義した関数は、FN

名称(変数)という形で呼び出して使用します。

・ 仮引数 には、 関数の定義式 の中で用いられている変数と同じ名前の変数を使用します。こ

の変数名は、 関数の定義式 を評価する場合にだけ有効であり、プログラムの中に同じ変数名

があってもかまいません。

・ 仮引数 を使用している関数を呼び出す時は、 仮引数 の型と同じ型の定数、変数、または式

を指定します。 仮引数 は省略可能です。型が同じであれば変数名が異なっても影響ありま

せん。

・ 関数の定義式 で使われている変数が 仮引数 リストにない場合は、変数がその時点で持って

いる値が使われます。

・ DEF FN は、DEF と FN の間にスペースを入れてください。入れない場合、DEFFN は変数

として扱われます。

・ DEF FN 文は、サブプロシージャ内では使用できません。

・ DEF FN 文による定義は、関数を使用する文よりも前に宣言しなければなりません。

SAMPLE

DEF FNPAI=3.141592 DEF FNASIN(X)=ATN(X/SQR(-X^2+1)) ・・・・・・・・・・・・・・・・・・・・・・・・・・仮引数 関数の定義式 いずれにも Xが使われる

・ ・ A=FNASIN(B)*10 ・・・・・・・・・・・・・・・・・ 呼び出す場合は Xでなくても良い

MEMO

8

DEGRAD ● 8-39

A

B

C

D

E

F

G

H

I

J

K

L

M

23 DEGRAD角度変換(度→ラジアン)・

形式

DEGRAD(式)

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 角度(単位:度)

 意味  式 の値をラジアンに変換します。

・ ラジアンから度に変換する場合は、RADDEG を使用します。

SAMPLE

A=COS(DEGRAD(30)) ・・・・・・・・・・・・・ 30°をラジアンに変換したものの余弦値を変数 Aに

代入

関連 ATN, COS, RADDEG, SIN, TAN

MEMO

8

8-40 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

24 DELAY指定された時間プログラムの実行を待つ

形式

DELAY 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 3600000(単位:ms)

 意味  式 で指定された時間(単位 ms)だけ待ちます。ただし最小実行待ち時間は 1ms です。

SAMPLE

DELAY 3500 ・・・・・・・・・・・・・・・・・・・・・・・・ 3,500ms(3.5秒)待つ

A =50 DELAY A*10 ・・・・・・・・・・・・・・・・・・・・・・・・ 500ms(0.5秒)待つ

8

DI ● 8-41

A

B

C

D

E

F

G

H

I

J

K

L

M

25 DIパラレルポートからの入力状態を取得する

形式

1. LET 式 = DIm(b,・・・,b ) 2. LET 式 = DI(mb,・・・,mb) 3. LET 式 = [入出力ネーム※ ]

 値  m:ポート番号 ・・・・・・・・ 0 〜 7, 10 〜 17, 20 〜 27

b:ビット指定・・・・・・・・・ 0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に記述

入出力ネーム : ユーザが DI や DO の特定ビットにつけることのできる任意の名称

※サポートソフト上でのみ追加・編集が可能です。プログラミングボックスから

は追加・編集はできません。

 意味  パラレル入力信号の状態を示します。

実際に入力ポートが存在しない場合、0 が入力されます。

SAMPLE

A%=DI2() ・・・・・・・・・・・・・・・・・・・・・・・・・・ DI(27)から DI(20)までの入力状態を変数

A%に代入

A%=DI5(7,4,0) ・・・・・・・・・・・・・・・・・・ DI(57),DI(54),DI(50)の入力状態を

変数 A%に代入(上記の信号がすべて 1(ON)の時、

A%=7となる)

A%=DI(37,25,20) ・・・・・・・・・・・・・・・・・ DI(37),DI(25),DI(20)の入力状態を

変数 A%に代入(上記の信号の DI(20)以外す

べて 1(ON)の時、A%=6となる)

A%=END_SENSOR ・・・・・・・・・・・・・・・・・・・ 入出力ネーム「END_SENSOR」の入力状態を変

数 A%に代入 (「END_SENSOR」 が ON の 時、

A%=1となる)

 参照  詳細は、3 章「9.3 パラレル入力変数」を参照してください。

8

8-42 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

26 DIM配列変数を宣言する

形式

DIM 配列指定 ,配列指定 ,...

配列指定

名称    % (定数 ,定数 ,定数)

      !      $

 値  定数 ・・・・・・・・・・・・・・・・・・・・・・ 配列の添字:0 〜 32, 767 の正の整数

 意味  配列変数の名前と要素数を宣言します。配列の添字は最大 3 次元まで使用できます。

コンマ( , )で区切ることによって 1 行に複数の配列を宣言できます。

・ 配列の要素数の合計は、定数+ 1 個となります。

・ 配列の各次元の大きさによっては、“9.300:メモリフル”のエラーが発生します。

SAMPLE

DIM A%(10) ・・・・・・・・・・・・・・・・・・・・・・・・ 整数型の配列変数 A%(0)〜 A%(10)を定義する (要素数 11)

DIM B(2,3,4) ・・・・・・・・・・・・・・・・・・・・・ 実数型の配列変数 B(0,0,0)〜 B(2,3,4)を定義する(要素数 60)

DIM C%(2,2),D!(10) ・・・・・・・・・・・ 整数型の配列 C%(0,0)〜 C%(2,2)と実数型

の配列 D!(0)〜 D!(10)を定義する

MEMO

8

DIST ● 8-43

A

B

C

D

E

F

G

H

I

J

K

L

M

27 DIST2 点間の距離を求める

形式

DIST(ポイント式 1,ポイント式 2)

 値  ポイント式 1 ・・・・・・・・・・・・・・ 直交座標系のポイント

ポイント式 2 ・・・・・・・・・・・・・・ 直交座標系のポイント

 意味  ポイント式 1 と ポイント式 2 で表される 2 点間(X, Y, Z)の距離(単位:mm)を与え

ます。

2 個の ポイント式 が、直交座標形式でないとエラーになります。

SAMPLE

A=DIST(P0,P1) ・・・・・・・・・・・・・・・・・・・ P0と P1間の距離を変数 Aに代入

8

8-44 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

28 DOパラレルポートに出力または出力状態を取得する

形式

1. LET DOm(b,・・・,b ) = 式2. LET DO(mb,・・・,mb) = 式3. LET[入出力ネーム※ ] = 式

 値  m:ポート番号 ・・・・・・・・ 0 〜 7, 10 〜 17, 20 〜 27

b:ビット指定・・・・・・・・・ 0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に記述

入出力ネーム : ユーザが DI や DO の特定ビットにつけることのできる任意の名称

※サポートソフト上でのみ追加・編集が可能です。プログラミングボックスからは

追加・編集はできません。

 意味  指定された値を DO ポートに出力します。

実際に存在しない DO ポートを指定した場合、何も出力されません。

DO0() と DO1() へは出力できません。参照のみとなります。

SAMPLE

DO2() = &B10111000 ・・・・・・・・・・・・ DO(27,25,24,23)がオンし、 DO(26,22,21,20)がオフする

DO2(6,5,1) = &B010 ・・・・・・・・・・・・ DO(25)がオンし、DO(26,21)がオフする DO3() = 15 ・・・・・・・・・・・・・・・・・・・・・・・・ DO(33,32,31,30)がオンし、

DO(37,36,35,34)がオフする

DO(37,35,27,20) = A ・・・・・・・・・・・ DO(37,35,27,20)に変数 Aを整数化したと

きの下位 4ビットの内容を出力する

CHUCK=1 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 入出力ネーム「CHUCK」 を ONする(1を出力する)

関数

形式

LET 式 = DOm(b,・・・.b)

LET 式 = DO(mb,・・・,mb)

LET 式 = [入出力ネーム※ ]

 値  m:ポート番号 ・・・・・・・・ 0 〜 7, 10 〜 17, 20 〜 27

b:ビット指定・・・・・・・・・ 0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に記述

入出力ネーム : ユーザが DI や DO の特定ビットにつけることのできる任意の名称

※サポートソフト上でのみ追加・編集が可能です。プログラミングボックスから

は追加・編集はできません。

 意味  パラレルポート信号の状態を参照します。

8

DO ● 8-45

A

B

C

D

E

F

G

H

I

J

K

L

M

28 DO

SAMPLE

A%= DO2() ・・・・・・・・・・・・・・・・・・・・・・・・・ DO(27) から DO(20) までの出力状態を変

数 A% に代入

A%= DO0(6, 5, 1) ・・・・・・・・・・・・・・・ DO(06), DO(05), DO(01) の出力状態

を変数 A%に代入 (上記の信号がすべて 1(ON)の時、A%=7となる )

A%=DO(37,35,27,10) ・・・・・・・・・・ DO(37), DO(35), DO(27), DO(10) の出力状態を変数 A% に代入 ( 上記の信号の

DO(27)以外すべて1(ON)の時、A%=13となる)A%=CHUCK ・・・・・・・・・・・・・・・・・・・・・・・・・・ 入出力ネーム「CHUCK」の出力状態を変数 A%に代

入(「CHUCK」が ONしている時、A%=1となる)

関連 RESET, SET

8

8-46 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

29 DRIVE軸単位で絶対移動

形式

DRIVE [ロボット番号](軸番号 , 式),(軸番号 , 式)...,オプション ,オプション ...

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 目的位置(ミリ・度・パルス)またはポイント式

 意味  ロボット番号 で指定されたロボットの軸単位の絶対移動命令を実行します。

付加軸を動作させる場合はこの命令を使用します。

・移動の種類 : 軸指定 PTP

・ポイント指定 : 直接数値指定、ポイント指定

・オプション : 速度指定、STOPON 条件指定、XY 指定

移動の種類

● 軸指定 PTP(PointtoPoint)

軸番号 で指定されたすべての軸の動作が完了後(公差範囲以内に軸到着後)、移動を開始し、

アウト有効位置範囲以内に入ると命令を終了します。複数軸を指定した場合は、同時到着し

ます。

DRIVE 命令の次の命令が信号出力命令などの場合、移動対象軸がアウト有効位置範囲以内

に入ると次の命令を実行します。したがって、目標位置の公差範囲以内に軸が到着する前に

次の命令を実行します。

例:

信号出力(DO など) アウト有効位置範囲以内に入ると、信号が出力されます。

DELAYアウト有効位置範囲以内に入ると、DELAY 命令が実行され、時間の待ちが始まります。

HALTアウト有効位置範囲以内に入ると、プログラムが停止し、かつリセットされます。そのため、移動が停止します。

HALTALLアウト有効位置範囲以内に入ると、実行中のプログラムが全て停止し、タスク 1 はリセットされ、その他のタスクは終了します。そのため、移動が停止します。

HOLDアウト有効位置範囲以内に入ると、プログラムを一時停止します。そのため、移動が停止します。

HOLDALLアウト有効位置範囲以内に入ると、実行中のプログラムが全て一時停止します。そのため、移動が停止します。

WAIT アウト有効位置範囲以内に入ると、WAIT 命令が実行されます。

8

DRIVE ● 8-47

A

B

C

D

E

F

G

H

I

J

K

L

M

29 DRIVE

公差範囲以内に軸が到着してから次の命令を実行する場合には、“WAIT ARM”文を使用しま

す。

P1

  

DO(20)をオン

DRIVE(1,P1)WAIT ARMDO(20)=1

DO(20)をオン

DRIVE(1,P1)DO(20)=1

公差

目標位置

アウト有効位置

HOLD実行(プログラム一時停止)

DRIVE(1,P1)WAIT ARMHOLD

DRIVE(1,P1)HOLD

公差アウト有効位置

目標位置

HOLD実行(プログラム一時停止)

DRIVE命令

31819-R7-00

SAMPLE

DRIVE(1,P0) ・・・・・・・・・・・・・・・・・・・ 現在位置からロボット 1の第 1軸が P0で指定さ

れた位置へ移動

ポイント指定の種類

● 直接数値指定

式 に目標位置を指定します。

目標位置の数値が整数値の場合はパルス単位と判断します。実数値の場合はミリ / 度単位と

判断し、軸毎に 0 パルス位置からのパルス換算位置とします。

ただし、オプションにて XY 指定の時は直交座標原点からとなります。

SAMPLE

DRIVE(1,10000) ・・・・・・・・・・・・・・・ 現在位置からロボット 1の第 1軸が 10000パル

ス位置へ移動

DRIVE[2](2,90.00) ・・・・・・・・・・・ 現在位置からロボット 2の第 2軸が 0パルス位置

から +方向に 90度位置へ移動(回転軸の場合)

8

8-48 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

29 DRIVE

● ポイント指定

式 にポイント式を指定します。軸番号 で指定された軸のデータを使用します。

ポイント式がミリ / 度単位の場合、軸毎に 0 パルス位置からのパルス換算位置とします。

ただし、オプションにて XY 指定の時は直交座標原点からとなります。

SAMPLE

DRIVE(1,P1) ・・・・・・・・・・・・・・・・・・ 現在位置からロボット 1の第 1軸が P1で指定さ

れた位置へ移動

DRIVE(4,P90) 現在位置からロボット 1の第 4軸が 0パルス位置

から P90で指定された度数の位置へ移動(回転軸

の場合)

オプションの種類

● 速度指定

形式

1. SPEED =式

2. S =式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  プログラム移動速度を 式 で指定します。

実際の速度は、以下のようになります。

・ ロボットの最高速度(mm/ 秒または度 / 秒)×自動移動速度(%)×式の値(%)

指定された DRIVE 文に対してのみ有効です。

SAMPLE

DRIVE[2](1,10000),S=10 ・・・・ 現在位置からロボット 2の第 1軸が自動移動速度

の 10%で、10000パルス位置へ移動

形式

1. DSPEED =式

2. DS =式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0.01 〜 100.00(単位:%)

 意味  軸の移動速度を 式 で指定します。

実際の速度は以下のようになります。

・ ロボットの最高速度(mm/ 秒または度 / 秒)×式の値(%)

指定された DRIVE 文に対してのみ有効です。

・ 自動移動速度の値(%)に影響されず常にDSPEED の 式 の値(%)で移動します。

SAMPLE

DRIVE[2](1,10000),DS=0.1 ・ 現在位置からロボット 2の第 1軸がロボットの最

高速度の 0.1%の速度で、10000パルス位置へ

移動

n 要点

・・単位指定が混在している場合(整数と実数の両方がある場合)、全ての値がミリ / 度単位として扱われます。

n 要点

・・最高速を規定するもので、指定した速度での移動を保証するものではありません。

n 要点

・・SPEED オプションとDSPEED オプションは併用できません。

8

DRIVE ● 8-49

A

B

C

D

E

F

G

H

I

J

K

L

M

29 DRIVE

● STOPON 条件指定

形式

STOPON 条件式

 意味  移動中に条件式が成立した場合、移動を停止します。このときの停止動作は、減

速停止なので、条件成立後に減速移動距離が発生します。

移動開始時に条件式が成立している場合、移動せずに命令を終了します。

プログラム実行時のみ有効です。

SAMPLE

DRIVE(1,10000),STOPON DI(20)=1 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 現在位置からロボット 1の第 1軸が 10000パル

ス位置へ移動し、途中で DI(20)=1の条件が成

立したら移動を停止して次のステップを実行する

・ STOPON 条件指定で使用する条件式が数値を表す式である場合、式の値が 0 以外の時に「真」

となり、0 の時に「偽」となります。

● XY 指定

形式

XY

 意味  複数の指定軸を直交座標で指定されている位置に移動します。

指定した軸は、同時到着します。

MOVE 文で動かすことができる軸を全て指定した場合、MOVE 文と同じ動作にな

ります。

この命令の制限事項を下記に示します。 1. 軸番号 で指定する軸には、第 1 軸と第 2 軸(2 軸分)が含まれなければな

りません。

2. 指定可能なロボットは、スカラ型ロボットおよび直交で X 軸と Y 軸の両方

があるロボットです。

3. ポイント指定は、ミリ / 度単位(実数値)でなければなりません。

SAMPLE

DRIVE(1,P100),(2,P100),(4,P100),XY

�����������������������現在位置からロボット 1の第 1軸、第 2軸、第 4

軸が P100で指定された直交座標の位置へ移動

MEMO

8

8-50 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

30 DRIVEIロボットを軸単位で相対移動

形式

DRIVEI[ロボット番号](軸番号 , 式),(軸番号 , 式)...,オプション ,オプション

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 目標位置(ミリ・度・パルス)またはポイント

 意味  軸単位の相対移動命令を実行します。

付加軸を相対移動する場合はこの移動命令を使用します。

・移動の種類 : 軸指定 PTP

・ポイント指定 : 直接数値指定、ポイント定義指定

・オプション : 速度指定、STOPON 条件指定

・ DRIVE 文を途中停止し再起動した場合、移動の目標位置を下記の様にコントローラのパラ

メータの “MOVEI / DRIVEI 開始位置” で選択することができます。(詳しくはコントローラ

のユーザーズマニュアル、またはオペレーションマニュアルを参照してください。)

1) 保持する(初期値) 先の移動の続きを実行します。目標位置は再実行前と変わりません。

2) リセット 現在位置から新たに相対移動を行います。再実行前の目標位置はリ

セットされます。

移動の種類

● 軸指定 PTP(PointtoPoint)

軸番号 で指定されたすべての軸の動作が完了後(公差範囲以内に軸到着後)、移動を開始し、

アウト有効位置範囲以内に入ると命令を終了します。複数軸を指定した場合は、同時到着し

ます。

DRIVEI 命令の次の命令が信号出力命令などの実行可能な命令の場合、移動対象軸がアウト

有効位置範囲以内に入ると次の命令を実行します。したがって、目標位置の公差範囲以内に

軸が到着する前に次の命令を実行します。

例:

信号出力(DO など) アウト有効位置範囲以内に入ると、信号が出力されます。

DELAYアウト有効位置範囲以内に入ると、DELAY 命令が実行され、時間の待ちが始まります。

HALTアウト有効位置範囲以内に入ると、プログラムが停止し、かつリセットされます。そのため、移動が停止します。

HALTALLアウト有効位置範囲以内に入ると、実行中のプログラムが全て停止し、タスク 1 はリセットされ、その他のタスクは終了します。そのため、移動が停止します。

HOLDアウト有効位置範囲以内に入ると、プログラムを一時停止します。そのため、移動が停止します。

HOLDALLアウト有効位置範囲以内に入ると、実行中のプログラムが全て一時停止します。そのため、移動が停止します。

WAIT アウト有効位置範囲以内に入ると、WAIT 命令が実行されます。

MEMO

8

DRIVEI ● 8-51

A

B

C

D

E

F

G

H

I

J

K

L

M

30 DRIVEI

公差範囲以内に軸が到着してから次の命令を実行する場合には、“WAIT ARM”文を使用します。

P1

DRIVEI 命令

WAIT ARM 文  

DO(20)をオン

DRIVEI(1,P1)WAIT ARMDO(20)=1

DO(20)をオン

DRIVEI(1,P1)DO(20)=1

公差

目標位置

アウト有効位置

HOLD実行(プログラム一時停止)

DRIVEI(1,P1)WAIT ARMHOLD

DRIVEI(1,P1)HOLD

公差アウト有効位置

目標位置

HOLD実行(プログラム一時停止)

31820-R7-00

リミットレス動作時の注意点

• リミットレス動作パラメータを有効に設定した場合、DRIVEI 文のソフトリ

ミットチェックの値は下記の値になります。

+ ソフトリミット: 99,999,999[pulse]

- ソフトリミット: -99,999,999[pulse]

• DRIVEI 文を使用して、1 回で移動できる最大移動距離は上記の値になります。

SAMPLE

DRIVEI(1,P0) ・・・・・・・・・・・・・・・・・・ 現在位置からロボット 1の第 1軸が P0で指定さ

れた距離分だけ移動

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-52 ● 第 8章 ロボット言語一覧

30 DRIVEI

ポイント指定の種類

● 直接数値指定

式 に目標位置を指定します。

目標位置の数値が実数値の場合はミリ / 度単位と判断し、軸毎に現在位置からのパルス換算

位置に相対移動します。

SAMPLE

DRIVEI(1,10000) ・・・・・・・・・・・・ 現在位置からロボット 1の第 1軸が +10000パ

ルスの距離を移動

DRIVEI(4,90.00) ・・・・・・・・・・・・ 現在位置からロボット 1の第 4軸が +90度の距離

分だけ移動(回転軸の場合)

● ポイント指定

式 にポイントを指定します。 軸番号 で指定された軸のデータを使用します。

指定されたポイント中の対象の軸の座標分だけ、現在位置から相対移動します。ポイントが

ミリ / 度単位の場合、軸毎に 0 パルス位置からのパルス換算位置に移動します。

SAMPLE

DRIVEI(1,P1) ・・・・・・・・・・・・・・・・ 現在位置からロボット 1の第 1軸が P1で指定さ

れた移動量を移動 DRIVEI(4,P90) ・・・・・・・・・・・・・・・・ 現在位置からロボット 1の第 4軸が P90で指定さ

れた度数の移動量を移動(回転軸の場合)

n 要点

・・単位指定が混在している場合(整数と実数の両方がある場合)、全ての値がミリ/度単位として扱われます。

8

DRIVEI ● 8-53

A

B

C

D

E

F

G

H

I

J

K

L

M

30 DRIVEI

オプションの種類

● 速度指定

形式

1. SPEED=式

2. S=式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  プログラム移動速度を 式 で指定します。

実際の速度は、以下のようになります。

・ ロボットの最高速度(mm/ 秒または度 / 秒)×自動移動速度(%)×プログラム移動

速度(%)

指定された DRIVEI 文に対してのみ有効です。

SAMPLE

DRIVEI(1,10000),S=10 ・・・・・・ 現在位置からロボット 1の第 1軸がプログラム移

動速度の 10%で、+10000パルス移動

形式

1. DSPEED=式

2. DS=式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0.01 〜 100.00(単位:%)

 意味  軸の移動速度を 式 で指定します。

実際の速度は以下のようになります。

・ロボットの最高速度(mm/ 秒または度 / 秒)×軸の移動速度(%)

指定された DRIVEI 文に対してのみ有効です。

・ 自動移動速度の値(%)に影響されず常にDSPEEDの 式 の値(%)で移動します。

SAMPLE

DRIVEI(1,10000),DS=0.1 ・・・ 現在位置からロボット 1の第 1軸がロボット最高

速度の 0.1%で、+10000 パルス移動

n 要点

・・最高速を規定するもので、指定した速度での移動を保証するものではありません。

n 要点

・・SPEED オプションとDSPEED オプションは併用できません。

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-54 ● 第 8章 ロボット言語一覧

8

8-54 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

30 DRIVEI

● STOPON 条件指定

形式

STOPON 条件式

 意味  移動中に条件式が成立した場合、移動を停止します。このときの停止動作は、減

速停止なので、条件成立後に減速移動距離が発生します。

移動開始時に条件式が成立している場合、移動せずに命令を終了します。

プログラム実行のみ有効です。

・ STOPON 条件指定で使用する条件式が数値を表す式である場合、式の値が 0 以外の時に「真」

となり、0 の時に「偽」となります。

SAMPLE

DRIVEI(1,10000),STOPON DI(20)=1 現在位置からロボット 1の第 1軸が、+10000パ

ルス移動し、途中で DI(20)=1の条件が成立し

たら、移動を停止し、次のステップを実行する

MEMO

8

END・SELECT ● 8-55

A

B

C

D

E

F

G

H

I

J

K

L

M

31 END SELECTSELECT・CASE 文を終了する

形式

SELECT CASE 式 CASE 式のリスト 1 命令ブロック 1 CASE 式のリスト 2 命令ブロック 2 : CASE ELSE 命令ブロック nEND SELECT

 意味  直接 SELECT CASE の命令ブロックを終了します。

詳しくは、「104 SELECT CASE 〜 END SELECT」を参照してください。

SAMPLE

WHILE -1 SELECT CASE DI3() CASE 1,2,3 CALL *EXEC(1,10) CASE 4,5,6,7,8,9,10 CALL *EXEC(11,20) CASE ELSE CALL *EXEC(21,30) END SELECT WEND HALT

関連 SELECT CASE

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-56 ● 第 8章 ロボット言語一覧

32 END SUBサブプロシージャの定義を終了する

形式

SUB ラベル(仮引数 ,仮引数 ...) 命令ブロック

END SUB

 意味  SUB 文で始まるサブプロシージャの定義を終了します。

詳しくは、「125 SUB 〜 END SUB」を参照してください。

SAMPLE 1

I=1 CALL *TEST PRINT I HALT ’SUB ROUTINE: TEST SUB *TEST I=50 END SUB

関連 CALL, EXIT SUB, SUB 〜 END SUB

8

ERR・/・ERL ● 8-57

A

B

C

D

E

F

G

H

I

J

K

L

M

33 ERR / ERLエラーコード /・エラー発生行番号の取得

形式

ERR(タスク番号)

ERL(タスク番号)

 値  タスク番号 ・・・・・・・・・・・・・・・・ 1 〜 4

 意味  変数 ERR および ERL は、ON ERROR GOTO 文で指定したエラー処理ルーチンでエ

ラー処理をおこなうために使用します。

タスク番号 で指定されたタスクの ERR はエラー発生時のエラーコード番号を、ERL

はエラー発生行番号を取得します。

SAMPLE 1

IF ERR(1) <> &H604 THEN HALTIF ERL(1)=20 THEN RESUME NEXT

関連 ON ERROR GOTO, RESUME

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-58 ● 第 8章 ロボット言語一覧

34 ETHSTSイーサネットポートの状態を取得する

形式

ETHSTS

 意味  イーサネットポートの状態を取得します。

-2 ・・・・・・・・・・・・・・・・・・ イーサネットポート未オープン

-1 ・・・・・・・・・・・・・・・・・・ LAN ケーブル未接続

0 ・・・・・・・・・・・・・・・・・・ 接続未確立

1 ・・・・・・・・・・・・・・・・・・ 接続確立

2 ・・・・・・・・・・・・・・・・・・ 接続確立・受信バッファにデータ格納

SAMPLE

A=ETHSTS ・・・・・・・・・・・・・・・・・・・・・・・・・・ イーサネットポートの状態を変数 Aに代入

8

EXIT・FOR ● 8-59

A

B

C

D

E

F

G

H

I

J

K

L

M

35 EXIT FORFOR 〜 NEXT 文のループを強制的に終了する

形式

EXIT FOR

 意味  FOR文〜NEXT文のループを強制的に終了し、NEXT文の次の命令にジャンプします。

この命令文は、FOR 文〜 NEXT 文の間でのみ有効です。

・ FOR 〜 NEXT のループは、FOR 文の条件が終了するか、EXIT FOR で終了してください。

GOTO 文などでループ外に出た場合、“5.212:スタックオーバーフロー”などのエラーが発

生する場合があります。

SAMPLE

*ST: WAIT DI(20)=1 FOR A%=101 TO 109 MOVE P,P100,Z=0 DO(20)=1 MOVE P,P[A%],Z=0 DO(20)=0 IF DI(20)=0 THEN EXIT FOR NEXT A% GOTO *ST HALT

関連 FOR, NEXT

MEMO

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-60 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-60 ● 第 8章 ロボット言語一覧

36 EXIT SUBSUB 文〜 END・SUB 文で定義されたサブプロシージャを強制的に終了する

形式

EXIT SUB

 意味  SUB 文〜 END SUB 文で定義されたサブプロシージャを強制的に終了し、サブプロ

シージャを呼び出した CALL 文の次の命令にジャンプします。

この命令文は、SUB文〜END SUB文で定義されたサブプロシージャ内のみ有効です。

・ SUB 〜 END SUB で定義されたサブプロシージャは、END SUB 文または EXIT SUB 文で終

了してください。GOTO 文などでループ外に出た場合、“5.212:スタックオーバーフロー”

などのエラーが発生する場合があります。

SAMPLE

’MAIN ROUTINE CALL *SORT2(REF X%,REF Y%) HALT ’SUB ROUTINE: SORT SUB *SORT2(X%, Y%) IF X%> =Y% THEN EXIT SUB TMP%=Y% Y%=X% X%=TMP% END SUB

関連 CALL, SUB 〜 END SUB, END SUB

MEMO

8

EXIT・TASK ● 8-61

A

B

C

D

E

F

G

H

I

J

K

L

M

37 EXIT TASK実行している自分自身のタスクを終了する

形式

EXIT TASK

 意味  実行している自分自身のタスクを終了します。

SAMPLE

’TASK1 ROUTINE *ST: MO(20)=0 START <SUB_PGM>,T2 MOVE P,P0,P1 WAIT MO(20)=1 GOTO *ST HALTALL

プログラム名 :SUB_PGM’TASK2 ROUTINE *SUBTASK2: P100=JTOXY(WHERE) IF LOC3(P100)> =100.000 THEN MO(20)=1 EXIT TASK ENDIF DELAY 100 GOTO *SUBTASK2EXIT TASK

関連 CUT, RESTART, START, SUSPEND, CHGPRI

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-62 ● 第 8章 ロボット言語一覧

38 FOR〜 NEXT変数が指定の値を超えるまでループする

形式

FOR制御変数=開始値 TO 終了値 STEP ステップ

命令ブロック

NEXT制御変数

 意味  制御変数 の値を ステップ の値ずつ変化させ、 開始値 から 終了値

を超えるまで、FOR 文の次から NEXT 文までを繰り返し実行します。

STEP ステップ を省略した場合のステップは、1 となります。

ステップ の値は負でも構いません。

制御変数 は数値型の 単純変数 または 配列変数 のどちらかです。

FOR 文と NEXT 文は必ずセットで使用します。

SAMPLE

'CYCLE WITH CYCLE NUMBER OUTPUT TO DISPLAY FOR A=1 TO 10 MOVE P,P0 MOVE P,P1 MOVE P,P2 PRINT"CYCLE NUMBER=";A NEXT A HALT

関連 EXIT FOR

8

GEPSTS ● 8-63

A

B

C

D

E

F

G

H

I

J

K

L

M

8

GEPSTS ● 8-63

39 GEPSTS汎用イーサネットポートの状態を取得する

形式

GEPSTS(汎用イーサネットポート番号 )

 値  汎用イーサネットポート番号 ・・・・・・・・・・・・ 0 〜 7

 意味  指定した汎用イーサネットポートの状態を取得します。

-2 ・・・・・・・・・・・・・・・・・・ 汎用イーサネットポート未オープン

-1 ・・・・・・・・・・・・・・・・・・ LAN ケーブル未接続

0 ・・・・・・・・・・・・・・・・・・ 接続未確立

1 ・・・・・・・・・・・・・・・・・・ 接続確立

2 ・・・・・・・・・・・・・・・・・・ 接続確立・受信バッファにデータ格納

SAMPLE

OPEN GP1 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 汎用イーサネットポート番号 1で指定したポートを

開く

IF GEPSTS(1) > 0 THEN ・・・・・・・ 接続が確立しているか確認する

SEND “ABC” TO GP1 ・・・・・・・・・ 文字列 “ABC” を送信する

IF GEPSTS(1)=2 THEN ・・・・・ 受信バッファにデータが格納されているか確認する

SEND GP1 TO RET$ ・・・・・ データを受信し、受信したデータを変数 RET$に

代入する

ENDIFENDIFCLOSE GP1 ・・・・・・・・・・・・・・・・・・・・・・・・・ 汎用イーサネットポート番号 1で指定したポートを

閉じる

HALT

関連 OPEN, CLOSE, SEND, SETGEP

8-64 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

8

A

B

C

D

E

F

G

H

I

J

K

L

M

8-64 ● 第 8章 ロボット言語一覧

40 GOSUB〜 RETURNサブルーチンにジャンプする・

形式

GOSUB ラベル ※ GOSUBは GO SUBでも可

  : ラベル :  :

RETURN

 意味  GOSUB 文で指定される ラベル のサブルーチンにジャンプし、RETURN 文に至ると、

呼出し元の GOSUB 文の次の行にジャンプします。

・ GOSUB文は、連続して最大 120回まで使用できます。ただし、FOR文やCALL文など、スタッ

クを使用する命令の使用状態によって回数が減少します。

・ GOSUB 文でサブルーチンにジャンプした場合、サブルーチンは必ず RETURN 文で終了し

てください。GOTO 文などでサブルーチンからジャンプした場合、“5.212:スタックオーバー

フロー”などのエラーが発生することがあります。

SAMPLE

*ST: MOVE P,P0 GOSUB *CLOSEHAND MOVE P,P1 GOSUB *OPENHAND GOTO *ST HALT ’SUB ROUTINE *CLOSEHAND: DO(20) = 1 RETURN *OPENHAND: DO(20) = 0 RETURN

関連 RETURN

MEMO

8

GOTO ● 8-65

A

B

C

D

E

F

G

H

I

J

K

L

M

41 GOTO指定した行に無条件でジャンプする

形式

GOTO ラベル ※ GOTOは GO TOでも可

 意味  ラベル で指定される行に無条件ジャンプします。

SAMPLE

’MAIN ROUTINE *ST: MOVE P,P0,P1 IF DI(20) = 1 THEN GOTO *FIN ENDIF GOTO *ST *FIN: HALT

8

8-66 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

42 HALTプログラムを停止してリセットする

形式

HALT   式 

     文字列

 意味  プログラムを停止し、かつ、リセットします。HALT 実行後にプログラムを再起動し

た場合は、プログラムの先頭から実行されます。

式 を記述すると式 の演算結果が、文字列 を記述すると 文字列 の内容が、プログラ

ミングボックスの画面上に表示されます。

・HALT 文を実行しても変数はリセットされません。変数をリセットする場合は HALTALL 文

を使用します。

・ HALT は実行をしたタスクに対してのみ作用します。他のタスクで実行しているプログラム

は実行を続けます。

SAMPLE

’MAIN ROUTINE *ST: MOVE P,P0,P1 IF DI(20) = 1 THEN GOTO *FIN ENDIF GOTO *ST *FIN: HALT "PROGRAM FIN"

MOVE、DRIVE といった移動命令の PTP 移動では、アウト有効位置範囲以内に入ると次の行の

命令を実行します。

そのため、PTP 移動命令の直後に HALT 命令があると、目標位置の公差範囲以内に軸が到着す

る前に HALT 命令を実行します。

同様に、MOVE L 文や MOVE C 文等の補間移動で CONT オプションを指定した場合、移動開始

直後に次の命令を実行するため、MOVE の CONT オプションを指定した補間移動命令の直後に

HALT 命令があると、移動開始直後に HALT 命令を実行します。

いずれの場合も、軸が目標位置の公差範囲以内に到着してから HALT 命令を実行したい場合は、

下図の様に WAIT ARM を使用してください。

  

HALT実行

DRIVE(1,P1)WAIT ARMHALT

DRIVE(1,P1)HALT

公差アウト有効位置

目標位置

HALT実行

HALT命令

31821-R7-00

MEMO

8

HALTALL ● 8-67

A

B

C

D

E

F

G

H

I

J

K

L

M

43 HALTALL全てのプログラムを停止してリセットする

形式

HALTALL   式

  文字列 

 意味  全てのプログラムを停止し、かつ、リセットします。この時、動的変数・配列変数・

出力変数もリセットされます。

出力変数(DO/SO/MO/LO/TO/SOW)は以下条件成立時のみリセットされます。

1) パラメータ「プログラムリセット時の DO 出力」が「リセット」である時

2) シーケンスプログラム実行中で、「シーケンス実行フラグ」が「リセット許可」である時

HALTALL 実行後にプログラムを再起動した場合は、メインプログラム、又はタスク

1 で最後に実行したプログラムの先頭から実行されます。式 を記述すると 式 の演算

結果が、文字列 を記述すると 文字列 の内容が、プログラミングボックスの画面上に

表示されます(式に変数を記述した場合、クリアされる前の値が表示されます)。

SAMPLE

’MAIN ROUTINE*ST: MOVE P,P0,P1 IF DI(20) = 1 THEN GOTO *FIN ENDIFGOTO *ST*FIN:HALTALL “PROGRAM FIN”

MOVE、DRIVE といった移動命令の PTP 移動では、アウト有効位置範囲以内に入ると次の行の

命令を実行します。

そのため、PTP 移動命令の直後に HALTALL 命令があると、目標位置の公差範囲以内に軸が到着

する前に HALTALL 命令を実行します。

同様に、MOVE L 文や MOVE C 文等の補間移動で CONT オプションを指定した場合、移動開始

直後に次の命令を実行するため、MOVE の CONT オプションを指定した補間移動命令の直後に

HALTALL 命令があると、移動開始直後に HALTALL 命令を実行します。

いずれの場合も、軸が目標位置の公差範囲以内に到着してから HALTALL 命令を実行したい場合

は、下図の様に WAIT ARM を使用してください。

  

HALTALL実行

DRIVE(1,P1)WAIT ARMHALTALL

DRIVE(1,P1)HALTALL

公差アウト有効位置

目標位置

HALTALL実行

HALTALL命令

31701-R9-00

8

8-68 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

44 HANDハンド定義をする

形式

定義文:

 HAND[ロボット番号] Hn=第 1パラメータ 第 2パラメータ 第 3パラメータ R 選択文 :  CHANGE[ロボット番号] Hn

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4

n:ハンド番号 ・・・・・・・・・・・・・ 0 〜 31

R:R 軸へのハンド装着

 意味  HAND 文はハンドの定義のみを行います。実際にハンドの切り替えを行うには、

CHANGE文を使用します。CHANGE文については「12 CHANGE」を参照してください。

R を指定すると、R 軸回転中心からオフセットされたハンドになります。

・ ハンド定義文の実行中に電源をオフすると、“9.707:ハンド チェックサムエラー”が発生す

る場合があります。

・ CHANGE 文で、他のロボットを指定して定義されたハンドデータを指定すると “6.258:ロ

ボット番号エラー” が発生します。

MEMO

8

HAND ● 8-69

A

B

C

D

E

F

G

H

I

J

K

L

M

44 HAND

44.1 スカラロボットの場合

1. 第 4パラメータ の Rが指定されていない場合

第 2 アーム先端に固定されたハンドになります(下図参照)。

第 1 パラメータ ・・・・・・・・・・・・基準第 2 アームと、ハンド n の仮想第 2 アームとのオフセットパ

ルス数、反時計方向が +[パルス]

第 2 パラメータ ・・・・・・・・・・・・ハンド n の仮想第 2 アーム長と基準第 2 アーム長との差[mm]

第 3 パラメータ ・・・・・・・・・・・・ハンド n の Z 軸オフセット量[mm]

ハンド1 ハンド2

20.00mm

150.

00m

m基準第

2アーム

-5000パルス

31803-R9-00

SAMPLE

HAND H1= 0 150.000 0.000HAND H2= -5000 20.000 0.000P1= 150.000 300.000 0.000 0.000 0.000 0.000CHANGE H2 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンドをハンド 2に変更

MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンド 2の先端が P1へ移動 ❶ CHANGE H1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンドをハンド 1に変更

MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンド 1の先端が P1へ移動 ❷ HALT

  

Y

X

ハンド2

(150.00, 300.00)ハンド1

X

Y

(150.00, 300.00)

1 2

SAMPLE:HAND

31802-R7-00

8

8-70 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

44 HAND

2. 第 4パラメータ の Rが指定されている場合

R 軸回転中心からオフセットされたハンドになります(下図参照)。

第 1 パラメータ ・・・・・・・・・・・・R軸の現在位置が 0.00の時、直交座標 +X方向とハンド nとの角度、

反時計方向が +[度]

第 2 パラメータ ・・・・・・・・・・・・ハンド n の長さ[mm](> 0)

第 3 パラメータ ・・・・・・・・・・・・ハンド n の Z 軸オフセット量[mm]

基準第2アーム 150.00mm

100.00mmハンド2

ハンド1

X

Y

-90.00度

31804-R9-00

SAMPLE

HAND H1= 0.000 150.000 0.000 RHAND H2= -90.000 100.000 0.000 RP1= 150.000 300.000 0.000 0.000 0.000 0.000CHANGE H1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンドをハンド 1に変更

MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンド 1の先端が P1へ移動 ❶ CHANGE H2 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンドをハンド 2に変更

MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンド 2の先端が P1へ移動 ❷ HALT

SAMPLE:HAND

Y

X X

Y

ハンド1

(150.00, 300.00)

ハンド2

(150.00, 300.00)

1 2

31804-R7-00

8

HAND ● 8-71

A

B

C

D

E

F

G

H

I

J

K

L

M

44 HAND

44.2 直交系ロボットの場合

1. 第 4パラメータ の Rが指定されていない場合

第 2 アーム先端に固定されたハンドになります(下図参照) 。

第 1 パラメータ ・・・・・・・・・・・・ハンド n の X 軸オフセット量[mm]

第 2 パラメータ ・・・・・・・・・・・・ハンド n の Y 軸オフセット量[mm]

第 3 パラメータ ・・・・・・・・・・・・ハンド n の Z 軸オフセット量[mm]

-100.00mm

100.00mm

ハンド2

ハンド1

X

Y

31805-R9-00

SAMPLE

HAND H1= 0.000 0.000 0.000HAND H2= 100.000 -100.000 -100.000P1= 200.000 250.000 0.000 0.000 0.000 0.000CHANGE H2 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンドをハンド 2に変更

MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンド 2の先端が P1へ移動 ❶ CHANGE H1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンドをハンド 1に変更

MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンド 1の先端が P1へ移動 ❷ HALT

X

(200.00, 250.00)

ハンド2

Y

1 2

ハンド1

X

Y

(200.00, 250.00)

SAMPLE:HAND

31806-R7-00

8

8-72 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

44 HAND

2. 第 4パラメータ の Rが指定されている場合

R 軸回転中心からオフセットされたハンドになります(下図参照) 。

第 1 パラメータ ・・・・・・・・・・・・R 軸の現在位置が 0.00 の時、直交座標の +X 方向とハンド n との

角度、反時計方向が +(度)

第 2 パラメータ ・・・・・・・・・・・・ハンド n の長さ[mm](> 0)

第 3 パラメータ ・・・・・・・・・・・・ハンド n の Z 軸オフセット量[mm]

X

Y

100.00mm

150.00mm

ハンド2

ハンド1

90度

31806-R9-00

SAMPLE

HAND H1= 0.000 100.000 0.000 R HAND H2= 90.000 150.000 0.000 R P1= 200.000 250.000 0.000 0.000 0.000 0.000CHANGE H2 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンドをハンド 2に変更

MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンド 2の先端が P1へ移動 ❶ CHANGE H1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンドをハンド 1に変更

MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のハンド 1の先端が P1へ移動 ❷ HALT

SAMPLE:HAND

1

X

ハンド1

Y

(200.00, 250.00)

X

(200.00, 250.00)

ハンド2

Y

2

31808-R7-00

8

HOLD ● 8-73

A

B

C

D

E

F

G

H

I

J

K

L

M

45 HOLDプログラムを一時停止する・

形式

HOLD   式  

     文字列

 意味  プログラムを一時停止します。再起動した場合は、HOLD文の次の行から実行されます。

式 または 文字列 を記述すると、プログラミングボックスの画面上に 式 または 文字列

の内容が表示されます。

・ HOLD は実行をしたタスクに対してのみ作用します。他のタスクで実行しているプログラム

は実行を続けます。

SAMPLE

’MAIN ROUTINE *ST: MOVE P,P0,P1 IF DI(20)=1 THEN HOLD "PROGRAM STOP" ENDIF GOTO *ST HALT

MOVE、DRIVE といった移動命令の PTP 移動では、アウト有効位置範囲以内に入ると次の行の

命令を実行します。

そのため、PTP 移動命令の直後に HOLD 命令があると、目標位置の公差範囲以内に軸が到着す

る前に HOLD 命令を実行します。

同様に、MOVE L 文や MOVE C 文等の補間移動で CONT オプションを指定した場合、移動開始

直後に次の命令を実行するため、MOVE の CONT オプションを指定した補間移動命令の直後に

HOLD 命令があると、移動開始直後に HOLD 命令を実行します

いずれの場合も、軸が目標位置の公差範囲以内に到着してから HOLD 命令を実行したい場合は、

下図のように WAIT ARM を使用してください。

HOLD命令

HOLD実行

DRIVE(1,P1)WAIT ARMHOLD

DRIVE(1,P1)HOLD

公差アウト有効位置

目標位置

HOLD実行

31822-R7-00

MEMO

8

8-74 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

46 HOLDALL全てのプログラムを一時停止する

形式

HOLDALL   式  

文字列

 意味  全てのプログラムを一時停止します。再起動した場合は、HOLDALL を実行したプロ

グラムは文の次の行から実行、他のプログラムは中断していた実行行から再開され

ます。 式 または 文字列 を記述すると、プログラミングボックスの画面上に 式 また

は 文字列 の内容が表示されます。

SAMPLE

’MAIN ROUTINE*ST: MOVE P,P0,P1 IF DI(20)=1 THEN HOLDALL “PROGRAM STOP” ENDIFGOTO *STHALT

MOVE、DRIVE といった移動命令の PTP 移動では、アウト有効位置範囲以内に入ると次の行の

命令を実行します。

そのため、PTP 移動命令の直後に HOLDALL 命令があると、目標位置の公差範囲以内に軸が到

着する前に HOLDALL 命令を実行します。

同様に、MOVE L 文や MOVE C 文等の補間移動で CONT オプションを指定した場合、移動開始

直後に次の命令を実行するため、MOVE の CONT オプションを指定した補間移動命令の直後に

HOLDALL 命令があると、移動開始直後に HOLDALL 命令を実行します。

いずれの場合も、軸が目標位置の公差範囲以内に到着してから HOLDALL 命令を実行したい場合

は、下図のように WAIT ARM を使用してください。

HOLDALL命令

HOLDALL実行

DRIVE(1,P1)WAIT ARMHOLDALL

DRIVE(1,P1)HOLDALL

公差アウト有効位置

目標位置

HOLDALL実行

31702-R9-00

A

B

C

D

E

F

G

H

I

J

K

L

M

8

IF ● 8-75

47 IF条件式の値を評価し、条件に応じて命令文を実行します。

47.1 単純 IF文

形式

IF 条件式 THEN ラベル 1 ELSE ラベル 2  命令文 1 命令文 2

 意味  条件式 で指定される条件が成立する(「真」となる)場合、THEN 以降で指定された ラ

ベル 1 にジャンプするか、あるいは 命令文 1 を実行した後、次行にジャンプします。

条件式 で指定される条件が成立しない(「偽」となる)場合は下記動作をします。

1. ELSE 以降で指定された ラベル 2 にジャンプするか、あるいは 命令文 2 を実行

した後、次行にジャンプします。

2. ELSE 文以降の指定がない場合は、なにもせずに次行にジャンプします。

・ IF 文で使用する条件式が数値を表す式である場合、式の値が 0 以外の時に「真」となり、0

の時に「偽」となります。

SAMPLE

’MAIN ROUTINE *ST: MOVE P,P0,P1 IF DI(20)=1 THEN *L1 ・・・ DI(20)が 1なら* L1にジャンプする

DO(20)=1 DELAY 100 *L1: IF DI(21)=1 THEN *ST ELSE *FIN ・・・・・・・・・・・・・・・・・・・・・・・・・・ DI(21)が 1なら* STにジャンプ。そうでなけ

れば* FINにジャンプする

*FIN: HALT

MEMO

8

8-76 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

47 IF

47.2 ブロック IF文

形式

IF 条件式 1 THEN 命令ブロック 1ELSEIF 条件式 2 THEN 命令ブロック 2ELSE 命令ブロック nENDIF

 意味  条件式 1 で指定される条件が成立する(「真」となる)場合、命令ブロック 1 で指定さ

れる命令群を実行し、ENDIF の次行にジャンプします。

ELSEIF 文がある場合、 条件式 2 で指定される条件が成立する(「真」となる)場合、命

令ブロック 2 で指定される命令群を実行します。

全ての条件式が成立しない(「偽」となる)場合、命令ブロック n が実行されます。

・ IF 文で使用する条件式が数値を表す式である場合、式の値が 0 以外の時に「真」となり、0

の時に「偽」となります。

SAMPLE

’MAIN ROUTINE *ST: MOVE P,P0,P1 IF DI(21,20)=1 THEN DO(20)= 1 DELAY 100 WAIT DI(20)=0 ELSEIF DI(21,20)=2 THEN DELAY 100 ELSE GOTO *FIN ENDIF GOTO *ST *FIN: HALT

MEMO

A

B

C

D

E

F

G

H

I

J

K

L

M

8

INPUT ● 8-77

48 INPUTプログラミングボックスなどから変数に値を代入する

形式

INPUT プロンプト文 ; 変数 , 変数 ,... , ポイント変数 ポイント変数

シフト変数 シフト変数

 意味  プログラミングボックスなどから指定した変数に値を代入します。

入力定義は下記の通りです。

1. 変数をコンマ(,)で区切って複数個指定した場合、入力データもコンマ(,)で区

切って指定個数分の入力が必要です。

2. プロンプト文 は、データ入力のためのメッセージを表示するためにダブルクォー

テーション(")で囲まれた文字列で指定します。プロンプト文 に続いて、セミコ

ロン(;)を指定した場合、メッセージの後ろに、クエスチョンマーク(?)とスペー

スが表示されます。コンマ(,)が指定された場合は、メッセージの後ろには、何

も表示されません。

3. プロンプト文 を省略した場合、クエスチョンマーク(?)とスペースが表示され

ます。

4. 入力するデータ型は、対応する変数の型と一致する必要があります。ポイント

変数やシフト変数への入力の場合、足りない要素は、0 となります。

5. 何も入力しないで、ENTER キーのみを入力した場合、0 やヌルストリング(空

の文字列)が入力されたものと見なされます。ただし、複数個指定の場合、指定

個数分のコンマ(,)入力が必要です。

6. 指定変数が文字変数でコンマ(,)、ダブルクォーテーション(")や文字列の前後

に意味のあるスペース(1 文字空白)を入力する場合、文字列をダブルクォーテー

ション(")で囲む必要があります。また、ダブルクォーテーション(")を入力す

る場合、ダブルクォーテーション(")を連続して入力する必要があります。

例: ABC ............. A$ の内容がABCになる

 ABC  ...... A$ の内容がABCになる

(ABC の前後にスペースを入力しても内容に反映されない)

“ ABC ” ... A$ の内容が ABC になる(ABC の前後にスペースが入る)

ABC,XYZ ..... A$ の内容が ABC になり、次に INPUT 文が実行されると XYZ が入力される

“ABC,XYZ” ... A$ の内容が ABC,XYZ になる

“““ABC””” ..... A$ の内容が “ABC”になる

7. ESC キーを入力した場合、この命令はスキップされます。

・ 変数と代入する値の型が異なっている場合指定したメッセージが表示され、再度入力待ちと

なります。

・ 指定変数が文字変数の場合、文字列をダブルコーテーション(")で囲まなくても、英数字を

入力することができます。

・ INPUT 文を使用する場合、コントローラのパラメータの “INPUT / PRINT 使用中チャンネ

ル” で指定されたチャンネルから、変数に値を代入します。

MEMO

8

8-78 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

8

8-78 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

8-78 ● 第 8章 ロボット言語一覧

48 INPUT

SAMPLE

INPUT A ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・入力された文字列が実数に変換され変

数 A!に代入される

INPUT "INPUT POINT NUMBER";A1 ・・・・・・・・プログラミングボックスなどのプロンプトに INPUT POINT

NUMBERを表示し、入力された文字列が実数に変換され変数 A1!に

代入される

INPUT "INPUT STRING",B$(0),B$(1) ・・・・・・・・プログラミングボックスなどのプロンプトに INPUT STRINGが表

示され、入力された文字列にカンマが含まれていれば、その 1つ目が変

数配列 B$の 0要素目に、2つ目が B$(1)に代入される

INPUT P100 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・入力された文字列をポイント 100に

代入

HALT

A

B

C

D

E

F

G

H

I

J

K

L

M

8

INT ● 8-79

49 INT小数点以下の切り捨て

形式

INT(式)

 意味  小数点以下を切り捨てた整数値を得ます。式 の値を越えない最大の整数値を取得し

ます。

SAMPLE

A=INT(A(0))B=INT(-1. 233) ・・・・・・・・・・・・・・・・・・ Bに -2が代入される

8

8-80 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

50 JTOXY軸単位系変換(パルス→ミリ)

形式

JTOXY[ロボット番号](ポイント式)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  ポイント式 で表される関節座標データ(単位:パルス)を、ロボット番号 で指定され

たロボットの直交座標データ(単位:mm、度)に変換します。

SAMPLE

P10=JTOXY(WHERE) ・・・・・・・・・・・・・・ ロボット 1の現在位置データをロボット 1の直交

座標データに変換し、P10に代入

関連 XYTOJ

8

LEFT$ ● 8-81

A

B

C

D

E

F

G

H

I

J

K

L

M

51 LEFT$左端から文字列を抽出する

形式

LEFT$(文字列式 ,式)

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 255

 意味  文字列式 で指定された文字列の左端(最初)から 式 で指定した桁数の文字列を抜き

出します。

式 の値が 0 〜 255 の範囲にない場合、エラーになります。

式 の値が 0 ならば、抜き出した文字列はヌルストリング(空の文字列)となります。

式 が 文字列式 の文字数より大きい場合、抜き出した文字列は 文字列式 と同じ内容

になります。

SAMPLE

B$=LEFT$(A$,4) ・・・・・・・・・・・・・・・・・ A$の左から 4文字を B$に代入する。

関連 MID$, RIGHT$

8

8-82 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

52 LEFTYスカラロボットの手系を左手系に設定する

形式

LEFTY[ロボット番号]

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  ロボット番号 で指定されたロボットを左手系に設定します。

命令を実行しても設定するだけで、ロボットは移動しません。軸が動作中の場合は、

動作完了(公差内に位置決めされる)を待ってから実行します。

この命令はスカラロボットにのみ有効です。

SAMPLE

RIGHTY ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の手系を右手系に設定

MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・・・・・(1)LEFTY ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の手系を左手系に設定

MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・・・・・(2)RIGHTY ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の手系を右手系に設定

HALT

SAMPLE:LEFTY/RIGHTY

P1

(1)(2)

左手系 右手系

スカラ型ロボット

31809-R7-00

関連 RIGHTY

8

LEN ● 8-83

A

B

C

D

E

F

G

H

I

J

K

L

M

53 LEN文字列の長さを取得する

形式

LEN(文字列式)

 意味  文字列式 で表される文字列の長さをバイト数で返します。

SAMPLE

A$=“YAMAHA”B$=“ヤマハ発動機”

C$=“ ヤマハハツドウキ”PRINT LEN(A$) ・・・・・・・・・・・・・・・・・・・“6”が表示される

PRINT LEN(B$) ・・・・・・・・・・・・・・・・・・・“12”が表示される

PRINT LEN(C$) ・・・・・・・・・・・・・・・・・・・“9”が表示される

8

8-84 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

54 LET変数に値を代入する

形式

LET 算術代入文

文字列代入文

ポイント代入文

シフト代入文

 意味  直接指定された代入文を実行します。代入は、右辺の値を左辺に代入します。

“LET”は常に省略可能で、代入文を直接記述できます。

・ ポイント代入文、シフト代入文 を実行中にコントローラの電源が遮断された場合、“9.702:

ポイントチェックサムエラー”、“9.706:シフトチェックサムエラー”などのメモリ関連のエ

ラーが発生する場合があります。

1. 算術代入文

形式

LET 整数変数 = 式 実数変数

パラレル出力変数

内部出力変数

アームロック出力変数

タイマ出力変数

シリアル出力変数

シリアルワード出力変数

シリアルダブルワード出力変数

 値  式 ・・・・・・・・・・変数(文字列・ポイント・シフト変数を除く)、関数、数値

 意味  式 の値を左辺の変数に代入します。

SAMPLE

A!=B!+1 B%(1,2,3)=INT(10.88) DO2()=&B00101101 MO(21,20)=2 LO(00)=1 TO(01)=0 SO12()=255

MEMO

8

LET ● 8-85

A

B

C

D

E

F

G

H

I

J

K

L

M

54 LET

2. 文字列代入文

形式

LET 文字列変数 = 文字列式

 意味  文字列式 の値を文字列変数に代入します。

文字列式 で使用できる演算子は+のみです。また、括弧は使用できません。

SAMPLE

A$ ="YAMAHA"B$ ="ROBOT"D$ = A$ + "-" + B$

実行結果: YAMAHA-ROBOT

・ 演算子 + は文字列の連結に使用します。

3. ポイント代入文

形式

LET ポイント変数 = ポイント式

 意味  ポイント式 の値をポイント変数に代入します。

ポイント式 で使用できる演算子は、四則演算のみです。また、乗除算は定数ま

たは変数の演算時のみ使用できます。

・加減算 ・・・・・・・・・・・・・・・・・・・・ 各軸要素ごとに加減算します

・乗除算 ・・・・・・・・・・・・・・・・・・・・ 各軸要素に定数 / 変数の値を乗除算します

乗除算による結果は、ポイントデータのタイプにより異なります。

・パルス単位の場合 ・・・・・・・・・・ 小数点以下を四捨五入して整数に変換後、代入されます。

・ミリ単位の場合 ・・・・・・・・・・・・ 小数点第3位で四捨五入した実数に変換後、代入されます。

SAMPLE

P1 =P10 ・・・・・・・・・・・・・・・・・・・・・ ポイント 10を P1に代入 P20=P20+P5 ・・・・・・・・・・・・・・・・・ ポイント 20とポイント 5を各要素毎に加算し、

P20に代入 P30=P30-P3 ・・・・・・・・・・・・・・・・・ ポイント 30からポイント 3を各要素毎に減算し、

P30に代入 P80=P70*4 ・・・・・・・・・・・・・・・・・・・ ポイント 70の各要素を 4倍して、P80に代入 P60=P5/3 ・・・・・・・・・・・・・・・・・・・・ ポイント 5の各要素を 1/3倍して、P60に代入

・ 乗除算の使用例は下記の通りです。

 ・可能な例 ・・・・・・・・・・・・・・P15*5, P[E]/A など

 ・不可能な例 ・・・・・・・・・・・・P10*P11, 3/P10 など

MEMO

MEMO

8

8-86 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

54 LET

4. シフト代入文

形式

LET シフト変数 = シフト式

 意味  シフト式 の値をシフト変数に代入します。

シフト式 で使用できる要素はシフト要素のみ、演算子は加減算のみです。

また、括弧は使用できません。

・加減算 ・・・・・・・・・・・・・・・・・・・・ 各軸要素ごとに加減算します

SAMPLE

S1=S0 ・・・・・・・・・・・・・・・・・・・・・・・・ シフト 0をシフト 1へ代入 S2=S1+S0 ・・・・・・・・・・・・・・・・・・・・ シフト 1とシフト 0を各要素毎に加算し、シフト

2に代入

・ シフト式 での加減算の例です。

 ・可能な例 ・・・・・・・・・・・・・・S1+S2

 ・不可能な例 ・・・・・・・・・・・・S1+3

MEMO

8

LO ● 8-87

A

B

C

D

E

F

G

H

I

J

K

L

M

55 LOアームロックを出力または出力状態を取得する

形式

LET LOm(b,・・・.b) = 式LET LO(mb,・・・,mb) = 式

 値  m:ポート番号 ・・・・・・・・・・・

b:ビット指定 ・・・・・・・・・・・

式・・・・・・・・・・・・・・・・・・・・・・・

0、1

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に記述。

整数値(実数が指定された場合、小数点以下を四捨五

入して整数に変換)

代入先に必要なビット数を超えたビットは読み捨て。

(ポート指定なら下位8ビット使用。ビット指定で指定した

ビット数が 1 〜 8 ビットなら、下位1〜8ビット使用)

 意味  指定された値を LO ポートに出力し、軸移動の禁止や解除を行います。

LO(00) 〜 LO(07) は第1 軸 〜 8 軸に、LO(10) 〜 LO(17) は第9軸 〜 16軸にそれぞれ対応します。

オン状態のビットに対応する軸はアームロックオン状態となり、軸の移動は禁止されます。

・ 移動を開始する軸に対して有効です。

SAMPLE

LO0()=&B00001010 ・・・・・・・・・・・・・ 第 2軸目、第 4軸目の移動を禁止

LO0(2,1)=&B10 ・・・・・・・・・・・・・・・・・ 第 3軸目の移動を禁止、第 2軸目の移動を許可

関数

形式

LET LOm(b,・・・.b)LET LO(mb,・・・,mb)

 値  m:ポート番号 ・・・・・・・・・・・

b:ビット指定 ・・・・・・・・・・・

0 〜 7、10 〜 17、20 〜 27

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に記述。

 意味  指定された LO ポートの出力状態を取得します。

LO(00) 〜 LO(07) は第 1 軸 〜 8 軸に、LO(10) 〜 LO(17) は第 9 軸 〜 16 軸にそれぞれ対応します。

オン状態のビットに対応する軸はアームロックオン状態となり、軸の移動が禁止されています。

SAMPLE

A%=LO0() ・・・・・・・・・・・・・・・・・・・・・・・・・・ LO(07) から LO(00) までの出力状態を変

数 A%に代入

A%=LO0(6, 5, 1) ・・・・・・・・・・・・・・・・ LO(06), LO(05), LO(01) の出力状態

を変数 A%に代入 (上記の信号すべてが 1(ON)の時、A%=7となる )

A%=LO(17,15,00) ・・・・・・・・・・・・・・・・ LO(17), LO(15), LO(00) の出力状態

を変数 A%に代入 (上記の信号の LO(15)以外

すべて 1(ON)の時、A%=5となる )

関連 RESET, SET

参照参照

・・ビット指定については、 3 章「10 ビット指定」を参照してください。

MEMO

8

8-88 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

8

8-88 ● 第 8章 ロボット言語一覧

A

B

C

D

E

F

G

H

I

J

K

L

M

56 LOCxポイントデータを軸単位またはシフトデータを要素単位で設定/取得する

形式

1. LOCx(ポイント式) = 式2. LOCx(シフト式) = 式

 値  形式 1:x ・・・・・・・・・・・・・・・・ 1 〜 6(軸指定), F(手系フラグ指定),

F1(第1アーム回転数情報), F2(第2アーム回転数情報)

形式 2:x ・・・・・・・・・・・・・・・・ 1 〜 4(要素指定)

式・・・・・・・・・・・・・・・・・・・・・・・ 軸指定または要素指定の場合:座標値

手系フラグ指定の場合: 1(右手系)または 2(左手系)

           0(指定無し)

第 1・第 2 アーム回転数情報(*1)の場合:0、1、-1

*1: 第 1・第 2 アーム回転数情報の詳細は、4 章「3 ポイントデータの形式」を参照し

てください

 意味  形式 1: ポイントデータの指定した軸の値、手系フラグ、第 1 アーム回転数情報

または 第 2 アーム回転数情報を変更する。

形式 2: シフトデータから、指定した要素の値を変更する。

・ 値を変更するポイントは、あらかじめ登録されていなければなりません。未登録のポイント

(座標値がブランクになっている)の値を変更しようとした場合はエラーとなります。

関数

形式

1. LOCx(ポイント式)

2. LOCx(シフト式)

 値  形式 1:x ・・・・・・・・・・・・・・・・ 1 〜 6(軸指定), F(手系フラグ指定),

F1(第1アーム回転数情報), F2(第2アーム回転数情報)

形式 2:x ・・・・・・・・・・・・・・・・ 1 〜 4(要素指定)

 意味  形式 1: ポイントデータから、指定した軸の値、手系フラグ、第 1 アーム回転数情報

または第 2 アーム回転数情報を取得する。

形式 2:シフトデータから、指定した軸の要素を取得する。

SAMPLE

LOC1(P10)=A(1) ・・・・・・・・・・・・・・・・・・ P10の第 1軸データを配列 A(1)の値に変更

LOC2(S1)=B ・・・・・・・・・・・・・・・・・・・・・・・・ S1の第 2軸データを Bの値に変更

A(1)=LOC1(P10) ・・・・・・・・・・・・・・・・・・ P10の第 1軸データを配列 A(1)に代入

B(2)=LOC1(S1) ・・・・・・・・・・・・・・・・・・・ S1の第 1要素(X方向)データを配列 B(2)に代入

関連 ポイント変数 , シフト変数

MEMO

8

LSHIFT ● 8-89

A

B

C

D

E

F

G

H

I

J

K

L

M

57 LSHIFTビットの左シフト

形式

LSHIFT(式 1,式 2)

 意味  式 1 のビット値を 式 2 分だけ左にシフトします。シフトさせて空いたところには 0

が入ります。

SAMPLE

A=LSHIFT(&B10111011,2) ・・・・・・ &B10111011を 2ビット左にシフトした値 (&B11101100)を Aに代入

関連 RSHIFT

8-90 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

58 MCHREFマシンリファレンス(センサ方式または突き当て方式の軸)を取得する

形式

MCHREF [ロボット番号 ](軸番号 )

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボットの 軸番号 で指定した軸の原点復帰動作およびア

ブソサーチ動作のマシンリファレンス(単位:%)を与えます。

この関数の対象となる軸は、原点復帰方式がセンサ方式または突き当て方式に設定

されている軸です。

SAMPLE

A=MCHREF(1) ・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の第 1軸のマシンリファレンスを変数

Aに代入

MID$ ● 8-91

8

A

B

C

D

E

F

G

H

I

J

K

L

M

59 MID$文字列を指定した位置から取得する

形式

MID$(文字列式 ,式 1,式 2 )

 値  式 1 ・・・・・・・・・・・・・・・・・・・・・・ 1 〜 255

式 2 ・・・・・・・・・・・・・・・・・・・・・・ 0 〜 255

 意味  文字列式 で指定した文字列中から任意の長さの文字列を抜き出します。

文字列の 式 1 番目の文字から、式 2 桁の文字列を抜き出します。

式 1、式 2 の値が範囲外の場合、エラーになります。

式 2 を省略した場合や、文字列の 式 1 番目の文字から右側全部の文字数より式2の

方が大きい場合は文字列の 式 1 番目の文字より右側全部を抜き出します。

式 1 が文字列の文字数より大きければ、抜き出された値はヌルストリング(空の文字

列)となります。

SAMPLE

B$=MID$(A$,2,4) ・・・・・・・・・・・・・・・・ A$の 2文字目から 4文字(5文字目まで)を B$に代入

関連 LEFT$, RIGHT$

8-92 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

60 MO指定された値をMOポートに出力または出力状態を取得する

形式

LET MOm(b,・・・.b) = 式LET MO(mb,・・・,mb) = 式

 値  m:ポート番号 ・・・・・・・・・・・

b:ビット指定 ・・・・・・・・・・・

式・・・・・・・・・・・・・・・・・・・・・・・

2 〜 7, 10 〜 17, 20 〜 27, 30 〜 37

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に

記述。

整数値(実数が指定された場合、小数点以下を四捨五

入して整数に変換)

代入先に必要なビット数を超えたビットは読み捨て。

(ポート指定なら下位8ビット使用。ビット指定で指定

したビット数が 1 〜 8 ビットなら、下位1〜8ビット

使用)

 意味  この命令文は、指定された値を MO ポートに出力します。

ポート 30 〜 37 は、各軸の原点センサの状態、および、軸のホールド状態が保持さ

れるため、参照のみで出力はできません。(ポート 32、33、36、37 はシステム予約)

ポート 30、31、34、35 の出力

ビット 7 6 5 4 3 2 1 0

ポート 30ポート 31

8 軸16 軸

7 軸15 軸

6 軸14 軸

5 軸13 軸

4 軸12 軸

3 軸11 軸

2 軸10 軸

1 軸9 軸

  原点センサ状態 0:オン/ 1:オフ(未接続軸は 1)

ポート 34ポート 35

8 軸16 軸

7 軸15 軸

6 軸14 軸

5 軸13 軸

4 軸12 軸

3 軸11 軸

2 軸10 軸

1 軸9 軸

  ホールド状態 0:非ホールド/ 1:ホールド(未接続軸は 1)

・ MO のポート 30 〜 37 についての詳細は、3 章「9.5 内部出力変数」を参照してください。

SAMPLE

MO2()=&B10111000 ・・・・・・・・・・・・・・ MO(27,25,24,23)がオンし、 MO(26,22,21,20)がオフする

MO2(6,5,1)=&B010 ・・・・・・・・・・・・・・ MO(25)がオンし、MO(26,21)がオフする

MO3() = 15 ・・・・・・・・・・・・・・・・・・・・・・・・ MO(33,32,31,30)がオンし、 MO(37,36,35,34)がオフする

MO(37,35,27,20)=A ・・・・・・・・・・・・・ MO(37,35,27,20)に変数 Aを整数化したと

きの下位 4ビットの内容を出力

参照参照

・・ビット指定については、 3 章「10 ビット指定」を参照してください。

MEMO

MO ● 8-93

8

A

B

C

D

E

F

G

H

I

J

K

L

M

60 MO

関数

形式

MOm(b,・・・.b)MO(mb,・・・,mb)

 値  m:ポート番号 ・・・・・・・・・・・

b:ビット指定 ・・・・・・・・・・・

2 〜 7, 10 〜 17, 20 〜 27, 30 〜 37

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に

記述。

 意味  指定された MO ポートの出力状態を取得します。

SAMPLE

A%=MO0() ・・・・・・・・・・・・・・・・・・・・・・・・・・ MO(07)から MO(00)までの出力状態を変数

A%に代入

A%=MO0(6, 5, 1) ・・・・・・・・・・・・・・・・ MO(06), MO(05), MO(01) の出力状態

を変数 A%に代入 (上記の信号すべてが 1(ON)の時、A%=7となる )

A%=MO(17,15,00) ・・・・・・・・・・・・・・・・ MO(17), MO(15), MO(00) の出力状態

を変数 A%に代入 (上記の信号の MO(15)以外

すべてが 1(ON)の時、A%=5となる )A%=MO(377,365,255,123) ・・・・・・ MO(377), MO(365), MO(255), MO(123)

の出力状態を変数 A%に代入 (上記の信号すべて

が 1(ON)の時、A%=15となる )

関連 RESET, SET

8-94 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

61 MOTORモータ電源状態をコントロールする

形式

MOTOR ON OFF PWR

 意味  モータ電源のオン/オフをコントロールします。このとき同時に全ロボットのサー

ボのオン/オフのコントロールも可能です。

・ON ・・・・・・・・・モータ電源をオンします。同時に全ロボットのサーボもオンします。

・OFF ・・・・・・・・ モータ電源をオフします。同時に全ロボットのサーボをオフし、ダ

イナミックブレーキをかけます。ブレーキの付いている軸はブレー

キがかかり、ロックします。

・PWR・・・・・・・・モータ電源のみをオンします。

SAMPLE

MOTOR ON ・・・・・・・・・・・・・・・・・・・・・・・・・ モータ電源をオンし、全ロボットのサーボをオンする

MOVE ● 8-95

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVEロボットの全軸を絶対位置移動する

形式

MOVE [ロボット番号](軸番号、...) PTP ,ポイント指定 ,オプション ,オプション ... P L C

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6(複数指定可。省略した場合、全軸指定)

 意味  指定されたロボットの指定された軸の絶対位置移動命令を実行します。

他のロボット軸や付加軸設定されている軸は、この移動命令では移動しません。

・移動の種類 : PTP、直線補間、円弧補間

・ポイント指定 : 直接数値指定、ポイント定義指定、ポイントネーム指定

※ポイントネームの追加・編集方法については RCX340 オペレー

ションマニュアルの「ポイント編集」を参照してください。

・オプション : 速度指定、アーチモーション指定、STOPON条件指定、 CONT指定、

加速度指定、減速度指定、座標平面指定、 ポート出力指定(複数指

定可)、 連結レベル指定

オプション PTP 直線補間 円弧補間 備 考

速度指定(SPEED、DSPEED) ○ ○ ○ 指定 MOVE 文のみ有効

速度指定(VEL) × ○ ○ 指定 MOVE 文のみ有効

アーチモーション ○ × × 指定 MOVE 文のみ有効

STOPON 条件指定 ○ ○ × プログラム実行のみ有効

CONT 指定 ○ ○ ○ 指定 MOVE 文のみ有効

加速度指定 ○ ○ × 指定 MOVE 文のみ有効

減速度指定 ○ ○ × 指定 MOVE 文のみ有効

平面座標指定 × × ○ 指定 MOVE 文のみ有効

ポート出力指定 × ○ ○ 指定 MOVE 文のみ有効

8-96 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVE

移動の種類

● PTP(PointtoPoint)移動

実行開始条件:全ての移動対象軸が動作を完了(公差範囲内に到着)している。

実行終了条件:全ての移動対象軸がアウト有効位置範囲内に到着した。

移動対象軸は、同時到着します。移動の軌跡については保証されません。

● MOVEP 命令に続く次の命令の注意点

MOVE P 命令の次の命令が信号出力命令などの実行可能な命令の場合、移動対象軸がアウ

ト有効位置範囲以内に入ると次の命令を開始します。つまり、目標位置の公差範囲以内に軸

が到着する前に次の命令を開始することになります。

例:

信号出力(DO など) アウト有効位置範囲以内に入ると、信号が出力されます。

DELAYアウト有効位置範囲以内に入ると DELAY 命令が実行され、時間の待ちが始まります。

HALTアウト有効位置範囲以内に入ると、プログラムが停止し、かつリセットされます。そのため、移動が停止します。

HALTALLアウト有効位置範囲以内に入ると、実行中のプログラムが全て停止し、タスク 1 はリセット、その他のタスクは終了します。そのため、移動が停止します。

HOLDアウト有効位置範囲以内に入ると、プログラムを一時停止します。そのため、移動が停止します。

HOLDALLアウト有効位置範囲以内に入ると、実行中のプログラムが全て一時停止します。そのため、移動が停止します。

WAIT アウト有効位置範囲以内に入ると、WAIT 命令が実行されます。

公差範囲以内に軸が到着してから次の命令を実行する場合には、"WAITARM"文を使用します。

・ アウト有効位置の値はパラメータにより設定されています。

プログラム中からも OUTPOS 命令により値の変更が可能です。

P1

MOVE命令

DO(20)をオン

MOVE P,P1WAIT ARMDO(20)=1

DO(20)をオン

MOVE P,P1DO(20)=1

公差

目標位置

アウト有効位置

HOLD実行(プログラム一時停止)

MOVE P,P1WAIT ARMHOLD

MOVE P,P1HOLD

公差アウト有効位置

目標位置

HOLD実行(プログラム一時停止)

31823-R7-00

MEMO

MOVE ● 8-97

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVE

SAMPLE

MOVE P,P0 ・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置から P0で指定された位置へ

移動(MOVE PTP,P0 でも同様)

MOVE P,END_POINT ・・・・・・・・・・・ ロボット 1を現在位置からポイントネーム「END_POINT」で指定された位置へ移動

・ PTP 移動は、補間移動に比べて動作が速くなりますが、複数ポイントを連続して移動する場

合、その都度位置決めを行い停止します。

・ ポイントネームの追加・編集方法については、RCX340 オペレーションマニュアルの「ポイ

ント編集」を参照してください。

● 直線補間移動

実行開始条件:全ての移動対象軸が動作を完了(公差範囲内に到着)している。

実行終了条件:全ての移動対象軸が動作を完了(公差範囲内に到着)した。

移動対象軸は全軸同時到着となります。

・ R 軸指定のあるロボットでは、R 軸の移動距離によっては、R 軸の速度が高くなりすぎてエ

ラーとなる場合があります。

SAMPLE

MOVE L,P0,P1 ・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置から P0,P1で指定された位

置へ直線補間移動

SAMPLE:MOVE L

P0

現在位置

P1

公差範囲

31810-R7-00

c 注意

・・RCX340 では補間移動コマンドの動作、及び終了条件が従来機種(RCX240 など)と異なります。移動コマンドに CONT 指定を付加することにより、従来機種と同等の動作、及び終了条件にすることが可能です。

MEMO

8-98 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVE

● 円弧補間移動

実行開始条件:全ての移動対象軸が動作を完了(公差範囲内に到着)している。

実行終了条件:全ての移動対象軸が動作を開始した。

移動対象軸は全軸同時到着となります。

円弧補間の場合、現在位置と中間位置と目標位置の 3 つの位置で 1 つの円弧を形成します。

そのため、ポイント指定は必ず偶数個でなければなりません。

SAMPLE

MOVE L,P20 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置から P20へ直線補間移動

MOVE C,P21,P22,P23,P20 ・・・・・・ P21,P22,P23,P20で構成する円弧補間移動

MOVE L,P24 ・・・・・・・・・・・・・・・・・・・・・・・・ P24に直線補間移動

SAMPLE:MOVE C

P23

現在位置 P24

P22

P21

P20

31811-R7-00

・ 円弧補間が可能な範囲は、半径 0.100mm 〜 5,000.000mm です。

・ 速度、加速度、ポイント間の距離によっては、円弧が歪む場合があります。

・ R 軸指定のあるロボットでは、R 軸の移動距離によっては、R 軸の速度が高くなりすぎてエ

ラーとなる場合があります。

移動命令による動作の違い  

現在位置

公差範囲

アウト有効位置範囲目標位置

現在位置

公差範囲

アウト有効位置範囲目標位置

アウト有効位置範囲内に入ると

命令終了。次の命令を実行。

公差範囲に到着してから、次の

命令を実行する。

1. PTP動作

2. 直線補間動作

31703-R9-00

c 注意

・・RCX340 では補間移動コマンドの動作、及び終了条件が従来機種(RCX240 など)と異なります。移動コマンドに CONT 指定を付加することにより、従来機種と同等の動作、及び終了条件にすることが可能です。

MEMO

MOVE ● 8-99

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVE

ポイント指定の種類

● 直接数値指定  PTP   直線補間   円弧補間  

形式

p1 p2 p3 p4 p5 p6 f f1 f2

 値  p1 〜 p6 ・・・・・・・・・・・・・・・・・・ スペースで区切られた各軸の座標値

f ・・・・・・・・・・・・・・・・・・・・・・・・・ 手系フラグ(スカラのみ)

f1 ・・・・・・・・・・・・・・・・・・・・・・・・ 第 1 アーム回転数情報(YK-TW シリーズのみ)

f2 ・・・・・・・・・・・・・・・・・・・・・・・・ 第 2 アーム回転数情報(YK-TW シリーズのみ)

 意味  座標値を指定します。このときの数値が、整数値の場合はパルス単位と判断し、

実数値(小数点あり)の場合はミリ / 度単位と判断し、移動します。整数と実数が

混在する場合は、すべての座標値をミリ / 度単位として扱います。

この指定が可能な移動の種類は、PTP 移動および直線補間移動です。

直接数値指定では、スカラ型ロボット、かつ、座標値をミリ単位で指定する場合、

手系フラグを指定することができます。

スカラ型ロボットで、拡張設定の手系フラグを設定する場合は、f に 1 または 2

を指定します。1 および 2 以外の数値もしくは数値の指定がない場合は、手系フ

ラグの設定無し(0)として扱われます。

 1: 右手系で指定位置へ移動するよう設定されていることを示します。

 2: 左手系で指定位置へ移動するよう設定されていることを示します。

直接数値指定では、YK-TW シリーズ、かつ、座標値をミリ単位で指定する場合、

第 1 アーム回転数情報および第 2 アーム回転数情報(*1)を指定することができ

ます。

YK-TW シリーズで、拡張指定の第 1 アーム回転数情報および 第 2 アーム回転数

情報を指定する場合は、f1 および f2 に、-1、0、1 のいずれかを指定します。-1、0、

1 以外の数値または、第 1 アーム回転数情報および第 2 アーム回転数情報が設定

なしの場合は、0 として扱われます。

0: アーム回転数情報が、0の位置へ移動するよう設定されていることを示します。

1: アーム回転数情報が、1の位置へ移動するよう設定されていることを示します。

-1: アーム回転数情報が、-1の位置へ移動するよう設定されていることを示します。

*1: 第 1・第 2 アーム回転数情報の詳細は、4 章「3 ポイントデータの形式」を参

照してください。

・ スカラ型ロボットで、かつ移動先の座標データに手系フラグが指定されている場合、指定さ

れた手系を現在のアームタイプや LEFTY・RIGHTY の指定よりも優先します。

SAMPLE

MOVE P, 10000 10000 1000 1000 0 0 ・・・・・・・・・・・ ロボット 1を現在位置から指定位置へ PTP移動 MOVE P, 100.0 100.0 50.0 45.0 0.0 0.0 2 ・・・・・・・・・・・ロボット 1を現在位置から左手系の指定位置へ PTP移動

MOVE P,-180.0 -430.0 50.0 180.0 0.0 0.0 1 -1 1 ・・・・・・・・・・・ ロボット 1を現在位置から右手系で第 1アームが -180°以下で 360°

以上、第 2アームが 180°以上で 360°以下の指定位置へ PTP移動

n 要点

・・単位指定が混在している場合(整数と実数の両方がある場合)、全ての値がミリ/度単位として扱われます。

c 注意

・・手系フラグを指定して直線補間を行う場合、現在位置での手系と指定移動先での手系が同じになるようにしてください。手系が異なる場合、エラーとなり動作できません。

・・直線補間を行なう場合、現在位置での第 1・第 2 アーム回転数情報と指定移動先での第 1・第 2 アーム回転数情報が同じになるようにしてください。これらが異なる場合、エラーとなり動作できません。

MEMO

8-100 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVE

● ポイント定義指定  PTP   直線補間   円弧補間  

形式

ポイント式 ,ポイント式 ...

 意味  ポイント式 を指定します。カンマ(,)で区切ることにより複数のデータを指定で

きます。

円弧補間の場合、ポイントは偶数個の指定となります。

・ スカラ型ロボットで、かつ移動先の座標データに手系フラグが指定されている場合、指定さ

れた手系を現在のアームタイプや LEFTY・RIGHTY の指定よりも優先します。

SAMPLE

MOVE P,P1 ・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置から P1で指定された位置へ

移動

MOVE P,P20,P0,P100 ・・・・・・・ ロボット 1を現在位置から P20,P0,P100で指

定された位置へ順番に移動

● ポイントネーム指定  PTP   直線補間   円弧補間  

形式

ポイントネーム ,ポイントネーム ...

 意味  ポイントネームを指定します。カンマ(,)で区切ることにより複数のデータを指

定できます。

円弧補間の場合、ポイントは偶数個の指定となります。

・ スカラ型ロボットで、かつ移動先の座標データに手系フラグが指定されている場合、指定さ

れた手系を現在のアームタイプや LEFTY・RIGHTY の指定よりも優先します。

SAMPLE

MOVE P,PICK_POINT ・・・・・・・・・ ロボット 1 を現在位置からポイントネーム

「PICK_POINT」 で指定された位置へ移動

MOVE C,CIRCLE_PNT1,CIRCLE_PNT2 �����������������������ロボット 1 を現在位置とポイントネーム

「CIRCLE_PNT1」,「CIRCLE_PNT2」 で指

定された座標で円弧補間移動

c 注意

・・手系フラグが設定されているポイントに直線補間または円弧補間で移動する場合、現在位置での手系と指定したポイントの手系が同じになるようにしてください。現在位置での手系と指定したポイントの手系が異なる場合、エラーとなり動作できません。

MEMO

c 注意

・・直線補間または円弧補間で移動する場合、現在位置での 第 1・第 2 アーム回転数情報と指定したポイント位置での第 1・第 2 アーム回転数情報が同じになるようにしてください。これらが異なる場合、エラーとなり動作できません。

MEMO

MOVE ● 8-101

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVE

オプションの種類

● 速度指定1  PTP   直線補間   円弧補間  

形式

1. SPEED = 式2. S = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  プログラム移動速度を 式 で指定します。

実際の速度は、以下のようになります。

・ロボットの最高速度(mm/ 秒)×自動移動速度(%)×プログラム移動速度(%)

指定された MOVE 文に対してのみ有効です。

SAMPLE

MOVE P,P10,S=10 ・・・・・・・・・・・ ロボット 1を現在位置から P10で指定された位置

へプログラム移動速度 10%で移動

● 速度指定2  PTP   直線補間   円弧補間  

形式

1. DSPEED = 式2. DS = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0.01 〜 100.00(単位:%)

 意味  ロボットの移動速度を 式 で指定します。

実際の速度は以下のようになります。

・ロボットの最高速度(mm/ 秒または度 / 秒)×移動速度(%)

指定された MOVE 文に対してのみ有効です。

・ 自動移動速度の値(%)に影響されず常にDSPEED の 式 の値(%)で移動します。

SAMPLE

MOVE P,P10,DS=0.1 ・・・・・・・・ ロボット 1を現在位置から P10 で指定された位

置へロボットの最高速度の 0.1% で移動

● 速度指定 3  PTP   直線補間   円弧補間  

形式

VEL = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜機種ごとの最高速度(単位:mm/ 秒)

 意味  ロボットの XYZ 軸の合成最高速度を mm/ 秒単位の 式 で指定します。このオプ

ションは、移動の種類が直線補間移動および円弧補間移動の場合に指定が可能で

す。

指定された MOVE 文に対してのみ有効です。

SAMPLE

MOVE L,P10,VEL=100 ・・・・・・・・ ロボット 1を現在位置から P10で指定された位置

へ XYZ軸の合成最高速度 100mm/秒で移動

n 要点

・・最高速を規定するもので、指定した速度での移動を保証するものではありません。

n 要点

・・SPEED オプションとDSPEED オプションは併用できません。

n 要点

・・合成速度の最高速を規定するもので、指定した速度での移動を保証するものではありません。

8-102 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVE

● アーチモーション指定  PTP   直線補間   円弧補間  

形式

x = 式 { 式1, 式 2 }

 値  x・・・・・・・・・・・・・・・・・・・・・・・・・・・

式・・・・・・・・・・・・・・・・・・・・・・・・・・

式 1、式 2 ・・・・・・・・・・・・・・・・・・

A1 〜 A6 の軸指定

アーチ位置

(単位: 整数値 ・・・・・・・・・・・・・・・パルス)

実数値(小数点あり) ・・・mm、度)

アーチ距離 1、アーチ距離 2

(単位: 整数値 ・・・・・・・・・・・・・・・パルス)

実数値(小数点あり) ・・・mm、度)

・ 式、式 1、式 2 のいずれかに実数値がある場合、全て実数値として扱われます。

 意味  1. x で指定された軸を 式 で指定された位置に移動開始(下図の 1)。

2. x で指定された軸がアーチ距離 1 以上移動すると、その他の軸が目標位置に

移動(下図の 2)。

3. x で指定された軸が、その他の軸が移動を終了する時点で、残り移動距離が

アーチ距離2になる様に目標位置に移動(下図の 3)。

4. 全ての軸がアウト有効位置範囲以内に入ると命令を終了。

この指定が可能な移動の種類は PTP 移動です。

x で指定する軸がスカラ型ロボットの第 1 アーム、第 2 アーム、または直交型ロ

ボットの第 1 軸、第 2 軸である場合、 式 および目標位置の値は整数(パルス単位)

に制限されます。

SAMPLE

MOVE P,P1,A3=0{150,100} ・・・・・・・・現在位置から A3軸が 0パルスに移動。

その後、他の軸が P1に移動し、最後に

A3軸が P1に移動

SAMPLE:MOVE A3

目標位置現在位置

1. A3軸移動 3. A3軸移動

2. その他の軸移動

アーチ距離1 アーチ距離2

A3=0

31704-R9-00

・ PTP 移動では複数ポイントが指定された場合、その都度、アーチモーション指定された軸も

目標位置への移動を行います。

PTP移動

P11P10

全ての軸がP10の位置へ移動

A3=0

MOVE P, P10, P11, A3 = 0

MEMO

n 要点

・・軸のアーチ距離パラメータは ARCHP1/ARCHP2 で 変更可能です。この値が小さいほど、移動の実行時間を短縮することができます。

MEMO

MOVE ● 8-103

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVE

● STOPON 条件指定  PTP   直線補間   円弧補間  

形式

STOPON 条件式

 意味  移動中に条件式が成立した場合、移動を停止します。このときの停止動作は、減

速停止なので、条件成立後に減速移動距離が発生します。

移動開始時に条件式が成立している場合、移動せずに命令を終了します。

この指定で可能な移動の種類は、PTP 移動および直線補間移動です。

プログラム実行のみ有効です。

SAMPLE

MOVE P,P100,STOPON DI(20)=1 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置から P100で指定された位

置に移動。途中でDI(20)=1の条件が成立したら、

移動を減速停止し、次のステップを実行する

・ STOPON 条件指定で使用する条件式が数値を表す式である場合、式の値が 0 以外の時に「真」

となり、0 の時に「偽」となります。

c 注意

・・STOPON 条件指定を付加すると PTP 移動、直線補間移動での CONT 指定が無効になります。

MEMO

8-104 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVE

● CONT指定  PTP   直線補間   円弧補間  

形式

CONT

 意味  CONT 指定の移動を実行した場合、移動対象軸の動作完了(公差範囲内に到着)

を待たずに、次の命令を開始します。次の命令が移動命令の場合、2 つの移動経

路が減速と加速部分を接続することで連結され、途中で停止することなく移動が

継続されます。

指定された MOVE 文に対してのみ有効です。

● MOVEL / C命令でのCONT指定使用時の注意点

CONT 指定ありの MOVE L / C 命令の次の命令が信号出力命令などの実行可能な命令の場

合、移動開始直後から実行を開始します。つまり、目標位置の公差範囲以内に軸が到着する

前に次の命令を開始することになります。

例:

信号出力(DO など) 最後の経路の移動開始直後に、信号が出力されます。

DELAY最後の経路の移動開始直後に、DELAY 命令が実行され、時間の待ちが始まります。

HALT最後の経路の移動開始直後に、プログラムが停止し、かつリセットされます。そのため、移動が停止します。

HALTALL最後の経路の移動開始直後に、実行中のプログラムが全て停止し、タスク 1 はリセット、その他のタスクは終了します。そのため、移動が停止します。

HOLD最後の経路の移動開始直後に、プログラムを一時停止します。そのため、移動が停止します。

HOLDALL最後の経路の移動開始直後に、実行中のプログラムが全て一時停止します。そのため、移動が停止します。

WAIT 最後の経路の移動開始直後に、WAIT 命令が実行されます。

P1

MOVE命令

DO(20)をオン

MOVE L,P1DO(20)=1

DO(20)をオン

MOVE L,P1, CONTDO(20)=1

公差

最終目標位置

31808-R9-00

SAMPLE

MOVE P,P10,P11,CONT ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置から P10で指定された位置

に移動し、移動軸が公差範囲以内に軸到着すること

を待たずに P11に移動を開始

c 注意

・・RCX340 では補間移動コマンドの動作、及び終了条件が従来機種(RCX240 など)と異なります。移動コマンドに CONT 指定を付加することにより、従来機種と同等の動作、及び終了条件にすることが可能です。

n 要点

・・CONT 指定することにより、移動終了時の位置決め時間を短縮することができます。経路は保証されません。

MOVE ● 8-105

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVE

SAMPLE:MOVE P CONT

P10

現在位置

P11

アウト有効位置範囲※

※CONTパルスパラメータに 値が設定されている場合は、 CONTパルス範囲以内

アウト有効位置範囲に入ると

次の移動を開始する

P10

現在位置

P11

アウト有効位置範囲

公差範囲に入ってから次の

移動を開始する

公差範囲

� CONT指定あり

� CONT指定なし

31809-R9-00

SAMPLE

MOVE L,P10,CONTMOVE L,P11 ・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置から P10で指定された位置

に移動し、移動軸が公差範囲以内に軸到着すること

を待たずに P11への直線補間移動をし、公差範囲

内到着で動作終了

・ CONT 指定をした補間移動は、連続動作の場合、途中のポイントでの停止を行いません。

SAMPLE:MOVE L CONT

P10

P11

動作の減速区間に入ると

次の移動を開始する

P10

P11

公差範囲に入ってから次の

移動を開始する

公差範囲

減速区間

� CONT指定あり

� CONT指定なし

MEMO

8-106 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVE

● 加速度指定  PTP   直線補間   円弧補間  

形式

ACC = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  加速度係数パラメータによって決定されたロボットの加速度に対する比率を

式 で指定し、動作時の加速度を決定します。

この指定で可能な移動の種類は、PTP 移動および直線補間移動です。

指定された MOVE 文に対してのみ有効です。

SAMPLE

MOVE L,P100,ACC=10 ・・・・・・・・ ロボット 1を現在位置から P100で指定された位

置に加速度比率 10%で移動

● 減速度指定  PTP   直線補間   円弧補間  

形式

DEC = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  加速度係数パラメータによって決定されたロボットの加速度に対する比率を

式 で指定し、動作時の減速度を決定します(設定された加速度を 100% とし、そ

れに対する比率です)。

この指定で可能な移動の種類は、PTP 移動および直線補間移動です。

指定された MOVE 文に対してのみ有効です。

SAMPLE

MOVE L,P100,DEC=20 ・・・・ ロボット 1を現在位置から P100で指定された位

置に減速度比率 20%で移動

MOVE ● 8-107

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVE

● 座標平面指定  PTP   直線補間   円弧補間  

形式

 XY YZ  ZX

 値  XY ・・・・・・・・・・・・・・・・・・・・・・・ XY 座標平面

YZ ・・・・・・・・・・・・・・・・・・・・・・・ YZ 座標平面

ZX ・・・・・・・・・・・・・・・・・・・・・・・ ZX 座標平面

 意味  座標指定の円弧補間を実行した場合、指定座標平面への投射が円となるような円

弧補間を実行します。

この指定で可能な移動の種類は、円弧補間移動です。

指定された MOVE 文に対してのみ有効です。

SAMPLE

P10 = 100.000 100.000 120.000 0.000 0.000 0.000P11 = 150.000 100.000 100.000 0.000 0.000 0.000P12 = 150.000 150.000 120.000 0.000 0.000 0.000P13 = 100.000 150.000 140.000 0.000 0.000 0.000MOVE P,P10 ・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置から P10で指定された位置

へ移動

MOVE C,P11,P12MOVE C,P13,P10 ・・・・・・・・・・・・・・ P10,P11,P12と P12,P13,P10で生成され

る 3次元円弧を連続で移動 ・・・・・・(1)MOVE C,P11,P12,XYMOVE C,P13,P10,XY ・・・・・・・・・ P10,P11,P12と P12,P13,P10で生成され

る XY平面上の円弧を連続で移動。このとき、Z軸

は、円弧の目標位置となる P12と P10で指定さ

れる位置に移動 ・・・・・・・・・・・・・・・・・(2)

SAMPLE:MOVE C 座標平面

Y+

150

100

120

140

150

P11

P12

P13

(1)

(2)

X+→

→Z+

P10P10

31822-R9-00

n 要点

・・座標平面を指定しない場合は、3 次元円弧となります。

・・2軸仕様のロボットの場合、XY 平面での円弧動作となります。

8-108 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

62 MOVE

● ポート出力指定  PTP   直線補間   円弧補間  

形式 1

 DO m(b,・・・,b )= 式 1 @ 式 2 MO  SO

形式 2

 DO (mb,・・・,mb)= 式 1 @ 式 2 MO  SO

 値  m:ポート番号 ・・・・・・・・・

b:ビット指定 ・・・・・・・・・

式 1 ・・・・・・・・・・・・・・・・・・・

式 2 ・・・・・・・・・・・・・・・・・・・

2 〜 7, 10 〜 17, 20 〜 27

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)

に記述。

指定ポートに出力する値で、整数部のみ有効。

ポート出力を行う位置。mm 単位で小数点以下 3 桁

まで指定可能。

 意味  直線補間または円弧補間を実行時、移動開始位置から 式 2 の距離(単位:mm)

だけ離れるタイミングで、指定した出力ポートに 式 1 の値を出力します。

式 2 で指定した数値は移動開始点を中心とした円の半径となります(円弧の長さ

ではありません)。

この指定できる移動の種類は直線補間移動および円弧補間移動です。

このオプションは、1 つの MOVE 文で 2 回まで指定できます。

ハード的に存在しないポートを指定した場合、何も出力されません。

SAMPLE 1

MOVE P,P0MOVE L,P1,DO2()[email protected] ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1が P1へ直線補間で移動中、P0から

25.85mm離れるタイミングで DO2()に 105(&B01101001)を出力する

SAMPLE 2

A!=10B!=20MOVE L,P2,MO(22)=1@A!,MO(22)=0@B! ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1が P2へ移動開始後、10mm離れるタ

イミングで MO(22)をオンし、20mm離れるタイ

ミングで MO(22)をオフする

関連 MOVEI, MOVET, DRIVE, DRIVEI, WAIT ARM

c 注意

・・DO, MO, SO ともに、ポート 0 および 1 への出力はできません。

参照参照

・・ビット指定については、 3 章「10 ビット指定」を参照してください。

MOVEI ● 8-109

8

A

B

C

D

E

F

G

H

I

J

K

L

M

63 MOVEIロボットの全軸を相対位置移動する

形式

MOVEI[ロボット番号](軸番号、...) PTP ,ポイント指定 ,オプション ,オプション ... P L

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6(複数指定可。省略した場合、全軸指定)

 意味  指定されたロボットの相対位置移動命令を実行します。

他のロボット軸や付加軸設定されている軸は、この移動命令で移動しません。

・移動種類 : PTP、直線補間

・ポイント指定 : 直接数値指定、ポイント定義指定

・オプション : 速度指定、STOPON 条件指定、CONT 指定、加速度指定、

減速度指定

オプション PTP 直線補間 備 考

速度指定 (SPEED/DSPEED) ○ ○ 指定 MOVEI 文のみ有効

速度指定(VEL) × ○ 指定 MOVEI 文のみ有効

STOPON 条件指定 ○ ○ プログラム実行のみ有効

CONT 指定 ○ ○ 指定 MOVEI 文のみ有効

加速度指定 ○ ○ 指定 MOVEI 文のみ有効

減速度指定 × ○ 指定 MOVEI 文のみ有効

・ MOVEI 文を途中停止し再起動した場合、移動の目標位置を、コントローラのパラメータの

“MOVEI / DRIVEI 開始位置”で選択することができます。詳しくはコントローラのユーザー

ズマニュアル、またはオペレーションマニュアルを参照してください。

1) 保持する(初期値) 先の移動の続きを実行します。目標位置は再実行前と変わりません。

2) リセット 現在位置から新たに相対移動を行います。目標位置は再実行前と変

わります(従来互換)。

MEMO

8-110 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

63 MOVEI

移動の種類

● PTP(PointtoPoint)移動

実行開始条件:全ての移動対象軸が動作を完了(公差範囲内に到着)している。

実行終了条件:全ての移動対象軸がアウト有効位置範囲内に到着した。

移動対象軸は、同時到着します。移動の軌跡については保証されません。

● MOVEI P命令に続く次の命令の注意点

MOVEI P命令の次の命令が信号出力命令などの実行可能な命令の場合、移動対象軸がアウ

ト有効位置範囲以内に入ると次の命令を開始します。つまり、目標位置の公差範囲以内に軸

が到着する前に次の命令を開始することになります。

例:

信号出力(DO など) アウト有効位置範囲以内に入ると、信号が出力されます。

DELAYアウト有効位置範囲以内に入ると、DELAY 命令が実行され、時間の待ちが始まります。

HALTアウト有効位置範囲以内に入ると、プログラムが停止し、かつリセットされます。そのため、移動が停止します。

HALTALLアウト有効位置範囲以内に入ると、実行中のプログラムが全て停止し、タスク 1 はリセット、その他のタスクは終了します。そのため、移動が停止します。

HOLDアウト有効位置範囲以内に入ると、プログラムを一時停止します。そのため、移動が停止します。

HOLDALLアウト有効位置範囲以内に入ると、実行中のプログラムが全て一時停止します。そのため、移動が停止します。

WAIT アウト有効位置範囲以内に入ると、WAIT 命令が実行されます。

公差範囲以内に軸が到着してから次の命令を実行する場合には、"WAITARM"文を使用します。

・ アウト有効位置の値はパラメータにより設定されています。プログラム中からも OUTPOS

命令により値の変更が可能です。

P1

MOVEI命令

DO(20)をオン

MOVEI P,P1WAIT ARMDO(20)=1

DO(20)をオン

MOVEI P,P1DO(20)=1

公差

目標位置

アウト有効位置

HOLD実行(プログラム一時停止)

MOVEI P,P1WAIT ARMHOLD

MOVEI P,P1HOLD

公差アウト有効位置

目標位置

HOLD実行(プログラム一時停止)

31826-R7-00

MEMO

MOVEI ● 8-111

8

A

B

C

D

E

F

G

H

I

J

K

L

M

63 MOVEI

SAMPLE

MOVEI P,P0 ・・・・・・・・・・・・・・・・・・・・ ロボット 1の軸が現在位置に対して P0で指定され

る移動量が加算された位置へ PTP移動

・ PTP 移動は、補間移動に比べて動作が速くなりますが、複数ポイントを連続して移動する場

合、そのつど位置決めを行い停止します。

● 直線補間移動

実行開始条件:全ての移動対象軸が動作完了 ( 公差範囲内に到着 ) している。

実行終了条件:全ての移動対象軸が動作を完了 ( 公差範囲内に到着 ) した。

移動対象軸は全軸同時到着となります。

・ R 軸指定のあるロボットでは、R 軸の移動距離によっては、R 軸の速度が高くなりすぎてエ

ラーとなる場合があります。

SAMPLE

MOVEI L,P0,P1 ・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置に対して P0, P1で指定さ

れる移動量が加算された位置へ直線補間移動

SAMPLE:MOVEI L

P0

現在位置

P1

公差範囲

31813-R9-00

MEMO

c 注意

・・RCX340 では補間移動コマンドの動作、及び終了条件が従来機種(RCX240 など)と異なります。移動コマンドに CONT 指定を付加することにより、従来機種と同等の動作、及び終了条件にすることが可能です。

MEMO

8-112 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

63 MOVEI

ポイント指定の種類

● 直接数値指定  PTP   直線補間  

形式

p1 p2 p3 p4 p5 p6 f f1 f2

 値  p1 〜 p6 ・・・・・・・・・・・・・・・・・・ スペースで区切られた各軸の座標値

f ・・・・・・・・・・・・・・・・・・・・・・・・・ 手系フラグ(スカラのみ)

f1 ・・・・・・・・・・・・・・・・・・・・・・・・ 第 1 アーム回転数情報(YK-TW シリーズのみ)

f2 ・・・・・・・・・・・・・・・・・・・・・・・・ 第 2 アーム回転数情報(YK-TW シリーズのみ)

 意味  直接座標値を指定します。このときの数値が、整数値の場合はパルス単位と判断

し、実数値の場合はミリ / 度単位と判断し、移動します。

直接数値指定では、スカラ型ロボット、かつ、座標値をミリ単位で指定する場合、

手系フラグを指定することができます。

スカラ型ロボットで、拡張設定の手系フラグを設定する場合は、fに 1 または 2

を指定します。1 および 2 以外の数値もしくは数値の指定がない場合は、手系フ

ラグの設定無し(0)として扱われます。

 1: 右手系で指定位置へ移動するよう設定されていることを示します。

 2: 左手系で指定位置へ移動するよう設定されていることを示します。

直接数値指定では、YK-TW シリーズ、かつ、座標値をミリ単位で指定する場合、

第 1 アーム回転数情報および第 2 アーム回転数情報(*1)を指定することができ

ます。

YK-TW シリーズで、拡張指定の第 1 アーム回転数情報および第 2 アーム回転数

情報を指定する場合は、f1 および f2 に、-1、0、1 のいずれかを指定します。-1、0、

1 以外の数値または、第 1 アーム回転数情報および第 2 アーム回転数情報が設定

なしの場合は、0 として扱われます。

0: アーム回転数情報が、0の位置へ移動するよう設定されていることを示します。

1: アーム回転数情報が、1の位置へ移動するよう設定されていることを示します。

-1: アーム回転数情報が、-1の位置へ移動するよう設定されていることを示します。

*1: 第 1・第 2 アーム回転数情報の詳細は、4 章「3 ポイントデータの形式」を参

照してください。

・ スカラ型ロボットで、かつ移動先の座標データに手系フラグが指定されている場合、指定さ

れた手系を現在のアームタイプや LEFTY・RIGHTY の指定よりも優先します。

SAMPLE

MOVEI P, 10000 10000 1000 1000 0 0 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置に対して指定量(パルス単

位)だけ加算された位置へ PTP移動

n 要点

・・単位指定が混在している場合(整数と実数の両方がある場合)、全ての値がミリ / 度単位として扱われます。

c 注意

・・手系フラグを指定して直線補間を行う場合、現在位置での手系と指定移動先での手系が同じになるようにしてください。手系が異なる場合、エラーとなり動作できません。

・・直線補間を行う場合、現在位置での第 1・第 2 アーム回転数情報と指定移動先での第 1・第 2 アーム回転数情報が同じになるようにしてください。これらが異なる場合、エラーとなり動作できません。

MEMO

MOVEI ● 8-113

8

A

B

C

D

E

F

G

H

I

J

K

L

M

63 MOVEI

● ポイント定義指定  PTP   直線補間  

形式

ポイント式 ,ポイント式 ...

 意味  ポイント式 を指定します。カンマ(,)で区切ることにより複数のデータを指定で

きます。

・ スカラ型ロボットで、かつ移動先の座標データに手系フラグが指定されている場合、指定さ

れた手系を現在のアームタイプや LEFTY・RIGHTY の指定よりも優先します。

SAMPLE

MOVEI P,P1 ・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置に対して P1で指定される移

動量が加算された位置へ PTP移動

c 注意

・・手系フラグが設定されているポイントに直線補間で移動する場合、現在位置での手系と指定したポイントの手系が同じになるようにしてください。現在位置での手系と指定したポイントの手系が異なる場合、エラーとなり動作できません。

MEMO

c 注意

・・直線補間で移動する場合、現在位置での第 1・第 2 アーム回転数情報と指定したポイント位置での第 1・第 2アーム回転数情報が同じになるようにしてください。これらが異なる場合、エラーとなり動作できません。

8-114 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

63 MOVEI

オプションの種類

● 速度指定1  PTP   直線補間  

形式

1. SPEED = 式 2. S = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  プログラム移動速度を 式 で指定します。

実際の速度は、以下のようになります。

・ロボットの最高速度(mm/ 秒)×自動移動速度(%)×プログラム移動速度(%)

指定された MOVEI 文に対してのみ有効です。

SAMPLE

MOVEI P,P10,S=10 ・・・・・・・ ロボット 1を現在位置に対して P10で指定される

移動量が加算された位置へ、プログラム移動速度

10%で PTP移動

● 速度指定2  PTP   直線補間  

形式

1. DSPEED = 式2. DS = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0.01 〜 100.00(単位:%)

 意味  ロボットの移動速度を 式 で指定します。

実際の速度は以下のようになります。

・ロボットの最高速度(mm/ 秒または度 / 秒)×移動速度(%)

指定された MOVEI 文に対してのみ有効です。

・ 自動移動速度の値(%)に影響されず常にDSPEED の 式 の値(%)で移動します。

SAMPLE

MOVEI P,P10,DS=0.1 ・・・・・・・・ ロボット 1を現在位置に対して P10で指定される

移動量が加算された位置へ、ロボット 1の最高速度

の 0.1%で PTP移動

n 要点

・・最高速を規定するもので、指定した速度での移動を保証するものではありません。

n 要点

・・SPEED オ プ シ ョ ン とDSPEED オプションは併用できません。

MOVEI ● 8-115

8

A

B

C

D

E

F

G

H

I

J

K

L

M

63 MOVEI

● 速度指定 3  PTP   直線補間  

形式

VEL = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜機種ごとの最高速度(単位:mm/ 秒)

 意味  ロボットの XYZ 軸の合成最高速度を mm/ 秒単位の 式 で指定します。このオプ

ションは、移動の種類が直線補間移動の場合、指定が可能です。

指定された MOVEI 文に対してのみ有効です。

SAMPLE

MOVEI L,P10,VEL=100 ・・・・・・ ロボット 1を現在位置に対して P10で指定される

移動量が加算された位置へ、XYZ軸の合成最高速

度 100mm/秒で直線補間移動

● STOPON 条件指定  PTP   直線補間  

形式

STOPON 条件式

 意味  移動中に条件式が成立した場合、移動を停止します。このときの停止動作は、減

速停止なので、条件成立後に減速移動距離が発生します。

移動開始時に条件式が成立している場合、移動せずに命令を終了します。

プログラム実行のみ有効です。

SAMPLE

MOVEI P, P100, STOPON DI(20)=1 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置に対して P100で指定され

る移動量が加算された位置へ PTP移動。途中で

DI(20)=1の条件が成立したら、移動を減速停

止し、次のステップを実行する

・ STOPON 条件指定で仕様する条件式が数値を表す式である場合、式の値が 0 以外の時に「真」

となり、0 の時に「偽」となります。

n 要点

・・合成速度の最高速を規定するもので、指定した速度での移動を保証するものではありません。

c 注意

・・STOPON 条件指定を付加すると CONT 指定が無効になります。

MEMO

8-116 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

63 MOVEI

● CONT 指定  PTP   直線補間  

形式

CONT

 意味  CONT 指定の移動を実行した場合、移動対象軸の動作完了 ( 公差範囲内に到着 )

を待たずに、次の命令を開始します。次の命令が移動命令の場合、2 つの移動経

路が減速と加速部分を接続することで連結され、途中で停止することなく移動が

継続されます。

指定された MOVEI 文に対してのみ有効です。

● MOVEIL 命令での CONT指定使用時の注意点

CONT 指定ありの MOVEI L 命令の次の命令が信号出力命令などの実行可能な命令の場合、

移動開始直後から実行を開始します。つまり、目標位置の公差範囲以内に軸が到着する前に

次の命令を開始することになります。

例:

信号出力(DO など) 最後の経路の移動開始直後に、信号が出力されます。

DELAY最後の経路の移動開始直後に、DELAY 命令が実行され、時間の待ちが始まります。

HALT最後の経路の移動開始直後に、プログラムが停止し、かつリセットされます。そのため、移動が停止します。

HALTALL最後の経路の移動開始直後に、実行中のプログラムが全て停止し、タスク 1 はリセット、その他のタスクは終了します。そのため、移動が停止します。

HOLD最後の経路の移動開始直後に、プログラムを一時停止します。そのため、移動が停止します。

HOLDALL最後の経路の移動開始直後に、実行中のプログラムが全て一時停止します。そのため、移動が停止します。

WAIT 最後の経路の移動開始直後に、WAIT 命令が実行されます。

P1

P1

MOVEI命令

DO(20)をオン

MOVEI L,P1DO(20)=1

DO(20)をオン

MOVEI L,P1, CONTDO(20)=1

公差

最終目標位置

HOLD実行(プログラム一時停止)

MOVEI L,P1HOLD

HOLD実行(プログラム一時停止)

MOVEI L,P1, CONTHOLD

公差

最終目標位置

31814-R9-00

c 注意

・・RCX340 では補間移動コマンドの動作および終了条件が従来機種 (RCX240 など )と異なります。移動コマンドに CONT 指定を付加することにより、従来機種と同等の動作および終了条件にすることが可能です。

n 要点

・・CONT 指定することにより、移動開始時の位置決め時間を短縮することができます。

MOVEI ● 8-117

8

A

B

C

D

E

F

G

H

I

J

K

L

M

63 MOVEI

SAMPLE

MOVEI P, P10, P11, CONT ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置に対して P10で指定される

移動量が加算された位置へ移動し、移動軸が公差範

囲以内に軸到着することを待たずに P11で指定さ

れる移動量が加算された位置へ移動を開始

SAMPLE:MOVEI P CONT

P10

現在位置

P11

アウト有効位置範囲

アウト有効位置範囲に入ると

次の移動を開始する

P10

現在位置

P11

アウト有効位置範囲

公差範囲に入ってから次の

移動を開始する

公差範囲

� CONT指定あり

� CONT指定なし

31815-R9-00

SAMPLE

MOVEI L,P10,CONTMOVEI L,P11 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置に対して P10で指定される

移動量が加算された位置へ移動し、移動軸が公差範

囲以内に軸到着することを待たずに P11で指定さ

れる移動量が加算された位置へ直線移動し、公差範

囲内到着で動作終了

・ CONT 指定をした補間移動は、連続動作の場合、途中のポイントでの停止を行いません。MEMO

8-118 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

63 MOVEI

SAMPLE:MOVEI L CONT

P10

P11

動作の減速区間に入ると

次の移動を開始する

P10

P11

公差範囲に入ってから次の

移動を開始する

公差範囲

減速区間

� CONT指定あり

� CONT指定なし

31816-R9-00

● 加速度指定  PTP   直線補間  

形式

ACC = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  加速度系数パラメータによって決定されたロボットの加速度に対する比率を 式

で指定し、動作時の加速度を決定します。

指定された MOVEI 文に対してのみ有効です。

SAMPLE

MOVEI L, P100, ACC=10 ・・・ ロボット 1を現在位置から P100で指定された移

動量だけ加速度比率 10%で直線補間移動

MOVEI ● 8-119

8

A

B

C

D

E

F

G

H

I

J

K

L

M

63 MOVEI

● 減速度指定  PTP   直線補間  

形式

DEC = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  加速度系数パラメータによって決定されたロボットの加速度に対する比率を 式

で指定し、動作時の減速度を決定します(設定された加速度を 100% とし、それ

に対する比率です)。

指定された MOVEI 文に対してのみ有効です。

SAMPLE

MOVEI L, P100, DEC=20 ロボット 1を現在位置から P100で指定された移

動量だけ減速度比率 20%で直線補間移動

関連 MOVE, MOVET, DRIVE, DRIVEI, WAIT ARM

8-120 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

64 MOVETロボットの全軸をツール座標相対位置移動する

形式

MOVET[ロボット番号 ](軸番号、…) PTP , ポイント指定 , オプション , オプション…

P L

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6(複数指定可。省略した場合、全軸指定)

 意味  指定されたロボットのツール座標相対位置移動命令を実行します。

他のロボット軸や付加軸設定されている軸は、この移動命令では移動しません。

・移動種類 : PTP、直線補間

・ポイント指定 : 直接数値指定、ポイント定義指定

・オプション : 速度指定、STOPON 条件指定、CONT 指定、加速度指定、

減速度指定

オプション PTP 直線補間 備 考

速度指定 (SPEED/DSPEED) ○ ○ 指定 MOVET 文のみ有効

速度指定(VEL) × ○ 指定 MOVET 文のみ有効

STOPON 条件指定 ○ ○ プログラム実行のみ有効

CONT 指定 ○ ○ 指定 MOVET 文のみ有効

加速度指定 ○ ○ 指定 MOVET 文のみ有効

減速度指定 × ○ 指定 MOVET 文のみ有効

MOVET ● 8-121

8

A

B

C

D

E

F

G

H

I

J

K

L

M

64 MOVET

移動の種類

● PTP(PointtoPoint)移動

実行開始条件:全ての移動対象軸が動作を完了(公差範囲内に到着)している。

実行終了条件:全ての移動対象軸がアウト有効位置範囲内に到着した。

移動対象軸は、同時到着します。移動の軌跡については保証されません。

● MOVETP命令に続く次の命令の注意点

MOVET P命令の次の命令が信号出力命令などの実行可能な命令の場合、移動対象軸がアウ

ト有効位置範囲以内に入ると次の命令を開始します。つまり、目標位置の公差範囲以内に軸

が到着する前に次の命令を開始することになります。

例:

信号出力(DO など) アウト有効位置範囲以内に入ると、信号が出力されます。

DELAYアウト有効位置範囲以内に入ると、DELAY 命令が実行され、時間の待ちが始まります。

HALTアウト有効位置範囲以内に入ると、プログラムが停止し、かつリセットされます。そのため、移動が停止します。

HALTALLアウト有効位置範囲以内に入ると、実行中のプログラムが全て停止し、タスク 1 はリセット、その他のタスクは終了します。そのため、移動が停止します。

HOLDアウト有効位置範囲以内に入ると、プログラムを一時停止します。そのため、移動が停止します。

HOLDALLアウト有効位置範囲以内に入ると、実行中のプログラムが全て一時停止します。そのため、移動が停止します。

WAIT アウト有効位置範囲以内に入ると、WAIT 命令が実行されます。

公差範囲以内に軸が到着してから次の命令を実行する場合には、”WAIT ARM”文を使用しま

す。

・ アウト有効位置の値はパラメータにより設定されています。プログラム中からも OUTPOS

命令により値の変更が可能です。

P1

MOVET命令

DO(20)をオン

MOVET P,P1WAIT ARMDO(20)=1

DO(20)をオン

MOVET P,P1DO(20)=1

公差

目標位置

アウト有効位置

HOLD実行(プログラム一時停止)

MOVET P,P1WAIT ARMHOLD

MOVET P,P1HOLD

公差アウト有効位置

目標位置

HOLD実行(プログラム一時停止)

31817-R9-00

MEMO

8-122 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

64 MOVET

SAMPLE

MOVET P, P0 ・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置に対して P0で指定される移

動量がツール座標で加算された位置へ PTP移動

・ PTP 移動は、補間移動に比べて動作が速くなりますが、複数ポイントを連続して移動する場

合、そのつど位置決めを行い停止します。

● 直線補間移動

実行開始条件:全ての移動対象軸が動作完了 ( 公差範囲内に到着 ) している。

実行終了条件:全ての移動対象軸が動作を完了 ( 公差範囲内に到着 ) した。

移動対象軸は全軸同時到着となります。

・ R 軸指定のあるロボットでは、R 軸の移動距離によっては、R 軸の速度が高くなりすぎてエ

ラーとなる場合があります。

SAMPLE

MOVET L, P0, P1 ・・・・・・・・・・・・・・・・ ロボット 1を現在位置に対して P0, P1で指定さ

れる移動量がツール座標で加算された位置へ直線補

間移動

SAMPLE:MOVET L

P0

現在位置

P1

公差範囲

31818-R9-00

MEMO

MEMO

MOVET ● 8-123

8

A

B

C

D

E

F

G

H

I

J

K

L

M

64 MOVET

ポイント指定の種類

● 直接数値指定  PTP   直線補間  

形式

p1 p2 p3 p4 p5 p6 f f1 f2

 値  p1 〜 p6 ・・・・・・・・・・・・・・・・・・ スペースで区切られた各軸の座標値

f ・・・・・・・・・・・・・・・・・・・・・・・・・ 手系フラグ(スカラのみ)

f1 ・・・・・・・・・・・・・・・・・・・・・・・・ 第 1 アーム回転数情報(YK-TW シリーズのみ)

f2 ・・・・・・・・・・・・・・・・・・・・・・・・ 第 2 アーム回転数情報(YK-TW シリーズのみ)

 意味  直接座標値を指定します。このときの数値が、整数値の場合はパルス単位と判断

し、実数値の場合はミリ / 度単位と判断し、移動します。

直接数値指定では、スカラ型ロボット、かつ、座標値をミリ単位で指定する場合、

手系フラグを指定することができます。

スカラ型ロボットで、拡張設定の手系フラグを設定する場合は、fに 1 または 2

を指定します。1 および 2 以外の数値もしくは数値の指定がない場合は、手系フ

ラグの設定無し(0)として扱われます。  1: 右手系で指定位置へ移動するよう設定されていることを示します。

 2: 左手系で指定位置へ移動するよう設定されていることを示します。

直接数値指定では、YK-TW シリーズ、かつ、座標値をミリ単位で指定する場合、

第 1 アーム回転数情報および第 2 アーム回転数情報(*1)を指定することができ

ます。

YK-TW シリーズで、拡張指定の第 1・第 2 アーム回転数情報を指定する場合は、

f1 および f2 に、-1、0、1 のいずれかを指定します。-1、0、1 以外の数値または、

第 1 アーム回転数情報および第 2 アーム回転数情報が設定なしの場合は、0 とし

て扱われます。

0: アーム回転数情報が、0の位置へ移動するよう設定されていることを示します。

1: アーム回転数情報が、1の位置へ移動するよう設定されていることを示します。

-1: アーム回転数情報が、-1の位置へ移動するよう設定されていることを示します。

*1: 第 1・第 2 アーム回転数情報の詳細は、4 章「3 ポイントデータの形式」を参

照してください。

・ スカラ型ロボットで、かつ移動先の座標データに手系フラグが指定されている場合、指定さ

れた手系を現在のアームタイプや LEFTY・RIGHTY の指定よりも優先します。

SAMPLE

MOVET P, 10.000 10.000 10.000 10.000 0.000 0.000 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット1を現在位置に対して指定量(ミリ単位)

だけツール座標で加算された位置へ PTP移動

n 要点

・・単位指定が混在している場合(整数と実数の両方がある場合)、全ての値がミリ / 度単位として扱われます。

c 注意

・・手系フラグを指定して直線補間を行う場合、現在位置での手系と指定移動先での手系が同じになるようにしてください。手系が異なる場合、エラーとなり動作できません。

・・直線補間を行う場合、現在位置での第 1・第 2 アーム回転数情報と指定移動先での第 1・第 2 アーム回転数情報が同じになるようにしてください。これらが異なる場合、エラーとなり動作できません。

MEMO

8-124 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

64 MOVET

● ポイント定義指定  PTP   直線補間  

形式

ポイント式 ,ポイント式 ...

 意味  ポイント式 を指定します。カンマ(,)で区切ることにより複数のデータを指定で

きます。

・ スカラ型ロボットで、かつ移動先の座標データに手系フラグが指定されている場合、指定さ

れた手系を現在のアームタイプや LEFTY・RIGHTY の指定よりも優先します。

SAMPLE

MOVET P, P1 ・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置に対して P1で指定される移

動量がツール座標で加算された位置へ PTP移動

c 注意

・・手系フラグが設定されているポイントに直線補間で移動する場合、現在位置での手系と指定したポイントの手系が同じになるようにしてください。現在位置での手系と指定したポイントの手系が異なる場合、エラーとなり動作できません。

MEMO

c 注意

・・直線補間で移動する場合、現在位置での第 1・第 2 アーム回転数情報と指定したポイント位置での第 1・第 2アーム回転数情報が同じになるようにしてください。これらが異なる場合、エラーとなり動作できません。

MOVET ● 8-125

8

A

B

C

D

E

F

G

H

I

J

K

L

M

64 MOVET

オプションの種類

● 速度指定1  PTP   直線補間  

形式

1. SPEED = 式2. S = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  プログラム移動速度を 式 で指定します。

実際の速度は、以下のようになります。

・ロボットの最高速度(mm/ 秒)×自動移動速度(%)×プログラム移動速度(%)

指定された MOVET 文に対してのみ有効です。

SAMPLE

MOVET P, P10, S=10 ・・・・ ロボット 1を現在位置に対して P10で指定される

移動量がツール座標で加算された位置へプログラム

移動速度の 10%で PTP移動

● 速度指定2  PTP   直線補間  

形式

1. DSPEED = 式2. DS = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0.01 〜 100.00(単位:%)

 意味  ロボットの移動速度を 式 で指定します。

実際の速度は以下のようになります。

・ロボットの最高速度(mm/ 秒または度 / 秒)×移動速度(%)

指定された MOVET 文に対してのみ有効です。

・ 自動移動速度の値(%)に影響されず常にDSPEED の 式 の値(%)で移動します。

SAMPLE

MOVET P,P10,DS=0.1 ・・・・ ロボット 1を現在位置に対して P10で指定される

移動量がツール座標で加算された位置へロボットの

最高速度の 0.1%で PTP移動

n 要点

・・最高速を規定するもので、指定した速度での移動を保証するものではありません。

n 要点

・・SPEED オプションと DSPEED オプションは併用できません。

8-126 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

64 MOVET

● 速度指定 3  PTP   直線補間  

形式

VEL = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜機種ごとの最高速度(単位:mm/ 秒)

 意味  ロボットの XYZ 軸の合成最高速度を mm/ 秒単位の 式 で指定します。このオプ

ションは、移動の種類が直線補間移動の場合、指定が可能です。

指定された MOVET 文に対してのみ有効です。

SAMPLE

MOVET L,P10,VEL=100 ロボット 1を現在位置に対して P10で指定される

移動量がツール座標で加算された位置へ、XYZ軸

の合成最高速度 100mm/秒で直線補間移動

● STOPON 条件指定  PTP   直線補間  

形式

STOPON 条件式

 意味  移動中に条件式が成立した場合、移動を停止します。このときの停止動作は、減

速停止なので、条件成立後に減速移動距離が発生します。

移動開始時に条件式が成立している場合、移動せずに命令を終了します。

プログラム実行のみ有効です。

SAMPLE

MOVET P, P100, STOPON DI(20)=1 ロボット 1を現在位置に対して P100で指定され

る移動量がツール座標で加算された位置へ PTP移

動。途中で DI(20)=1の条件が成立したら、移

動を減速停止し、次のステップを実行する

・ STOPON 条件指定で仕様する条件式が数値を表す式である場合、式の値が 0 以外の時に「真」

となり、0 の時に「偽」となります。

n 要点

・・合成速度の最高速を規定するもので、指定した速度での移動を保証するものではありません。

c 注意

・・STOPON 条件指定を付加すると CONT 指定が無効になります。

MEMO

MOVET ● 8-127

8

A

B

C

D

E

F

G

H

I

J

K

L

M

64 MOVET

● CONT 指定  PTP   直線補間  

形式

CONT

 意味  CONT 指定の移動を実行した場合、移動対象軸の動作完了 ( 公差範囲内に到着 )

を待たずに、次の命令を開始します。次の命令が移動命令の場合、2 つの移動経

路が減速と加速部分を接続することで連結され、途中で停止することなく移動が

継続されます。

指定された MOVET 文に対してのみ有効です。

● MOVETL 命令での CONT指定使用時の注意点

CONT 指定ありの MOVET L 命令の次の命令が信号出力命令などの実行可能な命令の場合、

移動開始直後から実行を開始します。つまり、目標位置の公差範囲以内に軸が到着する前に

次の命令を開始することになります。

例:

信号出力(DO など) 最後の経路の移動開始直後に、信号が出力されます。

DELAY最後の経路の移動開始直後に、DELAY 命令が実行され、時間の待ちが始まります。

HALT最後の経路の移動開始直後に、プログラムが停止し、かつリセットされます。そのため、移動が停止します。

HALTALL最後の経路の移動開始直後に、実行中のプログラムが全て停止し、タスク 1 はリセット、その他のタスクは終了します。そのため、移動が停止します。

HOLD最後の経路の移動開始直後に、プログラムを一時停止します。そのため、移動が停止します。

HOLDALL最後の経路の移動開始直後に、実行中のプログラムが全て一時停止します。そのため、移動が停止します。

WAIT 最後の経路の移動開始直後に、WAIT 命令が実行されます。

P1

P1

MOVET命令

DO(20)をオン

MOVET L,P1DO(20)=1

DO(20)をオン

MOVET L,P1, CONTDO(20)=1

公差

最終目標位置

HOLD実行(プログラム一時停止)

MOVET L,P1HOLD

HOLD実行(プログラム一時停止)

MOVET L,P1, CONTHOLD

公差

最終目標位置

31819-R9-00

n 要点

・・CONT 指定することにより、移動開始時の位置決め時間を短縮することができます。

8-128 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

64 MOVET

SAMPLE

MOVET P, P10, P11, CONT ・・・・・・・・・・ ロボット 1を現在位置に対して P10で指定される

移動量がツール座標で加算された位置へ移動し、移

動軸が公差範囲以内に軸到着することを待たずに

P11で指定される移動量がツール座標で加算され

た位置へ移動を開始

SAMPLE:MOVET P CONT

P10

現在位置

P11

アウト有効位置範囲

アウト有効位置範囲に入ると

次の移動を開始する

P10

現在位置

P11

アウト有効位置範囲

公差範囲に入ってから次の

移動を開始する

公差範囲

� CONT指定あり

� CONT指定なし

31820-R9-00

SAMPLE

MOVET L,P10,CONTMOVET L,P11 ・・・・・・・・・・ ロボット 1を現在位置に対して P10で指定される

移動量がツール座標で加算された位置へ移動し、移

動軸が公差範囲以内に軸到着することを待たずに

P11で指定される移動量がツール座標で加算された

位置へ直線補間移動し、公差範囲内到着で動作終了

・ CONT 指定をした補間移動は、連続動作の場合、途中のポイントでの停止を行いません。MEMO

MOVET ● 8-129

8

A

B

C

D

E

F

G

H

I

J

K

L

M

64 MOVET

SAMPLE:MOVET L CONT

P10

P11

動作の減速区間に入ると

次の移動を開始する

P10

P11

公差範囲に入ってから次の

移動を開始する

公差範囲

減速区間

� CONT指定あり

� CONT指定なし

31821-R9-00

● 加速度指定  PTP   直線補間  

形式

ACC = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  加速度系数パラメータによって決定されたロボットの加速度に対する比率を 式

で指定し、動作時の加速度を決定します。

指定された MOVET 文に対してのみ有効です。

SAMPLE

MOVET L, P100, ACC=10 ・・・ ロボット 1を現在位置に対して P100で指定され

る移動量がツール座標で加算した位置へ加速度比率

10%で直線補間移動

8-130 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8-130 ● 第 8章 ロボット言語一覧

8

A

B

C

D

E

F

G

H

I

J

K

L

M

64 MOVET

● 減速度指定  PTP   直線補間  

形式

DEC = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  加速度系数パラメータによって決定されたロボットの加速度に対する比率を 式

で指定し、動作時の減速度を決定します(設定された加速度を 100% とし、それ

に対する比率です)。

指定された MOVET 文に対してのみ有効です。

SAMPLE

MOVET L, P100, DEC=20 ・・・ ロボット 1を現在位置に対して P100で指定され

た移動量がツール座標で加算された位置へ減速度比

率 20%で直線補間移動

関連 MOVE, MOVEI, DRIVE, DRIVEI, WAIT ARM

MTRDUTY ● 8-131

8

A

B

C

D

E

F

G

H

I

J

K

L

M

65 MTRDUTY指定された軸のモータ負荷率を取得

形式

MTRDUTY [ロボット番号 ] (軸番号 )

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボットの 軸番号 で指定した軸のモータ負荷率(0 〜

100)を取得します。

SAMPLE

A=MTRDUTY(1) ・・・・・・・・・・・・・・・・・・・・・ ロボット 1の第 1軸のモータ負荷率を変数 Aに代入

8-132 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

66 OFFLINE通信ポートをオフラインモードに設定する

形式

OFFLINE ETH CMU

 意味  指定したポートの通信モードのパラメータを変更して、通信モードをオフラインに

します。

ETH ・・・・・・・・・・・・・・・・・・ Ethernet の通信モードのパラメータをオフラインに変

更し、送受信バッファをクリアします。

CMU ・・・・・・・・・・・・・・・・・・ RS-232C の通信モードのパラメータをオフラインに変

更し、通信エラーの解除と送受信バッファをクリアし

ます。

指定なし ・・・・・・・・・・・・・・ Ethernet、及び RS-232C の通信モードのパラメータを

オフラインに変更し、通信エラーの解除(RS232C のみ)

と送受信バッファをクリアします。

SAMPLE

OFFLINE SEND CMU TO A$ SEND CMU TO P10 ONLINE HALT

ON・ERROR・GOTO ● 8-133

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

67 ON ERROR GOTOエラー発生時に指定したラベルにジャンプする・

形式

1. ON ERROR GOTO ラベル

2. ON ERROR GOTO 0

 値  エラー出力情報 ・・・・・・・・・・・・ ERR: エラーコード番号

ERL: エラー発生行番号

 意味  ロボット言語実行中に発生した場合、プログラムを停止しないで ラベル で指定され

たエラー処理ルーチンにジャンプし、プログラムが継続されます(ただし、重度のエ

ラーに関してはその限りではありません)。

ラベル の代わりに「0」を指定した場合、エラーメッセージを表示して、プログラム

を停止します。

エラー処理ルーチン以外で ON ERROR GOTO 0 を実行した場合、ON ERROR

GOTO 命令の解除(割り込み解除)となります。

エラー処理ルーチンの中では、エラー出力情報(ERR、ERL)と RESUME 文によっ

てエラー処理を行うことができます。

・ “17.800 : モータ過負荷”など、重度のエラーが発生した場合、実行は停止します。

・ ON ERROR GOTO ラベル は、最後に実行したものが有効となります。

・ エラー処理ルーチン内でエラーが発生した場合は、実行を停止します。

・ エラー処理ルーチン内で ON ERROR GOTO ラベル を使用することはできません。

SAMPLE

ON ERROR GOTO *ER1 FOR A = 0 TO 9 P[A+10] = P[A] NEXT A *L99: HALT ’ERROR ROUTINE *ER1: IF ERR = &H000600CC THEN *NEXT1 ・・・・・ “ポイントなし”のエラーが発生した

か確認

IF ERR = &H000600CE THEN *NEXT2 ・・・ “レンジオーバー”のエラーが発生し

たか確認

ON ERROR GOTO 0 ・・・・・・・・・・・・・・・・ エラーを表示し、実行を停止

*NEXT1: RESUME NEXT ・・・・・・・・・・・・・・・・・・ エラー発生行の次の行にジャンプし実行を継続 *NEXT2: RESUME *L99 ・・・・・・・・・・・・・・・・・・ ラベル *L99にジャンプし実行を継続

関連 RESUME

MEMO

8-134 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

68 ON〜 GOSUB式の値によって指定したサブルーチンを実行する・

形式

ON 式 GOSUB ラベル 1,ラベル 2... ※ GOSUBは GO SUBでも可

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 結果が 0 以上の整数になる式

 意味  式 の値がプログラムのジャンプ先を決定します。

式 の値が 1 の場合、1 番目の ラベル 1 へ、2 の場合、2 番目の ラベル 2 へジャンプ

します。

以下同様に 式 の値が n の場合、n 番目の ラベル n にジャンプします。

式 の値が 0 またはラベル数を超えている場合、ジャンプせずに次の命令を実行しま

す。

ジャンプ先のサブルーチンを実行後、ON 〜 GOSUB 文の次の命令を実行します。

SAMPLE

’MAIN ROUTINE *ST: ON DI3() GOSUB *SUB1,*SUB2,*SUB3 ・・・・ *SUB1〜 *SUB3を実行

GOTO *ST ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ * STに戻る

HALT ’SUB ROUTINE *SUB1: MOVE P,P10,Z=0 RETURN *SUB2: DO(30) = 1 RETURN *SUB3: DO(30) = 0 RETURN

関連 GOSUB, RETURN

ON〜 GOTO ● 8-135

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

69 ON〜 GOTO 式の値によって指定したラベルにジャンプする

形式

ON 式 GOTO ラベル 1 ,ラベル 2... ※ GOTOは GO TOでも可

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 結果が 0 以上の整数になる式

 意味  式 の値がプログラムのジャンプ先を決定します。

式 の値が 1 の場合、1 番目の ラベル 1 へ、2 の場合、2 番目の ラベル 2 へジャンプ

します。

以下同様に 式 の値が n の場合、n 番目の ラベル n にジャンプします。

式 の値が 0 またはラベル数を超えている場合、ジャンプせずに次の命令を実行しま

す。

SAMPLE

’MAIN ROUTINE *ST: ON DI3() GOTO *L1,*L2,*L3 ・・・・DI3()の値により* L1〜* L3にジャンプ

GOTO *ST ・・・・・・・・・・・・・・・・・・・・・・・・・・・・* STに戻る

HALT ’SUB ROUTINE *L1: MOVE P,P10,Z=0 GOTO *ST *L2: DO(30) = 1 GOTO *ST *L3: DO(30) = 0 GOTO *ST

関連 GOTO

8-136 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

70 ONLINE通信ポートをオンラインモードに設定する

形式

ONLINE ETH CMU

 意味  指定したポートの通信モードのパラメータを変更して、通信モードをオンラインに

します。

ETH ・・・・・・・・・・・・・・・・・・ Ethernet の通信モードのパラメータをオンラインに変

更し、送受信バッファをクリアします。

CMU ・・・・・・・・・・・・・・・・・・ RS-232C の通信モードのパラメータをオンラインに変

更し、通信エラーの解除と送受信バッファをクリアし

ます。

指定なし ・・・・・・・・・・・・・・ Ethernet、及び RS-232C の通信モードのパラメータを

オンラインに変更し、通信エラーの解除(RS232C のみ)

と送受信バッファをクリアします。

SAMPLE

OFFLINE SEND CMU TO A$ SEND CMU TO P10 ONLINE HALT

OPEN ● 8-137

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

71 OPEN指定された汎用イーサネットポートを開く

形式

OPEN GPm

 値  m:汎用イーサネットポート番号 ・・・・・・・・・・・ 0 〜 7

 意味  指定した汎用イーサネットポート番号の通信ポートを開きます。

SAMPLE

OPEN GP1 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 汎用イーサネットポート番号 1の通信ポートを開く

SEND “123” TO GP1 ・・・・・・・・・・・・・・ 汎用イーサネットポート番号 1から文字列 “123” を送信する

SEND GP1 TO A$ ・・・・・・・・・・・・・・・・・ 汎用イーサネットポート番号 1からデータを受信

し、受信したデータを変数 A$へ保存する

CLOSE GP1 ・・・・・・・・・・・・・・・・・・・・・・・・・ 汎用イーサネットポート番号 1の通信ポートを閉じる

関連 CLOSE, SEND, SETGEP, GEPSTS

8-138 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

72 ORDキャラクタコードを求める

形式

ORD(文字列式)

 意味  文字列式 の最初の文字のキャラクタコードを求めます。

SAMPLE

A=ORD(“B”) ・・・・・・・・・・・・・・・・・・・・・・・ Aに 66(=&H42)を代入

関連 CHR$

ORGORD ● 8-139

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

73 ORGORDロボットの原点復帰順序を設定/取得する

形式

ORGORD [ロボット番号] 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

式 ・・・・・・・・・・・・・・・・・・・・・・・・ n 〜 nnnnnn(n:0 〜 6)

 意味  ロボット番号 で指定されたロボットの原点復帰動作およびアブソサーチ動作を行う

軸順序パラメータを設定します。

指定の際は第 1 軸〜第 6 軸をそれぞれ 1 〜 6 で表し、1 桁〜 6 桁までの整数で指定

します。

同じ軸を重複して指定することはできません。

原点復帰は、指定された軸の原点復帰を左から右へ順番に行った後、残りの軸を全

て同時に原点復帰します。

0 の場合は全ての軸が同時に原点復帰します。

関数

形式

ORGORD [ロボット番号]

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  ロボット番号 で指定されたロボットの原点復帰動作およびアブソサーチ動作を行う

軸順序パラメータを取得します。

SAMPLE

A=3ORGORD A ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の第 3軸を先に原点復帰するよう指定

ORIGIN 1 ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の第 3軸の原点復帰動作完了後、残り

の軸の同時原点復帰動作を実行

MOVE P,P0A=ORGORD ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の原点復帰順序パラメータを変数 Aに

代入

HALT

関連 ORIGIN

8-140 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

74 ORIGIN原点復帰をする

形式

ORIGIN ロボット番号 , モータタイプ

 値  ロボット番号・・・・・・・・・・・・・

モータタイプ・・・・・・・・・・・・・

0:全ロボット、1 〜 4:指定ロボットのみ実行

0:全タイプ、1:インクリモータのみ、

2:アブソモータのみ、9:原点復帰未了軸のみ

(省略した場合、全タイプ指定)

 意味  ロボットの原点復帰動作を実行します。セミアブソ仕様の軸に対しては、アブソサー

チ動作を実行します。

途中停止をすると、原点復帰未了となります。

複数台ロボット設定時にロボット番号を省略、または 0 を指定した場合、ロボット 1

の原点復帰動作終了後、ロボット 2 〜 4 の原点復帰動作を順に行います。

SAMPLE

ORIGIN 0,1 ・・・・・・・・・・・・・・・・・・・・・・ 全ロボットのインクリモータ軸のみ原点復帰

関連 ORGORD, MCHREF

OUT ● 8-141

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

75 OUT指定されたポートの出力をオンする

形式

OUT DOm(b,・・・,b ) ,式

DO(mb,・・・,mb) MOm(b,・・・,b ) MO(mb,・・・,mb) SOm(b,・・・,b ) SO(mb,・・・,mb) LO0(b,・・・,b ) LO(0b,・・・,0b) TO0(b,・・・,b ) TO(0b,・・・,0b)

 値  m:ポート番号 ・・・・・・・・・・・

b:ビット指定 ・・・・・・・・・・・

式・・・・・・・・・・・・・・・・・・・・・・・

2 〜 7, 10 〜 17, 20 〜 27

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に

記述。

0 〜 3600000(単位:ms)

 意味  指定されたポートの出力をオンして命令文を終了します(プログラムの次の行へ進み

ます)。その後、 式 で指定された時間経過した後、そのポートの出力をオフします。

途中で一時停止した場合は、再起動後、 式 で指定された時間の残り時間経過したと

ころで、そのポートの出力をオフします。

式 を省略した場合は、指定したポートの出力はオンのままとなります。

式 を指定した OUT 文は、同時に 16 個まで実行できます。17 個以上実行しようとす

ると、“6.225:OUT 用メモリ不足”のエラーが発生します。

ハード的に存在しないポートを指定した場合、何も出力されません。

SAMPLE

OUT DO2(),200 ・・・・・・・・・・・・・・・・・ DO(27〜 20)がオンし、200ms後にオフする OUT DO(37,35,27,20) ・・・・・・・・・ DO(37,35,27,20)がオンする

関連 DO, MO, SO, TO, LO

c 注意

・・DO, SO ともに、ポート 0および 1 への出力はできません。

参照参照

・・ビット指定については、 3 章「10 ビット指定」を参照してください。

8-142 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8-142 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

76 OUTPOSロボットのアウト有効位置のパラメータを設定/取得する

形式

1. OUTPOS [ロボット番号] 式2. OUTPOS [ロボット番号] (軸番号)= 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 9999999(単位:パルス)

 意味  ロボット番号 で指定されたロボット軸のパラメータのアウト有効位置を 式 の値に変

更します。

形式 1 は、指定ロボットに設定された全軸を変更します。

形式 2 は、 軸番号 で指定される軸のみを変更します。

関数

形式

OUTPOS [ロボット番号] (軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボット軸のうち 式 で指定される軸のアウト有効位置パ

ラメータの値を取得します。

OUTPOS ● 8-143

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

76 OUTPOS

SAMPLE

’CYCLE WITH DECREASING OUTPOS DIM SAV(3) GOSUB *SAVE_OUTPOS FOR A=1000 TO 10000 STEP 1000 GOSUB *CHANGE_OUTPOS MOVE P,P0 DO3(0)=1 MOVE P,P1 DO3(0)=0 NEXT A GOSUB *RESTORE_OUTPOS HALT *CHANGE_OUTPOS: FOR B=1 TO 4 OUTPOS(B)=A NEXT B RETURN *SAVE_OUTPOS: FOR B=1 TO 4 SAV(B-1)=OUTPOS(B) NEXT B RETURN *RESTORE_OUTPOS: FOR B=1 TO 4 OUTPOS(B)=SAV(B-1) NEXT B RETURN

8-144 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

77 PATHPATH 移動経路を設定する

形式

PATH [ロボット番号](軸番号、...)  L ,ポイント指定 ,オプション ,オプション ... C

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6(複数指定可。省略した場合、全軸指定)

 意味  指定されたロボットに設定された軸の PATH 移動経路を設定します。PATH SET 命

令と PATH END 命令の間でのみ実行が可能です。

上記区間以外で実行した場合エラーとなります。

・移動の種類 : 直線補間、円弧補間

・ポイント指定 : 直接数値指定、ポイント定義指定

・オプション : 速度指定、座標平面指定(円弧補間のみ)、ポート出力指定

PATH 移動の種類

● 直線補間移動

“PATH L...”で直線補間移動を設定します。

● 円弧補間移動

“PATH C...”で円弧補間移動を設定します。

PATH 移動では、指定したポイントの X、Y、Z 座標の値のみが有効で、それ以外の座標は

PATH 移動経路の始点の座標値を使用します。

PATH 命令(“PATH L”、“PATH C”)を繰り返すことで、移動経路を接続し、停止することな

く移動することができます。

c 注意

・・座標属性パラメータが『R』の軸のみを指定した場合、エラーとなります。

PATH ● 8-145

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

77 PATH

ポイント指定の種類

● 直接数値指定  直線補間   円弧補間  

形式

p1 p2 p3 p4 p5 p6 f f1 f2

 値  p1 〜 p6 ・・・・・・・・・・・・・・・・・・ 各軸の座標値(スペースで区切る)

f ・・・・・・・・・・・・・・・・・・・・・・・・・ 手系フラグ(スカラのみ)

f1 ・・・・・・・・・・・・・・・・・・・・・・・・ 第 1 アーム回転数情報(YK-TW シリーズのみ)

f2 ・・・・・・・・・・・・・・・・・・・・・・・・ 第 2 アーム回転数情報(YK-TW シリーズのみ)

 意味  直接座標値を指定します。このときの数値が整数値の場合はパルス単位と判断

し、実数値(小数点あり)の場合はミリ単位と判断します。整数と実数が混在す

る場合は、すべての座標値をミリ単位として扱います。

この形式で指定できる移動先座標は 1 点です。また、このポイント指定ができ

る移動の種類は直線補間移動のみです。

直接数値指定では、スカラ型ロボット、かつ座標値をミリ単位で指定する場合、

手系フラグを指定することができます。

スカラ型ロボットで、拡張設定の手系フラグを設定する場合は、f に 1 または 2

を指定します。1 および 2 以外の数値もしくは数値指定がない場合は、手系フラ

グの設定無し(0)として扱われます。

 1: 右手系で指定位置へ移動するよう設定されていることを示します。

 2: 左手系で指定位置へ移動するよう設定されていることを示します。

直接数値指定では、YK-TW シリーズ、かつ、座標値をミリ単位で指定する場合、

第 1 アーム回転数情報および第 2 アーム回転数情報(*1)を指定することができ

ます。

YK-TW シリーズで、拡張指定の第 1・第 2 アーム回転数情報を指定する場合は、

f1 および f2 に、-1、0、1 のいずれかを指定します。-1、0、1 以外の数値または、

第 1 アーム回転数情報および第 2 アーム回転数情報が設定なしの場合は、0 とし

て扱われます。

0: アーム回転数情報が、0の位置へ移動するよう設定されていることを示します。

1: アーム回転数情報が、1の位置へ移動するよう設定されていることを示します。

-1: アーム回転数情報が、-1の位置へ移動するよう設定されていることを示します。

*1: 第 1・第 2 アーム回転数情報の詳細は、4 章「3 ポイントデータの形式」を参

照してください。

なお、移動経路の始点から終点までの間、手系は常に同じでなくてはなりません。

途中での手系変更はできません。

また、移動経路の始点から終点までの間、第 1 アーム回転数情報および 第 2 アー

ム回転数情報は常に同じでなくてはなりません。途中で、第 1 アーム回転数情

報および 第 2 アーム回転数情報を変更できません。

c 注意

・・PATH 移 動 中 の 手 系 は、PATH 移動経路の始点での手系と同じになるようにしてください。また、手系フラグを指定して移動する場合も、PATH 移動経路の始点と指定移動先の手系が同じになるようにしてください。手系が異なる場合、エラーとなり動作できません。

・・PATH 移動中の第 1・第 2アーム回転数情報は、PATH 移動経路の始点での第 1・第 2アーム回転数情報と同じになるようにしてください。これらが異なる場合、エラーとなり動作できません。

8-146 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

77 PATH

・ スカラ型ロボットで、かつ移動先の座標データに手系フラグが指定されている場合、指定さ

れた手系を現在のアームタイプや LEFTY・RIGHTY の指定よりも優先します。

SAMPLE

PATH L,10000 10000 1000 1000 0 0 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の移動経路上の点をパルス単位で設定し

て直線補間移動するよう設定

PATH L,150.000 250.000 10.000 30.000 0.000 0.000 1 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の移動経路上の点をミリ単位(右手系指

定)で設定して直線補間移動するよう設定

● ポイント定義指定  直線補間   円弧補間  

形式

ポイント式 , ポイント式 ...

 意味  ポイント式 で移動先ポイントを指定します。カンマ(,)で区切ることにより複数

個のポイントを指定できます。

移動の種類が円弧補間の場合は、円弧 1 つにつきポイントを 2 つ指定する必要

があります。

・ スカラ型ロボットで、かつ移動先の座標データに手系フラグが指定されている場合、指定さ

れた手系を現在のアームタイプや LEFTY・RIGHTY の指定よりも優先します。

SAMPLE

PATH L,P1,P2,P3 ・・・・・・・・・・・・ ロボット 1を現在位置から P1、P2、P3で指定さ

れた位置へ順番に直線補間移動するよう設定 PATH C,P5,P6,P7,P8 ・・・・・・・・ ロボット 1を現在位置から現在位置、P5、P6と

P6、P7、P8で構成する円弧補間移動するよう設定

MEMO

c 注意

・・PATH 移 動 中 の 手 系 は、PATH 移動経路の始点での手系と同じになるようにしてください。また、手系フラグを指定して移動する場合も、PATH 移動経路の始点と指定移動先の手系が同じになるようにしてください。手系が異なる場合、エラーとなり動作できません。

MEMO

c 注意

・・PATH移動中の第1・第2アーム回転数情報は、PATH 移動経路の始点での第 1・第 2アーム回転数情報と同じになるようにしてください。これらが異なる場合、エラーとなり動作できません。

PATH ● 8-147

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

77 PATH

オプションの種類

● 速度指定  直線補間   円弧補間  

形式

1. SPEED = 式 2. S = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  プログラム移動速度を 式 (単位:%)で指定します。

実際の速度は、以下のようになります。

・ロボットの最高速度(mm/ 秒)×自動移動速度(%)×プログラム移動速度(%)

指定された PATH 文に対してのみ有効です。

SAMPLE

PATH L,P5,S=40 ・・・・・・・・・・・・・・ ロボット 1を現在位置から P5で指定された位置へ

プログラム移動速度 40%で直線補間移動するよう

設定

● 速度指定  直線補間   円弧補間  

形式

VEL = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 指定可能な値の範囲はロボットにより異なる(単

位:mm/ 秒)

 意味  移動速度を 式 (単位:mm/ 秒)で指定します。指定した速度が高すぎる場合、エ

ラーとなります。

指定された PATH 文に対してのみ有効です。

SAMPLE

PATH L,P10,VEL=150 ・・・・・・・・ ロボット 1を現在位置から P10で指定された位置

へ 150mm/秒の速度で直線補間移動するよう設定

n 要点

・・最高速を規定するもので、指定した速度での移動を保証するものではありません。

n 要点

・・合成速度の最高速を規定するもので、指定した速度での移動を保証するものではありません。

8-148 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

77 PATH

● 座標平面指定  直線補間   円弧補間  

形式

 XY YZ  ZX

 値  XY ・・・・・・・・・・・・・・・・・・・・・・・ XY 座標平面

YZ ・・・・・・・・・・・・・・・・・・・・・・・ YZ 座標平面

ZX ・・・・・・・・・・・・・・・・・・・・・・・ ZX 座標平面

 意味  円弧補間移動において、円弧を描く座標平面を指定します。座標平面を指定しな

い場合は、3 次元の円弧補間移動を行います。

この指定ができる移動の種類は、円弧補間のみです。

指定された PATH 文に対してのみ有効です。

SAMPLE

PATH C,P1,P2,XY ・・・・・・・・・・・・ ロボット 1を現在位置から XY平面内で円弧補間

による移動を行い、Z軸は P2の Z軸座標の位置

へ円弧補間移動するよう設定

PATH ● 8-149

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

77 PATH

● ポート出力指定  直線補間   円弧補間  

形式 1

 DO m( b,・・・,b )= 式 1 @ 式 2 MO  SO

形式 2

 DO (mb,・・・,mb)= 式 1 @ 式 2 MO  SO

 値  m:ポート番号 ・・・・・・・・・

b:ビット指定 ・・・・・・・・・

式 1 ・・・・・・・・・・・・・・・・・・・

式 2 ・・・・・・・・・・・・・・・・・・・

2 〜 7, 10 〜 17, 20 〜 27

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)

に記述。

指定ポートに出力する値で、整数部のみ有効。

ポート出力を行う位置。mm 単位で小数点以下 3 桁

まで指定可能。

 意味  PATH 移動中、開始位置から 式 2 で指定された距離だけ離れるタイミングで指

定した出力ポートに 式 1 の値を出力します。

式 2 で指定した数値は移動開始点を中心とした円の半径となります(円弧の長さ

ではありません)。

ハード的に存在しないポートを指定した場合、何も出力されません。

SAMPLE

PATH SET PATH L,P1,DO(20)=1@10 ロボット 1を現在位置から P1へ直線補間で移動

中、開始位置から半径 10mmの位置で DO(20)に 1を出力するよう設定

PATH L,P2,DO(21)[email protected] ・・・ ロボット 1を現在位置から P2へ直線補間で移動

中、P1から半径 12.5mmの位置で DO(21)に 1を出力するよう設定

PATH END PATH START

関連 PATH SET, PATH END, PATH START

 参照  PATH 機能については、9 章「PATH 文」を参照してください。

c 注意

・・DO, MO, SO ともに、ポート 0 および 1 への出力はできません。

参照参照

・・ビット指定については、 3 章「10 ビット指定」を参照してください。

8-150 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

78 PATH ENDPATH の経路設定を終了する

形式

PATH [ロボット番号] END

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  指定されたロボット PATH 移動の経路設定を終了します。

PATH END 命令は、必ず PATH SET 命令とペアで使用します。

PATH SET 命令から PATH END 命令までの間で、最後に実行した PATH 命令(“PATH

L”、“PATH C”)の最終ポイントが PATH 移動経路の終点となります。

PATH SET 命令を実行せずに PATH END 命令を実行するとエラーとなります。

SAMPLE

PATH END ・・・・・・・・・・・・・・・・・・・・・・ロボット 1の PATH移動経路の設定を終了する

関連 PATH, PATH SET, PATH START

 参照  PATH 機能については、9 章「PATH 文」を参照してください。

PATH・SET ● 8-151

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

79 PATH SETPATH の経路設定を開始する

形式

PATH [ロボット番号] SET ポイント指定

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  指定されたロボットの PATH 移動の経路設定を開始します。

移動経路の始点を ポイント指定 で指定した位置に設定します(移動経路の始点を設

定するのみで、ロボットが実際に動作する訳ではありません。) ポイント指定 を省略

した場合は、ロボットの現在位置が始点として設定されます。

ただし、ロボットが移動中の場合は、その移動の目標位置が始点になります。

(例:PATH SET 命令の前にある MOVE 命令でのアウト有効位置範囲が広く、PATH

SET 命令実行時にロボットがまだ移動している場合など。)

PATH SET 命令は、必ず PATH END 命令とペアで使用します。

PATH SET 命令を実行すると、以前に設定した PATH 移動経路の情報は失われます。

・ポイント指定 : 直接数値指定、ポイント定義指定

ポイント指定の種類

● 直接数値指定

形式

p1 p2 p3 p4 p5 p6 f f1 f2

 値  p1 〜 p6 ・・・・・・・・・・・・・・・・・・ スペースで区切られた各軸の座標値

f ・・・・・・・・・・・・・・・・・・・・・・・・・ 手系フラグ(スカラのみ)

f1 ・・・・・・・・・・・・・・・・・・・・・・・・ 第 1 アーム回転数情報(YK-TW シリーズのみ)

f2 ・・・・・・・・・・・・・・・・・・・・・・・・ 第 2 アーム回転数情報(YK-TW シリーズのみ)

 意味  PATH 移動の経路の始点座標値を直接指定します。このときの数値が整数値の場

合はパルス単位と判断し、実数値の場合はミリ単位(小数点以下 3 桁まで有効)

と判断します。

直接数値指定では、スカラ型ロボット、かつ座標値をミリ単位で指定する場合、

手系フラグを指定することができます。

スカラ型ロボットで、拡張設定の手系フラグを設定する場合は、f に 1 または 2

を指定します。1 および 2 以外の数値もしくは数値指定がない場合は、手系フラ

グの設定無し(0)として扱われます。

 1: PATH 移動経路の始点の手系が右手系に設定されていることを示します。

 2: PATH 移動経路の始点の手系が左手系に設定されていることを示します。

n 要点

・・PATH SET 文は、ソフトバージョン Ver.1.11 以上で有効です。

n 要点

・・単位指定が混在している場合(整数と実数の両方がある場合)、全ての値がミリ / 度単位として扱われます。

c 注意

・・PATH 移 動 中 の 手 系 は、PATH 移動経路の始点での手系と同じになるようにしてください。手系が異なる場合、エラーとなり動作できません。

・・PATH 移動中の第 1・第 2 アーム回転数情報は、PATH 移動経路の始点での第 1・第 2アーム回転数情報と同じになるようにしてください。これらが異なる場合、エラーとなり動作できません。

8-152 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

79 PATH SET

直接数値指定では、YK-TW シリーズ、かつ、座標値をミリ単位で指定する場合、第 1・

第 2 アーム回転数情報(*1)を指定することができます。

YK-TW シリーズで、拡張指定の第 1・第 2 アーム回転数情報を指定する場合は、f1

および f2 に、-1、0、1 のいずれかを指定します。-1、0、1 以外の数値または、第 1 アー

ム回転数情報および第 2 アーム回転数情報が設定なしの場合は、0 として扱われます。

0: PATH 移動経路の始点のアーム回転数情報が、0 の位置に設定されていることを示します。

1: PATH 移動経路の始点のアーム回転数情報が、1 の位置に設定されていることを示します。

-1: PATH 移動経路の始点のアーム回転数情報が、-1 の位置に設定されていることを示します。

*1: 第 1・第 2 アーム回転数情報の詳細は、4 章「3 ポイントデータの形式」を参

照してください。

・ スカラ型ロボットで、かつ移動先の座標データに手系フラグが指定されている場合、指定さ

れた手系を現在のアームタイプや LEFTY・RIGHTY の指定よりも優先します。

SAMPLE

PATH SET 120 250.000 55.2 20.33 0 0 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の PATH移動経路の始点は、ミリ

単位で (120.000 250.000 55.200 20.330 0.000 0.000)となる

PATH SET -51200 80521 7045 204410 0 0 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の PATH移動経路の始点は、パルス単位

● ポイント定義指定

形式

ポイント式

 意味  PATH 移動経路の始点を ポイント式 で指定します。

・ スカラ型ロボットで、かつ移動先の座標データに手系フラグが指定されている場合、指定さ

れた手系を現在のアームタイプや LEFTY・RIGHTY の指定よりも優先します。

SAMPLE

PATH SET P10 ・・・・・・・・・・・・・・・・・ ロボット 1の PATH移動経路の始点は P10となる

PATH SET WHERE ・・・・・・・・・・・・・・ ロボット 1の PATH移動経路の始点はロボット 1の現在位置となる

関連 PATH, PATH END, PATH START

 参照  PATH 機能については、9 章「PATH 文」を参照してください。

MEMO

c 注意

・・PATH 移 動 中 の 手 系 は、PATH 移動経路の始点での手系と同じになるようにしてください。手系が異なる場合、エラーとなり動作できません。

MEMO

c 注意

・・PATH 移動中の第 1・第 2 アーム回転数情報は、PATH 移動経路の始点での第 1・第 2アーム回転数情報と同じになるようにしてください。これらが異なる場合、エラーとなり動作できません。

PATH・START ● 8-153

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

80 PATH STARTPATH 移動を開始する

形式

PATH [ロボット番号] START , オプション , オプション ...

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  指定されたロボットの PATH 移動を開始します。

この命令を実行する前に、あらかじめ PATH SET 命令、PATH 命令(“PATH L”、“PATH

C”)、PATH END 命令により PATH 移動経路が設定されている必要があります。

また、PATH 移動を開始するとき、ロボットは PATH SET 命令で指定された移動経

路の始点にあらかじめ位置決めされている必要があります。

ロボットの PATH 移動速度は、PATH START 命令を実行したときの自動移動速度

(%)と、SPEED 命令または PATH 命令の速度オプション“SPEED”または“S”によっ

て指定したプログラム移動速度(%)の積になります。PATH 命令の速度オプション

“VEL”で速度を指定した場合には、自動移動速度には依存しません。

PATH 移動開始後、ロボットが PATH 移動経路の終点に到達するか、ストップ入力

等により停止すると、本命令を終了します。

・オプション : STOPON 条件指定、 CONT 指定

オプションの種類

● STOPON 条件指定

形式

STOPON 条件式

 意味  移動中に条件式が成立した場合、移動を停止します。このときの停止動作は、減

速停止なので、条件成立後に減速移動距離が発生します。

移動開始時に条件式が成立している場合、移動せずに命令を終了します。

プログラム実行のみ有効です。

SAMPLE

PATH START ,STOPON DI(20) = 1 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の PATH移動を開始し、途中で DI

(20)=1 の条件が成立したら、移動を減速停止し

て、次のステップを実行する

・ STOPON 条件指定で使用する条件式が数値を表す式である場合、式の値が 0 以外の時に

「真」となり、0 の時に「偽」となります。

MEMO

c 注意

・・STOPON 条件指定を付加すると、CONT 指定が無効になります。

8-154 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

80 PATH START

● CONT 指定

形式

CONT

 意味  CONT 指定をして PATH 移動を開始した場合、すべての移動対象軸が、PATH

文により設定された最後の動作が開始すると、移動対象軸の動作完了(公差範囲

内に到着)を待たずに、次の命令を開始します。次の命令が移動命令の場合、2

つの移動経路が減速と加速部分を接続することで連結され、途中で停止すること

なく移動が継続されます。

指定された PATH START 文に対してのみ有効です。

● CONT 指定使用時の注意点

CONT 指定ありの PATH START 命令の次の命令が信号出力命令などの実行可能な命令の場

合、移動開始直後から実行を開始します。つまり、目標位置の公差範囲以内に軸が到着する

前に次の命令を開始することになります。

例:

信号出力(DO など) 最後の経路の移動開始直後に、信号が出力されます。

DELAY最後の経路の移動開始直後に、DELAY 命令が実行され、時間の待ちが始まります。

HALT最後の経路の移動開始直後に、プログラムが停止し、かつリセットされます。そのため、移動が停止します。

HALTALL最後の経路の移動開始直後に、実行中のプログラムが全て停止し、タスク 1 はリセット、その他のタスクは終了します。そのため、移動が停止します。

HOLD最後の経路の移動開始直後に、プログラムを一時停止します。そのため、移動が停止します。

HOLDALL最後の経路の移動開始直後に、実行中のプログラムが全て一時停止します。そのため、移動が停止します。

WAIT 最後の経路の移動開始直後に、WAIT 命令が実行されます。

P1

PATH START命令

DO(20)をオン

PATH STARTDO(20)=1

DO(20)をオン

PATH START, CONTDO(20)=1

公差

最終目標位置

31811-R9-00

SAMPLE

PATH START ,CONTMOVE P,P10 ・・・・・・・・・・・・・・・・・・・・・・・・ PATH移動を開始し、移動軸が最後の PATH動作

の減速区間に入ると P10 に移動を開始

n 要点

・・CONT 指定することにより、移動開始時の位置決め時間を短縮することができます。

・・経路は保証されません。

PATH・START ● 8-155

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

80 PATH START

SAMPLE:PATH START, CONT

PATH移動目標位置

PATH移動目標位置

P10

最後の動作の減速区間に入ると

次の動作との連結を開始する

P10

公差範囲に入ってから次の

移動を開始する

公差範囲

減速区間

� CONT指定あり

� CONT指定なし

31812-R9-00

関連 PATH, PATH SET, PATH END

 参照  PATH 機能については、9 章「PATH 文」を参照してください。

8-156 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

81 PDEFパレットを定義する

形式

PDEF(パレット定義番号 )= 式 1, 式 2, 式 3, ポイント指定

 値  パレット定義番号・・・・・・・

式 1 ・・・・・・・・・・・・・・・・・・・

式 2 ・・・・・・・・・・・・・・・・・・・

式 3 ・・・・・・・・・・・・・・・・・・・

ポイント指定・・・・・・・・・・・

0 〜 39

P[1] ー P[2] 間の要素数(NX)

P[1] ー P[3] 間の要素数(NY)

P[1] ー P[5] 間の要素数(NZ)

総要素数:式 1 ×式 2 ×式 3 は 32767 以下でなければな

りません。

P[1] 〜 P[5] の定義は下図を参照してください

パレット定義に使用するポイント。指定したポイントを先

頭に連続した 5 個のポイントを使用します。

 意味  パレット移動命令を実行するためのパレットを定義します。

既に定義済みのパレットデータに対して、定義内容の変更が行えます。

式1〜式3で指定した数で各方向に要素を分割し、それぞれの要素に自動的に番号

が定義されます(下図参照)。

式 3(Z 軸方向)を省略した場合、1 が設定されます。

各パレットの総要素数は、32,767 以下に収まらなくてはなりません。

ポイントの自動計算  

P[5]

P[3] P[4]

P[2]P[1]NX

NY

4

710

1

16

1922

13

2

5

811

3

6

912

14

17

2023

15

18

21

24

NZ

NY

31815-R7-00

SAMPLE

PDEF(1)=3,4,2,P3991 ・・・・・・・・・・ パレット定義 1を P3991〜 P3995を使って 3× 4× 2に定義する

PGMTSK ● 8-157

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

82 PGMTSK指定されたプログラムが登録されているタスク番号を取得する

形式

PGMTSK (プログラム番号 )

 値  プログラム番号 ・・・・・・・・・・・・ 1 〜 100

 意味  プログラム番号 で指定されたプログラムが登録されているタスク番号を取得します。

・ タスクに登録されていないプログラム番号を指定した場合、 “3.203: プログラムなし” のエ

ラーになります。

SAMPLE

A = PGMTSK(1) ・・・・・・・・・・・・・・・・・・・ プログラム番号 1のプログラムが登録されているタ

スク番号を変数 Aに代入

関連 PGN, TSKPGM

MEMO

8-158 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

83 PGN指定されたプログラム名からプログラム番号を取得する

形式

PGN(“プログラム名”)

 値  プログラム名 ・・・・・・・・・・・・・・ 英数字 および _(アンダースコア)で 32 文字以内

 意味  プログラム名 で指定したプログラムのプログラム番号を取得します。

プログラム名の前後には、”(ダブルクォーテーション)を付けます。

SAMPLE

A=PGN(“PG_SUB”) ・・・・・・・・・・・・・・・ PG_SUB のプログラム番号を変数 Aに代入

関連 PGMTSK, TSKPGM

PMOVE ● 8-159

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

84 PMOVEロボットのパレット移動を実行する

形式

PMOVE [ロボット番号] (パレット定義番号 ,パレット位置番号)

,オプション ,オプション ...

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

パレット定義番号 ・・・・・・・・・・ 0 〜 39

パレット位置番号 ・・・・・・・・・・ 1 〜 32767

 意味  指定されたロボットに設定された軸のパレット移動命令を実行します(指定するパ

レット番号があらかじめ設定されていることが必要です)。

他のロボットや付加軸設定されている軸は、この移動命令で移動しません。

・移動の種類 : PTP

・パレット定義番号 : 数値式

・パレット位置番号 : 数値式

・オプション : 速度指定、アーチモーション指定、STOPON 条件指定

各パレット定義における位置番号は、下記の通りです。

NX×NY×(NZ-1)+1 NX×NY×(NZ-1)+NZ

各パレット定義における位置番号  

P[5]

1 2 NX

NX×2NX+1 NX+2

NX×(NY-1)+1 NX×NY

NX×NY×NZ

...

P[3] P[4]

P[2]

P[1]

NZ

NX

NY

NX×NY×(NZ-1)+1 NX×NY×(NZ-1)+NZ

31816-R7-00

・ XYZ 軸は、その都度計算された位置に移動しますが、R 属性軸は、各パレットポイントデー

タの P[1] で指定された位置への移動となります。

オプション PTP 備 考

速度指定(SPEED) ○ 指定 PMOVE 文のみ有効

アーチモーション ○ 指定 PMOVE 文のみ有効

STOPON 条件指定 ○ プログラム実行のみ有効

SAMPLE

PMOVE(1,16) ・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置からパレット定義番号 1の

パレット位置番号 16で指定された位置へ移動

MEMO

8-160 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

84 PMOVE

移動の種類

● PTP(PointtoPoint)移動

すべての移動対象軸の動作が完了後(公差範囲以内に軸到着後)、PTP 移動を開始し、すべ

ての移動対象軸がアウト有効位置範囲以内に入ると命令を終了します。移動対象軸は、同時

到着します。このときの経路は、保証されません。

● PMOVE 命令に続く次の命令の注意点

PMOVE 命令の次の命令が信号出力命令などの実行可能な命令の場合、移動対象軸がアウト

有効位置範囲以内に入ると次の命令を開始します。つまり、目標位置の公差範囲以内に軸が

到着する前に次の命令を開始することになります。

例:

信号出力(DO など) アウト有効位置範囲以内に入ると、信号が出力されます。

DELAYアウト有効位置範囲以内に入ると、DELAY 命令が実行され、時間の待ちが始まります。

HALTアウト有効位置範囲以内に入ると、プログラムが停止し、かつリセットされます。そのため、移動が停止します。

HALTALLアウト有効位置範囲以内に入ると、実行中のプログラムが全て停止し、タスク 1 はリセット、その他のタスクは終了します。そのため、移動が停止します。

HOLDアウト有効位置範囲以内に入ると、プログラムを一時停止します。そのため、移動が停止します。

HOLDALLアウト有効位置範囲以内に入ると、実行中のプログラムが全て一時停止します。そのため、移動が停止します。

WAIT アウト有効位置範囲以内に入ると、WAIT 命令が実行されます。

公差範囲以内に軸が到着してから次の命令を実行する場合には、“WAIT ARM”文を使用します。

P1

PMOVE命令  

DO(20)をオン

PMOVE(0,1)WAIT ARMDO(20)=1

DO(20)をオン

PMOVE(0,1)DO(20)=1

公差

目標位置

アウト有効位置

HOLD実行(プログラム一時停止)

PMOVE(0,1)WAIT ARMHOLD

PMOVE(0,1)HOLD

公差アウト有効位置

目標位置

HOLD実行(プログラム一時停止)

31827-R7-00

PMOVE ● 8-161

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

84 PMOVE

オプションの種類

● 速度指定  PTP  

形式

1. SPEED = 式2. S = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  プログラム移動速度を 式 で指定します。移動速度は、自動移動速度とプログラ

ム移動速度の積によって決まります。

指定された PMOVE 文に対してのみ有効です。

SAMPLE

PMOVE(1,3),S=10 ・・・・・・・・・・・・・ ロボット 1を現在位置からパレット定義番号 1の

パレット位置番号 3で指定された位置へプログラム

速度 10%で移動

● アーチモーション指定  PTP  

形式

x = 式 , x = 式 ...

 値  x・・・・・・・・・・・・・・・・・・・・・・・・

式・・・・・・・・・・・・・・・・・・・・・・・

Z, R, A, B の軸指定

整数値の場合はパルス単位

実数値(小数点あり)の場合はミリ / 度単位

 意味  1. x で指定された軸を 式 で指定された位置に移動開始(下図の 1)。

2. x で指定された軸がアーチ距離 1 以上移動すると、その他の軸が目標位置に

移動(下図の 2)。

3. x で指定された軸が、その他の軸が移動を終了する時点で、残り移動距離が

アーチ距離2になる様に目標位置に移動(下図の 3)。

4. 全ての軸がアウト有効位置範囲以内に入ると命令を終了。

SAMPLE

PMOVE(1,A),Z=0 ・・・・・・・・・・・・・ 現在位置からロボット 1の Z軸が 0パルスに移動

し、ロボット 1のその他の軸がパレット定義番号 1のパレット位置番号 Aで指定された位置へ移動し、

最後にロボット 1の Z軸がパレット位置番号 Aで

指定された位置へ移動

SAMPLE:PMOVE Z

目標位置現在位置

1. Z軸移動 3. Z軸移動

2. その他の軸移動

アーチ距離1 アーチ距離2

Z=0

31817-R7-00

n 要点

・・最高速を規定するもので、指定した速度での移動を保証するものではありません。

8-162 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

84 PMOVE

● STOPON 条件指定  PTP  

形式

STOPON 条件式

 意味  移動中に条件式が成立した場合、移動を停止します。このときの停止動作は、減

速停止なので、条件成立後に減速移動距離が発生します。

移動開始時に条件式が成立している場合、移動せずに命令を終了します。

プログラム実行のみ有効です。

SAMPLE

PMOVE(A,16),STOPON DI(20)=1 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1をパレット定義番号 Aのパレット位置

番号 16で指定された位置へ移動。途中で DI(20)=1の条件が成立したら、移動を減速停止する

・ STOPON 条件指定で使用する条件式が数値を表す式である場合、式の値が 0 以外の時に「真」

となり、0 の時に「偽」となります。

MEMO

Pn ● 8-163

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

85 Pnポイントを定義する

形式

LET Pn = p1 p2 p3 p4 p5 p6 f f1 f2

 値  n ・・・・・・・・・・・・・・・・・・・・・・・・・ ポイント番号:0 〜 29999

p1 〜 p6 ・・・・・・・・・・・・・・・・・・ ポイントデータ:形式により範囲が異なる

f ・・・・・・・・・・・・・・・・・・・・・・・・・ 手系フラグ:1 または 2(スカラのみ)

f1 ・・・・・・・・・・・・・・・・・・・・・・・・ 第 1 アーム回転数情報:-1、0、1(YK-TW シリーズのみ)

f2 ・・・・・・・・・・・・・・・・・・・・・・・・ 第 2 アーム回転数情報:-1、0、1(YK-TW シリーズのみ)

 意味  ポイントデータを定義します。

1. n は、ポイント番号を示します。

2. p1 〜 p6 の入力データは、スペース(空白)で区切ります。

3. p1 〜 p6 の入力データがすべて整数形式(小数点なし)の場合、パルス単位と認

識します。このとき、p1 〜 p6 は、第 1 軸〜第 6 軸に対応します。

4. p1 〜 p6 の入力データに実数(小数点あり)が 1つでもある場合、ミリ /度単位

と認識します。

5. p1 〜 p6 の入力データは、以下の範囲で入力してください。

 パルス単位 :-6,144,000 〜 6,144,000 の範囲

 ミリ単位 :-99,999.99 〜 99,999.99 の範囲

スカラ型ロボット、かつ、ポイント定義データをミリ単位で指定する場合、手系フ

ラグを指定することができます。

スカラ型ロボットで、拡張設定の手系フラグを設定する場合は、f に 1 および 2 を設

定します。1 および 2 以外の数値もしくは数値の指定がない場合は、手系フラグの設

定なし(0)として扱われます。

 1: 右手系でポイントが設定されていることを示します。

 2: 左手系でポイントが設定されていることを示します。

YK-TW シリーズ、かつ、ポイント定義をミリ単位で指定する場合、第 1 アーム回転

数情報および第 2 アーム回転数情報(*1)を指定することができます。

YK-TW シリーズで、拡張指定の第 1・第 2 アーム回転数情報を指定する場合は、f1

および f2 に、-1、0、1 のいずれかを指定します。-1、0、1 以外の数値または、第 1 アー

ム回転数情報および第 2 アーム回転数情報が設定なしの場合は、0 として扱われます。

 0 :アーム回転数情報に、0 が設定されていることを示します。

 1 :アーム回転数情報に、1 が設定されていることを示します。

 -1 :アーム回転数情報に、-1 が設定されていることを示します。

*1:第 1・第 2 アーム回転数情報の詳細は、4 章「3 ポイントデータの形式」を参照し

てください。

n 要点

・・単位指定が混在している場合(整数と実数の両方がある場合)、全ての値がミリ / 度単位として扱われます。

8-164 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

85 Pn

SAMPLE

P1 = 0 0 0 0 0 0P2 = 100.000 200.000 50.000 0.000 0.000 0.000P3 = 10.000 0.000 0.000 0.000 0.000 0.000P10= P2 FOR A=10 TO 15 P[A+1]=P[A]+P3 NEXT A FOR A=10 TO 16 MOVE P,P1,P[A] NEXT A HALT

関連 ポイント代入文(LET)

n 要点

・・入力は全て定数のみとなります。

・・ポイント定義文を実行中にコントローラの電源が遮断された場合、“9.702:ポイントチェックサムエラー”などのメモリ関連のエラーが発生する場合があります。

PPNT ● 8-165

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

86 PPNTパレットポイントデータ作成

形式

PPNT(パレット定義番号 ,パレット位置番号)

 意味  パレット定義番号とパレット位置番号で指定されるポイントデータを作成します。

SAMPLE

P10=PPNT(1,24) ・・・・・・・・・・・・・・・・・・ パレット定義番号 1のパレット位置番号 24で指定

されたポイントデータを P10に作成する

関連 PDEF, PMOVE

8-166 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

87 PRINTプログラミングボックスなどに指定した式の値を表示する

形式

PRINT 式 ,  式 ... ,  ; ;

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 文字列、数値、変数

 意味  この命令文は、プログラミングボックスなどの画面に指定した変数の値を表示しま

す。出力定義は下記の通りです。

1. 式 に数値や文字列を指定した場合、そのまま表示されます。変数や配列が指定

された場合、指定された変数や配列に代入されている値が表示されます。

2. 式 が省略された場合、改行のみを行います。

3. 表示内容が画面の行幅を超える場合、改行し次行に表示を行います。

4. 表示区切りがコンマ(,)の場合、表示項目の間はスペース(空白)が表示されます。

5. 表示区切りがセミコロン(;)の場合、表示項目は連続して表示されます。

6. 表示区切りで終わっている場合、改行されません。表示区切りで終わっていな

い場合、改行されます。

・ PRINT 文はプログラミングボックスなどの画面への表示を行うため画面へのデータ通信を

行います。そのため、連続して PRINT 文を実行すると、プログラムの実行時間が延びる場

合があります。

・ プログラミングボックスでは「自動運転(全タスク)」画面の「Message」欄に表示されます。

SAMPLE

PRINT A ・・・・・・・・・・・・・・・・・・・・・・・・・・ 変数 Aの値を表示

PRINT "A1 =";A1 ・・・・・・・・・・・・・・ "A1 ="に続けて変数 A1の値を表示

PRINT "B(0),B(1) = ";B(0);",";B(1) PRINT P100 ・・・・・・・・・・・・・・・・・・・・・・・・ P100の値を表示

関連 INPUT

MEMO

PSHFRC ● 8-167

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

88 PSHFRC押付力パラメータを設定 /取得

形式

1. PSHFRC [ロボット番号 ] 式2. PSHFRC [ロボット番号 ](軸番号)= 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ -1000 〜 1000(単位:%)

 意味  ロボット番号 で指定されたロボット軸の押付力パラメータを 式 の値に変更します。

PUSH 文で F オプション指定を省略した場合、押付力パラメータの設定値で押付制

御を行います。

実際の押付力は以下の様になります。

・定格推力× 式 / 100

形式 1 は全軸のパラメータを変更します。

形式 2 は 軸番号 で指定される軸のパラメータを変更します。

SAMPLE

PSHFRC (1) = 10 ・・・・・・・・・・・・・・・・ ロボット 1の第 1軸の押付力パラメータ 10%に変更

関数

形式

PSHFRC [ロボット番号 ] (軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボット軸のうち 軸番号 で指定された軸の押付力パラ

メータの値を取得します。

SAMPLE

A=PSHFRC (1) ・・・・・・・・・・・・・・・・・・・・・ ロボット1の第 1軸の押付力パラメータを変数 Aに代入

8-168 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

89 PSHJGSP押付判定速度閾値パラメータを設定 /取得

形式

1.PSHJGSP [ロボット番号 ] 式2.PSHJGSP [ロボット番号 ](軸番号)= 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0:無効 , 1 〜 100(単位:%)

 意味  ロボット番号 で指定されたロボット軸の押付判定速度閾値パラメータを 式 の値に変

更します。

押付判定速度閾値パラメータが有効の場合、PUSH 文での押付力が指定値に到達し

た状態で、移動速度が 式 を下回っている場合にのみ押付中と判定します。

式 の設定値は以下の様に指定できます。

0:閾値設定を無効として、押付力が指定値に達すれば押付中と判定します。

1 〜 100:PUSH 文での移動速度を 100% として割合で閾値を指定します。

SAMPLE

PSHJGSP (1) = 50 ・・・・・・・・・・・・・・・ ロボット 1の第 1軸の押付判定速度閾値パラメー

タを 50%に変更

関数

形式

PSHJGSP [ロボット番号 ] (軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボット軸のうち 軸番号 で指定された軸の押付判定速度

閾値パラメータの値を取得します。

SAMPLE

A=PSHJGSP (1) ・・・・・・・・・・・・・・・・・・・ ロボット1の第 1軸の押付判定速度閾値パラメータ

を変数 Aに代入

PSHMTD ● 8-169

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

90 PSHMTD押付方式パラメータを設定 /取得

形式

1. PSHMTD [ロボット番号 ] 式2. PSHMTD [ロボット番号 ](軸番号)= 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0:積算方式 , 1:リセット方式

 意味  ロボット番号 で指定されたロボット軸の押付方式パラメータを 式 の値に変更します。

式 によって PUSH 文の押付方式を以下の様に指定できます。

0:押付力が指定値に達した時間を積算して押付制御終了判定を行います。

1:押付力が連続して指定値に達した場合のみ押付制御終了判定を行います。押付力

が指定値を下回った場合、押付経過時間は 0 にリセットされます。

形式 1 は全軸のパラメータを変更します。

形式 2 は 軸番号 で指定される軸のパラメータを変更します。

SAMPLE

PSHMTD (1) = 1 ・・・・・・・・・・・・・・・・・・ ロボット1の第1軸の押付方式パラメータをリセッ

ト方式に変更

関数

形式

PSHMTD [ロボット番号 ] (軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボット軸のうち 軸番号 で指定された軸の押付方式パラ

メータの値を取得します。

SAMPLE

A=PSHMTD (1) ・・・・・・・・・・・・・・・・・・・・・ ロボット1の第 1軸の押付方式パラメータを変数 Aに代入

8-170 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

91 PSHRSLTPUSH 文終了時の状態を取得

形式

PSHRSLT [ロボット番号 ](軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボットの 軸番号 で指定した軸に対して実行した PUSH

文の終了状態を取得します。

0 ・・・・・・・・ 押付時間到達以外の理由で終了

1 ・・・・・・・・ 押付時間到達で終了した場合

SAMPLE

PUSH(3,P1) ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の第 3軸を押付制御しながら P1で指

定された位置へ移動

IF PSHRSLT(3) = 1 THEN ・・・・・ 押付時間到達で終了した場合

GOTO *OKELSE ・・・・・・・・・・・・・・・・・・・・・・・・・・ 押付時間到達以外の理由で終了した場合

GOTO *NGENDIF

PSHSPD ● 8-171

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

92 PSHSPD押付速度比率パラメータを設定 /取得

形式

1. PSHSPD [ロボット番号 ] 式2. PSHSPD [ロボット番号 ](軸番号)= 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  ロボット番号 で指定されたロボット軸の押付速度比率パラメータを 式 の値に変更し

ます。

PUSH 文での移動速度は以下の様になります。

・PUSH 文に S,DS オプション指定が無い場合:

ロボットの最高速度(mm/ 秒または度 / 秒)×押付速度比率(%)

×自動移動速度(%)×プログラム移動速度(%)

・PUSH 文に S オプション指定がある場合:

ロボットの最高速度(mm/ 秒または度 / 秒)×押付速度比率(%)

×自動移動速度(%)× S で指定したプログラム移動速度(%)

・PUSH 文に DS オプション指定がある場合:

ロボットの最高速度(mm/ 秒または度 / 秒)×押付速度比率(%)

× DS で指定した軸の移動速度(%)

SAMPLE

PSHSPD (1) = 50 ・・・・・・・・・・・・・・・・ ロボット 1の第 1軸の押付速度比率パラメータを

50%に変更

関数

形式

PSHSPD [ロボット番号 ] (軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボット軸のうち 軸番号 で指定された軸の押付速度比率

パラメータの値を取得します。

SAMPLE

A=PSHSPD (1) ・・・・・・・・・・・・・・・・・・・・・ ロボット1の第 1軸の押付速度比率パラメータを変

数 Aに代入

8-172 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

93 PSHTIME押付時間パラメータを設定 /取得

形式

1. PSHTIME [ロボット番号 ] 式2. PSHTIME [ロボット番号 ](軸番号)= 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 32767(単位:ms)

 意味  ロボット番号 で指定されたロボット軸の押付時間パラメータを 式 の値に変更します。

PUSH 文で TIM オプション指定を省略した場合、押付時間パラメータの設定値で押

付制御を行います。

形式 1 は全軸のパラメータを変更します。

形式 2 は 軸番号 で指定される軸のパラメータを変更します。

SAMPLE

PSHTIME (1) = 1000 ・・・・・・・・・・・・ ロボット 1 の第 1 軸の押付時間パラメータ

1000msに変更

関数

形式

PSHTIME [ロボット番号 ] (軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボット軸のうち 軸番号 で指定された軸の押付時間パラ

メータの値を取得します。

SAMPLE

A=PSHTIME (1) ・・・・・・・・・・・・・・・・・・・ ロボット1の第 1軸の押付時間パラメータを変数 Aに代入

PUSH ● 8-173

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

94 PUSH軸単位で押付動作

形式

PUSH [ロボット番号 ](軸番号 , 式), オプション , オプション

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ モータ位置(ミリ・度・パルス)またはポイント式

 意味  ロボット番号 で指定されたロボット軸を軸単位で進行方向の押付力を制御しながら

絶対位置移動を実行します。

・移動の種類 : 軸指定押付 PTP

・ポイント指定 : 直接数値指定、ポイント定義指定

・オプション : 押付力指定、押付時間値、押付速度指定、STOPON 指定

移動の種類

● 軸指定 PTP(PointtoPoint)

軸番号 で指定された軸の動作が完了後(公差範囲以内に到着後)、軸の進行方向の押付力を

制御しながら移動を開始します。

押付制御開始条件は以下の通りです。

・ PUSH 文による軸の移動開始直後

・ 連結動作終了後(CONT 指定のある移動命令の次の行に PUSH 文を指定した場合)

命令が終了する条件は以下の通りです。

・ 軸が目標位置の公差範囲内に到達する。

・ 軸の押付力が 押付力値 に達した状態が 押付時間値 に指定した時間以上経過する。

PUSH 文終了状態は PSHRSLT 文で確認できます。

PUSH 文の押付力の解除条件(PUSH 文で定義したトルク値が解除される条件)は以下の

通りです。

・ PUSH 文命令終了後、次の移動命令を開始したとき

(PUSH 文の命令終了だけでは解除されません)

1. PUSH 文命令終了時に押付状態の場合

PUSH 文で指定した移動方向と逆方向に対象軸が移動開始したとき

2. PUSH 文命令終了時に目標位置まで移動した場合(押付状態にない場合)

いずれかの方向に対象軸が移動を開始したとき

・ サーボオフしたとき

・ コントローラの電源を遮断し再投入したとき

8-174 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

94 PUSH

PUSH 文の次の命令が信号出力命令などの実行可能な命令の場合、移動対象軸の押付条件が

成立した場合、または目標位置の公差範囲内に軸が到着すると次の命令を実行します。

例:

信号出力(DO など) 押付条件成立または公差範囲内に入ると、信号が出力されます。

DELAY 押付条件成立または公差範囲内に入ると、DELAY 命令が実行され、時間の待ちが始まります。

HALT 押付条件成立または公差範囲内に入ると、プログラムが停止し、かつリセットされます。そのため、移動が停止します。

HALTALL 押付条件成立または公差範囲内に入ると、実行中のプログラムが全て停止し、タスク 1 はリセット、その他のタスクは終了します。そのため、移動が停止します。

HOLD 押付条件成立または公差範囲内に入ると、プログラムを一時停止します。そのため、移動が停止します。

HOLDALL 押付条件成立または公差範囲内に入ると、実行中のプログラムが全て一時停止します。そのため、移動が停止します。

WAIT 押付条件成立または公差範囲内に入ると、WAIT 命令が実行されます。

SAMPLE

PUSH(1,P0) ・・・・・・・・・・・・・・・・・・・・ ロボット 1の第 1軸を現在位置から P0で指定さ

れた位置へ移動

ポイント指定の種類

● 直接数値指定

式 に直接モータ位置を指定します。

モータ位置の数値が整数値の場合はパルス単位と判断します。また、実数値の場合はミリ /

度単位と判断し、軸毎に 0 パルス位置からのパルス換算位置へ移動します。

SAMPLE

PUSH(1,10000) ・・・・・・・・・・・・・・・・ ロボット 1の第 1軸を現在位置から 100000パ

ルス位置へ移動

PUSH[2](2,90.000) ・・・・・・・・・・ ロボット 2の第 2軸を現在位置から 90度位置へ

移動(回転軸の場合)

● ポイント定義指定

式 にポイント式を指定します。 軸番号 で指定された軸のデータを使用します。

ポイント式がミリ / 度単位の場合、軸毎に 0 パルス位置からのパルス換算位置に移動します。

SAMPLE

PUSH(1,P1) ・・・・・・・・・・・・・・・・・・・・ 現在位置からロボット 1の第 1軸が P1で指定さ

れた位置へ移動

PUSH[2](2,P90) ・・・・・・・・・・・・・・ 現在位置からロボット 2の第 2軸が P90で指定さ

れた度数の位置へ移動(回転軸の場合)

PUSH ● 8-175

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

94 PUSH

オプションの種類

● 押付力指定

形式

F = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ -1000 〜 1000(単位:%)

 意味  軸の進行方向に対する押付力を 式 で指定します。

実際の押付力は以下の様になります。

・定格推力× 式 / 100

式 を省略した場合、パラメータで設定されている押付力値を使用します。

SAMPLE

PUSH(1,10000),F=10 ロボット 1の第 1軸を定格推力の 10%の押付力で

現在位置から 100000パルス位置へ移動

● 押付時間指定

形式

TIM = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 32767(単位:ms)

 意味  指定した押付力で押し続ける時間を 式 で指定します。

押付力が設定値に達した状態が 式 以上経過すると、PUSH 文は終了します。

本オプションを省略した場合、パラメータの設定値を使用します。

SAMPLE

PUSH(1,10000),TIM=5000 ・・ ロボット 1の第 1軸を現在位置から押付時間 5秒

で 10000パルス位置へ移動

8-176 ● 第 8章 ロボット言語一覧

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8-176 ● 第 8章 ロボット言語一覧

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

94 PUSH

● 速度指定

形式

1.SPEED = 式2.S = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  プログラム移動速度を 式 で指定します。

実際の速度は以下の様になります。

・ロボットの最高速度(mm/ 秒または度 / 秒)×押付移動速度(%)×自動移動

速度(%)× 式(%)

指令された PUSH 文に対してのみ有効です。

SAMPLE

PUSH(1,10000),S=10 ・・・・・・・・ ロボット 1の第 1軸を押付移動速度と自動移動速

度の積の 10%の速度で 10000パルス位置へ移動

形式

1.DSPEED = 式2.DS = 式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0.01 〜 100.00(単位:%)

 意味  軸の移動速度を 式 で指定します。

実際の速度は以下の様になります。

・ロボットの最高速度(mm/ 秒または度 / 秒)×押付移動速度(%)× 式(%)

指令された PUSH 文に対してのみ有効です。

・自動移動速度の値(%)に影響されず常に DSPEED の 式 の値(%)で移動します。

SAMPLE

PUSH(1,10000),DS=0.1 ・・・・・ ロボット 1の第 1軸を押付移動速度の 0.1%の速

度で 10000パルス位置へ移動

PUSH ● 8-177

88

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

94 PUSH

● STOPON 条件指定

形式

STOPON 条件式

 意味  移動中に条件式が成立した場合、移動を停止します。このときの停止動作は、減

速停止なので、条件成立後に減速移動距離が発生します。

移動開始時に条件式が成立している場合、移動せずに命令を終了します。

プログラム実行のみ有効です。

SAMPLE

PUSH(1,10000),STOPON DI(20) = 1  ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の第 1軸を 10000パルスへ移動し、

途中で DI(20)=1の条件が成立したら、移動を

停止して、次のステップを実行する

・ STOPON 条件指定で使用する条件式が数値を表す式である場合、式の値が 0 以外の時に「真」

となり、0 の時に「偽」となります。

関連 PSHFRC, PSHTIME, PSHMTD, PSHSPD, PSHRSLT, CURTRQ, CURTQST

MEMO

8

8-178 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

95 RADDEG単位変換(ラジアン→度)

形式

RADDEG(式)

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 角度(単位:ラジアン)

 意味  式 の値を度に変換します。

SAMPLE

LOC4(P0)=RADDEG(ATN(B)) ・・・・ 変数 Bの逆正接値を度に変換し、P0の第 4軸デー

タに代入

関連 ATN, COS, DEGRAD, SIN, TAN

8

REM ● 8-179

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

96 REMコメントを挿入する

形式

1. REM 文字列

2. ’ 文字列

 意味  REM または ’ (アポストロフィ)以降の文字は、コメントとみなされます。コメント

文は実行されません。REM または ’ は行の途中から書くことも可能です。

SAMPLE

REM *** MAIN PROGRAM *** ’*** SUBROUTINE *** HALT ’HALT COMMAND

8

8-180 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

97 RESET指定ポートのビットをオフまたは変数をクリアする

形式 1

RESET DOm(b,・・・,b) DO(mb,・・・,mb) MOm(b,・・・,b) MO(mb,・・・,mb) TOn(b,・・・,b) TO(n-b,・・・,nb) LOn(b,・・・,b) LO(nb,・・・,nb) SOm(b,・・・,b) SO(mb,・・・,mb)

形式 2

RESET TCOUNTER

 値  m:ポート番号 ・・・・・・・・・・・

n:ポート番号 ・・・・・・・・・・・

b:ビット指定 ・・・・・・・・・・・

2 〜 7, 10 〜 17, 20 〜 27

0、1

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に

記述。

 意味  形式 1 指定されたポートのビットをオフします。

形式 2 1ms カウンタ変数をクリアします(1ms カウンタ変数は、1ms 単位で時

間測定を行う場合に使用します)。

SAMPLE

RESET DO2() ・・・・・・・・・・・・・・・・・・・・・ DO(27〜 20)がオフする

RESET DO2(6,5,1) ・・・・・・・・・・・・ DO(26,25,21)がオフする RESET (37,35,27,20) ・・・・・・・・・・ DO(37,35,27,20)がオフする RESET TCOUNTER ・・・・・・・・・・・・・・・・ 1msカウンタ変数をクリアする

関連 SET, DO, MO, SO, TO, LO

c 注意

・・DO, SO ともに、ポート 0および 1 を指定することはできません。

参照参照

・・ビット指定については、 3 章「10 ビット指定」を参照してください。

8

RESTART ● 8-181

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

98 RESTART一時停止中の他のタスクを再起動する

形式

RESTART Tn       <プログラム名>

       PGm

 値  n:タスク番号 ・・・・・・・・・・・・・ 1 〜 16

m:プログラム番号 ・・・・・・・・ 1 〜 100

 意味  一時停止中(SUSPEND 状態)の他のタスクを再起動します。タスクは実行している

プログラムの名前、または番号により指定することも可能です。

プログラム名は、< >(アングルブラケット)で囲みます。

・ 一時停止中でないタスク(プログラム)を指定して実行した場合、エラーが発生します。

SAMPLE

START <SUB_PGM>,T2 FLAG=1*L0: IF FLAG=1 AND DI2(0)=1 THEN SUSPEND T2 FLAG=2 WAIT DI2(0)=0 ENDIF IF FLAG=2 AND DI2(0)=1 THEN RESTART T2 FLAG=1 WAIT DI2(1)=0 ENDIF MOVE P,P0 MOVE P,P1 GOTO *L0 HALTALL

プログラム名 :SUB_PGM’SUBTASK ROUTINE*SUBTASK: DO2(0)=1 DELAY 1000 DO2(0)=0 DELAY 1000 GOTO *SUBTASK EXIT TASK

関連 CUT, EXIT TASK, START, SUSPEND

 参照  詳しくは、マルチタスクを参照してください。

MEMO

8

8-182 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

99 RESUMEエラーの回復処理後にプログラムを再開する

形式

1. RESUME2. RESUME NEXT3. RESUME ラベル

 意味  このエラーの回復処理後、プログラムの実行を再開します。

プログラムの再開する場所に応じて次の 3 つの方法があります。

1. RESUME エラーの原因となった命令からプログラムを再開しま

す。

2. RESUME NEXT エラーの原因となった命令の次の命令からプログラム

を再開します。

3. RESUME ラベル ラベル で示される行にある命令からプログラムを再開

します。

・ エラー処理ルーチン以外で RESUME 文を実行することはできません。

・ “17.800:モータ過負荷”など、重度のエラーが発生した場合、エラー回復処理は実行できま

せん。

関連 ON ERROR GOTO

参照参照

・・詳 細 は、「67 ON ERROR GOTO」を参照してください。

MEMO

8

RETURN ● 8-183

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

100 RETURNGOSUB で分岐した処理を、GOSUB の次行に戻す

形式

GOSUB ラベル ※ GOSUBは GO SUBでも可

  : ラベル :  :

RETURN

 意味  サブルーチンの処理を終了し、ジャンプ元の GOSUB 文の次の命令行に戻ります。

GOSUB 文でサブルーチンにジャンプした場合、サブルーチンは必ず RETURN で終

了してください。GOTO 文などでルーチンからジャンプした場合、“5.212:スタック

オーバーフロー”などのエラーが発生することがあります。

SAMPLE

*ST: MOVE P,P0 GOSUB *CLOSEHAND MOVE P,P1 GOSUB *OPENHAND GOTO *ST HALT ’SUB ROUTINE *CLOSEHAND: DO(20) = 1 RETURN *OPENHAND: DO(20) = 0 RETURN

関連 GOSUB

8

8-184 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

101 RIGHT$右端から文字列を抽出する

形式

RIGHT$(文字列式 ,式)

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 255

 意味  文字列式 で指定した文字列の右側(最後)から 式 で指定した桁数の文字列を抜き出

します。

式 の値が 0 〜 255 の範囲にない場合、エラーになります。

式 の値が 0 ならば、抜き出した文字列はヌルストリング(空の文字列)となります。

式 が 文字列式 の文字数より大きければ、抜き出した文字列は 文字列式 と同じ内容

になります。

SAMPLE

B$=RIGHT$(A$,4) ・・・・・・・・・・・・・・・・ A$の右から 4文字を B$に代入

関連 LEFT$, MID$

8

RIGHTY ● 8-185

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

102 RIGHTYスカラロボットの手系を右手系に設定する

形式

RIGHTY [ロボット番号]

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、8 ビット全てが対象)

 意味  直交座標系で指定されたポイントへ ロボット番号 で指定されたロボットを右手系で

移動するよう選択します。

命令を実行しても選択するだけで、ロボットは移動しません。軸が動作中の場合は、

動作完了(公差内に位置決めされる)を待って実行します。

この命令はスカラロボットにのみ有効です。

SAMPLE

RIGHTY ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を右手系に設定(下図の1)

MOVE P,P1 LEFTY ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を左手系に設定(下図の2)

MOVE P,P1 RIGHTY HALT

SAMPLE:LEFTY/RIGHTY

P1

(1)(2)

左手系 右手系

スカラ型ロボット

31818-R7-00

関連 LEFTY

8

8-186 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

103 RSHIFTビットの右シフト

形式

RSHIFT(式 1,式 2)

 意味  式 1 のビット値を 式 2 分だけ右にシフトします。シフトさせて空いたところには 0

が入ります。

SAMPLE

A=RSHIFT(&B10111011,2) ・・・・・・ &B10111011を 2ビット右にシフトした値 (&B00101110)を Aに代入

関連 LSHIFT

8

SELECT・CASE 〜 END・SELECT ● 8-187

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8

SELECT・CASE 〜 END・SELECT ● 8-187

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

104 SELECT CASE〜 END SELECT式の値によって指定された命令ブロックを実行する

形式

SELECT CASE 式 CASE 式のリスト 1 命令ブロック 1 CASE 式のリスト 2 命令ブロック 2 : CASE ELSE 命令ブロック nEND SELECT

 意味  式 の値によって指定された命令ブロックを実行します。設定方法を下記に示します。

1. CASE 文の後ろに記述する 式リスト は、数値式または文字列式をカンマ(,)で

区切り複数個を並べたものです。

2. 式 の値が 式リスト の何れかの式の値と一致した場合、指定した命令ブロックが

実行されます。命令ブロック実行後、END SELECT 文の次の命令にジャンプし

ます。

3. 式 の値が、すべての CASE 文の 式リスト の値と一致しなかった場合、CASE

ELSE文の後に記述された 命令ブロック が実行されます。命令ブロック実行後、

END SELECT 文の次の命令にジャンプします。

4. 式 の値が、すべての CASE 文の 式リスト の値と一致せず、CASE ELSE 文の記

述が無い場合、END SELECT 文の次の命令にジャンプします。

SAMPLE

WHILE -1 SELECT CASE DI3() CASE 1,2,3 CALL *EXEC(1,10) CASE 4,5,6,7,8,9,10 CALL *EXEC(11,20) CASE ELSE CALL *EXEC(21,30) END SELECT WEND HALT

8

8-188 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

105 SEND読出しファイルのデータを書き込みファイルに転送する

形式

SEND 読出しファイル TO 書き込みファイル

 意味  読出しファイル のデータを 書き込みファイル に転送します。

DO ポート、MO ポート、TO ポート、LO ポート、SO ポート、SOW ポートにおいて、

書込みファイルとして各ポート全体(DO()、MO()など)を指定することはできません。

個別ファイル(DOn()、MOn()など)の一部は、書込みファイルとして指定できない

ものがあります。詳しくは、後述の 10 章「データファイル詳細」を参照してください。

読出し専用ファイル(下表の「書込み」欄が“×”となっているもの)への書込はできま

せん。

読出し / 書込みファイルを正しく指定しても、双方のデータ形式があっていない場合

は実行できません。

区分 ファイル名 記述形式 読出し 書込み

全体 個別ファイル

ユーザー 全体ファイル ALL --------------- ○ ○

プログラム PGM <bbbbbbbb>

PGn

○ ○

ポイント PNT Pn ○ ○

ポイントコメント PCM PCn ○ ○

ポイントネーム PNM PNn ○ ○

パラメータ

PRM

/cccccccc/

#cccccccc#

\cccccccc\

○ ○

シフト定義 SFT Sn ○ ○

ハンド定義 HND Hn ○ ○

パレット定義 PLT PLn ○ ○

汎用イーサネットポート GEP GPn ○ ○

入出力ネーム ION iNMn(n) ○ ○

領域判定出力 ACO ACn ○ ○

変数・定数 変数 VAR ab...by ○ ○

配列変数 ARY ab...by(x) ○ ○

定数 ---------- “cc...c” ○ ×

ステータス プログラムディレクトリ DIR <<bbbbbbbb>> ○ ×

パラメータディレクトリ DPM --------------- ○ ×

マシンリファレンス ( センサ、突き当て ) MRF --------------- ○ ×

マシンリファレンス ( マーク ) ARP --------------- ○ ×

システム構成情報 CFG --------------- ○ ×

バージョン情報 VER --------------- ○ ×

オプションボード OPT --------------- ○ ×

自己診断 SCK --------------- ○ ×

アラーム履歴 LOG --------------- ○ ×

メモリ残量 MEM --------------- ○ ×

n 要点

・・読出し専用ファイルへ書き込む誤った例

SEND CMU TO DIR

SEND PNT TO SI()

・・データ形式があっていない誤った例

SEND PGM TO PNT

SEND SI() TO SFT

8

SEND ● 8-189

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

区分 ファイル名 記述形式 読出し 書込み

全体 個別ファイル

デバイス DI ポート DI() DIn() ○ ×

DO ポート DO() DOn() ○ ○

MO ポート MO() MOn() ○ ○

TO ポート TO() TOn() ○ ○

LO ポート LO() LOn() ○ ○

SI ポート SI() SIn() ○ ×

SO ポート SO() SOn() ○ ○

SIW ポート SIW() SIWn() ○ ×

SOW ポート SOW() SOWn() ○ ○

RS-232C CMU --------------- ○ ○

Ethernet ETH --------------- ○ ○

その他 ファイル終了コード EOF --------------- ○ ×

n : 数字   a : 英字   b : 英数字または アンダースコア( _ ) ○ : 可能

c :英数字または特殊記号  x :式(配列引数)  y :変数の型   i:入出力タイプ × : 不可能

・ SEND 文を途中停止し再起動した場合は、下記に注意してください。

1. RS-232C / Ethernet から読み込む場合(SEND CMU TO XXX / SEND ETH TO XXX)

受信バッファの途中まで読み出ししていた状態で途中停止した場合、取得したデータは

破棄されます。

2. RS-232C / Ethernet に書込む場合(SEND XXX TO CMU / SEND XXX TO ETH)

送信バッファに途中まで書き込んでいた状態で途中停止した場合、再度初めからデータ

を書き込みます。

SAMPLE

SEND PGM TO CMU ・・・・・・・・・・・・・・・・ ユーザープログラムをすべて RS-232Cポートか

ら出力 SEND <PRG1> TO CMU ・・・・・・・・・・・ プログラム名 PRG1を RS-232Cポートから出力 SEND CMU TO PNT ・・・・・・・・・・・・・・・・ RS-232Cポートからポイントデータファイルを入力 SEND "T1" TO CMU ・・・・・・・・・・・・・・ "T1"文字列を RS-232Cポートから出力 SEND CMU TO A$ ・・・・・・・・・・・・・・・・・ RS-232Cポートから変数 A$に文字列データを入力

 参照  詳しくは、10 章「データファイル詳細」を参照してください。

関連 OPEN, CLOSE, SETGEP, GEPSTS

MEMO

8

8-190 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

106 SERVOサーボ状態をコントロールする

形式

SERVO[ロボット番号] ON (軸番号)

OFF FREE

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6(複数指定不可。省略した場合、全軸指定)

 意味  指定された番号の軸または全軸の、サーボやブレーキのオン / オフをコントロールし

ます。

SERVO 命令 サーボ モータ電源ダイナミックブレーキ

電磁ブレーキ

ON ON ON OFF OFF

OFF OFFOFF

( 全軸サーボオフ時のみ)

ON ON

FREE OFF 直前の状態を継続 OFF OFF

・ この命令文は、指定ロボットの全軸の動作終了後(公差内に位置決めされた後)実行されます。

・ モータ電源とはコントローラ内部にある、ロボット(モータ)に電力を供給する為の電源ユ

ニットです。

・ ダイナミックブレーキとはサーボオフ時にモータに発生する電力を使って、モータを制動す

るブレーキ方式です。

SAMPLE

SERVO ON ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の全軸のサーボをオンする

SERVO OFF ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の全軸のサーボをオフするブレーキ付き

の軸はブレーキがかかってロックされる

SERVO FREE(3) ・・・・・・・・・・・・・・・・・・・ ロボット 1の第 3軸のサーボをオフし、ブレーキ

を解除する

c 注意

・・ロボットの動作範囲内での作業はサーボオフするだけでなく、必ず非常停止状態で行なってください。

・・電磁ブレーキとは、主に垂直軸の落下防止目的として、ブレーキ仕様のロボットに取り付けられているブレーキを指します。SERVO FREE 命令を垂直軸に対して実行すると、ブレーキが解除され軸が落下し危険ですので注意してください。

MEMO

8

SET ● 8-191

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

107 SET指定されたポートのビットをオンする

形式

SET DOm(b,・・・,b) ,時間

DO (mb,・・・,mb) MOm(b,・・・,b) MO (mb,・・・,mb) TOn(b,・・・,b) TO (nb,・・・,nb) LOn(b,・・・,b) LO (nb,・・・,nb) SOm(b,・・・,b) SO (mb,・・・,mb)

 値  m:ポート番号 ・・・・・・・・・・・

n:ポート番号 ・・・・・・・・・・・

b:ビット指定 ・・・・・・・・・・・

時間・・・・・・・・・・・・・・・・・・・・・

2 〜 7, 10 〜 17, 20 〜 27

0、1

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に

記述。

10 〜 3600000(単位:ms)

 意味  指定されたポートのビットをオンします。

パルス出力時間(単位:ms)を 時間 で指定します。出力がオンしている間、プログ

ラムは実行待ち状態となります。指定された時間が経過後、出力をオフし、実行終

了します。

ハード的に存在しないポートを指定した場合、何も出力されません。

SAMPLE

SET DO2() ・・・・・・・・・・・・・・・・・・・・・・・・・ DO(27〜 20)がオンする SET DO2(6,5,1),200 ・・・・・・・・・・・ DO(26,25,21)が 200msオンする SET DO(37,35,27,20) ・・・・・・・・・・・ DO(37,35,27,20)がオンする

関連 RESET, DO, MO, SO, TO, LO

c 注意

・・DO, SO ともに、ポート 0および 1 への出力はできません。

参照参照

・・ビット指定については、 3 章「10 ビット指定」を参照してください。

8

8-192 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

108 SETGEP汎用イーサネットポートを設定する

形式

SETGEP m, n, “IPアドレス”, ppppp, e, t

 値  m: 汎用イーサネット番号 ・・ 0 〜 7

n: モード・・・・・・・・・・・・・・・・・ 0 : サーバー、 1 : クライアント

IP アドレス ・・・・・・・・・・・・・・・ 0.0.0.0 〜 255.255.255.255

ppppp: ポート番号 ・・・・・・・・ 0 〜 65535

e: 終端文字コード・・・・・・・・・ 0: CRLF、 1: CR

t: ポートタイプ ・・・・・・・・・・・ 0:TCP

 意味  指定した汎用イーサネットポートの設定を行います。設定した汎用イーサネットポー

トは OPEN で通信ポートを開き、CLOSE で通信ポートを閉じることができます。

IP アドレス は、前後を “ ”(ダブルクォーテーション)で囲みます。

モードでサーバーを選択した場合、IP アドレス は省略可能ですが、IP アドレス前後の

“ (ダブルクォーテーション)は記述する必要があります。

モードでサーバーを選択した場合

・IP アドレス:コントローラに設定されている IP アドレスを使用して通信を行う為、IP アドレ

スの設定は不要です(IP アドレス で設定した IP アドレスは無効となります)。

・ポート番号:コントローラに設定しているものとは異なる番号を設定します。

モードでクライアントを選択した場合

・IP アドレス/ポート番号:接続先サーバーの IP アドレスとポート番号を設定します。

SAMPLE

IPADRS$=“192.168.0.100” ・・・・・ 接続先サーバーのIPアドレス(192.168.0.100)を変数 IPADRS$に代入

SETGEP 1, 1, IPADRS$, 100, 0, 0 ・・・・・・・・・・・・・・・・・・・・・・・・・・・汎用イーサネット番号 1を以下に設定

 モード:クライアント

 接続先サーバーの IPアドレス:192.168.0.100  接続先サーバーのポート番号:100

 終端文字コード:CRLFOPEN GP1 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 汎用イーサネットポート番号 1で指定したサーバー

と接続する

SEND “123” TO GP1 ・・・・・・・・・・・・・・ 汎用イーサネットポート番号 1から文字列 “123” を送信する

CLOSE GP1 ・・・・・・・・・・・・・・・・・・・・・・・・・ 汎用イーサネットポート番号 1で指定したサーバー

と切断する

関連 OPEN, CLOSE, SEND, GEPSTS

MEMO

8

SGI ● 8-193

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

109 SGI指定された整数型静的変数に値を代入/取得する

形式

SGIn=xxxxxx

 値  n:整数型静的変数番号 ・・・・・ 0 〜 31

xxxxxx ・・・・・・・・・・・・・・・・・・・・ -2147483648 〜 2147483647 の整数値

 意味  n で指定した整数型静的変数 (SGI) に xxxxxx を代入します。xxxxxx に小数点が付い

た実数値が設定された場合は、小数点以下を切り捨てた値を代入します。

SAMPLE

SGI1=300 ・・・・・・・・・・・・・・・・・・・・・・・・・・ SGI1に 300 を代入

関数

形式

SGIn

 値  n:整数型静的変数番号 ・・・・・ 0 〜 31

 意味  n で指定した整数型静的変数 (SGI) の値を取得します。

SAMPLE

A%= SGI1 ・・・・・・・・・・・・・・・・・・・・・・・・・・ SGI1の値を変数 A% に代入

関連 SGR

8

8-194 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

110 SGR指定された実数型静的変数に値を代入/取得する

形式

SGRn=xxxxxx

 値  n:実数型静的変数番号 ・・・

xxxxxx・・・・・・・・・・・・・・・・・・・

0 〜 31

1. 単精度実数

範囲:-999,999.9 から +999,999.9 までの実数

・整数と小数を足して7桁以下 (例:.0000001も可能 )

2. 指数形式の単精度実数

範囲:-1.0 × 1038 〜 +1.0 × 1038

・仮数は整数と小数を足して 7 桁以下

 意味  n で指定した実数型静的変数 (SGR) に xxxxxx を代入します。

SAMPLE

SGR1=1320.355 ・・・・・・・・・・・・・・・・・・・・ SGR1に 1320.355 を代入

関数

形式

SGRn

 値  n:実数型静的変数番号 ・・・・・ 0 〜 31

 意味  n で指定した実数型静的変数 (SGR) の値を取得します。

SAMPLE

A!= SGR1 ・・・・・・・・・・・・・・・・・・・・・・・・・・ SGR1の値を変数 A! に代入

関連 SGI

8

SHARED ● 8-195

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

111 SHARED変数を引き渡さずにサブプロシージャで参照可能にする

形式

SHARED 変数 (),変数()...

 意味  プログラムレベルコードで宣言した変数を仮引数として引き渡さないで、サブプロ

シージャで参照可能にします。

変数 にサブプロシージャが使用するプログラムレベルの変数を指定します。

単純変数名または後ろに括弧()が付いた配列変数名を指定します。配列を指定した

場合は、その配列全体が対象です。

・ サブプロシージャに変数を引き渡すには、通常は仮引数を指定しますが、SHARED を使用

することにより、仮引数を指定することなく参照が可能になります。

・ SHARED 文で共有できる変数は、同じプログラムレベル内にあるプログラムレベルコード

とサブプロシージャ間のみです。

SAMPLE

DIM Y!(10) X!=2. 5 Y!(10)=1. 2 CALL *DISTANCE CALL *AREA HALT SUB *DISTANCE SHARED X!,Y!( ) ・・・・・・・・・・・・ SHAREDで変数の参照を宣言

PRINT X!^2+Y!(10)^2 ・・・・・ 変数は共有される END SUB SUB *AREA DIM Y!(10) PRINT X!*Y!(10) ・・・・・・・・・・・・ 変数は共有されない END SUB

関連 SUB, END SUB

n 要点

・・プログラムレベルコードとは、サブプロシージャ外に書かれたプログラムの事です。

MEMO

8

8-196 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

112 SHIFTシフト座標を設定する

形式

SHIFT [ロボット番号] シフト変数

OFF

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  ロボット番号 で指定されたロボットに シフト変数 で指定されるシフト座標を設定し

ます。

OFF を設定すると、シフト変数による座標変換を行わなくなります。

・ この命令文は、軸の動作終了後(公差内に位置決めされた後)実行されます。

・ OFF の場合は、X オフセットに 0.000、Y オフセットに 0.000、Z オフセットに 0.000、回転

方向オフセットに 0.000 のシフト変数を設定した場合と同じ設定になります。

SAMPLE

SHIFT S1 ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のシフト座標をシフト 1に変更

MOVE P,P10 SHIFT S[A] ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のシフト座標を変数 Aで指定した

シフト座標に変更

MOVE P,P20 HALT

関連 シフト定義文 , シフト代入文

MEMO

8

SI ● 8-197

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

113 SI指定された SI の状態を取得する

形式

LET 式 = SIm(b, ・・・, b)LET 式 = SI (mb, ・・・, mb)

 値  m:ポート番号 ・・・・・・・・・・・

b:ビット指定 ・・・・・・・・・・・

0 〜 7, 10 〜 17, 20 〜 27

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に

記述。

 意味  mで指定した SI ポートの入力状態を取得します。

SAMPLE

A%= SI2() ・・・・・・・・・・・・・・・・・・・・・・・・・ SI(27) から SI(20) までの入力状態を変

数 A% に代入

A%= SI0(6, 5, 1) ・・・・・・・・・・・・・・・ SI(06), SI(05), SI(01) の入力状態

を変数 A%に代入 (上記の信号がすべて1(ON)の時、A%=7となる)

A%=SI(37,35,27,10) ・・・・・・・・・・・・ SI(37), SI(35), SI(27), SI(10) の入力状態を変数 A% に代入 ( 上記の信号の

SI(27)以外すべて 1(ON)の時、A%=13となる)

8

8-198 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

114 SID指定されたシリアル入力のワード情報・( ダブルワード )・を取得する

形式

LET SID(m)

 値  m:ポート番号 ・・・・・・・・・・・・ 2, 4, 6, 8, 10, 12, 14

 意味  m で指定した SID ポートの値を取得します。

取得範囲は -2,147,483,648(&H80000000) 〜 2,147,483,647(&H7FFFFFFF) です。

・ 符号付きのダブルワードデータとして扱われます。

・ 指定したポートが存在しない場合、0 が入力されます。

・ データの配置は下位のポート番号のデータが下位のアドレスに配置されます。例えば

SOW(2)=&H2345, SOW(3)=&H0001 の場合、SOD(2)=&H00012345 となります。

SAMPLE

A%=SID(2) ・・・・・・・・・・・・・・・・・・・・・・・・・ SIW(2), SIW(3) の入力状態を変数 A%に代入

A%=SID(14) ・・・・・・・・・・・・・・・・・・・・・・・・ SIW(14), SIW(15) の入力状態を変数 A%に代入

関連 SIW

MEMO

8

SIN ● 8-199

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

115 SIN正弦値を求める

形式

SIN(式)

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 角度(単位:ラジアン)

 意味  式 の値に対する正弦値を与えます。

SAMPLE

A(0)=SIN(B*2+C) ・・・・・・・・・・・・・・・・式 B*2+Cの正弦値を配列 A(0)に代入

A(1)=SIN(DEGRAD(30)) ・・・・・・・・ 30.0°の正弦値を配列 A(1)に代入

関連 ATN, COS, DEGRAD, RADDEG, TAN

8

8-200 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

116 SIW指定されたシリアル入力のワード情報を取得する

形式

LET SIW(m)

 値  m:ポート番号 ・・・・・・・・・・・・ 2 〜 15

 意味  m で指定した SIW ポートに値を取得します。

取得範囲は 0 (&H0000) 〜 65,535 (&HFFFF) です。

・ 符号無しのワードデータとして扱われます。

・ 指定したポートが存在しない場合、0 が入力されます。

SAMPLE

A%=SIW(2) ・・・・・・・・・・・・・・・・・・・・・・・・・ SIW(2) の入力状態を変数 A%に代入

A%=SIW(15) ・・・・・・・・・・・・・・・・・・・・・・・・ SIW(15) の入力状態を変数 A%に代入

関連 SID

MEMO

8

Sn ● 8-201

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

117 Snシフト座標を定義する

形式

Sn = x y z r

 値  n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 39

x, y, z, r ・・・・・・・・・・・・・・・・・・・ -99,999.99 〜 99,999.99

 意味  ロボットの動作する座標をシフトさせるためのシフト座標を定義します。座標単位

はミリのみです(パルスは使用できません)。

1. n は、シフト番号を示します。

2. x 〜 r の入力データは、スペース(空白)で区切ります。

3. x 〜 r の入力データは、ミリ単位と認識します。

4. x 〜 z は直交座標系の x, y, z 座標シフト量に、r は xy 座標の回転シフト量に対応

します。

SAMPLE

S0 = 0.000 0.000 0.000 0.000S1 = 100.000 200.000 50.000 90.000P3 = 100.000 0.000 0.000 0.000 0.000 0.000SHIFT S0 MOVE P,P3 SHIFT S1 MOVE P,P3 HALT

関連 シフト代入文 , SHIFT

n 要点

・・入力は全て定数のみとなります。

・・シフト座標定義文を実行中にコントローラの電源が遮断された場合、“9.706 : シフトチェックサムエラー”などのメモリ関連のエラーが発生する場合があります。

8

8-202 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

118 SOシリアルポートに指定された値を出力または出力状態を取得する

形式

1. LET SOm(b,・・・,b) = 式2. LET SO (mb,・・・,mb) = 式

 値  m:ポート番号 ・・・・・・・・・・・

b:ビット指定 ・・・・・・・・・・・

2 〜 7, 10 〜 17, 20 〜 27

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に

記述。

 意味  指定された値を SO ポートに出力します。

出力されるのは、左辺で指定されたビットに対して、 値 を整数化したときの下位ビッ

トとなります。

存在しないポートを指定した場合、何も出力されません。

SAMPLE

SO2()=&B10111000 ・・・・・・・・・・・・・ SO(27,25,24,23)がオンし、 SO(26,22,21,20)がオフする

SO2(6,5,1)=&B010 ・・・・・・・・・・・・・ SO(25)がオンし、SO(26,21)がオフする SO3()=15 ・・・・・・・・・・・・・・・・・・・・・・・・・ SO(33,32,31,30)がオンし、

SO(37,36,35,34)がオフする

SO(37,35,27,20)=A ・・・・・・・・・・・・・ SO(37,35,27,20)に変数 Aを整数化したと

きの下位 4ビットの内容を出力

関数

形式

LET SOm(b,・・・.b)LET SO(mb,・・・,mb)

 値  m:ポート番号 ・・・・・・・・・・・

b:ビット指定 ・・・・・・・・・・・

0 〜 7, 10 〜 17, 20 〜 27

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に

記述。

 意味  指定された SO ポートの出力状態を示します。

SAMPLE

A%= SO2() ・・・・・・・・・・・・・・・・・・・・・・・・・ SO(27) から SO(20) までの出力状態を変

数 A% に代入

A%= SO0(6, 5, 1) ・・・・・・・・・・・・・・・ SO(06), SO(05), SO(01) の 出

力状態を変数 A%に代入 (上記の信号がすべて1(ON)の時、A%=7となる)

A%=SO(37,35,27,10) ・・・・・・・・・・・・ SO(37), SO(35), SO(27), SO(10) の出力状態を変数 A% に代入 ( 上記の信号の

SO(27)以外すべて 1(ON)の時、A%=13となる)

関連 RESET, SET

c 注意

・・SO0() と SO1() への出力はできません。

参照参照

・・ビット指定については、 3 章「10 ビット指定」を参照してください。

8

SOD ● 8-203

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

119 SOD指定されたシリアル出力のワード情報・( ダブルワード )・を出力または出力状態を取得する

形式

LET SOD(m) = 式

 値  m:ポート番号 ・・・・・・・・・・・・ 2, 4, 6, 8, 10, 12, 14

 意味  m で指定した SOD ポートに値を出力します。

式 で 指 定 す る 出 力 範 囲 は -2,147,483,648(&H80000000) 〜 2,147,483,647

(&H7FFFFFFF) です。

・ 符号付きのダブルワードデータとして扱われます。

・ 実際にシリアルポートが存在しない場合、外部へは出力されません。

・ データの配置は下位のポート番号のデータが下位のアドレスに配置されます。例えば

SOW(2)=&H2345, SOW(3)=&H0001 の場合、SOD(2)=&H00012345 となります。

SAMPLE

SOD(2)=&H12345678 ・・・・・・・・・・・・・・ SOD(2)に &H12345678 を出力

SOD(4)=1048575 ・・・・・・・・・・・・・・・・・・ SOW(4)に 1048575(&HFFFFF) を出力

SOD(2)=A% ・・・・・・・・・・・・・・・・・・・・・・・・・ SOW(2) に変数 A%の値を出力

関数

形式

LET SOD(m)

 値  m:ポート番号 ・・・・・・・・・・・・ 2, 4, 6, 8, 10, 12, 14

 意味  mで指定した SOD ポートの出力状態を取得します。

SAMPLE

A%=SOD(2) ・・・・・・・・・・・・・・・・・・・・・・・・・ SOD(2)の出力状態を変数 A% に代入

関連 SOW

MEMO

8

8-204 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

120 SOW指定されたシリアル出力のワード情報を出力または出力状態を取得する

形式

LET SOW(m) = 式

 値  m:ポート番号 ・・・・・・・・・・・・ 2 〜 15

 意味  m で指定した SOW ポートに値を出力します。

式 で指定する出力範囲は 0 (&H0000) 〜 65,535 (&HFFFF) です。

ただし、負の値を出力した場合、16 進数に変換した下位ワード情報が出力されます。

例:「SOW(2)= - 255」では、- 255 (&HFFFFFF01) の内容を SOW(2) に代入

- 255 は負の値なので、下位のワード情報 (&HFF01) が代入される

・ 符号無しのワードデータとして扱われます。

・ 実際にシリアルポートが存在しない場合、外部へは出力されません。

・ 出力範囲を越える値を代入した場合、下位の 2 バイト情報が出力されます。

SAMPLE

SOW(2) = &H0001 ・・・・・・・・・・・・・・・・ SOW(2) に &H0001 を出力

SOW(3) = 255 ・・・・・・・・・・・・・・・・・・・・・ SOW(3) に 255(&H00FF) を出力

SOW(15) = A% ・・・・・・・・・・・・・・・・・・・・・ SOW(15)に変数 A% の内容を出力。変数 A%の

値が出力範囲を越えている場合、下位のワード情報

を出力

関数

形式

LET SOW(m)

 値  m:ポート番号 ・・・・・・・・・・・・ 2 〜 15

 意味  mで指定した SOW ポートの出力状態を取得します。

SAMPLE

A%=SOW(2) ・・・・・・・・・・・・・・・・・・・・・・・・・ SOW(2)の出力状態を変数 A% に代入

関連 SOD

MEMO

8

SPEED ● 8-205

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

121 SPEEDプログラム移動速度を変更する

形式

SPEED [ロボット番号] 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  ロボット番号 で指定したロボットのプログラム移動速度を 式 で指定した値に変更し

ます。

指定されたロボットの全ての軸(ロボット構成軸と付加軸いずれも)の全てのスピー

ドが変更されます。

動作速度は、プログラミングボックスの操作や ASPEED 命令によって設定された自

動移動速度と SPEED 命令によって指定されたプログラム移動速度の積によって決ま

ります。

動作速度 = 自動移動速度×プログラム移動速度

例:

自動移動速度・・・・・・・・・・・80%

プログラム移動速度・・・・・50%

移動速度 = 40%(80% × 50%)

SAMPLE

ASPEED 100 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の自動移動速度を 100% に変更

SPEED 70 ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のプログラム移動速度を 70% に変更

MOVE P,P0 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置から P0へ 70%(=100× 70)の速度で移動

SPEED 50 ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1のプログラム移動速度を 50% に変更

MOVE P, P1 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1を現在位置から P1へ 50%(=100× 50)の速度で移動

MOVE P,P2, S=10 ・・・・・・・・・・・・・・・・ ロボット 1を現在位置から P2へ 10%(=100× 10)の速度で移動

HALT

関連 ASPEED

n 要点

・・自動移動速度 プログラミングボックスの操作または ASPEED 命令によって設定

・・プログラム移動速度 SPEED 命令またはMOVE、DRIVE の SPEED オプションによって設定

8

8-206 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

122 SQR平方根を求める

形式

SQR(式)

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0 または正の数。

 意味  式 で指定された値の平方根を与えます。 式 の値が負の数の時はエラーになります。

SAMPLE

A=SQR(X^2+Y^2) ・・・・・・・・・・・・・・・・・・ X^2+Y^2の平方根を変数 Aに代入

8

START ● 8-207

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

123 START新規タスクを起動する

形式

START <プログラム名> ,Tn, p PGm

 値  m:プログラム番号 ・・・・・・・・ 1 〜 100

n:タスク番号 ・・・・・・・・・・・・・ 1 〜 16

p:タスク優先順位 ・・・・・・・・・ 1 〜 64

 意味  指定されたプログラムをタスク n、優先順位 p で起動します。

タスク番号 n を省略した場合、起動していないタスクのうち一番若い番号のタスク

が自動的に指定されます。タスク優先順位 p を省略した場合、32 となります。

優先順位は、値が小さいほど高く、大きいほど低くなります(高い 1 〜低い:64)。

タスク優先順位の高いタスクが RUNNING 状態の場合、優先順位の低いタスクは

READY 状態のままとなります。

プログラム名は、< >(アングルブラケット)で囲みます。

SAMPLE

START <SUB_PGM>,T2,33 *ST: MOVE P,P0,P1 GOTO *ST HALT

プログラム名 :SUB_PGM‘SUBTASK ROUTINE *SUBTASK: P100 = WHERE IF LOC3(P100) > 10000 THEN DO(20) = 1 ELSE DO(20) = 0 ENDIF GOTO *SUBTASKEXIT TASK

関連 CUT, EXIT TASK, RESTART, SUSPEND, CHGPRI

8

8-208 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

124 STR$数値を文字列に変換する

形式

STR$(式)

 意味  式 に指定した値を、文字列に変換します。式 には、整数型および実数型の数値を指

定できます。

SAMPLE

B$=STR$(10.01)

関連 VAL

8

SUB 〜 END・SUB ● 8-209

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

125 SUB〜 END SUBサブプロシージャを定義する

形式

SUB ラベル (仮引数 ,仮引数 ...) 命令ブロック

END SUB

 意味  サブプロシージャを定義します。

サブプロシージャは CALL 文で実行することができます。END SUB 文を実行すると、

呼び出した CALL 文の次の命令にジャンプします。定義は下記の通りです。

1. サブプロシージャ内で宣言された変数は、すべてローカル変数となり、サブプ

ロシージャ内でのみ有効となります。ローカル変数は、サブプロシージャが呼

び出されるたびに初期化されます。

2. グローバル変数(プログラムレベル)を使用する場合、SHARED 文を使用します。

3. 変数の引渡しを行う場合、仮引数 を使用します。仮引数 は、コンマ(,)で区切

ります。

4. 仮引数 は、変数名と配列全体(配列名の後ろに()がついたもの)が有効です。配

列の要素(配列名の後に(添字)がついたもの)を指定するとエラーとなります。

・ サブプロシージャ内でサブプロシージャを定義することはできません。

・ サブプロシージャ内でラベルを定義することはできますが、GOTO や GOSUB などで、サ

ブプロシージャ外のラベルにジャンプすることはできません。

・ ローカル変数は PRINT 文、SEND 文では使用できません。

SAMPLE 1

A=1CALL *TESTPRINT AHALT’SUB ROUTINE: TESTSUB *TEST A=50 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 上で使用している Aとは別の変数として扱われる

END SUB

・ 上記の例で、プログラムレベルの変数 A とサブプロシージャ内の変数 A の関係はありません。

したがって、3 行目の PRINT 文で表示される値は「1」となります。

MEMO

MEMO

8

8-210 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8

8-210 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

125 SUB〜 END SUB

SAMPLE 2

X% = 4 Y% = 5 CALL *COMPARE( REF X%, REF Y% ) PRINT X%,Y% Z% = 7 W% = 2 CALL *COMPARE( REF Z%, REF W% ) PRINT Z%,W% HALT ’SUB ROUTINE: COMPARE SUB *COMPARE( A%, B% ) IF A% < B% THEN TEMP% = A% A% = B% B% = TEMP% ENDIF END SUB

・ 上記の例では、それぞれ異なる変数を引数として渡して、サブプロシージャを 2 回呼び出し

ています。

関連 CALL, EXIT SUB, SHARED

MEMO

8

SUSPEND ● 8-211

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

126 SUSPEND実行中の他のタスクを一時停止する

形式

SUSPEND Tn <プログラム名>

PGm

 値  n:タスク番号 ・・・・・・・・・・・・・ 1 〜 16

m:プログラム番号 ・・・・・・・・ 1 〜 100

 意味  実行中の他のタスクを一時停止させます。タスクは実行しているプログラムの名前、

または番号により指定することが可能です。

自タスクよりも優先順位の高いタスクに対しても使用できます。

プログラム名は< >(アングルブラケット)で囲みます。

・ 起動していないタスク(プログラム)を指定して実行した場合、エラーが発生します。

SAMPLE

START <SUB_PGM>,T2 SUSFLG=0 *L0: MOVE P,P0 MOVE P,P1 WAIT SUSFLG=1 SUSPEND T2 SUSFLG=0 GOTO *L0 HALT

プログラム名 :SUB_PGM’SUBTASK ROUTINE *SUBTASK: WAIT SUSFLG=0 DO2(0)=1 DELAY 1000 DO2(0)=0 DELAY 1000 SUSFLG=1 GOTO *SUBTASK EXIT TASK

関連 CUT, EXIT TASK, RESTART, SUSPEND

MEMO

8

8-212 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8

8-212 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

127 SWI実行プログラムを切り替える

形式

SWI <プログラム名>

 意味  現在実行中のプログラムから、指定されたプログラムへ切り替え、第 1 行から実行

します。

プログラムを切り替えた時、出力変数の状態は変わりませんが、動的変数および配

列変数はクリアされます。

プログラム名は、< >(アングルブラケット)で囲みます。

・ 指定されたプログラムが存在しない場合は、“3.203:プログラムなし(コード:

&H0003&H00CB)”のエラーが発生し、運転を停止します。

SAMPLE

SWI <ABC> ・・・・・・・・・・・・・・・・・・・・・・・・・ 実行プログラムを ABCに切り換える

MEMO

8

TAN ● 8-213

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8

TAN ● 8-213

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8

TAN ● 8-213

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8

TAN ● 8-213

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8

TAN ● 8-213

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8

TAN ● 8-213

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

128 TAN正接値を求める

形式

TAN(式)

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 角度(単位:ラジアン)

 意味  式 の値に対する正接値を与えます。式 の値が負の数の時はエラーになります。

SAMPLE

A(0)=B-TAN(C) ・・・・・・・・・・・・・・・・・・・ 変数 Bと変数 Cの正接値の差を配列 A(0)に代入

A(1)=TAN(DEGRAD(20)) ・・・・・・・・ 20.0°の正接値を配列 A(1)に代入

関連 ATN, COS, DEGRAD, RADDEG, SIN

8

8-214 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

129 TCOUNTERタイマ・カウンタ

形式

TCOUNTER

 意味  TCOUNTER 変数をリセットされた時点から、1ms 毎にカウントアップされた値を出

力します。

値は 2,147,483,647 までカウントアップした後、0 に戻ります。

SAMPLE

MOVE P,P0WAIT ARMRESET TCOUNTERMOVE P,P1WAIT ARMA = TCOUNTERPRINT TCOUNTER ・・・・・・・・・・・・・・・・・ P0から P1の公差に入るまでの移動時間をプログ

ラミングボックスなどに表示する

関連 RESET

8

TIME$ ● 8-215

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

130 TIME$現在時刻を取得する

形式

TIME$

 意味  現在時刻を hh:mm:ss の形式の文字列で与えます。

hh は時間を、mm は分を、ss は秒を意味します。

時刻の設定は、システムモードの初期処理で行います。

SAMPLE

A$=TIME$PRINT TIME$

関連 DATE$, TIMER

8

8-216 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

131 TIMER現在時刻を取得する

形式

TIMER

 機能  現在時刻を午前 0 時からの秒で取得します。プログラムの運転時間の測定等に使用

できます。

時刻の設定は、システムモードの初期処理で行います。

SAMPLE

A%=TIMERFOR B=1 TO 10MOVE P,P0MOVE P,P1NEXTA%=TIMER-A%PRINT A%/60;":";A% MOD 60HALT

関連 TIME$

c 注意

・・内部で使用している時計は、実際の時刻に対して誤差が生じる場合があります。

8

TO ● 8-217

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

132 TOTOポートに指定した値を出力または出力状態を取得する

形式

1. LET TOm(b,・・・,b) = 式2. LET TO (mb,・・・,mb) = 式

 値  m:ポート番号 ・・・・・・・・・・・

b:ビット指定 ・・・・・・・・・・・

0、1

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に

記述。

 意味  指定された値を TO ポートに出力します。出力される値は、左辺で指定されたビット

に対して、式 の値を整数化したときの下位ビットとなります。

SEQUENCE プログラムにて使用されているビットに対しては SEQUENCE プログラ

ムが RUN 中はそちらの設定(オン、オフ状態)が優先されます。

SAMPLE

TO0() = &B00000110

関数

形式

LET TOm(b,・・・,b)LET TO(mb,・・・,mb)

 値  m:ポート番号 ・・・・・・・・・・・

b:ビット指定 ・・・・・・・・・・・

0、1

0 〜 7(省略した場合、8 ビット全てが対象)

複数のビット指定を行う場合、左から降順(大→小)に

記述。

 意味  指定された TO ポートの出力状態を取得します。

SAMPLE

A%=TO0() ・・・・・・・・・・・・・・・・・・・・・・・・・・ TO(07) から TO(00) までの出力状態を変

数 A%に代入

A%=TO0(6, 5, 1) ・・・・・・・・・・・・・・・・ TO(06), TO(05), TO(01) の

出力状態を変数 A%に代入 (上記の信号すべてが 1(ON)の時、A%=7となる)

A%=TO(17,15,00) ・・・・・・・・・・・・・・・・ TO(17), TO(15), TO(00) の出力状態

を変数 A%に代入 (上記の信号の TO(15)以外

すべて 1(ON)の時、A%=5となる )

関連 RESET, SET

8

8-218 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

133 TOLE公差パラメータを設定/取得する

形式

1. TOLE [ロボット番号] 式2. TOLE [ロボット番号] (軸番号)= 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 設定されているモータによって異なる(単位:パルス)

 意味  ロボット番号 で指定されたロボット軸の公差パラメータを 式 の値(単位:パルス)

に変更します。

形式 1:指定されたロボットの全軸を変更します。

形式 2:指定されたロボットの 軸番号 で指定された軸のみを変更します。

・ この命令文は、指定軸の動作完了後(公差内に位置決めされた後)に実行されます。

関数

形式

TOLE [ロボット番号](軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボット軸のうち 軸番号 で指定される軸の公差パラメー

タの値を与えます。

SAMPLE

’CYCLE WITH DECREASING TOLERANCEDIM TOLE(5)FOR A=200 TO 80 STEP -20 GOSUB *CHANGE_TOLE MOVE P,P0 MOVE P,P1 NEXT A C=TOLE(2) ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の第 2軸の公差パラメータを変数 Cに

代入

HALT *CHANGE_TOLE: FOR B=1 TO 4 TOLE(B)=A NEXT B RETURN

MEMO

8

TORQUE ● 8-219

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

134 TORQUE最大トルク指令値を設定/取得する

形式

TORQUE [ロボット番号] (軸番号)= 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100(単位:%)

 意味  ロボット番号 で指定されたロボットの 軸番号 で指定される軸の最大トルク指令値を

式 の値に変更し、トルク制限をかけます。変更した値は、次の MOVE 文や DRIVE

文などの移動命令を実行した時に有効になります。パラメータ値は変更しません。

トルク制限の解除条件は以下の通りです。

・ 同じ軸に対して TORQUE 命令を実行する。

・ コントローラの電源を遮断し再投入する。

・ 軸極性パラメータの変更、あるいはパラメータの初期化を行う。

・ サーボオフ状態になる。

トルク制限値が一時的に変更される条件は以下の通りです。

・ 原点復帰動作中

・ PUSH 文実行中 (進行方向のみ PUSH 文指定トルクに変更されます。

反対方向はトルク制限値のまま変更されません。)

トルク制限値は上記動作時に一時的に変更され、動作終了後 MOVE 文など次の移動

命令実行時に TORQUE 文で指定されたトルク制限値に戻ります。

・ TORQUE 文は軸の回転方向と反対方向の両方にトルク制限をかけますが、PUSH 文は進

行方向にのみトルク制限をかけます。

関数

形式

TORQUE [ロボット番号] (軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボット 軸番号 で指定される軸のトルク設定値を与えま

す。

c 注意

・・指定した値が小さすぎると、軸が移動できない場合があります。この場合は、必ず非常停止状態にしてから作業を行なってください。

・・指定された値が定格トルク以下になる場合、障害物に衝突したときにエラーにならない場合があります。

MEMO

8

8-220 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8

8-220 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8-220 ● 第 8章 ロボット言語一覧

134 TORQUE

SAMPLE

TORQUE (1) = 50 ・・・・・・・・・・・・・・・・ ロボット1の第 1軸の最大トルクを 50%に変更

DRIVE (1,P1) ・・・・・・・・・・・・・・・・・・・・・ ロボット1の第 1軸を現在位置から P1で指定され

た位置へ移動

(移動開始と同時に最大トルクが変更されます)

WAIT ARM ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット1の第 1軸の動作完了を待つ

TORQUE (1) = 100 ・・・・・・・・・・・・・・・ ロボット1の第 1軸の最大トルクを元(100%)に

戻す

MOVE P,P0 ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット1を現在位置から P0で指定された位置へ

移動

(移動開始と同時に第 1 軸の最大トルクが元

(100%)に戻ります)

関連 CURTRQ, PUSH

8

TSKPGM ● 8-221

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

135 TSKPGM指定されたタスク番号に登録されているプログラム番号を取得する

形式

TSKPGM(タスク番号)

 値  タスク番号 ・・・・・・・・・・・・・・・・ プログラム番号を取得するタスク番号

 意味  タスク番号 で指定したタスクに登録されているプログラム番号を取得します。

SAMPLE

A=TSKPGM(1) ・・・・・・・・・・・・・・・・・・・・・・ タスク 1に登録されているプログラム番号を変数 Aに代入

関連 PGMTSK, PGN

8

8-222 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

136 VAL文字列を数値に変換する

形式

VAL(文字列式)

 意味  文字列式 に指定した文字列の数値を、実際の数値に変換します。

文字列には、整数表記(2 進形式、10 進形式、16 進形式)および実数表記(通常の小

数点表記、指数形式)が使用できます。

文字列の最初の文字が +、-、& または数字以外の場合には、VAL の値は 0 になります。

文字列の中に数字を表す文字以外の文字またはスペースが入っているとその文字以

降は無視されます。

ただし、16 進表記の A 〜 F は数字とみなされます。

表記形式

16 進数 ・・・・・・・・&Hnnnn

10 進数 ・・・・・・・・nnnn

2 進数 ・・・・・・・・・&Bnnnn

小数点 ・・・・・・・・・nnn.nnn

指数 ・・・・・・・・・・・nnEmm

SAMPLE

A=VAL("&B100001")

8

WAIT ● 8-223

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

137 WAIT条件式が成立するまで待つ

形式

WAIT 条件式 ,式

 値  式 ・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 2147483647 (単位:ms)

 意味  条件式 が成立するまで待ちます。タイムアウト時間(単位 ms)は 式 で設定します。

タイムアウトの時間が経過しても WAIT の条件が成立しなかった場合、命令を終了

します。最小実行待ち時間 1ms ですが、他のタスクの実行状況により変化します。

・ 条件式が数値を表す式である場合、式の値が 0 以外の時に「真」となり、0 の時に「偽」とな

ります。

SAMPLE

WAIT A=10 ・・・・・・・・・・・・・・・・・・・・・・・・・ 変数 Aが 10になるまで待つ WAIT DI2( )=&B01010110 ・・・・・ DI(21),(22),(24),(26) が オ ン に、

DI(20),(23),(25),(27)がオフにな

るまで待つ WAIT DI2(4,3,2)=&B101 ・・・・・・ DI(22)と DI(24)がオンに、DI(23)がオ

フになるまで待つ WAIT DI(31)=1 OR DO(21)=1 DI(31)か DO(21)のどちらかがオンになるま

で待つ WAIT DI(20)=1,1000 ・・・・・・・・・・・ DI(20)がオンになるまで待つ 1秒経過しても

オンしなかった場合、命令を終了する

WAIT END_SENSOR = 1 ・・・・・・・・・・ 入出力ネーム※「END_SENSOR」がオンするま

で待つ

※入出力ネーム…ユーザが DI や DO の特定ビットにつけることができる任意の名称

・ 入出力ネームは、サポートソフト上でのみ追加・編集が可能です。プログラミングボックス

からは追加・編集できません。

関連 DRIVE, DRIVEI, MOVE, MOVEI, MOVET

MEMO

MEMO

8

8-224 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

138 WAIT ARMロボットの軸動作の完了を待つ

形式

WAIT ARM [ロボット番号] (軸番号)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

軸番号 ・・・・・・・・・・・・・・・・・・・・ 1 〜 6(複数指定不可。省略した場合、全軸指定)

 意味  ロボット番号 で指定されたロボットの軸動作の完了(公差内に位置決めされる)を待

ちます。

SAMPLE

WAIT ARM ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の動作完了を待つ WAIT ARM[2](2) ・・・・・・・・・・・・・・・・・・ ロボット 2の第 2軸の動作完了を待つ

関連 DRIVE, DRIVEI, MOVE, MOVEI, MOVET

8

WEIGHT ● 8-225

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

139 WEIGHT先端質量パラメータを設定/取得する

形式

WEIGHT [ロボット番号] 式

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

式 ・・・・・・・・・・・・・・・・・・・・・・・・ 範囲は、設定されているロボットによって異なります。

 意味  ロボット番号 で指定されたロボットの先端質量パラメータを 式 の値に変更します。

付加軸には影響しません。

関数

形式

WEIGHT [ロボット番号]

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  ロボット番号 で指定されたロボットの先端質量パラメータの値を取得します。

SAMPLE

A=5B=2C=WEIGHT ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の先端質量パラメータを変数 Cに代入

WEIGHT A ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の先端質量パラメータを変数 Aの値

(5)に変更

MOVE P,P0WEIGHT B ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の先端質量パラメータを変数 Bの値

(2)に変更

MOVE P,P1WEIGHT C ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の先端質量パラメータを元 (変数 Cの

値 ) に戻す

D=WEIGHT ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の先端質量パラメータを変数 Dに代入

HALT

8

8-226 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

140 WENDWHILE 文の命令ブロックを終了する

形式

WHILE 条件式

命令ブロック

WEND

 意味  WHILE 文で始まる命令ブロックを終了します。WHILE 文とは、必ずセットで使用し

ます。

WHILE 〜 WEND ループから、GOTO 等で他にジャンプすることもできます。

SAMPLE

A=0WHILE DI3(0)=0 A=A+1 MOVE P,P0 MOVE P,P1 PRINT "COUNTER=";AWENDHALT

関連 WHILE

8

WHERE ● 8-227

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

141 WHEREアーム現在位置(パルス座標)を取得する

形式

WHERE [ロボット番号]

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  ロボット番号 で指定されたロボットのアームの現在位置を関節座標で取得します。

SAMPLE

P10=WHERE ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の現在位置のパルス座標値を P10へ代入

関連 WHRXY

8

8-228 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

8

8-228 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

142 WHILE〜WEND条件が成立している間動作を繰り返す

形式

WHILE 条件式

命令ブロック

WEND

 意味  条件式 で指定される条件が成立している間、WHILE 文と WEND 文の間にある命令

ブロックを繰り返し実行し、WHILE 文に戻ります。

条件式 で指定される条件が成立しなくなる(偽になる)と、WEND 文の次の命令文に

ジャンプします。

条件式 で指定される条件が最初から成立していない(偽である)と、WHILE 文と

WEND 文の間の文は一度も実行せずに、WEND 文の次の文にジャンプします。

WHILE 〜 WEND ループ内から、WHILE 〜 WEND ループ外へは、GOTO 文他でジャ

ンプすることができます。

・ 条件式が数値を表す式である場合、式の値が 0 以外の時に「真」となり、0 の時に「偽」とな

ります。

SAMPLE 1

A=0WHILE DI3(0)=0 A=A+1 MOVE P,P0 MOVE P,P1 PRINT "COUNTER=";AWENDHALT

SAMPLE 2

A=0WHILE -1 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 条件式が常に真(0以外)なので永久ループになる。

A=A+1 MOVE P,P0 IF DI3(0)=1 THEN *END MOVE P,P1 PRINT "COUNTER=";A IF DI3(0)=1 THEN *ENDWEND*ENDHALT

MEMO

8

WHRXY ● 8-229

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

143 WHRXYアーム現在位置を直交座標で取得する

形式

WHRXY [ロボット番号]

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  ロボット番号 で指定されたロボットのアームの現在位置を直交座標で取得します。

SAMPLE

P10=WHRXY ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の現在位置の直交座標の値を P10へ代入

関連 WHERE

8

8-230 ● 第 8章 ロボット言語一覧

8

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

144 XYTOJ直交座標データ(ミリ)を関節座標データ (パルス)に変換する

形式

XYTOJ [ロボット番号] (ポイント式)

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

 意味  ポイント式 で表される直交座標データ(単位:mm、度)を、ロボット番号 で指定さ

れたロボットの関節座標データ(単位:パルス)に変換します。

・ 実行する時点で設定されている基準座標、シフト座標、ハンド定義に基づいて変換

されます。

・ スカラロボットの場合は、右手系 / 左手系の指定によって結果が異なります。

・ YK-TW シリーズの場合は、第 1・第 2 アーム回転数情報の指定によって結果が異

なります。

・ 関節座標データを直交座標データに変換する場合は、JTOXY を使用します。

SAMPLE

P10=XYTOJ(P10) ・・・・・・・・・・・・・・・・・・ P10をロボット 1の関節座標データに変換

第 9章

PATH 文

1 1 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 9-1

2 2 特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 9-1

3 3 使用方法 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 9-1

4 4 注意事項 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 9-2

概要 ● 9-1

8

9

10

11

12

13

1 概要

PATH 機能は、直線と円弧で構成された経路上を指定された速度で移動する機能です。移動中の

速度変動が少ないので、シーリングなどのアプリケーションに最適です。

2 特徴

■ 移動経路全体にわたって速度を一定に保つように動作します。( 停止状態からの加速区間、お

よび動作終了前の減速区間は除く ) ■ ポイント教示位置の粗密により速度が変わることがないので、ポイントティーチングが簡単で

す。 ■ 移動経路全体の移動速度を変更できるのはもちろん、スピードオプションにより経路の一部の

み速度を変更することもできます。 ■ DO オプションを使うことで、移動中の任意の区間で指定ポートに信号を出すことができます。

3 使用方法

PATH 機能を使用するには、以下のロボット言語をセットで使用する必要があります。

■ PATH SET ・・・・・・・・・・・・・・・・・・・・・・・・・・経路設定をスタートする

■ PATH(PATH L, PATH C) ・・・・・・・・・・・・・経路を設定する

■ PATH END ・・・・・・・・・・・・・・・・・・・・・・・・・・経路設定を終了する

■ PATH START ・・・・・・・・・・・・・・・・・・・・・・・実際に移動を開始する

下記のように PATH SET 文および PATH END 文で囲まれた部分にて、PATH 文を使って動作経

路の設定を行います。この時点ではロボットは動作しません。

経路設定完了後に PATH START 文が実行されると、設定された動作経路の移動が実行されます。

SAMPLE

MOVE P,P0,Z=0PATH SET ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の経路設定の開始

PATH L,P1,DO(20)[email protected] L,P2 ・

PATH C,P12,P13PATH L,P14,DO(20)[email protected] END ・・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の経路設定の終了

MOVE P,P1,Z=0 ・

MOVE P,P0,Z=0PATH START ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の PATH移動の実行

HALT

9-2 ● 第 9章 PATH 文

8

9

10

11

12

13

4 注意事項

■ 経路は、直線と円弧のポイント数の合計で 1000 個までです。

PATH L の場合は 1 ポイントで 1 直線、PATH C の場合は 2 ポイントで 1 円弧を形成するため、

(PATH L で指定されたポイント数)+(PATH C で指定されたポイント数÷ 2)で合計 1000 個

まで、経路のポイントを設定することができます。

PATH L で指定されたポイント数 10002

PATH C で指定されたポイント数+ ≦

■ PATH 移動実行 (PATH START 文実行 ) の際、ロボットは設定された経路の始点に位置決めさ

れている必要があります。

■ 円弧と直線が接続する点では、移動の方向をできるだけ一致させてください。方向が大きく変

わる場合、振動が発生したり、ロボットがエラーになることがあります。

円弧と直線が接続する点:方向が大きく変わる場合

良い例 悪い例

■ 直線と直線が接続する点では、移動時の経路が接続点の内側を通ります。また、速度が高いほ

ど内側を通ります (1)。速度によって経路を大きく変化させたくない場合は、(2) のようにポイ

ントを増やしてください。ただし、速度を下げないとエラーになることがありますので、ご注

意ください。

直線と直線が接続する点:経路の変化を抑える

(1) (2)

ポイントを増やす高速

低速

■ 指定した速度で移動できずエラーになる場合

PATH 移動開始時、停止時、および移動経路の途中で速度指定が変わる場合は、ロボットが加

速または減速を行います。このとき、ポイント間の距離が短いために指定した速度に達しない

場合や減速できない場合、動作開始前にエラーとなります。このような場合は、指定速度を下

げる必要があります。速度を下げてもエラーになってしまう場合は、加減速区間を含む直線ま

たは円弧が長くなるようにポイントを調整してください。

■ PATH 移動中の手系は、PATH 移動経路の始点での手系と同じになるようにしてください。手

系フラグが設定されているポイントに PATH 移動する場合も同様です。手系が異なる場合、

エラーとなり動作できません。

■ PATH 移動中の 第 1 アーム回転数情報と 第 2 アーム回転数情報は、PATH 移動経路の始点で

の第 1 アーム回転数情報と 第 2 アーム回転数情報と同じになるようにしてください。これら

が異なる場合、エラーとなり動作できません。

■ PATH 移動中にストップ信号等によりロボットが停止すると、実行終了とみなし、再起動をか

けても残りの経路移動は行いません。

第 10章

データファイル詳細

1 1 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 10-1

2 2 プログラムファイル ・・・・・・・・・・・・・・・・・・ 10-3

3 3 ポイントファイル ・・・・・・・・・・・・・・・・・・・・ 10-5

4 4 ポイントコメントファイル ・・・・・・・・・・・・ 10-8

5 5 ポイントネームファイル ・・・・・・・・・・・・・ 10-10

6 6 パラメータファイル ・・・・・・・・・・・・・・・・・ 10-12

7 7 シフト座標定義ファイル ・・・・・・・・・・・・・ 10-16

8 8 ハンド定義ファイル ・・・・・・・・・・・・・・・・・ 10-18

9 9 パレット定義ファイル ・・・・・・・・・・・・・・・ 10-20

10 10 汎用イーサネットポート定義ファイル ・ 10-24

11 11 入出力ネームファイル ・・・・・・・・・・・・・・・ 10-26

12 12 領域判定出力定義ファイル ・・・・・・・・・・・ 10-30

13 13 オールファイル ・・・・・・・・・・・・・・・・・・・・・ 10-32

14 14 プログラムディレクトリファイル ・・・・・ 10-34

15 15 パラメータディレクトリファイル ・・・・・ 10-36

16 16 マシンリファレンスファイル ・・・・・・・・・ 10-37

17 17 システム構成情報ファイル ・・・・・・・・・・・ 10-39

18 18 バージョン情報ファイル ・・・・・・・・・・・・・ 10-40

19 19 オプションボードファイル ・・・・・・・・・・・ 10-41

20 20 自己診断ファイル ・・・・・・・・・・・・・・・・・・・ 10-42

21 21 アラーム履歴ファイル ・・・・・・・・・・・・・・・ 10-43

22 22 メモリ残量ファイル ・・・・・・・・・・・・・・・・・ 10-45

23 23 変数ファイル ・・・・・・・・・・・・・・・・・・・・・・・ 10-46

24 24 定数ファイル ・・・・・・・・・・・・・・・・・・・・・・・ 10-52

25 25 配列変数ファイル ・・・・・・・・・・・・・・・・・・・ 10-53

26 26 DI ファイル ・・・・・・・・・・・・・・・・・・・・・・・・・ 10-55

27 27 DO ファイル ・・・・・・・・・・・・・・・・・・・・・・・・ 10-57

28 28 MO ファイル ・・・・・・・・・・・・・・・・・・・・・・・ 10-59

29 29 LO ファイル ・・・・・・・・・・・・・・・・・・・・・・・・ 10-61

30 30 TO ファイル ・・・・・・・・・・・・・・・・・・・・・・・・ 10-63

31 31 SI ファイル ・・・・・・・・・・・・・・・・・・・・・・・・・ 10-65

32 32 SO ファイル ・・・・・・・・・・・・・・・・・・・・・・・・ 10-67

33 33 SIW ファイル ・・・・・・・・・・・・・・・・・・・・・・・ 10-69

34 34 SOW ファイル ・・・・・・・・・・・・・・・・・・・・・・ 10-71

35 35 EOF ファイル ・・・・・・・・・・・・・・・・・・・・・・ 10-73

36 36 シリアルポート通信ファイル ・・・・・・・・・ 10-74

37 37 Ethernet ポート通信ファイル ・・・・・・・・・ 10-75

概要 ● 10-1

8

9

10

11

12

13

1 概要

1.1 データファイルの種類

ここでは、SEND 文やオンライン命令の READ/WRITE で使用できるデータファイルについて説

明します。データファイルは下記の 36 種類です。

区分 ファイル名 記述形式 読出し 書込み

全体 個別ファイル

ユーザー 全体ファイル ALL --------------- ○ ○

プログラム PGM <bbbbbbbb>

PGn

○ ○

ポイント PNT Pn ○ ○

ポイントコメント PCM PCn ○ ○

ポイントネーム PNM PNn ○ ○

パラメータ

PRM

/cccccccc/

#cccccccc#

\cccccccc\

○ ○

シフト定義 SFT Sn ○ ○

ハンド定義 HND Hn ○ ○

パレット定義 PLT PLn ○ ○

汎用イーサネットポート GEP GPn ○ ○

入出力ネーム ION iNMn(n) ○ ○

領域判定出力 ACO ACn ○ ○

変数・定数 変数 VAR ab...by ○ ○

配列変数 ARY ab...by(x) ○ ○

定数 ---------- “cc...c” ○ ×

ステータス プログラムディレクトリ DIR <<bbbbbbbb>> ○ ×

パラメータディレクトリ DPM --------------- ○ ×

マシンリファレンス( センサ、突き当て )

( マーク )

MRF --------------- ○ ×

ARP --------------- ○ ×

システム構成情報 CFG --------------- ○ ×

バージョン情報 VER --------------- ○ ×

オプションボード OPT --------------- ○ ×

自己診断 SCK --------------- ○ ×

アラーム履歴 LOG --------------- ○ ×

メモリ残量 MEM --------------- ○ ×

デバイス DI ポート DI() DIn() ○ ×

DO ポート DO() DOn() ○ ○

MO ポート MO() MOn() ○ ○

TO ポート TO() TOn() ○ ○

LO ポート LO() LOn() ○ ○

SI ポート SI() SIn() ○ ×

SO ポート SO() SOn() ○ ○

SIW ポート SIW() SIWn() ○ ×

SOW ポート SOW() SOWn() ○ ○

RS-232C CMU --------------- ○ ○

Ethernet ETH --------------- ○ ○

その他 ファイル終了コード EOF --------------- ○ ×

n : 数字   a : 英字   b : 英数字または アンダースコア( _ ) ○ : 可

c :英数字または特殊記号  x :式(配列引数)  y :変数の型   i:入出力タイプ × : 不可

10-2 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

1 概要

1.2 注意点

データファイルを扱う際は、下記の点に注意してください。

■ 半角文字のみ使用可能です。

■ データは全てアスキーコードに準拠したキャラクタコードの文字列で扱われます。

■ 命令文は英大文字のみです ( 英小文字は使用できません )。 ■ 全ての行は 255 文字以内でなければなりません。

■ データフォーマットの表記で、[cr/lf] は CR コード (0Dh)+LF コード (0Ah) を示します。

■ 本書では読み出しおよび書き込みの言葉を以下のデータの流れの意味で用いています。

読み出し:コントローラ → 外部通信機器 

書き込み:外部通信機器 → コントローラ

プログラムファイル ● 10-3

8

9

10

11

12

13

2 プログラムファイル

2.1 プログラム全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

PGM

 意味  • プログラム全体を示します。

• 書込みファイルの場合、プログラム番号の指定があると、新しいプログラムで置

き換えられます。

• 書き込みファイルでプログラム番号を省略した場合は、空いている一番若い番号

に割り当てられます。同名で異なるプログラム番号のプログラムがあった場合は、

古いプログラムが削除されます。

DATA FORMAT

NAME=プログラム名 [cr/lf]PGN=mmm[cr/lf]aaaaa ...aaaaaaaaaaaaaa[cr/lf] :

aaaaa ...aaaaaaaaaaaaaa[cr/lf] :

NAME=プログラム名 [cr/lf]PGN=mmm[cr/lf]aaaaa ...aaaaaaaaaaaaaa[cr/lf] :

aaaaa ...aaaaaaaaaaaaaa[cr/lf][cr/lf]

 値  a:キャラクターコード

mmm:プログラム番号 ・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100

■ プログラム名 は 32 文字以内の英数字または _(アンダースコア)で示します。

■ ファイルの最後尾には、終了を示す [cr/lf] のみの行を付けます。

SAMPLE

SEND PGM TO CMU ・・・・・・・・・・・・・・・・ プログラム全体を通信ポートから出力する

プログラム出力例 :NAME=TEST[cr/lf]PGN=1[cr/lf]PGN=1A=1[cr/lf]RESET DO2()[cr/lf]  :HALT[cr/lf][cr/lf]

10-4 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

2 プログラムファイル

2.2 プログラム単位

読出し ○

書込み ○

形式

1.<プログラム名>

2. PGmmm

 意味  • 指定プログラムを示します。

• mmm は、1 〜 100 で示します。

• プログラム名は、32 文字以内の英数字または _(アンダースコア)で示し、

< >(アングルブラケット)で囲みます。

• 1の形式でプログラム名を省略し<>とした場合、カレントプログラムが指定されます。

• 書き込みファイルにて、指定プログラム名(<プログラム名>)とデータ上のプロ

グラム名(NAME= プログラム名)が異なる場合は、エラーとなります。

DATA FORMAT

NAME=プログラム名 [cr/lf]PGN=mmm [cr/lf]aaaaa ...aaaaaaaaaaaaaa[cr/lf] :

aaaaa ...aaaaaaaaaaaaaa[cr/lf][cr/lf]

 値  a:キャラクターコード

mmm:プログラム番号 ・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100

■ プログラム名は、32 文字以内の英数字または _(アンダースコア)で記述します。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

・ プログラムの書き込みを行う場合は、必ず NAME= のあとにプログラム名を指定してくださ

い。指定しない場合はプログラムの書き込みはできません。

・ 指定したプログラム番号に別のプログラムが保存されている場合、上書きされます。

・ プログラム番号が無い場合、使用されていないプログラム番号のうち一番若い番号のプログ

ラム番号が自動的に指定されます。

・ 現在実行中のプログラムへの書き込みはできません。

・ シーケンスプログラムが実行中の場合、プログラム名「SEQUENCE」への書き込みはできません。

SAMPLE

SEND <TEST1> TO CMU ・・・・・・・・・・プログラム TEST1を通信ポートから出力する

応答 :RUN [cr/lf]NAME=TEST1[cr/lf]PGN=1[cr/lf]A=1[cr/lf]RESET DO2()[cr/lf] :HALT[cr/lf][cr/lf]END [cr/lf]

MEMO

ポイントファイル ● 10-5

8

9

10

11

12

13

3 ポイントファイル

3.1 ポイント全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

PNT

 意味  • ポイント全体を示します。

DATA FORMAT

Pmmmm= fxxxxxx fyyyyyy fzzzzzz frrrrrr faaaaaa fbbbbbb t xr yr [cr/lf]Pmmmm= fxxxxxx fyyyyyy fzzzzzz frrrrrr faaaaaa fbbbbbb t xr yr [cr/lf] :Pmmmm= fxxxxxx fyyyyyy fzzzzzz frrrrrr faaaaaa fbbbbbb t xr yr [cr/lf]Pmmmm= fxxxxxx fyyyyyy fzzzzzz frrrrrr faaaaaa fbbbbbb t xr yr [cr/lf][cr/lf]

 値  mmmm:ポイント番号 ・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 29999

f:座標の符号 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ + / ー / スペース

xxxxxx/../bbbbbb ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8 桁以内の数値

 数値にドットが含まれている場合は、ミリ単位の座標系と認識します。

 データは、1 つ以上のスペースで区切ります。

t:スカラ型ロボットの拡張設定の手系フラグ ・・・ 1:右手系/ 2:左手系

xr:YK-TW シリーズの 第 1 アーム回転数情報 ・・

 0 :ミリ→パルス変換後の角度データ x(*1)の範囲は、 -180.00°< x <= 180.00°

 1 :ミリ→パルス変換後の角度データ x(*1)の範囲は、180.00° < x <= 540.00°

 -1 :ミリ→パルス変換後の角度データ x(*1)の範囲は、-540.00°< x <= -180.00°

yr:YK-TW シリーズの 第 2 アーム回転数情報 ・・

 0 :ミリ→パルス変換後の角度データ y(*1)の範囲は、 -180.00°< y <= 180.00°

 1 :ミリ→パルス変換後の角度データ y(*1)の範囲は、180.00° < y <= 540.00°

 -1 :ミリ→パルス変換後の角度データ y(*1)の範囲は、-540.00°< y <= -180.00°

*1: 当該ポイントデータをパルスに変換したものを、各アームのメカ原点からの角度に変換した

データです。

■ 手系フラグは、スカラ型ロボット、かつ、ミリ単位の座標系を指定する場合のみ有効です。

■ 手系フラグに 1 および 2 以外の数値を指定した場合、もしくは数値指定がない場合は、手系

フラグの設定無し (0) として扱われます。

■ 第 1・第 2 アーム回転数情報は、ロボットが YK-TW シリーズ、かつ、ミリ単位座標系を指定

する場合のみ有効です。

■ 第 1・ 第 2 アーム回転数情報に、0、1、-1 以外の数値を指定した場合、もしくは数値指定が

ない場合は、0 として扱われます。

n 要点

・・ポイントデータは整数値をパルス単位、実数値をミリ単位として認識されます。

10-6 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

3 ポイントファイル

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND PNT TO CMU ・・・・・・・・・・・・・・ ポイント全体を通信ポートから出力する

応答 :RUN [cr/lf]P0 = 1 2 3 4 5 6 [cr/lf]P1 = 426.200 -160.770 0.001 337.210 0.000 0.000 0 1 0 [cr/lf]P2 = -27.570 -377.840 0.360 193.220 0.000 0.000 0 -1 0 [cr/lf] :P29999= -251.660 -419.510 0.000 -127.790 0.000 0.000 2 -1 -1 [cr/lf][cr/lf]END [cr/lf]

ポイントファイル ● 10-7

8

9

10

11

12

13

3 ポイントファイル

3.2 ポイント単位

読出し ○

書込み ○

形式

Pmmmm

 意味  • 指定ポイントを示します。

• mmmm は、0 〜 29999 で示します。

DATA FORMAT

Pmmmm= fxxxxxx fyyyyyy fzzzzzz frrrrrr faaaaaa fbbbbbb t xr yr [cr/lf]

 値  mmmm:ポイント番号 ・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 29999

f:座標の符号 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ + / ー / スペース

xxxxxx/../bbbbbb ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8 桁以内の数値

 数値にドットが含まれている場合は、ミリ単位の座標系と認識します。

 データは、1 つ以上のスペースで区切ります。

t:スカラ型ロボットの拡張設定の手系フラグ ・・・ 1:右手系/ 2:左手系

xr:YK-TW シリーズの 第 1 アーム回転数情報 ・・

 0:ミリ→パルス変換後の角度データ x(*1)の範囲は、 -180.00°< x <= 180.00°

 1:ミリ→パルス変換後の角度データ x(*1)の範囲は、180.00° < x <= 540.00°

 -1:ミリ→パルス変換後の角度データ x(*1)の範囲は、-540.00°< x <= -180.00°

yr:YK-TW シリーズの 第 2 アーム回転数情報 ・・

 0:ミリ→パルス変換後の角度データ y(*1)の範囲は、 -180.00°< y <= 180.00°

 1:ミリ→パルス変換後の角度データ y(*1)の範囲は、180.00° < y <= 540.00°

 -1:ミリ→パルス変換後の角度データ y(*1)の範囲は、-540.00°< y <= -180.00°

*1:当該ポイントデータをパルスに変換したものを、各アームのメカ原点からの角度に変換した

データです。

■ 手系フラグは、スカラ型ロボット、かつ、ミリ単位の座標系を指定する場合のみ有効です。

■ 手系フラグに 1 および 2 以外の数値を指定した場合、もしくは数値指定がない場合は、手系

フラグの設定無し (0) として扱われます。

■ 第 1・第 2 アーム回転数情報は、ロボットが YK-TW シリーズ、かつ、ミリ単位座標系を指定

する場合のみ有効です。

■ 第 1・第 2 アーム回転数情報に、0、1、-1 以外の数値を指定した場合、もしくは数値指定が

ない場合は、(0) として扱われます。

SAMPLE

SEND P100 TO CMU ・・・・・・・・・・・・ 指定ポイントを通信ポートから出力する

応答 :RUN [cr/lf]P100= 1.000 2.000 3.000 4.000 5.000 6.000 0 1 0 [cr/lf]END [cr/lf]

n 要点

・・ポイントデータは、パルス単位の場合は整数値、ミリ単位の場合は実数値となります。

10-8 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

4 ポイントコメントファイル

4.1 ポイントコメント全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

PCM

 意味  • ポイントコメント全体を示します。

DATA FORMAT

PCmmmm= sssssssssssssss[cr/lf]PCmmmm= sssssssssssssss[cr/lf] :PCmmmm= sssssssssssssss[cr/lf]PCmmmm= sssssssssssssss[cr/lf][cr/lf]

 値  mmmm:ポイントコメント番号 ・・・・・・・・・ 0 〜 29999

ss...ss:コメントデータ ・・・・・・・・・・・・・・・・

 半角/全角文字が使用可能で、半角文字は最大 16文字、全角文字は最大 8文字です。

 データ書き込み時に最大文字数を超えた文字は削除されます。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND PCM TO CMU ・・・・・・・・・・・・・・ ポイントコメント全体を通信ポートから出力する

応答 :RUN [cr/lf]PC1= ORIGIN_POS[cr/lf]PC3= WAIT_POS[cr/lf] :PC3999= WORK100[cr/lf][cr/lf]END [cr/lf]

ポイントコメントファイル ● 10-9

8

9

10

11

12

13

4 ポイントコメントファイル

4.2 ポイントコメント単位

読出し ○

書込み ○

形式

PCmmmm

 意味  • 指定ポイントコメントを示します。

• mmmm は、0 〜 29999 で示します。

DATA FORMAT

PCmmmm= sssssssssssssss[cr/lf]

 値  mmmm:ポイントコメント番号 ・・・・・・・・・ 0 〜 29999

ss...ss:コメントデータ ・・・・・・・・・・・・・・・・

 半角/全角文字が使用可能で、半角文字は最大 16文字、全角文字は最大 8文字です。

 データ書き込み時に最大文字数を超えた文字は削除されます。

SAMPLE

SEND PC1 TO CMU ・・・・・・・・・・・・・・・ 指定ポイントコメントを通信ポートから出力する

応答 :RUN [cr/lf]PC1= ORIGIN_POS[cr/lf]END [cr/lf]

10-10 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

5 ポイントネームファイル

5.1 ポイントネーム全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

PNM

 意味  • ポイントネーム全体を示します。

DATA FORMAT

PNmmmm= assssssss [cr/lf]PNmmmm= assssssss [cr/lf] :PNmmmm= assssssss [cr/lf]PNmmmm= assssssss [cr/lf][cr/lf]

 値  mmmm:ポイントネーム番号 ・・・・・・・・・・・ 0 〜 29999

a: ネームデータ(1 文字目) ・・・・・・・・・・・・・

 半角文字の英字のみ使用可能です。

 半角文字の英字以外が入力された場合、“4.202:入力形式異常” のエラーが発生します。

ss....ss: ネームデータ(2 文字目以降) ・・・・

 半角文字の英数字またはアンダースコア( _ )のみ使用可能です。

 半角文字の英数字またはアンダースコア( _ )以外が入力された場合、

 “4.202:入力形式異常” のエラーが発生します。ネームデータは最大 16 文字で、

 データ書き込み時に 16 文字を超えた場合は、17 文字目以降は削除されます。

・ 同じネームデータを重複して設定することはできません。ネームデータが重複した場合、既

存のポイントネーム番号のネームデータを削除し、新たに指定したポイントネーム番号に

ネームデータを保存します。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND PNM TO CMU ・・・・・・・・・・・・・・・・ ポイントネーム全体を通信ポートから出力する

応答:

RUN [cr/lf]PN1=ORIGIN_POS [cr/lf]PN3=WAIT_POS [cr/lf] :PN3999=WORK100 [cr/lf][cr/lf]END [cr/lf]

MEMO

ポイントネームファイル ● 10-11

8

9

10

11

12

13

5.2 ポイントネーム単位

読出し ○

書込み ○

形式

PNmmmm

 意味  • 指定ポイントネームを示します。

• mmmm は、0 〜 29999 で示します。

DATA FORMAT

PNmmmm= asssssssssssssss [cr/lf]

 値  mmmm:ポイントネーム番号 ・・・・・・・・・・・ 0 〜 29999

a: ネームデータ(1 文字目) ・・・・・・・・・・・・・

 半角文字の英字のみ使用可能です。

 半角文字の英字以外が入力された場合、“4.202:入力形式異常” のエラーが発生します。

ss....ss: ネームデータ(2 文字目以降) ・・・・

 半角文字の英数字またはアンダースコア( _ )のみ使用可能です。

 半角文字の英数字またはアンダースコア( _ )以外が入力された場合、

 “4.202:入力形式異常” のエラーが発生します。ネームデータは最大 16 文字で、

 データ書き込み時に 16 文字を超えた場合は、17 文字目以降は削除されます。

SAMPLE

SEND PN1 TO CMU ・・・・・・・・・・・・・・・・ 指定ポイントネームを通信ポートから出力する

応答:

RUN [cr/lf]PN1=ORIGIN_POS [cr/lf]END [cr/lf]

10-12 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

6 パラメータファイル

6.1 パラメータ全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

PRM

 意味  • パラメータ全体を示します。

DATA FORMAT

/パラメータラベル/ [cr/lf]RC=xxxxxx [cr/lf]/パラメータラベル/ [cr/lf]R?=xxxxxx[cr/lf]/パラメータラベル/ [cr/lf]R?A=xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx [cr/lf]\パラメータラベル \ [cr/lf]C?=xxxxxx [cr/lf]\パラメータラベル \ [cr/lf]R?=xxxxxx[cr/lf]\パラメータラベル \ [cr/lf]R?A=xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx [cr/lf]#パラメータラベル # [cr/lf]R?=xxxxxx[cr/lf]#パラメータラベル # [cr/lf]R?A=xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx [cr/lf]/パラメータラベル/ [cr/lf]C?O=xxxxxx,xxxxxx,xxxxxx,xxxxxx [cr/lf] :[cr/lf]

 値  RC:コントローラ全体

R?:ロボット指定 ・・・・・・・・・・・・・・・・・・・・・ ?:ロボット番号

C?:コントローラ指定 ・・・・・・・・・・・・・・・・・ ?:コントローラ番号

A: 軸パラメータ ・・・・・・・・・・・・・・・・・・・・・・ 各軸のデータはカンマで区切られます。

O: オプションボードパラメータ ・・・・・・・・

各オプションボードのデータはカンマで区切られます。

■ パラメータラベルは、英字 8 文字で示します。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

パラメータファイル ● 10-13

8

9

10

11

12

13

6 パラメータファイル

・ パラメータを書き込む際は、サーボオフ状態にしてください。

・ パラメータは、上位バージョンとの互換性は保たれますが、下位バージョンへの互換性は保

たれない場合があります(上位互換)。

・ 新しいバージョンのパラメータファイルを古いバージョンのコントローラにロードすると、

“10.214:未定義のパラメータ”のエラーが発生する場合があります。そのような場合は、コ

ントローラの“PRM スキップ”機能を有効にすると、未定義のパラメータ以外を正常にロー

ドできることがあります(詳しくは、コントローラのユーザーズマニュアル、またはオペレー

ションマニュアルを参照してください)。

・ パラメータラベルが \ で囲われたパラメータは、コントローラ構成のパラメータになります。

編集する場合は、十分注意してください。

・ パラメータラベルが # で囲われたパラメータは、ロボットの制御に影響があります。編集す

る場合は、十分注意してください。

・ お使いのコンピュータによって、バックスラッシュ( \ )が ¥ マークになることがあります。

SAMPLE

SEND PRM TO CMU ・・・・・・・・・・・・・・ パラメータ全体を通信ポートから出力する

応答 :RUN [cr/lf]‘ V1.22,R0191-V1.000-V1.09,R0015/V1.09,R0015 [cr/lf]‘ Gripper,V0.32/Gripper,V0.32///[cr/lf]‘ PRM(0)[cr/lf]\CNTTYP\[cr/lf]C1=340[cr/lf]\YCEADR\[cr/lf]C1=0[cr/lf]\DRVASGN\[cr/lf]R1A=101,102,103,104,0,0[cr/lf]R2A=0,0,0,0,0,0[cr/lf]R3A=0,0,0,0,0,0[cr/lf]R4A=0,0,0,0,0,0[cr/lf]\RBTNUM\[cr/lf]R1=2203[cr/lf] :[cr/lf]END [cr/lf]

MEMO

10-14 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

6 パラメータファイル

6.2 パラメータ単位

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

/パラメータラベル/、\パラメータラベル \、#パラメータラベル #

 意味  • パラメータラベルは、英字 8 文字で示します。

• 読出しファイルの場合は、ラベル指定のパラメータのみが読み出されます。

• 書込みファイルの場合は、ラベル指定のパラメータのみが書込まれます。

DATA FORMAT 1

/パラメータラベル/ [cr/lf]RC=xxxxxx [cr/lf][cr/lf]

DATA FORMAT 2

/パラメータラベル/ [cr/lf]R?=xxxxxx[cr/lf][cr/lf]

DATA FORMAT 3

/パラメータラベル/ [cr/lf]R?A=xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx [cr/lf][cr/lf]

DATA FORMAT 4

\パラメータラベル \ [cr/lf]C?=xxxxxx [cr/lf][cr/lf]

DATA FORMAT 5

\パラメータラベル \ [cr/lf]R?=xxxxxx[cr/lf][cr/lf]

DATA FORMAT 6

\パラメータラベル \ [cr/lf]R?A=xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx [cr/lf][cr/lf]

パラメータファイル ● 10-15

8

9

10

11

12

13

6 パラメータファイル

DATA FORMAT 7

#パラメータラベル # [cr/lf]R?=xxxxxx[cr/lf][cr/lf]

DATA FORMAT 8

#パラメータラベル # [cr/lf]R?A=xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx,xxxxxx [cr/lf][cr/lf]

DATA FORMAT 9

/パラメータラベル/ [cr/lf]C?O=xxxxxx,xxxxxx,xxxxxx,xxxxxx [cr/lf][cr/lf]

 値  RC:コントローラ全体

R?:ロボット指定 ・・・・・・・・・・・・・・・・・・・・・ ?:ロボット番号

C?:コントローラ指定 ・・・・・・・・・・・・・・・・・ ?:コントローラ番号

A: 軸パラメータ ・・・・・・・・・・・・・・・・・・・・・・ 各軸のデータはカンマで区切られます。

O: オプションボードパラメータ ・・・・・・・・

各オプションボードのデータはカンマで区切られます。

■ パラメータラベルは、英字 8 文字で示します。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

・ パラメータを書き込む際は、サーボオフ状態にしてください。

・ パラメータは、上位バージョンとの互換性は保たれますが、下位バージョンへの互換性は保

たれない場合があります(上位互換)。

・ 新しいバージョンのパラメータデータを古いバージョンのコントローラにロードすると、

“10.214:未定義のパラメータ”のエラーが発生する場合があります。そのような場合は、コ

ントローラの“PRM スキップ”機能を有効にすると、未定義のパラメータ以外を正常にロー

ドできることがあります(詳しくは、コントローラのマニュアルを参照してください)。

・ パラメータラベルが \ で囲われたパラメータは、コントローラ構成のパラメータになります。

編集する場合は、十分注意してください。

・ パラメータラベルが # で囲われたパラメータは、ロボットの制御に影響があります。編集す

る場合は、十分注意してください。

・ お使いのコンピュータによって、バックスラッシュ( \ )が ¥ マークになることがあります。

SAMPLE

SEND /ACCEL / TO CMU ・・・・・・ 加速度パラメータを通信ポートから出力する

応答:

RUN [cr/lf]/ ACCEL/ [cr/lf]R1A=100, 100, 100, 100 [cr/lf][cr/lf]END [cr/lf]

MEMO

10-16 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

7 シフト座標定義ファイル

7.1 シフト全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

SFT

 意味  • シフト全体を示します。

DATA FORMAT

Sm = fxxxxxx fyyyyyy fzzzzzz frrrrrr [cr/lf]SPm = fxxxxxx fyyyyyy fzzzzzz frrrrrr [cr/lf]SMm = fxxxxxx fyyyyyy fzzzzzz frrrrrr [cr/lf]     :Sm = fxxxxxx fyyyyyy fzzzzzz frrrrrr [cr/lf]SPm = fxxxxxx fyyyyyy fzzzzzz frrrrrr [cr/lf]SMm = fxxxxxx fyyyyyy fzzzzzz frrrrrr [cr/lf][cr/lf]

 値  m:シフト番号 ・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 39

f:座標の符号 ・・・・・・・・・・・・・・・・・・・・・・・・・ + / ー / スペース

xxxxxx/yyyyyy/../rrrrrr ・・・・・・・・・・・・・・・・・・・ 7 桁以内で小数点第 3 位までの実数値

■ 書き込みファイルの場合、SPm と SMm の入力は任意となります。

SPm:シフト座標範囲 + 側、SMm:シフト座標範囲 – 側

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND SFT TO CMU ・・・・・・・・・・・・・・ シフト全体を通信ポートから出力する

応答 :RUN [cr/lf]S0 = 0.000 0.000 0.000 0.000 [cr/lf]SP0= 0.000 0.000 0.000 0.000 [cr/lf]SM0= 0.000 0.000 0.000 0.000 [cr/lf]S1 = 1.000 1.000 1.000 1.000 [cr/lf] :SM39= 9.000 9.000 9.000 9.000 [cr/lf][cr/lf]END [cr/lf]

シフト座標定義ファイル ● 10-17

8

9

10

11

12

13

7 シフト座標定義ファイル

7.2 シフト単位

読出し ○

書込み ○

形式

Sm

 意味  • 指定シフトを示します。

DATA FORMAT

Sm = fxxxxxx fyyyyyy fzzzzzz frrrrrr[cr/lf]

 値  m:シフト番号 ・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 39

f:座標の符号 ・・・・・・・・・・・・・・・・・・・・・・・・・ + / ー / スペース

xxxxxx/yyyyyy/../rrrrrr ・・・・・・・・・・・・・・・・・・・ 7 桁以内で小数点第 3 位までの実数値

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します

SAMPLE

SEND S0 TO CMU ・・・・・・・・・・・・・・・・ 指定シフト座標を通信ポートから出力する

応答 :RUN [cr/lf]S0 = 0.000 0.000 0.000 0.000[cr/lf]SP0= 0.000 0.000 0.000 0.000[cr/lf]SM0= 0.000 0.000 0.000 0.000[cr/lf][cr/lf]END [cr/lf]

10-18 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

8 ハンド定義ファイル

8.1 ハンド全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

HND

 意味  • ハンド全体を示します。

DATA FORMAT

Hm = n,fxxxxxx, fyyyyyy, fzzzzzz ,{R}[cr/lf]     :Hm = n,fxxxxxx, fyyyyyy, fzzzzzz ,{R}[cr/lf][cr/lf]

 値  m:ハンド番号 ・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 31

n:ロボット番号 ・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 4

f:座標の符号 ・・・・・・・・・・・・・・・・・・・・・・・・・ + / ー / スペース

xxxxxx/yyyyyy/zzzzzz ・・・・・・・・・・・・・・・・・・・

 7 桁以内で小数点第 3 位までの実数値または 6 桁以下の整数値

 (数値形式は、ロボット型の設定やハンド定義の種類によって決定します。)

{R}:R 軸へのハンド装着の有無

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND HND TO CMU ・・・・・・・・・・・・・・ ハンド全体を通信ポートから出力する

応答 :RUN [cr/lf]H0 = 1, 0.000, 0.000, 0.000 [cr/lf]H1 = 1, 1.000, 1.000, 1.000 [cr/lf]H2 = 2, 2.000, 2.000, 2.000 [cr/lf]H3 = 2, 3.000, 3.000, 3.000 [cr/lf]H4 = 3, 4.000, 4.000, 4.000 [cr/lf]H5 = 3, 5.000, 5.000, 5.000 [cr/lf]H6 = 4, 6.000, 6.000, 6.000 [cr/lf]H7 = 4, 7.000, 7.000, 7.000 [cr/lf][cr/lf]END [cr/lf]

ハンド定義ファイル ● 10-19

8

9

10

11

12

13

8 ハンド定義ファイル

8.2 ハンド単位

読出し ○

書込み ○

形式

Hm

 意味  • 指定ハンド定義を示します。

DATA FORMAT

Hm = n,fxxxxxx, fyyyyyy, fzzzzzz ,{R}[cr/lf]

 値  m:ハンド番号 ・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 31

n:ロボット番号 ・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 4

f:座標の符号 ・・・・・・・・・・・・・・・・・・・・・・・・・ + / ー / スペース

xxxxxx/yyyyyy/zzzzzz ・・・・・・・・・・・・・・・・・・・

 7 桁以内で小数点第 3 位までの実数値または 6 桁以下の整数値

 (数値形式は、ロボット型の設定やハンド定義の種類によって決定します。)

{R}:R 軸へのハンド装着の有無

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND H3 TO CMU ・・・・・・・・・・・・・・・・ 指定ハンド定義を通信ポートから出力する

応答 :RUN [cr/lf]H3=2, 3.000, 3.000, 3.000, R [cr/lf][cr/lf]END [cr/lf]

10-20 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

9 パレット定義ファイル

9.1 パレット定義全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

PLT

 意味  • パレット定義全体を示します。

DATA FORMAT

PLm [cr/lf]PLN = XY [cr/lf]NX = nnn [cr/lf]NY = nnn [cr/lf]NZ = nnn [cr/lf]PLP = ppppp [cr/lf]P[1] = fxxxxxx fyyyyyy fzzzzzz frrrrrr faaaaaa fbbbbbb t xr yr[cr/lf] :P[5] = fxxxxxx fyyyyyy fzzzzzz frrrrrr faaaaaa fbbbbbb t xr yr[cr/lf]PLm [cr/lf] :[cr/lf]

 値  m:パレット番号 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 39

XY:座標平面指定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ XY 座標平面

nnn:各軸のポイント数 ・・・・・・・・・・・・・・・・・・・・・・ 正の整数

ppppp:パレット定義に使用するポイント番号

 指定したポイントを先頭に連続した 5 個のポイントを使用します。

f:座標の符号 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ + / ー/スペース

xxxxxx/yyyyyy/../bbbbbb ・・・・・・・・・・・・・・・・・・・・・・ 8 桁以内の数値

 数値にドットが含まれている場合、ミリ単位の座標系と認識。

 データは、1 つ以上のスペースで区切ります。

t:スカラ型ロボットの拡張設定の手系フラグ ・・・ 1:右手系/ 2:左手系

xr:YK-TW シリーズの 第 1 アーム回転数情報 ・・

 0:ミリ→パルス変換後の角度データ x(*1)の範囲は、 -180.00°< x <= 180.00°

 1:ミリ→パルス変換後の角度データ x(*1)の範囲は、180.00° < x <= 540.00°

 -1:ミリ→パルス変換後の角度データ x(*1)の範囲は、-540.00°< x <= -180.00°

yr:YK-TW シリーズの 第 2 アーム回転数情報 ・・

 0:ミリ→パルス変換後の角度データ y(*1)の範囲は、 -180.00°< y <= 180.00°

 1:ミリ→パルス変換後の角度データ y(*1)の範囲は、180.00° < y <= 540.00°

 -1:ミリ→パルス変換後の角度データ y(*1)の範囲は、-540.00°< y <= -180.00°

*1:関節座標に変換後のパルスデータを、各アームのメカ原点からの角度に変換したデータです。

パレット定義ファイル ● 10-21

8

9

10

11

12

13

9 パレット定義ファイル

■ 手系フラグは、スカラ型ロボット、かつ、ミリ単位の座標系を指定する場合のみ有効です。

■ パレット定義を使った動作では、手系フラグ、第 1・第 2 アーム回転数情報は無視されます。

■ 手系フラグに 1 および 2 以外の数値を指定した場合、もしくは数値指定がない場合は、手系

フラグの設定無し (0) として扱われます。

■ 第 1・第 2 アーム回転数情報は、ロボットが YK-TW シリーズ、かつ、ミリ単位座標系を指定

する場合のみ有効です。

■ 第 1・第 2 アーム回転数情報に、0、1、-1 以外の数値を指定した場合、もしくは数値指定が

ない場合は、(0)として扱われます。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND PLT TO CMU ・・・・・・・・・・・・・・ パレット全体を通信ポートから出力する

応答 :RUN [cr/lf]PL0[cr/lf]PLN=XY[cr/lf]NX = 3 [cr/lf]NY = 4 [cr/lf]NZ = 2 [cr/lf]PLP= 3996[cr/lf]P[1]= 0.000 0.000 0.000 0.000 0.000 0.000 [cr/lf]P[2]= 100.000 0.000 0.000 0.000 0.000 0.000 [cr/lf]P[3]= 0.000 100.000 0.000 0.000 0.000 0.000 [cr/lf]P[4]= 100.000 100.000 0.000 0.000 0.000 0.000 [cr/lf]P[5]= 0.000 0.000 50.000 0.000 0.000 0.000 [cr/lf]PL1[cr/lf]PLN= XY[cr/lf]NX = 3[cr/lf]NY = 4[cr/lf]NZ = 2[cr/lf]PLP= 3991[cr/lf]P[1]= 0.000 0.000 0.000 0.000 0.000 0.000 [cr/lf]P[2]= 100.000 100.000 0.000 0.000 0.000 0.000 [cr/lf]P[3]= 0.000 200.000 0.000 0.000 0.000 0.000 [cr/lf]P[4]= 100.000 200.000 0.000 0.000 0.000 0.000 [cr/lf]P[5]= 0.000 0.000 100.000 0.000 0.000 0.000 [cr/lf][cr/lf]END [cr/lf]

10-22 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

9 パレット定義ファイル

9.2 パレット定義単位

読出し ○

書込み ○

形式

PLm

 意味  • 指定パレット定義を示します。

• m は、0 〜 39 で示します。

DATA FORMAT

PLm [cr/lf]PLN = XY [cr/lf]PLP = ppppp [cr/lf]NX = nnn [cr/lf]NY = nnn [cr/lf]NZ = nnn [cr/lf]P[1] = fxxxxxx fyyyyyy fzzzzzz frrrrrr faaaaaa fbbbbbb t xr yr[cr/lf] :P[5] = fxxxxxx fyyyyyy fzzzzzz frrrrrr faaaaaa fbbbbbb t xr yr[cr/lf][cr/lf]

 値  m:パレット番号 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 39

XY:座標平面指定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ XY 座標平面

nnn:各軸のポイント数 ・・・・・・・・・・・・・・・・・・・・・・ 正の整数

ppppp:パレット定義に使用するポイント番号 ・・

 指定したポイントを先頭に連続した 5 個のポイントを使用します。

f:座標の符号 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ + /ー /スペース

xxxxxx/yyyyyy/../bbbbbb ・・・・・・・・・・・・・・・・・・・・・・ 8 桁以内の数値

 数値にドットが含まれている場合、ミリ単位の座標系と認識。

 データは、1 つ以上のスペースで区切ります。

t:スカラ型ロボットの拡張設定の手系フラグ ・・・ 1:右手系/ 2:左手系

xr:YK-TW シリーズの 第 1 アーム回転数情報 ・・

 0:ミリ→パルス変換後の角度データ x(*1)の範囲は、 -180.00°< x <= 180.00°

 1:ミリ→パルス変換後の角度データ x(*1)の範囲は、180.00° < x <= 540.00°

 -1:ミリ→パルス変換後の角度データ x(*1)の範囲は、-540.00°< x <= -180.00°

yr:YK-TW シリーズの 第 2 アーム回転数情報 ・・

 0:ミリ→パルス変換後の角度データ y(*1)の範囲は、 -180.00°< y <= 180.00°

 1:ミリ→パルス変換後の角度データ y(*1)の範囲は、180.00° < y <= 540.00°

 -1:ミリ→パルス変換後の角度データ y(*1)の範囲は、-540.00°< y <= -180.00°

*1:関節座標に変換後のパルスデータを、各アームのメカ原点からの角度に変換したデータです。

n 要点

・・ポイントデータは、パルス単位の場合は整数値、ミリ単位の場合は実数値となります。

パレット定義ファイル ● 10-23

8

9

10

11

12

13

9 パレット定義ファイル

■ 手系フラグは、スカラ型ロボットかつミリ単位の座標系を指定する場合のみ有効です。

■ パレット定義を使った動作では、手系フラグ、第 1・第 2 アーム回転数情報は無視されます。

■ 手系フラグに 1 および 2 以外の数値を指定した場合、もしくは数値指定がない場合は、手系

フラグの設定無し (0) として扱われます。

■ 第 1・第 2 アーム回転数情報は、ロボットが YK-TW シリーズ、かつ、ミリ単位座標系を指定

する場合のみ有効です。

■ 第 1・第 2 アーム回転数情報に、0、1、-1 以外の数値を指定した場合、もしくは数値指定が

ない場合は、(0) として扱われます。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND PL2 TO CMU ・・・・・・・・・・・・・・・ 指定パレット定義を通信ポートから出力する

応答 :RUN [cr/lf]PL2[cr/lf]PLN=XY[cr/lf]NX= 3[cr/lf]NY= 3[cr/lf]NZ= 2[cr/lf]PLP= 3986[cr/lf]P[1]= 100.000 100.000 50.000 90.000 0.000 0.000 [cr/lf]P[2]= 200.000 100.000 50.000 90.000 0.000 0.000 [cr/lf]P[3]= 100.000 200.000 50.000 90.000 0.000 0.000 [cr/lf]P[4]= 200.000 200.000 50.000 90.000 0.000 0.000 [cr/lf]P[5]= 100.000 10.000 100.000 90.000 0.000 0.000 [cr/lf][cr/lf]END [cr/lf]

10-24 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

10 汎用イーサネットポート定義ファイル

形式

GEP

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

 意味  • 汎用イーサネットポート定義全体を示します。

DATA FORMAT

GPm [cr/lf]MODE=n [cr/lf]IPADRS= aaa.aaa.aaa.aaa [cr/lf]PORT=ppppp [cr/lf]EOL=e [cr/lf]TYPE=t [cr/lf] :TYPE=t [cr/lf][cr/lf]

 値  m:汎用イーサネットポート番号 ・・・・・・・・ 0 〜 7

n:モード ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 0 : サーバー/ 1 : クライアント

aaa:IP アドレス ・・・・・・・・・・・・・・・・・・・・・・ 0 〜 255

ppppp:ポート番号 ・・・・・・・・・・・・・・・・・・・・ 0 〜 65535

e:終端文字コード ・・・・・・・・・・・・・・・・・・・・・ 0 : CRLF / 1 : CR

t:ポートタイプ ・・・・・・・・・・・・・・・・・・・・・・・ 0:TCP

書き込みファイルでモードにクライアントを選択した場合

・IP アドレス/ポート番号: 接続先サーバーの IP アドレスとポート番号を設定します。

書き込みファイルでモードにサーバーを選択した場合

・IP アドレス:コントローラに設定している IP アドレスを使用して通信を行う為、IP アドレ

スの設定は不要です。

・ポート番号:コントローラに設定しているものとは異なる番号を設定します。

MEMO

汎用イーサネットポート定義ファイル ● 10-25

8

9

10

11

12

13

10 汎用イーサネットポート定義ファイル

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND GEP TO CMU ・・・・・・・・・・・・・・・・ 汎用イーサネットポート全体を通信ポートから出力する

応答:

RUN [cr/lf]GP0 [cr/lf]MODE=1 [cr/lf]IPADRS=192.168.0.1 [cr/lf]PORT=100 [cr/lf]EOL=0 [cr/lf]TYPE=0 [cr/lf]GP1 [cr/lf]MODE=1 [cr/lf]IPADRS=192.168.0.100 [cr/lf]PORT=200 [cr/lf]EOL=0 [cr/lf]TYPE=0 [cr/lf][cr/lf]END [cr/lf]

10-26 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

11 入出力ネームファイル

11.1 入出力ネーム全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

ION

 意味  • 入出力ネーム全体を示します。

DATA FORMAT

ioNMpp(b)=assssssssssssssss [cr/lf]ioNMpp(b)=assssssssssssssss [cr/lf] :ioNMpp(b)=assssssssssssssss [cr/lf]ioNMpp(b)=assssssssssssssss [cr/lf][cr/lf]

 値  io:入出力タイプ ・・・・・・・・・・・・・・・・・・・・・・ DI / DO / SI / SO

pp:ポート番号 ・・・・・・・・・・・・・・・・・・・・・・・ 2 〜 7 / 10 〜 15

b:ビット番号 ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 7

a:ネームデータ(1 文字目) ・・・・・・・・・・・・・

 半角文字の英字のみ使用可能です。半角文字の英字以外が入力された場合は、

 “4.202:入力形式異常” のエラーが発生します。

ss....ss:ネームデータ(2 文字目以降) ・・・・

 半角文字の英数字またはアンダースコア( _ )のみ使用可能です。

 半角文字の英数字またはアンダースコア( _ )以外が入力された場合は、

 “4.202:入力形式異常” のエラーが発生します。ネームデータは最大 16 文字で、

 データ書き込み時に 16 文字を超えた場合は、17 文字目以降は削除されます。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND ION TO CMU ・・・・・・・・・・・・・・・・ 入出力ネーム全体を通信ポートから出力する

応答:

RUN [cr/lf]DONM2(0)=DO_PORT2_0 [cr/lf]DONM2(1)=DO_PORT2_1 [cr/lf] :SINM15(6)=SI_PORT15_6 [cr/lf]SINM15(7)=SI_PORT15_7 [cr/lf][cr/lf]END [cr/lf]

・ 同じネームデータを重複して設定することはできません。ネームデータを重複して保存した

場合、既に保存されている入出力ポートの入出力ネームデータを削除し、新たに保存先に指

定した入出力ポートにネームデータを保存します。

MEMO

入出力ネームファイル ● 10-27

8

9

10

11

12

13

11 入出力ネームファイル

11.2 入出力タイプ単位

読出し ○

書込み 制限あり※

形式

ioNM()

 意味  • 指定入出力タイプ単位の入出力ネームを示します。

DATA FORMAT

ioNMpp(b)=asssssssssssssss [cr/lf] :ioNMpp(b)=asssssssssssssss [cr/lf][cr/lf]

 値  io:入出力タイプ ・・・・・・・・・・・・・・・・・・・・・・ DI / DO / SI / SO

pp:ポート番号 ・・・・・・・・・・・・・・・・・・・・・・・ 2 〜 7 / 10 〜 15

 ※書き込み可能な入出力タイプとポート番号

 DI: ポート 14 まで/ DO: ポート 10 まで/ SI, SO: ポート 15 まで

b:ビット番号 ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 7

a:ネームデータ(1 文字目) ・・・・・・・・・・・・・

 半角文字の英字のみ使用可能です。半角文字の英字以外が入力された場合は、

 “4.202:入力形式異常” のエラーが発生します。

ss....ss:ネームデータ(2 文字目以降) ・・・・

 半角文字の英数字またはアンダースコア( _ )のみ使用可能です。

 半角文字の英数字またはアンダースコア( _ )以外が入力された場合は、

 “4.202:入力形式異常” のエラーが発生します。ネームデータは最大 16 文字で、

 データ書き込み時に 16 文字を超えた場合は、17 文字目以降は削除されます。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND DONM() TO CMU ・・・・・・・・・・・ 指定入出力タイプの入出力ネームを通信ポートから

出力する

応答:

RUN [cr/lf]DONM2(0)=DO_PORT2_0 [cr/lf]DONM2(1)=DO_PORT2_1 [cr/lf] :DONM10(6)=DO_PORT10_6 [cr/lf]DONM10(7)=DO_PORT10_7 [cr/lf][cr/lf]END [cr/lf]

10-28 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

11 入出力ネームファイル

11.3 入出力ポート単位

読出し ○

書込み 制限あり※

形式

ioNMpp()

 意味  • 指定入出力タイプ単位の入出力ネームを示します。

DATA FORMAT

ioNMpp(b)=asssssssssssssss [cr/lf] :ioNMpp(b)=asssssssssssssss [cr/lf][cr/lf]

 値  io:入出力タイプ ・・・・・・・・・・・・・・・・・・・・・・ DI / DO / SI / SO

pp:ポート番号 ・・・・・・・・・・・・・・・・・・・・・・・ 2 〜 7 / 10 〜 15

 ※書き込み可能な入出力タイプとポート番号

 DI: ポート 14 まで/ DO: ポート 10 まで/ SI, SO: ポート 15 まで

b:ビット番号 ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 7

a:ネームデータ(1 文字目)・・・・・・・・・・・・  半角文字の英字のみ使用可能です。半角文字の英字以外が入力された場合は、

 “4.202:入力形式異常” のエラーが発生します。

ss....ss:ネームデータ(2 文字目以降) ・・・・

 半角文字の英数字またはアンダースコア( _ )のみ使用可能です。

 半角文字の英数字またはアンダースコア( _ )以外が入力された場合は、

 “4.202:入力形式異常” のエラーが発生します。ネームデータは最大 16 文字で、

 データ書き込み時に 16 文字を超えた場合は、17 文字目以降は削除されます。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND DONM2() TO CMU ・・・・・・・・・・ 指定入出力ポートの入出力ネームを通信ポートから

出力する

応答:

RUN [cr/lf]DONM2(0)=DO_PORT2_0 [cr/lf]DONM2(1)=DO_PORT2_1 [cr/lf] :DONN2(6)=DO_PORT2_6 [cr/lf]DONM2(7)=DO_PORT2_7 [cr/lf][cr/lf]END [cr/lf]

入出力ネームファイル ● 10-29

8

9

10

11

12

13

11 入出力ネームファイル

11.4 入出力ビット単位

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

ioNMpp(b)

 意味  • 指定入出力タイプ単位の入出力ネームを示します。

DATA FORMAT

ioNMpp(b)=asssssssssssssss [cr/lf][cr/lf]

 値  io:入出力タイプ ・・・・・・・・・・・・・・・・・・・・・・ DI / DO / SI / SO

pp:ポート番号 ・・・・・・・・・・・・・・・・・・・・・・・ 2 〜 7 / 10 〜 15

 ※書き込み可能な入出力タイプとポート番号

 DI: ポート 14 まで/ DO: ポート 10 まで/ SI, SO: ポート 15 まで

b:ビット番号 ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 7

a:ネームデータ(1 文字目) ・・・・・・・・・・・・・

 半角文字の英字のみ使用可能です。半角文字の英字以外が入力された場合は、

 “4.202:入力形式異常” のエラーが発生します。

ss....ss:ネームデータ(2 文字目以降) ・・・・

 半角文字の英数字またはアンダースコア( _ )のみ使用可能です。

 半角文字の英数字またはアンダースコア( _ )以外が入力された場合は、

 “4.202:入力形式異常” のエラーが発生します。ネームデータは最大 16 文字で、

 データ書き込み時に 16 文字を超えた場合は、17 文字目以降は削除されます。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND DONM2(0) TO CMU ・・・・・・・・ 指定入出力ビットの入出力ネームを通信ポートから

出力する

応答:

RUN [cr/lf]DONM2(0)=DO_PORT2_0 [cr/lf][cr/lf]END [cr/lf]

10-30 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

12 領域判定出力定義ファイル

12.1 領域判定出力定義全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

ACO

 意味  • 領域判定出力定義全体を示します。

DATA FORMAT

ACm=r,p1,p2,t,n,l [cr/lf]ACm=r,p1,p2,t,n,l [cr/lf] :ACm=r,p1,p2,t,n,l [cr/lf]ACm=r,p1,p2,t,n,l [cr/lf][cr/lf]

 値  m:領域判定出力番号 ・・・・・・・・・・・・0 〜 31

r:ロボット番号 ・・・・・・・・・・・・・・・・・0 〜 4(0:無効)

p1:比較ポイント番号 1 ・・・・・・・・・・0 〜 29999

p2:比較ポイント番号 1 ・・・・・・・・・・0 〜 29999

t:ポートタイプ ・・・・・・・・・・・・・・・・・0:DO(SO)/ 1:DO / 2:SO / 3:MO

n:ポート番号 ・・・・・・・・・・・・・・・・・・・20 〜 277

l:論理 ・・・・・・・・・・・・・・・・・・・・・・・・・0:オフ/ 1:オン

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND ACO TO CMU ・・・・ 領域判定出力全体を通信ポートから出力する

応答:

RUN [cr/lf]AC0=1,0,1,0,20,0 [cr/lf]AC1=2,100,110,0,50,0 [cr/lf] :AC30=1,20,21,0,20,0 [cr/lf]AC31=1,50,51,0,100,0 [cr/lf][cr/lf]END [cr/lf]

領域判定出力定義ファイル ● 10-31

8

9

10

11

12

13

12 領域判定出力定義ファイル

12.2 領域判定出力定義単位

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

ACm

 意味  • 指定領域判定出力定義を示します。

DATA FORMAT

ACm=r,p1,p2,t,n,l [cr/lf]

 値  m:領域判定出力番号 ・・・・・・・・・・・・0 〜 31

r:ロボット番号 ・・・・・・・・・・・・・・・・・0 〜 4(0:無効)

p1:比較ポイント番号 1 ・・・・・・・・・・0 〜 29999

p2:比較ポイント番号 1 ・・・・・・・・・・0 〜 29999

t:ポートタイプ ・・・・・・・・・・・・・・・・・0:DO(SO)/ 1:DO / 2:SO / 3:MO

n:ポート番号 ・・・・・・・・・・・・・・・・・・・20 〜 277

l:論理 ・・・・・・・・・・・・・・・・・・・・・・・・・0:オフ/ 1:オン

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND AC0 TO CMU ・・・・・・・・・・・・・・・・ 指定領域判定出力を通信ポートから出力する

応答:

RUN [cr/lf]AC0=1,0,1,0,20,0 [cr/lf]END [cr/lf]

10-32 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

13 オールファイル

13.1 オールファイル全体

読出し ○

書込み ○

形式

ALL

 意味  データファイルのうち、ロボットシステムの動作に最小限必要なファイルを示します。

DATA FORMAT

[PGM] ・・・・プログラム全体形式

NAME=< プログラム名 >PGN=mmmaaaa ・・・・aaaaaaaa [cr/lf] :aaaa ・・・・aaaaaaaa [cr/lf][cr/lf][PNT] ・・・・ポイント全体形式

Pmmmm=fxxxxxx fyyyyyy fzzzzzz faaaaaa fbbbbbb t [cr/lf] :Pmmmm=fxxxxxx fyyyyyy fzzzzzz faaaaaa fbbbbbb t [cr/lf][cr/lf][PCM] ポイントコメント全体形式

PCmmmm= ssssssssssssssss [cr/lf] :PCmmmm= ssssssssssssssss [cr/lf][cr/lf][PNM] ・・・・ポイントネーム全体形式

PNmmmm= asssssssssssssss [cr/lf] :PNmmmm= asssssssssssssss [cr/lf][cr/lf][PRM] ・・・・パラメータ全体形式

/パラメータラベル/ [cr/lf]RC=xxxxxx [cr/lf] :#パラメータラベル # [cr/lf]R?=xxxxxx [cr/lf][cr/lf][SFT] ・・・・シフト全体形式

Sm= fxxxxxx fyyyyyy fzzzzzz frrrrrr [cr/lf] :SMm= fxxxxxx fyyyyyy fzzzzzz frrrrrr [cr/lf][cr/lf]

n 要点

・・各ファイルの詳細は、それぞれ各ファイルの説明を参照してください。

オールファイル ● 10-33

8

9

10

11

12

13

13 オールファイル

[HND] ・・・・ハンド全体形式

Hm= n, fxxxxxx, fyyyyyy, fzzzzzz , {R} [cr/lf] :Hm= n, fxxxxxx, fyyyyyy, fzzzzzz , {R} [cr/lf][cr/lf][PLT] ・・・・パレット全体形式

PLm [cr/lf] :P[5]= fxxxxxx fyyyyyy fzzzzzz frrrrrr faaaaaa fbbbbbb t [cr/lf][cr/lf][GEP] ・・・・汎用イーサネットポート全体形式

MODE=n [cr/lf] :TYPE=t [cr/lf][cr/lf][ION] ・・・・入出力ネーム全体形式

ioNMpp(b)=asssssssssssssss [cr/lf] :ioNMpp(b)=asssssssssssssss [cr/lf][cr/lf][ACO] ・・・・領域判定出力全体形式

ACm=r,p1,p2,t,n,l [cr/lf] :ACm=r,p1,p2,t,n,l [cr/lf][cr/lf][END] ・・・・オールファイルの終了

・ 読み込みファイルの場合は、コントローラにデータが保存されている項目のみ、ファイル読

み込みを行います。

・ 書き込みファイルの場合は、[xxx] をもとにデータファイルの形式を決定し、コントローラ

に保存します。

 例:[HND]…次に [xxx] が登場するまでの間のテキストデータを、ハンド全体形式のデータ

ファイルとしてコントローラに保存します。

SAMPLE

SEND ALL TO CMU ・・・・・・・・・・・・・・ システム全体を通信ポートから出力する

SEND CMU TO ALL ・・・・・・・・・・・・・・ システム全体を通信ポートから入力する

MEMO

10-34 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

14 プログラムディレクトリファイル

14.1 プログラムディレクトリ全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み × 書込みファイルでの指定はできません。

形式

DIR

 意味  • プログラムディレクトリ全体を示します。

DATA FORMAT

nnn, yy/mm/dd, hh:mm, bbbbbbb, llll, xx, ff, sssss…sssssssss [cr/lf] :nnn, yy/mm/dd, hh:mm, bbbbbbb, llll, xx, ff, sssss…sssssssss [cr/lf][cr/lf]

 値  nnn:プログラム番号 ・・・・・・・・・・・・・・・・・・ 1 〜 100

yy/mm/dd:更新日付

hh:mm:更新時間

bbbbbbb:使用バイト数(7 桁)

xx:ファイル属性 ・・・・・・・・・・・・・・・・・・・・・・

 RW: 読み書き可能/ RO: 読み取り専用/ H : 隠しファイル

ff:フラグ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

 m : メインプログラム/ c : カレントプログラム/ s : シーケンスプログラム

sss…ssssss:プログラム名 ・・・・・・・・・・・・・

 半角文字の英数字またはアンダースコア( _ )。プログラム名は最大 32 文字です。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します

SAMPLE

SEND DIR TO CMU ・・・・・・・・・・・・・・・・ 作成されているプログラム情報全体を通信ポートか

ら出力する

応答:

RUN [cr/lf]1, 15/01/10,10:14,100,24,RW,m,SAMPLE1 [cr/lf]2, 15/01/18,18:00,50,18,RO,,SAMPLE2 [cr/lf]3, 15/02/11,20:15,200,58,RW,c,SAMPLE3 [cr/lf]4, 15/02/11,19:03,28,15,H,,SAMPLE4 [cr/lf]10, 15/03/02, 20:21,592,288,RW,,SAMPLE10 [cr/lf]24, 15/01/18,13:19,10,3,RW,,SAMPLE24 [cr/lf][cr/lf]END [cr/lf]

プログラムディレクトリファイル ● 10-35

8

9

10

11

12

13

14 プログラムディレクトリファイル

14.2 プログラムディレクトリ単位

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み × 書込みファイルでの指定はできません。

形式

<<プログラム名>>

 意味  • 1 つのプログラム情報を示します。

• プログラム名は<< >>で囲んで記述します。

DATA FORMAT

nnn, yy/mm/dd, hh:mm, bbbbbbb, llll, xx, ff, sssss…sssssssss [cr/lf]

 値  nnn:プログラム番号 ・・・・・・・・・・・・・・・・・・ 1 〜 100

yy/mm/dd:更新日付

hh:mm:更新時間

bbbbbbb:使用バイト数(7 桁)

xx:ファイル属性 ・・・・・・・・・・・・・・・・・・・・・・

 RW: 読み書き可能/ RO: 読み取り専用/ H : 隠しファイル

ff:フラグ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

 m : メインプログラム/ c : カレントプログラム/ s : シーケンスプログラム

sss…ssssss:プログラム名 ・・・・・・・・・・・・・

 半角文字の英数字またはアンダースコア( _ )。プログラム名は最大 32 文字です。

SAMPLE

SEND <<SAMPLE1>> TO CMU ・・・・・・ 指定プログラム情報を通信ポートから出力する

応答:

RUN [cr/lf]1, 15/01/10,10:14,100,24,RW,m,SAMPLE1 [cr/lf]END [cr/lf]

10-36 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

15 パラメータディレクトリファイル

15.1 パラメータディレクトリ全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み × 書込みファイルの指定はできません。

形式

DPM

 意味  • パラメータディレクトリ全体を示します。

DATA FORMAT

\mmmmmm\ a m n1 n2 n3 … n10 n11 n12 uuuuuu [cr/lf]/ mmmmmm/ a m n1 n2 n3 … n10 n11 n12 uuuuuu [cr/lf]#mmmmmm# a m n1 n2 n3 … n10 n11 n12 uuuuuu [cr/lf][cr/lf]

 値  mmmmmm:パラメータラベル ・・・・・・・・・・ 英数字と一部の記号 8 文字以下

a:属性

m:入力方式 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 0:直接入力/ 1 〜 12 : 選択

n:入力範囲 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ n1:最小値/ n2:最大値

uuuuuu:単位

■ パラメータラベルは、英字 6 文字で示します。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

・ お使いのコンピュータによって、バックスラッシュ( \ )が ¥ マークになることがあります。

SAMPLE

SEND DPM TO CMU ・・・・・・・・・・・・・・・・ 作成されているパラメータ情報全体を通信ポートか

ら出力する

応答:

RUN [cr/lf]‘PRM(0) [cr/lf]\CNTTYP\ 16460 0 0 2147493647 [cr/lf]\YCEADR\ 16396 0 0 99 [cr/lf]\DRVASGN\ 16398 0 0 9906 [cr/lf] :/ IOORGOUT/ 2052 0 0 27 [cr/lf]/ IOSRVOUT/ 2052 0 0 27 [cr/lf]/ GRPORGIN/ 2052 0 0 27 [cr/lf][cr/lf]END [cr/lf]

MEMO

マシンリファレンスファイル ● 10-37

8

9

10

11

12

13

16 マシンリファレンスファイル

16.1 マシンリファレンス (センサ、突き当て )

読出し ○

書込み ×

形式

MRF

 意味  • 原点復帰方式がセンサ方式または突き当て方式に設定されている軸のマシンリ

ファレンス全体を示します。

DATA FORMAT

RnA=mmm,mmm,mmm,mmm,mmm,mmm [cr/lf] :RnA= mmm,mmm,mmm,mmm,mmm,mmm [cr/lf][cr/lf]

 値  n:ロボット番号 ・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 4

mmm:マシンリファレンス値 ・・・・・・・・・・・ 0 〜 100

・ 接続している軸のマシンリファレンス値のみ読み出します。

例:ロボット 1 の第 1 軸〜第 6 軸と、ロボット 2 の第 1 軸と第 3 軸を接続している場合は

次のようになります。

R1A=mmm,mmm,mmm,mmm,mmm,mmm

R2A= mmm, ,mmm

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します

SAMPLE

SEND MRF TO CMU ・・・・・・・・・・・・・・・・ マシンリファレンス全体を通信ポートから出力する

応答:

RUN [cr/lf]R1A=53,47,58,25,55,59 [cr/lf] :R4A=52,58,41,38,61,50 [cr/lf][cr/lf]END [cr/lf]

MEMO

10-38 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

16 マシンリファレンスファイル

16.2 マシンリファレンス (マーク )

読出し ○

書込み ×

形式

ARP

 意味  • 原点復帰方式がマーク方式に設定されている軸のマシンリファレンス全体を示し

ます。

DATA FORMAT

RnA=mmm,mmm,mmm,mmm,mmm,mmm [cr/lf] :RnA=mmm,mmm,mmm,mmm,mmm,mmm [cr/lf][cr/lf]

 値  n:ロボット番号 ・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 4

mmm:マシンリファレンス値 ・・・・・・・・・・・ 0 〜 100

・ 接続している軸のマシンリファレンス値のみ読み出します。

例:ロボット 1 の第 1 軸〜第 6 軸と、ロボット 2 の第 1 軸と第 3 軸を接続している場合は

次のようになります。

R1A=mmm,mmm,mmm,mmm,mmm,mmm

R2A=mmm, ,mmm

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND ARP TO CMU ・・・・・・・・・・・・・・・・ マシンリファレンス全体を通信ポートから出力する

応答:

RUN [cr/lf]R1A=53,47,58,25,55,59 [cr/lf] :R4A=52,58,41,38,61,50 [cr/lf][cr/lf]END [cr/lf]

MEMO

システム構成情報ファイル ● 10-39

8

9

10

11

12

13

17 システム構成情報ファイル

読出し ○

書込み ×

形式

CFG

 意味  • システム構成情報全体を示します。

DATA FORMAT

Cm:nnnn, s, b, kkkkk, ff-ff-ff-ff-ff-ff [cr/lf]Cm:nnnn, s, b, kkkkk, ff-ff-ff-ff-ff-ff [cr/lf] :Rr:aaaa,hhhhhh [cr/lf]Rr:aaaa,hhhhhh [cr/lf][cr/lf]

 値  m:コントローラ番号 ・・・・・・・・・・・・・・・・・・ 1 〜

nnn:コントローラ識別番号

s:仕様 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ G:CE 仕様/ L:ノーマル仕様

b:ブレーキ電源 ・・・・・・・・・・・・・・・・・・・・・・・ I:内部/ E:外部

kkkkkk:メモリサイズ

ff:MAC アドレス

r:ロボット番号 ・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 4

aaaa:ロボット識別番号

hhhhhh:接続軸番号

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します

SAMPLE

SEND CFG TO CMU ・・・・・・・・・・・・・・・・ システム構成全体を通信ポートから出力する

応答:

RUN [cr/lf]C1:340,L,I,2.1MB,00-04-C6-FF-83-12[cr/lf]R1:MULTI,1234[cr/lf][cr/lf]END [cr/lf]

10-40 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

18 バージョン情報ファイル

読出し ○

書込み ×

形式

VER

 意味  • バージョン情報を示します。

DATA FORMAT

Cm:cv, cr-mv-dv1, dr1/dv2, dr2 [cr/lf] :Cm:cv, cr-mv-dv1, dr1/dv2, dr2 [cr/lf][cr/lf]

 値  m:コントローラ番号 ・・・・・ 1 〜

cv:ホストのバージョン

cr:ホストのリビジョン(Rxxxx)

mv:PLD のバージョン(Vx.xx)

dv?(?:1、2):ドライバのバージョン(Vx.xx)

dr?(?:1、2):ドライバのリビジョン(Rxxxx)

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します

SAMPLE

SEND VER TO CMU ・・・・・・・・・・・・・・・・ バージョン情報を通信ポートから出力する

応答:

RUN [cr/lf]C1:V1.22,R0191-V1.000-V1.09,R0015/V1.09,R0015 [cr/lf]C2:V1.22,R0191-V1.000-V1.09,R0015/V1.09,R0015 [cr/lf]C3:V1.22,R0191-V1.000-V1.09,R0015/V1.09,R0015 [cr/lf]C4:V1.22,R0191-V1.000-V1.09,R0015/V1.09,R0015 [cr/lf][cr/lf]END [cr/lf]

オプションボードファイル ● 10-41

8

9

10

11

12

13

19 オプションボードファイル

読出し ○

書込み ×

形式

OPT

 意味  • オプションボード全体を示します。

DATA FORMAT

CmOn:aaaaaa,Vb.bb [cr/lf]CmOn:aaaaaa,Vb.bb [cr/lf] :CmOn:aaaaaa,Vb.bb [cr/lf]CmOn:aaaaaa,Vb.bb [cr/lf][cr/lf]

 値  m:コントローラ番号 ・・・・・・・・・・・・・・・・・・・・・・・ 1 〜

n:コントローラ内オプションボード番号 ・・・・・・・ スロット番号: 1 〜 4

aaaaaa:コオプションボード名

b.bb:オプションボードバージョン

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します

SAMPLE

SEND OPT TO CMU ・・・・・・・・・・・・・・・・ オプションボード全体を通信ポートから出力する

応答:

RUN [cr/lf]C1O1:Gripper,V0.32 [cr/lf]C1O2:Gripper,V0.32 [cr/lf][cr/lf]END [cr/lf]

10-42 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

20 自己診断ファイル

読出し ○

書込み ×

形式

SCK

 意味  • 自己診断を示します。

DATA FORMAT

gg.bbb:mmmm [cr/lf]gg.bbb:mmmm [cr/lf] :gg.bbb:mmmm [cr/lf]gg.bbb:mmmm [cr/lf][cr/lf]

 値  gg:アラームグループ番号

bbb:アラーム分類番号 mmmm:アラームの発生箇所 ・・・・・・・・・・・

 RC: コントローラ全体/ R?: ロボット(?:ロボット番号)

 C?: コントローラ(?:コントローラ番号)/ A?: 軸(?:軸番号)

 M?: ドライバ(?:ドライバ番号)

 O?: オプションボード   (?:コントローラ内オプションボード番号)

 T?: タスク(?:タスク番号)/ ETH:イーサネット/ CMU:RS232C

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します

SAMPLE

SEND SCK TO CMU ・・・・・・・・・・・・・・・・ 自己診断を通信ポートから出力する

応答:

RUN [cr/lf]12.600:C1M1 [cr/lf]12.600:C1M2 [cr/lf]12.600:C1M3 [cr/lf]12.600:C1M4 [cr/lf][cr/lf]END [cr/lf]

アラーム履歴ファイル ● 10-43

8

9

10

11

12

13

21 アラーム履歴ファイル

読出し ○

書込み ×

形式

LOG

 意味  • アラーム履歴全体を示します。

DATA FORMAT

nnn:yy/mm/dd, hh:mm:ss, gg.bbb : aaaa,c, eee : ffff, iiiii, jjjjjjjj, kkkkkkkk, llllllll, oooooooo, pppppppp, pppppppp, pppppppp, pppppppp, pppppppp, pppppppp, q [cr/lf]nnn:yy/mm/dd, hh:mm:ss, gg.bbb : aaaa,c, eee : ffff, iiiii, jjjjjjjj, kkkkkkkk, llllllll, oooooooo, pppppppp, pppppppp, pppppppp, pppppppp, pppppppp, pppppppp, q [cr/lf] :nnn:yy/mm/dd, hh:mm:ss, gg.bbb : aaaa,c, eee : ffff, iiiii, jjjjjjjj, kkkkkkkk, llllllll, oooooooo, pppppppp, pppppppp, pppppppp, pppppppp, pppppppp, pppppppp, q [cr/lf][cr/lf]

10-44 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

21 アラーム履歴ファイル

 値  nnn:アラーム履歴番号 ・・・・・・・・・・・・・・・・ 1 〜 500

yy/mm/dd:アラーム発生日付

hh:mm:ss:アラーム発生時間

gg:アラームグループ番号

bbb:アラーム分類番号

aaaa:アラームの発生箇所 ・・・・・・・・・・・・・

 RC: コントローラ全体/ R?: ロボット(?:ロボット番号)

 C?: コントローラ(?:コントローラ番号)/ A?: 軸(?:軸番号)

 M?: ドライバ(?:ドライバ番号)

 O?: オプションボード   (?:コントローラ内オプションボード番号)

 T?: タスク(?:タスク番号)/ ETH:イーサネット/ CMU:RS232C

c:運転モード ・・・・・・・・・・・・・・・・・・・・・・・・・

 I:不正/ M:手動/ A:自動(プログラミングボックス)/ O:自動(その他)

eee:プログラム番号

ffff:プログラム実行行

iiiii:ポイント番号

jjjjjjjj:パラレル入力 ・・・・・・・・・・・・・・・・・・・・ ポート 0 〜 3(16 進数)

kkkkkkkk:パラレル出力 ・・・・・・・・・・・・・・・・ ポート 0 〜 3(16 進数)

llllllll:シリアル入力 ・・・・・・・・・・・・・・・・・・・・ ポート 0 〜 3(16 進数)

oooooooo:シリアル出力 ・・・・・・・・・・・・・・・ ポート 0 〜 3(16 進数)

pppppppp:エラー発生位置 ・・・・・・・・・・・・・ A1 〜 A6

q:手系 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 0 : なし/ 1 : 右手系/ 2 : 左手系

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します

SAMPLE

SEND LOG TO CMU ・・・・ アラーム履歴を通信ポートから出力する

応答:

RUN [cr/lf]1:15/03/30,08:23:05,1.100:RC,O,:,0,00000000,00000012,00000000,00000112,,,,,,, [cr/lf]2:15/03/30,08:23:05,5.288: RC,O,:,0,00000000,00000010,00000000,00000110,,,,,,, [cr/lf] :500: 15/03/18,10:23:04,5.228:T01,O,17:3,,00000000,00000010,00000000,00000110, 40119,100000,99996,39375,0,0,0 [cr/lf][cr/lf]END [cr/lf]

メモリ残量ファイル ● 10-45

8

9

10

11

12

13

22 メモリ残量ファイル

読出し ○

書込み ×

形式

MEM

 意味  • メモリ残量を示します。

DATA FORMAT

PGM+PNT AREA=mmmmmmm/nnnnnnnn[cr/lf]VAR AREA=xxxxx/yyyyy[cr/lf][cr/lf]

 値  mmmmmmm:プログラム + ポイント領域のメモリ残容量

nnnnnnn:プログラム + ポイント領域のメモリ容量合計

xxxxx:変数領域のメモリ残容量

yyyyy:変数領域のメモリ容量合計

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND MEM TO CMU ・・・・・・・・・・・・・・・・ メモリ残容量を通信ポートから出力する

応答:

RUN [cr/lf]PGM+PNT AREA=2088547/ 2100000 [cr/lf]VAR AREA=23220/ 24000 [cr/lf][cr/lf]END [cr/lf]

10-46 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

23 変数ファイル

23.1 動的変数

動的変数全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

VAR

 意味  • 動的変数全体を示します。

DATA FORMAT

変数名 t = xxxxxx [cr/lf]変数名 t = xxxxxx [cr/lf] :変数名 t = xxxxxx [cr/lf] [cr/lf]

 値  変数名: プログラム内部で定義されているグローバル変数

 変数名は、英数字または _(アンダースコア)を使用した 32 文字以内の文字列

t:変数の型 ・・・・・・・・・・・・・・・ !:実数/ %:整数/ $:文字列

xxxxxx:変数の値 ・・・・・・・・・・ 整数型 : -2147483647 〜 2147483647 の整数値

実数型 : 整数部 + 小数部が 7 桁以下の数値

文字型 : 255 文字以下の文字列

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND VAR TO CMU ・・・・ 動的変数全体を通信ポートから出力する

応答:

RUN [cr/lf]A%=150 [cr/lf]B!=1.0234E1 [cr/lf]C1$=“SAMPLE1” [cr/lf]C2$=“SAMPLE2” [cr/lf][cr/lf]END [cr/lf]

変数ファイル ● 10-47

8

9

10

11

12

13

23 変数ファイル

動的変数単位

読出し ○

書込み ○

形式

変数名 t

 意味  • 1 つの動的変数を示します。

DATA FORMAT

xxxxxx [cr/lf]

 値  変数名: プログラム内部で定義されているグローバル変数

 変数名は、英数字または _(アンダースコア)を使用した 32 文字以内の文字列

t:変数の型 ・・・・・・・・・・・・・・・ !:実数/ %:整数/ $:文字列

xxxxxx:変数の値 ・・・・・・・・・・ 変数の値

整数型 : 8 桁以下の整数値

実数型 : 整数部 + 小数部が 7 桁以下の数値

文字型 : 255 文字以下の文字列

・ 動的変数は、プログラム実行時に登録されます。登録されていない動的変数への参照はでき

ません。

SAMPLE 1

SEND A% TO CMU [cr/lf] ・・・ 指定動的変数 A% を通信ポートから出力する

応答:

150 [cr/lf]

SAMPLE 2

SEND CMU TO A% [cr/lf] ・・・ 通信ポートから指定動的変数 A%へ値を入力する

応答:

300 [cr/lf] ・・・・ コントローラへデータ入力

OK [cr/lf] ・・・・ コントローラからの結果出力

MEMO

10-48 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

23 変数ファイル

23.2 静的変数

23.2.1 整数型静的変数 (SGI)

整数型静的変数全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

SGI

 意味  • 整数型静的変数全体を示します。

DATA FORMAT

SGIn=xxxxxx [cr/lf]SGIn=xxxxxx [cr/lf] :SGIn=xxxxxx [cr/lf][cr/lf]

 値  n:整数型静的変数番号 ・・・・・ 0 〜 31

xxxxxx ・・・・・・・・・・・・・・・・・・・・ -2147483647 〜 2147483647 の整数値

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND SGI TO CMU ・・・・・・・・・・・・・・・・ 整数型静的変数全体を通信ポートから出力する

応答:

RUN [cr/lf]SGI0=0 [cr/lf]SGI1=0 [cr/lf] :SGI31=0 [cr/lf][cr/lf]END [cr/lf]

変数ファイル ● 10-49

8

9

10

11

12

13

23 変数ファイル

整数型静的変数単位

読出し ○

書込み ○

形式

SGIm

 意味  • 指定整数型静的変数を示します。

• m は、0 〜 31 で示します。

DATA FORMAT

xxxxxx [cr/lf]

 値  xxxxxx ・・・・・・・・・・・・・・・・・・・ -2147483647 〜 2147483647 の整数値

SAMPLE

SEND SGI1 TO CMU ・・・・・・・・・・・・・・ 指定整数型静的変数 (SGI1)を通信ポートから出

力する

応答:

RUN [cr/lf]0 [cr/lf]END [cr/lf]

10-50 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

23 変数ファイル

23.2.2 実数型静的変数 (SGR)

実数型静的変数全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

SGR

 意味  • 実数型静的変数全体を示します。

DATA FORMAT

SGRn=xxxxxx [cr/lf]SGRn=xxxxxx [cr/lf] :SGRn=xxxxxx [cr/lf][cr/lf]

 値  n:数型静的変数番号 ・・・・・・・ 0 〜 31

xxxxxx ・・・・・・・・・・・・・・・・・・・・ 整数部 + 小数部が 7 桁以下の数値

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND SGR TO CMU ・・・・・・・・・・・・・・・・ 実数型静的変数全体を通信ポートから出力する

応答:

RUN [cr/lf]SGR0=0 [cr/lf]SGR1=0 [cr/lf] :SGR31=0 [cr/lf][cr/lf]END [cr/lf]

変数ファイル ● 10-51

8

9

10

11

12

13

23 変数ファイル

実数型静的変数単位

読出し ○

書込み ○

形式

SGRm

 意味  • 指定実数型静的変数を示します。

• m は、0 〜 31 で示します。

DATA FORMAT

xxxxxx [cr/lf]

 値  xxxxxx ・・・・・・・・・・・・・・・・・・・ 整数部 + 小数部が 7 桁以下の数値

SAMPLE

SEND SGR1 TO CMU ・・・・・・・・・・・・・・ 指定実数型静的変数 (SGR1)を通信ポートから出

力する

応答:

RUN [cr/lf]0 [cr/lf]END [cr/lf]

10-52 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

24 定数ファイル

24.1 文字列単体

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み × 書込みファイルでの指定はできません。

形式

“文字列 ”

 意味  • 指定文字列を示します。

DATA FORMAT

sssss...ssssss[cr/lf]

 値  sssss...ssssss:文字列 ・・・・・・・・・・・・・・・・・ 255 文字以内

■ ダブルクォーテーション (") の出力は、ダブルクォーテーション (") を連続記述します。

SAMPLE

SEND """YAMAHA ROBOT""" TO CMU ・・・・・・・・・・・・・・・・・・・・・・・・・・ 指定文字列を通信ポートから出力する

応答 :"YAMAHA ROBOT"

配列変数ファイル ● 10-53

8

9

10

11

12

13

25 配列変数ファイル

25.1 配列変数全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

ARY

 意味  • 配列変数全体を示します。

DATA FORMAT

変数名 t(l{,m{,n}}) = xxxxxx [cr/lf]変数名 t(l{,m{,n}}) = xxxxxx [cr/lf] :変数名 t(l{,m{,n}}) = xxxxxx [cr/lf][cr/lf]

 値  変数名: プログラム内部で DIM 文で定義されているグローバル変数

 変数名は、英数字または _(アンダースコア)を使用した 32 文字以内の文字列

t:変数の型 ・・・・・・・・・・・・・・・ !:実数/ %:整数/ $:文字列

l, m, n:配列引数

xxxxxx:変数の値 ・・・・・・・・・・ 配列変数の型種別によって異なります。

整数型 : -2147483647 〜 2147483647 の整数値

実数型 : 整数部 + 小数部が 7 桁以下の数値

文字型 : 255 文字以下の文字列

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND ARY TO CMU ・・・・・・・・・・・・・・・・ グローバル配列変数全体を通信ポートから出力する

応答:

RUN [cr/lf]A!(0)=0 [cr/lf]A!(1)=1.E2 [cr/lf]A!(2)=2.E2 [cr/lf]B%(0,0)=0 [cr/lf]B%(0,1)=1111 [cr/lf]B%(1,0)=2222 [cr/lf]B%(1,0)=3333 [cr/lf]C$(0,0,0)= “ARY1” [cr/lf]C$(0,0,1)= “ARY2” [cr/lf]C$(0,1,0)= “ARY3” [cr/lf]C$(0,1,1)= “ARY4” [cr/lf]C$(1,0,0)= “ARY5” [cr/lf]C$(1,0,1)= “ARY6” [cr/lf]C$(1,1,0)= “ARY7” [cr/lf]C$(1,1,1)= “ARY8” [cr/lf][cr/lf]END [cr/lf]

10-54 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

25 配列変数ファイル

25.2 配列変数単位

読出し ○

書込み ○

形式

変数名 t(l {,m {,n }})

 意味  • 1 つの配列変数を示します。

DATA FORMAT

xxxxxx [cr/lf]

 値  変数名:プログラム内部で DIM 文で定義されているグローバル変数

 変数名は、英数字または _(アンダースコア)を使用した 32 文字以内の文字列

t:変数の型 ・・・・・・・・・・・・・・・ !:実数、%:整数、$:文字列)

l, m, n:配列引数

xxxxxx:変数の値 ・・・・・・・・・・ 配列変数の型種別によって異なります。

整数型 : -2147483647 〜 2147483647 の整数値

実数型 : 整数部 + 小数部が 7 桁以下の数値

文字型 : 255 文字以下の文字列

・ DIM 文で定義された配列変数は、プログラムコンパイル時に登録されます。登録されていな

い配列変数への参照はできません。

SAMPLE

SEND C1$(2) TO CMU ・・・・・・・・・・・ 指定配列変数 C1$(2)を通信ポートから出力する

応答:

RUN [cr/lf]YAMAHA ROBOT [cr/lf]END [cr/lf]

MEMO

DI ファイル ● 10-55

8

9

10

11

12

13

26 DI ファイル

26.1 DI全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み × 書込みファイルでの指定はできません。

形式

DI()

 意味  • DI(パラレル入力変数)全体を示します。

DATA FORMAT

DI0()=&Bnnnnnnnn [cr/lf]DI1()=&Bnnnnnnnn [cr/lf]     :DI27()=&Bnnnnnnnn [cr/lf][cr/lf]

 値  n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND DI() TO CMU ・・・・・・・・・・・・・ DI全体の状態を通信ポートから出力する

応答 :RUN [cr/lf]DI0()=&B10001001[cr/lf]DI1()=&B00000010[cr/lf]DI2()=&B00000000[cr/lf] :DI7()=&B00000000[cr/lf]DI10()=&B00000000[cr/lf]DI11()=&B00000000[cr/lf]DI12()=&B00000000[cr/lf] :DI17()=&B00000000[cr/lf]DI20()=&B00000000[cr/lf] :DI26()=&B00000000[cr/lf]DI27()=&B00000000[cr/lf][cr/lf]END [cr/lf]

10-56 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

26 DIファイル

26.2 DIポート単位

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み × 書込みファイルでの指定はできません。

形式

DIm()

 意味  • 1 つの DI ポート状態を示します。

DATA FORMAT

DIm()=&Bnnnnnnnn[cr/lf]

 値  m:ポート番号 ・・・・・・・・・・・・ 0 〜 7 / 10 〜 17 / 20 〜 27

n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)

左から m7, m6, ・・・, m0 に対応します。

SAMPLE

SEND DI5() TO CMU ・・・・・・・・・・・ DI5ポートを通信ポートから出力する

応答:

RUN [cr/lf]DI5()=&B00000000 [cr/lf]END [cr/lf]

DOファイル ● 10-57

8

9

10

11

12

13

27 DO ファイル

27.1 DO全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

DO()

 意味  • DO(パラレル出力変数)全体を示します。

• DO0() と DO1() への書込みはできません。

DATA FORMAT

DO0()=&Bnnnnnnnn [cr/lf]DO1()=&Bnnnnnnnn [cr/lf]      :DO27()=&Bnnnnnnnn [cr/lf][cr/lf]

 値  n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND DO() TO CMU ・・・・・・・・・・・・・ DO全体の状態を通信ポートから出力する

応答 :RUN [cr/lf]DO0()=&B10001001[cr/lf]DO1()=&B00000010[cr/lf]DO2()=&B00000000[cr/lf] :DO7()=&B00000000[cr/lf]DO10()=&B00000000[cr/lf]DO11()=&B00000000[cr/lf]DO12()=&B00000000[cr/lf] :DO17()=&B00000000[cr/lf]DO20()=&B00000000[cr/lf] :DO26()=&B00000000[cr/lf]DO27()=&B00000000[cr/lf][cr/lf]END [cr/lf]

10-58 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

27 DOファイル

27.2 DOポート単位

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

DOm()

 意味  • 1 つの DO ポート状態を示します。

• DO0() と DO1() への書込みはできません。

・・ 読出しファイル

DATA FORMAT

DOm()=&Bnnnnnnnn[cr/lf]

・・ 書き込みファイル

DATA FORMAT

&Bnnnnnnnn[cr/lf] または k [cr/lf]

 値  m:ポート番号 ・・・・・・・・・・・・ 0 〜 7 / 10 〜 17 / 20 〜 27

n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)

左から m7, m6, ・・・, m0 に対応します。

k ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 255 の整数

・ DO0() と DO1() への書き込みはできません。参照のみとなります。

SAMPLE

SEND DO5() TO CMU ・・・・・・・・・・・・・ DO5ポートの状態を通信ポートから出力する

応答:

RUN [cr/lf]DO5()=&B00000000 [cr/lf]END [cr/lf]

MEMO

MOファイル ● 10-59

8

9

10

11

12

13

28 MO ファイル

28.1 MO全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

MO()

 意味  • MO(内部出力変数)全体を示します。

• MO30() 〜 MO37() への書込みはできません。

DATA FORMAT

MO0()=&Bnnnnnnnn [cr/lf]MO1()=&Bnnnnnnnn [cr/lf] :MO37()=&Bnnnnnnnnn [cr/lf][cr/lf]

 値  n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND MO() TO CMU ・・・・・・・・・・・・・・ MO全体の状態を通信ポートから出力する

応答:

RUN [cr/lf]MO0()=&B10001001 [cr/lf]MO1()=&B00000010 [cr/lf]MO2()=&B00000000 [cr/lf] :MO7()=&B00000000 [cr/lf]MO10()=&B00000000 [cr/lf]MO11()=&B00000000 [cr/lf]MO12()=&B00000000 [cr/lf] :MO17()=&B00000000 [cr/lf]MO20()=&B00000000 [cr/lf] :MO27()=&B00000000 [cr/lf]MO30()=&B00000000 [cr/lf] :MO36()=&B00000000 [cr/lf]MO37()=&B00000000 [cr/lf][cr/lf]END [cr/lf]

10-60 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

28 MOファイル

28.2 MOポート単位

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

MOm()

 意味  • 1 つの MO ポート状態を示します。

• MO30() 〜 MO37() への書込みはできません。

・・ 読出しファイル

DATA FORMAT

MOm()=&Bnnnnnnnn[cr/lf]

・・ 書き出しファイル

DATA FORMAT

&Bnnnnnnnn[cr/lf] または k [cr/lf]

 値  m:ポート番号 ・・・・・・・・・・・・ 0 〜 7 / 10 〜 17/ 20 〜 27/ 30 〜 37

n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)

左から m7, m6, ・・・, m0 に対応します。

k ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 255 の整数

・ MO30() 〜 MO37() への書き込みはできません。参照のみとなります。

SAMPLE

SEND MO5() TO CMU ・・・・・・・・・・・・・ MO5ポートの状態を通信ポートから出力する

応答:

RUN [cr/lf]MO5()=&B00000000 [cr/lf]END [cr/lf]

MEMO

LO ファイル ● 10-61

8

9

10

11

12

13

29 LO ファイル

29.1 LO全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

LO()

 意味  • LO 全体を示します。

DATA FORMAT

LO0()=&Bnnnnnnnn [cr/lf]LO1()=&Bnnnnnnnn [cr/lf][cr/lf]

 値  n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND LO() TO CMU ・・・・・・・・・・・・・・ LO全体の状態を通信ポートから出力する

応答:

RUN [cr/lf]LO0()=&B10001001 [cr/lf]LO1()=&B00100100 [cr/lf][cr/lf]END [cr/lf]

10-62 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

29 LOファイル

29.2 LOポート単位

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

LOm()

 意味  • 1 つの LO ポート状態を示します。

・・ 読出しファイル

DATA FORMAT

LOm()=&Bnnnnnnnn[cr/lf]

・・ 書き込みファイル

DATA FORMAT

&Bnnnnnnnn[cr/lf] または k [cr/lf]

 値  m:ポート番号 ・・・・・・・・・・・・ 0/ 1

n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)

左から m7, m6, ・・・, m0 に対応します。

k ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 255 の整数

SAMPLE

SEND LO0() TO CMU ・・・・・・・・・・・・・ LO0ポートの状態を通信ポートから出力する

応答:

RUN [cr/lf]LO0()=&B00000000 [cr/lf]END [cr/lf]

TOファイル ● 10-63

8

9

10

11

12

13

30 TO ファイル

30.1 TO全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

TO()

 意味  • TO(タイマ出力変数)全体を示します。

DATA FORMAT

TO0()=&Bnnnnnnnn [cr/lf]TO1()=&Bnnnnnnnn [cr/lf][cr/lf]

 値  n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND TO() TO CMU ・・・・・・・・・・・・・・ TO全体の状態を通信ポートから出力する

応答:

RUN [cr/lf]TO0()=&B10001001 [cr/lf]TO1()=&B10001001 [cr/lf][cr/lf]END [cr/lf]

10-64 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

30 TOファイル

30.2 TOポート単位

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

TOm()

 意味  • 1 つの TO ポート状態を示します。

・・ 読出しファイル

DATA FORMAT

TOm()=&Bnnnnnnnn[cr/lf]

・・ 書き込みファイル

DATA FORMAT

&Bnnnnnnnn[cr/lf] または k [cr/lf]

 値  m:ポート番号 ・・・・・・・・・・・・ 0/ 1

n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)

左から m7, m6, ・・・, m0 に対応します。

k ・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 255 の整数

SAMPLE

SEND TO0() TO CMU ・・・・・・・・・・・・・ TO0ポートの状態を通信ポートから出力する

応答:

RUN [cr/lf]TO0()=&B00000000 [cr/lf]END [cr/lf]

SI ファイル ● 10-65

8

9

10

11

12

13

31 SI ファイル

31.1 SI全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み × 書込みファイルでの指定はできません。

形式

SI()

 意味  • SI(シリアル入力変数)全体を示します。

DATA FORMAT

SI0()=&Bnnnnnnnn [cr/lf]SI1()=&Bnnnnnnnn [cr/lf]     :SI27()=&Bnnnnnnnn [cr/lf][cr/lf]

 値  n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND SI() TO CMU ・・・・・・・・・・・・・・ SI全体の状態を通信ポートから出力する

応答:

RUN [cr/lf]SI0()=&B10001001 [cr/lf]SI1()=&B00000010 [cr/lf]SI2()=&B00000000 [cr/lf] :SI7()=&B00000000 [cr/lf]SI10()=&B00000000 [cr/lf]SI11()=&B00000000 [cr/lf]SI12()=&B00000000 [cr/lf] :SI17()=&B00000000 [cr/lf]SI20()=&B00000000 [cr/lf] :SI26()=&B00000000 [cr/lf]SI27()=&B00000000 [cr/lf][cr/lf]END [cr/lf]

10-66 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

31 SIファイル

31.2 SIポート単位

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み × 書込みファイルでの指定はできません。

形式

SIm()

 意味  • 1 つの SI ポート状態を示します。

DATA FORMAT

SIm()=&Bnnnnnnnn[cr/lf]

 値  m:ポート番号 ・・・・・・・・・・・・ 0 〜 7 / 10 〜 17 / 20 〜 27

n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)

左から m7, m6, ・・・, m0 に対応します。

SAMPLE

SEND SI5() TO CMU ・・・・・・・・・・・ SI5ポートの状態を通信ポートから出力する

応答:

RUN [cr/lf]SI5()=&B00000000 [cr/lf]END [cr/lf]

SO ファイル ● 10-67

8

9

10

11

12

13

32 SO ファイル

32.1 SO全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

SO()

 意味  • SO(シリアル出力変数)全体を示します。

• SO0() と SO1() への書込みはできません。

DATA FORMAT

SO0()=&Bnnnnnnnn [cr/lf]SO1()=&Bnnnnnnnn [cr/lf] :SO27()=&Bnnnnnnnn [cr/lf][cr/lf]

 値  n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)。

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND SO() TO CMU ・・・・・・・・・・・・・ SO全体の状態を通信ポートから出力する

応答 :RUN [cr/lf]SO0()=&B10001001[cr/lf]SO1()=&B00000010[cr/lf]SO2()=&B00000000[cr/lf]:SO7()=&B00000000[cr/lf]SO10()=&B00000000[cr/lf]SO11()=&B00000000[cr/lf]SO12()=&B00000000[cr/lf]:SO17()=&B00000000[cr/lf]SO20()=&B00000000[cr/lf]:SO26()=&B00000000[cr/lf]SO27()=&B00000000[cr/lf][cr/lf]END [cr/lf]

10-68 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

32 SOファイル

32.2 SOポート単位

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

SOm()

 意味  • SO ポート単位の出力状態を示します。

• SO0() と SO1() への書込みはできません。

・・ 読出しファイル

DATA FORMAT

SOm()=&Bnnnnnnnn[cr/lf]

・・ 書き込みファイル

DATA FORMAT

&Bnnnnnnnn[cr/lf] または k [cr/lf]

 値  m:ポート番号 ・・・・・・・・・・・・ 0 〜 7/ 10 〜 17/、20 〜 27

n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 または 1(合計 8 桁)

左から m7, m6, ・・・, m0 に対応します。

k ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 255 の整数

・ SO0() と SO1() への書き込みはできません。参照のみとなります。

SAMPLE

SEND SO5() TO CMU ・・・・・・・・・・・・・ SO5ポートの状態を通信ポートから出力する

応答:

RUN [cr/lf]SO5()=&B00000000 [cr/lf]END [cr/lf]

MEMO

SIW・ファイル ● 10-69

8

9

10

11

12

13

33 SIWファイル

33.1 SIW全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み × 書込みファイルでの指定はできません。

形式

SIW()

 意味  • SIW(シリアルワード入力)全体を示します。

• 読出しファイルの場合は、SIW 全体情報が 16 進数で読み出されます。

DATA FORMAT

SIW(0)=&Hnnnn [cr/lf]SIW(1)=&Hnnnn [cr/lf] :SIW(15)=&Hnnnn [cr/lf][cr/lf]

 値  n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 9, A 〜 F の 4 桁(16 進数)

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND SIW() TO CMU ・・・・・・・・・・・・・ SIW 全体の状態を通信ポートから出力する

応答 :RUN [cr/lf]SIW(0)=&H1001[cr/lf]SIW(1)=&H0010[cr/lf]SIW(2)=&H0000[cr/lf] :SIW(15)=&H0000[cr/lf][cr/lf]END [cr/lf]

10-70 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

33 SIW ファイル

33.2 SIW単位

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み × 書込みファイルでの指定はできません。

形式

SIW(m)

 意味  • 1 つの SIW 状態を示します。

• 読出しファイルの場合は、指定 SIW が 16 進数で読み出されます。

DATA FORMAT

SIW(m)=&Hnnnn [cr/lf]

 値  m ・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 15

n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 9, A 〜 F の 4 桁(16 進数)

SAMPLE

SEND SIW(5) TO CMU ・・・・・・・・・・・ SIW(5)の状態を通信ポートから出力する

応答 :RUN [cr/lf]SIW(5)=&H1001[cr/lf]END [cr/lf]

SOWファイル ● 10-71

8

9

10

11

12

13

34 SOWファイル

34.1 SOW全体

読出し ○ 登録されている対象のファイルが全て読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

SOW()

 意味  • SOW(シリアルワード出力)全体を示します。

• 読出しファイルの場合は、SOW 全体情報が 16 進数で読み出されます。

• SOW(0) と SOW(1) への書込みはできません。

DATA FORMAT

SOW(0)=&Hnnnn [cr/lf]SOW(1)=&Hnnnn [cr/lf] :SOW(15)=&Hnnnn [cr/lf][cr/lf]

 値  n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 9, A 〜 F の 4 桁(16 進数)

■ ファイルの最後尾には、ファイルの終了を示す [cr/lf] のみの行を付加します。

SAMPLE

SEND SOW() TO CMU ・・・・・・・・・・・・・ SOW 全体の状態を通信ポートから出力する

応答 :RUN [cr/lf]SOW(0)=&H1001[cr/lf]SOW(1)=&H0010[cr/lf]SOW(2)=&H0000[cr/lf] :SOW(15)=&H0000[cr/lf][cr/lf]END [cr/lf]

10-72 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

34 SOWファイル

34.2 SOW単位

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み ○ ファイルの内容に沿ってデータが書き込まれます。

形式

SOW(m)

 意味  • 1 つの SOW 状態を示します。

• 読出しファイルの場合は、指定 SOW が 16 進数で読み出されます。

• SOW(0) と SOW(1) への書込みはできません。

・・ 読出しファイル

DATA FORMAT

SOW(m)=&Hnnnn [cr/lf]

・・ 書き込みファイル

DATA FORMAT

&Hnnnn

 値  m ・・・・・・・・・・・・・・・・・・・・・・・・ 2 〜 15

n ・・・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 9, A 〜 F の 4 桁(16 進数)

SAMPLE

SEND SOW(5) TO CMU ・・・・・・・・・・・ SOW(5)の状態を通信ポートから出力する

応答:

RUN [cr/lf]SOW(5)=&H1001[cr/lf]END [cr/lf]

EOF ファイル ● 10-73

8

9

10

11

12

13

35 EOF ファイル

35.1 EOFデータ

読出し ○ ファイルの内容に沿ってデータが読み出されます。

書込み × 書込みファイルでの指定はできません。

形式

EOF

 意味  • このファイルは ^Z(= 1Ah)のみの特殊ファイルです。通信を使って外部装置にデー

タを送信する際、^Z がファイル終了となる場合に使用します。

• 読出しファイルの場合は、^Z( = 1Ah) が読み出されます。

DATA FORMAT

^Z (=1Ah)

SAMPLE

SEND PGM TO CMUSEND EOF TO CMU ・・・・・・・・・・・・・・ EOFデータを通信ポートから出力する

NAME=TEST1[cr/lf]A=1[cr/lf] :HALT[cr/lf][cr/lf]^Z

・ データを受け取る側の機器、アプリケーションの仕様により送信ファイルの最後に ^Z が必

要な場合に使用します。

MEMO

10-74 ● 第 10 章 データファイル詳細

8

9

10

11

12

13

36 シリアルポート通信ファイル

36.1 シリアルポート通信ファイル

読出し ○

書込み ○

形式

CMU

 意味  • シリアル通信ポートを示します。

• 各種データフォーマットに依存します。

SAMPLE

SEND PNT TO CMU ・・・・・・・・・・・・・・ ポイント全体を通信ポートから出力する

SEND CMU TO PNT  ・・・・・・・・・・・・ ポイント全体を通信ポートから入力する

Ethernet ポート通信ファイル ● 10-75

8

9

10

11

12

13

37 Ethernet ポート通信ファイル

37.1 Ethernetポート通信ファイル

読出し ○

書込み ○

形式

ETH

 意味  • Ethernet ポートを示します。

• 各種データフォーマットに依存します。

SAMPLE

SEND PNT TO ETH ・・・・・・・・・・・・・・・・ ポイント全体を Ethernetポートから出力する

SEND ETH TO PNT ・・・・・・・・・・・・・・・・ ポイント全体を Ethernetポートから入力する

第 11章

ユーザープログラム例

1 1 基本編 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 11-1

2 2 応用編 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 11-8

基本編 ● 11-1

8

9

10

11

12

13

1 基本編

1.1 ポイントデータを直接プログラム中に書く

■ 概要

ポイントデータをプログラム中で直接指定することによって、ロボットアームを PTP 動作させ

ます。

処理フロー

300.000 300.000 50.000 90.000 0.000 0.000 へPTPで移動

300.000 100.000 0.000 0.000 0.000 0.000 へPTPで移動

200.000 200.000 10.000 -90.000 0.000 0.000 へPTPで移動

START

STOP

31B01-R9-00

SAMPLE

MOVE P, 300.000 300.000 50.000 90.000 0.000 0.000MOVE P, 300.000 100.000 0.000 0.000 0.000 0.000MOVE P, 200.000 200.000 10.000 -90.000 0.000 0.000HALT

11-2 ● 第 11 章 ユーザープログラム例

8

9

10

11

12

13

1.2 ポイント番号を使用する

■ 概要

プログラム中でポイント番号を用いて座標値を指定します。プログラミングボックス、または

RCX-Studio Proであらかじめ座標値を入力します。以下のデータを入力してください(詳しくは、

コントローラのオペレーションマニュアル、または RCX-Studio Pro のマニュアルを参照してく

ださい)。

POINT DATA

P0= 0.000 0.000 0.000 0.000 0.000 0.000P1= 100.000 0.000 150.000 30.000 0.000 0.000P2= 0.000 100.000 50.000 0.000 0.000 0.000P3= 300.000 300.000 0.000 0.000 0.000 0.000P4= 300.000 100.000 100.000 90.000 0.000 0.000P5= 200.000 200.000 0.000 0.000 0.000 0.000

処理フロー

P0へPTPで移動する

P1へPTPで移動する

P2へPTPで移動する

P3へPTPで移動する

P4へPTPで移動する

P5へPTPで移動する

START

STOP

31C02-R7-00

SAMPLE 1

MOVE P,P0MOVE P,P1MOVE P,P2MOVE P,P3MOVE P,P4MOVE P,P5HALT

SAMPLE 2

FOR J=0 TO 5 MOVE P,P[J]NEXT JHALT

SAMPLE1 と SAMPLE2 のどちらも同じ動作ですが、ポイント番号と FOR 文を使うことでプロ

グラムが短くなります。

基本編 ● 11-3

8

9

10

11

12

13

1.3 シフト座標の使用

■ 概要

図で示すように P3 から P5 まで PTP で移動した後、X 方向へ +140、Y 軸方向へ -100 シフトして、

再度 P3 から P5 まで PTP で移動します。シフト座標は S1 に設定しておき、P3, P4, P5 は前項

「1.2 ポイント番号を使用する」で設定したものを用います。

SHIFT DATA

S0= 0.000 0.000 0.000 0.000S1= 140.000 -100.000 0.000 0.000

シフト座標  

P3

X:140mm, Y:-100mm分シフト

P5

P4

Y+

X+→

シフト座標S0

シフト座標S1

0

140

100

31C03-R7-00

SAMPLE

SHIFT S0 ・・・・・・・・・・・・・・・・・・・・・・・・・・ シフト 0FOR J=3 TO 5 ・・・・・・・・・・・・・・・・・・・・・ P3〜 P5まで繰り返し移動

MOVE P, P[J]NEXT JSHIFT S1 ・・・・・・・・・・・・・・・・・・・・・・・・・・ シフト 1に変更

FOR K=3 TO 5 ・・・・・・・・・・・・・・・・・・・・・ 同様に P3〜 P5まで繰り返し移動

MOVE P,P[K]NEXT KHALT

11-4 ● 第 11 章 ユーザープログラム例

8

9

10

11

12

13

1.4 パレタイジング

1.4.1 ポイント座標の算出

■ 概要

等間隔に並んだパレット上の各ポイントとワーク供給位置 P0 を、交互に移動するプログラムを

作成します。

次図において N1 〜 N20 は直交座標上で X 方向に 50mm ピッチで 5 点が、Y 方向に 25mm ピッ

チで 4 点が並んでいます。アームはポイントからポイントへ、P0 N1 P0 N2...N5 P0 ‐ N6 ‐

P0... というように P0 と各点を往復します。

POINT DATA

ワーク供給位置:

   P0= 0.000 0.000 0.000 0.000 0.000 0.000X方向のピッチ:

   P10= 50.000 0.000 0.000 0.000 0.000 0.000Y方向のピッチ:

   P20= 0.000 25.000 0.000 0.000 0.000 0.000N1の位置:

   P1 = 100.000 50.000 0.000 0.000 0.000 0.000

ポイント座標の算出  

X+

N16 N17 N18 N19 N20

N11 N12 N13 N14 N15

N6 N7 N8 N9 N10

N1 N2 N3 N4 N5

50

25

P0

Y+

31C04-R7-00

処理フロー

START

供給位置へ移動

P100に移動

P100をX方向のピッチ分シフト

P200=P1

P100=P1

5回繰り返す

4回繰り返す

P0へ移動

P100へ移動

P100=P100+P10

STOP

P200=P200+P20

P100=P200

P200にP1の座標を入力

P100にP1の座標を入力

P200に移動

P200をY方向のピッチ分シフト

31C05-R7-00

基本編 ● 11-5

8

9

10

11

12

13

SAMPLE

P100=P1P200=P1FOR J=1 TO 4 FOR K=1 TO 5 MOVE P,P0 MOVE P,P100 P100=P100+P10 NEXT K P200=P200+P20 P100=P200NEXT JHALT

11-6 ● 第 11 章 ユーザープログラム例

8

9

10

11

12

13

1.4.2 パレット移動の利用

■ 概要

等間隔に並んだパレット上の各ポイントとワーク供給位置 P0 を、交互に移動するプログラムを

作成します。次図において N1 〜 N24 は直交座標上で X 方向に 50mm ピッチで 3 点、Y 方向に

50mm ピッチで 4 点、Z 方向に 100mm ピッチで 2 点並んでいます。アームはポイントからポイ

ントへ、P0 → N1 → P0 → N2 → P0 → N3・・・ というように P0 と各点を往復します。

POINT DATA

ワーク供給位置:

P0= 0.000 0.000 200.000 0.000 0.000 0.000パレット定義:

PL0NX= 3NY= 4NZ= 2PLP= 3996 (使用ポイントは、P3996 〜 P4000)P[1]= 100.000 50.000 200.000 0.000 0.000 0.000P[2]= 200.000 50.000 200.000 0.000 0.000 0.000P[3]= 100.000 200.000 200.000 0.000 0.000 0.000P[4]= 200.000 200.000 200.000 0.000 0.000 0.000P[5]= 100.000 50.000 100.000 0.000 0.000 0.000

パレット移動の利用  

P4000

P3998 P3999

P3997P3996

NZ

NX

N1 N2

N4 N5

N3

N13 N14

N16

N15

N12

N24

N11NY

P0

31C06-R7-00

処理フロー

START

P0へ移動

パレット移動24回繰り返す

STOP

供給位置(P0)に移動

ポイント N1~N24 まで繰り返し

31C07-R7-00

SAMPLE

FOR I=1 TO 24 ・・・・・・・・・・・・・・・・・・・ I= 1〜 24まで繰り返す

MOVE P,P0,Z=0.000 ・・・・・・・・・ ロボット 1を供給位置へ移動

PMOVE (0,I),Z=0.000 ・・・・・・ ロボット 1をパレット上のポイントに移動

NEXT IMOVE P,P0,Z=0.000HALT

基本編 ● 11-7

8

9

10

11

12

13

1.5 DI/DO(デジタル入出力)動作

■ 概要

汎用入力、汎用出力装置を用いて信号の入出力を行います。

処理フロー

DI2() が全て “0” になるのを待つ

DO2()を全て “1” にする

1 秒間待つ

DI2(0)が “1” になるのを待つ

END

N

DI2(1)は “1” ?

N=1

N>20

DO2()を全て “0” にする

0.5 秒間待つ

N=N+1

DO2(7, 6, 1, 0)を “1” にする

2 秒間待つ

DO2()を全て“0”にする

Y

Y

N

START

DI20~DI27 が「0」になるまで待つ

DO20~DO27 を「1」にする

DI20 が「1」になるまで待つ

・ DI2(1) が「1」なら、DO の処理をして終了

・ DI2(1) が「0」の場合は、N=20 まで繰り返す

N に 1 を代入

31C08-R7-00

SAMPLE

WAIT DI2()=0 ・・・・・・・・・・・・・・・・・・・・・ DI20〜 27全てが「0」になるまで待つ

DO2()=&B11111111 ・・・・・・・・・・・・・・・ DO20〜 DO27全てを「1」にする

DELAY 1000WAIT DI2(0)=1 ・・・・・・・・・・・・・・・・・・・ DI20が「1」になるまで待つ

N=1*LOOP1:IF DI2(1)=1 THEN *PROGEND ・・・・ DI21= 1なら *PROGENDへジャンプ

IF N>20 THEN *ALLEND ・・・・・・・・ N> 20なら終了(*ALLENDへジャンプ)

DO2()=0 ・・・・・・・・・・・・・・・・・・・・・・・・・・ DO20〜 DO27全てを「0」にする

DELAY 500N=N+1GOTO *LOOP1 ・・・・・・・・・・・・・・・・・・・・・・ ループを繰り返す

’END ROUTINE*PROGEND: ・・・・・・・・・・・・・・・・・・・・・・・・・ 終了時の処理

DO2(7,6,1,0)=&B1111 ・・・・・・・・・・・ DO27,26,21,20を「1」にする

DELAY 2000 ・・・・・・・・・・・・・・・・・・・・・・・・ 2秒待つ

DO2()=0 ・・・・・・・・・・・・・・・・・・・・・・・・・・ DO20を「0」にする

*ALLEND:HALT

11-8 ● 第 11 章 ユーザープログラム例

8

9

10

11

12

13

2 応用編

2.1 2点間のピック &プレイス

■ 概要

A 点にある部品をつかんで B 点に置きます。

2点間のピック&プレイス  

0

Z

P3

P1

P4

P2

A点 B点

50mm

30mm

31C09-R7-00

■ 前提

1. ロボットの移動経路を決めます。

・移動経路:P3 → P1 → P3 → P4 → P2 → P4

・ P3, P4 はそれぞれ P1, P2 の上方 50mm の位置とし、P1, P2 はテイーチングで設定します。

2. 入出力信号

DO(20) チャック開閉 0:開/ 1:閉

・チャック開閉時には、0.1 秒間待つものとします。

SAMPLE:P3,P4 を計算で求める場合

P3=P1 ・・・・・・・・・・・・・・・・・・・・・・・・・・ P3に P1の座標を代入

P4=P2 ・・・・・・・・・・・・・・・・・・・・・・・・・・ P4に P2の座標を代入

LOC3(P3)=LOC3(P3)-50.000 ・・ P3の第 3軸データを上方向に 50mmシフトする

LOC3(P4)=LOC3(P4)-50.000 ・・ P4の第 3軸データを上方向に 50mmシフトする

MOVE P,P3 GOSUB *OPEN MOVE P,P1 GOSUB *CLOSE MOVE P,P3 MOVE P,P4 MOVE P,P2 GOSUB *OPEN MOVE P,P4 HALT*OPEN: ・・・・・・・・・・・・・・・・・・・・・・・・・・ チャック開ルーチン

DO2(0)=0 DELAY 100 RETURN*CLOSE: ・・・・・・・・・・・・・・・・・・・・・・・・・・ チャック閉ルーチン

DO2(0)=1 DELAY 100 RETURN

応用編 ● 11-9

8

9

10

11

12

13

SAMPLE:アーチモーションを使用する場合

P4=P2 ・・・・・・・・・・・・・・・・・・・・・・・・・・ P4に P2の座標を代入する

LOC3(P4)=LOC3(P4)-50.000 ・・ P4の第 3軸データを上方向に 50mmシフトする

GOSUB *OPEN MOVE P,P1,A3=30.000 ・・・・・・ A3= 30mmでアーチモーション

GOSUB *CLOSE MOVE P,P2,A3=30.000 ・・・・・・ A3= 30mmでアーチモーション

GOSUB *OPEN MOVE P,P4 HALT*OPEN: ・・・・・・・・・・・・・・・・・・・・・・・・・・ チャック開ルーチン

DO2(0)=0 DELAY 100 RETURN*CLOSE: ・・・・・・・・・・・・・・・・・・・・・・・・・・ チャック閉ルーチン

DO2(0)=1 DELAY 100 RETURN

11-10 ● 第 11 章 ユーザープログラム例

8

9

10

11

12

13

2.2 パレタイジング

■ 概要

パーツフィーダーから供給される部品をコンベアー上のパレットに順次搭載します。パレットが

いっぱいになったら、パレットを排出します。

P0:パーツ供給位置

パレタイジング  

P1:パレット基準位置

ロボット

Z

0

50mm

P1 P0

P0:パーツ供給位置

パーツフィーダー

31C10-R7-00

■ 前提

1. 入出力信号

DI(30) 部品検出センサ 1:部品あり

DI(31) パレットセンサ 1:パレットあり

DO(30) ロボットハンド開閉 0:開/ 1:閉

DO(31) パレット排出 1:排出

ロボットハンド開閉時には 0.1 秒、パレット排出時には 0.5 秒待つものとします。

2. 下記のポイントは、あらかじめポイントデータに入力してあるものとします。

P0 パーツ供給位置

P1 パレット基準位置

P10 X 方向ピッチ

P11 Y 方向ピッチ

3. パレット上方、パーツフィーダ上方では Z=50mm の位置まで動作させます。

応用編 ● 11-11

8

9

10

11

12

13

SAMPLE 1:ポイントを計算で求める場合

WHILE -1 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 全体を繰り返す(-1は常に真)

FOR A=0 TO 2 FOR B=0 TO 2 WAIT DI(31)=1 ・・・・・・・・・・・・ パレット「あり」になるまで待つ

WAIT DI(30)=1 ・・・・・・・・・・・・ 供給パーツ「あり」になるまで待つ

DO(30)=0 ・・・・・・・・・・・・・・・・・・・・ ロボットハンドを「開」

DELAY 100 MOVE P,P0,A3=50.000・・・・・・ ロボット 1を供給位置に移動

DO(30)=1 ・・・・・・・・・・・・・・・・・・・・ ロボットハンドを「閉」

DELAY 100 P100=P1+P10*B+P11*A ・・・ 次のポイントを計算する

MOVE P,P100,A3=50.000 ・・・・ ロボット 1を計算したポイントに移動

DO(30)=0 ・・・・・・・・・・・・・・・・・・・・ ロボットハンドを「開」

DELAY 100 NEXT NEXT DRIVE (3,0) ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の第 3軸のみ 0に移動する

DO(31)=1 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ パレットを排出

DELAY 500 DO(31)=0 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・WEND ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ループを繰り返す

HALT

SAMPLE 2:パレタイジング機能を使用する場合

*前提:パレット 0に定義してあること

WHILE -1 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 全体を繰り返す

FOR A=1 TO 9 WAIT DI(31)=1 ・・・・・・・・・・・・・・・・・ パレット「あり」になるまで待つ

WAIT DI(30)=1 ・・・・・・・・・・・・・・・・・ 供給パーツ「あり」になるまで待つ

DO(30)=0 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボットハンドを「開」

DELAY 100 MOVE P,P0,A3=50.000 ・・・・・・・・ ロボット 1を供給位置に移動

DO(30)=1 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボットハンドを「閉」

DELAY 100 PMOVE(0,A),A3=50.000 ・・・・・・ ロボット 1をパレット上のポイントに移動

DO(30)=0 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボットハンドを「開」

DELAY 100 NEXT DRIVE(3,0) ・・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の第 3軸のみ 0に移動

DO(31)=1 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ パレットを排出

DELAY 500 DO(31)=0WEND ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ループを繰り返す

HALT

11-12 ● 第 11 章 ユーザープログラム例

8

9

10

11

12

13

2.3 段積みの部品のピック &プレイス

■ 概要

最大 6 段に積まれた 3 個のブロックの部品を順次つかんでコンベア上に置きます。

1 個のブロックの部品の個数は、任意とします。

部品の検出は、ロボットハンドに取付られたセンサによって行います。

段積みの部品のピック& プレイス  

コンベアP5 P1

ブロック1P2

ブロック2P3

ブロック3

Z=0.0

31C11-R7-00

■ 前提

1. 入出力信号

DI(30) 部品検出センサ 1:部品あり

DI(31) ロボットハンド開閉 0:開/ 1:閉

・ロボットハンド開閉時には、0.1 秒待つものとします。

2. 下記のポイントは、あらかじめポイントデータに入力してあるものとします。

P1 ブロック 1 の下降端

P2 ブロック 2 の下降端

P3 ブロック 3 の下降端

P5 コンベア上の位置

3. 移動時は最大速度で、部品の手前では遅い速度で動作させます。

処理フロー  

P5 P1

P5 P1

P4=WHERE

P4=WHERE

高速

高速低速

現在位置をポイントデータ

(P4)に取り込むP4=WHERE

スピードを最大に設定

コンベアの位置(P5)へ

部品を運ぶ

部品検出時の位置(P4)

へ移動

P1へ移動

スピードを落とす

31C12-R7-00

4. 移動中のセンサの検出には、MOVE 文の STOPON 条件指定を使用します。

応用編 ● 11-13

8

9

10

11

12

13

SAMPLE

FOR A=1 TO 3 SPEED 100 GOSUB *OPEN P6=P[A] LOC3(P6)=0.000 MOVE P,P6,A3=0.000 WHILE -1 SPEED 20 MOVE P,P[A],STOPON DI3(0)=1 IF DI3(0)=0 THEN *L1 ’SENSOR ON P4=JTOXY(WHERE) GOSUB *CLOSE SPEED 100 MOVE P,P5,A3=0.000 GOSUB *OPEN MOVE P,P4,A3=0.000 WEND *L1: ’SENSOR OFFNEXT ASPEED 100DRIVE (3,0)HALT*OPEN:DO3(0)=0DELAY 100RETURN*CLOSE:DO3(0)=1DELAY 100RETURN

11-14 ● 第 11 章 ユーザープログラム例

8

9

10

11

12

13

2.4 部品の検査 1(マルチタスクの例)

■ 概要

ロボット 1 台を使用して 2 つの異なった部品を判別機で判定し、良品と不良品に分けます。

A 点にある部品をつかんで B 点にある判別機に移動します。判別機で良品 / 不良品の判定を行い、

良品なら C 点へ不良品なら D 点へ移動します。

同様に A’点にある部品をつかんで B’点にある判別機に移動します。判別機で良品 / 不良品の判

定を行い、良品なら C’点へ不良品なら D’点へ移動します。

判別機の判定には、10 数秒かかるものとします。

部品の検査1(マルチタスクの例)  

A

P1

B

P2

C

P3

D

P4

A’

P11

B’

P12

C’

P13

D’

P14

供給部品 判別機 良品 不良品

31C13-R7-00

■ 前提

1. 入出力信号

入出力信号  

判別機2起動(0.1秒) DO3

1:起動 ※1

7 6 5 4 3 2 1 0

判別機1完了 ※3

判別機1判別信号供給部品1あり良品1あり不良品1あり

DI2

7 6 5 4 3 2 1 0

DI3

7 6 5 4 3 2 1 0

判別機1起動(0.1秒) ロボットチャック開閉

DO21:起動 ※1

0:開/1:閉 ※2

7 6 5 4 3 2 1 0

判別機2完了 ※3

判別機2判別信号供給部品2あり良品2あり不良品2あり

31C14-R7-00

2. サブタスクを起動し、部品 1 をメインタスク(タスク 1)で、部品 2 をサブタスク(タスク 2)

で制御します。

3. 判別機の判別完了信号待ちの時のみ他のタスクが走るようにするために、排他制御フラグを

使用します。

FLAG1 0:タスク 1 待機中 (タスク 2 は実行可能)

1:タスク 1 実行中 (タスク 2 は実行不可)

FLAG2 0:タスク 2 待機中 (タスク 1 は実行可能)

1:タスク 2 実行中 (タスク 1 は実行不可)

n 要点

・・※ 1:起動信号は判別機に、0.1 秒のパルス信号を与えるものとします。

0.1秒ONOFF

・・※ 2:チャック開閉時には、0.1 秒待つものとします。

・・※ 3:判別機からもらう信号として、完了および良品 /不良品の判別信号があります。判別終了後、完了信号がオン(= 1)し、判別信号は良品ならオン(= 1)、不良品ならオフ(= 0)となります。

応用編 ● 11-15

8

9

10

11

12

13

4. フローチャート

処理フロー  

タスク2ビジー?

排他制御フラグセット

タスク2ビジー?

START

排他制御フラグリセット

サブタスク起動

部品1あり?

チャック開

供給位置P1へ移動

チャック閉

判別機1へ移動

チャック開

10000パルス上昇

排他制御フラグリセット

判別機1スタート

判別完了?

排他制御フラグセット

判別機1へ移動

チャック閉

良品?

良品あり?

良品位置へ移動

チャック開

10000パルス上昇

排他制御フラグリセット

不良品あり?

FLAG1=0 FLAG2=0

不良品位置へ移動

FLAG1=0

FLAG1=1

FLAG1=0

FLAG1=1

N

Y

Y

N

Y

N

Y

N

Y

Y

Y

N

Y

N

N

31C15-R7-00

タスク 2(サブタスク)についても同様なフローチャートになります。

11-16 ● 第 11 章 ユーザープログラム例

8

9

10

11

12

13

■ プログラム例

SAMPLE

<メインタスク>

FLAG1=0FLAG2=0UPPOS=0.000START <SUB_PGM>,T2*L1:WAIT DI2(2)=1WAIT FLAG2=0FLAG1=1GOSUB *OPENMOVE P,P1,Z=UPPOSGOSUB *CLOSEMOVE P,P2,Z=UPPOSGOSUB *OPENDRIVEI (3,-10000)FLAG1=0DO2(0)=1DELAY 100DO2(0)=0WAIT DI2(0)=1WAIT FLAG2=0FLAG1=1MOVE P,P2,Z=UPPOSGOSUB *CLOSEIF DI2(1)=1 THEN'GOODWAIT DI4(2)=0MOVE P,P3,Z=UPPOSELSE'NGWAIT DI2(4)=0MOVE P,P4,Z=UPPOSENDIFGOSUB *OPENDRIVEI (3,-10000)FLAG1=0GOTO *L1

サブタスク起動

部品供給待ち

他タスクの待機状態待ち

排他制御フラグセット

チャック開

供給位置へ移動

チャック閉

判別機へ移動

チャック開

第 3軸を 10000パルス上昇

排他制御フラグリセット

判別機スタート

判別完了待ち

タスク動作完了待ち

排他制御フラグセット

判別機へ移動

チャック閉

判定

部品移動待ち

良品位置へ移動

部品移動待ち

不良品位置へ移動

チャック開

第 3軸を 10000パルス上昇

排他制御フラグリセット

<サブタスク>

プログラム名 :SUB_PGM*S1:WAIT DI3(2)=1WAIT FLAG1=0FLAG2=1GOSUB *OPENMOVE P,P11,Z=UPPOSGOSUB *CLOSEMOVE P,P12,Z=UPPOSGOSUB *OPENDRIVEI (3,-10000)FLAG2=0DO3(0)=1DELAY 100DO3(0)=0WAIT DI3(0)=1WAIT FLAG1=0FLAG2=1MOVE P,P12,Z=UPPOSGOSUB *CLOSEIF DI3(1)=1 THEN'GOODWAIT DI3(3)=0MOVE P,P13,Z=UPPOSELSE'NGWAIT DI3(4)=0MOVE P,P14,Z=UPPOSENDIFGOSUB *OPENDRIVEI (3,-10000)FLAG2=0GOTO *S1<共通ルーチン>

プログラム名 :COMMON*OPEN:DO2(1)=0DELAY 100RETURN*CLOSE:DO2(1)=1DELAY 100RETURN

応用編 ● 11-17

8

9

10

11

12

13

2.5 シーリング

■ 概要

下図の部品のシーリングを行います。

シーリング  

P0 P1

P2

P3

P4P5

P6 P7

10mm

20mm

31C16-R7-00

■ 前提

1. 入出力信号

DO(20) バルブ開閉 1:開/ 0:閉

2. P0 〜 P7 は、ティーチングで設定します。

SAMPLE

MOVE P,P0,Z=0SPEED 40PATH SET ・・・・・・・・・・・・・・・・・・・・・・・・・ 経路設定の開始

PATH L,P1,DO(20)[email protected]・・・・ 10mmの位置で塗布開始

動作経路の設定

(ロボットは動作しない)

PATH L,P2PATH C,P3,P4PATH L,P5PATH L,P6,S=30PATH L,P7,DO(20)[email protected]・・・・ 20mmの位置で塗布終了

PATH END ・・・・・・・・・・・・・・・・・・・・・・・・・・ 経路設定の終了

PATH START ・・・・・・・・・・・・・・・・・・・・・・・・ PATH移動の実行 (ロボット 1が P0より動作開

始、P7で停止 )HALT

11-18 ● 第 11 章 ユーザープログラム例

8

9

10

11

12

13

2.6 外部装置と RS-232Cを使用した接続(その1)

■ 概要

外部装置とRS-232Cを使用してRCX340コントローラを接続し、ポイントデータを書き込みます。

■ 前提

1. コントローラから外部装置への入力

SDATA/X/Y [cr/lf]

2. コントローラへの外部装置からの出力

POINT DATA

P10= 156.420 243.910 0.000 0.000 0.000 0.000 [cr/lf]

SAMPLE

’INIT VCMD$="SDATA/X/Y" ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 移動位置要求コマンド

P0= 0.000 0.000 0.000 0.000 0.000 0.000 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・初期位置

’MAIN ROUTINE MOVE P, P0 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・初期位置へ移動

*ST: SEND VCMD$ TO CMU ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・命令を送信

SEND CMU TO P10 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・移動先ポイントを受信

MOVE P, P10 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・受信位置へ移動

GOTO *ST

・ 「SEND xxx TO CMU」は、xxx で指定された内容を RS-232C を使用して出力します。

・ 「SEND CMU TO xxx」は、xxx で指定されたファイルなどに RS-232C を使用して入力します。

n 要点

・・ [cr/lf] は CR コード(=0Dh)+LF コード (=0Ah) を示します。

MEMO

応用編 ● 11-19

8

9

10

11

12

13

2.7 外部装置と RS-232Cを使用した接続(その2)

■ 概要

外部装置と RS-232C を使用して RCX340 コントローラを接続し、任意の文字列データからポイ

ントデータを作成し書き込みます。

■ 前提

1. コントローラから外部装置への入力

SDATA/X/Y [cr/lf]

2. コントローラへの外部装置からの出力

X=156.420, Y=243.910 [cr/lf]

・ 「SEND xxx TO CMU」は、xxx で指定された内容を RS-232C を使用して出力します。

・ 「SEND CMU TO xxx」は、xxx で指定されたファイルなどに RS-232C を使用して入力します。

・ LEN( )は、文字列の長さを求めます。

・ MID$( )は、文字列の中から指定の文字列を求めます。

・ VAL( )は、文字列から数値を求めます。

SAMPLE

'INIT VCMD$="SDATA/X/Y" ・・・・・・・・・・・・・・・・・ 移動位置要求コマンド

P0= 0.000 0.000 0.000 0.000 0.000 0.000 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 初期位置

P11= 100.000 100.000 0.000 0.000 0.000 0.000 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 受信位置

'MAIN ROUTINE MOVE P,P0 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 初期位置へ移動

*ST:SEND VCMD$ TO CMU ・・・・・・・・・・・・・・・ 命令を送信

SEND CMU TO VIN$ ・・・・・・・・・・・・・・・・・・・ 応答 "X=156.420,Y=243.910"を受信

FOR I%=1 TO LEN(VIN$)-2 IF MID$(VIN$,I%,2)="X=" THEN EXIT FOR ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ "X="ならループを脱出

NEXT I% LOC1(P11)=VAL(MID$(VIN$,I%+2)) ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ "X="以降を数値に変換して P11の 1軸に代入

FOR I%=1 TO LEN(VIN$)-2 IF MID$(VIN$,I%,2)="Y=" THEN EXIT FOR ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ "Y="ならループを脱出

NEXT I% LOC2(P11)=VAL(MID$(VIN$,I%+2)) ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ "Y="以降を数値に変換して P11の 2軸に代入

MOVE P,P11 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 受信位置へ移動

GOTO *ST

n 要点

・・ [cr/lf] は CR コード(=0Dh)+LF コード (=0Ah) を示します。

MEMO

11-20 ● 第 11 章 ユーザープログラム例

8

9

10

11

12

13

SAMPLE

’INT VCMD$="SDATA/X/Y" VIN$="" VX$="" VY$=""

P0= 0.000 0.000 0.000 0.000 0.000 0.000P11= 100.000 100.000 0.000 0.000 0.000 0.000

’MAIN ROUTINE MOVE P, P0*ST: SEND VCMD$ TO CMU SEND CMU TO VIN$ I=1 VMAX=LEN(VIN$)*LOOP: IF I>VMAX THEN GOTO *E_LOOP C$=MID$(VIN$,I ,1) IF C$="X" THEN I=I+2 J=I*X_LOOP: C$=MID$(VIN$, J, 1) IF C$="," THEN*X1_LP: L=J-I VX$=MID$(VIN$, I, L) I=J+1 GOTO *LOOP ENDIF J=J+1 IF J>VMAX THEN GOTO *X1_LP GOTO *X_LOOP ENDIF IF C$="Y" THEN I=I+2 J=I*Y_LOOP: C$=MID$(VIN$, J, 1) IF C$=","THEN*Y1_LP: L=J-I VY$=MID$(VIN$, I, L) I=J+1 GOTO *LOOP ENDIF J=J+1 IF J>VMAX THEN GOTO *Y1_LP GOTO *Y_LOOP ENDIF I=I+1 GOTO *LOOP*E_LOOP: WX=VAL(VX$) WY=VAL(VY$) LOC1(P11)=WX LOC2(P11)=WY MOVE P, P11GOTO *STHALT

第 12章

オンライン命令

1 1 オンライン命令一覧表 ・・・・・・・・・・・・・・・・ 12-1

2 2 操作・設定コマンド ・・・・・・・・・・・・・・・・・・ 12-9

3 3 参照コマンド ・・・・・・・・・・・・・・・・・・・・・・・ 12-22

4 4 動作コマンド ・・・・・・・・・・・・・・・・・・・・・・ 12-36

5 5 データファイル操作コマンド ・・・・・・・・ 12-40

6 6 ユーティリティコマンド ・・・・・・・・・・・・・ 12-51

7 7 ロボット言語の単独実行 ・・・・・・・・・・・・・ 12-53

8 8 制御コード ・・・・・・・・・・・・・・・・・・・・・・・・・ 12-54

オンライン命令一覧表 ● 12-1

8

9

10

11

12

13

1 オンライン命令一覧表

オンライン命令を使用すると、RS-232C または Ethernet を通じてコントローラに対して命令実

行を行うことができます。

ここでは、オンライン命令で使用できる命令について説明します。RS-232C および Ethernet の

接続方法は「RCX340 コントローラマニュアル」をご覧ください。

ターミネーションコードについて

コントローラはデータ送信時、送信データの行末に次のコードを付加します。

・・ RS-232C の場合

・ 通信パラメータのターミネーションコードパラメータが“CRLF”に設定されている場合、

行の最後に CR(0Dh)と LF(0Ah)を付加します。

 ・ 通信パラメータのターミネーションコードパラメータが“CR”に設定されている場合、行

の最後に CR(0Dh)を付加します。

・・ Ethernet の場合

 ・ 行の最後に CR(0Dh)と LF(0Ah)を付加します。

データの受信時は、ターミネーションコードパラメータの設定に関わらず、CR(0Dh)までを 1

行として扱い、LF(0Ah)は無視します。

本章「2 操作・設定コマンド」以降の各オンライン命令の詳細説明では、ターミネーションコード

は [cr/lf] と表記します。

12-2 ● 第 12 章 オンライン命令

8

9

10

11

12

13

1.1 オンライン命令一覧表:機能別

キー操作

意味 命令 オプション 条件

プログラムをタスクに登録 LOAD <プログラム名 > ,Tn , p PGm (m: 1 - 100, n : 1 ー 16, p : 1 - 64 )

2

プログラム リセット RESET Tn < プログラム名 > PGm (m: 1 - 100, n: 1 - 16)

2 実行 RUN 停止 STOP

プログラム 1 行実行 STEP Tn <プログラム名 > PGm (m: 1 - 100, n: 1 - 16)

2 1 行スキップ SKIP 次行まで実行 NEXT

プログラム 指定行の前まで実行 RUNTO Tn , k <プログラム名 > PGm (m: 1 - 100, n: 1 - 16, k: 1 - 9999)

2 指定行の前までスキップ SKIPTO

ブレークポイント設定 BREAK <プログラム名 > (n , n, n, …), k PGm 0 0 (m: 1 - 100, n: 1 - 9999, k : 0 / 1 )

2

手動移動速度変更 MSPEED [ ロボット番号 ] k ( ロボット番号 : 1 - 4, k : 1 - 100)

2

アブソリセット可能位置移動 ABSADJ [ ロボット番号 ] k, f ( ロボット番号 : 1 - 4, k : 1 - 6, f : 0 / 1 )

3

アブソリセット MRKSET [ ロボット番号 ] k ( ロボット番号 : 1 - 4, k : 1 - 6)

3

原点復帰 ORGRTN [ ロボット番号 ] k ( ロボット番号 : 1 - 4, k : 1 - 6)

3

インチング移動量変更 IDIST [ ロボット番号 ] k ( ロボット番号 : 1 - 4, k : 1 - 10000)

2

手動移動(インチング) INCHINCHXYINCHT

[ ロボット番号 ] km (ロボット番号 : 1-4, k : 1-6, m : + / - )

3

手動移動(ジョグ) JOGJOGXYJOGT

[ ロボット番号 ] km (ロボット番号 : 1-4, k : 1-6, m : + / - )

3

ポイントデータティーチング TEACHTCHXY

[ ロボット番号 ] m( ロボット番号 : 1 - 4, m : 0 - 29999)

2

条件について・ 1.・ 常に実行可能

・ 2.・ プログラミングボックスによる入力操作中は実行不可

・ 3.・ 条件・2・に加え、プログラム実行中は実行不可

・ 4.・ 条件・3・に加え、固有の制限あり

オンライン命令一覧表 ● 12-3

8

9

10

11

12

13

ユーティリティ

意味 命令 オプション 条件

プログラムのコピー COPY <プログラム名1> TO <プログラム名2 > PGm(m : 1 ー 100)

2

ポイントの m から n を k へ複写 Pm - Pn TO Pk(m : 0 ー 29999, n : 0 ー 29999, k : 0 ー 29999)

ポイントコメントの m から n を k へ複写 PCm - PCn TO PCk(m : 0 ー 29999, n : 0 ー 29999, k : 0 ー 29999)

プログラムを削除 ERA <プログラム名 > PGm(m : 1 ー 100)

2

ポイントの m から n を削除 Pm - Pn(m : 0 ー 29999, n : 0 ー 29999)

ポイントコメントの m から n を削除 PCm - PCn(m : 0 ー 29999, n : 0 ー 29999)

ポイントネームの m から n を削除 PNm - PNn(m : 0 ー 29999, n : 0 ー 29999)

パレットの m を削除 PLm(m : 0 - 39)

プログラム名を 1 から 2 へ変更 REN <プログラム名1 > TO <プログラム名2 > 2プログラムの構文をチェック SYNCHK <プログラム名 > , k

PGm(m : 1 - 100, k : 1 - 100)

2

シーケンスプログラムをコンパイル SEQCMPL 2プログラム属性の変更 ATTR <プログラム名 > TO s

PGm(m : 1 - 100, s: RW / RO / H )

2

メインプログラム設定 MAINPG m ( m : 1 - 100)

2

データの初期化 プログラム INIT PGM 3 ポイント PNT ポイントコメント PCM ポイントネーム PNM シフト SFT ハンド HND パレット PLT 汎用イーサネットポート GEP 入出力ネーム ION 領域判定出力 ACO パラメータ以外全て MEM パラメータ PRM 全データ (MEM+PRM) ALL データの初期化 通信パラメータ INIT CMU

ETH 3

データの初期化 アラーム履歴 INIT LOG 3入力データを設定 INPUT SET d

CAN CLR(d : 入力データ )

2

出力メッセージバッファクリア MSGCLR 2アクセスレベル変更 ACCESS k , pppppppp

(k: 0 / 1, p:英数字 8 文字以内 )2

パスワードを設定 SETPW 2シーケンス実行フラグ設定 SEQUENCE k

(k: 0 / 1 / 3)2

アラームリセット ALMRST 2日付の確認、設定 DATE yy / mm / dd

(yy: 00 - 99, mm: 01 - 12, dd: 00 - 31)2

時刻の確認、設定 TIME hh : mm : ss(hh: 00 - 23, mm: 00 - 59, ss: 00 - 59)

2

条件について・ 1.・ 常に実行可能

・ 2.・ プログラミングボックスによる入力操作中は実行不可

・ 3.・ 条件・2・に加え、プログラム実行中は実行不可

・ 4.・ 条件・3・に加え、固有の制限あり

12-4 ● 第 12 章 オンライン命令

8

9

10

11

12

13

データハンドリング

意味 命令 オプション 条件

取得 アクセスレベル ? ACCESS k , pppppppp

(k : 0 /1, pppppppp : 英数字8文字以内 )1

アラーム状態 ALMブレークポイント状態 BREAK <プログラム名 >

PGm(m : 1 - 100)

最終参照ポイント番号 CURPNT非常停止状態 EMG選択ハンド状態 HAND [ ロボット番号 ]

( ロボット番号 : 1 - 4)インチング移動量状態 IDIST [ ロボット番号 ]

( ロボット番号 : 1 - 4)入力データ INPUTオンライン/オフライン状態 LINEMODE  ETH

CMUメインプログラム番号 MAINPGメモリ残容量 MEMモード状態 MODEモータ電源状態 MOTOR出力メッセージ MSG手動移動速度 MSPEED [ ロボット番号 ]

( ロボット番号 : 1 - 4)原点復帰状態 ORIGIN ロボット番号

( ロボット番号 : 1 - 4)シーケンスプログラム実行状態 SEQUENCEサーボ状態 SERVO [ ロボット番号 ]

( ロボット番号 : 1 - 4)選択シフト状態 SHIFT [ ロボット番号 ]

( ロボット番号 : 1 - 4)起動/一時停止状態タスク TASKSタスク終了条件 TSKECD Tk

(k : 1 - 16)タスク可動状態 TSKMON Tk

(k : 1 - 16)バージョン VER数値データ 数値式文字列データ 文字列式ポイントデータ ポイント式シフトデータ シフト式

データ読出し READ 読出しファイル 2データ書出し WRITE 書込みファイル 2

条件について・ 1.・ 常に実行可能

・ 2.・ プログラミングボックスによる入力操作中は実行不可

・ 3.・ 条件・2・に加え、プログラム実行中は実行不可

・ 4.・ 条件・3・に加え、固有の制限あり

オンライン命令一覧表 ● 12-5

8

9

10

11

12

13

ロボット言語単独実行

単独実行可能なロボット言語は、8 章「ロボット言語一覧表」で「オンライン」欄が「○」になって

いる命令、または関数です。

制御コード

意味 命令 オプション 条件

実行言語の中断 ^C(=03H) 1

条件について・ 1.・ 常に実行可能

・ 2.・ プログラミングボックスによる入力操作中は実行不可

・ 3.・ 条件・2.・に加え、プログラム実行中は実行不可

・ 4.・ 条件・3.・に加え、固有の制限あり

12-6 ● 第 12 章 オンライン命令

8

9

10

11

12

13

1.2 オンライン命令一覧表:アルファベット順

命令 オプション 意味 条件

? ACCESS k , pppppppp(k : 0 /1, pppppppp : 英数字 8 文字以内 )

アクセスレベル取得 1

ALM アラーム状態取得

BREAK <プログラム名 > PGm(m : 1 - 100)

ブレークポイント状態取得

CURPNT 最終参照ポイント番号取得

EMG 非常停止状態取得

HAND [ ロボット番号 ]( ロボット番号 : 1 - 4)

選択ハンド状態取得

IDIST [ ロボット番号 ]( ロボット番号 : 1 - 4)

インチング移動量状態取得

INPUT 入力データ状態取得

LINEMODE  ETH CMU

オンライン/オフライン状態取得

MAINPG メインプログラム番号取得

MEM メモリ残容量取得

MODE モード状態取得

MOTOR モータ電源状態取得

MSG 出力メッセージ取得

MSPEED [ ロボット番号 ]( ロボット番号 : 1 - 4)

手動移動速度取得

ORIGIN ロボット番号 ( ロボット番号 : 1 - 4)

原点復帰状態取得

SEQUENCE シーケンスプログラム実行状態取得

SERVO [ ロボット番号 ]( ロボット番号 : 1 - 4)

サーボ状態取得

SHIFT [ ロボット番号 ]( ロボット番号 : 1 - 4)

選択シフト状態取得

TASKS 起動/一時停止状態タスク取得

TSKECD Tk(k : 1 - 16)

タスク終了条件取得

TSKMON Tk(k : 1 - 16)

タスク可動状態取得

VER バージョン取得

数値式 数値データ取得

文字列式 文字列データ取得

ポイント式 ポイントデータ取得

シフト式 シフトデータ取得

^C(=03H) 実行言語の中断 1ABSADJ [ ロボット番号 ] k, f

( ロボット番号 : 1 - 4, k : 1 - 6, f : 0 / 1 )アブソリセット可能位置移動 3

ACCESS k , pppppppp (k : 0 /1, p : 英数字 8 文字以内 )

アクセスレベル変更 2

ALMRST アラームリセット 2ATTR <プログラム名 > TO s

PGm(m : 1 - 100, s: RW / RO / H )

プログラム属性変更 2

BREAK <プログラム名 > (n , n, n, …), k PGm 0 0(m: 1 - 100, n: 1 - 9999, k : 0 / 1 )

ブレークポイント設定 2

COPY <プログラム名1> TO <プログラム名2 > PGm(m : 1 ー 100)

プログラムのコピー 2

Pm - Pn TO Pk(m : 0 ー 29999, n : 0 ー 29999, k : 0 ー 29999)

ポイントの m から n を k へ複写

オンライン命令一覧表 ● 12-7

8

9

10

11

12

13

命令 オプション 意味 条件

PCm - PCn TO PCk(m : 0 ー 29999, n : 0 ー 29999, k : 0 ー 29999)

ポイントコメントの m から n を k へ複写

DATE yy/mm/dd(yy: 00 - 99, mm: 01 - 12, dd: 00 - 31)

日付の確認、設定 2

ERA <プログラム名 > PGm(m : 1 ー 100)

プログラムを削除 2

Pm - Pn(m : 0 ー 29999, n : 0 ー 29999)

ポイントの m から n を削除

PCm - PCn(m : 0 ー 29999, n : 0 ー 29999)

ポイントコメントの m から n を削除

PNm - PNn(m : 0 ー 29999, n : 0 ー 29999)

ポイント名の m から n を削除

PLm(m : 0 - 39)

パレットの m を削除

IDIST [ ロボット番号 ] k ( ロボット番号 : 1 - 4, k : 1 - 10000)

インチング移動距離を設定 2

INCHINCHTINCHXY

[ ロボット番号 ] km (ロボット番号 : 1-4, k : 1-6, m : + / - )

手動移動 ( インチング ) 3

INIT ACO 領域判定出力初期化 3ALL 全データ初期化 (MEM+PRM)

CMU 通信パラメータ (RS-232C) 初期化

ETH 通信パラメータ ( イーサネット ) 初期化

GEP 汎用イーサネットポート初期化

HND ハンドデータ初期化

ION 入出力ネーム初期化

LOG アラーム履歴初期化

MEM パラメータ以外全て初期化

PCM ポイントコメントデータ初期化

PGM プログラムデータ初期化

PLT パレットデータ初期化

PNM ポイントネーム初期化

PNT ポイントデータ初期化

PRM パラメータ初期化

SFT シフトデータ初期化

INPUT SET d CAN CLR(d : 入力データ )

INPUT 文によるデータ要求に対する入力

データを設定

2

JOGJOGTJOGXY

[ ロボット番号 ] km (ロボット番号 : 1-4, k : 1-6, m : + / - )

手動移動 ( ジョグ ) 3

LOAD <プログラム名 > ,Tn , p PGm (m: 1 - 100, n : 1 ー 16, p : 1 - 64 )

プログラムをタスクに登録 2

MAINPG m ( m : 1 - 100)

メインプログラム番号の設定 2

MRKSET [ ロボット番号 ] k ( ロボット番号 : 1 - 4, k : 1 - 6)

アブソリセット 3

MSGCLR 出力メッセージバッファクリア 2MSPEED [ ロボット番号 ] k

( ロボット番号 : 1 - 4, k : 1 - 100)手動移動速度変更 2

NEXT Tn <プログラム名 > PGm (m: 1 〜 100, n: 1 〜 16)

プログラムを次行まで実行 4

ORGRTN [ ロボット番号 ] k ( ロボット番号 : 1 - 4, k : 1 - 6)

原点復帰 3

READ 読出しファイル データ読出し 2REN <プログラム名 1> TO <プログラム名 2 > プログラム名を 1 から 2 へ変更 2RESET Tn

<プログラム名 > PGm (m: 1 〜 100, n: 1 〜 16)

プログラムリセット 2

12-8 ● 第 12 章 オンライン命令

8

9

10

11

12

13

命令 オプション 意味 条件

RUN Tn <プログラム名 > PGm (m: 1 〜 100, n: 1 〜 16)

プログラム実行 2

RUNTO Tn , k <プログラム名 > PGm(m: 1 〜 100, n: 1 〜 16, k: 1 〜 9999)

プログラム:指定行の前まで実行 2

SEQCMPL シーケンスプログラムをコンパイル 2SEQUENCE k

(k: 0 / 1 / 3)シーケンス実行フラグ設定 2

SETPW パスワードを設定 2SKIP Tn

<プログラム名 > PGm(n : 1 - 16, m : 1 - 100)

プログラム:1 行スキップ 4

SKIPTO Tn , k <プログラム名 > PGm(m: 1 〜 100, n: 1 〜 16, k: 1 〜 9999)

プログラム:指定行の前までスキップ 2

STEP Tn <プログラム名 > PGm(n : 1 - 16, m : 1 - 100)

プログラム:1 行実行 4

STOP Tn <プログラム名 > PGm (m: 1 〜 100, n: 1 〜 16)

プログラム停止 2

SYNCHK <プログラム名 > , k PGm(m : 1 - 100, k : 1 - 100)

プログラムの構文をチェック 2

TCHXY [ ロボット番号 ] m( ロボット番号 : 1 - 4, m : 0 - 29999)

ポイントデータティーチング 3TEACH 3TIME hh:mm:ss

(hh: 00 〜 23, mm: 00 〜 59, ss: 00 〜 59)時刻の確認、設定 2

WRITE 書込みファイル データ書出し 2 - 単独実行可能なロボット言語 4

条件について・ 1.・ 常に実行可能

・ 2.・ プログラミングボックスによる入力操作中は実行不可

・ 3.・ 条件・2・に加え、プログラム実行中は実行不可

・ 4.・ 条件・3・に加え、固有の制限あり

操作・設定コマンド ● 12-9

8

9

10

11

12

13

2 操作・設定コマンド

2.1 プログラム操作

1. タスク登録

命令形式

@LOAD <プログラム名> ,Tn, p [cr/lf] PGm

応答形式

OK[cr/lf]

 値  m:プログラム番号 ・・・・・・・・・・・ 1 ~ 100

n:タスク番号 ・・・・・・・・・・・・・・・・ 1 ~ 16

p:タスク優先順位 ・・・・・・・・・・・・ 1 ~ 64

 意味  指定したプログラムを優先順位 p でタスク n に登録します。登録されたプログラム

は STOP 状態になります。タスク番号 n を省略した場合、起動していないタスクの

うち一番若い番号のタスクが自動的に指定されます。タスク優先順位 p を省略した

場合、32 となります。

優先順位は、値が小さいほど高く、大きいほど低くなります(高い:1 ~低い:64)。

タスク優先順位の高いタスクが RUNNING 状態の場合、優先順位の低いタスクは

READY 状態のままとなります。

SAMPLE

命令: @LOAD <PG_MAIN>, T1[cr/lf] ・・・・・・ タスク 1にプログラムを登録

応答: OK[cr/lf]

2. プログラムリセット

命令形式

1.@RESET [cr/lf]2.@RESET Tn [cr/lf] <プログラム名>

PGm

応答形式

OK[cr/lf]

 値  n:タスク番号 ・・・・・・・・・・・・・・・・ 1 ~ 16

m:プログラム番号 ・・・・・・・・・・・ 1 ~ 100

12-10 ● 第 12 章 オンライン命令

8

9

10

11

12

13

 意味  プログラムリセットを実行します。

形式 1 は全てのプログラムをリセットします。プログラムを再起動した場合は、メ

インプログラム、又はタスク 1で最後に実行したプログラムの先頭から実行されます。

形式 2 は指定されたプログラムのみをリセットします。リセットされたプログラム

を再起動すると、そのプログラムの先頭から実行されます。

SAMPLE

命令: @RESET[cr/lf] ・・・・・・・・・・ 全てのプログラムをリセット

応答: OK[cr/lf]命令: @RESET T3[cr/lf] ・・・・・・ T3で実行しているプログラムのみをリセット

応答: OK[cr/lf]

3. プログラム実行

命令形式

1.@RUN [cr/lf]2.@RUN Tn [cr/lf] <プログラム名>

PGm

応答形式

OK[cr/lf]

 値  n:タスク番号 ・・・・・・・・・・・・・・・・ 1 〜 16

m:プログラム番号 ・・・・・・・・・・・ 1 〜 100

 意味  プログラムリセットを実行します。

形式 1 は全ての STOP 状態のプログラムを実行します。

形式 2 は指定された STOP 状態のプログラムのみを実行します。

SAMPLE

命令: @RUN[cr/lf] ・・・・・・・・・・・・・ 全ての STOP状態のプログラムを実行

応答: OK[cr/lf]命令: @RUN T3[cr/lf] ・・・・・・・・・ T3に登録されている STOP状態のプログラムの

みを実行

応答: OK[cr/lf]

操作・設定コマンド ● 12-11

8

9

10

11

12

13

4. プログラム停止

命令形式

1.@STOP [cr/lf]2.@STOP Tn [cr/lf] <プログラム名>

PGm

応答形式

OK[cr/lf]

 値  n:タスク番号 ・・・・・・・・・・・・・・・・ 1 〜 16

m:プログラム番号 ・・・・・・・・・・・ 1 〜 100

 意味  プログラムを停止します。

形式 1 は全てのプログラムを停止します。

形式 2 は指定されたプログラムのみを停止します。

SAMPLE

命令: @STOP[cr/lf] ・・・・・・・・・・・・ 全てのプログラムを停止

応答: OK[cr/lf]命令: @STOP T3[cr/lf] ・・・・・・・ T3で実行しているプログラムのみを停止

応答: OK[cr/lf]

5. プログラム 1行実行

命令形式

@STEP Tn [cr/lf] <プログラム名>

PGm

応答形式

OK[cr/lf]

 値  n:タスク番号 ・・・・・・・・・・・・・・・・ 1 〜 16

m:プログラム番号 ・・・・・・・・・・・ 1 〜 100

 意味  指定したプログラムを 1 行実行します。GOSUB 文や CALL 文を 1 行実行した場合、

サブルーチンやサブプロシージャの内部に入ります。

SAMPLE

命令: @STEP T3[cr/lf]・・・・・・・・・T3で実行しているプログラムを 1行実行

応答: OK[cr/lf]

12-12 ● 第 12 章 オンライン命令

8

9

10

11

12

13

6. プログラム 1行スキップ

命令形式

@SKIP Tn [cr/lf] <プログラム名>

PGm

応答形式

OK[cr/lf]

 値  n:タスク番号 ・・・・・・・・・・・・・・・・ 1 〜 16

m:プログラム番号 ・・・・・・・・・・・ 1 〜 100

 意味  指定したプログラムを 1 行スキップします。GOSUB 文や CALL 文を 1 行スキップし

た場合、サブルーチンやサブプロシージャの全部をスキップします。

SAMPLE

命令: @SKIP T3[cr/lf]・・・・・・・・・T3で実行しているプログラムを 1行スキップ

応答: OK[cr/lf]

7. プログラムを次行まで実行

命令形式

@NEXT Tn [cr/lf] <プログラム名>

PGm

応答形式

OK[cr/lf]

 値  n:タスク番号 ・・・・・・・・・・・・・・・・ 1 〜 16

m:プログラム番号 ・・・・・・・・・・・ 1 〜 100

 意味  指定したプログラムを次行まで実行します。GOSUB 文や CALL 文の行で @NEXT

を実行すると、サブプロシージャでの処理を経由し戻るまでを一度に実行し、次行

で停止します。

・ 現在停止中の次行にブレークポイントをセットして、プログラムを実行 (@RUN) した時と

同じ処理が行われます。

@STEP では、GOSUB 文や CALL 文で呼ばれるサブプロシージャの先頭行で停止します。

SAMPLE

命令: @NEXT T3[cr/lf]・・・・・・・・・T3で実行しているプログラムを次行まで実行します

応答: OK[cr/lf]

MEMO

操作・設定コマンド ● 12-13

8

9

10

11

12

13

8. プログラムを指定行の前まで実行

命令形式

@RUNTO Tn , k[cr/lf] <プログラム名>

PGm

応答形式

OK[cr/lf]

 値  n:タスク番号 ・・・・・・・・・・・・・・・・ 1 〜 16

m:プログラム番号 ・・・・・・・・・・・ 1 〜 100

k:指定行番号 ・・・・・・・・・・・・・・・・ 1 〜 9999

 意味  指定したプログラムを指定行の前の行まで実行します。

SAMPLE

命令:@RUNTO T3, 15[cr/lf] ・・ T3で実行しているプログラムを 14行目まで実行

し、15行目で停止します。

応答:OK[cr/lf]

9. プログラムを指定行の前までスキップ

命令形式

@SKIPTO Tn , k[cr/lf] <プログラム名>

PGm

応答形式

OK[cr/lf]

 値  n:タスク番号 ・・・・・・・・・・・・・・・1 〜 16

m:プログラム番号 ・・・・・・・・・・・1 〜 100

k:指定行番号・・・・・・・・・・・・・・・・1 〜 9999

 意味  指定したプログラムを指定行の前の行までスキップします。

SAMPLE

命令:@SKIPTO T3, 15[cr/lf] ・ T3で実行しているプログラムを 14行目までス

キップし、15行目で停止します。

応答:OK[cr/lf]

12-14 ● 第 12 章 オンライン命令

8

9

10

11

12

13

10. ブレークポイント設定

命令形式

1.@BREAK <プログラム名> (n,n,n,...), k[cr/lf] PGm2.@BREAK <プログラム名> 0[cr/lf] PGm3.@BREAK 0[cr/lf]

応答形式

OK[cr/lf]

 値  m:プログラム番号 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100

n:ブレークポイントを設定する行番号 ・ ・・・・・・・ 1 〜 9999

k:設定/解除 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 0:解除/ 1:設定

 意味  プログラム実行中に、一時停止させるためのブレークポイントの設定を行います。

形式 1 は指定プログラムの指定行にブレークポイントを設定/解除します。複数行

の指定も可能です。

形式2は指定されたプログラムに設定されているブレークポイントを全て解除します。

形式 3 は全てのブレークポイントを解除します。

SAMPLE

命令:@BREAK PG3 (1, 3), 1[cr/lf] ・・・・ PG3の 1行目と 3行目にブレークポイントを設定

応答:OK[cr/lf]

操作・設定コマンド ● 12-15

8

9

10

11

12

13

11. プログラム構文チェック

命令形式

@SYNCHK <プログラム名> , k [cr/lf] PGm

応答形式

RUN [cr/lf]nnnn:gg.bbb [cr/lf]nnnn:gg.bbb [cr/lf] :nnnn:gg.bbb [cr/lf]nnnn:gg.bbb [cr/lf]END [cr/lf]

 値  m:プログラム番号 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100

k:エラー上限個数 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100

nnnn:エラー発生行番号 ・・・・・・・・・・・・・・・・・・・・・ 1 〜 9999

gg :アラームグループ番号

bbb :アラーム分類番号

 意味  プログラム名 または プログラム番号で指定したプログラムの構文チェックを行いま

す。

指定したプログラムに構文エラーがある場合、エラー発生行番号とアラームグルー

プ番号およびアラーム分類番号を出力します。

アラームグループ番号およびアラーム分類番号についての詳細は、コントローラの

ユーザーズマニュアル、またはオペレーションマニュアルを参照してください。

SAMPLE

命令: @SYNCHK PG1, 100 [cr/lf] ・・・ エラー上限個数を 100個に設定し、プログラム番

号 1の構文チェックを行う

応答: RUN [cr/lf] 1:5.239 [cr/lf] ・・・・・・・・ 1, 2, 3, 8行目に “5.239:識別子誤り”

の構文エラーを検出

2:5.239 [cr/lf] 3:5.239 [cr/lf] 8:5.239 [cr/lf] 6:5.222 [cr/lf] ・・・・・・・・ 6行目に “5.222:ENDIF のない IF” の

構文エラーを検出

END [cr/lf]

12-16 ● 第 12 章 オンライン命令

8

9

10

11

12

13

12. メインプログラム設定

命令形式

@MAINPG m [cr/lf]

応答形式

OK [cr/lf]

 値  m:プログラム番号 ・・・・・・・・ 1 〜 100

 意味  全てのプログラムをリセットした時に必ず選択されるプログラムを設定します。メイ

ンプログラム番号に 0 を設定 または メインプログラム番号に設定したプログラムが

存在しない場合は、タスク 1 で最後に実行したプログラム ( カレントプログラム ) が

全てのプログラムをリセットした後に選択されます。

SAMPLE

命令: @MAINPG 1 [cr/lf] ・・・・・・ プログラム番号 1をメインプログラムに設定

応答: OK [cr/lf]

13. シーケンスプログラムのコンパイル

命令形式

@SEQCMPL [cr/lf]

応答形式

RUN [cr/lf]END [cr/lf]

 意味  シーケンスプログラムをコンパイルします。

「SEQUENCE」というプログラム名のプログラムが存在しない、もしくは、シーケン

スプログラムに入力した命令文の形式に誤りがあるとエラーメッセージが表示しま

す。

コンパイルが正常終了すると実行プログラムが作成され、プログラムディレクトリ

のフラグに「s」が表示します。

詳細は「第 7 章 シーケンス機能」を参照してください。

SAMPLE

命令: @SEQCMPL [cr/lf] ・・・・・・ シーケンスプログラムのコンパイルを実行

応答: RUN [cr/lf] END [cr/lf]

c 注意

・・メインプログラムは従来機 種 (RCX240 な ど ) の「_SELECT」プログラムにあたります。

操作・設定コマンド ● 12-17

8

9

10

11

12

13

2.2 手動モード操作

1. 手動移動速度変更

命令形式

@MSPEED [ロボット番号 ] k[cr/lf]

応答形式

OK[cr/lf]

 値  ロボット番号 ・・・・・・・・・・・・・・・・・・・・1 〜 4(省略した場合、ロボット 1 が指定される。)

k:手動移動速度 ・・・・・・・・・・・・・・・・1 〜 100

 意味  ロボット番号で指定されたロボットの手動移動モードの速度変更を行います。

SAMPLE

命令: @MSPEED 50[cr/lf]応答: OK[cr/lf]

2. ポイントデータティーチング

命令形式

@TEACH [ロボット番号] mmmmm[cr/lf]@TCHXY [ロボット番号] mmmmm[cr/lf]

応答形式

OK[cr/lf]

 値  ロボット番号 ・・・・・・・・・・・・・・・・・・・・1 〜 4(省略した場合、ロボット 1 が指定される。)

mmmmm:ポイントデータを登録するポイント番号 ・・・・0 〜 29999

 意味  ロボットの現在位置を、指定したポイント番号のポイントデータに登録します。

指定したポイント番号に既にポイントデータが存在している場合、ポイントデータ

は上書きされます。

コマンドごとにポイントデータの単位が異なります。

TEACH ・・・・・・・・・・・・・・・・・・ パルス単位

TCHXY ・・・・・・・・・・・・・・・・・・ mm 単位

SAMPLE

命令: @TEACH[2] 100[cr/lf]応答: OK[cr/lf]

12-18 ● 第 12 章 オンライン命令

8

9

10

11

12

13

3. インチング移動距離変更

命令形式

@IDIST [ロボット番号 ] mmmmm [cr/lf]

応答形式

OK [cr/lf]

 値  ロボット番号 ・・・・・・・・・・・・・・・・・・・・・ 1〜4(省略した場合、ロボット1 が指定される。)

mmmmm:インチング移動距離 ・・・・・ 1 〜 10000

 意味  ロボット番号 で指定されたロボットのインチング動作での移動量変更を行います。

移動量の単位は使用するインチング動作コマンドにより扱いが異なります。

INCH ・・・・・・・・・・・・・・・・・・・・・ パルス単位。1 〜 10000 パルス

INCHXY ・・・・・・・・・・・・・・・・・・ mm 単位。0.001 〜 10.000mm

INCHT ・・・・・・・・・・・・・・・・・・・・ mm 単位。0.001 〜 10.000mm

SAMPLE

命令: @IDIST[2] 100 [cr/lf]応答: OK [cr/lf]

2.3 アラームリセット

命令形式

@ALMRST [cr/lf]

応答形式

RUN [cr/lf]END [cr/lf]

 意味  アラームのリセットを行います。ただし、システムの再起動が必要なアラームに関

しては、アラームリセットでアラームのリセットは行えません。システムの再起動

が必要なアラームが発生している場合、コントローラの電源を再投入してください。

SAMPLE

命令: @ALMRST [cr/lf]応答: RUN [cr/lf] END [cr/lf]

操作・設定コマンド ● 12-19

8

9

10

11

12

13

2.4 出力メッセージバッファクリア

命令形式

@MSGCLR[cr/lf]

応答形式

OK[cr/lf]

 意味  コントローラの出力メッセージバッファのクリアを行います。PRINT 文などで出力

され、バッファに残っているメッセージが消去されます。

SAMPLE

命令: @MSGCLR[cr/lf]応答: OK[cr/lf]

12-20 ● 第 12 章 オンライン命令

8

9

10

11

12

13

2.5 入力データ設定

命令形式

@INPUT SET d [cr/lf] CAN CLR

応答形式

OK[cr/lf]

 値  d:入力データ ・・・・・・・・・・・ INPUT 文で指定した変数の型に合わせた値

(文字列は“ ”(ダブルクォーテーション)で囲む)

 意味  ロボットプログラムの INPUT文によるデータ要求に対する入力データの設定をします。

コントローラパラメータの「INPUT/PRINT 使用チャネル」が現在の通信チャネル

(CMU、ETH もしくは iVY)に設定されている必要があります。

SET ・・・・・・・・・・・・・・・・・・・・・

CAN ・・・・・・・・・・・・・・・・・・・・

CLR ・・・・・・・・・・・・・・・・・・・・・

ロボットプログラムの INPUT 文が実行された際に変数

に入力されるデータを設定します。

ロボットプログラムの INPUT 文からのデータ入力要求

をキャンセルします。

@INPUT SET 以降で設定したデータをクリアします。

SAMPLE

<オンライン命令 > <ロボットプログラム >@INPUT SET 10[cr/lf]@INPUT SET 5[cr/lf]

OK[cr/lf] INPUT A%[cr/lf]@?MSG[cr/lf] PRINT A%[cr/lf]10[cr/lf]OK[cr/lf]

<オンライン命令 > <ロボットプログラム >@INPUT SET 10[cr/lf]OK[cr/lf]@INPUT CLR[cr/lf]OK[cr/lf]@INPUT SET 5[cr/lf]OK[cr/lf] INPUT A%[cr/lf]@?MSG[cr/lf] PRINT A%[cr/lf]5[cr/lf]OK[cr/lf]

操作・設定コマンド ● 12-21

8

9

10

11

12

13

2.6 アクセスレベル変更

命令形式

@ACCESS k , pppppppp [cr/lf]

応答形式

OK [cr/lf]

 値  k:アクセスレベル ・・・・・・・・・ 0:メンテナレベル、1 :オペレータレベル

pppppppp:パスワード ・・・・・ 英数字 8 文字以内

 意味  アクセスレベルの変更を行います。パスワードを省略した場合、パスワードなしで設定を行います。

アクセスレベルをメンテナレベルに変更する場合、入力されたパスワードが正しく

ない場合は、“6.235:パスワードエラー” のアラームが発生します。

SAMPLE

命令: @ACCESS 0, password [cr/lf] ・・・・パスワードに「password」を設定し

メンテナレベルに変更する

応答: OK [cr/lf]

2.7 パスワード変更

命令形式

@SETPW [cr/lf]

応答形式

READY [cr/lf]pppppppp [cr/lf]kkkkkkkk [cr/lf]nnnnnnnn [cr/lf][cr/lf] ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 改行

OK [cr/lf]

 値  pppppppp:旧パスワード ( 現在のパスワード ) ・・・ 英数字 8 文字以内

kkkkkkkk:新パスワード ・・・・・・・・・・・・・・・・・・・・・・・ 英数字 8 文字以内

nnnnnnnn: 新パスワード ( 確認 ) ・・・・・・・・・・・・・・・ 英数字 8 文字以内

 意味  アクセスレベルをメンテナレベルへ変更する時に必要になるパスワードを変更します。

旧パスワードには現在のパスワード、新パスワードおよび新パスワード ( 確認 ) には

変更後のパスワードを入力します。新パスワード ( 確認 ) の次に改行のみ行います。

旧パスワードに入力したパスワードが現在のパスワードと異なる、もしくは、新パ

スワードと新パスワード ( 確認 ) が異なる場合は“6.235:パスワードエラー” のアラー

ムが発生します。

SAMPLE

命令: @SETPW[cr/lf]応答: READY [cr/lf] oldpass [cr/lf] ・・・・・・・ 旧パスワードに「oldpass」を入力

newpass [cr/lf] ・・・・・・・ 新パスワードに「newpass」を入力

newpass [cr/lf] ・・・・・・・ 新パスワード (確認 ) に「newpass」を入力

[cr/lf] ・・・・・・・・・・・・・・・・・・・・ 改行

OK [cr/lf]

参照参照

・・アクセスレベルについての詳細は、コントローラのユーザーズマニュアル、またはオペレーションマニュアルを参照してください。

参照参照

・・アクセスレベルについての詳細は、コントローラのユーザーズマニュアル、またはオペレーションマニュアルを参照してください。

12-22 ● 第 12 章 オンライン命令

8

9

10

11

12

13

3 参照コマンド

3.1 原点復帰状態取得

命令形式 1

@?ORIGIN[cr/lf]

応答形式 1

x[cr/lf]OK[cr/lf]

命令形式 2

@?ORIGIN ロボット番号[cr/lf]

応答形式 2

x y{,y{,{...}}}[cr/lf]OK[cr/lf]

 値  ロボット番号・・・・・・・・・・・・・

x:ロボット原点復帰状態・・・

y:軸原点復帰状態・・・・・・・・

1 〜 4

0:未了/ 1:完了

左から 1 軸、2 軸、…、6 軸の状態を示します。

0:未了/ 1:完了(軸未接続の場合、省略)

 意味  原点復帰状態の取得を行います。

形式 1 は全ロボットの原点復帰状態を取得し、形式 2 は指定ロボットの状態を取得

します。

SAMPLE

命令: @?ORIGIN 2[cr/lf]応答: 0 1,1,0,1 ・・・・・・・・・・・・・・・・・ ロボット 2の 3軸目が原点未了状態

OK[cr/lf]

参照コマンド ● 12-23

8

9

10

11

12

13

3.2 サーボ状態取得

命令形式

@?SERVO[ロボット番号][cr/lf]

応答形式

x y,y,y,y,y,y[cr/lf]OK[cr/lf]

 値  ロボット番号・・・・・・・・・・・・・

x:ロボットサーボ状態・・・・

y:軸サーボ状態・・・・・・・・・・

1 〜 4(省略した場合、ロボット 1 が指定される。)

0:サーボオフ状態/ 1:サーボオン状態

左から 1 軸、2 軸、…、6 軸の状態を示します。

0:メカブレーキオン+ダイナミックブレーキオン状態

1:サーボオン状態

2:メカブレーキオフ+ダイナミックブレーキオフ状態

(軸未接続の場合、省略)

 意味  サーボ状態の取得を行います。

SAMPLE

命令: @?SERVO[3][cr/lf]応答: 0 0,1,0,0・・・・・・・・ ロボット 3の 2軸目のみサーボオン状態

OK[cr/lf]

3.3 モータ電源状態取得

命令形式

@?MOTOR[cr/lf]

応答形式

x[cr/lf]OK[cr/lf]

 値 x:モータ電源状態・・・・・・・・ 0:モータ電源オフ状態、

1:モータ電源オン状態

2:モータ電源オン+全ロボットサーボオン状態

 意味  モータ電源状態の取得を行います。

SAMPLE

命令: @?MOTOR[cr/lf]応答: 2 OK[cr/lf]

12-24 ● 第 12 章 オンライン命令

8

9

10

11

12

13

3.4 アクセスレベル取得

命令形式

@?ACCESS[cr/lf]

応答形式

k[cr/lf]OK[cr/lf]

 値  k:アクセスレベル ・・・・・・・・・ 0 〜 1

 意味  アクセスレベル取得処理を行います。

SAMPLE

命令: @?ACCESS[cr/lf]応答: 1[cr/lf] OK[cr/lf]

3.5 ブレークポイント状態取得

命令形式

@?BREAK <プログラム名> [cr/lf] PGm

応答形式

n{,n{,{...}}}[cr/lf]OK[cr/lf]

 値  n:ブレークポイントの設定行番号 ・・・

プログラム名・・・・・・・・・・・・・・・・・・・・・・・

m:プログラム番号 ・・・・・・・・・・・・・・・・・

1 〜 9999

削除するプログラム名

(英数字および _(アンダースコア)で 32

文字以内)

1 〜 100

 意味  ブレークポイント状態取得処理を行います。

SAMPLE

命令: @?BREAK <TEST>[cr/lf]応答: 12,35[cr/lf] OK[cr/lf]

参照参照

・・アクセスレベルについての詳細は、コントローラのユーザーズマニュアル、またはオペレーションマニュアルを参照してください。

参照コマンド ● 12-25

8

9

10

11

12

13

3.6 モード状態取得

命令形式

@?MODE[cr/lf]

応答形式

k[cr/lf]OK[cr/lf]

 値  k:モード状態・・・・・・・・・・・・ 0:手動モード

1:自動モード (制御権:プログラミングボックス)

2:自動モード (制御権開放)

- 1:不正モード

 意味  コントローラのモード状態の取得を行います。

SAMPLE

命令: @?MODE[cr/lf]応答: 1[cr/lf] OK[cr/lf]

3.7 通信ポート状態取得

命令形式

@?LINEMODE ETH [cr/lf] CMU

応答形式

k [cr/lf]OK [cr/lf]

 値  k ・・・・・・・・・・・・・・・・・・・・・・・・・ 0:オフライン/ 1:オンライン

 意味  指定した通信ポートの状態を取得します。オンラインへの変更は ONLINE 命令、オ

フラインへの変更は OFFLINE 命令で行うことができます。

SAMPLE

命令: @?LINEMODE ETH [cr/lf]応答: 1 [cr/lf] OK [cr/lf]

12-26 ● 第 12 章 オンライン命令

8

9

10

11

12

13

3.8 メインプログラム番号取得

命令形式

@?MAINPG [cr/lf]

応答形式

m [cr/lf]OK [cr/lf]

 値  m :プログラム番号 ・・・・・・・ 0 〜 100 (メインプログラムにプログラムが登録されて

いない場合、0)

 意味  メインプログラムに登録しているプログラム番号を取得します。

SAMPLE

命令: @?MAINPG [cr/lf]応答: 1 [cr/lf] OK [cr/lf]

3.9 シーケンスプログラム実行状態取得

命令形式

@?SEQUENCE[cr/lf]

応答形式

1. 1,s[cr/lf] OK [cr/lf]2. 3,s[cr/lf] OK [cr/lf]3. 0[cr/lf] OK [cr/lf]

 値  s:シーケンスプログラムの実行状態 ・・・・・・・・・・・ 0:停止中/ 1:実行中

 意味  シーケンスプログラム実行状態の取得を行います。

応答出力は下記のような意味を示します。

1 ・・・・・・・・・・・・・・・・・・・・・・・・・ 許可状態

3 ・・・・・・・・・・・・・・・・・・・・・・・・・ 許可状態 かつ 出力リセットを許可

0 ・・・・・・・・・・・・・・・・・・・・・・・・・ 禁止状態

SAMPLE

命令: @?SEQUENCE[cr/lf]応答: 0[cr/lf] OK [cr/lf]

参照コマンド ● 12-27

8

9

10

11

12

13

3.10 バージョン取得

命令形式

@?VER[cr/lf]

応答形式

cv,cr-mv-dv1,dr1/dv2,dr2[cr/lf]

 値  cv ・・・・・・・・・・・・・・・・・・・・・・・・ ホストのバージョン

cr ・・・・・・・・・・・・・・・・・・・・・・・・ ホストのリビジョン(Rxxxx)

mv ・・・・・・・・・・・・・・・・・・・・・・・ PLD のバージョン(Vx.xx)

dv?(?:1、2) ・・・・・・・・・・・・・ ドライバのバージョン(Vx.xx)

dr?(?:1、2) ・・・・・・・・・・・・・ ドライバのリビジョン(Rxxxx)

 意味  バージョンの取得を行います。

SAMPLE

命令: @?VER[cr/lf]応答: V1.22,R0191-V1.000-V1.09,R0015/V1.09,R0015 [cr/lf] OK [cr/lf]

3.11 起動 /一時停止状態タスク取得

命令形式

@?TASKS[cr/lf]

応答形式

n{,n{,{...}}}[cr/lf]OK [cr/lf]

 値  n:タスク番号 ・・・・・・・・・・・・・ 1 〜 16(現在起動状態あるいは一時休止状態のタスク)

 意味  起動 / 一時休止状態タスクの取得を行います。

SAMPLE

命令: @?TASKS[cr/lf]応答: 1,3,4,6[cr/lf] OK [cr/lf]

12-28 ● 第 12 章 オンライン命令

8

9

10

11

12

13

3.12 タスク稼働状態取得

命令形式

@?TSKMON Tk[cr/lf]

応答形式

m,n,f,p[cr/lf]OK [cr/lf]

 値  k:タスク番号 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 16

m:実行プログラム番号 ・・・・・・・・・・・・・・・・・・・・・・ 1 〜 100

n:タスクの実行行番号 ・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 9999

f:タスクの状態 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ R:実行状態

U:一時休止状態

S:停止状態

W:待ち状態

p:タスクの優先順位 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 17 〜 47

 意味  指定されたタスクの状態の取得を行います。

SAMPLE

命令: @?TSKMON T3[cr/lf]応答: 5,11,R,32[cr/lf] OK [cr/lf]

3.13 タスク終了条件取得

命令形式

@?TSKECD Tk[cr/lf]

応答形式

gg.bbb [cr/lf]OK [cr/lf]]

 値  k:タスク番号 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1 〜 16

gg:タスク終了条件のアラームグループ番号

bbb:タスク終了条件のアラーム分類番号

 意味  指定したタスクの終了条件を取得します。タスク終了条件のアラームのグループ番

号および分類番号についての詳細は、コントローラのユーザーズマニュアル、また

はオペレーションマニュアルを参照してください。

・ 指定したタスクがエラーで終了した場合、エラー終了時のアラーム番号を取得します。

SAMPLE

命令: @?TSKECD T1 [cr/lf] ・ タスク 1の終了条件を取得

応答: 1.5 [cr/lf] ・・・・・・・・・・・・・・ タスク 1の終了条件: 1.5:HALTによる完了

OK [cr/lf]

MEMO

参照コマンド ● 12-29

8

9

10

11

12

13

3.14 シフト状態取得

命令形式

@?SHIFT[ロボット番号 ][cr/lf]

応答形式

m[cr/lf]OK [cr/lf]

 値  ロボット番号 ・・・・・・・・・・・・・・・・・・・・1 〜 4(省略した場合、ロボット 1 が指定される。)

m:指定ロボットの選択中のシフト番号 ・・・・・・・・ 0 〜 39

シフト未選択:- 1

 意味  ロボット番号 で指定されたロボットのシフト状態の取得を行います。

SAMPLE

命令: @?SHIFT[cr/lf]応答: 1[cr/lf] OK[cr/lf]

3.15 ハンド状態取得

命令形式

@?HAND[ロボット番号 ][cr/lf]

応答形式

m[cr/lf]OK [cr/lf]

 値  ロボット番号 ・・・・・・・・・・・・・・・・・・・・1 〜 4(省略した場合、ロボット 1 が指定される。)

m:指定ロボットの選択中のハンド番号 ・・・・・・・・ 0 〜 31

ハンド未選択:- 1

 意味  ロボット番号 で指定されたロボットのハンド状態の取得を行います。

SAMPLE

命令: @?HAND[cr/lf]応答: 1[cr/lf] OK[cr/lf]

12-30 ● 第 12 章 オンライン命令

8

9

10

11

12

13

3.16 メモリ残容量取得

命令形式

@?MEM[cr/lf]

応答形式

k/m[cr/lf]

 値  k:ソース領域残容量(単位:バイト)

m:グローバル識別子領域残容量(単位:バイト)

 意味  現在のメモリ残容量の取得を行います。

SAMPLE

命令: @?MEM[cr/lf]応答: 102543/1342[cr/lf] OK[cr/lf]

3.17 アラーム状態取得

命令形式

@?ALM [cr/lf]

応答形式

bb.bbb [cr/lf]OK [cr/lf]

 値  gg :アラームグループ番号

bbb:アラーム分類番号

 意味  コントローラで発生しているアラームの取得を行います。アラームグループ番号お

よびアラーム分類番号についての詳細は、コントローラのユーザーズマニュアル、

またはオペレーションマニュアルを参照してください。

・ 取得できるアラームは、アラーム分類番号が 400 以上のアラームになります。複数のアラー

ムが発生している場合は、アラーム分類番号が大きい ( 重度が高い ) アラームになります。

SAMPLE

命令: @?ALM [cr/lf]応答: 12.600 [cr/lf] OK [cr/lf]

MEMO

参照コマンド ● 12-31

8

9

10

11

12

13

3.18 非常停止状態取得

命令形式

@?EMG[cr/lf]

応答形式

k[cr/lf]OK [cr/lf]

 値  k:状態 ・・・・・・・・・・・・・・・・・・・ 0:正常状態/ 1:非常停止状態

 意味  非常停止状態の取得を行います。非常停止内部フラグを確認します。

SAMPLE

命令: @?EMG[cr/lf]応答: 1[cr/lf] OK[cr/lf]

3.19 手動移動速度取得

命令形式

@?MSPEED[ロボット番号 ] [cr/lf]

応答形式

k [cr/lf]OK [cr/lf]

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

k:手動移動速度 ・・・・・・・・・・・ 1 〜 100 ( 単位:%)

 意味  ロボット番号 で指定したロボットの手動移動速度の値を取得します。

SAMPLE

命令: @?MSPEED [cr/lf]応答: 50 [cr/lf] OK [cr/lf]

12-32 ● 第 12 章 オンライン命令

8

9

10

11

12

13

3.20 インチング移動量取得

命令形式

@?IDIST[ロボット番号 ] [cr/lf]

応答形式

mmmmm[cr/lf]OK [cr/lf]

 値  ロボット番号 ・・・・・・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

mmmmm:インチング移動量 ・・・・・ 1 〜 10000

 意味  ロボット番号 で指定したロボットのインチング移動量を取得します。

SAMPLE

命令: @?IDIST[2] [cr/lf]応答: 100 [cr/lf] OK [cr/lf]

3.21 最終参照ポイント番号取得

命令形式

@?CURPNT [cr/lf]

応答形式

k [cr/lf]OK [cr/lf]

 値  k:最終参照ポイント番号 ・・・・・・・・・・・・・・・・・・・・・・ 0 〜 29999

 意味  最後に参照したポイント番号を取得します。最終参照ポイント番号は、ポイント編

集やポイントデータを利用する操作で更新されます。

・ リモートコマンドによるポイント参照やポイント指定移動、プログラミングボックスや

RCX-Studio Pro からのトレース移動、ティーチングなどで、最終参照ポイント番号が更新

されます。

SAMPLE

命令: @?CURPNT [cr/lf]応答: 100 [cr/lf] OK [cr/lf]

MEMO

参照コマンド ● 12-33

8

9

10

11

12

13

3.22 出力メッセージ取得

命令形式

@?MSG [cr/lf]

応答形式

sssss…ssssss [cr/lf]OK [cr/lf]

 値  s:メッセージ文字列

 意味  コントローラの出力メッセージバッファから PRINT 文などで出力されたメッセージ

を 1 行取得します。

SAMPLE

命令: @?MSG [cr/lf]応答: MESSAGE [cr/lf] ・・・・・・・ プログラムで PRINT “MESSAGE” が実行された

OK [cr/lf]

・ 本コマンド実行には、『NPUT/PRINT 使用中チャネル』パラメータがコマンドを実行するポー

トに設定されている必要があります。

・ 出力メッセージバッファが空の場合は OK のみが応答として出力されます。

3.23 入力データ取得

命令形式

@?INPUT [cr/lf]

応答形式

d [cr/lf]OK [cr/lf]

 値  d:入力データ

 意味  INPUT 文による入力データを取得します。

SAMPLE

命令: @?INPUT [cr/lf]応答: INPUT_SAMPLE [cr/lf] OK [cr/lf]

MEMO

12-34 ● 第 12 章 オンライン命令

8

9

10

11

12

13

3.24 値取得

1. 数値式の値取得

命令形式

@?数値式 [cr/lf]OK [cr/lf]

応答形式

数値 [cr/lf]

 意味  指定した数値式の値を取得します。

数値式の値は、10 進数または実数形式です。

SAMPLE 1

命令: @?SQR(100*5)[cr/lf]応答: 2.236067E01[cr/lf] OK[cr/lf]

SAMPLE 2

命令: @?LOC1(WHERE)[cr/lf]応答: 102054[cr/lf] OK[cr/lf]

2. 文字列式の値取得

命令形式

@?文字列式 [cr/lf]

応答形式

文字列 [cr/lf]OK [cr/lf]

 意味  指定した文字列式の値(文字列)を取得します。

SAMPLE

A$="ABC"、B$="DEF"のとき

命令: @?A$+B$+"123"[cr/lf]応答: ABCDEF123[cr/lf] OK[cr/lf]

参照コマンド ● 12-35

8

9

10

11

12

13

3. ポイント式の値取得

命令形式

@?ポイント式 [cr/lf]

応答形式

ポイントデータ [cr/lf]OK [cr/lf]

 意味  指定したポイント式の値(ポイントデータ)を取得します。

SAMPLE

命令: @?P1+WHRXY[cr/lf]応答: 10.410 - 1.600 52.150 3.000 0.000 0.000 0 0 0[cr/lf] OK[cr/lf]

4. シフト式の値取得

命令形式

@?シフト式 [cr/lf]OK [cr/lf]

応答形式

シフトデータ [cr/lf]

 意味  指定したシフト式の値(シフトデータ)を取得します。

SAMPLE

命令: @?S1[cr/lf]応答: 25.000 12.600 10.000 0.000[cr/lf] OK[cr/lf]

12-36 ● 第 12 章 オンライン命令

8

9

10

11

12

13

4 動作コマンド

4.1 アブソリセット

命令形式

@ABSADJ[ロボット番号 ] k,f[cr/lf]@MRKSET[ロボット番号 ] k[cr/lf]

応答形式

移動開始時:RUN[cr/lf]移動完了時:END[cr/lf]

 値  ロボット番号・・・・・・・・・・・・・・1 〜 4(省略した場合、ロボット 1 が指定される。)

k :軸番号 ・・・・・・・・・・・・・・・・・ 1 〜 6

f :移動方向 ・・・・・・・・・・・・・・・ 0:+方向/ 1:ー方向

 意味  ロボット番号 で指定されたロボットのアブソリセット操作を行います。

マーク方式の軸に対して使用可能なコマンドです。

ABSADJ ・・・・・・・・・・・・・・・・・・ 指定ロボット軸のアブソリセット可能位置移動

MRKSET ・・・・・・・・・・・・・・・・・ 指定ロボット軸のアブソリセット

SAMPLE

命令: @ABSADJ 1,0[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・ 移動開始

END[cr/lf] ・・・・・・・・・・・・・ 移動完了

・ 動作コマンド ● 12-37

8

9

10

11

12

13

4.2 原点復帰動作

命令形式

@ORGRTN[ロボット番号 ] k[cr/lf]

応答形式

移動開始時:RUN[cr/lf]移動完了時:END[cr/lf]

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

k:軸番号 ・・・・・・・・・・・・・・・・・ 1 〜 6

 意味  ロボット番号 で指定されたロボットの指定した軸の原点復帰を行います。

セミアブソ仕様の軸の場合、原点復帰を実行するとアブソサーチ動作を行います。

SAMPLE

命令: @ORGRTN 1[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 移動開始

END[cr/lf] ・・・・・・・・・・・・・・・ 移動完了

12-38 ● 第 12 章 オンライン命令

8

9

10

11

12

13

4.3 手動移動:インチング

命令形式

@INCH[ロボット番号] km[cr/lf]@INCHXY[ロボット番号] km[cr/lf]@INCHT[ロボット番号] km[cr/lf]

応答形式

移動開始時:RUN[cr/lf]移動完了時:END[cr/lf]

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

k:軸指定 ・・・・・・・・・・・・・・・・・ 1 〜 6

m:移動方向 ・・・・・・・・・・・・・・ +/ー

 意味  ロボット番号 で指定されたロボットの指定した軸の手動移動(インチング移動)を行

います。

ロボットは、手動モードでプログラミングボックスのジョグキーをインチング動作

(キーを 1 回押すごとに一定量移動)した時と同じ動作をします。

コマンドごとの移動量の単位、及び動作種類は以下の通りです。

INCH ・・・・・・・・・・・・・・・・・・・・ パルス単位。指定軸のみが移動します。

INCHXY ・・・・・・・・・・・・・・・・・・ mm 単位。ロボットの構成に合わせて、直交座標上の

方向にロボットのアームの先端が移動します。

INCHT ・・・・・・・・・・・・・・・・・・・ mm 単位。ロボットの構成に合わせて、ロボットのアー

ムの先端に取り付けたハンドが移動します。

SAMPLE

命令: @INCH 1+[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 移動開始

END[cr/lf] ・・・・・・・・・・・・・・・ 移動完了

・ 動作コマンド ● 12-39

8

9

10

11

12

13

4.4 手動移動:ジョグ

命令形式

@JOG[ロボット番号] km[cr/lf]@JOGXY[ロボット番号] km[cr/lf]@JOGT[ロボット番号] km[cr/lf]

応答形式

移動開始時:RUN[cr/lf]移動完了時:END[cr/lf]

 値  ロボット番号 ・・・・・・・・・・・・・・ 1 〜 4(省略した場合、ロボット 1 が指定される。)

k:軸指定 ・・・・・・・・・・・・・・・・・ 1 〜 6

m:移動方向 ・・・・・・・・・・・・・・ +/-

 意味  ロボット番号 で指定されたロボットの指定した軸の手動移動(ジョグ移動)を行いま

す。

ロボットは、手動モードでプログラミングボックスのジョグキーを押し続けた時と

同じ動作をします。

ジョグコマンドは動作を継続する為に、オンライン命令による実行継続処理(^V

(=16H))の入力が 200ms 置きに必要になります。入力されなかった場合、エラー停

止します。

移動開始後、下記のいずれかの状態になるとロボットは停止します。

・ ソフトリミット位置に到達した

・ ストップ信号がオフになった

・ プログラミングボックスの STOP キーが押された

・ オンライン命令による実行中断処理(^C(=03H))が入力された

コマンドごとの移動量の単位、及び動作種類は以下の通りです。

JOG ・・・・・・・・・・・・・・・・・・・・・ パルス単位。指定軸のみが移動します。

JOGXY ・・・・・・・・・・・・・・・・・・・ mm 単位。ロボットの構成に合わせて、直交座標上の

方向にロボットのアームの先端が移動します。

JOGT ・・・・・・・・・・・・・・・・・・・・ mm 単位。ロボットの構成に合わせて、ロボットのアー

ムの先端に取り付けたハンドが移動します。

SAMPLE

命令: @JOG 1+[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 移動開始

END[cr/lf] ・・・・・・・・・・・・・・・ 移動完了

12-40 ● 第 12 章 オンライン命令

8

9

10

11

12

13

5 データファイル操作コマンド

5.1 コピー操作

1. プログラムのコピー

命令形式

@COPY <プログラム名 1 > TO <プログラム名 2 >[cr/lf] PGn

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  プログラム名 1 ・・・・・・・・・・・

プログラム名 2 ・・・・・・・・・・・

n:プログラム番号 ・・・・・・・

コピー元のプログラム名

(英数字および _(アンダースコア)で 32 文字以内)

コピー先のプログラム名

(英数字および _(アンダースコア)で 32 文字以内)

1 〜 100

 意味  プログラム名 1、またはプログラム番号で指定したプログラムからプログラム名 2 へ

のコピーを行います。

SAMPLE

命令: @COPY <TEST1> TO <TEST2>[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

2. ポイントのコピー

命令形式

@COPY Pmmmmm-Pnnnnn TO Pkkkkk[cr/lf]

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  mmmmm:コピー元の先頭ポイント番号 ・・・・・・・ 0 〜 29999

nnnnn:コピー元の最終ポイント番号 ・・・・・・・・・・ 0 〜 29999

kkkkk:コピー先の先頭ポイント番号 ・・・・・・・・・・・ 0 〜 29999

 意味  Pmmmmm から Pnnnnn のポイントを Pkkkkk を先頭にコピーします。

SAMPLE

命令: @COPY P101-P200 TO P1101[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

データファイル操作コマンド ● 12-41

8

9

10

11

12

13

3. ポイントコメントのコピー

命令形式

@COPY PCmmmmm-PCnnnnn TO PCkkkkk[cr/lf]

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  mmmmm:コピー元の先頭ポイントコメント番号 ・・・・・・0 〜 29999

nnnnn:コピー元の最終ポイントコメント番号 ・・・・・・・・・0 〜 29999

kkkkk:コピー先の先頭ポイントコメント番号 ・・・・・・・・・・0 〜 29999

 意味  PCmmmmm から PCnnnnn のポイントコメントを PCkkkkk を先頭にコピーします。

SAMPLE

命令: @COPY PC101-PC200 TO PC1101[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

5.2 削除操作

1. プログラム削除

命令形式

@ERA <プログラム名> [cr/lf] PGn

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  プログラム名・・・・・・・・・・・・・

n:プログラム番号 ・・・・・・・

削除するプログラム名

(英数字および _(アンダースコア)で 32 文字以内)

1 〜 100

 意味  プログラムの削除操作を行います。

SAMPLE

命令: @ERA <TEST1>[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

12-42 ● 第 12 章 オンライン命令

8

9

10

11

12

13

2. ポイント削除

命令形式

@ERA Pmmmmm-Pnnnnn[cr/lf]

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  mmmmm:削除する先頭ポイント番号 ・・・・・・・・・ 0 〜 29999

nnnnn:削除する最終ポイント番号 ・・・・・・・・・・・・ 0 〜 29999

 意味  Pmmmmm から Pnnnnn のポイントの削除操作を行います。

SAMPLE

命令: @ERA P101-P200[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

3. ポイントコメント削除

命令形式

@ERA PCmmmmm-PCnnnnn[cr/lf]

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  mmmmm:削除する先頭ポイントコメント番号 ・・・・・・・・0 〜 29999

nnnnn:削除する最終ポイントコメント番号 ・・・・・・・・・・・0 〜 29999

 意味  PCmmmmm から PCnnnnn のポイントコメントの削除操作を行います。

SAMPLE

命令: @ERA PC101-PC200[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

データファイル操作コマンド ● 12-43

8

9

10

11

12

13

4. ポイントネーム削除

命令形式

@ERA PNmmmmm-PNnnnnn[cr/lf]

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  mmmmm:削除する先頭ポイントネーム番号 ・・・・・・・・・・0 〜 29999

nnnnn:削除する最終ポイントネーム番号 ・・・・・・・・・・・・・0 〜 29999

 意味  PNmmmmm から PNnnnnn のポイントネームの削除操作を行います。

SAMPLE

命令: @ERA PN101-PN200[cr/lf]応答: RUN[cr/lf]・・・・・・・・・・・・・・・ 処理開始

END[cr/lf]・・・・・・・・・・・・・・・ 処理完了

5. パレット削除

命令形式

@ERA PLm[cr/lf]

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  m:削除するパレット番号 ・・・・・・・・・・・・・・ 0 〜 39

 意味  PLm のパレットデータの削除操作を行います。

SAMPLE

命令: @ERA PL1[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・ 処理完了

12-44 ● 第 12 章 オンライン命令

8

9

10

11

12

13

6. ハンド削除

命令形式

@ERA Hm[cr/lf]

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  m:削除するハンド番号 ・・・・・・・・・・・・・・・・ 0 〜 31

 意味  Hm のハンド定義データの削除操作を行います。

SAMPLE

命令: @ERA H2[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

7. シフト削除

命令形式

@ERA Sm[cr/lf]

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  m:削除するシフト番号 ・・・・・・・・・・・・・・・・ 0 〜 39

 意味  Sm のシフトデータの削除操作を行います。

SAMPLE

命令: @ERA S1[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

データファイル操作コマンド ● 12-45

8

9

10

11

12

13

8. 領域判定出力設定削除

命令形式

@ERA ACm[cr/lf]

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  m:削除する領域判定出力設定番号 ・・・・・・・・・・・・ 0 〜 31

 意味  ACm の領域判定出力設定の削除操作を行います。

SAMPLE

命令: @ERA AC3[cr/lf]応答: RUN[cr/lf]・・・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

9. 汎用イーサネットポート削除

命令形式

@ERA GPm[cr/lf]

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  m:削除する汎用イーサネットポート番号 ・・・・・・・・・・・・・0 〜 15

 意味  GPm の汎用イーサネットポートの削除操作を行います。

SAMPLE

命令: @ERA GP5[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

12-46 ● 第 12 章 オンライン命令

8

9

10

11

12

13

5.3 プログラム名変更

命令形式

@REN <プログラム名 1 >  TO <プログラム名 2 > [cr/lf] PGn

応答形式

処理開始時:RUN[cr/lf] 処理完了時:END[cr/lf]

 値  プログラム名 1 ・・・・・・・・・・・

プログラム名 2 ・・・・・・・・・・・

n:プログラム番号 ・・・・・・・

変更前のプログラム名

(英数字および _(アンダースコア)で 32 文字以内)

変更後のプログラム名

(英数字および _(アンダースコア)で 32 文字以内)

1 〜 100

 意味  指定したプログラムのプログラム名変更を行います。

SAMPLE

命令: @REN <TEST1> TO <TEST2>[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 処理開始 END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

5.4 プログラム属性変更

命令形式

@ATTR <プログラム名> TO s[cr/lf] PGn

応答形式

OK[cr/lf]

 値  プログラム名・・・・・・・・・・・・・

s:属性・・・・・・・・・・・・・・・・・・

n:プログラム番号 ・・・・・・・

属性変更するプログラム名

(英数字および _(アンダースコア)で 32 文字以内)

RW:読み書き可能/ RO:読み取り専用/ H:隠し

1 〜 100

 意味  プログラム名、またはプログラム番号で指定したプログラムの属性変更操作を行い

ます。

SAMPLE

命令: @ATTR <TEST1> TO RO[cr/lf]応答: OK[cr/lf]

データファイル操作コマンド ● 12-47

8

9

10

11

12

13

5.5 初期化処理

1. メモリ領域の 初期化処理

命令形式

@INIT メモリ領域 [cr/lf]

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  メモリ領域 ・・・・・・・・・・・・・・・・ 初期化処理をするメモリ領域

メモリ領域は、下記のいずれかを指定します。

PGM ・・・・・・・・・・・・・・・・・・・ プログラム領域を初期化

PNT ・・・・・・・・・・・・・・・・・・・ ポイント領域を初期化

SFT ・・・・・・・・・・・・・・・・・・・・ シフト領域を初期化

HND ・・・・・・・・・・・・・・・・・・・ ハンド領域を初期化

PLT ・・・・・・・・・・・・・・・・・・・・ パレット領域を初期化

PCM ・・・・・・・・・・・・・・・・・・・ ポイントコメント領域を初期化

PNM ・・・・・・・・・・・・・・・・・・・ ポイントネーム領域を初期化

ION ・・・・・・・・・・・・・・・・・・・・ 入出力ネーム領域を初期化

ACO ・・・・・・・・・・・・・・・・・・・ 領域判定出力設定領域を初期化

GEP ・・・・・・・・・・・・・・・・・・・ 汎用イーサネットポート設定領域を初期化

MEM ・・・・・・・・・・・・・・・・・・・ 上記の領域(PGM…GEP まで全て)を初期化

PRM ・・・・・・・・・・・・・・・・・・・ パラメータ領域を初期化

ALL ・・・・・・・・・・・・・・・・・・・・ すべての領域(MEM+PRM)を初期化

 意味  メモリ領域の初期化処理操作を行います。

SAMPLE

命令: @INIT PGM[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

12-48 ● 第 12 章 オンライン命令

8

9

10

11

12

13

2. 通信ポートの初期処理

命令形式

@INIT 通信ポート[cr/lf]

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 値  通信ポート:初期化処理をする通信ポート

通信ポートは、下記のいずれかを指定します。

CMU:RS-232C ポートを初期化

ETH:イーサネットポートを初期化

 意味  通信ポートの初期化処理操作を行います。

通信ポートの初期値は、コントローラのユーザーズマニュアル、またはオペレーショ

ンマニュアルを参照してください。

SAMPLE

命令: @INIT CMU[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

3. アラーム履歴の初期化処理

命令形式

@INIT LOG[cr/lf]

応答形式

処理開始時:RUN[cr/lf]処理完了時:END[cr/lf]

 意味  アラーム履歴を初期化します。

SAMPLE

命令: @INIT LOG[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・ 処理完了

データファイル操作コマンド ● 12-49

8

9

10

11

12

13

5.6 データ読出し処理

命令形式

@READ 読出しファイル [cr/lf]

応答形式

処理開始時:BEGIN[cr/lf] (データ出力:内容は読出しファイルに依存します)

処理完了時:END[cr/lf]

 値  読出しファイル ・・・・・・・・・・・・ 読出しファイルを示します。

 意味  データ読出し処理を行います。

RS-232C を通じたオンライン命令の場合は、下記の命令と同じ意味となります。

・SEND 読出しファイル TO CMU

Ethernet の場合は、下記の命令と同じ意味となります。

・SEND 読出しファイル TO ETH

区分 読出しファイル記述形式

全体 個別

ユーザーメモリ 全体ファイル ALL ────

プログラム PGM <bb…b>ポイント PNT Pn

ポイントコメント PCM PCnポイントネーム PNM PNnパラメータ PRM /cccccccc/シフト定義 SFT Snハンド定義 HND Hnパレット定義 PLT PLn

汎用イーサネットポート GEP GPn入出力ネーム ION iNMn (n)領域判定出力 ACO ACn

変数・定数 変数 VAR ab...by配列変数 ARY ab...by(x)定数 ──── "cc...c"

ステータス プログラムディレクトリ DIR <<bb…b>>パラメータディレクトリ DPM ────

マシンリファレンス(センサ、突き当て) MRF ────

マシンリファレンス(マーク) ARP ────

コントローラ構成 CFG ────

コントローラ CNT ────

ロボット RBT ────

ドライバ DRV ────

オプションボード OPT ────

自己診断 SCK ────

アラーム履歴 LOG ────

メモリ残量 MEM ────

デバイス DI ポート DI() DIn()

DO ポート DO() DOn()

MO ポート MO() MOn()

TO ポート TO() TOn()

LO ポート LO() LOn()

SI ポート SI() SIn()

SO ポート SO() SOn()

SIW ポート SIW() SIWn()

SOW ポート SOW() SOWn()

その他 ファイル終了コード EOF ────

a:英字 n:数字 b:英数字またはアンダースコア( _ ) c:英数字または特殊記号

x:式(配列引数) y:変数の型 i:入出力タイプ

SAMPLE

命令: @READ PGM[cr/lf] ・・・・・・・・・・・・・・・・・・・ 全プログラム読み出し

@READ P100[cr/lf] ・・・・・・・・・・・・・・・・・ ポイント 100読み出し

@READ DINM2(0)[cr/lf] ・・・・・・・・・・・ DI2(0)の入出力ネーム読み出し

n 要点

・・各ファイルの詳細については、10 章「データファイル詳細」を参照してください。

12-50 ● 第 12 章 オンライン命令

8

9

10

11

12

13

5.7 データ書込み処理

命令形式

@WRITE 書込みファイル [cr/lf]

応答形式

入力要求表示   READY[cr/lf]入力終了後    OK[cr/lf]

 値  書込みファイル ・・・・・・・・・・・・ 書込みファイルを示します。

 意味  データ書込み処理を行います。

RS-232C を通じたオンライン命令の場合は、下記の命令と同じ意味となります。

・SEND CMU TO 書込みファイル

Ethernet の場合は、下記の命令と同じ意味となります。

・SEND ETH TO 書込みファイル

・ DO, MO, TO, LO, SO, SOWの各ポートにおいて、書込みファイルとして各ポート全体(DO()、

MO() など)を指定することはできません。

・ 個別ファイル(DOn()、MOn()など)の一部は、書込みファイルとして指定できないものが

あります。詳しくは、10 章「データファイル詳細」を参照してください。

区分 書込みファイル記述形式

全体 個別

ユーザーメモリ 全体ファイル ALL ────

プログラム PGM <bb…b>

ポイント PNT Pn

ポイントコメント PCM PCn

ポイントネーム PNM PNn

パラメータ PRM /cccccccc/

シフト定義 SFT Sn

ハンド定義 HND Hn

パレット定義 PLT PLn

汎用イーサネットポート GEP GPn

入出力ネーム ION iNMn(n)

領域判定出力 ACO ACn

変数・定数 変数 VAR ab...by

配列変数 ARY ab...by(x)

デバイス DO ポート ──── DOn()

MO ポート ──── MOn()

TO ポート ──── TOn()

LO ポート ──── LOn()

SO ポート ──── SOn()

SOW ポート ──── SOWn()

a:英字 n:数字 b:英数字またはアンダースコア( _ ) c:英数字または特殊記号

x:式(配列引数) y:変数の型 i:入出力タイプ

SAMPLE

命令: @WRITE PRM[cr/lf] ・・・・・・・・・・・・・・ ラベル指定パラメータ書き出し

@WRITE P100[cr/lf] ・・・・・・・・・・・・・ ポイント 100書き出し

@WRITE DINM2(0)[cr/lf] ・・・・・・・ DI2(0)の入出力ネーム書き出し

n 要点

・・各ファイルの詳細については、10 章「データファイル詳細」を参照してください。

MEMO

ユーティリティコマンド ● 12-51

8

9

10

11

12

13

6 ユーティリティコマンド

6.1 シーケンスプログラム実行フラグ設定

命令形式

@SEQUENCE k[cr/lf]

応答形式

OK[cr/lf]

 値  k:実行フラグ ・・・・・・・・・・・・・・・・・・・0:禁止/ 1:許可/ 3:許可(出力リセット許可)

 意味  シーケンスプログラム実行フラグ設定処理を行います。

SAMPLE

命令: @SEQUENCE 1[cr/lf]応答: OK[cr/lf]

6.2 日付設定

命令形式

@DATE yy/mm/dd[cr/lf]

応答形式

OK[cr/lf]

 値  yy/mm/dd:設定する日付(年月日)

yy:西暦の下 2 桁 ・・・・・・・・・・・・・・・・00 〜 99

mm:月 ・・・・・・・・・・・・・・・・・・・・・・・・01 〜 12

dd:日 ・・・・・・・・・・・・・・・・・・・・・・・・・01 〜 31

 意味  コントローラの日付を設定します。

・ 省略した項目は、現在の値が使用されます。

・ [cr/lf] のみを送信すると、日付は変更されません。

・ あり得ない日付を入力すると“5.202:データエラー”が発生します。

SAMPLE 1

日付のみを変更する場合

 //15[cr/lf] ・・・・・・・・・・・・・・・・・・・・ 日付を 15日に設定

SAMPLE 2

命令: @DATE 16/01/14[cr/lf]応答: OK[cr/lf]

n 要点

・・西暦のみ、または月のみを変更する場合、それぞれ後ろの /(スラッシュ)は省略できます。

例)2016 年に設定 ・・ 16[cr/lf]6 月に設定 ・・・・ /06[cr/lf]

MEMO

12-52 ● 第 12 章 オンライン命令

8

9

10

11

12

13

6.3 時刻設定

命令形式

@TIME hh:mm:ss[cr/lf]

応答形式

OK[cr/lf]

 値  hh:mm:ss ・・・・・・・・・・・・・・ 現在の時刻

hh:時 ・・・・・・・・・・・・・・・・・・・ 00 〜 23

mm:分 ・・・・・・・・・・・・・・・・・・ 00 〜 59

ss:秒 ・・・・・・・・・・・・・・・・・・・・ 00 〜 59

 意味  コントローラの時刻を設定します。

・ 省略した項目は、現在の値が使用されます。

・ [cr/lf] のみを送信すると、時刻は変更されません。

・ あり得ない時刻を入力すると「5.202:データエラー」が発生します。

SAMPLE 1

分のみを変更する場合

 :20:[cr/lf] ・・・・・・・・・・・・・・・・・・・・ 分を 20分に設定

SAMPLE 2

命令: @TIME 10:21:35[cr/lf]応答: OK[cr/lf]

MEMO

ロボット言語の単独実行 ● 12-53

8

9

10

11

12

13

7 ロボット言語の単独実行

命令形式

@ロボット言語 [cr/lf]

応答形式 1

OK[cr/lf] または NG=gg.bbb[cr/lf]

応答形式 2

処理開始時:RUN[cr/lf]または NG=gg.bbb[cr/lf]処理完了時:END[cr/lf]または NG=gg.bbb[cr/lf]

 値  OK、END ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 正常に命令終了

NG ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ エラー発生

RUN ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 正常に命令開始

gg:アラームグループ番号 ・・・・・・・・・・・・・・・・・・・・ 0 〜 99

bbb:アラーム分類番号 ・・・・・・・・・・・・・・・・・・・・・・・ 0 〜 999

 意味  ロボット言語命令処理を行います。

・単独実行可能命令のみ実行します。

・命令形式は、各命令に依存します。

SAMPLE 1

命令: @SET DO(20) [cr/lf]応答: OK[cr/lf]

SAMPLE 2

命令: @MOVE P,P100,S=20[cr/lf]応答: RUN[cr/lf] ・・・・・・・・・・・・・・・ 処理開始

END[cr/lf] ・・・・・・・・・・・・・・・ 処理完了

12-54 ● 第 12 章 オンライン命令

8

9

10

11

12

13

8 制御コード

命令形式

^C (=03H)

応答形式

NG=1.8

 意味  実行中の命令を中断します。

SAMPLE

命令: @MOVE P,P100,S=20[cr/lf] ^C応答: NG=1.8[cr/lf]

1 1 予約語一覧表 ・・・・・・・・・・・・・・・・・・・・・・・・ 13-1

2 2 従来機種からの変更点 ・・・・・・・・・・・・・・・・ 13-3

第 13章

付録

予約語一覧表 ● 13-1

8

9

10

11

12

13

1 予約語一覧表

下記はロボット言語として予約されていますので、識別子(変数など)としての使用はできません。

A

ABS

ABSADJ

ABSRPOS

ACC

ACCEL

ACCESS

ACO

ALL

ALM

ALMRST

AND

ARCHP1

ARCHP2

ARM

ARMCND

ARMSEL

ARMTYP

ARP

ARY

ASPEED

ATN

ATN2

ATTR

AXWGHT

B

BIN

BREAK

C

CALL

CASE

CFG

CHANGE

CHGPRI

CHR

CLOSE

CMU

CNT

CONT

CONTPLS

COPY

COS

CURPNT

CURTQST

CURTRQ

CUT

D

DATE

DBP

DEC

DECEL

DEF

DEGRAD

DELAY

DI

DIM

DIR

DIST

DO

DPM

DRIVE

DRIVEI

DRV

DS

DSPEED

E

ELSE

ELSEIF

EMG

END

ENDIF

EOF

EQV

ERA

ERL

ERR

ERROR

ETH

ETHSTS

EXIT

EXITTASK

F

FN

FOR

FREE

G

GEP

GEPSTS

GO

GOSUB

GOTO

H

HALT

HALTALL

HAND

HEX

HND

HOLD

HOLDALL

I

IDIST

IF

IMP

INCH

INCHT

INCHXY

INIT

INPUT

INT

ION

J

JL

JOG

JOGT

JOGXY

JTOXY

L

LEFT

LEFTY

LEN

LET

LINEMODE

LO

LOAD

LOC1

LOC2

LOC3

LOC4

LOC5

LOC6

LOCF

LOG

LSHIFT

M

MAINPG

MCHREF

MEM

MID

MNS

MO

MOD

MODE

MOTOR

MOVE

MOVEI

MOVET

MRF

MRKSET

MSG

MSGCLR

MSPEED

MTRDUTY

N

NAME

NEXT

NOT

O

OFF

OFFLINE

ON

ONLINE

OPEN

OPT

OR

ORD

ORGORD

ORGRTN

ORIGIN

OUT

OUTPOS

P

P

PATH

PC

PCM

PDEF

PGM

PGMTSK

PGN

PLS

PLT

PMOVE

PNM

PNT

PPNT

PRINT

PRM

13-2 ● 第 13 章 付録

8

9

10

11

12

13

下記はシステム変数名として使用されているため、これらの名前で始まる変数名は使用できません(n:数値)。

ACn GPn PNn SOn

DIn Hn SGIn SONMn

DINMn LOn SGRn TOn

DOn MOn SIn

DONMn PCn SINMn

FN Pn Sn

変数名の使用例

■ ロボット言語として予約されているキーワードは、そのキーワード自体は使用できませんが、英数字を追加

すれば変数名として使用できます。

  例:ABS は使用できませんが、「ABS1」や「ABSX」は使用可能です

■ システム変数として予約されているキーワードは、それらのキーワードで始まる変数名全てが使用できません。

英数字を追加した場合も同様です。

  例:FN に加え、「FNA」や「FN123」なども全て使用できません

PSHFRC

PSHJGSP

PSHMTD

PSHRSLT

PSHSPD

PSHTIME

PUSH

PWR

R

RADDEG

RBT

READ

REF

REM

REN

RESET

RESTART

RESUME

RETURN

RIGHT

RIGHTY

RSHIFT

RUN

RUNTO

S

S

SCK

SELECT

SEND

SEQCMPL

SEQUENCE

SERVO

SET

SETGEP

SETPW

SFT

SGI

SGR

SHARED

SHIFT

SI

SID

SIN

SIW

SKIP

SKIPTO

SO

SOD

SOW

SPEED

SQR

START

STEP

STOP

STOPON

STR

SUB

SUSPEND

SWI

SYNCHK

T

TAG

TAN

TASKS

TCHXY

TCOUNTER

TEACH

THEN

TIM

TIME

TIMER

TO

TOLE

TORQUE

TSKECD

TSKMON

TSKPGM

V

VAL

VAR

VEL

VER

W

WAIT

WEIGHT

WEND

WHERE

WHILE

WHRXY

WHRXYEX

WRITE

X

XOR

XY

XYTOJ

Y

YZ

Z

ZX

従来機種からの変更点 ● 13-3

8

9

10

11

12

13

2 従来機種からの変更点

1 プログラム名

従来機種 (RCX240 など ) で特別な意味を持っていた下記の 2 つのプログラム名のプログラ

ムは、RCX340 では特別な意味を持ちません。

A) FUNCTION

B) _SELECT

A) FUNCTION

従来機種 (RCX240 など ) では、ユーザーファンクションを登録するための特別なプログラ

ムとして使用していましたが、RCX340 ではユーザーファンクションの機能がないため、特

別な意味を持ちません。

B) _SELECT

従来機種 (RCX240 など ) では、ロボットプログラムをリセットした時にプログラム名「_

SELECT」のプログラムが必ず選択・実行されるプログラムとなりましたが、RCX340 では

ロボットプログラムをリセットするとメインプログラム番号に設定したプログラム ( メイン

プログラム番号にプログラムが設定されていない場合は、最後に実行したプログラム ) が選

択・実行されるプログラムとなります。

メインプログラムの詳細は 12 章「2.1 プログラム操作」の「12. メインプログラム登録」を

参照ください。

2 複数台ロボット制御

従来機種 (RCX240 など ) では、メイングループ ( メインロボット、メイン付加軸 ) と サブ

グループ ( サブロボット、付加軸 ) でロボットが構成されていますが、RCX340 ではロボッ

ト 1 〜 ロボット 4 ( 通常軸、付加軸 ) でロボットが構成されます。

それに伴い、従来機種 (RCX240 など ) で使用していたグループ別命令は、ロボット指定付

き命令になります。

ロボット指定付き命令の詳細は 5 章「2 ロボット指定付き命令一覧」、グループ別命令の詳

細は従来機種 (RCX240 など ) のプログラミングマニュアルの「グループ別命令一覧」を参

照してください。

SAMPLE

・従来機種 (RCX240など )でのグループ別命令

MOVE P, P1 ・・・・・・・・・・・・・・・・・・・・・・・・ メイングループの軸を P1で指定された位置へ移動

MOVE2 P, P5 ・・・・・・・・・・・・・・・・・・・・・・ サブグループの軸を P5で指定された位置へ移動

・RCX340でのロボット指定付き命令

MOVE P, P1 ・・・・・・・・・・・・・・・・・・・・・・・・ ロボット 1の軸を P1で指定された位置へ移動

MOVE[2] P, P5 ・・・・・・・・・・・・・・・・・・・ ロボット 2の軸を P5で指定された位置へ移動

・ ロボット指定付き命令は、ロボット番号の省略が可能です。ロボット番号を省略した場合、

ロボット 1 が選択されます。

MEMO

13-4 ● 第 13 章 付録

8

9

10

11

12

13

3 マルチタスク

従来機種 (RCX240 など ) と RCX340 では、下記の変更点があります。

従来機種 RCX340

最大タスク数 8 16

優先順位 17 〜 47 1 〜 63

タスクの定義 プログラム中にタスクを定義 別プログラムにタスクを定義

タスクの起動自動的にタスク 1 に割り当てられ、RUN 状態になる

指定したタスク番号にタスクを割り当て、RUN 状態になる

タ ス ク 1 に 対 し て のRESTART命令などの実行

不可 可能

マルチタスクの詳細は 6 章「マルチタスク」および 従来機種 (RCX240 など ) のプログラミ

ングマニュアルの「マルチタスク」を参照してください。

4 ロボット言語

1. RCX340 では、従来機種 (RCX240 など ) に対し、下記のロボット言語が追加になります。

ARMSEL CLOSE CURTQST ETHSTS

GEPSTS HALTALL HOLDALL MOTOR

MOVET MTRDUTY OPEN PGMTSK

PGN PSHFRC PSHJGSP PSHMTD

PSHRSLT PSHSPD PSHTIME PUSH

SETGEP TSKPGM

ロボット言語の詳細は 8 章「ロボット言語一覧」を参照してください。

2. 従来機種 (RCX240など )に対し、RCX340で未対応となったロボット言語は下記になります。

ABSINIT ABSINIT2 ABSRST ABSRPOS2

ACCEL2 ARMCND2 ARMTYP2 ASPEED2

AXWGHT2 CHANGE2 CURTRQ2 DECEL2

DECLARE DRIVE2 DRIVEI2 HAND2

JTOXY2 LEFTY2 MCHREF2 MOVE2

MOVEI2 ORGORD2 OUTPOS2 PMOVE2

RIGHTY2 SERVO2 SHIFT2 SPEED2

TOLE2 TORQUE2 TRQSTS TRQSTS2

TRQTIME TRQTIME2 WAIT ARM2 WEIGHT2

WHERE2 WHRXY2 XYTOJ2 _SYSFLG

ロボット言語の詳細は、従来機種 (RCX240 など ) のプログラミングマニュアルの「ロボット言語

一覧」を参照してください。

従来機種からの変更点 ● 13-5

8

9

10

11

12

13

5 オンラインコマンド

1. RCX340 では、従来機種 (RCX240 など ) に対し、下記のオンラインコマンドが追加になり

ます。

RUNTO SKIPTO MRKSET IDIST

INCHXY INCHT JOGXY JOGT

TCHXY SYNCHK SEQCMPL LOAD

MAINPG MSGCLR SETPW ALMRST

? ALM ? CURPNT ? IDIST ? INPUT

? LONEMODE ? MAINPG ? MODE ? MSG

? MSPEED ? TSKECD

オンラインコマンドの詳細は 12 章「オンライン命令」を参照してください。

2. 従来機種 (RCX240 など ) に対し、RCX340 で未対応となったオンラインコマンドは下記に

なります。

AUTO EMGRST EXELV MANUAL

? ARM ? CONFIG ? EXELVL ? OPSLOT

? SELFCHK ? WHRXYEX

オンラインコマンドの詳細は、従来機種 (RCX240 など ) のプログラミングマニュアルの「オンラ

イン命令」を参照してください。

6 データファイル

従来機種 (RCX240 など ) に対し、RCX340 では下記のデータファイルが追加になります。

1. ポイントネームファイル

2. 汎用イーサネットポート定義ファイル

3. 入出力ネームファイル

4. 領域判定出力定義ファイル

5. システム構成情報ファイル

6. バージョン情報ファイル

7. オプションボードファイル

8. 自己診断ファイル

9. メモリ残量ファイル

詳細は 10 章「データファイル詳細」を参照してください。

・ 従来機種にあった「エラーメッセージ履歴ファイル」と「エラーメッセージ履歴詳細ファイ

ル」はなくなり、新たに「アラーム履歴ファイル」が追加となります。

・ 従来機種ではポイント番号の範囲は 0 〜 9999 ですが、RCX340では 0 〜 29999 となります。

MEMO

索引

索引 ● 1

索引

アルファベット

C

CASE ……………………………………………………… 8-187

COMMON …………………………………………………… 1-3

CONT 指定 ……………… 8-95, 8-104, 8-116, 8-127, 8-154

D

DI/DO 条件式 ……………………………………………… 4-6

DI ファイル ……………………………………… 10-55, 10-56

DO ファイル ……………………………………… 10-57, 10-58

E

EOF ファイル …………………………………………… 10-73

Ethernet ポート通信ファイル ………………………… 10-75

I

IF ……………………………………………………………… 8-75

単純 IF 文 ………………………………………………… 8-75

ブロック IF 文 …………………………………………… 8-76

L

LABEL 文 …………………………………………………… 1-4

LO ファイル ……………………………………… 10-61, 10-62

M

MO ファイル ……………………………………… 10-59, 10-60

P

PATH ………………………………………………… 9-1, 8-144

移動開始 ……………………………………………… 8-153

移動経路の設定 ……………………………………… 8-144

経路設定の開始 ……………………………………… 8-151

経路設定の終了 ……………………………………… 8-150

使用方法 ………………………………………………… 9-1

注意事項 ………………………………………………… 9-2

特徴 ……………………………………………………… 9-1

R

RS-232C ………………………………………… 11-18, 11-19

S

SEQUENCE ………………………………………………… 1-2

SI ファイル ……………………………………… 10-65, 10-66

SOW ファイル …………………………………… 10-71, 10-72

SO ファイル ……………………………………… 10-67, 10-68

STOPON 条件指定 ………………… 8-49, 8-54, 8-162, 8-177

T

TO ファイル ……………………………………… 10-63, 10-64

TO ポート ………………………………………………… 8-217

W

WAIT 状態になる命令 ……………………………………… 6-4

X

XY 指定 ……………………………………………………… 8-49

かな

あアーチ位置…………………………………………………… 8-20

アーチモーション指定…………………………… 8-102, 8-161

アームロック出力…………………………………………… 8-87

アームロック出力変数………………………………… 3-11, 7-6

アウト有効位置…………………………………………… 8-142

アクセスレベル状態取得………………………………… 12-24

値渡しと参照渡し…………………………………………… 3-6

一時停止状態タスク取得………………………………… 12-27

移動速度…………………………………………………… 8-205

エラー回復処理…………………………………………… 8-182

エラーコード番号………………………………………… 8-133

エラー処理………………………………………… 8-133, 8-182

エラー発生行番号………………………………………… 8-133

円弧補間………………………………………………8-98, 8-144

演算の優先順位……………………………………………… 4-3

2 ● 索引

オールファイル…………………………………… 10-32, 10-33

オンライン命令

シフト式の値取得 …………………………………… 12-35

数値式の値取得 ……………………………………… 12-34

ポイント式の値取得 ………………………………… 12-35

文字列式の値取得 …………………………………… 12-34

オンライン命令一覧表……………………………………… 12-1

書き込みファイル………………………………………… 8-188

加速度係数…………………………………………………… 8-19

加速度指定………………………………… 8-106, 8-118, 8-129

型の変換………………………………………………… 3-6, 4-3

仮引数……………………………………………………… 8-209

関係演算子…………………………………………………… 4-1

関数一覧:アルファベット順……………………………… 8-12

関数一覧:機能別…………………………………………… 8-15

関節座標形式………………………………………………… 4-5

起動状態タスク取得……………………………………… 12-27

グローバル変数……………………………………………… 3-18

減速度指定………………………………… 8-106, 8-119, 8-130

減速比率……………………………………………………… 8-37

原点復帰順序……………………………………………… 8-139

公差………………………………………………………… 8-218

コメント……………………………………………… 1-5, 8-179

サーボ

オフ …………………………………………………… 8-190

オン …………………………………………………… 8-190

フリー ………………………………………………… 8-190

サーボ状態………………………………………………… 8-190

座標平面指定……………………………………… 8-107, 8-148

サブプロシージャ……………………………8-27, 8-195, 8-209

サブルーチン…………………………………………8-64, 8-134

算術演算……………………………………………………… 4-1

算術演算子…………………………………………………… 4-1

算術代入文…………………………………………………… 8-84

シーケンス機能……………………………………………… 7-1

シーケンスプログラム……………………………………… 1-2

演算の優先順位 ………………………………………… 7-8

実行 ……………………………………………………… 7-4

実行状態取得 ………………………………………… 12-26

仕様 ……………………………………………………… 7-8

スキャンタイム ………………………………………… 7-8

ステップ実行 …………………………………………… 7-4

プログラミング ………………………………………… 7-5

プログラム方法 ………………………………………… 7-1

プログラム容量 ………………………………………… 7-8

シーケンスプログラム実行状態取得…………………… 12-26

シーケンスプログラム実行フラグ設定………………… 12-51

シーリング………………………………………………… 11-17

軸指定 PTP ………………………………………………… 8-46

軸先端質量…………………………………………………… 8-26

軸単位の絶対移動…………………………………………… 8-46

軸単位の相対移動…………………………………………… 8-50

システムジェネレーション………………………………… 5-1

システム変数…………………………………………… 3-2, 3-7

実数型定数…………………………………………………… 2-1

指定されたロボットの自動移動速度を設定 / 取得する … 8-24

シフト削除………………………………………………… 12-44

シフト座標………………………………………… 8-196, 8-201

定義ファイル ………………………………… 10-16, 10-17

シフト座標の使用…………………………………………… 11-3

シフト状態取得…………………………………………… 12-29

シフト代入文………………………………………………… 8-86

シフト変数…………………………………………………… 3-8

手動移動速度変更………………………………………… 12-17

手動モード操作…………………………………………… 12-17

定数ファイル……………………………………………… 10-52

初期化処理………………………………………………… 12-47

通信ポート …………………………………………… 12-48

メモリ領域 …………………………………………… 12-47

シリアル出力変数…………………………………………… 3-14

シリアルダブルワード出力………………………………… 3-16

シリアルダブルワード入力………………………………… 3-15

シリアル入力変数…………………………………………… 3-13

シリアルポート…………………………………………… 8-202

シリアルポート通信ファイル…………………………… 10-74

シリアルワード出力………………………………………… 3-16

シリアルワード入力………………………………………… 3-15

数値型定数…………………………………………………… 2-1

索引 ● 3

制御コード………………………………………………… 12-54

整数型定数…………………………………………………… 2-1

静的変数……………………………………………………… 3-18

絶対位置移動………………………………………………… 8-95

先端質量…………………………………………………… 8-225

相対位置移動……………………………………………… 8-109

代入文………………………………………………………… 8-84

タイマ出力変数……………………………………………… 3-12

タスク

一時停止 ……………………………………………… 8-211

起動 ……………………………………………… 6-2, 8-207

強制終了 ………………………………………………… 8-35

再開 ……………………………………………………… 6-5

再起動 ………………………………………………… 8-181

削除 ……………………………………………………… 6-6

終了 ……………………………………………………… 8-61

条件待ち ………………………………………………… 6-4

状態と遷移 ……………………………………………… 6-2

スケジューリング ……………………………………… 6-3

中断 ……………………………………………………… 6-5

定義 ……………………………………………………… 6-1

停止 ……………………………………………………… 6-7

データの共有 …………………………………………… 6-9

番号 …………………………………………………… 8-207

プログラム例 ……………………………………… 6-8, 6-9

優先順位 ……………………………………6-1, 8-29, 8-207

タスク稼働状態取得……………………………………… 12-28

タスクの状態

NON EXISTENT ………………………………………… 6-2

READY …………………………………………………… 6-2

RUN ……………………………………………………… 6-2

STOP ……………………………………………………… 6-2

SUSPEND ………………………………………………… 6-2

WAIT ……………………………………………………… 6-2

直線補間………………………………8-97, 8-111, 8-122, 8-144

直交座標形式………………………………………………… 4-5

通信ポート………………………………………… 8-132, 8-136

データ読出し処理………………………………………… 12-49

データファイル……………………………………… 10-1, 10-2

種類 ……………………………………………………… 10-1

データ書込み処理………………………………………… 12-50

手系フラグ……… 4-5, 10-5, 8-99, 8-112, 8-163, 10-21, 8-123

動的変数……………………………………………………… 3-18

動的変数全体……………………………………………… 10-46

トルク指令値の変更……………………………………… 8-219

内部出力変数………………………………………………… 3-10

バージョン取得…………………………………………… 12-27

配列…………………………………………………………… 3-5

配列の添字…………………………………………………… 8-42

配列変数の宣言……………………………………………… 8-42

配列変数ファイル………………………………… 10-53, 10-54

パラメータディレクトリファイル……………………… 10-36

パラメータファイル……………… 10-12, 10-13, 10-14, 10-15

パラレル出力変数…………………………………………… 3-9

パラレル入力変数…………………………………………… 3-8

パラレルポート……………………………………… 8-41, 8-44

パレタイジング……………………………………… 11-4, 11-10

パレット

移動 …………………………………………………… 8-159

削除 …………………………………………………… 12-43

定義 …………………………………………………… 8-156

定義ファイル ………………… 10-20, 10-21, 10-22, 10-23

ハンド

切り替え ………………………………………………… 8-28

状態取得 ……………………………………………… 12-29

定義 ……………………………………………………… 8-68

定義ファイル ………………………………… 10-18, 10-19

ハンド削除………………………………………………… 12-44

汎用イーサネットポート削除…………………………… 12-45

非常停止状態取得………………………………………… 12-31

左手系………………………………………………………… 8-82

ピック & プレイス ……………………………………… 11-12

ビット指定…………………………………………………… 3-17

4 ● 索引

複数台ロボット制御………………………………………… 5-1

ブレークポイント状態取得……………………………… 12-24

プログラミング例

応用編 …………………………………………………… 11-8

基本編 …………………………………………………… 11-1

プログラム

一時停止 ………………………………………………… 8-73

切り替え ……………………………………………… 8-212

コピー ………………………………………………… 12-40

削除 …………………………………………………… 12-41

停止 ……………………………………………………… 8-66

プログラム操作……………………………………………… 12-9

プログラム属性変更……………………………………… 12-46

プログラムディレクトリファイル……………… 10-34, 10-35

プログラムの実行を待つ…………………………………… 8-40

プログラムファイル………………………………… 10-3, 10-4

プログラム名………………………………………………… 1-2

プログラム名変更………………………………………… 12-46

プログラムレベル………………………………………… 8-195

変数の型……………………………………………………… 3-4

変数のクリア………………………………………………… 3-19

変数ファイル………10-46, 10-47, 10-48, 10-49, 10-50, 10-51

変数名………………………………………………………… 3-3

ポイントコメント削除…………………………………… 12-42

ポイントコメントのコピー……………………………… 12-41

ポイントコメントファイル………………………… 10-8, 10-9

ポイント削除……………………………………………… 12-42

ポイント代入文……………………………………………… 8-85

ポイント定義……………………………………………… 8-163

ポイントデータ

形式 ……………………………………………………… 4-5

要素単位で変更する …………………………………… 8-88

ポイントデータティーチング…………………………… 12-17

ポイントネーム削除……………………………………… 12-43

ポイントのコピー………………………………………… 12-40

ポイント番号の使用………………………………………… 11-2

ポイントファイル…………………………………………… 10-5

ポイント変数………………………………………………… 3-7

ポート出力指定…………………………………… 8-108, 8-149

マルチタスク…………………………………………… 5-1, 6-1

右手系……………………………………………………… 8-185

命令文形式…………………………………………………… 1-5

メインタスク………………………………………………… 8-29

メモリ残容量取得………………………………………… 12-30

モード状態取得…………………………………………… 12-25

文字型定数…………………………………………………… 2-2

文字列

演算 ……………………………………………………… 4-4

比較 ……………………………………………………… 4-4

連結 ………………………………………………… 4-4, 8-85

文字列代入文………………………………………………… 8-85

ユーザー変数………………………………………………… 3-2

ユーザ関数の定義…………………………………………… 8-38

ユーティリティコマンド………………………………… 12-51

読出しファイル…………………………………………… 8-188

予約語一覧表………………………………………………… 13-1

領域判定出力設定削除…………………………………… 12-45

レディキュー………………………………………………… 6-3

ローカル変数…………………………………………3-18, 8-209

ロボット 1 …………………………………………………… 5-1

ロボット指定付き命令一覧………………………………… 5-2

論理演算子…………………………………………………… 4-2

サービス依頼票

  発行 20  年  月  日

□ クレーム対応

□ 有償修理

□ 定期点検

□ 修理前見積り

□ 電話して欲しい

□ 出張して欲しい

□ 不具合品を送るので修理して欲しい

□ その他 ……………………………………………

ロボット本体シリアル番号

………………………………………

コントローラシリアル番号

………………………………………

エラーメッセージもしくは不具合の症状:

エラー発生のタイミング: 1. 電源投入直後 2. 動作中ランダムに 3. 動作中ある程度決まった位置で

エラー発生の頻度: 1. 毎回 2. 2~4時間に一度 3. 4時間から24時間に一度

4. 1日に一度 5. それ以上

その他情報:

ロボット型式 ………………………………………

コントローラ型式 ………………………………………

サービス依頼票

…………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………

会社名

ご担当

ご住所

TEL

FAX

会社名

ご担当

TEL

FAX

TEL:0120-808-693FAX:053-525-8378mail:[email protected]

お客様

ご購入代理店

依頼内容

 品

不具合内容

特記事項

日本国内でご使用のお客様へこの依頼票をご記入の上ヤマハ発動機(株)IM事業部ロボットサービスまでご連絡ください

日本国外でご使用のお客様へこの依頼票ををご記入の上ご購入代理店までお送りください

※YHXシリーズの場合は別紙「YHXコントローラ組立表」を記述し添付してください。

201701

ヤマハ発動機株式会社 IM事業部

本書の内容の一部もしくは、全てを無断で複写・転写することを禁じます。

プログラミング説明書

RCX3404軸ロボットコントローラ

2017年3月Version 1.31

改訂履歴

改訂日付 改訂内容

2014年 2月 Ver.1.00 新版

2014年 7月 Ver.1.10 誤記修正等

2016年 2月 Ver.1.20 7 章「シーケンス機能」追加、8 章「ロボット言語制御」内 「PATH 制御 」「 トルク制御 」 を追加、9 章「PATH 文」追加、10 章「ユーザープログラム例」内「2.5 シーリング」追加、13 章「付録」内「6 従来機種からの変更点」追加、誤記修正等

2017年 2月 Ver.1.30 8 章 PUSH 文「押付解除条件」の説明修正および「ポイントネーム」に関する記述の追加、誤記修正等、連絡先変更

2017年 3月 Ver.1.31 誤記修正等

その他のお問い合わせ

ヤマハ発動機株式会社 IM事業部 ロボットビジネス部〒433-8103 静岡県浜松市北区豊岡町127番地

[代表]TEL 053-525-8250 FAX 053-525-8378● 東日本営業所〒330-0854 埼玉県さいたま市大宮区桜木町1-11-7TEL 048-657-3281 FAX 048-657-3285● 中部営業所(ロボットビジネス部内)〒433-8103 静岡県浜松市北区豊岡町127番地TEL 053-525-8325 FAX 053-525-8378● 西日本営業所〒532-0011 大阪府大阪市淀川区西中島5-13-9TEL 06-6305-0830 FAX 06-6305-0832● 九州営業所〒812-0013 福岡県福岡市博多区博多駅東3-6-11TEL 092-432-8106 FAX 092-432-8103

最新版のマニュアルは下記のウェブサイトからダウンロードしていただけます。https://www.yamaha-motor.co.jp/robot/

トラブル・修理のお問い合わせロボットサービス

0120-808-693受付時間 月~金曜日 8:45~19:45 土・日曜日 9:00~17:00 (弊社指定の休日などを除く)

ヤマハ発動機株式会社 IM事業部ロボットビジネス部 ロボット営業グループ ロボットサービス〒433-8103 静岡県浜松市北区豊岡町127番地TEL 053-525-8160

その他のお問い合わせ

ヤマハ発動機株式会社 IM事業部 ロボットビジネス部〒433-8103 静岡県浜松市北区豊岡町127番地

[代表]TEL 053-525-8250 FAX 053-525-8378● 東日本営業所〒330-0854 埼玉県さいたま市大宮区桜木町1-11-7TEL 048-657-3281 FAX 048-657-3285● 中部営業所(ロボットビジネス部内)〒433-8103 静岡県浜松市北区豊岡町127番地TEL 053-525-8325 FAX 053-525-8378● 西日本営業所〒532-0011 大阪府大阪市淀川区西中島5-13-9TEL 06-6305-0830 FAX 06-6305-0832● 九州営業所〒812-0013 福岡県福岡市博多区博多駅東3-6-11TEL 092-432-8106 FAX 092-432-8103

最新版のマニュアルは下記のウェブサイトからダウンロードしていただけます。https://www.yamaha-motor.co.jp/robot/

トラブル・修理のお問い合わせロボットサービス

0120-808-693受付時間 月~金曜日 8:45~19:45 土・日曜日 9:00~17:00 (弊社指定の休日などを除く)

ヤマハ発動機株式会社 IM事業部ロボットビジネス部 ロボット営業グループ ロボットサービス〒433-8103 静岡県浜松市北区豊岡町127番地TEL 053-525-8160