Releases: ottowayi/pycomm3
Releases · ottowayi/pycomm3
1.2.3
1.2.2
CIPDriver
- ✨ added support for string CIP paths in
generic_message
forroute_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
1.2.0
- 🐛 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
1.1.0
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 underlyingDWORD
elements of theBOOL
array.
ABOOL[64]
array is actually aDWORD[2]
array, soarray{1}
translated to BOOL elements
0-31 or the firstDWORD
element. Now, the{#}
refers to the number ofBOOL
elements. So
array{1}
is only a singleBOOL
element andarray{32}
would be the 0-31BOOL
elements. - Refer to the documentation for limitations on writing.
- Previously, the
1.0.1
1.0.0
Changes
- ✨ New type system to replace the
Pack
andUnpack
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 thedata_format
argument withdata_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
- Packet contents are now logged using a custom
- 🎨 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
- Use
- 💥 Removed the
init_info
andmicro800
init args and theuse_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
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
andUnpack
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.
- old:
- 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. Thedata_format
arg was replaced withdata_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
andmicro800
init args, also removed theuse_instance_ids
property- feature selection is all automatic now, if it needs to be customized, subclass and overwrite the
_initialize_driver
method
- feature selection is all automatic now, if it needs to be customized, subclass and overwrite the
0.12.0
- 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