WO2022269787A1 - プログラム作成支援装置、プログラム作成支援方法、プログラム作成支援プログラム及びプログラマブルロジックコントローラ - Google Patents

プログラム作成支援装置、プログラム作成支援方法、プログラム作成支援プログラム及びプログラマブルロジックコントローラ Download PDF

Info

Publication number
WO2022269787A1
WO2022269787A1 PCT/JP2021/023732 JP2021023732W WO2022269787A1 WO 2022269787 A1 WO2022269787 A1 WO 2022269787A1 JP 2021023732 W JP2021023732 W JP 2021023732W WO 2022269787 A1 WO2022269787 A1 WO 2022269787A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
user
program
machine part
defined virtual
Prior art date
Application number
PCT/JP2021/023732
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 JP2021575479A priority Critical patent/JP7072739B1/ja
Priority to PCT/JP2021/023732 priority patent/WO2022269787A1/ja
Priority to CN202180099542.7A priority patent/CN117561483A/zh
Priority to DE112021007868.2T priority patent/DE112021007868T5/de
Publication of WO2022269787A1 publication Critical patent/WO2022269787A1/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/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Definitions

  • the present disclosure relates to a program creation support device, a program creation support method, a program creation support program, and a programmable logic controller.
  • the FA (Factory Automation) control system consists of a programmable logic controller, which is a sequence control device.
  • the programmable logic controller will be referred to as "PLC”.
  • PLC is an abbreviation for "Programmable Logic Controller”.
  • the PLC is controlled by a sequence program.
  • a sequence program is a program written in a programming language such as a ladder program, function block diagram or structured text. In general, a sequence program defined by the "IEC61131-3 standard" issued by the International Electrotechnical Commission is widely used.
  • a sequence program is created by an engineering tool, which is a program creation support device configured on a personal computer.
  • a personal computer and a PLC are connected, and the sequence program is stored in the storage section of the PLC.
  • a mechanical device in a factory that manufactures products mechanically interlocks a plurality of mechanisms such as a cam mechanism, a link mechanism, and a gear mechanism to control a movement in conjunction with another movement. It's here.
  • a method of electrically realizing a reduction gear using a PLC has been devised.
  • the PLC can exhibit the same effect as changing the gear ratio of the reduction gear by making the rotation speed of the motor variable.
  • the PLC simulates a mechanical component by providing a virtual mechanical component having a user program that defines the behavior of the mechanical component using various parameters for calculating the behavior of the mechanical component.
  • a PLC is composed of a basic unit and an expansion unit.
  • the program creation support device disclosed in Patent Document 1 is connected to each of a synchronous main shaft of synchronous control and a synchronous slave shaft of synchronous control in order, and converts the position of each input shaft to the position of the output shaft.
  • a display unit for displaying the virtual mechanical parts of the virtual mechanical parts, a setting unit for setting parameters defining conversion operations of each of the plurality of virtual mechanical parts, and a plurality of virtual mechanical parts displayed on the display unit A program that accepts input of a user program in a general-purpose language that defines a conversion operation to be executed by the mechanism component specified by the specification unit, and a specification unit that specifies a mechanism component that performs a conversion operation different from the conversion operation that is prepared in advance. It has a receiving part and a transferring part for transferring the user program to the expansion unit to cause the expansion unit to execute the user program.
  • the virtual mechanical parts are limited to differential gears, variable gears, clutches and cams that are connected in a predetermined order, and operate the actual mechanical device.
  • the program creation support device disclosed in Patent Literature 1 has a problem that the burden on the operator is heavy when creating a program for a mechanical device that requires complicated control.
  • the present disclosure has been made in view of the above, and an object thereof is to obtain a program creation support device that can reduce the burden on an operator when creating a program for a mechanical device that requires complicated control. do.
  • a program creation support device provides a virtual machine that has information on at least one axis and that is set with arithmetic processing that defines internal operations and executes motion control.
  • a display unit that displays a plurality of virtual machine parts that are different machine parts, and a virtual machine part different from the displayed plurality of virtual machine parts based on one or more machine parts specified from the displayed plurality It has a user-defined virtual machine component creation unit that creates a machine component as a user-defined virtual machine component, and a virtual machine component parameter setting unit that sets parameters that define the internal operations of each of the plurality of virtual machine components.
  • a program creation support apparatus includes a user-defined virtual machine part program editing unit that edits arithmetic processing of a user-defined virtual machine part by a user program, and a user-defined virtual machine part parameter that sets parameters of the user-defined virtual machine part.
  • a setting unit and a user program processing execution code generation unit that outputs a user program coded based on parameters set by the user-defined virtual machine part parameter setting unit to a programmable logic controller and executes motion control described in the user program.
  • the program creation support device has the effect of reducing the burden on the operator when creating a program for a mechanical device that requires complicated control.
  • FIG. 2 is a diagram showing functions of a program creation support device according to an embodiment
  • FIG. 4 shows an example of a user interface of the program creation support device software according to the embodiment
  • Diagram showing user-defined virtual machine part parameter setting area for horizontal pillow packaging machine Diagram showing user-defined virtual machine part parameter setting area for horizontal pillow packaging machine
  • CPU Central Processing Unit
  • FIG. 4 shows a processing circuit when fully implemented by the processing circuit
  • program creation support device program creation support method, program creation support program, and programmable logic controller according to the embodiment will be described in detail below with reference to the drawings.
  • FIG. 1 is a diagram showing the configuration of a PLC system 1000 according to an embodiment.
  • the PLC system 1000 has a program creation support device 1 for editing user programs, and a PLC 2 for comprehensively controlling various control devices installed in a factory, for example.
  • the PLC 2 has a CPU unit 3 that controls the overall operation of the PLC system 1000, a plurality of expansion units 4, and a bus unit 5 to which the CPU unit 3 and the plurality of expansion units 4 are connected.
  • the PLC 2 may have one expansion unit 4 instead of multiple expansion units 4 . If the PLC 2 has one expansion unit 4 , one expansion unit 4 is connected to the bus unit 5 .
  • the user program may be created using, for example, a ladder language or graphical programming language, or may be created using a high-level programming language.
  • An example of a graphical programming language is a programming language for implementing motionflow.
  • An example of a high level programming language is the C language.
  • the CPU unit 3 controls the entire PLC system 1000 including the expansion unit 4 by a user program.
  • the expansion unit 4 is a unit that expands the control functions of the CPU unit 3 by performing relatively simple calculations. Various types of units are used as the expansion unit 4 . Examples of expansion units 4 are analogue input units, positioning units, temperature input units or temperature control units. When the expansion unit 4 is a temperature control unit, when the CPU unit 3 requests that the temperature of the external device be set to a predetermined temperature, the temperature control unit adjusts the temperature of the external device to the predetermined temperature. Control the temperature of the device.
  • the program creation support device 1 is realized by, for example, a so-called notebook-type or tablet-type personal computer that is portable.
  • the programming assistance device 1 has an input unit 105 and a display unit 106 .
  • a user program for controlling the PLC 2 is created using the program creation support device 1 .
  • the created user program is converted into code inside the program creation support device 1 .
  • a program creation support device 1 is connected to the CPU unit 3 of the PLC 2 via a transmission line 9 , and a user program converted into code is sent from the program creation support device 1 to the CPU unit 3 .
  • a user program is stored in a memory included in the CPU unit 3 .
  • An example of the transmission path 9 is USB (Universal Serial Bus).
  • FIG. 2 is a diagram showing the hardware configuration of the program creation support device 1 according to the embodiment.
  • the program creation support device 1 is configured by installing program creation support device software in a personal computer.
  • the program creation support device 1 has a CPU 101 , a RAM (Random Access Memory) 102 , a ROM (Read Only Memory) 103 , a storage section 104 , an input section 105 , a display section 106 and a communication interface 107 .
  • the CPU 101 is an arithmetic device that executes program creation support device software.
  • a RAM 102 is a work area used when the CPU 101 executes a program.
  • the ROM 103 nonvolatilely stores a program to be executed by the CPU 101 when the program creation support apparatus 1 is activated.
  • An example of a program executed by the CPU 101 when the program creation support device 1 is activated is an initial program loader.
  • the storage unit 104 stores information in a non-volatile manner. Storage unit 104 is implemented by, for example, a hard disk drive or a solid state drive.
  • the input unit 105 is a user interface for the operator to input information to the program creation support apparatus 1, and is realized by one or both of a pointing device and a keyboard, for example. Examples of pointing devices are mice or touch panels.
  • the display unit 106 is a device that displays information, and is realized by, for example, a liquid crystal display device or an organic light-emitting display device.
  • the communication interface 107 is an interface for the program creation support device 1 to communicate with the PLC 2 through the transmission line 9 .
  • the program creation support device software installed in the program creation support device 1 is stored in the storage unit 104 .
  • the personal computer functions as the program creation support device 1 when the CPU 101 reads and executes the program creation support device software stored in the storage unit 104 .
  • the program creation support device 1 is configured by installing program creation device support software in a personal computer.
  • the programming support apparatus 1 may be configured in the form of a web application that requests processing from a web browser of a personal computer, which is a client, to an application running on a web server.
  • FIG. 3 is a diagram showing functions of the program creation support device 1 according to the embodiment.
  • the storage unit 104 stores program creation support device software 111 .
  • the CPU 101 configures a virtual machine component specification unit 112, a user-defined virtual machine component creation unit 113, a virtual machine component parameter setting unit 114, a user-defined virtual machine component Component parameter editor 115, user-defined virtual machine component parameter setting unit 116, user-defined virtual machine component program editor 117, drawing unit 118, user program processing execution code generator 119, user-defined virtual machine component name input unit 120, user It functions as a defined virtual machine part program name input unit 121 and a user-defined virtual machine part drawing input unit 122 .
  • the storage unit 104 stores the sequence program 123.
  • the drawing unit 118 causes the display unit 106 to display a sequence program editing area 132 which is a user interface for editing the sequence program 123 .
  • Sequence program edit area 132 is shown in FIG.
  • FIG. 4 is a diagram showing an example of the user interface of the program creation support device software 111 according to the embodiment.
  • the drawing unit 118 causes the display unit 106 to display a virtual machine part area 133, which is a user interface for displaying images and names of virtual machine parts.
  • the drawing unit 118 causes the display unit 106 to display a user-defined virtual machine part area 134, which is a user interface for displaying images and names of user-defined virtual machine parts.
  • the drawing unit 118 and the virtual machine component parameter setting unit 114 display a virtual machine component parameter setting area 135, which is a user interface for receiving settings of virtual machine component parameters 126 used in internal processing corresponding to each virtual machine component. display on the unit 106.
  • the storage unit 104 stores virtual machine component parameters 126 .
  • the virtual machine component parameter setting unit 114 functions as a virtual machine component parameter setting unit that sets parameters defining internal processing of a plurality of virtual machine components.
  • a drawing unit 118, a user-defined virtual machine part parameter editing unit 115, and a user-defined virtual machine part parameter setting unit 116 add and input user-defined virtual machine part parameters 127 used in internal processing corresponding to user-defined virtual machine parts.
  • the display unit 106 displays the user-defined virtual machine component parameter setting area 136, which is a user interface for receiving.
  • User-defined virtual machine part parameters 127 are stored in storage unit 104 .
  • a user-defined virtual machine component parameter editing unit 115 and a user-defined virtual machine component parameter setting unit 116 set the user-defined virtual machine component parameter editing unit for editing parameters defining internal processing of each user-defined virtual machine component and parameters. It functions as a user-defined virtual machine part parameter setting unit.
  • the drawing unit 118 and the user-defined virtual machine component creation unit 113 cause the display unit 106 to display a user-defined virtual machine component editing area 137, which is a user interface for creating user-defined virtual machine components.
  • FIG. 4 is a diagram showing an example of the user interface of the programming support device software 111 according to the embodiment.
  • the display unit 106 displays a list of virtual machine parts by combining the schematic diagrams representing the virtual machine parts and the names of the virtual machine parts.
  • the drawing unit 118 is in charge of drawing processing of the user interface.
  • the program creation support device software 111 includes a tree view 131, a sequence program editing area 132, a virtual machine part area 133, a user-defined virtual machine part area 134, a virtual machine part parameter setting area 135, and a user-defined virtual machine part. It has a parameter setting area 136 , a user-defined virtual machine part editing area 137 , and a user-defined virtual machine part program editing area 138 .
  • the tree view 131 includes a sequence program 123 created by the user using the program creation support device software 111, a user-defined virtual machine part, a user-defined virtual machine part parameter 127 possessed by the user-defined virtual machine part, and a user-defined virtual machine part.
  • a user-defined virtual machine part program 125 possessed by the machine part is hierarchically displayed.
  • a user-defined virtual machine part program 125 is stored in the storage unit 104 .
  • the tree view 131 is provided with a text input section 139 for inputting the name of the user-defined virtual machine part.
  • the user-defined virtual machine component name input unit 120 accepts the user-defined virtual machine component name input through the text input unit 139 as the name of the user-defined virtual machine component.
  • the tree view 131 is provided with a text input section 140 for inputting the name of the user-defined virtual machine part program 125 .
  • the user-defined virtual machine component program name input unit 121 accepts the program name input through the text input unit 140 as the name of the program that defines the operation of the user-defined virtual machine component.
  • a sequence program 123 is created in the sequence program editing area 132 .
  • Virtual machine parts prepared in advance are displayed in the virtual machine part area 133 .
  • User-defined virtual machine parts are displayed in the user-defined virtual machine part area 134 .
  • the virtual machine component is a user-defined virtual machine component.
  • user-defined virtual machine part editing area 137 user-defined virtual machine parts are edited.
  • the virtual machine part parameters 126 are set.
  • the user-defined virtual machine part parameter setting area 136 the user-defined virtual machine part parameters 127 are edited and set.
  • a virtual machine part has a virtual machine part name, a virtual machine part parameter, and a virtual machine part program.
  • a virtual machine component name is a name representing a virtual machine component.
  • a virtual machine part parameter is a specification value that defines the internal operation of a virtual machine part.
  • a virtual machine part program is a program that describes the internal operation of a virtual machine part based on virtual machine part parameters. If the virtual machine part name, the virtual machine part parameter, and the virtual machine part program are regarded as a mass of information, then the virtual machine part name, the virtual machine part parameter, and the virtual machine part program can be arranged for each type of object in the object-oriented concept. It can be defined as a defined template, i.e. a class.
  • a virtual machine component program 124 is stored in the storage unit 104 .
  • the multiple virtual machine parts include cams, unwinders, belt conveyors and box motion modules.
  • a cam is a mechanical part that generally has an input shaft and an output shaft and converts the phase of the input shaft into the relative coordinates of the output shaft.
  • the unwinder is a mechanical part that has an input shaft and an output shaft, and that converts the phase of the input shaft into the relative coordinates of the output shaft to send out the sheet and film wound around the roll through the output shaft.
  • the output shaft of the unwinder is the unwind shaft.
  • the unwinder is a mechanical part capable of correcting the feeding position of the film by inputting a correction amount.
  • the function of converting the phase of the input shaft into the relative coordinates of the unwinding shaft, which is the output shaft uses an unwinder and a cam, and the input shaft of the unwinder and the unwinding shaft, which is the output shaft, are used as the input shaft of the cam. It may be realized by connecting to the output shaft. In object orientation, this is equivalent to adding a cam class to a member variable of the unwinder class.
  • the belt conveyor has an input shaft and an output shaft, and by converting the phase of the input shaft into the relative coordinates of the output shaft, the belt conveyer that operates on the output shaft conveys and seals the workpiece, and conveys the film. It is a mechanical device that performs The output shaft of the belt conveyor is the belt conveyor shaft.
  • a belt conveyor is a machine component that can correct the feed position of the belt conveyor by inputting a correction amount.
  • the function to convert the phase of the input axis into the relative coordinates of the belt conveyor axis, which is the output axis, uses the belt conveyor and the cam, and the input axis of the belt conveyor and the belt conveyor axis, which is the output axis, are the input axis and the output axis of the cam. It may be realized by connecting to In object orientation, this is equivalent to adding a cam class to a member variable of the belt conveyor class.
  • the box motion has an input axis, a first output axis and a second output axis, and transforming the phase of the input axis into relative coordinates of the first output axis and relative coordinates of the second output axis, respectively.
  • a mechanical device that performs a box motion operation in which the cutter advances while descending the sheet or film sent by the belt conveyor to the set size and cuts the seal or film at a speed synchronized with the sheet or film. is.
  • the first output shaft is the travel shaft and the second output shaft is the seal shaft.
  • a box motion is a mechanical device that can adjust the speed of movement to increase or decrease.
  • the function of converting the phase of the input shaft to the relative coordinates of each of the travel axis and the seal axis uses the box motion, the first cam and the second cam, and converts the input axis of the box motion and the travel axis to the first cam. by connecting the input shaft and the output shaft of the second cam, and connecting the input shaft and the seal shaft of the box motion to the input shaft and the output shaft of the second cam. In object orientation, this is equivalent to adding two cam classes to the member variables of the box motion class.
  • FIG. 5 is a diagram showing a schematic diagram 141 representing the unwinding device, a virtual machine component name 142 representing the unwinding device, and a virtual machine component parameter setting area 143 for the unwinding device.
  • the display unit 106 displays FIG. Since the display unit 106 displays FIG. 5, the operator can visually recognize the type of the virtual machine part.
  • An unwinder is an example of a virtual machine part.
  • the virtual machine part parameters of the unwinder include an input shaft, an unwinding shaft that is an output shaft, and a cam that is a conversion pattern for converting the phase of the input shaft into relative coordinates of the unwinding shaft. Includes pattern and film diameter.
  • inputAxis is defined as a parameter indicating the input axis
  • unwindAxis is defined as a parameter indicating the unwinding axis
  • camPattern is defined as a parameter indicating the cam pattern
  • filmDiameter is defined as a parameter.
  • FIG. 6 is a diagram showing a schematic diagram 144 representing a belt conveyor, a virtual machine component name 145 representing the belt conveyor, and a virtual machine component parameter setting area 146 for the belt conveyor.
  • the display unit 106 displays FIG. Since the display unit 106 displays FIG. 6, the operator can visually recognize the type of the virtual machine part.
  • a belt conveyor is an example of a virtual machine part.
  • the virtual machine part parameters of the belt conveyor include the input axis, the belt conveyor axis that is the output axis, and the cam pattern that is the conversion pattern for converting the phase of the input axis into the relative coordinates of the belt conveyor axis. , and belt conveyor speed.
  • inputAxis is defined as a parameter indicating an input axis
  • conveyorAxis is defined as a parameter indicating a belt conveyor axis that is an output axis
  • camPattern is defined as a parameter indicating a cam pattern
  • ConveyorVelocity is defined as a parameter that indicates the belt conveyor speed.
  • FIG. 7 is a diagram showing a schematic diagram 147 representing a box motion, a virtual machine part name 148 representing the box motion, and a virtual machine part parameter setting area 149 for the box motion.
  • the display unit 106 displays FIG. Since the display unit 106 displays FIG. 7, the operator can visually recognize the type of the virtual machine part.
  • Box motion is an example of a virtual machine part.
  • the parameters of the box motion are the input axis, the first output axis, the second output axis, and the conversion pattern for converting the phase of the input axis to the relative coordinates of the first output axis.
  • a travel cam pattern, a seal cam pattern which is a conversion pattern for converting the phase of the input shaft to the relative coordinates of the second output shaft, and box motion composite velocity are included.
  • the first output shaft is the travel shaft and the second output shaft is the seal shaft.
  • inputAxis is defined as a parameter indicating an input axis
  • travelAxis is defined as a parameter indicating a travel axis
  • seeAxis is defined as a parameter indicating a seal axis, indicating a travel cam pattern
  • TravelCamPattern is defined as a parameter
  • seeCamPattern is defined as a parameter indicating a seal cam pattern
  • boxMotionVelocity is defined as a parameter indicating a box motion velocity.
  • a program for calculating the relative coordinates of the travel axis and the seal axis by converting the phase of the input axis of the box motion by the cam pattern, and for increasing or decreasing the synthetic speed of the box motion program is included.
  • a schematic diagram 141 representing an unwinder, a schematic diagram 144 representing a belt conveyor, and a schematic diagram 147 representing a box motion are icons displayed in the virtual machine part area 133 .
  • the virtual machine part name 142 representing the unwinder, the virtual machine part name 145 representing the belt conveyor, and the virtual machine part name 148 representing the box motion are the names of the parts displayed in the virtual machine part area 133.
  • the unwinder virtual machine part parameter setting area 143, the belt conveyor virtual machine part parameter setting area 146, and the box motion virtual machine part parameter setting area 149 are part of the virtual machine part parameter setting area 135. .
  • a user-defined virtual machine part like a virtual machine part, has a user-defined virtual machine part name, user-defined virtual machine part parameters, and a user-defined virtual machine part program.
  • An example of a user-defined virtual machine part is a horizontal pillow wrapper created by combining unwinders, belt conveyors, and box motions.
  • the horizontal pillow packaging machine has an input shaft, an unwinding shaft, a belt conveyor shaft, a travel shaft and a sealing shaft, and the phase of the input shaft is set to the relative coordinates of each of the unwinding shaft, the belt conveyor shaft, the travel shaft and the sealing shaft. It is a machine part that has the function of packing the product by combining the film sent out by the unwinder and the work conveyed by the belt conveyor by converting, and sealing and cutting by box motion.
  • the function of the horizontal pillow packaging machine is to use the horizontal pillow packaging machine, unwinder, belt conveyor and box motion to wind the input shaft of the horizontal pillow packaging machine and the output shaft of the horizontal pillow packaging machine corresponding to the unwinding shaft.
  • the input shaft of the horizontal pillow packaging machine, the output shaft of the horizontal pillow packaging machine corresponding to the travel shaft, and the output shaft of the horizontal pillow packaging machine corresponding to the seal shaft are connected to the input shaft of the box motion, the travel shaft and the seal shaft.
  • This is equivalent to adding the unwinder class, conveyor class and box motion class to the member variables of the horizontal pillow packaging machine class.
  • FIG. 8 is a diagram showing a schematic diagram 150 representing a horizontal pillow packaging machine, a user-defined virtual machine part name 151 representing the horizontal pillow packaging machine, and a user-defined virtual machine part parameter setting area 152 for the horizontal pillow packaging machine.
  • schematic diagrams representing unwinders, belt conveyors and box motions are arranged in the user-defined virtual machine component creation area of the horizontal pillow packaging machine.
  • the parameters of the horizontal pillow packaging machine include the input shaft, the output shaft corresponding to the unwinding shaft, the output shaft corresponding to the belt conveyor shaft, the output shaft corresponding to the travel shaft, the output shaft corresponding to the sealing shaft, the unwinder, Includes belt conveyor and box motion.
  • unwinder1 of the Unwinder class is defined as a parameter representing the unwinder
  • conveyor1 of the Conveyor class is defined as the parameter representing the belt conveyor
  • boxMotion1 of the BoxMotion class is defined as the parameter representing the box motion.
  • inputAxis is defined as a parameter that indicates the input axis
  • unwindAxis is defined as a parameter that indicates the unwinding axis
  • conveyorAxis is defined as a parameter that indicates the belt conveyor axis, indicating the travel axis.
  • TravelAxis is defined as a parameter
  • seeAxis is defined as a parameter indicating the seal axis.
  • the phase of the input shaft of the horizontal pillow packaging machine is converted by the unwinder, belt conveyor and box motion, and the unwinding axis, belt conveyor axis, travel axis and seal A program is included to calculate the relative coordinates of each of the axes.
  • a schematic diagram 150 representing a horizontal pillow packaging machine is an icon displayed in the user-defined virtual machine part area 134, and is a background image of the user-defined virtual machine part creation area.
  • the user-defined virtual machine part name 151 representing the horizontal pillow packaging machine is the name of the part displayed in the user-defined virtual machine part area 134 .
  • the user-defined virtual machine part parameter setting area 152 for the horizontal pillow wrapper is part of the user-defined virtual machine part parameter setting area 136 .
  • FIG. 9 is a diagram showing the user-defined virtual machine part parameter setting area 153 of the horizontal pillow packaging machine.
  • a parameter for inputting a reference to a schematic diagram of the horizontal pillow packaging machine is provided as a parameter of the horizontal pillow packaging machine.
  • the user-defined virtual machine part diagram input unit 122 receives an image that is a schematic diagram of the horizontal pillow packaging machine based on the path input through the parameters.
  • FIG. 10 is a diagram showing the user-defined virtual machine part parameter setting area 152 of the horizontal pillow packaging machine.
  • the user-defined virtual machine part program 125 is written in structured text language, but the user-defined virtual machine part program 125 may be written in another high-level language. Another high-level language example is the C language.
  • a program MC_CamIn that converts the input shafts of each of the unwinder, the belt conveyor, and the box motion to the output shafts, and a program MC_PowerOn that makes each output shaft operable are defined.
  • the control to execute all MC_CamIn is freely defined.
  • FIG. 11 is a diagram for explaining the functions of the CPU unit 3 of the PLC 2 according to the embodiment.
  • the CPU unit 3 has a CPU 301 and a storage section 302 .
  • the CPU 301 has an execution unit 303 .
  • the storage unit 302 stores the sequence program 123, the virtual machine part program 124, the user-defined virtual machine part program 125, the virtual machine part parameters 126, and the user-defined The virtual machine part parameters 127 are stored. Furthermore, the storage unit 302 holds the user program and parameters output from the program creation support device 1 .
  • the storage unit 302 is implemented by, for example, a semiconductor memory.
  • the execution unit 303 executes motion control according to the user program and parameters corresponding to the user-defined virtual machine part. More specifically, the execution unit 303 executes the sequence program 123 described using the user-defined virtual machine part program 125 according to the virtual machine part parameters 126 and the user-defined virtual machine part parameters 127 to perform sequence control.
  • FIG. 12 is a flow chart showing the procedure of the program creation support method executed by the CPU 101 of the program creation support device 1 according to the embodiment according to the program creation support device software 111.
  • FIG. 12 is a flow chart showing the procedure of the program creation support method executed by the CPU 101 of the program creation support device 1 according to the embodiment according to the program creation support device software 111.
  • step S1 the CPU 101, specifically the drawing unit 118, performs the tree view 131, the sequence program editing area 132, the virtual machine parts area 133, the user-defined virtual machine parts area 134, the virtual machine parts parameter setting area 135, the user-defined The virtual machine part parameter setting area 136 and the user-defined virtual machine part editing area 137 are displayed on the display unit 106 .
  • the operation of step S1 is indicated by the phrase "display user interface”.
  • step S2 the CPU 101, more specifically, the user-defined virtual machine part name input unit 120 inputs the name of the user-defined virtual machine part based on the instruction input through the input unit 105 to the text input unit 139 of the tree view 131. accepts the input of If the CPU 101 automatically assigns the name of the user-defined virtual machine component, the operation of step S2 may be omitted.
  • step S3 the CPU 101, more specifically, the user-defined virtual machine part program name input unit 121 inputs the user-defined virtual machine part program name based on the instruction input through the input unit 105 to the text input unit 140 of the tree view 131. accepts input of the name of If the CPU 101 automatically assigns the name of the user-defined virtual machine part program, the operation of step S3 may be omitted.
  • step S ⁇ b>4 the CPU 101 , specifically the user-defined virtual machine component creation unit 113 , edits the user-defined virtual machine component based on the instruction input through the input unit 105 .
  • the operator selects a desired virtual machine part from among a plurality of virtual machine parts prepared in advance in the virtual machine part area 133 with the mouse, and displays the selected virtual machine part in the user-defined virtual machine part editing area. It may be realized by moving the mouse to 137. Moving a virtual machine part with a mouse is performed by drag and drop.
  • the virtual machine part added to the user-defined virtual machine part is added to the parameters of the user-defined virtual machine part, as shown in FIG. Display of the user-defined virtual machine part editing area 137 may be realized by the operator clicking a user-defined virtual machine part in the tree view 131 .
  • step S5 the CPU 101, specifically the virtual machine component parameter setting unit 114, based on the instruction input through the input unit 105 to the virtual machine component parameter setting area 135, sets the plurality of virtual machine components of the user-defined virtual machine component. Set parameters for each of the virtual machine parts.
  • the virtual machine part parameter setting area 135 may be displayed by the operator clicking a virtual machine part icon in the user-defined virtual machine part editing area 137 , or by the operator clicking on the user-defined virtual machine part parameter setting area 136 . may be realized by clicking the virtual machine part of
  • step S6 the CPU 101, more specifically, the user-defined virtual machine part parameter editing unit 115, based on the instruction input to the user-defined virtual machine part parameter setting unit 116 through the input unit 105, sets the user-defined virtual machine part. Edit the parameters of
  • step S7 the CPU 101, more specifically, the user-defined virtual machine part parameter setting unit 116, based on the instruction input through the input unit 105 to the user-defined virtual machine part parameter setting area 136, sets the user-defined virtual machine part.
  • set the parameters of The display of the user-defined virtual machine part parameter setting area 136 may be realized by the operator clicking the parameter of the user-defined virtual machine part in the tree view 131 .
  • step S8 the CPU 101, more specifically, the user-defined virtual machine part program editing unit 117 edits the user-defined virtual machine part based on the instruction input to the user-defined virtual machine part program editing area 138 through the input unit 105. program editing instructions.
  • the user-defined virtual machine part program editing area 138 may be displayed by the operator clicking a user-defined virtual machine part program in the tree view 131 .
  • the operator wants to add a new user-defined virtual machine part, the operator right-clicks on the user-defined virtual machine part in the tree view 131 and selects Add new user-defined virtual machine part from the pop-up menu. instructions are given.
  • the created user-defined virtual machine parts are hierarchically displayed in the tree view 131 and also displayed in the user-defined virtual machine part area 134 .
  • the operator When the operator adds a new user-defined virtual machine part program, the operator right-clicks on the user-defined virtual machine part program in the tree view 131 and selects a new user-defined virtual machine part from the pop-up menu. Additional instructions for the program are provided.
  • the created user-defined virtual machine part program is hierarchically displayed in the tree view 131 .
  • step S9 the CPU 101 accepts an instruction to edit the sequence program based on the instruction input to the sequence program editing area 132 through the input unit 105.
  • the operator selects a desired virtual machine part from among a plurality of virtual machine parts prepared in advance in the virtual machine part area 133 with the mouse and inserts the selected virtual machine part into the sequence program editing area 132 . It may be realized by moving with a mouse, and the classes possessed by the virtual machine parts moved to the sequence program editing area 132 may be instantiated at the same time.
  • An operator can write a sequence program with the virtual machine part program 124 using instances of virtual machine parts added to the sequence program.
  • the operation for the above instructions is performed by the operator selecting a desired user-defined virtual machine part in the user-defined virtual machine part area 134 with the mouse and moving the selected user-defined virtual machine part to the sequence program editing area 132 with the mouse.
  • the classes of the user-defined virtual machine part moved to the sequence program editing area 132 may be instantiated at the same time.
  • An operator can write a sequence program with the user-defined virtual machine part program 125 using instances of the user-defined virtual machine part added to the sequence program.
  • the operation of step S9 is indicated by the phrase "place the user-defined virtual machine part in the sequence program".
  • step S10 the CPU 101, specifically the user program processing execution code generation unit 119, based on an instruction through the input unit 105, creates a virtual machine part program 124, a user-defined virtual machine part program 125, and a virtual machine part program. 124 and the sequence program 123 written using the user-defined virtual machine part program 125 are coded for execution by the PLC 2 .
  • step S11 the CPU 101, more specifically, the user program processing execution code generator 119 generates the coded sequence program 123, the coded virtual machine component program 124, and the coded user-defined virtual machine component.
  • Program 125 , virtual machine part parameters 126 and user-defined virtual machine part parameters 127 are transferred to PLC 2 via communication interface 107 .
  • step S12 the CPU unit 3 holds the sequence program 123, the virtual machine part program 124, the user-defined virtual machine part program 125, the virtual machine part parameters 126, and the user-defined virtual machine part parameters 127 in the storage unit 302.
  • step S ⁇ b>13 the execution unit 303 of the CPU 301 executes the sequence program 123 .
  • the display unit 106 has information on at least one or more axes and is set with arithmetic processing that defines internal operations to execute motion control.
  • a plurality of virtual machine parts which are mechanical parts, are displayed.
  • the virtual machine component designation unit 112 designates a virtual machine component that constitutes a user-defined virtual machine component from a plurality of virtual machine components displayed by the display unit 106 .
  • a user-defined virtual machine part creating unit 113 creates a user-defined virtual machine part different from the displayed plurality of virtual machine parts based on one or more machine parts specified from the displayed plurality of virtual machine parts. Create as a machine part.
  • the user-defined virtual machine component creation unit 113 modifies or combines previously defined virtual machine components to define new user-defined virtual machine components.
  • the user-defined virtual machine part parameter editing section 115 edits the user-defined virtual machine part parameters 127 of the user-defined virtual machine part defined by the user-defined virtual machine part creating section 113 .
  • the user-defined virtual machine part parameter setting unit 116 sets user-defined virtual machine part parameters 127 .
  • the virtual machine component parameter setting unit 114 sets parameters that define the internal operations of each of the plurality of virtual machine components. Furthermore, the virtual machine part parameter setting unit 114 sets the virtual machine part parameters 126 of the virtual machine parts of the user-defined virtual machine part.
  • the user-defined virtual machine component program editing unit 117 edits the arithmetic processing of the user-defined virtual machine component using a user program. Furthermore, the user-defined virtual machine part program editor 117 edits the user-defined virtual machine part program 125 by freely using the virtual machine part program 124 of the virtual machine part of the user-defined virtual machine part.
  • the user program processing execution code generator 119 encodes the sequence program including the user-defined virtual machine part program and transfers it to the PLC 2 . Furthermore, the user program processing execution code generator 119 encodes the user program based on the parameters set by the user-defined virtual machine component parameter setting unit 116, outputs the encoded user program to the PLC 2, and outputs the user program causes the PLC 2 to execute the motion control described in .
  • the virtual machine part program 124 is included in a prepared virtual machine part and provided. Therefore, the operator can realize control simply by specifying the parameters of each virtual machine component.
  • the operator uses the virtual machine part program 124 of the user-defined virtual machine part to create the user-defined virtual machine part program 125. can be defined. Therefore, the program creation support device 1 according to the embodiment can reduce the burden on the operator when creating a program for a mechanical device that requires complicated control.
  • a user-defined virtual machine component name input section 120 may be provided for inputting the name of the user-defined virtual machine component. This allows the operator to freely determine the name of the user-defined virtual machine part as well. Furthermore, the operator can use the determined name for the program.
  • a user-defined virtual machine part program name input section 121 for inputting the name of the user-defined virtual machine part program 125 may be provided. This allows the operator to freely determine the name of the user-defined virtual machine part program 125 as well. Furthermore, the operator can use the determined name for the program.
  • a user-defined virtual machine part diagram input unit 122 for inputting schematic diagrams of user-defined virtual machine parts may be provided.
  • the operator can freely determine the schematic diagram of the user-defined virtual machine part, and while viewing the schematic diagram displayed in the user-defined virtual machine part creation area, the operator can Since it is arranged in the creation area, it is possible to create an intuitive user-defined virtual machine part while being conscious of the relationship between the user-defined virtual machine parts.
  • Editing of the user-defined virtual machine part in step S4 of FIG. 12 is performed by selecting a desired virtual machine part from a plurality of virtual machine parts prepared in advance in the virtual machine part area 133 with the mouse, and selecting the selected virtual machine part. This is realized by moving the mouse to the user-defined virtual machine part editing area 137 .
  • to edit a user-defined virtual machine part select a desired user-defined virtual machine part from the user-defined virtual machine parts in the user-defined virtual machine part area 134 with the mouse, and convert the selected user-defined virtual machine part into a user-defined virtual machine part. It may be realized by moving the mouse to the mechanical part editing area 137 .
  • the operator can create a different user-defined virtual machine part using the user-defined virtual machine part program 125 of the user-defined virtual machine part.
  • a virtual machine part program 125 can be defined. Therefore, the program creation support device 1 can reduce the operator's burden when creating a program even for different user-defined virtual machine parts having a plurality of the same user-defined virtual machine parts.
  • the display unit 106 may display a plurality of user-defined virtual machine components created by the user-defined virtual machine component creation unit 113.
  • a user-defined virtual machine component creating unit 113 creates a plurality of displayed virtual machine components and a user-defined virtual A virtual machine part different from the machine part may be created as a user-defined virtual machine part.
  • the program creation support device 1 can increase the reusability of the user-defined virtual machine component and reduce the burden on the operator when creating a program for a mechanical device that requires more complicated control.
  • the plurality of virtual machine parts are cams, unwinders, belt conveyors and box motions.
  • a machine model module may be included in a plurality of virtual machine parts as virtual machine parts with a higher level of abstraction.
  • the machine model module has at least one input shaft, at least one output shaft, and a machine model, simulates the operation of the machine driven by each input shaft using the machine model, and outputs simulation results to each output shaft.
  • It is a mechanical part that has the function of FIG. 13 is a diagram showing an example of a mechanical system 401 simulated by a mechanical model.
  • the mechanical system 401 has three-axis motors of an X-axis 401a, a Y-axis 401b, and a Z-axis 401c, and controls the position of a stage that moves on the XY plane with the X-axis 401a and the Y-axis 401b.
  • the head 401d attached to the tip of the Z-axis 401c processes the workpiece placed on the stage 401e.
  • the mechanical model has, for example, the axial positions of the X-axis 401a, the Y-axis 401b, and the Z-axis 401c as inputs, the positions of the stage 401e and the head 401d as outputs, and the inputs as motors.
  • a machine model that translates to stage and head positions with position-based kinematics.
  • the machine model is a model that considers the dynamics of the machine, and may be able to simulate vibration characteristics.
  • the machine model may be prepared in advance, or a machine model generation program that generates the machine model may be prepared.
  • the virtual machine part may have a model generation program for generating a machine model simulating the operation of a motor-driven machine based on data of the real machine. If the virtual machine part has a model generation program, it can be controlled by a machine model module having a machine model even if the machine model is not prepared in advance.
  • the machine model generation program generates a model based on the input actual machine information.
  • Actual machine information is a signal obtained by actually operating a mechanical system.
  • the real machine information includes time-series data of the motor positions of the X-axis, Y-axis, and Z-axis, and time-series data of the stage position and the head position.
  • the machine model generation program generates a machine model that takes as input time-series data of the motor positions of the X-, Y-, and Z-axes and outputs time-series data of the stage position and head position.
  • machine learning techniques such as neural networks or support vector regression, or system identification techniques such as prediction error methods or subspace methods.
  • system identification techniques such as prediction error methods or subspace methods.
  • the model generation program performs a learning operation using a neural network using the time-series data of the X-, Y-, and Z-axis motor positions and the time-series data of the stage position and head position as learning data.
  • FIG. 14 is a diagram showing a neural network according to an embodiment;
  • a neural network has an input layer, an intermediate layer and an output layer.
  • Output data o1, o2, . . . , oN are output. Both M and N are natural numbers of 2 or more.
  • each of the plurality of weighting factors for each node of the input layer to each node of the intermediate layer can be set independently, in FIG. 14, all of the plurality of weighting factors are represented as the same weighting factor W1. Similarly, in FIG. 14, a plurality of weighting factors from each node in the intermediate layer to each node in the output layer are all represented as the same weighting factor W2.
  • the output value of each node in the input layer is multiplied by the weighting factor W1, and the linear combination of the multiplication results is input to each node in the intermediate layer.
  • the output value of each node in the intermediate layer is multiplied by a weighting factor W2, and a linear combination of the multiplication results is input to the nodes in the output layer.
  • an output value may be calculated from an input value by a non-linear function, eg a sigmoid function.
  • the output values may be linear combinations of the input values.
  • the model generation program uses the time-series data of the motor positions of the X-axis, the Y-axis and the Z-axis and the time-series data of the stage position and the head position to calculate the weighting factor W1 and the weighting factor W2 of the neural network.
  • the weighting factor W1 and the weighting factor W2 of the neural network can be calculated using backpropagation or gradient descent.
  • the calculation method of the weighting factor W1 and the weighting factor W2 is not limited to the above-described method as long as the calculation method can obtain the weighting factor of the neural network.
  • the relational expressions between the time-series data of the motor positions of the X, Y, and Z axes and the time-series data of the stage position and head position are obtained. So far, learning using a three-layer neural network has been shown. Learning using a neural network is not limited to the above examples.
  • the model generation program obtains a machine model whose inputs are the motor positions of the X-, Y-, and Z-axes and whose outputs are the stage position and head position.
  • the accuracy of simulation by a neural network can be arbitrarily set by changing one or both of the number of layers and the number of nodes of the neural network. That is, it is possible to easily generate a plurality of machine models with different accuracies.
  • control can be performed by a machine model module having the machine model even if the user does not prepare the machine model in advance.
  • program creation support method shown in FIG. 12 is implemented by the CPU 101 executing the program creation support device software 111 .
  • a program creation support method and a program creation support program are also provided according to the embodiment.
  • FIG. 15 shows a virtual machine component specifying unit 112, a user-defined virtual machine component creating unit 113, a virtual machine component parameter setting unit 114, a user-defined virtual machine component parameter editing unit 115, and a user Definition virtual machine part parameter setting section 116, user-defined virtual machine part program editing section 117, drawing section 118, user program processing execution code generation section 119, user-defined virtual machine part name input section 120, user-defined virtual machine part program name input FIG.
  • FIG. 10 is a diagram showing a processing circuit 91 in which part or all of a part 121 and a user-defined virtual machine parts diagram inputting part 122 are realized by the processing circuit 91;
  • a virtual machine component specifying unit 112 a user-defined virtual machine component creating unit 113, a virtual machine component parameter setting unit 114, a user-defined virtual machine component parameter editing unit 115, a user-defined virtual machine component parameter setting unit 116, a user-defined virtual machine A part program editing unit 117, a drawing unit 118, a user program processing execution code generating unit 119, a user-defined virtual machine part name input unit 120, a user-defined virtual machine part program name input unit 121, and a user-defined virtual machine part drawing input unit 122. Part or all may be implemented by processing circuitry 91 .
  • the processing circuit 91 is dedicated hardware.
  • the processing circuit 91 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field-Programmable Gate Array), or a combination thereof. is.
  • Virtual machine part designating unit 112 user-defined virtual machine component creating unit 113, virtual machine component parameter setting unit 114, user-defined virtual machine component parameter editing unit 115, user-defined virtual machine component parameter setting unit 116, user-defined virtual machine component program A part of the editing unit 117, the drawing unit 118, the user program processing execution code generation unit 119, the user-defined virtual machine part name input unit 120, the user-defined virtual machine part program name input unit 121, and the user-defined virtual machine part drawing input unit 122 may be implemented by dedicated hardware separate from the rest.
  • Virtual machine part designating unit 112 user-defined virtual machine component creating unit 113, virtual machine component parameter setting unit 114, user-defined virtual machine component parameter editing unit 115, user-defined virtual machine component parameter setting unit 116, user-defined virtual machine component program Editing unit 117, drawing unit 118, user program processing execution code generating unit 119, user-defined virtual machine part name input unit 120, user-defined virtual machine part program name input unit 121, and user-defined virtual machine part drawing input unit 122
  • functions some of the functions may be implemented in software or firmware, and the rest of the functions may be implemented in dedicated hardware. As such, the multiple functions may be implemented in hardware, software, firmware, or a combination thereof.
  • the execution unit 304 of the PLC 2 may be realized by a processing circuit similar to the processing circuit 91.
  • 1 program creation support device 2 PLC, 3 CPU unit, 4 expansion unit, 5 bus unit, 9 transmission line, 91 processing circuit, 101, 301 CPU, 102 RAM, 103 ROM, 104, 302 storage unit, 105 input unit, 106 Display unit 107 Communication interface 111 Program creation support device software 112 Virtual machine part specifying unit 113 User-defined virtual machine component creation unit 114 Virtual machine component parameter setting unit 115 User-defined virtual machine component parameter editing unit 116 User-defined virtual machine part parameter setting unit 117 User-defined virtual machine part program editor 118 Drawing unit 119 User program processing execution code generation unit 120 User-defined virtual machine part name input unit 121 User-defined virtual machine part program name Input section 122 User-defined virtual machine part diagram input section 123 Sequence program 124 Virtual machine part program 125 User-defined virtual machine part program 126 Virtual machine part parameter 127 User-defined virtual machine part parameter 131 Tree view 132 Sequence program editing area 133 Virtual machine parts area 134 User-defined virtual machine parts area 135 Virtual machine parts parameter setting area 136 User-defined virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

