スリーエムジャパンヘルスケアカンパニー ストッキネット プラス JS08 サイズ(幅×長さ):20.0×18.0m

イーキンジャパン イーキンパウチ コンベックス ウロ 839540 ストーマ有効径:フリー(12~40) 入数:10枚【非】お買取しました

イーキンジャパン イーキンパウチ コンベックス ウロ 839540 ストーマ有効径:フリー(12~40) 入数:10枚【非】などのオークション情報

イーキンジャパン イーキンパウチ コンベックス ウロ 839540 ストーマ有効径:フリー(12~40) 入数:10枚【非】アウトレット通販

最近はCAD/CAMシステムの普及率が高く、CAD/CAMを持っているからマクロなんて不要! 対話があるからマクロなんて不要!「#」が付いているNCプログラムなんて、わからない!と、意外とマクロ機能は避けられがちです。

しかし、加工されているワークにもよりますが、意外と同じ形状で寸法違いってありませんか? これこそ、マクロの出番です!「#」も良く見れば#に数字がくっついているだけです。
 
マクロ機能が難しいのでは無くて、マクロ機能を利用して何かを処理する内容によって難易度が変わります。まずは簡単な処理をするマクロを作成してみて下さい。マクロ機能が意外と簡単で便利であることが分かって頂けると思います。この「マクロのいろは」がお役に立てれば幸いです。

2.マクロの概要

マクロ機能は
  • 変数
  • 演算指令
  • 条件分岐
などがあります。

基本的にマクロは数値を扱うための機能で、通常、プログラムを作成するために使っているGコードやMコードと組み合わせて使います。
制御機によってマクロの呼び出し命令、変数名の付け方、システム変数、演算結果、などが異なりますので、お使いの制御機のマニュアルをご参照下さい。

