Equipment, software switching program, and software switching method
Patent Information
- Application Number
- JP2023122338
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-07-27
- Publication Date
- 2026-09-08
- Estimated Expiration
- 2043-07-27
AI Technical Summary
【0009】 本発明によれば、機器を再起動することなくソフトウェアを切り替えることができる。
Smart Images

Figure 0007916842000001 
Figure 0007916842000002 
Figure 0007916842000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to an apparatus, a software switching program, and a software switching method, and for example, relates to an apparatus, a software switching program, and a software switching method that can be used for collecting process data. [Background Art]
[0002] As disclosed in Patent Document 1, it is known that software updating is performed after installation in apparatuses such as field devices. [Prior Art Literature] [Patent Literature]
[0003] [Patent Document 1] Japanese Patent Laid-Open No. 2004-295299 [Summary of the Invention] [Problem to be Solved by the Invention]
[0004] In software updating, the software is switched to new software. If the apparatus is restarted at that time, there arises a problem that the apparatus cannot be used during the restart.
[0005] According to one aspect of the present disclosure, software is switched without restarting the apparatus. [Means for Solving the Problem]
[0006] The device relating to one aspect of this disclosure includes hardware configured to transmit process data to a higher-level system, a storage unit that stores first software that operates to cause the hardware to transmit process data to a higher-level system, and second software that operates to cause the hardware to transmit process data to a higher-level system, and a switching unit that switches the currently running software from the first software to the second software, wherein the switching unit switches the currently running software from the first software to the second software after a predetermined process based on the second software has been executed while the first software is running.
[0007] A software switching program relating to one aspect of this disclosure is a software switching program for a device comprising: hardware configured to transmit process data to a higher-level system; a storage unit that stores first software that operates to cause the hardware to transmit process data to a higher-level system; and second software that operates to cause the hardware to transmit process data to a higher-level system, wherein the program causes a processor to execute a process to switch the currently running software from the first software to the second software, the switching process being performed after a predetermined process based on the second software has been executed while the first software is running.
[0008] A software switching method relating to one aspect of this disclosure is a device comprising: hardware configured to transmit process data to a higher-level system; a storage unit that stores first software that operates to cause the hardware to transmit process data to a higher-level system; and second software that operates to cause the hardware to transmit process data to a higher-level system, the software switching method comprising the step of switching the currently running software from the first software to the second software, wherein the switching step involves switching the currently running software from the first software to the second software after a predetermined process based on the second software is executed while the first software is running. [Effects of the Invention]
[0009] According to the present invention, software can be switched without restarting the device. [Brief explanation of the drawing]
[0010] [Figure 1] This figure shows an example of a schematic configuration of a system 100 including equipment 1 according to the embodiment. [Figure 2] This diagram shows an example of the basic configuration of the software. [Figure 3] This figure shows an example of database 51. [Figure 4] This figure shows an example of database 52. [Figure 5] This diagram shows an example of the process (software switching method) performed in device 1. [Figure 6] This figure shows an example of a process (software switching method) executed in system 100. [Figure 7] This figure shows an example of a process (software switching method) executed in system 100. [Figure 8] This figure shows an example of a process (software switching method) executed in system 100. [Figure 9]This figure shows an example of a hardware configuration. [Modes for carrying out the invention]
[0011] The embodiments will be described below with reference to the drawings. The same elements will be denoted by the same reference numerals, and redundant descriptions will be omitted as appropriate.
[0012] <Embodiment> Figure 1 shows an example of a schematic configuration of a system 100 including equipment 1 according to an embodiment. System 100 includes equipment 1 and a higher-level system 7. Equipment 1 and the higher-level system 7 are connected to each other via a communication line L (online) so that they can communicate with each other. Equipment 1, for example, periodically generates process data or transmits process data to the higher-level system 7 in response to a request from the higher-level system 7. Note that equipment can also be called a device, apparatus, etc.
[0013] Process data is data related to a process. Examples of processes include processes in production plants such as chemical plants and power plants, and in such cases, process data may include various plant process data that can be obtained at the plant. Various other types of data besides plant process data can also be considered process data. Examples of other process data include data from monitoring processes, maintenance processes, and prediction processes. An example of a monitoring process is the monitoring process of social infrastructure such as bridges and tunnels. Unless otherwise specified, device 1 shall transmit plant process data to the higher-level system 7.
[0014] Figure 1 also illustrates the block configuration of device 1. Device 1 includes hardware 2, a storage unit 3, and a switching unit 6.
[0015] The hardware 2 is configured to transmit process data to the host system 7. The hardware 2 is configured to have desired functions, and includes, for example, a CPU (Central Processing Unit) such as an MCU (Micro Controller Unit), as well as components such as a memory used by the CPU and peripheral circuits. Examples of the functions include an arithmetic function for generating process data, a communication function with the host system 7, and the like.
[0016] For example, the hardware 2 includes an arithmetic unit or the like that acquires sensor values from sensors installed in a plant and converts the sensor values into measured values. Examples of the sensors include a pressure sensor, a temperature sensor, a flow rate sensor and the like. The sensor values are voltage values, current values and the like indicating physical quantities for measurement purposes (pressure, temperature, flow rate, etc.). The measured values indicate the values of the physical quantities for measurement purposes themselves.
[0017] The storage unit 3 stores information used in the device 1. Examples of the information stored in the storage unit 3 include software 41, software 42, database 51 and database 52. It should be noted that software can also be referred to as programs, program data, and the like.
[0018] The software 41 is first software that operates to cause the hardware 2 to transmit process data to the host system 7. The software 41 generates process data during operation. As described above, when the hardware 2 has an arithmetic function for generating process data, the process data is generated through cooperation between the software 41 and the hardware 2.
[0019] At any timing, the controller 71 of the host system 7 transmits a request to the device 1. This request is also referred to as a communication request. The communication request includes a process data transmission request. The software 41 transmits the process data to the controller 71 in response to the communication request from the controller 71 (causes the hardware 2 to transmit the data). This transmission in response to the communication request is also referred to as a communication response.
[0020] Software 42 is a second piece of software that operates to cause hardware 2 to send process data to the upper system 7. Similar to software 41, while in operation, software 42 generates process data and sends communication responses to communication requests from controller 71.
[0021] For example, software 42 is a newer version of software 41 and is intended to replace software 41. Software 42 can also be called software with additional functions for software 41.
[0022] The software 42 does not necessarily need to be stored in the memory unit 3 initially. For example, while the software 41 is running, the maintenance station 72 transmits the software 42 to the device 1, and as a result, the software 42 is stored in the memory unit 3.
[0023] Figure 2 shows an example of the basic configuration of the software. As shown in Figure 2(A), the software 41 includes an application 411, an OS (Operating System) 412, and a driver 413. The application 411 is an application program designed to implement the functions of device 1 and runs on the OS 412. The driver 413 provides interaction between hardware 2 and the OS 412, enabling, for example, access from the application 411 running on the OS 412 to hardware 2.
[0024] Software 42 has a similar configuration to software 41. That is, as shown in Figure 2(B), software 42 includes application 421, OS 422, and driver 423. These elements are described in the same way as the corresponding parts of software 41.
[0025] More specifically, access from software 41 and software 42 to hardware 2 is performed via the switching unit 6 (Figure 1), and the details thereof will be described later.
[0026] Returning to Figure 1, database 51 is the first database referenced by software 41. While running, software 41 can access database 51 and perform actions such as adding data to database 51, updating data within database 51, and deleting data within database 51. Database 51 will be explained further with reference to Figure 3.
[0027] Figure 3 shows an example of database 51. Communication control data and process data are exemplified as data in database 51. Communication control data is data related to the control of communication between hardware 2 and the higher-level system 7, and includes, for example, data such as settings to enable hardware 2 to communicate with the higher-level system 7. Process data is as described above. The process data stored in database 51 may be process data that has not yet been sent to the higher-level system 7 (unsent process data) or process data that has already been sent.
[0028] Returning to Figure 1, database 52 is the second database referenced by software 42. Similar to software 41 and database 51 described earlier, running software 42 can access database 52 and perform operations such as adding, updating, and deleting data. Database 52 will be explained with reference to Figure 4.
[0029] Figure 4 shows an example of database 52. Database 52 includes a compatibility area 521 and an extension area 522. The compatibility area 521 is an area for ensuring compatibility between software 42 and software 41. The data in the compatibility area 521 is the same as the data in database 51 (Figure 3), and this data is copied from database 51 as described later. The data in the extension area 522 is data for providing functions of software 42 that are not present in software 41 (functions extended from software 41).
[0030] Returning to Figure 1, the switching unit 6 mediates access from software 41 and software 42 to hardware 2, and controls software 41 and software 42. The control of software 41 and software 42 by the switching unit 6 includes starting those software programs, interrupting and resuming the processes they perform, etc. The functions of the switching unit 6 are implemented, for example, by a program at a lower level than the programs of software 41 and software 42. The switching unit 6 can be described as an intermediate layer located between hardware 2 and software 41 and software 42.
[0031] The switching unit 6 switches the currently running software from software 41 to software 42. Software switching can also be called a switchover or software update. In conventional technology, it was necessary to restart the device 1 when switching software, and therefore, problems arose such as the inability to send process data from the device 1 to the higher-level system 7 during that time. To address this problem, in this embodiment, under the control of the switching unit 6, the currently running software is switched from software 41 to software 42 without restarting the device 1. This will be explained with reference to Figure 5.
[0032] Figure 5 shows an example of the process (software switching method) performed in device 1. Initially, it is assumed that software 41 is running in device 1, and software 42 has not yet been stored in storage unit 3.
[0033] In step F1, software 41 is running. For example, software 41 periodically generates process data and, in response to a communication request from controller 71, sends a communication response containing process data to controller 71. The period for generating process data may differ from the period for sending communication responses. The process for generating process data is also called periodic processing. Software 41 may notify switching unit 6 each time it completes periodic processing.
[0034] At any point while software 41 is running, the maintenance station 72 transmits software 42 (or its program data) to device 1. Device 1 receives software 42 from the maintenance station 72. Software 41 remains running during the following steps F2 to F13.
[0035] In step F2, it is determined whether or not software 42 has been received (step F2). This determination is made, for example, by the switching unit 6 or software 41. If software 42 has been received (step F2: Yes), the process proceeds to step F3. Otherwise (step F2: No), the process returns to step F1, and steps F1 and F2 are repeated until software 42 is received.
[0036] In step F3, software 41 stores the software 42 received in the previous step F2 in the storage unit 3.
[0037] In step F4, the switching unit 6 starts the software 42.
[0038] In step F5, a predetermined process based on software 42 is initiated. This predetermined process is executed by software 42 after startup and is necessary, for example, to enable software 42, after startup, to generate process data in cooperation with hardware 2 and to transmit process data to the upper system 7.
[0039] An example of a predetermined process is an initialization process in software 42 to initialize hardware 2. For example, the initialization process sets hardware 2 to a state where it can communicate with the higher-level system 7. The data related to this setting may correspond to the communication control data (Figure 3) mentioned earlier. Unless otherwise specified, the predetermined process is assumed to be an initialization process. Within the bounds of consistency, the predetermined process and the initialization process may be interpreted as appropriate.
[0040] The initialization process for hardware 2 described above is already completed while software 41 is running, and therefore, there is no need to actually perform such a process again after software 42 is started. For this reason, the actual initialization process for hardware 2 can be omitted by emulation, as described later.
[0041] In steps F6 to F11, the switching unit 6 controls software 41 and software 42 so that software 41 operates as before, while predetermined processing in software 42 is completed.
[0042] In step F6, the switching unit 6 determines whether or not an interrupt has occurred from hardware 2. The interrupt may be an interrupt generated by hardware 2 in response to a communication request from controller 71 (communication interrupt), or it may be a separate interrupt generated by hardware 2 (internal interrupt). If an interrupt occurs (step F6: Yes), processing proceeds in the order of steps F7 to F9. Otherwise (step F6: No), processing in steps F7 and F8 is skipped, and processing proceeds to step F9.
[0043] In step F7, the switching unit 6 interrupts the predetermined processing in software 42 and causes software 41 to process the interrupt. Software 41 can then process the interrupt as before. Once software 41 has finished processing the interrupt, the process proceeds to step F8.
[0044] In step F8, the switching unit 6 instructs the software 42 to resume the predetermined processing. In this way, the predetermined processing can proceed while avoiding the effects of interrupts. Once the predetermined processing is completed, the software 42 notifies the switching unit 6 of this fact; otherwise, it does not send such a notification.
[0045] In step F9, the switching unit 6 determines whether or not there is access from the software 42 to the hardware 2. Access here refers to hardware access performed by the software 42 while executing a predetermined process, and includes read access and write access. A read access is, for example, an access to read (read) values related to the settings of hardware 2. A write access is, for example, an access to write values related to the settings of hardware 2 to hardware 2. If there is hardware access (step F9: Yes), processing proceeds in the order of step F10 and step F11. Otherwise (step F9: No), processing in step F10 is skipped, and processing proceeds to step F11.
[0046] In step F10, the switching unit 6 responds to hardware access from software 42 on behalf of hardware 2. It can be said that the switching unit 6 emulates hardware 2. This emulation prevents the impact on the operation of software 41 that may occur if software 42 actually accesses hardware 2.
[0047] The above response from the switching unit 6 may be such that no error occurs in the predetermined processing in the software 42. Specifically, the switching unit 6 emulates the typical normal behavior of hardware 2 so that software 42 does not enter an error sequence, and returns to software 42 the response that software 42 expects from hardware 2. From the perspective of software 42, it appears as if the accessed hardware 2 is operating normally, and the predetermined processing can proceed without error. The switching unit 6 that performs such emulation is designed to operate according to the sequence of predetermined processing (e.g., initialization sequence) based on, for example, the interface (I / F) specifications and initialization procedures of both software 42 and hardware 2. As an example, if software 42 expects the value of register #2 to change as a result of writing to register #1 of hardware 2, the switching unit 6 returns an acknowledgment to the write access (write request) to register #1. The acknowledgment may be a response indicating that the write was successful. Furthermore, in response to a read access (read request) to register #2, the switching unit 6 returns the value of register #2 corresponding to the write to register #1 to the software 42.
[0048] In step F11, the switching unit 6 determines whether the periodic processing by software 41 and the predetermined processing in software 42 have been completed. The completion of the periodic processing is determined when software 41 notifies the switching unit 6 of this fact, as described above. The completion of the predetermined processing is notified to the switching unit 6 from software 42, as described above. If the switching unit 6 receives both notifications, it determines that the periodic processing and the predetermined processing have been completed. If the processing has been completed (step F11: Yes), the process proceeds to step F12. Otherwise (step F11: No), the process returns to step F6.
[0049] In step F12, the switching unit 6 determines whether the software switching conditions are met. For example, the maintenance station 72 of the higher-level system 7 sends a software switching instruction to the device 1 at any time. If the switching unit 6 has received the instruction from the maintenance station 72, it determines that the software switching conditions are met. Alternatively, the time, time zone, etc. for the software switching may be set in advance based on the instruction from the maintenance station 72, and the switching unit 6 may determine that the software switching conditions are met if such a time or time zone, etc., is present. If the software switching conditions are met (step F12: Yes), the process proceeds to step F13. Otherwise (step F12: No), the process returns to step F6.
[0050] In step F13, software 41 copies the data from database 51 to database 52. Communication control data and process data (Figure 3) in database 51 are copied to the compatibility area 521 (Figure 4) of database 52. It can also be said that the data in the compatibility area 521 of database 52 is made the same as (equalized) the data in database 51. This ensures compatibility between software 42 and software 41.
[0051] More specifically, by copying the communication control data in database 51 to database 52, the information necessary for device 1 to communicate with the higher-level system 7 can be transferred to database 52, which is referenced by software 42. Furthermore, by copying the process data in database 51 to database 52, the process data generated by software 41 up to that point can be transferred to database 52, which is referenced by software 42. In particular, by executing this process at the time when the periodic processing by software 41 is completed, process data, including the latest process data, can be transferred without any omissions.
[0052] In step F14, the switching unit 6 switches the currently running software from software 41 to software 42. From this point onward, the processing that was previously performed by software 41 is now performed by software 42.
[0053] In step F15, software 42 is running. For example, software 42 periodically generates process data and, in response to a communication request from the controller 71, sends a communication response containing process data to the controller 71.
[0054] According to the method described above, the running software can be switched from software 41 to software 42 without restarting device 1. Since device 1 does not need to be restarted, communication between the higher-level system 7 and device 1 can be maintained even during software switching. Therefore, problems such as the inability to send process data from device 1 to the higher-level system 7 do not occur.
[0055] If device 1 needs to be restarted, for example, the user would need to consider the possibility of device 1 or system 100 stopping due to the restart of device 1, and then switch the software at an appropriate time (for example, by operating the higher-level system 7 to instruct the switch). In this embodiment, the software can be switched at any time on device 1, so such user effort is eliminated.
[0056] For example, if device 1 transmits plant process data to a higher-level system 7, the software can be switched in parallel with plant operation (which can also be called running). This increases the flexibility of planning plant maintenance work, etc. Since there is no need to stop system 100, downtime for system 100 can be reduced or eliminated, leading to cost improvements.
[0057] Figures 6 to 8 show examples of processes (software switching methods) executed in system 100. Explanations of content that overlaps with previous explanations will be omitted as appropriate.
[0058] Figure 6 shows several processes corresponding to steps F1 to F3 of Figure 5 described earlier. The controller 71 sends a request (S1). This request is the communication request mentioned earlier and may include a request to send process data. In response to the request from the controller 71, an interrupt (communication interrupt) occurs in the hardware 2 (S2). The switching unit 6 causes the software 41 to process the interrupt (S3). The software 41 processes the interrupt and responds (S4). The response indicates that the interrupt processing is complete and also includes process data. The switching unit 6 mediates access from the software 41 to the hardware 2 (S5). The hardware 2 sends a response to the controller 71 (S6). The controller 71 receives the response (S7).
[0059] The maintenance station 72 transmits the software 42 (program data) to the device 1 (S8). The software 42 is transferred to the software 41 via the hardware 2 and the switching unit 6 (S9). The software 41 stores the software 42 in the storage unit 3 (S10) and notifies the switching unit 6 of its completion (S11). The switching unit 6 receives the completion notification from the software 41 (S12).
[0060] Figure 7 shows several processes corresponding to steps F4 to F11 in Figure 5, which were explained earlier. The switching unit 6 starts the software 42 (S13). The software 42 starts up and begins the initialization process (S14, S15).
[0061] The controller 71 also sends a request (S16). An interrupt (communication interrupt) occurs in hardware 2 (S17). The switching unit 6 causes software 42 to interrupt the initialization process and has software 41 process the interrupt (S18). Software 41 processes the interrupt and responds (S19). After that, software 41 enters an IdleTask state where it does not perform any processing and notifies the switching unit 6 of this fact and whether or not the periodic processing is complete (S19). In this example, the periodic processing is not yet complete.
[0062] The switching unit 6 mediates access from the software 41 to the hardware 2 and also prompts the software 42 to resume the initialization process (S20). Hardware 2 sends a response to the controller 71 (S21). The controller 71 receives the response (S22). Meanwhile, the software 42 resumes the initialization process (S23).
[0063] An interrupt (internal interrupt) occurs in hardware 2 (S24). The switching unit 6 instructs software 42 to interrupt the initialization process and software 41 to process the interrupt (S25). Software 41 processes the interrupt and responds (S26). Software 41 also enters the IdleTask state and notifies the switching unit 6 of this fact and whether or not the periodic processing is complete (S26). In this example, the periodic processing is not yet complete. The switching unit 6 instructs software 42 to resume the initialization process (S27).
[0064] Software 42 resumes the initialization process and requests hardware access (mediation of access to hardware 2) from the switching unit 6 (S28). The switching unit 6 responds to the hardware access from software 42 on behalf of hardware 2 (emulating hardware 2) (S29). Upon receiving this response, software 42 continues the initialization process and, once the initialization process is complete, notifies the switching unit 6 of this (S30). The switching unit 6 receives the completion notification from software 42 (S31).
[0065] An interrupt (internal interrupt) occurs in hardware 2 (S32). The switching unit 6 causes software 41 to process the interrupt (S33). Software 41 processes the interrupt and responds (S34). Software 41 also enters the IdleTask state and notifies the switching unit 6 of this fact and whether the periodic processing is complete or not (S34). In this example, the periodic processing is complete. The switching unit 6 receives notification of completion from software 42 (S35).
[0066] Figure 8 shows several processes corresponding to steps F12 to F15 in Figure 5, which were described earlier. The maintenance station 72 sends a software switching instruction to the device 1 (S36). The switching unit 6 receives the switching instruction from the maintenance station 72 (S37). The switching unit 6 copies the data from database 51 to database 52 (S38). The switching unit 6 switches the running software from software 41 to software 42 (S39). From this point onward, the switching unit 6 performs the operations that it previously performed on software 41 on software 42.
[0067] Controller 71 sends a request (S40). An interrupt (communication interrupt) occurs in hardware 2 (S41). Switching unit 6 directs the interrupt to software 42 for processing (S42). Software 42 processes the interrupt and responds (S43). Switching unit 6 mediates access from software 41 to hardware 2 (S44). Hardware 2 sends a response to controller 71 (S45). Controller 71 receives the response (S46).
[0068] For example, as shown in Figures 6 to 8 above, the operation of each element of system 100 allows the running software to be switched from software 41 to software 42 without restarting device 1.
[0069] <Modifications or applications> The disclosed technology is not limited to the embodiments described above. Several modifications or applications are described below.
[0070] System 100 may include multiple devices 1. By applying the technologies described above, it is possible to switch (update) the software of all devices 1 while keeping them running. For example, the software of all devices 1 can be switched at once based on a predetermined time, conditions, etc.
[0071] The following methods can be considered for specifying the time: For example, after a predetermined process based on software 42 is completed, the maintenance station 72 instructs each device 1 to switch the software. The software is switched sequentially, starting with the devices 1 that are in a state where software switching is possible, for example, the devices 1 in which software 42 is stored in the storage unit 3 and periodic processing has been completed. Alternatively, a timer is installed in device 1, and when the maintenance station 72 transmits software 42 to device 1, information specifying the software switching time is also transmitted. When the specified time arrives, device 1 switches the software.
[0072] As an example of horizontal deployment, an area where multiple devices 1 are installed may be divided according to the level of risk due to device 1 malfunction or other issues. The software of devices 1 may be switched sequentially, starting with those installed in the low-risk areas. Once the software switchover for all devices 1 in the same area is complete, the software of devices 1 in the high-risk areas should be switched over in stages. Even if any problems occur during the software switchover, these problems can be discovered and addressed during the software switchover stage for devices 1 in the low-risk areas.
[0073] <Example hardware configuration> Figure 9 shows an example of a hardware configuration. The device 1 described so far is composed of a computer 200 as illustrated. The hardware configuration of the computer 200 includes, as an example, a communication device 201, a display device 202, a storage device 203, memory 204, and a processor 205, all of which are interconnected by a bus or the like.
[0074] The communication device 201 is a network interface card or the like, enabling communication with other devices. The communication device 201 may correspond to hardware 2 of device 1. The display device 202 may also correspond to hardware 2.
[0075] Various types of data are stored in the storage device 203 and memory 204. Specific examples of the storage device 203 include HDD (Hard Disk Drive), ROM (Read Only Memory), RAM (Random Access Memory), etc. Memory 204 may be a part of the storage device 203. The storage device 203 may correspond to the storage unit 3 of device 1.
[0076] Program 203a is an example of data stored in the memory device 203. Program 203a is a program (software) that causes the computer 200 to function as device 1. An example of program 203a is the software 41 and software 42 described above, as well as a program that provides the functions of the switching unit 6 (which can also be called a software switching program), and causes the computer 200 to execute the processing performed by these.
[0077] The processor 205 performs various processes. For example, the processor 205 reads program 203a from the storage device 203 and loads it into memory 204, thereby causing the computer 200 to execute various processes performed in device 1. The processor 205 may correspond to hardware 2 of device 1.
[0078] Program 203a can be distributed together or separately via a network such as the Internet. Furthermore, Program 203a can be recorded together or separately on a computer-readable recording medium such as a hard disk, flexible disk (FD), CD-ROM, or DVD (Digital Versatile Disc), and executed by a computer 200 upon reading from the recording medium.
[0079] Furthermore, the controller 71 and the maintenance station 72 may also be configured to include a computer 200 as shown in the diagram.
[0080] The technologies described above can be identified, for example, as follows. One of the disclosed technologies is device 1. As explained with reference to Figures 1 to 8, device 1 comprises hardware 2 configured to transmit process data (e.g., plant process data) to a higher-level system 7, a storage unit 3 that stores software 41 (first software) that operates to cause hardware 2 to transmit process data to a higher-level system 7, and software 42 (second software) that operates to cause hardware 2 to transmit process data to a higher-level system 7, and a switching unit 6 that switches the currently running software from software 41 to software 42. The switching unit 6 switches the currently running software from software 41 to software 42 after a predetermined process based on software 42 (e.g., an initialization process for initializing hardware 2 in software 42) has been executed while software 41 is running (F11: Yes, F14, S30, S39). With such device 1, the software can be switched without restarting device 1.
[0081] As explained with reference to Figures 1, 5, and 8, the switching unit 6 may switch the currently running software from software 41 to software 42 in response to instructions from a higher-level system 7 (e.g., maintenance station 72) (F12: Yes, F14, S36, S39). This allows the software to be switched remotely (by remote operation) at a desired timing.
[0082] As explained with reference to Figures 1, 3 to 5, and 8, the storage unit 3 stores database 51 (first database) referenced by software 41 and database 52 (second database) referenced by software 42. The switching unit 6 copies the data from database 51 to database 52 and then switches the running software from software 41 to software 42 (F13, F14, S38, S39). This ensures compatibility between software 42 and software 41.
[0083] As explained with reference to Figures 1, 3, and 4, the data in database 51 that the switching unit 6 copies to database 52 may include data related to the control of communication between hardware 2 and a higher-level system 7 (e.g., controller 71) (communication control data). This allows the information necessary for device 1 to communicate with the higher-level system 7 to be transferred to database 52, which is referenced by software 42.
[0084] As explained with reference to Figures 1, 3, and 4, the operating software 41 generates process data, and the data in database 51 that the switching unit 6 copies to database 52 may include the process data generated by software 41. This allows the process data generated by software 41 up to that point to be passed on to database 52 referenced by software 42.
[0085] As explained with reference to Figures 1, 5, 7, and 8, the operating software 41 performs periodic processing including the generation of process data (S19, S26, S34), and the switching unit 6 may switch the operating software from software 41 to software 42 after the periodic processing by software 41 is completed (F11: Yes, F14, S35, S39). This ensures that all process data generated by software 41 during operation, including the latest process data, is taken over without any omissions.
[0086] As explained with reference to Figures 1, 5, and 7, the switching unit 6 may interrupt the predetermined processing of software 42 and have software 41 process the interrupt when an interrupt occurs from hardware 2 during predetermined processing of software 42 (F6:Yes, F7, S18, S25). This allows software 41 to process the interrupt as before.
[0087] As explained with reference to Figures 1, 5, and 7, an interrupt from hardware 2 may occur when hardware 2 receives a request from the higher-level system 7 (for example, a request from the controller 71 to send process data). By having software 41 process such interrupts, it is possible to maintain a response to requests from the higher-level system 7, such as the transmission of process data.
[0088] As explained with reference to Figures 1, 5, and 7, the switching unit 6 may allow software 42 to resume predetermined processing once interrupt processing by software 41 is complete (F8, S20, S27). This allows predetermined processing based on software 42 to proceed while avoiding the effects of interrupts.
[0089] As explained with reference to Figures 1, 5, and 7, the switching unit 6 may respond to access to hardware 2 from software 42 that is executing a predetermined process, instead of hardware 2 (F10, S29). In this case, the switching unit 6 may respond to access to hardware 2 from software 42 that is executing a predetermined process, so as not to cause errors in the predetermined process. For example, the switching unit 6 may return an affirmative response indicating that the write was successful in response to a write access to hardware 2 from software 42 that is executing a predetermined process, and return the value that software 42 expects from hardware 2 in response to a read access to hardware 2 from software 42 that is executing a predetermined process. For example, by emulating hardware 2 in this way, it is possible to prevent effects on the operation of software 41 that may occur when software 42 actually accesses hardware 2.
[0090] As explained with reference to Figures 1, 5, 7, and 8, the operating software 41 performs periodic processing including the generation of process data (S19, S26, S34). When the periodic processing is completed, software 41 notifies the switching unit 6 of its completion (S34). When software 42 completes a predetermined process, it notifies the switching unit 6 of its completion (S30). After receiving notifications from both software 41 and software 42, the switching unit 6 may switch the operating software from software 41 to software 42 (F11: Yes, F14, S39). This allows the software to be switched at an appropriate timing.
[0091] Program 203a (software switching program), described with reference to Figures 1 to 9, is also one of the disclosed technologies. Program 203a causes the processor 205 to execute a process to switch the running software from software 41 to software 42 in the device 1 described above. The switching process switches the running software from software 41 to software 42 after a predetermined process based on software 42 is executed while software 41 is running. With such a program 203a, as described above, the software can be switched without restarting device 1.
[0092] The method described with reference to Figures 1 to 8, etc. (software switching method) is also one of the disclosed technologies. The method includes a step (F14) of switching the running software from software 41 to software 42 in the above-described device 1. In the switching step, while software 41 is running, a predetermined process based on software 42 is executed, and then the running software is switched from software 41 to software 42 (F11:Yes, F14, S30, S39). With this method as well, as described above, the software can be switched without restarting device 1.
[0093] Some examples of the combinations of technical features that will be disclosed are listed below. (1) Hardware configured to transmit process data to a higher-level system, A storage unit that stores first software that operates to cause the hardware to transmit the process data to the higher-level system, and second software that operates to cause the hardware to transmit the process data to the higher-level system, A switching unit that switches the running software from the first software to the second software, Equipped with, The switching unit switches the operating software from the first software to the second software after a predetermined process based on the second software has been executed while the first software is running. device. (2) The switching unit switches the currently running software from the first software to the second software in response to instructions from a higher-level system. (1) The equipment described above. (3) The storage unit stores a first database referenced by the first software and a second database referenced by the second software. The switching unit copies the data from the first database to the second database, and then switches the running software from the first software to the second software. The equipment described in (1) or (2). (4) The data in the first database that the switching unit copies to the second database includes data relating to the control of communication between the hardware and the higher-level system. (3) The equipment described above. (5) The first software, while in operation, generates the process data, The data from the first database that the switching unit copies to the second database includes process data generated by the first software. The equipment described in (3) or (4). (6) The first software in operation performs periodic processing, including the generation of the process data. The switching unit switches the operating software from the first software to the second software after the periodic processing by the first software is completed. The equipment listed in any of (1) to (5). (7) The predetermined process includes an initialization process for initializing the hardware in the second software. The equipment listed in any of (1) to (6). (8) The process data includes plant process data. The equipment listed in any of (1) to (7). (9) When an interrupt from the hardware occurs during the predetermined processing of the second software, the switching unit causes the second software to interrupt the predetermined processing and causes the first software to process the interrupt. The equipment listed in any of (1) to (8). (10) The interrupt from the hardware occurs in response to the hardware receiving a request from the higher-level system. (9) The equipment described below. (11) The request from the higher-level system includes a request to transmit the process data. The equipment described in (10). (12) When the interrupt processing by the first software is completed, the switching unit instructs the second software to resume the predetermined processing. The equipment listed in any of (9) to (11). (13) The switching unit, instead of the hardware, responds to access to the hardware from the second software which is performing the predetermined process. The equipment listed in any of (1) to (12). (14) The switching unit responds to access from the second software, which is executing the predetermined process, to the hardware, so that no error occurs in the predetermined process. (13) The equipment described above. (15) The aforementioned switching unit is For write access to the hardware from the second software while the predetermined process is being executed, an affirmative response indicating that the write was successful is returned. For read access from the second software to the hardware while the predetermined processing is being performed, the second software returns the value it expects from the hardware. The equipment described in (13) or (14). (16) The first software in operation performs periodic processing, including the generation of the process data. When the first software completes the periodic processing, it notifies the switching unit of the completion. When the second software completes the predetermined process, it notifies the switching unit of the completion. The switching unit, after receiving notifications from both the first software and the second software, switches the currently running software from the first software to the second software. The equipment listed in any of (1) to (15). (17) Hardware configured to transmit process data to a higher-level system, A storage unit that stores first software that operates to cause the hardware to transmit the process data to the higher-level system, and second software that operates to cause the hardware to transmit the process data to the higher-level system, In equipment equipped with, The processor is instructed to perform a process to switch the running software from the first software to the second software. A software switching program, The switching process involves switching the running software from the first software to the second software after a predetermined process based on the second software has been executed while the first software is running. Software switching program. (18) Hardware configured to transmit process data to a higher-level system, A storage unit that stores first software that operates to cause the hardware to transmit the process data to the higher-level system, and second software that operates to cause the hardware to transmit the process data to the higher-level system, In equipment equipped with, A step of switching the running software from the first software to the second software, A software switching method including, In the switching step, after a predetermined process based on the second software is executed while the first software is running, the running software is switched from the first software to the second software. How to switch software. [Explanation of Symbols]
[0094] 100 Systems 1 equipment 2 Hardware 3 Storage section 41. Software (First type of software) 411 Applications 412 OS 413 Driver 42. Software (Second type of software) 421 Applications 422 OS 423 Driver 51 Database (First Database) 52 Databases (Second Database) 6. Switching section (intermediate layer) 7. Higher-level system 71 Controllers 72 Maintenance Stations 200 Computers 201 Communication equipment 202 Display device 203 Storage device 203a Program 204 memory 205 Processor L Communication line
Claims
1. Hardware configured to transmit process data to a higher-level system, A storage unit that stores first software that operates to cause the hardware to transmit the process data to the higher-level system, and second software that operates to cause the hardware to transmit the process data to the higher-level system, A switching unit that switches the running software from the first software to the second software, Equipped with, It is a device, The switching unit switches the running software from the first software to the second software without restarting the device, after a predetermined process based on the second software has been executed while the first software is running. device.
2. The switching unit switches the currently running software from the first software to the second software in response to instructions from the higher-level system. The apparatus according to claim 1.
3. The storage unit stores a first database referenced by the first software and a second database referenced by the second software. The switching unit copies the data from the first database to the second database, and then switches the running software from the first software to the second software. The apparatus according to claim 1 or 2.
4. The data in the first database that the switching unit copies to the second database includes data relating to the control of communication between the hardware and the higher-level system. The apparatus according to claim 3.
5. The first software, while in operation, generates the process data, The data from the first database that the switching unit copies to the second database includes process data generated by the first software. The apparatus according to claim 3.
6. The first software in operation performs periodic processing, including the generation of the process data. The switching unit switches the operating software from the first software to the second software after the periodic processing by the first software is completed. The apparatus according to claim 1 or 2.
7. The predetermined process includes an initialization process for initializing the hardware in the second software. The apparatus according to claim 1 or 2.
8. The process data includes plant process data. The apparatus according to claim 1 or 2.
9. When an interrupt from the hardware occurs during the predetermined processing of the second software, the switching unit causes the second software to interrupt the predetermined processing and causes the first software to process the interrupt. The apparatus according to claim 1 or 2.
10. The interrupt from the hardware occurs in response to the hardware receiving a request from the higher-level system. The apparatus according to claim 9.
11. The request from the higher-level system includes a request to transmit the process data. The apparatus according to claim 10.
12. When the interrupt processing by the first software is completed, the switching unit instructs the second software to resume the predetermined processing. The apparatus according to claim 9.
13. The switching unit, instead of the hardware, responds to access to the hardware from the second software which is performing the predetermined processing. The apparatus according to claim 1 or 2.
14. The switching unit responds to access from the second software, which is executing the predetermined process, to the hardware, so that no error occurs in the predetermined process. The apparatus according to claim 13.
15. The aforementioned switching unit is For write access to the hardware from the second software while the predetermined process is being executed, an affirmative response indicating that the write was successful is returned. For read access from the second software to the hardware while the predetermined processing is being performed, the second software returns the value it expects from the hardware. The apparatus according to claim 13.
16. The first software in operation performs periodic processing, including the generation of the process data. When the first software completes the periodic processing, it notifies the switching unit of the completion. When the second software completes the predetermined process, it notifies the switching unit of the completion. The switching unit, after receiving notifications from both the first software and the second software, switches the currently running software from the first software to the second software. The apparatus according to claim 1 or 2.
17. Hardware configured to transmit process data to a higher-level system, A storage unit that stores first software that operates to cause the hardware to transmit the process data to the higher-level system, and second software that operates to cause the hardware to transmit the process data to the higher-level system, In equipment equipped with, The processor is instructed to perform a process to switch the running software from the first software to the second software. It is a program, The switching process involves switching the running software from the first software to the second software after a predetermined process based on the second software has been executed while the first software is running, without restarting the device. Software switching program.
18. Hardware configured to transmit process data to a higher-level system, A storage unit that stores first software that operates to cause the hardware to transmit the process data to the higher-level system, and second software that operates to cause the hardware to transmit the process data to the higher-level system, In equipment equipped with, A step of switching the running software from the first software to the second software, A software switching method including, In the switching step, without restarting the device, the running software is switched from the first software to the second software after a predetermined process based on the second software has been executed while the first software is running. How to switch software.
Citation Information
Patent Citations
Job replacing method, job replacing program, job replacing system and recording medium
JP2002251290A
Field equipment system
JP2004295299A
Communication apparatus
JP2005064709A
Duplexing control method and duplexing control system
JP2010198274A
Water treatment system, edge device, and water treatment apparatus
JP2023011276A