Method and system for cyclically transmitting data between communication participants on a data transmission channel

By introducing the redundant transmission cycle and repeated command mechanisms in the data transmission system, the loss of loss and constant bandwidth of the constant bandwidth are solved by the introduction of the redundant transmission cycle and the repeated command mechanism in the data transmission.

CN114788248BActive Publication Date: 2025-01-24BECKHOFF AUTOMATION GMBH
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202080085583.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-12-11
Filing Date
2020-12-11
Publication Date
2025-01-24
Estimated Expiration
2040-12-11

AI Technical Summary

Technical Problem

In production and process automation, data is easily lost due to interference, short interrupts and other reasons when transmitted in the fieldbus system, which leads to errors in the execution of control tasks.

Method used

By introducing redundant transmission cycles in the data transmission system, it is ensured that additional data transmission capabilities are used in each communication cycle to repeat the error data transmission. The data processor delayed the receiving data according to the response of the data generator, and uses the repeated command to indicate the data generator repeat the error transmission cycle.

Benefits of technology

It achieves lossless cyclic transmission of data during the data transmission process, ensuring that the data processor receives new data in each communication cycle and keeping the bandwidth of the communication cycle constant even in error situations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114788248B_ABST
    Figure CN114788248B_ABST
Patent Text Reader

Abstract

In a data transmission system, a first amount of data can be transmitted in each transmission cycle. A data generator (3) provides a second amount of data for each transmission cycle. The first amount of data exceeds the second amount of data by a percentage. The data generator (3) transmits the data provided by the data generator (3) to a data processor (2) at a data transmission rate of a data transmission channel (1). The data processor (2) delays processing of data received from the data generator (3) on the data transmission channel (1) by the number of transmission cycles required by the data generator (3) in response to a command from the data processor (2). If an error occurs in the data transmission in a transmission cycle, the data processor (2) indicates to the data generator (3) that the transmission cycle is an error using a repeat command, wherein the data generator (3) repeats the data transmission of the data in the transmission cycle indicated as an error by the data processor (2) when receiving the repeat command.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] In production and process automation, decentralized machine peripherals (such as I / O modules, measuring transducers, drives, valves and operator terminals) communicate with the control device via a high-performance real-time communication network. All devices (hereinafter also referred to as communication participants) are connected to each other via a data transmission channel (preferably a fieldbus), where data exchange usually takes place based on the master-slave principle.

[0002] This patent application claims the priority of German patent application 102019133894.8, the disclosure content of which is incorporated herein by retroactive reference. Background Art

[0003] Active communication participants on the fieldbus are control devices. They have bus access rights and determine data transmission. Active communication participants are also called masters. Passive communication participants are generally machine peripherals. They do not have bus access rights and can only confirm received data or transmit data to a master at its request. Passive communication participants are also called slaves.

[0004] Control processes in production and process automation generally consist of cyclically executed tasks. These tasks are executed in such a way that the slave participants forming the machine periphery provide input process data via the fieldbus to the master participant that performs the process control. The output process data are then generated in the master participant according to the task to be executed and transmitted back to the slave participant via the fieldbus.

[0005] Data is usually exchanged between the communicating parties in the form of discrete data packets (hereinafter also referred to as telegrams). The telegram structure is generally based on the Ethernet standard.

[0006] In practice, it often happens that telegrams are not correctly transmitted from one communication participant to another. Possible causes are disturbances in the sending communication participant, brief interruptions in the data transmission channel and disturbances in the receiving communication participant. Data losses can lead to errors in the execution of control tasks.

[0007] In order to eliminate interference in data transmission, the fieldbus system can repeat erroneously transmitted telegrams. This can be achieved by the master sending a telegram to the slave and then waiting for a reply telegram. If the slave processes the telegram immediately, the slave can reply with a separate telegram or the same telegram. If the master does not receive a reply within a specified time, the master sends the originally sent telegram again. This method is described, for example, in patent document DE102016121019A1, in which the master sends a telegram that has already been sent a second time if the slave does not confirm receipt of the first sent telegram.

[0008] Another possibility is that the master sends a telegram sequence instead of a single telegram, which includes a plurality of telegrams with substantially the same content. For successful transmission, it is sufficient for the slave to receive at least one telegram from the repeated sequence of telegrams. This method is described, for example, in patent document DE102015117937A1.

[0009] If a communication participant has to trigger a specific action in response to the successful receipt of a telegram, the moment at which the action is carried out depends on when the duplicate telegram is received or which telegram in a telegram sequence the communication participant responded to in the case of repeated telegrams in error situations. This can be particularly problematic when multiple communication participants are to be operated synchronously in a fieldbus system.

[0010] Patent document US7,373,578B2 describes a method for lossless data transmission using telegram repetition, wherein when a communication failure occurs, the telegram repetition is postponed to the next communication cycle, thereby keeping the bandwidth of the communication cycle constant. However, with this process, it is not possible to guarantee that the receiver will receive the current data in each communication cycle. Summary of the invention

[0011] The purpose of the present invention is to realize lossless cyclic transmission of data between communication participants on a data transmission channel.

[0012] The solution of the present invention to achieve the above-mentioned object is the method according to the present invention and the data transmission system according to the present invention. For advantageous improved solutions, refer to the present invention.

[0013] In a data transmission system, data is transmitted cyclically between communication participants on a data transmission channel, and the data transmission channel operates at a data transmission rate that can transmit a first data amount in each transmission cycle. In this case, one communication participant acts as a data processor and the other communication participant acts as a data generator. The data generator provides a second data amount for each transmission cycle. The first data amount exceeds the second data amount by a percentage. The data generator transmits the data provided by the data generator to the data processor at the data transmission rate of the data transmission channel. The data processor delays processing of the data received from the data generator on the data transmission channel according to the number of transmission cycles required by the data generator in response to a command from the data processor. If an error occurs in the data transmission in the transmission cycle, the data processor indicates to the data generator that the transmission cycle is an error using a repeat command, wherein the data generator repeats the data transmission of the data of the transmission cycle indicated as an error by the data processor when receiving the repeat command.

[0014] The first data amount indicates how much data can be transmitted per transmission cycle. The second data amount is generated by the data generator per transmission cycle. Then, the generated second data amount is transmitted using a data packet having the size of the first data amount (i.e., greater than the second data amount), so that more data than the second data amount can be transmitted using the transmitted data packet within the transmission cycle. In this way, redundant transmission cycles are provided in each communication cycle, which can be used to repeat erroneous data transmission.

[0015] With this process, data transmission is not lost. Furthermore, the bandwidth required for each communication cycle can be kept constant even with repeated data transmissions of the transmission cycle. In addition, it is ensured that the data processor receives new data in each communication cycle. The dead time during which the data processor delays starting to process data received from the data generator on the data transmission channel can be kept as short as possible and can be precisely coordinated with the number of transmission cycles required for the data generator to respond to commands from the data processor.

[0016] The percentage of the first data amount exceeding the second data amount multiplied by n times can be equal to the second data amount, where n is an integer greater than 1. If the data generator transmits less than the first data amount in a transmission cycle, the data processor discards the data received from the data generator in the transmission cycle. With this process, it is possible to simply ensure that the data processor receives new data in each communication cycle while providing a redundant transmission cycle for data transmission that may repeat errors.

