Contact me: hankecnc@gmail.com

来自 matlab 的循环命令 #551

推推 grbl 3年前 (2023-01-22) 209次浏览

关闭
bbehr7 打开了这个问题 2014 年 12 月 3 日 · 3条评论
关闭

来自 matlab 的循环命令#551

bbehr7 打开了这个问题 2014 年 12 月 3 日 · 3条评论

注释

来自 matlab 的循环命令 #551

你好,

我正在尝试从 matlab for 循环发送 G’Code,但我一直收到错误消息。我在下面包含了我的代码,这比我解释的更有意义。任何建议将不胜感激。谢谢!

delete(instrfindall) prod1
= ‘G01 X-2.0 F2’;
prod2 = ‘G01 X-1.0 F.5’;

订单 = {prod1, prod2};

s=串行(’/dev/tty.usbmodemfa141’);%open serial port for x/y traverse
set(s,’BaudRate’,115200);
打开(S);
fprintf(s,’G17 G20 G90 G94 G54′)
out=fscanf(s)

dims = ndims(顺序);
对于索引 = 1:dims

fwrite(s,order(index))

%a= order(index) _> tried this.. doesn't work
%fprintf(s,'%c',a)

%fwrite(s,prod2) -> This works

out=fscanf(s)

fprintf(s,'G4 P5') %pause to collect product
out=fscanf(s)

结尾

f关闭

来自 matlab 的循环命令 #551
贡献者

Grbl 有一个 127 个字符的串行接收缓冲区,听起来你的 for 循环太快了,你正在溢出这个缓冲区……
你可能想要等待 OK 直到你继续 for 循环或使用其他发送方法之一. 或者将 g 代码写入文件并使用已经实现流例程之一的 g 代码发送程序之一。

请阅读此内容以了解如何进行流式传输:
https ://github.com/grbl/grbl/wiki/Interfacing-with-Grbl#streaming-ag-code-program-to-grbl

来自 matlab 的循环命令 #551
作者

我虽然“out=fscanf(s)”没问题?

来自 matlab 的循环命令 #551
贡献者

我认为您有流式传输错误或 ag 代码错误。
作为测试,您能否将 gcode 写入文件并与其他程序之一一起流式传输…如果失败,请在此处发布 g 代码…我猜大多数关注跟踪器的人都知道有效的 g 代码,但可能不是matlab。

喜欢 (0)