WO2020026622A1 - Dispositif de commande - Google Patents

Dispositif de commande Download PDF

Info

Publication number
WO2020026622A1
WO2020026622A1 PCT/JP2019/024145 JP2019024145W WO2020026622A1 WO 2020026622 A1 WO2020026622 A1 WO 2020026622A1 JP 2019024145 W JP2019024145 W JP 2019024145W WO 2020026622 A1 WO2020026622 A1 WO 2020026622A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
editing
control
unit
application
Prior art date
Application number
PCT/JP2019/024145
Other languages
English (en)
Japanese (ja)
Inventor
純児 島村
佳代子 磯谷
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Publication of WO2020026622A1 publication Critical patent/WO2020026622A1/fr

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
    • 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
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Definitions

  • the present invention relates to a control device that executes control of a control target.
  • a ladder program for determining how to use a plurality of control applications such as a machine tool and a robot used in a manufacturing site in cooperation with each other and realizing the use is provided by a machine tool maker.
  • These ladder programs cannot be edited by the user, and when the user wants to add a function, it is necessary to request a machine tool maker to remodel the ladder program.
  • the programs are independent for each control application, and when the control applications perform cooperative operations, it is necessary to understand what operation each control application uses from each program.
  • a technology is provided so that a user can determine a cooperative operation between control applications by a machining program (for example, see Patent Document 1).
  • a user can input a machining program including a machine tool command and a robot command to a control device that controls the machine tool and the robot.
  • the control device transfers the machine tool command sentence included in the machining program to the machine tool control means, and transfers the robot command sentence to the robot control means.
  • a ladder program for linking the machine tool and the robot is not required, and the machine tool and the robot can be linked by a user-defined machining program.
  • One embodiment of the present invention has been made in view of the above-described circumstances, and has an object to realize a technique that can collectively create a PLC program and one or a plurality of application programs called from the PLC program.
  • a control device includes a first program that is entirely scanned each time an execution is performed, and a second program that is called and sequentially executed from the first program, An editing unit that provides a development tool that can be edited in one development environment in parallel; a program management unit that builds the first program and the second program collectively; A first execution unit that generates a command for controlling the first drive device in each control cycle by executing a program; and a second drive unit that sequentially executes a plurality of command statements included in the second program. And a second execution unit that sequentially generates a command for controlling the apparatus.
  • a PLC program and one or a plurality of application programs called from the PLC program can be created together.
  • FIG. 2 is a diagram illustrating an outline of a system environment in which the integrated controller according to the first embodiment of the present invention is used.
  • FIG. 3 is a block diagram illustrating a main configuration of the integrated controller.
  • FIG. 3 is a schematic diagram illustrating an example of a functional configuration of an integrated controller. It is a figure showing an example of an edit window. It is a figure showing the modification of an edit window. It is a figure showing the modification of an edit window.
  • 9 is a flowchart illustrating a flow of a process of the integrated controller. 5 is a timing chart of processing execution of the integrated controller.
  • FIG. 7 is a diagram illustrating a display example during execution of an application program.
  • FIG. 3 is a schematic diagram conceptually showing an intermediate code.
  • FIG. 9 is a schematic diagram for describing an example of generating an intermediate code. It is a block diagram which shows the principal part structure of the integrated controller of a modification.
  • FIG. 1 is a diagram illustrating an outline of a system environment in which an integrated controller 100 which is an example of a control device according to the present embodiment is used.
  • the integrated controller 100 is connected to a control target such as the robot 520 and the machine tool 530 via the motion network cable 2. Further, the integrated controller 100 is connected to the server device 300 via the network 6 such as Ethernet (registered trademark).
  • the integrated controller 100 is a device that comprehensively controls a control target such as the robot 520 and the machine tool 530.
  • the integrated controller 100 also functions as a PLC (Programmable Logic Controller) that controls a servo driver 540 that drives a servo motor 542 of the belt conveyor 544 according to various sensor inputs.
  • PLC Programmable Logic Controller
  • the integrated controller 100 is an apparatus in which a PLC program and an application program for controlling each of control applications such as the robot 520 and the machine tool 530 are integrally mounted.
  • the integrated controller 100 executes a program corresponding to the control target, and controls these control targets, thereby synchronously controlling the production line and each control application.
  • the PLC program is a program described in a ladder language, and is entirely scanned every time it is executed.
  • the PLC program is described, for example, according to the international standard IEC61131-3 defined by the International Electrotechnical Commission (IEC).
  • a robot program for controlling the robot 520 is generally described in a systematic so-called robot language.
  • the NC program for controlling the machine tool 530 is generally described by G-code standardized by ISO.
  • the integrated controller 100 provides a user with a development tool that enables a PLC program and an application program to be edited in one development environment. Further, the integrated controller 100 builds and manages the PLC program and the application program collectively.
  • the integrated controller 100 provides the user with a development tool that controls the production line and each control application synchronously, and enables a program corresponding to each control target to be edited in one development environment. Thereby, the user can collectively create the PLC program and the application program of the control application such as the robot 520 and the machine tool 530 which is called from the PLC program.
  • FIG. 1 is a diagram illustrating an outline of a system environment in which the integrated controller 100 is used.
  • FIG. 2 is a block diagram illustrating a main configuration of the integrated controller 100.
  • FIG. 3 is a schematic diagram illustrating an example of a functional configuration of the integrated controller 100.
  • the integrated controller 100 is an industrial controller and controls a device to be controlled.
  • the integrated controller 100 is connected to one or more field devices 500 via the motion network cable 2, and exchanges data with the field devices 500.
  • the integrated controller 100 includes the touch panel 146.
  • the touch panel 146 functions as an input unit that receives a user operation on the integrated controller 100 and also functions as a display unit that displays a calculation result by the integrated controller 100.
  • the motion network cable 2 employs a bus or a network that performs fixed-cycle communication and guarantees data arrival time.
  • EtherCAT registered trademark
  • EtherNet / IP registered trademark
  • DeviceNet registered trademark
  • CompoNet registered trademark
  • the field device 500 is a remote I / O (Input / Output) device 510, a robot 520, a robot controller 522, a machine tool 530, a servo driver 540, a servo motor 542, and the like used in a production line or the like.
  • Each of the field devices 500 operates, for example, as follows in response to a command generated by the integrated controller 100.
  • the servomotor 542 drives the conveyor 544 to transport the work W to the work table 546 arranged in front of the NC machine tool 530.
  • the robot 520 arranges the unprocessed work W on the work table 546 in the NC machine tool 530, takes out the processed work W on the NC machine tool 530, and arranges the work W on the work table 546.
  • the integrated controller 100 exchanges data with the field device 500 in a very short cycle on the order of several hundred ⁇ sec to several tens msec, and transmits data such as a control command to the field device 500.
  • the integrated controller 100 is connected to the server device 300 and one or more display devices 400 via the network 6.
  • the network 6 may employ a general network protocol such as Ethernet (registered trademark) or EtherNet / IP (registered trademark).
  • the server device 300 is a database system, a manufacturing execution system (MES: Manufacturing Execution System), or the like.
  • the server device 300 may have a function of acquiring information from each of the field devices 500 and monitoring and managing the entire production, and may also handle order information, quality information, shipping information, and the like.
  • the display device 400 displays contents corresponding to a user operation on the integrated controller 100.
  • the display device 400 graphically displays a calculation result or the like by the integrated controller 100.
  • FIG. 2 is a block diagram illustrating a hardware configuration example of the integrated controller 100.
  • the integrated controller 100 includes a processor 102, a chipset 104, a main memory 106, and a storage 108. Further, the integrated controller 100 includes an upper network controller 110, a memory card interface 114, an internal bus controller 120, and a field network controller 130. Further, the integrated controller 100 includes a touch panel 146.
  • the processor 102 is an arithmetic processing unit called a CPU unit, and includes a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), etc., although not shown.
  • a configuration having a plurality of cores may be adopted, or a plurality of processors 102 may be arranged. That is, the integrated controller 100 has one or more processors 102 and / or a processor 102 having one or more cores.
  • the processor 102 reads out various programs stored in the storage 108, expands the programs in the main memory 106, and executes the programs to implement control according to a control target and various processes described below.
  • the chipset 104 realizes the processing of the integrated controller 100 as a whole by controlling the processor 102 and its peripheral elements.
  • the main memory 106 is constituted by a volatile storage device such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory).
  • a volatile storage device such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory).
  • the storage 108 is constituted by a non-volatile storage device such as a hard disk drive (HDD) or a solid state drive (SSD).
  • the storage 108 stores the system program 34 for the integrated controller 100 to realize basic functions.
  • the storage 108 stores a sequence program 30 created according to a device to be controlled by the integrated controller 100, and one or more application programs 32.
  • the sequence program 30 is a PLC program, and is executed at fixed control intervals. The entire sequence program 30 is scanned every time it is executed.
  • the integrated controller 100 performs sequence control based on the state of the target device, signals from sensors, and the like, such as controlling a driving device (servo motor) according to a sensor input.
  • the application program 32 is a program for controlling a control application such as the robot 520 and the machine tool 530, and is a robot program for controlling the robot 520 and an NC program for controlling the machine tool 530.
  • the application program 32 is called from the sequence program 30 and is sequentially executed.
  • the sequence program 30 is also called a first program
  • the application program 32 is also called a second program.
  • the upper network controller 110 controls data exchange with the server device 300, the display device 400, and the like via the upper network 6.
  • the memory card interface 114 is configured so that the memory card 116 is detachable, and is capable of writing data to the memory card 116 and reading various data from the memory card 116.
  • the internal bus controller 120 controls data exchange with the I / O unit 122 mounted on the integrated controller 100.
  • the field network controller 130 controls data exchange with a field device connected via the motion network cable 2.
  • the present invention is not limited to the configuration in which the processor 102 provides a necessary function by executing a program, and a part or all of the provided function is implemented using a dedicated hardware circuit (for example, an ASIC or an FPGA). May be.
  • the main part of the integrated controller 100 may be realized by using hardware according to a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, a plurality of OSs (Operating Systems) having different applications may be executed in parallel using virtualization technology, and a required application may be executed on each OS.
  • OSs Operating Systems
  • the touch panel 146 functions as an input / output unit of the integrated controller 100.
  • FIG. 3 is a schematic diagram illustrating an example of a functional configuration of the integrated controller 100.
  • the integrated controller 100 includes an editing unit 154, a program management unit 156, an input unit 158, and a display unit 159.
  • the integrated controller 100 includes an IEC program processing unit 150, a field network interface 180, an upper network interface 182, a first control application processing unit 161, a second control application processing unit 162,.
  • Unit 160 a first execution unit
  • the control application processing unit 160 is also called a second execution unit.
  • the editing unit 154 provides a development tool that can create or edit the sequence program 30 and the application program 32 executed by the integrated controller 100 in one development environment in parallel.
  • the sequence program 30 and the application program 32 created or edited by the editing unit 154 are stored in the storage 108.
  • the editing unit 154 may provide a setting environment for setting parameters (configuration) of various devices connected to the integrated controller 100.
  • the program management unit 156 builds the sequence program 30 created or edited by the editing unit 154 and the application program 32 by compiling and linking them together.
  • the program management unit 156 converts the sequence program 30 into an executable form and converts the application program 32 into a plurality of intermediate codes by building the sequence program 30 and the application program 32 collectively. As described above, the program management unit 156 builds the sequence program 30 and the application program 32 collectively, and converts the application program 32 into an intermediate code before execution.
  • the program management unit 156 stores the built sequence program 30, application program 32, and intermediate code in the storage 108.
  • the intermediate code is a concept including an instruction for calculating a command value for each control cycle, and includes one or more instructions or one or more functions.
  • the input unit 158 receives an input of a user operation.
  • the display unit 159 displays a screen corresponding to a user operation on the input unit 158.
  • the touch panel 146 shown in FIG. 1 also functions as the input unit 158 and the display unit 159.
  • the user can edit the sequence program 30 and the application program 32 by the editing unit 154 by operating the touch panel 146.
  • the IEC program processing unit 150 executes (scans) the sequence program 30 for each predetermined control cycle, and is controlled by the PLC program for each control cycle in accordance with the motion command included in the sequence program 30.
  • One or more commands for controlling a driving device (first driving device) such as a servo driver 540 are generated and output.
  • the IEC program processing unit 150 determines whether or not each input condition (such as a sensor input value) included in the sequence program 30 is satisfied at every predetermined control cycle (for example, every 1 ⁇ sec).
  • the command output from the IEC program processing unit 150 is stored in the main memory 106.
  • the control application processing unit 160 executes a control application (second driving device) such as the robot 520 or the machine tool 530 by sequentially executing each line of a plurality of command statements included in the application program 32 called from the sequence program 30. Commands to be controlled are sequentially generated. When the input conditions included in the sequence program 30 are satisfied, the IEC program processing unit 150 calls the application program 32 corresponding to the input conditions.
  • a control application second driving device
  • the IEC program processing unit 150 calls the application program 32 corresponding to the input conditions.
  • control application processing unit 160 executes the command value calculation process in synchronization with the calculation process by the IEC program processing unit 150.
  • the control application processing unit 160 generates a command according to the intermediate code 35 stored in the storage 108 in advance, and outputs the generated command to the main memory 106.
  • the IEC program processing unit 150 can refer to the processing result of the control application processing unit 160 stored in the main memory 106.
  • the field network interface 180 includes one or a plurality of commands (basically, a logical value) generated by the IEC program processing unit 150 and one or a plurality of commands (basically, the command) generated by the control application processing unit 160. , Numerical values) to the field device 500 for each control cycle.
  • FIG. 4 is a diagram illustrating an editing window 601 provided by the editing unit 154, which is an example of a user interface of a development tool for editing the sequence program 30 and the application program 32.
  • the edit window 601 is displayed on the touch panel 146 by the function of the display unit 159, and an input corresponding to the touch position of the user is detected by the input unit 158.
  • the editing window 601 includes a first area 611 and a second area 612.
  • a program tree is displayed in the first area 611.
  • the source code of the program selected from the program tree is displayed in the second area 612.
  • a tool box 615 including a tool used for editing the program displayed in the program editing area 614 is displayed in the second area 612. The user can create or edit the sequence program 30 by introducing a tool in the tool box 615 into the program editing area 614 by drag and drop, for example.
  • the program tree displayed in the first area 611 includes the logic of the sequence program 30 (for example, the program A and the program B) and the application program 32 for controlling the second drive device such as the robot 520 and the machine tool 530 (for example, , RC1, RC2, RC_Sample, NC1, NC2, NC_Sample).
  • the sequence program 30 for example, the program A and the program B
  • the application program 32 for controlling the second drive device such as the robot 520 and the machine tool 530 (for example, , RC1, RC2, RC_Sample, NC1, NC2, NC_Sample).
  • RC1, RC2, NC1, NC2, etc. are programs created by the user. Further, among the application programs 32 included in the program tree, RC_Sample and NC_Sample are sample programs prepared in advance by the manufacturer of the integrated controller 100, for example. NC_Sample of the sample program is, for example, a source code based on a G code standardized by ISO.
  • the editing unit 154 When the user selects a sample program from the program tree in the first area 611, the editing unit 154 enables the selected sample program to be used as the editable application program 32.
  • FIG. 4 shows an example in which the user selects the program A of the PLC program in the first area 611. .. Are displayed on the tabs 613a, 613B... Respectively, and are displayed in the program editing area 614 by switching the tabs 613a, 613B. May be able to switch programs.
  • the program editing area 614 is executed when a series of logic 620 of the vertically long sequence program 30 described in the ladder language and each condition (X1, X2,%) Of the logic 620 are satisfied.
  • the programming blocks 621, 622,... In which the contents of the application program 32 are described are displayed.
  • the contents of the programming block 621 executed when the condition of X1 of the sequence program 30 is satisfied is an NC program described in G code.
  • the contents of the programming block 622 executed when the condition of X2 of the sequence program 30 is satisfied are a robot program described in a robot language.
  • the editing unit 154 enables the editing of the PLC program described in the ladder language, the NC program described in the G code, and the robot program described in the robot language in one development environment. That is, the editing unit 154 enables a plurality of programs having different control schedules, devices to be controlled, and programming languages to be edited in one development environment.
  • the user specifies an editing position in the sequence program 30 (logic) in the first area 611 or the second area 612, and selects a sample program to be used.
  • the editing unit 154 sets to call the selected sample program from the designated position in the sequence program 30.
  • the code of the selected sample program is displayed in the program editing area 614 so as to be editable.
  • a programming block 621 is provided, and the NC_Sample source code is included in the programming block 621. Be expanded.
  • the programming block 621 also functions as a sub window (including a scroll bar) in which the source code can be edited.
  • the sample program contains multiple statements.
  • a program in which a plurality of command statements of MOVEP1, MOVEP2,... Are sequentially executed is shown.
  • the user can edit a command sentence displayed in each of the blocks 621 and 622 of the program editing area 614 by using a written language.
  • the user can save the application program including the statement edited in the program editing area 614 as a new application program, or can overwrite and save an existing application program.
  • the program defined by the user and the sample program prepared in advance have high applicability, and the user can easily create the user-defined program.
  • FIGS. 5 and 6 are views showing an editing window 602 provided by the editing unit 154, which is another example of a user interface.
  • the editing window 602 includes a first area 611 and a second area 612.
  • the first area 611 a program tree is displayed.
  • the second area 612 the source code of the program selected from the program tree is displayed.
  • the program tree displayed in the first area 611 includes the logic of the sequence program 30 (for example, the program A and the program B) and the application program 32 (for example, RC1, RC2, RC_Sample, NC1, NC2, and NC2) called from the sequence program 30. NC_Sample).
  • the editing unit 154 displays a series of logic 630 of the sequence program 30 selected by the user in the program editing area 614 of the editing window 602. Further, the editing unit 154 displays the application program 32 called from the sequence program 30 as blocks 631 and 632 in the sequence program 30 in the program editing area 614. Further, the editing unit 154 displays, in the program editing area 614, tabs 613a, 613b, and 613c corresponding to the sequence program 30 selected by the user and the application program 32 called from the sequence program 30, respectively. The editing unit 154 may be able to highlight the tab currently displayed in the program editing area 614 to clearly indicate the currently selected tab to the user.
  • the editing unit 154 displays the source code of the selected application program 32 in the program editing area 614. Let it.
  • FIG. 6 shows a display example of the edit window 602 when the user selects the block 631 or the tab 613b.
  • the editing unit 154 displays the source code of the robot program RC1 corresponding to the block 631 or the tab 613b selected by the user in the program editing area 614 in an editable manner. The user can edit the source code displayed in the program editing area 614 using the written language.
  • editing unit 154 may highlight the tab selected in the program editing area 614 and highlight the selected program in the program tree displayed in the first area 611. Good.
  • FIG. 7 is a flowchart showing the flow of processing of the integrated controller 100 when a program is created or edited.
  • the user creates a program in the editing windows 601 and 602 provided by the editing unit 154 (step S11).
  • step S11 the user creates or edits the sequence program 30 (step S11a) and creates or edits the application program 32 called from the sequence program 30 in the editing windows 601 and 602 provided by the editing unit 154 (step S11b).
  • the program management unit 156 When a user creates or edits a program, the program management unit 156 collectively checks the grammar of the sequence program 30 and the application program 32 called from the sequence program according to the created or edited program. Then, it is compiled and built (step S12). The program management unit 156 converts the sequence program 30 into an execution format, and converts the application program 32 into a plurality of intermediate codes.
  • the program management unit 156 stores the built sequence program 30 and application program 32 in the storage 108.
  • the program management unit 156 stores the built sequence program 30 in the storage in both an execution format and a source code format. Further, the program management unit 156 associates the intermediate code of the built application program 32 with the source code and stores both in the storage 108.
  • the IEC program processing unit 150 scans the entire sequence program 30 stored in the storage 108 at a predetermined control cycle, and generates a control signal to the target device.
  • the control application processing unit 160 sequentially executes a plurality of intermediate codes corresponding to a plurality of command statements of the application program 32 called by the sequence program 30 one line at a time (one command statement) (step S13), and sends the command to the target device. To generate a control signal.
  • command words of the application program 32 are converted into the intermediate code when the program is built, it is not necessary to convert the instruction word into the intermediate code during the execution of the program, and the execution of the application program 32 can be performed at high speed. Become.
  • FIG. 8 is a timing chart showing an example of the timing of processing execution in the integrated controller 100.
  • the integrated controller 100 executes the sequence program 30 at each control cycle T1. Further, the integrated controller 100 executes the application program 1 which is one of the application programs 32 at every application execution cycle T21. Further, the integrated controller 100 executes the application program 2 which is another application program 32 at each application execution cycle T22.
  • the integrated controller 100 executes the sequence program 30 as a high-priority task by the function of the IEC program processing unit 150.
  • the high-priority task in each control cycle T1, an input / output refresh process 10, an output process 12 for outputting a control command value according to a sequence command included in the sequence program, and a control command value according to a motion command included in the sequence program are performed.
  • An output process 16 for outputting, an output process 14-1 for outputting a control command value according to the application program 1, and an output process 14-2 for outputting a control command value according to the application program 2 are performed.
  • the execution of the application program 1 and the application program 2 are set as low priority tasks 1 and 2, respectively.
  • the first control application processing unit 161 sequentially executes a plurality of intermediate codes corresponding to the statement of the application program 1 at each application execution cycle T21 (in the example shown in FIG. 8, twice the control cycle T1).
  • the second control application processing unit 162 sequentially executes a plurality of intermediate codes corresponding to the statement of the application program 2 at every application execution cycle T22 (in the example shown in FIG. 8, three times the control cycle T1). .
  • Each of the low-priority tasks only needs to be able to complete processing within the application execution cycle T21 or the application execution cycle T22 longer than the control cycle T1.
  • one of the low-priority tasks may be suspended (suspended) as shown in FIG.
  • one of the low-priority tasks is executed in parallel without suspending in a suspended state. May be processed.
  • the first control application processing unit 161 and the second control application processing unit 162 correspond to the intermediate statement corresponding to the statement called by the sequence program 30.
  • the codes are sequentially executed, and a control command value is calculated.
  • the application execution periods T21 and T22 can be set as integer multiples of the control period T1, or can be set to the same length as the control period T1, according to the type of the target application program 32.
  • the user can use the setting screen to determine which application program 32 is to be executed and which of the low-priority tasks 1 and 2 is to be executed. A configuration that can be set may be used.
  • FIG. 9 is a diagram showing an example of information displayed on the display unit 159 while the application program 32 is being executed.
  • the display unit 159 displays which statement in the application program 32 is being executed.
  • the intermediate code and the source code are stored in the storage 108 in association with each other. This allows the control application processing unit 160 to display which command statement in the application program 32 is being executed while the application program 32 is being executed.
  • the control application processing unit 160 displays a plurality of statements included in the application program 32 on the display unit, and executes any one of the statements by highlighting or enclosing the statement being executed. It may be shown to the user whether or not the user is performing the operation.
  • FIG. 10 is a schematic diagram conceptually showing an intermediate code generated in the integrated controller 100.
  • the application program 32 includes sequentially executed statements, and the time required for sequentially executing each statement changes according to the contents of each statement. Therefore, it is not easy to calculate the command value for each control cycle.
  • FIG. 10 shows, as an example of the application program 32, a code described in the G language used in the CNC.
  • the program management unit 156 interprets one or a plurality of command statements described in the application program 32, and calculates an intermediate value for calculating a command value for each control cycle based on the interpreted content. Generate code 35. Since the intermediate code 35 is generated for each one or a plurality of command statements described in the application program 32, one or a plurality of intermediate codes 35 are generated from one application program 32.
  • each of the intermediate codes 35 a function capable of calculating a command value by inputting the time (or time) of the control cycle may be defined. That is, the intermediate code 35 may be a function for the control application processing unit 160 to calculate a command value for each control cycle. By using such a function, the control application processing unit 160 can sequentially execute the intermediate code 35 and calculate a command value in each control cycle.
  • the control application processing unit 160 uses the intermediate code 1 and The command value is calculated periodically over a period.
  • the command values of the other intermediate codes 2 and 3 can be basically calculated over a plurality of control cycles.
  • the program management unit 156 generates an intermediate code from the application program 32 when building the sequence program 30 and the application program 32 collectively.
  • the application program 32 can be executed in synchronization with the execution of the sequence program 30 by the IEC program processing unit 150.
  • FIG. 11 is a schematic diagram for explaining an example of generating an intermediate code in the integrated controller 100.
  • the application program 32 that specifies the trajectory to be operated is sequentially executed, first, the command sentence included in the application program 32 is interpreted line by line ((1) program interpretation), The generated trajectory is internally generated ((2) trajectory generation). After the relationship between the trajectory and the position for each control cycle is determined, one or a plurality of functions indicating the trajectory generated internally by the integrated controller 100 are generated ((3) Function generation for each section) ).
  • the program management unit 156 may be configured to use the function of inputting the time of the control cycle and outputting the command value.
  • the trajectory generated internally by the integrated controller 100 is a combination of straight lines
  • the trajectory for each straight section is expressed by the relationship between time and speed.
  • the indicated functions f1 (t), f2 (t), f3 (t) are output.
  • the program management unit 156 may use the functions f1 (t), f2 (t), and f3 (t) output in this way as the intermediate code 35.
  • the program management unit 156 may output a single function defining the trajectory shown in FIG. 11 as an intermediate code. What kind of intermediate code 35 the program management unit 156 outputs may be appropriately designed in consideration of a required control cycle time width and the like.
  • an application program using the G language has been described as an example.
  • the present invention is not limited to this, and any program that is sequentially executed by an interpreter method such as an arbitrary robot language can be used. Any language may be used.
  • the program management unit 156 may output an arbitrary function as the intermediate code 35 according to the language used in the application program.
  • FIG. 12 is a diagram illustrating a functional configuration of the integrated controller 100 according to the modification.
  • the functional configuration of the integrated controller 100 is not limited to the configuration described with reference to FIG.
  • the integrated controller 100 may be configured to integrally include the input unit 158 and the display unit 159, or may not include the input unit 158 and the display unit 159 as illustrated in FIG. It may be a configuration.
  • the editing unit 154 of the integrated controller 100 may be able to display the editing window 601 on the display device 400 connected to the network 6 via the upper network interface 182. Then, the user refers to the editing window 601 displayed on the display device 400 and edits or creates a program from a touch panel provided on the display device 400 or a PC connected to the display device 400. It may be possible.
  • the editing unit 154 of the integrated controller 100 receives a user input from the display device 400 via the network 6 and causes the display device 400 to display the development environment.
  • the display device 400 functions as the input unit 158 and the display unit 159 illustrated in FIG.
  • the editing unit 154 of the integrated controller 100 may be able to provide a function of creating or editing a program executed on the integrated controller 100 online.
  • the control application processing unit 160 may be able to cause the display device 400 to display which statement in the application program is being executed during the execution of the application program.
  • control blocks of the integrated controller 100 are logic circuits (hardware) formed on an integrated circuit (IC chip) or the like. ) Or by software.
  • the integrated controller 100 includes a computer that executes instructions of a program that is software for realizing each function.
  • the computer includes, for example, one or more processors and a computer-readable recording medium storing the program. Then, in the computer, the object of the present invention is achieved when the processor reads the program from the recording medium and executes the program.
  • a CPU Central Processing Unit
  • the recording medium in addition to “temporary tangible medium”, for example, ROM (Read Only Memory), tape, disk, card, semiconductor memory, programmable logic circuit, and the like can be used. Further, a RAM (Random Access Memory) for expanding the program may be further provided.
  • the program may be supplied to the computer via an arbitrary transmission medium (a communication network, a broadcast wave, or the like) capable of transmitting the program.
  • a transmission medium a communication network, a broadcast wave, or the like
  • one embodiment of the present invention can also be realized in the form of a data signal embedded in a carrier wave, in which the program is embodied by electronic transmission.
  • a control device edits a first program, which is entirely scanned each time it is executed, and a second program, which is called from the first program and is sequentially executed, in one development environment in parallel.
  • An editing unit that provides a possible development tool; a program management unit that builds the first program and the second program in a lump; and executes the first program at a predetermined control cycle to perform the control.
  • a first execution unit that generates a command to control the first drive device in each cycle; and sequentially executes a plurality of command statements included in the second program to sequentially generate a command to control the second drive device. And a second execution unit.
  • the first program (PLC program) and the second program called from the first program can be collectively created or edited in the same development environment and built.
  • the user can easily create or edit the first program and the second program written in different languages and executed by different scheduling methods in the same development environment. Therefore, for example, a first program for controlling a production line and a plurality of application programs for controlling each of a plurality of control targets (control applications) having different control periods can be easily created or edited. , Can be controlled synchronously by a user-defined program.
  • the editing unit is configured to display, as the development environment, a first area for displaying a program tree and a source code of the selected program.
  • the user can confirm the processing flows of the first program and the second program at the same time in the same editing window. Further, the user can create or edit the first program and the second program called from the first program by an intuitive operation in the editing window. Further, since a sample program that can be edited by the user is provided in the editing window, the user can easily create a user-defined program.
  • the editing unit when a user specifies a position in the first program and selects the sample program, the editing unit performs The configuration is such that the selected sample program is set to be called from a designated position, and the code of the selected sample program can be edited.
  • the user can define the first program and the second program called from the first program by an intuitive operation, and synchronize the first program and the second program. Can be done. Further, the user can edit the code of the selected sample program by a simple operation of selecting a position to be edited.
  • the second execution unit may execute any one of the command statements in the second program during execution of the second program. Is displayed.
  • the user can confirm which statement is being executed from the displayed information. Therefore, the user can easily confirm whether the control application is performing an intended operation based on the defined statement, and can create or edit the statement as appropriate.
  • the program management unit converts the first program into an executable form, converts the second program into a plurality of intermediate codes,
  • the two execution units are configured to sequentially execute the plurality of intermediate codes corresponding to the plurality of instruction statements.
  • the first program when the program is built, the first program is converted into an executable form, and the second program is converted into a plurality of intermediate codes.
  • the second program is decoded at the time of executing the program, the intermediate code is generated, and the intermediate code is temporarily queued and executed.
  • the conversion to the intermediate code is not required at the time of executing the program, so that the application program can be executed at high speed.
  • the editing unit is configured to display, as the development environment, a first area for displaying a program tree and a source code of the selected program.
  • the user can define the first program and the second program called from the first program by an intuitive operation, and synchronize the first program and the second program. Then, the program can be created or edited. Further, the user can edit the code of the selected sample program by a simple operation of selecting a block or tab indicating the program to be edited.
  • Sequence program (1st program, PLC program) 32 Application program (second program) 34 Intermediate code 100 Integrated controller 146 Touch panel 150 IEC program processing unit (first execution unit) 154 editing unit 156 program management unit 158 input unit 159 display unit 160 control application processing unit (second execution unit) 161 first control application processing unit (second execution unit) 162 second control application processing unit (second execution unit) 500 Field device (control application) 520 Robot 530 Machine tool 540 Servo driver 601, 602 Edit window 611 First area 612 Second area 613a, 613b, 613c Tab 621, 622, 631, 632 Block

