同步多个微控制器
synchronise many microcontrollers
在我的项目中,我将使用 modbus 协议进行串行通信。有 320 多个奴隶,平均分为 2 组(见图)。每 16 个从站都由同一电源供电,并与其他从站电隔离(主站将与所有从站隔离)。
我的第一个问题是这个设计有没有问题?
其次,我想通过主控微控制器产生的 10ms 周期脉冲同步所有从属设备。我怎样才能实现稳健的同步(什么类型的总线,单信号或差分信号,在哪里隔离)?
这是另一种选择:
see picture
这里很多事情都可能出错。对于初学者来说,轮询您的每一个奴隶将花费很长的时间。而且您的隔离器很容易将超过 2us 的延迟引入您的同步信号。
您能否简要地告诉我们您具体要做什么,例如。同步运动控制?工业解决方案中还有其他替代品。
工业系统中使用的同步运动控制大多用于替代机械凸轮和偏心齿轮,因此在该领域通常称为"electronic camming"。这是我在上一份工作中遇到的技术列表
- 输出多个脉冲序列的 PLC,每个命令一个单独的 servo/stepper 电机驱动器。 PLC 必须存储所有运动曲线并进行所有插补,因此可以使用相对简单的驱动器。但是每个执行器都需要它自己的脉冲序列线,而您的系统中太多了。
- 电机驱动器存储运动曲线并进行插值,运动由外部脉冲序列 advanced/reversed 完成。这是 Delta Automation ASDA 和 Schneider Electric Lexium 23 型号工业伺服驱动器中使用的技术。运动曲线要么预先烧录到驱动器的 EEPROM 中,要么通过 MODBUS 写入。这与您尝试做的非常接近,但这里的区别是外部同步脉冲序列在单独的电线上。
- 实时以太网。目标位置以特定间隔定期写入每个驱动器。这可以在 100Mbps 下非常快速地完成。至于写入不同驱动器时出现的延迟,有一个内置机制可以测量每个驱动器的延迟,然后在以后进行相应的补偿。酷吧?我见过但从未真正使用过的是 Beckhoff 的 EtherCAT。
我过去主要使用方法 2,从这些经验来看,您可能不需要那么严格。这是我的建议。
- 如果你的同步信号延迟一点,如果你的机制没有碰撞的风险,如果时间稍微偏离一点,那将是完美的。但是不能容忍丢失脉冲,因为其中一个执行器将异相。不要吝啬你的同步和通信电缆质量,如果可能屏蔽双绞线,并正确连接它们。
- 如果通信线路不是太长,则不需要隔离器。我曾在长达 8 米的线路上工作,而无需隔离器或中继器。相反,我更担心您的 RS485 总线上支线(分支)连接的数量。如果可能,将所有东西直接连接到您的 2 条主总线。
- 如果这是一个生产系统,可能会有问题。当系统 运行 处于同步运动模式时,由于通信线路现在已被占用,因此无法监控执行器。这在现实世界的应用程序中是不可接受的,但如果这只是概念设计的证明,那就去做吧。
在我的项目中,我将使用 modbus 协议进行串行通信。有 320 多个奴隶,平均分为 2 组(见图)。每 16 个从站都由同一电源供电,并与其他从站电隔离(主站将与所有从站隔离)。
其次,我想通过主控微控制器产生的 10ms 周期脉冲同步所有从属设备。我怎样才能实现稳健的同步(什么类型的总线,单信号或差分信号,在哪里隔离)?
这是另一种选择: see picture
这里很多事情都可能出错。对于初学者来说,轮询您的每一个奴隶将花费很长的时间。而且您的隔离器很容易将超过 2us 的延迟引入您的同步信号。
您能否简要地告诉我们您具体要做什么,例如。同步运动控制?工业解决方案中还有其他替代品。
工业系统中使用的同步运动控制大多用于替代机械凸轮和偏心齿轮,因此在该领域通常称为"electronic camming"。这是我在上一份工作中遇到的技术列表
- 输出多个脉冲序列的 PLC,每个命令一个单独的 servo/stepper 电机驱动器。 PLC 必须存储所有运动曲线并进行所有插补,因此可以使用相对简单的驱动器。但是每个执行器都需要它自己的脉冲序列线,而您的系统中太多了。
- 电机驱动器存储运动曲线并进行插值,运动由外部脉冲序列 advanced/reversed 完成。这是 Delta Automation ASDA 和 Schneider Electric Lexium 23 型号工业伺服驱动器中使用的技术。运动曲线要么预先烧录到驱动器的 EEPROM 中,要么通过 MODBUS 写入。这与您尝试做的非常接近,但这里的区别是外部同步脉冲序列在单独的电线上。
- 实时以太网。目标位置以特定间隔定期写入每个驱动器。这可以在 100Mbps 下非常快速地完成。至于写入不同驱动器时出现的延迟,有一个内置机制可以测量每个驱动器的延迟,然后在以后进行相应的补偿。酷吧?我见过但从未真正使用过的是 Beckhoff 的 EtherCAT。
我过去主要使用方法 2,从这些经验来看,您可能不需要那么严格。这是我的建议。
- 如果你的同步信号延迟一点,如果你的机制没有碰撞的风险,如果时间稍微偏离一点,那将是完美的。但是不能容忍丢失脉冲,因为其中一个执行器将异相。不要吝啬你的同步和通信电缆质量,如果可能屏蔽双绞线,并正确连接它们。
- 如果通信线路不是太长,则不需要隔离器。我曾在长达 8 米的线路上工作,而无需隔离器或中继器。相反,我更担心您的 RS485 总线上支线(分支)连接的数量。如果可能,将所有东西直接连接到您的 2 条主总线。
- 如果这是一个生产系统,可能会有问题。当系统 运行 处于同步运动模式时,由于通信线路现在已被占用,因此无法监控执行器。这在现实世界的应用程序中是不可接受的,但如果这只是概念设计的证明,那就去做吧。