The present invention relates to a license information management device that manages the license information for using the program in each of the two or more control devices.
In recent years, programs to be executed in a computer have come to be downloaded through networks, and to be activated by data downloaded through networks. For example, Japanese Unexamined Patent Publication No. 2002-132368 (Patent Document 1) discloses a version-up system for allowing only the number of units of devices, covered by the price paid by the purchaser of the firmware for the firmware to be newly stored, to download the firmware.
Patent Document 1: Japanese Unexamined Patent Publication No. 2002-132368
By the way, as paragraph 0009 of Patent Document 1 describes as “The purchaser purchasing a plurality of the same models sends the secret number and the device identifier to the server so as to download the firmware program marked with the device identifier. By repeating the downloading for the number of times corresponding to the number of units of purchased devices, the version up firmware programs where the identifier of the model is embedded can be downloaded for the number of units of the devices.”, conventionally, when a program is sought to be used in a plurality of devices, there has been a problem that the work of the download and the like is needed for each of the plurality of devices, which is troublesome.
The present invention is devised in view of the above circumstances, and has an object of providing a license information management device capable of managing the license information of the program to be used in each of the two or more control devices in a manner where the work for the program to be made available becomes easier in each of the control devices.
According to an aspect, a license information management device is provided. The license information management device includes: an input device configured to accept an input of key information including information for validating a program in two or more control devices, the information corresponding to the number of units of the two or more control devices and the program; a communication device configured to transmit the key information input into the input device to an activation server; a storage device; and a controller configured to store the license information in the storage device when the communication device receives, from the activation server, license information being information for making the program available in the two or more control devices, and the license information includes data for making the program available and the number of units information for specifying the number of units of the two or more control devices.
Preferably, the controller is configured to install data for making the program available or a program made available by the data in the control devices, and to update the number of units information in such a way that the number of units of control devices on which the installation is performed is subtracted from the number of units information.
Preferably, the license information management device further includes a media drive configured to communicate with a recording medium detachable to the license information management device. The controller is configured to perform the installation on condition that a specified recording medium is attached to the media drive.
Preferably, the controller is configured to record data for making the program available and the number of units information in the specified recording medium.
Preferably, the controller is configured to record information for specifying the specified recording medium in the storage device, and to perform the installation on condition that information for specifying the specified recording medium recorded in the storage device and information for specifying the recording medium recorded in the recording medium match as well as that the number of units information recorded in the storage device and the number of units information recorded in the recording medium match.
Preferably, the controller is configured to perform the installation on condition that data for making the program available or a program made available by the data is not installed in the control devices.
According to another aspect, a license information management method to be executed by a computer of a license information management device is provided. The license information management method includes: accepting an input of key information including information for validating a program in two or more control devices, the information corresponding to the number of units of the two or more control devices and the program; transmitting the input key information to an activation server; and when license information being information for making the program available in the two or more control devices is received from the activation server, storing the license information in a storage device of the computer. The license information includes data for making the program available, and the number of units information for specifying the number of units of the two or more control devices.
According to still another aspect, a program for license information management to be executed by a computer of a license information management device is provided. The program for license information management causes the computer to execute the steps of: accepting an input of key information including information for validating a program in two or more control devices, the information corresponding to the number of units of the two or more control devices and the program; transmitting the input key information to an activation server; and when license information being information for making the program available in the two or more control devices is received from the activation server, storing the license information in a storage device of the computer. The license information includes data for making the program available, and the number of units information for specifying the number of units of the two or more control devices.
According to the invention, the license information management device can acquire the information for making the program available in each of the two or more control devices only by once transmitting the key information to the activation server. This facilitates the operation for making the program available in each of a plurality of control devices.
The embodiments of the invention will be described in detail with reference to the accompanying drawings. It should be noted that the same or corresponding portions in the drawings are denoted by the same reference numerals, and the description of them will not be repeated.
The PLC 100 is a device for controlling an FA (Factory Automation) system in the FA system installed in a production site and the like of a production plant. In addition, the PLC 100 is an example of the control device. However, in the embodiment, the control device is not limited to the device for controlling a given device such as the PLC 100 as long as the control device is a device including a processor for running a program
Each PLC 100 downloads the program to be used for control of the FA system from the computer 300. The computer 300 manages the license information of the program to be downloaded by two or more PLCs 100.
More specifically, the user purchases a license for the program to be downloaded to the two or more PLCs 100. This causes the user to obtain the information for downloading the program (hereinafter, referred to as “key information”) to the two or more PLCs 100. The key information is obtained by encryption of the data including, for example, the information for specifying the above program and the information for specifying the number of units of PLCs 100. In the embodiment, the key information is also referred to as a “license code”.
The user obtaining the key information inputs the key information into the computer 300. In response to this, the computer 300 transmits the key information to the activation server 400. The activation server 400 can be implemented by a typical server including, for example, a device for communicating with an external device and a device including an arithmetic function.
The activation server 400 determines whether the key information is valid. If determining that the key information is valid, the activation server 400 authenticates the computer 300, and performs the activation of the programs for the number of units of the two or more PLCs 100 on the computer 300. More specifically, the activation server 400 transmits the information for using the above program in the two or more PLCs 100 (the license information) to the computer 300. This enables each of the two or more PLCs 100 to download the above program from the computer 300.
The license information means the information for making the program available. An example of the license information is the program data itself. If the program is encrypted to be stored in the computer 300, the license information may be the key for decrypting the program.
In addition, the license information includes the information for specifying the number of units of the PLCs 100 capable of using the above program. It should be noted that the number of units corresponds to the key information.
In the license management system according to the first embodiment, the computer 300 acquires the license information about the program to be installed in two or more PLCs 100 by one activation process (the transmission of the key information to the activation server 400). This enables the user to install the program in the two or more PLCs 100 with one computer 300 even when the two or more PLCs 100 are in the environment where they cannot communicate with the activation server 400, such as the environment where they cannot be connected to the public network.
The activation server 400 is preferable to store the key information used in the authentication (or, the information for specifying the key information) as the already used information. This allows the possibility to be avoided that the authentication is performed a plurality of times by using the same key information.
<Hardware Configuration of Computer 300>
More specifically, as illustrated in
The information for specifying the program to be installed in the PLC 100 (program ID), the program data, and the number of units of the PLCs 100 capable of installing the program may be stored in the hard disk 308. In
The application for managing the license information of the program to be executed in the PLC 100 is installed in the computer 300. In
The computer 300 also includes a keyboard 310 and a mouse 312 for accepting the operation from the user, a monitor 314 for presenting information to the user, and a connector 316. The connector 316 is provided for connecting with an external device including a recording medium 600 such as a universal serial bus (USB) memory. The CPU 302 may communicate with an external device such as the recording medium 600 through the connector 316. This allows the CPU 302 to execute the program stored, for example, in the recording medium 600. As to the program to be executed by the computer 300, the program may be downloaded from a higher-level host computer and the like through a network. The computer 300 further includes a communication interface (IF) 318 for communicating with the PLC 100 (CPU unit 104) and the like.
<Hardware Configuration of PLC 100>
The processor 122 controls the operation of the PLC 100 by executing the program stored in the nonvolatile memory 126 and the like. The main memory 124 may be used as a work area of the processor 122. The non-volatile memory 126 stores various kinds of data such as programs. The input device 132 accepts the input of information from the outside, and is constituted, for example, by buttons and the like. The connector 134 is provided for connecting with an external device including a recording medium such as a USB memory. The processor 122 can communicate with an external device through the connector 134.
<Processing for Acquiring License Information>
With reference to
In step S12, the CPU 302 transmits the license code whose input is accepted in step S10 to the activation server 400.
In response to this, in step S30, (the arithmetic unit of) the activation server 400 determines whether the license code transmitted from the computer 300 is valid. The activation server 400 calculates the hash value of the sequence included in, for example, the license code, and then determines the license code to be valid if the hash value is a specific value, and determines the license code not to be valid if the hash value is other than the specific value. The activation server 400 advances the control to step S34 if determining that the license code is valid (YES in step S30), and advances the control to step S32 if determining that the license code is not valid (NO in step S30).
In step S32, the activation server 400 notifies the computer 300 that the license code transmitted by the computer 300 is invalid.
Upon receiving the notification, in step S14, the CPU 302 reports that the license code whose input is accepted in step S10 is invalid. The report can be achieved by display of the message to that effect, for example, on the monitor 314.
On the other hand, in step S34, the activation server 400 determines whether the license code is not yet used in the authentication. As described above, the activation server 400 can store the key information used in the authentication (the license code) (or, the information for specifying the key information) as the already used information. In step S34, the activation server 400 determines whether the license code transmitted from the computer 300 is stored as the information already used in the activation server 400. If determining that the above license code is stored as the information already used, the activation server 400 advances the control to step S36 (NO in step S34). In addition, if determining that the above license code is not stored as the information already used, the activation server 400 advances the control to step S38 (YES in step S34).
In step S36, the activation server 400 notifies the computer 300 that the license code transmitted by the computer 300 is the one already used in the authentication.
Upon receiving the notification, in step S16, the CPU 302 reports that the license code input in step S10 cannot be used because the license code is the information already used in the authentication. The report can be achieved by display of, for example, the message to that effect on the monitor 314.
In step S38, the activation server 400 transmits the license information to the computer 300. The license information to be transmitted is the information for the number of units that the license code corresponds to of the devices to use the program corresponding to the license code transmitted from the computer 300 in step S12. It should be noted that the license code only needs to correspond to the program and the number of units of the PLCs 100, does not directly need to include the information for specifying the program, and does not directly need to include the information for specifying the number of units, either.
Upon receiving the license information, in step S18, the CPU 302 reports that the authentication of the license is successful. The report can be achieved by display of the message to that effect, for example, on the monitor 314. Then, the control is advanced to step S20.
In step S20, the CPU 302 stores the program data into the download program memory 382 based on the license information, stores the number of units of devices capable of installing the program into the license remaining number memory 293, and ends the processing in
<Installation of Program>
With reference to
The value of the number of units to be stored in the license remaining number memory 393 is registered as the maximum number permitted from the activation server 400 in step S20 (see
In step S62, the CPU 302 reports that the license remaining number is insufficient, and ends the processing in
In step S64, the CPU 302 determines whether the program to be the object of installation in the PLC 100 is not installed yet in the PLC 100. The determination is based on whether a program having the same file name and version as the program is stored, for example, in the non-volatile memory 126 of the PLC 100. The CPU 302 advances the control to step S68 if determining that the program is not installed yet in the PLC 100 (YES in step S64), and advances the control to step S66 if determining that the program is already installed.
In step S66, the CPU 302 reports that the program is already installed in the PLC 100 in which the CPU 302 tries to install the program of the object, and ends the processing in
In step S68, the CPU 302 installs the program of the object in the PLC 100. Then, the control is advanced to step S70.
In step S70, the CPU 302 counts the number of units stored in the license remaining number memory 393 (the license remaining number) down by one, and ends the processing in
In the first embodiment described above, the computer 300 acquires the information for using the program and the information for specifying the number of units of the PLCs 100 capable of using the program by one-time activation. The PLC 100 has the program installed from the computer 300. The number of units specified by the information is updated in such a way that as many as the number of units of the PLCs 100 in which the computer 300 installs the program is subtracted from the number of units specified by the information.
In the first embodiment, as a specific example of when the program is installed in the PLC 100 from the computer 300, the download of the program data is described. It should be noted that when the program data is encrypted to be stored, for example, in the PLC 100, the key of the encryption may be downloaded from the computer 300 to the PLC 100 instead of the program data itself being downloaded.
In the second embodiment, the license information is managed by a computer 300 and a recording medium 600. More specifically, the computer 300 performs the program installation described with reference to
<Configuration of Computer 300>
In the HDD 308 of the computer 300 of the second embodiment, the information for specifying the computer 300 itself and the information for specifying the recording medium 600 are further stored. In
<Summary of Management of License Information>
First, with reference to
In addition, as with the computer 300A, the recording medium 600 may store the respective values of the “program ID”, the “license remaining number”, the “PCID”, the “media ID”, and the “download program”. In the state illustrated in
Next, with reference to
The “program ID” is the information for specifying the program to be installed in the PLC 100, and is stored in the program ID memory 391.
The “license remaining number” is the remaining number of the PLCs 100 capable of installing the program, and is stored in the license remaining number memory 393.
The “download program” is the program data to be installed in the
PLC 100, and is stored in the download program memory 392.
The computer 300A acquires the values of the “program ID”, the “license remaining number”, and the “download program”, for example, by acquiring the license information from the activation server 400. In addition, the computer 300A acquires the value of the “media ID” from the recording medium 600.
In the state illustrated in
When the computer 300A is no longer available due to a failure or a loss, the user connects the recording medium 600 connected to the computer 300A to the other computer 300B. In
In the state illustrated in
On the other hand, in the state illustrated in
As will be described below with reference to
The computer 300B also writes the “PCID” of the computer 300B in the recording medium 600. This allows the “PC02” in the computer 300B, instead of the “PC01” in the computer 300A, to be stored in the recording medium 600 as the value of the “PCID” in the state illustrated in
As described above with reference to
<Processing for Acquiring License Information>
With reference to
With reference to
In step S202, the CPU 302 reports an error to return the control to step S200. That is, in the processing in
In step S204, the CPU 302 registers the ID of the recording medium 600 connected to the connector 316 in the media ID memory 395 as the media ID. Then, the control is advanced to step S206.
In step S206, as with step S20 in
In step S208, the “program ID”, the “license remaining number”, the “PCID”, and the “download program” are written in the recording medium 600. Then, the processing in
<Installation of Program>
With reference to
In step S42, the CPU 302 reports an error due to the recording medium 600 being not connected, and ends the processing in
In step S44, the CPU 302 reads the information recorded in the recording medium 600. The Information to be read is the values of the “program ID”, the “license remaining number”, the “PCID”, the “media ID”, and the “download program” described with reference to
In step S46, the CPU 302 determines whether the value of the “media ID” is recorded in the media ID memory 395 of the computer 300 (where the CPU 302 is mounted). Then, the CPU 302 advances the control to step S50 if determining that the value of the “media ID” is recorded (YES in step S46), and advances the control to step S48 if determining that the value of the “media ID” is not recorded (NO in step S46).
In step S48, the CPU 302 reads the “program ID”, the “license remaining number”, the “media ID”, and the “download program” from the recording medium 600, and writes them respectively in the program ID memory 391, the license remaining number memory 393, the media ID memory 395, and the download program memory 392. In addition, the CPU 302 writes the “PCID” recorded in the PCID memory 394 in the recording medium 600. The control of step S48 corresponds to the change from
In step S50, the CPU 302 determines whether the “media ID” read from the recording medium 600 matches the media ID recorded in the media ID memory 395. Then, the CPU 302 advances the control to step S60 if determining that they match (YES in step S50), and advances the control to step S52 if determining that they do not match (NO in step S50).
In step S52, the CPU 302 reports that an invalid recording medium 600 is connected, and ends the processing in
The control of steps S60 to S70 may be performed in the same manner as the control corresponding to the processing in
More specifically, in step S60, the CPU 302 determines whether the license remaining number recorded in the license remaining number memory 393 is larger than zero. Then, the CPU 302 advances the control to step S64 if determining that the license remaining number is larger than zero (YES in step S60), and advances the control to step S62 if determining that the license remaining number is zero or less (NO in step S60).
In step S62, the CPU 302 reports that the license remaining number is insufficient for installation of the program, and ends the processing in
In step S64, the CPU 302 determines whether the program to be the object of installation in the PLC 100 is not installed yet in the PLC 100. Then, the CPU 302 advances the control to step S68 if determining that the program is not installed yet in the PLC 100 (YES in step S64), and advances the control to step S66 if determining that the program is already installed.
In step S66, the CPU 302 reports that the program is already installed in the PLC 100 in which the CPU 302 tries to install the program of the object, and ends the processing in
In step S68, the CPU 302 installs the program of the object in the PLC 100. Then, the control is advanced to step S70.
In step S70, the CPU 302 counts the license remaining number stored in the license remaining number memory 393 down by one. Then, the control is advanced to step S72.
In step S72, the CPU 302 counts the value of the license remaining number recorded in the recording medium down by one, and ends the processing in
As described above, in the processing described with reference to
It should be considered that the embodiments disclosed herein are merely illustrative in all respects, and are not intended to be limiting. The scope of the invention is indicated by the claims, rather than the description above, and is intended to include all modifications within the meaning and range of equivalency of the claims.
100 PLC
122 processor
124 main memory
126 non-volatile memory
132 input device
134, 316 connector
300 computer
302 CPU
308 HDD
390 application memory
391 program ID memory
392 download program memory
393 license remaining number memory
394 PCID memory
395 media ID memory
400 activation server
600 recording medium
Number | Date | Country | Kind |
---|---|---|---|
2014-052677 | Mar 2014 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2015/050878 | 1/15/2015 | WO | 00 |