Communication Examples¶
Set and Get Registers Example¶
from ingeniamotion import MotionController
mc = MotionController()
mc.communication.connect_servo_eoe("192.168.2.22", "cap-net_0.5.0.xdf")
mc.communication.set_register("DRV_PROT_USER_OVER_VOLT", 60)
volt = mc.communication.get_register("DRV_PROT_VBUS_VALUE")
print("Current voltage is", volt)
mc.communication.disconnect()
Connect CANopen drive¶
from ingeniamotion import MotionController
from ingeniamotion.enums import CAN_BAUDRATE, CAN_DEVICE
# Create MotionController instance
mc = MotionController()
# Get list of all node id available
node_id_list = mc.communication.scan_servos_canopen(
CAN_DEVICE.PCAN, CAN_BAUDRATE.Baudrate_1M, channel=0)
dict_path = "./eve-net-c_can_1.8.1.xdf"
eds_path = "./eve-net-c_1.8.1.eds"
if len(node_id_list) > 0:
# Connect to servo with CANOpen
mc.communication.connect_servo_canopen(
CAN_DEVICE.PCAN, # Peak as a CANOpen device
# CAN_DEVICE.KVASER and CAN_DEVICE.IXXAT are available too
dict_path, # Drive dictionary
eds_path, # Drive EDS file
node_id_list[0], # First node id found
CAN_BAUDRATE.Baudrate_1M, # 1Mbit/s as a baudrate
# More baudrates are available: Baudrate_500K, Baudrate_250K, etc...
channel=0 # First CANOpen device channel selected.
)
print("Servo connected!")
# Disconnect servo, this lines is mandatory
mc.communication.disconnect()
else:
print("No node id available")
Load Firmware ECAT¶
import ingeniamotion
# Create MotionController instance
mc = ingeniamotion.MotionController()
# Print infame list to get ifname index
print(mc.communication.get_interface_name_list())
# Load firmware
mc.communication.load_firmware_ecat_interface_index(
2, # ifname index
"./cap-xcr-e_0.7.1.lfu", # FW file
1, # Slave index
boot_in_app=False) # True if Everest, False if Capitan, else contact manufacturer
Load Firmware FTP¶
import ingeniamotion
# Create MotionController instance
mc = ingeniamotion.MotionController()
# Connect drive
mc.communication.connect_servo_ethernet("192.168.2.22", "eve-net-c_eth_1.8.1.xdf")
# Load firmware
mc.communication.boot_mode_and_load_firmware_ethernet("eve-net-c_1.8.1.sfu")