Assembly and Object Operators

Assembly
The Assembly object defines an instantiated block of data which will be transferred from server to client or client to server on the EtherNet/IP network. Assemblies are defined by an extension to the XML language which refers to a structure as the data to be transferred, as described in the previous section.

When the Fairmount device is operating as a EtherNet/IP server/target, you define, via XML, what the Assemblies and Objects are.  Keep in mind that custom (vendor specific) objects should be numbered between 100 and 199 to avoid conflicts with objects that are defined or reserved as a part of the EtherNet/IP standard.

NOTE: A maximum of 511 bytes is allowed per Assembly connction.

EtherNet/IP Assembly Operator Configured as Producer

As an Assembly Producer, the operator has a single structure pin input that reflects the Structure Name specified in the operator properties, and an optional Disable Input pin.  It has two output pins, Actual Packet Rate and Server Connection Error.

Structure Input pin - this pin accepts a structure signal of the same time as indicated by operator properties, described below.

Signal Disable pin - this pin, active high, causes the data to stop be updated into the assembly this operator is connected to. It does not disable the communications path with the consumer counterpart, however, if disabled for more than the dead time value of the consumer it is communicating with, a Dead Time signal will be generated in the Consumer.

Actual packet rate pin - expressed in mS, is the time between packets.  This value may differ from the requested packet rate in the hardware connection.

Server Connection Error pin - becomes asserted when an error is sensed in the connection to the consumer this producer connects with is detected.

The Assembly operator, acting as a Producer, has the following operator properties that need to be set:

Mode  - Producer.

Structure Name -  must indicate an structure used by the Input, Output or Configuration assembly specified in the hardware properties selected upon the connection to hardware (discussed below).

Packing Alignment - specifies what byte boundaries the structure members will be organized on.  The choices are 1, 2, 4 or 8 bytes.  The packing alignment control how the members of the assembly are placed together with the packet.  With a packing of 1, there are no gaps betweens the members of the structure.  With a packing of 2 or more, any member will place on an offset that is a integer multiple of its size if less than or equal to the packing size, and if larger than the packing size placed at an offset that is an integer multiple of the packing size.

Pack Bits Together - specifies if a sequence of BOOL values in the structure should be coalesced into bytes containing up to 8 booleans, with unused bits passed with zeros.

EtherNet/IP Assembly  Operator Configured as Consumer

As an Assembly Consumer, the operator has no input pins and five output pins:

Structure pin input - reflects the Structure Name specified in the operator properties.

Data Rcvd pin - strobes high for a single Schema cycle when a new data packet is received.

Dead Time Error pin - becomes asserted when the data contained in the packets received is unchanged for a time specified in the operators Dead Time parameter.

Actual Packet Rate pin - the Actual packet rate, expressed in mS, is the time between received packets. This value may differ from the requested packet rate in the hardware connection. 

Server Connection Error pin - becomes asserted when an error is sensed in the connection to the producer this consumer connects with is detected.

The Assembly operator, acting as a Consumer, has the following parameters that need to be set.

Mode - Consumer.

Structure Name - must indicate an structure used by the Input, Output or Configuration assembly specified in the hardware properties selected upon the connection to hardware (discussed below).

Packing Alignment - specifies what byte boundaries the structure members will be organized on.  The choices are 1, 2, 4 or 8 bytes.  The packing alignment control how the members of the assembly are placed together with the packet.  With a packing of 1, there are no gaps betweens the members of the structure.  With a packing of 2 or more, any member will place on an offset that is a integer multiple of its size if less than or equal to the packing size, and if larger than the packing size placed at an offset that is an integer multiple of the packing size.

Pack Bits Together - specifies if a sequence of BOOL values in the structure should be coalesced into bytes containing up to 8 booleans, with unused bits passed with zeros.

Max Dead Time - indicates the time in mS the before indicating a Dead Time Error when the data received is found to be unchanging.

Linking the EtherNet/IP Assembly Operator to Hardware


The EtherNet/IP Assembly operator has the following parameters that need to be set when it is connected to the hardware.

Assembly - the name of the assembly instance the operator is to connect to.

Requested Packet Interval - How often, in mS the data should be transmitted.  There is little point in setting this any faster that the Schema loop time (typically 100 mS).  Additionally, the device may not be capable of the packet interval requested, in which case the fastest packet rate it can perform will be used.

