６. 動作プログラムの処理と各種運転方法
６−１. 動作プログラムの編集
ＰＬＭＣ−４０の動作プログラムはＰＣ(パソコン)にて作成し、ＰＣ内で「プリ解析処理」をおこない、
ＰＬＭＣ−４０ へダウンロードします。また、アップロードして、読み出すこともできます。

ｾｯﾃｨﾝｸﾞPCｿﾌﾄ

ﾃｸﾉｺｰﾄﾞﾌﾟﾛｸﾞﾗﾑ

ﾌｧｲﾙ読出し(ﾃｷｽﾄﾌｧｲﾙ)

ﾌｧｲﾙ書込み

ﾌﾟﾘ解析
処理①書込み(ﾀﾞｳﾝﾛｰﾄﾞ)

動作プロ
NO.1

逆変換

②読出し(ｱｯﾌﾟﾛｰﾄﾞ)

動作プロ
NO.2

市販ｴﾃﾞｨﾀｰにて編集も可能
編集操作
ﾃｨｰﾁﾝｸﾞ
ﾄﾚｰｽ運転なども含む

重要

PLMC‑40本体

ｾｯﾃｨﾝｸﾞPC「ﾌﾟﾛｸﾞﾗﾑ設定画面」
による編集
ＰＬＭＣ標準
言語

動作プロ
NO.12

□通常ﾌﾟﾛｸﾞﾗﾑ□ その他のタスク
BG
ALM
RESET EXIT
割込み

ＦＡ‑Ｍ３のダイナミックローディング
ＰＣで作成したデータ（運転プログラム、パラメタなど）をＦＡ‑Ｍ３に転送（ＣＦ又は通信）し、その後でＦＡ‑Ｍ３からＩＯオープンを経由してＰＬＭＣ−４０へローディングできます。

運転プログラムの最大ステップ数
選 択
３本仕様
６本仕様
１２本仕様
ＤＮＣ機能

最大ステップ数
９９９ステップ
４９９ステップ
２４９ステップ
無 限

ＤＮＣ無効時プログラム３本
プログラム６本
プログラム１２本

ＤＮＣ有効時プログラム２本
プログラム４本
プログラム８本

機能編

TB00‑0810F.jtd‑F1

６−２. 動作プログラムの事例
動作プログラムは、ユーザ殿にて作成していただくもので、文字形式という意味で「テキストプログラム」とも呼びます。
このようなテキストプログラムの詳細仕様については、６項「動作プログラム詳細」を参照下さい。
（１）動作プログラム例・１
プログラム運転では、ステップの各軸の移動と、入／出力の制御を同時に制御できます。
軸の移動と出力信号の様子を示します。
① ＬＩＮ
Ｘ３０００ Ｙ２０００② ＰＴＰ
Ｘ３０００ Ｙ２０００

Ｆ１０００
ＷＮＲ０

ＯＮＲ０
ＯＦＲ０

ＯＦＲ１
ＯＮＲ１

3000
速度Fx＝1000×30002+20002＝ 832pps
速度Fy＝1000×

2000
30002+20002＝ 555pps

ＷＮＲ０＝

Ｒ０入力がＯＮするまで待つ

機能編

TB00‑0810F.jtd‑F2

（２）動作プログラム例・２ｽﾃｯﾌﾟNO.
1
2

各ステップ
PTPA
X0 Y0；PTPA
X1000 Y500

3
4

TIM0.5；CALL SUB15
6
7

PTPA X1500 Y1000
OFR05 OFR01；
END；
SUB1：
CIRR X0 Y0 I100
END；

8
n ※1

WR01

ONR01；

JNR02；
TIM1.0；J0F1000；

どの位置にいても論理座標の(0,0)へ移動
入力01が ONの間停止OFFしたら、出力01をONして(1000,500)へ移動
0.5秒停止入力02＝ONなら、SUB1をCALL。入力02=0FFなら何もせず次へ(1500,1000)へ移動し、トータル１秒となるまで停止
出力 05,01を OFF
動作プログラム終了
サブルーチン名称ラベル(ｽﾃｯﾌﾟNO.は付きません)
円弧動作(ﾌﾟﾘ解析処理により複数ｽﾃｯﾌﾟに分割されます)
サブルーチンEND※１ 円弧精度によりステップNO.は変わります。

１行の動作をステップと呼びます。
ＰＬＭＣ−４０内部では各行に、ステップNO.がつけられます。(プログラム編集時には付けません)（３）動作プログラム例・３
巻線機の「からげ動作」や組立・実装における「はめ込み動作」など、緻密で、なめらか、かつ高速な動作を要求される場合があります。
このような場合は、各軸の移動(速度)のタイミングチャートを作成して、プログラミングする方法を推奨します。
補間時定数の設定により、速度変化部分の丸み具合は変わります。
PTP
LIN
LIN
LIN

X L1
X L2
X L3

Y L4
Y L5
Y L6

F
F
F

パス動作によりステップ間はなめらかに連続

機能編

TB00‑0810F.jtd‑F3

６−３. 自動運転におけるステップ動作
６−３−１. 自動運転
ＰＬＭＣ−４０内には、複数の運転プログラムを保存できます。
自動運転モードにおいて、動作プログラムのＮＯ.を指定して起動することで、その動作プログラムの各ステップを順番に実行していきます。
停止の条件

ａ.

通常の停止

運転プログラム終了
リセット入力ｂ.

途中停止(再開可)

ストップ入力ｃ.

ステップ間停止

シングル でシングルステップモードにすると１ステップ実行した所で停止します。

ｄ.

強制終了

汎用入力条件で、EXITが成立したとき。
ＥＲ□□
ＥＮＲ□□

ｅ.

アラーム停止アラームが発生した時(停止＆サーボオフ)

６−３−２. シングル運転(順行)「自動運転モード」で シングルステップモードの時に、スタート入力するたびに、１ステップづつ実行します。
停止の条件は、連続運転と同様です。

６−３−３. ステップ間停止
シングル運転で、１ステップを完了して停止している状態です。
逆行操作やティーチング操作は、ステップ間停止の時に可能です。
６−３−４. ステップ途中停止
そのステップの途中で停止している状態です。

n+1○

停止操作では、一般的にステップ途中停止

ｎ

になります

○

n :ステップNO.
:ステップ間停止○:ステップ途中停止
逆行

６−３−５. 逆行(ステップ逆行)
移動命令(PTP,LIN)に対しては、逆行動作が可能です。(他の命令ではできません)

機能編

TB00‑0810F.jtd‑F4

６−４. プリ解析処理｢テクノコード｣ ｢Ｇコード｣とも動作プログラムは、ＰＣ側(ＰＣ通信ライブラリー)にて解析をおこない、
中間言語レベルの特殊コードとなって ＰＬＭＣ−４０へローディングされます。
ＰＣ│

ＰＬＭＣ−４０内│

テクノコード
プログラム
又は
Ｇコード
プログラム

プリ解析
処理

動作プログラム

ＰＬＭＣ−４０へダウンロード│(ＰＬＭＣ−４０標準中間言語)
──

──

逆変換
ＰＬＭＣ−４０からアップロード(ＰＣ通信ライブラリー)【プリ解析処理の機能と特徴】
ａ. フォーマットエラーのチェック

ＰＬＭＣ−４０へローディングする前に、動作プログラムの
文法上のミスを発見できます。

ｂ. 中間言語(バイナリーコード)
への展開

ＰＬＭＣ−４０の標準的なフォーマットに変換されます。
これにより、Ｔコード／Ｇコード／他のコード各々の表現形式の違いは吸収されて、統一されます。

ｃ. プリ解加減速

直線補間や円弧補間に対して、加減速の指定ができます。

ｄ. 円弧補間の直線分解

円弧指令を、微少な直線指令の連続に展開します。
円弧精度を指定することにより、分割の度合いが異なります。

ｅ. 特殊指令への対応(専用化対応)直線補間や円弧補間以外の指令方式に対しても、
比較的柔軟に対応できます。

ｆ. ＰＬＭＣ内部処理の負荷軽減

ＰＬＭＣ内で処理しやすい形式に変換します。

【プリ解円弧補間の問題点】
プリ解析は、「プリ解円弧によるステップ数の増大」という問題点を持っています。詳細は,
補足資料１を参照下さい。
プリ解
円弧補間命令(１本)処理【解決する手段】
ａ. 円弧精度を荒くする。
ｂ. 円弧命令の使用を制限する。
ｃ. ＤＮＣ運転方式にする。

直線補間命令(数10〜数100本)

欠点

メモリー容量による制限
ローディング時間の増大(１，１０，１００)
ＰＬＭＣ−４０の動作プログラムステップ数(２４９､４９９､９９９ｽﾃｯﾌﾟ)に応じて使用する。
ＤＮＣ方式では、メモリー容量の制限はありません。
非常に有効な手段です。

ｄ．内部円弧にする

機能編

TB00‑0810F.jtd‑F5

６−５. ＤＮＣ(Ｄirect ＮＣ)方式＜オプション＞

ＤＮＣ方式では、ＰＣ側で処理された動作プログラムをＰＬＭＣ−４０へ転送しながら、実動作をおこなう方式です。またセッティングＰＣ上で現在実行しているプログラムのステップ
番号を表示することができます。
Ｐ Ｌ ＭＣ−４ ０

Ｐ Ｌ ＭＣ−４ ０

ＰＬＭＣ−４０内バッファーメモリー ６４ＫＢ
重要

ＦＡ‑Ｍ３のダイナミックローディング
ＰＣで作成したデータ（運転プログラム、パラメタなど）をＦＡ‑Ｍ３に転送（ＣＦ又は通信）し、その後でＦＡ‑Ｍ３からＩＯオープンを経由してＰＬＭＣ−４０へローディングできます。
この方法により、ＤＮＣ運転も可能です。

【ＤＮＣ方式の特徴】
ａ. 動作プログラムのトータルのステップ数に制限はありません。
ｂ. ＰＬＭＣ−４０内のバッファーメモリーに蓄積しながら運転することにより、データ通信が瞬間的に止まったり、遅くなっても問題ありません。
ｃ. プリ解析、データ通信、実動作が同時進行することで、解析 → 実行までの待ち時間を最短にできます。
ｄ. 特にﾊﾞｽ接続による超高速ＤＮＣは、金型や光学系の連続微小ブロック加工に最適です。

【ＤＮＣ方式の注意点】
ａ. 一般にＰＬＭＣ−４０内でサブルーチンコールをすることは不可です。
ｂ. スタンドアロンのＰＬＭＣ−４０においても、ＰＣが常時必要となります。
ｃ. ＲＳ‑２３２方式では、送信時間の影響から連続微小ステップの処理時間(ブロック処理時間)が数10msec／ステップに制限されます。

機能編

TB00‑0810F.jtd‑F6

◆

１．４

６−６. 単独コマンド運転
ＰＣ側アプリケーションから、位置決め／補間命令／入出力命令などの単独コマンドを発行して動作させます。
画像処理と組み合わせたアライメント装置や、インプロセス計測による移動指令の修正などをおこなうシステムに有効な方法です。
単独コマンドとメモリ‑運転やＤＮＣ運転を組み合わせれば、ユーザアプリにおいて、
スケジュール機能が実現できます。

当社提供のライブラリーソフト【ＰＣ通信ライブラリーの使い方の例】［ユーザソフト］
プログラム運転

コマンド運転

データ送信■ 動作プログラム書込み

