Operating program writing system

The system allows for block-based validation and editing of operating programs, addressing the need for efficient validation and modification in robot systems, reducing time and effort in assessing and correcting program interference.

DE102014000972B4Active Publication Date: 2026-02-12FANUC LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
DE102014000972
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2013-01-30
Filing Date
2014-01-24
Publication Date
2026-02-12
Estimated Expiration
2034-01-24

AI Technical Summary

Technical Problem

Existing operating program systems for robots and peripheral devices require actual execution to validate their validity, leading to potential interference issues and time-consuming corrections, and are difficult to modify efficiently when changes occur.

Method used

A system that allows for the validation of an operating program by executing individual blocks with run buttons, enabling easy assessment of validity before completion and facilitating block-based editing with reduced time requirements.

Benefits of technology

Enables efficient validation and editing of operating programs, reducing time consumption and simplifying modifications, while maintaining routine operations and reusing existing programs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Operating program writing system (10) that writes an operating program of a system (1) consisting of a peripheral device and a robot (2), wherein the operating program writing system comprises: a block memory section (11) configured to store a plurality of blocks, each of which is a unit of work constituting the operating program, a selection section (12) which is configured to select by it any number of blocks to be combined to form the operating program from the multitude of blocks stored in the block memory section, a display section (13) configured to display a path diagram in which any number of blocks selected by the selection section are arranged according to a user-defined order such that they form the operating program, a selection and input section (14) which is configured to accept the selection of at least one block from among any number of blocks displayed on the display section and through which arguments of the selected at least one block can be entered, a sequence section (15) which is set up to arrange sequence buttons (A) for any number of blocks on the display section and to allow, through the selection and input section, only those blocks that correspond to the sequence buttons and whose sequence buttons have been pressed, a write section (16) configured to use i) any number of blocks selected by the selection section, and ii) the input argument of the at least one block selected by the selection and input section as the basis for writing the operating program, and a setting section (17) which is set up to parse an existing operating program and to set a variety of blocks and arguments contained in the blocks from the existing operating program, wherein: - the blocks include a variety of position blocks (P1, P2, P3, P4) that teach which positions the robot moves to, and a variety of logic blocks (L1, L2, L3, L4, L5, L6) that teach which types of operations are to be performed, - the multitude of blocks selected by the selection section includes at least one positional block and at least one logical block, - the operating program consists of a multitude of lines, with the set section set up to evaluate the attribute of each line as either a logic attribute, a control signal attribute, or a position attribute, and - the set section is further set up to i) write a line of a position attribute and a line of a logic attribute as independent blocks and ii) assign lines of a control signal attribute that follow a line of a logic attribute to the same block as the related line of the logic attribute, in order to set the logic blocks and the position blocks and to set the arguments contained in the blocks.
Need to check novelty before this filing date? Find Prior Art

Description

Background of the invention

[0001] The present invention relates to an operating program writing system that writes an operating program of a system consisting of a combination of a peripheral device and a robot.

[0002] An industrial robot equipped with a hand that grips a workpiece often processes the workpiece in coordination with a machine tool or other peripheral equipment. Furthermore, a control device manages the system, consisting of the robot and the peripheral equipment, according to a predetermined operating program. If the peripheral equipment, the workpiece, etc., are changed, the operating program must be modified accordingly.

[0003] In JP 3 095 075 B2, arguments corresponding to the learning positions of an operating program are defined, and position information is entered into the arguments according to the work content. Furthermore, in JP 5 058 063 B2, the operating program is divided into a multitude of blocks corresponding to work units, and the blocks are combined appropriately. Additionally, JP H08-249 026 A proposes a programming method that uses pictograms to assemble a work sequence on a computer screen. In this way, a new operating program was edited according to the work content in the prior art.

[0004] In the prior art, however, even after a new operating program was completed, it was necessary to actually run the program to assess its validity. In other words, until the operating program actually ran, its validity could not be evaluated. Therefore, when the operating program did run, a problem was sometimes encountered, such as the workpiece held by the robot's hand striking the peripheral device, etc. Furthermore, in such a case, it was necessary to correct the operating program and run the corrected program again to confirm whether or not a problem existed. This work was complicated and also consumed a considerable amount of time.

[0005] Furthermore, since in the prior art the operating system actually ran to assess its validity, it was difficult to use a system that edited the operating program to maintain the robot's routine operation.