Abstract

L'invention concerne une technologie permettant de créer simultanément un programme de PLC et un ou plusieurs programmes d'application à appeler à partir du programme de PLC. L'invention fait appel à : une unité d'édition (154) destinée à fournir un outil de développement au moyen duquel il est possible d'éditer un premier programme (30) et un second programme (32) dans un environnement de développement ; une unité de gestion de programme (156) permettant de construire le premier programme (30) et le second programme (32) selon un lot ; une première unité d'exécution (150) destinée à exécuter le premier programme (30) à chaque occurrence d'une période de commande prescrite ; et une seconde unité d'exécution (160) servant à exécuter successivement une pluralité d'instructions comprises dans le second programme.
PCT/JP2019/024145 2018-07-30 2019-06-18 Dispositif de commande WO2020026622A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018142297A JP7077848B2 (ja) 2018-07-30 2018-07-30 制御装置
JP2018-142297 2018-07-30

Publications (1)

Publication Number Publication Date
WO2020026622A1 true WO2020026622A1 (fr) 2020-02-06

Family

ID=69231611

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/024145 WO2020026622A1 (fr) 2018-07-30 2019-06-18 Dispositif de commande

Country Status (2)

Country Link
JP (1) JP7077848B2 (fr)
WO (1) WO2020026622A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022034848A1 (fr) * 2020-08-11 2022-02-17 ファナック株式会社 Système de commande numérique et procédé de commande de robot

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022244269A1 (fr) * 2021-05-21 2022-11-24 日本電信電話株式会社 Dispositif de commande pour dispositif informatique

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0772920A (ja) * 1993-09-03 1995-03-17 Hitachi Ltd Faシステムの制御方法及び装置
JPH0938876A (ja) * 1995-08-01 1997-02-10 Ricoh Co Ltd シミュレーション装置
JPH09171405A (ja) * 1995-12-20 1997-06-30 Hitachi Ltd Faシステムの制御装置と方法、制御プログラム生成方法
JP2001282331A (ja) * 2000-03-30 2001-10-12 Toyoda Mach Works Ltd 工作機械シミュレーション装置
JP2009104227A (ja) * 2007-10-19 2009-05-14 Omron Corp Plc制御プログラム開発装置及びプログラム
JP2014241018A (ja) * 2013-06-11 2014-12-25 ファナック株式会社 工作機械とロボットを制御する制御装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6549378B2 (ja) 2015-01-09 2019-07-24 株式会社ジェイテクト プログラマブルコントローラのモニタ装置
JP6550268B2 (ja) 2015-05-27 2019-07-24 株式会社キーエンス プログラム作成支援装置、プログラムおよび判別方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0772920A (ja) * 1993-09-03 1995-03-17 Hitachi Ltd Faシステムの制御方法及び装置
JPH0938876A (ja) * 1995-08-01 1997-02-10 Ricoh Co Ltd シミュレーション装置
JPH09171405A (ja) * 1995-12-20 1997-06-30 Hitachi Ltd Faシステムの制御装置と方法、制御プログラム生成方法
JP2001282331A (ja) * 2000-03-30 2001-10-12 Toyoda Mach Works Ltd 工作機械シミュレーション装置
JP2009104227A (ja) * 2007-10-19 2009-05-14 Omron Corp Plc制御プログラム開発装置及びプログラム
JP2014241018A (ja) * 2013-06-11 2014-12-25 ファナック株式会社 工作機械とロボットを制御する制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022034848A1 (fr) * 2020-08-11 2022-02-17 ファナック株式会社 Système de commande numérique et procédé de commande de robot