プログラムNO.を指定して保存

動作指示(ｺﾏﾝﾄﾞ)■ 実行プログラム選択

プログラムNO.を選択■ プログラム実行開始

運転スタート■ 原点復帰原点復帰動作を実行■ ＰＴＰ位置決め

位置決め動作(1軸〜4軸)■ 補間指令直線補間動作(1軸〜4軸)指定された出力信号のON/OFF

動作指示(ｺﾏﾝﾄﾞ)■ 出力直接制御
状態監視［ＰＬＭＣ−４０]

データ通信■ ポジションステータス
読出し
各軸位置(指令、機械)
その他内部ステータス■ 入出力状態読出し
現在の全入出力信号のON/OFF情報

機能編

TB00‑0810F.jtd‑F7

補足資料１. 円弧プリ解析処理(ステップ数／処理時間)
・ステップ数(変換後の直線ステップ数)。
Ｎ =
COS

−１

θ
r−α
r

≒ k･
×2

ｒ
α

θ： 円弧の移動角度[rad]ｒ： 円弧の半径[pls]
α： 円弧の精度[pls]

・ステップ数の概算手法
ｒ=10000、 α=10 の時 Ｎ=72 (１円周の時)
Ｎはｒのルートに比例し、αのルートに反比例する
1
ｒが半分(1/2)の時、Ｎ=72×= 51
2
αが５倍の時、

1

Ｎ=72×

= 33

５

・実際の変換とその所要時間
ｒ

α

10000

50000

1000002 ﾊﾟﾙｽ5 ﾊﾟﾙｽ

10 ﾊﾟﾙｽｽﾃｯﾌﾟ数

159

101

72

処理時間

0.79msec

0.54msec

ｽﾃｯﾌﾟ数

353

224

処理時間

1.60msec

1.04msec

ｽﾃｯﾌﾟ数

498

316

処理時間

2.25msec

1.42msec

θ= 360゜ (１周円)0.39msec

処理時間(msec)

・PC‑AT

AMD DURON/ 1GHZA

159
0.78msec
224
1.04msec※ 上記は一周円の場合なので、半円ではこの半分、1/4円では1/4となります。

補足資料２. プリ解円弧精度と送り速度上限値の関係
円弧補間において、その半径とプリ解円弧精度の指定によって送り速度の上限値が決まります。（次式）
送り速度上限値[pps]=２×ｒ×ｓｉｎ ｃｏｓ−１
ｒ ：円弧の半径[pls]α ：円弧の精度[pls]
ＲＴＣ：制御周期 [msec]

ｒ−α
ｒ

×

１０００
ＲＴＣ

※標準は４msecですが、高速なシステムでは、
２msecの場合があります

プリ解円弧精度と半径による飽和速度[KPPS]の関係表−１（制御周期８msec時）
円弧
半
径
精度 1000 2000 5000 10000 20000
1 11.2 15.8 25.0 35.4 50.0
2 15.8 22.4 35.4 50.0 70.7
3 19.4 27.4 43.3 61.2 86.6
4 22.3 31.6 50.0 70.7 100.0
5 25.0 35.3 55.9 79.0 111.8
6 27.3 38.7 61.2 86.6 122.5
7 29.5 41.8 66.1 93.5 132.3
8 31.6 44.7 70.7 100.0 141.4
9 33.5 47.4 75.0 106.0 150.0
10 35.3 49.9 79.0 111.8 158.1

プリ解円弧精度と半径による飽和速度[KPPS]の関係表−２（制御周期８msec時）
円弧
半
径
精度 1000 2000 5000 10000 20000
10 35.3 49.9 79.0 111.8 158.1
20 49.7 70.5 111.7 158.0 223.6
30 60.8 86.3 136.7 193.5 273.8
40 70.0 99.5 157.8 223.4 316.1
50 78.1 111.1 176.3 249.7 353.3
60 85.3 121.6 193.1 273.5 387.0
70 91.9 131.1 208.4 295.3 418.0
80 98.0 140.0 222.7 315.6 446.8
90 103.7 148.3 236.1 334.7 473.8
100 109.0 156.1 248.7 352.7 499.4

機能編

TB00‑0810F.jtd‑F8

７. 動作プログラム詳細
７−１. 動作指令(命令)７−１−１. テクノコード指令一覧
指令ｸﾞﾙｰﾌﾟ
ｸﾞﾙｰﾌﾟ１

指令
ＰＴＰ
ＰＴＰＡ
ａ ＰＴＰＢ
ＬＩＮ
ＬＩＮＡ
ＬＩＮＢ
ＳＬＩＮ
ＰＴＭＡ
ＣＩＲＲ

名称
インクレ位置決め
論理座標系アブソ位置決め
機械座標系アブソ位置決め
インクレ直線補間
論理座標系アブソ直線補間
機械座標系アブソ直線補間
センサーラッチ直線補間
ポイント位置決め
インクレ円弧補間（ＣＷ：右回り）
ＣＩＲＬ
インクレ円弧補間（ＣＣＷ：左回り）
ＣＩＲＲＡ 論理座標系アブソ円弧補間※１（ＣＷ：右回り）
ＣＩＲＬＡ 論理座標系アブソ円弧補間※１（ＣＣＷ：左回り）
ＴＵＲＮ
接線制御
ＳＰＩＮ
無限回軸軸回転動作
ＴＨＳＥＴ 工具長補正有効
ＴＨＯＦＦ 工具長補正キャンセル
ＣＡＬＬ
サブルーチンコール
ＪＭＰ
ジャンプ
ｂ ＰＲＧ
ｽﾚｰﾌﾞﾌﾟﾛｸﾞﾗﾑ起動
ＩＦ
ＥＬＳＥ
条件判断
ＥＮＤＩＦ
−
マクロ命令
ＳＴＮＥ
接線制御有効ＳＴＮＤ
接線制御無効ｃ ＣＳＥＴ
論理座標ｾｯﾄｱｯﾌﾟ
ＥＮＤ
プログラム終了
ＩＮＰＥ
ｲﾝﾎﾟｽﾞﾁｪｯｸ有効
ＩＮＰＤ
ｲﾝﾎﾟｽﾞﾁｪｯｸ無効ｸﾞﾙｰﾌﾟ２
ＴＩＭ
タイマー
ＴＭ
ＭＯＵＴ
Ｍコード出力ｸﾞﾙｰﾌﾟ３
ＯＮＲ
汎用出力ＯＮ
ＯＦＲ
汎用出力ＯＦＦ□□Ｒ
汎用入力制御付加データ
軸指定(ｲﾝｸﾚ量)、 ＯＶＲ：オーバーライド
軸指定(論理座標)、ＯＶＲ：オーバーライド
軸指定(機械座標)、ＯＶＲ：オーバーライド
軸指定(ｲﾝｸﾚ量)、 Ｆ：送り速度軸指定(論理座標)、Ｆ：送り速度軸指定(機械座標)、Ｆ：送り速度軸指定(ｲﾝｸﾚ量)、 Ｆ：送り速度
Ｐ：ポイント番号 ＯＶＲ：オーバーライド
軸指定(ｲﾝｸﾚ量)：２軸〜３軸指定します。
中心座標を指定した２軸で円弧補間３軸目を指定すると円弧に同期して移動
中心座標/半径指定：７−２−１を参照下さい。
軸指定(アブソ量)：２軸〜３軸指定します。
中心座標を指定した２軸で円弧補間３軸目を指定すると円弧に同期して移動
中心座標/半径指定：７−２−１を参照下さい。
詳細は機能説明を参照してください。
軸指定(回転数：0.1rpm)
補正テーブル番号※２※２
ラベル、Ｌ：回数
ラベル
プログラム番号
計算文−−
計算文
詳細は機能説明を参照してください。
詳細は機能説明を参照してください。
軸指定(論理座標)−−−
数値：0.1秒単位
数値：RTC周期単位(2ms〜8ms)
数値（0〜255）
数値（0〜45）：出力ＢＩＴ指定
数値（0〜45）：出力ＢＩＴ指定
数値（0〜48）：入力ＢＩＴ指定
Ｅ：ＥＸＩＴ (強制終了)
Ｊ：スキップ (ｽﾃｯﾌﾟ途中終了による飛はし)なし/ＮＷ：ウェイト (待ち)E､J､W､S
Ｓ：ストップ (停止)
Ｎ：負論理指定−ＰＮＴ
ポイント定義軸指定(論理座標)：
ラベル定義
最大１３文字の文字列−/* ･･･*/ コメント"/*" ＋ 文字列 ＋ "*/"
・グループ１は１ステップ内での複数指定は出来ません。
・グループ２、３はグループ１と同一ステップでの指定が可能です。
ただし、以下の制限があります。
・汎用入出力制御、ＴＩＭ/ＴＭをグループ１ｃと同時に指定した場合、無視されます。
・汎用入出力制御をグループ１ｂと同時に指定した場合、Ｗ/Ｓは無視されます。
・グループ３は同一ステップで最大４点までの指定が可能です。
※１ プリ解円弧方式では不可。
※２ 座標の補正は、汎用入力にかかわらず、必ず実行されます。
汎用入力制御は摩耗補正時の軸移動にだけききます。

機能編

TB00‑0810F.jtd‑F9

７−１−２. 指令フォーマット
指令コード

※

付加データ１ｽﾍﾟｰｽ(20H)又はﾀﾌﾞ(08H)
付加データ２・・・・；

ｾﾐｺﾛﾝ(3BH)
Ｇコードでは、区切りとしてスペース／タブが基本ですが、省略も可能です。
(テクノコードでは、省略不可)◆1.3
７−１−３ サンプル運転プログラム
運転プログラムのサンプルを別資料で紹介します。
「サンプル運転プログラム説明書」 ＴＢ０４−０４２２
この資料は、テクノＨＰの会員コーナからダウンロードできます。
テクノコードプログラム作成例
PTPA X0 Y0 Z0 A0 TIM0.5 WR01 ONR02 ONR12 OFR14;CALL SUBPROC;
TIM1.0;PTPA X100 Y100 Z100 A100 TIM0.5 JR15 WR00 ONR02 OFR10;
CALL SUBPROC;
TIM1.0;
CIRR X400 Y0 Z100 I200 J0 F1000;
END;:SUBPROCPTP X100 Y‑100 Z100 A‑100;
PTP X‑100 Y100 Z‑100 A100 TIM0.5;
LIN X1500 Y2000 Z2500 A3000 F1000;
END;

機能編

TB00‑0810F.jtd‑F10７−１−４. Ｇコード 指令一覧
Ｇコード
Ｇｺｰﾄﾞ
G91
G90
(G91)G00(G90)G00
G28(G91)G01(G90)G01

モーダル
モーダル
非モーダル
モーダル

G31
(G91)G02(G90)G02(G91)G03(G90)G03
−
G17
G18
G19

非モーダル

G04
G43
G49
G61
G64
G92
G100
G110
G111
G112
−
−
G120
−
−

非モーダル

モーダル

対応する
動作
ﾃｸﾉｺｰﾄﾞ−インクレ指定−論理座標系アブソ指定
PTP
インクレ位置決め
PTPA
論理座標系アブソ位置決め
PTPB
機械座標系アブソ位置決め
LIN
インクレ直線補間
LINA
論理座標系アブソ直線補間
LINB
機械座標系アブソ直線補間
SLIN
ｲﾝｸﾚｾﾝｻｰﾗｯﾁ補間
＜OP＞
CIRR
ｲﾝｸﾚ円弧補間CW
中心指定､半径指定(CR)
CIRRA
論理座標系アブソ円弧補間CW
CIRL
インクレ円弧補間CCW
CIRLA
論理座標系アブソ円弧補間CCW
P**＊＊平面指定円弧半径指定で必要
PXY
ＸＹ平面指定PXZＸＺ平面指定PYZ
ＹＺ平面指定
TIM
THSET
THOFF
INPE
INPD
CSET
PTMA
STNE
STND
TURN
TLS
TLC
SPIN
PRG
JMP

ドウェル
工具長補正開始＜OP＞
工具長補正キャンセル
インポズチェック有効
インポズチェック無効
論理座標設定ポイント位置決め＜OP＞
接線制御有効＜OP＞
接線制御キャンセル＜OP＞
ＴＵＲＮ命令＜OP＞
ﾄﾙｸ制限ﾓｰﾄﾞ開始
開発中＜OP＞
トルク制限モード解除〃
無限回転軸回転動作
スレーブプログラム起動
ラベルジャンプ

補助コード
Ｇｺｰﾄﾞ
M**
M00
M01
M03
M04
M05
M30
M98
M99

ﾃｸﾉｺｰﾄﾞMOUT**
MOUT00
MOUT01
−
−
−
END
CALL
END

動作
Ｍコード出力プログラムストップ
オプショナルストップ
主軸正転
主軸逆転
主軸停止
プログラム運転終了
サブプログラム呼出
サブプログラム終了

S
PNT

−
PNT

主軸回転速度設定
ﾎﾟｲﾝﾄ位置決めﾃｰﾌﾞﾙ

−
−
−
−
−
−
−
−
−

ONR
OFR
ER/ENR
JR/JNR
SR/SNR
WR/WNR
ﾏｸﾛ命令
IF
ELSE
ENDIF

汎用出力制御

Ｎ□□□□

モーダル
非モーダル
モーダル
非モーダル
非モーダル

＜OP＞

＜OP＞
＜OP＞

汎用入力制御四則演算、内部ﾃﾞｰﾀ読出/書込
条件判断
シーケンス番号

機能編

TB00‑0810F.jtd‑F11７−１−５. Ｇコード プログラム例
N10

N20

G90 G00 X0 Y0 Z0 A0 M11;
M98 P20 L2;
G04 P1.0;
G90 G00 X10.0 Y10.0 Z10.0 A10.0 M12;
M98 P20;
G04 P1.0;
G91 G02 X40.0 Y0 Z10.0 I20.0 J0 F100;
M30;
G91 G00 X10.0 Y‑10.0 Z10.0 A‑10.0;
G00 X‑10.0 Y10.0 Z‑10.0 A10.0;
G04 P0.5
G01 X150.0 Y200.0 Z250.0 F200;
M99;

※1

※2

※1 メインプログラムはサブプログラムで指令したモーダルＧコードを引き継ぎません。
※2 サブプログラムの先頭では、モーダルＧコードは不定となります。
従って、サブプログラムではモーダルＧコードを設定し直して下さい。

シーケンス番号指定（Ｎ）
シーケンス番号は、サブプログラム呼び出し（Ｍ９８）にて使用されるもので、サブプログラ
ム先頭ステップの前に Ｎ + 任意の番号（最大４桁）で記述します。
シーケンス番号の指定範囲は、０〜９９９９（１０進数）です。
シーケンス番号は任意の番号を設定可能ですが、同一番号を複数のステップに設定した場合、最初に見つかったステップを呼び出します。

プログラム途中再開
Ｇコードプログラム実行中、実行したプログラムステップにシーケンス番号が設定されている
場合、これを記憶します。
プログラム実行がリセット操作やエラー発生によって中断された場合、次のプログラム起動時
最後に記憶したシーケンス番号の位置よりプログラムを再開します。
記憶したシーケンス番号は、次の操作や動作でクリアされます。
・リワインド操作を行った。
・プログラムを最後（"M30"）まで実行した。
・別プログラムを実行した。
・プログラムをダウンロードして上書きした。
・バックアップメモリ初期化操作を行った。
中断後のプログラム起動にて、プログラムの先頭から実行を行う場合はリワインド操作を行って
下さい。

機能編

TB00‑0810F.jtd‑F12７−２. 付加データ
付加データには、以下の３種類があります。
７−２−１. 付加データアドレス付き数値指定
付加データアドレス付き数値指定は、１つの指令に対して、複数の付加データが必要な指令に対して使用されます。
「ＯＶＲ」「ＰＸＹ」以外は、テクノコード／Ｇコード共通です。
（ ）内のアドレスはＧコードの表記です。
ｱﾄﾞﾚｽ
内容
説明
Ｘ
第１軸移動量・移動位置指定
ＰＬＭＣ−４０が制御する軸に対する、
Ｙ
第２軸移動量・移動位置指定
移動量・移動位置の指定です。
Ｚ
第３軸移動量・移動位置指定
設定範囲 −999999999〜999999999
Ａ
第４軸移動量・移動位置指定
単位はパルスです。
Ｉ
第１軸円弧中心座標指定
円弧補間指令での中心位置指定です。
Ｊ
第２軸円弧中心座標指定（現在位置からのインクレ量）
Ｋ
第３軸円弧中心座標指定
設定範囲 −999999999〜999999999
Ｄ
第４軸円弧中心座標指定
単位はパルスです。
ＯＶＲ オーバーライド指定
サーボパラメータ「ＰＴＰ速度」に対するオーバーライドを指定します。(テクコードのみ)
Ｆ
速度指定
補間移動時の速度を指定します。
Ｐ
ポイント番号
ＰＴＭＡで使用するポイントの番号を指定します。
Ｌ
回数指定
繰り返し回数を指定します。
Ｒ
円弧半径指定円弧補間指令での円弧半径指定です。
ＰＸＹ
円弧補間平面指定
半径指定の円弧補間指令での円弧補間をおこなう軸の指定です。
Ｘ＝第１軸の軸名称
Ｙ＝ 第２軸の軸名称
注記 第１〜第４軸の小数点以下の桁数を指定できます。(セッティングＰＣ)
指

定
１
１０
１００
１０００
１００００
１０００００最小単位
1＝１P
0.1＝１P
0.01＝１P
0.001＝１P
0.0001＝１P
0.00001＝１P

７−２−２. 数値指定
数値指定は、ＴＩＭ指令のように、指令と付加データが１：１であるような指令に対して使用されます。
７−２−３. ラベル指定
ラベル指定は、ＣＡＬＬ指令にて使用されるもので、プログラム中に設定されているラベル
文字列を指定するものです。
ラベルは、プログラムステップに対応するものとして、設定する事ができるもので、最大１３文字の文字列です。
７−２−４. 速度指定「Ｆ」の単位
セッティングＰＣにてＦの単位を設定できます。
Ｆ１＝(１,１０，１００，１０００，１００００,１０００００)Ｐ／(秒／分)
選択
選択
例 １Ｐ＝１μｍ のシステムでｍｍ／ｓｅｃ
Ｆ１＝１０００／秒
１Ｐ＝０．１μｍ のシステムでｍｍ／ｍｉｎ
Ｆ１＝１００００／分

機能編

TB00‑0810F.jtd‑F13

７−３. 動作指令の詳細【】は、同じ意味のＧコードです。

７−３−１. ＰＴＰ ： インクレＰＴＰ移動指令【(Ｇ９１)Ｇ００】

付加データとして各軸の移動量と、サーボパラメータのＰＴＰ速度に対するオーバーライドを指定します。
(ＧコードではＯＶＲはありません)
オーバーライド指定が無いときは１００％が指定されたものとして、動作します。
【 例 】
ＰＴＰ Ｘ１００ Ｙ−１０ ＯＶＲ１５０；※操作パネルやＰＣコマンドによるオーバライド指定は、さらにこれに乗じます。

７−３−２. ＰＴＰＡ ： 論理座標系アブソ位置決め【(Ｇ９０)Ｇ００】

付加データとして各軸の論理座標上の移動位置と、サーボパラメータのＰＴＰ速度に対するオーバーライドを指定します。
オーバーライド指定が無いときは１００％が指定されたものとして、動作します。
【 例 】
ＰＴＰＡ Ｘ１０００ Ｙ−１０００ ＯＶＲ１５０；

７−３−３. ＰＴＰＢ ： 機械座標系アブソ位置決め【Ｇ２８】

付加データとして各軸の機械座標上の移動位置と、サーボパラメータのＰＴＰ速度に対するオーバーライドを指定します。
オーバーライド指定が無いときは１００％が指定されたものとして、動作します。
【 例 】
ＰＴＰＢ Ｘ１００ Ｙ−１０００ ＯＶＲ１５０；

７−３−４. ＬＩＮ□ ： 直線補間移動指令

ＬＩＮ／ＬＩＮＡ／ＬＩＮＢ

【Ｇ０１】

ＬＩＮ
インクレ直線補間【(Ｇ９１)Ｇ０１】
ＬＩＮＡ
論理座標系アブソ直線補間【(Ｇ９０)Ｇ０１】
ＬＩＮＢ
機械座標系アブソ直線補間
付加データとして各軸の移動量と補間移動速度を指定します。
補間移動速度（Ｆ）の設定範囲は１〜１００００００００で、単位は「６−２−４ Ｆ速度単位」の通りです。
補間移動速度は移動指定軸すべての合成速度です。
【 例 】
ＬＩＮ Ｘ１００ Ｙ−１０００ Ｆ１５００；◆１.５

７−３−５. ＳＬＩＮ ： センサラッチ直線補間【Ｇ３１】

仮の目標値に向かって直線補間動作して、センサラッチ信号ＳＥＮＣＥ＿ＩがＯＮするとその位置を記憶して停止します。詳細は５−１６−７を参照下さい。
【 例 】 ＳＬＩＮ Ｘ１０００ Ｙ２０００ Ｆ１０００；
７−３−６. ＰＴＭＡ ： ポイント指定ＰＴＰ位置決め移動【Ｇ１００】

指定した位置決めポイントへのＰＴＰ移動を行います。
付加データとして、位置決めポイント番号と、サーボパラメータのＰＴＰ速度に対するオーバーライドを指定します。 (ＧコードではＯＶＲはありません)
オーバーライド指定がない時は１００％が指定されたものとして動作します。
アドレスＰで指定する位置決めポイントは、動作プログラム中で設定します。(ＰＮＴ命令)
存在しない位置決めポイントを指令した場合はプログラムエラーとなります。
【 例 】
ＰＴＭＡ Ｐ1 ＯＶＲ２０；

機能編

TB00‑0810F.jtd‑F14◆1.4
７−３−７. ＣＩＲＲ□／ＣＩＲＬ□ ： 円弧補間(ヘリカル)移動指令【Ｇ０２／Ｇ０３】

ＣＩＲＲ／ＣＩＲＬ
インクレ円弧補間(ヘリカル)(ＣＷ／ＣＣＷ)【(G91)G02／G03】
ＣＩＲＲＡ／ＣＩＲＬＡ 論理座標系アブソ円弧補間(ヘリカル)(ＣＷ／ＣＣＷ) 【(G90)G02／G03】
２軸の終点(インクレ量又は論理系アブソ位置)を指定します。
３軸の指定は同期軸でヘリカル動作になります。半径指定と中心指定の２通りがあります。
プリ解方式とボード内部方式で動作が異なります。詳細は、「５−７ 円弧補間」を参照下さい。
【半径指定】
ＣＩＲＲ