[0017] The data processor can be designed to send a processor data unit in each transmission cycle, and the data generator responds to the processor data unit with a generator data unit in the corresponding transmission cycle, wherein the processor data unit contains data elements for transmitting repeat commands. If the protocol used in the data transmission system allows data processing in real time, both the processor data unit and the generator data unit can be transmitted in a transmission cycle with a single telegram. The EtherCAT fieldbus protocol allows such data processing in real time. Alternatively, both the processor data unit and the generator data unit can be sent in a transmission cycle by means of a separate telegram. In this way, data transmission using processor data units and generator data units in a transmission cycle provides maximum flexibility in the design of the data transmission system.

[0018] Within the scope of the initialization sequence, a dead time can be determined, which corresponds to the number of transmission cycles required by the data generator to respond to a command from the data processor. The transmission cycles are then designed to provide a sequence of data values ​​in consecutive processor data units of the initialization sequence, wherein each transmission cycle of the initialization sequence is associated with a separate data value, which the data generator records before entering the data value into the next generator data unit sent to the data processor. With this procedure, a dead time can be determined simply and reliably, which determines the delay set in the data processor when processing user data from the data generator.

[0019] The data processor may be configured to input into the processor data unit a data element for transmitting a run status command, the run status command indicating that the transmission cycle is part of an initialization sequence or part of a data transmission sequence. The data processor may also be configured to input into the processor data unit a data element for transmitting a data command, with which the second amount of data generated by the data generator in the transmission cycle may be changed. The data generator may be configured to input into the generator data unit a data element for transmitting a transmission status command, the transmission status command indicating whether the data elements set for user data in the generator data unit are completely occupied by user data. Alternatively, the data generator may be configured to input into the generator data unit a data element for transmitting a transmission status command, the transmission status command indicating the number of data elements in the generator data unit occupied by user data.

[0020] With such a design of the processor data unit or generator data unit, in the event of an erroneous data transmission in one of the other transmission cycles, a repetition can simply be performed in a redundant transmission cycle in each communication cycle.

[0021] In the data transmission system, the data generator may have a cache in the form of a ring buffer for receiving the generated second data quantity. In the case of a ring buffer, the second data quantities in successive transmission cycles can be stored one after the other and can be addressed simply. With regard to the communication cycle time and the memory size of the ring buffer, it should be noted that data in the ring buffer that has not yet been transmitted from the data generator to the data processor will not be overwritten. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The present invention is described in detail below in conjunction with preferred embodiments.

[0023] Figure 1 The most general structural form of a data transmission system for cyclically transmitting data between two communication participants on a data transmission channel is shown, wherein one communication participant acts as a data processor and the other communication participant acts as a data generator.

[0024] Figure 2Shown for Figure 1 An implementation of a cache in the form of a ring buffer of a data generator in a data transmission system is shown.

[0025] Figure 3 Shown for Figure 1 In the data transmission system shown, a first sequence of user data is cyclically transmitted between a data processor and a data generator.

[0026] Figure 4 Shown for Figure 1 In the data transmission system shown, a second sequence of user data is cyclically transmitted between the data processor and the data generator.

[0027] Figure 5 Shown for Figure 1 In the data transmission system shown, a third sequence of user data is cyclically transmitted between the data processor and the data generator. DETAILED DESCRIPTION

[0028] Data transmission systems for the cyclic transmission of data between communication participants on a data transmission channel are intended for use in the field of automation technology, ie, for the control and monitoring of technical processes by means of software, but are not limited to such applications.

[0029] In production and process automation, control devices and distributed sensor / actuator levels communicate via local communication networks. The communication networks used are fieldbus systems, which can have different topologies, such as ring, star, line or tree topologies.

[0030] In fieldbus systems, a distinction is generally made between active and passive communication participants. Active communication participants in fieldbus systems are control devices, which determine data traffic as a master participant. The master participant has access rights to the data transmission channel and can therefore output data to the data transmission channel independently. Passive communication participants in fieldbus systems are sensors and actuators, which receive data as slaves or allow data to be transmitted to the master participant upon request.

[0031] Programs for controlling, monitoring and regulating technical processes generally have several control tasks, which all have input and output process images. Process data are associated with sensors and actuators, i.e. slave participants that form the process interface. Input process data are requested from sensors by the control device (i.e. master participant on the fieldbus) via a data transmission channel, received by the control device, processed according to the control task and then transmitted as output process data via the data transmission channel to the actuator.

[0032] The process data exchange on the data transmission channel is usually carried out in the form of discrete data packets (hereinafter also called telegrams) which are usually transmitted cyclically. The telegram structure is usually based on the Ethernet standard, wherein the transmission protocol used on the fieldbus preferably ensures real-time transmission and low jitter.

[0033] In order to transmit data without data loss and to keep the required bandwidth for each communication cycle constant even for data transmission with repeated transmission cycles, the following operations should be performed:

[0034] In the data transmission system, data is cyclically transmitted on a data transmission channel, which operates at a data transmission rate capable of transmitting a first data amount in each transmission cycle. The data generator also provides a second data amount for each transmission cycle, the first data amount exceeding the second data amount by a percentage.

[0035] The data generator transmits the data provided by the data generator to the data processor at the data transmission rate of the data transmission channel. The data processor delays processing the data received from the data generator on the data transmission channel according to the number of transmission cycles required for the data generator to respond to the command from the data processor.

[0036] If an error occurs during data transmission in a transmission cycle, the data processor indicates to the data generator that the transmission cycle is an error using a repeat command, wherein the data generator repeats data transmission of the data in the transmission cycle indicated as an error by the data processor upon receiving the repeat command.

[0037] The percentage of the first data amount exceeding the second data amount multiplied by n times can be equal to the second data amount, where n is an integer greater than 1. If the data generator transmits less than the first data amount in a transmission cycle, the data processor discards the data received from the data generator in the transmission cycle. With this process, it is possible to simply ensure that the data processor receives new data in each communication cycle while providing a redundant transmission cycle for data transmission that may repeat errors.

[0038] In principle, however, the percentage by which the first amount of data exceeds the second amount of data multiplied by n does not necessarily have to be exactly equal to the second amount of data. The data processor can then be designed to process data only once when it receives data multiple times. This can be done in that the data processor checks whether the data received from the data generator in a transmission cycle are already known from a previous transmission cycle and available to the data processor. The data processor then either discards the already existing data or discards the data received again.

[0039] Figure 1The most general structural form of a data transmission system for cyclically transmitting data between two communication participants on a data transmission channel 1 according to the above procedure is shown. One communication participant is a data processor 2 and the other communication participant is a data generator 3. The transmission cycle on the data transmission channel 1 is implemented in a bidirectional exchange of data between the data processor 2 and the data generator 3.

[0040] Based on the automation system as a data transmission system, the data transmission channel 1 is a fieldbus, in which the data processor 2 represents the control device, which determines the data traffic on the fieldbus as a master participant. On the other hand, the data generator 3 is a slave participant on the fieldbus, i.e. a machine peripheral device to which data is transmitted at the request of the master participant. Generally speaking, a large number of data generators 3 (i.e. slave participants) are connected to the fieldbus (i.e. data transmission channel 1) and are addressed in parallel by the data processor 2 (i.e. master participant).

[0041] If the protocol used in the data transmission system allows for real-time processing of data, data can be transmitted from the data processor 2 to the data generator 3 and from the data generator 3 to the data processor 2 in a transmission cycle using a single telegram. The EtherCAT fieldbus protocol enables such data processing to be performed in real time. Alternatively, it is also possible for each communication participant (i.e., the data processor 2 and the data generator 3) to send data in a transmission cycle using a separate telegram.

