WO2020070873A1 - Cpu unit, programmable logic controller, method, program, and engineering tool - Google Patents

Cpu unit, programmable logic controller, method, program, and engineering tool

Info

Publication number
WO2020070873A1
WO2020070873A1 PCT/JP2018/037339 JP2018037339W WO2020070873A1 WO 2020070873 A1 WO2020070873 A1 WO 2020070873A1 JP 2018037339 W JP2018037339 W JP 2018037339W WO 2020070873 A1 WO2020070873 A1 WO 2020070873A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
unit
execution
points
point
Prior art date
Application number
PCT/JP2018/037339
Other languages
French (fr)
Japanese (ja)
Inventor
美泰 長友
智明 鎌倉
Original Assignee
三菱電機株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2018/037339 priority Critical patent/WO2020070873A1/en
Priority to JP2019530227A priority patent/JP6570801B1/en
Priority to CN201880098306.1A priority patent/CN112789648A/en
Publication of WO2020070873A1 publication Critical patent/WO2020070873A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Definitions

  • the present invention relates to a CPU unit, a programmable logic controller, a method, a program, and an engineering tool.
  • the programmable logic controller controls the movement of the device to be controlled by executing a program created by the user according to the intended use. Creating a program from scratch requires creation time, creation skills, and the like. In order to support the creation of a program, a manufacturer of a programmable logic controller sells a program component, which is a software componentized to realize a specific function.
  • program parts are often sold as a library in which a plurality of program parts are set, and the user has to purchase the library.
  • the user only needs a part of the program components included in the library, and there has been a request to purchase only some of the program components.
  • Patent Literature 1 describes that a user can execute only a selected program component.
  • the amount charged for each program component in a period unit is determined.
  • the user purchases in advance a usage right whose frequency exceeds the sum of the billing amounts of the selected program components. After the lapse of the determined period, the frequency corresponding to the charge for the program component selected by the user is subtracted from the frequency of the usage right purchased by the user.
  • a user can purchase out-of-the-box program parts using points purchased in advance.
  • the points held by the user are used for the price of the program part. Since the program component is a purchase-out type, the user can continue to use the program component regardless of the number of times the program component is used and the period in which the program component is used.
  • Patent Document 1 In the configuration of Patent Document 1, the frequency of the usage right purchased by the user is consumed as the period elapses. Therefore, when the frequency becomes zero, the program component cannot be executed. In order to prevent such a situation, Patent Document 1 describes that a warning is issued to a user when the frequency becomes equal to or less than a certain value. For this reason, the user needs to constantly monitor whether a warning has occurred. In addition, the user must purchase additional usage rights of an appropriate frequency before the frequency becomes zero. As described above, it takes time and effort to monitor the occurrence of the warning and frequently purchase the usage right, and the user is not convenient.
  • the present invention has been made in view of the above circumstances, and when a programmable logic controller executes a charged program part, it is possible to freely combine a plurality of program parts within the range of points held by the programmable logic controller. It is possible to enhance convenience for the user.
  • the value point storage means stores, for at least one program component, a value point indicating a price required to execute the program component.
  • the limit point storage means stores a limit point which indicates a limit at which the execution of the program component is permitted in the CPU unit, and is maintained regardless of the number of times the program component is executed and the execution period of the program component. .
  • the determining means determines that the program part can be executed if the total value points of the selected program part is equal to or less than the limit point, and determines that the program part can be executed if the total value point exceeds the limit point. It is determined that the component cannot be executed.
  • the execution management unit executes the program component when the determination unit determines that the program component can be executed, and does not execute the program component when the determination unit determines that the execution of the program component is not possible.
  • the CPU unit of the present invention can execute the selected program component when the sum of the consideration points of the selected program component is equal to or less than the limit point indicating the limit of execution of the program component. Therefore, the user can freely combine a plurality of program parts within the range of the limit point. Further, the limit point is maintained regardless of the number of executions of the program component and the execution period of the program component. Therefore, even when the combination of the program parts is changed, if the sum of the consideration points is equal to or less than the limit point, the execution of the program parts can be continued without performing the point purchase.
  • FIG. 1 is a block diagram showing a hardware configuration of a CPU unit, an engineering tool, and a point management server according to an embodiment of the present invention.
  • Functional block diagram of CPU unit and engineering tool according to the embodiment FIG. 3 is a diagram illustrating an example of a configuration of a user program according to the embodiment.
  • 6 is a diagram illustrating an example of data of a point management table stored in a point storage unit of the engineering tool according to the embodiment.
  • FIG. 4 is a diagram showing an example of a serial code input screen according to the embodiment.
  • Flow chart of initial processing according to the embodiment Flow chart of a program execution process according to the embodiment
  • FIG. 9 is a diagram showing an example of data registered in the executable data according to the first modification.
  • a CPU (Central Processing Unit) unit 100 of a programmable logic controller (hereinafter, referred to as a PLC) 1000 will be described.
  • the PLC 1000 includes a CPU unit 100 that controls the entire PLC 1000, an input unit 200 that supplies an input from an external device to the CPU unit 100, and an output unit that supplies an output of the CPU unit 100 to the external device. 300.
  • the CPU unit 100, the input unit 200, and the output unit 300 are connected via a field bus 400 and perform communication via the field bus 400.
  • the CPU unit 100, the input unit 200, and the output unit 300 are connected to a power supply unit via a base unit, and operate with power supplied from the power supply unit.
  • PLC1000 is used, for example, in the field of factory automation.
  • a detector 901 including a sensor, a switch, and the like is connected to the input unit 200.
  • the input unit 200 supplies a signal indicating ON / OFF of the switch to the CPU unit 100.
  • a controlled device 902 including an actuator, an indicator light, and the like is connected to the output unit 300.
  • the output unit 300 outputs a control signal indicating on / off supplied from the CPU unit 100 to the indicator light. Therefore, the indicator light is turned on / off.
  • the CPU unit 100 executes each command of a program (hereinafter, may be referred to as a user program) created by a user of the PLC 1000 according to a signal indicating on / off supplied from the input unit 200, and outputs an actuator, a display, and the like.
  • a signal for controlling the controlled device 902 including a lamp and the like is supplied to the output unit 300.
  • the user of the PLC 1000 is, for example, an administrator of the PLC 1000.
  • a user program may call and execute a program component in which the function is mounted.
  • a program component is a componentized software.
  • calling a program component from a user program and executing it may be called a call.
  • the program parts are commercially available, paid program parts (hereinafter referred to as “paid program parts”) which must be paid to the creator of the program parts for execution, and program parts created by the user himself. (Hereinafter, referred to as self-made program components). There is no need to pay for execution of self-made program components created by the user himself.
  • the price for executing the pay program component is represented by points (hereinafter referred to as price points).
  • the user of the PLC 1000 must have at least the same number of points as the value points indicating the price of the paid program component so that the CPU unit 100 can execute the paid program component.
  • the user In order to hold the points, the user must pay the amount corresponding to the value points of the paid program parts to the creator of the paid program parts and purchase the points. Further, the user needs to register the purchased points in the CPU unit 100.
  • the CPU unit 100 determines whether or not to execute a pay program component according to points registered in the CPU unit 100 and points indicating the value of the pay program component to be called from the user program when executing the program component. I do.
  • the points purchased by the user and registered in the CPU unit 100 do not change according to the number of executions and the execution period of the paid program component.
  • the CPU unit 100 can execute the plurality of payable program components indefinitely as long as the total value of the plurality of payable program components to be called does not exceed the holding points.
  • the CPU unit 100 has, as a hardware configuration, a storage unit 110 that stores various data, a communication unit 120 that communicates with the input unit 200 and the output unit 300, and receives an input operation by a user. It includes an input receiving unit 130, a display unit 140 for displaying an image on a display device, an arithmetic unit 150 for controlling the entire CPU unit 100, and a tool communication unit 160 for communicating with the engineering tool 500.
  • the storage unit 110, the communication unit 120, the input receiving unit 130, the display unit 140, and the tool communication unit 160 are all connected to the arithmetic unit 150 via the bus 190, and communicate with the arithmetic unit 150. .
  • the storage unit 110 includes a volatile memory and a nonvolatile memory.
  • the storage unit 110 stores various programs and data.
  • the storage unit 110 implements a program 001 for realizing a function of an execution possibility determination unit 152 described later when executed by the arithmetic unit 150, and realizes a function of an execution management unit 153 described later when executed by the arithmetic unit 150.
  • a program 002 for storing The storage unit 110 stores a serial number as identification information for identifying the CPU unit 100 itself.
  • the possessed point information registered in the CPU unit 100 is supplied as encrypted data from the engineering tool 500 described later to the CPU unit 100.
  • the storage unit 110 stores a decryption key for decrypting the encrypted data.
  • the communication unit 120 includes a network interface circuit for communicating with the input unit 200 and the output unit 300 via the field bus 400.
  • the communication unit 120 outputs the data received from the input unit 200 to the arithmetic unit 150, and transmits the data supplied from the arithmetic unit 150 to the output unit 300.
  • the input receiving unit 130 includes buttons, operation keys, and the like, receives an operation input from a user, and outputs a signal indicating the user's operation input to the calculation unit 150.
  • the display unit 140 includes a display device such as an indicator lamp and a display.
  • the display unit 140 turns on / off the indicator lamp under the control of the arithmetic unit 150, for example, and displays an image based on the signal supplied from the arithmetic unit 150 on the display.
  • the operation unit 150 includes an MPU (Micro Processing Unit).
  • the arithmetic unit 150 executes various programs stored in the storage unit 110 to implement various functions of the CPU unit 100.
  • the tool communication unit 160 includes a communication interface for communicating with the engineering tool 500 described below via the communication cable 600.
  • the tool communication unit 160 outputs the data received from the engineering tool 500 to the arithmetic unit 150, and transmits the data supplied from the arithmetic unit 150 to the engineering tool 500.
  • the CPU unit 100 functionally includes a program storage unit 111 that stores a user program and various libraries, and a point storage that stores points held by the CPU unit 100 (hereinafter, held points).
  • Unit 112 an executable flag 113 that holds a value indicating whether a paid program component can be executed, a file operation unit 151 that writes files of various programs supplied from an engineering tool 500 described later into the program storage unit 111,
  • An executable / non-executable determining unit 152 for determining whether the component can be executed, an execution managing unit 153 for managing the execution of the paid program component, and a point managing unit 154 for writing the points allocated to the CPU unit 100 as the holding points in the point storage unit 112 And the engineer And a communication interface 161 to communicate with the packaging tool 500.
  • the program storage unit 111 stores the first library file 10, the second library file 20, and the user program file 30.
  • the program storage unit 111 is realized by the storage unit 110 illustrated in FIG.
  • the program storage unit 111 is an example of a program storage unit according to the present invention.
  • the first library file 10 includes a file header 11 and a pay application 12.
  • the file header 11 includes information on consideration points required for execution of the pay application 12.
  • the file header 11 is an example of a value point storage unit of the present invention.
  • the pay application 12 is a pay program component called from the user program 32.
  • the second library file 20 includes a file header 21 and a free application 22.
  • the file header 21 includes various information on the free application 22 in the second library file 20. Note that, unlike the file header 11 of the first library file 10, the file header 21 does not include information on the value points. This is because the free application 22 is an application created by the user and does not require a fee for execution.
  • the free application 22 is a free program component called from the user program 32.
  • the user program file 30 includes a file header 31 and a user program 32 created by the user.
  • the user program 32 is executed as follows.
  • the CPU unit 100 sequentially processes the user program 32 as shown in FIG. 2B from the first instruction, and upon reading an END instruction indicating the end of the program, terminates the execution of the user program 32 and restarts the user program 32 in the next cycle. Process sequentially from the first instruction.
  • the point storage unit 112 stores retained points, which are points purchased by the user and allocated to the CPU unit 100.
  • the holding points indicate a limit in which the CPU unit 100 is allowed to execute the pay application 12.
  • the point storage unit 112 is realized by the storage unit 110 illustrated in FIG.
  • the point storage unit 112 is an example of the limit point storage unit of the present invention. Holding points are an example of the limit points of the present invention.
  • the CPU unit 100 can execute the pay application 12 when the total value points of the pay application 12 called by the user program 32 do not exceed the holding points held by the CPU unit 100.
  • the point management unit 154 writes the retained point information supplied from the engineering tool 500 into the point storage unit 112.
  • the holding point information includes the holding points assigned to the CPU unit 100 and the serial number of the CPU unit 100.
  • the executable flag 113 holds a flag value indicating whether or not the CPU unit 100 can execute the pay application 12.
  • the executable flag 113 is realized by the storage unit 110 shown in FIG. This flag value is determined depending on whether or not the possessed points are equal to or greater than the sum of the consideration points of the pay application 12 called by the user program 32.
  • a flag value indicating the execution possibility is set by the execution possibility determination unit 152 described later.
  • the file operation unit 151 writes various program files into the program storage unit 111.
  • the file operation unit 151 is realized by the arithmetic unit 150 and the tool communication unit 160 shown in FIG.
  • the file operation unit 151 stores all or a part of the first library file 10, the second library file 20, and the user program file 30 supplied from the engineering tool 500 in the program storage unit 111.
  • the file operation unit 151 deletes the specified file in the program storage unit 111.
  • the execution availability determination unit 152 shown in FIG. 2A analyzes the user program file 30 and obtains the total value points of the pay application 12 called by the user program 32.
  • the execution possibility determination unit 152 determines whether or not the possessed points held by the point storage unit 112 is equal to or greater than the total of the obtained consideration points, and sets a value in the execution possibility flag 113 according to the result of the determination.
  • the execution possibility determination unit 152 is realized by the calculation unit 150 illustrated in FIG. 1 executing the program 001 in the storage unit 110.
  • the execution availability determination unit 152 is an example of a determination unit according to the present invention.
  • the execution possibility determination unit 152 executes a value indicating that the execution of the pay application 12 is impossible.
  • the flag is set in the availability flag 113. In the embodiment, if it is determined that the pay application 12 can be executed, the execution determination unit 152 sets the execution determination flag 113 to “1”, which is a value indicating “executable”. When determining that the execution of the pay application 12 is not possible, the execution possibility determination unit 152 sets “0”, which is a value indicating “executable”, in the execution possibility flag 113.
  • the execution management unit 153 executes the pay application 12 based on the value set in the executable flag 113 when the execution target instruction is an instruction to call the pay application 12 when the user program 32 is executed. Control whether or not to do so.
  • the execution management unit 153 is realized by the calculation unit 150 illustrated in FIG. 1 executing the program 002 in the storage unit 110.
  • the execution management unit 153 is an example of the execution management unit of the present invention.
  • the execution management unit 153 illustrated in FIG. 2A restricts the execution of the pay application 12 when, for example, the pay application 12 is called and the execution permission flag 113 is set to “0” which is a value indicating “non-execution”. I do. Therefore, the paid application 12 is not executed. On the other hand, when “1” which is a value indicating “executable” is set in the executable flag 113, the execution management unit 153 does not limit the execution of the pay application 12.
  • the point management unit 154 writes the owned point information supplied from the engineering tool 500 into the point storage unit 112. Further, when the updated holding point information is supplied from the engineering tool 500, the point management unit 154 rewrites the points held by the point storage unit 112.
  • the possessed point information is exchanged between the engineering tool 500 and the CPU unit 100 as described below in order to prevent falsification of the possessed point information.
  • the engineering tool 500 encrypts the possessed point information and supplies the encrypted data to the CPU unit 100.
  • the point management unit 154 stores the encrypted possessed point information supplied from the engineering tool 500 in the point storage unit 112. The retained point information is decrypted at the time of the initial processing of the CPU unit 100.
  • the engineering tool 500 requests the possessed point information of the point storage unit 112
  • the CPU unit 100 transmits the encrypted possessed point information to the engineering tool 500.
  • the communication interface 161 communicates with the communication interface 521 of the engineering tool 500.
  • the communication interface 161 outputs the data received from the engineering tool 500 to the file operation unit 151 or the point management unit 154.
  • the communication interface 161 is realized by the tool communication unit 160 shown in FIG.
  • the engineering tool 500 is a tool that supports development, setting, and the like related to the PLC 1000, and is a device in which a dedicated application is installed on a personal computer. As shown in FIG. 1, the engineering tool 500 is connected to the CPU unit 100 by a communication cable 600 and communicates with the CPU unit 100.
  • the user creates the user program 32 to be executed by the CPU unit 100 using the engineering tool 500, and writes the created user program 32 into the program storage unit 111 of the CPU unit 100 shown in FIG. 2A.
  • the user uses the engineering tool 500 to purchase points necessary for executing the pay application 12, which is a pay program component, and uses the purchased points as holding points in the CPU unit 100. You can register. Further, the user can use the engineering tool 500 to write the paid application 12 as a paid program component and the free application 22 as a self-made program component in the program storage unit 111 of the CPU unit 100.
  • the point management server 700 shown in FIG. 1 manages data relating to points registered in the CPU unit 100.
  • the point management server 700 is, for example, a computer that is located at the origin of a paid program component.
  • the point management server 700 is connected to the engineering tool 500 via the network 800 and communicates with the engineering tool 500.
  • the user accesses the point management server 700 via the engineering tool 500, and purchases points, allocates points to the CPU unit 100, and the like.
  • the engineering tool 500 has, as a hardware configuration, a storage unit 510 for storing various data, a communication unit 520 for communicating with the CPU unit 100, an input receiving unit 530 for receiving a user's input operation, and outputting an image to a display. And a computing unit 550 for controlling the entire engineering tool 500, and a server communication unit 560 for communicating with the point management server 700.
  • the storage unit 510, the communication unit 520, the input reception unit 530, the display unit 540, and the server communication unit 560 are all connected to the calculation unit 550 via the bus 590, and communicate with the calculation unit 550. .
  • Storage unit 510 includes a volatile memory and a nonvolatile memory.
  • the storage unit 510 stores various programs and data.
  • the storage unit 510 stores a serial number as identification information of each of the CPU units 100 to be managed.
  • the communication unit 520 includes a network interface circuit, and communicates with the CPU unit 100 connected by the communication cable 600 under the control of the arithmetic unit 550. For example, the communication unit 520 transmits a program file, various setting parameters, and the like to the CPU unit 100 under the control of the arithmetic unit 550.
  • the input receiving unit 530 includes a mouse, operation keys, and the like, receives an operation input from a user, and outputs a signal indicating the user's operation input to the calculation unit 550.
  • Display unit 540 includes a display, and displays an image based on the signal supplied from operation unit 550 on the display.
  • Operation unit 550 includes a CPU.
  • the arithmetic unit 550 executes various programs stored in the storage unit 510 to implement various functions of the engineering tool 500.
  • the server communication unit 560 includes a communication interface for communicating with a point management server 700 described below via the network 800.
  • the point management server 700 includes, as a hardware configuration, a storage unit 710 for storing various data, a communication unit 720 for communicating with the engineering tool 500, and a calculation unit 730 for controlling the entire point management server 700. Both the storage unit 710 and the communication unit 720 are connected to the calculation unit 730 via the bus 790, and communicate with the calculation unit 730.
  • the storage unit 710 includes a volatile memory and a nonvolatile memory.
  • the storage unit 710 stores various programs and data.
  • the communication unit 720 includes a network interface circuit, and communicates with the engineering tool 500 via the network 800 under the control of the arithmetic unit 730.
  • Arithmetic unit 730 includes a CPU. The arithmetic unit 730 executes various programs stored in the storage unit 710 to realize various functions of the point management server 700.
  • the point management server 700 realizes each function of the engineering tool 500 in cooperation with the engineering tool 500.
  • the engineering tool 500 functionally includes a program storage unit 511 that stores various programs, a point storage unit 512 that stores owned points, a communication interface 521 that communicates with the CPU unit 100, A file operation unit 551 for writing files of various programs to the CPU unit 100 and a point management unit 552 for managing possessed points are included.
  • the program storage unit 511 stores a pay library file 1, a self-made library file 2, a user program file 3, and consideration data 4, as shown in FIG. 3A.
  • the program storage unit 511 is realized by the storage unit 510 illustrated in FIG.
  • the program storage unit 511 is an example of a storage unit according to the present invention.
  • the pay library file 1 shown in FIG. 3A includes a pay application 12 which is a pay program component.
  • the pay application 12 is downloaded by a user at a site for providing the pay application 12 via the engineering tool 500.
  • the pay application 12 is a program component in a format executable by the CPU unit 100 and is encrypted data.
  • the pay library file 1 may include the pay application 12 that is not called from the user program 32.
  • the self-made library file 2 includes a free application 22, which is a self-made program component.
  • the free application 22 is created by a user using a program creation function of the engineering tool 500. Therefore, there is no need to pay for the execution of the free application 22.
  • the user program file 3 includes a user program 32 created by the user.
  • the consideration data 4 includes data in which consideration points of each of the paid applications 12 downloaded by the user are set.
  • the consideration data 4 is downloaded by the user via the engineering tool 500 at the site where the paid application 12 is provided.
  • the point storage unit 512 shown in FIG. 2A includes a point management table 5120 storing data on points, as shown in FIG. 3B.
  • the point management table 5120 stores a user ID for identifying a user, the total points owned by the user, the serial number of the CPU unit 100, and the owned points assigned to each CPU unit 100.
  • the point storage unit 512 is realized by the storage unit 710 of the point management server 700 illustrated in FIG.
  • the point storage unit 512 is an example of a storage unit of the present invention.
  • the communication interface 521 communicates with the communication interface 161 of the CPU unit 100.
  • the communication interface 521 transmits the file output from the file operation unit 551 to the CPU unit 100.
  • the communication interface 521 transmits the owned point information output from the point management unit 552 to the CPU unit 100.
  • the communication interface 521 is realized by the communication unit 520 of the engineering tool 500 shown in FIG.
  • the file operation unit 551 shown in FIG. 2A writes files of various programs stored in the program storage unit 511 to the CPU unit 100 in accordance with a user's instruction.
  • the file operation unit 551 is realized by the communication unit 520 and the calculation unit 550 shown in FIG.
  • the file operation unit 551 reads the price points of the designated pay application 12 from the price data 4 of the program storage unit 511 shown in FIG. 3A, and stores the file header 11 including the read price point information. create.
  • the file operation unit 551 outputs a file including the paid application 12 and the created file header 11 to the communication interface 521 for transmission to the CPU unit 100 as the first library file 10.
  • the file operation unit 551 creates the file header 21 including information on the free application 22.
  • the file operation unit 551 outputs a file including the free application 22 and the file header 21 to the communication interface 521 for transmission to the CPU unit 100 as the second library file 20.
  • the file operation unit 551 creates the file header 31 including information for specifying the pay application 12 which is a pay program component called by the user program 32.
  • the file operation unit 551 outputs a file including the user program 32 and the created file header 31 to the communication interface 521 for transmission to the CPU unit 100 as the user program file 30.
  • the point management unit 552 shown in FIG. 2A manages the retained points stored in the point storage unit 512 in accordance with a user's instruction.
  • the point management unit 552 is realized by the communication unit 520 and the operation unit 550 of the engineering tool 500 illustrated in FIG. 1 and the communication unit 720 and the operation unit 730 of the point management server 700.
  • the point management unit 552 is an example of the updating unit of the present invention.
  • the functions realized by the point management unit 552 are (1) point registration, (2) point allocation, (3) point writing, (4) point confirmation, and (5) point deletion. Hereinafter, each function will be described in order.
  • the point management unit 552 registers the points purchased by the user in the point management server 700 as purchased points of the user. It is assumed that the user has paid in advance the necessary amount for purchasing the required points to the creator of the paid program component, and has acquired a serial code for identifying the user and the purchased points at the time of payment. The point management unit 552 stores the information for identifying the user in the point storage unit 512 in association with the points purchased by the user. Note that in (1) point registration, points cannot be written to the CPU unit 100. Writing of points to the CPU unit 100 is performed by (3) point writing described later.
  • the user uses the engineering tool 500 to register points in the following procedure.
  • the user presses a “to point management screen” button from the menu screen shown in FIG.
  • operation unit 550 of engineering tool 500 displays a login screen for performing user authentication shown in FIG. 6A on display unit 540.
  • the user inputs a user name and a password on the login screen.
  • the entered user name and password are transmitted from the engineering tool 500 to the point management server 700.
  • the point management server 700 performs an authentication process. If the authentication is successful, the main screen of the point management shown in FIG. 6B is displayed on the display unit 540 of the engineering tool 500. After the user authentication, the point management server 700 is accessed, and the engineering tool 500 and the point management server 700 perform the following processing in cooperation with each other.
  • arithmetic unit 550 of engineering tool 500 displays a serial code input screen shown in FIG. 6C on display unit 540.
  • the user inputs the serial code acquired at the time of point purchase on the serial code input screen, and presses the “OK” button.
  • the arithmetic unit 550 requests the contractor name specified from the serial code and the purchased points, and converts the input serial code and the user ID for identifying the user into a server ID.
  • the data is transmitted to the point management server 700 via the communication unit 560.
  • the calculation unit 730 of the point management server 700 transmits the contractor name and the purchased points specified from the received serial code to the engineering tool 500.
  • the calculation unit 550 of the engineering tool 500 displays a point registration screen as shown in FIG. 6D on the display unit 540.
  • the calculation unit 550 displays the contractor name and the purchased points received from the point management server 700 on the point registration screen. It is assumed that the user has pressed the “register” button on the point registration screen.
  • the arithmetic unit 550 transmits the serial code and the user ID for identifying the user to the point management server 700 via the server communication unit 560.
  • the calculation unit 730 of the point management server 700 stores the purchased points identified from the received serial code in association with the user ID in the point storage unit 512 illustrated in FIG. 3B.
  • Point allocation In addition, the point management unit 552 allocates possessed points to each of the CPU units 100 according to a user instruction. Note that in (2) point allocation, points cannot be written to the CPU unit 100. Writing of points to the CPU unit 100 is performed by (3) point writing described later.
  • the arithmetic unit 550 of the engineering tool 500 requests the point management server 700 to present the purchased points associated with the user ID.
  • the calculation unit 730 of the point management server 700 reads out purchased points associated with the user ID from the point storage unit 512, and transmits the read points to the engineering tool 500.
  • the calculation unit 550 of the engineering tool 500 displays a point assignment screen as shown in FIG. 7A on the display unit 540.
  • the calculation unit 550 displays, on the point assignment screen, a list of purchased points supplied from the point management server 700 and a list of the serial numbers of the CPU units 100 stored in the storage unit 510 as a PLC list.
  • the CPU unit 100 executes the application 1001, the application 1002, and the application 1003.
  • the total value points required to execute these applications is 800 points obtained by adding 100 points, 500 points, and 200 points, as shown in the price data 4 shown in FIG. 3A.
  • the user needs to purchase at least 800 points and allocate at least 800 points to the CPU unit 100 on the point allocation screen shown in FIG. 7A. It is assumed that the user inputs a point to be assigned to each CPU unit 100 and presses a “register” button.
  • the arithmetic unit 550 of the engineering tool 500 registers the serial number for identifying each CPU unit 100 and the input point in association with the user ID so as to register it. Request to.
  • the calculation unit 730 of the point management server 700 stores the points assigned to each of the CPU units 100 in the point storage unit 512 illustrated in FIG. 3B.
  • the point management unit 552 writes points to the CPU unit 100 specified by the user.
  • the writing of points to the CPU unit 100 needs to be performed in a state where the engineering tool 500 and the CPU unit 100 to which the points are to be written are connected by the communication cable 600.
  • the arithmetic unit 550 of the engineering tool 500 requests the point management server 700 for the data of the possessed points for each CPU unit associated with the user ID.
  • the calculation unit 730 of the point management server 700 reads data of points for each CPU unit 100 associated with the user ID from the point management table 5120 shown in FIG. 3B, and transmits the read data to the engineering tool 500.
  • the calculation unit 550 of the engineering tool 500 When receiving the response from the point management server 700, the calculation unit 550 of the engineering tool 500 displays a point writing screen as shown in FIG. 7B on the display unit 540.
  • the calculation unit 550 displays the possessed points for each CPU unit 100 supplied from the point management server 700 on the point writing screen.
  • the arithmetic unit 550 of the engineering tool 500 encrypts the possessed point information including the serial number, which is the identification information of the designated CPU unit 100, and the points assigned to the CPU unit 100. , And transmits the encrypted data to the CPU unit 100 via the communication interface 521 in FIG. 2A.
  • the computing unit 150 When the arithmetic unit 150 functioning as the point management unit 154 of the CPU unit 100 receives the possessed point information from the engineering tool 500 via the communication interface 161, the computing unit 150 stores the received possessed point information in the point storage unit 112.
  • the point management unit 552 reads the points owned by the CPU unit 100 connected to the engineering tool 500 from the CPU unit 100 so that the user can check the points written in the CPU unit 100. It is necessary to check the points of the CPU unit 100 in a state where the engineering tool 500 and the CPU unit 100 to which the points are to be written are connected by the communication cable 600.
  • the arithmetic unit 150 of the CPU unit 100 converts the possessed point information stored in the point storage unit 112 via the communication interface 161.
  • the data is transmitted to the engineering tool 500.
  • the computing unit 550 of the engineering tool 500 decodes the received possessed point information, and decodes the decrypted point and serial number as shown in FIG. 7C. Display on the point confirmation screen.
  • the point management unit 552 deletes the retained points written in the CPU unit 100 connected to the engineering tool 500. It is necessary to delete the points of the CPU unit 100 in a state where the engineering tool 500 and the CPU unit 100 to which the points are to be written are connected by the communication cable 600.
  • the arithmetic unit 550 of the engineering tool 500 transmits a command for requesting possessed point information to the CPU unit 100 via the communication interface 521, and from the CPU unit 100 to the point storage unit 112. Get stored holding point information.
  • the calculation unit 550 of the engineering tool 500 displays a point deletion screen as shown in FIG.
  • the calculation unit 550 displays the point and the serial number on the point deletion screen. The points and the serial number are obtained by decoding the held point information in the point storage unit 112.
  • the arithmetic unit 550 of the engineering tool 500 transmits a command for instructing the CPU unit 100 to delete points via the communication interface 521.
  • the arithmetic unit 150 of the CPU unit 100 receives a command for instructing deletion of a point from the engineering tool 500 via the communication interface 161, the arithmetic unit 150 deletes possessed point information stored in the point storage unit 112. Further, the calculation unit 150 transmits a notification of completion of deletion of the possessed point information to the engineering tool 500 via the communication interface 161.
  • the arithmetic unit 550 of the engineering tool 500 When receiving the notification of the completion of the deletion of the possessed point information from the CPU unit 100 via the communication interface 521, the arithmetic unit 550 of the engineering tool 500 sends the notification of the point deletion together with the serial number of the corresponding CPU unit 100 to the point management server. Send to 700.
  • the arithmetic unit 730 of the point management server 700 receives the notification of the deletion of the point from the engineering tool 500, the arithmetic unit 730 deletes the point assigned to the target serial number in the point storage unit 512 shown in FIG. 3B.
  • the calculation unit 730 may set the point of the target serial number to “0”, for example.
  • the functions realized by the point management unit 552 have been described above.
  • the user needs to create the user program 32 and the necessary free application 22. For this reason, the user creates the user program 32 using the “create program” menu of the engineering tool 500 shown in FIG.
  • the created user program 32 is stored in the program storage unit 511 shown in FIG. 3A. Further, the user creates the free application 22 with the engineering tool 500 as necessary.
  • the created free application 22 is stored in the program storage unit 511.
  • the user program 32 calls the pay application 12, the user needs to download the pay application 12. For this reason, the user presses the “download paid application” button from the menu screen of the engineering tool 500 shown in FIG.
  • the arithmetic unit 550 of the engineering tool 500 accesses the site for providing the pay application 12, and displays a download screen of the pay application as shown in FIG. It is assumed that the user selects the desired paid application 12 and presses a “download” button.
  • operation unit 550 downloads pay application 12 and stores pay application 12 in program storage unit 511. The user may download the paid application 12 that is not called from the user program 32 to the engineering tool 500.
  • the user needs to write the paid library file 1, the self-made library file 2, and the user program file 3 into the CPU unit 100. For this reason, the user presses a “write data” button from the menu screen of the engineering tool 500 shown in FIG.
  • the arithmetic unit 550 of the engineering tool 500 displays a data writing screen shown in FIG. 9 on the display unit 540. The user selects a desired file from the paid library file 1, the self-made library file 2, and the user program file 3 on the data writing screen, and presses an "execute” button.
  • the arithmetic unit 550 of the engineering tool 500 functioning as the file operation unit 551 transmits the file specified by the user to the CPU unit 100 via the communication interface 521.
  • the calculation unit 550 creates the file header 11 including the price points of the pay application 12 read from the price data 4.
  • the calculation unit 550 adds the file header 11 to the pay library file 1, creates the first library file 10, and transmits the first library file 10 to the CPU unit 100.
  • the arithmetic unit 150 of the CPU unit 100 functioning as the file operation unit 151 stores the received first library file 10 in the program storage unit 111.
  • the calculation unit 550 creates the second library file 20 in which the file header 21 is added to the self-made library file 2.
  • the calculation unit 550 transmits the second library file 20 to the CPU unit 100.
  • the calculation unit 150 of the CPU unit 100 functioning as the file operation unit 151 stores the received second library file 20 in the program storage unit 111.
  • the arithmetic unit 550 creates the user program file 30 in which an appropriate file header 31 is added to the user program file 3.
  • the arithmetic unit 550 transmits the user program file 30 to the CPU unit 100.
  • the arithmetic unit 150 of the CPU unit 100 functioning as the file operation unit 151 stores the received user program file 30 in the program storage unit 111.
  • the execution of the user program 32 in the CPU unit 100 is restricted by the relationship between the holding points registered in the CPU unit 100 and the total value points of the pay application 12 called from the user program 32. . Therefore, as described above, the user needs to perform (1) point registration, (2) point allocation, and (3) point writing using the engineering tool 500.
  • the above is the procedure to be performed by the user in the CPU unit 100 prior to the execution of the user program 32. Since the above-described procedure is an example, some procedures may be omitted and the procedures may be interchanged.
  • the arithmetic unit 150 functions as the execution determination unit 152 illustrated in FIG. 2A, and performs processing related to execution determination for determining whether the pay application 12 called from the user program 32 can be executed. explain. The process for determining whether or not execution is possible is executed as part of the initial process of the CPU unit 100.
  • the user needs to turn off the power of the CPU unit 100 and then turn on the power of the CPU unit 100 again. This is for starting the initial processing by the firmware of the CPU unit 100 by turning on the power again.
  • the program writing, (1) point registration, (2) point allocation, and (3) point writing have already been performed. It is assumed that 800 points are registered in the point storage unit 112 in advance. Also, it is assumed that the execution permission flag 113 is set to “0” which is a default value indicating “non-execution”.
  • the arithmetic unit 150 initializes various memories of the CPU unit 100 (step S1).
  • the operation unit 150 checks the program file stored in the program storage unit 111 (Step S2). Specifically, the calculation unit 150 checks whether the file stored in the program storage unit 111 among the first library file 10, the second library file 20, and the user program file 30 is damaged.
  • the calculation unit 150 determines whether the possessed point information is stored in the point storage unit 112 (step S3). If it is determined that the possessed point information is stored in the point storage unit 112 (Step S3; Yes), the arithmetic unit 150 decrypts the possessed point information using the decryption key (Step S4).
  • the calculation unit 150 determines whether or not the possessed points are valid (step S5). More specifically, if the serial number included in the decrypted holding point information matches the serial number stored in the storage unit 110 of the CPU unit 100, the calculation unit 150 determines that the holding points are valid. Is determined (Step S5; Yes), and the process of Step S6 is executed. On the other hand, if the serial number included in the decrypted holding point information does not match the serial number stored in the storage unit 110 of the CPU unit 100, the calculating unit 150 determines that the holding point is invalid. (Step S5; No), the initial processing ends. At this time, the calculation unit 150 may display an error regarding the owned points on the display unit 140.
  • step S3 If the calculation unit 150 determines in step S3 that the stored point information is not stored in the point storage unit 112 (step S3; No), the processing in step S6 is performed without executing the processing in steps S4 and S5. Execute
  • the calculation unit 150 determines whether the first library file 10 which is a paid library file is stored in the program storage unit 111 (step S6). When the first library file 10 is stored in the program storage unit 111 (Step S6; Yes), the calculation unit 150 decrypts the first library file 10 that is a paid library file (Step S7).
  • the calculation unit 150 obtains the total value points of the pay application 12 called by the user program 32 (step S8). Specifically, the calculation unit 150 reads the value points of the pay application 12 called by the user program 32 from the file header 11 of FIG. 2A, and calculates the total value points. For example, when the application program 1001, the application program 1002, and the application program 1003 shown in FIG. 2A are called from the user program 32, the consideration value of the application 1001 is 100 points, the consideration value of the application 1002 is 500 points, and the value of the application 1003 is Since the consideration points are 200 points, the total of the consideration points is 800 points.
  • the arithmetic unit 150 determines whether or not the possessed points included in the possessed point information decrypted in step S4 are equal to or greater than the sum of the consideration points of the pay application 12 obtained in step S8 (step S9). ). If the calculation unit 150 determines that the possessed points are equal to or greater than the sum of the consideration points (step S9; Yes), the calculation unit 150 sets “1”, which is a value indicating “executable”, to the executable flag 113. (Step S10).
  • the arithmetic unit 150 sets the executable flag 113 to “executable” with a value indicating “executable”. A certain “1” is set, and the initial processing ends.
  • the arithmetic unit 150 sets “0” which is a value indicating “executable” to the executable flag 113 (Step S9). S11), the initial processing ends. For example, in a case where the owned points are 500 points and the total of the consideration points of the pay application 12 called by the user program 32 is 800 points, the calculation unit 150 determines that the possession points are less than the total of the consideration points. Determine.
  • step S5 If the calculation unit 150 determines in step S5 that the possessed points are not valid (step S5; No), the initial processing ends. Also in this case, the value of the execution permission flag 113 is not changed and remains at the default. At this time, the arithmetic unit 150 may, for example, turn on an indicator lamp of the display unit 140 to notify the user of the error.
  • the arithmetic unit 150 sequentially processes each instruction of the user program 32.
  • the arithmetic unit 150 functions as the execution management unit 153 by processing each instruction of the user program 32 according to the procedure shown in FIG.
  • the arithmetic unit 150 determines whether the CPU unit 100 is in the RUN state (step S21). When the RUN switch of the CPU unit 100 is on, the arithmetic unit 150 determines that the CPU unit 100 is in the RUN state (Step S21; Yes), and executes the process of Step S22. On the other hand, when the RUN switch is not turned on, the arithmetic unit 150 determines that the RUN state is not established (step S21; No), and ends the program execution process.
  • the RUN switch is a hardware switch of the CPU unit 100 and is manually operated by a user.
  • the operation unit 150 reads the next command of the user program 32 in step S22 (step S22). For example, in the execution of the user program 32 immediately after the initial processing, the first instruction of the user program 32 is read.
  • the operation unit 150 determines whether the command read in step S22 is a command for calling the pay application 12 in the first library file 10 (step S23).
  • the arithmetic unit 150 sets the value of the execution flag 113 to “executable”. It is determined whether it is "1" (step S24).
  • step S24 If it is determined that the value of the executable flag 113 is “1” indicating “executable” (step S24; Yes), the arithmetic unit 150 converts the paid application 12 specified by the instruction read in step S22 into Call (step S25). For example, if the command read in step S22 is a command for calling the application 1002 shown in FIG. 2A, the arithmetic unit 150 calls the application 1002. After that, the arithmetic unit 150 performs the process of step S26.
  • step S24 when the value of the execution permission flag 113 is not “1” which is a value indicating “executable”, that is, when the value of the execution permission flag 113 is “0” which is a value indicating “non-execution” ( (Step S24; No), the arithmetic unit 150 executes the processing of step S26 without calling the pay application 12 specified by the instruction read in step S22.
  • step S23 when the arithmetic unit 150 determines that the instruction read in step S22 is not an instruction to call the pay application 12 (step S23; No), the arithmetic unit 150 executes the instruction (step S27). For example, when the read instruction is an instruction for calling the free application 22, the arithmetic unit 150 calls the free application 22. After that, the arithmetic unit 150 performs the process of step S26.
  • step S26 the arithmetic unit 150 determines whether the next instruction is an END instruction (step S26).
  • Step S26 determines that the read instruction is an END instruction
  • the processing unit 150 executes the processing from step S22 again.
  • the CPU unit 100 may execute the pay application 12. it can.
  • the CPU unit 100 does not have the possessed points equal to or greater than the sum of the consideration points of the pay application 12 called from the user program 32, the CPU unit 100 cannot execute any pay application 12. Therefore, when the instruction of the user program 32 is an instruction to call the pay application 12, the CPU unit 100 skips the execution of the instruction.
  • the possessed points do not decrease according to the number of times of execution of the application and the execution period. Therefore, the user does not need to monitor the remaining number of owned points while the programmable logic controller is operating. In addition, since the number of retained points does not decrease, the user does not need to purchase additional points due to the shortage of the remaining number. In this way, despite the fact that only the selected program component can be used, there is no need for the user to perform complicated work, and the convenience is high. In addition, the user can continue to execute the pay application 12 within the range of the purchased points. As described above, the execution of the pay application 12 cannot be prevented due to the elapse of the period.
  • the CPU unit 100 can execute the pay application 12 indefinitely. As described above, in the embodiment, the pay application 12 is written in the CPU unit 100 in file units. Even if the user program 32 is modified and the combination of the called pay applications 12 is changed, if the sum of the consideration points of the called pay application 12 does not exceed the retained points, the CPU unit 100 deletes the charged application 12. Can be performed. In this case, the user does not need to purchase additional points. Note that the process for determining whether the pay application 12 can be executed is executed as a part of the initial process. Therefore, after the user program 32 is modified, the initial process needs to be executed again.
  • the user may purchase additional necessary points and register them in the CPU unit 100.
  • the CPU unit 100 describes that the possessed points are written to the CPU unit 100 in the procedure to be performed by the user before the execution of the user program 32 is started. Once written, the point writing procedure is not required as long as it is not necessary to change or delete the owned points.
  • the engineering tool 500 reads the holding points assigned to the CPU unit 100 from the point storage unit 512 of the CPU unit 100, and calculates the difference between the total of the consideration points of the pay application 12 called in the user program 32 and the holding points. May be displayed on the display unit 540. Therefore, the user can know whether or not the pay application 12 has been called, and can make an adjustment by additionally purchasing points, modifying the user program 32, and the like.
  • the execution of the pay application 12 is permitted.
  • an example has been described in which execution of the pay application 12 is not permitted at all.
  • the configuration of the execution restriction of the pay application 12 is not limited to this.
  • FIG. 12 shows an example of data stored in the consideration data 4a to which information indicating the priority is added.
  • the execution availability determination unit 152 determines whether the paid applications 12 stored in the consideration data 4a can be executed in the order of priority in the process related to the execution availability determination within a range permitted by the holding points. It is determined whether or not. For example, it is assumed that the priorities are defined as shown in FIG. 12 and the possessed points are 700 points. In this case, the execution availability determination unit 152 determines that the applications 1002 and 1003 can be executed according to the priority within the range of the holding points. The execution determination unit 152 determines that the application 1001, the application 1004, and the application 1005 cannot be executed.
  • the execution possibility determination unit 152 determines that the applications 1001 to 1003 can be executed according to the priority order within the range of the holding points, and the applications 1004 and 1005 cannot be executed. Further, the execution possibility determination unit 152 may store information indicating the execution possibility in the execution possibility data 113a as shown in FIG. FIG. 13 shows information stored in the executable data 113a when the possessed points are 800 points. In FIG. 13, information indicating that the applications 1001 to 1003 can be executed is stored in the execution possibility data 113a. The execution management unit 153 controls whether or not to execute the pay application 12 based on the information indicating whether or not execution is possible, which is stored in the execution possibility data 113a. In this case, the execution enable / disable flag 113 shown in FIG. 2A is unnecessary.
  • Modification 2 Alternatively, instead of setting the consideration points for each of the paid applications 12, the applications may be classified by category, and control may be performed so that the paid application 12 of a predetermined category can be executed according to the number of possessed points.
  • FIG. 14 shows an example of the category table 4b storing data indicating the association between the pay application 12 and the category. In this case, the value data 4 shown in FIG. 3A is unnecessary.
  • the possession points of 500 points or more is a condition under which the execution of the category 1 pay application 12 is permitted. It is assumed that the possession points of 800 points or more are the conditions under which the execution of the category 1 and category 2 pay applications 12 is permitted. It is assumed that the holding point of 1200 points or more is a condition under which the execution of the pay applications 12 of the categories 1 to 3, that is, all the pay applications 12 is permitted. It is assumed that data indicating these conditions is stored in the storage unit 110 in advance. Here, it is assumed that the possessed points are 900 points. In this case, the execution availability determination unit 152 determines that the paid application 12 of the category 1 and the category 2 can be executed in the process related to the determination of the availability. From the categories shown in FIG.
  • the execution possibility determination unit 152 stores information indicating the execution possibility in the execution possibility data 113b as shown in FIG.
  • the execution management unit 153 controls whether or not to execute the pay application 12 based on the information indicating whether or not execution is possible, which is stored in the execution possibility data 113b. In this case, the execution enable / disable flag 113 shown in FIG. 2A is unnecessary.
  • the PLC 1000 may include two or more CPU units 100. Even in such a case, as shown in FIG. 3B, there is no problem because the holding points are assigned to the serial number of the CPU unit 100.
  • the CPU unit 100 may operate on two or more virtual machines operating on one information processing device. For example, one of the plurality of CPU units 100 operates on the host machine, and the other CPU units operate on the virtual machine.
  • the point storage unit 512 may store data in which information for identifying each CPU unit 100 is associated with the possessed points of each CPU unit 100.
  • the file operation unit 551 may analyze the user program 32 and write only the pay application 12 called by the user program 32 to the CPU unit 100. In this case, the used capacity of the storage unit 110 is not increased unnecessarily.
  • the arithmetic unit 150 illustrated in FIG. 1 includes an MPU.
  • the arithmetic unit 150 includes an ASIC (Application Specific Integrated Circuit) that is an application-specific integrated circuit in addition to the MPU. May be.
  • the operation unit 150 may further include an FPGA (Field Programmable Gate Array).
  • a recording medium for recording a program for causing the operation unit 150 to function as the execution availability determination unit 152 and a program for causing the operation unit 150 to function as the execution management unit 153
  • a magnetic disk, an optical disk, a magneto-optical disk A computer-readable recording medium including a flash memory, a semiconductor memory, and a magnetic tape can be used.

Landscapes

  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Programmable Controllers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

In a CPU unit (100) of a programmable logic controller, a point storage unit (112) stores possessed points representing a limit to which execution of the paid application (12) is accepted in the CPU unit (100), the possessed points being maintained regardless of the number of times of execution of the paid application (12) and the execution time period of a program component. When the total countervalue points of the selected paid application (12) is equal to or less than the possessed points, an execution possibility determining unit (152) determines that execution of the paid application (12) is possible, and when the total countervalue points of the selected paid application (12) is greater than the possessed points, the execution possibility determining unit (152) determines that execution of the paid application (12) is impossible. When execution of the paid application (12) is possible, an execution managing unit (153) executes the paid application (12).

Description

CPUユニット、プログラマブルロジックコントローラ、方法、プログラム、及びエンジニアリングツールCPU unit, programmable logic controller, method, program, and engineering tool
 本発明は、CPUユニット、プログラマブルロジックコントローラ、方法、プログラム、及びエンジニアリングツールに関する。 << The present invention relates to a CPU unit, a programmable logic controller, a method, a program, and an engineering tool.
 プログラマブルロジックコントローラは、ユーザが用途に応じて作成したプログラムを実行することで、制御対象の機器の動きを制御する。プログラムを一から作成することは、作成時間、作成スキル等を要する。プログラムの作成の支援のため、プログラマブルロジックコントローラのメーカーから、特定の機能を実現するため部品化されたソフトウェアであるプログラム部品が販売されている。 (4) The programmable logic controller controls the movement of the device to be controlled by executing a program created by the user according to the intended use. Creating a program from scratch requires creation time, creation skills, and the like. In order to support the creation of a program, a manufacturer of a programmable logic controller sells a program component, which is a software componentized to realize a specific function.
 このようなプログラム部品は、従来、複数のプログラム部品をセットにしたライブラリとして販売されることが多く、ユーザは、ライブラリを購入しなければならなかった。しかし、ユーザがライブラリに含まれているプログラム部品の一部しか必要としていない場合も多く、一部のプログラム部品だけを購入したいという要望があった。 Conventionally, such program parts are often sold as a library in which a plurality of program parts are set, and the user has to purchase the library. However, in many cases, the user only needs a part of the program components included in the library, and there has been a request to purchase only some of the program components.
 上述のような要望をかなえるため、特許文献1には、ユーザが、選択したプログラム部品だけを実行することができることが記載されている。特許文献1では、各プログラム部品には、期間単位で課金される額が決められている。ユーザは、選択したプログラム部品の課金額の合計を上回る度数の使用権を予め購入しておく。決められた期間が経過すると、ユーザが購入した使用権の度数から、ユーザが選択したプログラム部品の課金額に相当する度数が減算される。 (4) In order to satisfy the above-mentioned demand, Patent Literature 1 describes that a user can execute only a selected program component. In Patent Literature 1, the amount charged for each program component in a period unit is determined. The user purchases in advance a usage right whose frequency exceeds the sum of the billing amounts of the selected program components. After the lapse of the determined period, the frequency corresponding to the charge for the program component selected by the user is subtracted from the frequency of the usage right purchased by the user.
 また、他の購入形態として、ユーザが予め購入したポイントを使用して、買い切り型のプログラム部品を購入することができる。プログラム部品の購入時には、プログラム部品の代金にユーザが保有するポイントが充当される。プログラム部品が買い切り型であるため、ユーザは、プログラム部品を使用した回数、及び、プログラム部品を使用した期間にかかわらず、プログラム部品を継続して使用することができる。 Also, as another purchase mode, a user can purchase out-of-the-box program parts using points purchased in advance. When purchasing a program part, the points held by the user are used for the price of the program part. Since the program component is a purchase-out type, the user can continue to use the program component regardless of the number of times the program component is used and the period in which the program component is used.
特開2003-22143号公報JP-A-2003-22143
 特許文献1の構成では、ユーザが購入した使用権の度数は期間の経過とともに消費される。従って、度数がゼロになるとプログラム部品を実行することができなくなる。このような事態を防止するため、特許文献1には、度数が一定値以下になった場合に、ユーザに警告を出すことが記載されている。このため、ユーザは警告が発生していないかを常時監視する必要がある。さらに、ユーザは度数がゼロになる前に適宜の度数の使用権を追加購入しなければならない。このように、警告の発生の監視、使用権の度々の購入という手間がかかることになり、ユーザにとって使い勝手がよいものではなかった。 In the configuration of Patent Document 1, the frequency of the usage right purchased by the user is consumed as the period elapses. Therefore, when the frequency becomes zero, the program component cannot be executed. In order to prevent such a situation, Patent Document 1 describes that a warning is issued to a user when the frequency becomes equal to or less than a certain value. For this reason, the user needs to constantly monitor whether a warning has occurred. In addition, the user must purchase additional usage rights of an appropriate frequency before the frequency becomes zero. As described above, it takes time and effort to monitor the occurrence of the warning and frequently purchase the usage right, and the user is not convenient.
 また、買い切り型のプログラム部品を購入した後で、プログラム部品の組み合わせを変更する場合、ユーザは新たに必要なプログラム部品を購入する必要がある。例えば、プログラム部品に試用期間が設けられており、試用期間内にプログラム部品の購入をキャンセルすると、購入時に使用したポイントが返還されることがある。ユーザはポイント返還請求の手続きをして、ポイントが返還された後に、返還されたポイントを新たに必要なプログラム部品の購入に充てることができる。この場合、ポイントが返還されるため、ユーザはポイントを無駄に使用することはない。しかし、ポイント返還請求の手続きがユーザにとって煩雑であり、ユーザにとって使い勝手がよいものではなかった。 (4) When changing the combination of program parts after purchasing a purchase-type program part, the user needs to purchase a new necessary program part. For example, a trial period is provided for a program component, and if the purchase of the program component is canceled during the trial period, points used at the time of purchase may be returned. The user can perform a point return request procedure, and after the points have been returned, can use the returned points to purchase new necessary program parts. In this case, since the points are returned, the user does not waste the points. However, the procedure for requesting the return of points is complicated for the user, and is not convenient for the user.
 本発明は、上記実情に鑑みてなされたものであり、プログラマブルロジックコントローラが有料のプログラム部品を実行する場合に、プログラマブルロジックコントローラが保有するポイントの範囲内で自由に複数のプログラム部品を組み合わせることができ、ユーザにとっての利便性を高くすることを目的とする。 The present invention has been made in view of the above circumstances, and when a programmable logic controller executes a charged program part, it is possible to freely combine a plurality of program parts within the range of points held by the programmable logic controller. It is possible to enhance convenience for the user.
 上記目的を達成するため、本発明のプログラマブルロジックコントローラのCPUユニットにおいて、対価ポイント記憶手段は、少なくとも1つのプログラム部品について、プログラム部品の実行に要求される対価を示す対価ポイントを記憶する。限度ポイント記憶手段は、CPUユニットにおいて、プログラム部品の実行が認められる限度を示すポイントであって、プログラム部品の実行回数、及び、プログラム部品の実行期間、にかかわらず維持される限度ポイントを記憶する。判別手段は、選択されたプログラム部品の対価ポイントの合計が、限度ポイント以下である場合、プログラム部品の実行が可能であると判別し、対価ポイントの合計が、限度ポイントを超えている場合、プログラム部品の実行が不可能であると判別する。実行管理手段は、判別手段がプログラム部品の実行が可能であると判別した場合、プログラム部品を実行し、判別手段がプログラム部品の実行が不可能であると判別した場合、プログラム部品を実行しない。 In order to achieve the above object, in the CPU unit of the programmable logic controller according to the present invention, the value point storage means stores, for at least one program component, a value point indicating a price required to execute the program component. The limit point storage means stores a limit point which indicates a limit at which the execution of the program component is permitted in the CPU unit, and is maintained regardless of the number of times the program component is executed and the execution period of the program component. . The determining means determines that the program part can be executed if the total value points of the selected program part is equal to or less than the limit point, and determines that the program part can be executed if the total value point exceeds the limit point. It is determined that the component cannot be executed. The execution management unit executes the program component when the determination unit determines that the program component can be executed, and does not execute the program component when the determination unit determines that the execution of the program component is not possible.
 本発明のCPUユニットは、選択されたプログラム部品の対価ポイントの合計が、プログラム部品の実行が認められる限度を示す限度ポイント以下である場合、選択されたプログラム部品を実行することができる。よって、ユーザは、限度ポイントの範囲内で自由に複数のプログラム部品を組み合わせることができる。さらに、限度ポイントはプログラム部品の実行回数、及び、プログラム部品の実行期間、にかかわらず維持される。このため、プログラム部品の組み合わせを変更した場合であっても、対価ポイントの合計が限度ポイント以下であるならば、ポイント追加購入を行うことなく、プログラム部品の実行を継続することが可能である。 The CPU unit of the present invention can execute the selected program component when the sum of the consideration points of the selected program component is equal to or less than the limit point indicating the limit of execution of the program component. Therefore, the user can freely combine a plurality of program parts within the range of the limit point. Further, the limit point is maintained regardless of the number of executions of the program component and the execution period of the program component. Therefore, even when the combination of the program parts is changed, if the sum of the consideration points is equal to or less than the limit point, the execution of the program parts can be continued without performing the point purchase.
本発明の実施の形態に係るCPUユニット、エンジニアリングツール及びポイント管理サーバのハードウェア構成を示すブロック図FIG. 1 is a block diagram showing a hardware configuration of a CPU unit, an engineering tool, and a point management server according to an embodiment of the present invention. 実施の形態に係るCPUユニット及びエンジニアリングツールの機能ブロック図Functional block diagram of CPU unit and engineering tool according to the embodiment 実施の形態に係るユーザプログラムの構成の一例を示す図FIG. 3 is a diagram illustrating an example of a configuration of a user program according to the embodiment. 実施の形態に係るエンジニアリングツールのプログラム記憶部の構成を示す図The figure which shows the structure of the program storage part of the engineering tool concerning embodiment. 実施の形態に係るエンジニアリングツールのポイント記憶部に格納されるポイント管理テーブルのデータの一例を示す図6 is a diagram illustrating an example of data of a point management table stored in a point storage unit of the engineering tool according to the embodiment. 実施の形態に係るエンジニアリングツールのメニュー画面の一例を示す図The figure which shows an example of the menu screen of the engineering tool concerning embodiment. 実施の形態に係る有料アプリケーションのダウンロード画面の一例を示す図The figure which shows an example of the download screen of the pay application which concerns on embodiment. 実施の形態に係るポイント管理メニューへのログイン画面の一例を示す図The figure which shows an example of the login screen to the point management menu which concerns on embodiment. 実施の形態に係るポイント管理のメイン画面の一例を示す図The figure which shows an example of the main screen of the point management which concerns on embodiment. 実施の形態に係るシリアルコード入力画面の一例を示す図FIG. 4 is a diagram showing an example of a serial code input screen according to the embodiment. 実施の形態に係るポイント登録画面の一例を示す図The figure which shows an example of the point registration screen which concerns on embodiment. 実施の形態に係るポイント割り当て画面の一例を示す図The figure which shows an example of the point allocation screen which concerns on embodiment. 実施の形態に係るポイント書き込み画面の一例を示す図The figure which shows an example of the point writing screen concerning embodiment. 実施の形態に係るポイント確認画面の一例を示す図The figure which shows an example of the point confirmation screen which concerns on embodiment. 実施の形態に係るポイント削除画面の一例を示す図The figure which shows an example of the point deletion screen which concerns on embodiment. 実施の形態に係るデータ書き込み画面の一例を示す図The figure which shows an example of the data writing screen which concerns on embodiment. 実施の形態に係るイニシャル処理のフローチャートFlow chart of initial processing according to the embodiment 実施の形態に係るプログラム実行処理のフローチャートFlow chart of a program execution process according to the embodiment 変形例1に係る対価データに登録されるデータの一例を示す図The figure which shows an example of the data registered into the consideration data concerning the modification 1. 変形例1に係る実行可否データに登録されるデータの一例を示す図FIG. 9 is a diagram showing an example of data registered in the executable data according to the first modification. 変形例2に係るカテゴリテーブルに登録されるデータの一例を示す図The figure which shows an example of the data registered into the category table which concerns on the modification 2. 変形例2に係る実行可否データに登録されるデータの一例を示す図The figure which shows an example of the data registered into the executable data according to the modification 2.
(実施の形態)
 以下、本発明の実施の形態に係るプログラマブルロジックコントローラ(Programmable Logic Controller、以下、PLCと示す)1000のCPU(Central Processing Unit)ユニット100を説明する。
(Embodiment)
Hereinafter, a CPU (Central Processing Unit) unit 100 of a programmable logic controller (hereinafter, referred to as a PLC) 1000 according to an embodiment of the present invention will be described.
 図1に示すように、PLC1000は、PLC1000全体を制御するCPUユニット100と、外部機器からの入力をCPUユニット100に供給する入力ユニット200と、CPUユニット100の出力を外部機器へ供給する出力ユニット300とを含む。CPUユニット100と入力ユニット200と出力ユニット300とは、フィールドバス400を介して接続され、フィールドバス400を介して通信を行う。また、図示していないが、CPUユニット100と入力ユニット200と出力ユニット300とは、ベースユニットを介して電源ユニットに接続されており、電源ユニットから供給される電源によって動作する。PLC1000は、例えば、ファクトリーオートメーションの分野で使用される。 As shown in FIG. 1, the PLC 1000 includes a CPU unit 100 that controls the entire PLC 1000, an input unit 200 that supplies an input from an external device to the CPU unit 100, and an output unit that supplies an output of the CPU unit 100 to the external device. 300. The CPU unit 100, the input unit 200, and the output unit 300 are connected via a field bus 400 and perform communication via the field bus 400. Although not shown, the CPU unit 100, the input unit 200, and the output unit 300 are connected to a power supply unit via a base unit, and operate with power supplied from the power supply unit. PLC1000 is used, for example, in the field of factory automation.
 入力ユニット200には、センサ、スイッチ等を含む検出器901が接続されている。例えば、検出器901がスイッチである場合、入力ユニット200はスイッチのオン/オフを示す信号を、CPUユニット100に供給する。出力ユニット300には、アクチュエータ、表示灯等を含む被制御機器902が接続されている。例えば、被制御機器902が表示灯である場合、出力ユニット300は、CPUユニット100から供給されたオン/オフを示す制御信号を、表示灯に出力する。よって、表示灯が点灯/消灯する。 検 出 A detector 901 including a sensor, a switch, and the like is connected to the input unit 200. For example, when the detector 901 is a switch, the input unit 200 supplies a signal indicating ON / OFF of the switch to the CPU unit 100. A controlled device 902 including an actuator, an indicator light, and the like is connected to the output unit 300. For example, when the controlled device 902 is an indicator light, the output unit 300 outputs a control signal indicating on / off supplied from the CPU unit 100 to the indicator light. Therefore, the indicator light is turned on / off.
 CPUユニット100は、入力ユニット200から供給されたオン/オフを示す信号に応じて、PLC1000のユーザが作成したプログラム(以下、ユーザプログラムと称することがある)の各命令を実行し、アクチュエータ、表示灯等を含む被制御機器902を制御する信号を出力ユニット300に供給する。PLC1000のユーザは、例えば、PLC1000の管理者である。 The CPU unit 100 executes each command of a program (hereinafter, may be referred to as a user program) created by a user of the PLC 1000 according to a signal indicating on / off supplied from the input unit 200, and outputs an actuator, a display, and the like. A signal for controlling the controlled device 902 including a lamp and the like is supplied to the output unit 300. The user of the PLC 1000 is, for example, an administrator of the PLC 1000.
 ユーザプログラムは、特定の機能を実現するため、その機能が実装されたプログラム部品を呼び出して実行することがある。プログラム部品とは、部品化されたソフトウェアのことである。以下、ユーザプログラムからプログラム部品を呼び出して実行することをコールすると言うことがある。プログラム部品には、市販品であり、実行するために対価を、そのプログラム部品の作成元に支払わなければならない有料のプログラム部品(以下、有料プログラム部品と称する)と、ユーザ自身が作成したプログラム部品(以下、自作プログラム部品と称する)とが含まれている。ユーザ自身が作成した自作プログラム部品については、実行のための対価は不要である。 (4) In order to realize a specific function, a user program may call and execute a program component in which the function is mounted. A program component is a componentized software. Hereinafter, calling a program component from a user program and executing it may be called a call. The program parts are commercially available, paid program parts (hereinafter referred to as “paid program parts”) which must be paid to the creator of the program parts for execution, and program parts created by the user himself. (Hereinafter, referred to as self-made program components). There is no need to pay for execution of self-made program components created by the user himself.
 実施の形態において、有料プログラム部品の実行に関しては、下記のようなルールに従わなければならないものとする。有料プログラム部品を実行するための対価はポイント(以下、対価ポイントと称する)で表される。PLC1000のユーザは、CPUユニット100が有料プログラム部品を実行することができるようにするため、少なくとも有料プログラム部品の対価を示す対価ポイントと同数のポイントを保有していなければならない。ユーザは、ポイントを保有するため、有料プログラム部品の対価ポイントに応じた金額を有料プログラム部品の作成元に支払って、ポイントを購入しなければならない。さらに、ユーザは、購入したポイントをCPUユニット100に登録する必要がある。また、CPUユニット100が有料プログラム部品を実行するためには、有料プログラム部品の対価ポイントの合計以上のポイントが、CPUユニット100が保有する保有ポイントとして、CPUユニット100に登録されている必要がある。 に お い て In the embodiment, the following rules must be followed for execution of paid program components. The price for executing the pay program component is represented by points (hereinafter referred to as price points). The user of the PLC 1000 must have at least the same number of points as the value points indicating the price of the paid program component so that the CPU unit 100 can execute the paid program component. In order to hold the points, the user must pay the amount corresponding to the value points of the paid program parts to the creator of the paid program parts and purchase the points. Further, the user needs to register the purchased points in the CPU unit 100. In addition, in order for the CPU unit 100 to execute the pay program component, it is necessary that points equal to or more than the sum of the consideration points of the pay program component are registered in the CPU unit 100 as possessed points possessed by the CPU unit 100. .
 CPUユニット100は、プログラム部品の実行に際し、CPUユニット100に登録されたポイントと、ユーザプログラムからコールする有料プログラム部品の価値を示すポイントとに応じて、有料プログラム部品を実行するか否かを判別する。 The CPU unit 100 determines whether or not to execute a pay program component according to points registered in the CPU unit 100 and points indicating the value of the pay program component to be called from the user program when executing the program component. I do.
 ユーザが購入し、CPUユニット100に登録したポイントは、有料プログラム部品の実行回数、実行期間に応じて変動するものではない。CPUユニット100は、コールする複数の有料プログラム部品の対価の合計が、保有するポイントを超えない限り、当該複数の有料プログラム部品を何度でも、無期限に実行することが可能である。 The points purchased by the user and registered in the CPU unit 100 do not change according to the number of executions and the execution period of the paid program component. The CPU unit 100 can execute the plurality of payable program components indefinitely as long as the total value of the plurality of payable program components to be called does not exceed the holding points.
 図1に示すように、CPUユニット100は、ハードウェア構成として、各種データを記憶する記憶部110と、入力ユニット200及び出力ユニット300と通信するための通信部120と、ユーザの入力操作を受け付ける入力受付部130と、画像を表示装置に表示する表示部140と、CPUユニット100全体を制御する演算部150と、エンジニアリングツール500と通信するためのツール用通信部160とを含む。記憶部110と、通信部120と、入力受付部130と、表示部140と、ツール用通信部160とはいずれもバス190を介して演算部150に接続されており、演算部150と通信する。 As shown in FIG. 1, the CPU unit 100 has, as a hardware configuration, a storage unit 110 that stores various data, a communication unit 120 that communicates with the input unit 200 and the output unit 300, and receives an input operation by a user. It includes an input receiving unit 130, a display unit 140 for displaying an image on a display device, an arithmetic unit 150 for controlling the entire CPU unit 100, and a tool communication unit 160 for communicating with the engineering tool 500. The storage unit 110, the communication unit 120, the input receiving unit 130, the display unit 140, and the tool communication unit 160 are all connected to the arithmetic unit 150 via the bus 190, and communicate with the arithmetic unit 150. .
 記憶部110は、揮発性メモリ、不揮発性メモリを含む。記憶部110は、各種のプログラム、データを格納する。記憶部110は、演算部150が実行することにより後述の実行可否判別部152の機能を実現するためのプログラム001と、演算部150が実行することにより後述の実行管理部153の機能を実現するためのプログラム002とを格納する。記憶部110は、CPUユニット100自体を識別する識別情報としてシリアルナンバーを記憶する。 (4) The storage unit 110 includes a volatile memory and a nonvolatile memory. The storage unit 110 stores various programs and data. The storage unit 110 implements a program 001 for realizing a function of an execution possibility determination unit 152 described later when executed by the arithmetic unit 150, and realizes a function of an execution management unit 153 described later when executed by the arithmetic unit 150. And a program 002 for storing. The storage unit 110 stores a serial number as identification information for identifying the CPU unit 100 itself.
 CPUユニット100には、後述のエンジニアリングツール500からCPUユニット100に登録される保有ポイント情報が暗号化されたデータで供給される。このため、記憶部110は、暗号化されたデータを復号するための復号鍵が格納されている。 (4) The possessed point information registered in the CPU unit 100 is supplied as encrypted data from the engineering tool 500 described later to the CPU unit 100. For this reason, the storage unit 110 stores a decryption key for decrypting the encrypted data.
 通信部120は、フィールドバス400を介して、入力ユニット200及び出力ユニット300と通信するためのネットワークインタフェース回路を含む。通信部120は、入力ユニット200から受信したデータを演算部150に出力し、演算部150から供給されたデータを出力ユニット300に送信する。 The communication unit 120 includes a network interface circuit for communicating with the input unit 200 and the output unit 300 via the field bus 400. The communication unit 120 outputs the data received from the input unit 200 to the arithmetic unit 150, and transmits the data supplied from the arithmetic unit 150 to the output unit 300.
 入力受付部130は、ボタン、操作キー等を含み、ユーザからの操作入力を受け付け、ユーザの操作入力を示す信号を演算部150に出力する。 The input receiving unit 130 includes buttons, operation keys, and the like, receives an operation input from a user, and outputs a signal indicating the user's operation input to the calculation unit 150.
 表示部140は、インジケータランプ、ディスプレイ等の表示装置を含む。表示部140は、例えば、演算部150の制御に従ってインジケータランプを点灯/消灯し、演算部150から供給される信号に基づく画像をディスプレイに表示する。 The display unit 140 includes a display device such as an indicator lamp and a display. The display unit 140 turns on / off the indicator lamp under the control of the arithmetic unit 150, for example, and displays an image based on the signal supplied from the arithmetic unit 150 on the display.
 演算部150は、MPU(Micro Processing Unit)を含む。演算部150は、記憶部110に記憶される各種プログラムを実行して、CPUユニット100の各種機能を実現する。 The operation unit 150 includes an MPU (Micro Processing Unit). The arithmetic unit 150 executes various programs stored in the storage unit 110 to implement various functions of the CPU unit 100.
 ツール用通信部160は、後述のエンジニアリングツール500と通信ケーブル600を介して通信するための通信インタフェースとを含む。ツール用通信部160は、エンジニアリングツール500から受信したデータを演算部150に出力し、演算部150から供給されたデータをエンジニアリングツール500に送信する。 The tool communication unit 160 includes a communication interface for communicating with the engineering tool 500 described below via the communication cable 600. The tool communication unit 160 outputs the data received from the engineering tool 500 to the arithmetic unit 150, and transmits the data supplied from the arithmetic unit 150 to the engineering tool 500.
 図2Aに示すように、CPUユニット100は、機能的には、ユーザプログラムと各種ライブラリとを記憶するプログラム記憶部111と、CPUユニット100が保有するポイント(以下、保有ポイント)を記憶するポイント記憶部112と、有料プログラム部品の実行可否を示す値を保持する実行可否フラグ113と、後述のエンジニアリングツール500から供給された各種プログラムのファイルをプログラム記憶部111に書き込むファイル操作部151と、有料プログラム部品の実行可否を判別する実行可否判別部152と、有料プログラム部品の実行を管理する実行管理部153と、CPUユニット100に割り当てられたポイントを保有ポイントとしてポイント記憶部112に書き込むポイント管理部154と、エンジニアリングツール500と通信する通信インタフェース161とを含む。 As shown in FIG. 2A, the CPU unit 100 functionally includes a program storage unit 111 that stores a user program and various libraries, and a point storage that stores points held by the CPU unit 100 (hereinafter, held points). Unit 112, an executable flag 113 that holds a value indicating whether a paid program component can be executed, a file operation unit 151 that writes files of various programs supplied from an engineering tool 500 described later into the program storage unit 111, An executable / non-executable determining unit 152 for determining whether the component can be executed, an execution managing unit 153 for managing the execution of the paid program component, and a point managing unit 154 for writing the points allocated to the CPU unit 100 as the holding points in the point storage unit 112 And the engineer And a communication interface 161 to communicate with the packaging tool 500.
 プログラム記憶部111は、第1ライブラリファイル10と、第2ライブラリファイル20と、ユーザプログラムファイル30とを記憶する。プログラム記憶部111は、図1に示す記憶部110により実現される。プログラム記憶部111は、本発明のプログラム記憶手段の一例である。 The program storage unit 111 stores the first library file 10, the second library file 20, and the user program file 30. The program storage unit 111 is realized by the storage unit 110 illustrated in FIG. The program storage unit 111 is an example of a program storage unit according to the present invention.
 第1ライブラリファイル10は、ファイルヘッダ11と有料アプリケーション12とを含む。ファイルヘッダ11には、有料アプリケーション12の実行に要求される対価ポイントの情報が含まれている。ファイルヘッダ11は、本発明の対価ポイント記憶手段の一例である。有料アプリケーション12は、ユーザプログラム32からコールされる有料プログラム部品である。 The first library file 10 includes a file header 11 and a pay application 12. The file header 11 includes information on consideration points required for execution of the pay application 12. The file header 11 is an example of a value point storage unit of the present invention. The pay application 12 is a pay program component called from the user program 32.
 第2ライブラリファイル20は、ファイルヘッダ21と無料アプリケーション22とを含む。ファイルヘッダ21には、第2ライブラリファイル20内の無料アプリケーション22に関する各種情報が含まれている。なお、第1ライブラリファイル10のファイルヘッダ11と異なり、ファイルヘッダ21は対価ポイントの情報を含まない。無料アプリケーション22はユーザが作成したアプリケーションであり、実行するための対価は不要だからである。無料アプリケーション22は、ユーザプログラム32からコールされる無料プログラム部品である。 The second library file 20 includes a file header 21 and a free application 22. The file header 21 includes various information on the free application 22 in the second library file 20. Note that, unlike the file header 11 of the first library file 10, the file header 21 does not include information on the value points. This is because the free application 22 is an application created by the user and does not require a fee for execution. The free application 22 is a free program component called from the user program 32.
 ユーザプログラムファイル30は、ファイルヘッダ31と、ユーザが作成したユーザプログラム32とを含む。PLC1000において、ユーザプログラム32は次のように実行される。CPUユニット100は、図2Bに示すようなユーザプログラム32を先頭の命令から順次処理し、プログラム終了を示すEND命令を読み込むとユーザプログラム32の実行を終了し、次の周期で再びユーザプログラム32の先頭の命令から順次処理する。 The user program file 30 includes a file header 31 and a user program 32 created by the user. In the PLC 1000, the user program 32 is executed as follows. The CPU unit 100 sequentially processes the user program 32 as shown in FIG. 2B from the first instruction, and upon reading an END instruction indicating the end of the program, terminates the execution of the user program 32 and restarts the user program 32 in the next cycle. Process sequentially from the first instruction.
 ポイント記憶部112は、ユーザが購入し、CPUユニット100に割り当てたポイントである保有ポイントを記憶する。保有ポイントは、CPUユニット100において有料アプリケーション12の実行が認められる限度を示す。ポイント記憶部112は、図1に示す記憶部110により実現される。ポイント記憶部112は本発明の限度ポイント記憶手段の一例である。保有ポイントは本発明の限度ポイントの一例である。CPUユニット100においては、ユーザプログラム32がコールする有料アプリケーション12の対価ポイントの合計が、CPUユニット100が保有する保有ポイントを超えない場合に有料アプリケーション12を実行することが可能である。ポイント記憶部112には、エンジニアリングツール500から供給された保有ポイント情報が、ポイント管理部154により書き込まれる。保有ポイント情報は、CPUユニット100に割り当てられた保有ポイントと、CPUユニット100のシリアルナンバーとを含む。 (4) The point storage unit 112 stores retained points, which are points purchased by the user and allocated to the CPU unit 100. The holding points indicate a limit in which the CPU unit 100 is allowed to execute the pay application 12. The point storage unit 112 is realized by the storage unit 110 illustrated in FIG. The point storage unit 112 is an example of the limit point storage unit of the present invention. Holding points are an example of the limit points of the present invention. The CPU unit 100 can execute the pay application 12 when the total value points of the pay application 12 called by the user program 32 do not exceed the holding points held by the CPU unit 100. The point management unit 154 writes the retained point information supplied from the engineering tool 500 into the point storage unit 112. The holding point information includes the holding points assigned to the CPU unit 100 and the serial number of the CPU unit 100.
 実行可否フラグ113は、CPUユニット100が有料アプリケーション12を実行することが可能か否かを示すフラグ値を保持する。実行可否フラグ113は、図1に示す記憶部110により実現される。このフラグ値は、保有ポイントが、ユーザプログラム32がコールする有料アプリケーション12の対価ポイントの合計以上であるか否かに応じて決まる。図2Aに示す実行可否フラグ113には、後述の実行可否判別部152により、実行可否を示すフラグ値がセットされる。 The executable flag 113 holds a flag value indicating whether or not the CPU unit 100 can execute the pay application 12. The executable flag 113 is realized by the storage unit 110 shown in FIG. This flag value is determined depending on whether or not the possessed points are equal to or greater than the sum of the consideration points of the pay application 12 called by the user program 32. In the execution possibility flag 113 shown in FIG. 2A, a flag value indicating the execution possibility is set by the execution possibility determination unit 152 described later.
 ファイル操作部151は、プログラム記憶部111への各種プログラムのファイルの書き込みを行う。ファイル操作部151は、図1に示す演算部150と、ツール用通信部160とにより実現される。ファイル操作部151は、エンジニアリングツール500から供給された第1ライブラリファイル10、第2ライブラリファイル20、及びユーザプログラムファイル30の全てあるいは一部をプログラム記憶部111に格納する。また、エンジニアリングツール500からプログラム記憶部111内の指定されたファイルを削除するよう指示された場合、ファイル操作部151はプログラム記憶部111内の指定されたファイルを削除する。 (4) The file operation unit 151 writes various program files into the program storage unit 111. The file operation unit 151 is realized by the arithmetic unit 150 and the tool communication unit 160 shown in FIG. The file operation unit 151 stores all or a part of the first library file 10, the second library file 20, and the user program file 30 supplied from the engineering tool 500 in the program storage unit 111. When the engineering tool 500 instructs to delete the specified file in the program storage unit 111, the file operation unit 151 deletes the specified file in the program storage unit 111.
 図2Aに示す実行可否判別部152は、ユーザプログラムファイル30を解析し、ユーザプログラム32がコールしている有料アプリケーション12の対価ポイントの合計を求める。実行可否判別部152は、ポイント記憶部112が保持する保有ポイントが、求めた対価ポイントの合計以上であるか否かを判別し、判別の結果に応じて実行可否フラグ113に値をセットする。実行可否判別部152は、図1に示す演算部150が記憶部110のプログラム001を実行することにより実現される。実行可否判別部152は、本発明の判別手段の一例である。 (2) The execution availability determination unit 152 shown in FIG. 2A analyzes the user program file 30 and obtains the total value points of the pay application 12 called by the user program 32. The execution possibility determination unit 152 determines whether or not the possessed points held by the point storage unit 112 is equal to or greater than the total of the obtained consideration points, and sets a value in the execution possibility flag 113 according to the result of the determination. The execution possibility determination unit 152 is realized by the calculation unit 150 illustrated in FIG. 1 executing the program 001 in the storage unit 110. The execution availability determination unit 152 is an example of a determination unit according to the present invention.
 図2Aに示す実行可否判別部152は、保有ポイントが、有料アプリケーション12の対価ポイントの合計以上であると判別すると、有料アプリケーション12の実行が可能であることを示す値を実行可否フラグ113にセットする。一方、実行可否判別部152は、ポイント記憶部112が保持する保有ポイントが、有料アプリケーション12の対価ポイントの合計未満であると判別すると、有料アプリケーション12の実行が不可であることを示す値を実行可否フラグ113にセットする。実施の形態においては、有料アプリケーション12の実行が可能であると判別すると、実行可否判別部152は、実行可否フラグ113に、「実行可」を示す値である“1”をセットする。有料アプリケーション12の実行が不可であると判別すると、実行可否判別部152は、実行可否フラグ113に、「実行不可」を示す値である“0”をセットする。 2A, when determining that the possessed points are equal to or more than the total value points of the pay application 12, sets the value indicating that the pay application 12 can be executed in the executable flag 113. I do. On the other hand, when determining that the possessed points held by the point storage unit 112 is less than the total of the consideration points of the pay application 12, the execution possibility determination unit 152 executes a value indicating that the execution of the pay application 12 is impossible. The flag is set in the availability flag 113. In the embodiment, if it is determined that the pay application 12 can be executed, the execution determination unit 152 sets the execution determination flag 113 to “1”, which is a value indicating “executable”. When determining that the execution of the pay application 12 is not possible, the execution possibility determination unit 152 sets “0”, which is a value indicating “executable”, in the execution possibility flag 113.
 実行管理部153は、ユーザプログラム32の実行時に、実行対象の命令が、有料アプリケーション12をコールする命令である場合に、実行可否フラグ113にセットされている値に基づいて、有料アプリケーション12を実行するか否かの制御を行う。実行管理部153は、図1に示す演算部150が記憶部110のプログラム002を実行することにより実現される。実行管理部153は、本発明の実行管理手段の一例である。 The execution management unit 153 executes the pay application 12 based on the value set in the executable flag 113 when the execution target instruction is an instruction to call the pay application 12 when the user program 32 is executed. Control whether or not to do so. The execution management unit 153 is realized by the calculation unit 150 illustrated in FIG. 1 executing the program 002 in the storage unit 110. The execution management unit 153 is an example of the execution management unit of the present invention.
 図2Aに示す実行管理部153は、例えば、有料アプリケーション12がコールされ、実行可否フラグ113に「実行不可」を示す値である“0”がセットされている場合、有料アプリケーション12の実行を制限する。よって、有料アプリケーション12は実行されない。一方、実行可否フラグ113に「実行可」を示す値である“1”がセットされている場合、実行管理部153は、有料アプリケーション12の実行を制限しない。 The execution management unit 153 illustrated in FIG. 2A restricts the execution of the pay application 12 when, for example, the pay application 12 is called and the execution permission flag 113 is set to “0” which is a value indicating “non-execution”. I do. Therefore, the paid application 12 is not executed. On the other hand, when “1” which is a value indicating “executable” is set in the executable flag 113, the execution management unit 153 does not limit the execution of the pay application 12.
 ポイント管理部154は、エンジニアリングツール500から供給された保有ポイント情報をポイント記憶部112に書き込む。また、ポイント管理部154は、エンジニアリングツール500から更新された保有ポイント情報が供給されると、ポイント記憶部112が保持するポイントを書き換える。 (4) The point management unit 154 writes the owned point information supplied from the engineering tool 500 into the point storage unit 112. Further, when the updated holding point information is supplied from the engineering tool 500, the point management unit 154 rewrites the points held by the point storage unit 112.
 実施の形態においては、保有ポイント情報の改ざん防止のため、下記のように、エンジニアリングツール500とCPUユニット100との間で、保有ポイント情報の受け渡しが行われる。エンジニアリングツール500は、保有ポイント情報を暗号化し、暗号化したデータをCPUユニット100に供給する。ポイント管理部154は、エンジニアリングツール500から供給された暗号化された保有ポイント情報をポイント記憶部112に格納する。保有ポイント情報は、CPUユニット100のイニシャル処理時に復号される。また、CPUユニット100は、エンジニアリングツール500から、ポイント記憶部112の保有ポイント情報を要求されると、暗号化された保有ポイント情報をエンジニアリングツール500に送信する。 In the embodiment, the possessed point information is exchanged between the engineering tool 500 and the CPU unit 100 as described below in order to prevent falsification of the possessed point information. The engineering tool 500 encrypts the possessed point information and supplies the encrypted data to the CPU unit 100. The point management unit 154 stores the encrypted possessed point information supplied from the engineering tool 500 in the point storage unit 112. The retained point information is decrypted at the time of the initial processing of the CPU unit 100. When the engineering tool 500 requests the possessed point information of the point storage unit 112, the CPU unit 100 transmits the encrypted possessed point information to the engineering tool 500.
 通信インタフェース161は、エンジニアリングツール500の通信インタフェース521と通信を行う。通信インタフェース161は、エンジニアリングツール500から受信したデータをファイル操作部151又はポイント管理部154に出力する。通信インタフェース161は、図1に示すツール用通信部160により実現される。 The communication interface 161 communicates with the communication interface 521 of the engineering tool 500. The communication interface 161 outputs the data received from the engineering tool 500 to the file operation unit 151 or the point management unit 154. The communication interface 161 is realized by the tool communication unit 160 shown in FIG.
 次に、エンジニアリングツール500及びポイント管理サーバ700を説明する。エンジニアリングツール500は、PLC1000に関わる開発、設定等を支援するツールであり、パーソナルコンピュータに専用のアプリケーションをインストールした装置である。図1に示すように、エンジニアリングツール500は、通信ケーブル600によりCPUユニット100に接続され、CPUユニット100と通信する。 Next, the engineering tool 500 and the point management server 700 will be described. The engineering tool 500 is a tool that supports development, setting, and the like related to the PLC 1000, and is a device in which a dedicated application is installed on a personal computer. As shown in FIG. 1, the engineering tool 500 is connected to the CPU unit 100 by a communication cable 600 and communicates with the CPU unit 100.
 ユーザは、エンジニアリングツール500を使用して、CPUユニット100で実行するユーザプログラム32を作成し、作成したユーザプログラム32を図2Aに示すCPUユニット100のプログラム記憶部111に書き込む。さらに、実施の形態においては、ユーザは、エンジニアリングツール500を使用して、有料プログラム部品である有料アプリケーション12を実行するために必要なポイントを購入し、購入したポイントを保有ポイントとしてCPUユニット100に登録することができる。さらに、ユーザは、エンジニアリングツール500を使用して、有料プログラム部品である有料アプリケーション12、自作プログラム部品である無料アプリケーション22を、CPUユニット100のプログラム記憶部111に書き込むことができる。 The user creates the user program 32 to be executed by the CPU unit 100 using the engineering tool 500, and writes the created user program 32 into the program storage unit 111 of the CPU unit 100 shown in FIG. 2A. Further, in the embodiment, the user uses the engineering tool 500 to purchase points necessary for executing the pay application 12, which is a pay program component, and uses the purchased points as holding points in the CPU unit 100. You can register. Further, the user can use the engineering tool 500 to write the paid application 12 as a paid program component and the free application 22 as a self-made program component in the program storage unit 111 of the CPU unit 100.
 図1に示すポイント管理サーバ700は、CPUユニット100に登録されるポイントに関するデータを管理する。ポイント管理サーバ700は、例えば、有料のプログラム部品の作成元におかれたコンピュータである。ポイント管理サーバ700は、ネットワーク800を介してエンジニアリングツール500に接続され、エンジニアリングツール500と通信する。ユーザは、エンジニアリングツール500を介して、ポイント管理サーバ700にアクセスし、ポイントの購入、CPUユニット100へのポイントの割り当て等を行う。 The point management server 700 shown in FIG. 1 manages data relating to points registered in the CPU unit 100. The point management server 700 is, for example, a computer that is located at the origin of a paid program component. The point management server 700 is connected to the engineering tool 500 via the network 800 and communicates with the engineering tool 500. The user accesses the point management server 700 via the engineering tool 500, and purchases points, allocates points to the CPU unit 100, and the like.
 エンジニアリングツール500は、ハードウェア構成として、各種データを記憶する記憶部510と、CPUユニット100と通信するための通信部520と、ユーザの入力操作を受け付ける入力受付部530と、画像をディスプレイに出力する表示部540と、エンジニアリングツール500全体を制御する演算部550と、ポイント管理サーバ700と通信するためのサーバ用通信部560とを含む。記憶部510と、通信部520と、入力受付部530と、表示部540と、サーバ用通信部560とはいずれもバス590を介して演算部550に接続されており、演算部550と通信する。 The engineering tool 500 has, as a hardware configuration, a storage unit 510 for storing various data, a communication unit 520 for communicating with the CPU unit 100, an input receiving unit 530 for receiving a user's input operation, and outputting an image to a display. And a computing unit 550 for controlling the entire engineering tool 500, and a server communication unit 560 for communicating with the point management server 700. The storage unit 510, the communication unit 520, the input reception unit 530, the display unit 540, and the server communication unit 560 are all connected to the calculation unit 550 via the bus 590, and communicate with the calculation unit 550. .
 記憶部510は、揮発性メモリ、不揮発性メモリを含む。記憶部510は、各種のプログラム、データを格納する。記憶部510は、管理対象のCPUユニット100それぞれの識別情報であるシリアルナンバーを記憶する。 Storage unit 510 includes a volatile memory and a nonvolatile memory. The storage unit 510 stores various programs and data. The storage unit 510 stores a serial number as identification information of each of the CPU units 100 to be managed.
 通信部520は、ネットワークインタフェース回路を含み、演算部550の制御に従って、通信ケーブル600で接続されたCPUユニット100と通信する。例えば、通信部520は、演算部550の制御に従って、プログラムファイル、各種設定パラメータ等をCPUユニット100に送信する。入力受付部530は、マウス、操作キー等を含み、ユーザからの操作入力を受け付け、ユーザの操作入力を示す信号を演算部550に出力する。表示部540は、ディスプレイを含み、演算部550から供給される信号に基づく画像をディスプレイに表示する。 The communication unit 520 includes a network interface circuit, and communicates with the CPU unit 100 connected by the communication cable 600 under the control of the arithmetic unit 550. For example, the communication unit 520 transmits a program file, various setting parameters, and the like to the CPU unit 100 under the control of the arithmetic unit 550. The input receiving unit 530 includes a mouse, operation keys, and the like, receives an operation input from a user, and outputs a signal indicating the user's operation input to the calculation unit 550. Display unit 540 includes a display, and displays an image based on the signal supplied from operation unit 550 on the display.
 演算部550は、CPUを含む。演算部550は、記憶部510に記憶される各種プログラムを実行して、エンジニアリングツール500の各種機能を実現する。サーバ用通信部560は、後述のポイント管理サーバ700とネットワーク800を介して通信するための通信インタフェースを含む。 Operation unit 550 includes a CPU. The arithmetic unit 550 executes various programs stored in the storage unit 510 to implement various functions of the engineering tool 500. The server communication unit 560 includes a communication interface for communicating with a point management server 700 described below via the network 800.
 続いて、ポイント管理サーバ700を説明する。ポイント管理サーバ700は、ハードウェア構成として、各種データを記憶する記憶部710と、エンジニアリングツール500と通信するための通信部720と、ポイント管理サーバ700全体を制御する演算部730と、を含む。記憶部710と、通信部720とはいずれもバス790を介して演算部730に接続されており、演算部730と通信する。 Next, the point management server 700 will be described. The point management server 700 includes, as a hardware configuration, a storage unit 710 for storing various data, a communication unit 720 for communicating with the engineering tool 500, and a calculation unit 730 for controlling the entire point management server 700. Both the storage unit 710 and the communication unit 720 are connected to the calculation unit 730 via the bus 790, and communicate with the calculation unit 730.
 記憶部710は、揮発性メモリ、不揮発性メモリを含む。記憶部710は、各種のプログラム、データを格納する。通信部720は、ネットワークインタフェース回路を含み、演算部730の制御に従って、ネットワーク800を介してエンジニアリングツール500と通信する。演算部730は、CPUを含む。演算部730は、記憶部710に記憶される各種プログラムを実行して、ポイント管理サーバ700の各種機能を実現する。 (4) The storage unit 710 includes a volatile memory and a nonvolatile memory. The storage unit 710 stores various programs and data. The communication unit 720 includes a network interface circuit, and communicates with the engineering tool 500 via the network 800 under the control of the arithmetic unit 730. Arithmetic unit 730 includes a CPU. The arithmetic unit 730 executes various programs stored in the storage unit 710 to realize various functions of the point management server 700.
 実施の形態においては、ポイント管理サーバ700は、エンジニアリングツール500と協働して、エンジニアリングツール500の各機能を実現する。 In the embodiment, the point management server 700 realizes each function of the engineering tool 500 in cooperation with the engineering tool 500.
 図2Aに示すように、エンジニアリングツール500は、機能的には、各種プログラムを記憶するプログラム記憶部511と、保有ポイントを記憶するポイント記憶部512と、CPUユニット100と通信する通信インタフェース521と、各種プログラムのファイルをCPUユニット100に書き込むファイル操作部551と、保有ポイントを管理するポイント管理部552と、を含む。 As shown in FIG. 2A, the engineering tool 500 functionally includes a program storage unit 511 that stores various programs, a point storage unit 512 that stores owned points, a communication interface 521 that communicates with the CPU unit 100, A file operation unit 551 for writing files of various programs to the CPU unit 100 and a point management unit 552 for managing possessed points are included.
 プログラム記憶部511は、図3Aに示すように、有料ライブラリファイル1と、自作ライブラリファイル2と、ユーザプログラムファイル3と、対価データ4とを記憶する。プログラム記憶部511は、図1に示す記憶部510により実現される。プログラム記憶部511は、本発明の記憶手段の一例である。 (3) The program storage unit 511 stores a pay library file 1, a self-made library file 2, a user program file 3, and consideration data 4, as shown in FIG. 3A. The program storage unit 511 is realized by the storage unit 510 illustrated in FIG. The program storage unit 511 is an example of a storage unit according to the present invention.
 図3Aに示す有料ライブラリファイル1は、有料プログラム部品である有料アプリケーション12を含む。有料アプリケーション12は、ユーザがエンジニアリングツール500を介して、有料アプリケーション12の提供サイトにおいてダウンロードしたものである。有料アプリケーション12は、CPUユニット100が実行可能な形式のプログラム部品であり、暗号化されたデータである。有料ライブラリファイル1には、ユーザプログラム32からコールされない有料アプリケーション12が含まれていてもよい。 有 料 The pay library file 1 shown in FIG. 3A includes a pay application 12 which is a pay program component. The pay application 12 is downloaded by a user at a site for providing the pay application 12 via the engineering tool 500. The pay application 12 is a program component in a format executable by the CPU unit 100 and is encrypted data. The pay library file 1 may include the pay application 12 that is not called from the user program 32.
 自作ライブラリファイル2は、自作プログラム部品である無料アプリケーション22を含む。無料アプリケーション22は、エンジニアリングツール500のプログラム作成機能によりユーザが作成したものである。このため無料アプリケーション22の実行のための対価の支払いは不要である。ユーザプログラムファイル3は、ユーザが作成したユーザプログラム32を含む。 The self-made library file 2 includes a free application 22, which is a self-made program component. The free application 22 is created by a user using a program creation function of the engineering tool 500. Therefore, there is no need to pay for the execution of the free application 22. The user program file 3 includes a user program 32 created by the user.
 対価データ4は、ユーザがダウンロードした有料アプリケーション12それぞれの対価ポイントが既定されたデータを含む。対価データ4は、ユーザがエンジニアリングツール500を介して、有料アプリケーション12の提供サイトにおいてダウンロードしたものである。 The consideration data 4 includes data in which consideration points of each of the paid applications 12 downloaded by the user are set. The consideration data 4 is downloaded by the user via the engineering tool 500 at the site where the paid application 12 is provided.
 図2Aに示すポイント記憶部512は、図3Bに示すように、ポイントに関するデータを格納したポイント管理テーブル5120を含む。ポイント管理テーブル5120には、ユーザを特定するユーザIDと、ユーザが保有するポイントの合計と、CPUユニット100のシリアルナンバーと、CPUユニット100毎に割り当てられた保有ポイントと、が格納されている。ポイント記憶部512は、図1に示すポイント管理サーバ700の記憶部710により実現される。ポイント記憶部512は、本発明の記憶手段の一例である。 3A, the point storage unit 512 shown in FIG. 2A includes a point management table 5120 storing data on points, as shown in FIG. 3B. The point management table 5120 stores a user ID for identifying a user, the total points owned by the user, the serial number of the CPU unit 100, and the owned points assigned to each CPU unit 100. The point storage unit 512 is realized by the storage unit 710 of the point management server 700 illustrated in FIG. The point storage unit 512 is an example of a storage unit of the present invention.
 通信インタフェース521は、CPUユニット100の通信インタフェース161と通信を行う。通信インタフェース521は、ファイル操作部551から出力されたファイルをCPUユニット100に送信する。通信インタフェース521は、ポイント管理部552から出力された保有ポイント情報をCPUユニット100に送信する。通信インタフェース521は、図1に示すエンジニアリングツール500の通信部520により実現される。 The communication interface 521 communicates with the communication interface 161 of the CPU unit 100. The communication interface 521 transmits the file output from the file operation unit 551 to the CPU unit 100. The communication interface 521 transmits the owned point information output from the point management unit 552 to the CPU unit 100. The communication interface 521 is realized by the communication unit 520 of the engineering tool 500 shown in FIG.
 図2Aに示すファイル操作部551は、ユーザの指示に従って、プログラム記憶部511に格納されている各種プログラムのファイルをCPUユニット100に書き込む。ファイル操作部551は、図1に示す通信部520と演算部550とにより実現される。 (2) The file operation unit 551 shown in FIG. 2A writes files of various programs stored in the program storage unit 511 to the CPU unit 100 in accordance with a user's instruction. The file operation unit 551 is realized by the communication unit 520 and the calculation unit 550 shown in FIG.
 具体的には、ファイル操作部551は、図3Aに示すプログラム記憶部511の対価データ4から、指定された有料アプリケーション12の対価ポイントを読み出し、読み出した対価ポイントの情報を含めたファイルヘッダ11を作成する。ファイル操作部551は、有料アプリケーション12と、作成したファイルヘッダ11とを含むファイルを、第1ライブラリファイル10として、CPUユニット100に送信するため通信インタフェース521に出力する。 Specifically, the file operation unit 551 reads the price points of the designated pay application 12 from the price data 4 of the program storage unit 511 shown in FIG. 3A, and stores the file header 11 including the read price point information. create. The file operation unit 551 outputs a file including the paid application 12 and the created file header 11 to the communication interface 521 for transmission to the CPU unit 100 as the first library file 10.
 また、ファイル操作部551は、無料アプリケーション22に関する情報を含むファイルヘッダ21を作成する。ファイル操作部551は、無料アプリケーション22と、ファイルヘッダ21とを含むファイルを、第2ライブラリファイル20として、CPUユニット100に送信するため通信インタフェース521に出力する。 (4) The file operation unit 551 creates the file header 21 including information on the free application 22. The file operation unit 551 outputs a file including the free application 22 and the file header 21 to the communication interface 521 for transmission to the CPU unit 100 as the second library file 20.
 また、ファイル操作部551は、ユーザプログラム32がコールする有料プログラム部品である有料アプリケーション12を特定するための情報を含むファイルヘッダ31を作成する。ファイル操作部551は、ユーザプログラム32と、作成したファイルヘッダ31とを含むファイルを、ユーザプログラムファイル30として、CPUユニット100に送信するため通信インタフェース521に出力する。 (4) The file operation unit 551 creates the file header 31 including information for specifying the pay application 12 which is a pay program component called by the user program 32. The file operation unit 551 outputs a file including the user program 32 and the created file header 31 to the communication interface 521 for transmission to the CPU unit 100 as the user program file 30.
 図2Aに示すポイント管理部552は、ユーザの指示に従って、ポイント記憶部512が記憶する保有ポイントを管理する。ポイント管理部552は、図1に示すエンジニアリングツール500の通信部520及び演算部550と、ポイント管理サーバ700の通信部720及び演算部730とにより実現される。ポイント管理部552は、本発明の更新手段の一例である。 2) The point management unit 552 shown in FIG. 2A manages the retained points stored in the point storage unit 512 in accordance with a user's instruction. The point management unit 552 is realized by the communication unit 520 and the operation unit 550 of the engineering tool 500 illustrated in FIG. 1 and the communication unit 720 and the operation unit 730 of the point management server 700. The point management unit 552 is an example of the updating unit of the present invention.
 ポイント管理部552が実現する機能は、(1)ポイント登録、(2)ポイント割り当て、(3)ポイント書き込み、(4)ポイント確認、(5)ポイント削除、である。以下、各機能を順番に説明する。 The functions realized by the point management unit 552 are (1) point registration, (2) point allocation, (3) point writing, (4) point confirmation, and (5) point deletion. Hereinafter, each function will be described in order.
 (ポイント登録)
 ポイント管理部552は、ユーザが購入したポイントをユーザの購入済みポイントとしてポイント管理サーバ700に登録する。ユーザは予め必要なポイントの購入に必要な金額を有料プログラム部品の作成元に支払っており、支払い時に、ユーザと購入したポイントとを識別するためのシリアルコードを取得しているものとする。ポイント管理部552は、ユーザを識別する情報と、ユーザが購入したポイントとを対応付けて、ポイント記憶部512に格納する。なお、(1)ポイント登録では、CPUユニット100にポイントを書き込むことはできない。CPUユニット100に対するポイントの書き込みは、後述の(3)ポイント書き込みで行う。
(Point registration)
The point management unit 552 registers the points purchased by the user in the point management server 700 as purchased points of the user. It is assumed that the user has paid in advance the necessary amount for purchasing the required points to the creator of the paid program component, and has acquired a serial code for identifying the user and the purchased points at the time of payment. The point management unit 552 stores the information for identifying the user in the point storage unit 512 in association with the points purchased by the user. Note that in (1) point registration, points cannot be written to the CPU unit 100. Writing of points to the CPU unit 100 is performed by (3) point writing described later.
 ユーザは、エンジニアリングツール500を使用して、次のような手順でポイントを登録する。まず、ユーザは、図4に示すメニュー画面から、「ポイント管理画面へ」のボタンを押す。ユーザの操作に応答して、エンジニアリングツール500の演算部550は、図6Aに示すユーザ認証を行うためのログイン画面を表示部540に表示する。ユーザは、ログイン画面上でユーザ名とパスワードとを入力する。 (4) The user uses the engineering tool 500 to register points in the following procedure. First, the user presses a “to point management screen” button from the menu screen shown in FIG. In response to the user's operation, operation unit 550 of engineering tool 500 displays a login screen for performing user authentication shown in FIG. 6A on display unit 540. The user inputs a user name and a password on the login screen.
 入力されたユーザ名とパスワードとは、エンジニアリングツール500からポイント管理サーバ700に送信される。ポイント管理サーバ700は認証処理を行い、認証が成功した場合は、図6Bに示すポイント管理のメイン画面をエンジニアリングツール500の表示部540に表示する。ユーザ認証後は、ポイント管理サーバ700にアクセスした状態となり、エンジニアリングツール500とポイント管理サーバ700とは協働して下記の処理を行う。 The entered user name and password are transmitted from the engineering tool 500 to the point management server 700. The point management server 700 performs an authentication process. If the authentication is successful, the main screen of the point management shown in FIG. 6B is displayed on the display unit 540 of the engineering tool 500. After the user authentication, the point management server 700 is accessed, and the engineering tool 500 and the point management server 700 perform the following processing in cooperation with each other.
 ポイント登録のため、メイン画面上で、ユーザは「ポイント登録」のボタンを押す。ユーザの操作に応答して、エンジニアリングツール500の演算部550は図6Cに示すシリアルコード入力画面を表示部540に表示する。ユーザはシリアルコード入力画面上で、ポイントの購入時に取得したシリアルコードを入力し、「OK」ボタンを押す。ユーザの操作に応答して、演算部550は、シリアルコードから特定される契約者名と購入済みのポイントとを要求するため、入力されたシリアルコードとユーザを識別するユーザIDとを、サーバ用通信部560を介して、ポイント管理サーバ700に送信する。ポイント管理サーバ700の演算部730は、受信したシリアルコードから特定される契約者名と購入済みポイントとをエンジニアリングツール500に送信する。 の た め For point registration, the user presses the “point registration” button on the main screen. In response to the user's operation, arithmetic unit 550 of engineering tool 500 displays a serial code input screen shown in FIG. 6C on display unit 540. The user inputs the serial code acquired at the time of point purchase on the serial code input screen, and presses the “OK” button. In response to the user's operation, the arithmetic unit 550 requests the contractor name specified from the serial code and the purchased points, and converts the input serial code and the user ID for identifying the user into a server ID. The data is transmitted to the point management server 700 via the communication unit 560. The calculation unit 730 of the point management server 700 transmits the contractor name and the purchased points specified from the received serial code to the engineering tool 500.
 エンジニアリングツール500の演算部550は、ポイント管理サーバ700から応答を受信すると、図6Dに示すようなポイント登録画面を表示部540に表示する。演算部550は、ポイント登録画面上において、ポイント管理サーバ700から受信した契約者名と購入済みポイントとを表示する。ユーザが、ポイント登録画面上で、「登録」ボタンを押したものとする。ユーザの操作に応答して、演算部550は、シリアルコードとユーザを識別するユーザIDとを、サーバ用通信部560を介してポイント管理サーバ700に送信する。ポイント管理サーバ700の演算部730は、受信したシリアルコードから特定される購入済みのポイントと、ユーザIDとを対応付けて、図3Bに示すポイント記憶部512に格納する。 When receiving the response from the point management server 700, the calculation unit 550 of the engineering tool 500 displays a point registration screen as shown in FIG. 6D on the display unit 540. The calculation unit 550 displays the contractor name and the purchased points received from the point management server 700 on the point registration screen. It is assumed that the user has pressed the “register” button on the point registration screen. In response to the user's operation, the arithmetic unit 550 transmits the serial code and the user ID for identifying the user to the point management server 700 via the server communication unit 560. The calculation unit 730 of the point management server 700 stores the purchased points identified from the received serial code in association with the user ID in the point storage unit 512 illustrated in FIG. 3B.
 (ポイント割り当て)
 また、ポイント管理部552は、ユーザの指示に従って、CPUユニット100それぞれに保有ポイントを割り当てる。なお、(2)ポイント割り当てでは、CPUユニット100にポイントを書き込むことはできない。CPUユニット100に対するポイントの書き込みは、後述の(3)ポイント書き込みで行う。