Ｙ３００

Ａ４００

Ｒ５００

ＰＹＡ Ｆ１０００；

半径指定は円弧の半径を直接Ｒで指定し、以下のように設定できます。
Ｒ＞０のとき、円弧角１８０°以下の円弧
Ｒ＜０のとき、円弧角１８０°以上の円弧
また、半径指定を行う場合は、必ず平面を設定します。ＸＹ平面上で円弧補間を行う場合の指定方法は、ＰＸＹとします。平面指定はＰ□□とし、□には軸名称が入ります。ただし、軸名称軸番号が先の方が先に来ます。
Ｇコードの場合は、Ｇ１７、Ｇ１８，Ｇ１９で指定します。
第４軸を含む円弧はできません。(中心指定では全軸可)【中心指定】
円弧中心位置（Ｉ、Ｊ、Ｋ、Ｄ）は、円弧補間移動開始位置からの距離にて指定を行います。
円弧中心位置指定の行われた軸が、円弧補間軸となります。従って、円弧中心位置指定は必ず２軸分行ってください。
円弧中心位置指定の行われた軸以外で、移動量が指定された軸は、円弧補間と同期させて、移動を行わせます。（ヘリカル補間移動）

◆1.2

ＣＩＲＲ

Ｘ７００

Ｙ−１００

Ｉ３００

Ｊ−４００

Ｆ１０００

開始点

-100
第２軸
中心位置

第２軸
移動量

終点

-400

700
第１軸移動量300

中心点

第１軸中心位置
直径指定に設定している軸では移動量のみ直径指定として認識され、Ｒ値また中心位置の指定値は半径指定と見なされます。
７−３−８. ＣＳＥＴ ： 論理座標値設定【Ｇ９２】

現在の論理座標系の位置を指定された値に変更（論理座標系のセットアップ）します。
軸指定は任意の第１〜４軸で、指定軸のみ座標変更されます。
【 例 】
ＣＳＥＴ Ｘ０ Ｙ０ Ｚ１００；

機能編

TB00‑0810F.jtd‑F15

７−３−９. ＣＡＬＬ ： サブルーチンコール【Ｍ９８】

指定したラベルのサブルーチンを実行します。(Ｇコードでは、Ｐ□□□□でシーケンス番号を指定)
付加データとして、ラベル（文字列）、呼び出し回数（Ｌ）を指定します。
呼び出し回数は、サブプログラム呼出の繰り返し回数です。(最大 ５００００回)
ここに設定されている回数分、サブプログラム呼出を行います。
【 例 】
ＣＡＬＬ ＬＡＢＥＬ Ｌ３；(テクノコード)
Ｍ９８Ｐ□□□□ Ｌ□；
(Ｇコード)
ネスティングは、最大２０回可能です。

ﾒｲﾝﾌﾟﾛｸﾞﾗﾑ
NO.1〜N0.3

ﾈｽﾃｨﾝｸﾞ1回［AAA］

ﾈｽﾃｨﾝｸﾞ2回［BBB］

CALL［BBB］
END
CALL［AAA］
END

CALL［CCC］
［CCC］

END

END

※ メインプログラムは必ずプログラムの先頭に記述して下さい。
※ 呼び出されるプログラムの先頭には必ずラベルが必要です。
※ メインプログラム・各サブプログラムの最後には必ず ＥＮＤ
して下さい。

指令を設定

７−３−１０. ＪＭＰ ： ジャンプ指定
指定したラベルへ実行を移します。
【 例 】
ＪＭＰ ＬＡＢＥＬ；

７−３−１１. ＰＲＧ ： スレーブプログラム起動＜オプション＞

指定したプログラム番号のプログラムをスレーブプログラムとして実行します。
【 例 】
ＰＲＧ２；

７−３−１２. ＥＮＤ ： プログラム終了【Ｍ３０】【Ｍ９９】

サブルーチンの終わり(Ｍ９９)、または動作プログラムの終了(Ｍ３０)を表します。

機能編

TB00‑0810F.jtd‑F16

７−３−１３. 接線制御 ： ＴＵＲＮ／ＳＴＮＥ／ＳＴＮＤ【Ｇ１１２／Ｇ１１０／Ｇ１１１】接線制御用の命令です。
４−１７−７「接線制御機能」を参照下さい。

７−３−１４. 工具長補正 ： ＴＨＳＥＴ／ＴＨＯＦＦ【Ｇ４３／Ｇ４９】

４−１９−２「工具長補正機能及び摩耗補正機能」を参照下さい。

７−３−１５. ＩＮＰＥ ： ＩＮＰＯＳ有効モード指定【Ｇ６１】

ＩＮＰＥが指定されると、以後ＩＮＰＤが指令されるまでの各ステップは、インポジションチェック
有効にて次のステップへ進みます。
但し、パラメータにてインポジションチェック無効としている場合は、無意コードとして扱います。
詳細は、「４−９ インポジションチェック」を参照下さい。

７−３−１６. ＩＮＰＤ ： ＩＮＰＯＳ無効モード＜デフォルト＞指定【Ｇ６４】

ＩＮＰＤが指令されると、以後ＩＮＰＥが指令されるまでの各ステップは、インポジションチェック
無効(パスモード)にて次のステップへ進みます。

７−３−１７. ＴＩＭ ： ステップ実行時間指定
ＴＭ： ステップ実行時間指定（RTC周期指定）【Ｇ０４】

各ステップの所用時間を指定します。
通常は、指定する必要がありません。この場合、移動距離÷送り速度でそのステップ時間となります。
ステップ時間＝軸移動時間
時間を指定して、その設定値が軸移動時間を越えている場合、移動完了後にその差分の時間だけ、次のステップへの進行を停止します。
ステップ時間＝軸移動時間＋差分の停止時間◆１.５

ＴＩＭ指令の設定範囲は１.０〜９９９９９９.９で、単位は１秒です。
【 例 】
ＴＩＭ１５０；Ｇ０４は、他のＧコードと同時には使えません。
【 例 】
Ｇ０４ Ｐ１.０； (１秒待ち)
ＴＭ指令の設定範囲は１〜９９９９９９で、単位はＲＴＣ周期です。
【 例 】
ＴＭ１２５； ・・・ ＲＴＣ周期が８ｍｓの場合、この指令は１秒待ちに相当します。
※ ＴＭ指令は、プログラムアップロード時にＴＩＭ指令に変換されます。
その際、指定値は以下の式で変換され、端数は切り捨てられますので、御注意下さい。
ＴＩＭ指定値 ＝ ＴＭ指定値 × ＲＴＣ周期 ÷ １００
ＲＴＣ周期が８ｍｓの場合、
ＴＭ１２５； → ＴＩＭ１０；
ＴＭ１２；→ ＴＩＭ０；

機能編

TB00‑0810F.jtd‑F17

◆

１．４

７−３−１８. ＭＯＵＴ ： Ｍコード出力【Ｍ□□□】

指定したＭコードを出力します。
【 例 】
ＭＯＵＴ２５５；
シーケンサへステータスや他の情報を渡すために使用することも可能です。
一般的にはデータ信号（Ｍ０〜Ｍ７）とストローブ信号を出力します。
Ｍコード出力(PLMC‑40→SC)

Ｍ０〜Ｍ７の出力を利用して８ビットのバイナリーデータ出力が行えます。
Ｍコード指令ステップ開始時に、ＯＮとなります。

ＭＳＴＲＢ出力(PLMC‑40→SC)

Ｍコード出力のストローブ信号です。
Ｍコード出力後に出力されます。

ＭＦＩＮ入力(SC→PLMC‑40)

本信号の立ち上がりでＭＳＴＲＢ出力がＯＦＦとなり１ステップが終了します。

ＭＯＫ入力(SC→PLMC‑40)

シーケンサ側でＭコードの実行が正常におこなえた時、ＭＯＫ＝ＯＮにします。
ＰＬＭＣ−４０では、シーケンサ動作の正常／異常完了を判断できます。
（ＭＯＫを使用するかどうかはＲＯＭスイッチで選択できます）

ＯＮ
Ｍコード(SLX →SC) ＯＦＦ※MSTRBがOFF し て い る 間のＭ コ ー ド は不定 で す

ＭＳＴＲＢ ＯＮ
(SLX →SC)
ＯＦＦ
ＯＮ
ＭＦＩＮ
(SC →SLX)
ＯＦＦ
ＯＮ
ＭＯＫ
(SC →SLX)
ＯＦＦ
１ステップ

・Ｍ００／Ｍ０１指令
ロムスイッチにて、Ｍ００／Ｍ０１停止機能を有効にすると、Ｍ００／Ｍ０１指令時、以下の動作を行います。
Ｍ００指令時……プログラム実行を停止します。
Ｍ０１指令時……オプショナルストップ入力（"MOPT"）ＯＮの時プログラム実行停止
Ｍ００／Ｍ０１停止機能有効の場合、Ｍ００／Ｍ０１共にＭコード出力は行いません。
入力信号"MOPT"はＲＯＭスイッチにて、任意の入力ピンに割当てて下さい。
ＲＯＭスイッチにてＭ００／Ｍ０１停止中出力を有効にすると、Ｍ００又はＭ０１停止中に、Ｍ００停止中出力（"MZSTP"）をＯＮにします。
出力信号"MZSTP"は、ＲＯＭスイッチにて、任意の出力ピンに割り当てて下さい。
Ｍ００／Ｍ０１停止機能が無効の場合は、通常のＭコードと同様に動作します。

機能編

TB00‑0810F.jtd‑F18

・Ｇコードプログラムの予約Ｍコード
Ｇコードプログラムでは、以下のＭコード機能が予約されています。
（６−１−４ Ｇコード指令一覧 補助コードを参照して下さい。）
Ｍ０３／Ｍ０４／Ｍ０５
主軸の正転（Ｍ０３）、主軸の逆転（Ｍ０４）、主軸の停止（Ｍ０５）を行います。
ロムスイッチの 主軸Ｍコード出力 を有効にした場合、同時にＭコード出力を行います。
ロムスイッチの 主軸Ｍコード出力 が無効の場合、Ｍコード出力を行いません。
Ｍ３０
プログラムを終了します。
本指令ではＭコ−ド出力を行いません。
Ｍ９８／Ｍ９９
サブプログラムの呼び出し（Ｍ９８）、サブプログラムからの戻り（Ｍ９９）を行います。
本指令ではＭコード主力を行いません。
７−３−１９. 汎用入出力処理指定
汎用入力処理と汎用出力処理は、１ステップ内で同時４点までの指定が可能です。
●汎用入力処理□□Ｒ□□
制御ビット指定： ０〜４８
正論理･不論理指定 ： なし／Ｎ
処理内容指定： Ｅ，Ｊ、Ｗ，Ｓ
Ｅｘｉｔ ： プログラム強制終了
この信号がアクティブになると強制的に動作プログラムを完了して、停止します。
Ｊｕｍｐ ： スキップ
この信号がアクティブになるとそのステップの動作を終了し、次のステップへ進行します。
スキップ時の動作は、スキップしたステップの次ステップの指令形式によって変わります。
Ｗａｉｔ ： ステップ実行開始待ち
各動作ステップの先頭でこの入力をチェックします。アクティブであれば停止します。
Ｓｔｏｐ ： 一時停止
この信号が アクティブな間、動作を停止します。
同一ステップでＷ．Ｓ．Ｊ．Ｅが同時に指定され、各々の入力条件が成立した時の優先順位は、以下の通りです。
第１優先

