1. Field of the Invention
Apparatuses and methods consistent with the present invention relate to providing automatic maintenance for sensor and control systems.
2. Description of the Related Art
In modern manufacturing facilities, automated processes are often controlled by low-level automation and process control and monitoring systems. Low-level automation systems may include dedicated robotic devices or other automated systems controlled or monitored by programmable logic controllers (PLCs). Various sensing devices and instrumentation may be used to monitor such processes, such as machine vision systems, barcode readers, or temperature sensors.
Often, a controller unit such as a PLC will fail or encounter problems, requiring an employee to replace the unit on the factory floor. In existing and previous systems, upon replacing the unit, an employee would be required to manually re-install the particular program software and related information required for the failed unit. In existing systems, such program information has been manually tracked by employees and manually re-installed, requiring costly human intervention and time. This manual process also is responsible for significant delays in restarting the assembly line, and for frequent human error in installing incorrect program information in a replacement unit. Furthermore, the latest version of the required program information is often not available, as back-ups are performed manually.
Existing and previous systems also require proprietary software applications, reducing the flexibility of these systems. Furthermore, network failures or failures of high-level management workstations in existing systems cause difficulties for performing a re-installation of the required program information.
Exemplary embodiments of the present invention address at least the above problems and/or disadvantages and other disadvantages not described above. Also, the present invention is not required to overcome the disadvantages described above, and an exemplary embodiment of the present invention may not overcome any of the problems listed above.
Accordingly to an exemplary embodiment, a maintenance controller operatively connected to a plurality of programmable logic controllers through a network is provided. The maintenance controller comprises a first controller; and a network interface module, wherein the maintenance controller is operatively connected to the network through the network interface module, the maintenance controller is operable to run a procedure for automatically requesting one of timestamp information and project information stored in each of the programmable logic controllers, from each of the plurality of programmable logic controllers, the maintenance controller is operable to receive and process a response from each of the plurality of programmable logic controllers, the response sent by the plurality of programmable logic controllers in response to the requesting by the maintenance controller, the maintenance controller is operable to automatically determine whether project information is stored in each of the plurality of programmable logic controllers based on the response from the plurality of programmable logic controllers, and the maintenance controlled is operable to automatically write previously stored project information to a first programmable logic controller from among the plurality of programmable logic controllers, if it is determined that the first programmable logic controller has no project information stored therein.
According to another exemplary embodiment, a method of monitoring the operation of a plurality of programmable logic controllers by a maintenance controller is provided. The method comprises automatically requesting one of timestamp information and project information stored in each of the plurality of programmable logic controllers, from each of the plurality of programmable logic controllers; receiving and processing a response from each of the plurality of programmable logic controllers, the response sent by the plurality of programmable logic controllers in response to the requesting; determining whether project information is stored in each of the plurality of programmable logic controllers based on the response from the plurality of programmable logic controllers; and automatically writing previously stored project information to a first programmable logic controller from among the plurality of programmable logic controllers, if it is determined that the first programmable logic controller has no project information stored therein.
According to another exemplary embodiment, a system including a plurality of programmable controllers and the maintenance controller is provided.
Due to the above-described features, employees on a manufacturing assembly line may easily swap out one controller device for another, as they are freed from having to manually set up the new controller device and its operating software. In this manner, an employee replacing a unit is also prevented from installing incorrect versions of program information.
The described features also reduce the work required of an assembly line supervisor, and reduce down-time due to swapping out malfunctioning controller devices, thereby increasing total system up-time.
When an employee replaces a unit, the system will also detect whether a different type of controller has been installed, and if so, issue a warning notification.
Finally, even in the event of the database, message queue, or network failure, the system does not interfere with replacement of the unit by an employee.
The above and/or other aspects of the present invention will be made more apparent by describing certain exemplary embodiments of the present invention with reference to the accompanying drawings, in which:
a illustrates an example of project information.
b illustrates an exemplary data structure stored in the database.
a and 5b illustrate an exemplary method for checking a status of the programmable logic controllers.
Certain exemplary embodiments of the present invention will now be described in greater detail with reference to the accompanying drawings.
In the following description, like drawing reference numerals are used for like elements, even in different drawings. The matters defined in the description, such as detailed construction and elements, are provided to assist in a comprehensive understanding of the invention. However, the present invention can be practiced without those specifically defined matters. Also, well-known functions or constructions are not described in detail since they would obscure the invention with unnecessary detail.
The PLC 100 further includes a network interface module 104 through which the PLC 100 may communicate to a network. The network interface module 104 may include a network interface card coupled to a data bus. The network interface module 104 provides a two-way data communication coupling to a network link that may be connected to a local network. For example, 104 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, 104 may be a local area network interface card (LAN NIC) to provide a data communication connection to a compatible LAN. Wireless links, such as well-known 802.11a, 802.11b, 802.11g and Bluetooth may also be used for network implementation. In any such implementation, the network interface module 104 sends and receives electrical, electromagnetic or optical signals that carry digital/analog data streams representing various types of information.
The PLC 100 further includes a backplane 101 through which the different modules are connected and communicate with each other. It will be obvious to one of ordinary skill in the art that a plurality of controllers 103 may be mounted on a single backplane 101 and that the complete PLC 100 may be powered by a single power module 102.
a illustrates exemplary project information stored in the database (DB) 205 and the MC 204. A project 300 may include different components such as a name 301 of the controller corresponding to the project 300. The name 301 may include further information such as a user name of the corresponding controller. The user name may be provided by the operator/user of the system. As an example, the user name of the controller in PLC 201 may be controller A as shown in
The project information may further include location information 302 on the location of the controller. The location information 302 may include information on a Location No. such a slot number (for example slot #0) of the controller A on the backplane of the PLC. The Location No. may also have an associated Location Name stored, for example a Location Name for the slot #0 may be “Slot Zero”. The location information 302 may further include a Network no. with which the PLCs are connected to the MC 204. The Network No. may be further identified by a Network Name. The location information 302 may further include a Station No. that identifies the particular backplane or network interface module of the PLC corresponding to the Name 301. The Station No. may further have a specific Station Name.
The project information further includes Data 303. The Data 303 may include program information 305 based on which the controller carries out its intended operation. The program information 305 may include a plurality of programs that include ladder logic code. The program information 305 may further include the different parameters and corresponding parameter names. Comments corresponding to the parameters may also be included.
The project information 300 may further include time information 304. Time information 304 may include a time stamp that may define the time at which the project information 300 was created and a time at which the project information 304 was downloaded to the PLC 201. The time stamp may be of the form “MM,DD,YYY,Time,Min,Sec”. Time in the time stamp may correspond to the hour, Min may correspond to the minute, and Sec may correspond to the second of the timestamp.
b illustrates a sample data structure 310 stored in the DB 205. The data structure 301 helps keep track of the latest project information stored in a specific controller. Projects may be differentiated by their respective timestamps. For example, 311 is a graphical illustration of the data stored for Controller A (PLC 201). The data 311 includes pointers to the different generations of project information for controller A. The fifth-generation (or the highest generation) for controller A's project should have the latest timestamp. A project's timestamp may change when a change is made to the project's content. Therefore, if a maintenance person installed an updated project (with one of the programs changed) in controller A, the timestamp of the project information stored in controller A will be different from an earlier time stamp of the previous project information. The updated project may be stored as the latest project generation in the DB 205, i.e., the latest project is stored as the 5th generation project in the DB 205. The data 311 may also have a heap area 320 to store the actual PLC project data, i.e., the plurality of programs, parameters, etc.
The MC 204 stores at least the latest project information for each of the PLCs (and each of its controllers if the PLC has more than one controller) that it is monitoring. The MC 204 may store the latest project information (for example, 5th generation) in internal storage 105.
Additionally, the validation flag may also be stored in the storage unit of PLCs. If the validation flag is stored in the storage unit of the PLCs and a PLC detects power failure, the power module of the PLC may send a power failure detection signal to the PLC (PLC controller) so that the PLC switches the flag to an “OFF”. When MC 204 needs to check whether any project information is incomplete, MC 204 may query the value of validation flags to each PLC via network so that MC 204 can determine if there are any PLCs with incomplete project information. The validation flags may be set to “ON” once the backup of project information finishes successfully.
Once the MC 204 determines that a particular PLC has incomplete project information stored in the database, the MC 204 reads project information from the particular PLC first. Assuming that a validation flag is “OFF” for controller A in PLC 201, the remaining process of
If the MC 204 determines in S403 that the project information is indeed stored in controller A (this determination can be made by checking whether a time stamp is received from the controller A or if the MC 204 receives actual project information stored in the controller A), the MC 204 checks (S404) if its internal storage 105 and the DB 205 include any project information for the particular controller A. This step may be carried out by looking for the location information sent by the controller A in the internal storage 205 and/or in the DB 205. S404 may also be carried out by searching for the name information 301 sent by the controller A, in the internal storage 205 and/or in the DB 205.
If it is determined in S404 that the project data is stored in the internal storage and the DB 205, then time stamp of the latest generation of project data stored in the MC 204 and the DB 205 is checked for controller A (S505). If the time stamp information received from controller A is newer than the time stamp information currently stored in the DB 205 and MC 204, the project information is read from the controller A (assuming that controller A did not send the project information in the first place and only sent the time stamp information) and stored in the DB 205 and the MC 204 in S406. As the MC 204 may only store the latest project information in its internal storage 105, the MC 204 may replace the old project information for controller A with the latest project information of controller A in its internal storage 201. Furthermore, the DB 205 may update (S407) its listing of the project generation information if a newer project is found in controller A, i.e., the first generation may be discarded and the second generation will become the first generation and so on.
If in S404 it is determined that controller A includes project information and the DB 205 and MC 204 do not include any project information for controller A, the process proceeds directly to S406 in which the project information read from the controller A is written to the DB 205 and MC 204. Such an exemplary case may occur when a new controller (PLC 201) is installed and it has a project already loaded on it. Such a case may also occur if the project information stored in the controller A has been updated on the factory floor.
Furthermore, if it is determined that in S405 the time stamp received from the controller A is not newer than the time stamp currently stored in MC 204, the MC 204 discards (S408) the read project information or may not read the project information from controller A.
Going back to S403, if the MC 204 determines that no project information is stored in controller A (for example, no time stamp may be received from the controller A), the MC 204 checks (S409) whether any project information is stored in the MC 204 for controller A. This checking may be performed by searching for project information stored in the MC 204 internal storage 105 for the location information received from controller A. If in S409, it is determined that no project data is stored in the MC 204 for the location information corresponding to controller A, the Administrator 206 is informed in S410 that a new controller has been installed and no project information exists for it in the DB 205/MC 204. The DB 205 and MC 204 may be synchronized such that changes to the latest generation of project information stored in the DB 205 are automatically reflected in the project information stored in MC 204. Therefore, the MC 204 may not need to check the project information in DB 205 if no project information is found in the MC 204.
However, if it is determined in S409 that there is project information stored in the MC 204 (and therefore, in the DB 205) for the location corresponding to controller A, it is next checked whether network and DB access are good. If the network access to the DB is not good, the MC 204 reads (S412) the latest project information from its internal storage 105 and writes the project information read to controller A. If the network access to the DB 205 is determined to be good in S411, the project information is read from DB 205 (S413) and written to controller A (S414). Alternatively, the MC 204 may completely skip S411 and directly go through S412 and S414 after it is determined in S409 that the MC 204 has project information stored for controller A.
The steps 409 through S414 illustrate an automatic checking and project information writing process through which the latest project information is written to a controller. Such a scenario may occur when a PLC/controller failure occurs and the PLC/controller is replaced by a new PLC/controller that does not have any project information. As mentioned above, the location information is communicated to the MC 204 by the controller A in response to the request in S401. When a controller is new and no project information is stored on it, the location information may still be sent to the MC 204 as the location information may be stored in a separate register or some other hardware device in the PLC 201/controller A. For example, the network interface module may have a specific address which may correspond to the location information of the controller A.
The above procedure of
a and 5b illustrate an exemplary embodiment for checking a status of the PLCs 201, 202, and 203. The MC 204 is responsible for checking the status of the PLCs. The MC 204 may run a program at a preset time through which the status check is performed. The MC 204 may be configured to run the status check program automatically at a preset time every day or it may be manually controlled by an administrator either through the network or manually to run the status check program. The maintenance controller (MC) selects a first PLC (for example 201) to check the status. The maintenance controller may check the status of each of the PLCs at the same time or it may check the status of each of them sequentially.
Assuming that the MC 204 is checking the status of PLC 201, the first step S501 may be to send a status request command to the PLC 201 (more specifically to a controller A in the PLC 201). In S502, the MC 204 may start a preset timer in response to sending the status request command. The status request command may be sent through the network. In response to the status request command, the PLC 201 may send a status response or may not send a status response. The PLC 201 may send a status response by checking an internal register that is set by its controller depending on a variety of conditions. In S503, it is determined whether a status response was received by the MC 204. If a response was received from the PLC 201, it is checked in S504 whether the status response indicated a good condition or a bad condition (serious/minor). If the response was good, then in S505 the MC 204 stops the status check or checks the status of another PLC. The MC 204 may also record the status response in its database for the specific PLC whose status was checked. In S506, it is determined whether the status response was bad and if bad was it minor or serious. In both cases an administrator 206 is informed in S507.
However, if a status response is not received from the PLC 201, then the MC 204 waits for a predetermined time and checks whether the timer timed out in S508. If the timer did not time out, then the MC 204 waits for the status response from the PLC 201. If the timer has timed out and the status response has yet been received, the MC 204 updates a retry sending counter in S509. The retry sending counter is a counter that keeps track of the number of times the MC 204 may reset the timer and try the status request check again for the PLC 201. For example, the MC 204 may try the status check process illustrated in
The above process of
Next, an exemplary process of reading and checking a controller type is illustrated with reference to
The above process is useful because the MC 204 may quickly determine that an incorrect controller not suitable for operation of a particular PLC has been installed.
Furthermore, in the exemplary embodiments described above, the maintenance controller may be configured to control a resetting or restarting of the PLC controllers remotely. Such an action may be accomplished by the MC sending a remote run request to the controllers in the PLCs. Furthermore, the MC 204 may keep an action log of the operations of the PLC.
Exemplary embodiments described above have the following salient features. During normal operation, backups of data necessary for operation of the controller can be performed at a timing specified by a user. The backup data may be stored in a database for easy retrieval later. If a failure occurs in the controller and there is a need for replacement of the controller, the backup data may be quickly written to the new controller without manual intervention.
The present disclosure may simplify the unit replacement operation for operators at production sites. Further, it may reduce the work of supervisors at production sites. It may also reduce down-time due to unit replacement and increase system up-time. If controller failure occurs and the situation requires replacement of H/W, site operators can restart the system in a short time simply by installing a new controller in the system. Further, the present disclosure may alleviate the need to operate a personal computer or install a backup memory card just to download the control program to the controller. When the PLC/controller is rebooted after controller replacement, the maintenance controller checks the status of the controller, the optimal (newest) control program for that controller is retrieved from the memory space managed by the maintenance controller and downloaded to the controller, and the controller is reset and placed into operation. Another advantage is that an on-site operator is freed from the trouble of confirming the combination of controller and control program during the unit replacement operation. This may eliminate mistaken download of a different control program by the on-site operator during the unit replacement operation.
If by chance, the on-site operator mistakenly installs a different controller in the system during the unit replacement operation, that fact is detected and a warning is issued.
The unit replacement operation by the on-site operator is not hindered if the higher level DB or message queue is not operational for some reason.
Furthermore, each of the processes described in
The foregoing exemplary embodiments are merely exemplary and are not to be construed as limiting the present invention. The present teaching can be readily applied to other types of apparatuses. Also, the description of the exemplary embodiments of the present invention is intended to be illustrative, and not to limit the scope of the claims, and many alternatives, modifications, and variations will be apparent to those skilled in the art.