WO2012124196A1 - プログラマブルコントローラシステム、ツール装置、ツール用プログラム及び記録媒体並びにプログラマブルコントローラ - Google Patents

プログラマブルコントローラシステム、ツール装置、ツール用プログラム及び記録媒体並びにプログラマブルコントローラ Download PDF

Info

Publication number
WO2012124196A1
WO2012124196A1 PCT/JP2011/071859 JP2011071859W WO2012124196A1 WO 2012124196 A1 WO2012124196 A1 WO 2012124196A1 JP 2011071859 W JP2011071859 W JP 2011071859W WO 2012124196 A1 WO2012124196 A1 WO 2012124196A1
Authority
WO
WIPO (PCT)
Prior art keywords
user program
program execution
programmable controller
unit
execution
Prior art date
Application number
PCT/JP2011/071859
Other languages
English (en)
French (fr)
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 CN201180003124.XA priority Critical patent/CN103052920B/zh
Priority to EP11817202.2A priority patent/EP2523057B1/en
Priority to US13/399,056 priority patent/US9311460B2/en
Publication of WO2012124196A1 publication Critical patent/WO2012124196A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24167Encryption, password, user access privileges

Definitions

  • the present invention relates to a programmable controller system, a tool program, a tool device, a recording medium, and a programmable controller that include a tool device that communicates with a programmable controller and has a function of preventing unauthorized use of a user program executed on the programmable controller.
  • PLCs programmable controllers
  • the vendor sets a user program (in order to make the industrial machine controlled by the PLC a desired operation specification). Control program), and the created user program is incorporated into the PLC.
  • the vendor as a reference user program in a form stored in a recording medium such as a CD-ROM, in addition to providing the PLC in which the created user program is incorporated. It is customary to provide to end users.
  • the reference user program provided by the vendor is used for minor customization of the program on the end user side, data value reference (I / O monitor), and the like.
  • the contents of the reference user program provided to the end user for the purpose of minor customization of the program, reference of data values (I / O monitor), etc. are provided with comments, labels, etc. to enhance the understanding level on the end user side. Except for being attached, it is substantially the same as the user program for actual operation incorporated in the PLC.
  • Patent Document 1 Japanese Patent Laid-Open No. 2009-70144 describes an arbitrary hardware ID that is a reference for comparison written in the PLC memory and a target for verification specified by an operand of a user program. A programming method for checking with an arbitrary hardware ID is disclosed.
  • Patent Document 1 Japanese Patent Laid-Open No. 2009-70144
  • the user must create a user program in order to check the hardware ID and execute the program on the programmable controller. Convenience for preventing unauthorized use of user programs is not good.
  • the present invention provides a programmable controller system, a tool device, a program for a tool, a recording medium, and a programmable controller that can improve the convenience for preventing unauthorized use of a user program executed on the programmable controller. With the goal.
  • the present invention provides the following programmable controller system, tool device, tool program, recording medium, and programmable controller.
  • Programmable controller system A programmable controller system comprising a programmable controller and a tool device for communicating with the programmable controller and causing a user program to be executed on the programmable controller, wherein the tool device is the user program A first receiving unit that receives input information of a first user program execution ID that is collated for execution, a transmission unit that transmits the first user program execution ID to the programmable controller, and execution of the user program A second accepting unit for accepting input information of a second user program execution ID to be collated for the first setting to associate the second user program execution ID with the user program in the own device
  • the second user program execution ID is once set, and after that, the second user program execution ID cannot be set and cannot be deleted.
  • the first user transmitted to the programmable controller in the transmission unit is configured to have neither a function to display nor a function to display the second user program execution ID.
  • a second setting unit for setting a program execution ID in the programmable controller, a verification unit for verifying whether the first user program execution ID and the second user program execution ID match, and Based on the collation result collated by the collation unit, the first user program execution ID and the second user program An execution prohibition unit for prohibiting execution of the user program when the program execution ID does not match, and the first user program execution ID can be set and deleted.
  • Tool device A tool device provided in the programmable controller system according to one aspect of the present invention, wherein the first device receives input information of a first user program execution ID collated for execution of the user program.
  • a first setting unit that sets the second user program execution ID in the local apparatus in association with the user program, and after the second user program execution ID is once set, the second user program The execution ID cannot be set and cannot be erased.
  • a tool apparatus characterized by having neither a function for displaying a user program execution ID nor a function for displaying the second user program execution ID.
  • the control unit in the tool device includes means for including the first receiving unit, the transmitting unit, the second receiving unit, and the first setting unit. Tool program to make it function.
  • Programmable controller It is a programmable controller provided in the programmable controller system which concerns on the one aspect
  • the “ID” in the present invention is an abbreviation of “identification” and means an identification code.
  • the first reception unit receives input information of the first user program execution ID
  • the transmission unit transmits the first user program execution ID to the programmable controller
  • the transmission unit transmits the first user program execution ID to the programmable controller
  • the first setting unit associates the second user program execution ID with the user program and sets it in its own device.
  • the tool device is configured to manage information on a plurality of the user programs as one project, and the first setting unit executes the second user program on the project.
  • a mode of setting the business ID can be exemplified.
  • the second user program execution ID is set in the project by the first setting unit, the second user program execution ID, the user program, Can be easily associated.
  • the tool device includes the first user program execution ID received by the first reception unit and the second user program execution ID received by the second reception unit.
  • An encryption unit for encrypting wherein the transmission unit transmits the first user program execution ID encrypted by the encryption unit to the programmable controller, and the first setting unit includes the encryption
  • the second user program execution ID encrypted by the encryption unit is set in the tool device, and the second setting unit is encrypted by the encryption unit and transmitted to the programmable controller by the transmission unit.
  • the mode which sets the ID for said 1st user program execution performed to the said programmable controller can be illustrated.
  • the first user program execution ID received by the encryption unit and received by the first reception unit and the second user program execution ID received by the second reception unit are encrypted. Therefore, even if the information of the first user program execution ID and / or the second user program execution ID is read and stolen, the first user program execution ID and the second user Since the program execution ID is encrypted, it is difficult for the person other than the original user to know the first user program execution ID and / or the second user program execution ID. Accordingly, it is possible to improve security against leakage of the first user program execution ID and / or the second user program execution ID to the outside.
  • the transmission unit transmits the second user program execution ID to the programmable controller, and the programmable controller is transmitted to the programmable controller by the transmission unit.
  • a mode provided with the storage control part which stores ID for execution in this programmable controller can be illustrated.
  • the second user program execution ID is stored in the programmable controller by the storage control unit, the second user program execution ID is acquired from the tool device for each verification by the verification unit. Even without this, the first user program execution ID and the second user program execution ID can be easily verified.
  • the said tool apparatus is provided with the addition part which adds said 2nd user program execution ID to the said user program,
  • the said transmission part is said 2nd user program execution ID in the said addition part. Is transmitted to the programmable controller, and the storage control unit is added to the second user program execution ID by the adding unit and transmitted to the programmable controller by the transmitting unit.
  • a mode in which a user program is stored in the programmable controller can be exemplified.
  • the user program in which the second user program execution ID is added to the user program by the addition unit and the second user program execution ID is added by the storage control unit in the addition unit. Since it transmits to the said programmable controller and it stores in the said programmable controller, it becomes possible to make it difficult to understand presence of said 2nd user program execution ID in the said programmable controller.
  • the programmable controller is configured to store the user program in a nonvolatile memory provided in the programmable controller, and the verification unit is stored in the nonvolatile memory.
  • the first user program execution ID and the second user program execution ID are Therefore, the first user program execution ID and the second user program execution ID can be reliably verified prior to the execution of the user program.
  • the programmable controller may include a release unit that cancels the execution prohibition state of the user program by the execution prohibition unit by restarting the programmable controller.
  • the release unit may cancel the execution prohibition state of the user program by the execution prohibition unit by restarting the programmable controller. it can.
  • the release unit may cancel the execution prohibition state of the user program by the execution prohibition unit by restarting the programmable controller.
  • the tool device input information of the second user program execution ID collated for execution of the user program by the second reception unit is received, and the first Since the setting unit sets the second user program execution ID in association with the user program and sets the ID in the own device, even if the user does not create a user program for collating the ID, the ID is executed on the programmable controller. Unauthorized use of the user program can be prevented, thereby improving convenience for preventing unauthorized use of the user program executed on the programmable controller.
  • FIG. 1 is a schematic configuration diagram conceptually showing a tool device 200 and a programmable controller 100 communicating with the tool device 200 in a programmable controller system 300.
  • the programmable controller system 300 includes a programmable controller (hereinafter referred to as “PLC”) 100 and a tool device 200 (here, a computer).
  • PLC programmable controller
  • tool device 200 here, a computer
  • the PLC 100 takes in a signal input from the input / output unit 130 into an input / output memory 117 (see FIG. 2 described later) of the CPU unit 110 (IN refresh), and performs PLC control such as a ladder language registered in advance. Performs a logical operation based on a user program YP (see FIG. 2) created in a program description language for the user (operation execution), writes the operation execution result in the input / output memory 117, and sends it to the input / output unit 130 (OUT refresh) Thereafter, the so-called peripheral service processing is cyclically repeated.
  • PLC control such as a ladder language registered in advance.
  • the tool device 200 is a user program development support device (for example, CX-Programmer: Applicant's product), is connected to the PLC 100 via the communication cable CB, and downloads the user program YP.
  • the data is stored in the backup memory 114 (see FIG. 2) or the user memory 116 (see FIG. 2) of the CPU unit 110.
  • the tool device 200 corrects the user program YP stored in the PLC 100
  • the user device YP stored in the PLC 100 is uploaded, the necessary correction is performed, and the corrected user program YP is then performed. Is downloaded to the PLC 100 again.
  • reference numerals 210, 211, 212, 230, and 231 denote an operation input unit, a keyboard, a pointing device, a display output unit, and a display device, respectively.
  • the PLC 100 has a CPU (Central Processing Unit) (input / output update processing, user program execution processing, peripheral service processing, etc.), input / output circuit portion, communication circuit portion, various high-function circuit portions, and the like in a single housing.
  • CPU Central Processing Unit
  • An all-in-one type housed in a housing and a building block type housed in a dedicated unit housing are known.
  • the present invention can be applied to any type of PLC. In the present embodiment, a building block type will be described below as an example.
  • the present invention can also be applied to multi-task processing in which a plurality of tasks are executed in parallel in addition to processing by a single task that can execute only one task at a time.
  • the PLC 100 includes a CPU unit 110, a communication unit 120, a plurality of input / output units 130, and a power supply unit 140.
  • the CPU unit 110 performs overall control of the entire PLC 100 and executes input / output update processing, user program execution processing, peripheral service processing, and the like, as will be described later with reference to the flowchart shown in FIG. Composed.
  • the communication unit 120 controls communication with the tool device 200 via a network such as a LAN (Local Area Network), and other PLCs or remote IO terminals are connected to the PLC 100 (not shown). If it is, it is also used for communication control between them.
  • a network such as a LAN (Local Area Network)
  • PLCs or remote IO terminals are connected to the PLC 100 (not shown). If it is, it is also used for communication control between them.
  • the input / output unit (I / O unit) 130 includes an external input / output circuit and a terminal block (not shown).
  • Various external input devices such as a photoelectric switch, a limit switch, a micro switch, etc. (not shown) are provided on the terminal block.
  • Various external output devices such as relays, lamps and solenoids are wired.
  • FIG. 2 is a block diagram showing a hardware configuration of the CPU unit 110 in the PLC 100.
  • the CPU unit 110 includes a microprocessor (MPU) 111, a system memory (SROM) 112, an ID storage memory (IDROM) 113, a backup memory (BROM) 114, a work memory (WRAM) 115, a user.
  • MPU microprocessor
  • SROM system memory
  • IDROM ID storage memory
  • BROM backup memory
  • WRAM work memory
  • URAM input / output memory
  • IORAM input / output memory
  • the microprocessor 111 controls the entire CPU unit 110, and is configured to implement various functions necessary for the CPU unit 110 by executing a system program SP stored in the system memory 112. ing.
  • system memory 112 is composed of a nonvolatile memory such as a flash memory, and stores various system programs SP executed by the microprocessor 111 as described above.
  • the ID storage memory 113 is composed of a rewritable nonvolatile memory such as an electrically rewritable EPROM (Electrically Erasable Programmable Read Only Memory).
  • the ID storage memory 113 is detachably mounted (directly attached) to a control board (not shown), and a first user program execution ID 10 described later is written therein.
  • the first user program execution ID 10 is set to be rewritable and erasable with respect to the ID storage memory 113 by an input operation from the tool device 200 shown in FIG.
  • the backup memory 114 is composed of a non-volatile memory such as a flash memory, and is configured to retain the contents even when the battery is not present when the power is turned off.
  • a user program YP corresponding to the control specification of the PLC 100 is created in a predetermined program language (for example, a ladder language), converted into object code executable by the microprocessor 111, and stored. .
  • the work memory 115 functions as a work area when the microprocessor 111 executes the system program SP read from the system memory 112, and includes a rewritable RAM.
  • the user memory 116 is a memory for executing the user program YP.
  • the user memory 116 is configured by a static RAM (Static Random Access Memory) that functions as a volatile memory, and cannot retain the contents when the power is turned off.
  • the user memory 116 stores the user program YP transferred from the backup memory 114 when the power is turned on.
  • the input / output memory 117 is referred to when the microprocessor 111 executes the user program YP read from the user memory 116, and has an input / output unit 130 connected via the IO bus 118 therein.
  • I / O data area corresponding to I / O terminal data (see Fig. 1), auxiliary relay area used only for internal computation, various setting data used during computation, data area for storing count data, etc.
  • a special auxiliary relay area is provided.
  • reference numeral 113a indicates a storage area.
  • the second setting unit Qb1, the storage control unit Qb2, the collation unit Qb3, the execution prohibition unit Qb4, and the release unit Qb5 in FIG. 2 will be described later.
  • FIG. 3 is a flowchart showing a processing example of the entire PLC 100 executed by the microprocessor 111.
  • the microprocessor 111 when the processing is started by turning on the power (Power On), the microprocessor 111 first executes an ID collation process (process S40) to be described later, and then sets various flags and registers. An initialization process (process S1) is executed to perform the initial setting. Details of the ID collation processing S40 will be described later with reference to FIG.
  • the microprocessor 111 executes a common process (process S2) as a process common to the subsequent various operation modes.
  • a common process process S2
  • various failure diagnosis processes such as a continuity check of the IO bus 118 and a connection check of each unit are executed.
  • the microprocessor 111 reads the operation mode setting at that time by referring to an external mode setting switch, a predetermined flag of the input / output memory 117, or the like (processing S3).
  • the microprocessor 111 determines the operation mode by collating the read mode setting data with the data corresponding to each mode (processing S4). If it is determined that the operation mode is the “operation” mode (processing S4: Yes), an input / output update process (processing S5) is executed.
  • the microprocessor 111 updates the input data of the input / output memory 117 described above with the actual data of the input terminal of the input / output unit 130, and the input / output memory 117.
  • An output update process for updating data at the output terminal of the input / output unit 130 is executed according to the output data.
  • the microprocessor 111 executes a user program execution process (process S6).
  • process S6 each instruction constituting the user program YP is sequentially read from the user memory 116, the read instruction is executed with reference to the input / output data of the input / output memory 117, and the execution thereof
  • Each instruction corresponding processing for rewriting input / output data based on the result is executed.
  • peripheral service processing executes peripheral service processing (processing S7).
  • various processes corresponding to requests coming from the tool apparatus 200 are executed by appropriately exchanging with the tool apparatus 200. That is, if the tool device 200 requests program upload, the user program YP in the specified range is read and transmitted to the tool device 200. If the request from the tool device 200 requests program download, the user program YP sent from the tool device 200 is received and written into the backup memory 114 or the user memory 116.
  • the peripheral service process process S7, one or two or more remote IO terminals are connected to the PLC 100, or the PLC 100 is connected to one or more other PLCs. In some cases, data is exchanged with these remote devices.
  • the process proceeds to the common process (process S2).
  • step S9 When the microprocessor 111 determines that the operation mode is “program mode” (processing S4: No), the microprocessor 111 proceeds to processing S8, transfers the system settings of the PLC 100 corresponding to the program mode, and the user program YP. After downloading to the PLC 100, uploading from the PLC 100, and creating an input / output table, it is determined whether there is a transfer of the user program YP (processing S9). If it is determined in step S9 that there is no transfer of the user program YP (step S9: No), the process proceeds to step S3.
  • step S9 determines whether there is a transfer of the user program YP (step S9: Yes).
  • ID collation processing (processing S40) is executed (see FIG. 12). Thereafter, various functions as the PLC 100 are realized by repeatedly executing the series of processes described above (processes S3 to S9, S40).
  • the tool device 200 is a user program developed for creating, editing, downloading to the PLC 100, uploading from the PLC 100, other various parameter settings or changes, etc. It is a support device.
  • this type of tool device 200 is configured by storing (installing) a predetermined program in a computer having a communication function such as a personal computer.
  • the tool device 200 communicates with the PLC 100 and has a function of preventing unauthorized use of the user program YP that is executed on the PLC 100.
  • FIG. 4 is a system block diagram illustrating a schematic configuration of the tool device 200 that communicates with the PLC 100.
  • the tool device 200 includes an operation input unit 210 (see also FIG. 1), a storage unit 220, a display output unit 230 (see also FIG. 1), a communication unit 240, and a control unit 250. And a reading unit 260.
  • the operation input unit 210 includes input devices such as a keyboard 211 and a pointing device 212, and is connected to an input system of the control unit 250.
  • the operation input unit 210 is configured to transmit operation information input upon receiving an input operation by a user to the control unit 250.
  • the storage unit 220 includes a storage device such as a ROM 221, a RAM 222, a data rewritable nonvolatile memory 223 such as a flash memory, and a large-capacity storage device such as a hard disk device 224 that also functions as a nonvolatile memory.
  • the hard disk device 224 is read by a reading unit 260 that reads a recording medium M such as a CD (Compact Disc) -ROM on which a later-described tool program P (a program including a program for preventing unauthorized use) is recorded.
  • Software including the tool program P is stored (installed) in advance.
  • the recording medium M may be a USB (Universal Serial Bus) memory or an SD (Secure Digital) memory card.
  • the display output unit 230 includes a display device 231 such as a liquid crystal display panel or an EL (Electro Luminescence) display panel, and is connected to an output system of the control unit 250.
  • the display device 231 is configured to display output display information from the control unit 250 on a display screen.
  • the display screen of the display device 231 may be provided with a touch input operation device such as a touch panel.
  • the touch input operation device can perform an input operation according to the display state of the screen displayed on the display screen, and is configured to operate as an operation input unit.
  • the communication unit 240 includes an interface unit 241 (specifically, a LAN port), and the communication unit 120 (see FIG. 1) in the control unit 250 and the PLC 100 via the communication cable CB (specifically, a LAN cable). Data can be communicated to and from.
  • the PLC 100 and the tool device 200 may be connected to each other via a serial interface such as a USB port or RS232C.
  • the control unit 250 includes an arithmetic processing unit such as a CPU, and loads a software program such as a tool program P stored in advance in the hard disk device 224 of the storage unit 220 onto the RAM 222 of the storage unit 220 and executes it. As a result, various processes are performed.
  • the RAM 222 of the storage unit 220 provides a work area for work to the control unit 250.
  • reference numerals 20 and 224a denote a second user program execution ID and a storage area, respectively.
  • the control part 250 in the tool apparatus 200 functions as the 1st reception part Qa1, the transmission part Qa2, the 2nd reception part Qa3, and the 1st setting part Qa4. That is, the tool program P is incorporated in the user program development support program, and is stored in the first reception step corresponding to the first reception unit Qa1, the transmission step corresponding to the transmission unit Qa2, and the second reception unit Qa3.
  • the control unit 250 executes the corresponding second receiving step and the first setting step corresponding to the first setting unit Qa4.
  • the adding unit Qa5 and the encryption unit Qa6 in FIG. 4 will be described later.
  • First acceptance step In the first receiving step, input information of the first user program execution ID 10 that is collated for the execution of the user program YP is received.
  • the input operation is limited according to the security level (user authenticated security level) of the user (usually a vendor).
  • FIG. 5 is a plan view showing a first user program execution ID setting screen 231a displayed on the display device 231 in the tool device 200 shown in FIG.
  • the first user program execution ID setting screen 231a of the display device 231 includes an input field IP1 for inputting a first user program execution ID 10 by a user having an operation authority, An OK button BT1 for confirming the input operation of the 1 user program execution ID 10 and a cancel button BT2 for ending the first user program execution ID setting screen 231a are displayed on the first user program execution ID setting screen 231a. It has become. Specifically, 8-32 single-byte alphanumeric characters are input in the input field IP1.
  • the first user program execution ID 10 is input to the input field IP1 by the input operation of the keyboard 211 (see FIG. 1) by the user.
  • the user pointing device 212 FIG.
  • the OK button BT3 When the OK button BT3 is operated (clicked) by moving the cursor J by the operation of (see), the first user program execution ID 10 input in the input field IP1 is transmitted to the control unit 250.
  • the cancel button BT2 When the cancel button BT2 is operated (clicked), the first user program execution ID setting screen 231a is terminated.
  • the button operation on the first user program execution ID setting screen 231a may be an operation using a touch panel.
  • the transmission step In the transmission step, the first user program execution ID 10 received in the first reception step is transmitted from the communication unit 240 (see FIG. 4) to the PLC 100 via the communication cable CB.
  • FIG. 6 is a flowchart illustrating an example of a process for accepting the first user program execution ID 10. The acceptance transmission process of the first user program execution ID 10 is performed in the program mode.
  • the control unit 250 accepts an input operation (see FIG. 5) of the first user program execution ID 10 (process S11), and whether or not the cancel button BT2 is operated. Is determined (step S12).
  • the cancel button BT2 is operated (Processing S12: Yes)
  • the process ends.
  • the cancel button BT2 is not operated (Processing S12: No)
  • whether or not the OK button BT1 is operated. Is determined (step S13). If the OK button BT1 has not been operated (step S13: No), the process proceeds to step S11.
  • the OK button BT1 has been operated (step S13: Yes)
  • the first user program execution ID 10 is set. It transmits to PLC100 (process S14), and ends processing.
  • FIG. 7 is a plan view showing a second user program execution ID setting screen 231b displayed on the display device 231 in the tool device 200 shown in FIG.
  • the second user program execution ID setting screen 231b in the display device 231 includes a first input field IP2 for inputting a second user program execution ID 20 by a user (usually a vendor).
  • a cancel button BT4 for ending 231b is displayed on the second user program execution ID setting screen 231b.
  • 8-32 alphanumeric characters are entered in the first input field IP2 and the second input field IP3.
  • the second user program execution ID 20 is input to the first input field IP2 by the user's input operation on the keyboard 211 (see FIG. 1), and the second input field IP3 is for confirmation.
  • the second user program execution ID 20 is input.
  • the user operates the pointing device 212 (see FIG. 1) to move the cursor J and operate (click) the OK button BT3, the first input field
  • the second user program execution ID 20 input to IP2 and the confirmation second user program execution ID 20 input to the second input field IP3 are transmitted to the control unit 250.
  • the cancel button BT4 is operated (clicked)
  • the second user program execution ID setting screen 231b is terminated.
  • the button operation on the second user program execution ID setting screen 231b may be an operation using a touch panel.
  • the second user program execution ID 20 is stored and set in the storage area 224a of the hard disk device 224 (see FIG. 4) provided in the tool device 200. Specifically, the first setting step sets the second user program execution ID 20 for the project PR.
  • the file data of the project PR hereinafter simply referred to as a file
  • the entire user program including a plurality of user programs YP is stored together with information such as variables (data).
  • the project PR file in which the entire user program is stored is stored in the hard disk device 224.
  • FIG. 8 is a schematic diagram showing the data structure of the project PR file.
  • the project PR file shown in FIG. 8 includes the entire user program including a plurality of user programs YP and other setting data such as a variable table, a PLC system setting, an I / O table, and I / O memory data.
  • Each user program YP is created in the same project PR file.
  • the user program YP is composed of a plurality of subprograms.
  • the second user program execution ID 20 is set in the project PR file. This makes it possible to easily associate (associate) each user program YP with the second user program execution ID 20.
  • the tool device 200 is configured such that the setting of the second user program execution ID 20 cannot be changed and cannot be deleted after the second user program execution ID 20 is once set for the project PR.
  • the second user program execution ID 20 is set only when the second user program execution ID 20 is not set in the project PR, and after the setting, the ID setting flag is set.
  • the two-user program execution ID 20 cannot be changed or deleted.
  • FIG. 9 is a flowchart showing an example of the setting process of the second user program execution ID 20.
  • control unit 250 determines whether or not the second user program execution ID 20 has already been set in the project PR (process S21).
  • step S21 If the second user program execution ID 20 has already been set in the project PR (step S21: Yes), a display to the effect that the second user program execution ID 20 has already been set is displayed (step S22). On the other hand, if the second user program execution ID 20 has not yet been set in the project PR (No at Step S21), the process proceeds to Step S23.
  • an input operation for the second user program execution ID 20 is accepted (process S23), and it is determined whether or not the cancel button BT4 has been operated (process S24). If the cancel button BT4 has been operated (Processing S24: Yes), the process ends. If the cancel button BT4 has not been operated (Processing S24: No), whether or not the OK button BT3 has been operated. Is determined (step S25). When the OK button BT3 is not operated (Processing S25: No), the process proceeds to Step S23, while when the OK button BT3 is operated (Processing S25: Yes), a confirmation key (for example, “Y” key) ) Is displayed (step S26).
  • a confirmation key for example, “Y” key
  • step S27 it is determined whether or not a confirmation key (for example, “Y” key) has been operated (pressed) (step S27). If a key other than the confirmation key has been operated (step S27: No), step S23 is performed. On the other hand, when a confirmation key (for example, “Y” key) is operated (processing S27: Yes), the processing proceeds to processing S28.
  • a confirmation key for example, “Y” key
  • control unit 250 does not have a function of displaying the second user program execution ID 20 stored in the storage area 224a of the hard disk device 224 after being set to the project PR (specifically, the second user program Display of the execution ID 20 is prohibited).
  • control unit 250 further functions as the addition unit Qa5 (see FIG. 4). That is, the tool program P causes the control unit 250 to execute an addition step corresponding to the addition unit Qa5.
  • the second user program execution ID 20 in the project PR (see FIG. 8) is added to the user program YP. Specifically, in the additional step, the second user program execution ID 20 in the project PR is read, and the object code of the user program YP compiled by the compiler corresponding to the language of the user program YP (see FIG. 10 described later). On the other hand, the second user program execution ID 20 read from the project PR is incorporated.
  • FIG. 10 is a schematic diagram showing a data structure of the second user program execution ID 20 added to the user program YP.
  • the file data 11 of the second user program execution ID 20 added to the object code of the user program YP is composed of a file information header portion 12 and a data portion 13.
  • File information such as a file version is recorded in the file information header section 12.
  • the data unit 13 stores a second user program execution ID 20.
  • the user program YP to which the second user program execution ID 20 is added in the addition step is transmitted to the PLC 100.
  • the second user program execution ID 20 and the user program YP may be transmitted to the PLC 100 separately.
  • the second user program execution ID 20 and the user program YP may be transmitted simultaneously or at different times.
  • control unit 250 further functions as the encryption unit Qa6 (see FIG. 4). That is, the tool program P causes the control unit 250 to execute an encryption step corresponding to the encryption unit Qa6.
  • the first user program execution ID 10 received in the first reception step and the second user program execution ID 20 received in the second reception step are irreversibly encrypted.
  • the irreversible encryption process is a process that cannot be restored to the original ID code.
  • the generated character string is the same. Note that the first and second user program execution IDs 10 and 20 reversibly encrypted may be decrypted at the time of collation.
  • the second user program execution ID 20 encrypted in the encryption step is set in the project PR.
  • the transmission step the first user program execution ID 10 encrypted in the encryption step is transmitted to the PLC 100.
  • the microprocessor 111 in the PLC 100 functions as a second setting unit Qb1, a storage control unit Qb2, a collation unit Qb3, and an execution prohibition unit Qb4 (see FIG. 2). That is, the system program SP corresponds to the second setting step corresponding to the second setting unit Qb1, the storage control step corresponding to the storage control unit Qb2, the collation step corresponding to the collation unit Qb3, and the execution prohibition unit Qb4. The microprocessor 111 is caused to execute the execution prohibition step.
  • the release unit Qb5 in FIG. 2 will be described later.
  • the first user program execution ID 10 transmitted to the PLC 100 in the transmission step performed by the tool device 200 is used as the storage area 113a of the ID storage memory 113 (see FIG. 2) provided in the PLC 100. Set it in the memory.
  • the first user program execution ID 10 is encrypted by the tool device 200
  • the first user program execution ID 10 is encrypted by the encryption step performed by the tool device 200 and then transmitted to the PLC 100 by the transmission step.
  • the transmitted first user program execution ID 10 is stored in the storage area 113 a of the ID storage memory 113 and set.
  • the PLC 100 is configured to be able to rewrite and delete the first user program execution ID 10 with respect to the ID storage memory 113.
  • the first user program execution ID 10 is changed or deleted regardless of whether or not the first user program execution ID 10 is set (stored) in the storage area 113a of the ID storage memory 113. You can also.
  • the first user program execution ID 10 can be changed on the first user program execution ID setting screen 231a shown in FIG.
  • the first user program execution ID 10 stored in the storage area 113 a of the ID storage memory 113 can be erased by executing a memory all clear function on the CPU unit 110. That is, when the memory all clear function for the CPU unit 110 is executed, the first user program execution ID 10 is not set in the storage area 113a of the ID storage memory 113, and the ID storage memory 113 is not initially set. Return to state.
  • the control unit 250 in the tool device 200 does not have a function of displaying the first user program execution ID 10 stored in the ID storage memory 113 after being set in the storage area 113a of the ID storage memory 113. (Specifically, the display of the first user program execution ID 10 is prohibited).
  • Storage control step In the storage control step, the user program YP, which has been added to the second user program execution ID 20 in the additional step performed by the tool device 200 and transmitted to the PLC 100 in the transmission step, is stored in the backup memory 114 in the PLC 100 (see FIG. 2). ).
  • (Verification step) it is collated whether or not the first user program execution ID 10 and the second user program execution ID 20 match. Specifically, the first user program execution ID 10 stored in the ID storage memory 113 and the second user program execution ID 20 transferred from the project PR and stored in the backup memory 114 are collated.
  • the collation step when the user program YP stored in the backup memory 114 is stored in the user memory 116, the first user program execution ID 10 and the second user program execution ID 20 are collated. . Specifically, the first user program execution ID 10 stored in the ID storage memory 113 is read, the user program YP is read from the backup memory 114, and the second user added (embedded) to the user program YP. The program execution ID 20 is extracted from the user program YP, and the first user program execution ID 10 read from the ID storage memory 113 is compared with the second user program execution ID 20 extracted from the user program YP.
  • the first user program execution ID 10 and the second user program execution ID 20 are irreversibly encrypted so that the same character string is generated by encrypting the same character string using the same encryption key. Therefore, in the verification step, it is verified whether the character string of the first user program execution ID 10 encrypted irreversibly matches the character string of the second user program execution ID 20 encrypted irreversibly. To do.
  • the match and mismatch of the first user program execution ID 10 and the second user program execution ID 20 are set as the conditions shown in FIG.
  • FIG. 11 is a table showing an example of conditions for matching and mismatching of the first user program execution ID 10 and the second user program execution ID 20.
  • both IDs 10 and 20 are not equal. Sometimes it is determined that there is a mismatch.
  • the timing for collating the first user program execution ID 10 and the second user program execution ID 20 is when the PLC 100 is turned on and the user program YP is stored in the user memory 116 from the backup memory 114. (When power is turned on) or when the user program YP is stored in the backup memory 114 of the PLC 100 from the tool device 200 and stored in the user memory 116 from the backup memory 114 (when downloading).
  • Executiution prohibited step execution of the user program YP is prohibited when the first user program execution ID 10 and the second user program execution ID 20 do not match based on the collation result collated in the collation step.
  • the microprocessor 111 further functions as the release unit Qb5. That is, the system program SP causes the microprocessor 111 to execute a release step corresponding to the release unit Qb5 (see FIG. 2).
  • the execution prohibition state of the user program YP in the execution prohibition step is set to restart the CPU unit 110 (specifically, the power of the CPU unit 110 is turned OFF / ON or reset from the user program development support program of the tool device 200 ) To release.
  • FIG. 12 is a flowchart showing an example of a collation process S40 for collating the first user program execution ID 10 and the second user program execution ID 20.
  • the flowchart shown in FIG. 12 is a detailed flowchart of the ID collation process S40 shown in FIG.
  • process S41 it is first determined whether the power is turned on or the download is performed (process S41). If it is not when the power is turned on (process S41: No), the process returns to the initialization process (process S1) in the entire process of the PLC 100 shown in FIG. 3, and if not downloaded (process S41: No), it is shown in FIG. The process returns to the mode reading process (process S3) in the entire process of the PLC 100. On the other hand, when the power is turned on or when downloading (processing S41: Yes), the process proceeds to processing S42.
  • step S42 it is determined whether one of the first and second user program execution IDs 10 and 20 is not set. If either one of the first and second user program execution IDs 10 and 20 is not set (step S42: Yes), the process proceeds to step S46 while the first and second user program execution IDs 10 and 20 are set. If either one is not set (step S42: No), it is determined whether both the first and second user program execution IDs 10 and 20 are not set (step S43).
  • step S43: Yes When both the first and second user program execution IDs 10 and 20 are not set (step S43: Yes), the process proceeds to step S45, while both the first and second user program execution IDs 10 and 20 are set. Is not set (processing S43: No), it is determined whether or not the first and second user program execution IDs 10, 20 match (processing S44).
  • step S44: Yes the process proceeds to step S45, while the first and second user program execution IDs 10 and 20 do not match. (Process S44: No), the process proceeds to Process S46.
  • process S46 the execution of the user program YP is prohibited, a message indicating that the IDs do not match is displayed (process S47), and then the process returns to the entire process of the PLC 100 shown in FIG.
  • a message indicating that the IDs do not match is displayed using a display function (not shown in FIG. 1) provided in the PLC 100.
  • a display function not shown in FIG. 1
  • an LED lamp is used as an example of the display function
  • a mode in which a predetermined LED is turned on or blinked can be exemplified.
  • a mode in which a predetermined character string is displayed can be exemplified.
  • the input information of the first user program execution ID 10 is received, the first user program execution ID 10 is transmitted to the PLC 100, and the first user program execution transmitted to the PLC 100 is executed.
  • the input information of the second user program execution ID 20 that is collated for the execution of the user program YP is received, and the second user program execution ID 20 is provided in the tool device 200. Therefore, it is possible to prevent unauthorized use of the user program YP that is executed on the PLC 100 by a simple operation such as inputting an ID even if the user does not create the user program YP for collating IDs. Which can be used on the PLC 100 It is possible to improve convenience to prevent unauthorized use of the user program YP to row.
  • the second user program execution ID 20 is set once for the project PR provided in the tool device 200, and thereafter the second user program execution ID 20 cannot be set and deleted. Therefore, the second user program execution ID 20 once set may be rewritten by a person other than the original user who set the second user program execution ID 20 (a user including a user who is known from the user), or , It becomes very difficult to see.
  • the first user program execution ID 10 is rewritable and erasable with respect to the ID storage memory 113 in the PLC 100, the first user whose original user matches the second user program execution ID 20 The program execution ID 10 can be set.
  • the first user program execution ID 10 and the second user program execution ID 20 match on the basis of the collation result collated.
  • the program YP can be executed.
  • the PLC 100 determines the first user program execution ID 10 based on the collated collation result. Since the execution of the user program YP is prohibited due to the mismatch with the second user program execution ID 20, the user program YP cannot be executed.
  • the tool device 200 has neither a function for displaying the first user program execution ID 10 in the ID storage memory 113 of the PLC 100 nor a function for displaying the second user program execution ID 20 in the project PR.
  • the tool device 200 since the ID storage memory 113 is detachably mounted (directly attached) to the control board, it is very difficult to replace the ID storage memory 113 with another PLC.
  • the user program YP is managed as the project PR, and the second user program execution ID 20 is set in the project PR. Therefore, the association between the second user program execution ID 20 and the user program YP is easy. It can be carried out.
  • the first user program execution ID 10 received by the first reception unit Qa1 and the second user program execution ID 20 received by the second reception unit Qa3 are encrypted. 1. Even if the first user program execution ID 10 and / or the second user program execution ID 20 is illegally read and stolen, the first user program execution ID 10 and the second user program execution ID 20 are encrypted. Therefore, it is difficult to make the first user program execution ID 10 and / or the second user program execution ID 20 known to others other than the original user. Thereby, it is possible to improve security against leakage of the first user program execution ID 10 and / or the second user program execution ID 20 to the outside. Moreover, since the encryption process is an irreversible encryption process and cannot be restored to the original ID code, the information of the original ID code is not known.
  • the second user program execution ID 20 in the project PR provided in the tool device 200 is stored in the backup memory 114 in the PLC 100, the second user program execution ID from the tool device 200 for each verification. Even if the ID 20 is not acquired, the first user program execution ID 10 and the second user program execution ID 20 can be easily verified.
  • the second user program execution ID 20 is added to the user program YP, and the user program YP with the second user program execution ID 20 added is transmitted to the PLC 100 and stored in the backup memory 114 in the PLC 10. Therefore, it is possible to make it difficult to understand the presence of the second user program execution ID 20 in the PLC 100.
  • the first user program execution ID 10 and the second user program execution ID 20 are collated. It is possible to reliably collate the first user program execution ID 10 and the second user program execution ID 20 prior to the execution of the user program YP.
  • the execution prohibition state of the user program YP is canceled by restarting the CPU unit 110, so that the memory for storing IDs by other persons than the original user is stored. It is possible to increase the labor for illegally writing the first user program execution ID 10 to 113, and to suppress illegal acts by others.
  • the contents of the first user program execution ID 10 in the ID storage memory 113 can be arbitrarily rewritten. Therefore, when the PLC 100 is replaced with another PLC 100 due to a failure or the like, the replacement is performed.
  • the user program YP is replaced on the PLC 100 after replacement. Can also be operated.
  • the same ID as the second user program execution ID 20 set on the tool device 200 side is stored as the first user program execution ID 10 on the plurality of PLCs 100 side.
  • First user program execution ID 20
  • Second user program execution ID 100
  • Programmable Controller 113
  • ID Storage Memory 114 Backup Memory (Example of Non-volatile Memory)
  • User memory an example of volatile memory
  • Tool device 224
  • Hard disk device 300
  • Programmable controller system M Recording medium PR Project Qa1 First reception unit Qa2 Transmission unit Qa3 Second reception unit Qa4 First setting unit Qa5 Additional unit Qa6 Encryption unit Qb1 Second setting unit Qb2 Storage control unit Qb3 Verification unit Qb4 Execution prohibition unit Qb5 Cancellation unit YP
  • Writing medium PR Project
  • Qa1 First reception unit Qa2 Transmission unit
  • Qa3 Second reception unit Qa4
  • First setting unit Qa5 Additional unit
  • Qa6 Encryption unit
  • Qb1 Second setting unit Qb2 Storage control unit
  • Qb3 Verification unit Qb4
  • Execution prohibition unit Qb5 Cancellation unit YP
  • YP User program

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Programmable Controllers (AREA)