プログラム作成支援装置(1)は、モーション制御を実行する仮想的な機械部品である仮想機械部品を複数表示する表示部(106)と、表示された複数の仮想機械部品とは異なる仮想機械部品をユーザ定義仮想機械部品として作成するユーザ定義仮想機械部品作成部(113)と、仮想機械部品の内部動作を定義するパラメータを設定する仮想機械部品パラメータ設定部(114)と、ユーザ定義仮想機械部品の演算処理をユーザプログラムにより編集するユーザ定義仮想機械部品プログラム編集部(117)と、ユーザ定義仮想機械部品のパラメータを設定するユーザ定義仮想機械部品パラメータ設定部(116)と、ユーザ定義仮想機械部品パラメータ設定部(116)によって設定されたパラメータに基づいてコード化したユーザプログラムをプログラマブルロジックコントローラ(2)に出力するユーザプログラム処理実行コード生成部(119)とを有する。

Description

プログラム作成支援装置、プログラム作成支援方法、プログラム作成支援プログラム及びプログラマブルロジックコントローラ
 本開示は、プログラム作成支援装置、プログラム作成支援方法、プログラム作成支援プログラム及びプログラマブルロジックコントローラに関する。
 FA(Factory Automation)制御システムは、シーケンス制御装置であるプログラマブルロジックコントローラにより構成される。以下では、プログラマブルロジックコントローラは、「PLC」と記載される。PLCは、「Programmable Logic Controller」の略語である。PLCは、シーケンスプログラムによって制御される。シーケンスプログラムは、例えばラダープログラム、ファンクションブロックダイアグラム又はストラクチャードテキストといったプログラミング言語により記述されるプログラムである。一般的に、国際電気標準会議によって発行された「IEC61131-3規格」により規定されたシーケンスプログラムが広く用いられている。
 シーケンスプログラムは、パーソナルコンピュータ上に構成されたプログラム作成支援装置であるエンジニアリングツールによって作成される。パーソナルコンピュータとPLCとが接続され、シーケンスプログラムはPLCの記憶部に記憶される。
 従来、製品を製造する工場における機械装置は、ある動きに連動して別の動きを制御する場合、カム機構、リンク機構及びギア機構のような複数の機構を機械的に連動させて制御を行ってきた。
 例えば、オペレータは、ベルトコンベアの速度に回転カッターの動作を同期させる場合、当該速度の比率を変更するために機械部品を交換することによりベルトコンベアの速度を回転カッターの動作に同期させることを実現していた。機械部品の例は、ギアである。機械部品の交換作業は、大変面倒である。そこで、PLCを用いて減速ギアを電気的に実現する手法が考え出された。例えば、PLCは、モータの回転数を可変にすることで、減速ギアのギア比を変更したことと同様の効果を発揮することができる。このように、PLCは、機械部品の動作を演算するための各種パラメータを用いて機械部品の動作を定義するユーザプログラムを有する仮想的な機械部品を設けることにより機械部品を模擬する。例えば、PLCは、基本ユニットと拡張ユニットとにより構成される。
 特許文献1が開示しているプログラム作成支援装置は、同期制御の同期主軸から同期制御の同期従軸までの各々に順番に接続され、各々の入力軸の位置を出力軸の位置へ変換する複数の仮想的な機構部品を表示する表示部と、複数の仮想的な機構部品の各々の変換動作を定義するパラメータを設定する設定部と、表示部に表示された複数の仮想的な機構部品のうちの予め用意された変換動作とは異なる変換動作を行う機構部品を指定する指定部と、指定部により指定された機構部品が実行する変換動作を規定する汎用言語のユーザプログラムの入力を受け付けるプログラム受付部と、ユーザプログラムを拡張ユニットに実行させるためにユーザプログラムを拡張ユニットへ転送する転送部とを有する。