[0006] Furthermore, the process of dividing an existing operating program into numerous blocks according to the work content required considerable time. For this reason, it was difficult to implement such a system for dividing an operating program into numerous blocks in a robot that was already using an existing operating program.

[0007] The present invention was developed in view of this situation and has the objective of providing an operating system writing system that is able to easily assess the validity of a new operating system before it is completed.

[0008] German patent application DE 10 2010 012 598 A1 discloses a system with multiple manipulators and associated transport or clamping devices that can be programmed. Subprocesses are broken down into atomic or molecular basic operations to create process modules, which are then made available to the process module library by linking them to a parameterizable process module. The resulting graphical function modules are presented to the user as icons, which the user can then drag and drop onto the workspace, thus creating an operating program by linking them together. Summary of the invention

[0009] According to the invention, a device is provided according to the independent claim. Developments are described in the dependent claim(s).

[0010] These and other tasks, features and advantages of the invention will become clearer from the detailed description of typical embodiments of the invention shown in the attached drawings. Brief description of the drawings

[0011] They show: Fig. 1 a view showing a system comprising an operating program writing system based on the invention; Fig. 2. A flowchart showing the operation of the operating program writing system, which is in Fig. 1 is shown; Fig. 3. An enlarged view of a display section that is in Fig. 1 is shown; Fig. 4. A view showing a block in a path diagram that is in Fig. 3 is shown; Fig. 5 a view showing another block in a path diagram that is in Fig. 3 is shown; Fig. 6 a view showing a release button that is in Fig. 3 is shown; Fig. 7 a flowchart showing a further operation of the operating program writing system; Fig. 8 another enlarged view of a display section; Fig. 9 a flowchart showing a further operation of the operating program writing system; and Fig. 10 a view showing a path diagram that is divided by Fig. 9 is obtained. Detailed description

[0012] Exemplary embodiments of the invention are described below with reference to the attached drawings. Similar elements in the following figures are assigned similar reference numerals. To facilitate understanding, these figures are appropriately scaled.

[0013] Fig. Figure 1 shows a view depicting a system comprising an operating program writing system based on the invention. The system 1, which is described in Fig. Figure 1 mainly comprises a robot 2, a machine tool 5, and a control device 10 connected to the robot 2 and the machine tool 5. As shown, the robot 2 is a multi-jointed robot equipped with an arm 3 at its front end. The arm 3 opens and closes according to instructions from the control device 10 and grasps and releases a workpiece W.

[0014] The machine tool 5 is equipped with a clamping device 6 that lowers and clamps a workpiece W against a base of the machine tool 5, and with an opening / closing door 7. If the workpiece W is clamped by the clamping device 6, the door 7 closes and a (not shown) working tool processes the workpiece W.

[0015] The control device 10 is a digital computer. It controls the operation of the robot 2 and the machine tool 5 and functions as an operating program writing system that writes the operating program of the system 1. It should be noted that, although not shown in the figure, the operating program writing system 10 can also be an offline programming system that enables simulation operation on the screen. Furthermore, the robot 2 and the machine tool 5 can be of other types than those described above. The invention also covers cases where the system 1 comprises only one robot 2 or one machine tool 5, and cases where a robot 2 is combined with other peripheral devices.

[0016] As in Fig. As shown in Figure 1, the control device 10 has a block memory section 11 that stores a plurality of blocks forming the working units of the operating program. Furthermore, a selection section 12, which selects any number of blocks forming the operating program from the plurality of blocks; a display section 13, which displays a path diagram consisting of any number of blocks selected by the selection section 12 and arguments contained in the blocks; and a selection and input section 14, which selects at least one block from among any number of blocks on the display section 13 and inputs the arguments of the at least one block, are connected to the control device 10. The selection section 12 can be a mouse, a keyboard, etc., whereas the display section 13 can be, for example, a liquid crystal display, a CRT (cathode tube), etc.Furthermore, selection and input section 14 can be, for example, a mouse, a keyboard, etc., and can be created together with selection section 12.

[0017] Furthermore, the control device 10 comprises a sequence section 15, which arranges sequence buttons on the display section 13 for each of the plurality of blocks, and which executes the blocks corresponding to the sequence buttons by actuating the sequence buttons via the selection and input section 14, and a write section 16, which uses any number of blocks selected by the selection section 12 and the input arguments of the at least one block selected by the selection and input section 14 as the basis for writing an operating program. The control device 10 further comprises a set section 17, which analyzes an existing program to set a plurality of blocks and arguments to be included in the blocks from the existing operating program.

