Field of the Invention
[0001] The present invention relates generally to a system having a host controller communicating
with one or more field instrument devices such as a valve or sensor through a multiplexer
network and, more specifically, to a method and apparatus for managing and optimizing
the communications through the multiplexer.
Background of the Invention
[0002] Large processes such as chemical, petroleum, and other manufacturing and refining
processes include numerous field devices disposed at various locations to measure
and control parameters of a process to thereby effect control of the process. Similarly,
in such industrial processes a number of valves, sensors or other field instruments
or devices may be disposed throughout the process, each of which may require periodic
diagnostic operations, configuration, and or calibration. These field devices may
be, for example, sensors such as temperature, pressure, and flow rate sensors as well
as control elements such as valves and switches. Historically, the process control,
diagnostics, configuration, and/or calibration operations in such industrial processes
relied on manual operations for reading level and pressure gauges, turning valve wheels,
etc. Eventually, the use of local pneumatic control became more prevalent, in which
local pneumatic controllers, transmitters, and valve positioners were placed at various
locations within a process plant to effect control of certain plant locations. With
the emergence of the microprocessor-based distributed control system (DCS) in the
1970's, distributed electronic process control became prevalent in the process control
industry.
[0003] As is known, a DCS includes an analog or a digital computer, such as a programmable
logic controller, connected to numerous electronic monitoring and control devices,
such as electronic sensors, transmitters, current-to-pressure transducers, valve positioners,
etc. located throughout a process. The DCS computer stores and implements a centralized
and often complex control scheme to effect measurement and control of devices within
the process to thereby control process parameters according to some overall control
scheme. The same basic system is also applicant to the above-mentioned diagnostics,
configuration, and calibration operations.
[0004] In such systems, a host controller provides a variable DC control current signal
of between 4 and 20 milliAmps (mA) over a two-wire communication link to the transducer
or positioner or to any other controllable device or instrument. The control current
level changes the state of the controllable device in proportion to the strength of
the variable DC current signal. For example, a valve positioner might fully open a
valve in response to a 4 mA control current, and fully close the valve in response
to a 20 mA control current.
[0005] In addition to being responsive to a variable control signal, current to pressure
transducers, valve positioners, or other field instruments or devices have variable
parameters which may be adjusted to control the operating characteristics of such
devices. Previously, these devices or process instruments were adjusted manually.
However, with the advent of so-called "smart" devices capable of bi-directional communication,
it has become possible for necessary adjustments, readings, etc. to be carried out
automatically from a location remote from the device or field instrument. Moreover,
diagnostic testing and instrument monitoring can also be conducted from a remote location.
However, a mechanism must be provided for transmitting a communication signal from
the communication site to the field instrument or other device in order to implement
the adjustments and/or the field testing.
[0006] For a variety of reasons, it may not be feasible to install a communication network
separate and independent from the two-wire control loop that interconnects the communication
site with the field instrument. Thus, it is desirable to transmit the communication
signal over the two-wire control loop together with the 4-20 mA control signal so
that additional wiring and/or a separate communication system will not be required.
Thus, a modulated digital communications signal is superimposed on the 4-20 mA DC
analog control signal used to control the field instrument in order to allow serial
communication of data bitstreams between the field instrument and the host controller.
[0007] In such systems, the host controller communicates with one or more field instruments
or devices via a multiplexer. Typically, the system will utilize any one of a number
of available standard, open communication protocols including, for example, the HART
®, PROFIBUS
®, WORLDFIP
®, Device-Net
®, and CAN protocols, which enable field devices made by different manufacturers to
be used together within the same communication network. In fact, any field device
that conforms to one of these protocols can be used within a process to communicate
with and/or to be controlled by a DCS controller or other controller that supports
the protocol, even if that field device is made by a different manufacturer than the
manufacturer of the DCS controller.
[0008] As is known, communications between the host controller and the multiplexer are relatively
fast, while communications between the field instrument or device are relatively slow.
For a variety of reasons, the host controller desires to know the status of messages
that have been sent to the field instrument or device via the multiplexer. However,
repeated communications with the multiplexer regarding the status of the message sent
to the field instrument or device impede the performance of other communications that
must be sent through the multiplexer network.
[0009] WO 00/79721 discloses a system for making and optimising communications over a network.
The round trip time of a signal from the sender to a receiver and back again is measured,
and this is used to determine a timeout time for signal retransmission. No discussion
is made, however, of sending multiple message retransmissions to determine the turnaround
time of the signal, and continually altering this retransmission timing so as to reduce
the overall time for communication.
Brief Description of the Drawings
[0010]
Fig. 1 is a schematic diagram of a system having a host controller, a HART multiplexer,
and a HART field instrument device;
Fig. 2 is a diagram illustrating the message turnaround time and its relationship
to the time it takes to send and receive a message;
Fig. 3 is a diagrammatic representation illustrating the establishment of a bracket
width based on an assessment of three possible messages in a group of messages;
Fig. 4 is a time line illustrating the sending of a message from the host controller
along with a number of periodic samplings or retransmissions commencing after the
expiration of a long delay period with the re-transmissions being spaced in time according
to a bracket width time period;
Fig. 5 is a time line similar to Fig. 4 but illustrating the long delay period lengthened
such that the message is received from the multiplexer buffer after a second re-transmission;
Fig. 6 is a graph illustrating one possible optimization scheme for implementation
once the long delay time period has reached an optimization eligible state;
Fig. 7 is a time line similar to Figs. 4 and 5 but illustrating how the long delay
time period may be adjusted until a fail point is reached;
Fig. 8 is a graph illustrating a long delay optimization cycle proceeding to the fail
point; and
Fig. 9 through Fig. 11 contain a flow chart of an optimization program that can be
implemented by the host controller of Fig. 1.
Detailed Description of the Preferred Embodiment
[0011] The embodiments described herein are not intended to be exhaustive or to limit the
scope of the invention to the precise form or forms disclosed. Instead, the following
embodiments have been described in order to best explain the principles of the invention
and to enable others skilled in the art to follow its teachings.
[0012] Referring now to Figures 1 and 9-11 of the drawings, a host system 10 is shown and
includes a host controller 12, a multiplexer 14, and a field instrument or other device,
hereinafter collectively referred to as the device 16. The host controller 12 is in
operative communication with the device 16 through a communications system 18. The
communications system 18 includes a two-wire control loop 20 having a first wire 22
and a second wire 24 extending between the host controller 12 and the multiplexer
14. Other known communication arrangements between the host controller 12 and the
multiplexer 14 may be provided. The communications system 18 also includes a two-wire
control loop 26 having a first wire 28 and a second wire 30 extending between the
multiplexer 14 and the device 16. In the disclosed example, communications between
the host controller 12 and the multiplexer 14 along the control loop 20 are significantly
faster than are the communications between the multiplexer 14 and the device 16 along
the two-wire control loop 26. More specifically, the two-wire control loop 20 may
support communications in the range of 9600, 19,200, or 38,400 baud, while communications
along the two-wire control loop 26 may be limited to about, for example, 1200 baud.
Other communication rates may be contemplated. As would be known, the two-wire control
loop 26 utilizes a variable DC control current signal of between 4 and 20 mA over
the two-wire link to the device 16. Although only a single device 16 is shown, it
will be understood that the host system 10 may include additional devices (e.g., devices
16a, 16b, 16c, ... 16
n (Fig. 1).
[0013] The host controller 12 is arranged to run a host software 32. The host software 32
is arranged to forward a message 34 into the communications system 18, with the message
34 including an embedded message 36. As would be known, the embedded message 36 is
ultimately intended for communication to the device 16.
[0014] After the host controller 12 sends the message 34 to the multiplexer 14, the multiplexer
14 strips the embedded message 36 from the message 34 and forwards the embedded message
36 along the control loop 26 to the device 16. In a preferred form, the host system
10 will be arranged to operate according to the Highway Addressable Remote Transducer
(hereinafter "HART") standardized protocol. Other communications protocols may be
used.
[0015] As part of the HART specification, the multiplexer 14 must respond to the message
34 received from the host controller 12, and thus the multiplexer 14 will send a reply
38 to the host controller after the message 34 is received by the multiplexer 14 from
the host controller 12. The reply 38, will, in accordance with the disclosed example,
indicate to the host controller 12 that the message 34 has been received by the multiplexer
14, and that the multiplexer 14 has forwarded the embedded message 36 to the device
16.
[0016] As outlined above, the communication rate between the host controller 12 and the
multiplexer 14 typically is significantly faster than the communication rate between
the multiplexer 14 and the device 16. Accordingly, the host controller 12 may receive
the reply 38 from the multiplexer 14 before the device 16 receives the embedded message
36. Further, because the communication rate on the two-wire control loop 26 is relatively
slow, a relatively significant period of time will pass before a response 40 is sent
to the multiplexer 14 from the device 16. It will be understood that the response
40 sent by the device 16 to the multiplexer 14 will be sent after the device 16 has
received the message 36 and processed the message 36.
[0017] The multiplexer 14 preferably includes a buffer 42 which receives and saves the response
40 from the device 16. Preferably, the response 40 will be stored in the buffer 42
until the response 40 is retrieved or otherwise communicated to the host controller
12. Other mechanisms for receiving, storing and communicating the response 40 to the
host controller 12 may be contemplated. It will be understood that in certain circumstances
the response 40 stored in the buffer 42 may be canceled by another and different message
from the host controller 12.
[0018] Once the reply 38 is communicated between the multiplexer 14 and the host controller
12, the host controller 12 is free to resend the message 34 at any time. However,
if an immediate retry is attempted, it is virtually guaranteed that the response 40
from the device 16 has not yet been received by the multiplexer 14 due to the relative
slowness of the two-wire communication loop 26 between the device 16 and the multiplexer
14. Accordingly, the host controller 12, as directed by the host software 32, will
not retry or resend the message 34 until after the expiration of a predetermined and
fixed time period. This first fixed time period between the initial sending of the
message 34 and a first resend 44 of the message 34 is termed a "long delay" 46. Upon
the expiration of the long delay 46, the host controller 12 will attempt the first
resend 44a of the message 34 in an attempt to retrieve the response 40 from the buffer
42 from the multiplexer 14. However, if the response 40 has not yet been received
by the multiplexer 14 from the device 16, the multiplexer 14 may send a message 48
to the host controller 12 indicating that the embedded message 36 has been forwarded
to the device 16 by the multiplexer 14 and that the multiplexer 14 is still waiting
to receive the response 40 from the device 16. It will be understood that a message
48 will be sent to the host controller 12 after each re-send 44 (44a, 44b, 44c, etc.)
until the response 40 is present tin the buffer 42.
[0019] After the host controller 12 has received the message 48, the host controller 12
will enter another waiting period. However, because the response 40 is expected relatively
soon, this additional waiting period is short relative to the earlier long delay 46,
and thus this subsequent waiting period is indicated by a shorter time period termed
a short delay 51. Upon expiration of the short delay 51, the host controller 12 will
attempt a second resend 44b of the message 34. The host controller 12, as directed
by the host software 32, will engage in an ongoing cycle of waiting the bracket width
50 (e.g., 50a, 50b, 50c, ... 50n), followed by a resend 44 of the message 34 until
a valid response 40 is received from the multiplexer 14. In the alternative, the re-sends
44a, 44b, 44c, ... 44n may cease upon receipt by the multiplexer 14 of an error code
from the device 16. Stated another way, the host controller 12 may vary the duration
of the short delay 51 based on the size of the message in such a manner that the bracket
width 50 remains consistent. As a further alternative, the ongoing cycle may be interrupted
upon the expiration of a predetermined time-out period. Thus, the host controller
12 will initiate a plurality of resends 44a, 44b, 44c...44
n, with the first resend occurring after the expiration of the long delay 46. The second
resend 44b will occur after the expiration of the first bracket width 50a, with all
subsequent resends, if necessary, occurring upon the expiration of the subsequent
bracket widths 50b, 50c, 50d...50
n.
[0020] The use of fixed time periods for the long delay 46 and the short delay 51 may yield
satisfactory communications performance in certain applications, although certain
additional improvements in the areas of throughput and efficiency may be desirable.
However, there may be some shortcomings in the use of fixed period delays. For example,
a message intended for the device 16 may contain a message number and data unique
particular to that message. Further, there may be in excess of several dozen different
unique messages (e.g., 34a, 34b, 34c, ... 34n), with varying amounts of data contained
in each unique message. Moreover, each unique message may have a different appropriate
response from the device 16. Sometimes the data that is received in the response can
vary in length for the same unique message. The size of the messages (e. g., the size
of the message being sent as well as the size of the response) determines the total
transmission time for the message, which accounts for over 90 % of the time it takes
to complete a message with (e. g., receive a response from) the device 16.
[0021] Because there is a wide variance in the size of messages sent and received, a fixed
time period for the long delay 46 may result in inefficiencies in communications performance
in certain applications. If the long delay 46 is too long, the response 40 may sit
in the buffer 42 of the multiplexer 14 waiting to be retrieved for an undesirably
long and thus inefficient time period. On the other hand, if the long delay 46 is
too short, an undue number of round trip communications between the host controller
12 and the multiplexer 14 may be required in order to retrieve the response 40.
[0022] Further, it is known that there may be slight variability in hardware performance
from one device to another device, and from one multiplexer to another multiplexer.
A fixed time period for the long delay 46 does not account for these slight variations
in performance, nor will the use of a fixed time period for the long delay 46 allow
for the host system 10 to make adjustments to account for these performance variations.
Moreover, in certain applications the baud rate of the multiplexer 14 may be adjusted,
which affects the time it takes to complete a message cycle. The use of a fixed time
period for the long delay 46 does not take into account variations in the baud rate
of the multiplexer 14.
[0023] Accordingly, the host controller 12 is arranged to perform an optimization cycle
52, which is shown schematically in Figs. 9 through 11. According to the disclosed
example, the optimization cycle 52 allows the host software 32 to, according to the
disclosed example, maximize communication throughput and efficiency when communicating
with the device 16 (or with a number of individual devices 16) on a multiplexer network.
[0024] The optimization cycle 52, according to the disclosed example, adjusts the long delay
46 and/or the short delay 51 in order to retrieve the response 40 from the buffer
42 of the multiplexer 14. These adjustments in the long delay 46 and/or the short
delay 51 may be made unique to each multiplexer 14/device 16/message 34 combination.
The adjustments may be based on, for example, the number of re-sends (44a, 44b, 44c,
etc.) that were required the previous time that particular unique message 34 was sent
to that particular device 16, or upon any other unique historical data.
[0025] In order to gain a more thorough understanding of the optimization cycle 52, the
following terms and concepts that apply to the underlying algorithm will hereinafter
be described.
- (1) Message Turnaround Time (MT) - This is the transmission time required (based on the relevant baud rates, for example)
for the host controller 12 to send the message 34 and receive the response 40 from
the multiplexer 14. For example, the host controller 12 may send a particular message
X that is 28 bytes long to the multiplexer at 9600 baud. The multiplexer may respond
almost immediately (within about 2 byte times) with a reply message that is 30 bytes
long. Based on the applicable baud rate and messages sizes, it takes approximately
70 milliseconds to complete this round-trip message for the message X.
After the host controller 12 sends a message to the multiplexer 14, the host controller
12 preferably will not send another message (e.g., a re-send) until the host controller
12 either receives a response or a hardware timeout occurs. Therefore, the MT is the
shortest time interval between outgoing messages from the host controller 12 for a
particular command or message. MT is calculated at send time based upon the size of
the outgoing command message and the anticipated size of the response.
- (2) Bracket Width (BW) - The Bracket Width is the Message Turnaround time (MT) corrected for message length
variability. For example, a command or message X, as described previously, may have
an MT of 70 milliseconds. A command or message Y, however, with less content may have
an MT of only 30 milliseconds. Further, a command or message Z, with more message
content, may have an MT of 100 milliseconds. Thus, the BW will preferably be set to
a value greater than or equal to the largest MT for the messages X, Y, and Z, sent
to a particular instrument or device 16. The BW provides for a known, fixed interval
between message transmissions, corrects for message length variability, and provides
a consistent baseline for adjustment of the value for the long delay 46 as will be
outlined below.
When the response 40 is eventually obtained from the buffer 42 it is guaranteed that
this retrieval occurred within a BW period of arriving in the buffer 42. For example,
if the BW is 100 ms, when the response 40 is eventually retrieved from the buffer
42 it is guaranteed that the response 40 has been there no more than 100 milliseconds.
- (3) Long Delay (46) - The Long Delay 46 is the amount of time that the host controller 12 will wait before
resending a message to the multiplexer 14 after receiving the "DR_INITIATE" (the message
38) response code from the multiplexer 14. A Long Delay value is maintained for every
command of every instrument that uses the multiplexer delayed response mechanism,
with this historical data preferably being suitably stored. The time value of the
long delay 46 is constantly updated and is central to the optimization algorithm as
the adjustments to the long delay 46 are what allows the host controller 12/the host
software 32 to optimize communications efficiency by obtaining the response 40 from
the buffer 42 of the multiplexer 14 as soon as possible after the response 40 arrives
in the buffer 42.
- (4) Short Delay (51) - The Short Delay 51 is the amount of time added to the MT time needed to arrive at
the Bracket Width 50. The short delay 51 is applied whenever a "DR_RUNNING" response
code (the message 38 sent to the host controller 12 by the multiplexer indicating
that the embedded message 36 has been forwarded to the device 16). The Short Delay
51 is calculated as follows:
Short Delay 51= Bracket Width - Message Turnaround;
Or, short delay 51= bracket width 50 - MT
Fig. 3 illustrates the relationship between the Short Delay 51, the Message Turnaround
time MT and the Bracket Width 50.
- (5) Delayed Response Count (DR Cnt) - A Delayed Response Count 58 indicates the number of DR_RUNNING responses (e.g., the
message 48) received by the host controller 12 from the multiplexer 14 before finally
obtaining the device response 40 from the buffer 42 of the multiplexer 14 for a given
command or message. This value is set to zero when the message 34 is first sent, and
is incremented each time a "DR_RUNNING" response code (the message 48) is received
from the multiplexer 14. This Delayed Response Count 58 is then used to adjust/calculate
the Long Delay 46 that will be used the next time this same command is sent to this
same device.
- (6) Dead Time - The amount of time the response 40 sits in the buffer 42 waiting to be retrieved
by the host controller 12.
[0026] Given this background, exemplary goals of the algorithm embodied on the optimization
cycle 52 include:
- (1) To obtain the message response from the multiplexer as soon as possible after
it arrives there (minimizes Dead Time).
- (2) To do so with as few message retries as possible.
[0027] In accordance with the disclosed example, the optimization cycle 52 works as follows:
Prior to sending the message 34, the host software 32 calculates an initial value
for the short delay 50. The initial value for the short delay 50 will be indicated
by 50
1, with all subsequent values for the short delay 50 indicated by 50
2, 50
3...50
n. The host software 32 also looks up a value for the long delay 46, with this initial
value for the long delay 46 indicated by 46
1. Again, all subsequent values for the long delay 46 will be indicated by 46
2, 46
3 ... 46
n. See Fig. 6) The initial value 46, may be an existing value that was computed the
previous time that this particular message 34 was sent to this particular device 16.
In the event that this is the first time that this particular command or message 34
has been sent to this particular device 16, the initial value 46, may be calculated
in much the same manner that the message turnaround time is calculated.
[0028] Referring to Fig. 4, when the message 34 has been sent from the host controller 12
to the multiplexer 14, and when the reply 38 has been received by the host controller
12, the host controller 12 will enter the waiting period indicated by the long delay
46, which in this case is the initial long delay 46
1. After the expiration of the long delay 46
i, the host controller 12 will initiate the first re-send 44a. In the event the response
40 is not yet in the buffer 42 of the multiplexer 14, the multiplexer 14 will send
the message 48 indicating that the response 40 has not yet been received from the
device 16. If necessary, the host software 32 will wait the short delay period 50
before re-sending another message, e.g., the re-send 44b. Upon the expiration of the
first short delay period 50
1, the host controller 12 will send the second re-send 44b. This process of re-sending
the message followed by a short delay period will be continued until the response
40 is present in the buffer 42 of the multiplexer 14. As shown in Fig. 4, the response
40 is received at the buffer 42 during the fourth short delay period 50
4, which occurs shortly after the fourth re-send 44d.
[0029] For a variety of reasons, it may be undesirable to have so many communications occurring
between the host controller 12 and the multiplexer 14, as evidenced by the need for
sending the initial message 38 and for re-sends 44a through 44b. Accordingly, in referring
now to Fig. 5, the optimization cycle 52 involves adjusting the long delay 46. In
this case, the long delay 46 will be indicated by the second long delay period 46
ii. As shown in Fig. 5, the response 40 is present in the buffer 42 of the multiplexer
14 after one re-send 44a. However, the response 40 is not communicated to the host
controller 12 until the occurrence of the second re-send 44b. The response 40 is communicated
to the host controller 12 after the expiration of the initial short delay 50
i. Note that the response 40 is present in the buffer 42 for a period of time prior
to the second re-send 44b being sent, with this period of time being referred to as
a "dead time" 54.
[0030] From a re-try count efficiency standpoint (the re-try count being indicated by the
number of re-sends required 44a, 44b, etc.), it would seem more logical to attempt
to retrieve the response 40 with no re-sends 44a, 44b, etc. Although this is possible,
there is no guarantee how long the response 40 has been waiting in the buffer 42 to
be retrieved. Ideally, the response 40 will be present in the buffer 42 with minimal
dead time. However, if the initial value 46
1 (or any of the subsequent values 46
2, 46
3, etc.) for the long delay are sufficiently long, it can practically be guaranteed
that the response 40 will be present in the buffer 42 upon the occurrence of the first
re-send 44a. However, simply lengthening the long delay period 46 may result in a
situation where the dead time 54 is unduly long, as the message response 40 may have
been sitting in the buffer 42 for almost the entire long delay period 46, which would
be a worst-case scenario. Such a situation may be exacerbated by volatile environmental
conditions, such as having a secondary master or having the device in burst mode,
which tends to cause significant increases in the long delay period.
[0031] Referring now to Fig. 6, throughput and efficiency may be further maximized beyond
simply lowering the number of delayed responses. Accordingly, the optimization cycle
52 will further optimize the long delay 46 in order to minimize dead time 54. Once
the long delay 46 has been set at a value that results in the response 40 being present
in the buffer 42 upon the first re-send 44a, the long delay 46 becomes optimization-eligible.
Once the long delay 46 is optimization eligible, the optimization cycle 52 searches
for an optimization fail-point 56. The optimization fail-point is found by continuously
shortening the long delay 46 over time, as shown in Fig. 6. As the long delay 46 is
shortened, eventually the long delay 46 will become sufficiently short that a second
re-send 44b is required. This fail-point 56 is found by gradually reducing the long
delay 46 on each successive message which causes the brackets indicated in Fig. 5
to gradually shift toward the left (for discussion purposes, the point at which the
response 40 is received in the buffer 42 is assumed to be constant). As the brackets
shown in Fig. 5 shift toward the left, the dead time 54 is gradually reduced. Preferably,
each subsequent long delay period is slightly shorter than the preceding long delay
period, with the interval shown in Fig. 6 being equal to approximately 2 milliseconds.
Other intervals may be chosen by the user. However, according to the disclosed example
the interval of approximately 2 milliseconds has yielded favorable experimental results.
[0032] Referring now to Fig. 7, after the long delay 46 has been sufficiently shortened,
it is evident that a second short delay 50 is required in order to retrieve the response
40 from the buffer 42, which response 40 is not retrieved until the third re-send
44c. This is an indication that the fail-point 56 has been reached.
[0033] Once the fail-point 56 has been calculated, the long delay 46 is increased by a pre-determined
amount, which in the disclosed example is approximately 25 % of the bracket width.
Referring to either of Figs. 4, 5, or 7, it will be understood that increasing the
long delay 46 will again shift the brackets toward the right when viewing the figures.
This 25 % increase in the long delay 46 will once again shift the long delay 46 back
to an optimization-eligible state, at which point the long delay 46 will again enter
the optimization cycle 52.
[0034] The optimization cycle 52 according to the disclosed example will account for the
fact that the reply times for the exact same message are not actually constant. In
actuality, the reply times may vary slightly, even in a stable environment, and will
vary significantly in an unstable environment. Thus, the optimization cycle 52 will
account for changing environmental conditions and enable the host system 10 to operate
efficiently while minimizing the dead time 54. Because of the varying environmental
conditions which affect the communication times, the fail-point 56 can never be established
with absolute certainty. Accordingly, exactly when the response 40 is received by
the buffer 42 within the initial short delay period 50
i, can never be known with absolute certainty. However, the optimization cycle 52 provides
a reasonable guarantee that all communications are actually completed within 25% or
less of the fail-point 56. Ideally, the fail-point 56 would be indicative of zero
dead time.
[0035] The optimization cycle 52 functions similarly to the optimization-eligible state
in that the long delay 46 is reduced until the fail-point 56 is reached. However,
the algorithm for reducing the long delay 46 is more logrithmic in nature. The closer
the optimization cycle 52 gets to achieving a zero dead time (e. g., the closer the
optimization cycle 52 gets to the fail-point 56), the optimization cycle 52 will send
more messages in any given long delay period 46. As shown in Fig. 8, the long delay
period 46 is adjusted downward relatively quickly early on in the optimization cycle
52. On the other hand, as the number of subsequent messages increases, the more subsequent
messages will be sent using any particular long delay period 46. Stated in another
way, as the optimization cycle 52 approaches the fail-point 56, more and more subsequent
messages are sent for any given shortened long delay period 46. Thus, according to
the disclosed algorithm, the optimization cycle 52 will seek to maximize the number
of messages being sent with the long delay being set as close as possible to the fail
point 56.
[0036] The transition from one to two delayed responses (e. g., the transition between requiring
only a single re-send 44a and requiring at least a second re-send 44b) is expected
during the operation of the optimization cycle 52. However, if zero re-sends are required,
or if more than two re-sends are required, the optimization cycle 52 may be canceled,
and a more significant correction to the long delay 46 may be applied in order to
return the communication cycle to the status reflected in Fig. 5 in which only a second
re-send 44b is required. Once this transpires, the optimization-eligible state is
established and the search for the fail-point 56 begins again. Subsequently, the optimization
cycle may be started again after the fail-point 56 has been established. According
to the disclosed example, the optimization cycle 52 may constantly adjust to changing
environmental conditions and "learns" how to communicate any particular unique command
to any particular unique device in a manner that seeks to maximize efficiency.
[0037] Referring now to Figures 9-11, the system 10 according to the present invention may
be further explained as follows. As shown in Fig. 9, the host system 10 initiates
the sending of a message 34 at 60. At 62, the message 34 is inserted in a message
queue 64 based upon the priority of the message and the send time of the message.
Once the message 34 is in the HART message queue 64, the time to send the message
is signaled at 68, after which the message 34 is obtained from the message queue at
70. The steps at 66, 72, 74, 76, 78 and 80 are optional and need not be performed
in order to carry out the optimization cycle 52.
[0038] Proceeding now to block A of Fig. 10, the message 34 is sent at 82, after which a
determination is made whether the reply 38 has been received at 84. If the reply 38
has been received, then the status is updated at 86 to reflect that the reply 38 has
been received. At this point, the host software 32 runs the optimization cycle 52.
The optimization cycle 52 sets the delayed response flag at 88 followed by obtaining
the initial value for the long delay 46 and the short delay 51 at 90. The send time
is then established at 92 to equal the long delay 46, after which the message is reinserted
in the message queue based upon the priority and send time at 94 (Figs. 9 and 10).
[0039] At 96 it is determined whether the status indicates that the delayed response count
is still being counted. If the answer is "yes", then at 98 the delayed response count
is incremented, and the send time is set to be equal to the short delay 51 at 100.
This information is communicated to 94, for establishing the priority and send time.
If the status of the DR running code is indicated as "no", then at 102 it is determined
whether the status of the message is successful. If the answer is "yes", then at 104
the host controller 12 will adjust the long delay 46 and the short delay 51 and store
this information for the next time that this unique message 34 is sent. If the answer
to the status inquiry at 102 is "no", then at 106 an error condition is handled in
an appropriate manner. Each of the determinations made at 84, 104, and 106 are then
communicated at 108 back to the controller 12.
[0040] The output of the status determination at 102 is next communicated via block C in
Fig. 10 to block C in Fig. 11. As shown in Fig. 11, the baud rate and message size
are used at 110 in order to calculate the MT. Next, at 112, the short delay 51 is
set to be equal to the bracket width (BW) minus the message turnaround time (MT).
At 114, the short delay 51 is adjusted for any known variability in the message response
size for this type of message (based on historical data for this particular message
and/or any other historical data for the particular field of the unique field device
for which the unique message is intended). At 116, the current delayed response count
is compared with the previous delayed response count, and at 118 the long delay 46
is adjusted up or down as necessary in order to arrive at a delay response count of
1 the next time that this unique message is sent. It will be understood that the magnitude
and direction of the adjustment depends on the difference between the delay response
count and how far the current delay response count is from the target bracket. In
the disclosed example, the target is a delay response count of 1. At block D this
information is then communicated back to 108 for transmission to the host controller
12.
[0041] In accordance with the disclosed example, the HART multiplexer communications optimization
cycle 52 allows the host software 32 run by the host controller 12 to retrieve responses
40 from the device 16 as soon as possible after the response 40 has arrived in the
response buffer 42 of the multiplexer 14, with the dead time being, on average, in
the neighborhood of about 6-10 milliseconds. This arrangement serves to seek additional
efficiencies in communications performance over a multiplexer network.
[0042] Those skilled in the art will appreciate that, although the teachings of the invention
have been illustrated in connection with certain embodiments, there is no intent to
limit the invention to such embodiments. On the contrary, the intention of this application
is to cover all modifications and embodiments fairly falling within the scope of the
appended claims either literally or under the doctrine of equivalents.
1. An apparatus for optimizing multiplexer (14) communications comprising:
a host;
a multiplexer (14); and
an instrument device (16);
the host arranged to run a host software (32) and to transmit a message (34) to the
multiplexer (14), the message (34) including an embedded message (36) for the instrument
device (16), the host arranged to re-transmit the message (34) until a response (40)
to the message (34) is received from the multiplexer (14), a first re-transmission
(44a) occurring after a long delay (46), a second (44b) and all subsequent re-transmissions
(44c - 44n) occurring after a short delay (50);
the multiplexer (14) arranged to strip the embedded message (36) and to forward the
embedded message (36) to the instrument device (16), the multiplexer (14) further
arranged to indicate to the host whether the embedded message (36) has been received
and forwarded to the instrument device (16) and whether the response (40) has been
received from the instrument device (16), the multiplexer (14) further arranged to
receive and store the response (40) until the response (40) is communicated to the
host;
the instrument device (16) arranged to receive and process the embedded message (36)
and to communicate the response (40) to the multiplexer (14);
the apparatus further providing:
an optimizing controller (12), the optimizing controller (12) arranged to:
establish a count, the count indicating the number of re-transmissions occurring before
the response (40) has been communicated to the host;
assess a message turnaround time, the message turnround time based on the communication
time it takes to transmit the message from the host to the multiplexer (14) and to
transmit the response (40) from the multiplexer (14) to the host;
establish a bracket width, which is the message turnaround time corrected for message
length variability, and wherein the bracket width is at least as long as the message
turnaround time;
establish the short delay (50), the short delay (50) based at least in part on the
bracket width and the message (34) turnaround time; and
vary at least one of the long delay (46) and the short delay (50) to minimize the
count.
2. The apparatus of claim 1, wherein the multiplexer (14) includes a buffer (42) arranged
to store the reply until the response (40) is communicated to the host, and wherein
the optimizing controller (12) is further arranged to vary at least one of the long
delay (46) and the short delay (50) to minimize a dead time (54), the dead time (54)
indicative of how long the response (40) resides in the buffer (42) prior to communication
to the host.
3. The apparatus of claim 1, wherein the time indicative of how long the response (40)
resides at the multiplexer (14) prior to communication to the host is indicated by
a dead time (54), and wherein the optimizing controller (12) is arranged to vary the
long delay (46) and the short delay (50) to minimize the dead time (54).
4. The apparatus of one of the claims 1 to 3, wherein the optimizing controller (12)
is arranged to vary both the long delay (46) and the short delay (50) to minimize
the count.
5. The apparatus of one of the claims 1 to 4, wherein the optimizing controller (12)
is arranged to vary both the long delay (46) and the short delay (50) to minimize
the dead time (54).
6. The apparatus one of the claims 1 to 5, wherein the first message (34) and the plurality
of subsequent messages (44a - 44n) are chosen from a message set, the message set
including a plurality of possible messages, each message in the message set having
unique message parameters, and wherein the host is arranged to select a chosen message
(34) from the message set, and further wherein the optimizing controller (12) is arranged
to assess the unique message parameters of the chosen message (34) and to establish
the bracket width and the long delay (46) based on the unique message parameters of
the chosen message (34).
7. The apparatus of one of the claims 1 to 6, wherein the first message (34) and the
plurality of subsequent messages (44a - 44n) are chosen from a message set, the message
set including a plurality of possible messages for the instrument device (16), each
message in the message set having unique message parameters, and wherein the host
is arranged to select a chosen message (34) from the message set, and further wherein
the optimizing controller (12) is arranged to assess the message turnaround time for
each message on the message set and establish the bracket width based on the greatest
message turnaround time in the message set.
8. The apparatus of claim 6, wherein the instrument device (16) includes a communication
characteristic, and wherein the optimizing controller (12) is arranged assess the
communication characteristic and to vary the long delay (46) and the short delay (50)
based at least in part on the communication characteristic.
9. The apparatus of one of the claims 1 to 8, wherein the receipt of the response (40)
by the host defines a complete message cycle, and wherein the optimizing controller
(12) is arranged to run an optimization cycle, the optimization cycle defined by lengthening
the long delay (46) to reach an optimization eligible state, the optimization eligible
state defined by completion of the communication cycle with no more than two subsequent
messages, the optimization cycle comprising shortening the long delay (46) until a
fail point is reached, the fail point defined by the sending of a third subsequent
message.
10. The apparatus of claim 9, wherein the optimizing controller (12) is arranged to re-run
the optimization cycle after the fail point is reached.
11. A method for optimizing communications between a host, a multiplexer (14), and a field
instrument device (16) comprising:
providing a host controller;
providing a multiplexer (14); and
providing a field instrument device (16);
providing a host software (32) for the host controller, the host software (32) arranged
to transmit a message (34) to the multiplexer (14), the message (34) including an
embedded message (36) for the instrument device (16), the host arranged to re-transmit
the message (34) until a response (40) to the message (34) is received from the multiplexer
(14), a first re-transmission (44a) occurring after a long delay (46), a second (44b)
and all subsequent retransmissions occurring after a short delay (50);
arranging the multiplexer (14) to strip the embedded message (36) and to forward the
embedded message (36) to the instrument device (16), the multiplexer (14) further
arranged to indicate to the host whether the embedded message (36) has been received
and forwarded to the instrument device (16) and whether the response (40) has been
received from the instrument device (16);
the instrument device (16) arranged to receive and process the embedded message (36)
and to communicate the response (40) to the multiplexer (14);
the method further comprising:
arranging the host controller to run an optimizing routine, the optimizing
routine including:
establishing a count, the count indicating the number of re-transmissions occurring
before the response (40) has been communicated to the host;
assessing a message turnaround time, the message turnround time based on the communication
time it takes to transmit the message from the host to the multiplexer (14) and to
transmit the response (40) from the multiplexer (14) to the host;
establishing a bracket width, which is the message turnaround time corrected for message
length variability, and wherein the bracket width at least as long as the message
turnaround time;
establishing a short delay (50) based on the message turnaround time and the bracket
width; and
varying at least one of the long delay (46) and the short delay (50) to minimize the
count.
12. The method of claim 11, including providing the multiplexer (14) with a buffer (42)
arranged to store the reply until the response (40) is communicated to the host, and
arranging the host controller to vary at least one of the long delay (46) and the
short delay (50) to minimize a dead time (54), the dead time (54) indicative of how
long the response (40) resides in the buffer (42) prior to communication to the host.
13. The method of claim 12, wherein the optimizing controller (12) is further arranged
to vary both of the long delay (46) and the short delay (50) to minimize the dead
time (54).
14. The method of one of the claims 11 to 13, wherein the time the response (40) resides
in the buffer (42) before being retrieved by the host is indicated by a dead time
(54), and wherein the optimizing controller (12) is arranged to vary the long delay
(46) and the short delay (50) to minimize the dead time (54).
15. The method of one of the claims 11 to 14, wherein the optimizing controller (12) is
arranged to vary both the long delay (46) and the short delay (50) to minimize the
count.
16. The method of one of the claims 11 to 15, wherein the first message (34) and the plurality
of subsequent messages are chosen from a message set, the message set including a
plurality of possible messages, each message in the message set having unique message
parameters, and wherein the host is arranged to select a chosen message (34) from
the message set, and further wherein the optimizing controller (12) is arranged to
assess the unique message parameters of the chosen message (34) and to establish the
bracket width and the long delay (46) based on the unique message parameters of the
chosen message (34).
17. The method of one of the claims 11 to 16, wherein the first message (34) and the plurality
of subsequent messages are chosen from a message set, the message set including a
plurality of possible messages for the instrument device (16), each message in the
message set having unique message parameters, and wherein the host is arranged to
select a chosen message (34) from the message set, and further wherein the optimizing
controller (12) is arranged to assess the message turnaround time for each message
on the message set and establish the bracket width based on the greatest message turnaround
time in the message set.
18. The method of claim 17, wherein the instrument device (16) includes a communication
characteristic, and wherein the optimizing controller (12) is arranged assess the
communication characteristic and to vary the long delay (46) and the short delay (50)
based at least in part on the communication characteristic.
19. The method of one of the claims 11 to 18, wherein the receipt of the response (40)
by the host defines a complete message cycle, and wherein the optimizing controller
(12) is arranged to run an optimization cycle, the optimization cycle defined by lengthening
the long delay (46) to reach an optimization eligible state, the optimization eligible
state defined by completion of the communication cycle with no more than two subsequent
messages (44a; 44b), the optimization cycle comprising shortening the long delay (46)
until a fail point is reached, the fail point defined by the sending of a third subsequent
message.
20. The method of claim 19, wherein the optimizing controller (12) is arranged to re-run
the optimization cycle after the fail point is reached.
21. The method of claim 19, wherein the optimizing controller (12) re-runs the optimization
cycle after the fail point is reached, and wherein the optimizing controller (12)
is arranged to increase the long delay (46) by a time period equal to about 25% of
the bracket width prior to re-running the optimization cycle.
22. The method of claim 19, including storing data unique to at least one of a particular
message (34), a particular field device (16), and a particular multiplexer (14).
1. Vorrichtung zum Optimieren des Nachrichtenaustausches von Übermittlungen eines Multiplexers
(14), die Folgendes aufweist:
einen Hostrechner;
einen Multiplexer (14); und
eine Instrumenteinrichtung (16);
wobei der Hostrechner so angeordnet ist, dass er eine Hostrechner-Software (32) ausführt
und eine Nachricht (34) zu dem Multiplexer (14) überträgt, wobei die Nachricht (34)
eine eingebettete Nachricht (36) für die Instrumenteinrichtung (16) aufweist, wobei
der Zentralrechner so angeordnet ist, dass er die Nachricht (34) erneut überträgt,
bis eine Antwort (40) auf die Nachricht (34) von dem Multiplexer (14) empfangen wird,
wobei eine erste Übertragungswiederholung (44a) nach einer langen Verzögerungszeit
(46) erfolgt und eine zweite (44b) und jede anschließende Übertragungswiederholung
(44c-44n) nach einer kurzen Verzögerungszeit (50) erfolgen;
wobei der Multiplexer (14) so angeordnet ist, dass er die eingebettete Nachricht (36)
freilegt und die eingebettete Nachricht (36) an die Instrumenteinrichtung (16) weiterleitet,
wobei der Multiplexer (14) ferner so angeordnet ist, dass er dem Hostrechner anzeigt,
ob die eingebettete Nachricht (36) empfangen und an die Instrumenteinrichtung (16)
weitergeleitet worden ist und ob die Antwort (40) von der Instrumenteinrichtung (16)
empfangen worden ist, wobei der Multiplexer (14) ferner so angeordnet ist, dass er
die Antwort (40) empfängt und speichert, bis die Antwort (40) an den Hostrechner übermittelt
wird;
wobei die Instrumenteinrichtung (16) so angeordnet ist, dass sie die eingebettete
Nachricht (36) empfängt und verarbeitet und die Antwort (40) an den Multiplexer (14)
übermittelt;
wobei die Vorrichtung ferner vorsieht:
eine Optimierungssteuereinheit (12), wobei die Optimierungssteuereinheit (12) so angeordnet
ist, dass sie:
einen Zählwert bildet, wobei der Zählwert die Anzahl von Übertragungswiederholungen
bezeichnet, die erfolgen, bevor die Antwort (40) an den Hostrechner übermittelt worden
ist;
eine Nachrichtdurchlaufzeit bewertet, wobei die Nachrichtdurchlaufzeit auf der Übermittlungszeit
basiert, die benötigt wird, um die Nachricht von dem Hostrechner zu dem Multiplexer
(14) zu übertragen und um die Antwort (40) von dem Multiplexer (14) zu dem Hostrechner
zu übertragen;
eine Klammerbreite festlegt, welche die Nachrichtendurchlaufzeit, korrigiert hinsichtlich
der Veränderlichkeit der Nachrichtenlänge, ist, und wobei die Klammerbreite mindestens
ebenso lang wie die Nachrichtdurchlaufzeit ist;
die kurze Verzögerungszeit (50) festlegt, wobei die kurze Verzögerungszeit (50) mindestens
teilweise auf der Klammerbreite und der Durchlaufzeit der Nachricht (34) basiert;
und
mindestens eine von der langen Verzögerungszeit (46) und der kurzen Verzögerungszeit
(50) variiert, um den Zählwert zu minimieren.
2. Vorrichtung nach Anspruch 1, wobei der Multiplexer (14) einen Zwischenspeicher (42)
aufweist, der so angeordnet ist, dass er die Antwort speichert, bis die Antwort (40)
an den Hostrechner übermittelt wird, und wobei die Optimierungssteuereinheit (12)
ferner so angeordnet ist, dass sie mindestens eine von der langen Verzögerungszeit
(46) und der kurzen Verzögerungszeit (50) variiert, um eine Totzeit (54) zu minimieren,
wobei die Totzeit (54) bezeichnet, wie lang die Antwort (40) vor Übermittlung an den
Hostrechner in dem Zwischenspeicher (42) verweilt.
3. Vorrichtung nach Anspruch 1, wobei die Zeitdauer, die bezeichnet, wie lang die Antwort
(40) vor Übermittlung an den Hostrechner in dem Multiplexer (14) verweilt, durch eine
Totzeit (54) bezeichnet wird, und wobei die Optimierungssteuereinheit (12) so angeordnet
ist, dass sie die lange Verzögerungszeit (46) und die kurze Verzögerungszeit (50)
variiert, um die Totzeit (54) zu minimieren.
4. Vorrichtung nach einem der Ansprüche 1 bis 3, wobei die Optimierungssteuereinheit
(12) so angeordnet ist, dass sie sowohl die lange Verzögerungszeit (46) als auch die
kurze Verzögerungszeit (50) variiert, um den Zählwert zu minimieren.
5. Vorrichtung nach einem der Ansprüche 1 bis 4, wobei die Optimierungssteuereinheit
(12) so angeordnet ist, dass sie sowohl die lange Verzögerungszeit (46) als auch die
kurze Verzögerungszeit (50) variiert, um die Totzeit (54) zu minimieren.
6. Vorrichtung nach einem der Ansprüche 1 bis 5, wobei die erste Nachricht (34) und die
Vielzahl von anschließenden Nachrichten (44a-44n) aus einer Nachrichtenmenge gewählt
werden, wobei die Nachrichtenmenge eine Vielzahl von möglichen Nachrichten aufweist
und jede Nachricht in der Nachrichtenmenge eindeutige Nachrichtenparameter hat, und
wobei der Hostrechner so angeordnet ist, dass er eine ausgewählte Nachricht (34) aus
der Nachrichtenmenge bestimmt, und wobei ferner die Optimierungssteuereinheit (12)
so angeordnet ist, dass sie die eindeutigen Nachrichtenparameter der ausgewählten
Nachricht (34) bewertet und die Klammerbreite und die lange Verzögerungszeit (46)
auf der Basis der eindeutigen Nachrichtenparameter der ausgewählten Nachricht (34)
festlegt.
7. Vorrichtung nach einem der Ansprüche 1 bis 6, wobei die erste Nachricht (34) und die
Vielzahl von anschließenden Nachrichten (44a-44n) aus einer Nachrichtenmenge ausgewählt
werden, wobei die Nachrichtenmenge eine Vielzahl von möglichen Nachrichten für die
Instrumenteinrichtung (16) aufweist und jede Nachricht in der Nachrichtenmenge eindeutige
Nachrichtenparameter hat, und wobei der Hostrechner so angeordnet ist, dass er eine
ausgewählte Nachricht (34) aus der Nachrichtenmenge bestimmt, und wobei ferner die
Optimierungssteuereinheit (12) so angeordnet ist, dass sie die Nachrichtdurchlaufzeit
für jede Nachricht in der Nachrichtenmenge bewertet und die Klammerbreite auf der
Basis der längsten Nachrichtdurchlaufzeit in der Nachrichtenmenge festlegt.
8. Vorrichtung nach Anspruch 6, wobei die Instrumenteinrichtung (16) eine Übermittlungscharakteristik
aufweist, und wobei die Optimierungssteuereinheit (12) so angeordnet ist, dass sie
die Übermittlungscharakteristik bewertet und die lange Verzögerungszeit (46) und die
kurze Verzögerungszeit (50) mindestens teilweise auf der Basis der Übermittlungscharakteristik
variiert.
9. Vorrichtung nach einem der Ansprüche 1 bis 8, wobei der Empfang der Antwort (40) durch
den Hostrechner einen vollständigen Nachrichtenzyklus definiert, und wobei die Optimierungssteuereinheit
(12) so angeordnet ist, dass sie einen Optimierungszyklus ausführt, wobei der Optimierungszyklus
durch Verlängerung der langen Verzögerungszeit (46) definiert ist, um einen für die
Optimierung geeigneten Zustand zu erreichen, wobei der für die Optimierung geeignete
Zustand durch Beendigung des Übermittlungszyklus mit nicht mehr als zwei anschließenden
Nachrichten definiert ist, und wobei der Optimierungszyklus eine Verkürzung der langen
Verzögerungszeit (46) bis zum Erreichen eines Ausfallspunktes aufweist, wobei der
Ausfallspunkt durch das Senden einer dritten anschließenden Nachricht definiert ist.
10. Vorrichtung nach Anspruch 9, wobei die Optimierungssteuereinheit (12) so angeordnet
ist, dass sie den Optimierungszyklus nach Erreichen des Ausfallspunkts erneut ausführt.
11. Verfahren zum Optimieren des Nachrichtenaustausches zwischen einem Hostrechner, einem
Multiplexer (14) und einer Feldinstrumenteinrichtung (16), das die folgenden Schritte
aufweist:
Bereitstellen einer Hostrechner-Steuereinheit;
Bereitstellen eines Multiplexers (14); und
Bereitstellen einer Feldinstrumenteinrichtung (16);
Bereitstellen einer Hostrechner-Software (32) für die Hostrechner-Steuereinheit, wobei
die Hostrechner-Software (32) eine Nachricht (34) zu dem Multiplexer (14) überträgt,
wobei die Nachricht (34) eine eingebettete Nachricht (36) für die Instrumenteinrichtung
(16) aufweist, wobei der Hostrechner so angeordnet ist, dass er die Nachricht (34)
erneut überträgt, bis eine Antwort (40) auf die Nachricht (34) von dem Multiplexer
(14) empfangen wird, wobei eine erste Übertragungswiederholung (44a) nach einer langen
Verzögerungszeit (46) erfolgt und eine zweite (44b) und jede anschließende Übertragungswiederholung
nach einer kurzen Verzögerungszeit (50) erfolgen;
Anordnen des Multiplexers (14) so, dass er die eingebettete Nachricht (36) freilegt
und die eingebettete Nachricht (36) an die Instrumenteinrichtung (16) weiterleitet,
wobei der Multiplexer (14) ferner so angeordnet ist, dass er dem Hostrechner anzeigt,
ob die eingebettete Nachricht (36) empfangen und an die Instrumenteinrichtung (16)
weitergeleitet worden ist und ob die Antwort (40) von der Instrumenteinrichtung (16)
empfangen worden ist;
wobei die Instrumenteinrichtung (16) so angeordnet ist, dass sie die eingebettete
Nachricht (36) empfängt und verarbeitet und die Antwort (40) an den Multiplexer (14)
übermittelt;
wobei das Verfahren ferner die folgenden Schritte aufweist:
Anordnen der Hostrechner-Steuereinheit so, dass sie eine Optimierungsroutine ausführt,
wobei die Optimierungsroutine aufweist:
Bilden eines Zählwerts, wobei der Zählwert die Anzahl von Übertragungswiederholungen
bezeichnet, die erfolgen, bevor die Antwort (40) an den Zentralrechner übermittelt
worden ist;
Bewerten einer Nachrichtdurchlaufzeit, wobei die Nachrichtdurchlaufzeit auf der Übermittlungszeit
basiert, die benötigt wird, um die Nachricht von dem Hostrechner zu dem Multiplexer
(14) zu übertragen und um die Antwort (40) von dem Multiplexer (14) zu dem Hostrechner
zu übertragen;
Festlegen einer Klammerbreite, welche die Nachrichtendurchlaufzeit, korrigiert hinsichtlich
der Veränderlichkeit der Nachrichtenlänge, ist, und wobei die Klammerbreite mindestens
ebenso lang wie die Nachrichtdurchlaufzeit ist;
Festlegen einer kurzen Verzögerungszeit (50) auf der Basis der Nachrichtdurchlaufzeit
und der Klammerbreite; und
Variieren von mindestens einer von der langen Verzögerungszeit (46) und der kurzen
Verzögerungszeit (50), um den Zählwert zu minimieren.
12. Verfahren nach Anspruch 11, das aufweist: Versehen des Multiplexers (14) mit einem
Zwischenspeicher (42), der so angeordnet ist, dass er die Antwort speichert, bis die
Antwort (40) an den Hostrechner übermittelt wird, und Anordnen der Hostrechner-Steuereinheit
so, dass sie mindestens eine von der langen Verzögerungszeit (46) und der kurzen Verzögerungszeit
(50) variiert, um eine Totzeit (54) zu minimieren, wobei die Totzeit (54) bezeichnet,
wie lang die Antwort (40) vor Übermittlung an den Hostrechner in dem Zwischenspeicher
(42) verweilt.
13. Verfahren nach Anspruch 12, wobei die Optimierungssteuereinheit (12) ferner so angeordnet
ist, dass sie sowohl die lange Verzögerungszeit (46) als auch die kurze Verzögerungszeit
(50) variiert, um die Totzeit (54) zu minimieren.
14. Verfahren nach einem der Ansprüche 11 bis 13, wobei die Zeitdauer, für welche die
Antwort (40) in dem Zwischenspeicher (42) verweilt, bevor sie von dem Hostrechner
abgerufen wird, durch eine Totzeit (54) bezeichnet wird, und wobei die Optimierungssteuereinheit
(12) so angeordnet ist, dass sie die lange Verzögerungszeit (46) und die kurze Verzögerungszeit
(50) variiert, um die Totzeit (54) zu minimieren.
15. Verfahren nach einem der Ansprüche 11 bis 14, wobei die Optimierungssteuereinheit
(12) so angeordnet ist, dass sie sowohl die lange Verzögerungszeit (46) als auch die
kurze Verzögerungszeit (50) variiert, um den Zählwert zu minimieren.
16. Verfahren nach einem der Ansprüche 11 bis 15, wobei die erste Nachricht (34) und die
Vielzahl von anschließenden Nachrichten aus einer Nachrichtenmenge gewählt werden,
wobei die Nachrichtenmenge eine Vielzahl von möglichen Nachrichten aufweist und jede
Nachricht in der Nachrichtenmenge eindeutige Nachrichtenparameter hat, und wobei der
Hostrechner so angeordnet ist, dass er eine ausgewählte Nachricht (34) aus der Nachrichtenmenge
bestimmt, und wobei ferner die Optimierungssteuereinheit (12) so angeordnet ist, dass
sie die eindeutigen Nachrichtenparameter der ausgewählten Nachricht (34) bewertet
und die Klammerbreite und die lange Verzögerungszeit (46) auf der Basis der eindeutigen
Nachrichtenparameter der ausgewählten Nachricht (34) festlegt.
17. Verfahren nach einem der Ansprüche 11 bis 16, wobei die erste Nachricht (34) und die
Vielzahl von anschließenden Nachrichten aus einer Nachrichtenmenge gewählt werden,
wobei die Nachrichtenmenge eine Vielzahl von möglichen Nachrichten für die Instrumenteinrichtung
(16) aufweist und jede Nachricht in der Nachrichtenmenge spezielle Nachrichtenparameter
hat, und wobei der Hostrechner so angeordnet ist, dass er eine ausgewählte Nachricht
(34) aus der Nachrichtenmenge bestimmt, und wobei ferner die Optimierungssteuereinheit
(12) so angeordnet ist, dass sie die Nachrichtdurchlaufzeit für jede Nachricht in
der Nachrichtenmenge bewertet und die Klammerbreite auf der Basis der längsten Nachrichtdurchlaufzeit
in der Nachrichtenmenge festlegt.
18. Verfahren nach Anspruch 17, wobei die Instrumenteinrichtung (16) eine Übermittlungscharakteristik
aufweist, und wobei die Optimierungssteuereinheit (12) so angeordnet ist, dass sie
die Übermittlungscharakteristik bewertet und die lange Verzögerungszeit (46) und die
kurze Verzögerungszeit (50) mindestens teilweise auf der Basis der Übermittlungscharakteristik
variiert.
19. Verfahren nach einem der Ansprüche 11 bis 18, wobei der Empfang der Antwort (40) durch
den Hostrechner einen vollständigen Nachrichtenzyklus definiert, und wobei die Optimierungssteuereinheit
(12) so angeordnet ist, dass sie einen Optimierungszyklus ausführt, wobei der Optimierungszyklus
durch Verlängerung der langen Verzögerungszeit (46) definiert ist, um einen für die
Optimierung geeigneten Zustand zu erreichen, wobei der für die Optimierung geeignete
Zustand durch Beendigung des Übermittlungszyklus mit nicht mehr als zwei anschließenden
Nachrichten (44a; 44b) definiert ist, und wobei der Optimierungszyklus das Verkürzen
der langen Verzögerungszeit (46) aufweist, bis ein Ausfallspunkt erreicht wird, wobei
der Ausfallspunkt durch das Senden einer dritten anschließenden Nachricht definiert
ist.
20. Verfahren nach Anspruch 19, wobei die Optimierungssteuereinheit (12) so angeordnet
ist, dass sie den Optimierungszyklus nach Erreichen des Ausfallspunkts erneut ausführt.
21. Verfahren nach Anspruch 19, wobei die Optimierungssteuereinheit (12) den Optimierungszyklus
nach Erreichen des Ausfallspunkts erneut ausführt, und wobei die Optimierungssteuereinheit
(12) so angeordnet ist, dass sie die lange Verzögerungszeit (46) um eine Zeitperiode
verlängert, die ungefähr gleich 25 % der Klammerbreite vor dem erneuten Ausführen
des Optimierungszyklus ist.
22. Verfahren nach Anspruch 19, das aufweist: Speichern von Daten, eindeutig für mindestens
eine bzw. einen der folgenden: eine bestimmte Nachricht (34), eine bestimmte Feldeinrichtung
(16) und einen bestimmten Multiplexer (14).
1. Appareil destiné à optimiser des communications de multiplexeur (14), comprenant :
un hôte ;
un multiplexeur (14) ; et
un dispositif d'instrument (16) ;
l'hôte étant agencé pour exécuter un logiciel hôte (32) et transmettre un message
(34) au multiplexeur (14), le message (34) comprenant un message intégré (36) destiné
au dispositif d'instrument (16), l'hôte étant agencé pour retransmettre le message
(34) jusqu'à ce qu'une réponse (40) au message (34) soit reçue par le multiplexeur
(14), une première retransmission (44a) se produisant après un délai long (46), une
deuxième (44b) et toutes les autres retransmissions ultérieures (44c à 44n) se produisant
après un délai court (50) ;
le multiplexeur (14) étant agencé pour extraire le message intégré (36) et transférer
le message intégré (36) au dispositif d'instrument (16), le multiplexeur (14) étant
en outre agencé pour indiquer à l'hôte si le message intégré (36) a été reçu et transféré
au dispositif d'instrument (16) et si la réponse (40) a été reçue à partir du dispositif
d'instrument (16), le multiplexeur (14) étant en outre agencé pour recevoir et enregistrer
la réponse (40) jusqu'à ce que la réponse soit communiquée à l'hôte ;
le dispositif d'instrument (16) étant agencé pour recevoir et traiter le message intégré
(36) et communiquer la réponse (40) au multiplexeur (14) ;
l'appareil prévoyant également :
un contrôleur d'optimisation (12), le contrôleur d'optimisation (12) étant agencé
pour :
établir un comptage, le comptage indiquant le nombre de retransmissions se produisant
avant que la réponse (40) n'ait été transmise à l'hôte ;
évaluer un temps de basculement de message, le temps de basculement de message étant
basé sur le temps de communication nécessaire pour transmettre le message de l'hôte
au multiplexeur (14) et
transmettre la réponse (40) du multiplexeur (14) à l'hôte ;
établir une largeur de fourchette, qui correspond au temps de basculement de message
corrigé pour la variabilité de longueur de message, et dans lequel la largeur de fourchette
est au moins aussi longue que le temps de basculement de message ;
établir le délai court (50), le délai court (50) étant basé au moins en partie sur
la largeur de fourchette et le temps de basculement de message (34) ; et
faire varier au moins l'un du délai long (46) et du délai court (50) afin de minimiser
le comptage.
2. Appareil selon la revendication 1, dans lequel le multiplexeur (14) comprend un tampon
(42) agencé pour stocker la réponse jusqu'à ce que la réponse (40) soit communiquée
à l'hôte, et dans lequel le contrôleur d'optimisation (12) est en outre agencé pour
faire varier au moins l'un du délai long (46) et du délai court (50) afin de minimiser
un temps mort (54), le temps mort (54) indiquant pendant combien de temps la réponse
(40) réside dans le tampon (42) avant la transmission à l'hôte.
3. Appareil selon la revendication 1, dans lequel le temps indiquant combien de temps
la réponse (40) réside dans le multiplexeur (14) avant la communication à l'hôte est
indiqué par un temps mort (54), et dans lequel le contrôleur d'optimisation (12) est
agencé pour faire varier le délai long (46) et le délai court (50) afin de minimiser
le temps mort (54).
4. Appareil selon l'une des revendications 1 à 3, dans lequel le contrôleur d'optimisation
(12) est agencé pour faire varier aussi bien le délai long (46) que le délai court
(50) afin de minimiser le comptage.
5. Appareil selon l'une des revendications 1 à 4, dans lequel le contrôleur d'optimisation
(12) est agencé pour faire varier aussi bien le délai long (46) que le délai court
(50) afin de minimiser le temps mort (54).
6. Appareil selon l'une des revendications 1 à 5, dans lequel le premier message (34)
et la pluralité de messages ultérieurs (44a à 44n) sont choisis à partir d'un ensemble
de messages, l'ensemble de messages comprenant une pluralité de messages possibles,
chaque message dans l'ensemble de messages présentant des paramètre de message uniques,
et dans lequel l'hôte est agencé pour sélectionner un message choisi (34) à partir
de l'ensemble de messages, et en outre dans lequel le contrôleur d'optimisation (12)
est agencé pour évaluer les paramètres de message uniques du message choisi (34) et
établir la largeur de fourchette et le délai long (46) sur la base des paramètres
de message uniques du message choisi (34).
7. Appareil selon l'une des revendications 1 à 6, dans lequel le premier message (34)
et la pluralité de messages ultérieurs (44a à 44n) sont choisis à partir d'un ensemble
de messages, l'ensemble de messages comprenant une pluralité de messages possibles
pour le dispositif d'instrument (16), chaque message dans l'ensemble de messages présentant
des paramètres de message uniques, et dans lequel l'hôte est agencé pour sélectionner
un message choisi (34) à partir de l'ensemble de messages, et en outre dans lequel
le contrôleur d'optimisation (12) est agencé pour évaluer le temps de basculement
de message pour chaque message dans l'ensemble de messages et établir la largeur de
fourchette sur la base du plus grand temps de basculement de message dans l'ensemble
de messages.
8. Appareil selon la revendication 6, dans lequel le dispositif d'instrument (16) comprend
une caractéristique de communication, et dans lequel le contrôleur d'optimisation
(12) est agencé pour évaluer la caractéristique de communication et faire varier le
délai long (46) et le délai court (50) au moins en partie sur la base de la caractéristique
de communication.
9. Appareil selon l'une des revendications 1 à 8, dans lequel la réception de la réponse
(40) par l'hôte définit un cycle de message complet, et dans lequel le contrôleur
d'optimisation (12) est agencé pour exécuter un cycle d'optimisation, le cycle d'optimisation
étant défini par l'allongement du délai long (46) afin d'atteindre un état prêt à
l'optimisation, l'état prêt à l'optimisation étant défini par l'achèvement du cycle
de communication avec pas plus de deux messages ultérieurs, le cycle d'optimisation
comprenant le raccourcissement du délai long (46) jusqu'à ce qu'un point d'échec soit
atteint, le point d'échec étant défini par l'envoi d'un troisième message ultérieur.
10. Appareil selon la revendication 9, dans lequel le contrôleur d'optimisation (12) est
agencé pour ré-exécuter le cycle d'optimisation après que le point d'échec a été atteint.
11. Procédé destiné à optimiser des communications entre un hôte, un multiplexeur (14)
et un dispositif d'instrument de terrain (16), comprenant les étapes consistant à
:
prévoir un contrôleur hôte ;
prévoir un multiplexeur (14) ; et
prévoir un dispositif d'instrument de terrain (16) ;
prévoir un logiciel hôte (32) pour le contrôleur hôte, le logiciel hôte (32) étant
agencé pour transmettre un message (34) au multiplexeur (14), le message (34) comprenant
un message intégré (36) pour le dispositif d'instrument (16), l'hôte étant agencé
pour retransmettre le message (34) jusqu'à ce qu'une réponse (40) au message (34)
soit reçue à partir du multiplexeur (14), une première retransmission (44a) se produisant
après un délai long (46), une deuxième (44b) et toutes les retransmissions ultérieures
se produisant après un délai court (50) ;
agencer le multiplexeur (14) pour extraire le message intégré (36) et transférer le
message intégré (36) au dispositif d'instrument (16), le multiplexeur (14) étant en
outre agencé pour indiquer à l'hôte si le message intégré (36) a été reçu et transféré
au dispositif d'instrument (16) et si la réponse (40) a été reçue à partir du dispositif
d'instrument (16) ;
le dispositif d'instrument (16) étant agencé pour recevoir et traiter le message intégré
(36) et communiquer la réponse (40) au multiplexeur (14) ;
le procédé comprenant en outre les étapes consistant à :
agencer le contrôleur hôte pour exécuter une routine d'optimisation, la routine d'optimisation
comprenant les étapes consistant à :
établir un comptage, le comptage indiquant le nombre de retransmissions se produisant
avant que la réponse (40) n'ait été transmise à l'hôte ;
évaluer un temps de basculement de message, le temps de basculement de message étant
basé sur le temps de communication nécessaire à la transmission du message de l'hôte
au multiplexeur (14) et à la transmission de la réponse (40) du multiplexeur (14)
à l'hôte ;
établir une largeur de fourchette, qui correspond au temps de basculement de message
corrigé pour la variabilité de longueur de message, et dans lequel la largeur de fourchette
est au moins aussi longue que le temps de basculement de message ;
établir un délai court (50) sur la base du temps de basculement de message (34) et
de la largeur de fourchette ; et
faire varier au moins l'un du délai long (46) et du délai court (50) afin de minimiser
le comptage.
12. Procédé selon la revendication 11, comprenant le fait de munir le multiplexeur (14)
d'un tampon (42) agencé pour stocker la réponse jusqu'à ce que la réponse (40) soit
communiquée à l'hôte, et agencer le contrôleur hôte pour faire varier au moins l'un
du délai long (46) et du délai court (50) afin de minimiser le temps mort (54), le
temps mort (54) indiquant pendant combien de temps la réponse (40) réside dans le
tampon (42) avant la communication à l'hôte.
13. Procédé selon la revendication 12, dans lequel le contrôleur d'optimisation (12) est
en outre agencé pour faire varier aussi bien le délai long (46) que le délai court
(50) afin de minimiser le temps mort (54).
14. Procédé selon l'une des revendications 11 à 13, dans lequel le temps pendant lequel
la réponse (40) réside dans le tampon (42) avant d'être récupérée par l'hôte est indiqué
par un temps mort (54), et dans lequel le contrôleur d'optimisation (12) est agencé
pour faire varier le délai long (46) et le délai court (50) afin de minimiser le temps
mort (54).
15. Procédé selon l'une des revendications 11 à 14, dans lequel le contrôleur d'optimisation
(12) est agencé pour faire varier aussi bien le délai long (46) que le délai court
(50) afin de minimiser le comptage.
16. Procédé selon l'une des revendications 11 à 15, dans lequel le premier message (34)
et la pluralité de messages ultérieurs (44a à 44n) sont choisis à partir d'un ensemble
de messages, l'ensemble de messages comprenant une pluralité de messages possibles,
chaque message dans l'ensemble de messages présentant des paramètre de message uniques,
et dans lequel l'hôte est agencé pour sélectionner un message choisi (34) à partir
de l'ensemble de messages, et en outre dans lequel le contrôleur d'optimisation (12)
est agencé pour évaluer les paramètres de message uniques du message choisi (34) et
établir la largeur de fourchette et le délai long (46) sur la base des paramètres
de message uniques du message choisi (34).
17. Procédé selon l'une des revendications 11 à 16, dans lequel le premier message (34)
et la pluralité de messages ultérieurs sont choisis à partir d'un ensemble de messages,
l'ensemble de messages comprenant une pluralité de messages possibles pour le dispositif
d'instrument (16), chaque message dans l'ensemble de messages présentant des paramètres
de message uniques, et dans lequel l'hôte est agencé pour sélectionner un message
choisi (34) à partir de l'ensemble de messages, et en outre dans lequel le contrôleur
d'optimisation (12) est agencé pour évaluer le temps de basculement de message pour
chaque message dans l'ensemble de messages et établir la largeur de fourchette sur
la base du plus grand temps de basculement de message de l'ensemble de messages.
18. Procédé selon la revendication 17, dans lequel le dispositif d'instrument (16) comprend
une caractéristique de communication, et dans lequel le contrôleur d'optimisation
(12) est agencé pour évaluer la caractéristique de communication et faire varier le
délai long (46) et le délai court (50) au moins en partie sur la base de la caractéristique
de communication.
19. Procédé selon l'une des revendications 11 à 18, dans lequel la réception de la réponse
(40) par l'hôte définit un cycle de message complet, et dans lequel le contrôleur
d'optimisation (12) est agencé pour exécuter un cycle d'optimisation, le cycle d'optimisation
étant défini par l'allongement du délai long (46) afin d'atteindre un état prêt à
l'optimisation, l'état prêt à l'optimisation étant défini par l'achèvement du cycle
de communication avec pas plus de deux messages ultérieurs (44a ; 44b), le cycle d'optimisation
comprenant le raccourcissement du délai long (46) jusqu'à ce qu'un point d'échec soit
atteint, le point d'échec étant défini par l'envoi d'un troisième message ultérieur.
20. Procédé selon la revendication 19, dans lequel le contrôleur d'optimisation (12) est
agencé pour ré-exécuter le cycle d'optimisation après que le point d'échec a été atteint.
21. Procédé selon la revendication 19, dans lequel le contrôleur d'optimisation (12) ré-exécute
le cycle d'optimisation après que le point d'échec a été atteint, et dans lequel le
contrôleur d'optimisation (12) est agencé pour augmenter le délai long (46) d'une
période de temps égale à environ 25 % de la largeur de fourchette avant de ré-exécuter
le cycle d'optimisation.
22. Procédé selon la revendication 19, comprenant le stockage de données uniques à au
moins un élément parmi un message particulier (34), un dispositif de terrain particulier
(16) et un multiplexeur particulier (14).