特開2017-79007号公報
 特許文献1が開示しているプログラム作成支援装置では、仮想的な機構部品は予め定められた順番で接続される差動ギア、可変ギア、クラッチ及びカムに限定され、実際の機械装置を動作させるプログラムを作成する際には、機械装置に対応するパラメータの追加、及びプログラミングが必要である。特許文献1が開示しているプログラム作成支援装置では、複雑な制御を必要とする機械装置のプログラムを作成する際のオペレータの負担が大きいという課題がある。
 本開示は、上記に鑑みてなされたものであって、複雑な制御を必要とする機械装置のプログラムを作成する際のオペレータの負担を小さくすることができるプログラム作成支援装置を得ることを目的とする。
 上述した課題を解決し、目的を達成するために、本開示に係るプログラム作成支援装置は、少なくとも一つの軸の情報を有し内部動作を規定する演算処理が設定されモーション制御を実行する仮想的な機械部品である仮想機械部品を複数表示する表示部と、表示された複数の仮想機械部品から指定された一つ又は複数の機械部品に基づき、表示された複数の仮想機械部品とは異なる仮想機械部品をユーザ定義仮想機械部品として作成するユーザ定義仮想機械部品作成部と、複数の仮想機械部品の各々の内部動作を定義するパラメータを設定する仮想機械部品パラメータ設定部とを有する。本開示に係るプログラム作成支援装置は、ユーザ定義仮想機械部品の演算処理をユーザプログラムにより編集するユーザ定義仮想機械部品プログラム編集部と、ユーザ定義仮想機械部品のパラメータを設定するユーザ定義仮想機械部品パラメータ設定部と、ユーザ定義仮想機械部品パラメータ設定部によって設定されたパラメータに基づいてコード化したユーザプログラムをプログラマブルロジックコントローラに出力しユーザプログラムに記述されたモーション制御を実行させるユーザプログラム処理実行コード生成部とを更に有する。
 本開示に係るプログラム作成支援装置は、複雑な制御を必要とする機械装置のプログラムを作成する際のオペレータの負担を小さくすることができるという効果を奏する。
