Adventurer3の制御3.1

機器の直接操作の場合の、G1での移動命令と、M114での座標値取得について、想定していたものと違う結果が出たので調査してみた。

G1での移動

移動命令を送信したのち、M114で座標を取得した時、G1命令で出した座標が返ってきた。

G1 X200 Y-50 F300.0
CMD G1 Received.
ok
M114
CMD M114 Received.
X:200 Y:-50 Z:-0.0572591 A:0 B:0
ok

M114の結果は、ベッドやノズルが移動中も、移動後も、変化がなかった。そのため、ノズルやベッドがリミットストップがかかっても、元のリミットストップの座標にならなかった。

ただ、FlashPrintでは、リミットストップがかかった場合、その座標値に表示がされていたため、理由があると思い、再度プロトコルアナライザで、通信を確認した。

通信を確認したところ、G1命令の後、必ずM112のエマージェンシーストップを実施していた。

そこで、G1命令後、M112命令を必ず送付したところ、下記の様に、想定した座標値になった。

G1 X200 Y-50 F300.0
CMD G1 Received.
ok
M112
CMD M112 Received.
ok
M114
CMD M114 Received.
X:267.517 Y:-0.265563 Z:-0.0572591 A:0 B:0
ok

G91での相対移動命令

次にG91での相対移動命令を直接制御で実施してみたが、コマンドとしては、問題なく認識されたのだが、移動量は相対値としては認識せず、G90と同じ解釈がされていた。

XYZのリミットストップと反対側への移動

G1命令でリミットストップとは反対側への移動を行った場合、ノズルやベッドは止まらなかった。

例えば、以下の様なG1命令を出した場合。

G1 X-1000 Y1000 F300.0
CMD G1 Received.
ok

この場合、限界まで移動したのち、モーターから異音がした。たぶん脱調していたのかもしれない。

G92の動作

G92で座標位置の設定は、動作しなかった。

FlashPrint側の現在位置を原点にするも動作しなかったので、直接制御では認識しないのかもしれない。

コメント

タイトルとURLをコピーしました