A method for controlling a distributed system. The distributed system includes a plurality of nodes and a bus. The plurality of nodes is associated with a plurality of timers. The method includes assigning a plurality of timer values including a first timer value and a second timer value to the plurality of timers in response to no data being loaded on the bus, defining an initial timer value equal to the first timer value, counting down the plurality of timer values with a given rate by activating the plurality of timers, stopping counting down the plurality of timer values in response to the first timer value reaching zero by stopping the plurality of timers, replacing the first timer value with a reference value, and sending data from the first node to the bus. The first timer value is assigned to a first timer of the plurality of timers, and the second timer value is assigned to a second timer of the plurality of timers. The first timer is associated with a first node of the plurality of nodes and the second timer is associated with a second node of the plurality of nodes. The first timer value is the smallest timer value among the plurality of timer values, and the second timer value is the largest timer value among the plurality of timer values. The reference value is smaller than the initial timer value and is larger than the second timer value.
|
12. A distributed system comprising a plurality of nodes and a bus, the plurality of nodes associated with a plurality of timers, the distributed system configured to:
responsive to no data being loaded on the bus, assign a plurality of timer values to the plurality of timers, the plurality of timer values including a first timer value assigned to a first timer of the plurality of timers, and a second timer value assigned to a second timer of the plurality of timers, the first timer associated with a first node of the plurality of nodes and the second timer associated with a second node of the plurality of nodes, the first timer value being a smallest timer value among the plurality of timer values, and the second timer value being a largest timer value among the plurality of timer values, the first timer value and the second timer value satisfying a condition according to:
b<2a, where a is the first timer value and b is the second timer value;
define an initial timer value, the initial timer value being equal to the first timer value;
count down the plurality of timer values with a given rate by activating the plurality of timers;
stop counting down the plurality of timer values by stopping the plurality of timers responsive to the first timer value reaching zero;
replace the first timer value with a reference value, the reference value being smaller than the initial timer value and being larger than the second timer value; and
send data from the first node to the bus.
1. A method for controlling a distributed system comprising a plurality of nodes, and a bus, the plurality of nodes associated with a plurality of timers, the method comprising:
assigning a plurality of timer values to the plurality of timers in response to no data being loaded on the bus, the plurality of timer values including a first timer value assigned to a first timer of the plurality of timers, and a second timer value assigned to a second timer of the plurality of timers, the first timer associated with a first node of the plurality of nodes and the second timer associated with a second node of the plurality of nodes, the first timer value being a smallest timer value among the plurality of timer values, and the second timer value being a largest timer value among the plurality of timer values, the first timer value and the second timer value satisfying a condition according to:
b<2a, where a is the first timer value and b is the second timer value;
defining an initial timer value, the initial timer value being equal to the first timer value;
counting down the plurality of timer values with a given rate by activating the plurality of timers;
stopping counting down the plurality of timer values by stopping the plurality of timers in response to the first timer value reaching zero;
replacing the first timer value with a reference value, the reference value being smaller than the initial timer value and being larger than the second timer value; and
sending data from the first node to the bus.
9. A method for controlling a distributed system comprising a plurality of nodes and a bus, the plurality of nodes associated with a plurality of timers, the method comprising:
sending data from an ith node of the plurality of nodes to the bus;
sending a jth token of a plurality of tokens from the ith node to a jth node of the plurality of nodes, where 1≤i≤N is an integer number associated with the ith node, 1≤j≤N is an integer number associated with the jth node where j≠i, and N is the number of the plurality of nodes;
sending data from the jth node to the bus in response to the jth node being active;
removing the jth node from the plurality of nodes in response to the jth node not being active;
assigning a plurality of timer values to the plurality of timers, the plurality of timer values including a kth timer value assigned to a kth timer of the plurality of timers, and an lth timer value assigned to an lth timer of the plurality of timers, the kth timer associated with a kth node of the plurality of nodes and the lth timer associated with an lth node of the plurality of nodes, where 1≤k≤N and 1≤l≤N are integer parameters where k≠j and l≠j, the kth timer value being a smallest timer value among the plurality of timer values, and the lth timer value being a largest timer value among the plurality of timer values, the kth timer value and the lth timer value satisfying a condition according to:
b<2a, where a is the kth timer value and b is the lth timer value;
defining an initial timer value, the initial timer value being equal to the kth timer value;
counting down the plurality of timer values with a given rate by activating the plurality of timers;
stopping counting down the plurality of timer values by stopping the plurality of timers in response to the kth timer value reaching zero;
replacing the kth timer value with a reference value, the reference value being smaller than the initial timer value and being larger than the lth timer value; and
sending data from the kth node to the bus.
2. The method of
counting down the plurality of timer values with the given rate by activating the plurality of timers in response to no data being loaded on the bus;
stopping counting down the plurality of timer values by stopping the plurality of timers in response to any of the plurality of timer values reaching zero;
selecting a third timer value of the plurality of timer values, the third timer value being equal to zero, the third timer value associated with a third timer of the plurality of timers, the third timer associated with a third node of the plurality of nodes;
replacing the third timer value with the reference value; and
sending data from the third node to the bus.
3. The method of
sending a jth token of a plurality of tokens from an ith node of the plurality of nodes to a jth node of the plurality of nodes, where 1≤i≤N is an integer number associated with the ith node, 1≤j≤N is an integer number associated with the jth node where j≠i, and N is the number of the plurality of nodes; and
sending data from the jth node to the bus in response to the jth node being active.
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
10. The method of
counting down the plurality of timer values with the given rate by activating the plurality of timers in response to no data being loaded on the bus;
stopping counting down the plurality of timer values by stopping the plurality of timers in response to any of the plurality of timer values reaching zero;
selecting an mth timer value of the plurality of timer values, the mth timer value being equal to zero, the mth timer value associated with an mth timer of the plurality of timers, the mth timer associated with an mth node of the plurality of nodes, where m is an integer value and m≠j;
replacing the mth timer value with the reference value; and
sending data from the mth node to the bus.
11. The method of
adding the jth node to the plurality of nodes in response to the jth node becoming active after not being active;
sending the jth token from an nth node of the plurality of nodes to the jth node, where 1≤n≤N is an integer number associated with the nth node, and j≠n; and
sending data from the jth node to the bus.
13. The distributed system of
send a jth token of a plurality of tokens from an ith node of the plurality of nodes to a jth node of the plurality of nodes, where 1≤i≤N is an integer number associated with the ith node, 1≤j≤N is an integer number associated with the jth node where j≠i, and N is the number of the plurality of nodes; and
send data from the jth node to the bus in response to the jth node being active.
14. The distributed system of
15. The distributed system of
16. The distributed system of
17. The distributed system of
18. The distributed system of
|
This application claims the benefit of priority from U.S. Provisional Patent Application Ser. No. 62/517,929, filed on Jun. 11, 2017, and entitled “DESIGN AND MANUFACTURE OF LOCAL NETWORK BASED CONTROLLERS FOR A DISTRIBUTED AUTOMATION NETWORK USING STM MICROCONTROLLERS,” which is incorporated herein by reference in its entirety.
The present disclosure generally relates to control systems, and particularly, to distributed control systems.
The development of industrial control systems has led to products quality enhancement and manufacturing expense cut back. Rapid development of electronic controllers and devices in the previous century resulted in the emergence of direct digital control (DDC) systems. However, these systems may suffer from input limitation, computer efficacy and speed shrinkage with regard to great information volume and control system stopping as a result of central computer failures.
Distributed control systems (DSCs) may be reasonable replacements of DDCs for automation industry optimization. However, these systems may require more advanced control mechanisms. Major control methods for DSCs may include central control methods, such as circuit switching protocols, polling and time-division multiple access (TDMA), random controlling, and distributed control methods, such as token ring and token bus protocols. However, these methods may suffer from certain failures, such as absence of certainty and disciplined process for channel accessing, low level efficiency for high loads due to collision enhancement, and channel efficiency decrease at high speeds.
There is, therefore, a need for a more efficient control method in distributed systems for enhanced data transfer in terms of certainty and speed. There is also a need for a method for reducing the collision probability in distributed systems.
This summary is intended to provide an overview of the subject matter of the present disclosure, and is not intended to identify essential elements or key elements of the subject matter, nor is it intended to be used to determine the scope of the claimed implementations. The proper scope of the present disclosure may be ascertained from the claims set forth below in view of the detailed description below and the drawings.
In one general aspect, the present disclosure describes a method for controlling a distributed system. The distributed system may include a plurality of nodes and a bus. The plurality of nodes may be associated with a plurality of timers. The method may include assigning a plurality of timer values including a first timer value and a second timer value to the plurality of timers in response to no data being loaded on the bus, defining an initial timer value equal to the first timer value, counting down the plurality of timer values with a given rate by activating the plurality of timers, stopping counting down the plurality of timer values in response to the first timer value reaching zero by stopping the plurality of timers, replacing the first timer value with a reference value, and sending data from the first node to the bus. The first timer value may be assigned to a first timer of the plurality of timers, and the second timer value may be assigned to a second timer of the plurality of timers. The first timer may be associated with a first node of the plurality of nodes and the second timer may be associated with a second node of the plurality of nodes. The first timer value may be the smallest timer value among the plurality of timer values, and the second timer value may be the largest timer value among the plurality of timer values. The reference value may be smaller than the initial timer value and may be larger than the second timer value.
The above general aspect may include one or more of the following features. In some implementations, the method may further include repeating an iterative process. The iterative process may include counting down the plurality of timer values with the given rate by activating the plurality of timers in response to no data being loaded on the bus, stopping counting down the plurality of timer values by stopping the plurality of timers in response to any of the plurality of timer values reaching zero, selecting a third timer value of the plurality of timer values, replacing the third timer value with the reference value, and sending data from a third node of the plurality of nodes to the bus. In an implementation, the third timer value may be equal to zero, and may be associated with a third timer of the plurality of timers. The third timer may be associated with the third node.
In some implementations, the method may further include sending a jth token of a plurality of tokens from an ith node of the plurality of nodes to a jth node of the plurality of nodes, and sending data from the jth node to the bus in response to the jth node being active.
Other systems, methods, features and advantages of the implementations will be, or will become, apparent to one of ordinary skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description and this summary, be within the scope of the implementations, and be protected by the claims herein.
The drawing figures depict one or more implementations in accord with the present teachings, by way of example only, not by way of limitation. In the figures, like reference numerals refer to the same or similar elements.
In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant teachings. However, it should be apparent that the present teachings may be practiced without such details. In other instances, well known methods, procedures, components, and/or circuitry have been described at a relatively high-level, without detail, in order to avoid unnecessarily obscuring aspects of the present teachings.
The following detailed description is presented to enable a person skilled in the art to make and use the methods and devices disclosed in exemplary embodiments of the present disclosure. For purposes of explanation, specific nomenclature is set forth to provide a thorough understanding of the present disclosure. However, it will be apparent to one skilled in the art that these specific details are not required to practice the disclosed exemplary embodiments. Descriptions of specific exemplary embodiments are provided only as representative examples. Various modifications to the exemplary implementations will be readily apparent to one skilled in the art, and the general principles defined herein may be applied to other implementations and applications without departing from the scope of the present disclosure. The present disclosure is not intended to be limited to the implementations shown, but is to be accorded the widest possible scope consistent with the principles and features disclosed herein.
Herein is disclosed a novel method for controlling a distributed system. The method controls data transfer from nodes to a bus in the distributed system. When the system is activated, a time is assigned for each of the nodes of the distributed system. Each time (i.e., timer value) is loaded into a timer that is associated with a separate node. The timers are then activated and start counting down until a first timer reaches zero. The timers then stop counting down and a node that corresponds to the first timer sends its data to the bus.
In some implementations, the method continues via an iterative process. At each step of the iterative process, a reference value is assigned to the timer that has reached zero (i.e., the first timer at the first step). The reference value is chosen smaller than the largest timer value at the activation moment of the distributed system, and larger than the smallest timer value at the moment that the counting down process is stopped. The timers then continue counting down until another timer reaches zero. Consequently, a corresponding node sends data to the bus, and the iterative process is repeated.
In other implementations, after the first node sends data to the bus, it sends a token to a second node. If the second node is active, it sends its data the bus and sends another token to a next node until all nodes of the distributed system receive their tokens and send data to the bus. The process is then repeated from the first node. If a destination node does not acknowledge receiving its token from a source node (i.e., the node is not active), the source node sends another token to a next node and this cycle is repeated until reaching an active node.
In an implementation, the method 200 may result in more efficient access of each of the plurality of nodes 102 to the bus 104. In different implementations, since a separate timer value may be assigned to each of the plurality of nodes 102, an unexpected disconnection (i.e., becoming inactive) of any of the plurality of nodes 102 from the distributed system 100 may have minor impact on the access time of other nodes to the bus 104. In addition, the mechanism of timer values and reference time selection may result in different timer values for different nodes. In some different implementations, the difference of timer values may prevent different nodes from simultaneously transferring data to the bus 104, and consequently, may prevent collision of data on the bus 104.
In some implementations, the method 200 may further include sending a jth token 112 of a plurality of tokens from an ith node 114 of the plurality of nodes 102 to a jth node 116 of the plurality of nodes and sending data from the jth node 116 to the bus 104 in response to the jth node 116 being active, where:
1≤i≤N is an integer number associated with the ith node 114,
1≤j≤N is an integer number associated with the jth node 116, where j≠i, and
N is the number of the plurality of plurality of nodes 102. In some implementations, the activity of the jth node 116 may be determined by a response time of the jth node 116 to the ith node 114 after the jth token 112 is sent from the ith node 114 to the jth node 116. If the jth node 116 responds to the ith node 114 within a period of time shorter than a given threshold, the jth node 116 may be determined active. Otherwise, it may be determined not active.
In some implementations, the method 200 may further include sending a (j+1)th token of the plurality of tokens from the ith node 114 to a (j+1)th node of the plurality of nodes in response to the jth node not being active and j satisfying a set of conditions according to:
j<N, and
j≠i−1.
In different implementations, the method 200 may further include sending a (j+2)th token of the plurality of tokens from the ith node to a (j+2)th node of the plurality of nodes in response to the jth node not being active and i and j satisfying a set of conditions according to:
i≠N, and
j=i−1.
In an implementation, the method 200 may further include sending a first token 118 of the plurality of tokens from the ith node 114 to the first node 106 in response to the jth node not being active and i and j satisfying a set of conditions according to:
i=N, and
j=i−1.
In other word, when the ith node 114 coincides with an Nth node 120, the first token 118 may be sent from the last node (i.e., the Nth node 120) of the distributed system 100 to the first node 106.
In some implementations, the method 200 may further include sending the first token from the ith node 114 to the first node 106 in response to the jth node 116 not being active and i and j satisfying a set of conditions according to:
i≠1, and
j=N.
In some implementations, the method 200 may further include sending a second token 122 of the plurality of tokens from the ith node 114 to the second node 108 in response to the jth node 116 not being active and i and j satisfying a set of conditions according to:
i=1, and
j=N.
Referring again to
Referring again to
In this example, a hardware implementation of the distributed system 100 by using STM microcontrollers is demonstrated.
While the foregoing has described what are considered to be the best mode and/or other examples, it is understood that various modifications may be made therein and that the subject matter disclosed herein may be implemented in various forms and examples, and that the teachings may be applied in numerous applications, only some of which have been described herein. It is intended by the following claims to claim any and all applications, modifications and variations that fall within the true scope of the present teachings.
Unless otherwise stated, all measurements, values, ratings, positions, magnitudes, sizes, and other specifications that are set forth in this specification, including in the claims that follow, are approximate, not exact. They are intended to have a reasonable range that is consistent with the functions to which they relate and with what is customary in the art to which they pertain.
The scope of protection is limited solely by the claims that now follow. That scope is intended and should be interpreted to be as broad as is consistent with the ordinary meaning of the language that is used in the claims when interpreted in light of this specification and the prosecution history that follows and to encompass all structural and functional equivalents. Notwithstanding, none of the claims are intended to embrace subject matter that fails to satisfy the requirement of Sections 101, 102, or 103 of the Patent Act, nor should they be interpreted in such a way. Any unintended embracement of such subject matter is hereby disclaimed.
Except as stated immediately above, nothing that has been stated or illustrated is intended or should be interpreted to cause a dedication of any component, step, feature, object, benefit, advantage, or equivalent to the public, regardless of whether it is or is not recited in the claims.
It will be understood that the terms and expressions used herein have the ordinary meaning as is accorded to such terms and expressions with respect to their corresponding respective areas of inquiry and study except where specific meanings have otherwise been set forth herein. Relational terms such as first and second and the like may be used solely to distinguish one entity or action from another without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by “a” or “an” does not, without further constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises the element.
The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various implementations. This is for purposes of streamlining the disclosure, and is not to be interpreted as reflecting an intention that the claimed implementations require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed implementation. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.
While various implementations have been described, the description is intended to be exemplary, rather than limiting and it will be apparent to those of ordinary skill in the art that many more implementations and implementations are possible that are within the scope of the implementations. Although many possible combinations of features are shown in the accompanying figures and discussed in this detailed description, many other combinations of the disclosed features are possible. Any feature of any implementation may be used in combination with or substituted for any other feature or element in any other implementation unless specifically restricted. Therefore, it will be understood that any of the features shown and/or discussed in the present disclosure may be implemented together in any suitable combination. Accordingly, the implementations are not to be restricted except in light of the attached claims and their equivalents. Also, various modifications and changes may be made within the scope of the attached claims.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6178475, | Dec 19 1994 | Advanced Micro Devices Inc. | Multimedia system employing timers to properly allocate bus access |
6389029, | Nov 10 1998 | RPX CLEARINGHOUSE LLC | Local area network incorporating universal serial bus protocol |
6480473, | Dec 29 1998 | Koninklijke Philips Electronics N V | Verification of active nodes in an open network |
6968905, | Mar 18 2003 | Schlumberger Technology Corporation | Distributed control system |
8274920, | Mar 29 2007 | AKER SOLUTIONS LIMITED | Token bus communication system |
8687647, | Jun 26 2006 | Mitsubishi Electric Corporation | Communication node, and token issuing method and token-ring communication method in ring communication system |
9264363, | Aug 26 2011 | XFUSION DIGITAL TECHNOLOGIES CO , LTD | Method, node, and system for controlling network traffic based on token ring |
20160062350, | |||
20170048081, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Date | Maintenance Fee Events |
Jun 11 2018 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Jul 03 2018 | SMAL: Entity status set to Small. |
Dec 04 2023 | REM: Maintenance Fee Reminder Mailed. |
May 20 2024 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Apr 14 2023 | 4 years fee payment window open |
Oct 14 2023 | 6 months grace period start (w surcharge) |
Apr 14 2024 | patent expiry (for year 4) |
Apr 14 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 14 2027 | 8 years fee payment window open |
Oct 14 2027 | 6 months grace period start (w surcharge) |
Apr 14 2028 | patent expiry (for year 8) |
Apr 14 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 14 2031 | 12 years fee payment window open |
Oct 14 2031 | 6 months grace period start (w surcharge) |
Apr 14 2032 | patent expiry (for year 12) |
Apr 14 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |