Automation Professionals' EtherNet/IP Communication Suite V2

A customer recently went from dev to production and didn't get the performance they were expecting/hoping. A close look at their application, and some wireshark captures, revealed a whopper of a regression in v2.1.0. Didn't show up on applications with shallow UDT/AOI hierarchies, which is mostly what I have in my lab. Technically, it could have applied to some of my PlantPax samples, but those are badly hobbled by unoptimizable Function Block Diagram instructions and the impact was masked.

Anyways, a Math.max() in the optimizer depth decision tree where a Math.min() was intended utterly hacked deep hierarchies. Everyone should upgrade.

For Ignition v8.1+: v2.1.1.231881903

4 Likes

Another bugfix, and some prep for arbitrary unbrowsed symbol reads.

For Ignition v8.1+: v2.1.3.231941552

The bugfix deals with poor recovery from PLC downloads. I threw away the finesse and got out the brute force "reoptimize everything" hammer. :man_shrugging:

1 Like

A regression fix (@barrier support) and a fix for the slightly wider array optimizations of v2.1.1. Arbitrary unbrowsed symbol support is close... (Intended for ML8xx and Omron NJ/NX applications.)

For Ignition v8.1+: v2.1.4.231991530

Latest official release is on my Module Sales page, as usual.

Is a restart still required for an upgrade from 2.0.5 to 2.1.x, or was that only for the beta versions?

A restart is recommended but not required. There are changes to localization bundles that, due to long-standing platform behavior, won't be recognized without a complete gateway restart. The lack of localization updates create cosmetic problems in gateway configuration pages (missing translations for field and column names, mostly).

(For the betas, it was definitely required, due to unfixed memory leaks.)

1 Like

Thanks for that! We don't ever use localization, so it sounds like we can postpone the restart. On an unrelated note, is any kind of hash provided for the module file to verify file integrity?

The Ignition platform uses localization even for English throughout the gateway web interface. Anything I added between versions will look odd.

As for hashes, no, that's covered by Ignition's signature checking.

1 Like

Bugfix release. For writes to CIP attributes with byte arrays (aka OPC byte strings).

For Ignition v8.1+: v2.1.5.232231900

1 Like

Feature beta release. Configuration of arbitrary data types and symbols, optionally within folders, via the "Supplemental XML" configuration file, is now available for testing. At this time, functionality is focused on MicroLogix 8xx global variables that get excluded from the Logix Standard Browse operation. For user convenience, the appropriate XML can be generated from a Connected Components Workbench project via a python script:

https://www.automation-pros.com/enip1/ml800.py

Place the script in your specific project folder, which is typically something like:

C:\Users\philip\Documents\CCW\Lab-M850

If not yet present, install Python. Anything from v3.8 and up should work. Then, open a command line, cd to that project folder, and run:

python ml800.py

(If you copy or otherwise access that folder from a Linux system, simply click on ml800.py after you make it executable.)

A file named enip1-ml800-supplement.xml will be created in that folder. Import this XML file into the device configuration.

Manually restart the device. (Edit & save dance. Yes, this will be fixed before production release.)

Only global variables are accessible. I've found no way to access program local variables as is possible with conventional Logix processors.

The python script excludes variables that fit the browse requirements of the normal process, so there isn't any duplication. It also substitutes some data types that the underlying interface expects. See the python code and its output if you are interested.

For Ignition v8.1+ as usual: v2.1.6.232371923 Beta

1 Like

Feature and bugfix production release.

  • Ties up the loose end in the beta v2.1.6.

  • Fixes a configuration regression in the Class1 Host Device (misordered datatypes in XML).

For Ignition v8.1+: v2.1.7.232631409

Any update on Maker Edition availability?

Hadn't been thinking about it, to be honest. I suppose I can bump its priority a bit. Just needs a hash on the Maker license key to produce pseudo-random serial numbers to satisfy the EtherNet/IP Spec.

1 Like

Can confirm this product is a slaps (is good if that does not translate).