Connection Type - Three choices are available, Exclusive Owner, Input Only and Listen Only. 

  • Exclusive Owner (also known as Input/Output): This connection is bi-directional: The originator produces data consumed by the target and the target produces data that is consumed by the originator. The Exclusive Owner connection is the controlling connection and no other connection can modify the data in the transaction. No more than one Exclusive Owner connection can be made to a particular target.
  • Input Only: For this connection type, only the target produces data, which is consumed by the originator. The originator will only send a heartbeat packet that is used to allow the target to identify when the connection is broken. Multiple originator devices can connect as Input Only to a target.
  • Listen Only: This connection type is similar to an Input Only connection type except it can only exist when one of the other I/O connection types has already been established. That is, a Listen Only connection cannot be established until an Exclusive Owner or Input Only connection has been established, and conversely when the last non-Listen-Only connection has been closed or has timed out, the Listen Only connection will automatically close as well.

Transport Mode - Two choices are available, Point to Point or Multicast.  Point to Point selects a unicast transmission that is a private exchange between this and the device not shared with anyone else.  Multicast indicates the data whould be transferred via a multicast transmission that allows others that "tuned" to the same multicast address to receive the same data.

Connection Timeout Multiplier -  a multiple of the actual (not requested) packet interval that will be used to determine a timeout if no transmissions occur in that timeframe.  This is a value that is a power of two ranging from 4 to 512 (e.g. 4, 8, 16...128,256,512).  Provided the requested packet rate is attainable by the device, this will represent the number of consecutive missed transmission that must occur before the connection times out with a failure.

EtherNet/IP Object Operator


Object operators are used to connect an instantiation of a class and map it to that class as a network resource. Use of objects in schemas tends to generate more network traffic than use of assemblies because an object operator sends its data each time one attribute of the class changes its value.  Also, because Objects interact via Explict messaging, the timing is not deterministic.  However, if the need is to transfer bi-directionally, change or aquire data on demand, or be collected or changed based on specific logic conditions or timing, then using Objects makes sense.

The EtherNet/IP Object operator has three pins that are integral to the operator and set of input and output pins that are dependent upon the Class it is linked to in its hardware properties.

Service Enable input pin - This pin control when the attributes described by the Class the operator is linked to are updated.  The properties of the operator determine if this is rising edge, falling edge, periodic updates while high, periodic updates while low or always enabled.

Update Success output pin - This pin becomes asserted while a request is in progress and will remain asserted until the request either completes or fails.

Update Failure output pin - This pin becomes asserted if a request fails.  It will never be asserted at the same time as the Update Success pin, however, between requests neither pin will be asserted.

The additional pins, which may be any combination of input or output, each represent an attribute defines the EIPCLASS for the object this operator is linked to in its hardware properties.  Any attribute with permissions specified as "W" or "RW", will be represented as an input pin.  Any Attribute with permissions specified as "R" or "RW", will be represented by an output pin.


The EtherNet/IP Object Operator as set of properties that need to be set:

Service Enable On - Controls when the operator will update the object it references.

Rising Edge - update once on the rising edge of the Service Enable pin.

Falling Edge - update once on the falling edge of the Service Enable pin.

Active High - update according to the Periodic Update Rate while the Service Enable pin is held high.

Active Low - update according to the Periodic Update Rate while the Service Enable pin is held low.

Always Enabled - the Service Enable pin is ignored and updates will occur according to the Periodic Update Rate.

Service Min Delay - Not currently used.

Periodic Update Rate - the number of mS between periodic updates when Service Enable On is specified as Active High, Active Low or Always enabled and the Service Enable pin matched the configured service mode.

NOTE: When acting as a Server/Target, i.e. connected to a locally defined instance of a class, the Service Enable, Update Success and Update Failure pins do not appear, nor do the Object Properties have any effect.

The EtherNet/IP Object operator has the following parameters that need to be set when it is connected to the hardware.

Object - The instance of a Class as created/listed in Module Properties/Networking/ETHERNET/EtherNet IP/Object of the device to be connected to.  If the Object is local, the Object operator is acting as a server, if external, it is acting as a client.