実施の形態に係るPLCシステムの構成を示す図 実施の形態に係るプログラム作成支援装置のハードウェア構成を示す図 実施の形態に係るプログラム作成支援装置の機能を示す図 実施の形態に係るプログラム作成支援装置ソフトウェアのユーザインタフェースの例を示す図 巻出し器を表現する模式図と、巻出し器を表現する仮想機械部品名称と、巻出し器の仮想機械部品パラメータ設定領域とを示す図 ベルトコンベアを表現する模式図と、ベルトコンベアを表現する仮想機械部品名称と、ベルトコンベアの仮想機械部品パラメータ設定領域とを示す図 ボックスモーションを表現する模式図と、ボックスモーションを表現する仮想機械部品名称と、ボックスモーションの仮想機械部品パラメータ設定領域とを示す図 横ピロー包装機を表現する模式図と、横ピロー包装機を表現するユーザ定義仮想機械部品名称と、横ピロー包装機のユーザ定義仮想機械部品パラメータ設定領域とを示す図 横ピロー包装機のユーザ定義仮想機械部品パラメータ設定領域を示す図 横ピロー包装機のユーザ定義仮想機械部品パラメータ設定領域を示す図 実施の形態に係るPLCが有するCPU(Central Processing Unit)ユニットの機能を説明するための図 実施の形態に係るプログラム作成支援装置のCPUがプログラム作成支援装置ソフトウェアにしたがって実行するプログラム作成支援方法の手順を示すフローチャート 機械モデルが模擬する機械システムの例を示す図 実施の形態に係るニューラルネットワークを示す図 実施の形態に係るプログラム作成支援装置の仮想機械部品指定部、ユーザ定義仮想機械部品作成部、仮想機械部品パラメータ設定部、ユーザ定義仮想機械部品パラメータ編集部、ユーザ定義仮想機械部品パラメータ設定部、ユーザ定義仮想機械部品プログラム編集部、描画部、ユーザプログラム処理実行コード生成部、ユーザ定義仮想機械部品名入力部、ユーザ定義仮想機械部品プログラム名入力部及びユーザ定義仮想機械部品図入力部の一部又は全部が処理回路によって実現される場合の処理回路を示す図
 以下に、実施の形態に係るプログラム作成支援装置、プログラム作成支援方法、プログラム作成支援プログラム及びプログラマブルロジックコントローラを図面に基づいて詳細に説明する。
