2016年10月10日月曜日

mbed LPC1768で作るMDX-15/20 controler



161008より作成中



<PC-MDX間のシリアルケーブル接続表>
MDX-15/20 COM端子接続図

PC Dsub9Pin

MDX Dsub25Pin
PinNo
信号名
説明
信号方向
PinNo
信号名
1
CD
Lo:送信許可
Hi:送信禁止
20
DTR
2
RxD
受信(未使用)
2
TxD
3
TxD
送信
3
RxD
4
DTR
不要
5,8
CTS,DCD
5
GND
7
GND
6
DSR
未使用
4
RTS
7
RTS
Hi固定 *1
6
DSR
8
CTS
不要 *2
20
DTR
9
*1PC 7Pin6Pinと接続すれば、パソコン側の制御は不要

*2MDX-15/20側の20Pinと接続されている。パソコン側での認識不要


<参考・リンク>
RS-232Cコネクタ・信号方向資料

RS-232Cフロー制御の解説

2016年10月1日土曜日

fusion360のCAMデータをMDX-15/20で使用する

<概要>


3D CAD/CAMソフトのfusion360が出力するCAMデータ(Gコード、RMLコード)をrolandのMDX-15/20で利用する方法をまとめました。

ポイントは3つ。
1.MDX-15/20自体はGコードを利用できない
  GコードをRMLコードに変換するアプリが必要

2.MDX-15/20に直接Gコード、RMLコードを流し込む必要がある
  rolandが提供するアプリには、Gコード、RMLコードを直接扱うツールがない

3.MDX-15/20での原点設定を行うアプリがない
  Z軸の設定は本体ボタンで行う必要があり、微調整ができない。
  X,Y軸の調整はMDX-15/20付属のアプリで可能だが、Gコード、RMLコードのファイルを扱うことができない。

この3点に対応するアプリを見つけることが必要になります。

<fusion360側の対応>

CAMデータを作成するためのスクリプトを追加します。
autodiskのwebにあります。

3167_rolandrml.cps : RML用スクリプト。MDX-15/20の選択ができる
3166_rolandiso.cps : Gコード用スクリプト。MDX-40などGコードを解釈するrolandの機器用
              (このスクリプトを元に改造を行う必要がある。これは次項で説明)

fusion360へのスクリプトの設定の仕方は、 3168_settings Roland RML.prg で確認できます。


<Gコードデータの利用>

Gコード転送、原点設定アプリとして、NC-MODELA(使い方もこのwebにある)を使用します。使い方は、



このツールで扱えるGコードに合わせるためfusion360のスクリプト(3166_rolandiso.cps)を改造する必要があります。改造したスクリプトはこちらにあります。(このフォルダにはfusion360のCADデータから、GコードのCAMデータまでそろっています)

・補足
 NC-MODELAで扱えるGコードの種類に制約があるのと、Gデータは1行に1つの制限があります。この制限に合わせるためのスクリプト改造が必要になります。

・使い方
 fusion360でCADデータを作成し、上記のスクリプトでCAMファイルを出力します。
 NC-MODELAでMDX-15/20の原点設定を行った後、同じソフトでGコードデータをMDX-15/20に出力します。



<RMLデータの利用>

RMLの転送には、DropOutを使います。ソフトはこちら(Roland UK web)にあります。



原点出しには、MPG for MDX-20を使います。ソフトと説明はこちら。(bet*ak9*9のブログ VPANEL for MDX-20もどき)


いずれのアプリもMDX-15/20との接続にはMDX-15/20のPrinter Driverから接続するのが良いです。こうすると両方のアプリを同時起動して使うことができます。

fusion360のCAMデータをMDX-15/20で使用する

<履歴>

161230 RMLデータ用プロファイルの追加
161231 ポストコンフィグファイル(cpsファイル)の探し方を追加

<概要>


3D CAD/CAMソフトのfusion360が出力するCAMデータ(Gコード、RMLコード)をrolandのMDX-15/20で利用する方法をまとめました。

ポイントは3つ。
1.MDX-15/20自体はGコードを利用できない
  GコードをRMLコードに変換するアプリが必要

2.MDX-15/20に直接Gコード、RMLコードを流し込む必要がある
  rolandが提供するアプリには、Gコード、RMLコードを直接扱うツールがない

3.MDX-15/20での原点設定を行うアプリがない
  Z軸の設定は本体ボタンで行う必要があり、微調整ができない。
  X,Y軸の調整はMDX-15/20付属のアプリで可能だが、Gコード、RMLコードのファイルを扱うことができない。

この3点に対応するアプリを見つけることが必要になります。

<fusion360側の対応>

CAMデータを作成するためのスクリプトを追加します。
autodiskのwebにあります。

3167_rolandrml.cps : RML用スクリプト。MDX-15/20の選択ができる
              このスクリプトでは最初の各軸の初期位置の設定にバグがあります。これを修正したスクリプトをこちら(3167_roland rml - test.cps)に保管してあります。(161230追加)

161231 cpsファイルを追加
3167_roland_rml-controler.cps(最初の原点復帰処理でZ軸を0指示したもの)
詳細は下記の161231の追記を参照

3166_rolandiso.cps : Gコード用スクリプト。MDX-40などGコードを解釈するrolandの機器用
              (このスクリプトを元に改造を行う必要がある。これは次項で説明)

fusion360へのスクリプトの設定の仕方は、 3168_settings Roland RML.prg で確認できます。


<Gコードデータの利用>

Gコード転送、原点設定アプリとして、NC-MODELA(使い方もこのwebにある)を使用します。使い方は、



このツールで扱えるGコードに合わせるためfusion360のスクリプト(3166_rolandiso.cps)を改造する必要があります。改造したスクリプトはこちらにあります。(このフォルダにはfusion360のCADデータから、GコードのCAMデータまでそろっています)

・補足
 NC-MODELAで扱えるGコードの種類に制約があるのと、Gデータは1行に1つの制限があります。この制限に合わせるためのスクリプト改造が必要になります。

・使い方
 fusion360でCADデータを作成し、上記のスクリプトでCAMファイルを出力します。
 NC-MODELAでMDX-15/20の原点設定を行った後、同じソフトでGコードデータをMDX-15/20に出力します。



<RMLデータの利用>

RMLの転送には、DropOutを使います。ソフトはこちら(Roland UK web)にあります。



原点出しには、MPG for MDX-20を使います。ソフトと説明はこちら。(bet*ak9*9のブログ VPANEL for MDX-20もどき)


いずれのアプリもMDX-15/20との接続にはMDX-15/20のPrinter Driverから接続するのが良いです。こうすると両方のアプリを同時起動して使うことができます。

161231追記
<ポストコンフィグファイル(cpsファイル)の探し方>
MDX-15/20用のRML形式の出力データを作るcpsファイルを探すのに苦労したので記録する。

まず、fusion360CAM画面にして


ポスト処理の窓が開くので、フォルダとコンフィグファイル名を確認する





エクスプローラでcpsファイルを探す。
ここで、“隠しファイル”のチェックを入れないと、cpsファイルのあるフォルダが表示されない。また検索でも無視されるので注意。




google driveのファイルの説明

366_rolandiso_NC-MODELA.cps
NC-MODELAで扱うRMLファイルを出力させる。
NC-MODELAは1行1命令でないと受け付けないのでそのための処理を行う

3167_rolandrml-test.cps
Z軸を一番上(機械原点)に移動させるコマンドの指示がmm単位?になっているのを、MDX-20が扱うパルス数に変更したもの。
MDX-40用のコードがパルス数指示になっているのに、MDX-20,15のみ小数点を含む実数になっている。これが不具合なのか意図したものかは不明。(mm単位にしても、MDX-20のZ軸可動範囲の60.5mm とは合わない)




3167_rolandrml-controler.cps
 上記のcpsファイルに対して、Z軸も“0”指示としたもの。相対指示モードでのコマンドなので、Z軸も移動させない。(意味の無いコマンドとなる)このファイルは、自作したコントローラで使用するために用意したもの。

それぞれ都合に合わせて使い分けること。