JP3040958B2 - モーションコントローラのモーション制御方法 - Google Patents

モーションコントローラのモーション制御方法

Info

Publication number
JP3040958B2
JP3040958B2 JP9029858A JP2985897A JP3040958B2 JP 3040958 B2 JP3040958 B2 JP 3040958B2 JP 9029858 A JP9029858 A JP 9029858A JP 2985897 A JP2985897 A JP 2985897A JP 3040958 B2 JP3040958 B2 JP 3040958B2
Authority
JP
Japan
Prior art keywords
movement command
command
flag
index
distribution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP9029858A
Other languages
English (en)
Other versions
JPH10214108A (ja
Inventor
謙太郎 藤林
雄策 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FANUC Corp
Original Assignee
FANUC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FANUC Corp filed Critical FANUC Corp
Priority to JP9029858A priority Critical patent/JP3040958B2/ja
Publication of JPH10214108A publication Critical patent/JPH10214108A/ja
Application granted granted Critical
Publication of JP3040958B2 publication Critical patent/JP3040958B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Numerical Control (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、数値制御装置等の
モーションコントローラのモーション制御方法に関す
る。
【0002】
【従来の技術】工作機械の送り軸モータを制御する数値
制御装置(CNC装置)などのモーションコントローラ
においては、プログラムされた移動指令を各軸毎に分配
し、プログラムされた移動経路どおりに工具等の制御点
を移動させる。この場合、通常、プログラムされた指令
を前処理して各軸毎の実行移動指令データとなるバイナ
リデータに変換し、このバイナリデータに基づいて各軸
のサーボモータ制御回路にこの移動指令を出力し、各軸
を駆動するサーボモータ等を駆動制御している。
【0003】しかし、高速で複雑な形状を加工する場
合、上記前処理が間に合わず、各軸への移動指令の分配
ができずに加工を瞬時停止するうような場合が生じる。
このような不具合を避けるために、予め移動指令を前処
理し各軸への分配データであるバイナリデータを登録し
ておき、このバイナリデータをそのまま各軸へ出力する
バイナリ運転が採用されている。
【0004】
【発明が解決しようとする課題】上記バイナリ運転中に
おいて、非常停止やリセット入力、さらにはフィールド
ホールド指令によって運転の中断を行なうと、バイナリ
データによって駆動されていたモータは急停止し、機械
は大きなショックを発生する。またフィールドホールド
指令によって停止した運転を再開するときには、バイナ
リ運転の途中の状態から運転が再開されることになるか
ら、記憶しているバイナリデータの分配指令がそのまま
各軸のモータに出力され、モータは急加速され大きなシ
ョックを機械に与える。
【0005】このショックが発生しないようにするに
は、中断・再開時に移動指令に対して加減速処理を行な
って、モータの回転を滑らかに減速、加速することによ
って可動部の移動を滑らかにする必要がある。そこで、
本発明の目的は、モーションコントローラのバイナリ運
転中の運転中断、再開時において、制御装置のプロセッ
サに大きな負担をかけることなく、加減速処理を行なう
モーションコントローラのモーション制御方法を提供す
ることにある。
【0006】
【課題を解決するための手段】本発明は、モーションコ
ントローラにバイナリ運転時の加減速時間を移動指令の
分配周期の数で予め設定しておき、バイナリ運転途中で
運転停止信号が生じると、上記加減速時間として設定し
た分配周期の数でバイナリデータとして記憶している各
分配周期毎の移動指令を分割し、分配周期毎分割した1
個の移動指令だけ順次少なくなるように、運転停止信号
が発生した移動指令の分から移動指令として出力し減速
する。また、一時停止した後、運転を再開する際には、
上記分割した移動指令の次の1個の分割移動指令から分
配周期毎分割移動量単位で1個ずつ加算して移動指令と
して出力し加速する。
【0007】特に上記加減速時間として設定した分配周
期の数を2の累乗の値にすることによって移動指令の分
割を容易にする。すなわち、該分配周期の数を2とす
れば、上記移動指令を上記分配周期の数で分割する際
に、分配移動指令としてバイナリデータで記憶されてい
るレジスタをn回シフトすることによってこの移動指令
を2個に分割することができ、演算が簡単になる。
【0008】
【発明の実施の形態】以下、図面を参照して本発明の一
実施形態として、モーションコントローラの一種である
工作機械を制御するCNC装置に本発明を適用した例を
説明する。図1はNC工作機械を駆動制御するCNC装
置10の要部を示す機能ブロック図である。CNC装置
10のプロセッサ11はCNC装置10を全体的に制御
するプロセッサである。このプロセッサ11は、ROM
12に格納されたシステムプログラムをバス19を介し
て読み出し、このシステムプログラムに従って、CNC
装置10を全体的に制御する。RAM13には一時的な
計算データや表示データおよびキーボード71を介して
オペレータが入力した各種データ等が格納される。CM
OSメモリ14は図示しないバッテリでバックアップさ
れ、CNC装置10の電源がオフにされても記憶状態が
保持される不揮発性メモリとして構成され、インターフ
ェイス15を介して読込まれた加工プログラムや表示装
置70、キーボード71を介して入力された加工プログ
ラム等が記憶されるようになっている。また、ROM1
2には、加工プログラムの作成および編集のために必要
とされる編集モードの処理や自動運転のための処理を実
施するための各種のシステムプログラムが予め書き込ま
れている。
【0009】インターフェイス15は、CNC装置10
に接続可能な外部機器のためのインターフェイスであ
り、フロッピーカセットアダプタ等の外部機器72が接
続される。外部機器72からは加工プログラム等が読み
込まれ、また、CNC装置10内で編集された加工プロ
グラムを外部機器72を介してフロッピーカセット等に
記憶させることができる。
【0010】PMC(プログラマブル・マシン・コント
ローラ)16は、CNC装置100に内蔵されたシーケ
ンスプログラムで工作機械側の補助装置、例えば、工具
交換用のロボットハンド等といったアクチュエータを制
御する。即ち、加工プログラムで指令されたM機能,S
機能およびT機能に従って、これらシーケンスプログラ
ムで補助装置側で必要な信号に変換し、I/Oユニット
17から補助装置側に出力する。この出力信号により各
種アクチュエータ等の補助装置が作動する。また、工作
機械の本体に配備された操作盤の各種スイッチ等の信号
を受け、必要な処理をして、プロセッサ11に渡す。
【0011】工作機械の送り軸X,Y,Z軸の軸制御回
路30〜32はプロセッサ11から分配周期毎に出力さ
れる各軸の移動指令を受けて、位置、速度ループ処理を
行なってトルク指令をサーボアンプ40〜42に出力す
る。サーボアンプ40〜42はこの指令を受けて、工作
機械の各軸のサーボモータ50〜52を駆動する。各軸
のサーボモータ50〜52には位置・速度検出器が内蔵
されており、この位置・速度検出器から位置,速度フィ
ードバック信号が軸制御回路30〜32にフィードバッ
クされる。図1ではこれらの位置信号のフィードバック
および速度のフィードバックの説明は省略している。
【0012】スピンドル制御回路60は工作機械への主
軸回転指令を受け、スピンドルアンプ61にスピンドル
速度信号を出力する。スピンドルアンプ61はこのスピ
ンドル速度信号を受けて、主軸モータ62を指令された
回転速度で回転させる。主軸モータ62には歯車あるい
はベルト等でポジションコーダ63が結合され、該ポジ
ションコーダ63が主軸の回転に同期して帰還パルスを
出力し、その帰還パルスはインターフェイス18を経由
してプロセッサ11によって読み取られる。
【0013】上述したCNC装置の構成は従来の送り軸
3軸のCNC装置と何等相違するものはない。また、送
り軸が3軸よりも多いCNC装置においても本発明は適
用できるものであり、このCNC装置がバイナリ運転を
行なっている途中において、、非常停止信号(指令)、
リセット指令、フィールドホールド指令等が入力もしく
は発生し、運転を中断する際に、減速処理を行なって運
転を停止する処理をプロセッサ11が行なうこと、及び
フィールドホールド指令で運転を停止した後再開指令に
よってバイナリ運転を一時停止した位置から再開始する
時に加速処理を行なって運転を再開する点が相違するも
のである。
【0014】まず、この実施形態におけるバイナリ運転
時の加減速処理を説明すると、加減速時間を分配周期の
整数倍とし、その数Nを予め設定しておく。そして、減
速を行なう場合、各分配周期毎のバイナリデータの移動
量を上記Nで割りN個の分割移動量とし、そして減速開
始の最初の分配周期では、この分割した移動量の最初の
(N−1)個を合計した移動量を出力し、次の分配周期
では、次に続く(N−2)個の分割移動量を合計した移
動量を出力する以下、順次分配周期毎に(N−3)個、
(N−4)個、…、2個,1個と出力するものである。
また、加速時は、逆に1個、2個、…(N−1)個を出
力するものである。これにより分配周期N周期目に加減
速が完了する。
【0015】例えば、N=4で、図5(a)に示すよう
に、減速開始の分配周期の移動指令がx1 、次の周期が
x2 、さらに次の周期がx3 、以後x4 、x5 …であっ
たとする。そうすると減速開始の分配周期では図5
(b)に示す(3x1 /4)が出力され、次の周期では
[(x1 /4)+(x2 /4)]が出力され、次の周期
では(x2 /4)が出力されることになる。このように
してN=4周期目には移動指令が「0」となり4周期で
減速されることになる。また、一時停止後に引き続いて
加速する時は、図5(c)に示すように、分配周期毎順
次(x2 /4)、[(x2 /4)+(x3 /4)]、
(3x3 /4)を出力しN=4周期目からは次の移動指
令x4 をそのまま出力するようになる。
【0016】図2〜図4は、プロセッサ11が分配周期
毎に実施する処理のフローチャートであり、特にバイナ
リ運転中における中断処理、再開処理を主にした処理の
フローチャートである。
【0017】まず、加工NCプログラムは、インタフェ
ース15を介してフロッピーカセットアダプタ等の外部
機器72から読み込まれCMOSメモリ14に格納され
ているとする。そして、該加工NCプログラムには一部
バイナリデータで各軸への分配移動指令が記憶されてい
るものとする。
【0018】運転が開始されると、プロセッサ11は分
配周期毎図2〜図4の処理を開始し、CMOSメモリ1
4に記憶された加工NCプログラムの先頭ブロックより
読みだし、バイナリ運転の命令か判断し(ステップS
1)、バイナリ運転指令であれば、フラグBINPREP 、BI
NST を「1」に、BINADSR 、BINACDC を「0」にセット
し(ステップS2)、ステップS3に進む。なお、上記
各フラグ及び後述するフラグは初期設定で最初は「0」
にセットされている。また、バイナリ運転指令でなけれ
ばステップS2の処理を行なわずステップS3に進む。
ステップS3ではフラグBINPREP が「1」か否かでバイ
ナリ運転中かを判断し、該フラグBINPREPが「0」でバ
イナリ運転中でなけれは、従来と同様の通常の処理を行
ない(ステップS19)、各軸への移動指令Lを求め、
各軸を駆動する各サーボモータの軸制御回路30〜32
へ該移動指令Lを出力し(ステップS18)、当該分配
周期の処理を終了する。バイナリ指令が読み込まれなけ
れば、上述したステップS1,S3、S19、S18の
処理を繰り返し実行し、従来と同様の分配処理を行な
う。
【0019】一方ステップS1でバイナリ運転指令が読
まれ、ステップS2で上述したように各種フラグがセッ
トされ、ステップS3でフラグBINPREP が「1」でバイ
ナリ運転中と判断されると、フラグBINST が「1」でバ
イナリ運転の開始かを判断し(ステップS4)、最初は
ステップS2で「1」にセットされているから、ステッ
プS5に移行してバイナリ運転のための指標j,kを
「0」にセットすると共にフラグBINST を「0」にセッ
トする(ステップS5、S6)。
【0020】そして、一時運転を停止させるフィードホ
ールド信号が有るか、リセット信号、非常停止信号が有
るか判断し(ステップS7,S8)、これらの信号が発
生していなければ、フラグBINACDC が「3」または
「1」にセットされているか判断する(ステップS
9)。最初は、このフラグBINACDC はステップS2で
「0」にセットされているから、ステップS17に進
み、バイナリ分配処理を行なう。
【0021】このバイナリ分配処理は図3、図4に示す
処理である。まず、フラグBINACDCの値を判断する(ス
テップSB1)。この場合、該フラグBINACDC はステッ
プS2で「0」にセットされたままであるから、ステッ
プSB24に移行して当該ブロックのバイナリデータx
j(指標jはステップS5でバイナリ運転開始時に
「0」にセットされているから「0」から始まる)を読
みだし、移動指令Lとしてレジスタに格納し、指標jを
「1」インクリメントする(ステップSB25)。そし
て、指標jがバイナリデータの総数P以上に達したかに
よってバイナリ運転終了か否かを判断し(ステップSB
34)、バイナリ運転を終了していなければ、バイナリ
分配処理を終了しメインルーチンに復帰する。メインル
ーチンではレジスタに記憶された移動量Lを各軸のサー
ボモータの軸制御回路30〜32へ出力し(ステップS
18)、当該分配周期の処理を終了する。
【0022】次の分配周期では、フラグBINPREP が
「1」フラグBINST が「0」、フラグBINACDC が「0」
にセットされているから、ステップS1、S3、S4と
進み、ステップS4からステップS5,S6の処理を行
なうことなくステップS7に進む。フィードホールド信
号、リセット信号、非常停止信号が発生していなけれ
ば、ステップS8、S9、SB1、SB24、SB2
5、SB34、S18の処理を行なってバイナリデータ
による移動指令を各軸のサーボモータの軸制御回路30
〜32に出力する。以下、フィードホールド信号、リセ
ット信号、非常停止信号が発生しない限り、分配周期
毎、ステップS1、S3、S4、S7〜S9、SB1、
SB24、SB25、SB34、S18の処理を繰り返
し実行し、バイナリデータによる移動指令を各軸のサー
ボモータの軸制御回路30〜32に出力する。
【0023】一方、このバイナリ運転中に、フィードホ
ールド信号が発生するか、リセット信号もしくは非常停
止信号が発生すると、それを検出しプロセッサ11はス
テップS7、もしくはステップS8からステップS10
に移行して、フラグBINACDCが「3」であるか判断す
る。フラグBINACDC は「0」にセットされたままである
から、ステップS11に移行して該フラグBINACDC を
「2」にセットし、フラグBINADST が「2」か否か判断
する。このフラグBINADST はステップS2で「0」にセ
ットされているから、ステップS13に進んで該フラグ
BINADST を「1」にセットし、バイナリ分配処理(ステ
ップS17)に移行する。
【0024】バイナリ分配処理では、フラグBINACDC が
減速中を示す「2」にセットされているからステップS
B1からステップSB2に移行し、さらにバイナリ運転
中における加減速開始を示すフラグBINADST が「1」か
判断し、この場合、ステップS13で「1」にセットさ
れているから、ステップSB3に移行してバイナリ運転
中における加減速期間の周期を計数する指標iを「1」
にセットし、フラグBINADST を「2」にセットし(ステ
ップSB4)、フラグBINACDC が加速中を示す「1」に
セットされているか、減速中を示す「2」にセットされ
ているか判断する(ステップSB5)。現時点において
は、ステップS11でフラグBINACDC は「2」とセット
され減速中を示している(フィードホールドの信号によ
って減速停止実行中)ので、減速処理を開始することに
なる。ステップSB5以下の処理が加減速処理である
が、まず、この加減速処理について一般的に説明する。
【0025】フラグBINACDC が「2」で減速中を示して
いるときには、加減速の移動量を算出するためのパラメ
ータtempの値を指標iから指標kの値を減算して求める
(temp=i−k)(ステップSB7)。また、フラグBI
NACDC が「1」で加速中であると、ステップSB6に移
行し上記パラメータtempを設定されている加減速周期数
N(予め加減速時間を分配周期の数Nで設定しておく)
から指標i、kを減じて求める(temp=N−i−k)。
【0026】そして、該パラメータtempの値が、「正」
か、「0」か、「負」か判断し(ステップSB8)、正
であれば、ステップSB9、「0」であればステップS
B14、負であればステップSB20に進む。パラメー
タtempの値が正であるときは指標jで示されるブロック
の移動指令xjを読み取り(ステップSB9)、フラグ
BINACDC を判断し(ステップSB10)、「1」で加速
中のときには、読み取った移動指令xjと指標iの値よ
り次の第1式の演算を行なって移動指令Lを求める(ス
テップSB11)。
【0027】 L=i・xj /N …(1) また、フラグBINACDC が「2」で減速中のときには、次
の第2式の演算を行なって移動指令Lを求める(ステッ
プSB12)。
【0028】 L=(N−i)・xj/N …(2) そして、指標kに(N−temp)の値をセットして(ステ
ップSB13)(ステップSB26に移行する。
【0029】また、パラメータtempの値が「0」のとき
には、指標jで示されるブロックの移動指令xjを読み
取り(ステップSB14)、フラグBINACDC を判断し
(ステップSB15)、「1」で加速中のときには上記
第1式の演算を行ない移動指令Lを求め(ステップSB
16)、フラグBINACDC が「2」で減速中のときには、
上記第2式の演算を行ない移動指令Lを求め(ステップ
SB17)、指標kを「0」指標jを「1」インクリメ
ントし(ステップSB18、SB19)、ステップSB
26に移行する。
【0030】さらに、パラメータtempの値が「負」のと
きには、指標jの値、及びこの指標jの次の値(j+
1)で示されるブロックの移動指令xj、xj+1 を読み
取り(ステップSB20)、次の3式の演算を行なって
移動指令Lを求める(ステップSB21)。
【0031】 L=[(N−k)・xj/N]−temp・xj+1 /N …(3) そして、指標kを「−temp」に設定し、指標jを「1」
インクリメントし(ステップSB22,SB23)、ス
テップSB26へ移行する。
【0032】ステップSB26では指標iを「1」イン
クリメントし該指標iが加減速時間の設定周期数N以上
か判断し(ステップSB27)、以上でなければ(ステ
ップSB34に移行してバイナリ運転が終了していなけ
れば、メインルーチンに戻り、算出した移動指令Lをサ
ーボモータに出力して当該周期の処理を終了する。
【0033】そこで、加減速時間を決める設定分配周期
の数Nを「4」として、上記加減速処理を説明する。ま
た、バイナリ運転の各ブロックの移動指令が例えば図6
(a)に示すものとし、例えば指標jが「10」でxj
=x10の移動指令を出力しようとする時に、フィードホ
ールド信号が発生するか、リセット信号もしくは非常停
止信号が発生した(ステップS7,S8)とする。
【0034】その時、前述したように、フラグBINACDC
が「2」、フラグBINADST が「1」に設定され(ステッ
プS10〜S13)、ステップSB1に移行して、さら
にステップSB2〜SB4によって指標iが「1」に設
定させると共にBINADST が「2」に設定されている点は
前述したとおりである。そして、ステップSB5で、フ
ラグBINACDC が「2」で減速中と判断されると、パラメ
ータtempには、i−k=1−0=1がセットされる(ス
テップSB7)。なお、指標iはバイナリ運転加減速開
始時にステップSB3で「1」に、指標kはバイナリ運
転開始時にステップSB5で「0」に設定されている。
temp=1で「正」であるから、ステップSB9に移行し
てブロックの移動指令xj=x10をよむ。なお、指標j
はバイナリ運転開始時にステップS5で「0」にセット
され、該指標jで示されるブロックの移動指令xjが出
力される毎に「1」インクリメンタルされており(ステ
ップSB24,SB25参照)、上述したようにj=1
0の時にフィードホールド信号が発生するか、リセット
信号もしくは非常停止信号が発生したとしているから移
動指令xj=x10が読み込まれる。
【0035】そしてフラグBINACDC が「2」であるから
ステップSB10からステップSB12に移行して、上
記第2式にN=4、i=1、xj =x10、を代入し移動
指令Lを求める。
【0036】L=(N−i)・xj/N=(4−1)・
x10/4=(3/4)・x10 次に指標kをk=3(N−temp=4−1=3)とし(ス
テップSB13)、指標iを「1」インクリメントし
「2」とし(ステップSB26)、この指標iの値がN
=4以上か判断し、以上ではないからステップSB34
に移行して、さらにバイナリ運転が終了しているか判断
し、終了していないので、メインルーチンに戻り、ステ
ップS18でステップSB12で求めた移動指令L=
(3/4)x10を出力する。
【0037】次の周期では、ステップS1、S3、S4
の処理をしてステップS7もしくはステップS8からス
テップS10に移行し、フラグBINACDC は「2」に設定
されたままであり、フラグBINADST はステップSB4で
「2」に設定されているからステップS10,S11,
S12の処理を行なった後バイナリ分配処理(ステップ
S17)に移行して、ステップSB1,SB2,SB
5,SB7に移行する。ステップSB7では、指標i=
2で、指標k=3であるから、パラメータtemp=2−3
=−1となる。temp=−1で負であるので、ステップS
B8からステップSB20に移行し、移動指令xj=x
10及び次の移動指令xj+1 を読み(なお、指標jはイン
クリメントされておらず前の「10」のままである)、
第3式の演算を行ない移動指令Lを求める(ステップS
B21)。
【0038】 L=[(N−k)・xj/N]−temp・xj+1 /N =[(4−3)・x10/4]+1・x11/4 =(1/4)・x10+(1/4)・x11 次に指標k=−temp=1とし、指標jを「1」インクリ
メントし、j=11とし(ステップSB22,SB2
3)、指標iを「1」インクリメントし、i=3とする
(ステップSB26)。指標i=3で、N=4以上では
ないから、ステップSB34に移行し、バイナリ運転が
終了していなければ、メインルーチンに戻り、ステップ
SB21で求めた上記移動指令Lを出力する(ステップ
S18)。
【0039】次の周期では同様に、ステップS1,S
3,S4,S7もしくはS8,S10,S11,S1
2,SB1,SB2,SB5,SB7と処理し、指標i
=3、指標k=1であるからtemp=3−1=2で正であ
るから、ステップSB8からSB9に移行して、移動指
令xj=x11を読みだし、上記第2式より移動指令Lを
求める(ステップSB10,SB12)。
【0040】L=(N−i)・xj/N=(4−3)・
x11/4=(1/4)・x11 そして指標kをk=N−temp=4−2=2とし(ステッ
プSB13)、指標iを「1」インクリメントして(ス
テップSB26)、i=4とする。その結果指標iがN
=4以上となるから、ステップSB28に移行し、フラ
グBINACDC が「2」か否か判断し、この場合「2」であ
るから、ステップSB29に移行して、非常停止もしく
はリセット信号があるかを判断する。そして非常停止も
しくはリセット信号があれば、フラグBINPREP を
「0」、フラグBINACDC ,BINADST を「0」にセットし
バイナリ運転の加減速処理を終了し(ステップSB3
0,SB31)、ステップSB34に移行してバイナリ
運転終了かを指標jがバイナリデータの総数P以上かに
よって判断し、終了していなければ、メインルーチンに
戻りステップSB13で求めた上記移動指令L=(1/
4)・x11を出力する(ステップS18)。
【0041】次の周期では、ステップS1からステップ
S3に進み、フラグBINPREP が「0」にセットされてい
るからステップS19に進んで通常の処理を行なう。こ
の場合、リセットもしくは非常停止中であるから、移動
指令Lは求められずL=0であり、サーボモータの軸制
御回路30〜32への出力は「0」となる(ステップS
18)。以後、各周期毎ステップS1,S3,S19,
S18の処理を繰り返し、サーボモータの軸制御回路3
0〜32への出力は「0」で駆動されることはない。
【0042】一方、ステップSB29で、非常停止もし
くはリセット信号が検出されないとき(フィードホール
ド信号の発生時)は、フラグBINACDC を「3」、フラグ
BINADST を「0」にセットし(ステップSB32,SB
33)、バイナリ運転終了かを判断し(ステップSB3
4)、終了でなければ、メインルーチンに戻りステップ
SB13で求めた上記移動指令L=(1/4)・x11を
出力する(ステップS18)。そして、次の周期から
は、ステップS1,S3、S4、S7,S10、S17
と移行し、ステップS17のバイナリ分配処理では、ス
テップSB1からステップSB36に移行して移動指令
Lを「0」としてメインルーチンに戻り、この「0」の
移動指令Lをサーボモータの軸制御回路30〜32に出
力する(ステップS18)。その結果モータは駆動され
ず、機械は停止状態にある。
【0043】以上の通り、バイナリ運転中に非常停止、
リセットまたはフードホールド信号が発生すると、加減
速時間を決める周期数Nが4であると、出力しようとし
た移動指令をx10、次の移動指令をx11とすると、移動
指令Lは、 減速開始の1周期目の移動指令L =(3/4)・x10 減速開始から2周期目の移動指令L=(1/4)・x10
+(1/4)・x11 減速開始から3周期目の移動指令L=(1/4)・x11 減速開始から4周期以降の移動指令L=0 となる。図6(a)に示した例で、x10/4=a、x11
/4=b、x12/4=cとすると、図6(b)に示すよ
うに、減速開始の1周期目に「3a」が出力され2周期
目に「a+b」が出力され3周期目に「b」が出力され
ることになる。その結果、移動指令x11の半分(2b)
を出力した状態で停止することになる。
【0044】以上のようにして減速されて停止するか
ら、図7に示すように、x10の移動指令がABで、x11
の移動指令がBC、x12の移動指令がCDであったと
き、実際の移動はab、bc、cdとなり、移動経路誤
差は小さなものとなる。
【0045】フードホールド信号の発生で、上述したよ
うに減速して停止し、ステップS1,S3,S4,S
7,S10,SB1,SB36,S18の処理を繰り返
し実行し、機械を停止した状態にあるとき、フィードホ
ールド信号が停止されフィードホールド状態がとかれる
と、ステップS7からステップS8、S9に移行し、ス
テップS9でフラグBINACDC が「1」又は「3」か判断
され、このフラグはフードホールド信号により減速停止
したときには、ステップSB32で「3」にセットされ
ているから、ステップS14に移行して、フラグBINACD
C を「1」にセットし、フラグBINADST が「2」否か判
断し(ステップS15)、このフラグBINADST はステッ
プSB33で「0」にセットされているから、ステップ
S16に移行して該フラグBINADST を「1」にセットす
る。
【0046】そして、バイナリ分配処理に移行し、フラ
グBINACDC が「1」、フラグBINADST が「1」であるか
ら、ステップSB1、SB2からステップSB3に移行
して指標iを「1」にセットし、フラグBINADST を
「2」にセットする(ステップSB4)。次にステップ
SB5に移行してフラグBINACDC の値により加速中か減
速中かを判断するが、この場合ステップS14で、該フ
ラグBINACDC は「1」にセットされ加速中を示すから、
ステップSB6に移行してパラメータtempを求める。前
述した例でN=4で、フィードホールドにより減速停止
したとき、指標kは「2」、指標jは「11」で終わっ
ている。そこで、 temp=N−i−k=4−1−2=1 temp=1で「正」であるから、ステップSB8からステ
ップSB9に進み移動指令xj=x11を読み、フラグBI
NACDC は「1」で有り加速中であるので、ステップSB
10からステップSB11に進み上記第1式の演算を行
なって移動指令Lを求める。
【0047】 L=i・xj/N=1・x11/4=(1/4)・x11 そして、指標kをk=N−temp=4−1=3にセットし
(ステップSB13)、指標iを「1」インクリメント
して「2」とし(ステップSB26)、前述したステッ
プSB27、SB34,S18の処理を行ない、求めた
移動指令Lをサーボモータに出力する。
【0048】次の周期では、ステップS1,S3,S
4,S7,S8,S9に進み、フラグBINACDC は「1」
であるから、ステップS14、S15と進み、フラグBI
NADSTはステップSB4で、「2」セットされているか
ら、バイナリ分配処理へ移行しステップSB1、SB
2,SB5、SB6と進む。ステップSB6では、i=
2、k=3であるから、パラメータtemp=N−i−k=
4−2−3=−1であり、負で有るから、ステップSB
8からステップSB20に移行し移動指令xj=x11、
xj+1 =x12をメモリから読みだし、上記第3式の演算
を行なって移動指令Lを求める(ステップSB21)。
【0049】 L=[(N−k)・xj/N]−temp・xj+1 /N =[(4−3)・x11/4]+1・x12/4 =(1/4)・x11+(1/4)・x12 そして、指標kをk=−temp=1、指標jをインクリメ
ントして「12」とし(ステップSB22,SB2
3)、さらに指標iをインクリメントして「3」とし
(ステップSB26)、以下前述したステップSB2
7,SB34,S18の処理を行ない上記移動指令Lを
サーボモータの軸制御回路30〜32へ出力する。
【0050】次の周期では、ステップS1,S3,S
4,S7,S8,S9,S14,S15,SB1,SB
2,SB5,SB6の処理を行ない、ステップSB6で
は、temp=N−i−k=4−3−1=0を求め、temp=
0であるからステップSB14に移行して、メモリより
xj =x12を読みだし、フラグBINACDC は「1」である
から第1式の演算を行なって移動指令Lを求める(ステ
ップSB15,SB16)。 L=i・xj/N=3・x12/4=(3/4)・x12 そして、指標kを「0」とし、指標jを「1」インクリ
メントしてj=13とし、(ステップSB18,SB1
9)、さらに指標iを「1」インクリメントして「4」
とする(ステップSB26)。その結果ステップSB2
7で指標iがN=4以上であることが判断されるから、
ステップSB28に移行して、フラグBINACDC が「1」
で「2」ではないからステップS31へ進み、フラグBI
NACDC 、BINADST を共に「0」とし、前述したステップ
SB34,S18の処理を行ない上記求めた移動指令L
をサーボモータの軸制御回路30〜32に出力する。
【0051】次の周期からは、ステップS1,S3,S
4,S7,S8,S9と進み、フラグBINACDC は「0」
で、「1」でも「3」でもないので、ステップS17の
バイナリ分配処理に進み、バイナリ分配処理では、フラ
グBINACDC が「0」であるからステップSB1からステ
ップSB24に進んで、指標j(=13)で示される移
動指令xj(=x13)をメモリから読みだし移動指令L
とし、かつ該指標jを「1」インクリメントし(ステッ
プSB25)、指標jの値がバイナリデータの数P以上
になったかを判断し(ステップSB34)、P以上でな
ければ、上記移動指令L=xjをサーボモータの軸制御
回路30〜32に出力する(ステップS18)。以下こ
の処理を各周期毎繰り返すことになる。その結果、加速
処理を終えたx13から順次各周期毎、x14、x15…とサ
ーボモータに移動指令が出力される通常のバイナリ運転
の処理がなされる。
【0052】その結果、図6(c)に示すように、加速
開始の1周期目に「b」、2周期目に「b+c」、3周
期目に「3c」が出力され、減速処理によって残ってい
た移動指令x11の半分(2b)と次の周期の移動指令x
12(=4c)によって加速処理が行なわれ、加速が完了
した段階で次の移動指令x13以降が順次出力されること
になる。
【0053】そして、ステップSB34でj≧Pとなり
バイナリ運転が終了すると、フラグBINPREP を「0」に
セットする。その結果、次の周期からは、ステップS
1,S3,S19,S18と処理され通常の処理の運転
となる。
【0054】指標jが「10」で、移動指令x11を出力
しようとするときにフィードホールド信号が発生し、減
速し停止した後、フィードホールド信号が解除され加速
してバイナリ運転が再開されるときの指標、移動指令等
の変化状態を、加減速時間を規定するNが「4」のとき
を表1に、N=5のときを表2に示す。なお、非常停
止、リセット信号による停止の場合は、上記減速停止の
みの指標、移動指令等の変化状態となる。
【0055】なお、上記加減速時間として設定する分配
周期の数Nを2の累乗2として設定すれば、分配周期
毎の移動指令xjをこの数Nで割る第1〜第3式の演算
を行なうステップSB11,SB12,SB16,SB
17,SB21の処理が簡単となる。すなわち、移動指
令xjはバイナリデータとして記憶されているから、こ
の移動指令xjをレジスタに格納し、下位方向にn回シ
フトすれば、移動指令xjはNで割られたことになり、
割り算が、レジスタのシフト処理だけですみ処理が簡単
になる。
【0056】
【表1】
【0057】
【表2】
【0058】
【発明の効果】本発明は、バイナリ運転を行なっている
ときに、運転途中で停止しても、減速処理して停止させ
るから、機械に大きなショックを発生させない。また、
この運転途中で中断した運転を再開する際も加速処理し
て駆動するから、運転再開時にも機械に大きなショック
を発生させない。さらに、加減速処理に伴う経路誤差も
小さくすることができる。
【図面の簡単な説明】
【図1】本発明を適用した一実施形態のCNC制御装置
のブロック図である。
【図2】同実施形態におけるプロセッサが実行する分配
周期毎の処理のフローチャートである。
【図3】図2におけるフローチャートにおけるバイナリ
分配処理のフローチャートである。
【図4】図2の続きのフローチャートである。
【図5】本発明の加減速処理の一例の説明図である。
【図6】本発明の一実施形態における加減速処理の一例
の説明図である。
【図7】バイナリ運転に対して本発明の加減速処理を行
なったときの指令経路と実際の経路の説明図である。
【符号の説明】
10 数値制御装置(CNC装置) 11 プロセッサ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G05B 19/19 G05B 19/416

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数の制御軸を制御するモーションコン
    トローラであって、分配周期毎の各軸への移動指令を予
    め直接各軸に指令できるバイナリデータとして登録し
    て、該バイナリデータによって機械を駆動制御するバイ
    ナリ運転におけるモーションコントローラのモーション
    制御方法において、予め加減速時間を移動指令の分配周
    期の数で設定しておき、バイナリ運転途中で運転停止信
    号が生じると、上記加減速時間として設定した分配周期
    の数でバイナリデータとして記憶している各分配周期毎
    の移動指令を分割し、分配周期毎分割した1個の移動指
    令だけ順次少なくなるように、運転停止信号が発生した
    移動指令の分から移動指令として出力し減速するモーシ
    ョンコントローラのモーション制御方法。
  2. 【請求項2】 一時停止した後、運転を再開する際に
    は、上記分割した移動指令の次の1個の分割移動指令か
    ら、分配周期毎順次分割移動量単位で1個ずつ加算して
    移動指令として出力し加速する請求項1記載のモーショ
    ンコントローラのモーション制御方法。
  3. 【請求項3】 上記加減速時間として設定した分配周期
    の数は2の累乗である請求項1又は請求項2記載のモー
    ションコントローラのモーション制御方法。
JP9029858A 1997-01-30 1997-01-30 モーションコントローラのモーション制御方法 Expired - Fee Related JP3040958B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9029858A JP3040958B2 (ja) 1997-01-30 1997-01-30 モーションコントローラのモーション制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9029858A JP3040958B2 (ja) 1997-01-30 1997-01-30 モーションコントローラのモーション制御方法

Publications (2)

Publication Number Publication Date
JPH10214108A JPH10214108A (ja) 1998-08-11
JP3040958B2 true JP3040958B2 (ja) 2000-05-15

Family

ID=12287675

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9029858A Expired - Fee Related JP3040958B2 (ja) 1997-01-30 1997-01-30 モーションコントローラのモーション制御方法

Country Status (1)

Country Link
JP (1) JP3040958B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001260061A (ja) 2000-03-15 2001-09-25 Kawasaki Heavy Ind Ltd ロボットの再起動方法
DE102004023848A1 (de) * 2004-05-13 2005-12-08 Siemens Ag Datenträger mit einer auf dem Datenträger gespeicherten Steuerdatei für eine Steuereinrichtung für eine Maschine und hiermit zusammenhängende Verfahren und Einrichtung
CN104508580B (zh) 2012-07-17 2016-08-24 三菱电机株式会社 数控装置以及数控系统
CN113805531B (zh) * 2021-09-22 2023-03-21 格致汽车科技股份有限公司 一种用于数控机床的全自动无人值守预警方法

Also Published As

Publication number Publication date
JPH10214108A (ja) 1998-08-11

Similar Documents

Publication Publication Date Title
JP3671020B2 (ja) 数値制御装置
US9310799B2 (en) Numerical controller having function of operation based on table format data
CN111123841B (zh) 数值控制装置
EP0230471B1 (en) Manual operation system for machine controlled by numerical control unit
WO1989006066A1 (en) Method of speed control for servomotor
JP3040958B2 (ja) モーションコントローラのモーション制御方法
JP2006004275A (ja) 数値制御装置
CN105320075B (zh) 具有重叠控制的速度控制功能的数值控制装置
JPH06222819A (ja) Nc装置の加工プログラム実行方法
JPH11143519A (ja) 数値制御における加減速制御方法および数値制御装置
JPH09212227A (ja) 数値制御装置によって制御され運転される機械における運転情報設定方法
US10048677B2 (en) Numerical controller that shortens cycle time of machining program
EP0146633A1 (en) Numerical control system
JPH02220107A (ja) テスト運転制御方式
JP4116640B2 (ja) 多系統制御機能を有する数値制御装置
JP2008269483A (ja) 数値制御装置
EP0930554A1 (en) Method of conversion of robot teaching program
US4458326A (en) Method and apparatus for circular interpolation
JPH10301614A (ja) 数値制御装置
JP3046177B2 (ja) 加減速制御装置
JP2544654B2 (ja) 電動式射出成形機の射出制御方式
JP7415093B1 (ja) 制御装置及びコンピュータ読み取り可能な記録媒体
JPH06738A (ja) 工具交換方法
JP6997131B2 (ja) 数値制御装置
JP2868527B2 (ja) 数値制御装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000215

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080303

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090303

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees