CKD KSLシリーズ ロボット言語マニュアル ユーザーマニュアル

  • こんにちは!CKD KSLシリーズ スカラロボットの取扱説明書の内容を理解しました。SCOL言語を使ったプログラミング方法、ロボットの動作、エラー処理など、このマニュアルに関するご質問にお答えできます。お気軽にご質問ください!
  • SCOL言語とは何ですか?
    プログラムの構成要素は何ですか?
    SCOL言語で使用できる文字の種類は?
    プログラム実行のタイミングについて、どのような注意事項がありますか?
取扱説明書
製品をご使用になる前に、本取扱説明書を必ずおみください。
特に安全に関する記述は、注意深くお読みください。
本取扱説明書は必要なときにすぐ取出して読めるように、大切に保管してください。
SM-A20050
スカラロボッ
KSL シリーズ
(ロボット言語マニュアル
はじめに
このたびは、当社のカラロボット「KSL シリーズ」お買求めいただきまして、誠にありがとうございます。
本取扱説明書は本製品の性能を十分に発揮させるために、取付、使用方法などの基本的な事項を記載した
ものです。よくお読みいただき、正しくご使用ください。
なお、本取扱説明書は紛失しないように、大切に保管してください。
本取扱説明書に記載の仕様、外観は、将来予告なく変更することがあります。
注意:
・この取扱説明書は産業用ロボットを実際にご使用になられる方のお手元に必ず届くよう
お取りはからいください
・産業用ロボットをご使用前にこの取扱説明書を必ずご覧くださいますようお願いいたします
・お読みになった後は必ず保管してくださいますようお願いいたします。
言語編
ii
KSL series Robot Controller
SM-A20050
本 編 で は , K S シリーズで使用するロボット言語、SCOL言語の命令語とプログラムの
組み方について説明します。
SCOL言語(Symbolic Code Language for robot) は 、 ロ ボ ッ ト の 種 々 の 機 能 に 対 応 し た 命 令
語から構成されます。これらの命令語を使う事によりロボットの動作を簡潔にプログラムする
こ と が で き ま す
本編は、初めてロボットのプログラムを作成する方から、プログラミングに習熟した方まで
すべての方を対象に書いています。しかし、内容をロボット言語に限定しているため、コント
ローラTSシリズの概要及び操作方法については、下記の各編を参照してください。
本編の構成は、次の通りです。
「1.ロボット言語の概要」
こ こ で は 、ロ ボ ッ ト の 動 作 と ロ ボ ッ ト 言 語 の 関 係 、 及 び ロ ボ ッ ト 言 語 の 命 令 語 の 大 ま か な
機 能 に つ い て 説 明 し て い ま す 。 ロ ボ ッ ト 言 語 の 概 要 を 知 る 上 で も 、 必 ず 一 読 す る よ う お 願
いします。
「2.ロボット言語の書式」
ここでは、ロボット言語を用いてプログラムを作成する時の種々の規則について説明して
います。プログラムの作成前に必ず一読するようお願いします。
「 3 . 命 令 語 の 説 明 」
こ こ で は 、ロ ボ ッ ト 言 語 の 個 々 の 命 令 語 に つ い て 、そ の 詳 細 を 説 明 し て い ま す 。命 令 語 は 、
アルファベット順に記載していますので、プログラム作成時に参照してください
「 4 . プ ロ グ ラ ム 例 」
こ こ で は 、ロ ボ ッ ト 言 語 を 使 用 し た プ ロ グ ラ ム の 例 に つ い て 説 明 し て い ま す 。 ロ ボ ッ ト 言
語を使用してプログラムを作成する時の参考にしてください。
「5.プログラミング上の注意事項
こ こ で は 、 実 際 に プ ロ グ ラ ム を 作 成 す る 上 で の タ イ ミ ン グ 、 禁 止 事 項 、 及 び 注 意 事 項 に
い て 説 明 し て い ま す 。 プ ロ グ ラ ム の 作 成 前 に 一 読 し て お い て く だ さ い ま た 、 作 成 し た
ログラムがうまく動かない時にも本章を読み直してみてください。
言語編
iii
KSL series Robot Controller
SM-A20050
ロボット言語の概要 ····························································
ロボットの動作 ······························································
ロボット言語とは ····························································
命令語の種類 ································································
ロボット言語の書式 ····························································
.1 プログラムの構成 ····························································
2.1.1 ·····························································
2.1.2 プログラム ···························································
2.1.3 位置データ ···························································
使用できる文字 ······························································
······································································
変数と定数 ··································································
2.4.1 スカラ型データ ························································
2.4.2 ベクトル型データ ······················································
2.4.3 システム変数 ···························································
2.4.4 システム定数 ··························································
·······································································
2.5.1 ·······························································
2.5.2 ·······························································
······································································
注釈 ·······································································
プログラム ··································································
2.8.1 プログラムの宣言 ······················································
2.8.2 サブプログラム ························································
2.8.3 ライブラリ ···························································
2.8.4 マルチタスク処理 ·····················································
2.8.5 グローバル変数定義 ···················································
2.8.6 配列型変数 ···························································
命令語の説明 ··································································
命令語の記載書式 ····························································
命令語の説明 ··································································
プログラム例 ··································································
言語編
iv
KSL series Robot Controller
SM-A20050
プログラミング上の注意事項 ····················································
プログラム実行のタイミング ·················································· 5-1
5.1.1 アームの動作と信号入出力のタイミング ·································· 5-1
5.1.2 アーム動作とプログラム実行の同期 ·········································· 5-2
5.1.3 DELAY命令とWAIT命令 ·············································· 5-4
5.2 プログラミング上の禁止事項 ······················································· 5-6
5.2.1 変数 ······································································ 5-6
5.3 プログラミング上の注意 ··························································· 5-7
5.3.1 命令語の種類 ······························································ 5-7
5.3.2 ロボットの座標系 ·························································· 5-9
5.3.3 ショートカット動作 ························································ 5-14
5.3.4 ロボットの姿勢 ···························································· 5-19
5.3.5 データブロック ···························································· 5-20
5.3.6 グローバルデータブロック ·················································· 5-24
5.3.7 ロボットの動作速度 ························································ 5-26
5.3.8 ロボットの加減速度 ························································ 5-27
付録A 命令語一覧 ········································································· 6-1
予約語一覧 ········································································· 6-4
ライブラリファイル(SCOL.LIB) ·············································· 6-6
算術演算命令の計算範囲 ····························································· 6-10
記号の読み方 ······································································· 6-11
コンパイルエラー、コンパイルワーニングエラー ······································· 6-13
ダイナミックリンクライブラリ ······················································· 6-17
G.1 パレタイズライブラリ ······················································· 6-17
先読みを停止するSCOLプログラム言語について ····································· 6-24
言語編
1-1
KSL series Robot Controller
SM-A20050
第 1 章
ロボット言語の概要
本 章 で は 、ロ ボ ッ ト の 動 作 と ロ ボ ッ ト 言 語 の 関 係 及 び ロ ボ ッ ト 言 語 の 命 令 語 の 機 能 に つ い て 説
明します。
1.1 ロ ボ ッ ト の 動 作
ロボットは、人間が行う仕事を人間と同じように行います。例として、コンベア上を流れて
るワ-クに部品を取付ける作業を考えます。作業者は部品箱から部品を取出し、コンベア上を
流れてくるワ-クに取付けていきます。この作業を人間の代わりにロボットが行う場合を考え
る と 、 図 1.1 に 示 す よ う な 形 に な り ま す 。
1.1 でロボットは、パ-ツフィ-ダと呼ばれる部品供給装置から部品をつかみ、コンベア上
を 流 れ て く る ワ - ク の 所 定 位 置 に 部 品 を 取 付 け ま す 。 の 作 業 を ロ ボ ッ ト の 動 作 だ け で 考 え
と 、 1.2 に 示 す よ う な 形 に な り ま す 。ロ ボ ッ ト は 部 品 を つ か む 位 置 A の 真 上 の 位 置 B か ら 下
降 し て 、位 置 A で 部 品 を つ か み ま す 。部 品 を つ か む と 位 置 B ま で 上 昇 し て 、部 品 取 付 け 位 置 D
の 真 上 の 位 置 C ま で 移 動 し ま す 。位 置 C か ら ロ ボ ッ ト は そ の ま ま 下 降 し て 位 置 D で 部 品 を ワ
-クに取付けます。部品を取付け終わると、ロボットは位置Cを経由して位置Bに戻り、1回
の 作 業 を 終 了 し ま す 。
1.1 組 立 て 作 業
1.2 ロ ボ ッ ト の 動 作
D:部品取り付け位置
B:A の真上の位置
C:D の真上の位置
言語編
1-2
KSL series Robot Controller
SM-A20050
1.2 ロ ボ ッ ト 言 語 と は
ロボットは、組立て等の仕事を人間に代わって行います。しかし、ロボットに何を行うか
を 教 え る の は 人 間 の 仕 事 で す 。 ロ ボ ッ ト は 教 え ら れ た 仕 事 を 教 え ら れ た 通 り に 行 い ま す 。
ロボットに仕事を教える事を教示(ティ-チング)と呼びます。また、教示した内容に従
ってロボットが動作することを再生(プレイバック)と呼びます。このように教示した内
容どおりに動作するロボットを、プレイバックロボットと呼びます。
ロボットに仕事を教える方法として作業の順番通りにロボットを動かす方法があります。
塗装作業やスポット溶接に使われるロボットでは、人間が仕事を行う時と同じように、ロ
ボットを動かしてロボットに仕事を教えます。ロボットは教えられた通りの順番で動作し
て、与えられた仕事を行います。
しかし、より複雑な仕事を行うためには周辺機器の状態に応じてロボットの動作を変えて
いかなければなりません。前節に示した組立て作業の例でも、流れてくるワ-クの種類に
よって取付ける部品を変えたり、取付けにミスがあった時、再度取付けを繰返すような
業が考えられます。このような作業では、ロボットはその時の周辺に応じて動作を行わな
ければなりません。そこで「どういう時はどうする」、「こういう時にはこうする」とい
うようにロボットの動作を表す方法が考えられます。
ロボットの動作を記述する言語を、ロボット言語と呼びます。ロボットの行う作業はロボ
ット言語を用いて表したものをプログラムと呼び、プログラムを作成する作業をプログラ
ミングと呼びます。TSシリ-ズでは、ロボット言語として独自のSCOL言語(スコ-
ル: Symbolic Code Language for robot の 略 称 ) を 用 い て い ま す 。 前 節 の 組 立 て 作 業 の 例 を
SCOL言語を用いて表すと次のようになります。
PROGRAM A S S E M B L Y
M O V E 位 置 B へ 移 動 す
OPEN1 ロ ボ ッ ト の ハ ン ド 1 を 開 く
M O V E 位 置 A へ 移 動 す
C L O S E 1 ロボットのハンド1を閉じる
DELAY . 5 ロボットが部品をつかむまで0.5秒間待つ
M O V E 位 置 B へ 移 動 す
M O V E 位 置 C へ 移 動 す る
M O V E 位 置 D へ 移 動 す
OPEN1 ロ ボ ッ ト の ハ ン ド 1 を 開
DELAY . 5 ロボットが部品をはなすまで0.5秒間待つ
M O V E 位 置 C へ 移 動 す
M O V E 位 置 B へ 移 動 す
END
言語編
1-3
KSL series Robot Controller
SM-A20050
PROGRAM E N D ま で が 1 つ の プ ロ グ ラ ム に な り 、 こ の プ ロ グ ラ ム に は 、
“ A S S E M B L Y ”と い う 名 前 が 付 け ら れ て い ま す 。”M O V E A ”は 位 置 A に ロ ボ ッ ト
を 移 動 す る 事 を 表 し ま す 。O P E N 1 ”C L O S E 1 ”は そ れ ぞ れ ロ ボ ッ ト の ハ ン ド 1
を 開 く 、閉 じ る 事 を 表 し ま す 。D E L A Y 0 .5 ”は ロ ボ ッ ト の 動 作 を 0 .5 秒 間 停 止 す
る 事 を 表 し ま す 。ま た 位 置 A ,B ,C ,D は プ ロ グ ラ ム 作 成 と は 別 に ロ ボ ッ ト を そ の 位 置 ま で
誘 導 し て 教 示 し ま す 。
この様に、SCOL言語ではロボットの動作に対応した命令語を作業を行う順番に並べる事で、
ロボットの行う仕事を表す事ができます。
1.3 命 令 語 の 種 類
SCOL言語によりロボットの動作を表わせる事を説明しましたが、本節ではSCOL言語の
命令語の概要を説明します。
S C O L 言 語 に は 、“ M O VE A ”の よ う に ロ ボ ッ ト を 動 か す も の の 他 に も 、外 部 へ の 信 号
出 力 や 、作 業 の 繰 返 し を 指 定 す る も の 等 、様 々 な 命 令 語 が 含 ま れ ま す 。表 1 .1 に S C O L 言
語の機能の一覧表を示します。
SCOL言語の命令語は、大きく6種類に分けられます。
(1) 動 作 制 御 命 令
ロ ボ ッ ト の 本 体 を 動 か す 命 令 語 で す 。ロ ボ ッ ト を 一 定 時 間 停 止 し た り 、ロ ボ ッ ト の 動 作 を 中 断 、
再開する命令語も動作制御命令に含みます。特に、ロボット本体を動かす命令語を動作命令と
呼びます。
(2) プ ロ グ ラ ム 制 御 命 令
外部信号の状態によりプログラムの実行を分岐したり、作業の繰返しを指定する等のように、
プログラムの実行を制御する命令語です。
(3) 入 出 力 制 御 命 令
外 部 信 号 の 読 込 み 及 び 出 力 を 行 う 命 令 語 で す 。ハ ン ド の 開 閉 ,通 信 チ ャ ン ネ ル へ の デ - タ の 入
出力も入出力制御命令に含みます。
(4) 動 作 条 件 命 令
ロボットが動作する時の姿勢、速度等の条件を指定する命令語です。
(5) 算 術 演 算 命 令
平方根、三角関数等の演算を行う命令語です。
(6) 動 作 状 態 命 令
ロ ボ ッ ト の 動 き が 1 つ の 動 作 の 何 % ま で 動 い た か 等 の よ う に 、ロ ボ ッ ト の 動 作 状 態 を 参 照 す
命 令 語 で す 。プ ロ グ ラ ム 中 で 使 用 す る タ イ マ - の 設 定 、ロ ボ ッ ト の 運 転 モ - ド の 参 照 を 行 う 命
令 語 も 含 み ま す
こ れ ら の 命 令 語 は 他 の 命 令 語 と 組 合 わ せ て 、例 え ば 、ロ ボ ッ ト が 動 作 の 7 0 % ま で 動 い た 時 に
外部に信号を出力したり、ある動作を開始してから指定時間以内に動作が終了しなければ異常
と見なしてプログラム分岐したりするために用います。
言語編
1-4
KSL series Robot Controller
SM-A20050
これらの命令語を組合わせる事により、ロボットの目的に合った作業をプログラムする事がで
き ま す 。
1.1 S C O L 言 語 の 機 能
動 作 制 御
命令
(1) ロボットを動かす。
(2)ロボットを一定時間停止する。
(3)ロボットのハンドを動かす。
(4)ロボットの動作を中断・再開す
る。
MOVE,MOVES,
M O V E C , M O V E A
MOVEI,READY,MOVEJ
DELAY
OPEN1,OPENI1,
OPEN2,OPENI2,
CLOSE1,CLOSEI1,
CLOSE2,CLOSEI2,
B R E A K , P A U S E
R E S U M E
プログラム
制 御 命 令
(1)外部信号、タイマ-等の状態
を 監 視 す る 。
(2)プログラムの実行を制御する
( 3 ) プ ロ グ ラ ム の 注 釈
ON~DO~,IGNORE,
IF~THEN~ELSE,
W A I T , T I M E R
PROGRAM,END,GOTO
RCYCLE,RETURN,
F O R ~ T O ~ S T E P ~ N E X T ,
STOP,TASK,KILL,
S W I T C H ,T I D ,M A X T A S K
R E M A R K
入出力制御
命令
( 1 )外 部 信 号 の 読 込 み 、出 力 を 行 う 。
(2)通信デ-タの読込み、出力を
う。
DIN,DOUT,
P U L O U T , R E S E
B C D I N , B C D O U
PRINT,INPUT
言語編
1-5
KSL series Robot Controller
SM-A20050
動 作 条 件
命令
(1)ロボットが動作する時の条件
を 設 定 す る 。
CONFIG,ACCUR,
A C C E L , D E C E L
SPEED,PASS,
T O R Q U E , G A I N
ENABLE,
S E T G A I N
D I S A B L E
NOWAIT,
P A Y L O A D
FREELOAD,
SWITCH,
M O V E S Y N
パレタイズ
命令
(1)ライブラリロード
(2)パレットの初期化
(3)パレットの指定位置に移動
LOADLIB
INITPLT
MOVEPLT
算 術 演 算
命令
(1)実数の演算を行う。
(2)位 置 デ - タ 、 座 標 デ - タ の 演算
を 行 う 。
( 3 ) 配 列 を 扱
S I N , C O S , T A N
A S I N , A C O S ,
ATAN,ATAN2,
SQRT,ABS,SGN,
I N T , R E A L , L N
MOD,LOG10,EXP,
A N D , O R , N O T
H E R E , D E S T ,
POINT,TRANS
D I M , A S
動 作 状 態
命令
(1)ロボットの動作状態を調べる。
(2)システムの動作状態を調べる
(3)ロボットの各座標系を与える
MOTION,MOTIONT
REMAIN,REMAINT
MODE,CONT,CYCLE,
SEGMENT
TOOL,BASE,WORK
その他
(1)変数を定義する
(2)更新された変数値をプログラム
フ ァ イ ル に 戻 す
(3)電源遮断時にデータを保存す
る。
GLOBAL,DATA,END
RESTORE
SAVEEND
言語編
2-1
KSL series Robot Controller
SM-A20050
第2章
ロボット言語の書
第1章では、ロボット言語の概要について述べてきましたが本章では、ロボット言語でプログラムを
組む方法について説明します
2.1 プログラムの構成
本節では、SCOL言語でのプログラムの構成の概要について説明します。
2.1.1
ロボットが作業を行うためには、ロボット言語で書かれたプログラムとそのプログラム中で
使用する位置のデ-タが必要です。
TSシリ-ズでは、プログラムと位置デ-タの組がそれぞれの作業に必要になり、1つの作
業に対応したプログラムと位置デ-タのまとまりをファイルと呼びます。プログラムの実行、
編集は、このファイル単位で行います。
2.1.2 プログラム
ロボットが行う作業をロボット言語を使って表したものを、プログラムと呼びます。プログ
ラムの中から別のプログラムを呼出して使用する事もできます。使用頻度の高い動作や、あ
る程度まとまった動作は1つのプログラムとして用意しておき、必要な時にそのプログラム
を呼出す使い方ができます。このようなプログラムをサブプログラムと呼びます。これに対
してサブプログラムを呼出すプログラムをメインプログラムと呼びます。
1つのファイルには、複数のプログラムを記述する事ができます。プログラムの実行時に何
も指定が無ければ、ファイルの先頭に記述されたプログラムをメインプログラムとして実行
します。サブプログラムを呼出す時には、呼出されるサブプログラムもメインプログラムと
同じファイルになければなりません。また、つのファイルに複数のプログラムを書いても、
順番にすべてのファイルを実行していくわけではなく、プログラムの実行はメインプログ
ムの最後までが1つの実行単位となります。
また、プログラムはTASK命令を用いて同時に複数実行すること(マルチタスク実行)が
できます。マルチタスク実行の詳細については本編2. プログラムの項を参照して下さい。
プログラムの編集は、コントロ-ラのプログラムエディタ機能を用いてティ-チペンダント
から行います。エディタの使い方については、「操作編」を参照してください。
言語編
2-2
KSL series Robot Controller
SM-A20050
2.1.3 位置デ-タ
プログラムにて使用する位置デ-タは、その位置デ-タを使用するプログラムと同じファイ
ルに作成します。ファイル上に作成した位置デ-タは、そのファイルに存在する全てのプロ
グラムにて共通に使用します。異なるファイルの位置デ-タを使用する事はできません。
位置デ-タは、コントロ-ラのデ-タエディタ機能を用いて教示します。デ-タエディタの
使い方については、「操作編」を参照してください。
2.2 使用できる文字
SCOL言語では、英数字と特殊文字が使用できます。
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
´
これらの文字は、小文字を除いてすべてティ-チペンダントから入力可能です。ティ-チペンダ
ントからは小文字は入力できません。プログラムを実行する時には、大文字と小文字は区別され
ません。記号の読み方は付録Eを参照してくださ
2.3
SCOL言語中で命令語、プログラム名、変数名、及びプログラムの分岐先を指定するラベル名
はすべて識別子で表します。識別子は英字で始まる英数字で表します。長さには特に制限はあり
ませんが、実行時には先頭の10文字のみにて区別されます。大文字と小文字の区別は行いませ
ん。また、識別子の中に特殊記号やスペ-スを用いる事はできません
識別子と識別子の区切りには特殊記号かスペ-スを用います。
例) TOSHIBAROB
toshibarob
TOSHIBAROBOT
上記の3つの識別子は、すべて“TOSHIBAROB”と見なされます。
言語編
2-3
KSL series Robot Controller
SM-A20050
SCOL言語で既に使用されている識別子は、別の用途で使用することはできません。このよう
な識別子には、SCOL言語の命令語の他に、システムで特別に使用するものや、今後の拡張用
に予約されている識別子も含みます。付録BにSCOL言語の予約語を示しますので参照してく
同一名称の識別子を異なる意味で用いないでください。例えば、プログラムを作成する場合に、
プログラム名と変数名に同じ識別子を用いるような使い方はしないでください。
2.4
変数と定数は、扱うデ-タの内容によって分けて考えます。それをデ-タ型と呼び、SCOL言
語ではスカラ型(整数型、実数型、及び文字列)とベクトル型(位置型、座標型、及び負荷型)
を使用できます。変数はまた、定義の方法によってグローバル変数と、オート変数に分けられま
GLOBAL~ENDで囲まれた部分で定義された変数をグロー
バル変数と呼び、これらはプログラム中のどこからでも参照や変更することが出来ます。またグローバル変
数では、全てのデータ型に対して配列を宣言することも出来ます。グローバル変数や配列の説明は、
2.8.5を参照してください。
全てのデータはコントローラ内の作業領域に展開されますが明示的に初期化を設定していない配列変数を
除いてグローバル変数はプログラムの実行を始める時に定義した値となっていることが保証されます。しか
しプログラム中で変数に値を代入しても作業領域が変更されるだけで、コントローラの電源を落としたり
実行ファイルの選択をやりなおしたり、ファイルの編集作業を行った場合には、ファイル内に保存されてい
る変数の初期値で作業領域を再設定する為、変更した内容は失われます。教示済みのデータに対する変更も
同様です。ファイルのデータ自体を書き換えるには、プログラムでRESTORE命令を実行する必要があ
ります。
2.4.1 スカラ型デ-タ
スカラ型デ-タには、整数型、実数型、及び文字列の3種類があります。スカラ型オート変
数は宣言されたプログラムの中でのみ使用できます。よって、他のプログラムで同一名称の
変数を使用していたとしてもその内容は一致しません。プログラムからプログラムへとデ-
タを渡す場合は、スカラ型グローバル変数として定義し直すか、プログラムにて引数を宣言
するようにします。詳細は、「2.8 プログラム」を参照してください。
(1)
(a) 定数
-2147483648 +2147483647 の範囲の整数を扱うことができ
す。プログラム中で整数を定数として使用するときは、正の数場合は直接数値を、負の数
の場合は-の符号に続けて数値を記述します。NPUT命令で11桁以上を入力するとエ
言語編
2-4
KSL series Robot Controller
SM-A20050
例)
(b) 変数
変数は識別子により区別されます。扱う数値は定数の場合と同じです。変数のデ-タ型は
その変数に最初に代入する数値のデ-タ型によって決まります。すなわち、最初に代入する
デ-タが整数型の時はその変数は整数型となります。整数型の変数に実数を代入する場合に
は、実数の小数点以下を切捨てた値が整数値として代入されます。
変数にはプログラム全体で有効な変数(グローバル変数)とプログラムの一部で有効な一般の変数があ
ります。グローバル変数はプログラムのどこからでも変更することができます。
(c)
プログラムの中で条件判断を行う場合には、論理値が用いられます。入力信号の状態を読込
む命令語(DIN)や、論理式は、実行結果として論理値を返します。論理値は真、偽の2
つの値を持ちます。内部的には整数型のデータとして扱われ真は1に、偽は0になります。
注) 実際には式の値が0ならば偽,0以外ならば真と判断しています。
(2)
SCOL言語では、数値は特別な場合を除いて実数の形で扱います。
(a) 定数
数値の絶対値が 約 5 . 87 ×1 0 -39 (2-127 × 38((23 × 106
囲の実数を扱うことができます。仮数部の有効数字は10進数で約7桁です。
(223の精度です。)許される桁数は整数部9桁小数部3桁です。INPUT命でこの桁
数以上の数値が入力されるとエラーになります。
プログラム中に実数を使用する時は、正の数の場合は直接数値を、負の数の場合は-の符号
に続けて数値を記述します。また、小数部が0の時の小数部は省略可能です。ただし、小数
点を省略すると整数型のデ-タと見なされます。整数部は省略できませんので、数値の絶対
値が1未満の時でも整数部には0を指定してください。
例) 1234.567
0.00985
1234567.
-369.
言語編
2-5
KSL series Robot Controller
SM-A20050
小数点以下の数値を設定する場合には、実行結果の精度が限られるため、以下に示す最小設
定単位を目安にしてください
位置 0.001 mm 単位
角度 0.001 単位
時間 単位
単位
質量 kg
慣性
(b) 変数
変数は識別子により区別されます。扱う数値は定数の場合と同じです。変数のデータ型は
その変数に最初に代入する数値のデータ型によって決まります。すなわち、最初に代入する
データが実数型の場合には、その変数は実数型となります。
(3)
文字列は、定数のみが使用可能で、1つ以上の文字を「”」で囲って表します。
例) ”SCOL MESSAGE”
2.4.2 ベクトル型デ-タ
スカラ型デ-タは、1つの要素しか持たないのに対して、ベクトル型デ-タは、1つのデー
タに複数の要素を持っています。ベクトル型データには位置型、座標型、及び負荷型の3種
類があります。
ベクトル型のデータは1~5個の要素を で囲んで表すことができます。位置型、座標型、
および負荷型の他に、TORQUEやGAIN命令でも、ータは }で
のデータで指定します。
データエディタで教示したデータ等のベクトル型グローバル変数以外のベクトル型デ―タは、
コントロ―ラの作業領域に一時的に作成され、ファイルの中には作成されません。このよう
なベクトル型変数は、宣言されたプログラムの中でのみ使用できます。よって他のプログラ
ムで同一名称の変数を使用していたとしてもその内容は一致しません。プログラムからプロ
グラムへとデ―タを渡す場合は、ベクトル型グローバル変数として定義し直すか、要素に分
解して引数として受渡すようにします。引数については「2.8.2 サブプログラム」を参照して
言語編
2-6
KSL series Robot Controller
SM-A20050
(1)
位置型デ-タは、ロボットの位置デ-タとして使用されます。位置型デ-タの構成は、次の通
, , 姿
X,Y,Z,C,T X、Y、Z、C、T 各座標値で、実数値をとります。
(mm,deg 単位)
姿 0~2の整数値でロボットの姿勢を表します。
0・・・フリ-(姿勢未定義)
1・・・左肩系
2・・・右肩系
(2)
座標型デ-タは、ロボットの座標系を指定するために使用されます。座標型デ-タの構成は、
次の通りです。
X,Y,Z,C X、Y、Z、C の各座標値で、実数値をとります。
(mm,deg 単位)
座標型デ-タによりロボットの座標系は、図2.1に示すように変換されます。元の座標系
、Y 、Z 、座 タ( ,y ,zc)に 、そ 沿 、x 、y
zの量だけ平行移動されます平行移動された座標系の原点O´を中心にZ軸の回りにcだけ
回転した座標系X´,Y´Z´が新しい座標系になります。
言語編
2-7
KSL series Robot Controller
SM-A20050
2.1 座標系の変換
(3)
負荷型デ-タは、ハンド部分(エンドエフェクタ部分)を含めた、ロボットの手先にかかる
負荷を定義するものです。負荷型デ-タの構成は、次の通りです。
{<質量>,<重心オフセット>}
<質 量> ロボットの手先にかかる負荷の質量です。(kg
<重心オフセット> ロボットの手先にかかる負荷の重心が、手先のツ―ル中心からど
れだけ離れているかの量です。(㎜ 単位)
Z
X
Y
Z
X
Y
O
O
x
y
z
a
b
c
言語編
2-8
KSL series Robot Controller
SM-A20050
2.4.3 シス
SCOL言語では、ボットが動作する時の条件や、ステムの状態をプログラム上で指定、
参照するために特別な変数を用意しています。れらの変数をまとめてシステム変数と呼び
ます。システム変数は、通常の変数と同じように代入や参照が可能です。しかし、代入によ
りシステム変数の設定を変えることは、ロボットの動作条件を変えることになりますので
十分に注意してください。システム変数の一覧表を、表2.1に示します。
2.1. システム変数一覧
デ-タ型
PAYLOAD
ロボットの姿勢
加速時の加速度
減速時の加速度
速度
ショートカット
各軸最大トルク
ロボットの負荷
タスク番号
簡易PLC I/F
簡易PLC I/F
0~
0~
0、
1~
0~65535
0~65535
100
100
100
100
300
整数型
整数型
整数型
整数型
整数型
整数型
ベクトル型
ベクトル型
座標型
座標型
座標型
実数型
整数型
負荷型
整数型
整数型
整数型
整数型
注)maxの値はシステム毎に設定されます。
動作制御に関するシステム変数の内容を更新した場合には、の効果はその後の動作から影
響し、実行中の動作には影響しません。システム変数の効果は、システム変数を再設定す
まで持続します。ただし、WITH節を用いることにより1つの動作命令に対してだけ、一
時的にシステム変数の値を設定することができます。
例) O V E A1
言語編
2-9
KSL series Robot Controller
SM-A20050
また、システム変数への代入を行うときには有効範囲のチェックは行いません。実行時に設
定値が有効範囲外の時には、システムは次の規則に従って値を設定します。
・最小値以下の値を設定しようとした場合には、最小値が設定されます。
・最大値以上の値を設定しようとした場合には、最大値が設定されます。
各システム変数の詳細な使い方は、3章を参照してください。
2.4.4
SCOL言語では、プログラムを読み易くするために、表2.2に示すシステム定数を用意
しています。これらの定数は、数値の代わりにプログラム中に記述する事ができます。しか
し、プログラムが見づらくなるため、表2.2のコメントに示した箇所以外では使用しない
2.2 システム定数一覧表
名前
(使用する箇所)
POINT命令
ON
SETGAIN命令
SEGMENT
言語編
2-10
KSL series Robot Controller
SM-A20050
2.5
本節では、SCOL言語にて代入、演算、判定に使用する式について説明します。
SCOL言語で、式は単独で代入、演算を行う他に、命令の中に記述して使うこともできます
式の中には演算結果を変数に代入する演算式や、大小、真偽の判定を行う論理式があります。
演算子としては以下に示すものが使用できます。なお0/0と0^0の実行結果は、エラーと
ならずそれぞれ-1,0になりますのでご注意ください。
2.3 演算子一覧表
種類
演算
算術
+ , -
負号
剰余
代入
-A
A*B,A/B
A+B,A-B
MOD B(AをBで割った余り)
(B
関係
==
小さいか等しい
大きいか等しい
A<>B,A><B
A<=B,A=<B
A>=B,A=>B
論理
OR
否定
AND
OR
関数
C O S
T A N
正弦
余弦
正接
ASIN(A)
ACOS(A)
/