[0042] If synchronous data processing is desired in the data processor 2, in which the data processor 2 processes new data in each communication cycle, which is a goal in particular when processing process data in the context of a control task, then it must be taken into account how many transmission cycles the data generator 3 needs in the data exchange in order to respond to the commands in the received telegram after receiving the telegram from the data processor 2.

[0043] The data processor 2 is configured to delay processing of the data received on the data transmission channel 1 according to the number of transmission cycles required by the data generator 3 in response to the command from the data processor 2. This ensures that if the data processor 2 indicates to the data generator 3 using a repeat command that the data transmission in the transmission cycle is an error, the data processor 2 will also receive the data retransmitted by the data generator 3 after receiving the repeat command, and then the data processor 2 processes the data.

[0044] It is generally desirable that the dead time that must be set at least for the data processor 2 can be kept as short as possible. If each communication participant (i.e., the data processor 2 and the data generator 3) sends data in a transmission cycle by means of its own telegram, retransmission of data can be performed by the data generator 3 in response to the repeat command of the data processor 2 in the same transmission cycle, because the telegrams of the two communication participants can be executed in a time-shifted manner. Thus, before the data generator 3 sends its telegram in the transmission cycle, the data generator 3 has sufficient time to evaluate the telegram from the data processor 2 so as to use the telegram to repeat the telegram in response to the repeat command from the data processor 2. In this case, the minimum dead time for the data processor 2 to process data is one transmission cycle. However, if corresponding settings are made in the data generator 3, the response of the data generator 3 may also only occur in the next transmission cycle or even a later transmission cycle.

[0045] If data is transmitted from the data processor 2 to the data generator 3 and from the data generator 3 to the data processor 2 in a transmission cycle using a single telegram, it is necessary that the data processor 2 should achieve a minimum dead time for processing data in only one transmission cycle, and the path of the telegram through the data generator 3 should be designed so that the data generator 3 has sufficient time to evaluate the command forwarded by the data processor 2 using the telegram. This can be achieved by such a telegram structure that the command of the data processor 2 is arranged in the front section of the telegram, and the data generator 3 only enters its data into the back section of the telegram. Thus, before the data generator 3 enters its data into the telegram, the data generator 3 can interpret the command from the data processor 2 forwarded using the telegram. The data generator 3 can then resend the data from the erroneous transmission cycle using the telegram of the repeated command forwarded by the data generator 3.

[0046] If such command interpretation is not performed in the data generator 3 during the circulation of the telegram, the data generator 3 can respond to the repeat command, i.e. resend the data of the erroneous transmission cycle, only using the telegram circulating in the next transmission cycle or the telegram circulating in a later transmission cycle.

[0047] The data generator 3 generally generates the same amount of data in each transmission cycle. The data processor 2 is further configured so that the data processor 2 processes at least the amount of data provided by the data generator 3 in each transmission cycle. Alternatively, the data generator 3 may generate different amounts of data for different transmission cycles. The processing capacity of the data processor 2 matches the amount of data provided by the data generator 3 in the transmission cycle.

[0048] The data generated by the data generator 3 is stored locally in the cache so that it can be sent again during the transmission cycle at the request of the data processor 2. The cache in the data generator 3 can be constructed as a ring buffer. The data is stored in the ring buffer one after another. When the end of the ring buffer is reached, it will start from the beginning again.

[0049] Regarding the communication cycle time and memory size of the ring buffer, it should be noted that data in the ring buffer that has not yet been transmitted from the data generator 3 to the data processor 2 will not be overwritten. Therefore, it must be ensured that the data generator 3 does not generate more new data on average (i.e. observed over multiple communication cycles) than can be transmitted from the data generator 3 to the data processor 2 within these communication cycles.

[0050] The following is an example of a process for the lossless cyclic transmission of data between a data generator 3 and a data processor 2 on a data transmission channel 1, wherein even repeated data transmissions ensure that the bandwidth of the communication cycle is constant. The detailed design of the data transmission technology is not described in detail in this article. In particular, the process described in the fieldbus for industrial applications defined in the IEC 61158 standard can be used. Possible protocols for fieldbuses are combined in the standards IEC 61784-1 and IEC 61784-2.

[0051] For the purposes of this example, it is assumed that the data generator 3 provides a data packet with four data fields in each transmission cycle, wherein each data field contains a fixed number of data elements, for example in bytes. The data elements of the four data fields are user data, for example process data, whose processing for the data processor 2 is determined in the control task.

[0052] Figure 2 An embodiment of a cache in the form of a ring buffer of the data generator 3 is shown, for receiving data generated by the data generator 3. The ring buffer is designed to receive data of 20 transmission cycles provided by the data generator 3. Figure 2 In the ring buffer, each data packet is labeled as Data Cycle 01-20. Figure 2 In the additional section, any data packet in the ring buffer (with a data cycle numbered n) is subdivided into four data fields. Each data field is represented by the letter D, the data cycle number n of the data packet, and a sequence number from 1 to 4.

[0053] It is further assumed that the data transmission channel 1 operates at a data transmission rate at which a data amount of five data fields can be transmitted from the data generator 3 to the data processor 2 in each transmission cycle. Thus, the amount of data that can be transmitted in a transmission cycle exceeds the amount of data generated by the data generator 3 in one transmission cycle by one quarter, expressed as 25% in percentage. The amount of data generated by the data generator 3 for five transmission cycles can be transmitted in four transmission cycles. The bandwidth of the communication cycle in the data transmission system is five transmission cycles, wherein one of the five transmission cycles is redundant with respect to the transmission of the amount of data provided by the data generator 3 for five transmission cycles and can be used to retransmit data from the transmission cycle identified as erroneous.

[0054] In this example, the first amount of data that can be transmitted from the data generator 3 to the data processor 2 in one transmission cycle exceeds the second amount of data generated by the data generator 3 for one transmission cycle by a percentage that is equal to the second amount of data multiplied by n times, where n is an integer greater than 1. In this example, the percentage is 25%, and n = 4. In principle, however, the percentage by which the first amount of data exceeds the second amount of data multiplied by n times does not necessarily have to be exactly equal to the second amount of data.

[0055] Figure 2 The ring buffer shown is allocated with 16 memory addresses A1-A16 (such as Figure 2 ), which is used to transmit the data stored in the ring buffer from the data generator 3 for 20 transmission cycles. Each memory address A1-A16 represents a data area consisting of five data fields, whose data can be transmitted from the data generator 3 to the data processor 2 on the data transmission channel 1 according to the transmission cycle.

[0056] It is further assumed that the data processor 2 sends each processor data unit of two data fields to the data generator 3 in each transmission cycle. In the corresponding transmission cycle, the data generator 3 replies to the processor data unit of the data processor 2 with a generator data unit consisting of seven data fields. As in the above alternative, the processor data unit with two data fields and the generator data unit with seven data fields can be contained in a single telegram or can also be transmitted as separate telegrams.

[0057] Two data fields in the processor data unit sent by the data processor 2 in a transfer cycle are reserved for data elements which are each interpreted as command data.