ＥＸＩＴ

Ｅ指定の入力が１つでも成立すれば、他の条件にかかわらず強制終了します。

第２優先

Ｊｕｍｐ

第１優先が成立していない状態では、Ｊ指定が１つでも成立
すれば、スキップします。

第３優先

Ｗａｉｔ
Ｓｔｏｐ

第１・第２優先が成立していない状態では、Ｗ又はＳの１つでも成立すれば、それに従います。

機能編

TB00‑0810F.jtd‑F19

●汎用出力処理
ＯＮＲ□□
ＯＦＲ□□

【 例 】

Ｒ□□
Ｒ□□

出力をONします
出力をOFFします

制御ビット指定： ０〜４５ＰＴＰ Ｘ１０００ ＥＲ００ ＪＮＲ１０ ＯＮＲ０５ ＯＦＲ０１；

７−３−２０. ＰＮＴ ： 位置決めポイント設定【ＰＮＴ】

ＰＴＭＡ命令で使用する位置決めポイントの座標を設定します。
付加データとして、ポイント番号と各軸の座標を指定します。
指定しなかった軸は移動の際に無効軸となります。
１ポイント設定するする毎に１／４ステップ分のプログラム容量を使用します。
このため、実行可能なプログラムステップ数は以下の通りになります。
１６６４(端数は切り上げ)

実行可能ステップ数＝最大ステップ数(ROMSWで設定)− ポイント数×

アドレスＰで設定できるポイント番号は１からの連番です。(１→２→３→〜)
それ以外の時はプログラムエラーになります。
[例]

ＰＮＴ
ＰＮＴ

Ｐ１
Ｐ２

Ｘ１００００ Ｙ２００００
Ｘ０ Ｙ０ Ｚ０ Ａ０；

７−３−２１. プリ解加減速(補間前加減速)

Ａ０；＜オプション＞

補間移動指令（LINX,CIRXX／G01,G02,G03）に加減速指定（Ｐ１／Ｐ２／Ｐ３）を付加する事により、プリ解析処理において、加／減速区間微小ブロックの発生が可能です。
加減速時間(時定数)Ｔａｄは、ＩＮＩファイル及び、プログラム変換ライブラリ関数で設定します。
Ｐ１
Ｐ２
Ｐ３

■

・・・
・・・
・・・

加速区間のステップを生成します。
減速区間のステップを生成します。
加速区間／加速区間のステップを生成します。

加速(Ｐ１)指定
Ｇ０１ Ｘ＿ Ｙ＿ Ｆ＿ Ｐ１；
Ｇ０２ Ｘ＿ Ｙ＿ Ｉ＿ Ｊ＿ Ｆ＿ Ｐ１；■

減速(Ｐ２)指定
Ｇ０１ Ｘ＿ Ｙ＿ Ｆ＿ Ｐ２；
Ｇ０２ Ｘ＿ Ｙ＿ Ｉ＿ Ｊ＿ Ｆ＿ Ｐ２；

機能編

TB00‑0810F.jtd‑F20

■

加速減速(Ｐ３)指定
Ｇ０１ Ｘ＿ Ｙ＿ Ｆ＿ Ｐ３；
Ｇ０２ Ｘ＿ Ｙ＿ Ｉ＿ Ｊ＿ Ｆ＿ Ｐ３；

注記１
注記２

■

加速／減速区間は、微小直線補間の連続に展開します。
Ｇコードの場合、加速は速度ゼロから、減速は速度ゼロへ移行します。従って連続補間でのなめらかな速度変更は、従来通りの各軸加減速(指数／直線)を用いてください。

テクノコードでの速減目標速度(ＦＬ＿)指定

10000

ＬＩＮ Ｘ10000 Ｆ10000 ＦＬ０ Ｐ３；
ＬＩＮ Ｘ5000 Ｆ5000 Ｐ３；
ＥＮＤ;

Ｘ 速度

5000

FL0 に て 減 速 目 標 速 度 が ０ に な って い る の で 速度 ０ に な る ま で 減速する 。
通常は点線の よ う に な る 。

注記３
注記４

注記５

テクノコードの場合、減速時の目標速度をＦＬコードにて指定できます。
プリ解加減速は接線速度に対して行います。従って円弧補間の場合、開始角度、終了角度によって、各軸の速度変化が大きくなる場合があります。
これを滑らかにする場合は、各軸加減速(指数／直線)が利用可能です。
テクノコードの場合、前のステップ・現ステップ・次ステップの指令速度の変化を滑らかにすることができます。
この時の加減速指定は、前のステップ・現ステップ・次ステップの速度を比べて、一番速い速度のステップで行って下さい。

プログラム
ａ.ＬＩＮ Ｘ10000 Ｆ10000 Ｐ１；
ｂ.ＬＩＮ Ｘ20000 Ｆ10000 Ｐ３；
ｃ.ＬＩＮ Ｘ30000 Ｆ10000 Ｐ０；
ｄ.ＬＩＮ Ｘ40000 Ｆ20000 Ｐ３；

20000

10000

a

b

d

c

機能編

TB00‑0810F.jtd‑F21

■ 円弧の半径縮みを最小にする方法。
以下の指令方法で形状補正を併用すると半径縮みは最小になります。
ａ．
G01 X10000 F1000 P3;
G02 X0 Y0 I10000 J0 P3;

ｂ．
G01 Y10000 F1000 P1;
G02 X20000 Y0 I10000 J0 P2;

ｃ．
G02 X20000 Y0 I10000 J0 F1000 P1;
G01 Y‑10000 P2;

７−３−２２. '：' ： ラベル定義'：'＋文字列でラベルを定義します。
文字列は最大１３文字まで指定可能です。
ラベル定義の最大数は、ＲＯＭＳＷのプログラム分割数によってかわります。
７−３−２３. "/*" ･･･ "*/" ：コメント
任意の文字列を"／＊"と"＊／"で囲む事により、動作プログラムテキストにコメントを記述することが可能です。
ＤＮＣ運転プログラムでは、複数行にまたがるコメントはできません。

機能編

TB00‑0810F.jtd‑F22◆１．４

７−４. マクロ機能＜オプション＞

動作プログラム中での演算、及び条件判断を行う機能です。
ＮＣの各種状態や外部からの入力値により、移動位置の変更を行ったり、サーボパラメータの変更等を行うことができます。
７−４−１. 書式・ 変数△＝△｛変数｜即値｝［△演算子△｛変数｜即値｝］；
・ ＩＦ△ ｛変数｜即値｝［△演算子△｛変数｜即値｝］；
(1)
ＥＬＳＥ；
(2)
ＥＮＤＩＦ；
式の値が真の時(1)の句を実行、偽の時(2)の句を実行。
ELSE句は省略可能｛｜｝ ･･･｜ で区切られた内の、どれか１つを選択［］･･･ 省略可能△･･･ １つ以上の空白、又はタブ（必須です）
変数･･･ レジスタ指定
即値･･･ ５００、−１などの数値演算子 ･･･ ＋ （加算）− （減算）＊ （乗算）／ （除算）％ （剰余）＆ （ＡＮＤ）｜ （ＯＲ）＾ （ＸＯＲ）＜＜（左シフト）＞＞（右シフト）＜＜＝＞
条件が真ならば１
＞＝
偽ならば０
＝＝
！＝

・ＰＴＰ、ＰＴＰＡ、ＰＴＰＢ、ＬＩＮ、ＬＩＮＡ、ＬＩＮＢの移動量（位置）の指定、
ＰＴＭＡのポイント番号、ＳＰＩＮの回転速度指定、ＴＩＭに変数を使用することが出来ます。
例）
①
②
③
④
⑤
⑥
⑦

IF #1000 <PTP X1000;
TIM1.0;PTP X100;
ENDIF;PTPA Ｘ1000;
END;#1001;

IF #1000 < #1001;
G91 G00 X1000;
G04 P1.0;
G00 X100;
ENDIF;G90 G00 X1000;
M30;

・ #1000が０、#1001が１の時の実行順序① → ② → ③ → ④ → ⑤ → ⑥ → ⑦
・ #1000が１、#1001が０の時の実行順序① → ⑥ → ⑦

機能編

TB00‑0810F.jtd‑F23

７−４−２. レジスタ一覧□マクロ変数の読み出しは，以下のレジスタ全てが可能です。
□マクロ変数の書き込みは，７−４−３〜７−４−１３にて属性が Ｒ／Ｗ の変数のみ可能です。
□ｻｰﾎﾞﾊﾟﾗﾒｰﾀ/工具長補正ﾊﾟﾗﾒｰﾀについては，書き込みで値を変更した場合、制御処理用のワークメモリ
のみ変更し，保存用の変数値は変更しません。
そのため，書き込み値／読み出し値は以下のようになります。
書き込み値・・・マクロ変数にて、書き込んだﾊﾟﾗﾒｰﾀは、保存されません。
読み出し値・・・読み出しされるﾊﾟﾗﾒｰﾀ値は，常にｾｯﾃｨﾝｸﾞＰＣｿﾌﾄ、ﾕｰｻﾞｰｱﾌﾟﾘｹｰｼｮﾝ、ＤＤＬにて最後に設定された値です．
#1000 〜 一般レジスタ#1500 〜 各種情報
#1500 〜 全体情報#1520 〜 第１〜 ４軸ステータス情報#1540 〜 第１〜 ４軸アラーム情報#1600 〜 入出力情報#2000 〜 サーボパラメータ#2000 〜 第１軸サーボパラメータ#2100 〜 第２軸サーボパラメータ#2200 〜 第３軸サーボパラメータ#2300 〜 第４軸サーボパラメータ#3000 〜 工具長補正用データ#4000 〜 ポジションデータ
#4000 〜 第１軸ポジションデータ
#4100 〜 第２軸ポジションデータ
#4200 〜 第３軸ポジションデータ
#4300 〜 第４軸ポジションデータ
#5000 〜 センサーラッチポジションデータ
#5000 〜 第１〜４軸センサーラッチ論理座標#5100 〜 第１〜４軸センサーラッチアブソ座標#5500 〜 第１〜２軸フィードバックカウンタ積算値#6000 〜 ＨＥＸ入力
７−４−３. 一般レジスタ#1000〜

動作プログラム内で自由に使用できる領域です。
本レジスタの内容はバッテリーバックアップされていますので、電源断時でも保持されています。
一般レジスタは，ＦＡ−Ｍ３、ＰＣから一括で読み出す事ができます。
番号デ ー タ 名 称
属性
設 定 値
#1000
一般レジスタR/W‑2147483648 〜 2147483647#1001
一般レジスタR/W‑2147483648 〜 2147483647#1002
一般レジスタR/W‑2147483648 〜 2147483647
・
・
・
・
・
・
・
・
・
・
・
・
#1095
一般レジスタR/W‑2147483648 〜 2147483647#1096
一般レジスタR/W‑2147483648 〜 2147483647#1097
一般レジスタR/W‑2147483648 〜 2147483647#1098
一般レジスタR/W‑2147483648 〜 2147483647#1099
一般レジスタR/W‑2147483648 〜 2147483647※表記 番号･･･ データ指定番号
データ名称 ･･･ データ名
属性･･･ Ｒ−書込可、Ｗ−読込可
設定値･･･ データ範囲

機能編

TB00‑0810F.jtd‑F24