Also Published As

Publication number Publication date
JP2020021124A (ja) 2020-02-06
JP7077848B2 (ja) 2022-05-31

Similar Documents

Publication Publication Date Title
CN109388107B (zh) 控制装置
CN109582397B (zh) 控制系统以及控制装置
US10761884B2 (en) Control device for operating multiple types of programs in different execution formats
US20190095246A1 (en) Support device and non-transitory storage medium
JP2019053459A (ja) 制御装置および制御方法
JP6900863B2 (ja) 制御装置、制御方法および制御プログラム
US10606246B2 (en) Control device and control method with various command values in a shared memory providing access to various program execution and command value operation parts in each control cycle
WO2020026622A1 (fr) Dispositif de commande
JP7310465B2 (ja) 同期制御装置、同期制御システム、同期制御方法、及びシミュレーション装置
JP2007068292A (ja) Plc機能内蔵型ドライブ制御装置
JP6881174B2 (ja) 制御装置および制御方法
EP4036670A1 (fr) Dispositif de commande
JP7375632B2 (ja) 制御システムおよびサポート装置
JP7396063B2 (ja) データ処理方法
WO2022254927A1 (fr) Dispositif de traitement d'informations, système de commande et programme pour développer un programme de commande
WO2022249713A1 (fr) Système de commande, programme de système et procédé de débogage
WO2021019818A1 (fr) Système de commande, procédé d'analyse et programme
WO2020137522A1 (fr) Dispositif de commande de synchronisation, système de commande de synchronisation, procédé de commande de synchronisation et dispositif de simulation

Legal Events

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

Ref document number: 19845439

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19845439

Country of ref document: EP

Kind code of ref document: A1