Abstract

 プログラマブルコントローラ上で実行させるユーザプログラムの無断利用を防止するための利便性を向上させることができるプログラマブルコントローラシステム、ツール装置、ツール用プログラム及び記録媒体並びにプログラマブルコントローラを提供する。プログラマブルコントローラシステム(300)において、ツール装置(200)は、第1ユーザプログラム実行用ID(10)をPLC(100)に設けられた第2不揮発性メモリ(113)に設定し、第2ユーザプログラム実行用ID(20)をツール装置(200)に設けられたプロジェクト(PR)に設定する。PLC(100)は、第1ユーザプログラム実行用ID(10)と第2ユーザプログラム実行用ID(20)とが一致しているか否かを照合し、不一致となった場合にユーザプログラム(YP)の実行を禁止する。

Description

プログラマブルコントローラシステム、ツール装置、ツール用プログラム及び記録媒体並びにプログラマブルコントローラ
 本発明は、プログラマブルコントローラと通信し、プログラマブルコントローラ上で実行させるユーザプログラムの無断利用を防止する機能を有するツール装置を備えたプログラマブルコントローラシステム、ツール用プログラム、ツール装置及び記録媒体並びにプログラマブルコントローラに関する。
 一般に、プログラマブルコントローラ(以下、「PLC」ということがある)は、PLCメーカーから出荷されたのち、ベンダーにより自動包装機や射出成型機などの各種産業用機械に組み込まれた状態でエンドユーザの工場に設置されたり、直接エンドユーザによりエンドユーザの工場の設備に組み込まれたりする。
 このうち、PLCがベンダーにより産業用機械に組み込まれた状態でエンドユーザの工場に設置される場合、ベンダーは、PLCによって制御動作する産業用機械を所望の動作仕様にするために、ユーザプログラム(制御プログラム)を作成し、作成したユーザプログラムをPLCに組み込む。
 このとき、ベンダーは、作成されたユーザプログラムが組み込まれたPLCの提供とは別に、作成されたユーザプログラムそれ自体も、例えばCD-ROM等の記録媒体に格納した形態で、参照用ユーザプログラムとして、エンドユーザに対して提供するのが通例である。
 こうしてベンダーから提供される参照用ユーザプログラムは、エンドユーザの側におけるプログラムの軽微なカスタマイズやデータ値の参照(I/Oモニタ)等に供される。そして、プログラムの軽微なカスタマイズやデータ値の参照(I/Oモニタ)等を目的としてエンドユーザに提供される参照用ユーザプログラムの内容は、エンドユーザ側における理解度を高めるべくコメントやラベル等が付されていることを除き、PLCに組み込まれている実稼働用ユーザプログラムと実質的に変わりはない。
 そのため、エンドユーザの側で、ユーザプログラムの組み込まれていない空のPLCを用意して、これに前記の参照用ユーザプログラムを組み込めば、労せずして、実稼働可能なPLCを何台でも無断複製することが可能となり、ベンダーの側において多大なる損害を被る虞がある。
 また、このような参照用ユーザプログラムが本来のエンドユーザ以外の他人の手に渡り、実稼働可能なPLCの同様な無断複製が行われれば、そのユーザプログラムに含まれる製造技術上のノウハウ等についても漏洩してしまい、技術流出により甚大なる被害を被る虞もある。
 この点に関し、特許文献1(特開2009-70144号公報)には、PLCのメモリ上に書き込まれた照合基準となる任意のハードウェアIDと、ユーザプログラムのオペランドで指定される照合対象となる任意のハードウェアIDとの照合を行うプログラミング方法が開示されている。