[0058] Combine as follows Figure 3It is shown and described that the first data field in the processor data unit includes at least two data elements, wherein the first command data element is an operation status command E, and the second command data element is a repeat command R, which can both have a value of 0 or a value of 1. The value of 0 of the operation status command E indicates that the transmission cycle is part of an initialization sequence. The value of 1 of the transmission status command E indicates that the transmission cycle is part of a data transmission sequence. The value of 0 of the repeat command R indicates that the previous transmission cycle was executed without error. The value of 1 of the repeat command R indicates that an error occurred in the data transmission of the previous transmission cycle. In addition to the operation status command E and the repeat command R, other command data elements may be included in the first data field.

[0059] The data element in the second data field of the processor data unit is interpreted according to the value of the command data element in the first data field of the processor data unit, which can be a data value or an address value ID. The address value ID is particularly related to Figure 2 The 16 memory addresses A1-A16 of the ring buffer are shown.

[0060] Among the seven data fields of the generator data unit, the first two data fields of the generator data unit are reserved for data elements, which are interpreted as command data. The other five data fields in the generator data unit are used to transmit user data provided by the data generator 3 and cached in the ring buffer to the data processor 2. Each user data field of the generator data unit can accept a data field provided by the data generator 3 and cached in the ring buffer.

[0061] The first data field of the generator data unit contains at least one transmission status command F as a command data element, which can have a value of 0 or a value of 1. A value of 0 for the transmission status command F indicates that the five user data fields of the generator data unit are not completely occupied by data, and a value of 1 for the transmission status command F indicates that the five user data fields of the generator data unit are completely occupied by data.

[0062] Alternatively, instead of using the value 0 or the value 1 to distinguish between partially occupied and fully occupied user data fields of a generator data unit, the transmission status command F can also always specify the exact number of occupied user data fields of a generator data unit as a value.

[0063] The data element in the second data field of the generator data unit is interpreted according to the value of the command data element in the first data field of the generator data unit, which can be a data value or an address value ID. The address value ID is particularly related to Figure 2 The 16 memory addresses A1-A16 of the ring buffer are shown.

[0064] Figure 3The first nine transmission cycles Zyklus 0 to Zyklus 8 of the first sequence are shown, which are used for cyclic transmission of user data between the data processor 2 and the data generator 3 on the data transmission channel 1. In each transmission cycle, as described above, the data processor 2 sends a processor data unit with two data fields, and the data generator 3 sends a generator data unit with seven data fields.

[0065] As also mentioned above, a communication cycle of data transmission in the data transmission system consists of five consecutive transmission cycles. Figure 3 In the first transmission cycle sequence shown, the first communication cycle starts with the fifth transmission cycle Zyklus 4 and ends with the ninth transmission cycle Zyklus 8 .

[0066] Before the data transmission of the first communication cycle begins, a dead time is determined in the data transmission system using the previous transmission cycles in the initialization sequence, which corresponds to the number of transmission cycles required for the data generator 3 to respond to the command from the data processor 2. Then, the data processor 2 is arranged so that the data processor 2 delays processing of the user data received from the data generator 3 on the data transmission channel 1 by at least a number of transmission cycles, the number of delayed transmission cycles corresponding to the dead time.

[0067] In the above embodiment, the data transmission system is designed so that the data generator 3 needs one transmission cycle to interpret the command from the data processor 2 .

[0068] At the beginning of the initialization sequence, the data processor 2 sends an operating state command E=0 in the first transmission cycle Zyklus 0 in the first data field of the first processor data unit, which indicates that the data transmission system is in initialization mode. In addition, the data processor 2 enters a repeat command R=0 into the first data field of the first processor data unit. The data value X is transmitted in the second data field of the first processor data unit.

[0069] The data generator 3 has not evaluated the command in the first processor data unit in the first transmission cycle Zyklus 0 and therefore has not responded to the command in the first processor data unit in the first transmission cycle Zyklus 0. The data generator 3 sends a first generator data unit in the first transmission cycle Zyklus 0, in which only the transmission status command F=0 is entered in the first data field. The remaining six data fields of the first generator data unit remain free. The value 0 of the transmission status command F indicates that the five user data fields of the generator data unit are not completely occupied by data.

[0070] In the second transmission cycle Zyklus 1, the data processor 2 again sends the operating state command E=0 and the repeat command R=0 in the first data field of the second processor data unit. The data processor 2 enters a data value X+1 higher than the data value X of the first processor data unit into the second data field of the second processor data unit.

[0071] The data processor 2 enters the initialization mode when the operating state command E=0 is entered in the first data field of the processor data unit, so that with each transmission cycle, the data value in the second data field of the processor data unit is increased by 1. With this process, a sequence of data values ​​is provided with successive processor data units of the initialization sequence, wherein each transmission cycle of the initialization sequence is associated with a separate data value. In addition to increasing the data value, it is also possible to decrease the data value. However, it is also possible to enter a sequence of data values ​​personalized in a different way in the second data field of the processor data unit.

[0072] The data generator 3 has now evaluated the operating state command E=0 from the first processor data unit in the second transmission cycle, and in response thereto has mirrored the data value X from the second data field of the first processor data unit into the second data field of the second generator data unit. The five user data fields of the second generator data unit remain empty, and the data generator 3 indicates this in the first data field of the second generator data unit with the transmission state command F=0.

[0073] The data generator 3 is basically configured such that when the data generator 3 recognizes the operating status command E=0 in the processor data unit of the first data field, the command indicates that the data transmission system is in initialization mode, and the data value in the second data field of the corresponding processor data unit is input into the second data field of the next generator data unit sent to the data processor 2.

[0074] When evaluating the second generator data unit, the data processor 2 finds that the data generator 3 delays one transmission cycle to respond to the command from the data processor 2 through the feedback of the data value X that the data processor 2 has sent with the first processor data unit in the first transmission cycle Zyklus 0. For the data processor 2, there is a dead time, so that the data processor 2 must delay processing the user data received from the data generator, so as to give the data generator two transmission cycles to respond to the command from the data processor 2.

[0075] After determining the dead time, after the second transmission period Zyklus 1, the data processor 2 exits the initialization mode and switches to the transmission mode.

[0076] In the third transmission cycle Zyklus 2, the data processor 2 now inputs an operating state command E=1 indicating the transmission mode into the first data field of the third processor data unit. In addition, the data processor 2 inserts a repeat command R=0 into the first data field of the third processor data unit. The second data field of the third processor data unit remains empty.

[0077] Alternatively, the data processor 2 may also extend the initialization sequence for more transmission cycles by sending more processor data units with an operation status command E=0 in the first data field and a data value from the data sequence in the second data field, whereby the dead time may be determined multiple times based on the data value fed back to the generator data unit by the data generator after evaluating the operation status command E=0. The data processor 2 may then determine any dead time fluctuations as needed and then consider processing the user data from the data generator 3 within the delay set in the data processor.

[0078] However, the initialization sequence before the actual data transmission can in principle also be omitted if the data processor 2 knows how many transmission cycles the data generator 3 needs to respond to a command from the data processor 2. The number of transmission cycles by which the processing of the user data in the data processor 2 must be delayed relative to the transmission cycle in which the user data is received can then be set directly in the data processor 2.

[0079] Since the evaluation is delayed by one transmission cycle, data generator 3 answers the third processor data unit sent by data processor 2 in the third transmission cycle Zyklus2 with a third generator data unit in response to the second processor unit sent in the second transmission cycle Zyklus1, with a transmission status command F=0 in the first data field and a mirrored data value X+1 from the second processor data unit in the second data field. The five user data fields remain empty.