3.マクロの種類

  1. カスタムマクロ
    NCプログラムと混在し、

    イーキンジャパン イーキンパウチ コンベックス ウロ 839540 ストーマ有効径:フリー(12~40) 入数:10枚【非】

    オルソグラスII プリカット4号B 193124【送料・代引手数料無料】 エルラージーマー社 肘関節モデル 4556,ポイント最大16倍_(業務用10セット) 共和 ラテックスグローブ No280 M LH-M652-M_送料無料 【まとめ買い10個セット品】3Dセンサー搭載歩数計 FB-731-RD アカ 1個 タニタ【開業プロ】.ハートフルウェアフジイ つなぎパジャマ /HP06-100 S 03ピンク,(業務用20セット) カナッペ 使い捨て防水エプロン10枚入 KN-932【日時指定不可】 とまっティシリーズ 自走用車椅子 MBY-47B 標準タイプ ミキ 【smtb-kd】【RCP】【介護用品】【車椅子】【車イス】【介助用車椅子】,(送料無料)(幸和製作所)テイコブ コンパクトシャワーチェア SCM04 背低 背付き シャワーチェア チェアー 椅子 いす バス お風呂場 おフロ スツール 洗い場 コンパクト 介護 用品 入浴 グッズ 福祉 ケア 滑り止め 持ち手 贈り物 便利 シチズン CITIZEN シチズンコレクション レディース 自動巻き 腕時計 PD7154-53P 国内正規, ギラロッシュ腕時計 Guy Laroche時計 Guy Laroche 腕時計 ギラロッシュ 時計 レディース ホワイト L2004-01 [アナログ TIMEPIECES レディースウォッチ ブラック シルバー 白 銀][ギフト プレゼント ご褒美][おしゃれ 防水 ], エンジェルハート Angel Heart 腕時計 エターナルクリスタル シルバー ET21PS, 【送料無料】腕時計 チタンブラックホークパイロットメンズウォッチオレンジ, オーバーホール ポリッシュセット SS/コンビ 3針 機械式 革ベルト;【配送日の指定不可】(業務用3セット) 【純正品】 Canon キャノン インクカートリッジ/トナーカートリッジ 【6624B001 PFI-106Y イエロー】, CANON トナーカートリッジ322II CRG?322IIBLK ブラック 大容量 1個, 【10個セット】 サンワサプライ ケーブル巻取り光学式マウス(ホワイト) MA-MA6W MA-MA6WX10(代引不可)【送料無料】【smtb-f】, 【バルセロナでポイント最大41倍】FRENZ 会議イス PN-65L オレンジ 4本脚, サカエ スモールキャビネット 均等耐荷重:引出し1段当り20kg【SL-57】;純国産 い草花ござカーペット 『ランクス総色』 ワイン 江戸間8畳(約348×352cm), 【すべり止めマット】ダイヤマットAH【92cm巾×10m】(テラモト MR-143-101)[安全 工場 通路 転倒防止 スリップ防止] 【送料無料】激安!, 【組立設置費込】日本製 一体型 脚付きマットレスベッド ポケットコイル(硬さ:ハード) セミシングル 26cm脚 『Sleepia』スリーピア ブラック 黒【代引不可】, 【エントリーでポイント5倍】フロアベッド Geluk(ヘルック) ベッドフレームのみ ダブルサイズ 棚・コンセント付き ダブルベッド ベッド ベット シンプル 北欧 ブラウン ブラック, 5000円以上送料無料 【柴田科学】SPCセパラブルカバー バンド式 120mm 4口 032350-4 ホビー・エトセトラ 科学・研究・実験 その他の科学・研究・実験 レビュー投稿で次回使える2000円クーポン全員にプレゼント;Hazukiハズキルーペ クール カラーレンズ 1.32倍 白【お取り寄せ】【ハズキルーペ】【コスメ&ドラッグNY】0824カード分割.送料無料 介助用 車椅子 ユーキトレーディング ハンディライト100 収納バッグ付 シート幅45cm 簡易 携帯型 持ち運び コンパクト ノーパンク Handy Light100 車椅子 車いす 車イス くるまいす 折り畳み 折りたたみ.安寿 ステンレス製浴槽台R あしぴたシリーズ ジャスト10 すべり止めシートタイプ 高さ10cm 536-490/1 送料無料 ★ポイント最大13倍★【全国配送可】-のびるポリエチ手袋 クリアー / 06778 100枚 L ダンロップホームプロダクツ 50ケ JAN4904510667783 kt349602 取寄品(課税)-【介護福祉用具】,【バルセロナでポイント最大41倍】ジョインテックス 足置きパーツ TH-OP16 W1600用 ★ポイント最大13倍★【全国配送可】-プラットホーム リハビリ用訓練台 高田ベッド製作所 品番【TB-944】メーカー直送品A2618-【代引不可】【介護用品TYA】JANなし.■JACUZZI・ジャグジー・5年保証付き!無料電話サポート!ショールーム商品展示!ホテル/別荘/ログハウス/家庭用浴槽・水マッサージ・ジェットバス 2535-S■ 介護靴 外出用 コンフォート2 7E(ワイドサイズ) 7014 両足 徳武産業 あゆみシリーズ /S (21.0~21.5cm) 茶,たちあっぷ CKA-02-01 補助 手すり 介助バー アシストポール 介護用品 立ち上り補助, 松岡 入浴担架 入浴担架(1)HB-140 HB-140【代引不可】, 【送料無料】介助型車いす KA402SB カワムラサイクル [車椅子 介助 アルミ製 介護用品]【代金引換不可】, 【店内全品ポイントUP中!】貝印 Kershaw ユニバーサルツメキリ LEDルーペ付き 爪切り カーショー カーショウ【0605】【RCP 送料無料 海外発送対応 即納】, ★ポイント最大13倍★【全国配送可】-フッ素樹脂製シリンジ 20mL 103×19mm サビレックス 型番700-520(シリンジ)  JAN4573310525885 aso2-8690-02 -【研究用機器】;【送料無料】ウォールナット無垢材モダンデザインダイニングシリーズ 〔Jisoo〕ジス ダイニングテーブル単品 W180【代引不可】, 国産 クリアーミラー (通常の鏡)(5ミリ厚)(四角形)(15ミリ面取り加工) 鏡 ミラー 板鏡 カット サイズカット 特注:610mmx406mm(普通鏡 通常鏡 板鏡 鏡板 ガラス鏡 鏡ガラス 洗面所 トイレ 洗面 玄関 かがみ 送料込 鏡販売 洗面鏡 トイレ鏡), 綿100%お昼寝布団5点セット ギンガムチェック 園児用 日本製 お昼寝用, パッチワークのスロー(マルチカバー)ネイビースター, ポイント最大16倍_和調柄 飛散防止ガラスフィルム サンゲツ GF-748 92cm巾 9m巻_送料無料;【送料無料】ニュー電磁ちりしゃぶ鍋 21cm QTL3821【TC】【en】, 【代引不可】【メーカー直送】 日本メタルワークス【理化学・クリーンルーム用品】 エコクリーン・スープレードル 900cc E01400000280 (4387341)【ラッピング不可】【快適家電デジタルライフ】, 【業務用】IH調理器 ローレンジ2連タイプ 【MIR-1055LB-N】【ニチワ電気】幅900×奥行750×高さ450【プロ用】, IWF031N-(R/L)E-PW 間仕切り アルシャルル 関連商品 ソフトアート ウッドワン WOODONE, キャルミル クラシックカバー 1220 321-12【ディスプレイカバー】;★ポイント最大13倍★【全国配送可】-アルミ自走車いす 中床タイプ スイングアウト式 標準フレーム:シルバー / AYO22-42-45 No.84 カワムラサイクル 1ケ JAN4514133027354 kt261954 取寄品(非課税)-【介護福祉用具】 ★ポイント最大13倍★【全国配送可】-アルミ自走車いす 中床タイプ エレベーティング&スイングアウト式 オプションフレーム:レッド / AYO22-45-45EL No.68 カワムラサイクル 1ケ JAN4514133058839 kt263102 取寄品(非課税)-【介護福祉用具】.

    Tags:★ポイント最大13倍★【全国配送可】-アルミ自走車いす NA-426W / 座幅40cm PM-Y3 日進医療器 1ケ JAN kt247058 取寄品(非課税)-【介護福祉用具】;【クーポン利用で10%OFF】正規品 ZEPPELIN ツェッペリン 7680M2 メンズ腕時計 送料無料, インヴィクタ Invicta メンズ 17045 プロ ダイバー アナログ ディスプレイ Japanese オートマチック Two トーン ウォッチ (海外取寄せ品), 【5年保証対象】セイコー 腕時計 SEIKO 時計 セイコー 時計 SEIKO 腕時計 ドルチェ&エクセリーヌ DOLCE&EXCELINE レディース 白蝶貝 SWCW136 [ 定番 人気 ブランド ビジネス カジュアル シンプル 白蝶貝 ソーラー 電波時計 シルバー メタル プレゼント ギフト ][送料無料], 【送料無料】腕時計  アナログブレスレットwoodford 1216 montre de poche quartz analogique bracelet, 【送料無料】腕時計 wristwatch*4gb8gb4gbミニdv dvr spyカムコーダービデオテープレコーダーcool wrist watch wristwatch*4gb8gb 4gb mini dv dvr spy camcorder video re!【イーストアイ セーフティーアーム ロレータ SSタイプ /RSAS-G グリーン】;★ポイント最大13倍★【全国配送可】-五十畑プライベートスクリーン小型(4枚組)ライトブルー 五十畑工業 品番【H032B】メーカー直送品D0037101-【代引不可】【介護用品TYA】JAN1400371019004;★ポイント最大13倍★【全国配送可】-TOYトイ渡し /     一歩 1ケ JAN kt357445 取寄品(課税)-【介護福祉用具】;【送料無料】須恵廣工業 シルバーカー スイートIII ダークパープル 668【同梱・代引不可】;マキライフテック 折りたたみシャワーベンチ ソフテック 背付き SBF-11(折りたたみ式 介護入浴 お風呂椅子)介護用品;【送料無料】ナビス ボディサポート (成人用(前パッド付)/ターコイズブルー) 0-6789-09;

    、NCプログラムから呼び出して実行します。NCプログラムと独立して動作することは出来ません。
    殆どの制御機で利用可能です。
  2. リアルタイムマクロ
    NCプログラム内にリアルタイムマクロ指令を記述しますが、NCプログラムと独立して動作しますので、マクロプログラムの条件によって実行を開始します。
    従いまして、NCプログラムを実行中に、リアルタイムマクロも同時実行できます。