[0018] Fig. Figure 2 shows a flowchart illustrating the operation of the operating program writing system, which is located in Fig. 1 is shown. While below on Fig. 1 and Fig. Section 2 refers to the operation of the operating program writing system of the invention. First, in step S11, the operator selects from the block memory section 11 any number of blocks required to form an operating program.

[0019] Fig. Figure 3 shows an enlarged view of a display section that is in Fig. Figure 1 shows the multitude of blocks selected in step S11. The number of blocks selected is displayed in display section 13. As shown in Figure 1. Fig. As can be seen in Figure 3, in step S11 the blocks "Select User Coordinate System" L1, "Select Tool Coordinate System" L2, "(to) Front of Machine (Move Forward)" P1, "Open Door" L3, "Place Unmachined Workpiece" P2, "Release Workpiece" L4, "Clamp Workpiece" L5, "(to) Front of Machine (Retract)" P3, "Close Door" L6, and "Ready" P4 are selected. While not shown in this figure, it is assumed that block storage section 11 also stores blocks that represent other work.

[0020] Each of these blocks is an element that forms a section of the operating program. These blocks are appropriately combined to form a single operating program. Each of the multitude of blocks stored in block memory section 11 is a kind of template that shows a unit of operation. Furthermore, as shown from Fig. As shown in Figure 3, the selected set of blocks is arranged in a sequence to form an operating program and a path diagram. The operator can determine the sequence of the blocks as needed. Alternatively, the selected set of blocks can be arranged automatically according to a predetermined sequence.

[0021] In this regard, it shows Fig. 4 a view showing a block P4 in the path diagram that is in Fig. 3 is shown, whereas Fig. 5 shows a view that displays another block L6 in a path diagram that is in Fig. Block P4, which is shown in 3. Fig. 4 is shown, and blocks P1 to P3, which are in Fig. Blocks 3 shown have rounded corners, whereas block L6, which is shown in Fig. 4 is shown, and blocks L1 to L5, which are in Fig. The 3 blocks shown have pointed corners.

[0022] Blocks P1 to P4 are position blocks that teach the robot 2 which positions to move to. In contrast, blocks L1 to L6 are logic blocks that teach the robot what kind of operations to perform.

[0023] Referring back to Fig. In step S12, the positions of position blocks P1 to P4 are set. Specifically, the operator uses selection and input section 14 to select a position block, for example, position block P1, and enters the desired position information as an argument. The operator then enters position information for the other position blocks P2 to P4 in the same way.

[0024] Then, in step S13, the types and numbers of control signals for logic blocks L1 to L6 are set. Specifically, the operator uses selection and input section 14 to select a logic block, for example, logic block L1, and enters the types and numbers of control signals required as the argument.

[0025] For example, when robot 2's hand 3 is used, robot signals are selected as the type of control signals. Similarly, when a peripheral device is used, such as machine tool 5, digital signals are selected as the type of control signals. Furthermore, the control signals are set to, for example, signal 1, which opens robot 2's hand 3, and signal 2, which closes hand 3. Similarly, signal 1, which opens the door of machine tool 5, and signal 2, which closes door 7, are set. The types and numbers of such control signals are predefined in a table. Therefore, the operator can use selection and input section 14 to select the types and numbers of control signals for logic blocks L1 to L6 from the table.