(Point allocation)
In addition, the point management unit 552 allocates possessed points to each of the CPU units 100 according to a user instruction. Note that in (2) point allocation, points cannot be written to the CPU unit 100. Writing of points to the CPU unit 100 is performed by (3) point writing described later.
 ユーザが、ポイント登録を行った後、ポイント割り当て画面を開くため、図6Bに示すメイン画面で「ポイント割り当て」ボタンを押したものとする。ユーザの操作に応答して、エンジニアリングツール500の演算部550は、ユーザIDに対応付けられた購入済みのポイントを提示するようポイント管理サーバ700に要求する。ポイント管理サーバ700の演算部730は、ユーザIDに対応付けられた購入済みのポイントをポイント記憶部512から読み出し、読み出したポイントをエンジニアリングツール500に送信する。エンジニアリングツール500の演算部550は、図7Aに示すようなポイント割り当て画面を表示部540に表示する。演算部550は、ポイント割り当て画面上において、ポイント管理サーバ700から供給された購入済みのポイントと、PLC一覧として、記憶部510に格納されているCPUユニット100のシリアルナンバーの一覧を表示する。 It is assumed that the user presses the “point assignment” button on the main screen shown in FIG. 6B to open the point assignment screen after performing the point registration. In response to the user's operation, the arithmetic unit 550 of the engineering tool 500 requests the point management server 700 to present the purchased points associated with the user ID. The calculation unit 730 of the point management server 700 reads out purchased points associated with the user ID from the point storage unit 512, and transmits the read points to the engineering tool 500. The calculation unit 550 of the engineering tool 500 displays a point assignment screen as shown in FIG. 7A on the display unit 540. The calculation unit 550 displays, on the point assignment screen, a list of purchased points supplied from the point management server 700 and a list of the serial numbers of the CPU units 100 stored in the storage unit 510 as a PLC list.
 例えば、図3Aに示す有料ライブラリファイル1に含まれる有料アプリケーション12のうち、CPUユニット100においてアプリケーション1001と、アプリケーション1002と、アプリケーション1003とを実行すると仮定する。この場合、これらのアプリケーションを実行するために必要な対価ポイントの合計は、図3Aに示す対価データ4に示すように、100ポイントと500ポイントと200ポイントとを合算した800ポイントとなる。この場合、ユーザは、少なくとも800ポイントを購入し、図7Aに示すポイント割り当て画面において、少なくとも800ポイントを当該CPUユニット100に割り当てる必要がある。ユーザが、各CPUユニット100に割り当てるポイントを入力し、「登録」ボタンを押したものとする。 For example, it is assumed that among the pay applications 12 included in the pay library file 1 shown in FIG. 3A, the CPU unit 100 executes the application 1001, the application 1002, and the application 1003. In this case, the total value points required to execute these applications is 800 points obtained by adding 100 points, 500 points, and 200 points, as shown in the price data 4 shown in FIG. 3A. In this case, the user needs to purchase at least 800 points and allocate at least 800 points to the CPU unit 100 on the point allocation screen shown in FIG. 7A. It is assumed that the user inputs a point to be assigned to each CPU unit 100 and presses a “register” button.
 ユーザが「登録」ボタンを押下すると、エンジニアリングツール500の演算部550は、各CPUユニット100を識別するシリアルナンバーと、入力されたポイントとを、ユーザIDに対応づけて登録するようポイント管理サーバ700に要求する。ポイント管理サーバ700の演算部730は、図3Bに示すポイント記憶部512に、CPUユニット100それぞれに割り当てられたポイントを格納する。 When the user presses the “register” button, the arithmetic unit 550 of the engineering tool 500 registers the serial number for identifying each CPU unit 100 and the input point in association with the user ID so as to register it. Request to. The calculation unit 730 of the point management server 700 stores the points assigned to each of the CPU units 100 in the point storage unit 512 illustrated in FIG. 3B.
 (ポイント書き込み)
 ポイント管理部552は、ユーザが指定したCPUユニット100にポイントを書き込む。なお、CPUユニット100へのポイントの書き込みは、エンジニアリングツール500とポイントの書き込み対象のCPUユニット100とを通信ケーブル600で接続した状態で行う必要がある。
