CNCjsの使い方、設定、CNCマシンにG-code送る方法

プラス方向に動かしたいという話ですね。

配線を入れ替えるかパラメーターでモーターの回転方向を逆にして、$23=1でホーミング方向を逆にすることを試してみてください。

公式のwikiではホーミング時に負方向にセットされる理由が説明されています。
またconfig.hでHOMING_FORCE_SET_ORIGINをコメントを解除し有効化するとホーミングすると原点に設定できるようになるとも説明されています。

試してみてください

ご回答ありがとうございます。
なるほど、昔からのCNCの仕様なんですね。

→配線を入れ替えるかパラメーターでモーターの回転方向を逆にして、$23=1 でホーミング方向を逆にすることを試してみてください。

というのは、$3=1'で入力信号を反転させてから $23=1` でホーミング方向を逆にするという認識で正しいでしょうか?試してみたのですが、(間違えていなければ)負になるのは変わらなかったと思います。

HOMING_FORCE_SET_ORIGINは上手く動きそうなのでやってみたいと思います!ありがとうございました!

ちなみにg-codeで動かす時って、三軸じゃないとダメみたいなことってないですよね?
今後スライダーを二軸にする予定なのですが、一軸や二軸でもCNCjs使ってg-codeで制御可能でしょうか?

返信ありがとうございます。
なかなか質問する側もトラブルをどのように伝えるかも難しいのですが、回答側の方も同じ経験をしている事を知るだけで励みになります。今後とも宜しくお願いします。

その認識で合ってます。ダメだったのであればconfig.h弄った方が良さそうです。

3軸じゃないとダメということはないはずです。config.h内にも2軸用の設定例とか書いてありますし、レーザー加工機などは2軸なので。
現状G01 X100 F100とか適当にコンソールに入力して問題なく動くのであれば、制御も特に問題もないかと思います。

接続デバイスに表示されている
Silicon Labs CP210x USB to UART Bridge(COM5)
を確認しまして、CNCjsのCOM5を選択しましたら稼働できるようになりました。ありがとうございます。しかしながら、Y軸が2本あるのですが、途中から片方しか動かなくなるエリアがありまして、斜めに傾くようです。。このレベルで普通に動かせる様になるのか心配ではありますが、とりあえず動きましたのでお礼とご報告をさせていただきます。

お世話になっております。

「$Xと表示されます。これをGRBLのwikiで調べると」とありますが、


図のような場所に入力するとよいのでしょうか?

よろしくお願いいたします。初心者なのですが、ホーミングを押しても初めはX軸が少し上方に動いたのですが、その後は何も動かなくなりました。
自動的にXYZそれぞれに限界点まで動いてその場所を認識してくれるものかと想像していたのですが、違いますでしょうか?(ぶしつけで申し訳ありません。)3018proを買いましたが今後使えるようになるのか心配です。。
その他、写真の状況でアラームを解除した後に手動でXYZを動かす(移動)にはどうしたら宜しいでしょうか?動かないです。。

こんにちは。

それはCNCjsのgithub(ソースコードが載っているところ)なので違います。
grblのgithubページを見てください。(特にwiki)
CNCjsはPCから制御基板へ指令(Gコード等)を送るソフト、grblは制御基板のファームウェアです。コマンドはCNCjsから制御基板へと送り制御基板のファームウェアで処理されるものなので、CNCjsのページを見るのではなく、grblの情報を確認する必要があります。

下記のリンクにgrblのwikiがあり、大体はそのwikiに載っています。

$Xのようなコマンドについては下記のリンクにて確認することができます。

ホーミングは各軸の限界点に設置・配線したスイッチがあって使えます。スイッチに当たるまで軸が動き、当たるとスイッチから少し離れて停止します。
スイッチがない場合は軸が動き続けるか(限界はありますが)、少しだけ動いて停止します。(この違いはスイッチのパラメータ$5次第でスイッチがONになっているか勘違いしているかどうかです)

ちなみに画像にはALARM:8と表示されているので、スイッチがOFFになってほしいのにONになったままと認識されているようです。

この状態はアラームと表示されているので、右上のアンロックボタンやリセットボタンを押してみると解除できるはずです。解除ができると軸移動のボタンが有効化されます。

ホーミングは有効化してあるとホーミング完了するまではアンロックしない限り軸移動をすることができないようになっています。ホーミングを無効化する場合はホーミング有効化のパラメータ$22を$22=0としてあげてください。
ちなみにスイッチがない場合(ホーミングをしない場合)は電源投入時の位置が機械原点として認識されます。

