Industrial controller with highly distributed processing
First Claim
1. A method of programming a highly distributed industrial controller comprised of a plurality of modules communicating along a shared communications medium, the modules having message identifiers and output values and communicating the output values, identified by the message identifiers of the module, via messages on the communications medium, the method of programming comprising the steps of:
- (a) generating a schematic of interconnected electrical graphics symbols on an electronic display screen, the graphic symbols having terminals representing points between which current flows, the terminals connected by lines representing wires, wherein each graphic symbol is associated with one of the modules, and wherein one such graphic symbol is connected to a power source symbol;
(b) isolating each given graphic symbol in the schematic to determine other graphic symbols that are its immediate upstream neighbors being other graphic symbols connected to the given graphic symbol by a line unbroken by any other graphic symbol and along a path of connections by lines and graphic symbols leading to the power source symbol;
(c) sending to each given module a connection list of the message identifiers of the modules corresponding to the immediate upstream neighbors of the graphic symbol associated with the given module; and
(d) causing the modules to respond selectively to messages from other modules having message identifiers on the module'"'"'s connection list, so as to define virtual connections between the modules.
1 Assignment
0 Petitions
Accused Products
Abstract
A highly distributed industrial control system employs a number of separate control modules communicating together on a shared communications medium. Each module emulates one or more basic electrical parts having electrical terminals, such as switches and relays, and transmits production messages indicating the state of the parts, such as conducting current or not. A connection list for each part in each control module defines message identifiers of other parts whose production messages are received by the control module and interpreted as current flow to one or more of its parts. The control system is programmed by generating a schematic on a programming terminal showing connections of terminals on symbols of the parts such as would represent actual wiring of the emulated parts. This schematic is analyzed to determine the immediate upstream neighbors of each part and the message identifiers of those parts in the control modules form the connection lists. In this way the program is divided to run concurrently on the various modules.
-
Citations
21 Claims
-
1. A method of programming a highly distributed industrial controller comprised of a plurality of modules communicating along a shared communications medium, the modules having message identifiers and output values and communicating the output values, identified by the message identifiers of the module, via messages on the communications medium, the method of programming comprising the steps of:
-
(a) generating a schematic of interconnected electrical graphics symbols on an electronic display screen, the graphic symbols having terminals representing points between which current flows, the terminals connected by lines representing wires, wherein each graphic symbol is associated with one of the modules, and wherein one such graphic symbol is connected to a power source symbol; (b) isolating each given graphic symbol in the schematic to determine other graphic symbols that are its immediate upstream neighbors being other graphic symbols connected to the given graphic symbol by a line unbroken by any other graphic symbol and along a path of connections by lines and graphic symbols leading to the power source symbol; (c) sending to each given module a connection list of the message identifiers of the modules corresponding to the immediate upstream neighbors of the graphic symbol associated with the given module; and (d) causing the modules to respond selectively to messages from other modules having message identifiers on the module'"'"'s connection list, so as to define virtual connections between the modules. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of programming a highly distributed industrial controller comprised of a plurality of virtually connected modules communicating through a shared communications medium, the modules having message identifiers and communicating among each other via messages, the messages indicating the message identifier of a module transmitting a message, each module further including a connection memory for storing a neighbor message identifier of at least one other module to which the module may be virtually connected, the method of programming comprising the steps of:
-
(a) displaying on a screen of a computer an icon representing at least one part of each module as a standard electrical graphic symbol having at least two terminals between which electricity could be conducted in a physical device corresponding to the electrical graphic symbol; (b) entering command to the computer to connect together at least two terminals of different icons; (c) generating a line on the electronic display screen between the two terminals; and (d) programming the connection memory of a first module, corresponding to one of the two different icons, with the message identifier of a second module, corresponding to the other of the two different icons, according to the line connecting the two terminals so as to virtually connect the modules. - View Dependent Claims (9)
-
-
10. A method of producing a highly distributed industrial control including physically distinct control modules emulating electrical switches, lamps, and actuators, the emulated devices having terminals between which electrical current may flow, each module communicating with the other modules on a shared communications medium via messages indicating an message identifier of a transmitting module, the method comprising the steps of:
-
(a) preparing a schematic showing the interconnection of the emulated devices, by their terminals, between the group consisting of a power source, a power return and the terminals of other modules; (b) for each given module, generating an upstream list of the message identifiers of those modules directly connected to the given module toward the power source; (c) for each given module, generating a downstream list of the message identifiers of those modules directly connected to the given module toward the power return; (d) loading the upstream and downstream message identifiers for the given modules into the given modules; (e) sending a repair message from a new module that does not have loaded upstream or downstream message identifiers; (f) causing those modules which have been loaded with upstream or downstream message identifiers and which have the message identifier of the new module in their lists of upstream or downstream message identifiers, to communicate their message identifiers to the new module; (g) using the communicated message identifiers to load the new module with upstream and downstream message identifiers; whereby the replaced module may reconnect itself to the other modules according to the schematic without further programming instructions.
-
-
11. A switch module to be virtually connected with selected other modules along a shared communications medium to form a highly distributed industrial control system, the modules having message identifiers and communicating among each other via messages, each message indicating the message identifier of the module transmitting the message, the switch module comprising:
-
a movable operator for being physically positioned in an open or closed state; an input memory holding a present input value of a virtual input terminal of the switch module, the input value being either a energized value indicating a connection of the virtual input terminal to a virtual source of current or a de-energized value indicating the lack of connection of the virtual input terminal to a virtual source of current; output memory for storing an output value of a virtual output terminal of the switch module, the output value being either an energized value indicating that the output terminal is a source of virtual current or a de-energized value indicating the output terminal is not a source of virtual current; a connection memory for storing a neighbor message identifier of at least one other module to which the switch module may be virtually connected; receiving means communicating with the input memory for receiving from the shared communications medium first messages, having message identifiers corresponding to the predetermined neighbor message identifier, and changing the input value of the switch between energized and de-energized depending on the received messages; logic means communicating with the movable operator, the input memory and the output memory for changing the output value to de-energized when the operator is in the open state and otherwise when the operator is in the closed state changing the output value to energized only if the input value is energized; a message identifier selection means for providing a predetermined module message identifier for the switch; and transmitting means communicating with the message identifier section means, the output memory and the input memory for transmitting a message on the shared communications medium indicating the predetermined message identifier and the output value of the output terminal. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A module module that may be virtually connected with selected other modules along a shared communications medium to form a highly distributed industrial control system, the modules having message identifiers and communicating among each other via messages, the messages indicating the message identifiers of the module transmitting the message, the module comprising:
-
a connection memory for storing a neighbor message identifier of at least one other module to which the module may be virtually connected; an input memory holding a present input value of the module; receiving means communicating with the input memory for receiving from the shared communications medium first messages, having message identifiers corresponding to the predetermined neighbor message identifier, and changing the input value of the module depending on the received messages; an actuator for controlling an external physical device at a response rate limited by an actuation period; output memory for storing an output value of the module; logic means communicating with the actuator, the input memory and the output memory for changing the output value depending on the input value and the state of the external physical device; an message identifier selection means for providing a predetermined module message identifier for the module; and transmitting means communicating with the message identifier section means, the output memory and the input memory for transmitting a first message on the shared communications medium indicating the predetermined message identifier and a change in the output value of the module if the input value does not change during the actuation period and a second message on the communication communications medium if the input value does change during the actuation period; whereby failures of the control system caused by too rapid a rate of change in the input value of the module may be detected.
-
-
18. A switch module that may be virtually connected with selected other modules along a shared communications medium to form a highly distributed industrial control system, the modules having message identifiers and communicating among each other via messages, the messages indicating the message identifiers of the module transmitting the message, the switch module comprising:
-
a connection memory for storing an upstream neighbor message identifier of at least one first other module to which the module may be virtually connected and a downstream neighbor message identifier of at least one second other module which may be virtually connected to the module; an input memory holding a present input value of the module; receiving means communicating with the input memory for receiving from the shared communications medium control messages, having message identifiers corresponding to the upstream neighbor message identifier, and changing the input value of the module depending on the received messages, and receiving from the shared communications medium first repair messages, having message identifiers corresponding to the upstream neighbor message identifier to indicate an upstream network repair, and receiving from the shared communications medium second repair messages, having message identifiers corresponding to the downstream neighbor message identifier to indicate a downstream network repair; a movable operator for being physically positioned in one of at least a first and second state; output memory for storing an output value of the module; logic means communicating with the movable operator, the input memory and the output memory for changing the output value depending on the input value and the state of the movable operator; a message identifier selection means for providing a predetermined module message identifier for the module; and transmitting means communicating with the message identifier section means, the output memory and the input memory for transmitting a control message on the shared communications medium indicating the predetermined message identifier and a change in the output value of the module and transmitting a downstream repair message on the shared communications medium indicating the predetermined message identifier and the downstream message identifiers upon receipt of the second repair signal and transmitting a downstream repair message on the shared communications medium indicating the predetermined message identifier and the downstream message identifiers upon receipt of the second repair signal; whereby a new module may reconnect itself into the highly distributed network without reprogramming of the network.
-
-
19. A switch module that may be virtually connected with selected other modules along a shared communications medium to form a highly distributed industrial control system, the modules having message identifiers and communicating among each other via messages, the messages indicating the message identifiers of the module transmitting the message, the switch module comprising:
-
a connection memory for storing an upstream neighbor message identifier of at least one first other module to which the module may be virtually connected and a downstream neighbor message identifier of at least one second other module which may be virtually connected to the module; a detection means for determining if there are no upstream or downstream message identifiers in the connection memory to produce a repair request signal; an input memory holding a present input value of the module; receiving means communicating with the input memory for receiving from the shared communications medium first messages, having message identifiers corresponding to the upstream neighbor message identifier, and changing the input value of the module depending on the received messages, and receiving from the shared communications medium second messages, having message identifiers corresponding to the downstream neighbor message identifier to indicate a network repair; a movable operator for being physically positioned in one of at least a first and second states; output memory for storing an output value of the module; logic means communicating with the movable operator, the input memory and the output memory for changing the output value depending on the input value and the state of the movable operator; a message identifier selection means for providing a predetermined module message identifier for the module; transmitting means communicating with the message identifier section means, the output memory and the input memory for transmitting a control message on the shared communications medium indicating the predetermined message identifier and a change in the output value of the module and transmitting the repair request signal on the shared communications medium in response to the detection means; whereby the module may indicate that it is a repair module for receiving connection message identifiers from adjacent modules.
-
-
20. A programming terminal for a highly distributed industrial control network comprised of a plurality of modules virtually connected with other modules along a shared communications medium, the modules having message identifiers and communicating among each other via messages, the messages indicating the message identifier of the module transmitting the message, each module having at least one input and output terminal and a logic means for changing the output value depending on the input value to define the function of the module, the programing terminal comprising
an icon memory for storing a library of pictorial symbols indicating a plurality of functions; - receiving means for receiving from the shared communications medium first messages from each module identifying one of the library of icons representing the function of the module; and
a display screen for displaying the identified icons of the modules. - View Dependent Claims (21)
- receiving means for receiving from the shared communications medium first messages from each module identifying one of the library of icons representing the function of the module; and
Specification