(Point writing)
The point management unit 552 writes points to the CPU unit 100 specified by the user. The writing of points to the CPU unit 100 needs to be performed in a state where the engineering tool 500 and the CPU unit 100 to which the points are to be written are connected by the communication cable 600.
 エンジニアリングツール500とポイントの書き込み対象のCPUユニット100とを通信ケーブル600で接続した状態で、ユーザがポイント書き込み画面を開くため、図6Bに示すメイン画面で「ポイント書き込み」ボタンを押したものとする。 In a state where the engineering tool 500 and the CPU unit 100 to which a point is to be written are connected by the communication cable 600, the user opens the point writing screen, so that the "point writing" button is pressed on the main screen shown in FIG. 6B. .
 ユーザの操作に応答して、エンジニアリングツール500の演算部550は、ユーザIDに対応付けられたCPUユニット毎の保有ポイントのデータをポイント管理サーバ700に要求する。ポイント管理サーバ700の演算部730は、ユーザIDに対応付けられたCPUユニット100毎のポイントのデータを図3Bに示すポイント管理テーブル5120から読み出し、読み出したデータをエンジニアリングツール500に送信する。 (4) In response to the user's operation, the arithmetic unit 550 of the engineering tool 500 requests the point management server 700 for the data of the possessed points for each CPU unit associated with the user ID. The calculation unit 730 of the point management server 700 reads data of points for each CPU unit 100 associated with the user ID from the point management table 5120 shown in FIG. 3B, and transmits the read data to the engineering tool 500.
 エンジニアリングツール500の演算部550は、ポイント管理サーバ700から応答を受信すると、図7Bに示すようなポイント書き込み画面を表示部540に表示する。演算部550は、ポイント書き込み画面上において、ポイント管理サーバ700から供給されたCPUユニット100毎の保有ポイントを表示する。ここで、ユーザが画面上でポイントの書き込み対象のCPUユニット100を有するPLC1000を選択し、「実行」ボタンを押下したものとする。ユーザの操作に応答して、エンジニアリングツール500の演算部550は、指定されたCPUユニット100の識別情報であるシリアルナンバーと、CPUユニット100に割り当てられたポイントと、を含む保有ポイント情報を暗号化し、暗号化したデータを図2Aの通信インタフェース521を介して、CPUユニット100に送信する。 When receiving the response from the point management server 700, the calculation unit 550 of the engineering tool 500 displays a point writing screen as shown in FIG. 7B on the display unit 540. The calculation unit 550 displays the possessed points for each CPU unit 100 supplied from the point management server 700 on the point writing screen. Here, it is assumed that the user has selected the PLC 1000 having the CPU unit 100 to which the point is to be written on the screen and pressed the “execute” button. In response to the user's operation, the arithmetic unit 550 of the engineering tool 500 encrypts the possessed point information including the serial number, which is the identification information of the designated CPU unit 100, and the points assigned to the CPU unit 100. , And transmits the encrypted data to the CPU unit 100 via the communication interface 521 in FIG. 2A.
 CPUユニット100のポイント管理部154として機能する演算部150は、通信インタフェース161を介してエンジニアリングツール500から保有ポイント情報を受信すると、受信した保有ポイント情報をポイント記憶部112に格納する。 When the arithmetic unit 150 functioning as the point management unit 154 of the CPU unit 100 receives the possessed point information from the engineering tool 500 via the communication interface 161, the computing unit 150 stores the received possessed point information in the point storage unit 112.
 (ポイント確認)
 ユーザがCPUユニット100に書き込まれたポイントを確認できるように、ポイント管理部552は、エンジニアリングツール500に接続されているCPUユニット100の保有ポイントをCPUユニット100から読み出す。なお、CPUユニット100のポイントの確認は、エンジニアリングツール500とポイントの書き込み対象のCPUユニット100とを通信ケーブル600で接続した状態で行う必要がある。
