Roland CAMM3 PNC3000とは

Roland社が過去に販売していた3Dmilling現代で言うCNCマシンで1986年販売開始1994年6月に生産終了、公式サポートも2000年6月にすでに終了している。
Roland公式サイトは米国Rolandのものしか残っておらず、かろうじてWindows 2000, Windows XP用ドライバーや、
prn、rml、plt、またはファームウェアファイルをRolandデバイスに送信するDropOut Programをダウンロードすることができる。

マニュアル

ネットを探しても製造年代が古すぎて(PC98がメインでインターネットもまだないような時代…)公式サイトではマニュアルを発見できませんでした。
しかし、下記のリンク先でスキャンされたマニュアルを見つけました。
PNC3000 User Manual
※現在マニュアルとしては下のsenderCAMM-3のzipをダウンロードした方が良いです。

senderCAMM-3

SenderCAMM-3というNode-REDからCAMM-3 PNC-3000 CNCミルにPRN CAMM-GL1(Gコードに類似)のカットファイルを送信するプログラムを見つけました。元のRolandのドライバでは、Windows XP以前のOSに向けて作られており、今後のサポートも望めません。senderCAMM-3を使用すると、1986年製の制御回路をそのまま使用しながら、Windows 10から標準のPNC-3000を実行できます。

PNC-3000の性能

大きさ:500×580×580mm
重量:53kg
電源:100V 50/60Hz
ツールチャック:6mmコレットチャック(標準品)
切削可能サイズxyz:180×150×150mm
ベットサイズxy:500×170mm
軸精度:0.01mm/step(内部処理0.005mm/step)
最大送り速度:1200mm/min
主軸モーター:AC100w整流子モーター
主軸回転数:3000〜8000rpm(手動制御時)
制御信号:パラレル(セントロニクス)/シリアル(rs-232c)
制御コマンド:CAMM-GL1(CAMM Graphic Language 1)
その他:ディスプレイ、操作部、エンドミルセンサーあり

データ作成

FusionCAMを使って切削データを作成していく。
モデリングに関しては説明を省略する。
製造(CAM)部分より解説していく。

使用する機械のPostProcessorを準備する

FusionにPostProcessorをインポートする

エンドミルの追加

本体に付属するコレットチャックに合うエンドミルであれば使うことができる。
今回はコレット側シャンク径Φ6mmで切削刃直径2mmの2枚刃のスクエアエンドミルを使用した。
また、コレット側を6mmにしたのは原点出しの時使用する治具が6mm径の物しか持っていないためである。

切削パスの作成

Fujionで切削パスを作成していく。
モデルを選んで加工原点を設定し、ミルの作成、設定を行っていく。
具体的な操作は割愛するが、選んだモデルに対して行いたい加工を選ぶということを繰り返していけばパスは生成できる。※切削パスの生成にはPCスペクが低いと時間がかかることがある。
ここは特別なことはなくいつも通りパスを生成した。

加工原点について

加工物の左前上(右の図の(0,0,0))が加工原点となるようにする。
刃物の動きはXとYにおいて全てこの加工原点から+何mmとあらわされ、
原点から-の数値をとったプログラムの行は読み飛ばされてしまい正しく加工されない。
ツールパス生成時にマイナスの値を取らないように余裕を持って加工原点を設定すること。

データの書き出し

ポストプロセッサを通すことで.rmlファイルを得ることができる。
これはGコードとは異なるRoland独自の古いプログラムでありCAMM-GL1(CAMM Graphic Language 1)コマンドと呼ばれている。
このコードに関する資料も見つけづらかったが、PNC -3000の後継機であるPNC-3100 の USER'S MANUAL [ 1998-02-16, R9 ]33ページ以降にCAMM-GL1コマンドのフォーマットが記載されており参考になった。
エラーがある場合はここでCAM側を修正する
(XY加工原点からのマイナス移動はエラーにならずマシン側でコードが飛ばされることになるので注意)

データ内容

0.01mm or 0.025mmステップの動作
スピンドルオン[!1]2001年以前の機械なので[!RC]は使えない
スピンドルオフ[!0]2001年以前の機械なので[!MC]は使えない
[^PA]位置の絶対値指定[^PR]位置の相対値指定
HPGLフォーマットに似ているR -PGLフォーマットで動作
2.5次元のプログラムでは
0.025mmステップを使い、ペンアップ[^PU]やペンダウン[!PD]コマンドを使う。
3次元切削プログラムでは
[Z]コマンドを使い0.01mmステップが推奨されている。
[F]XY軸のフィードレート、[V]Z軸のフィードレート