実施の形態.
 まず、実施の形態に係るPLCシステムの構成を説明する。上述の通り、PLCは、「Programmable Logic Controller」の略語である。図1は、実施の形態に係るPLCシステム1000の構成を示す図である。PLCシステム1000は、ユーザプログラムの編集を行うためのプログラム作成支援装置1と、例えば工場に設置される各種制御装置を統括的に制御するためのPLC2とを有する。
 PLC2は、PLCシステム1000の全体の動作を制御するCPUユニット3と、複数の拡張ユニット4と、CPUユニット3と複数の拡張ユニット4とが接続されたバスユニット5とを有する。PLC2は、複数の拡張ユニット4ではなく、一つの拡張ユニット4を有してもよい。PLC2が一つの拡張ユニット4を有する場合、一つの拡張ユニット4がバスユニット5に接続される。
 ユーザプログラムは、例えばラダー言語又はグラフィカルプログラミング言語を用いて作成されてもよいし、高級プログラミング言語を用いて作成されてもよい。グラフィカルプログラミング言語の例は、モーションフローを実現するためのプログラミング言語である。高級プログラミング言語の例は、C言語である。
 CPUユニット3は、ユーザプログラムにより、拡張ユニット4を含むPLCシステム1000の全体を制御する。
 拡張ユニット4は、比較的簡単な演算を行ってCPUユニット3の制御機能を拡張するユニットである。拡張ユニット4として、様々なタイプのユニットが用いられる。拡張ユニット4の例は、アナログ入力ユニット、位置決めユニット、温度入力ユニット、又は温度調節ユニットである。拡張ユニット4が温度調節ユニットである場合、温度調節ユニットは、CPUユニット3から外部装置の温度を予め決められた温度にするように要求されると、当該予め決められた温度になるように外部装置の温度についての制御を行う。
 プログラム作成支援装置1は、例えば、携帯可能ないわゆるノートタイプ又はタブレットタイプのパーソナルコンピュータによって実現される。プログラム作成支援装置1は、入力部105及び表示部106を有する。PLC2を制御するためのユーザプログラムは、プログラム作成支援装置1を用いて作成される。作成されたユーザプログラムは、プログラム作成支援装置1の内部でコードに変換される。プログラム作成支援装置1が伝送路9を介してPLC2のCPUユニット3に接続され、コードに変換されたユーザプログラムがプログラム作成支援装置1からCPUユニット3に送られる。ユーザプログラムは、CPUユニット3に含まれるメモリに記憶される。伝送路9の例は、USB(Universal Serial Bus)である。
 図2は、実施の形態に係るプログラム作成支援装置1のハードウェア構成を示す図である。プログラム作成支援装置1は、パーソナルコンピュータにプログラム作成支援装置ソフトウェアをインストールすることによって構成される。プログラム作成支援装置1は、CPU101、RAM(Random Access Memory)102、ROM(Read Only Memory)103、記憶部104、入力部105、表示部106及び通信インタフェース107を有する。
 CPU101は、プログラム作成支援装置ソフトウェアを実行する演算装置である。RAM102は、CPU101がプログラムを実行する際に用いるワークエリアである。ROM103は、プログラム作成支援装置1の起動時にCPU101が実行するプログラムを不揮発に記憶する。プログラム作成支援装置1の起動時にCPU101が実行するプログラムの例は、イニシャルプログラムローダである。記憶部104は、情報を不揮発に記憶する。記憶部104は、例えばハードディスクドライブ又はソリッドステートドライブによって実現される。
 入力部105は、オペレータが情報をプログラム作成支援装置1に入力するためのユーザインタフェースであり、例えばポインティングデバイス及びキーボードの一方又は双方によって実現される。ポインティングデバイスの例は、マウス又はタッチパネルである。表示部106は、情報を表示する装置であり、例えば液晶表示装置又は有機発光表示装置によって実現される。
 通信インタフェース107は、プログラム作成支援装置1が伝送路9を通じてPLC2と通信を行うためのインタフェースである。プログラム作成支援装置1にインストールされたプログラム作成支援装置ソフトウェアは、記憶部104に格納される。CPU101が記憶部104に格納されたプログラム作成支援装置ソフトウェアを読み出して実行することにより、パーソナルコンピュータはプログラム作成支援装置1として機能する。
 実施の形態では、パーソナルコンピュータにプログラム作成装置支援ソフトウェアをインストールすることによりプログラム作成支援装置1は構成される。しかしながら、プログラム作成支援装置1は、クライアントであるパーソナルコンピュータのWebブラウザからWebサーバで動作するアプリケーションに処理を依頼するWebアプリケーションの形態により構成されてもよい。
 図3は、実施の形態に係るプログラム作成支援装置1の機能を示す図である。記憶部104は、プログラム作成支援装置ソフトウェア111を記憶する。CPU101は、記憶部104に記憶されたプログラム作成支援装置ソフトウェア111を実行することで、仮想機械部品指定部112、ユーザ定義仮想機械部品作成部113、仮想機械部品パラメータ設定部114、ユーザ定義仮想機械部品パラメータ編集部115、ユーザ定義仮想機械部品パラメータ設定部116、ユーザ定義仮想機械部品プログラム編集部117、描画部118、ユーザプログラム処理実行コード生成部119、ユーザ定義仮想機械部品名入力部120、ユーザ定義仮想機械部品プログラム名入力部121及びユーザ定義仮想機械部品図入力部122として機能する。
 記憶部104は、シーケンスプログラム123を記憶する。描画部118は、シーケンスプログラム123を編集するためのユーザインタフェースであるシーケンスプログラム編集領域132を表示部106に表示させる。シーケンスプログラム編集領域132は、図4に示されている。図4は、実施の形態に係るプログラム作成支援装置ソフトウェア111のユーザインタフェースの例を示す図である。
 描画部118は、仮想機械部品の画像及び名称を表示するためのユーザインタフェースである仮想機械部品領域133を表示部106に表示させる。
 描画部118は、ユーザ定義仮想機械部品の画像及び名称を表示するためのユーザインタフェースであるユーザ定義仮想機械部品領域134を表示部106に表示させる。
 描画部118及び仮想機械部品パラメータ設定部114は、各仮想機械部品に対応する内部処理で使用される仮想機械部品パラメータ126の設定を受け付けるためのユーザインタフェースである仮想機械部品パラメータ設定領域135を表示部106に表示させる。記憶部104は、仮想機械部品パラメータ126を記憶する。仮想機械部品パラメータ設定部114は、複数の仮想機械部品の内部処理を定義するパラメータを設定する仮想機械部品パラメータ設定部として機能する。
 描画部118、ユーザ定義仮想機械部品パラメータ編集部115及びユーザ定義仮想機械部品パラメータ設定部116は、ユーザ定義仮想機械部品に対応する内部処理で使用されるユーザ定義仮想機械部品パラメータ127の追加と入力とを受け付けるためのユーザインタフェースであるユーザ定義仮想機械部品パラメータ設定領域136を表示部106に表示させる。ユーザ定義仮想機械部品パラメータ127は、記憶部104に記憶される。ユーザ定義仮想機械部品パラメータ編集部115及びユーザ定義仮想機械部品パラメータ設定部116は、ユーザ定義仮想機械部品の各々の内部処理を定義するパラメータを編集するユーザ定義仮想機械部品パラメータ編集部及びパラメータを設定するユーザ定義仮想機械部品パラメータ設定部として機能する。
 描画部118及びユーザ定義仮想機械部品作成部113は、ユーザ定義仮想機械部品を作成するためのユーザインタフェースであるユーザ定義仮想機械部品編集領域137を表示部106に表示させる。
 上述の通り、図4は、実施の形態に係るプログラム作成支援装置ソフトウェア111のユーザインタフェースの例を示す図である。図4が示すように、表示部106は、仮想機械部品を表す模式図と、仮想機械部品を表す名称とをあわせて仮想機械部品の一覧として表示する。描画部118は、ユーザインタフェースの描画処理を担当する。プログラム作成支援装置ソフトウェア111は、ツリービュー131と、シーケンスプログラム編集領域132と、仮想機械部品領域133と、ユーザ定義仮想機械部品領域134と、仮想機械部品パラメータ設定領域135と、ユーザ定義仮想機械部品パラメータ設定領域136と、ユーザ定義仮想機械部品編集領域137と、ユーザ定義仮想機械部品プログラム編集領域138とを有する。
 ツリービュー131には、プログラム作成支援装置ソフトウェア111を用いてユーザが作成したシーケンスプログラム123と、ユーザ定義仮想機械部品と、ユーザ定義仮想機械部品が有するユーザ定義仮想機械部品パラメータ127と、ユーザ定義仮想機械部品が有するユーザ定義仮想機械部品プログラム125とが階層的に表示される。ユーザ定義仮想機械部品プログラム125は、記憶部104に記憶される。ツリービュー131には、ユーザ定義仮想機械部品の名称を入力するためのテキスト入力部139が設けられる。ユーザ定義仮想機械部品名入力部120は、テキスト入力部139を通じて入力されたユーザ定義仮想機械部品名をユーザ定義仮想機械部品の名称として受け付ける。
 ツリービュー131には、ユーザ定義仮想機械部品プログラム125の名称を入力するためのテキスト入力部140が設けられる。ユーザ定義仮想機械部品プログラム名入力部121は、テキスト入力部140を通じて入力されたプログラム名をユーザ定義仮想機械部品の動作を定義するプログラムの名称として受け付ける。
 シーケンスプログラム編集領域132においては、シーケンスプログラム123が作成される。
 仮想機械部品領域133には、予め用意された仮想機械部品が表示される。
 ユーザ定義仮想機械部品領域134には、ユーザが定義した仮想機械部品が表示される。当該仮想機械部品は、ユーザ定義仮想機械部品である。
 ユーザ定義仮想機械部品編集領域137においては、ユーザ定義仮想機械部品が編集される。
 仮想機械部品パラメータ設定領域135においては、仮想機械部品パラメータ126が設定される。
 ユーザ定義仮想機械部品パラメータ設定領域136においては、ユーザ定義仮想機械部品パラメータ127が編集されて設定される。
 ユーザ定義仮想機械部品編集領域137においては、ユーザ定義仮想機械部品の定義が設定される。
 仮想機械部品領域133に表示される仮想機械部品について更に詳しく説明する。仮想機械部品は、仮想機械部品名称と、仮想機械部品パラメータと、仮想機械部品プログラムとを有する。仮想機械部品名称は、仮想機械部品を表す名称である。仮想機械部品パラメータは、仮想機械部品の内部動作を定義する諸元値である。仮想機械部品プログラムは、仮想機械部品パラメータに基づいた仮想機械部品の内部動作を記述するプログラムである。仮想機械部品名称と仮想機械部品パラメータと仮想機械部品プログラムとをひとかたまりの情報体として捉えると、仮想機械部品名称、仮想機械部品パラメータ及び仮想機械部品プログラムを、オブジェクト指向の思想におけるオブジェクトの種類毎に定義されたテンプレート、すなわちクラスとして定義することができる。
 クラスに基づいて作成されるデータはインスタンスと呼ばれ、クラスからインスタンスを生成することを実体化という。シーケンスプログラム123で仮想機械部品プログラム124を使用可能にする際には、仮想機械部品が有するクラスを実体化し、インスタンスを生成することで、クラスに定義されたプログラムを呼びだすことが可能になる。仮想機械部品プログラム124は、記憶部104に記憶される。
 複数の仮想機械部品は、カム、巻出し器、ベルトコンベア及びボックスモーションモジュールを含む。
 カムは、一般に、入力軸と出力軸とを有し、入力軸の位相を出力軸の相対座標に変換する機械部品である。
 巻出し器は、入力軸と出力軸とを有し、入力軸の位相を出力軸の相対座標に変換することで、ロールに巻付けられたシート及びフィルムを出力軸により送り出す機械部品である。巻出し器の出力軸は、巻出し軸である。巻出し器は、補正量の入力によりフィルムの送り位置を補正することが可能な機械部品である。入力軸の位相を出力軸である巻出し軸の相対座標に変換する機能は、巻出し器及びカムを用い、巻出し器の入力軸と出力軸である巻出し軸とをカムの入力軸と出力軸とに接続することで実現されてもよい。これは、オブジェクト指向において、巻出し器クラスのメンバ変数にカムクラスを付加することと等価である。
 ベルトコンベアは、入力軸と出力軸とを有し、入力軸の位相を出力軸の相対座標に変換することで、出力軸で動作するベルトコンベア上のワークの運搬及びシール、並びにフィルムの搬送を行う機械装置である。ベルトコンベアの出力軸は、ベルトコンベア軸である。ベルトコンベアは、補正量の入力によりベルトコンベアの送り位置を補正することが可能な機械部品である。入力軸の位相を出力軸であるベルトコンベア軸の相対座標に変換する機能は、ベルトコンベア及びカムを用い、ベルトコンベアの入力軸と出力軸であるベルトコンベア軸とをカムの入力軸と出力軸とに接続することで実現されてもよい。これは、オブジェクト指向において、ベルトコンベアクラスのメンバ変数にカムクラスを付加することと等価である。
 ボックスモーションは、入力軸、第一の出力軸及び第二の出力軸を有し、入力軸の位相を第一の出力軸の相対座標及び第二の出力軸の相対座標の各々に変換することで、ベルトコンベアで送られてきたシート又はフィルムを、設定された寸法となるようにカッターが下降しながら前進しシート又はフィルムと同期した速度でシール又はフィルムをカットするボックスモーション動作を行う機械装置である。上記の第一の出力軸はトラベル軸であり、上記の第二の出力軸はシール軸である。
 ボックスモーションは、動作速度の増加及び減少の調整を行うことが可能な機械装置である。入力軸の位相をトラベル軸及びシール軸の各々の相対座標に変換する機能は、ボックスモーション、第一のカム及び第二のカムを用い、ボックスモーションの入力軸とトラベル軸とを第一のカムの入力軸と出力軸とに接続し、ボックスモーションの入力軸とシール軸とを第二のカムの入力軸と出力軸とに接続することで実現されてもよい。これは、オブジェクト指向において、ボックスモーションクラスのメンバ変数に二つのカムクラスを付加することと等価である。
 図5は、巻出し器を表現する模式図141と、巻出し器を表現する仮想機械部品名称142と、巻出し器の仮想機械部品パラメータ設定領域143とを示す図である。表示部106が図5を表示する。表示部106が図5を表示するので、オペレータは仮想機械部品の種類を視覚的に認識することができる。巻出し器は、仮想機械部品の例である。図5が示すように、巻出し器の仮想機械部品パラメータとしては、入力軸、出力軸である巻出し軸、入力軸の位相を巻出し軸の相対座標に変換するための変換パターンであるカムパターン、及びフィルム径が含まれる。
 図5の例では、入力軸を示すパラメータとしてinputAxisが定義されており、巻出し軸を示すパラメータとしてunwindAxisが定義されており、カムパターンを示すパラメータとしてcamPatternが定義されており、フィルム径を示すパラメータとしてfilmDiameterが定義されている。巻出し器の仮想機械部品プログラムとしては、巻出し器の入力軸の位相をカムパターンにより変換して巻出し軸の相対座標を算出するプログラム、及び補正量を入力してフィルムの送り位置を補正するプログラムが含まれる。
 図6は、ベルトコンベアを表現する模式図144と、ベルトコンベアを表現する仮想機械部品名称145と、ベルトコンベアの仮想機械部品パラメータ設定領域146とを示す図である。表示部106が図6を表示する。表示部106が図6を表示するので、オペレータは仮想機械部品の種類を視覚的に認識することができる。ベルトコンベアは、仮想機械部品の例である。図6が示すように、ベルトコンベアの仮想機械部品パラメータとしては、入力軸、出力軸であるベルトコンベア軸、入力軸の位相をベルトコンベア軸の相対座標に変換するための変換パターンであるカムパターン、及びベルトコンベア速度が含まれる。
 図6の例では、入力軸を示すパラメータとしてinputAxisが定義されており、出力軸であるベルトコンベア軸を示すパラメータとしてconveyorAxisが定義されており、カムパターンを示すパラメータとしてcamPatternが定義されており、ベルトコンベア速度を示すパラメータとしてconveyorVelocityが定義されている。ベルトコンベアの仮想機械部品プログラムとしては、ベルトコンベアの入力軸の位相をベルトコンベアカムパターンにより変換してベルトコンベア軸の相対座標を算出するプログラム、及び補正量を入力してベルトコンベアの送り位置の補正するプログラムが含まれる。
 図7は、ボックスモーションを表現する模式図147と、ボックスモーションを表現する仮想機械部品名称148と、ボックスモーションの仮想機械部品パラメータ設定領域149とを示す図である。表示部106が図7を表示する。表示部106が図7を表示するので、オペレータは仮想機械部品の種類を視覚的に認識することができる。ボックスモーションは、仮想機械部品の例である。図7が示すように、ボックスモーションのパラメータとしては、入力軸、第一の出力軸、第二の出力軸、入力軸の位相を第一の出力軸の相対座標に変換するための変換パターンであるトラベルカムパターン、入力軸の位相を第二の出力軸の相対座標に変換するための変換パターンであるシールカムパターン、及びボックスモーション合成速度が含まれる。第一の出力軸はトラベル軸であり、第二の出力軸はシール軸である。
 図7の例では、入力軸を示すパラメータとしてinputAxisが定義されており、トラベル軸を示すパラメータとしてtravelAxisが定義されており、シール軸を示すパラメータとしてseelAxisが定義されており、トラベルカムパターンを示すパラメータとしてtravelCamPatternが定義されており、シールカムパターンを示すパラメータとしてseelCamPatternが定義されており、ボックスモーション速度を示すパラメータとしてboxMotionVelocityが定義されている。ボックスモーションの仮想機械部品プログラムとしては、ボックスモーションの入力軸の位相をカムパターンにより変換してトラベル軸及びシール軸の相対座標を算出するプログラム、及び、ボックスモーションの合成速度を増加又は減少させるためのプログラムが含まれる。
 巻出し器を表現する模式図141と、ベルトコンベアを表現する模式図144と、ボックスモーションを表現する模式図147とは、仮想機械部品領域133に表示されるアイコンである。巻出し器を表現する仮想機械部品名称142と、ベルトコンベアを表現する仮想機械部品名称145と、ボックスモーションを表現する仮想機械部品名称148とは、仮想機械部品領域133に表示される部品の名称である。巻出し器の仮想機械部品パラメータ設定領域143と、ベルトコンベアの仮想機械部品パラメータ設定領域146と、ボックスモーションの仮想機械部品パラメータ設定領域149とは、仮想機械部品パラメータ設定領域135の一部である。
 ユーザ定義仮想機械部品領域134に表示されるユーザ定義仮想機械部品について更に詳しく説明する。ユーザ定義仮想機械部品は、仮想機械部品と同様に、ユーザ定義仮想機械部品名称と、ユーザ定義仮想機械部品パラメータと、ユーザ定義仮想機械部品プログラムとを有する。ユーザ定義仮想機械部品の一例は、巻出し器と、ベルトコンベアと、ボックスモーションとを組み合わせることによって作成される横ピロー包装機である。
 横ピロー包装機は、入力軸、巻出し軸、ベルトコンベア軸、トラベル軸及びシール軸を有し、入力軸の位相を巻出し軸、ベルトコンベア軸、トラベル軸及びシール軸の各々の相対座標に変換することで、巻出し器により送り出されたフィルムと、ベルトコンベアにより搬送されたワークとを組み合わせ、ボックスモーションによりシール及びカットを行うことで製品を梱包する機能を有する機械部品である。
 横ピロー包装機が有する機能は、横ピロー包装機、巻出し器、ベルトコンベア及びボックスモーションを用い、横ピロー包装機の入力軸と巻出し軸に対応する横ピロー包装機の出力軸とを巻出し器の入力軸と巻出し軸とに接続し、横ピロー包装機の入力軸とベルトコンベア軸に対応する横ピロー包装機の出力軸とをベルトコンベアの入力軸とベルトコンベア軸とに接続し、横ピロー包装機の入力軸、トラベル軸に対応する横ピロー包装機の出力軸及びシール軸に対応する横ピロー包装機の出力軸をボックスモーションの入力軸、トラベル軸及びシール軸に接続することによって実現されてよい。これは、オブジェクト指向において、横ピロー包装機クラスのメンバ変数に巻出し器クラス、コンベアクラス及びボックスモーションクラスを付加することと等価である。
 図8は、横ピロー包装機を表現する模式図150と、横ピロー包装機を表現するユーザ定義仮想機械部品名称151と、横ピロー包装機のユーザ定義仮想機械部品パラメータ設定領域152とを示す図である。図8が示すように、横ピロー包装機のユーザ定義仮想器械部品作成領域には、巻出し器、ベルトコンベア及びボックスモーションを表現する模式図が配置される。横ピロー包装機のパラメータとしては、入力軸、巻出し軸に対応する出力軸、ベルトコンベア軸に対応する出力軸、トラベル軸に対応する出力軸、シール軸に対応する出力軸、巻出し器、ベルトコンベア及びボックスモーションが含まれる。
 図8の例では、巻出し器を示すパラメータとしてUnwinderクラスのunwinder1が定義されており、ベルトコンベアを示すパラメータとしてConveyorクラスのconveyor1が定義されており、ボックスモーションを示すパラメータとしてBoxMotionクラスのboxMotion1が定義されており、入力軸を示すパラメータとしてinputAxisが定義されており、巻出し軸を示すパラメータとしてunwindAxisが定義されており、ベルトコンベア軸を示すパラメータとしてconveyorAxisが定義されており、トラベル軸を示すパラメータとしてtravelAxisが定義されており、シール軸を示すパラメータとしてseelAxisが定義されている。
 横ピロー包装機のユーザ定義仮想機械部品プログラムとしては、横ピロー包装機の入力軸の位相を巻出し器、ベルトコンベア及びボックスモーションにより変換して、巻出し軸、ベルトコンベア軸、トラベル軸及びシール軸の各々の相対座標を算出するプログラムが含まれる。
 横ピロー包装機を表現する模式図150は、ユーザ定義仮想機械部品領域134に表示されるアイコンであり、ユーザ定義仮想機械部品作成領域の背景画像である。横ピロー包装機を表現するユーザ定義仮想機械部品名称151は、ユーザ定義仮想機械部品領域134に表示される部品の名称である。横ピロー包装機のユーザ定義仮想機械部品パラメータ設定領域152は、ユーザ定義仮想機械部品パラメータ設定領域136の一部である。
 図9は、横ピロー包装機のユーザ定義仮想機械部品パラメータ設定領域153を示す図である。図9の例では、横ピロー包装機のパラメータとして、横ピロー包装機の模式図の参照を入力するためのパラメータが設けられる。ユーザ定義仮想機械部品図入力部122は、パラメータを通じて入力されたパスに基づき、横ピロー包装機の模式図となる画像を受け付ける。
 図10は、横ピロー包装機のユーザ定義仮想機械部品パラメータ設定領域152を示す図である。図10の例では、ユーザ定義仮想機械部品プログラム125はストラクチャードテキスト言語により記述されているが、ユーザ定義仮想機械部品プログラム125は他の高級言語により記述されてもよい。他の高級言語の例は、C言語である。図10の例では、巻出し器、ベルトコンベア及びボックスモーションの各々の入力軸から出力軸への変換を行うプログラムMC_CamInと、各出力軸を動作可能状態にするプログラムMC_PowerOnとが定義されており、横ピロー包装機のプログラムAllCamInにおいて、すべてのMC_CamInを実行する制御が自由に定義されている。
 図11は、実施の形態に係るPLC2が有するCPUユニット3の機能を説明するための図である。CPUユニット3は、CPU301及び記憶部302を有する。CPU301は、実行部303を有する。記憶部302は、プログラム作成支援装置1のユーザプログラム処理実行コード生成部119から転送されてきたシーケンスプログラム123、仮想機械部品プログラム124、ユーザ定義仮想機械部品プログラム125、仮想機械部品パラメータ126及びユーザ定義仮想機械部品パラメータ127を記憶する。更に言うと、記憶部302は、プログラム作成支援装置1から出力されたユーザプログラムとパラメータとを保持する。記憶部302は、例えば半導体メモリによって実現される。
 実行部303は、ユーザ定義仮想機械部品に対応したユーザプログラムとパラメータとにしたがってモーション制御を実行する。更に言うと、実行部303は、仮想機械部品パラメータ126とユーザ定義仮想機械部品パラメータ127とにしたがって、ユーザ定義仮想機械部品プログラム125を用いて記述されたシーケンスプログラム123を実行しシーケンス制御を行う。
 図12は、実施の形態に係るプログラム作成支援装置1のCPU101がプログラム作成支援装置ソフトウェア111にしたがって実行するプログラム作成支援方法の手順を示すフローチャートである。
 ステップS1において、CPU101は、具体的には描画部118は、ツリービュー131、シーケンスプログラム編集領域132、仮想機械部品領域133、ユーザ定義仮想機械部品領域134、仮想機械部品パラメータ設定領域135、ユーザ定義仮想機械部品パラメータ設定領域136及びユーザ定義仮想機械部品編集領域137を表示部106に表示させる。図12では、ステップS1の動作は、「ユーザインタフェースを表示する」という文言で示されている。
 ステップS2において、CPU101は、具体的にはユーザ定義仮想機械部品名入力部120は、ツリービュー131のテキスト入力部139に対して入力部105を通じて入力された指示に基づきユーザ定義仮想機械部品の名称の入力を受け付ける。CPU101がユーザ定義仮想機械部品の名称を自動的に付与する場合、ステップS2の動作は省略されてもよい。
 ステップS3において、CPU101は、具体的にはユーザ定義仮想機械部品プログラム名入力部121は、ツリービュー131のテキスト入力部140に対して入力部105を通じて入力された指示に基づきユーザ定義仮想機械部品プログラムの名称の入力を受け付ける。CPU101がユーザ定義仮想機械部品プログラムの名称を自動的に付与する場合、ステップS3の動作は省略されてもよい。
 ステップS4において、CPU101は、具体的にはユーザ定義仮想機械部品作成部113は、入力部105を通じて入力された指示に基づき、ユーザ定義仮想機械部品の編集を行う。当該指示は、仮想機械部品領域133で予め用意されている複数の仮想機械部品のなかから、オペレータが所望の仮想機械部品をマウスで選択して選択した仮想機械部品をユーザ定義仮想機械部品編集領域137へマウスで移動させることによって実現されてもよい。仮想機械部品をマウスで移動させることは、ドラッグアンドドロップによって行われる。ユーザ定義仮想機械部品に追加された仮想機械部品は、図8が示すように、ユーザ定義仮想機械部品のパラメータに追加される。ユーザ定義仮想機械部品編集領域137の表示は、オペレータがツリービュー131のユーザ定義仮想機械部品をクリックすることによって実現されてもよい。
 ステップS5において、CPU101は、具体的には仮想機械部品パラメータ設定部114は、仮想機械部品パラメータ設定領域135に対して入力部105を通じて入力された指示に基づき、ユーザ定義仮想機械部品が有する複数の仮想機械部品の各々のパラメータを設定する。仮想機械部品パラメータ設定領域135の表示は、オペレータがユーザ定義仮想機械部品編集領域137の仮想機械部品のアイコンをクリックすることによって実現されてもよいし、オペレータがユーザ定義仮想機械部品パラメータ設定領域136の仮想機械部品をクリックすることによって実現されてもよい。
 ステップS6において、CPU101は、具体的にはユーザ定義仮想機械部品パラメータ編集部115は、ユーザ定義仮想機械部品パラメータ設定部116に対して入力部105を通じて入力された指示に基づき、ユーザ定義仮想機械部品のパラメータを編集する。
 ステップS7において、CPU101は、具体的にはユーザ定義仮想機械部品パラメータ設定部116は、ユーザ定義仮想機械部品パラメータ設定領域136に対して入力部105を通じて入力された指示に基づき、ユーザ定義仮想機械部品のパラメータを設定する。ユーザ定義仮想機械部品パラメータ設定領域136の表示は、オペレータがツリービュー131のユーザ定義仮想機械部品のパラメータをクリックすることによって実現されてもよい。
 ステップS8において、CPU101は、具体的にはユーザ定義仮想機械部品プログラム編集部117は、ユーザ定義仮想機械部品プログラム編集領域138に対して入力部105を通じて入力された指示に基づき、ユーザ定義仮想機械部品のプログラムの編集の指示を受け付ける。ユーザ定義仮想機械部品プログラム編集領域138の表示は、オペレータがツリービュー131のユーザ定義仮想機械部品のプログラムをクリックすることによって実現されてもよい。
 オペレータが新しいユーザ定義仮想機械部品を追加する場合、オペレータがツリービュー131のユーザ定義仮想機械部品に対してマウスの右クリックを行うことによって表示されるポップアップメニューから、新規ユーザ定義仮想機械部品の追加の指示が行われる。作成されたユーザ定義仮想機械部品は、ツリービュー131に階層的に表示されるとともに、ユーザ定義仮想機械部品領域134にも表示される。
 オペレータが新しいユーザ定義仮想機械部品プログラムを追加する場合、オペレータがツリービュー131のユーザ定義仮想機械部品プログラムに対してマウスの右クリックを行うことによって表示されるポップアップメニューから、新規ユーザ定義仮想機械部品プログラムの追加の指示が行われる。作成されたユーザ定義仮想機械部品プログラムは、ツリービュー131に階層的に表示される。
 ステップS9において、CPU101は、シーケンスプログラム編集領域132に対して入力部105を通じて入力された指示に基づき、シーケンスプログラムの編集の指示を受け付ける。当該指示に対する動作は、仮想機械部品領域133で予め用意されている複数の仮想機械部品のなかからオペレータが所望の仮想機械部品をマウスで選択して選択した仮想機械部品をシーケンスプログラム編集領域132へマウスで移動させることによって実現されてもよく、シーケンスプログラム編集領域132へ移動させられた仮想機械部品が有するクラスの実体化が同時に行われてもよい。オペレータは、シーケンスプログラムに追加された仮想機械部品のインスタンスを用いて、仮想機械部品プログラム124によりシーケンスプログラムを記述することができる。
 上記の指示に対する動作は、オペレータがユーザ定義仮想機械部品領域134で所望のユーザ定義仮想機械部品をマウスで選択して選択したユーザ定義仮想機械部品をシーケンスプログラム編集領域132へマウスで移動させることによって実現されてもよく、シーケンスプログラム編集領域132へ移動させられたユーザ定義仮想機械部品が有するクラスの実体化が同時に行われてもよい。オペレータは、シーケンスプログラムに追加されたユーザ定義仮想機械部品のインスタンスを用いて、ユーザ定義仮想機械部品プログラム125によりシーケンスプログラムを記述することができる。図12では、ステップS9の動作は、「ユーザ定義仮想機械部品をシーケンスプログラムに配置する」という文言で示されている。
 ステップS10において、CPU101は、具体的にはユーザプログラム処理実行コード生成部119は、入力部105を通じた指示に基づき、仮想機械部品プログラム124と、ユーザ定義仮想機械部品プログラム125と、仮想機械部品プログラム124及びユーザ定義仮想機械部品プログラム125を用いて記述されたシーケンスプログラム123とについて、PLC2が実行するためのコード化を行う。
 ステップS11において、CPU101は、具体的にはユーザプログラム処理実行コード生成部119は、コード化されたシーケンスプログラム123と、コード化された仮想機械部品プログラム124と、コード化されたユーザ定義仮想機械部品プログラム125と、仮想機械部品パラメータ126と、ユーザ定義仮想機械部品パラメータ127とを、通信インタフェース107を介してPLC2に転送する。
 ステップS12において、CPUユニット3は、シーケンスプログラム123、仮想機械部品プログラム124、ユーザ定義仮想機械部品プログラム125、仮想機械部品パラメータ126及びユーザ定義仮想機械部品パラメータ127を記憶部302で保持する。
 ステップS13において、CPU301の実行部303は、シーケンスプログラム123を実行する。
 上述のように、実施の形態に係るプログラム作成支援装置1において、表示部106は、少なくとも一つ以上の軸の情報を有し内部動作を規定する演算処理が設定されモーション制御を実行する仮想的な機械部品である仮想機械部品を複数表示する。仮想機械部品指定部112は、表示部106が表示する複数の仮想機械部品からユーザ定義仮想機械部品を構成する仮想機械部品を指定する。ユーザ定義仮想機械部品作成部113は、表示された複数の仮想機械部品から指定された一つ又は複数の機械部品に基づき、表示された複数の仮想機械部品とは異なる仮想機械部品をユーザ定義仮想機械部品として作成する。更に言うと、ユーザ定義仮想機械部品作成部113は、予め定義されている仮想機械部品を変更して又は組み合わせて、新たなユーザ定義仮想機械部品を定義する。ユーザ定義仮想機械部品パラメータ編集部115は、ユーザ定義仮想機械部品作成部113が定義したユーザ定義仮想機械部品のユーザ定義仮想機械部品パラメータ127を編集する。ユーザ定義仮想機械部品パラメータ設定部116は、ユーザ定義仮想機械部品パラメータ127を設定する。仮想機械部品パラメータ設定部114は、複数の仮想機械部品の各々の内部動作を定義するパラメータを設定する。更に言うと、仮想機械部品パラメータ設定部114は、ユーザ定義仮想機械部品が有する仮想機械部品の仮想機械部品パラメータ126を設定する。ユーザ定義仮想機械部品プログラム編集部117は、ユーザ定義仮想機械部品の演算処理をユーザプログラムにより編集する。更に言うと、ユーザ定義仮想機械部品プログラム編集部117は、ユーザ定義仮想機械部品が有する仮想機械部品の仮想機械部品プログラム124を自由に用いてユーザ定義仮想機械部品プログラム125を編集する。ユーザプログラム処理実行コード生成部119は、ユーザ定義仮想機械部品プログラムを含むシーケンスプログラムをコード化し、PLC2へ転送する。更に言うと、ユーザプログラム処理実行コード生成部119は、ユーザ定義仮想機械部品パラメータ設定部116によって設定されたパラメータに基づいてユーザプログラムをコード化し、コード化したユーザプログラムをPLC2に出力し、ユーザプログラムに記述されたモーション制御をPLC2に実行させる。
 仮想機械部品プログラム124は、予め用意された仮想機械部品に含まれて提供される。そのため、オペレータは、各仮想機械部品のパラメータを指定するだけで、制御を実現することができる。オペレータは、少なくとも一つの仮想機械部品を変更して又は組み合わせてユーザ定義仮想機械部品を定義することで、ユーザ定義仮想機械部品が有する仮想機械部品プログラム124を用いてユーザ定義仮想機械部品プログラム125を定義することができる。そのため、実施の形態に係るプログラム作成支援装置1は、複雑な制御を必要とする機械装置のプログラムを作成する際のオペレータの負担を小さくすることができる。
 図4を用いて説明したように、ユーザ定義仮想機械部品の名称を入力するためのユーザ定義仮想機械部品名入力部120が設けられてもよい。これにより、オペレータは、ユーザ定義仮想機械部品の名称についても自由に決定することができる。更に言うと、オペレータは、決定した名称をプログラムに使用することができる。
 図4を用いて説明したように、ユーザ定義仮想機械部品プログラム125の名称を入力するためのユーザ定義仮想機械部品プログラム名入力部121が設けられてもよい。これにより、オペレータは、ユーザ定義仮想機械部品プログラム125の名称についても自由に決定することができる。更に言うと、オペレータは、決定した名称をプログラムに使用することができる。
 図9を用いて説明したように、ユーザ定義仮想機械部品の模式図を入力するためのユーザ定義仮想機械部品図入力部122が設けられてもよい。これにより、オペレータは、ユーザ定義仮想機械部品の模式図を自由に決定することができ、ユーザ定義仮想機械部品作成領域に表示される模式図を視認しながら、仮想機械部品をユーザ定義仮想機械部品作成領域に配置するため、ユーザ定義仮想機械部品と仮想機械部品との関係を意識しながら、直感的なユーザ定義仮想機械部品を作成することができる。
 図12のステップS4におけるユーザ定義仮想機械部品の編集は、仮想機械部品領域133で予め用意されている複数の仮想機械部品から所望の仮想機械部品をマウスで選択して、選択した仮想機械部品をユーザ定義仮想機械部品編集領域137へマウスで移動させることによって実現される。しかしながら、ユーザ定義仮想機械部品の編集は、ユーザ定義仮想機械部品領域134のユーザ定義仮想機械部品から所望のユーザ定義仮想機械部品をマウスで選択して、選択したユーザ定義仮想機械部品をユーザ定義仮想機械部品編集領域137へマウスで移動させることによって実現されてもよい。
 オペレータは、少なくとも一つのユーザ定義仮想機械部品を変更して又は組み合わせて異なるユーザ定義仮想機械部品を定義することで、ユーザ定義仮想機械部品が有するユーザ定義仮想機械部品プログラム125を用いて異なるユーザ定義仮想機械部品プログラム125を定義することができる。そのため、プログラム作成支援装置1は、同じユーザ定義仮想機械部品を複数有する異なるユーザ定義仮想機械部品であってもプログラムを作成する際のオペレータの負担を小さくすることができる。
 表示部106は、ユーザ定義仮想機械部品作成部113が作成したユーザ定義仮想機械部品を複数表示してもよい。ユーザ定義仮想機械部品作成部113は、表示された複数の仮想機械部品又はユーザ定義仮想機械部品から指定された一つ又は複数の機械部品に基づき、表示された複数の仮想機械部品及びユーザ定義仮想機械部品とは異なる仮想機械部品をユーザ定義仮想機械部品として作成してもよい。その場合、プログラム作成支援装置1は、ユーザ定義仮想機械部品の再利用性を高め、更に複雑な制御を必要とする機械装置のプログラムを作成する際のオペレータの負担を小さくすることができる。
 図7及び図8を用いて説明したように、実施の形態では、複数の仮想機械部品は、カム、巻出し器、ベルトコンベア及びボックスモーションである。しかしながら、より抽象度を増した仮想機械部品として機械モデルモジュールが複数の仮想機械部品に含まれてもよい。
 機械モデルモジュールは、少なくとも一つの入力軸と少なくとも一つの出力軸と機械モデルとを有し、各入力軸により駆動される機械の動作を機械モデルにより模擬し、模擬の結果を各出力軸に出力する機能を有する機械部品である。図13は、機械モデルが模擬する機械システム401の例を示す図である。機械システム401は、X軸401a、Y軸401b及びZ軸401cの3軸のモータを有しており、X軸401aとY軸401bとによりXY平面を移動するステージの位置制御を行う。Z軸401cの動作により、Z軸401cの先端に取り付けられたヘッド401dがステージ401eの上に配置されるワークに加工を施す。
 機械モデルは、例えば、X軸401aの軸位置とY軸401bの軸位置とZ軸401cの軸位置とを入力として持ち、ステージ401eの位置とヘッド401dの位置とを出力に持ち、入力をモータ位置に基づくキネマティクスによりステージ位置及びヘッド位置に変換する機械モデルである。
 機械モデルは、機械のダイナミクスを考慮するモデルであって、振動特性を模擬することができてもよい。
 機械モデルは予め用意されていてもよいが、機械モデルを生成する機械モデル生成プログラムが用意されてもよい。仮想機械部品は、実機のデータに基づきモータにより駆動される機械の動作を模擬する機械モデルを生成するためのモデル生成プログラムを有してもよい。仮想機械部品がモデル生成プログラムを有する場合、機械モデルが事前に準備されていなくても、機械モデルを有する機械モデルモジュールによる制御が可能になる。
 機械モデル生成プログラムは、入力された実機情報に基づいてモデルを生成する。実機情報とは、機械システムを実際に動作させて得られた信号である。例えば、X軸、Y軸及びZ軸のモータ位置の時系列データと、ステージ位置及びヘッド位置の時系列データとが実機情報に含まれる。
 機械モデル生成プログラムは、X軸、Y軸及びZ軸のモータ位置の時系列データを入力として、ステージ位置及びヘッド位置の時系列データを出力する機械モデルを生成する。
 入力と出力との関係を得るためには、例えばニューラルネットワーク又はサポートベクター回帰といった機械学習技術、又は、例えば予測誤差法若しくは部分空間法といったシステム同定技術を用いるとよい。以下では、ニューラルネットワークを用いる例を示す。
 モデル生成プログラムは、X軸、Y軸及びZ軸のモータ位置の時系列データと、ステージ位置及びヘッド位置の時系列データとを学習用のデータとして、ニューラルネットワークを用いた学習動作を行う。図14は、実施の形態に係るニューラルネットワークを示す図である。ニューラルネットワークは、入力層、中間層及び出力層を有する。入力であるX軸、Y軸及びZ軸のモータ位置を示すM個の入力データi1、i2、・・・、iMが入力層に入力され、出力層からステージ位置及びヘッド位置を示すN個の出力データo1、o2、・・・、oNが出力される。M及びNはいずれも、2以上の自然数である。
 入力層の各ノードから中間層の各ノードに対する複数の重み係数の各々を独立に設定することができるが、図14では、複数の重み係数は全て同一の重み係数W1として表記されている。同様に、図14では、中間層の各ノードから出力層の各ノードに対する複数の重み係数は、全て同一の重み係数W2として表記されている。
 入力層の各ノードの出力値に対して重み係数W1が乗算され、乗算によって得られた結果の線形結合が中間層の各ノードに入力される。中間層の各ノードの出力値に対して重み係数W2が乗算され、乗算によって得られた結果の線形結合が出力層のノードに入力される。各層の各ノードでは、例えばシグモイド関数といった非線形関数によって入力値から出力値が計算されてもよい。入力層及び出力層では、出力値は入力値の線形結合であってもよい。
 モデル生成プログラムは、X軸、Y軸及びZ軸のモータ位置の時系列データと、ステージ位置及びヘッド位置の時系列データとを用いて、ニューラルネットワークの重み係数W1と重み係数W2とを計算する。ニューラルネットワークの重み係数W1及び重み係数W2は、誤差逆伝播法又は勾配降下法を用いることで計算することができる。ただし、ニューラルネットワークの重み係数が得られる計算方法であれば、重み係数W1及び重み係数W2の計算方法は上述の方法に限られない。
 ニューラルネットワークの重み係数が決定されれば、X軸、Y軸及びZ軸のモータ位置の時系列データと、ステージ位置及びヘッド位置の時系列データとの関係式が得られたことになる。ここまでにおいて、3層のニューラルネットワークを用いた学習が示された。ニューラルネットワークを用いた学習は、上述の例に限定されない。
 モデル生成プログラムにより、X軸、Y軸及びZ軸のモータ位置を入力としてステージ位置及びヘッド位置を出力とする機械モデルが得られる。
 ニューラルネットワークによる模擬の精度は、ニューラルネットワークの層の数及びノードの数の一方又は双方を変更することで、任意に設定することができる。つまり、複数の精度の異なる機械モデルを簡易的に生成することが可能となる。実施の形態のように機械モデルを実機のデータに基づいて生成することにより、ユーザが機械モデルを事前に準備していなくとも、機械モデルを有する機械モデルモジュールによる制御が可能になる。
 なお、図12が示すプログラム作成支援方法は、CPU101がプログラム作成支援装置ソフトウェア111を実行することで実現される。つまり、実施の形態によって、プログラム作成支援装置1に加え、プログラム作成支援方法及びプログラム作成支援プログラムも提供される。
 図15は、実施の形態に係るプログラム作成支援装置1の仮想機械部品指定部112、ユーザ定義仮想機械部品作成部113、仮想機械部品パラメータ設定部114、ユーザ定義仮想機械部品パラメータ編集部115、ユーザ定義仮想機械部品パラメータ設定部116、ユーザ定義仮想機械部品プログラム編集部117、描画部118、ユーザプログラム処理実行コード生成部119、ユーザ定義仮想機械部品名入力部120、ユーザ定義仮想機械部品プログラム名入力部121及びユーザ定義仮想機械部品図入力部122の一部又は全部が処理回路91によって実現される場合の処理回路91を示す図である。つまり、仮想機械部品指定部112、ユーザ定義仮想機械部品作成部113、仮想機械部品パラメータ設定部114、ユーザ定義仮想機械部品パラメータ編集部115、ユーザ定義仮想機械部品パラメータ設定部116、ユーザ定義仮想機械部品プログラム編集部117、描画部118、ユーザプログラム処理実行コード生成部119、ユーザ定義仮想機械部品名入力部120、ユーザ定義仮想機械部品プログラム名入力部121及びユーザ定義仮想機械部品図入力部122の一部又は全部は、処理回路91によって実現されてもよい。
 処理回路91は、専用のハードウェアである。処理回路91は、例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、又はこれらを組み合わせたものである。仮想機械部品指定部112、ユーザ定義仮想機械部品作成部113、仮想機械部品パラメータ設定部114、ユーザ定義仮想機械部品パラメータ編集部115、ユーザ定義仮想機械部品パラメータ設定部116、ユーザ定義仮想機械部品プログラム編集部117、描画部118、ユーザプログラム処理実行コード生成部119、ユーザ定義仮想機械部品名入力部120、ユーザ定義仮想機械部品プログラム名入力部121及びユーザ定義仮想機械部品図入力部122の一部は、残部と別個の専用のハードウェアによって実現されてもよい。
 仮想機械部品指定部112、ユーザ定義仮想機械部品作成部113、仮想機械部品パラメータ設定部114、ユーザ定義仮想機械部品パラメータ編集部115、ユーザ定義仮想機械部品パラメータ設定部116、ユーザ定義仮想機械部品プログラム編集部117、描画部118、ユーザプログラム処理実行コード生成部119、ユーザ定義仮想機械部品名入力部120、ユーザ定義仮想機械部品プログラム名入力部121及びユーザ定義仮想機械部品図入力部122の複数の機能について、当該複数の機能の一部がソフトウェア又はファームウェアで実現され、当該複数の機能の残部が専用のハードウェアで実現されてもよい。このように、当該複数の機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせによって実現することができる。
 PLC2が有する実行部304は、処理回路91と同様の処理回路によって実現されてもよい。
 以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略又は変更することも可能である。
 1 プログラム作成支援装置、2 PLC、3 CPUユニット、4 拡張ユニット、5 バスユニット、9 伝送路、91 処理回路、101,301 CPU、102 RAM、103 ROM、104,302 記憶部、105 入力部、106 表示部、107 通信インタフェース、111 プログラム作成支援装置ソフトウェア、112 仮想機械部品指定部、113 ユーザ定義仮想機械部品作成部、114 仮想機械部品パラメータ設定部、115 ユーザ定義仮想機械部品パラメータ編集部、116 ユーザ定義仮想機械部品パラメータ設定部、117 ユーザ定義仮想機械部品プログラム編集部、118 描画部、119 ユーザプログラム処理実行コード生成部、120 ユーザ定義仮想機械部品名入力部、121 ユーザ定義仮想機械部品プログラム名入力部、122 ユーザ定義仮想機械部品図入力部、123 シーケンスプログラム、124 仮想機械部品プログラム、125 ユーザ定義仮想機械部品プログラム、126 仮想機械部品パラメータ、127 ユーザ定義仮想機械部品パラメータ、131 ツリービュー、132 シーケンスプログラム編集領域、133 仮想機械部品領域、134 ユーザ定義仮想機械部品領域、135 仮想機械部品パラメータ設定領域、136 ユーザ定義仮想機械部品パラメータ設定領域、137 ユーザ定義仮想機械部品編集領域、138 ユーザ定義仮想機械部品プログラム編集領域、139,140 テキスト入力部、141 巻出し器を表現する模式図、142 巻出し器を表現する仮想機械部品名称、143 巻出し器の仮想機械部品パラメータ設定領域、144 ベルトコンベアを表現する模式図、145 ベルトコンベアを表現する仮想機械部品名称、146 ベルトコンベアの仮想機械部品パラメータ設定領域、147 ボックスモーションを表現する模式図、148 ボックスモーションを表現する仮想機械部品名称、149 ボックスモーションの仮想機械部品パラメータ設定領域、150 横ピロー包装機を表現する模式図、151 横ピロー包装機を表現するユーザ定義仮想機械部品名称、152,153 横ピロー包装機のユーザ定義仮想機械部品パラメータ設定領域、303 実行部、401 機械システム、401a X軸、401b Y軸、401c Z軸、401d ヘッド、401e ステージ、1000 PLCシステム。

