Automation Professionals' EtherNet/IP Communication Suite V2

Automation Professionals is pleased to announce a beta release of the Keyence KV-8k support mentioned above.

For Ignition v8.1+: v2.1.11.240102103

This implementation reads the model code to initialize the span of the various types of device memory, and for KV-8000+, reads the function version to conditionally expand the R device range. All models with built-in EtherNet/IP (KV-5500 and above), models that accept the KV-EP21V comm module (KV-3k & -5k), and the models that accept the KV-NC1EP comm module (KV Nano) should all work with this driver.

Notes and known issues:

  • My lab unit (KV-8000A w/ function version 2.7.01) tends to randomly chop off the EtherNet/IP connection for unknown reason(s) -- channel just dies for 30-60 seconds at a time. Sometimes every couple minutes, sometimes runs for tens of minutes. :man_shrugging: I'm collecting info for a bug report to Keyence, but packet captures just show it ceasing to respond. (With and without KV Studio monitoring--with no matching interruption.)

  • There is no support for reading non-mapped named global variables, and it is unlikely to become available. What Keyence implemented with their symbolic access is just an alias to a range of mapped registers, exposed as an array of WORDs. Nothing larger than 496 bytes, and no exposed structure types. Intended for simplistic use with other PLCs message instructions only.

  • Keyence did not implement the EtherNet/IP "Multiple Request" service that allows multiple small operations to be assembled into a larger, more efficient packet. So while the unit allows 4000 byte message buffers, its largest message is ~460 bytes, and they cannot be packed. :man_shrugging:

  • Once running, on physical LAN, packet handling can run close to 2 requests per millisecond. So the computing hardware itself is no slouch. Keyence has left a lot of performance on the table, so far.

  • Most memory areas in these processors are split between global and local usage, with the boundary configurable. The exposed span is the complete range, but accesses beyond the boundary will be rejected.

3 Likes