(Point confirmation)
The point management unit 552 reads the points owned by the CPU unit 100 connected to the engineering tool 500 from the CPU unit 100 so that the user can check the points written in the CPU unit 100. It is necessary to check the points of the CPU unit 100 in a state where the engineering tool 500 and the CPU unit 100 to which the points are to be written are connected by the communication cable 600.
 ユーザがエンジニアリングツール500とCPUユニット100とを通信ケーブル600で接続した状態で、図6Bに示すメイン画面から、「ポイント確認」ボタンを押したものとする。ユーザの操作に応答して、エンジニアリングツール500の演算部550は、通信インタフェース521を介して、CPUユニット100に、保有ポイント情報を要求するコマンドを送信する。 (6) It is assumed that the user presses the “point confirmation” button on the main screen shown in FIG. 6B with the engineering tool 500 and the CPU unit 100 connected with the communication cable 600. In response to the user's operation, the arithmetic unit 550 of the engineering tool 500 transmits a command for requesting possessed point information to the CPU unit 100 via the communication interface 521.
 CPUユニット100の演算部150は、通信インタフェース161を介してエンジニアリングツール500から保有ポイント情報を要求するコマンドを受信すると、ポイント記憶部112に格納されている保有ポイント情報を、通信インタフェース161を介してエンジニアリングツール500に送信する。エンジニアリングツール500の演算部550は、通信インタフェース521を介して、CPUユニット100から保有ポイント情報を受信すると、受信した保有ポイント情報を復号し、復号したポイントとシリアルナンバーとを図7Cに示すようにポイント確認画面に表示する。 When receiving the command for requesting possessed point information from the engineering tool 500 via the communication interface 161, the arithmetic unit 150 of the CPU unit 100 converts the possessed point information stored in the point storage unit 112 via the communication interface 161. The data is transmitted to the engineering tool 500. When receiving the possessed point information from the CPU unit 100 via the communication interface 521, the computing unit 550 of the engineering tool 500 decodes the received possessed point information, and decodes the decrypted point and serial number as shown in FIG. 7C. Display on the point confirmation screen.
 (ポイント削除)
 ポイント管理部552は、ユーザから指示されると、エンジニアリングツール500に接続されているCPUユニット100に書き込まれた保有ポイントを削除する。なお、CPUユニット100のポイントの削除は、エンジニアリングツール500とポイントの書き込み対象のCPUユニット100とを通信ケーブル600で接続した状態で行う必要がある。