Claims (12)

  1.  少なくとも一つの軸の情報を有し内部動作を規定する演算処理が設定されモーション制御を実行する仮想的な機械部品である仮想機械部品を複数表示する表示部と、
     表示された複数の前記仮想機械部品から指定された一つ又は複数の前記機械部品に基づき、表示された複数の前記仮想機械部品とは異なる前記仮想機械部品をユーザ定義仮想機械部品として作成するユーザ定義仮想機械部品作成部と、
     複数の前記仮想機械部品の各々の内部動作を定義するパラメータを設定する仮想機械部品パラメータ設定部と、
     前記ユーザ定義仮想機械部品の前記演算処理をユーザプログラムにより編集するユーザ定義仮想機械部品プログラム編集部と、
     前記ユーザ定義仮想機械部品の前記パラメータを設定するユーザ定義仮想機械部品パラメータ設定部と、
     前記ユーザ定義仮想機械部品パラメータ設定部によって設定された前記パラメータに基づいてコード化した前記ユーザプログラムをプログラマブルロジックコントローラに出力し前記ユーザプログラムに記述されたモーション制御を実行させるユーザプログラム処理実行コード生成部と
     を備えることを特徴とするプログラム作成支援装置。
  2.  前記表示部は、前記ユーザ定義仮想機械部品作成部が作成した前記ユーザ定義仮想機械部品を複数表示し、
     前記ユーザ定義仮想機械部品作成部は、表示された複数の前記仮想機械部品又は前記ユーザ定義仮想機械部品から指定された一つ又は複数の前記機械部品に基づき、表示された複数の前記仮想機械部品及び前記ユーザ定義仮想機械部品とは異なる前記仮想機械部品をユーザ定義仮想機械部品として作成する
     ことを特徴とする請求項1に記載のプログラム作成支援装置。
  3.  前記仮想機械部品は、前記仮想機械部品を表す模式図を有する
     ことを特徴とする請求項1又は2に記載のプログラム作成支援装置。
  4.  前記仮想機械部品は、前記仮想機械部品を表す名称を有する
     ことを特徴とする請求項1又は2に記載のプログラム作成支援装置。
  5.  前記表示部は、前記仮想機械部品を表す模式図と、前記仮想機械部品を表す名称とをあわせて仮想機械部品の一覧として表示する
     ことを特徴とする請求項1又は2に記載のプログラム作成支援装置。
  6.  前記ユーザ定義仮想機械部品の名称を入力するためのユーザ定義仮想機械部品名入力部
     を更に備えることを特徴とする請求項1又は2に記載のプログラム作成支援装置。
  7.  前記ユーザ定義仮想機械部品が有するプログラムの名称を入力するためのユーザ定義仮想機械部品プログラム名入力部
     を更に備えることを特徴とする請求項1又は2に記載のプログラム作成支援装置。
  8.  前記ユーザ定義仮想機械部品を表す模式図を入力するためのユーザ定義仮想機械部品図入力部
     を更に備えることを特徴とする請求項1又は2に記載のプログラム作成支援装置。
  9.  前記仮想機械部品は、実機のデータに基づきモータにより駆動される機械の動作を模擬する機械モデルを生成するためのモデル生成プログラムを有する
     ことを特徴とする請求項1又は2に記載のプログラム作成支援装置。
  10.  少なくとも一つの軸の情報を有し内部動作を規定する演算処理が設定されモーション制御を実行する仮想的な機械部品である仮想機械部品を複数表示する機械部品表示工程と、
     表示された複数の前記仮想機械部品から指定された一つ又は複数の前記機械部品に基づき、表示された複数の前記仮想機械部品とは異なる前記仮想機械部品をユーザ定義仮想機械部品として作成するユーザ定義仮想機械部品作成工程と、
     複数の前記仮想機械部品の各々の内部動作を定義するパラメータを設定する機械部品パラメータ設定工程と、
     前記ユーザ定義仮想機械部品の前記演算処理をユーザプログラムにより編集するユーザ定義仮想機械部品プログラム編集工程と、
     前記ユーザ定義仮想機械部品の前記パラメータを設定するユーザ定義仮想機械部品パラメータ設定工程と、
     前記ユーザ定義仮想機械部品パラメータ設定工程において設定された前記パラメータに基づいてコード化した前記ユーザプログラムをプログラマブルロジックコントローラに出力し前記ユーザプログラムに記述されたモーション制御を実行させるユーザプログラム処理実行コード生成工程と
     を含むことを特徴とするプログラム作成支援方法。
  11.  少なくとも一つの軸の情報を有し内部動作を規定する演算処理が設定されモーション制御を実行する仮想的な機械部品である仮想機械部品を表示部に複数表示する機械部品表示手順と、
     表示された複数の前記仮想機械部品から指定された一つ又は複数の前記機械部品に基づき、表示された複数の前記仮想機械部品とは異なる前記仮想機械部品をユーザ定義仮想機械部品として作成するユーザ定義仮想機械部品作成手順と、
     複数の前記仮想機械部品の各々の内部動作を定義するパラメータを設定する機械部品パラメータ設定手順と、
     前記ユーザ定義仮想機械部品の前記演算処理をユーザプログラムにより編集するユーザ定義仮想機械部品プログラム編集手順と、
     前記ユーザ定義仮想機械部品の前記パラメータを設定するユーザ定義仮想機械部品パラメータ設定手順と、
     前記ユーザ定義仮想機械部品パラメータ設定手順において設定された前記パラメータに基づいてコード化した前記ユーザプログラムをプログラマブルロジックコントローラに出力し前記ユーザプログラムに記述されたモーション制御を実行させるユーザプログラム処理実行コード生成手順と
     をコンピュータに実行させるためのプログラム作成支援プログラム。
  12.  請求項1に記載のプログラム作成支援装置から出力された前記ユーザプログラムと前記パラメータとを保持する記憶部と、
     前記ユーザ定義仮想機械部品に対応した前記ユーザプログラムと前記パラメータとにしたがってモーション制御を実行する実行部と
     を備えることを特徴とするプログラマブルロジックコントローラ。