特開2009-70144号公報
 しかしながら、特許文献1(特開2009-70144号公報)に記載のPLCにおけるプログラミング方法では、ユーザがハードウェアIDの照合を行うためにユーザプログラムを作成しなければならず、プログラマブルコントローラ上で実行させるユーザプログラムの無断利用を防止するための利便性が良くない。
 そこで、本発明は、プログラマブルコントローラ上で実行させるユーザプログラムの無断利用を防止するための利便性を向上させることができるプログラマブルコントローラシステム、ツール装置、ツール用プログラム及び記録媒体並びにプログラマブルコントローラを提供することを目的とする。
 本発明は、前記課題を解決するために、次のプログラマブルコントローラシステム、ツール装置、ツール用プログラム及び記録媒体並びにプログラマブルコントローラを提供する。
 (1)プログラマブルコントローラシステム
 プログラマブルコントローラと、前記プログラマブルコントローラと通信し、前記プログラマブルコントローラ上でユーザプログラムを実行させるためのツール装置とを備えたプログラマブルコントローラシステムであって、前記ツール装置は、前記ユーザプログラムの実行のために照合される第1ユーザプログラム実行用IDの入力情報を受け付ける第1受け付け部と、前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに送信する送信部と、前記ユーザプログラムの実行のために照合される第2ユーザプログラム実行用IDの入力情報を受け付ける第2受け付け部と、前記第2ユーザプログラム実行用IDを前記ユーザプログラムと関連付けて自装置に設定する第1設定部とを備え、前記第2ユーザプログラム実行用IDが一旦設定されて以降は前記第2ユーザプログラム実行用IDを設定不能かつ消去不能な構成とされており、前記第1ユーザプログラム実行用IDを表示させる機能、及び、前記第2ユーザプログラム実行用IDを表示させる機能を何れも持たない構成とされており、前記プログラマブルコントローラは、前記送信部にて前記プログラマブルコントローラに送信された前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに設定する第2設定部と、前記第1ユーザプログラム実行用IDと前記第2ユーザプログラム実行用IDとが一致しているか否かを照合する照合部と、前記照合部にて照合した照合結果に基づいて、前記第1ユーザプログラム実行用IDと前記第2ユーザプログラム実行用IDとが不一致となった場合に、前記ユーザプログラムの実行を禁止する実行禁止部とを備え、前記第1ユーザプログラム実行用IDを設定可能かつ消去可能な構成とされていることを特徴とするプログラマブルコントローラシステム。
 (2)ツール装置
 前記本発明の一局面に係るプログラマブルコントローラシステムに備えられるツール装置であって、前記ユーザプログラムの実行のために照合される第1ユーザプログラム実行用IDの入力情報を受け付ける第1受け付け部と、前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに送信する送信部と、前記ユーザプログラムの実行のために照合される第2ユーザプログラム実行用IDの入力情報を受け付ける第2受け付け部と、前記第2ユーザプログラム実行用IDを前記ユーザプログラムと関連付けて自装置に設定する第1設定部とを備え、前記第2ユーザプログラム実行用IDが一旦設定されて以降は前記第2ユーザプログラム実行用IDを設定不能かつ消去不能な構成とされており、前記第1ユーザプログラム実行用IDを表示させる機能、及び、前記第2ユーザプログラム実行用IDを表示させる機能を何れも持たない構成とされていることを特徴とするツール装置。
 (3)ツール用プログラム
 前記本発明の一局面に係るツール装置における制御部を、前記第1受け付け部と、前記送信部と、前記第2受け付け部と、前記第1設定部とを含む手段として機能させるためのツール用プログラム。
 (4)記録媒体
 前記本発明の一局面に係るツール用プログラムを記録したコンピュータ読み取り可能な記録媒体。
 (5)プログラマブルコントローラ
 前記本発明の一局面に係るプログラマブルコントローラシステムに備えられるプログラマブルコントローラであって、前記送信部にて前記プログラマブルコントローラに送信された前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに設定する第2設定部と、前記第1ユーザプログラム実行用IDと前記第2ユーザプログラム実行用IDとが一致しているか否かを照合する照合部と、前記照合部にて照合した照合結果に基づいて、前記第1ユーザプログラム実行用IDと前記第2ユーザプログラム実行用IDとが不一致となった場合に、前記ユーザプログラムの実行を禁止する実行禁止部とを備え、前記第1ユーザプログラム実行用IDを設定可能かつ消去可能な構成とされていることを特徴とするプログラマブルコントローラ。
 なお、言うまでもないが、本発明にいう前記「ID」は「identification」の略であり、識別コードを意味する。
 本発明の一局面によれば、前記第1受け付け部によって前記第1ユーザプログラム実行用IDの入力情報を受け付け、前記送信部によって前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに送信し、前記第2設定部によって前記送信部にて前記プログラマブルコントローラに送信された前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに設定することに加えて、前記第2受け付け部によって前記ユーザプログラムの実行のために照合される前記第2ユーザプログラム実行用IDの入力情報を受け付け、前記第1設定部によって前記第2ユーザプログラム実行用IDを前記ユーザプログラムと関連付けて自装置に設定するので、ユーザがIDの照合を行うためにユーザプログラムを作成しなくても、IDを入力するといった簡単な操作によって前記プログラマブルコントローラ上で実行させる前記ユーザプログラムの無断利用を防止することができ、これにより、前記プログラマブルコントローラ上で実行させる前記ユーザプログラムの無断利用を防止するための利便性を向上させることが可能となる。
 本発明の一局面において、前記ツール装置は、複数の前記ユーザプログラムの情報を1つのプロジェクトとして管理する構成とされており、前記第1設定部は、前記プロジェクトに対して前記第2ユーザプログラム実行用IDを設定する態様を例示できる。
 この特定事項では、前記ユーザプログラムが前記プロジェクトとして管理され、前記第1設定部によって前記第2ユーザプログラム実行用IDを前記プロジェクトに設定するので、前記第2ユーザプログラム実行用IDと前記ユーザプログラムとの関連付けを容易に行うことができる。
 本発明の一局面において、前記ツール装置は、前記第1受け付け部にて受け付けた前記第1ユーザプログラム実行用ID、及び、前記第2受け付け部にて受け付けた前記第2ユーザプログラム実行用IDを暗号化する暗号化部を備え、前記送信部は、前記暗号化部にて暗号化された前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに送信し、前記第1設定部は、前記暗号化部にて暗号化された前記第2ユーザプログラム実行用IDを前記ツール装置に設定し、前記第2設定部は、前記暗号化部にて暗号化されて前記送信部にて前記プログラマブルコントローラに送信された前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに設定する態様を例示できる。
 この特定事項では、前記暗号化部によって前記第1受け付け部にて受け付けた前記第1ユーザプログラム実行用ID、及び、前記第2受け付け部にて受け付けた前記第2ユーザプログラム実行用IDを暗号化するので、万一、前記第1ユーザプログラム実行用ID及び/又は前記第2ユーザプログラム実行用IDの情報が読み出されて盗まれたとしても前記第1ユーザプログラム実行用ID及び前記第2ユーザプログラム実行用IDが暗号化されたものであるため、前記第1ユーザプログラム実行用ID及び/又は前記第2ユーザプログラム実行用IDを本来のユーザ以外の他人に知られることが困難となる。これにより、前記第1ユーザプログラム実行用ID及び/又は前記第2ユーザプログラム実行用IDの外部への漏洩に対するセキュリティを向上させることが可能となる。
 本発明の一局面において、前記送信部は、前記第2ユーザプログラム実行用IDを前記プログラマブルコントローラに送信し、前記プログラマブルコントローラは、前記送信部にて前記プログラマブルコントローラに送信された前記第2ユーザプログラム実行用IDを該プログラマブルコントローラに格納する格納制御部を備える態様を例示できる。
 この特定事項では、前記格納制御部によって前記第2ユーザプログラム実行用IDを、前記プログラマブルコントローラに格納するので、前記照合部による照合毎に前記ツール装置から前記第2ユーザプログラム実行用IDを取得しなくても、前記第1ユーザプログラム実行用IDと前記第2ユーザプログラム実行用IDとを容易に照合することが可能となる。
 本発明の一局面において、前記ツール装置は、前記第2ユーザプログラム実行用IDを前記ユーザプログラムに付加する付加部を備え、前記送信部は、前記付加部にて前記第2ユーザプログラム実行用IDを付加した前記ユーザプログラムを前記プログラマブルコントローラに送信し、前記格納制御部は、前記付加部にて前記第2ユーザプログラム実行用IDが付加されて前記送信部にて前記プログラマブルコントローラに送信された前記ユーザプログラムを前記プログラマブルコントローラに格納する態様を例示できる。
 この特定事項では、前記付加部によって前記第2ユーザプログラム実行用IDを前記ユーザプログラムに付加し、前記格納制御部によって前記付加部にて前記第2ユーザプログラム実行用IDを付加した前記ユーザプログラムを前記プログラマブルコントローラに送信して前記プログラマブルコントローラに格納するので、前記プログラマブルコントローラにおいて前記第2ユーザプログラム実行用IDの存在を分かり難くすることが可能となる。
 本発明の一局面において、前記プログラマブルコントローラは、前記ユーザプログラムを該プログラマブルコントローラに備えられた不揮発性メモリに格納する構成とされており、前記照合部は、前記不揮発性メモリに格納されている前記ユーザプログラムを、前記プログラマブルコントローラに備えられて前記ユーザプログラムを記憶する揮発性メモリに格納するときに、前記第1ユーザプログラム実行用IDと前記第2ユーザプログラム実行用IDとを照合する態様を例示できる。
 この特定事項では、前記照合部によって前記不揮発性メモリに格納されている前記ユーザプログラムを前記揮発性メモリに格納するときに、前記第1ユーザプログラム実行用IDと前記第2ユーザプログラム実行用IDとを照合するので、前記第1ユーザプログラム実行用IDと前記第2ユーザプログラム実行用IDとを、前記ユーザプログラムの実行に先だって確実に照合することが可能となる。
 本発明の一局面において、前記プログラマブルコントローラは、前記実行禁止部による前記ユーザプログラムの実行禁止状態を前記プログラマブルコントローラの再起動によって解除する解除部を備える態様を例示できる。
 この特定事項では、前記実行禁止部によって前記ユーザプログラムが実行禁止状態となったときには、前記解除部によって前記実行禁止部による前記ユーザプログラムの実行禁止状態を前記プログラマブルコントローラの再起動によって解除することができる。これにより、本来のユーザ以外の他人による前記プログラマブルコントローラへの前記第1ユーザプログラム実行用IDの不正設定労力を増やすことができ、ひいては他人による不正行為を抑止することが可能となる。
 以上説明したように、本発明によると、前記ツール装置において、前記第2受け付け部によって前記ユーザプログラムの実行のために照合される前記第2ユーザプログラム実行用IDの入力情報を受け付け、前記第1設定部によって前記第2ユーザプログラム実行用IDを前記ユーザプログラムと関連付けて自装置に設定するので、ユーザがIDの照合を行うためにユーザプログラムを作成しなくても、前記プログラマブルコントローラ上で実行させる前記ユーザプログラムの無断利用を防止することができ、これにより、前記プログラマブルコントローラ上で実行させる前記ユーザプログラムの無断利用を防止するための利便性を向上させることができる。
