現在の運用は、Simplify3Dでgコードファイルを作成し、FlashPrintに読み込ませ、そこからネットワーク経由で印刷している。Simplify3Dで直接Adventurer3に出力できないか調査してみた。
Simplify3Dでのマシン制御
COMポート経由のシリアル通信でやっているみたいで、ネットワークの対応はしていないみたいだ。試しに、Adventurer3のUSBポートとコンピュータのUSBをオス―オスでつないだが、コンピュータ側に、新たにCOMポートが現れなかったので、Adventurer3のUSBは、USBメモリだけしか対応していないみたいだ。当然この状態では、Simplify3Dで制御することはできなかった。
tcp通信を仮想COMポート経由でつないだら
Simplify3Dは、COMポートしか対応していないみたいなので、tcpの通信をcom0com経由でつないだら、行くんじゃないかと思い、インストールし、tcp通信をcomに流すソフトを作成し、実施してみた。
これで、Simplify3D側で接続しようとしたが、認識させることができなかった。というか、tcpの接続がすぐ切れてしまった。
通信の内容の確認
一度、仕切り直して、FlashPrintとAdventurer3との通信内容がどうなっているのかを、プロトコルアナライザで調べてみた。
とりあえずは、次のことが分かった。
- 通信内容
tcpipで接続し、ASCIIテキストでやり取りしている。 - コマンドを送付し、そのコマンドの内容をリターンでもらっている。
コマンドは、いわゆるgコード相当のもの - Adventurer3側へのコマンド送信では、コマンドの前に~(チルダ)を入れている。
- 接続の後に、M601 S1を送付し、接続解除の前にはM602を送付している。
サンプルプログラム
調べた内容で、サンプルプログラムを作成したところ、とりあえずAdventurer3とのステータス確認もどきの情報のやり取りはできた模様。
プログラムの内容は、次のようなもの。
- Adventurer3のIPアドレス検索
この機種は、MACアドレスの先頭が0x02で始まるローカルアサインアドレスというもので、また最終バイトが、起動毎に変わるので、IP固定もできない曲者。
しょうがないので、arp経由で先頭のMACアドレスが0x02のものをAdventurer3だと仮定し接続するようにした。 - tcp接続
接続後、M601 S1を送付し、接続を解除されないようにした。 - tpc接続解除
解除前にM602を送付するようにした。 - 途中では、コマンドが送付されるかどうか確認のため、いくつかのコマンド送付を行っている。
次は、Simplify3D側からの送付コードの内容を確認し、com0com経由でやり取りができるか確認していきたい。
コメント