PCT/JP2021/023732 2021-06-23 2021-06-23 プログラム作成支援装置、プログラム作成支援方法、プログラム作成支援プログラム及びプログラマブルロジックコントローラ WO2022269787A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2021575479A JP7072739B1 (ja) 2021-06-23 2021-06-23 プログラム作成支援装置、プログラム作成支援方法、プログラム作成支援プログラム及びプログラマブルロジックコントローラ
PCT/JP2021/023732 WO2022269787A1 (ja) 2021-06-23 2021-06-23 プログラム作成支援装置、プログラム作成支援方法、プログラム作成支援プログラム及びプログラマブルロジックコントローラ
CN202180099542.7A CN117561483A (zh) 2021-06-23 2021-06-23 程序创建辅助装置、程序创建辅助方法、程序创建辅助程序以及可编程逻辑控制器
DE112021007868.2T DE112021007868T5 (de) 2021-06-23 2021-06-23 Programmierunterstützungsvorrichtung, programmierunterstützungsverfahren, programmierunterstützungsprogramm und speicherprogrammierbare steuerung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/023732 WO2022269787A1 (ja) 2021-06-23 2021-06-23 プログラム作成支援装置、プログラム作成支援方法、プログラム作成支援プログラム及びプログラマブルロジックコントローラ