プログラマブルコントローラシステムにおけるツール装置及びそれと通信するプログラマブルコントローラを概念的に示す概略構成図である。 PLCにおけるCPUユニットのハードウェア構成を示すブロック図である。 マイクロプロセッサにより実行されるPLC全体の処理例を示すフローチャートである。 PLCと通信するツール装置の概略構成を示すシステムブロック図である。 図1に示すツール装置における表示装置に表示された第1ユーザプログラム実行用ID設定画面を示す平面図である。 第1ユーザプログラム実行用IDの受け付け送信処理の一例を示すフローチャートである。 図1に示すツール装置における表示装置に表示された第2ユーザプログラム実行用ID設定画面を示す平面図である。 プロジェクトのファイルのデータ構造を示す模式図である。 第2ユーザプログラム実行用IDの設定処理の一例を示すフローチャートである。 ユーザプログラムに付加された第2ユーザプログラム実行用IDのデータ構造を示す模式図である。 第1ユーザプログラム実行用ID及び第2ユーザプログラム実行用IDの一致及び不一致の条件の一例を示す表である。 第1ユーザプログラム実行用IDと第2ユーザプログラム実行用IDとを照合する照合処理の一例を示すフローチャートである。
 以下、本発明の実施の形態について添付図面を参照しつつ説明する。なお、以下の実施の形態は、本発明を具体化した例であって、本発明の技術的範囲を限定する性格のものではない。
 [プログラマブルコントローラシステムの全体構成]
 図1は、プログラマブルコントローラシステム300におけるツール装置200及びそれと通信するプログラマブルコントローラ100を概念的に示す概略構成図である。
 図1に示すように、プログラマブルコントローラシステム300は、プログラマブルコントローラ(以下、「PLC」という)100とツール装置200(ここではコンピュータ)とを備えている。
 プログラマブルコントローラシステム300において、PLC100は、入出力ユニット130で入力した信号をCPUユニット110の入出力メモリ117(後述する図2参照)に取り込み(INリフレッシュ)、予め登録されたラダー言語等のPLC制御用のプログラム記述言語で作成されたユーザプログラムYP(図2参照)に基づき論理演算を行い(演算実行)、その演算実行結果を入出力メモリ117に書き込んで入出力ユニット130に送り出し(OUTリフレッシュ)、その後、いわゆる周辺サービス処理を行うことをサイクリックに繰り返し処理する。ツール装置200は、本実施の形態では、ユーザプログラム開発支援装置(例えば、CX-Progammer:出願人の製品)とされており、PLC100に通信ケーブルCBを介して接続され、ユーザプログラムYPをダウンロードし、PLC100におけるCPUユニット110のバックアップメモリ114(図2参照)やユーザメモリ116(図2参照)に格納させる。また、ツール装置200は、PLC100に格納されているユーザプログラムYPを修正等する場合には、PLC100に格納されているユーザプログラムYPをアップロードし、必要な修正をした後、修正後のユーザプログラムYPをPLC100に再度ダウンロードする。なお、図1において、符号210,211,212,230,231は、それぞれ、操作入力部、キーボード、ポインティングデバイス、表示出力部及び表示装置を示している。
 [PLCのハードウェア構成]
 PLC100は、CPU(Central Processing Unit)部分(入出力更新処理、ユーザプログラム実行処理、周辺サービス処理などを司る部分)、入出力回路部分、通信回路部分、各種高機能回路部分等々を単一のハウジングに収容してなるオールインワンタイプのものと、それらの部分をそれぞれ専用のユニットハウジングに収容してなるビルディングブロックタイプのものとが知られている。本発明はいずれのタイプのPLCにも適用できるが、本実施の形態では、ビルディングブロックタイプのものを例にとって以下に説明する。また、本発明は、同時に一つのタスクしか実行できないシングルタスクによる処理の他、複数のタスクを並行して実行するマルチタスクによる処理にも適用することができる。
 本実施の形態では、PLC100は、CPUユニット110、通信ユニット120、複数の入出力ユニット130及び電源ユニット140を含んで構成されている。
 CPUユニット110は、PLC100の全体を統括制御するものであり、後ほど図3に示すフローチャートを参照して説明するように、入出力更新処理、ユーザプログラム実行処理、周辺サービス処理などを実行するように構成される。
 通信ユニット120は、LAN(Local Area Network)等のネットワークを介してツール装置200との間における通信を制御する他、図示していないが、PLC100に対して他のPLC又はリモートIOターミナル等が接続されている場合には、それらとの間における通信制御にも供される。
 入出力ユニット(I/Oユニット)130は、外部入出力回路及び図示しない端子台を備えており、この端子台には図示しない光電スイッチ、リミットスイッチ、マイクロスイッチ等々のような各種の外部入力機器とリレー、ランプ、ソレノイド等の各種外部出力機器が配線される。
 図2は、PLC100におけるCPUユニット110のハードウェア構成を示すブロック図である。
 図2に示すように、CPUユニット110は、マイクロプロセッサ(MPU)111、システムメモリ(SROM)112、ID格納用メモリ(IDROM)113、バックアップメモリ(BROM)114、ワークメモリ(WRAM)115、ユーザメモリ(URAM)116及び入出力メモリ(IORAM)117を備えている。
 マイクロプロセッサ111は、CPUユニット110の全体を統括制御するものであり、システムメモリ112に格納されたシステムプログラムSPを実行することによって、CPUユニット110に必要な各種の機能を実現するように構成されている。
 システムメモリ112は、この例ではフラッシュメモリなどの不揮発性メモリで構成されており、先に述べたように、マイクロプロセッサ111で実行される各種のシステムプログラムSPが格納されている。
 ID格納用メモリ113は、この例では電気的に書き換え可能なEPROM(Electrically Erasable Programmable Read Only Memory)などの書き換え可能な不揮発性メモリで構成されている。ID格納用メモリ113は、図示しない制御基板に着脱不能に搭載(直付け)されており、後述する第1ユーザプログラム実行用ID10が書き込まれる。第1ユーザプログラム実行用ID10は、後述するように、図1に示すツール装置200からの入力操作によって、ID格納用メモリ113に対して書き換え可能かつ消去可能に設定される。
 バックアップメモリ114は、フラッシュメモリなどの不揮発性メモリで構成され、電源オフ時にはバッテリが存在しない状態でも内容を保持するように構成されている。バックアップメモリ114には、PLC100の制御仕様に対応したユーザプログラムYPが、所定のプログラム言語(例えば、ラダー言語など)にて作成され、マイクロプロセッサ111で実行可能なオブジェクトコードに変換されて格納される。
 ワークメモリ115は、マイクロプロセッサ111がシステムメモリ112から読み出されたシステムプログラムSPを実行する際のワークエリアとして機能するものであり、書き換え可能なRAMで構成されている。
 ユーザメモリ116は、ユーザプログラムYPの実行用メモリとされている。ユーザメモリ116は、揮発性メモリとして作用するスタティックRAM(Static Random Access Memory)で構成されており、電源オフ時には内容を保持することができない。ユーザメモリ116には、電源が投入されたときに、バックアップメモリ114から転送されたユーザプログラムYPが格納される。
 入出力メモリ117は、マイクロプロセッサ111がユーザメモリ116から読み出されたユーザプログラムYPを実行する際に参照するものであり、その内部には、IOバス118を介して接続された入出力ユニット130(図1参照)の入出力端子のデータと対応する入出力データエリア、内部演算のみに使用される補助リレーエリア、演算途中で使用される各種の設定データ、カウントデータ等を格納するデータエリアの他に、特殊補助リレーエリアが設けられている。なお、図2において、符号113aは記憶領域を示している。また、図2における第2設定部Qb1、格納制御部Qb2、照合部Qb3、実行禁止部Qb4及び解除部Qb5については後ほど説明する。
 [PLC全体の処理例]
 次に、マイクロプロセッサ111により実行されるPLC100全体の処理について図3を参照しながら以下に説明する。
 図3は、マイクロプロセッサ111により実行されるPLC100全体の処理例を示すフローチャートである。
 図3に示すように、マイクロプロセッサ111は、電源投入(Power On)により処理が開始されると、まず、後述するIDの照合処理(処理S40)を実行した後、各種のフラグやレジスタ類の初期設定を行うために初期化処理(処理S1)を実行する。IDの照合処理S40の詳細は、後ほど図12を参照しながら説明する。
 続いて、マイクロプロセッサ111は、それ以降の各種動作モードに共通な処理として共通処理(処理S2)を実行する。共通処理(処理S2)においては、IOバス118の導通チェック、各ユニットの接続チェック等々の各種の故障診断処理などを実行する。
 続いて、マイクロプロセッサ111は、外部のモード設定スイッチや入出力メモリ117の所定フラグなどを参照することによって、その時点の動作モード設定の読み込みを行う(処理S3)。
 続いて、マイクロプロセッサ111は、読み込んだモード設定データと各モードに対応するデータとを照合することによって、動作モードの判定を行う(処理S4)。ここで、動作モードが「運転」モードであると判定すると(処理S4:Yes)、入出力更新処理(処理S5)を実行する。
 マイクロプロセッサ111は、入出力更新処理(処理S5)において、先に説明した入出力メモリ117の入力データを入出力ユニット130の入力端子の実データで更新する入力更新処理と、入出力メモリ117の出力データによって、入出力ユニット130の出力端子のデータを更新する出力更新処理とを実行する。
 続いて、マイクロプロセッサ111は、ユーザプログラム実行処理(処理S6)を実行する。ユーザプログラム実行処理(処理S6)においては、ユーザメモリ116からユーザプログラムYPを構成する各命令を順次に読み出し、読み出した命令を、入出力メモリ117の入出力データを参照して実行し、その実行結果に基づいて入出力データの書き換えを行う各命令対応処理を実行する。
 続いて、マイクロプロセッサ111は、周辺サービス処理(処理S7)を実行する。周辺サービス処理(処理S7)においては、ツール装置200と適宜やり取りを行うことによって、ツール装置200から到来するリクエストに対応した様々な処理を実行する。すなわち、ツール装置200がプログラムアップロードを要求するのであれば、指定された範囲のユーザプログラムYPを読み出して、これをツール装置200に対して送信する。また、ツール装置200からの要求が、プログラムダウンロードを要求するものであれば、ツール装置200から送られてくるユーザプログラムYPを受信して、これをバックアップメモリ114やユーザメモリ116へと書き込む。その他、周辺サービス処理(処理S7)においては、PLC100に対して1若しくは2以上のリモートIOターミナルが接続されていたり、或いは、PLC100が他の1又は2以上のPLCと接続されていたりするような場合には、それらのリモート機器との間におけるデータのやり取りを行う。周辺サービス処理(処理S7)の後、共通処理(処理S2)に進む。
 マイクロプロセッサ111は、動作モードが「プログラムモード」であると判定すると(処理S4:No)、処理S8へと進んで、プログラムモードに対応したPLC100のシステム設定などを転送したり、ユーザプログラムYPのPLC100へのダウンロードやPLC100からのアップロードを行ったり、入出力テーブルを作成したりする処理を実行した後、ユーザプログラムYPの転送があるか否かを判断する(処理S9)。処理S9でユーザプログラムYPの転送がないと判断した場合には(処理S9:No)、処理S3に移行する一方、処理S9でユーザプログラムYPの転送があると判断した場合には(処理S9:Yes)、IDの照合処理(処理S40)を実行する(図12参照)。以後、以上説明した一連の処理(処理S3~S9,S40)を繰り返し実行することによって、PLC100としての各種の機能を実現する。
 [ツール装置のハードウェア構成]
 ツール装置200は、既述したように、本実施の形態では、ユーザプログラムYPの作成、編集、PLC100へのダウンロード、PLC100からのアップロード、その他各種のパラメータ設定又は変更などに供されるユーザプログラム開発支援装置とされている。
 ツール装置200を用いてユーザプログラムYPを作成する場合、複数のユーザプログラムYPからなるユーザプログラム全体の情報を1つのプロジェクトPR(後述する図4及び図8参照)として管理する構成とされている。一般に、この種のツール装置200は、パーソナルコンピュータ等の通信機能を備えたコンピュータに所定のプログラムを格納(インストール)することにより構成される。
 ツール装置200は、PLC100と通信し、PLC100上で実行させるユーザプログラムYPの無断利用を防止する機能を有している。
 図4は、PLC100と通信するツール装置200の概略構成を示すシステムブロック図である。
 図4に示すように、ツール装置200は、操作入力部210(図1も参照)と、記憶部220と、表示出力部230(図1も参照)と、通信部240と、制御部250と、読み取り部260とを備えている。
 操作入力部210は、キーボード211やポインティングデバイス212等の入力装置を備えており、制御部250の入力系に接続されている。操作入力部210は、ユーザによる入力操作を受け付けて入力された操作情報を制御部250に送信する構成とされている。
 記憶部220は、ROM221、RAM222、フラッシュメモリ等のデータ書き換え可能な不揮発性メモリ223等の記憶装置及びこれも不揮発性メモリとして作用するハードディスク装置224等の大容量記憶装置を備えている。なお、ハードディスク装置224には、後述するツール用プログラムP(無断利用防止用プログラムを含むプログラム)が記録されたCD(Compact Disc)-ROM等の記録媒体Mを読み出す読み取り部260によって読み出されたツール用プログラムPを含むソフトウェアが予め格納(インストール)されている。また、記録媒体Mは、USB(Universal Serial Bus)メモリやSD(Secure Digital)メモリカードであってもよい。
 表示出力部230は、液晶表示パネルやEL(Electro Luminescence)表示パネル等の表示装置231を備えており、制御部250の出力系に接続されている。表示装置231は、制御部250からの出力表示情報を表示画面に表示する構成とされている。なお、表示装置231における表示画面には、タッチパネル等のタッチ入力操作装置が設けられていてもよい。タッチ入力操作装置は、表示画面に表示される画面の表示状態に応じた入力操作を行うことができ、操作入力部として作用する構成とされる。
 通信部240は、インターフェイス部241(具体的にはLANポート)を有しており、通信ケーブルCB(具体的にはLANケーブル)を介して制御部250とPLC100における通信ユニット120(図1参照)との間でデータの通信ができるようになっている。なお、PLC100及びツール装置200は、例えば、USBポートやRS232Cなどのシリアルインターフェイスを介して相互に接続されるようになっていてもよい。
 制御部250は、CPU等の演算処理装置で構成されており、記憶部220のハードディスク装置224に予め格納されたツール用プログラムP等のソフトウェアプログラムを記憶部220のRAM222上にロードして実行することにより、各種の処理を行うようになっている。記憶部220のRAM222は、制御部250に対して作業用のワークエリアを提供する。なお、図4において、符号20,224aは、それぞれ、第2ユーザプログラム実行用ID及び記憶領域を示している。
 [ツール装置のソフトウェア構成]
 そして、ツール装置200における制御部250は、第1受け付け部Qa1、送信部Qa2、第2受け付け部Qa3及び第1設定部Qa4として機能する。すなわち、ツール用プログラムPは、ユーザプログラム開発支援用プログラムに組み込まれており、第1受け付け部Qa1に対応する第1受け付けステップと、送信部Qa2に対応する送信ステップと、第2受け付け部Qa3に対応する第2受け付けステップと、第1設定部Qa4に対応する第1設定ステップとを制御部250に実行させる。なお、図4における付加部Qa5及び暗号化部Qa6については後ほど説明する。
 (第1受け付けステップ)
 第1受け付けステップでは、ユーザプログラムYPの実行のために照合される第1ユーザプログラム実行用ID10の入力情報を受け付ける。なお、本実施の形態において、第1受け付けステップでは、ユーザ(通常はベンダー)のセキュリティレベル(ユーザ認証されたセキュリティレベル)に応じて入力操作を制限するようになっている。
 図5は、図1に示すツール装置200における表示装置231に表示された第1ユーザプログラム実行用ID設定画面231aを示す平面図である。
 図5に示すように、表示装置231における第1ユーザプログラム実行用ID設定画面231aには、操作権限を持ったユーザによって、第1ユーザプログラム実行用ID10を入力するための入力欄IP1と、第1ユーザプログラム実行用ID10の入力操作を確定するOKボタンBT1と、第1ユーザプログラム実行用ID設定画面231aを終了するキャンセルボタンBT2とが第1ユーザプログラム実行用ID設定画面231aに表示されるようになっている。具体的には、入力欄IP1には、8~32文字の半角英数字が入力される。
 第1ユーザプログラム実行用ID設定画面231aにおいて、ユーザによるキーボード211(図1参照)の入力操作によって入力欄IP1に第1ユーザプログラム実行用ID10が入力され、例えば、ユーザによるポインティングデバイス212(図1参照)の操作によってカーソルJを移動させてOKボタンBT3が操作(クリック)されることで、入力欄IP1に入力された第1ユーザプログラム実行用ID10を制御部250に送信する。一方、キャンセルボタンBT2が操作(クリック)されることで、第1ユーザプログラム実行用ID設定画面231aを終了するようになっている。なお、第1ユーザプログラム実行用ID設定画面231aにおけるボタン操作はタッチパネルによる操作であってもよい。
 (送信ステップ)
 送信ステップでは、第1受け付けステップにて受け付けた第1ユーザプログラム実行用ID10を通信部240(図4参照)から通信ケーブルCBを経てPLC100に送信する。
 (第1ユーザプログラム実行用IDの受け付け送信処理例)
 次に、第1ユーザプログラム実行用ID10の受け付け送信処理の一例について図6を参照しながら以下に説明する。図6は、第1ユーザプログラム実行用ID10の受け付け処理の一例を示すフローチャートである。なお、第1ユーザプログラム実行用ID10の受け付け送信処理は、プログラムモードで行う。
 図6に示す受け付け送信処理例のフローチャートでは、まず、制御部250は、第1ユーザプログラム実行用ID10の入力操作(図5参照)を受け付け(処理S11)、キャンセルボタンBT2が操作されたか否かを判断する(処理S12)。キャンセルボタンBT2が操作された場合には(処理S12:Yes)、処理を終了する一方、キャンセルボタンBT2が操作されていない場合には(処理S12:No)、OKボタンBT1が操作されたか否かを判断する(処理S13)。OKボタンBT1が操作されていない場合には(処理S13:No)、処理S11へ移行する一方、OKボタンBT1が操作された場合には(処理S13:Yes)、第1ユーザプログラム実行用ID10をPLC100へ送信し(処理S14)、処理を終了する。
 (第2受け付けステップ)
 第2受け付けステップでは、ユーザプログラムYPの実行のために照合される第2ユーザプログラム実行用ID20の入力情報を受け付ける。
 図7は、図1に示すツール装置200における表示装置231に表示された第2ユーザプログラム実行用ID設定画面231bを示す平面図である。
 図7に示すように、表示装置231における第2ユーザプログラム実行用ID設定画面231bには、ユーザ(通常はベンダー)によって、第2ユーザプログラム実行用ID20を入力するための第1入力欄IP2と、確認用の第2ユーザプログラム実行用ID20を入力するための第2入力欄IP3と、第2ユーザプログラム実行用ID20の入力操作を確定するOKボタンBT3と、第2ユーザプログラム実行用ID設定画面231bを終了するキャンセルボタンBT4とが第2ユーザプログラム実行用ID設定画面231bに表示されるようになっている。具体的には、第1入力欄IP2及び第2入力欄IP3には、8~32文字の半角英数字が入力される。
 第2ユーザプログラム実行用ID設定画面231bにおいて、ユーザによるキーボード211(図1参照)の入力操作によって第1入力欄IP2に第2ユーザプログラム実行用ID20が入力され、第2入力欄IP3に確認用の第2ユーザプログラム実行用ID20が入力され、例えば、ユーザによるポインティングデバイス212(図1参照)の操作によってカーソルJを移動させてOKボタンBT3が操作(クリック)されることで、第1入力欄IP2に入力された第2ユーザプログラム実行用ID20と、第2入力欄IP3に入力された確認用の第2ユーザプログラム実行用ID20とを制御部250に送信する。一方、キャンセルボタンBT4が操作(クリック)されることで、第2ユーザプログラム実行用ID設定画面231bを終了するようになっている。なお、第2ユーザプログラム実行用ID設定画面231bにおけるボタン操作はタッチパネルによる操作であってもよい。
 (第1設定ステップ)
 第1設定ステップでは、第2ユーザプログラム実行用ID20をツール装置200に備えられたハードディスク装置224(図4参照)の記憶領域224aに記憶させて設定する。具体的には、第1設定ステップは、プロジェクトPRに対して第2ユーザプログラム実行用ID20を設定する。プロジェクトPRのファイルデータ(以下、単にファイルという)には、複数のユーザプログラムYPからなるユーザプログラム全体が変数(データ)などの情報と共に保存される。ユーザプログラム全体が保存されたプロジェクトPRのファイルは、ハードディスク装置224に格納される。
 図8は、プロジェクトPRのファイルのデータ構造を示す模式図である。図8に示すプロジェクトPRのファイルは、複数のユーザプログラムYPからなるユーザプログラム全体及び変数テーブル、PLCシステム設定、I/Oテーブル、I/Oメモリデータなどの他の設定データを含んでいる。個々のユーザプログラムYPは、同一のプロジェクトPRのファイル内で作成される。また、ユーザプログラムYPは、複数のサブプログラムから構成されている。そして、第2ユーザプログラム実行用ID20は、プロジェクトPRのファイル内に設定される。これにより、個々のユーザプログラムYPと第2ユーザプログラム実行用ID20とを容易に関連付ける(対応付ける)ことが可能となる。
 (第2ユーザプログラム実行用IDの書き込みについて)
 ここで、ツール装置200は、プロジェクトPRに対して第2ユーザプログラム実行用ID20が一度設定されて以降は第2ユーザプログラム実行用ID20を設定変更不能かつ消去不能な構成とされている。
 すなわち、第1設定ステップでは、第2ユーザプログラム実行用ID20がプロジェクトPRに設定されていないときにのみ、第2ユーザプログラム実行用ID20を設定し、設定後はID設定用フラグを立てる等によって第2ユーザプログラム実行用ID20を変更も消去もできないようになっている。
 (第2ユーザプログラム実行用IDの設定処理例)
 次に、第2ユーザプログラム実行用ID20の設定処理の一例について図9を参照しながら以下に説明する。図9は、第2ユーザプログラム実行用ID20の設定処理の一例を示すフローチャートである。
 図9に示す設定処理例のフローチャートでは、まず、制御部250は、第2ユーザプログラム実行用ID20が既にプロジェクトPRに設定されているか否かを判断する(処理S21)。
 第2ユーザプログラム実行用ID20が既にプロジェクトPRに設定されている場合には(処理S21:Yes)、第2ユーザプログラム実行用ID20が既に設定されている旨の表示を行い(処理S22)、処理を終了する一方、第2ユーザプログラム実行用ID20が未だプロジェクトPRに設定されてない場合には(処理S21:No)、処理S23に移行する。
 次に、第2ユーザプログラム実行用ID20の入力操作(図7参照)を受け付け(処理S23)、キャンセルボタンBT4が操作されたか否かを判断する(処理S24)。キャンセルボタンBT4が操作された場合には(処理S24:Yes)、処理を終了する一方、キャンセルボタンBT4が操作されていない場合には(処理S24:No)、OKボタンBT3が操作されたか否かを判断する(処理S25)。OKボタンBT3が操作されていない場合には(処理S25:No)、処理S23へ移行する一方、OKボタンBT3が操作された場合には(処理S25:Yes)、確認キー(例えば「Y」キー)を操作(押下)する旨のメッセージ表示(処理S26)を行う。
 次に、確認キー(例えば「Y」キー)が操作(押下)されたか否かを判断し(処理S27)、確認キー以外のキーが操作された場合には(処理S27:No)、処理S23に移行する一方、確認のキー(例えば「Y」キー)が操作された場合には(処理S27:Yes)、処理S28に移行する。
 次に、第1入力欄IP2に入力された第2ユーザプログラム実行用ID20が第2入力欄IP3に入力された確認用の第2ユーザプログラム実行用ID20と一致しているか否かを判断し(処理S28)、一致していない場合には(処理S28:No)、一致していない旨のメッセージを表示し(処理S29)、処理S23に移行する一方、一致する場合には(処理S28:Yes)、第2ユーザプログラム実行用ID20をプロジェクトPRに設定し(処理S30)、処理を終了する。
 (第2ユーザプログラム実行用IDの表示について)
 また、制御部250は、プロジェクトPRに設定された後のハードディスク装置224の記憶領域224aに記憶されている第2ユーザプログラム実行用ID20を表示させる機能を持たない(具体的には第2ユーザプログラム実行用ID20を表示させることを禁止する)構成とされている。
 本実施の形態では、制御部250は、さらに、付加部Qa5(図4参照)として機能する。すなわち、ツール用プログラムPは、付加部Qa5に対応する付加ステップを制御部250に実行させる。
 (付加ステップ)
 付加ステップでは、プロジェクトPR(図8参照)における第2ユーザプログラム実行用ID20をユーザプログラムYPに付加する。具体的には、付加ステップでは、プロジェクトPRにおける第2ユーザプログラム実行用ID20を読み出して、ユーザプログラムYPの言語に対応するコンパイラによってコンパイルされたユーザプログラムYPのオブジェクトコード(後述する図10参照)に対して、プロジェクトPRから読み出した第2ユーザプログラム実行用ID20を組み込むようになっている。
 図10は、ユーザプログラムYPに付加された第2ユーザプログラム実行用ID20のデータ構造を示す模式図である。
 図10に示すように、ユーザプログラムYPのオブジェクトコードに付加された第2ユーザプログラム実行用ID20のファイルデータ11は、ファイル情報ヘッダ部12とデータ部13とで構成されている。ファイル情報ヘッダ部12には、ファイルバージョンなどのファイル情報が記録される。データ部13には、第2ユーザプログラム実行用ID20が記憶される。
 そして、送信ステップでは、付加ステップにて第2ユーザプログラム実行用ID20を付加したユーザプログラムYPをPLC100に送信する。
 なお、第2ユーザプログラム実行用ID20とユーザプログラムYPとを別々にPLC100に送信してもよい。この場合、第2ユーザプログラム実行用ID20とユーザプログラムYPとを同時に又は異なる時間に送信してもよい。
 本実施の形態では、制御部250は、さらに、暗号化部Qa6(図4参照)として機能する。すなわち、ツール用プログラムPは、暗号化部Qa6に対応する暗号化ステップを制御部250に実行させる。
 (暗号化ステップ)
 暗号化ステップでは、第1受け付けステップにて受け付けた第1ユーザプログラム実行用ID10、及び、第2受け付けステップにて受け付けた第2ユーザプログラム実行用ID20を不可逆に暗号化する。ここで、不可逆の暗号化処理は、元のIDコードに戻すことができない処理であり、同じ暗号キーを使って同じ文字列を暗号化すると、生成される文字列は同じものとなる。なお、可逆的に暗号化した第1及び第2ユーザプログラム実行用ID10,20を照合のときに復号化するようにしてもよい。
 そして、第1設定ステップでは、暗号化ステップにて暗号化された第2ユーザプログラム実行用ID20をプロジェクトPRに設定する。また、送信ステップでは、暗号化ステップにて暗号化された第1ユーザプログラム実行用ID10をPLC100に送信する。
 [PLCのソフトウェア構成]
 PLC100におけるマイクロプロセッサ111は、第2設定部Qb1、格納制御部Qb2、照合部Qb3及び実行禁止部Qb4(図2参照)として機能する。すなわち、システムプログラムSPは、第2設定部Qb1に対応する第2設定ステップと、格納制御部Qb2に対応する格納制御ステップと、照合部Qb3に対応する照合ステップと、実行禁止部Qb4に対応する実行禁止ステップとをマイクロプロセッサ111に実行させる。なお、図2における解除部Qb5については後ほど説明する。
 (第2設定ステップ)
 第2設定ステップでは、ツール装置200で実施された送信ステップにてPLC100に送信されてきた第1ユーザプログラム実行用ID10をPLC100に備えられたID格納用メモリ113(図2参照)の記憶領域113aに記憶させて設定する。
 また、第1ユーザプログラム実行用ID10がツール装置200で暗号化される場合には、第2設定ステップでは、ツール装置200で実施された暗号化ステップにて暗号化されて送信ステップにてPLC100に送信されてきた第1ユーザプログラム実行用ID10をID格納用メモリ113の記憶領域113aに記憶させて設定する。
 (第1ユーザプログラム実行用IDの書き込みについて)
 ここで、PLC100は、ID格納用メモリ113に対して第1ユーザプログラム実行用ID10を書き換え可能かつ消去可能な構成とされている。
 すなわち、第2設定ステップでは、第1ユーザプログラム実行用ID10がID格納用メモリ113の記憶領域113aに設定(記憶)されているか否かに関わらず、第1ユーザプログラム実行用ID10を変更も消去もできるようになっている。第1ユーザプログラム実行用ID10の変更は、図5に示す第1ユーザプログラム実行用ID設定画面231aによって行うことができる。
 (第1ユーザプログラム実行用IDの消去について)
 ID格納用メモリ113の記憶領域113aに記憶されている第1ユーザプログラム実行用ID10は、CPUユニット110に対してメモリオールクリアの機能を実行することによって消去することができる。すなわち、CPUユニット110に対するメモリオールクリアの機能を実行すると、ID格納用メモリ113の記憶領域113aに第1ユーザプログラム実行用ID10が設定されていない状態となり、ID格納用メモリ113が初期の非設定状態に戻る。
 (第1ユーザプログラム実行用IDの表示について)
 なお、ツール装置200における制御部250は、ID格納用メモリ113の記憶領域113aに設定された後のID格納用メモリ113に記憶されている第1ユーザプログラム実行用ID10を表示させる機能を持たない(具体的には第1ユーザプログラム実行用ID10を表示させることを禁止する)構成とされている。
 (格納制御ステップ)
 格納制御ステップでは、ツール装置200で実施された付加ステップにて第2ユーザプログラム実行用ID20が付加されて送信ステップにてPLC100に送信されてきたユーザプログラムYPをPLC100におけるバックアップメモリ114(図2参照)に格納する。
 (照合ステップ)
 照合ステップでは、第1ユーザプログラム実行用ID10と第2ユーザプログラム実行用ID20とが一致しているか否かを照合する。具体的には、ID格納用メモリ113に記憶されている第1ユーザプログラム実行用ID10と、プロジェクトPRから転送されてバックアップメモリ114に記憶されている第2ユーザプログラム実行用ID20とを照合する。
 本実施の形態において、照合ステップでは、バックアップメモリ114に格納されているユーザプログラムYPをユーザメモリ116に格納するときに、第1ユーザプログラム実行用ID10と第2ユーザプログラム実行用ID20とを照合する。具体的には、ID格納用メモリ113に記憶されている第1ユーザプログラム実行用ID10を読み出し、バックアップメモリ114からユーザプログラムYPを読み出してユーザプログラムYPに付加された(組み込まれた)第2ユーザプログラム実行用ID20をユーザプログラムYPから取り出し、ID格納用メモリ113から読み出した第1ユーザプログラム実行用ID10と、ユーザプログラムYPから取り出した第2ユーザプログラム実行用ID20とを照合する。
 ここでは、第1ユーザプログラム実行用ID10及び第2ユーザプログラム実行用ID20は、同じ暗号キーを使って同じ文字列を暗号化して生成された文字列が同じものとなる不可逆に暗号化されているので、照合ステップでは、不可逆に暗号化された第1ユーザプログラム実行用ID10の文字列と、不可逆に暗号化された第2ユーザプログラム実行用ID20の文字列とが一致しているか否かを照合する。
 本実施の形態では、第1ユーザプログラム実行用ID10及び第2ユーザプログラム実行用ID20の一致及び不一致は、図11に示すような条件としている。図11は、第1ユーザプログラム実行用ID10及び第2ユーザプログラム実行用ID20の一致及び不一致の条件の一例を示す表である。
 図11に示すように、第1ユーザプログラム実行用ID10がID格納用メモリ113に設定されていないときで、第2ユーザプログラム実行用ID20がプロジェクトPRに設定されていないときには、一致と判断する。
 第1ユーザプログラム実行用ID10がID格納用メモリ113に設定されているときで、第2ユーザプログラム実行用ID20がプロジェクトPRに設定されているとき、かつ、双方のID10,20が等しいときには、一致と判断する。
 第1ユーザプログラム実行用ID10がID格納用メモリ113に設定されているときで、第2ユーザプログラム実行用ID20がプロジェクトPRに設定されていないときには、不一致と判断する。
 第1ユーザプログラム実行用ID10がID格納用メモリ113に設定されていないときで、第2ユーザプログラム実行用ID20がプロジェクトPRに設定されているときには、不一致と判断する。
 また、第1ユーザプログラム実行用ID10がID格納用メモリ113に設定されているときで、第2ユーザプログラム実行用ID20がプロジェクトPRに設定されているとき、かつ、双方のID10,20が等しくないときには、不一致と判断する。
 第1ユーザプログラム実行用ID10と第2ユーザプログラム実行用ID20とを照合するタイミングは、本実施の形態では、PLC100の電源を投入してバックアップメモリ114からユーザメモリ116へユーザプログラムYPを格納した時(電源投入時)、或いは、ツール装置200からPLC100におけるバックアップメモリ114へユーザプログラムYPを格納してバックアップメモリ114からユーザメモリ116へユーザプログラムYPを格納した時(ダウンロード時)とされている。
 (実行禁止ステップ)
 実行禁止ステップでは、照合ステップにて照合した照合結果に基づいて、第1ユーザプログラム実行用ID10と第2ユーザプログラム実行用ID20とが不一致となった場合に、ユーザプログラムYPの実行を禁止する。
 本実施の形態では、マイクロプロセッサ111は、さらに、解除部Qb5として機能する。すなわち、システムプログラムSPは、解除部Qb5(図2参照)に対応する解除ステップをマイクロプロセッサ111に実行させる。
 (解除ステップ)
 解除ステップでは、実行禁止ステップによるユーザプログラムYPの実行禁止状態をCPUユニット110の再起動(具体的には、CPUユニット110の電源OFF/ON又はツール装置200のユーザプログラム開発支援用プログラムからのリセット)によって解除する。
 (IDの照合処理例)
 次に、第1ユーザプログラム実行用ID10と第2ユーザプログラム実行用ID20とを照合する照合処理S40の一例について図12を参照しながら以下に説明する。図12は、第1ユーザプログラム実行用ID10と第2ユーザプログラム実行用ID20とを照合する照合処理S40の一例を示すフローチャートである。なお、図12に示すフローチャートは、図3に示すIDの照合処理S40の詳細フローチャートである。
 図12に示すIDの照合処理例のフローチャートでは、まず、電源投入時か、又は、ダウンロード時か否かを判断する(処理S41)。電源投入時でない場合には(処理S41:No)、図3に示すPLC100全体の処理における初期化処理(処理S1)に戻り、ダウンロード時でない場合には(処理S41:No)、図3に示すPLC100全体の処理におけるモード読み込み処理(処理S3)に戻る。一方、電源投入時、又は、ダウンロード時である場合には(処理S41:Yes)、処理S42に移行する。
 次に、第1及び第2ユーザプログラム実行用ID10,20の何れか一方が未設定か否かを判断する(処理S42)。第1及び第2ユーザプログラム実行用ID10,20の何れか一方が未設定である場合には(処理S42:Yes)、処理S46に移行する一方、第1及び第2ユーザプログラム実行用ID10,20の何れか一方が未設定でない場合には(処理S42:No)、第1及び第2ユーザプログラム実行用ID10,20の双方が未設定か否かを判断する(処理S43)。
 第1及び第2ユーザプログラム実行用ID10,20の双方が未設定である場合には(処理S43:Yes)、処理S45に移行する一方、第1及び第2ユーザプログラム実行用ID10,20の双方が未設定でない場合には(処理S43:No)、第1及び第2ユーザプログラム実行用ID10,20が一致するか否かを判断する(処理S44)。
 第1及び第2ユーザプログラム実行用ID10,20が一致した場合には(処理S44:Yes)、処理S45に移行する一方、第1及び第2ユーザプログラム実行用ID10,20が一致していない場合には(処理S44:No)、処理S46に移行する。
 処理S45では、ユーザプログラムYPの実行を許可し、図3に示すPLC100全体の処理に戻る。
 処理S46では、ユーザプログラムYPの実行を禁止し、IDが一致しない旨のメッセージ表示(処理S47)を行った後、図3に示すPLC100全体の処理に戻る。ここで、IDが一致しない旨のメッセージ表示は、PLC100が備える表示機能(図1では省略)を使用して行う。表示機能の例としてLEDランプ使用する場合は、所定のLEDを点灯または点滅させる態様を例示できる。表示機能の例として液晶表示装置を使用する場合は、所定の文字列を表示させる態様を例示できる。
 (本実施の形態について)
 以上説明したように、本実施の形態によると、第1ユーザプログラム実行用ID10の入力情報を受け付け、第1ユーザプログラム実行用ID10をPLC100に送信し、PLC100に送信されてきた第1ユーザプログラム実行用ID10をPLC100に設定することに加えて、ユーザプログラムYPの実行のために照合される第2ユーザプログラム実行用ID20の入力情報を受け付け、第2ユーザプログラム実行用ID20をツール装置200に設けられたプロジェクトPRに設定するので、ユーザがIDの照合を行うためにユーザプログラムYPを作成しなくても、IDを入力するといった簡単な操作によってPLC100上で実行させるユーザプログラムYPの無断利用を防止することができ、これにより、PLC100上で実行させるユーザプログラムYPの無断利用を防止するための利便性を向上させることが可能となる。
 そして、ツール装置200において、ツール装置200に設けられたプロジェクトPRに対して第2ユーザプログラム実行用ID20が一度設定されて以降は第2ユーザプログラム実行用ID20を設定変更不能かつ消去不能な構成とされているので、一度設定した第2ユーザプログラム実行用ID20を、第2ユーザプログラム実行用ID20を設定した本来のユーザ(該ユーザから知得したユーザを含むユーザ)以外の他人が書き換えたり、或いは、盗み見たりすることが非常に困難となる。また、PLC100におけるID格納用メモリ113に対して第1ユーザプログラム実行用ID10を書き換え可能かつ消去可能な構成とされているので、本来のユーザが第2ユーザプログラム実行用ID20と一致する第1ユーザプログラム実行用ID10を設定することができ、これにより、PLC100において、照合した照合結果に基づいて第1ユーザプログラム実行用ID10と第2ユーザプログラム実行用ID20とが一致することで、PLC100において、ユーザプログラムYPを実行させることができる。その一方で、本来のユーザ以外の他人が第2ユーザプログラム実行用ID20とは異なる第1ユーザプログラム実行用ID10を設定すると、PLC100において、照合した照合結果に基づいて第1ユーザプログラム実行用ID10と第2ユーザプログラム実行用ID20とが不一致となることで、ユーザプログラムYPの実行を禁止するので、ユーザプログラムYPを実行させることができない。しかも、ツール装置200は、PLC100のID格納用メモリ113における第1ユーザプログラム実行用ID10を表示させる機能、及び、プロジェクトPRにおける第2ユーザプログラム実行用ID20を表示させる機能を何れも持たない構成とされているので、本来のユーザや本来のユーザ以外の他人に関わらず、第1ユーザプログラム実行用ID10及び第2ユーザプログラム実行用ID20をツール装置200から知られることが非常に困難となる。なお、本実施の形態では、ID格納用メモリ113が制御基板に着脱不能に搭載(直付け)されているので、ID格納用メモリ113を別のPLCに取り替えることも非常に困難である。
 また、本実施の形態では、ユーザプログラムYPがプロジェクトPRとして管理され、第2ユーザプログラム実行用ID20をプロジェクトPRに設定するので、第2ユーザプログラム実行用ID20とユーザプログラムYPとの関連付けを容易に行うことができる。
 また、本実施の形態では、第1受け付け部Qa1にて受け付けた第1ユーザプログラム実行用ID10、及び、第2受け付け部Qa3にて受け付けた第2ユーザプログラム実行用ID20を暗号化するので、万一、第1ユーザプログラム実行用ID10及び/又は第2ユーザプログラム実行用ID20が不正に読み出されて盗まれたとしても第1ユーザプログラム実行用ID10及び第2ユーザプログラム実行用ID20が暗号化されたものであるため、第1ユーザプログラム実行用ID10及び/又は第2ユーザプログラム実行用ID20を本来のユーザ以外の他人に知られることが困難となる。これにより、第1ユーザプログラム実行用ID10及び/又は第2ユーザプログラム実行用ID20の外部への漏洩に対するセキュリティを向上させることが可能となる。しかも、暗号化処理は、不可逆の暗号化処理であり、元のIDコードに戻すことができないので、元のIDコードの情報が知られることはない。
 また、本実施の形態では、ツール装置200に設けられたプロジェクトPRにおける第2ユーザプログラム実行用ID20を、PLC100におけるバックアップメモリ114に格納するので、照合毎にツール装置200から第2ユーザプログラム実行用ID20を取得しなくても、第1ユーザプログラム実行用ID10と第2ユーザプログラム実行用ID20とを容易に照合することが可能となる。
 また、本実施の形態では、第2ユーザプログラム実行用ID20をユーザプログラムYPに付加し、第2ユーザプログラム実行用ID20を付加したユーザプログラムYPをPLC100に送信してPLC10におけるバックアップメモリ114に格納するので、PLC100において第2ユーザプログラム実行用ID20の存在を分かり難くすることが可能となる。
 また、本実施の形態では、バックアップメモリ114に格納されているユーザプログラムYPをユーザメモリ116に格納するときに、第1ユーザプログラム実行用ID10と第2ユーザプログラム実行用ID20とを照合するので、第1ユーザプログラム実行用ID10と第2ユーザプログラム実行用ID20とを、ユーザプログラムYPの実行に先だって確実に照合することが可能となる。
 また、本実施の形態では、ユーザプログラムYPが実行禁止状態となったときには、ユーザプログラムYPの実行禁止状態をCPUユニット110の再起動によって解除するので、本来のユーザ以外の他人によるID格納用メモリ113への第1ユーザプログラム実行用ID10の不正書き込み労力を増やすことができ、ひいては他人による不正行為を抑止することが可能となる。
 また、本実施の形態では、ID格納用メモリ113への第1ユーザプログラム実行用ID10の内容は任意に書き換え可能であるから、故障等の原因でPLC100が別のPLC100に交換されたときには、交換後のPLC100のID格納用メモリ113における第1ユーザプログラム実行用ID10の内容を交換前のPLC100の第1ユーザプログラム実行用ID10と同じ内容に書き換えることにより、ユーザプログラムYPを交換後のPLC100上においても動作させることができる。
 なお、プログラマブルコントローラシステム300において、複数のPLC100を設ける場合には、ツール装置200側で設定した第2ユーザプログラム実行用ID20と同じIDを複数のPLC100側の第1ユーザプログラム実行用ID10としてID格納用メモリ113に設定することで、複数のPLC100を設ける場合でも、前述と同様に、ユーザプログラムYPの無断利用を防止することが可能となる。
 今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 10 第1ユーザプログラム実行用ID
 20 第2ユーザプログラム実行用ID
 100 プログラマブルコントローラ
 113 ID格納用メモリ
 114 バックアップメモリ(不揮発性メモリの一例)
 116 ユーザメモリ(揮発性メモリの一例)
 200 ツール装置
 224 ハードディスク装置
 300 プログラマブルコントローラシステム
 M 記録媒体
 PR プロジェクト
 Qa1 第1受け付け部
 Qa2 送信部
 Qa3 第2受け付け部
 Qa4 第1設定部
 Qa5 付加部
 Qa6 暗号化部
 Qb1 第2設定部
 Qb2 格納制御部
 Qb3 照合部
 Qb4 実行禁止部
 Qb5 解除部
 YP ユーザプログラム

