Apa tujuan dari asterix (*) di Gcode?


10

Melakukan pemantauan tingkat rendah, urutan berikut dikirim ke printer:

N0 M106*36 
N1 G28*18 
N2 M107*39

Urutan ini hanya menyalakan kipas, rumah printer, lalu mematikan kipas.

Pertanyaan: Apa tujuan asterix / bintang / (*) dan dua digit berikutnya pada setiap baris?


1
* asterisk - Asterix adalah karakter dalam serial kartun.
Andrew Morton

1
@AndrewMorton Jadi itu akan membuat gcode orang Romawi saat itu - dengan Asterix menjadi checksum mereka, menghentikan korupsi di daerahnya?
Mtl Dev

Hmmm ... mungkin. Bangsa Romawi memang membangun banyak hal, seperti halnya printer 3-d.
Andrew Morton

Jawaban:


9

Itu sebuah checksum. Itu ditambahkan oleh perangkat lunak host ke kode-G, untuk memungkinkan beberapa verifikasi dasar oleh firmware bahwa kode-G dikirimkan tidak berubah. Itu tidak mengubah arti dari G-code, dan apa yang sebenarnya diwakili oleh urutan Anda adalah adil M106, G28, M107. The N0,N1,N2,...adalah nomor baris, dan kombinasi nomor baris dan checksum digunakan untuk meminta re-send dari setiap garis yang rusak selama transmisi.


Apakah Anda mengetahui algoritma checksum yang digunakan di sini?
Carl Witthoft

3
Di Marlin, semua byte untuk masing-masing karakter adalah XOR-ed bersama, dan hasilnya harus sama dengan checksum.
Tom van der Zanden

1
Just XOR:byte checksum = 0; byte count = 0; while(instruction[count] != '*') checksum = checksum^instruction[count++];
Mtl Dev
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.