Пример #1
0
         node.wu16(0x6040,0x6) # controlword (shutdown)
         node.wu16(0x6040,0xF) # controlword (switch on)
         node.ws16(0x2030,I)
         for i in range(500):
             time.sleep(0.2)
             print('Actual Current: {0} mA'.format(node.rs16(0x6078)))
     except KeyboardInterrupt:
         node.ws16(0x2030,0)
         
 else:
     print('* Velocity Mode Test.')
     V = 1000
     A = 500
     D = 500
     node.ws8(0x6060,3) # mode of operation
     node.wu32(0x607F,4000) # max profile v rpm
     node.wu32(0x6083,A) # profile acceleration
     node.wu32(0x6084,D) # profile deceleration
     node.wu32(0x6085,10000) # quick stop deceleration
     node.ws16(0x6086,0) # motion profile type, 0 - trapez.
     node.wu16(0x6040,0x6) # controlword (shutdown)
     node.wu16(0x6040,0xF) # controlword (switch on)
     for i in range(4):
         if i%2 == 0:
             node.ws32(0x60FF,V) # target velocity
         else:
             node.ws32(0x60FF,-V) # target velocity
         node.wu16(0x6040,0xF) # controlword (switch on)
         for i in range(20):
             time.sleep(0.2)
             print('Actual Velocity: {0}'.format(node.rs32(0x606C)))
Пример #2
0
 waiter = canio2.TriggersWaiter(io_service)
 
 print('Resetting node...')
 if n.reset(6000) == False:
     print 'Boot Timeout'
     sys.exit(1)
 print('Node state after reset: ' + str(n.state))
 n.state = CANopenNode.STATES.OPERATIONAL
 time.sleep(0.1)
 if n.state == CANopenNode.STATES.OPERATIONAL:
     print('Node state : OPERATIONAL')
 else:
     raise Exception('Can\'t setup operational mode')
 try:
     # Initialisation
     n.wu32(0x3004,0)                       # disable power stage
     time.sleep(0.1)
     n.wu32(0x3900, 0x1) # motor type
     # controller feedback (encoder OR hall sensors)
     # Encoder feedback
     n.wu32(0x3910, 8)  # poles N
     n.wu32(0x3911, 9)                       
     n.wu32(0x3350, 0, 0x96A)                   # encoder feedback for the velocity controller
     n.wu32(0x3550, 0x9A6)                   # encoder feedback for the secondary velocity controller
     n.wu32(0x3962, ENCODER_RESOLUTION)       # encoder 
     #n.wu32(0x3963, ENCODER_LINES)       # encoder 
     # Controller parameters
     # Velocity controller
     n.wu32(0x3310, 100)                     # PID Vel Kp (proportional factor)
     n.wu32(0x3311, 0)                       # PID Vel Ki (integral factor)
     n.wu32(0x3312, 0)                       # PID Vel Kd (differential factor)