Causes of fault

A substantial portion of all data transfer errors results from incorrect data forwarding by gateways. If a network is linked to other networks via two gateways that transfer the same set of data, for example, this can result in duplicate or lost data. If data packets are so long that they can only be transferred as a sequence of partial packets, there is a risk that packets will follow different routes via different gateways, resulting in mix-ups or erroneous insertions of certain packet segments. 

Another potential source of faulty data is electromagnetic interference, which may distort data, namely by "flipping" individual bits or even by destroying entire information sections.  Moreover, in networks that transfer both standard data and safety data, so-called "masquerades" can occur, where standard data is mistaken for safety data due to mix-ups and insertions. This can result in serious malfunctions.

Fault detection and prevention

One of openSAFETY’s most crucial mechanisms is the timestamp, which prevents data duplications, mix-ups and delays. Every data packet is stamped with the current time when it is sent. This stamp enables the receiver to avoid double read-outs and to determine the chronological sequence of different packets as well as any delays.

openSAFETY does not depend on distributed clocks; a special procedure provides for reliable synchronization of all the nodes. Also, since consumers are prompted for reply, they can tell that the data link remains established. openSAFETY implements this mechanism as a software-based function.

The identifier precludes any mix-ups on the receiving end: openSAFETY frames feature a unique identification tag that encodes parts of the address field, the telegram type contained and the frame type.

The most reliable means to identify changes to the original content is the CRC procedure, which generates checksums based on the structure of the data sets. The checksums are attached to the data set as a bit sequence. The receiver calculates the checksum itself and compares the result with the information it received. If any deviations from the original data content are detected, the message will be ignored.