７−４−４. 各種情報
番号
#1500
#1501
#1502
#1503
#1504

#1500〜

デ ー タ 名 称
各種状態情報アラーム情報送りｵｰﾊﾞｰﾗｲﾄﾞ設定
選択･実行ﾌﾟﾛｸﾞﾗﾑ番号
待機･実行ﾌﾞﾛｯｸ番号

属性
R
R
R/W
R/W
R

設

定

値

◆1.５

○ 各種状態情報＃1500
ＰＬＭＣ−４０コントローラの現在の状態を各ビットのON/OFFで示すものです。
各ビットの詳細は以下の通りです。
MSB
LSB
軌跡発生完（ＦＧ完）※1
途中停止中（ＦＧ途中停止）※１
軌跡発生中※１
アラーム発生中
プログラム実行中
プログラム停止中
ブロック途中停止
動作モード
０００：セッティング
００１：運転・手動
０１０：運転・自動
０１１：ＯＴ無視
１００：ＤＮＣ運転※2
高速センサーラッチ完
Ｚ軸接線制御ＯＮ※3
プログラムデータ変更
各種シーケンス完了※4※1 ＦＧステータスタイミングチャート※２ ＤＮＣオプション有りの時※３ Ｚ軸接線制御オプション有りの時※４ 以下の条件が成立しているときにＯＮします（ＡＮＤ条件）。
・ＦＧ完
・Ｍコード出力シーケンス未実行
・原点復帰未実行
・ホーム位置決め未実行

機能編

TB00‑0810F.jtd‑F25

○ アラーム情報＃1501
ＰＬＭＣ−４０コントローラのアラームの要因を各ビットのON/OFFで示すものです。
各ビットの詳細は以下の通りです。
MSB
LSB
非常停止中
サーボ電源オフ
バックアップエラー
パラメータ未設定エラー
プログラム実行エラー
アブソリードエラー※３
ＰＥＲ＋方向偏差過大※４
ＰＥＲ−方向偏差過大※４※３ アブソサーボオプションありの時※４ 同期軸制御オプション有りの時○ 送りオーバーライド設定＃1502
現在の送りオーバーライド設定の設定値です。
○ 選択・実行プログラム番号＃1503
ステータスがプログラム実行中でない場合
ステータスがプログラム実行中の場合→→選択プログラム番号
実行プログラム番号○ 待機・実行ブロック番号＃1504
ブロック実行中でない場合
ブロック実行中の場合→→

待機ブロック番号
実行ブロック番号７−４−５. 第１軸〜第５軸ステータス情報
番号
#1520
#1521
#1522
#1523

MSB

デ ー タ 名 称
第１軸ステータス情報
第２軸ステータス情報
第３軸ステータス情報
第４軸ステータス情報#1520〜
属性
R
R
R
R

設

定

値

各軸の現在の状態を各ビットのON/OFFで示すものです。
各ビットの詳細は以下の通りです。
LSB
インポジション
加減速たまり有り
サーボオン
原点復帰完了機能編

TB00‑0810F.jtd‑F26

７−４−６. 第１軸〜第５軸アラーム情報
番号
#1540
#1541
#1542
#1543

デ ー タ 名 称
第１軸アラーム情報
第２軸アラーム情報
第３軸アラーム情報
第４軸アラーム情報#1540〜
属性
R
R
R
R

設

定

値

各軸のアラームの要因を各ビットのON/OFFで示すものです。各ビットの詳細は以下の通りです。
MSB

LSB＋方向偏差過大−方向偏差過大
サーボアンプアラーム＋方向ソフトリミット−方向ソフトリミット＋方向ハードリミット−方向ハードリミット

７−４−７. 入／出力パターン
番号
#1600
#1601
#1602
#1603
#1610
#1611
#1612

#1600〜

デ ー タ 名 称
入力１パターン（I#0000）
入力２パターン（I#0001）
入力３パターン（I#0002:Ysss33〜Ysss48）
入力４パターン（I#0003:Ysss49〜Ysss64）
出力１パターン（O#0000）
出力２パターン（O#0001:Xsss01〜Xsss16）
出力３パターン（O#0002:Xsss17〜Xsss32）

属性
R
R
R
R
R/W
R/W
R/W

設

定

値

各入出力ポートのデータを１６Ｂｉｔバイナリ値として読み込みます。各ビットの詳細は以下の通りです。
MSB

LSB
Ｄ０指定
Ｄ１指定

Ｄ１４指定
Ｄ１５指定

機能編

TB00‑0810F.jtd‑F27◆１．４

７−４−８. サーボパラメタ
番号
#2000
#2001
#2002
#2003
#2004
#2005
#2006
#2007
#2008
#2009
#2010
#2100
#2101
#2102
#2103
#2104
#2105
#2106
#2107
#2108
#2109
#2110
#2200
#2201
#2202
#2203
#2204
#2205
#2206
#2207
#2208
#2209
#2210
#2300
#2301
#2302
#2303
#2304
#2305
#2306
#2307
#2308
#2309
#2310

デ ー タ 名 称
第１軸Ｄ／Ａ出力ゲイン
第１軸ＩＮＰＯＳ量
第１軸ＥＲ上限値
第１軸ＥＲサチレーション
第１軸ＰＴＰ時定数
第１軸ＰＴＰ速度
第１軸ＪＯＧ送り速度
第１軸補間時定数
第１軸＋側ソフトリミット
第１軸−側ソフトリミット
第１軸形状補正係数
第２軸Ｄ／Ａ出力ゲイン
第２軸ＩＮＰＯＳ量
第２軸ＥＲ上限値
第２軸ＥＲサチレーション
第２軸ＰＴＰ時定数
第２軸ＰＴＰ速度
第２軸ＪＯＧ送り速度
第２軸補間時定数
第２軸＋側ソフトリミット
第２軸−側ソフトリミット
第２軸形状補正係数
第３軸Ｄ／Ａ出力ゲイン
第３軸ＩＮＰＯＳ量
第３軸ＥＲ上限値
第３軸ＥＲサチレーション
第３軸ＰＴＰ時定数
第３軸ＰＴＰ速度
第３軸ＪＯＧ送り速度
第３軸補間時定数
第３軸＋側ソフトリミット
第３軸−側ソフトリミット
第３軸形状補正係数
第４軸Ｄ／Ａ出力ゲイン
第４軸ＩＮＰＯＳ量
第４軸ＥＲ上限値
第４軸ＥＲサチレーション
第４軸ＰＴＰ時定数
第４軸ＰＴＰ速度
第４軸ＪＯＧ送り速度
第４軸補間時定数
第４軸＋側ソフトリミット
第４軸−側ソフトリミット
第４軸形状補正係数#2000〜
属性
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W

設 定 値
0.004〜256.0
0〜10000[Pulse]
100〜100000[Pulse]
100〜100000[Pulse]
20〜3000[msec]
1000〜4000000[Pulse/Sec]
1000〜4000000[Pulse/Sec]‑1000〜1000[msec]
1000〜1000000[Pulse]
1000〜1000000[Pulse]
0〜20000.004〜256.0
0〜10000[Pulse]
100〜100000[Pulse]
100〜100000[Pulse]
20〜3000[msec]
1000〜4000000[Pulse/Sec]
1000〜4000000[Pulse/Sec]‑1000〜1000[msec]
1000〜1000000[Pulse]
1000〜1000000[Pulse]
0〜20000.004〜256.0
0〜10000[Pulse]
100〜100000[Pulse]
100〜100000[Pulse]
20〜3000[msec]
1000〜4000000[Pulse/Sec]
1000〜4000000[Pulse/Sec]‑1000〜1000[msec]
1000〜1000000[Pulse]
1000〜1000000[Pulse]
0〜20000.004〜256.0
0〜10000[Pulse]
100〜100000[Pulse]
100〜100000[Pulse]
20〜3000[msec]
1000〜4000000[Pulse/Sec]
1000〜4000000[Pulse/Sec]‑1000〜1000[msec]
1000〜1000000[Pulse]
1000〜1000000[Pulse]
0〜2000

機能編

TB00‑0810F.jtd‑F28

○ Ｄ／Ａ出力ゲイン ※ＥＲ（偏差パルス）に本設定値を乗算した値が、Ｄ／Ａへの出力値となります。
サーボのＫｐと比例関係にありますので、本設定値を変更することによりサーボのＫｐをソフト的に調整する事ができます。
固定小数点型２バイトデータです。
（上位バイト：整数部 ／ 下位バイト：小数部）【設定例】 指定値
設定値（ｈｅｘ）
１．００ → ０１００ｈ
０．５０ → ００８０ｈ
２．７０ → ０２Ｂ３ｈ○ ＩＮＰＯＳ量
インポジションの範囲を、パルス単位の絶対値量で指定します。
○ ＥＲ上限値 ※偏差の絶対量の上限値を指定します。
ＥＲが本設定値を越えた場合、偏差過大アラームとなります。
○ ＥＲサチレーション ※Ｄ／Ａ出力に用いる、偏差量（絶対値）のクランプ値を指定します。
ＥＲが本設定値を越えてかつ、ＥＲ上限まで達していない場合、Ｄ／Ａ出力基数（通常ＥＲ）に本設定値を使用します。
○ ＰＴＰ時定数
ＰＴＰ移動時、及びＪＯＧ移動時の直線加減速の時定数を指定します。
移動速度１００Ｋｐｐｓに達するまでの時間で設定します。
○ ＰＴＰ速度
ＰＴＰ移動時の速度を指定します。
○ ＪＯＧ速度
ＪＯＧ移動時の速度を指定します。
○ 補間時定数補間移動時の指数型加減速の時定数を指定します。
直線加減速オプション有りの時、マイナスの値を入れることで、直線加減速時定数を指定します。
○ ソフトリミット
ソフトウェアストロークリミットを、各方向（＋／−）別に指定します。
ポジション値が本設定値を越えた場合、ソフトリミットアラームとなります。
○ 形状補正係数
形状補正機能＜オプション＞のゲインを設定します。
設定値を小さくするほど、形状補正機能のゲインが大きくなります。
０を設定すると形状補正機能を無効にします。
※ これらのパラメータは現在使用しておりません。将来用です。
◆１.５

注1. 本マクロ変数でパラメーターを読み出した場合、常にバックアップされたパラメーターが読み出されます。
注2. 本マクロ変数に書き込みを行った場合、書き込んだ値は直ちにＳＰＸ内部に反映されます。
注3. 異常な値を書き込んだ場合は、軸の制御が正常に行えなくなる可能性がありますので十分に注意して下さい。
注4. 補間時定数は、加減速たまり無しの時のみ変更可能です。

機能編

TB00‑0810F.jtd‑F29

＃2001 = 100;・・・
#2001 = #2001←ここでパラメーター変更
この間は変更されたパラメーターで動作←バックアップされたパラメーターが読み出されるためパラメーターの値が元に戻る。

７−４−９. 工具長補正データ
番号
#3000
#3001
#3002
#3003
#3004
#3005
#3006
#3007
#3008
#3009
#3010
#3011
#3012
#3013
#3014
#3015
#3016
#3017
#3018
#3019
#3100
#3101
#3102
#3103

#3000〜

