Skip to content

Releases: ottowayi/pycomm3

1.2.3

02 Nov 22:35
bfde1c1
Compare
Choose a tag to compare

LogixDriver

  • 🐛 fixed issue with bit-level access to integers inside nested structs #170

1.2.2

12 Oct 13:20
915c7ab
Compare
Choose a tag to compare

CIPDriver

  • ✨ added support for string CIP paths in generic_message for route_path
  • 🐛 fixed bug where errors during discovery prevent any results from being returned (#167)
  • 🐛 fixed issue where get_module_info would always use first hop in path instead of the last

LogixDriver

  • 🐛 fixed issue with multi-request message size tracking being off by 2 bytes (#168)
  • 🐛 fixed issue with AOI structure handling with > 8 BOOL members being mapped to types larger than a USINT (SISAutomationIMA)

1.2.1

07 Jul 02:42
Compare
Choose a tag to compare
  • ✨ added ability to configure custom logger via the configure_default_logger function

1.2.0

03 Jul 19:02
Compare
Choose a tag to compare
  • 🐛 fixed issue with logging configuration (#148)
  • 🎨 formatted project with black
  • 📝 misc. documentation updates

LogixDriver

  • 🐛 fixed issue with writing a tag multiple times failing after the first write (#158 )
  • ✨ added tags_json property (#141)

SLCDriver

  • 🐛 fixed issue with parsing IO addresses (#137)
  • ⚡ improved address parsing speed by pre-compiling regex

1.1.1

16 Apr 13:00
Compare
Choose a tag to compare

LogixDriver

  • 🐛 fixed read/write errors by preventing program-scoped tags from using instance ids in the request

1.1.0

15 Apr 13:57
Compare
Choose a tag to compare

LogixDriver

  • 🐛 fixed bugs in handling of built-in types (TIMER, CONTROL, etc)
  • 🐛 fixed bugs in structure tag handling when padding exists between attributes
  • ✨ changed the meaning of the element count for BOOL arrays
    • Previously, the {#} referred to the underlying DWORD elements of the BOOL array.
      A BOOL[64] array is actually a DWORD[2] array, so array{1} translated to BOOL elements
      0-31 or the first DWORD element. Now, the {#} refers to the number of BOOL elements. So
      array{1} is only a single BOOL element and array{32} would be the 0-31 BOOL elements.
    • Refer to the documentation for limitations on writing.

1.0.1

17 Mar 15:28
Compare
Choose a tag to compare
  • 🐛 Fixed incorrect/no error in response Tag for some failed requests in a multi-request
  • ♻️ Minor refactor to status and extended status parsing

1.0.0

10 Mar 22:19
Compare
Choose a tag to compare

Changes

  • ✨ New type system to replace the Pack and Unpack helper classes
    • New types represent any CIP type or object and allow encoding and decoding of values
    • Allows users to create their own custom types
    • 💥 [Breaking] generic_message replaced the data_format argument with data_type, see documentation for details.
  • ✨ Added a new discover() method for finding Ethernet/IP devices on the local network
  • ✨ Added a configure_default_logger method for simple logging setup
    • Packet contents are now logged using a custom VERBOSE level
  • 🎨 Internal package structure changed.
  • ♻️ Lots of refactoring, decoupling, etc
  • ✅ Increased test coverage
  • 📝 New and improved documentation
    • 🚧 Still a work-in-progress

LogixDriver Changes

  • 🚩 Upload of program-scoped tags is now enabled by default
    • Use init_program_tags=False in initializer to upload controller-scoped only tags
  • 💥 Removed the init_info and micro800 init args and the use_instance_ids property
    • These have all been automatic for awhile now, but were left for backwards compatibility
    • If you need to customize this behavior, override the _initialize_driver method

1.0.0 Beta Release

17 Feb 17:48
9901cfd
Compare
Choose a tag to compare
1.0.0 Beta Release Pre-release
Pre-release

This is a beta release for the new V1 release. This release is intended only for test purposes and as a draft for the stable 1.0.0 release.

Major Changes:

  • new type system, removed the Pack and Unpack helper classes
    • old: Pack.uint(100) -> new: UINT.encode(100)
    • types as classes that can encode and decode any elementary or structured data type
    • when parsing the tag list a type is created for every tag to encode or decode their value
    • can create custom types for any struct, array, etc
    • replaces the data_format arg for generic messaging
    • TODO: full documentation on how to use types. Examples have been updated for now.
  • Internal package structure changed, may break imports if not importing from top level package
  • Lots of refactoring, decoupling, etc improvements internally, helping improve testability
  • added a configure_default_logger method for simple logging setup
  • packet contents are now logged with a custom VERBOSE log level
    • removed the RequestPacket.VERBOSE_DEBUG option used previously
    • improved the packet formatting too to look similar to wireshark
  • [BREAKING] generic_message now uses the new type system. The data_format arg was replaced with data_type.
  • added new discover() method to discover Ethernet/IP devices on the local network

LogixDriver

  • upload of program scoped tags is now on by default, use init_program_tags=False in initializer to disable.
  • removed the init_info and micro800 init args, also removed the use_instance_ids property
    • feature selection is all automatic now, if it needs to be customized, subclass and overwrite the _initialize_driver method

0.12.0

13 Jan 02:37
Compare
Choose a tag to compare
0.12.0 Pre-release
Pre-release
  • added support for backslashes in the PLC paths
  • improved parsing of PLC paths
  • improved testing

LogixDriver

  • added support for writing structures using dicts
  • added get_tag_info method for looking up data type and other information about a tags
  • added new data_type_name for all tag definitions
    • makes filtering lists simpler due to differences between struct and atomic tags
  • fixed bit writes >.31 for LINTs
  • fixed some issues with writing boolean arrays longer than 32 elements
  • fixed issues when duplicate tags are in the same read/write call
    • especially with duplicate bit level writes having unexpected results
  • improved packet size estimation

SLCDriver

  • fixed bit level writing in SLCDriver