注释
凉爽的。我想我有其中一台 VFD。我也许可以测试一下。你有整个设置的示意图吗? |
我明天会尝试起草一份。 |
这是我的设置的大致示意图。我用过 adafruit 电平转换器,但找不到适用于它的 eagle 库,所以我用sparkfun绘制了它。引出线略有不同。 |
我现在已经尝试使用与 sparkfun 等效的电平转换器(克隆) |
我喜欢你关于使用现有 PWM 引脚的选项的建议。 你用过自动方向控制的RS485收发器吗? |
|
要运行电机,请使用 G 代码命令: 可以通过在 VFD.h 中定义 DEBUGSERIAL 来启用写入 Serial1 的各种调试消息 我已经将波特率硬编码为 38400 二进制 8N1 ,PD164 需要为此 PD01 和 PD02 需要设置为 2 以响应 我认为这是我设置的最后一个东西,但大部分是很久以前完成的,虽然我的记忆力很好…… |
我认为 RPM 是模态的,就像进给率一样。 S500 ;设置转速但不打开主轴 您可以随时通过发送 $G 查看所有模态值 |
是的,我同意 re RPM ,但 grbl 对我来说似乎不太像。 我确信当我使用 grbl-Mega 执行此操作时,没有命令正确地传递到 spindle_control.c 中的任何函数,尽管我将进一步调查此设置。我刚刚将我的 g 代码生成器配置为使用上面列出的完整命令。 |
我已经从中国的 ebay 上订购了一对你在上面列出的 485 转换器,每个大约 2 美元。 关于节省引脚的问题,你知道是否可以将输入和输出分配给未暴露的 GPIO 引脚,( 20,24,28,29,30,31) (37,38 没有上拉电阻,所以我不会尝试这些)所以他们的别针可以用于其他目的,我想以第 4 轴为例。 |
只有 TX 是真正需要的,因为 RS-485 驱动程序可能一直保持启用状态,而 RX 可以忽略。当然,如果您这样做,VFD 不会有任何反馈,但绝对有可能节省引脚。
|
当我第一次在 Mega 上实施电机控制时,我考虑过这一点,但我认为等到电机达到一定速度后再继续操作更安全。所以需要反馈恕我直言。 |
@davehines91让我详细说明一下:对于启动/停止或设置 RPM,如果您同意放弃反馈,则只需要 TX。否则,您需要 3 个 I/O 引脚,并且可能会引发错误条件,例如,主轴未按要求启动,因此工具不会损坏。 我猜想上面的模块确实使用 TX 信号活动来触发定时器以启用驱动器输出,从而节省一个输出引脚。 |
@misan我同意, |
@davehines91 未暴露的 GPIO 引脚。 我不知道。 最终将支持低速 I/O 使用 I/O 扩展器,但最初的目标是让所有功能在单芯片 (ESP32) 解决方案中为基本机器工作。 |
@bdring #ifdef,是的,我同意,我只是想做最小的改变。 我喜欢 IO 扩展器的想法,尽管到目前为止我对您的端口非常满意。 |
@misan,是的,我也得到了太具体的功能响应,这就是为什么我只在 spindle_control.cpp 文件中实现了 grbl 的接口,因此任何人都可以轻松放入或取出。 |
我刚刚对我的回购进行了更改,修复了此行为 |
能否请您将您的huanyang VFD RS485代码发送到本期?terjeio/grblHAL#68 |
这是我使用 grbl-Mega 未发表但使用得很好的作品的一个端口
背景:
我目前使用 grbl-Mega 来控制工作区域约为 600mm x 900mm 的 DIY CNC 路由器。
我目前使用的主轴是1.5KW环洋变频驱动(HY01D523B)控制的800w主轴。我在寻找比 Mega 更方便的平台,偶然发现了 ESP32 端口。
测试:
到目前为止,我已经使用面包板中的 ESP32 开发模块对此进行了测试,控制单轴和RS485 模块,通过电平转换器分线板连接到ESP32。(注意,3.3v 版本对我来说效果不佳)。
此设置用于通过 RS485 接口连接到 VFD。
执行:
RS485 链路是两线差分半双工接口。控制器在传输时需要断言发送信号
,我用定时器中断控制了它(我使用了定时器 3)。定时器在传输每个字符时重新启动,因此在发送最后一个字符后传输保持高电平 4mS,然后任务等待响应,无耻地从主串行任务克隆。此任务检查来自 VFD 的正确响应,并且在速度请求的情况下,阻止任何进一步的命令处理,直到主轴达到所需速度。如果达不到要求的速度,电机将发出停止命令,并发出警报 ( 10 )。
grbl 的所有接口都已在 spindle_control.cpp 中实现,并通过当前在 config.h 中定义的宏 RS485_HUANYANG_MOTORCONTROL 启用或禁用。使用的引脚在 cpu_map.h 中定义,这些可能与 grbl 当前用于 pwm 控制的三个引脚相同,但我目前已将这段代码并行放置。
要运行电机,请使用 G 代码命令:
M3 S10000
要停止电机,请使用:
M5 S0
grbl 似乎不喜欢没有速度的 M5 或 M3 之类的命令。
可以通过在 VFD.h 中定义 DEBUGSERIAL 来启用写入 Serial1 的各种调试消息
我已经将波特率硬编码为 38400 二进制 8N1 ,PD164 需要为此
波特率设置为 3。类似地,对于二进制 8N1 通信,PD165 应设置为 3。
PD01 和 PD02 需要设置为 2 以响应
RS485 上的停止/启动和速度命令。
回购目前在https://github.com/davehines91/Grbl_Esp32