Claims (11)

  1.  プログラマブルコントローラと、前記プログラマブルコントローラと通信し、前記プログラマブルコントローラ上でユーザプログラムを実行させるためのツール装置とを備えたプログラマブルコントローラシステムであって、
     前記ツール装置は、
     前記ユーザプログラムの実行のために照合される第1ユーザプログラム実行用IDの入力情報を受け付ける第1受け付け部と、
     前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに送信する送信部と、
     前記ユーザプログラムの実行のために照合される第2ユーザプログラム実行用IDの入力情報を受け付ける第2受け付け部と、
     前記第2ユーザプログラム実行用IDを前記ユーザプログラムと関連付けて自装置に設定する第1設定部と
     を備え、
     前記第2ユーザプログラム実行用IDが一旦設定されて以降は前記第2ユーザプログラム実行用IDを設定不能かつ消去不能な構成とされており、
     前記第1ユーザプログラム実行用IDを表示させる機能、及び、前記第2ユーザプログラム実行用IDを表示させる機能を何れも持たない構成とされており、
     前記プログラマブルコントローラは、
     前記送信部にて前記プログラマブルコントローラに送信された前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに設定する第2設定部と、
     前記第1ユーザプログラム実行用IDと前記第2ユーザプログラム実行用IDとが一致しているか否かを照合する照合部と、
     前記照合部にて照合した照合結果に基づいて、前記第1ユーザプログラム実行用IDと前記第2ユーザプログラム実行用IDとが不一致となった場合に、前記ユーザプログラムの実行を禁止する実行禁止部と
     を備え、
     前記第1ユーザプログラム実行用IDを設定可能かつ消去可能な構成とされている、
    プログラマブルコントローラシステム。
  2.  請求項1に記載のプログラマブルコントローラシステムであって、
     前記ツール装置は、複数の前記ユーザプログラムの情報を1つのプロジェクトとして管理する構成とされており、
     前記第1設定部は、前記プロジェクトに対して前記第2ユーザプログラム実行用IDを設定する、プログラマブルコントローラシステム。
  3.  請求項1に記載のプログラマブルコントローラシステムであって、
     前記ツール装置は、前記第1受け付け部にて受け付けた前記第1ユーザプログラム実行用ID、及び、前記第2受け付け部にて受け付けた前記第2ユーザプログラム実行用IDを暗号化する暗号化部を備え、
     前記送信部は、前記暗号化部にて暗号化された前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに送信し、
     前記第1設定部は、前記暗号化部にて暗号化された前記第2ユーザプログラム実行用IDを前記ツール装置に設定し、
     前記第2設定部は、前記暗号化部にて暗号化されて前記送信部にて前記プログラマブルコントローラに送信された前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに設定する、プログラマブルコントローラシステム。
  4.  請求項1に記載のプログラマブルコントローラシステムであって、
     前記送信部は、前記第2ユーザプログラム実行用IDを前記プログラマブルコントローラに送信し、
     前記プログラマブルコントローラは、前記送信部にて前記プログラマブルコントローラに送信された前記第2ユーザプログラム実行用IDを該プログラマブルコントローラに格納する格納制御部を備える、プログラマブルコントローラシステム。
  5.  請求項4に記載のプログラマブルコントローラシステムであって、
     前記ツール装置は、前記第2ユーザプログラム実行用IDを前記ユーザプログラムに付加する付加部を備え、
     前記送信部は、前記付加部にて前記第2ユーザプログラム実行用IDを付加した前記ユーザプログラムを前記プログラマブルコントローラに送信し、
     前記格納制御部は、前記付加部にて前記第2ユーザプログラム実行用IDが付加されて前記送信部にて前記プログラマブルコントローラに送信された前記ユーザプログラムを前記プログラマブルコントローラに格納する、プログラマブルコントローラシステム。
  6.  請求項4に記載のプログラマブルコントローラシステムであって、
     前記プログラマブルコントローラは、前記ユーザプログラムを該プログラマブルコントローラに備えられた不揮発性メモリに格納する構成とされており、
     前記照合部は、前記不揮発性メモリに格納されている前記ユーザプログラムを、前記プログラマブルコントローラに備えられて前記ユーザプログラムを記憶する揮発性メモリに格納するときに、前記第1ユーザプログラム実行用IDと前記第2ユーザプログラム実行用IDとを照合する、プログラマブルコントローラシステム。
  7.  請求項1に記載のプログラマブルコントローラシステムであって、
     前記プログラマブルコントローラは、前記実行禁止部による前記ユーザプログラムの実行禁止状態を前記プログラマブルコントローラの再起動によって解除する解除部を備える、プログラマブルコントローラシステム。
  8.  請求項1に記載のプログラマブルコントローラシステムに備えられるツール装置であって、
     前記ユーザプログラムの実行のために照合される第1ユーザプログラム実行用IDの入力情報を受け付ける第1受け付け部と、
     前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに送信する送信部と、
     前記ユーザプログラムの実行のために照合される第2ユーザプログラム実行用IDの入力情報を受け付ける第2受け付け部と、
     前記第2ユーザプログラム実行用IDを前記ユーザプログラムと関連付けて自装置に設定する第1設定部と
     を備え、
     前記第2ユーザプログラム実行用IDが一旦設定されて以降は前記第2ユーザプログラム実行用IDを設定不能かつ消去不能な構成とされており、
     前記第1ユーザプログラム実行用IDを表示させる機能、及び、前記第2ユーザプログラム実行用IDを表示させる機能を何れも持たない構成とされている、ツール装置。
  9.  請求項8に記載のツール装置における制御部を、前記第1受け付け部と、前記送信部と、前記第2受け付け部と、前記第1設定部とを含む手段として機能させるためのツール用プログラム。
  10.  請求項9に記載のツール用プログラムを記録したコンピュータ読み取り可能な記録媒体。
  11.  請求項1に記載のプログラマブルコントローラシステムに備えられるプログラマブルコントローラであって、
     前記送信部にて前記プログラマブルコントローラに送信された前記第1ユーザプログラム実行用IDを前記プログラマブルコントローラに設定する第2設定部と、
     前記第1ユーザプログラム実行用IDと前記第2ユーザプログラム実行用IDとが一致しているか否かを照合する照合部と、
     前記照合部にて照合した照合結果に基づいて、前記第1ユーザプログラム実行用IDと前記第2ユーザプログラム実行用IDとが不一致となった場合に、前記ユーザプログラムの実行を禁止する実行禁止部と
     を備え、
     前記第1ユーザプログラム実行用IDを設定可能かつ消去可能な構成とされている、プログラマブルコントローラ。