デ ー タ 名 称
属性
設 定 値
工具長補正用データ１
R/W‑99999999〜99999999[Pulse]
工具長補正用データ２
R/W‑99999999〜99999999[Pulse]
工具長補正用データ３
R/W‑99999999〜99999999[Pulse]
工具長補正用データ４
R/W‑99999999〜99999999[Pulse]
工具長補正用データ５
R/W‑99999999〜99999999[Pulse]
工具長補正用データ６
R/W‑99999999〜99999999[Pulse]
工具長補正用データ７
R/W‑99999999〜99999999[Pulse]
工具長補正用データ８
R/W‑99999999〜99999999[Pulse]
工具長補正用データ９
R/W‑99999999〜99999999[Pulse]
工具長補正用データ10
R/W‑99999999〜99999999[Pulse]
工具長補正用データ11
R/W‑99999999〜99999999[Pulse]
工具長補正用データ12
R/W‑99999999〜99999999[Pulse]
工具長補正用データ23
R/W‑99999999〜99999999[Pulse]
工具長補正用データ14
R/W‑99999999〜99999999[Pulse]
工具長補正用データ15
R/W‑99999999〜99999999[Pulse]
工具長補正用データ16
R/W‑99999999〜99999999[Pulse]
工具長補正用データ17
R/W‑99999999〜99999999[Pulse]
工具長補正用データ18
R/W‑99999999〜99999999[Pulse]
工具長補正用データ19
R/W‑99999999〜99999999[Pulse]
工具長補正用データ20
R/W‑99999999〜99999999[Pulse]
第１軸工具長補正データ
R/W‑99999999〜99999999[Pulse]
第２軸工具長補正データ
R/W‑99999999〜99999999[Pulse]
第３軸工具長補正データ
R/W‑99999999〜99999999[Pulse]
第４軸工具長補正データ
R/W‑99999999〜99999999[Pulse]
工具長補正機能＜オプション＞用のデータです。

機能編

TB00‑0810F.jtd‑F30

７−４−１０. ポジションデータ
番号#
#4000
#4001
#4002
#4003
#4004
#4100
#4101
#4102
#4103
#4104
#4200
#4201
#4202
#4203
#4204
#4300
#4301
#4302
#4303
#4304

デ ー タ 名 称
第１軸指令位置
第１軸機械位置
第１軸偏差量第１軸最新ﾌﾞﾛｯｸ払出量
第１軸絶対位置
第２軸指令位置
第２軸機械位置
第２軸偏差量第２軸最新ﾌﾞﾛｯｸ払出量
第２軸絶対位置
第３軸指令位置
第３軸機械位置
第３軸偏差量第３軸最新ﾌﾞﾛｯｸ払出量
第３軸絶対位置
第４軸指令位置
第４軸機械位置
第４軸偏差量第４軸最新ﾌﾞﾛｯｸ払出量
第４軸絶対位置#4000〜
属性
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R

設 定 値 ‑99999999‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]○ 第１軸〜第４軸指令位置
論理座標系＊における、ＰＬＭＣ−４０コントローラから出力した指令位置です。
○ 第１軸〜第４軸機械位置
論理座標系＊における、エンコーダＦＢを積算した位置情報です。
＊
論理座標系は、原点設定コマンドにより、原点セットされます。
○ 第１軸〜第４軸偏差量
指令位置と機械位置の差分です。
○ 第１軸〜第４軸最新ステップ払出量
最新の移動指令で出力した移動量です。
○ 第１軸〜第４軸絶対位置
機械原点からの絶対位置です。

７−４−１１. センサーラッチポジションデータ #5000〜
番号
#5000
#5001
#5002
#5003
#5100
#5101
#5102
#5103

デ ー タ 名 称
第１軸センサーラッチ論理座標
第２軸センサーラッチ論理座標
第３軸センサーラッチ論理座標
第４軸センサーラッチ論理座標
第１軸センサーラッチアブソ座標
第２軸センサーラッチアブソ座標
第３軸センサーラッチアブソ座標
第４軸センサーラッチアブソ座標

属性
R
R
R
R
R
R
R
R

設 定 値
‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]‑99999999〜99999999[Pulse]○ 第１軸〜第５軸センサーラッチ論理座標
センサーラッチ入力があった時の論理座標値です。
○ 第１軸〜第５軸センサーラッチアブソ座標
センサーラッチ入力があった時のアブソ座標値です。

機能編

TB00‑0810F.jtd‑F31

７−４−１２. フィードバックカウンタ積算値
各フィードバックカウンタの積算値です。
ＰＬＭＣ−４０起動時の初期値は０です。
本変数に書き込むことで積算の初期値を設定できます。
単位は、ＦＢ信号のパルスそのもの(任意分周の前)です。
番号
#5500
#5501

デ ー タ 名 称
第１フィードバックカウンタ積算値
第２フィードバックカウンタ積算値

７−４−１３. ＨＥＸ 入力データ
番号
#6001
#6002
#6003
#6004
#6005
#6006
#6007
#6008
#6009
#6010
#6011
#6012
#6013

属性
R/W
R/W

設 定 値
‑2147483648〜2147483647[Pulse]‑2147483648〜2147483647[Pulse]#6000〜

デ ー タ 名 称
ＨＥＸ入力１
ＨＥＸ入力２
ＨＥＸ入力３
ＨＥＸ入力４
ＨＥＸ入力５
ＨＥＸ入力６
ＨＥＸ入力７
ＨＥＸ入力８
ＨＥＸ入力９ＨＥＸ入力１０
ＨＥＸ入力１１
ＨＥＸ入力１２
ＨＥＸ入力１３

属性
R
R
R
R
R
R
R
R
R
R
R
R
R

設

定 値
0 〜 150 〜 150 〜 150 〜 150 〜 150 〜 150 〜 150 〜 150 〜 150 〜 150 〜 150 〜 150 〜 15○ ＨＥＸ入力
汎用入力のON/OFF状態を４ＢＩＴバイナリ値として、読み込みます。
各汎用入力とＨＥＸ入力の対応は以下の通りです。
データ
名 称
ＨＥＸ入力１
ＨＥＸ入力２
ＨＥＸ入力３
ＨＥＸ入力４
ＨＥＸ入力５
ＨＥＸ入力６
ＨＥＸ入力７
ＨＥＸ入力８
ＨＥＸ入力９ＨＥＸ入力１０
ＨＥＸ入力１１
ＨＥＸ入力１２
ＨＥＸ入力１３

Ｄ３
RI03
RI07
RI11
RI15
RI19
RI23
RI27
RI31
RI35
RI39
RI43
RI47

Ｄ２
RI02
RI06
RI10
RI14
RI18
RI22
RI26
RI30
RI34
RI38
RI42
RI46

ビット
Ｄ１
RI01
RI05
RI09
RI13
RI17
RI21
RI25
RI29
RI33
RI37
RI41
RI45

Ｄ０
RI00
RI04
RI08
RI12
RI16
RI20
RI24
RI28
RI32
RI36
RI40
RI44
RI48

機能編

TB00‑0810F.jtd‑F32

７−４−１４. 内部データ#7000〜

７−４−１４−１. ドリフト補正値
番号
#7000
#7001
#7002
#7003

デ ー タ 名 称
第１軸ドリフト補正値
第２軸ドリフト補正値
第３軸ドリフト補正値
第４軸ドリフト補正値

属性
R
R
R
R

設 定 値
‑32767 〜 +32767‑32767 〜 +32767‑32767 〜 +32767‑32767 〜 +32767

属性
R/W
R/W
R/W
R/W

設 定 値
0:フリー、1:インタロック
0:フリー、1:インタロック
0:フリー、1:インタロック
0:フリー、1:インタロック

属性
R/W
R/W
R/W
R/W

設 定 値
0:フリー、1:ネグレクト
0:フリー、1:ネグレクト
0:フリー、1:ネグレクト
0:フリー、1:ネグレクト

７−４−１４−２. 軸インタロック
番号
#7100
#7101
#7102
#7103

デ ー タ 名 称
第１軸インタロック
第２軸インタロック
第３軸インタロック
第４軸インタロック

７−４−１４−３. 軸ネグレクト
番号
#7200
#7201
#7202
#7203

デ ー タ 名 称
第１軸インタロック
第２軸インタロック
第３軸インタロック
第４軸インタロック

機能編

TB00‑0810F.jtd‑F33

２つの動作プログラム、バックグランドタスク及び例外処理のためのタスクをユーザが自由に作成できます。各々のタスクの記述は、通常の運転プログラムと同様にテクノコードでおこないます。
７−４−１５. ２系列運転

マスタープログラム／スレーブプログラム

２つの動作プログラムを並列に進行できます。待ち合わせやお互いのインターロックも可能です。
【マスター】【スレーブ】
ＰＲＧ.□□

起動
ＰＲＧ.△△

ＰＲＧ.△△
この間は、２つの動作プログラムが同時進行します

ＥＮＤ
応用例

ＥＮＤ

２ヘッドマシン
２台のマシンの制御ロボットとローダの制御組立実装機、加工機
３軸ロボット＋１軸のローダを同時制御

７−４−１６. バックグランドタスク(B.G タスク)
自動／手動ﾓｰﾄﾞによらず、いつもバックグランドタスクが動作します。
機械の基本的な制御(油圧やシリンダ、ワーク搬入／搬出など)をB.G タスクで処理す
れば、シーケンサは不要です。
【簡単な事例】

油圧SW ON ?

BG TASK

SW1
Ｙ
油圧ポンプ

コンベアSW ON ?

SW2
Ｙ
コンベア起動

材料切れ？

センサー
Ｙ
コンベア停止パトライトON

終了SW ?

SW3

入力信号
略称
名称
汎用入力
ＳＷ１ 油圧起動
RI00
ＳＷ２ コンベア
RI01
ｾﾝｻｰ
材料切れ
RI02
ＳＷ３ 終了
RI03

出力信号
名 称
油圧ポンプON
コンベアON
パトライト

汎用出力
RO00
RO01
RO02

TIM 0.5；
ONR00
JNR00；
TIM 0.5；
ONR01
JNR01；
TIM 0.5；
IF #6001&4；
OFR01；
OFR01 ONR02 JNR02；
ONR02；(1ステップでも記述可)
ENDIF；
IF #6001&8；
OFR00；
OFR00 OFR01 JNR03；
OFR01；(1ステップでも記述可)
ENDIF；
END

Ｙ
油圧コンベアOFF
END

機能編

TB00‑0810F.jtd‑F34

７−４−１７. ＥＸＩＴタスク
動作プログラム中の入力判別でEXIT条件が発生したときに、このタスクが起動します。
例

ネジ締め不良ワーク／部品切れ
ワーククランプミス

例外処理は、ＥＸＩＴタスクで処理します。

【簡単な事例】
EXIT

EXIT条件の判別

処理１
フィーダ１停止
パトライトＯＮ
処理２
フィーダ２停止
パトライトＯＮ

７−４−１８. アラームタスク
アラームが発生した時の処理・動作を定義できます。
アラーム情報、各種内部ステータスが変数として読み出せるので、各アラーム要因別に処理することも可能です。
【簡単な事例】
アラーム
周辺装置全停止
パトライト/ブザー出力
特定の出力コードで上位シーケンサへ知らせる
END
７−４−１９. リセットタスク
リセット入力(操作)が発生した場合にリセットタスクが起動します。
【簡単な事例】
リセット入力/操作(サーボオン)
タイマー
特定の出力ＯＮ
タイマー
ホーム位置決めEND

機能編

TB00‑0810F.jtd‑F35

７−４−２０. 割込みタスク＜開発中＞

外部入力を割込み要因として、割込みタスクが起動します。
割込みタイミングでの位置の計測、特殊な動作シーケンスなどに応用できます。
【簡単な事例】
ＨＩＯ入力