残念ながら3018についてはよくわからないので、配線や仕様等については販売元に聞いてみたほうがいいかもしれません

早速ご返答いただきましてありがとうございました。早々には理解できかねますが、3018は後発で中華系と言われているようですが、お値段がお手軽なのでつい飛び込んでしましました。おそらくは皆様の世界観はCNCフライス盤等の軸径6mm以上等の業者さんの分野なのでしょう。。
エレキギターのパーツを手作業で作っています。主に真鍮です。それもゆくゆくは手掛けたいですがプラスティックや樹脂系のパーツの切り取り手作業を、あまりにも手間がかかり精度を出すのも大変ですので、CNCと言いますか3018等(すいません御関わりが無い機種を述べまして)で理解しながら踏み入りたいと思いました。スイッチングは3方向×2個ずつついております。candleではとりあえずXYZ方向に動き、スイッチにあたって停止等をしました。しかし、なかなか初心者には解説書があってもかいつまんだ説明に見えて理解しずらく。困りまして、こちらの方など、とりあえずCNCjsを用いる形で双方向に質問があるこのサイトに出会い、この様な私でもどなたかのご指導でちょっとずつでもこの設定の段階ですが進んでいけるのかと期待をさせていただいております。ご回答の理解を進めながら試していきたいと思います。ひとまずですがついつい長文になりました、失礼いたします。

スイッチに当たって停止をしていてアラームが発生していないのであれば問題はありません。
スイッチに当たって停止しているにも関わらずALARMが出ている場合は、スイッチの設定かホーミングの設定かスイッチへの配線がおかしいです。

各種設定はgrblのパラメータを書き換えることで行いますが、具体的な内容については以下に載っています。

中華系CNCはどんな制御基板を使っていて内部でどんな配線がされているかがわからないです。回路図が公開されているかもわからないので、実際にスイッチ等の配線をどうするかは説明書をみるか、他のユーザーがどうしているか調べるか、実際に繋いでいろいろと試すしかないです。
ただ世界的にユーザーも多いかと思うので、調べれば日本語に限らず情報も多く出てくるかと思います。
例えば:

ここのコミュニティの人たちは初めて触る人~仕事で使う人まで様々です。
後から来る初心者の方のためにも、どうしたら解決できたかを共有していっていただけると幸いです。

また先程述べましたが、基本的に中華CNCはオープンソースハードウェアになっていないと思うので、分からないことは販売元に聞くか自分で手を動かして調べるかが基本となりますのでご理解ください。

「いいね!」 1

はじめまして、
私はパソコンとRasberry Pi 3と古いNC旋盤 森精機のSL-25があります。
SL-25機械はRS232Cだけあります。今まで、パソコンからSL-25にRS232Cケーブルでプログラムを送信しています。不便ですから、改善したいです。
パソコンからRasberry Pi 3に送信して、Rasberry Pi 3からSL-25に送信したいです。
どうやってしますか。何か設備とかソフトが要りますか。
よろしくお願いします。

こんにちは

ここはオープンソースハードウェアのコミュニティですので、オープンソースハードウェアではない工作機械メーカーの機械について取り扱っておりません。また、産業用の工作機械はこのコミュニティで扱っている機械より圧倒的に出力が大きい機械なので、安全のことを考えると簡単に回答もできません。
まずはメーカーのサポートへ連絡すべきです。たとえ古い機種でも対応してくれることかと思います。

Gymさん
こんにちは
現在、 C-Beam Machine R1を組み立てている所です。
MDIで色々と動かしたいのですが、 CNCjsの画面にはMDIのボタンがあるのですが、操作方法の記述が見つかりません。$コードで動かすのか試してみましたが、素通りされてしまいました。
参考になる記述がありましたら、紹介してください。

宜しくお願い致します。

こんにちは。

公式のヘルプにもあまり情報があまりないですね。
githubの中にこのような投稿がありました。

歯車マークの軸設定でカスタムコマンドを作成してMDIを有効にするとワンボタンで実行できる的な感じでしょうか。
まだ実機で試していないので未確認ですが、探して見つかる情報はこんな感じでした。

Gymさん
連絡を頂き、ありがとうございます。
早速確認いたしました。
ワーク原点を基準として、作成した移動データをボタンを押すと実行されました。
MDI機能として、既に登録されたデータを実行することなので、決められた処理を実行することになります。精度確認用の仕組みとしては、使えそうです。
今回、MDIでスピンドルの回転指令を色々と試したかったのですが、この機能では大変ですので、色々と試した所、電源を入れて原点復帰した所で、コンソールの画面に直接、G0X10.を実行した所、動作しました。$22のホーミングサイクルを無効にすると、リセットした状態でMDIが機能しました。
マニュアルにも書かれていないようなので、正式の方法ではないかもしれません。
この機能を使って、M3S24000を実行した所、CNCxPRO v5の0-10V端子が10Vになり、m5を実行すると0Vになりました。MDI機能としては、使えそうです。
ありがとうございました。

こんにちは。

CNCjsとGコードについて質問させてください。

①CNCjsでホーミングを行うと、座標がすべて-2.5㎜になります。
座標の下にある「Zero Out~」のアイコンを押すと「サポートされてないか、
無効なGコード~」のエラー20が出ますが、これは自分でどこかでGコードを登録するのでしょうか?
(ワーク座標の方も同様のエラー20が出ます。)

②工具長のGコードは調べてみつけたのですが(G43.1)、工具径のGコードが分かりませんでした。
G41.1・42.1でかけることができるのでしょうか?

③M98のサブプログラム呼び出し等は使えるのでしょうか?

よろしくお願い申し上げます。

こんにちは。

まず前提として、CNCjsは様々な制御基板(ファームウェア)と接続しGコードを送信するソフトウェアです。ボタンを押すと該当機能のGコードを送信したり、NCプログラムを実行すると制御基板側へ1行ずつ逐次送信します。
そしてGコードの解釈は制御基板(ファームウェア)側に委ねられています。
ファームウェアによってサポートしているGコードが異なります。基本的なGコードしかサポートしていないファームウェア(grbl系)もあれば、独自のGコード、Mコードを非常に多く持っているファームウェア(RepRap Firmware等)もあります。

CNCjsでは様々なファームウェアをサポートとしていることから、ボタンによっては該当するGコードがなく、動作しないというものがいくつもあります。

サポートしているGコードについて調べたい場合は、以下のリンクを確認してみてください。
grbl系(CNC xPRO v5):【grbl】Gコード参考資料

機械座標側のZero Outのボタンを押すとG28.3が送られるようですが、残念ながらこれはgrbl等ではサポートされていません。(TinyGというファームウェアだとG28.3で機械座標の書き換えができるそうです)
そして、grbl系では自分でGコードを追加するということはできなかったはずです。(ソースコードを変更すれば可能ですが)

ワーク原点のセットの方はエラーはでないはずなので、今一度確認してみてください。押すとワーク座標が0となります。

これは制御基板側の設定でそうなっており、変えることができます。
ホーミングではスイッチが当たった位置を機械原点(0,0,0)とし、その後パラメータ$27で設定された距離だけスイッチから離れる動きをします。
おそらく$27=2.5と設定されているため-2.5mm移動し-2.5表記になっているのだと思います。

工具長補正はありますが、工具径補正はありません。
G40の工具径補正キャンセルのコマンドはありますが、これは一般的なCAMで最初にG40が出ることが多いためにサポートしているだけらしいので、補正の機能があるわけではないです。

残念ながらgrbl系では使用できません。
一応、grbl-esp32(CNC xPRO v5のファームウェア)ではSDカード内のNCプログラムを実行することができますが、Gコード・Mコードから指定することはできません。
ただ、パラメータ$SD/Runにファイルを指定すると、ファイルを実行できるようなのでNCプログラム中にパラメータを差し込んでおくと実行できるかもしれません。(未検証)

セットアップ時に決められた動きを行いたいという場合はCNCjsのマクロ機能を使うこともできます。

nyaru様

回答ありがとうございます。

申し訳ございません。
CNCjsと制御基板(ファームウェア)について誤解していました。
制御基板がサポートしていないGコードは使えないのですね。

grbl系では機械座標は電源を入れた位置(リセットボタンを押した位置)か、
ホーミング中にリミットスイッチが押された位置が機械原点になるのですね。

質問ばかりで申し訳ないのですが、
工具径補正が使えないということは、プログラムで作る段階で工具径を含めた座標で作成する。
別の刃物を使う場合は再度プログラムを作り直す。
微妙な修正を行いたい場合もプログラムをほぼ一から作り直す。(0.5㎜切りこみたい等)
しかないということでしょうか?

そうなります。
CAMを使っている場合は使用する工具設定を変更したり、補正値を入れて再度NCプログラム出力という手順だけで済みますが、手打ちの場合はほぼ一から作り直すことになってしまいます。

nyaru様

回答ありがとうございます。

やはりそうなるのですね。
自分は手打ちが多いので、苦労しそうです。
CAMの勉強を急ぎたいと思います。

工具径補正が使えるものがあればいいのですが、
調べた限りでは見つけられませんでした。