PNC3000のPCとの接続

純正未改造状態ではParallel (Centronics)/Serial (RS-232C)での接続となる。

今回はシリアル通信で接続したが、パラレル通信での接続も一応記載しておく。

DIPスイッチを操作して設定を変えるのだが、この時必ず電源を切った状態で設定を行わないとならない。

また、長い間動かしていないとDIPスイッチの接点が不良となっている場合も多いので何回かON、OFFしてみることをお勧めする。

まずケーブルの接続方法を説明し、DIPスイッチの簡易設定を説明、そのあとでDIPスイッチの設定の詳細を説明する。

参考になったサイト
RS-232C の基礎、RS232C予備知識、RS-232Cとは?



シリアルケーブル

正面から見て本体右側に、上からDIPスイッチ、パレレルポートの順番であり、その下に25ピンのD-subメス口が、あるのでそこにケーブルを接続する。
PC側が25ピンであれば、そのまま接続できるかもしれないが、9ピンの場合、25ピンとのD-sub変換を作成し接続する。
市販の物が使用できる場合もあるかもしれないが、多くはピンの配線が異なるので右の図を参考に作成すること。
基本は機器同士の接続なのでクロスケーブルとなる。

動作確認したDIPスイッチのON OFFリスト

 SW1 1、 |2、 3、  |4、  5、 6、 | 7、 8、  9、 10  
   OFF、|OFF、OFF、|OFF、OFF、ON、|OFF、OFF、OFF、OFF
SW2  1、 2、 |3、  4、  |5、  6、 |7、  8、  9、 10  
   OFF、OFF、|OFF、ON、|OFF、OFF、|ON、ON、ON、OFF

1-1オートスケールディスエイブルモード

OFFの時、P1とP2の設定のみでスケーリングが可能になる(ONにすると、P1とP2の設定のみでスケーリングは不可能)オートスケールモードになります。このモードでは、AIPコマンドまたは手動操作でP1とP2を指定するだけで、縮小スケールでの切断が可能です。DIPスイッチ1-1がON(つまり、非オートスケールモード)の場合、SCコマンドが実行されるまで縮小はできません。

1-2スローモード

ONにするとSLOWモードが有効になり、X軸、Y軸、Z軸の最小送り速度:約0.4 (mm/sec)に指定され、OFFにすると1(mm/sec)に指定されます。

1-3Z軸早送り

DIPスイッチ1-3でZ方向の工具送り速度のデフォルト値を指定します。ONのときは22(mm/sec)、OFFのときでDIPスイッチ 1-2がOFFのときは2(mm/sec)、ONのときは約0.4(mm/sec)です。

1-5NC

設定の必要なし

1-4非バッファモード

通常はOFFにしてください。ONにするとCAMM-3は非バッファ状態になるため、コマンド命令に対してバッファメモリーにコマンドを一時保持することなく動作するためプログラムのデバッグ時に便利です。

1-6通信モード設定

この設定は、CAMM-3とコンピュータの接続がONシリアル(RS-232C)かOFFパラレル(セントロニクス)かによって異なります。
パラレル接続の場合PCのプリンタポートに接続し、雑に設定するならDIPスイッチ1は全てOFF DIPスイッチ2は全てON。
シリアル接続の場合PCのシリアルポートに接続する。(使用する機能に対応していればUSB変換でも可)今後も使用する場合はUSBシリアル変換で対応することになると思われる。シリアルの場合DIPスイッチ2-1~10で通信状態を設定する。

1-7~10フォント

ブログラムの初期設定で、各国の特定フォントの指定文字セットを設定します。別冊「コマンドリファレンスマニュアル」の「ACSコマンド」の説明を参照してください。
on1,off0
文字コード名: sw7,sw8,sw9,sw10  
ASCII(1):0,0,0,0 ←これ7bitで使えて良いかも
ASCII(2):0,0,0,1
French German:0,0,1,0
Scandinavian:0,0,1,1
Spanish Latin American:0,1,0,0
Roland Swedish:0,1,1,0
Roland Danish, Norwegian:0,1,1,1

ハンドシェイク(フロー制御)

データの処理が間に合わない場合にPNC-3000からPC側に送る信号で、
受信側の受信バッファ空き領域が残り少なくなると、送信側に『XOFFコード』を送信し、送信の一時中断を要求し、空き領域が十分になった時点でXONコード』を送信し、送信側へ送信の再開を要求するソフトウェアハンドシェイク(XON/XOFFフロー制御)と、
コントロールライン(RTSまたはDTR)を自動的にON/OFFする、RTS信号とCTS信号と、DTR信号とDSR信号をそれぞれ相互に接続したハードウェアハンドシェイクがある。


