Common Industrial Protocol (CIP)
The Common Industrial Protocol (CIP) is an object-oriented peer-to-peer protocol that enables connections between industrial devices (sensors, actuators) and higher-level devices (controllers). CIP is independent of physical media and the data link layer. CIP has two main purposes: transport of control-oriented data connected to I/O devices, and transport of information relating to the system to be controlled, such as configuration parameters or diagnostics.
CIP uses abstract objects to describe a device. A CIP device consists of a group of objects. Objects describe the available communication services, the externally visible behavior of the device, and a way in which information can be retrieved and exchanged. CIP objects are divided into classes, instances and attributes. A class is a set of objects that all represent the same component. An instance is the current representation of a particular object. Each instance has the same attributes, but possibly with different attribute values. The individual objects are addressed via a node address, which for EtherNet/IP is the IP address, plus a class, instance and attributes.
- Object
- An abstract representation of a particular component within a product.
- Class
- A set of objects that all represent the same type of system component. A class is a generalization of an object. All objects in a class are identical in form and behavior, but can contain different attribute values.
- Instance
- A specific and real specimen of an object.
Example: Berlin is an instance of the Capital object class. - Attribute
- A description of a property or characteristic of an object. Typically, attributes provide status information or control the operation of an object.
(Source: The CIP Networks Library Volume 1: Common Industrial Protocol, Edition 3.22)
The following objects are used internally by Beckhoff and are therefore reserved:
- Identity Object → Class 0x1
- Message Router Object → Class 0x2
- Assembly Object → Class 0x4
- Connection Manager Object → Class 0x6
- TCP/IP Interface Object → Class 0xF5
- Ethernet Link Object → Class 0xF6