PCT/JP2011/071859 2011-03-15 2011-09-26 プログラマブルコントローラシステム、ツール装置、ツール用プログラム及び記録媒体並びにプログラマブルコントローラ WO2012124196A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201180003124.XA CN103052920B (zh) 2011-03-15 2011-09-26 可编程控制器系统、工具装置、工具用程序、记录介质以及可编程控制器
EP11817202.2A EP2523057B1 (en) 2011-03-15 2011-09-26 Programmable controller system, tool device, tool program and recording medium
US13/399,056 US9311460B2 (en) 2011-03-15 2012-02-17 Programmable controller system, tool device, tool program, storage medium, and programmable controller

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-056867 2011-03-15
JP2011056867A JP5786386B2 (ja) 2011-03-15 2011-03-15 プログラマブルコントローラシステム、ツール装置、ツール用プログラム及び記録媒体並びにプログラマブルコントローラ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/399,056 Continuation US9311460B2 (en) 2011-03-15 2012-02-17 Programmable controller system, tool device, tool program, storage medium, and programmable controller

Publications (1)

Publication Number Publication Date
WO2012124196A1 true WO2012124196A1 (ja) 2012-09-20

Family

ID=46830297

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/071859 WO2012124196A1 (ja) 2011-03-15 2011-09-26 プログラマブルコントローラシステム、ツール装置、ツール用プログラム及び記録媒体並びにプログラマブルコントローラ