We had some issues with an AB L82 processor at 99% MSG class 3 comms (not good).

Did a trial run on the Class 1 driver and that dropped to 40% - no hassle no mess no fuss.

Planning on buying the license.

2 Likes

Array bulk read regression fix, for Logix processors only.

For Ignition v8.1+: v2.1.8.233041759

Bug fixes, plus documentation update:

  • Found and fixed an AOI parameter alias corner case that would prevent optimization of otherwise acceptable AOI structures

  • Fixed flaw in diagnostics where per-subscription pace Sampling statistics tags would not exist until browsed. Prevented affected subscriptions from restarting with the device, but would "magically" fix themselves when browsed to investigate. (Had me scratching my head, there, for a bit.)

  • JSON export typo cleanups.

  • Preparations for L5K parsing in the Host device (for data elements nested in an L5X).

  • Documentation section added describing Internet Protocol ports used and routing requirements for the driver's various options.

For Ignition v8.1+: v2.1.9.233172038

All users should upgrade.

1 Like

Automation Professionals is pleased to announce a feature beta release, focused on Host Driver functionality:

For Ignition v8.1+ as usual, v2.1.10.233462005

Key features:

  • New advanced option for the Host Driver type to select the desired set of predefined data types, covering most versions and all key model numbers from legacy L55 v10 through 5580 family v35. This should be set before an L5X import if the subject file is older than v35 and contains any user-defined datatypes that clash with v35 data type names.

  • Updated L5X import functionality, with better support for tag initialization data delivered in L5K format within the L5X.

  • Updated support for browsing by external devices with all new data types.

  • Updated support for large communication buffers when targeting the Host Device.

  • New advanced option for the Generic Client Driver type to perform comprehensive scanning of all data types in a Logix processor, including unused types.

Note that use of data types beyond v20, or any Omron types, in the Host Device portion of the driver became possible in prior releases, and worked with the OPC interface. However, those types (and non-zero-based arrays) broke external access in various ways, particularly breaking external tag and data type browsing.

The user manual is not fully updated.

Feedback on L5X imports into Host Devices with various versions would be welcome, preferably tested by pointing IA's native Logix driver at the emulation.

4 Likes

I'll mention that this sprint has been unusually difficult, as the data type support expansion broke older code in an unpleasant number of different ways. :frowning_face:

I also managed to badly hang IA's Logix driver by accidentally exposing a circular data type reference. It wasn't really nested, but a buggy substitution in the browse made it look that way to an external device. Something for @Kevin.Herron to play with. (I got an endless flood of requests for the problematic template definition. Hung the quick client and the designer's OPC browser, too.)

Automation Professionals is pleased to announce a production release candidate corresponding to Tuesday's beta.

For Ignition v8.1+ as usual, v2.1.10.233501944

Minor tweaks to the client driver:

  • Fix an optimization corner case for hosted booleans near the end of a structure. Improved logging to catch any future cases.

  • Fixed a regression in type reporting in diagnostic files.

  • Improved performance when many unreadable items are present by marking them for short circuiting, until reset by a processor re-browse.

  • Reworked OPC diagnostic tag paths to more closely follow IA native driver names, with backwards compatibility.

There are a few more QA tests I need to run in my office next week (with my lab gear) before I can make a production release.

My last bits of QA passed today. :+1: No changes since Saturday's candidate. I will be relabeling it a production release.

1 Like

Next up is Keyence KV-8k, KV-7500, KV-7k, and KV-EP21V (EtherNet/IP addon for older CPUs).

Access to pre-8k relay and data memory files is reasonably well-documented. Docs also (briefly) indicate that Logix-style tag read and write services are supported in the KV-8k, but not to what extent, or if browseable. Will be diving deep as soon as my new lab hardware arrives.

These processors also support FINS and Melsec protocol, but apparently not with comprehensive access to all data. The new named variable support in the KV-8k appears to only be reachable via EtherNet/IP (I think).

1 Like