WO2022259384A1 - 制御システム、プログラマブルコントローラ、制御プログラム送信方法及びコントローラプログラム - Google Patents
制御システム、プログラマブルコントローラ、制御プログラム送信方法及びコントローラプログラム Download PDFInfo
- Publication number
- WO2022259384A1 WO2022259384A1 PCT/JP2021/021794 JP2021021794W WO2022259384A1 WO 2022259384 A1 WO2022259384 A1 WO 2022259384A1 JP 2021021794 W JP2021021794 W JP 2021021794W WO 2022259384 A1 WO2022259384 A1 WO 2022259384A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- code
- control
- control program
- transmission device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/058—Safety, monitoring
Definitions
- the present disclosure relates to control systems, programmable controllers, control program transmission methods, and controller programs.
- PLCs Programmable Logic Controllers
- PC Personal Computer
- Patent Document 1 describes a programmable display that is connected to a PLC and functions as an operation terminal in a control system. When this programmable display is activated, it acquires a program that controls its operation from the server and writes it to its built-in data memory.
- Patent Document 1 does not take into consideration the possibility of damage and falsification of the program sent from the server. For this reason, when the technique of Patent Document 1 is applied to the PLC, there is a risk that a program that is not intended by the user will be loaded into the PLC, making it impossible to implement an appropriate process. Therefore, there is room for improving the security of the program that the PLC obtains from the outside.
- This disclosure has been made in view of the above circumstances, and aims to improve the safety of programs that the PLC obtains from the outside.
- a control system of the present disclosure includes a programmable controller that controls equipment, and a program transmission device that transmits a control program for causing the programmable controller to control the equipment, wherein the program
- the transmission device includes program acquisition means for acquiring the control program, and a first code for verifying whether or not there is a change from the control program, from the control program and predetermined data in a predetermined procedure.
- the programmable controller includes code generation means and transmission means for transmitting the control program and the first code, and the programmable controller includes reception means for receiving the reception program and the first code as the control program transmitted by the transmission means; second code generating means for generating the second code from the program and data previously shared with the program transmitting device according to the above procedure; and executing means for executing the received program when the first code is equal to the second code. have.
- FIG. 1 is a diagram showing the configuration of a control system according to Embodiment 1;
- FIG. FIG. 1 shows a hardware configuration of a program transmission device, a server, and a PLC according to Embodiment 1;
- FIG. 4 is a diagram for explaining transmission of a control program according to Embodiment 1;
- FIG. 1 shows functional configurations of a program transmission device, a server, and a PLC according to Embodiment 1;
- Flowchart showing file generation processing according to the first embodiment Flowchart showing upload processing according to the first embodiment
- FIG. 4 is a diagram for explaining transmission of a control program according to a comparative example;
- Diagram for explaining secret data according to Embodiment 2 Diagram for explaining secret data according to the third embodiment A diagram showing the configuration of a file according to a modification
- a control system 1000 according to an embodiment of the present disclosure will be described in detail below with reference to the drawings.
- a code unique to the program to be executed by the PLC is created before the program is stored in the server device, and the code created in this way is based on the program provided to the PLC. It is verified whether it matches the generated code.
- FIG. 1 shows a configuration example of a control system 1000 according to this embodiment.
- the control system 1000 is built in a facility typified by a factory.
- the control system 1000 is a system that realizes various processes represented by, for example, a product manufacturing line or a workpiece processing line by controlling the equipment 50 .
- the control system 1000 includes a program transmission device 10 operated by a user U1, a server 30 connected to the program transmission device 10 via a network 20, and a server 30 connected to the server 30 via the network 20. It has a connected PLC 40 and a device 50 to be controlled by the PLC.
- the network 20 may be an industrial field network formed within a facility, or an information network represented by a LAN (Local Area Network).
- the program transmission device 10, the server 30, and the PLC 40 communicate with other devices by transmitting and receiving data via the network 20, respectively.
- the program transmission device 10 is, for example, a PC represented by an IPC (Industrial Personal Computer), a smart phone, a tablet terminal, or other terminals.
- the user U1 creates a control program for causing the PLC 40 to control the device 50 by operating the program transmission device 10, and uploads the control program to the server 30 for storage.
- the control program is, for example, an executable ladder program in the PLC 40 .
- the program transmitting device 10 may receive an already completed control program from another device and upload the control program to the server 30 in accordance with the operation of the user U1.
- the control program may be uploaded to server 30 via another device.
- the program transmitting apparatus 10 may be connected to the network 20 all the time, or may be connected to the network 20 temporarily.
- the server 30 is a computer that functions as a storage device on the network 20.
- the server 30 holds the control program uploaded from the program transmission device 10 and provides the control program to the PLC 40 .
- Server 30 is normally kept connected to network 20 .
- the control program held in the server 30 may be changed inappropriately due to factors such as erroneous operation by the user, disunity of intentions among a plurality of users, and falsification by a third party.
- the PLC 40 is a programmable controller that controls the device 50.
- PLC40 controls the apparatus 50 by running a control program.
- the PLC 40 may cooperate with another PLC 40 (not shown) to control the device 50 by executing a control program.
- the PLC 40 may always be connected to the network 20, or may be temporarily connected to the network 20 only when acquiring the control program.
- the equipment 50 is FA equipment represented by sensors, actuators, motors, valves, and robots.
- the device 50 is connected to the PLC 40 via signal lines to transmit and receive voltage signals or current signals to and from the PLC 40 .
- the device 50 which is a robot, notifies the PLC 40 of sensing results from a built-in sensor, and moves the robot arm according to control instructions output from the PLC 40 based on the sensing results.
- one device 50 is representatively shown in FIG. 1 , two or more devices 50 may be connected to the PLC 40 .
- FIG. 2 shows a hardware configuration example of the program transmission device 10.
- the program transmission device 10, the server 30, and the PLC 40 each include a processor 61, a main storage section 62, an auxiliary storage section 63, an input section 64, an output section 65, and a communication section 66.
- the main storage section 62 , auxiliary storage section 63 , input section 64 , output section 65 and communication section 66 are all connected to the processor 61 via an internal bus 67 .
- the processor 61 includes an MPU (Micro Processing Unit) or CPU (Central Processing Unit) which is an integrated circuit. By executing the program P1 stored in the auxiliary storage unit 63, the processor 61 realizes various functions and executes the processes described later.
- the program P1 of the PLC 40 corresponds to an example of a controller program for causing the PLC 40 to function as means described below.
- the main storage unit 62 includes a RAM (Random Access Memory).
- a program P1 is loaded from the auxiliary storage unit 63 into the main storage unit 62 .
- the main storage unit 62 is used as a work area for the processor 61 .
- the auxiliary storage unit 63 includes non-volatile memory represented by EEPROM (Electrically Erasable Programmable Read-Only Memory), HDD (Hard Disk Drive), and removable memory cards.
- EEPROM Electrically Erasable Programmable Read-Only Memory
- HDD Hard Disk Drive
- removable memory cards stores various data used for processing of processor 61 in addition to program P1.
- Auxiliary storage unit 63 supplies data used by processor 61 to processor 61 and stores the data supplied from processor 61 in accordance with instructions from processor 61 .
- one program P1 is shown representatively in FIG. may
- the input unit 64 includes input devices typified by input keys, keyboards, pointing devices, switches and buttons.
- the input unit 64 acquires information input by the user and notifies the processor 61 of the acquired information.
- the output unit 65 includes output devices typified by LEDs (Light Emitting Diodes), LCDs (Liquid Crystal Displays), and speakers.
- the output unit 65 presents various information to the user according to instructions from the processor 61 .
- the communication unit 66 includes a network interface circuit for communicating with external devices. Communication unit 66 receives a signal from the outside and outputs data indicated by this signal to processor 61 . Also, the communication unit 66 transmits a signal indicating the data output from the processor 61 to an external device.
- the program transmission device 10 has a first code generator 113 that generates a first code 71 unique to the combination of the control program 70 and the secret data 80.
- the secret data 80 is predetermined data, for example, a random bit string of 256 bits or 1024 bits.
- the first code 71 is output by, for example, inputting one piece of data obtained by concatenating the control program 70 and the secret data 80 in this order into a hash function represented by SHA-2 (Secure Hash Algorithm 2) and SHA-3.
- a hash value obtained as a value may be used, or a value obtained by another method may be used.
- the program transmission device 10 transmits a file 73 containing the control program 70 and the first code 71 to the server 30.
- Server 30 holds this file 73 and provides file 73 to PLC 40 in response to a request from PLC 40 .
- the PLC 40 obtains a unique has a second code generation unit 433 for generating the second code 72 of .
- the reception program 70a included in the file 73 is the same program as the control program 70.
- FIG. In this case the first code 71 is equal to the second code 72 .
- the reception program 70a included in the file 73 provided to the PLC 40 will be different from the control program 70, contrary to the user's intention. be a program.
- the first code 71 is different from the second code 72 .
- the method for generating the second code 72 by the second code generator 433 is the same as the method for generating the first code 71 by the first code generator 113 of the program transmitting apparatus 10 .
- the collation unit 434 of the PLC 40 collates the first code 71 and the second code 72 included in the file 73 . If both codes match, the receiving program 70a is equal to the control program 70, so the execution unit 435 of the PLC 40 executes the receiving program 70a, which is the control program 70.
- FIG. 1 the collation unit 434 of the PLC 40 collates the first code 71 and the second code 72 included in the file 73 . If both codes match, the receiving program 70a is equal to the control program 70, so the execution unit 435 of the PLC 40 executes the receiving program 70a, which is the control program 70.
- the program transmission device 10 has a processing unit 11 that executes various processes, a storage unit 12 that stores various data, and a transmission unit 13 that transmits information to the server 30. .
- the processing unit 11 is mainly realized by the processor 61 of the program transmission device 10.
- the processing unit 11 includes a program acquisition unit 111 that acquires the control program 70, a secret data generation unit 112 that generates the secret data 80, a first code generation unit 113 that generates the first code 71, the control program 70 and the first code generation unit 113. and a file generation unit 114 for generating a file 73 containing the 1 code 71 .
- the program acquisition unit 111 acquires the control program 70 input by the user U1 by operating the input unit 64.
- the program acquisition unit 111 may acquire the control program 70 by reading the control program 70 from the address of the auxiliary storage unit 63 or the address of the external device specified by the user U1.
- the program acquisition unit 111 stores the acquired control program 70 in the storage unit 12 .
- the program acquisition unit 111 corresponds to an example of program acquisition means for acquiring the control program 70 in the program transmission device 10 .
- the secret data generation unit 112 generates the secret data 80 using, for example, the time when the program acquisition unit 111 acquires the control program 70 or the time when the user instructs the generation of the secret data 80 as a seed value, and stores the secret data 80 in the storage unit. 12.
- the first code generation unit 113 reads the control program 70 and the secret data 80 from the storage unit 12, generates the first code 71 based on the control program 70 and the secret data 80, and stores it in the storage unit 12. Specifically, the first code generator 113 generates a hash value of the secret data 80 and the control program 70 as the first code 71 . The first code generation unit 113 generates a first code 71 for verifying whether or not there is a change from the control program 70 in the program transmission device 10 from the control program 70 and predetermined data in accordance with a predetermined procedure. It corresponds to an example of the first code generation means.
- the file generation unit 114 reads the control program 70 and the first code 71 from the storage unit 12, compresses and encrypts the control program 70 and the first code 71, and generates the file 73. Any compression and encryption method can be used, but a method with a low computational load during decompression and decryption is desirable so that decompression and decryption are possible even in the PLC 40 with insufficient computational resources. Note that the file generation unit 114 may generate the file 73 without compressing the control program 70 and the first code 71, or may generate the file 73 without encrypting them.
- the file generator 114 corresponds to an example of encryption means for encrypting the control program 70 and the first code 71 in the program transmission device 10 .
- the storage unit 12 is mainly realized by at least one of the main storage unit 62 and the auxiliary storage unit 63 of the program transmission device 10.
- Server identification information 121 is stored in the storage unit 12 in advance by the user U1.
- the server identification information 121 is, for example, an IP (Internet Protocol) address or area code representing the location of the server 30 on the network 20 .
- the transmission unit 13 is realized mainly by the cooperation of the processor 61 and the communication unit 66 of the program transmission device 10.
- the transmission unit 13 reads the server identification information 121 and the file 73 from the storage unit 12 and transmits the file 73 to the server 30 indicated by the server identification information 121 according to the operation of the user U1.
- the transmission unit 13 corresponds to an example of transmission means for transmitting the control program 70 and the first code 71 in the program transmission device 10, and transmits the control program 70 and the first code 71 encrypted by the encryption means. It corresponds to an example of means.
- the server 30 has a receiving section 31 that receives the file 73 from the program transmitting device 10 , a storage section 32 that stores the file 73 , and a transmitting section 33 that transmits the file 73 to the PLC 40 .
- the receiving unit 31 and the transmitting unit 33 are mainly implemented by the communication unit 66 of the server 30 .
- the storage unit 32 is mainly realized by at least one of the main storage unit 62 and the auxiliary storage unit 63 of the server 30 .
- the receiving section 31 receives the file 73 transmitted by the transmitting section 13 of the program transmitting device 10 and stores the file 73 in the storage section 32 .
- the transmission unit 33 responds to the request from the PLC 40 by reading the control program 70 from the storage unit 32 and transmitting it to the PLC 40 .
- the server 30 receives the control program 70 and the first code 71 transmitted by the transmission means of the program transmission device 10, and transmits the reception program 70a and the first code 71 as the received control program 70 to the programmable controller. It corresponds to an example of a server that transmits to
- the PLC 40 includes a receiving unit 41 that receives files 73 from the server 30, a storage unit 42 that stores various data, a processing unit 43 that executes various processes, and a program memory that stores a control program 70 to be executed. 44 and .
- the receiving unit 41 is mainly realized by the communication unit 66 of the PLC 40.
- the receiving unit 41 requests the server 30 to transmit the file 73 according to the instruction of the requesting unit 431 of the processing unit 43, receives the file 73 transmitted from the server 30 as a response to the request, and stores the file 73 in the storage unit 42.
- the receiving unit 41 corresponds to an example of receiving means for receiving the receiving program 70a as a control program and the first code 71 transmitted by the transmitting means of the program transmitting device 10 in the PLC 40, and is an encrypted receiving program. It corresponds to an example of receiving means for receiving 70 a and the first code 71 .
- the storage unit 42 is mainly realized by at least one of the main storage unit 62 and the auxiliary storage unit 63 of the PLC 40.
- Program acquisition source information 421 indicating the acquisition source of the control program 70 and secret data 80 identical to the secret data 80 stored in the program transmission device 10 are stored in advance in the storage unit 42 .
- the program acquisition source information 421 includes server identification information 422 that indicates the location of the server 30 on the network 20 and file identification information 423 that identifies the file 73 stored in the server 30 .
- the server identification information 422 is, for example, the IP address or station number of the server 30 .
- the file identification information 423 is, for example, the file name or the address of the file 73 stored in the storage unit 32 of the server 30 .
- the program acquisition destination information 421 is read from the storage unit 42 by the requesting unit 431 of the processing unit 43 and used by the receiving unit 41 to designate the file 73 to be transmitted from the server 30 to the server 30 .
- the secret data 80 is shared between the program transmission device 10 and the PLC 40 by any method and is not provided to the server 30.
- the user U1 operates the program transmission device 10 to store the secret data 80 in a recording medium typified by a memory card, and inserts the recording medium into the card slot of the PLC 40 to transfer the secret data 80 to the PLC 40. You may store in the memory
- the user U1 may connect the program transmitter 10 to the PLC 40 via a communication line typified by USB (Universal Serial Bus) without going through the network 20, and transfer the secret data 80 to the PLC 40.
- the secret data 80 may be transmitted from the program transmitting device 10 to the PLC 40 via the network 20 without the server 30 or via the server 30 .
- secret data 80 is transmitted via network 20, it is desirable to establish secure communication before transmitting secret data 80.
- the transmitter 13 of the program transmitter 10 transmits the secret data 80 and the receiver 41 receives the secret data 80 .
- the processing unit 43 is mainly realized by the processor 61 of the PLC 40.
- the processing unit 43 includes a requesting unit 431 that requests the file 73 from the server 30, an extracting unit 432 that extracts the receiving program 70a and the first code 71 from the received file 73, and a receiving program extracted by the extracting unit 432.
- a second code generation unit 433 that generates a second code 72 based on 70a, a collation unit 434 that collates the first code 71 and the second code 72, and an execution that executes the control program 70 when both codes match. and a portion 435 .
- the request unit 431 reads the program acquisition source information 421 from the storage unit 42 when the PLC 40 is started, and receives the provision of the file 73 indicated by the file identification information 423 to the server 30 indicated by the server identification information 422. Let the part 41 make a request.
- the extraction unit 432 reads out the file 73 received by the reception unit 41 and stored in the storage unit 42, and extracts the reception program 70a and the first code 71 from the file 73 by expanding and decoding.
- the extraction unit 432 corresponds to an example of decryption means for decrypting the encrypted reception program 70 a and the first code 71 in the PLC 40 .
- the second code generator 433 uses the same method as the first code generator 113 of the program transmitter 10 to generate a second code from the received program 70a extracted by the extractor 432 and the secret data 80 read from the storage 42 . Generate code 72. Specifically, the second code generator 433 generates a hash value of the secret data 80 and the reception program 70a as the second code 72 . More specifically, the second code generation unit 433 generates a hash value output by inputting the receiving program 70a and the secret data 80 to application software that applies a hash function similar to that of the first code generation unit 113. 2 code 72 is obtained.
- the second code generation unit 433 corresponds to an example of second code generation means in the PLC 40 that generates the second code 72 according to a predetermined procedure from the received program and data shared in advance with the program transmission device.
- the collation unit 434 collates the first code 71 extracted by the extraction unit 432 and the second code 72 generated by the second code generation unit 433 . If the two codes match, the collation unit 434 stores the control program 70, which is the reception program 70a extracted by the extraction unit 432, in the program memory 44.
- the execution unit 435 controls the device 50 by reading the control program 70 from the program memory 44 and executing it.
- the timing at which the execution unit 435 executes the control program 70 may be when the PLC 40 is activated, or when an execution button provided on the PLC 40 is pressed, or when the RUN switch is turned on. good.
- the execution unit 435 corresponds to an example of execution means for executing the received program in the PLC 40 when the first code 71 is equal to the second code 72 .
- the program memory 44 is mainly realized by at least one of the main storage section 62 and the auxiliary storage section 63 of the PLC 40.
- FIGS. 5 to 7 are examples, and the execution order of each step may be changed arbitrarily.
- FIG. 5 shows the flow of file generation processing in which the program transmission device 10 generates the file 73 .
- the program transmission device 10 in the file generation process, the program transmission device 10 generates secret data 80 and shares the generated secret data 80 with the PLC 40 (step S11).
- secret data generator 112 generates secret data 80 as a key in a message authentication code, and shares secret data 80 with PLC 40 by any of the methods described above.
- the program transmission device 10 acquires the control program 70 (step S12).
- the program acquisition unit 111 may acquire the control program 70 by converting the source code input by the user U1 or the source code read from the address specified by the user U1 into an executable format.
- the control program 70 may be obtained by reading the control program 70 already converted into the executable form from an address specified by the user.
- the program transmission device 10 generates the first code 71 using the secret data 80 generated in step S11 and the control program 70 obtained in step S12 (step S13).
- the first code generator 113 uses the secret data 80 as a key and the control program 70 as a message to calculate a first code 71 corresponding to a message authentication code.
- the file generation unit 114 of the program transmission device 10 generated a file 73 containing the control program 70 acquired in step S12 and the first code 71 generated in step S13, and compressed and encrypted the generated file 73. It stores in the memory
- FIG. 6 shows the flow of upload processing for uploading the generated file 73 to the server 30.
- the program transmitting device 10 identifies the server 30 to store the file 73 based on the server identification information 121 (step S21). Specifically, the transmission unit 13 identifies the network address of the server 30 .
- the transmission unit 13 determines whether or not the server 30 identified in step S21 exists (step S22). Specifically, the transmission unit 13 determines whether communication can be established with the device having the network address specified in step S21. If communication cannot be established with the server 30 and a response cannot be obtained from the server 30, the determination in step S22 is negative.
- step S22 If it is determined that the server 30 does not exist (step S22; No), the program transmission device 10 abnormally terminates the upload process (step S23). On the other hand, if it is determined that the server 30 exists (step S22; Yes), the program transmission device 10 reads the file 73 from the storage unit 12 and transmits it to the server 30 (step S24). The server 30 receives this file 73 and stores it in the storage unit 32 (step S25), completing the upload process.
- FIG. 7 shows the flow of download processing for downloading the file 73 saved in the server 30 to the PLC 40.
- the PLC 40 is activated when the power button of the PLC 40 is pressed by the administrator of the PLC 40 (step S31).
- the PLC 40 identifies the server 30 and the file 73 based on the acquisition source information (step S32). Specifically, the request unit 431 of the PLC 40 reads the server identification information 422 and the file identification information 423 included in the program acquisition source information 421 from the storage unit 42 .
- the PLC 40 requests the server 30 identified in step S32 to transmit the file 73 identified in step S32 (step S33). For example, when the IP address "192.168.20.100" is specified as the server identification information 422 and the file name "CTRL_PROGRAM40" is specified as the file identification information 423 in step S32, the receiving unit 41 A packet for requesting transmission of the file 73 with the file name is transmitted to the IP address according to the instruction of the request unit 431 .
- the PLC 40 determines whether there is a response from the server 30, which is the destination of the request in step S33 (step S34). Specifically, the receiving unit 41 determines whether or not the response to the packet transmitted in step S33 is within a certain period of time after the packet was transmitted in step S33.
- step S34 When it is determined that there is no response from the server 30 (step S34; No), the PLC 40 determines that an abnormality has occurred (step S35) and terminates the download process.
- a case where there is no response from the server 30 may be a case where the server 30 specified in step S32 does not exist on the network 20, or a case where the file 73 specified in step S32 is not saved in the server 30.
- step S ⁇ b>35 the PLC 40 may notify the administrator of the occurrence of the abnormality from the output unit 65 .
- step S34 if it is determined that there is a response from the server (step S34; Yes), the server 30 transmits the file 73 to the PLC 40 in response to the request of step S33 (step S36). Specifically, the transmission unit 33 of the server 30 reads the file 73 having the file name specified by the PLC 40 in the request of step S33 from the storage unit 32 and transmits it to the PLC 40 .
- the receiving unit 41 of the PLC 40 receives the file 73 and stores it in the storage unit 42 (step S37), and the extracting unit 432 expands and decodes the file 73 to obtain the receiving program 70a and the first code 71. Extract (step S38).
- the second code generation unit 433 of the PLC 40 generates the second code 72 from the secret data 80 stored in the storage unit 42 of the PLC 40 and the reception program 70a extracted in step S38 (step S39). Specifically, the second code generator 433 uses the secret data 80 as a key and the reception program 70a as a message to calculate the second code 72 corresponding to the message authentication code.
- the collation unit 434 of the PLC 40 collates the first code 71 extracted in step S38 and the second code 72 generated in step S39 to determine whether the two codes match. (Step S40). Specifically, the matching unit 434 compares the first code 71 and the second code 72 and determines whether or not these codes are the same bit string.
- step S40 If it is determined that the two codes do not match (step S40; No), the PLC 40 discards the received reception program 70a without executing it (step S41), and proceeds to step S35. On the other hand, if it is determined that the two codes match (step S40; Yes), the collating unit 434 determines that the received program 70a is not missing or tampered with by the control program 70, and stores the control program 70 in the program memory 44. is written (step S42).
- step S43 the execution unit 435 of the PLC 40 determines whether or not there is an instruction to execute the control program 70 (step S43). If it is determined that there is no execution instruction (step S43; No), the execution unit 435 repeats the determination of step S43 and waits until an execution instruction is received. On the other hand, if it is determined that there is an execution instruction (step S43; Yes), the execution unit 435 reads the control program 70 from the program memory 44 and executes it (step S44). Thereby, the PLC 40 will control the device 50 according to the control program 70 provided from the program transmitting device 10 .
- the first code generator 113 of the program transmission device 10 generates the first code 71 from the control program 70 and the secret data 80.
- the receiving unit 41 of the PLC 40 receives the receiving program 70a when the PLC 40 is activated
- the second code generating unit 433 generates the second code 72 from the receiving program 70a and the secret data 80
- the executing unit 435 generates the second If the 1 code 71 is equal to the 2nd code 72, the receiving program 70a is executed. Therefore, the reception program 70 a received from the server 30 is executed when it is equal to the control program 70 transmitted from the program transmission device 10 . Therefore, it is possible to improve the safety of the program externally acquired by the PLC 40 as a programmable controller.
- FIG. 8 schematically shows transmission of the control program 70 according to the comparative example.
- the control program 70 is uploaded from the program transmitting device 10 to the server 30 and provided to the PLC 40 as it is, without verifying the modification of the program by code comparison.
- a tampered program 70b that has been tampered with from the control program 70 may be uploaded from the malicious user's terminal 10b and replaced with the control program 70. be done.
- the PLC 40 acquires the tampered program 70b as the control program 70 from the server 30 and executes the tampered program 70b when it is activated.
- a code uniquely generated by combining the control program 70 and the secret data 80 is paired with the control program 70 and stored in the server 30 for management. Therefore, when the PLC 40 acquires the reception program 70 a as the control program 70 , it is possible to verify whether or not the control program 70 has been modified using the first code 71 and the second code 72 . If the first code 71 is different from the second code 72, the execution unit 435 of the PLC 40 does not write the received program 70a into the program memory 44 and discards the received program 70a without executing it. As a result, when the PLC 40 has a net boot function that acquires a program to be executed from the server 30 through network communication, it is possible to prevent unintended writing of the received program 70a to the PLC 40 and realize safer program updating. can.
- a first code 71 corresponding to a message authentication code between the program transmitting device 10 and the PLC 40 is used in order to detect alteration of the program stored in the server 30.
- the computational load of such a technique using the first code 71 is smaller than that of using a digital signature capable of detecting alteration of transmitted data. Therefore, it is possible to shorten the boot time when starting up the PLC 40 and avoid a decrease in production efficiency in the control system 1000 .
- the file generation unit 114 of the program transmission device 10 generates the encrypted file 73
- the extraction unit 432 of the PLC 40 decrypts the file 73 .
- the encrypted file 73 is stored in the server 30, and security can be improved against risks represented by data leakage.
- Embodiment 2 Next, the second embodiment will be described, focusing on differences from the first embodiment described above. Equivalent reference numerals are used for configurations that are the same as or equivalent to those in the first embodiment.
- the present embodiment differs from the first embodiment in that different secret data 80 are used by a plurality of users of program transmitting apparatus 10. FIG.
- program transmitting apparatus 10 generates a plurality of confidential data 80.
- the PLC 40 stores only the secret data 81, which is data specified in advance, and does not store the secret data 82. PLC 40 then generates second code 72 using secret data 81 . If the receiving program 70a is equal to the control program 70 and the control program 70 is provided by the user U1, this control program 70 is executed by the PLC40. Even if the receiving program 70a is equal to the control program 70, the PLC 40 executes the control program 70 because the first code 71 and the second code 72 are different when the control program 70 is provided by the user U2. Discard without
- the program acquisition unit 111 of the program transmission device 10 acquires the control program 70 provided by one of a plurality of users
- the first code generation unit 113 acquires the control program 70 and the control program 70.
- a first code 71 is generated from confidential data 80 corresponding to the user who provided the program 70 .
- the second code generator 433 of the PLC 40 generates the second code 72 from the receiving program 70a and the secret data 80 corresponding to a specific user among the plurality of users. This makes it possible to manage whether or not the control program 70 can be executed for each user.
- the first code generation unit 113 may generate the first code 71 using the secret data 80 of the user who has input the transmission instruction of the control program 70 .
- the first code generator 113 may generate the first code 71 from the secret data 80 corresponding to one of the users who uses the control program 70 .
- Embodiment 3 Next, the third embodiment will be described, focusing on differences from the first embodiment described above. Equivalent reference numerals are used for configurations that are the same as or equivalent to those in the first embodiment. This embodiment differs from the first embodiment in that different secret data 80 is used in each of a plurality of program transmitting apparatuses.
- the control system 1000 has a plurality of program transmitters 10 and 10a, and the program transmitters 10 and 10a generate different secret data 80 respectively.
- the program transmission device 10 generates secret data 83 and the program transmission device 10 a generates secret data 84 different from the secret data 83 .
- the first code generator 113 of the program transmitter 10 or 10a generates the first code 71 using the secret data 80 of the program transmitter having the first code generator 113 .
- the first code 71 is generated using the confidential data 83 in the program transmitting device 10 .
- the PLC 40 stores only the secret data 83, which is data specified in advance, and does not store the secret data 84. PLC 40 then generates second code 72 using secret data 83 . If the receiving program 70 a is equal to the control program 70 and the control program 70 is provided from the program transmitting device 10 , this control program 70 is executed by the PLC 40 . Even if the receiving program 70a is equal to the control program 70, when the control program 70 is provided from the program transmitting device 10a, the first code 71 and the second code 72 are different. discard without executing.
- the first code generation units 113 of the plurality of program transmission devices 10 and 10a each generate the first code from the secret data 80 corresponding to the program transmission device having the control program 70 and the first code generation unit 113. 71 is generated.
- the second code generator 433 of the PLC 40 generates the second code 72 from the secret data 80 shared in advance with the received program 70a and a specific program transmission device among the plurality of program transmission devices 10, 10a. This makes it possible to manage whether or not the control program 70 can be executed for each program transmission device.
- the number of users using the program transmission device 10 may be three or more. Also, although the example in which there are two program transmission apparatuses has been described in the third embodiment, the number of program transmission apparatuses may be three or more.
- the PLC 40 stores one secret data 80
- the PLC 40 stores a plurality of specific secret data 80 and uses the respective secret data 80 to generate the second code 72 and the first code 72 .
- the comparison with the codes 71 may be repeated, and the received program 70 a may be stored in the program memory 44 as the control program 70 when any second code 72 is equal to the first code 71 .
- the PLC 40 may also store secret data 80 corresponding to a user or a program transmission device who is not authorized to write the control program 70 to the PLC 40 via the server 30 .
- the PLC 40 may exclude the secret data 80 corresponding to the unauthorized user or program transmission device from the target of verification by the verification unit 434 .
- the program transmission device 10 and the server 30 may be connected to the PLC 40 in the facility via the network 20, which is a wide area communication network represented by the Internet.
- the program transmission device 10, the server 30 and the PLC 40 do not have to be connected via a single network 20.
- the program transmission device 10 and server 30 may be connected to each other via an information network represented by a LAN, and the server 30 and PLC 40 may be connected to each other via an industrial network.
- one or both of the transmission line connecting the program transmission device 10 and the server 30 and the transmission line connecting the server 30 and the PLC 40 may be realized by a dedicated line instead of the network.
- the program transmitting apparatus 10 uses secret data 80 to generate first codes 711, 712, . . . 71n for modules 701, 702, . may be generated. Then, the program transmitting apparatus 10 may generate a file 73 including the control program 70 and the plurality of generated first codes 711, 712, . . . , 71n. In the example shown in FIG. 12, the PLC 40 may generate the second code 72 for each module in the same manner as in the above embodiment and compare the two codes.
- the program transmitting device 10 may share the secret data 80 generated by the PLC 40 with the PLC 40 , or the program transmitting device 10 and the PLC 40 may share the secret data 80 generated by another device.
- the program transmission device 10 and the server 30 may be configured integrally by having the program transmission device 10 as a terminal have the functions of the server 30 .
- the server 30 may be omitted from the control system 1000 described above, and the control program 70 may be directly transmitted to the PLC 40 by the program transmission device 10, which is a terminal or server device. Even if the server 30 is omitted, it is possible to improve the safety of the program that the PLC 40 obtains from the outside by detecting alterations when the control program 70 is transmitted.
- the functions of the program transmission device 10, the server 30 and the PLC 40 can be realized by dedicated hardware or by a normal computer system.
- the program P1 executed by the processor 61 is stored in a computer-readable non-temporary recording medium and distributed, and the program P1 is installed in the computer to configure the device that executes the above process. be able to.
- Examples of such recording media include flexible discs, CD-ROMs (Compact Disc Read-Only Memory), DVDs (Digital Versatile Discs), and MOs (Magneto-Optical Discs).
- the program P1 may be stored in a disk device of a server device on a communication network typified by the Internet, superimposed on a carrier wave, and downloaded to a computer.
- the above processing can also be achieved by starting and executing the program P1 while transferring it via a communication network.
- the above processing can also be achieved by executing all or part of the program P1 on the server device and executing the program while the computer transmits and receives information regarding the processing via a communication network.
- the functions described above are to be shared by the OS (Operating System) or by cooperation between the OS and the application, only the parts other than the OS may be stored in a medium and distributed. , or you may download it to your computer.
- means for realizing the functions of the program transmission device 10, the server 30, and the PLC 40 are not limited to software, and part or all of them may be realized by dedicated hardware including circuits.
- the present disclosure is suitable for systems with programmable controllers that acquire programs to be executed from the outside.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
Description
図1には、本実施の形態に係る制御システム1000の構成例が示されている。制御システム1000は、工場に代表される施設内において構築される。制御システム1000は、例えば、製品の製造ライン、又は、ワークの加工ラインに代表される種々の工程を、機器50を制御することで実現するシステムである。制御システム1000は、図1に示されるように、ユーザU1によって操作されるプログラム送信装置10と、プログラム送信装置10にネットワーク20を介して接続されるサーバ30と、サーバ30にネットワーク20を介して接続されるPLC40と、PLCによる制御の対象となる機器50と、を有する。
続いて、実施の形態2について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いる。本実施の形態は、プログラム送信装置10を使用する複数のユーザで異なる秘密データ80が用いられる点で、実施の形態1とは異なる。
続いて、実施の形態3について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いる。本実施の形態は、複数のプログラム送信装置それぞれで異なる秘密データ80が使用される点で、実施の形態1とは異なる。
Claims (10)
- 機器を制御するプログラマブルコントローラと、前記プログラマブルコントローラに前記機器を制御させるための制御プログラムを送信するプログラム送信装置と、を備える制御システムであって、
前記プログラム送信装置は、
前記制御プログラムを取得するプログラム取得手段と、
前記制御プログラムからの変更の有無を検証するための第1コードを、前記制御プログラム及び予め定められたデータから予め定められた手順で生成する第1コード生成手段と、
前記制御プログラム及び前記第1コードを送信する送信手段と、を有し、
前記プログラマブルコントローラは、
前記送信手段によって送信された前記制御プログラムとしての受信プログラム及び前記第1コードを受信する受信手段と、
前記受信プログラム及び予め前記プログラム送信装置と共有される前記データから前記手順で第2コードを生成する第2コード生成手段と、
前記第1コードが前記第2コードに等しい場合に、前記受信プログラムを実行する実行手段と、を有する、
制御システム。 - 前記実行手段は、前記第1コードが前記第2コードとは異なる場合に、前記受信プログラムを実行することなく破棄する、
請求項1に記載の制御システム。 - 前記第1コード生成手段は、前記データ及び前記制御プログラムのハッシュ値を前記第1コードとして生成し、
前記第2コード生成手段は、前記データ及び前記受信プログラムのハッシュ値を前記第2コードとして生成する、
請求項1又は2に記載の制御システム。 - 前記プログラム送信装置の前記第1コード生成手段は、前記制御プログラム及び複数のユーザのうちの前記制御プログラムを使用する一のユーザに対応する前記データから前記第1コードを生成し、
前記プログラマブルコントローラの前記第2コード生成手段は、前記受信プログラム、及び、予め前記プログラム送信装置と共有される前記データであって、前記複数のユーザのうちの特定のユーザに対応する前記データから前記第2コードを生成する、
請求項1から3のいずれか一項に記載の制御システム。 - 前記プログラマブルコントローラと、複数の前記プログラム送信装置と、を備える制御システムであって、
複数の前記プログラム送信装置の前記第1コード生成手段はそれぞれ、前記制御プログラム及び該第1コード生成手段を有する前記プログラム送信装置に対応する前記データから前記第1コードを生成し、
前記プログラマブルコントローラの前記第2コード生成手段は、前記受信プログラム及び複数の前記プログラム送信装置のうちの特定の前記プログラム送信装置と予め共有される前記データから前記第2コードを生成する、
請求項1から4のいずれか一項に記載の制御システム。 - 前記プログラム送信装置は、前記制御プログラム及び前記第1コードを暗号化する暗号化手段、をさらに有し、
前記送信手段は、前記暗号化手段によって暗号化された前記制御プログラム及び前記第1コードを送信し、
前記受信手段は、暗号化された前記受信プログラム及び前記第1コードを受信し、
前記プログラマブルコントローラは、暗号化された前記受信プログラム及び前記第1コードを復号する復号手段、をさらに有する、
請求項1から5のいずれか一項に記載の制御システム。 - 前記プログラマブルコントローラと、前記プログラム送信装置と、サーバと、を備える制御システムであって、
前記プログラム送信装置の前記送信手段は、前記制御プログラム及び前記第1コードを前記サーバに送信し、
前記サーバは、前記送信手段によって送信された前記制御プログラム及び前記第1コードを受信し、受信した前記制御プログラムとしての前記受信プログラム及び前記第1コードを前記プログラマブルコントローラに送信する、
請求項1から6のいずれか一項に記載の制御システム。 - 機器を制御するための、プログラム送信装置によって送信された制御プログラムとしての受信プログラムを受信するプログラマブルコントローラであって、
前記受信プログラムと、前記制御プログラムからの変更の有無を検証するための第1コードであって、該制御プログラム及び前記プログラム送信装置が記憶するデータから予め定められた手順で生成された前記第1コードと、を受信する受信手段と、
前記受信プログラム及び予め前記プログラム送信装置と共有される前記データから前記手順で第2コードを生成する第2コード生成手段と、
前記第1コードが前記第2コードに等しい場合に、前記受信プログラムを実行する実行手段と、
を備えるプログラマブルコントローラ。 - 機器を制御するプログラマブルコントローラと、前記プログラマブルコントローラに前記機器を制御させるための制御プログラムを送信するプログラム送信装置と、によって実行される制御プログラム送信方法であって、
前記プログラム送信装置が、前記制御プログラムからの変更の有無を検証するための第1コードを、前記制御プログラム及び予め定められたデータから予め定められた手順で生成し、
前記プログラム送信装置が、前記制御プログラム及び前記第1コードを送信し、
前記プログラマブルコントローラが、前記プログラム送信装置によって送信された前記制御プログラムとしての受信プログラム及び前記第1コードを受信し、
前記プログラマブルコントローラが、前記受信プログラム及び予め前記プログラム送信装置と共有される前記データから前記手順で第2コードを生成し、
前記プログラマブルコントローラが、前記第1コードが前記第2コードに等しい場合に、前記受信プログラムを実行する、
ことを含む制御プログラム送信方法。 - 機器を制御するための、プログラム送信装置によって送信された制御プログラムとしての受信プログラムを受信するプログラマブルコントローラを、
前記受信プログラムと、前記制御プログラムからの変更の有無を検証するための第1コードであって、該制御プログラム及び前記プログラム送信装置が記憶するデータから予め定められた手順で生成された前記第1コードと、を受信する受信手段、
前記受信プログラム及び予め前記プログラム送信装置と共有される前記データから前記手順で第2コードを生成する第2コード生成手段、
前記第1コードが前記第2コードに等しい場合に、前記受信プログラムを実行する実行手段、
として機能させるためのコントローラプログラム。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023526694A JP7511758B2 (ja) | 2021-06-08 | 2021-06-08 | 制御システム、制御プログラム送信方法及びプログラム |
| CN202180088741.8A CN117377915A (zh) | 2021-06-08 | 2021-06-08 | 控制系统、可编程控制器、控制程序发送方法及控制器程序 |
| PCT/JP2021/021794 WO2022259384A1 (ja) | 2021-06-08 | 2021-06-08 | 制御システム、プログラマブルコントローラ、制御プログラム送信方法及びコントローラプログラム |
| DE112021007785.6T DE112021007785T5 (de) | 2021-06-08 | 2021-06-08 | Steuerungssystem, programmierbare Steuerung, Steuerungsprogramm-Übertragungsverfahren und Steuerungsprogramm |
| US18/033,578 US12596344B2 (en) | 2021-06-08 | 2021-06-08 | Control system, control program transmission method, and recording medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2021/021794 WO2022259384A1 (ja) | 2021-06-08 | 2021-06-08 | 制御システム、プログラマブルコントローラ、制御プログラム送信方法及びコントローラプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022259384A1 true WO2022259384A1 (ja) | 2022-12-15 |
Family
ID=84425957
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2021/021794 Ceased WO2022259384A1 (ja) | 2021-06-08 | 2021-06-08 | 制御システム、プログラマブルコントローラ、制御プログラム送信方法及びコントローラプログラム |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US12596344B2 (ja) |
| JP (1) | JP7511758B2 (ja) |
| CN (1) | CN117377915A (ja) |
| DE (1) | DE112021007785T5 (ja) |
| WO (1) | WO2022259384A1 (ja) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014097444A1 (ja) * | 2012-12-20 | 2014-06-26 | 三菱電機株式会社 | 制御システム及びプログラム送信装置及び認証サーバ及びプログラム保護方法及びプログラム送信方法及びプログラム送信装置のプログラム |
| JP2018128722A (ja) * | 2017-02-06 | 2018-08-16 | 株式会社日立産機システム | プログラマブルロジックコントローラ |
| US20200193000A1 (en) * | 2018-12-14 | 2020-06-18 | Rockwell Automation Technologies, Inc. | Rapid file authentication on automation devices |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4916170B2 (ja) | 2005-12-26 | 2012-04-11 | 株式会社デジタル | プログラマブル表示器、サーバおよびそれらのプログラム |
| US9069966B2 (en) * | 2011-10-11 | 2015-06-30 | International Business Machines Corporation | Code updates in processing systems |
| CN103809517B (zh) * | 2014-02-21 | 2016-08-24 | 大族激光科技产业集团股份有限公司 | 数控机床的控制系统及其加密方法 |
| CN107545195B (zh) * | 2017-09-11 | 2019-11-22 | 浙江大学 | 一种加密控制器应用程序开发框架及方法 |
| CN112305986B (zh) * | 2020-10-23 | 2021-08-17 | 广州大学 | 基于验证分离的plc防护系统、方法及介质 |
-
2021
- 2021-06-08 WO PCT/JP2021/021794 patent/WO2022259384A1/ja not_active Ceased
- 2021-06-08 US US18/033,578 patent/US12596344B2/en active Active
- 2021-06-08 CN CN202180088741.8A patent/CN117377915A/zh active Pending
- 2021-06-08 DE DE112021007785.6T patent/DE112021007785T5/de active Pending
- 2021-06-08 JP JP2023526694A patent/JP7511758B2/ja active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014097444A1 (ja) * | 2012-12-20 | 2014-06-26 | 三菱電機株式会社 | 制御システム及びプログラム送信装置及び認証サーバ及びプログラム保護方法及びプログラム送信方法及びプログラム送信装置のプログラム |
| JP2018128722A (ja) * | 2017-02-06 | 2018-08-16 | 株式会社日立産機システム | プログラマブルロジックコントローラ |
| US20200193000A1 (en) * | 2018-12-14 | 2020-06-18 | Rockwell Automation Technologies, Inc. | Rapid file authentication on automation devices |
Also Published As
| Publication number | Publication date |
|---|---|
| JP7511758B2 (ja) | 2024-07-05 |
| US12596344B2 (en) | 2026-04-07 |
| US20230393549A1 (en) | 2023-12-07 |
| JPWO2022259384A1 (ja) | 2022-12-15 |
| DE112021007785T5 (de) | 2024-03-28 |
| CN117377915A (zh) | 2024-01-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11159329B2 (en) | Collaborative operating system | |
| US20050240712A1 (en) | Remote USB security system and method | |
| CN101316168B (zh) | 认证装置以及认证方法 | |
| CN111181723B (zh) | 物联网设备间离线安全认证的方法和装置 | |
| WO2015180261A1 (zh) | 智能家居的访问方法、控制中心设备及穿戴终端 | |
| JP6476167B2 (ja) | 自己認証デバイス及び自己認証方法 | |
| CN113079001A (zh) | 密钥更新方法、信息处理设备及密钥更新装置 | |
| US8832446B2 (en) | Secure data transfer in an automation network | |
| JP2007102785A (ja) | 保安方法及びシステム、その方法を記録したコンピュータで読み取り可能な記録媒体 | |
| CN105868657A (zh) | 装置和用于安全地操作该装置的方法 | |
| WO2022259384A1 (ja) | 制御システム、プログラマブルコントローラ、制御プログラム送信方法及びコントローラプログラム | |
| JP4684714B2 (ja) | ファイル管理システム、及びプログラム | |
| US8750522B2 (en) | Method and security system for the secure and unequivocal encoding of a security module | |
| EP3665859A1 (en) | Apparatus and method for encapsulation of profile certificate private keys or other data | |
| CN101515257B (zh) | 一种存储设备及其解密方法 | |
| JP6965790B2 (ja) | 電子情報記憶媒体、コマンド処理方法、及びプログラム | |
| JP5631164B2 (ja) | マルチクラスタ分散処理制御システム、代表クライアント端末、マルチクラスタ分散処理制御方法 | |
| JP2021114157A (ja) | 電子情報記憶媒体、認証コード生成方法、認証コード検証方法、及びプログラム | |
| TWI621347B (zh) | 偽造指令自動過濾系統、協同運作系統、與相關的指令核實電路 | |
| JP4774907B2 (ja) | カード通信システム,リーダライタ及びicカード | |
| JP7221462B1 (ja) | プログラマブルロジックコントローラ、制御方法及びプログラム | |
| US20260128881A1 (en) | Semiconductor device and control method of semiconductor device | |
| US20250330319A1 (en) | Methods and system to authenticate client-side transmission access | |
| RU2342697C2 (ru) | Портативное устройство хранения данных с системой шифрования | |
| CN116451185A (zh) | 一种应用程序的保护方法及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21945061 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2023526694 Country of ref document: JP Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202180088741.8 Country of ref document: CN |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 112021007785 Country of ref document: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 21945061 Country of ref document: EP Kind code of ref document: A1 |
|
| WWG | Wipo information: grant in national office |
Ref document number: 18033578 Country of ref document: US |