Country Status (4)

Country Link
EP (1) EP2523057B1 (ja)
JP (1) JP5786386B2 (ja)
CN (1) CN103052920B (ja)
WO (1) WO2012124196A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016099899A (ja) * 2014-11-25 2016-05-30 富士電機株式会社 コントロールシステム、その支援装置、プログラマブルコントロール装置
CN111506890A (zh) * 2020-04-30 2020-08-07 中铁工程装备集团有限公司 一种基于u盘加密狗的盾构机锁机方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61206035A (ja) * 1985-03-09 1986-09-12 Meruko:Kk コンピユ−タプログラムの盗用防止装置
JPH07129207A (ja) * 1993-10-28 1995-05-19 Fanuc Ltd 数値制御システム
JP2002023876A (ja) * 2000-07-07 2002-01-25 Matsushita Electric Works Ltd 電子機器組み込みソフトウェアの保護方法及び電子機器
JP2009070144A (ja) 2007-09-13 2009-04-02 Omron Corp Plcにおけるプログラミング方法
WO2011099146A1 (ja) * 2010-02-12 2011-08-18 三菱電機株式会社 プログラマブルコントローラおよびプログラミング装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06110512A (ja) * 1992-09-25 1994-04-22 Matsushita Electric Works Ltd プログラマブルコントローラ
JP4366130B2 (ja) * 2003-07-17 2009-11-18 株式会社リコー ソフトウェア違法コピー防止システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61206035A (ja) * 1985-03-09 1986-09-12 Meruko:Kk コンピユ−タプログラムの盗用防止装置
JPH07129207A (ja) * 1993-10-28 1995-05-19 Fanuc Ltd 数値制御システム
JP2002023876A (ja) * 2000-07-07 2002-01-25 Matsushita Electric Works Ltd 電子機器組み込みソフトウェアの保護方法及び電子機器
JP2009070144A (ja) 2007-09-13 2009-04-02 Omron Corp Plcにおけるプログラミング方法
WO2011099146A1 (ja) * 2010-02-12 2011-08-18 三菱電機株式会社 プログラマブルコントローラおよびプログラミング装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016099899A (ja) * 2014-11-25 2016-05-30 富士電機株式会社 コントロールシステム、その支援装置、プログラマブルコントロール装置
CN111506890A (zh) * 2020-04-30 2020-08-07 中铁工程装备集团有限公司 一种基于u盘加密狗的盾构机锁机方法