[0026] If the position blocks P1 to P4 and the completed logical blocks L1 to L6 are set, then in step S14, process section 15 assigns a process button which is in Fig. 6 shows, for each of the blocks P1 to P4 and L1 to L6 (in Fig. (3 are already arranged for all blocks).

[0027] Furthermore, the operator uses the selection and input section 14 to press a sequence button A located at a desired block. Alternatively, if the operator so wishes, he can press the sequence buttons A of all blocks P1 to P4 and blocks L1 to L6.

[0028] Therefore, only those blocks that correspond to the pressed sequence buttons A actually run. For example, if sequence button A of position block P2 is pressed, then robot 2 causes the unprocessed workpiece W to actually move to a predetermined position. Alternatively, if sequence button A of logic block L3 is pressed, then door 7 of machine tool 5 is actually opened.

[0029] In this way, the actual operation of the operating program for each block can be verified in the invention. Therefore, if the type of workpiece is changed, or even if machine tool 5 is replaced with another machine tool, it is easily possible to verify whether the robot 2, etc., will interfere with a peripheral device. This is particularly advantageous when only a section of the operating program is changed. It is thus sufficient to verify the operation to a minimal extent.

[0030] Finally, if the operation of the desired block that has been completed is confirmed, then in step S15, write section 16 uses the block whose operation has been completed and confirmed as the basis for writing the operating program of system 1. Specifically, write section 16 arranges the selected blocks P1 to P4 and L1 to L6 in a suitable sequence based on predetermined rules to write a new operating program.

[0031] In this way, before a new operating program is written, the execution buttons A can be used to run through blocks P1 to P4 and L1 to L6 to confirm the functionality of the block contents. Therefore, it becomes possible to easily assess the validity of a new operating program before it is completed. Furthermore, each of the plurality of blocks P1 to P4 and L1 to L6 is provided with an execution button A, thus eliminating the need to move a cursor or select a block. As a result, the time required to edit an operating program is reduced.

[0032] Furthermore, blocks P1 to P4 and L1 to L6, where a problem occurred, can be restarted after other position information or control signal information has been entered. Therefore, the operating program writing system of the invention can also be used for maintaining the routine operation of system 1.

[0033] Fig. Figure 7 shows a flowchart illustrating another operation of the operating program writing system. The operation, which is described in Fig. As shown in 7, it runs at the same time at step S14 according to Fig. 2 ab. Alternatively, the company located in Fig. As shown in 7, the same procedure will occur after the operating program of system 1 has been executed in step S15 according to Fig. 2 is written.

[0034] At step S21 according to Fig. 7. A block corresponding to a line number of a written operating program is captured. Furthermore, the captured block is highlighted on the path diagram of display section 13. In a further enlarged view of the display section, shown in Fig. In section 8, block L3 “Open door” is highlighted. Therefore, the operator can visually confirm the block's operating status on the path diagram displayed in section 13.

[0035] It should be noted that in step S14 according to Fig. 2. When the playback buttons A of the numerous blocks are pressed, the contents of the corresponding blocks run in a predetermined order. In this case, only the currently running blocks are highlighted. Furthermore, when the blocks are highlighted, their contents run. If a problem occurs, it is therefore easy to identify the block related to the problem and modify it.

[0036] In many cases, system 1 already has an existing operating program. Furthermore, if, for example, the machine tool 5 of system 1 is replaced, the existing operating program must be changed. In such a case, the setting section 17 of the control device 10 performs the following operation to draw a path diagram of the existing operating program.

[0037] Fig. Figure 9 shows a flowchart illustrating another operation of the operating program writing system. After the typesetting section 17 reads from the existing operating program, the processing is carried out, which is described in Fig. Figure 9 is shown. In this context, the existing operating program is, for example, as follows:

[0038] The last number on the left side of each line indicates the line number of the operating program.

[0039] In step S31, which is in Fig. As shown in Figure 9, the line number I of the operating program is set to "1", and the block number J is set to 0. Furthermore, in step S32, the content of the I-th line of the operating program (line) is checked, and it is determined whether the line refers to a business operation (step S33).

[0040] If the line refers to an operation, for example, a movement of robot 2, then step S35 determines that the line's attribute is a position. Line numbers I=3, 6, 11, and 14, for example, have the attributes of position.

[0041] In contrast, if the line does not refer to any operation, then step S34 assesses whether the line refers to a control signal. In such a case, step S36 assesses whether the line's attribute is a signal. If not, step S37 assesses whether the line's attribute is a logic function.

[0042] The routine then proceeds to step S38, in which the setting section 17 sets the block number J according to the respective attribute. The operating program to which block number J is appended then looks like this:

[0043] The second number from the left shows the block number of the operating program.

[0044] As can be seen from the operating program to which block number J is appended, a line of a position attribute and a line of a logic attribute are written as independent blocks. Furthermore, for example, DO [1] = on in line number I = 4 represents a control signal attribute. This line is followed by the "Ready DI [1] = on" (logic attribute) in block number J = 4. In this way, when a line of a control signal attribute follows a line of a logic attribute, the line of the control signal attribute is assigned to the same block as the related line of the logic attribute. The other block numbers J = 6, 7, and 9 are processed similarly.

[0045] The routine then proceeds to step S39, in which the number of blocks corresponding to all blocks No. J is successively arranged on display section 13, and rows and attribute data are added to the blocks. Furthermore, in step S40, each row is analyzed to extract the argument section. In step S41, a comment regarding the row data is set as an argument. Finally, in step S42, the row number I is incremented by "1". The process from step S32 to step S42 is repeated until the last row.

[0046] Fig. Figure 10 shows a view that displays a path diagram, which is defined by Fig. 9 is obtained. This is generally similar to the path diagram shown in Fig. 3 etc. is shown. In blocks P1 to P4 and L1 to L6 according to Fig. The block numbers J in brackets are shown in section 10. Note that the block names can be changed by the operator after the path diagram has been written.

[0047] In this way, the insertion section 17 of the invention divides the lines of an existing operating program into blocks of positional attributes and blocks of logic attributes and inserts arguments into the blocks. Therefore, it is sufficient for the operator to use only the selection and input section 14 to select a desired block and modify its argument accordingly. Consequently, even if, for example, a machine tool 5 of system 1 is replaced, it is easier to modify the existing operating program.

[0048] In this way, the invention makes it possible to automatically write a path diagram from an existing operating program and possibly to reuse the existing operating program. Therefore, compared to writing the path diagram from scratch, the operator's workload can be reduced. It should be noted that in Fig. 9 and Fig. 10. An existing operating program is divided into lines of motion instructions, lines of signal instructions, and other lines (logic attributes) in order to write a path diagram. However, it is equally possible to use the conditional sentences and label sets of the operating program to create a path diagram. Such a case is also covered within the scope of protection of the invention. Advantageous effects of the invention

[0049] In the first embodiment, it is possible to use a run button to execute each block and confirm the functionality of its contents before a new operating program is completed. This makes it easy to assess the validity of a new operating program before it is finished. Furthermore, since each of the numerous blocks is equipped with a run button, the operator's need to move a cursor or select a block is eliminated, and the time required to edit the operating program is reduced. Additionally, routine operations can be easily maintained by entering a separate argument and re-executing a block where a problem occurs.

[0050] In the second implementation, it is possible to confirm the execution state of each block on the path diagram displayed in the display section. Furthermore, it is possible to easily identify a block where a problem occurs.

[0051] In the third configuration, it is possible to reuse an existing operating program.

Claims

[1] Operating program writing system (10) that writes an operating program of a system (1) consisting of a peripheral device and a robot (2), wherein the operating program writing system comprises: a block memory section (11) configured to store a plurality of blocks, each of which is a unit of work constituting the operating program, a selection section (12) which is configured to select by it any number of blocks to be combined to form the operating program from the multitude of blocks stored in the block memory section, a display section (13) configured to display a path diagram in which any number of blocks selected by the selection section are arranged according to a user-defined order such that they form the operating program, a selection and input section (14) which is configured to accept the selection of at least one block from among any number of blocks displayed on the display section and through which arguments of the selected at least one block can be entered, a sequence section (15) which is set up to arrange sequence buttons (A) for any number of blocks on the display section and to allow, through the selection and input section, only those blocks that correspond to the sequence buttons and whose sequence buttons have been pressed, a write section (16) configured to use i) any number of blocks selected by the selection section, and ii) the input argument of the at least one block selected by the selection and input section as the basis for writing the operating program, and a setting section (17) which is set up to parse an existing operating program and to set a variety of blocks and arguments contained in the blocks from the existing operating program, wherein: - the blocks include a variety of position blocks (P1, P2, P3, P4) that teach which positions the robot moves to, and a variety of logic blocks (L1, L2, L3, L4, L5, L6) that teach which types of operations are to be performed, - the multitude of blocks selected by the selection section includes at least one positional block and at least one logical block, - the operating program consists of a multitude of lines, with the set section set up to evaluate the attribute of each line as either a logic attribute, a control signal attribute, or a position attribute, and - the set section is further set up to i) write a line of a position attribute and a line of a logic attribute as independent blocks and ii) assign lines of a control signal attribute that follow a line of a logic attribute to the same block as the related line of the logic attribute, in order to set the logic blocks and the position blocks and to set the arguments contained in the blocks. [2] Operating program writing system according to claim 1, wherein the display section is configured to display the execution states of the blocks in the path diagram.

Citation Information

Patent Citations

  • Process module library and programming environment for programming a manipulator process

    DE102010012598A1