Changelog

[7.3.0] - 2024-04-23

Add

  • Dictionary V3 support

  • ILWrongWorkingCount exception raised when the working count in PDO is not the expected one.

  • Register type for monitoring/disturbance data.

  • Support for merging dictionary instances. (It can only be used for merging COM-KIT and CORE dictionaries.)

  • Support to socketcan so the canopen communication can be used in Linux.

  • Default value and description attributes to registers.

  • Read/write functionalities for bit register type.

  • Method to set the PDO watchdog time.

  • FoE binary compiled for Linux machines.

Changed

  • Dictionary class properties, such as subnodes and interface.

  • Add monitoring/disturbance registers to the dictionary if monitoring/disturbance is supported.

  • Add PDO registers to the dictionary for EtherCAT drives.

  • IXXAT missing DLLs logs are ignored.

Fixed

  • Bug that prevented the slaves to reach Operational state after the PDO exchange is re-started.

  • Recover the CoE communication after a power-cycle. The network status listener must be turned on in order for it to work.

[7.2.0] - 2024-03-13

Add

  • Motor enable and disable features in the virtual drive.

  • Emulate control loops in the virtual drive.

  • Support to Python 3.9 to 3.12.

  • EtherCAT PDO module.

  • Store and restore functionalities for subnode 0.

  • Add functionalities to update ECAT state machine

  • Add send_receive_processdata function

  • Add scan_slaves_info method

Fixed

  • Raise exception when ECAT SDO write/read is wrong

Deprecated

  • Support to Python 3.6 to 3.8.

Changed

  • The PCAN transceiver bus is automatically reset when the bus-off state is reached.

  • Emergency (EMCY) messages are discarded when using the CoE protocol.

  • The enums are represented using dicts in the Register class.

[7.1.1] - 2024-01-03

Added

  • Missing EtherCAT protocol documentation.

Fixed

  • Import Ingenialink does not raise an error if WinPcap is not installed, but ethercat features are disabled.

[7.1.0] - 2023-11-28

Add

  • Support for multi-drive in CANopen’s NetStatusListener.

  • EtherCAT communication via CoE (SDOs).

  • Add image attribute to dictionary class.

  • Add EthercatDictionary class.

  • Add EthercatRegister class.

  • Create EtherCAT PDOs example script.

Fixed

  • Fix CANopen load_firmware function.

  • Set product name correctly if no dictionary is provided.

  • Docstrings from Register constructor and its subclasses are updated.

  • CanopenRegister and EthernetRegister have the same signature.

  • Add PySOEM to setup.py.

  • Exception error when trying to write an int to a register of dtype float.

  • Fix acquisition data variable initialization in Poller class.

  • Unexpected closing when disconnecting from an EtherCAT (SDOs) drive if servo status listener is active.

  • Avoid crashes in the Poller due to read timeouts.

  • Poller timer thread not closing after the poller is finished.

  • Improve the enable and disable methods of the Servo class.

  • Unexpected VCIErrors.

Changed

  • Raise ILValueError when the disturbance data does not fit in a register.

Deprecated

  • Support to Python 3.6 and 3.7.

[7.0.4] - 2023-10-11

Fixed

  • Reread when ethernet read a wrong address

  • Read strings until NULL character

[7.0.3] - 2023-09-05

Add

  • Virtual drive.

Changed

  • convert_bytes_to_dtype raises an ILValueError string bytes are wrong

  • Wait EoE starts before connect drive

  • Remove EDS file path param from CANopen connection. It is no longer necessary.

Fixed

  • Catch EoE service deinit error when disconnecting the drive.

  • Log exceptions in read_coco_moco_register function correctly.

[7.0.2] - 2023-05-22

Changed

  • Read a register instead of doing a ping in the Ethernet’s NetStatusListener

  • Use inspect instead of pkg_resources to find the path to the FoE application.

  • Call FoE application with utf-8 encoding.

Fixed

  • Capture all the ingenialink exceptions in servo status listener

  • Truncate NACK error code to a int32

[7.0.1] - 2023-04-04

Fixed

  • Recover old Monitoring/Disturbance compatibility

  • Fix ServoStatusListener for multiaxis

[7.0.0] - 2023-03-31

Add

  • Interface a Network class with SOEM service

  • Add multi-slaves support to EoE service

  • Implement stop EoE service feature

  • Create mapped register property

  • Create project toml file

  • Use FoE application to load FW in windows

Changed

  • Update the load_FWs script to only use ingenialink.

  • Improve the load_FWs script when using canopen protocol.

Removed

  • Remove numpy from requirements

  • Remove binding to the ingenialink C library.

  • Move virtual drive from tests to ingenialink.

Fixed

  • NACK error code formatting.

  • Fix pytest tests launch

  • Wrong float range

[6.5.1] - 2023-01-17

Fixed

  • Truncate received data in ethernet by the expected data length.

  • Don’t add PartNumber to the configuration file if it does not exist in the dictionary.

  • CAN load firmware error if net_status_listener is disabled.

[6.5.0] - 2023-01-04

Added

  • Tests are separated by communication protocol.

  • Pull request template.

Changed

  • Re-organize the tests by protocol and add a no-connection mark to separate test that do not need a servo connected.

  • Remove enums_count as an argument to create a Register.

  • Convert enums type from list[dict] to dict.

  • Ethernet communication is done using Python’s standard library.

  • Ethernet network now supports connection to multiple devices.

  • Improved tests.

  • Improved code formatting.

  • Configuration file only stores registers that are stored in non-volatile memory and have access type RW.

Deprecated

  • TCP support for ethernet devices.

[6.4.0] - 2022-07-13

Added

  • Support monitoring/disturbance with CANopen protocol.

  • Check for IP address validity in change_tcp_ip_parameters function.

Changed

  • On multiaxis drives the function load_configuration now allows to load the configuration of one axis into another.

  • Set Ingenialink-C library log level to warning by default.

  • Raise ILError on IPB monitoring/disturbance functions when an operation is not successful.

Deprecated

  • monitoring_data function in ipb/servo use monitoring_channel_data instead.

  • All serial protocol functions.