Chargement en cours…
Moteur pas-à-pas asservi FOC avec encodeur magnétique 14-bit intégré, pilotable STEP/DIR, CAN-Bus ou RS-485
| Caractéristique | Valeur / Spécification |
|---|---|
| Asservissement | Boucle fermée FOC vectorielle (Zéro perte de pas) |
| Alimentation DC | 12V à 24V DC |
| Bus de commande | STEP/DIR, CAN 2.0B et RS-485 Modbus |
| Courant nominal | 2.0A RMS par phase |
| Couple de maintien | 45 N.cm (0.45 N.m) |
| Encodeur intégré | Encodeur magnétique 14-bit (16384 impulsions/tour) |
| Arbre de transmission | Arbre rectifié D-cut Ø5mm méplat |
import can
# Bus CAN à 500 kbps pour asservissement moteur en boucle fermée
bus = can.interface.Bus(channel='can0', bustype='socketcan', bitrate=500000)
def set_motor_speed(node_id: int, speed_rpm: int):
"""Commande de vitesse asservie en boucle fermée (CAN 2.0B)."""
raw_spd = int(speed_rpm * 100)
data = [0xF6, (raw_spd >> 24) & 0xFF, (raw_spd >> 16) & 0xFF,
(raw_spd >> 8) & 0xFF, raw_spd & 0xFF, 0x00, 0x00, 0x00]
msg = can.Message(arbitration_id=(node_id << 5) | 0x01, data=data, is_extended_id=False)
bus.send(msg)
if __name__ == '__main__':
print("Démarrage NEMA 17 Closed-Loop à 120 RPM...")
set_motor_speed(node_id=1, speed_rpm=120)
bus.shutdown()