2-1DSR

Data Set Ready イネーブル(有効)通常OFF。
送信側(PC)にデータ受信の準備ができていることを送る。逆にPC側ではDTRを出力することでクロスケーブルで繋いだときお互いに信号を送って良いかの確認ができる。
ハードウェアハンドシェークを使う場合ONにする。
RTS (Request to Send) と CTS (Clear to Send)との違いは、あちらがデータの送信要求、データ送信を行っているのに対し、 DTR (Data Terminal Ready) と DSR (Data Set Ready)はそれぞれの機器が送受信可能な状態(電源が入っている)かを送っている。

2-2DCD

Data channel Carrier Detect イネーブル(有効)通常OFF。今後ONにすることは絶対なさそう…
モデムから出力されるCD(Carrier Detect)信号が1かをチェックしている。PC側での扱いとして通信を開始した後DCDを監視しておき通信の終了を検知するのに使っている。CD(Carrier Detect)とはモデムから出力される信号で、
電話回線においてデジタルデータを送るとき、キャリアと呼ばれる搬送信号波に変調をかけて送られる。(音声ではピーと聞こえる)この搬送波を検出しCD信号線の論理を1にしている。

2-3ストップビット

ON2bit OFF1bit

2-4データ長

通常は1バイトのバイナリデータの場合には8ビット、英数字記号ならば7ビットを指定します。
ON8bitOFF7bit

2-5,6パリティチェック

データの誤り検出を行う機能で、送信側でデータに"1"または"0"のパリティビットを付加しEVENならば、"1"を偶数に、ODDならば"1"を奇数に揃え送信します。「偶数パリティチェック(EVEN)」、「奇数パリティチェック(ODD)」、「パリティチェック無し(NONE)」から選択します。
DIPスイッチ2-5、ON EVEN偶数、OFF ODD奇数、
DIPスイッチ2-6、ON ENABLE有効、OFF DISABLE無効

2-7~10通信速度

ボーレート50~9600 bpsで選択可能。
50なら0000
9600なら1110

RS-232Cシリアル通信

  • TXD / RXD:データの送受信(Transmit / Receive)
  • GND:共通グランド
  • DTR:Data Terminal Ready
  • DSR:Data Set Ready
  • RTS:Request To Send
  • CTS:Clear To Send
  • DCD:Data Carrier Detect
  • RI:Ring Indicator
    TX/RX が通信するデータの本体、DTR / RTS / CTS は、お互いの状態を伝えるためのON/OFF信号

CAMM-3の設定


(1) 板をCAMM-3の台にセットする.
(2) CAMM-3本体の電源を入れる.
(3) 操作リモコンの「HOME」ボタンを押す.
(4) 操作リモコンの[x],[y],[z]を調節し,適当な位置まで下げる.
(5) 板の上にセンサを置き,操作リモコンの「SENSOR」ボタンを押す.
(6) 刃がセンサに当たるまで[z]を下げ続ける.
(7) 操作リモコンの「HOME」ボタンを長押し.(刃が移動し始めたら手を放していい)
(8) 操作リモコンの「MANUAL」ボタンを押してOFFにする.

マシンアプリ


コントローラー

変更を適用した後
WebUI
これを開いてマシン操作や加工ファイルの送信を行う

コントローラーの設定

How to installe Node LED こちらでNode LEDをインストールし
ターミナル上で設定を行っていく。
 node --version && npm --version
これを打ち込むと
v18.15.0
9.5.0
このようにバージョンが2つ表示される。
ここまでできたら
npm install -g --unsafe-perm node-red
これを打ち込みnpmをインストールし完了を待った後
C:>node-red
と打ち込みローカルサーバーを起動させる。

NodeLED上での編集

NodeLEDのWeb上のノード編集を行う。
必要なノードを先にインストールしていないとエラーを吐いてしまうので、
先にNode-RED パレット上に 
node-red-node-serialport
node-red-contrib-ui-upload
node-red-contrib-chunks-to-lines
node-red-dashboard 
を追加し、
インストールしたフォルダから
Camm3-Sender-V1.0.jsonを読み込む
そしてCAMM-3 Serial PortのCOMポートを変更したら
右上の「Deploy flow」ボタンをクリックして、変更を適用する。