ラッチPOS
変数へ記憶
Ｚ軸上昇
特定の出力のON/OFF
END

７−４−２１. マルチタスク仕様説明＜オプション＞
通常のタスク（マスタータスク）の他に、６種のタスクがあり、最大３つのタスク（プログラム）
を並列に実行する事が出来ます。
各タスクでそれぞれ起動方法が異なり、ＲＯＭＳＷにて有効にするタスクを選択します。
３つ以上のタスクの実行が重なった時は、下記の優先順位に従って実行します。
（優先順位の低いタスクは実行を停止して、実行タスク数に空きが出来たら再開します。）
各タスクの優先順位
ｱﾗｰﾑﾀｽｸ > EXITﾀｽｸ > 割り込みﾀｽｸ > ﾘｾｯﾄﾀｽｸ > ﾏｽﾀｰﾀｽｸ > ｽﾚｰﾌﾞﾀｽｸ > ﾊﾞｯｸｸﾞﾗﾝﾄﾞﾀｽｸ◆１.５

各タスクの特徴
タスク
マスター

起動方法
スタート入力備考
通常のプログラムﾊﾞｯｸｸﾞﾗﾝﾄﾞ

ﾏｽﾀｰﾀｽｸからﾌﾟﾛｸﾞﾗﾑ番号を指定して起動（PRG□□）
電源投入

リセット

リセット入力アラーム

アラーム発生時

単独で実行する時は、マスタータスクとして実行して下さい軸移動命令は実行不可
エンドレス実行（サイクリック）
動作ﾓｰﾄﾞ､ｱﾗｰﾑ等に関わらず動作し続けます
ﾊﾞｯｸｸﾞﾗﾝﾄﾞﾀｽｸ以外のﾀｽｸを強制終了した後、起動されますﾘｾｯﾄﾀｽｸ動作中のﾘｾｯﾄ入力では、ﾘｾｯﾄﾀｽｸの強制終了になります。
現在未対応

ＥＸＩＴ

汎用入力のＥＲ/ＥＮＲ□□が成立した時
INT0が入力された時現在未対応（

スレーブ

割り込み
注記

・マスタ−／スレーブプログラムのプログラム容量はＲＯＭＳＷの「ﾌﾟﾛｸﾞﾗﾑ分割数」によります。
マスタ−、スレーブタスク以外のプログラム容量は、それぞれ199ｽﾃｯﾌﾟ、19ﾗﾍﾞﾙです。
・動作の完了していない軸に対して、他のタスクから命令を実行しようとすると、「ﾌﾟﾛｸﾞﾗﾑ実行ｴﾗｰ」になります。
・セッティングＰＣの"マルチタスク画面"で、各タスクに対して個別にスタート、
ストップ、リセットの操作をする事が出来ます。
・各タスクのプログラム記述方法は同一です。

バックグランドタスクで実行できない命令
ＰＴＰ□，ＬＩＮ□，ＳＬＩＮ，ＰＴＭＡ，ＣＩＲＬ□，ＣＩＲＲ□

機能編

TB00‑0810F.jtd‑F36

７−５. 運転プログラム フォーマットエラー／実行エラー
７−５−１. 「テキストフォーマットエラー」
運転プログラムをダウンロードする時にチェックします。
エラーが発生したステップ番号（行）及び、その前後の行をご確認下さい。
□ テキストフォーマットエラー要因＜テクノコード／Ｇコード共通＞
・プログラム１ステップの長さが4096文字以上（コメントは除く）
・未定義コードを指定した

有効なコードの詳細については、
６−１−１ テクノコード指令一覧
６−１−４ Ｇコード指令一覧
６−２−１ 付加データアドレス付き数値指定を参照下さい。

・同一コードの２重指定・プログラム１ステップ内に、同時に指令できない指令コードが同時に指令されている
・文字コードに続く数値指定にて、数字,"‑","+","."以外の指定・円弧半径指定が０・補間指令時、Ｆ指定が０、またはＦ指定がない（Ｆ指定は、モーダルＦも含みます）
・円弧指令にて、円弧補間を行う２軸のどちらも指令されていない（１軸のみ指定した場合、他の軸は０とみなします）
・円弧指令にて、半径指定と中心指定が同時に行われていた
・半径指定円弧にて、始点と終点が同じ（一周円が指令された）・半径指定円弧にて、始点から終点までの直線距離が円弧直径より大きい（終点が円弧上にない）
・半径指定円弧にて、平面指定が行われていない・中心指定円弧にて、中心指定が無い
・プリ解加減速指定にて、Ｐ１〜Ｐ３以外が指定された・不要な指定を行った。（例：ＰＴＰでのＦ指定）
・演算指令ステップにて、左辺値に対して単項演算子を付加した＜テクノコードのみ＞◆１.５

・入出力制御指定（"ENR","ER","JNR","JR","SNR","SR","WNR","WR","OFR","ONR"）を、
１ステップ内に５つ以上行った。
・円弧指令以外で平面指定を行った。
・"CALL","JMP"指令以外でラベル指定を行った。

機能編

TB00‑0810F.jtd‑F37

・半径指定円弧にて、平面指定が間違っている
・プリ解加減速指定にて、加速("P1","P3")が指定された時、前ステップのＦが現ステップのＦより大きいか、同じ
・プリ解加減速指定にて、減速("P2","P3")が指定された時、次ステップのＦが現ステップのＦより大きいか、同じ・バックグランドタスクにて、"PTP","PTPA","PTPB","LIN","LINA","LINB","SLIN","CIRR","CIRL","CIRRA","CIRLA","SPIN","PTMA"指令,または、ポイントデータ指定が行われた
・"CALL","JMP"指令にて、呼び出しラベルの指定がない
・"CALL"指令にて、呼び出し回数が50000回以上
・ＤＮＣ運転にて、"CALL","JMP","PTMA"指令、ラベル指定、ポイントデータ指定を行った
・"PTMA"指令にて、ポイント指定がない
・スレーブタスクプログラム中にて、スレーブタスクプログラム起動指令を指令した。
・スレーブタスクプログラム起動指令にて、１２以上のプログラム番号を指定した。
・プログラムステップのラベルが重複している
・総ラベル数以上のラベルを設定した。
・プログラムステップに、指令コードがない
・"CALL","JMP"指令にて、呼び出し先ラベルがない
・即値指定の"PTMA"指令にて、指定しているポイントがポイントテーブルにない＜Ｇコードのみ＞
・Ｍコード指定にて、２５５以上を指定
・Ｓコード指定にて、±320000以上を指定
・バックグランドタスクにて、"G0","G1","G2","G3","G28","G31","G100","G120"指令,または、
ポイントデータ指定が行われた
・アブソ指令に、プリ解加減速を指定した
・ＤＮＣ運転にて、"M98","M99","G100"を指令した
・"G100"指令にて、ポイントの指定がない・ポイントデータ指定にて、ポイント番号指定が連番になっていない・"G04"指令にて、Pコード指定がない
・"G43"指令にて、Hコード指定がない
・"M98"指令にて、呼び出し先がプログラムに存在しない
・"即値指定のG100"指令にて、指定しているポイントがポイントテーブルに存在しない

機能編

TB00‑0810F.jtd‑F38

７−５−２. 「プログラム変換計算エラー」
運転プログラムをダウンロードする時にチェックします。
□ プログラム変換計算エラー要因
・円弧補間ステップにて、内部計算で算出された円弧半径が０になった

７−５−３. 「プログラムバファオーバーフロー」
運転プログラムをダウンロードする時にチェックします。
□ プログラムバッファオーバーフロー要因
・プログラムステップ数が最大ステップ数を超えた・プログラムステップとポイントデータの合計がプログラム容量を超えた

７−５−４. 「プログラム実行エラー」
実運転中にチェックします。
□ プログラム実行エラー要因＜テクノコード／Ｇコード共通＞
・サーボＯＦＦ時に、以下の指令を行った
ＰＴＰ移動（ﾎﾟｲﾝﾄ位置決め） "PTPx"／"G0","G28"
直線補間移動"LINx","SLIN"／"G1","G31"
円弧補間移動"CIRL","CIRR","CIRLA","CIRRA"／"G2","G3"
工具長補正指令"THSET","THOFF"／"G43","G49"
論理座標設定指令"CSET"／"G92"
ポイント位置決め指令"PTMA"／"G100"
接線制御指令"TURN"／"G112"
無限回転軸回転指令"SPIN"／"G120"
・以下の移動指令の軸指定にて、ＳＰＩＮ動作（"SPIN"／"G120"）中の軸を指定した
ＰＴＰ移動（ﾎﾟｲﾝﾄ位置決め） "PTPx"／"G0","G28"
直線補間移動"LINx","SLIN"／"G1","G31"
円弧補間移動"CIRL","CIRR","CIRLA","CIRRA"／"G2","G3"
ポイント位置決め指令"PTMA"／"G100"・以下の移動指令の軸指定にて、インタロック中の軸を指定した
ＰＴＰ移動（ﾎﾟｲﾝﾄ位置決め） "PTPx"／"G0","G28"
直線補間移動"LINx","SLIN"／"G1","G31"
円弧補間移動"CIRL","CIRR","CIRLA","CIRRA"／"G2","G3"
ポイント位置決め指令"PTMA"／"G100"
無限回転軸回転指令"SPIN"／"G120"
・主軸オプション無しの状態で、主軸ON/OFF（M3/M4/M5）指令を行った・サブプログラム呼び出し指令（"CALL"／"M98"）のネストが20レベル上になった・ポイント位置決めオプション無しの状態で、ポイント位置決め指令を行った

機能編

TB00‑0810F.jtd‑F39

・ポイント位置決め指令で指定されたポイントデータが無い
・接線制御オプション無しの状態で、接線制御有効／無効、接線制御Ｚ軸回転指令を行った
接線制御有効指令"STNE"／"G110"
接線制御無効指令"STND"／"G111"
接線制御Ｚ軸回転指令"TURN"／"G112"
・接線制御無効の時に、接線制御Ｚ軸回転指令を行った・接線制御Ｚ軸回転指令にて、接線方向指定無し、かつ、次ブロックに第３軸移動が指令されている
・接線制御Ｚ軸回転指令にて、接線方向指定無し、かつ、次ブロックに第１軸、第２軸ともに移動指定が無い
・工具長補正オプション無しの状態で、工具長補正有効／キャンセル指令を行った
工具長補正有効"THSET"／"G43"
工具長補正キャンセル"THOFF"／"G49"・センサーラッチオプション無しの状態で、センサーラッチ直線補間指令を行った
センサーラッチ直線補間"SLIN"／"G31"
・MOK入力有効の状態で、MOK入力がOFFでMｺｰﾄﾞ実行完了した・内部解析の円弧指令ステップで、始点から終点までの直線距離が円弧直径より大きい（終点が円弧上にない）
・内部解析の半径指定円弧指令ステップで、始点と終点が同じ（一周円が指令された）・内部解析の中心指定円弧指令ステップで、円弧始点の半径と円弧終点の半径が２パルス以上違っている
・他のタスクで使用している軸に対して、指令を行った。
・移動量のレジスタ指定、ポイント番号のレジスタ指定、ＩＦステップ、演算ステップにて、指定された番号のマクロ変数が存在しない。

機能編

TB00‑0810F.jtd‑F40

機能編

TB00‑0810F.jtd‑F41