Also Published As

Publication number Publication date
CN103052920B (zh) 2015-10-21
EP2523057A4 (en) 2014-04-30
EP2523057A1 (en) 2012-11-14
CN103052920A (zh) 2013-04-17
JP2012194679A (ja) 2012-10-11
EP2523057B1 (en) 2018-08-08
JP5786386B2 (ja) 2015-09-30

Similar Documents

Publication Publication Date Title
CN112035152B (zh) 一种SoC芯片固件升级的安全处理系统及方法
US9078802B2 (en) Method, device and system for use in configuring a bathing unit controller
JP5900143B2 (ja) 制御システム、制御装置及びプログラム実行制御方法
US9311460B2 (en) Programmable controller system, tool device, tool program, storage medium, and programmable controller
KR102007532B1 (ko) 선택적으로 디버깅을 활성화 또는 억제하기 위한 수단을 갖는 하드웨어 보안 모듈 및 해당 디버깅 방법
CN106133739B (zh) 数据到安全元件的非易失性存储器中的加载的安全保护
RU2595967C2 (ru) Способ функционирования тахографа и тахограф
JP2006221274A (ja) 車両用電子制御装置および制御プログラムの書換え方法
JP5786386B2 (ja) プログラマブルコントローラシステム、ツール装置、ツール用プログラム及び記録媒体並びにプログラマブルコントローラ
JP2009070144A (ja) Plcにおけるプログラミング方法
JP5414812B2 (ja) プログラマブルコントローラ
KR20120068745A (ko) 하드웨어 보안 모듈 및 그러한 모듈 내에서의 처리 방법
JP6988444B2 (ja) 初期設定方法、セキュアエレメント、デバイス及びプログラム
JP4501781B2 (ja) プログラマブルコントローラ
JP2007507020A (ja) プログラミング可能な読出し専用メモリのブートセクタ内にソフトウェアをリロードするための方法
WO2017150233A1 (ja) 端末装置およびソフトウェア書き換えプログラム
JP2018128722A (ja) プログラマブルロジックコントローラ
WO2015136964A1 (ja) ライセンス情報管理装置、ライセンス情報管理方法、および、プログラム
JP4534731B2 (ja) 電子制御装置及びその識別コード生成方法
KR101572854B1 (ko) 사이버 보안 기능이 강화된 피엘씨 장치
JP2005202663A (ja) 制御用プログラム,コンパイラおよび変換プログラム
WO2020235172A1 (ja) 制御装置、データ不能化プログラム、および制御システム
KR101539253B1 (ko) 프로그램 품질 관리 기능이 구비된 피엘씨 장치
WO2020044483A1 (ja) 制御装置、制御方法及びプログラム
CN118843861A (zh) 电子控制装置以及认证方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180003124.X

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2011817202

Country of ref document: EP

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

Ref document number: 11817202

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE