The present invention relates to a method and a communication system for regulating a transmission of a quantity of user data between a plurality of users of a communication system via a field bus system using data telegrams.
In a communication system having cyclic communication, data telegrams are exchanged between users or corresponding stations. In a cyclic communication, a so-called synchronization telegram (MST—master synchronization telegram), which is always produced in fixed time intervals, is transmitted cyclically, e.g., by one user characterized as master. Such a synchronization telegram, which may also be embedded in a so-called master data telegram, starts a time control in every other system user characterized as slave. After expiration of the time stipulated in the initialization, each user transmits its telegram, also known as drive telegram (AT), to the master. At the end of such a cycle, for example, the master sends out a master data telegram (MDT) as broadcast which contains all data for all slaves. From the initialization, each slave knows the position of the data addressed to it within the master data telegram.
Alternatively, however, as already indicated, the synchronization telegram may be embedded in the master data telegram, which is then transmitted as broadcast right at the beginning of a cycle.
A communication system used in this context may be a so-called Ethernet, for example. An Ethernet is a frame-based computer networking technology for local area networks such as so-called LANs (local area network). Cable types and signaling for a physical layer, and packet formats and protocols for a medium access control/link layer of the so-called OSI model are defined. The Ethernet is essentially standardized in the IEEE standard 802.3. The Ethernet is based on the idea that all users of a network send messages through a type of radio system, however only within a shared line network. Each user has a globally unique 48-bit key known as its MAC address. The total communication within the communication system passes on the same line. This means that any information or all data which was sent by one computer or one user can be received by all other users. This fact can be utilized by protocols on higher layers in order to transmit broadcast messages to all connected users. At present, there are four types of so-called Ethernet frames. The different frame types have different format and packet sizes, but can be used in parallel on the same physical medium. Within the Ethernet, there are maximum packet lengths or telegram sizes, known as MTU (maximum transmission unit), predefined for all usable Ethernet frames. This telegram size is approximately 1,500 bytes, which limits the information able to be transmitted in one telegram.
One conceivable exemplary embodiment includes, for instance, one master station and a plurality of tributary stations. In this case, for efficiency reasons, data telegrams may be sent as so-called collective telegrams, in which data for a plurality of tributary stations is contained in one telegram. Each addressed tributary station knows where the information intended for it is contained in the collective telegram. In this instance, the master station and the plurality of tributary stations are usually connected to each other via a so-called field-bus system. The field bus replaces parallel line groups by a single bus cable, and at the same time connects all levels and all components linked to the system. In this context, the components of the system may be distributed arbitrarily in the field, for all are connected locally in decentralized fashion.
Data telegrams, via which the data is sent, include at least one destination address, one source address and a field for user data to be transmitted. In a cyclic communication, it is further necessary to carry out or to ensure a synchronization. As already mentioned, synchronization information necessary for this purpose can be transmitted separately via a synchronization telegram. Alternatively, such a so-called master synchronization telegram (MST) can be embedded in a data field of a normal data telegram. Each communication cycle has a specific time duration, within which data telegrams are transmitted between the master station and the plurality of tributary stations. For example, the master station transmits a so-called master data telegram (MDT) as a collective telegram having embedded synchronization information MST to all tributary stations connected to the system. The MDT may contain setpoint values, for instance. Each addressed tributary station knows where the information intended for it is filed within the collective telegram. The individual tributary stations are now able to communicate with the master station via a so-called drive telegram (AT) containing actual values, for example. An IP channel may possibly be included in a communication cycle, as well. A subsequent communication cycle then starts again with an MDT as collective telegram. The data telegrams used in this context have an “over-all check sum”, also known as FCS (frame check sequence), which is usually provided at the end of a telegram. After being received, the validity of the entire data telegram is checked using this FCS. Moreover, in an MDT as collective telegram, a plurality of data fields for various receiving (i.e., slave) stations is contained in the start. For example, they may simply be packed without gaps one after another into one telegram. The disadvantage in so doing is that, given a limitation of the maximum telegram length as in the case of the Ethernet, for instance, the maximum transmittable user data is limited.
According to the current state of the art, no method is yet specified as to how to handle a transmission of data which cannot be transmitted using a single telegram. However, this will be especially important in future Ethernet applications having a large bandwidth, for instance, where it must be expected that the quantity of data to be transmitted will be greater per telegram than the MTU already mentioned.
An object of the present invention is to provide a method for regulating a transmission of a quantity of user data to be transmitted between a plurality of users of a communication system via a field-bus system, as well as providing a communication system having a plurality of users and a field-bus system, and further providing a computer program product with program code for implementing the method according to the present invention.
According to the present invention, a method is provided for regulating a transmission of a quantity of user data to be transmitted between a plurality of users of a communication system via a field-bus system, in which the individual users communicate by way of data telegrams, each data telegram containing at least one destination address, one source address and a quantity of user data not exceeding a predefined, maximum quantity. In the event the quantity of user data predefined for a data telegram is less than the quantity of user data to be transmitted, the quantity of user data to be transmitted is fragmented into a plurality of partial telegrams, and the respective partial telegrams are transmitted in controllable fashion one after another in a sequence of partial telegrams.
In one example embodiment of the method according to the present invention, the respective partial telegrams within the sequence of partial telegrams are differentiated based on a telegram identifier. This means that a data block to be transmitted, or a quantity of user data to be transmitted is split up into a plurality of partial telegrams and transmitted one after another. By providing such partial telegrams, it is possible to overcome the limitation with regard to transmittable information or user data predefined by an MTU.
This means that, in the event a predefined MTU, such as an MTU of 1,500 bytes in the case of an Ethernet, is not sufficient for transmitting user data for an MDT or an AT, the user data is fragmented into a plurality of partial telegrams, and, for example, sent directly one after another. A differentiation is made between a first partial telegram and following telegrams based on a telegram identifier. Such a telegram identifier may be provided or filed in an arbitrary “telegram type” field.
In a further example embodiment of the method according to the present invention, the partial telegrams within the sequence of partial telegrams are logically linked together, so that the sequence of partial telegrams appears as a single data telegram for a transmitting and/or a receiving user of the communication system. That is to say, the user data in the partial telegrams of the sequence is logically linked together for a transmitting or a receiving user as though it were a single longer telegram.
In this context, it is conceivable for a receiving user to be able to automatically filter out partial telegrams addressed to it from the sequence of partial telegrams, based on a so-called “offset” stored in the user. Thus, a user does not necessarily have to receive and evaluate all telegrams in the sequence of partial telegrams.
In another example embodiment of the method according to the present invention, all user data to be sent to one receiver is stored and transmitted within a single partial telegram. This means that in the case when a data field of a receiver goes beyond the predefined quantity of transmittable user data of one partial telegram, using stuffing information at the end of the partial telegram, the beginning of this data field may be “shifted” to a following partial telegram. This procedure is also known as “padding”. Simpler processing algorithms may thereby be possible in the users. For example, the user data intended for one user may thus be copied to one block. A data field which normally lies at an offset of 1,498 . . . 1,508, for example, in the case of an MTU of 1,500 bytes, may be shifted to 1,500 . . . 1,510. Such a padding with stuffing information at the end of the partial telegrams may not be necessary if each user knows the exact length of the individual partial telegrams.
In a further example embodiment of the method according to the present invention, in the case of a cyclic synchronizing communication system, one partial telegram from the sequence of partial telegrams is selected as synchronizing telegram, identified as such and communicated as such to all users of the communication system. This means that in the case of a cyclically synchronizing communication system, synchronization information is transmitted one time per communication cycle. As already mentioned, the synchronization information is stored in a so-called MST data field of the corresponding partial telegram. For example, the telegram selected as synchronizing partial telegram is identified as such via the “telegram type” field. This agreement reached must be known or communicated to all users. This may be established either via a global agreement, for instance, or via an initialization. Advantageously, the first sequence telegram from the sequence of partial telegrams carries out the synchronization. The MST data field generally provided in the other remaining sequence telegrams may optionally be omitted.
In another example embodiment of the method according to the present invention, individual transmission times are predefined for the individual partial telegrams. In so doing, it is conceivable to transmit the individual partial telegrams from the sequence of partial telegrams at transmission times that are directly one after another, without further telegrams in between. This is carried out taking minimum telegram intervals into account, depending on the system.
Alternatively, however, when using an arbitrary transmit sequence, the partial telegrams may also be recognized based on the telegram identifier. In this case, one speaks of a recognition “on the fly.”
Moreover, a stipulation of the transmission times for the individual partial telegrams may also be communicated, so that the users are able to assign the individual partial telegrams based on the moment of receipt.
It is conceivable to use the communication system for communication in real-time systems.
In a further example embodiment of the method according to the present invention, the communication system is a communication in recurrent cycles.
In this context, it is possible for the communication cycles to possess a structure that is agreed to upon initialization, and is constant during further operation.
In another example embodiment of the method according to the present invention, the communication system is used for synchronizing users of the communication system.
In the case of a cyclic, synchronizing communication system, it is conceivable for one partial telegram from the sequence of partial telegrams to be selected as synchronizing telegram, identified as such and communicated as such to all users.
In a further example embodiment of the method according to the present invention, the communication system is based on an Ethernet protocol.
It is further conceivable to use the communication system for automation purposes.
In addition, the communication system may be used for drive synchronization, for drive control, for the input/output of input/output data and/or for measuring purposes.
The present invention further provides a communication system having a plurality of users and a field-bus system, in which the users communicate using the field-bus system by way of data telegrams, each data telegram including at least one destination address, one source address and a quantity of user data not exceeding a predefined maximum quantity. The communication system includes a control unit which compares the quantity of user data to be transmitted to the quantity predefined for one data telegram, and in the event the quantity of user data to be transmitted is greater than the predefined quantity, fragments the quantity of user data to be transmitted into a plurality of partial telegrams, and transmits the respective partial telegrams in controlled fashion one after another in a definable sequence of partial telegrams.
It is conceivable that, in the communication system, the respective partial telegrams within the sequence of partial telegrams are able to be differentiated based on a telegram identifier.
In a further example embodiment of the communication system, the control unit links the partial telegrams within the sequence of partial telegrams logically together, so that the sequence of partial telegrams acts or appears as a single data telegram for a transmitting and/or a receiving user.
It is further conceivable that partial telegrams addressed to one receiving user are able to be filtered out automatically from the sequence of partial telegrams by the receiving user, based on an offset stored in the user.
Moreover, all user data to be transmitted to one receiver may be stored within a single partial telegram.
In a further example embodiment of the communication system according to the present invention, in the case of a cyclic, synchronizing communication system, one partial telegram from the sequence of partial telegrams is selectable as synchronizing telegram, able to be identified as such and communicable as such to all users.
The present invention further provides a use of the method according to the invention in a communication system having a limited data-telegram size predefined as the largest possible. For example, such a communication system is the Ethernet already mentioned, or also a communication system known as SERCOS interface (serial realtime communication system).
Moreover, the present invention provides a computer program having program code which is configured for carrying out a method according to the present invention when executed on a computer or a computer system.
The present invention further provides a computer program product having program code, which is stored on a computer-readable data carrier in order to carry out a method of the present invention when the computer program is executed on a computer.
The MDT or AT begins with a specification of the destination address and the source address. This is followed by a field which contains the type or the length (type/length) of the data telegram. This field includes either the telegram type or the telegram length. Such a specification of a telegram type is filed here according to a standard agreement which was established or selected globally on the part of an international association. The telegram type indicated here gives information about what a following data field contains or how its contents are to be interpreted. It is noted whether it is an IP data field or a data field for a real-time communication, as is used for a SERCOS interface (serial realtime communication system), for example. The previously mentioned information, namely, destination address, source address and type/length information, is also contained in other telegrams such as data telegrams and prompt telegrams.
In the case of an MDT, it is further noted in the destination address that the MDT is directed to all users, thus, as already mentioned, is a broadcast telegram. Following after that, in a field “data field,” is user data for the users, addressed to them in accordance with the offset stored in each case. At the conclusion of the data telegram, a so-called FCS character is transmitted. This character FCS (frame check sequence) is used for safeguarding data by checksumming. The data field of the MDT is limited in its length, like in the case of an Ethernet to, e.g., 1,500 bytes. The quantity of user data addressed to the respective users is thereby also limited, which means that often not all user data to be transmitted can be transmitted to the individual users. A character ESD (end stream delimiter) indicates the end of the data telegram.
This is followed by synchronization information in a field MST (master synchronization telegram). In the case shown here, the MST is integrated into the data field. It is again subdivided into three fields. An identifier of the data telegram in question, such as here of the MDT, is indicated in a first field of the MST. Based on this identifier, it is possible to distinguish a specific data telegram from other subsequent or previous data telegrams. Thus, a succession of data telegrams may be handled according to a sequence definable by the identifier. This type of identifier must be differentiated from the statement of a telegram type, as made in the field preceding the data field. In a further field denoted as “phase,” information is given about the system state. Transmitting information concerning the system state provides for synchronization of the system time at all users of the communication system. Optionally, a further field CRC may be provided. This field provides for an additional check of the statements made up to then concerning the data telegram in question.
In case 1, data telegram T0 shows a so-called header H which contains all essential information for the transmission of a data telegram already mentioned in
In case 2, on the other hand, the MTU of a data telegram is not sufficient to send all user data D to be transmitted in case 2 in a single data telegram. Here, user data D is now distributed over two successive partial telegrams T0 and T1. The sum of user data D0 and D1 distributed over the partial telegrams corresponds to D. Both partial telegrams have a header H0 and H1, respectively. In the case shown here, the MTU, that is, the length of data field DFT0 of partial telegram T0 is completely filled with user data to be transmitted. Only when data field DFT0 is occupied to its maximum with a user-data quantity D0 is the remaining part of user data D1 stored in partial telegram T1 and thereby transmitted. In this case, a quantity Mi of user data intended for user i is divided up into the two partial telegrams T0 and T1.
Case 3 shows an alternative possibility to case 2 for fragmentation of user data into a plurality of partial telegrams. In the case shown here, specific quantities M1 to MR of user data are likewise to be sent to corresponding users 1 to R of a communication system via one or more data telegrams, such as one or more master data telegrams MDT by a master or a user of the communication system to the other users of a communication system. As already in case 2, a maximally transmittable quantity of user data predefined for the data telegram, i.e., a so-called MTU (maximum transmission unit), is not sufficient for transmitting the total amount of user data D here, either. Therefore, the data here is fragmented into two partial telegrams T0 and T1. In this context, the sum of user data D0 transmitted in T0 and user data D1 transmitted in T1 corresponds to the total amount of user data D. As in case 2, quantity Mi of user data to be transmitted for a receiving user i goes beyond the length of the data field of a partial telegram here, as well. In the case shown here, using so-called stuffing information F at the end of corresponding partial telegram T0, the beginning of the data field for receiving user i in question is now shifted to the next partial telegram T1. This is referred to as “padding.”
As an alternative to the case shown here, however, it is also conceivable for first partial telegram T0 to have a shorter length than the maximally transmittable length predefined for a data telegram, the so-called MTU (maximum transmission unit). In such an alternative case, first partial telegram T0 would be shortened, i.e., the mechanism of filling up data field “F” corresponding to a so-called “padding” which is marked in in case 3 shown here, would not be used in that instance.
As already mentioned, in the case of the Ethernet, the MTU is limited to 1,500 bytes. Thus, a sequence of partial telegrams T0 to TN results which are transmitted one after another, taking minimum telegram intervals into account, depending on the system. First partial telegram T0 of the sequence of partial telegrams may be differentiated from the following partial telegrams based on a telegram identifier. For example, such a telegram identifier may be inserted in a field “telegram type” of the MST, as explained in
As mentioned, in the case of a cyclically synchronizing communication system, synchronization information is transmitted one time per communication cycle. As already mentioned in
As already mentioned, the transmission moments of the sequence telegrams are selected to be one after another. When using an arbitrary transmit sequence, recognition may optionally be carried out based on the telegram identifier, which corresponds to an “on-the-fly” recognition. Moreover, by stipulation of the transmission times, it is conceivable to permit the users to assign the individual partial telegrams based on the moment of receipt.
It is understood that the present invention has been explained in connection with the example embodiments which are not limiting, and the aforementioned features may be used not only in the combination indicated in each instance, but also in other combinations or by themselves, or modified, without departing from the scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
10 2004 062 683.9 | Dec 2004 | DE | national |