[0080] In the transmission mode to which the data processor 2 switches in the third transmission cycle Zyklus 2, the data processor 2 further processes the generator data unit only if the value 1 of the transmission status command F in the first data field indicates that all five user data fields of the generator data unit contain data. The third generator data unit sent by the data generator 3 in the third transmission cycle Zyklus 2 has a transmission status command F=0 in the first data field and is therefore discarded by the data processor 2.

[0081] The data processor 2 then continues the transmission mode with a fourth transmission cycle Zyklus 3, wherein the data processor 2 sends a fourth processor data unit which is identical to the third processor data unit from the third transmission cycle Zyklus 2. The first data field of this fourth processor data unit again contains the operating state command E=1 and the repeat command R=0. The second data field of the fourth processor data unit remains empty.

[0082] The data generator 3 simultaneously evaluates the third processor data unit, which indicates to the data generator with an operating state command E=1 a change in the transmission mode, and the data generator 3 starts to provide user data for the fourth transmission cycle Zyklus 3. As described above, the data generator 3 is designed to provide a data packet Data Cycle with four data fields per transmission cycle, which is stored in a ring buffer of the data generator 3. The first data packet Data Cycle 01 generated by the data generator 3 and comprising the four data fields D11-D14 is stored in the ring buffer at the first memory address A1.

[0083] In the fourth transmission cycle Zyklus 3, the data generator 3 again enters the four data fields D11-D14 of the first data packet Data Cycle 01 into the first four of the five user data fields of the fourth generator data unit. The fifth user data field remains empty because the data generator 3 does not provide any more data in the ring buffer.

[0084] In the first data field of the fourth generator data unit, the data generator 3 again inputs a transmission status command F=0, indicating that the user data field in the generator data unit is not completely filled. Using the second data field of the fourth generator data unit, the data generator 3 forwards the ring buffer address A1 as the address value ID, under which the user data forwarded by the fourth generator data unit is stored in the ring buffer.

[0085] Since the data processor 2 is set in the transmission mode that when the transmission status command forwarded by the data generator 3 is F=0, the data processor 2 does not process the data in the user data field of the generator data unit, and the data processor 2 discards the data in the four user data fields of the fourth generator data unit.

[0086] The data processor 2 starts a fifth transmission cycle Zyklus 4 with a fifth processor data unit which corresponds to the fourth processor data unit from the fourth transmission cycle Zyklus 3. This means that in the first data field of the fifth processor data unit the run state command E is set to the value 1 and the repeat command R is set to the value 0.

[0087] After evaluating the fourth PDU, the data generator 3 simultaneously stores the second data packet Data Cycle 02 with four data fields D21-D24 in the ring buffer. The first eight data fields in the ring buffer of the data generator 3 are now occupied by the first data packet Data Cycle 01 and the second data packet Data Cycle 02 generated by the data generator 3.

[0088] The data generator 3 is arranged in the transmission mode such that when the value 0 is displayed in the first data field of the previously transmitted generator data unit regarding the transmission status command F, the data generator 3 repeats the data in the user data field of the generator data unit in the user data field of the next generator data unit.

[0089] Since five user data fields in the fourth generator data unit are not fully occupied by data, the transmission status command F is set to the value 0, and the data generator 3 inputs the four data fields D11-D14 of the first data packet Data Cycle01 and the first data field D21 of the second data packet Data Cycle 02 stored in the first circular buffer address A1 into the five user data fields of the fifth generator data unit.

[0090] The transmission status command F in the first data field of the fifth generator data unit now obtains the value 1, which indicates that the five user data fields of the fifth generator data unit are completely occupied by data. In the second data field of the fifth generator data unit, the first memory address A1 of the ring buffer is again specified as the address value ID.

[0091] If Figure 3 In the first sequence of the data transmission of the generator data unit, no error occurs, then the data processor 2 sends the same processor data unit in a further transmission cycle, the first data field of which contains the operation state command E=1, indicating the data transmission operation mode, and contains the repeat command R=0, which indicates that the data transmission of the previous transmission cycle was carried out without error. On the other hand, the second data field of the processor data unit remains empty. Figure 3 The corresponding sixth to ninth processor data units are shown for the sixth transmission cycle Zyklus 5 to the ninth transmission cycle Zyklus 8 .

[0092] After evaluating the processor data unit from the previous transmission cycle, the data generator 3 provides further data packets Data Cycle for further transmission cycles. Figure 3As can be seen from the first sequence shown, the data generator 3 generates a third data packet Data Cycle 03 with four data fields D31-D34 for the sixth transmission cycle Zyklus 5, generates a fourth data packet Data Cycle 04 with four data fields D41-D44 for the seventh transmission cycle Zyklus 6, generates a fifth data packet Data Cycle 05 with four data fields D51-D54 for the eighth transmission cycle Zyklus 7, and generates a sixth data packet Data Cycle 06 with four data fields D61-D64 for the ninth transmission cycle Zyklus 8.

[0093] Then, the data fields of the ring buffer in the data generator 3 are completely filled at the second memory address A2 in the sixth transmission cycle Zyklus 5, at the third memory address A3 in the seventh transmission cycle Zyklus 6, and at the fourth ring buffer address A4 in the eighth transmission cycle Zyklus 7. In the first data field of the sixth, seventh and eighth generator data units, the data generator 3 forwards the transmission status command F=1 corresponding to the fifth generator data unit, which indicates that the five user data fields in the corresponding generator data unit are completely occupied. Then, the transmitted ring buffer address ID is respectively specified in the second data field, which is the second memory address A2 for the sixth generator data unit, the third memory address A3 for the seventh generator data unit, and the fourth ring buffer address A4 for the eighth generator data unit.

[0094] Then, the data generator 3 inputs the data stored at the ring buffer address specified in the second data field into the five additional user data fields of the sixth, seventh and eighth generator data units. For the sixth generator data unit, they are the three data fields D22-D24 of the second data packet Data Cycle 02 and the first two data fields D31-D32 of the third data packet Data Cycle 03 remaining after the fifth generator data unit. The five user data fields of the seventh generator data unit contain the remaining two data fields D33-D34 of the fourth data packet Data Cycle 04 and the first three data fields D41-D43 of the fourth data packet Data Cycle 04. The five user data fields of the eighth generator data unit contain the remaining data field D44 of the fourth data packet Data Cycle 04 and the four data fields D51-D54 of the fifth data packet Data Cycle 05.

[0095] In the ninth transmission cycle Zyklus 8, for the user data transmission with the ninth generator data unit at the fifth ring buffer address A5 in the ring buffer, the data generator 3 enters the fifth ring buffer address A5 into the second data field of the ninth generator data unit, and the data generator 3 can only use the sixth data packet Data Cycle 06 with four data fields D61-D64. The last data field of the fifth ring buffer address A5 is not occupied, so the data generator 3 transmits an incompletely filled generator data unit in the ninth transmission cycle Zyklus 8 (similar to the fourth transmission cycle Zyklus 3).

[0096] Therefore, in the first data field of the ninth generator data unit, the data generator 3 enters a transmission status command F=0 to indicate that the five user data fields are not completely occupied by data. Similar to the fourth generator data unit, the data processor 2 discards the data transmitted with the ninth generator data unit. Then Figure 3 The data transmission is no longer shown in the first sequence of , similar to the fifth data transmission cycle Zyklus4, in the tenth transmission cycle Zyklus9, the data stored at the fifth ring buffer address A5 is repeatedly transmitted, and since the data generator simultaneously generates the seventh data packet Data Cycle 07, all data fields at the ring buffer address A5 are filled with four data fields D71-D74. Then four further transmission cycles are performed, in which the data fields at the sixth to eighth ring buffer addresses A6-A8, which are completely filled by the data generator with the eighth to tenth data packets Data Cycle 08-10, are transmitted.

