注释
合作者
我尝试进行更改: 但就 VFD 的操作而言,似乎没有任何变化。 我的车床有一个 4 极电机。我将 -P 8 添加到 loadusr hy_vfd 行,电机以正确的速度运行(我相信如果极数错误,它应该以两倍的速度运行) 我做了上面的更改,重新编译,电机速度保持正确。 无论有没有变化,报告电机极数的 HAL 引脚都显示 8。 我的测试有问题吗?如果不将车床从墙上拉开,我就无法轻松访问我的 HY VFD。 |
合作者
任何更新?我需要一种方法来查看问题以便修复它。 |
linuxcnc/src/hal/user_comps/huanyang-vfd/hy_vfd.c
第 472 行 56cedd4
环洋变频器有一些长度为2字节的PDxxx寄存器(如PD004、PD005、PD142等都是),也有一些长度为1字节的寄存器(如PD143)。此时,PD143 是我在 huanyang-vfd 代码中找到的唯一引用的 8 位寄存器。
FUNCTION_WRITE 请求的数据包格式对于写入 1 字节和 2 字节寄存器是不同的。我的实验表明,将 1 个字节发送到 2 个字节的寄存器会导致无效操作,并且寄存器内容不会发生变化。向 1 字节寄存器发送 2 个字节被接受并修改寄存器。但是,最左边的数据字节是实际写入寄存器的值。这对应于 little-endian 字节顺序(忽略 MSB)。这也是数据包中相同的字节位置,就好像将 1 个字节发送到 1 个字节的寄存器一样。
这不同于用于将 2 个字节写入 2 字节寄存器的字节顺序,以及代码中实际实现的内容:
linuxcnc/src/hal/user_comps/huanyang-vfd/hy_comm.c
第 499 行 56cedd4
这里最左边的字节包含 16 位值的 MSB 位,对应大端格式。
看起来将“motor_poles”值写入 PD143 的代码行不正确并且需要修复(例如通过将位 [7..0] 移动到位置 [15..8])。
linuxcnc/src/hal/user_comps/huanyang-vfd/hy_vfd.c
第 472 行 56cedd4