変数について その1

4.変数

前述でマクロは数値を扱うと表現しましたのはこの変数にあります。
通常、NCプログラムはGコードと移動座標を数値で表します。
例えば、早送りでX50.相対的に移動する命令はG91G00X50.;と指令します。
これを、変数を用いて指令しますと以下のようになります
※ 変数へ数値を代入する場合、小数点以下が無ければ小数点を省略できます。
このように変数は数値を格納し、数値の変わりに使うことが出来ます。
更に #1=#1+50 とすることで、変数 #1 に 50 を加算することも出来ます。

5.変数の記述方法

直接番号を記述する
演算命令を使って変数の数字を指令する

6.変数の精度と範囲

マクロ変数の有効桁数は、一般的に10進8桁の小数点以下3桁と10進9桁の小数点以下4桁があります。これ以上の数値を扱える制御機もありますが、あまりにも大き過ぎるデータを代入しますと演算誤差が生じ、判定ミス、若しくはアラームになりますのでご注意下さい。

変数について その2

7.変数の種類

変数には変数の番号により、ローカル変数、コモン変数、システム変数に分かれます。
システム変数には読み取り専用のモノ、書き込み専用のモノが存在するなど、それぞれ用途、特性がことなります。また、一部の変数は電源をオフにしても、数値を保持する変数もあります。
  1. ローカル変数(#1~#33)
    プログラム内で有効な数値を保持する変数をローカル変数と言います。
    同じ変数であってもプログラムが異なる(例えばプログラムO1の#1と、プログラムO2の#1)場合、変数はそれぞれ別の意味を持つことが出来ます。
    また、ローカル変数はマクロを呼出す際に数値を渡すことにも使われます。

    例えば、G65P1000A100.B50.C70.;と命令しますと、O1000のマクロを呼出すと同時にO1000プログラムの#1にアドレスAの値、#2にアドレスBの値、#3にアドレスCの値が渡されます。このG65に続く数値を引数と言い、アドレスとローカル変数の番号が決まっています。



    ローカル変数としては#1~#33まで使えますが、引数指定できるアドレスには制限がありますので、ご注意下さい。
    アドレス(引数)とローカル変数番号の対応表を以下に示します。
    利用の可
    /不可
    引数アドレス
    ローカル
    変数番号
    A
    #1
    B
    #2
    C
    #3
    D
    #7
    E
    #8
    F
    #9
    ×
    G
    #10
    H
    #11
    I
    #4
    J
    #5
    K
    #6
    ×
    L
    #12
    M
    #13
    ×
    N
    #14
    ×
    O
    #15
    ×
    P
    #16
    Q
    #17
    利用の可
    /不可
    引数アドレス
    ローカル
    変数番号
    R
    #18
    S
    #19
    T
    #20
    U
    #21
    V
    #22
    W
    #23
    X
    #24
    Y
    #25
    Z
    #26
     
     
    #27
     
     
    #28
     
     
    #29
     
     
    #30
     
     
    #31
     
     
    #32
     
     
    #33
  2. コモン変数(#100~#199、#500~#999)
    一つのプログラム内で有効なローカル変数に対し、コモン変数はすべてのプログラムにおいて共通です。 よって、O1プログラムで#100に代入した値をO2で参照することが出来ます。

    制御機によりすべて利用する場合はオプションが必要ですので、使用する変数番号が利用可能であるかを事前に調べておいて下さい。
    (#550~#999までがオプションとなっている場合があります。)

    コモン変数はプロテクトを掛けるために読取り専用にすることも出来ます。
    (制御機により出来ない場合もあります。)
    #100~#199は電源をオフにしますと消去されますが、#500~#999は電源をオフにしても数値を保持しておりますので、使用目的に合わせて変数番号を決めるようにして下さい。

8.未定義変数と変数の引用

システムの状況の取得、そして取得するためにシステムへ情報を渡すための数値をセット(代入)するなど、使用用途が決まっている変数です。
例えば、現在使用している工具径補正番号を取得し、補正値を書き換える場合など、システムの情報を必要とする処理を実行する際に利用します。
この変数は制御機によって番号が異なりますので、お持ちのマニュアルをご参照下さい。

9.代入する際の小数点の扱い

変数に数値を代入する際、小数点を付けなかった場合は、最後に小数点を付けた数値とみなされます。 但し、オフセット番号などに変数を用いた場合には、小数点が省かれた状態になります。

分岐と繰り返し その1

10.分岐と繰り返し その1

Xプログラムの流れ(処理順序)を制御(変更)することができる指令です。 指令には以下の3種類があります。・無条件分岐 ・条件分岐 ・繰り返し
※これらの機能はメモリ運転の場合に限り有効です。 もし、DNC運転など外部からデータを取り込みながらの運転では、利用することが出来ません。
  1. .無条件分岐 「 GOTO n 」(n:シーケンス番号)
    GOTOの後に続く番号にシーケンス番号を指令しますと、プログラム内の指令されたシーケンス番号へ無条件にジャンプします。
  2. 条件分岐 「 IF [ 条件式 ] GOTO n 」 (n:シーケンス番号)
    件式が成立した(真)場合、GOTOの後に続く指定されたシーケンス番号へジャンプします。

     条件式は以下のとおりです。
    演算子
     
    意味
    #1  EQ  #2
    #1と#2が等しい。
    #1  NE  #2

    #1と#2が等しくない。
    #1  GT  #2
    #1が#2より大きい。
    #1  GE  #2
    #1が#2以上。
    #1  LT  #2
    #1が#2より小さい。
    #1  LE  #2
    #1が#2以下。
    ※空の変数であるかを判定する場合は、#0変数を利用します。


    ※ 制御機により IF [条件式]  THEN  {マクロ文}   という指令が使えます。
    この場合は条件式が成立した(真)場合、THENに続く後のマクロ文を実行します。

分岐と繰り返し その2

10.分岐と繰り返し その2

3.繰り返し「WHILE [条件式] DO n ・・・ END n 」 (n:WHILE文の識別番号)

条件式が成立している間、DOに続く番号と同じ番号を持つEND 番号の間のプログラムを実行します。 WHILE [条件式] DO n ・・・ END nは、必ずペアで使います。



多重指定も可能ですが、指令文間にまたがるような記述は出来ません。
識別番号は、実行した後であればもう一度、同じ番号が使えます。

※ 識別番号 パネル製クリーンブースP7-303020【02P06Aug16】、多重数は制御機により指定できる番号に制限がありますので、お使いの制御機のマニュアルを参照下さい。

演算指令

11.演算指令

変数間で種々の演算を行なうことが出来ます。演算指令は通常の算術式のように記述します。
#i = < 式 >
< 式 >は、定数、変数 ★ポイント最大13倍★【全国配送可】-高温恒温槽 -28~200℃ JULABO 型番F25-MA  JAN4573359948379 aso1-2754-02 -【研究用機器】、関数または、演算子による結合です。
下記にある#j,#k変数の代わりに定数を使用することも出来ます。 また、前述にもありましたが、小数点の無い値は末尾に小数点があるものとみなされます。

※1 制御機によって計算結果 ★ポイント最大13倍★【全国配送可】-サーマルロボ TR-4α オイルバス アズワン 型番TR-4α  JAN4582110968464 aso1-5832-34 -【研究用機器】、記述方法が異なります。
※2 制御機によってこの指令は使えません。


演算で注意すべき点は、角度の単位、計算結果の数値の丸め、演算の優先順位などです。また、2引数のATAN演算指令を持つ制御機の場合も制御機により解が異なりますので、注意が必要です。

ATAN演算指令から返される解のチェックを事前にされることをお勧めします。 チェックするにはコモン変数へ解を代入するようにします。

返される解が、-180~180であるか、0~360であるかを調べます。
もし、希望される数値で無かった場合、パラメータで変更できないかを調べ ★ポイント最大13倍★【全国配送可】-メンブレンフィルター(セルロース混合エステル) 0.8μm×φ25mm 100枚入 AAWP02500 メルク 型番AAWP02500 aso2-3043-74 -【研究用機器】、変更可能であれば変更します。 出来ない場合はNCプログラムに判定する処理を追加し、対応します。
演算の種類
演算指令
意味
定義、置換
#i = #j
変数の定義、または置換
加法形演算
#i = #j+#k
#i = #i – #k
#i = #j OR #k
#i = #j XOR #k
加算
減算
論理和(32ビットの各ビット毎)
排他的論理和(32ビットの各ビット毎
乗法形演算
#i = #j * #k
#i = #j / #k
#i = #j AND #k
#i = #j MOD #k
乗算
除算
論理積(32ビットの各ビット毎
余り(#j,#kは整数に丸めてから余りを求めます。
#jが負の場合、#iも負になります。)
関数
#i = SIN[#j]
#i = COS[#j]
#i = TAN[#j]
#i = ASIN[#j]
#i = ACOS[#j]
#i = ATAN[#j]
#i = ATAN[#j]/[#k]
#i = ATAN[#j,#k]
#i = SQRT[#j]
#i = ABS[#j]
#i = BIN[#j]
#i = BCD[#j]
#i = ROUND[#j]
#i = FIX[#j]
#i = FUP[#j]
#i = LN[#j]
#i = EXP[#j]
#i = POW[#j]
#i = ADP[#j]
正弦(単位:DEG)
余弦(単位:DEG)
正接(単位:DEG
逆正弦
逆余弦
逆正接(1引数)、ATNでも可。※1
逆正接(2引数) 【アズワン】 ステンレス丸棒MRSUP-φ36×600【02P06Aug16】、ATNでも可。※2
同上※2
平方根、SQRでも可。
絶対値
BCDからBINARY変換
BINARYからBCD変換
四捨五入、RNDでも可
少数点以下切捨て
小数点以下切上げ
自然対数
e (2.718…)を底とする指数。
べき乗(#jの#k乗)※2
少数点付加※2

マクロ呼び出し

12.マクロ呼び出し

制御機の種類によってGコードが異なる場合がありますが、一部の制御機の除き、命令の種類、フォーマットは殆ど同じです。 以下の呼出し指令があり、指令方法により実行方法が異なります。 またMDIモードからも呼出すことが出来ます。
  1. 単純呼び出し命令(G65)
    指令されたブロックのみ有効です。 NC文から呼び出され一度実行し、終了します。
  2. モーダル呼出し[移動指令呼び出し](G66)
    G66からG67の間に移動指令があるブロックに遭遇しますと、実行します。
    移動指令では無いブロックでは実行しません。
  3. モーダル呼出し[毎ブロック呼び出し](G66.1)
    G66.1からG67の間の、1ブロックごとに実行します。
    G66と違い1ブロックごとに実行します。
  4. モーダル呼出しキャンセル(G67)
    モーダル呼出しマクロモードをキャンセルする際に指令します。
    モード中以外にG67を指令しますと、アラームになりますので注意が必要です。
  5. Gコードマクロ呼び出し
    制御機により利用可能Gコード番号は異なりますが、G65P□□□□、G66P□□□□、G66.1P□□□□の変わりにGコードによりマクロ呼出しを指令することができます。

14.マクロの多重呼び出し

呼出されたマクロプログラムから更にマクロプログラムを呼び出すことを多重呼出しと言います。
 
制御機にもよりますが、マクロの多重呼出しは単純呼び出しとモーダル呼出しを合わせて4重まで、若しくは5重までが一般的です。

多重呼出しは多重度とローカル変数に注意が必要です。

14.マクロの多重呼び出し

G65以外のGコード(小数点付きを含む)、Tコード ★ポイント最大13倍★【全国配送可】-メノー乳鉢 深型 70×90×33  乳棒付き 型番  JAN4573237710227 aso6-547-04 -【研究用機器】、Sコード、Mコード、若しくは特定アドレスと番号により、サブプログラムの呼び出しが可能です。
(この指令を使うにはパラメータの設定が必要です。 パラメータの設定については御使いの制御機のマニュアルを参照下さい。)

この指令ではコードと呼出されるサブプログラム番号が1対1に対応付けられ、Pのプログラム番号の指令は不要です。 但し、殆どの制御きで、マクロ呼出し指令(G65~G67)と異なり、繰り返し指令を使うことが出来ません。

マクロのサンプル

サンプルマクロ

マクロ機能を知っていても、目的が無いとなかなかマクロを作成することがありません。
そこで、もっとマクロ機能を身近に感じて頂こうと思い、簡単なマクロサンプルを作成してみました。
  ※実機での動作確認はしておりますが、機種により仕様がことなりますので、お客様の責任においてご使用下さい。

マクロ機能の説明

4軸の横型マシニングで、ロータリー軸を持っている機械のロータリー軸角度が360度以上であった場合、原点復帰する際にゼロになるまで復帰動作を行います。
この動作を360度以内にまるめる処理をします。(但し、ロータリー軸が近回りの設定にされていない場合に限り有効なマクロです。)
また、引数を指定した場合はロータリー軸の原点復帰も行います。

現在の機械の状態を取得するためにシステム変数を利用します。
内容
FANUC 18i以上では
MATRIX(MC系)では
現在の状態がG90 or G91
#4003
#4203
現在のロータリー軸角度
#5044
#5044
例題ではFANUC 18i以上の場合で説明します。
O9010
(RESET ROTARY AX)
#29=#[4000+3]
(現在、G90かG91かをシステム変数から取得)
#110=#[5040+4]
(現在、ロータリー軸のワーク座標系での位置を取得)
#30=#110/360.
(ロータリー軸の角度が何回回転したかを求める)
#30=FIX[#30]
(小数点以下を切り捨てした回転回数にまるめる)
IF[ABS[#30] LT 1]GOTO 999
(1回転以下なら処理をしないで終了)
#111=#110-[#30*360]
(現在の位置を360度以内の角度に換算する)
G90G92B#111
(360度以内の角度になるようにロータリー角度を書替える)
IF[#2 EQ #0]GOTO 901
(マクロを呼出しで引数を指定していない場合は書替えで終了)
G91G28B0
(B0と引数指定していた場合は復帰)
N901
G#29
(書替え処理でG90にしていたので、もとの状態に戻す)
N999
M99
(プログラム復帰)
※このマクロではロータリー軸をBとしておりますが 、機械によってもしくは回転軸によってアドレスがかわりますので、その場合はA、若しくはCなどに変更して下さい。
基本的に4軸目ですので、アドレスはそのままで使用可能だと思います。
アドレスを変更した際は引数も変更した方が分かり易いので、IF [#2 EQ #0]のところの、#2を、アドレスがAであれば#1に、アドレスがCであれば#3に変更して下さい。
今回のマクロではロータリー軸のアドレスを指定しているかのみを判定しておりますので、詳しく判定される場合はさらに判定(IF)命令を使って詳しく判定してみて下さい。

マクロの呼び出し方法

復帰動作をしない場合はG65P9010;

復帰する場合は呼出しの後に、ロータリー軸のアドレスを指定します。

G65P9010B0;

また、マクロをG65Pでは無く、GコードやMコードで呼出すことが出来ます。

例えばGコードで呼出したい場合(G192 、G192B0)
同じくFANUC 18i、30i, 31iの場合で説明します
パラメータ番号の書替えを可能になるようにセッティングパラメータを変更します。
次にGコードでマクロを呼べるようにパラメータ番号を設定します。
パラメータ№6050~6059とプログラム O9010~O9019が適応するようになっており、パラメータには ポリエチレン板 (乳色)厚み(mm)5サイズ 1m×1m、マクロを呼出すためのGコード番号をセットします。
例えば、G192を指令し、O9010マクロを呼出す場合、パラメータ№6050に192をセットします。

以上の設定により、今回のマクロをG192、若しくはG192B0で指令できるようになりました。
このようにすることで、他メーカーであっても、同じプログラムを使うことが出来るようにすることも可能になります。
今回はFANUC社製の制御機を具体的に説明致しましたが、他の制御機でも同機能が存在します。システム変数の番号、若しくはマクロの呼び出し指令を変更することで動作すると思います。
是非、マクロを使ってアイデアを一つの機能にしてみて下さい。 きっと、機械が更に便利だと、、感じられると思います。