(Delete points)
When instructed by the user, the point management unit 552 deletes the retained points written in the CPU unit 100 connected to the engineering tool 500. It is necessary to delete the points of the CPU unit 100 in a state where the engineering tool 500 and the CPU unit 100 to which the points are to be written are connected by the communication cable 600.
 ユーザが、エンジニアリングツール500とCPUユニット100とを通信ケーブル600で接続した状態でポイント削除画面を開くため、図6Bに示すメイン画面から「ポイント削除」ボタンを押したものとする。 (6) It is assumed that the user presses the “point delete” button on the main screen shown in FIG. 6B to open the point delete screen in a state where the engineering tool 500 and the CPU unit 100 are connected by the communication cable 600.
 ユーザの操作に応答して、エンジニアリングツール500の演算部550は、通信インタフェース521を介して、CPUユニット100に、保有ポイント情報を要求するコマンドを送信し、CPUユニット100から、ポイント記憶部112に格納されている保有ポイント情報を取得する。エンジニアリングツール500の演算部550は、図8に示すようなポイント削除画面を表示部540に表示する。演算部550は、ポイント削除画面上において、ポイントとシリアルナンバーとを表示する。ポイントとシリアルナンバーは、ポイント記憶部112の保有ポイント情報を復号することにより得られる。 In response to the user's operation, the arithmetic unit 550 of the engineering tool 500 transmits a command for requesting possessed point information to the CPU unit 100 via the communication interface 521, and from the CPU unit 100 to the point storage unit 112. Get stored holding point information. The calculation unit 550 of the engineering tool 500 displays a point deletion screen as shown in FIG. The calculation unit 550 displays the point and the serial number on the point deletion screen. The points and the serial number are obtained by decoding the held point information in the point storage unit 112.
 ポイント削除画面上でユーザが、「はい」ボタンを押下すると、エンジニアリングツール500の演算部550は、通信インタフェース521を介して、CPUユニット100にポイントの削除を指示するコマンドを送信する。 When the user presses the “Yes” button on the point deletion screen, the arithmetic unit 550 of the engineering tool 500 transmits a command for instructing the CPU unit 100 to delete points via the communication interface 521.
 CPUユニット100の演算部150は、通信インタフェース161を介してエンジニアリングツール500からポイントの削除を指示するコマンドを受信すると、ポイント記憶部112に格納する保有ポイント情報を削除する。さらに、演算部150は、保有ポイント情報の削除完了の通知を通信インタフェース161を介してエンジニアリングツール500に送信する。 When the arithmetic unit 150 of the CPU unit 100 receives a command for instructing deletion of a point from the engineering tool 500 via the communication interface 161, the arithmetic unit 150 deletes possessed point information stored in the point storage unit 112. Further, the calculation unit 150 transmits a notification of completion of deletion of the possessed point information to the engineering tool 500 via the communication interface 161.
 エンジニアリングツール500の演算部550は、通信インタフェース521を介してCPUユニット100から保有ポイント情報の削除完了の通知を受信すると、該当するCPUユニット100のシリアルナンバーとともに、ポイントを削除した通知をポイント管理サーバ700に送信する。 When receiving the notification of the completion of the deletion of the possessed point information from the CPU unit 100 via the communication interface 521, the arithmetic unit 550 of the engineering tool 500 sends the notification of the point deletion together with the serial number of the corresponding CPU unit 100 to the point management server. Send to 700.
 ポイント管理サーバ700の演算部730は、ポイントの削除の通知をエンジニアリングツール500から受信すると、図3Bに示すポイント記憶部512の対象のシリアルナンバーに割り当てられたポイントを削除する。演算部730は、例えば、対象のシリアルナンバーのポイントを“0”にしてもよい。以上が、ポイント管理部552が実現する機能である。 When the arithmetic unit 730 of the point management server 700 receives the notification of the deletion of the point from the engineering tool 500, the arithmetic unit 730 deletes the point assigned to the target serial number in the point storage unit 512 shown in FIG. 3B. The calculation unit 730 may set the point of the target serial number to “0”, for example. The functions realized by the point management unit 552 have been described above.
 以下、ユーザプログラム32の実行に先だって、ユーザが行うべき手順を説明する。まず、ユーザは、ユーザプログラム32、必要な無料アプリケーション22を作成する必要がある。このため、ユーザは、図4に示すエンジニアリングツール500の「プログラムの作成」メニューでユーザプログラム32を作成する。作成されたユーザプログラム32は、図3Aに示すプログラム記憶部511に格納される。さらに、ユーザは、必要に応じて、エンジニアリングツール500で無料アプリケーション22を作成する。作成された無料アプリケーション22は、プログラム記憶部511に格納される。 Hereinafter, a procedure to be performed by the user before executing the user program 32 will be described. First, the user needs to create the user program 32 and the necessary free application 22. For this reason, the user creates the user program 32 using the “create program” menu of the engineering tool 500 shown in FIG. The created user program 32 is stored in the program storage unit 511 shown in FIG. 3A. Further, the user creates the free application 22 with the engineering tool 500 as necessary. The created free application 22 is stored in the program storage unit 511.
 ユーザプログラム32が有料アプリケーション12をコールする場合には、ユーザは有料アプリケーション12をダウンロードする必要がある。このため、ユーザは、図4に示すエンジニアリングツール500のメニュー画面から「有料アプリケーションのダウンロード」ボタンを押す。ユーザの操作に応答して、エンジニアリングツール500の演算部550は、有料アプリケーション12の提供サイトにアクセスし、図5に示すような有料アプリケーションのダウンロード画面を表示部540に表示する。ユーザが、所望する有料アプリケーション12を選択し、「ダウンロード」ボタンを押したものとする。ユーザの操作に応答して、演算部550は、有料アプリケーション12をダウンロードし、有料アプリケーション12をプログラム記憶部511に格納する。なお、ユーザは、ユーザプログラム32からコールされない有料アプリケーション12をエンジニアリングツール500にダウンロードしても構わない。 When the user program 32 calls the pay application 12, the user needs to download the pay application 12. For this reason, the user presses the “download paid application” button from the menu screen of the engineering tool 500 shown in FIG. In response to the user's operation, the arithmetic unit 550 of the engineering tool 500 accesses the site for providing the pay application 12, and displays a download screen of the pay application as shown in FIG. It is assumed that the user selects the desired paid application 12 and presses a “download” button. In response to the user's operation, operation unit 550 downloads pay application 12 and stores pay application 12 in program storage unit 511. The user may download the paid application 12 that is not called from the user program 32 to the engineering tool 500.
 さらに、ユーザは、有料ライブラリファイル1、自作ライブラリファイル2、ユーザプログラムファイル3をCPUユニット100に書き込む必要がある。このため、ユーザは、図4に示すエンジニアリングツール500のメニュー画面から、「データ書き込み」ボタンを押す。ユーザの操作に応答して、エンジニアリングツール500の演算部550は、図9に示すデータ書き込み画面を表示部540に表示する。ユーザは、データ書き込み画面上で、有料ライブラリファイル1、自作ライブラリファイル2、ユーザプログラムファイル3のうち所望するファイルを選択し、「実行」ボタンを押す。 (4) Further, the user needs to write the paid library file 1, the self-made library file 2, and the user program file 3 into the CPU unit 100. For this reason, the user presses a “write data” button from the menu screen of the engineering tool 500 shown in FIG. In response to the user's operation, the arithmetic unit 550 of the engineering tool 500 displays a data writing screen shown in FIG. 9 on the display unit 540. The user selects a desired file from the paid library file 1, the self-made library file 2, and the user program file 3 on the data writing screen, and presses an "execute" button.
 ユーザが「実行」ボタンを押下すると、ファイル操作部551として機能するエンジニアリングツール500の演算部550は、ユーザによって指定されたファイルを、通信インタフェース521を介してCPUユニット100に送信する。 When the user presses the “execute” button, the arithmetic unit 550 of the engineering tool 500 functioning as the file operation unit 551 transmits the file specified by the user to the CPU unit 100 via the communication interface 521.
 図3Aに示す有料ライブラリファイル1が選択された場合、演算部550は、対価データ4から読み出した有料アプリケーション12の対価ポイントを含めたファイルヘッダ11を作成する。演算部550は、有料ライブラリファイル1に、ファイルヘッダ11を付加して、第1ライブラリファイル10を作成し、第1ライブラリファイル10をCPUユニット100に送信する。図2Aに示すようにファイル操作部151として機能するCPUユニット100の演算部150は、受信した第1ライブラリファイル10をプログラム記憶部111に格納する。 When the pay library file 1 shown in FIG. 3A is selected, the calculation unit 550 creates the file header 11 including the price points of the pay application 12 read from the price data 4. The calculation unit 550 adds the file header 11 to the pay library file 1, creates the first library file 10, and transmits the first library file 10 to the CPU unit 100. As shown in FIG. 2A, the arithmetic unit 150 of the CPU unit 100 functioning as the file operation unit 151 stores the received first library file 10 in the program storage unit 111.
 図3Aに示す自作ライブラリファイル2が選択された場合、演算部550は、自作ライブラリファイル2にファイルヘッダ21を付加した第2ライブラリファイル20を作成する。演算部550は、第2ライブラリファイル20をCPUユニット100に送信する。図2Aに示すようにファイル操作部151として機能するCPUユニット100の演算部150は、受信した第2ライブラリファイル20をプログラム記憶部111に格納する。 When the self-made library file 2 shown in FIG. 3A is selected, the calculation unit 550 creates the second library file 20 in which the file header 21 is added to the self-made library file 2. The calculation unit 550 transmits the second library file 20 to the CPU unit 100. As shown in FIG. 2A, the calculation unit 150 of the CPU unit 100 functioning as the file operation unit 151 stores the received second library file 20 in the program storage unit 111.
 図3Aに示すユーザプログラムファイル3が選択された場合、演算部550は、ユーザプログラムファイル3に適宜のファイルヘッダ31を付加したユーザプログラムファイル30を作成する。演算部550は、ユーザプログラムファイル30をCPUユニット100に送信する。図2Aに示すようにファイル操作部151として機能するCPUユニット100の演算部150は、受信したユーザプログラムファイル30をプログラム記憶部111に格納する。 (3) When the user program file 3 shown in FIG. 3A is selected, the arithmetic unit 550 creates the user program file 30 in which an appropriate file header 31 is added to the user program file 3. The arithmetic unit 550 transmits the user program file 30 to the CPU unit 100. As shown in FIG. 2A, the arithmetic unit 150 of the CPU unit 100 functioning as the file operation unit 151 stores the received user program file 30 in the program storage unit 111.
 前述のように、CPUユニット100に登録されている保有ポイントと、ユーザプログラム32からコールされる有料アプリケーション12の対価ポイントの合計との関係で、CPUユニット100におけるユーザプログラム32の実行が制限される。このため、ユーザは、上述したように、エンジニアリングツール500を使用して、(1)ポイント登録、(2)ポイント割り当て、(3)ポイント書き込み、を行う必要がある。 As described above, the execution of the user program 32 in the CPU unit 100 is restricted by the relationship between the holding points registered in the CPU unit 100 and the total value points of the pay application 12 called from the user program 32. . Therefore, as described above, the user needs to perform (1) point registration, (2) point allocation, and (3) point writing using the engineering tool 500.
 以上が、CPUユニット100において、ユーザプログラム32の実行に先だってユーザが行うべき手順である。なお、上述の手順は一例であるため、一部の手順を省略、手順の入れ替えも可能である。 The above is the procedure to be performed by the user in the CPU unit 100 prior to the execution of the user program 32. Since the above-described procedure is an example, some procedures may be omitted and the procedures may be interchanged.
 次に、演算部150が図2Aに示す実行可否判別部152として機能し、ユーザプログラム32からコールされる有料アプリケーション12を実行することができるか否かを判別する実行可否の判別に係る処理を説明する。実行可否の判別に係る処理は、CPUユニット100のイニシャル処理の一部として実行される。 Next, the arithmetic unit 150 functions as the execution determination unit 152 illustrated in FIG. 2A, and performs processing related to execution determination for determining whether the pay application 12 called from the user program 32 can be executed. explain. The process for determining whether or not execution is possible is executed as part of the initial process of the CPU unit 100.
 このため、ユーザは、CPUユニット100の電源をオフした後、再度CPUユニット100の電源をオンする必要がある。電源の再投入により、CPUユニット100のファームウェアによるイニシャル処理を開始するためである。なお、プログラムの書き込みと、(1)ポイント登録、(2)ポイント割り当て、(3)ポイント書き込みについては既に行われているものとする。また、ポイント記憶部112には、800ポイントが予め登録されているものとする。また、実行可否フラグ113には、デフォルトの「実行不可」を示す値である“0”がセットされているものとする。 Therefore, the user needs to turn off the power of the CPU unit 100 and then turn on the power of the CPU unit 100 again. This is for starting the initial processing by the firmware of the CPU unit 100 by turning on the power again. It is assumed that the program writing, (1) point registration, (2) point allocation, and (3) point writing have already been performed. It is assumed that 800 points are registered in the point storage unit 112 in advance. Also, it is assumed that the execution permission flag 113 is set to “0” which is a default value indicating “non-execution”.
 図10を参照しながらCPUユニット100のイニシャル処理を説明する。演算部150は、CPUユニット100の各種メモリを初期化する(ステップS1)。演算部150は、プログラム記憶部111に格納されているプログラムファイルをチェックする(ステップS2)。具体的には、演算部150は、第1ライブラリファイル10、第2ライブラリファイル20、ユーザプログラムファイル30のうち、プログラム記憶部111に格納されているファイルが破損していないかをチェックする。 イ Initial processing of the CPU unit 100 will be described with reference to FIG. The arithmetic unit 150 initializes various memories of the CPU unit 100 (step S1). The operation unit 150 checks the program file stored in the program storage unit 111 (Step S2). Specifically, the calculation unit 150 checks whether the file stored in the program storage unit 111 among the first library file 10, the second library file 20, and the user program file 30 is damaged.
 演算部150は、ポイント記憶部112に保有ポイント情報が格納されているか否かを判別する(ステップS3)。ポイント記憶部112に保有ポイント情報が格納されていると判別すると(ステップS3;Yes)、演算部150は、保有ポイント情報を復号鍵で復号する(ステップS4)。 The calculation unit 150 determines whether the possessed point information is stored in the point storage unit 112 (step S3). If it is determined that the possessed point information is stored in the point storage unit 112 (Step S3; Yes), the arithmetic unit 150 decrypts the possessed point information using the decryption key (Step S4).
 演算部150は、保有ポイントが有効であるか否かを判別する(ステップS5)。具体的には、演算部150は、復号した保有ポイント情報に含まれているシリアルナンバーと、CPUユニット100の記憶部110に格納されているシリアルナンバーとが一致する場合、保有ポイントが有効であると判別し(ステップS5;Yes)、ステップS6の処理を実行する。一方、演算部150は、復号した保有ポイント情報に含まれているシリアルナンバーと、CPUユニット100の記憶部110に格納されているシリアルナンバーとが一致しない場合、保有ポイントが無効であると判別し(ステップS5;No)、イニシャル処理を終了する。このとき、演算部150は保有ポイントについてのエラーを表示部140に表示するようにしてもよい。 The calculation unit 150 determines whether or not the possessed points are valid (step S5). More specifically, if the serial number included in the decrypted holding point information matches the serial number stored in the storage unit 110 of the CPU unit 100, the calculation unit 150 determines that the holding points are valid. Is determined (Step S5; Yes), and the process of Step S6 is executed. On the other hand, if the serial number included in the decrypted holding point information does not match the serial number stored in the storage unit 110 of the CPU unit 100, the calculating unit 150 determines that the holding point is invalid. (Step S5; No), the initial processing ends. At this time, the calculation unit 150 may display an error regarding the owned points on the display unit 140.
 また、ステップS3において、演算部150は、ポイント記憶部112に保有ポイント情報が格納されていないと判別すると(ステップS3;No)、ステップS4、S5の処理を実行せずに、ステップS6の処理を実行する。 If the calculation unit 150 determines in step S3 that the stored point information is not stored in the point storage unit 112 (step S3; No), the processing in step S6 is performed without executing the processing in steps S4 and S5. Execute
 演算部150は、有料のライブラリファイルである第1ライブラリファイル10が、プログラム記憶部111に格納されているか否かを判別する(ステップS6)。第1ライブラリファイル10がプログラム記憶部111に格納されている場合(ステップS6;Yes)、演算部150は、有料のライブラリファイルである第1ライブラリファイル10を復号する(ステップS7)。 The calculation unit 150 determines whether the first library file 10 which is a paid library file is stored in the program storage unit 111 (step S6). When the first library file 10 is stored in the program storage unit 111 (Step S6; Yes), the calculation unit 150 decrypts the first library file 10 that is a paid library file (Step S7).
 演算部150は、ユーザプログラム32がコールする有料アプリケーション12の対価ポイントの合計を求める(ステップS8)。具体的には、演算部150は、図2Aのファイルヘッダ11から、ユーザプログラム32がコールする有料アプリケーション12の対価ポイントを読み出し、対価ポイントの合計を求める。例えば、ユーザプログラム32から、図2Aに示すアプリケーション1001と、アプリケーション1002と、アプリケーション1003とをコールしている場合、アプリケーション1001の対価ポイントは100ポイント、アプリケーション1002の対価ポイントは500ポイント、アプリケーション1003の対価ポイントは200ポイントであるので、対価ポイントの合計は、800ポイントである。 The calculation unit 150 obtains the total value points of the pay application 12 called by the user program 32 (step S8). Specifically, the calculation unit 150 reads the value points of the pay application 12 called by the user program 32 from the file header 11 of FIG. 2A, and calculates the total value points. For example, when the application program 1001, the application program 1002, and the application program 1003 shown in FIG. 2A are called from the user program 32, the consideration value of the application 1001 is 100 points, the consideration value of the application 1002 is 500 points, and the value of the application 1003 is Since the consideration points are 200 points, the total of the consideration points is 800 points.
 続いて、演算部150は、ステップS4で復号した保有ポイント情報に含まれている保有ポイントが、ステップS8で求めた有料アプリケーション12の対価ポイントの合計以上であるか否かを判別する(ステップS9)。演算部150は、保有ポイントが、対価ポイントの合計以上であると判別すると(ステップS9;Yes)、演算部150は、実行可否フラグ113に「実行可」を示す値である“1”をセットする(ステップS10)。例えば、保有ポイントが800ポイントであり、ユーザプログラム32がコールする有料アプリケーション12の対価ポイントの合計が800ポイントであるとすると、演算部150は、実行可否フラグ113に「実行可」を示す値である“1”をセットし、イニシャル処理を終了する。 Subsequently, the arithmetic unit 150 determines whether or not the possessed points included in the possessed point information decrypted in step S4 are equal to or greater than the sum of the consideration points of the pay application 12 obtained in step S8 (step S9). ). If the calculation unit 150 determines that the possessed points are equal to or greater than the sum of the consideration points (step S9; Yes), the calculation unit 150 sets “1”, which is a value indicating “executable”, to the executable flag 113. (Step S10). For example, assuming that the possessed points are 800 points and the total value points of the paid application 12 called by the user program 32 are 800 points, the arithmetic unit 150 sets the executable flag 113 to “executable” with a value indicating “executable”. A certain “1” is set, and the initial processing ends.
 一方、保有ポイントが、対価ポイントの合計未満であると判別すると(ステップS9;No)、演算部150は、実行可否フラグ113に「実行不可」を示す値である“0”をセットし(ステップS11)、イニシャル処理を終了する。例えば、保有ポイントが500ポイントであり、ユーザプログラム32がコールする有料アプリケーション12の対価ポイントの合計が800ポイントである場合には、演算部150は、保有ポイントが、対価ポイントの合計未満であると判別する。 On the other hand, when determining that the possessed points are less than the total of the consideration points (Step S9; No), the arithmetic unit 150 sets “0” which is a value indicating “executable” to the executable flag 113 (Step S9). S11), the initial processing ends. For example, in a case where the owned points are 500 points and the total of the consideration points of the pay application 12 called by the user program 32 is 800 points, the calculation unit 150 determines that the possession points are less than the total of the consideration points. Determine.
 また、演算部150は、ステップS5で、保有ポイントが有効でないと判別すると(ステップS5;Nо)、イニシャル処理を終了する。この場合も、実行可否フラグ113の値は変更されずデフォルトのままである。このとき、演算部150は、例えば、表示部140のインジケータランプを点灯してユーザにエラーを通知してもよい。 {Circle around (5)} If the calculation unit 150 determines in step S5 that the possessed points are not valid (step S5; No), the initial processing ends. Also in this case, the value of the execution permission flag 113 is not changed and remains at the default. At this time, the arithmetic unit 150 may, for example, turn on an indicator lamp of the display unit 140 to notify the user of the error.
 イニシャル処理が終了した後、演算部150は、ユーザプログラム32の各命令を順次処理する。実施の形態においては、演算部150は、図11に示すような手順でユーザプログラム32の各命令を処理することで、実行管理部153として機能する。 After the initial processing is completed, the arithmetic unit 150 sequentially processes each instruction of the user program 32. In the embodiment, the arithmetic unit 150 functions as the execution management unit 153 by processing each instruction of the user program 32 according to the procedure shown in FIG.
 図11に示すように、演算部150は、CPUユニット100がRUN状態であるか否かを判別する(ステップS21)。演算部150は、CPUユニット100のRUNスイッチがオンになっている場合、CPUユニット100がRUN状態であると判別し(ステップS21;Yes)、ステップS22の処理を実行する。一方、RUNスイッチがオンになっていない場合、演算部150は、RUN状態でないと判別し(ステップS21;No)、プログラム実行処理を終了する。なお、RUNスイッチは、CPUユニット100のハードスイッチであり、ユーザが手動で操作する。 As shown in FIG. 11, the arithmetic unit 150 determines whether the CPU unit 100 is in the RUN state (step S21). When the RUN switch of the CPU unit 100 is on, the arithmetic unit 150 determines that the CPU unit 100 is in the RUN state (Step S21; Yes), and executes the process of Step S22. On the other hand, when the RUN switch is not turned on, the arithmetic unit 150 determines that the RUN state is not established (step S21; No), and ends the program execution process. The RUN switch is a hardware switch of the CPU unit 100 and is manually operated by a user.
 演算部150は、ステップS22でユーザプログラム32の次の命令を読み出す(ステップS22)。例えば、イニシャル処理の直後のユーザプログラム32の実行においては、ユーザプログラム32の一番初めの命令が読み出される。 The operation unit 150 reads the next command of the user program 32 in step S22 (step S22). For example, in the execution of the user program 32 immediately after the initial processing, the first instruction of the user program 32 is read.
 演算部150は、ステップS22で読み出した命令が第1ライブラリファイル10の有料アプリケーション12をコールする命令であるか否かを判別する(ステップS23)。 The operation unit 150 determines whether the command read in step S22 is a command for calling the pay application 12 in the first library file 10 (step S23).
 読み出した命令が第1ライブラリファイル10の有料アプリケーション12をコールする命令であると判別すると(ステップS23;Yes)、演算部150は、実行可否フラグ113の値が「実行可」を示す値である“1”であるか否かを判別する(ステップS24)。 When determining that the read command is a command for calling the pay application 12 of the first library file 10 (step S23; Yes), the arithmetic unit 150 sets the value of the execution flag 113 to “executable”. It is determined whether it is "1" (step S24).
 実行可否フラグ113の値が「実行可」を示す値である“1”であると判別すると(ステップS24;Yes)、演算部150は、ステップS22で読み出した命令で指定された有料アプリケーション12をコールする(ステップS25)。例えば、ステップS22で読み出した命令が、図2Aに示すアプリケーション1002をコールする命令であれば、演算部150は、アプリケーション1002をコールする。その後、演算部150は、ステップS26の処理を実行する。 If it is determined that the value of the executable flag 113 is “1” indicating “executable” (step S24; Yes), the arithmetic unit 150 converts the paid application 12 specified by the instruction read in step S22 into Call (step S25). For example, if the command read in step S22 is a command for calling the application 1002 shown in FIG. 2A, the arithmetic unit 150 calls the application 1002. After that, the arithmetic unit 150 performs the process of step S26.
 ステップS24において、実行可否フラグ113の値が「実行可」を示す値である“1”でない、即ち、実行可否フラグ113の値が「実行不可」を示す値である“0”である場合(ステップS24;No)、演算部150は、ステップS22で読み出した命令で指定された有料アプリケーション12をコールせず、ステップS26の処理を実行する。 In step S24, when the value of the execution permission flag 113 is not “1” which is a value indicating “executable”, that is, when the value of the execution permission flag 113 is “0” which is a value indicating “non-execution” ( (Step S24; No), the arithmetic unit 150 executes the processing of step S26 without calling the pay application 12 specified by the instruction read in step S22.
 一方、ステップS23において、演算部150は、ステップS22で読み出した命令が有料アプリケーション12をコールする命令でないと判別すると(ステップS23;Nо)、当該命令を実行する(ステップS27)。例えば、読み出した命令が無料アプリケーション22をコールする命令である場合、演算部150は、無料アプリケーション22をコールする。その後、演算部150は、ステップS26の処理を実行する。 On the other hand, in step S23, when the arithmetic unit 150 determines that the instruction read in step S22 is not an instruction to call the pay application 12 (step S23; No), the arithmetic unit 150 executes the instruction (step S27). For example, when the read instruction is an instruction for calling the free application 22, the arithmetic unit 150 calls the free application 22. After that, the arithmetic unit 150 performs the process of step S26.
 ステップS26において、演算部150は、次の命令がEND命令であるか否かを判別する(ステップS26)。演算部150は、読み出した命令がEND命令であると判別すると(ステップS26;Yes)、予め設定されたEND命令における処理を実行し、その後、再びステップS21からの処理を実行する。一方、ステップS26において、演算部150は、読み出した命令がEND命令でないと判別すると(ステップS26;No)、再びステップS22からの処理を実行する。 (4) In step S26, the arithmetic unit 150 determines whether the next instruction is an END instruction (step S26). When determining that the read instruction is an END instruction (Step S26; Yes), the arithmetic unit 150 executes the processing of the preset END instruction, and thereafter executes the processing from Step S21 again. On the other hand, in step S26, when the arithmetic unit 150 determines that the read instruction is not the END instruction (step S26; No), the processing unit 150 executes the processing from step S22 again.
 以上説明したように、CPUユニット100が、ユーザプログラム32からコールされる有料アプリケーション12の対価ポイントの合計以上の保有ポイントを有している場合、CPUユニット100は、有料アプリケーション12を実行することができる。一方、CPUユニット100が、ユーザプログラム32からコールされる有料アプリケーション12の対価ポイントの合計以上の保有ポイントを有していない場合、CPUユニット100は、いずれの有料アプリケーション12も実行できない。そのため、ユーザプログラム32の命令が有料アプリケーション12をコールする命令である場合、CPUユニット100は当該命令の実行をスキップする。 As described above, when the CPU unit 100 has possessed points equal to or more than the sum of the consideration points of the pay application 12 called from the user program 32, the CPU unit 100 may execute the pay application 12. it can. On the other hand, if the CPU unit 100 does not have the possessed points equal to or greater than the sum of the consideration points of the pay application 12 called from the user program 32, the CPU unit 100 cannot execute any pay application 12. Therefore, when the instruction of the user program 32 is an instruction to call the pay application 12, the CPU unit 100 skips the execution of the instruction.
 実施の形態に係る構成においては、アプリケーションの実行回数、実行期間に応じて、保有ポイントが減らない。よって、ユーザは、プログラマブルロジックコントローラの稼動中に、保有ポイントの残数を監視しなくてもよい。また、保有ポイントが減らないため、ユーザは残数不足によりポイントを追加購入する必要がない。このように、選択したプログラム部品だけを使用できるにもかかわらず、ユーザにとって煩雑な作業を行う必要がなく、利便性が高い。また、ユーザは、購入した保有ポイントの範囲内であれば、有料アプリケーション12を継続して実行することができる。このように、期間経過によって有料アプリケーション12の実行ができなくなることがない。 In the configuration according to the embodiment, the possessed points do not decrease according to the number of times of execution of the application and the execution period. Therefore, the user does not need to monitor the remaining number of owned points while the programmable logic controller is operating. In addition, since the number of retained points does not decrease, the user does not need to purchase additional points due to the shortage of the remaining number. In this way, despite the fact that only the selected program component can be used, there is no need for the user to perform complicated work, and the convenience is high. In addition, the user can continue to execute the pay application 12 within the range of the purchased points. As described above, the execution of the pay application 12 cannot be prevented due to the elapse of the period.
 保有ポイントが、有料アプリケーション12の対価ポイントの合計より少ない場合であっても、ユーザプログラム32において有料アプリケーション12のコール命令を実行しないだけであり、CPUユニット100のユーザプログラム32の実行が中断されることはない。 Even if the possessed points are smaller than the sum of the consideration points of the pay application 12, only the call instruction of the pay application 12 is not executed in the user program 32, and the execution of the user program 32 of the CPU unit 100 is interrupted. Never.
 さらに、保有ポイントの範囲内の対価ポイントの有料アプリケーション12については、CPUユニット100は無期限に有料アプリケーション12を実行することができる。前述のように、実施の形態では、有料アプリケーション12はファイル単位でCPUユニット100に書き込まれている。ユーザプログラム32が修正され、コールされる有料アプリケーション12の組み合わせが変更されても、コールされる有料アプリケーション12の対価ポイントの合計が保有ポイントを超えない場合は、CPUユニット100は、有料アプリケーション12を実行することができる。この場合、ユーザはポイントを追加購入する必要がない。なお、有料アプリケーション12の実行可否の判別に係る処理はイニシャル処理の一部として実行されるため、ユーザプログラム32を修正した後、イニシャル処理を再度実行する必要がある。 Further, for the pay application 12 of the consideration points within the range of the holding points, the CPU unit 100 can execute the pay application 12 indefinitely. As described above, in the embodiment, the pay application 12 is written in the CPU unit 100 in file units. Even if the user program 32 is modified and the combination of the called pay applications 12 is changed, if the sum of the consideration points of the called pay application 12 does not exceed the retained points, the CPU unit 100 deletes the charged application 12. Can be performed. In this case, the user does not need to purchase additional points. Note that the process for determining whether the pay application 12 can be executed is executed as a part of the initial process. Therefore, after the user program 32 is modified, the initial process needs to be executed again.
 また、ユーザプログラム32の修正、置き換え等に伴い、保有ポイントが不足することになった場合には、ユーザは、必要なポイントを追加購入し、CPUユニット100に登録すればよい。 In the case where the possessed points become insufficient due to the modification or replacement of the user program 32, the user may purchase additional necessary points and register them in the CPU unit 100.
 なお、実施の形態においては、CPUユニット100において、ユーザプログラム32の実行の開始に先だってユーザが行うべき手順に、保有ポイントをCPUユニット100に書き込むことを述べたが、保有ポイントをCPUユニット100に一旦書き込んでしまえば、保有ポイントを変更、削除する必要がない間は、ポイントの書き込みの手順は不要である。 Note that, in the embodiment, the CPU unit 100 describes that the possessed points are written to the CPU unit 100 in the procedure to be performed by the user before the execution of the user program 32 is started. Once written, the point writing procedure is not required as long as it is not necessary to change or delete the owned points.
 また、エンジニアリングツール500は、CPUユニット100のポイント記憶部512からCPUユニット100に割り当てられた保有ポイントを読み出し、ユーザプログラム32内でコールされる有料アプリケーション12の対価ポイントの合計と保有ポイントとの差を、表示部540に表示するようにしてもよい。よって、ユーザは、有料アプリケーション12がコールされたか否かを知ることができ、ポイントの追加購入、ユーザプログラム32の修正等を行って、調整を行うことができる。 Further, the engineering tool 500 reads the holding points assigned to the CPU unit 100 from the point storage unit 512 of the CPU unit 100, and calculates the difference between the total of the consideration points of the pay application 12 called in the user program 32 and the holding points. May be displayed on the display unit 540. Therefore, the user can know whether or not the pay application 12 has been called, and can make an adjustment by additionally purchasing points, modifying the user program 32, and the like.
 実施の形態においては、ポイント記憶部112が保持する保有ポイントが、ユーザプログラム32がコールしている有料アプリケーション12の対価ポイントの合計以上である場合に、有料アプリケーション12の実行が許可され、そうでない場合には、有料アプリケーション12の実行が一切認められない例を説明した。しかしながら、有料アプリケーション12の実行制限の構成は、これに限られない。 In the embodiment, when the holding points held by the point storage unit 112 are equal to or more than the sum of the consideration points of the pay application 12 called by the user program 32, the execution of the pay application 12 is permitted. In this case, an example has been described in which execution of the pay application 12 is not permitted at all. However, the configuration of the execution restriction of the pay application 12 is not limited to this.
 (変形例1)
 あるいは、図3Aの対価データ4には、各有料アプリケーション12の優先度を示す情報が付加されていてもよい。図12に優先度を示す情報が付加された対価データ4aに格納されるデータの例を示す。この場合、実行可否判別部152は、実行可否の判別に係る処理において、保有ポイントで認められる範囲で、対価データ4aに格納された有料アプリケーション12について、優先度の順で実行が可能であるか否かを判別する。例えば、図12に示すように優先度が定義されており、保有ポイントが700ポイントであるとする。この場合、実行可否判別部152は、保有ポイントの範囲内で、優先度に従って、アプリケーション1002及び1003を実行することが可能であると判別する。実行可否判別部152は、アプリケーション1001、アプリケーション1004、及びアプリケーション1005を実行することができないと判別する。
(Modification 1)
Alternatively, information indicating the priority of each pay application 12 may be added to the consideration data 4 in FIG. 3A. FIG. 12 shows an example of data stored in the consideration data 4a to which information indicating the priority is added. In this case, the execution availability determination unit 152 determines whether the paid applications 12 stored in the consideration data 4a can be executed in the order of priority in the process related to the execution availability determination within a range permitted by the holding points. It is determined whether or not. For example, it is assumed that the priorities are defined as shown in FIG. 12 and the possessed points are 700 points. In this case, the execution availability determination unit 152 determines that the applications 1002 and 1003 can be executed according to the priority within the range of the holding points. The execution determination unit 152 determines that the application 1001, the application 1004, and the application 1005 cannot be executed.
 あるいは、保有ポイントが800ポイントであるとする。この場合、実行可否判別部152は、保有ポイントの範囲内で、優先順位に従って、アプリケーション1001~1003を実行することが可能であり、アプリケーション1004及び1005を実行することができないと判別する。さらに、実行可否判別部152は、実行可否を示す情報を、図13に示すような実行可否データ113aに格納してもよい。図13では、保有ポイントが800ポイントである場合に、実行可否データ113aに格納された情報を示す。図13では、アプリケーション1001~1003を実行することが可能であることを示す情報が実行可否データ113aに格納されている。実行管理部153は、実行可否データ113aに格納された実行可否を示す情報に基づいて、有料アプリケーション12を実行するか否かの制御を行う。この場合、図2Aに示す実行可否フラグ113は不要である。 Alternatively, it is assumed that the possessed points are 800 points. In this case, the execution possibility determination unit 152 determines that the applications 1001 to 1003 can be executed according to the priority order within the range of the holding points, and the applications 1004 and 1005 cannot be executed. Further, the execution possibility determination unit 152 may store information indicating the execution possibility in the execution possibility data 113a as shown in FIG. FIG. 13 shows information stored in the executable data 113a when the possessed points are 800 points. In FIG. 13, information indicating that the applications 1001 to 1003 can be executed is stored in the execution possibility data 113a. The execution management unit 153 controls whether or not to execute the pay application 12 based on the information indicating whether or not execution is possible, which is stored in the execution possibility data 113a. In this case, the execution enable / disable flag 113 shown in FIG. 2A is unnecessary.
 (変形例2)
 また、あるいは、有料アプリケーション12にそれぞれ対価ポイントを設定するのではなく、アプリケーションをカテゴリで分別し、保有ポイント数に応じて、決められたカテゴリの有料アプリケーション12を実行できるよう制御してもよい。図14に、有料アプリケーション12とカテゴリとの対応付けを示すデータを格納したカテゴリテーブル4bの例を示す。この場合、図3Aに示す対価データ4は不要である。
(Modification 2)
Alternatively, instead of setting the consideration points for each of the paid applications 12, the applications may be classified by category, and control may be performed so that the paid application 12 of a predetermined category can be executed according to the number of possessed points. FIG. 14 shows an example of the category table 4b storing data indicating the association between the pay application 12 and the category. In this case, the value data 4 shown in FIG. 3A is unnecessary.
 例えば、保有ポイントが500ポイント以上であることが、カテゴリ1の有料アプリケーション12の実行が許可される条件であるとする。保有ポイントが800ポイント以上であることが、カテゴリ1及びカテゴリ2の有料アプリケーション12の実行が許可される条件であるとする。保有ポイントを1200ポイント以上であることが、カテゴリ1~3の有料アプリケーション12、即ち、全ての有料アプリケーション12の実行が許可される条件であるとする。これらの条件を示すデータは、記憶部110に予め記憶されているものとする。ここで、保有ポイントが900ポイントであると仮定する。この場合、実行可否判別部152は、実行可否の判別に係る処理において、カテゴリ1及びカテゴリ2の有料アプリケーション12の実行が可能であると判別する。図14に示すカテゴリから、アプリケーション1002~1005の実行が可能である。実行可否判別部152は、実行可否を示す情報を、図15に示すような実行可否データ113bに格納する。実行管理部153は、実行可否データ113bに格納された実行可否を示す情報に基づいて、有料アプリケーション12を実行するか否かの制御を行う。この場合、図2Aに示す実行可否フラグ113は不要である。 For example, suppose that the possession points of 500 points or more is a condition under which the execution of the category 1 pay application 12 is permitted. It is assumed that the possession points of 800 points or more are the conditions under which the execution of the category 1 and category 2 pay applications 12 is permitted. It is assumed that the holding point of 1200 points or more is a condition under which the execution of the pay applications 12 of the categories 1 to 3, that is, all the pay applications 12 is permitted. It is assumed that data indicating these conditions is stored in the storage unit 110 in advance. Here, it is assumed that the possessed points are 900 points. In this case, the execution availability determination unit 152 determines that the paid application 12 of the category 1 and the category 2 can be executed in the process related to the determination of the availability. From the categories shown in FIG. 14, applications 1002 to 1005 can be executed. The execution possibility determination unit 152 stores information indicating the execution possibility in the execution possibility data 113b as shown in FIG. The execution management unit 153 controls whether or not to execute the pay application 12 based on the information indicating whether or not execution is possible, which is stored in the execution possibility data 113b. In this case, the execution enable / disable flag 113 shown in FIG. 2A is unnecessary.
 実施の形態においては、PLC1000が1つのCPUユニット100を含む例を説明したが、PLC1000は、2以上のCPUユニット100を含んでいてもよい。このような場合であっても、図3Bに示すように、CPUユニット100のシリアルナンバーに保有ポイントを割り当てているため問題ない。 In the embodiment, the example in which the PLC 1000 includes one CPU unit 100 has been described. However, the PLC 1000 may include two or more CPU units 100. Even in such a case, as shown in FIG. 3B, there is no problem because the holding points are assigned to the serial number of the CPU unit 100.
 また、CPUユニット100は、1台の情報処理装置上で動作する2以上の仮想マシン上で動作するものであってもよい。例えば、複数のCPUユニット100の内の1つが、ホストマシン上で動作し、他のCPUユニットが仮想マシン上で動作する。この場合、ポイント記憶部512は、それぞれのCPUユニット100を識別する情報に、それぞれのCPUユニット100の保有ポイントを対応付けたデータを記憶すればよい。 The CPU unit 100 may operate on two or more virtual machines operating on one information processing device. For example, one of the plurality of CPU units 100 operates on the host machine, and the other CPU units operate on the virtual machine. In this case, the point storage unit 512 may store data in which information for identifying each CPU unit 100 is associated with the possessed points of each CPU unit 100.
 また、実施の形態では、プログラム、プログラム部品をファイル単位でCPUユニット100に書き込む例を説明した。しかしながらこれに限られない。例えば、ファイル操作部551が、ユーザプログラム32を解析し、ユーザプログラム32でコールされている有料アプリケーション12だけをCPUユニット100に書き込むようにしてもよい。この場合、記憶部110の使用容量を無駄に増やすことがない。 In the embodiment, an example has been described in which a program and a program component are written in the CPU unit 100 in file units. However, it is not limited to this. For example, the file operation unit 551 may analyze the user program 32 and write only the pay application 12 called by the user program 32 to the CPU unit 100. In this case, the used capacity of the storage unit 110 is not increased unnecessarily.
 実施の形態においては、図1に示す演算部150は、MPUを有する例を説明したが、演算部150は、MPUに加え、特定用途向け集積回路であるASIC(Application Specific Integrated Circuit)を有していてもよい。演算部150は、さらにFPGA(Field Programmable Gate Array)を有していてもよい。 In the embodiment, the example in which the arithmetic unit 150 illustrated in FIG. 1 includes an MPU has been described. However, the arithmetic unit 150 includes an ASIC (Application Specific Integrated Circuit) that is an application-specific integrated circuit in addition to the MPU. May be. The operation unit 150 may further include an FPGA (Field Programmable Gate Array).
 上述したように演算部150を実行可否判別部152として機能させるためのプログラムと、演算部150を実行管理部153として機能させるプログラムとを記録する記録媒体としては、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ、半導体メモリ、磁気テープを含むコンピュータ読取可能な記録媒体を使用することができる。 As described above, as a recording medium for recording a program for causing the operation unit 150 to function as the execution availability determination unit 152 and a program for causing the operation unit 150 to function as the execution management unit 153, a magnetic disk, an optical disk, a magneto-optical disk A computer-readable recording medium including a flash memory, a semiconductor memory, and a magnetic tape can be used.
 本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。 The present invention is capable of various embodiments and modifications without departing from the broad spirit and scope. Further, the above-described embodiments are for explaining the present invention, and do not limit the scope of the present invention. That is, the scope of the present invention is shown not by the embodiment but by the claims. Various modifications made within the scope of the claims and the equivalents of the invention are considered to be within the scope of the present invention.
1 有料ライブラリファイル、2 自作ライブラリファイル、3,30 ユーザプログラムファイル、4,4a 対価データ、4b カテゴリテーブル、10 第1ライブラリファイル、11,21,31 ファイルヘッダ、111,511 プログラム記憶部、12,22 アプリケーション、20 第2ライブラリファイル、30,30A ユーザプログラムファイル、32 ユーザプログラム、100 CPUユニット、110,510,710 記憶部、111 プログラム記憶部、112,512 ポイント記憶部、113 実行可否フラグ、113a,113b 実行可否データ、120,520,720 通信部、130,530 入力受付部、140,540 表示部、150,550,730 演算部、151,551 ファイル操作部、152 実行可否判別部、153 実行管理部、154,552 ポイント管理部、160 ツール用通信部、161,521 通信インタフェース、190,590,790 バス、200 入力ユニット、300 出力ユニット、400 フィールドバス、500 エンジニアリングツール、560 サーバ用通信部、600 通信ケーブル、700 ポイント管理サーバ、800 ネットワーク、901 検出器、902 被制御機器、1000 プログラマブルロジックコントローラ、5120 ポイント管理テーブル 1 {paid library file, 2} self-made library file, 3, 30 # user program file, 4, 4a # price data, 4b # category table, 10 # first library file, 11, 21, 31 # file header, 111, 511 # program storage unit, 12, 22 application, 20 second library file, 30, 30A user program file, 32 user program, 100 CPU unit, 110, 510, 710 storage unit, 111 program storage unit, 112, 512 point storage unit, 113 execution enable / disable flag, 113a , 113b {executability data, 120, 520, 720} communication unit, 130, 530 {input reception unit, 140, 540} display unit, 150, 550, 730 {operation unit, 151, 551} File operation unit, 152 execution executable determination unit, 153 execution management unit, 154,552 point management unit, 160 communication unit for tool, 161,521 communication interface, 190, 590, 790 bus, 200 input unit, 300 output unit, 400 Fieldbus, 500 engineering tool, 560 server communication unit, 600 communication cable, 700 point management server, 800 network, 901 detector, 902 controlled equipment, 1000 programmable logic controller, 5120 point management table

Claims (10)

  1.  プログラマブルロジックコントローラのCPUユニットであって、
     少なくとも1つのプログラム部品について、前記プログラム部品の実行に要求される対価を示す対価ポイントを記憶する対価ポイント記憶手段と、
     前記CPUユニットにおいて、前記プログラム部品の実行が認められる限度を示すポイントであって、前記プログラム部品の実行回数、及び、前記プログラム部品の実行期間、にかかわらず維持される限度ポイントを記憶する限度ポイント記憶手段と、
     選択された前記プログラム部品の前記対価ポイントの合計が、前記限度ポイント以下である場合、前記プログラム部品の実行が可能であると判別し、前記対価ポイントの前記合計が、前記限度ポイントを超えている場合、前記プログラム部品の実行が不可能であると判別する判別手段と、
     前記判別手段が前記プログラム部品の実行が可能であると判別した場合、前記プログラム部品を実行し、前記判別手段が前記プログラム部品の実行が不可能であると判別した場合、前記プログラム部品を実行しない実行管理手段と、
     を備える、
     CPUユニット。
    A CPU unit of a programmable logic controller,
    Price point storage means for storing, for at least one program component, a price point indicating a price required to execute the program component;
    In the CPU unit, a limit point indicating a limit at which execution of the program component is permitted, the limit point storing a limit point maintained irrespective of the number of times the program component is executed and an execution period of the program component. Storage means;
    If the sum of the consideration points of the selected program part is less than or equal to the limit point, it is determined that the execution of the program part is possible, and the sum of the consideration points exceeds the limit point. A determination unit that determines that execution of the program component is impossible;
    If the determining means determines that the program component can be executed, the program component is executed.If the determining means determines that the program component cannot be executed, the program component is not executed. Execution management means;
    Comprising,
    CPU unit.
  2.  前記CPUユニットが実行するプログラムを記憶するプログラム記憶手段、
     をさらに備え、
     選択された前記プログラム部品は、前記プログラムからコールされる前記プログラム部品である、
     請求項1に記載のCPUユニット。
    Program storage means for storing a program to be executed by the CPU unit,
    Further comprising
    The selected program part is the program part called from the program,
    The CPU unit according to claim 1.
  3.  前記限度ポイントは、ユーザが対価を払って購入したポイントを含む、
     請求項1又は2に記載のCPUユニット。
    The limit points include points purchased by the user for payment,
    The CPU unit according to claim 1.
  4.  前記判別手段は、選択された前記プログラム部品の組み合わせが変更されると、前記限度ポイントが、変更後の組み合わせに含まれる前記プログラム部品の前記対価ポイントの前記合計以上であるか否かを判別する、
     請求項1から3のいずれか1項に記載のCPUユニット。
    When the combination of the selected program components is changed, the determination unit determines whether the limit point is equal to or greater than the total of the consideration points of the program components included in the changed combination. ,
    The CPU unit according to claim 1.
  5.  少なくとも1つのプログラム部品について、前記プログラム部品の実行に要求される対価を示す対価ポイントを記憶する対価ポイント記憶手段と、
     CPUユニットにおいて、前記プログラム部品の実行が認められる限度を示すポイントであって、前記プログラム部品の実行回数、及び、前記プログラム部品の実行期間、にかかわらず維持される限度ポイントを記憶する限度ポイント記憶手段と、
     選択された前記プログラム部品の前記対価ポイントの合計が、前記限度ポイント以下である場合、前記プログラム部品の実行が可能であると判別し、前記対価ポイントの前記合計が、前記限度ポイントを超えている場合、前記プログラム部品の実行が不可能であると判別する判別手段と、
     前記判別手段が前記プログラム部品の実行が可能であると判別した場合、前記プログラム部品を実行し、前記判別手段が前記プログラム部品の実行が不可能であると判別した場合、前記プログラム部品を実行しない実行管理手段と、
     を備えるCPUユニットを有するプログラマブルロジックコントローラ。
    Price point storage means for storing, for at least one program component, a price point indicating a price required to execute the program component;
    In the CPU unit, a limit point storage for storing a limit indicating a limit at which execution of the program component is permitted, the limit point being maintained regardless of the number of times the program component is executed and the execution period of the program component. Means,
    If the sum of the consideration points of the selected program part is less than or equal to the limit point, it is determined that the execution of the program part is possible, and the sum of the consideration points exceeds the limit point. A determination unit that determines that execution of the program component is impossible;
    If the determining means determines that the program component can be executed, the program component is executed.If the determining means determines that the program component cannot be executed, the program component is not executed. Execution management means;
    A programmable logic controller having a CPU unit comprising:
  6.  プログラマブルロジックコントローラのCPUユニットが、
     選択されたプログラム部品について、前記プログラム部品の実行に要求される対価を示す対価ポイントを合計した前記対価ポイントの合計が、前記CPUユニットにおいて前記プログラム部品の実行が認められる限度を示すポイントであって、前記プログラム部品の実行回数、及び、前記プログラム部品の実行期間、にかかわらず維持される限度ポイント以下である場合、前記プログラム部品の実行が可能であると判別し、前記対価ポイントの前記合計が、前記限度ポイントを超えている場合、前記プログラム部品の実行が不可能であると判別するステップと、
     前記プログラム部品の実行が可能である場合、前記プログラム部品を実行するステップと、
     を実行する方法。
    The CPU unit of the programmable logic controller is
    For the selected program part, the sum of the consideration points, which is the sum of the consideration points indicating the consideration required for the execution of the program part, is a point indicating the limit of execution of the program part in the CPU unit. The number of executions of the program part, and the execution period of the program part, if it is less than or equal to the limit point maintained, it is determined that the execution of the program part is possible, and the sum of the consideration points is Determining that the execution of the program component is impossible if the limit point is exceeded;
    Executing the program component if the execution of the program component is possible;
    How to do.
  7.  CPUユニットに、
     選択されたプログラム部品について、前記プログラム部品の実行に要求される対価を示す対価ポイントを合計した前記対価ポイントの合計が、前記CPUユニットにおいて前記プログラム部品の実行が認められる限度を示すポイントであって、前記プログラム部品の実行回数、及び、前記プログラム部品の実行期間、にかかわらず維持される限度ポイント以下である場合、前記プログラム部品の実行が可能であると判別させ、前記対価ポイントの前記合計が、前記限度ポイントを超えている場合、前記プログラム部品の実行が不可能であると判別させ、
     前記プログラム部品の実行が可能である場合、前記プログラム部品を実行させる、
     プログラム。
    In the CPU unit,
    For the selected program part, the sum of the consideration points, which is the sum of the consideration points indicating the consideration required for the execution of the program part, is a point indicating the limit of execution of the program part in the CPU unit. The number of executions of the program component, and the execution period of the program component, if it is less than or equal to the limit point maintained, it is determined that the execution of the program component is possible, the sum of the consideration points is If the limit point is exceeded, it is determined that the execution of the program component is impossible,
    When the execution of the program component is possible, the program component is executed,
    program.
  8.  請求項1から4のいずれか1項に記載の前記CPUユニットと接続可能であるエンジニアリングツールであって、
     前記限度ポイントと、前記対価ポイントとを記憶する記憶手段と、
     前記CPUユニットの前記限度ポイント記憶手段が記憶する前記限度ポイントを、前記記憶手段が記憶する前記限度ポイントで更新し、前記CPUユニットの前記対価ポイント記憶手段が記憶する前記対価ポイントを、前記記憶手段が記憶する前記対価ポイントで更新する更新手段と、
     を備えるエンジニアリングツール。
    An engineering tool connectable to the CPU unit according to any one of claims 1 to 4,
    Storage means for storing the limit points and the consideration points;
    The limit points stored in the limit point storage means of the CPU unit are updated with the limit points stored in the storage means, and the consideration points stored in the consideration point storage means of the CPU unit are stored in the storage means. Updating means for updating with the consideration points stored by
    Engineering tools with
  9.  前記記憶手段が記憶する前記限度ポイントは、ユーザによって追加される、
     請求項8に記載のエンジニアリングツール。
    The limit point stored in the storage means is added by a user,
    An engineering tool according to claim 8.
  10.  表示装置をさらに備え、
     前記判別手段の前記プログラム部品の実行の可否の判別に応じて、前記実行管理手段の前記プログラム部品の実行の状況を、前記表示装置に表示する、
     請求項8又は9に記載のエンジニアリングツール。
    Further comprising a display device,
    Displaying, on the display device, a state of execution of the program component by the execution management unit in accordance with the determination of whether the program component is executable by the determination unit;
    The engineering tool according to claim 8.
PCT/JP2018/037339 2018-10-05 2018-10-05 Cpu unit, programmable logic controller, method, program, and engineering tool WO2020070873A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2018/037339 WO2020070873A1 (en) 2018-10-05 2018-10-05 Cpu unit, programmable logic controller, method, program, and engineering tool
JP2019530227A JP6570801B1 (en) 2018-10-05 2018-10-05 CPU unit, programmable logic controller, program, and engineering tool
CN201880098306.1A CN112789648A (en) 2018-10-05 2018-10-05 CPU unit, programmable logic controller, method, program, and engineering tool

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/037339 WO2020070873A1 (en) 2018-10-05 2018-10-05 Cpu unit, programmable logic controller, method, program, and engineering tool

Publications (1)

Publication Number Publication Date
WO2020070873A1 true WO2020070873A1 (en) 2020-04-09

Family

ID=67844738

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/037339 WO2020070873A1 (en) 2018-10-05 2018-10-05 Cpu unit, programmable logic controller, method, program, and engineering tool

Country Status (3)

Country Link
JP (1) JP6570801B1 (en)
CN (1) CN112789648A (en)
WO (1) WO2020070873A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002036676A (en) * 2000-07-26 2002-02-06 Fujitsu Ltd Bankbook printer
US20040030564A1 (en) * 2000-05-15 2004-02-12 Andreas Hartinger Licensing and access authorization
JP2005010028A (en) * 2003-06-19 2005-01-13 Omron Corp Waveform inspection device, network system, setting tool, and method of constructing waveform inspection system
WO2013128603A1 (en) * 2012-02-29 2013-09-06 富士電機株式会社 Programmable controller, programmable controller system, and provision system for programmable controller
JP6388736B1 (en) * 2017-04-24 2018-09-12 三菱電機株式会社 Programmable logic controller system and engineering tool program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69028705T2 (en) * 1989-04-28 1997-03-06 Softel Inc METHOD AND DEVICE FOR REMOTE CONTROLLING AND MONITORING THE APPLICATION OF COMPUTER PROGRAMS
US7849329B2 (en) * 2004-09-01 2010-12-07 Microsoft Corporation Licensing the use of a particular feature of software
CN100524333C (en) * 2006-06-13 2009-08-05 正璞科技有限公司 Method for preventing illegal using software
CN101202636A (en) * 2006-12-11 2008-06-18 中兴通讯股份有限公司 Device for realizing charging according to resource types based on medium service apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040030564A1 (en) * 2000-05-15 2004-02-12 Andreas Hartinger Licensing and access authorization
JP2002036676A (en) * 2000-07-26 2002-02-06 Fujitsu Ltd Bankbook printer
JP2005010028A (en) * 2003-06-19 2005-01-13 Omron Corp Waveform inspection device, network system, setting tool, and method of constructing waveform inspection system
WO2013128603A1 (en) * 2012-02-29 2013-09-06 富士電機株式会社 Programmable controller, programmable controller system, and provision system for programmable controller
JP6388736B1 (en) * 2017-04-24 2018-09-12 三菱電機株式会社 Programmable logic controller system and engineering tool program

Also Published As

Publication number Publication date
JP6570801B1 (en) 2019-09-04
CN112789648A (en) 2021-05-11
JPWO2020070873A1 (en) 2021-02-15

Similar Documents

Publication Publication Date Title
JP5963957B2 (en) Development environment system, development environment device, development environment providing method and program
KR100962927B1 (en) Information processing method, information processing apparatus and storage medium
EP1901190A1 (en) Method and system for managing access to add-on data files
JP2012008927A (en) Management device, license management server, electronic apparatus, electronic apparatus management system, management method, program, and storage medium
TW200415479A (en) Common memory system shared by more than one set of computer and information processing system providing the memory system
JP2011150430A (en) Sdk distribution package generation device, sdk distribution package generation method, and sdk distribution package generation program
JP6127719B2 (en) Information processing system, information processing apparatus, license management method, and program
JP6070423B2 (en) Information processing apparatus, information processing method, and program
WO2020070873A1 (en) Cpu unit, programmable logic controller, method, program, and engineering tool
WO2015136964A1 (en) License information management device, license information management method, and program
US20210110005A1 (en) License management apparatus, license management method, and recording medium storing license management program
JP6439051B2 (en) Semiconductor device suitable for license management
JP2010204886A (en) License management apparatus and program
JP5473146B2 (en) Software protection method
WO2020044483A1 (en) Control device, control method, and program
JP2002116834A (en) Method for permitting use of software and system for the same and computer readable recording medium
JP7417188B2 (en) Image forming system, image forming device and application control program
CN113614716B (en) License transfer tool, computer-readable recording medium having program recorded thereon, and license transfer system
JP6304427B2 (en) Information processing system and operation terminal
JP2007334821A (en) Application protection device, application protection method, and application protection program
JP2021117658A (en) Image forming system, image forming apparatus, and application control program
JP5704219B2 (en) Device management system and device management method
JP2018120605A (en) Information processing system, information processing device, and program
JP2017041167A (en) Software developing kit, printer system, and firmware update setting method

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2019530227

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18936046

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18936046

Country of ref document: EP

Kind code of ref document: A1