Publications (1)

Publication Number Publication Date
WO2022269787A1 true WO2022269787A1 (ja) 2022-12-29

Family

ID=81654298

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/023732 WO2022269787A1 (ja) 2021-06-23 2021-06-23 プログラム作成支援装置、プログラム作成支援方法、プログラム作成支援プログラム及びプログラマブルロジックコントローラ

Country Status (4)

Country Link
JP (1) JP7072739B1 (ja)
CN (1) CN117561483A (ja)
DE (1) DE112021007868T5 (ja)
WO (1) WO2022269787A1 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000276508A (ja) * 1999-03-26 2000-10-06 Omron Corp ツール装置及びネットワークシステム構築方法並びに記録媒体
JP2008204237A (ja) * 2007-02-21 2008-09-04 Mitsubishi Electric Corp プログラム作成支援装置およびプログラム実行装置
WO2013111325A1 (ja) * 2012-01-27 2013-08-01 三菱電機株式会社 多軸同期制御装置を駆動制御する同期制御プログラムの表示方法
WO2015145670A1 (ja) * 2014-03-27 2015-10-01 三菱電機株式会社 ユーザインターフェース画面作成装置およびユーザインターフェース画面作成プログラム
WO2016002898A1 (ja) * 2014-07-04 2016-01-07 三菱電機株式会社 位置決め制御装置の同期制御設定方法、プログラム及び位置決め制御装置の制御設定装置
JP2016164751A (ja) * 2015-03-06 2016-09-08 新日鐵住金株式会社 シミュレーションプログラム生成装置、シミュレーションプログラム生成方法、及びプログラム
JP2017079007A (ja) * 2015-10-21 2017-04-27 株式会社キーエンス プログラマブル・ロジック・コントローラ、プログラム作成支援装置、プログラム作成支援方法およびプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001084022A (ja) * 1999-09-13 2001-03-30 Hitachi Ltd 生産プラントエネルギー消費量シミュレーションの入力支援方法
JP2002342384A (ja) * 2001-05-16 2002-11-29 Nkk Corp 配管計装系統図のインテリジェント化方法
JP7128590B2 (ja) * 2019-09-02 2022-08-31 東芝三菱電機産業システム株式会社 プラントエンジニアリング支援装置およびプラントエンジニアリング支援方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000276508A (ja) * 1999-03-26 2000-10-06 Omron Corp ツール装置及びネットワークシステム構築方法並びに記録媒体
JP2008204237A (ja) * 2007-02-21 2008-09-04 Mitsubishi Electric Corp プログラム作成支援装置およびプログラム実行装置
WO2013111325A1 (ja) * 2012-01-27 2013-08-01 三菱電機株式会社 多軸同期制御装置を駆動制御する同期制御プログラムの表示方法
WO2015145670A1 (ja) * 2014-03-27 2015-10-01 三菱電機株式会社 ユーザインターフェース画面作成装置およびユーザインターフェース画面作成プログラム
WO2016002898A1 (ja) * 2014-07-04 2016-01-07 三菱電機株式会社 位置決め制御装置の同期制御設定方法、プログラム及び位置決め制御装置の制御設定装置
JP2016164751A (ja) * 2015-03-06 2016-09-08 新日鐵住金株式会社 シミュレーションプログラム生成装置、シミュレーションプログラム生成方法、及びプログラム
JP2017079007A (ja) * 2015-10-21 2017-04-27 株式会社キーエンス プログラマブル・ロジック・コントローラ、プログラム作成支援装置、プログラム作成支援方法およびプログラム

Also Published As

Publication number Publication date
JP7072739B1 (ja) 2022-05-20
DE112021007868T5 (de) 2024-04-04
CN117561483A (zh) 2024-02-13
JPWO2022269787A1 (ja) 2022-12-29

Similar Documents

Publication Publication Date Title
Wang et al. A review of function blocks for process planning and control of manufacturing equipment
EP1842631B1 (en) Apparatus and method for automatic path generation for an industrial robot
US6442442B1 (en) System level data flow programming interface for a multi-axis industrial control system
JP6950347B2 (ja) 情報処理装置、情報処理方法およびプログラム
US8185219B2 (en) Graphic element with multiple visualizations in a process environment
Tavares et al. Flexible work cell simulator using digital twin methodology for highly complex systems in industry 4.0
Kokkas et al. An Augmented Reality approach to factory layout design embedding operation simulation
JP2011192017A (ja) 表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体
US20190094831A1 (en) Control apparatus, control method, and support apparatus
US20040030418A1 (en) Simulation system for machine simulation and data output of control data for an automation system
JP2019057262A (ja) 制御装置及びデータ構造
JP6961130B1 (ja) シミュレーションプログラム、シミュレーション装置、およびシミュレーション方法
WO2022269787A1 (ja) プログラム作成支援装置、プログラム作成支援方法、プログラム作成支援プログラム及びプログラマブルロジックコントローラ
US20220155752A1 (en) Smart manufacturing framework
JP6695679B2 (ja) プログラマブル・ロジック・コントローラ、プログラム作成支援装置、プログラム作成支援方法およびプログラム
Rodriguez et al. Atlas_GcodeSender: a Graphical User Interface for Control of a Robotics Additive Manufacturing Platform
Martinova et al. Development of a cross-platform software application for programming CNC machine tools
Jin et al. Distributed VR for collaborative design and manufacturing
JP2009048396A (ja) モータモーション用シミュレータ
WO2022190558A1 (ja) 情報処理装置、方法およびプログラム
WO2022162960A1 (ja) プログラム生成装置、プログラム生成プログラムおよびプログラム生成方法
Severa et al. Unified framework for generation of 3D web visualization for mechatronic systems
Prica et al. Complex Modeling for Feed Forward Control System for Furnace Temperature Optimization
Djizi et al. A quadrotor controlled in real-time using hand gestures and ROS2 multi-node communication within GAZEBO 3D environment
Severa et al. New 3D HMI tool for robot path planning based on latest W3C standards

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2021575479

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: 21947073

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202180099542.7

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 112021007868

Country of ref document: DE