[0097] exist Figure 3 In the first transmission cycle sequence shown, data units are transmitted error-free between the data generator 3 and the data processor 2 on the data transmission channel 1. The data transmission is designed in this case so that in four transmission cycles the amount of data generated by the data generator 3 for five transmission cycles can be transmitted. Thus, in the five transmission cycles representing one communication cycle, there is always one transmission cycle redundant.

[0098] Therefore, in the case of error-free transmission, the data processor never uses one of the five transmission cycles to process the transmitted user data. During this redundant transmission cycle, there is always at least one empty user data field in the generator data unit transmitted from the data generator to the data processor. The data generator 3 indicates this with a transmission status command F=0. The data processor 2 is then arranged to discard the data transmitted in the generator data unit and wait for the next completely transmitted generator data unit.

[0099] By using redundant transmission cycles, if an error occurs during data transmission in a transmission cycle, the transmission cycle can be repeated within the communication cycle without expanding the bandwidth of the communication cycle, such as Figure 4 As shown in the second transmission cycle sequence.

[0100] Figure 4 Ten transmission cycles representing two communication cycles are shown. Figure 4 In the second sequence shown, no Figure 3 The first four transmission cycles Zyklus 0-3 of the first sequence in the transmission mode are used to determine the dead time in the initialization mode and to start the first communication cycle for user data transmission at the beginning of the transmission mode. However, except for the fifth to ninth transmission cycles Zyklus 4-8, Figure 4 The subsequent tenth to fifteenth transmission cycles Zyklus 9-13 are also shown.

[0101] Figure 4 Also shown are the eighth to twelfth data packets Data Cycle 08-12 provided by the data generator 3 for the tenth to fourteenth transmissions Zyklus 9-13. Figure 4 As can be seen from the second sequence shown, the data generator 3 generates an eighth data packet Data Cycle 08 with four data fields D81-D84 for the tenth transmission cycle Zyklus 9, generates a ninth data packet Data Cycle 09 with four data fields D91-D94 for the eleventh transmission cycle Zyklus 10, generates a tenth data packet Data Cycle 10 with four data fields D101-D104 for the twelfth transmission cycle Zyklus 11, generates an eleventh data packet Data Cycle 11 with four data fields D111-D114 for the thirteenth transmission cycle Zyklus 12, and generates a twelfth data packet Data Cycle 12 with four data fields D121-D124 for the fourteenth transmission cycle Zyklus 13. Figure 3 In the second transmission cycle sequence shown, it is similar to Figure 4 In the first transmission cycle sequence shown, data transmission is performed without error in the fifth transmission cycle Zyklus 4. However, in the subsequent sixth transmission cycle Zyklus 5, the transmission of the sixth generator data unit to the data processor 2 fails. Figure 4 The erroneous transmission of the sixth generator data unit in the sixth transmission cycle Zyklus 5 is graphically represented by a lightning symbol.

[0102] The data processor 2 responds to the erroneous data transmission in the sixth transmission cycle Zyklus 5 in the seventh transmission cycle Zyklus 6 by: Figure 3 In contrast to the seventh processor data unit in the first sequence shown, the data processor 2 sets the repeat command R to the value 1 in the first data field of the seventh processor data unit, indicating that a data transmission error occurred in the last sixth transmission cycle Zyklus 5. Additionally, the data processor 2 indicates in the second data field of the seventh processor data unit the second ring buffer address A2 as the address value, at which the user data field of the erroneously transmitted sixth generator data unit is stored.

[0103] Since the data generator 3 responds to the command from the processor data unit with a delay of one transmission cycle, in the seventh transmission cycle Zyklus 6, in response to the previous sixth processor data unit from the sixth transmission cycle Zyklus 5 (which is an error-free transmission indicated by the repeat command R=0), the data generator 3 first sends the data field stored at the third ring buffer address A3 with the seventh generator data unit, which is then received by the data processor 2 without error.

[0104] Therefore, in the eighth transmission cycle Zyklus 7, the data processor 2 then again sends a repeat command R=0 in the first data field as an eighth processor data unit, which confirms the error-free data transmission of the seventh generator data unit. Alternatively, it is also possible that the data processor 2 repeats the seventh processor data unit transmitted in the seventh transmission cycle Zyklus 6 in a further processor data unit, as long as there is no error-free transmission of the data field stored in the ring buffer at the second ring buffer address A2, wherein the erroneous data transmission of the sixth generator data unit is indicated by the repeat command R=1 in the first data field and the second ring buffer address A2 in the second data field.

[0105] In the eighth data transmission cycle Zyklus 7, the data generator 3 responds to the repeat command R=1 in the seventh processor data unit and repeats the sixth generator data unit with an eighth generator data unit, wherein the five user data fields of the eighth generator data unit transfer the data fields stored at the second ring buffer address A2.

[0106] In the ninth transmission cycle Zyklus 8, data transmission will continue regularly, since the eighth transmission cycle Zyklus 7 will be repeated. Figure 4 The sixth transmission cycle Zyklus 5 in the second sequence shown, therefore, corresponds to Figure 3 The data transmission of the eighth transmission cycle Zyklus 7 of the first sequence is shown, in which the data field stored at the fifth ring buffer address A5 is transmitted with the five user data fields of the ninth generator data unit.

[0107] This completes the first communication cycle, and Figure 3 The first sequence shown in is opposite, due to the repetition of Figure 4 The seventh transmission cycle Zyklus 6 in the second sequence shown has an erroneous transmission, and the redundant ninth transmission cycle Zyklus 8 is used to transmit user data in the first communication cycle, which is processed by the data processor 2.

[0108] exist Figure 4 In the second sequence shown, then the tenth transmission cycle Zyklus 9 is similar to Figure 3 The first sequence shown is again completed without error. However, Figure 4 In the second sequence shown, an error again occurs in the eleventh transmission cycle Zyklus 10 during the transmission of the eleventh producer data unit, which is indicated by another lightning symbol.

[0109] The data processor 2 responds to this further transmission error in a twelfth transmission cycle Zyklus 11 with a twelfth processor data unit which contains a repeat command R=1 in a first data field and a ring buffer address A6 in a second data field, indicating the previously erroneously transmitted eleventh producer data unit.

[0110] The data generation unit 3 repeats the eleventh generated data unit from the eleventh transmission cycle Zyklus 10 as the thirteenth generated data unit in the thirteenth transmission cycle Zyklus 12. Then, the fourteenth transmission cycle Zyklus 13 completes the second communication cycle, wherein the transmission of the data field stored at the eighth ring buffer address A8 is postponed.

[0111] like Figure 4 As shown in the second sequence in FIG. 1 , in each communication cycle having a redundant transmission cycle, if erroneous data transmission occurs in one of the other transmission cycles, transmission repetition can be performed.

[0112] exist Figure 3 and Figure 4 In the example shown, the first amount of data that can be transmitted in one transmission cycle exceeds the second amount of data generated by the data generator 3 in one transmission cycle by one quarter, expressed as 25% in percentage. In principle, the first amount of data and the second amount of data can be matched to each other so that the percentage by which the first amount of data exceeds the second amount of data multiplied by n times equals the second amount of data, where n is an integer greater than 1. The bandwidth of a communication cycle in the data transmission system is n+1 transmission cycles, where one of the n+1 transmission cycles is redundant with respect to the transmission of the amount of data provided by the data generator 3 for the n+1 transmission cycle, and can be used to retransmit data from a transmission cycle identified as erroneous.

[0113] However, the percentage by which the first data volume exceeds the second data volume multiplied by n does not necessarily have to be exactly equal to the second data volume. The bandwidth of a communication cycle in a data transmission system is the number of transmission cycles required to transmit the additional second data volume in addition to the second data volume transmitted in each transmission cycle using the first data volume, supplemented by one further transmission cycle. In each communication cycle, there is always one transmission cycle redundancy, which allows retransmission of data from a transmission cycle identified as erroneous.

[0114] exist Figure 3 and Figure 4 In the example shown, if the data generator 3 transmits less than the first data amount in a transmission cycle, the data processor 2 discards the data received in the transmission cycle from the data generator 3. This process prevents the data processor 2 from doubly processing data that has been transmitted twice in a communication cycle due to a redundant transmission cycle in the case of error-free transmission.

[0115] The behavior of the data processor 2 is controlled by means of a transmission status command F, whose value 0 indicates that the user data fields of the generator data unit are not completely occupied by data, and whose value 1 indicates that the user data fields of the generator data unit are completely occupied by data. Alternatively, the transmission status command F can always specify the exact number of occupied user data fields in the generator data unit as a numerical value, which the data processor 2 then evaluates.

[0116] In principle, it must be ensured that the data processor 2 processes data only once when it receives data multiple times within a communication cycle. The data processor 2 must determine whether the data received from the data generator 3 in one transmission cycle are known from a previous transmission cycle and are available to the data processor 2. The data processor 2 then either discards the already existing data or discards the data received again.

[0117] In addition to the generator data unit that may be controlled by the data processor 2 and is erroneously transmitted by the data generator 3 in the processor data unit using a repeat command R=0, the data processor 2 can also use the processor data unit to transmit other commands that change the amount of data generated by the data generator in the transmission cycle, that is, change the number of data fields in the data packet Data Cycle provided by the data generator.

[0118] Figure 5 The third transmission cycle sequence is shown in Figure 4 The second sequence shown is identical. Figure 5 10 transmission cycles representing two communication cycles are shown again in FIG. Figure 5 The third sequence shown also lacks Figure 3 The first four transmission cycles of the first sequence are shown as Zyklus 0-3. Figure 4 , Figure 5Only the fifth to fourteenth transmission cycles Zyklus 4-13 are shown. Figure 5 Also shown are first to twelfth data packets Data Cycle 01 - 12 provided by the data generator 3 .

[0119] Compared to the second sequence, in the third sequence, similar to the first sequence, it is assumed that all data transmissions are performed without errors. Figure 5 All processor data units in the third sequence shown contain a repeat command R=0 in the first data field, but Figure 5 For clarity, the repeat command is not recorded in the first data field of the processor data unit.

[0120] Additionally, the first data field of the processor data unit contains a data command D that can be used to change the number of data fields to be generated in the data packet Data Cycle by the data generator 3. The value 0 of the data command D indicates that the number of data fields to be generated in the data packet Data Cycle by the data generator 3 should not be changed. On the other hand, the data generator 3 interprets a non-zero integer of the data command D as the number of data fields corresponding to the value to be provided in the data packet Data Cycle.

[0121] like Figure 3 and Figure 4 The first and second sequences shown in Figure 5 In the third sequence shown, the data generator 3 is also preset so that the data generator 3 provides a data packet Data Cycle having four data fields for each transmission cycle.

[0122] exist Figure 5 In the third sequence shown, the first communication cycle is similar to Figure 4 The second sequence shown starts with a fifth transmission cycle Zyklus 4, in which the value 0 of the data command D in the first data field of the fifth processor data unit indicates that the number of data fields provided by the data generator 3 in the data packet Data Cycle per transmission cycle should not be changed.

[0123] In the sixth transmission cycle Zyklus 5, the data processor 2 indicates in the first data field of the sixth processor data unit with the value 8 of the data command D that the number of data fields to be provided by the data generator in each transmission cycle should be increased from four data fields to eight data fields. Then, the data processor 2 further specifies in the second data field of the sixth processor data unit from which data packet number CY (in the present case, from the data packet Data Cycle number 5) the number of data fields should be increased.

[0124] Since the evaluation of the data command D=8 of the sixth processor data unit of the eighth transmission cycle Zyklus 7 is delayed by one transmission cycle, the data generator 3 provides the fifth data packet Data Cycle 05 instead of the previous four data fields, thus having eight data fields D51-D58.

[0125] In the seventh transmission cycle Zyklus 6, the data processor 2 again indicates in the first data field of the seventh processor data unit with the value 0 of the data command D that the number of data fields already provided in the data packet DataCycle by the data generator 3 in each transmission cycle should not be further changed. Thus, with respect to the ninth transmission cycle Zyklus 8, the data generator 3 again provides eight data fields D61-D68 for the sixth data packet Data Cycle 05.

[0126] from Figure 5 As can be seen from the third sequence shown, in the eighth transmission cycle Zyklus 7, the data processor 2 reduces the number of data fields generated by the data generator 3 per transmission cycle to four data fields, wherein the value 4 is input into the first data field of the eighth processor data unit as the value of the data command D. In the second data field of the eighth processor data unit, the data processor 2 again specifies with the data packet number CY=7 that the data generator 3 should provide the seventh data packet Data Cycle 07, which has only four data fields instead of eight data fields.

[0127] Since the evaluation of the data command D=8 of the eighth processor data unit of the ninth transmission cycle Zyklus 9 is delayed by one transmission cycle, the data generator 3 provides the seventh data packet Data Cycle 07, which again has only four data fields instead of eight data fields.

[0128] So, in Figure 5 In the third sequence shown, the data processor 2 will maintain the data field generation rate set to four data fields, wherein the data processor 2 indicates in a further processor data unit with a value of 0 in the data command D that the data field generation rate remains unchanged.

[0129] exist Figure 2 In the ring buffer of the data generator 3 shown, Figure 4 Compared to the second sequence shown in Figure 5In the third sequence shown, eight additional data fields are stored in accordance with the increased data field generation rate of the data generator 3, and the fifth data packet Data Cycle 05 is amplified for the seventh transmission cycle Zyklus 6, and the sixth data packet Data Cycle 06 is amplified for the eighth transmission cycle Zyklus 7. These eight additional data fields D55-D58, D65-D68 are transmitted from the data generator 3 to the data processor 2 via two additional redundant transmission cycles of the first communication cycle and the second communication cycle.

[0130] By using this process, data generation can be flexibly controlled. What is required here is that the ring buffer of the data generator 3 has sufficient storage capacity to accommodate the data fields that have not yet been transmitted. This process is particularly beneficial for the data processor 2 to process user data from the data generator 3 with a longer dead time.

Claims

1. A method for cyclically transmitting data between communication participants on a data transmission channel (1), in, The data transmission channel (1) operates at a data transmission rate capable of transmitting a first amount of data in each transmission cycle, One of the communication participants acts as a data processor (2), and the other communication participant acts as a data generator (3). The data generator (3) provides a second data amount for each transmission cycle. wherein the first data amount exceeds the second data amount by a percentage, wherein the percentage by which the first data amount exceeds the second data amount multiplied by n times is at least equal to the second data amount, wherein n is an integer greater than 1, wherein the data generator (3) transmits n+1 first data amounts provided by the data generator (3) for a communication cycle consisting of n+1 transmission cycles to the data processor (2) at the data transmission rate of the data transmission channel (1), so that the n+1 first data amounts provided by the data generator (3) for a communication cycle consisting of n+1 transmission cycles are transmitted on the data transmission channel (1) as n second data amounts in n transmission cycles, so that one transmission cycle in the n+1 transmission cycles in the communication cycle using the second data amount on the data transmission channel (1) is redundant with respect to the data transmission of the n+1 first data amounts provided by the data generator (3) for the n+1 transmission cycles in the communication cycle, and can be used to repeatedly transmit the second data amount from the transmission cycle indicated as an error in the transmission cycle executed on the data transmission channel (1), wherein the data processor (2) delays processing of data received from the data generator (3) on the data transmission channel (1) by the number of transmission cycles required for the data generator (3) to respond to a command from the data processor (2), If an error occurs in the data transmission during the transmission cycle, the data processor (2) indicates to the data generator (3) that the transmission cycle is an error by using a repeat command. When receiving the repeat command, the data generator (3) repeats the data transmission of the transmission cycle indicated as an error by the data processor (2) in the communication cycle.

2. The method according to claim 1, wherein: The percentage by which the first data volume exceeds the second data volume multiplied by n times equals the second data volume, where n is an integer greater than 1, and Wherein, if the data transmitted by the data generator (3) in the transmission cycle is less than the first data amount, the data processor (2) discards the data received from the data generator (3) in the transmission cycle.

3. The method according to claim 1 or 2, wherein: In each transmission cycle, the data processor (2) sends a processor data unit, to which the data generator (3) responds in the corresponding transmission cycle with a generator data unit, wherein the processor data unit contains data elements for transmitting the repeat command.

4. The method according to claim 3, wherein: A dead time is determined within the scope of an initialization sequence, which corresponds to the number of transmission cycles required by the data generator (3) to respond to a command from the data processor (2), wherein the data processor (2) provides a sequence of data values ​​in successive processor data units of the initialization sequence, wherein each transmission cycle of the initialization sequence is associated with a respective data value, and wherein the data generator (3) records the data value before inputting it into a next generator data unit sent to the data processor (2).

5. The method according to claim 4, wherein: The processor data unit includes a data element for transmitting an operation status command, wherein the operation status command indicates that the transmission cycle is part of the initialization sequence or part of a data transmission sequence.

6. The method according to claim 3, wherein: The processor data unit contains a data element for transmitting a data command, by means of which the second data quantity generated by the data generator (3) in a transmission cycle can be changed.

7. The method according to claim 3, wherein: The generator data unit comprises a data element for transmitting a transmission status command, which indicates whether the data elements provided for user data in the generator data unit are completely occupied by user data, or wherein the generator data unit comprises a data element for transmitting a transmission status command, which indicates the number of data elements in the generator data unit occupied by user data.

8. A data transmission system for cyclically transmitting data between communication participants on a data transmission channel (1) during a communication cycle, in, The data transmission channel (1) is configured to operate at a data transmission rate capable of transmitting a first amount of data in each transmission cycle, wherein one of the communication participants acts as a data processor (2) and another of the communication participants acts as a data generator (3), The data generator (3) is designed to provide a second amount of data per transmission cycle. wherein the first data amount exceeds the second data amount by a percentage, wherein the percentage by which the first data amount exceeds the second data amount multiplied by n times is at least equal to the second data amount, wherein n is an integer greater than 1, The data generator (3) is designed to transmit n+1 first data amounts provided by the data generator (3) for a communication cycle consisting of n+1 transmission cycles to the data processor (2) at the data transmission rate of the data transmission channel (1), so that the n+1 first data amounts provided by the data generator (3) for a communication cycle consisting of n+1 transmission cycles are transmitted on the data transmission channel (1) as n second data amounts in n transmission cycles, so that one transmission cycle in n+1 transmission cycles in the communication cycle using the second data amount on the data transmission channel (1) is redundant with respect to the data transmission of the n+1 first data amounts provided by the data generator (3) for the n+1 transmission cycle in the communication cycle, and can be used to repeatedly transmit the second data amount from a transmission cycle indicated as an error in the transmission cycle executed on the data transmission channel (1), wherein the data processor (2) is designed to delay processing of data received from the data generator (3) on the data transmission channel (1) by the number of transmission cycles required for the data generator (3) to respond to a command from the data processor (2), If an error occurs in the data transmission during the transmission cycle, the data processor (2) is designed to indicate to the data generator (3) that the transmission cycle is an error by using a repeat command. The data generator (3) is designed to repeat the data transmission of the transmission cycle indicated as an error by the data processor (2) in the communication cycle when receiving the repeat command.

9. The data transmission system according to claim 8, wherein: The percentage by which the first data volume exceeds the second data volume multiplied by n times equals the second data volume, where n is an integer greater than 1, and Wherein, if the data transmitted by the data generator (3) in the transmission cycle is less than the first data amount, the data processor (2) is designed to discard the data received from the data generator (3) in the transmission cycle.

10. The data transmission system according to claim 8 or 9, wherein: The data processor (2) is designed to send a processor data unit in each transmission cycle, and the data generator (3) responds to the processor data unit with a generator data unit in the corresponding transmission cycle, wherein the processor data unit contains data elements for transmitting the repeat command.

11. The data transmission system according to claim 10, wherein: A dead time is determined within the scope of an initialization sequence, which corresponds to the number of transmission cycles required for the data generator (3) to respond to a command from the data processor (2), wherein the data processor (2) is designed to provide a sequence of data values ​​in successive processor data units of the initialization sequence, wherein each transmission cycle of the initialization sequence is associated with a respective data value, wherein the data generator (3) records the data value before inputting it into the next generator data unit sent to the data processor (2).

12. The data transmission system according to claim 11, wherein: The data processor (2) is designed to input a data element for transmitting an operation status command into the processor data unit, wherein the operation status command indicates that the transmission cycle is part of the initialization sequence or part of the data transmission sequence.

13. The data transmission system according to claim 10, wherein: The data processor (2) is designed to input a data element for transmitting a data command into the processor data unit, and the second data volume generated by the data generator (3) in a transmission cycle can be changed by using the data command.

14. The data transmission system according to claim 10, wherein: The data generator (3) is designed to input into the generator data unit a data element for transmitting a transmission status command, wherein the transmission status command indicates whether the data elements provided for user data in the generator data unit are completely occupied by user data, or wherein the data generator (3) is designed to input into the generator data unit a data element for transmitting a transmission status command, wherein the transmission status command indicates the number of data elements in the generator data unit occupied by user data.

15. The data transmission system according to claim 8, wherein: The data generator (3) has a buffer in the form of a ring buffer for receiving the generated second data volume.

Citation Information

Patent Citations

  • Method for transmitting data packets on a data transmission path between two communication participants, automation system and computer program

    DE102016121019A1

  • Cyclic communication method via a bus

    US7373578B2

  • A data processor system and a method for communicating data

    CN101361310A

  • Systems and methods for improving efficiencies of a memory system

    CN109032516A