LAOXU
发表于 2024-11-6 19:45:16
一束光的旅程 发表于 2024-11-6 17:55
脉冲输出最好做成4轴的。主要是软件不好做。我之前做了一款硬件,软件写了一点就没有继续。 ...
同感,这个软件要做的好,要下不少功夫(主要是STC不是针对运动控制设计的,所以只能依靠大量的软件辅助)
LAOXU
发表于 2024-11-6 20:00:23
脉冲式运动控制器的难点,本质上并不在于要输入、输出频率做的多高,
由于脉冲输入、输出最小单位是1脉冲(整数),假如输入某个频率,输出要求其1/3的频率,
即0.333333333333......倍,精度(同步性)做高很难,通常只能尽量通过提高频率来做到。
xiangzichen
发表于 2024-11-6 20:16:51
本帖最后由 xiangzichen 于 2024-11-6 20:18 编辑
STC8H2K32U做的,不是PLC,是个偏向于CNC的控制器,自定义的指令.
6路步进直线插补时,最高32K,单一定时器做的插补运算.16路输入(74HC165)16路输出(74HC595),其中一路输入可以高速计数(T3).
一开始用其他型号做的,后来发现STC8H2K32U有硬件CRC,空了改成支持modbus的.
没用任何芯片,直接USB转CDC串口,超级方便啊.
zxcv1973
发表于 2024-11-7 11:19:58
LAOXU 发表于 2024-11-6 19:35
是的,通用现场总线传输控制信息,运动控制器编程简单(具体控制难度都转移到下位机一一伺服电机驱动器上 ...
STC32G带CAN口,控制CANopen总线伺服驱动器没问题,比发脉冲简单多了
zxcv1973
发表于 2024-11-7 11:24:51
LAOXU 发表于 2024-11-6 19:41
高速输入频率不小于100KHz,计划有两路达到500KHz。
高速输出频率也不小于100KHz。
...
脉冲输出频率不小于100KHz这个指标太低了,对于伺服电机来说按一圈1万个脉冲,100KHz也才每分钟600转,远达不到伺服电机的额定转速
一束光的旅程
发表于 2024-11-7 11:47:33
zxcv1973 发表于 2024-11-7 11:24
脉冲输出频率不小于100KHz这个指标太低了,对于伺服电机来说按一圈1万个脉冲,100KHz也才每分钟600转,远 ...
100KHZ可以了,伺服还有电子齿轮比。实际用不到这么高。信捷的plc也是到100k
LAOXU
发表于 2024-11-7 11:55:50
zxcv1973 发表于 2024-11-7 11:24
脉冲输出频率不小于100KHz这个指标太低了,对于伺服电机来说按一圈1万个脉冲,100KHz也才每分钟600转,远 ...
没办法,受芯片硬件限制,做不了太高
注:不能单看单路纯脉冲输出,比如用T0~T4,输出脉冲几乎可达IO口的翻转
极限了(近20MHZ)。
但是,若要在输出脉冲时,同时统计输出脉冲数量,只能依靠软件辅助了,
输出脉冲最高频率马上大幅度下降,再来几路同时进行,还得降数倍!
LAOXU
发表于 2024-11-7 13:32:56
zxcv1973 发表于 2024-11-7 11:19
STC32G带CAN口,控制CANopen总线伺服驱动器没问题,比发脉冲简单多了
数值计算要用到浮点运算,Ai8051U自带硬件浮点运算库,而STC32G则没有,
浮点运算速度太慢了,故没有采用。
xiangzichen
发表于 2024-11-7 14:02:13
本帖最后由 xiangzichen 于 2024-11-7 14:04 编辑
LAOXU 发表于 2024-11-7 11:55
没办法,受芯片硬件限制,做不了太高
注:不能单看单路纯脉冲输出,比如用T0~T4,输出脉冲几乎可达IO口的 ...
对的,有了插补运算,频率确实大幅下降的.我用STC32G两个轴插补,没怎么优化,轻松超过100K,纯单一定时器完成的,可一旦到六轴,频率再怎么优化也没有超过40K.如果想达到高速脉冲输出,我觉得要双CPU比较舒服,一个粗插补,将运动轨迹转换成小线段,DMA给插补的cpu,专门发送脉冲.这样估计能提高不少.
网老四
发表于 2024-11-7 14:38:07
STC单片机这么便宜,可以考虑下多处理器方案,任务分配下去,各个通道自主运行,主芯片做总体协调