Numerical control system, task allocation changing device, and numerical control method

By introducing multiple computing units and task allocation change devices into the CNC system, the software task allocation is dynamically adjusted, which solves the problem of uneven load during CNC system operation and improves the system's processing capacity and production efficiency.

CN116710861BActive Publication Date: 2026-02-27MITSUBISHI ELECTRIC CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202180090891.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-01-27
Publication Date
2026-02-27
Estimated Expiration
2041-01-27

AI Technical Summary

Technical Problem

Existing CNC systems cannot dynamically adjust the processing load during operation, resulting in insufficient hardware performance and affecting system performance and production efficiency.

Method used

A numerical control system employing multiple computing units connected via a communication unit adjusts the allocation of software tasks in real time through a task allocation and change device to ensure balanced processing load.

Benefits of technology

This allows for dynamic adjustment of the processing load without restarting the system, improving the processing capacity and production efficiency of the CNC system and avoiding the problem of insufficient hardware performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116710861B_ABST
    Figure CN116710861B_ABST
Patent Text Reader

Abstract

A numerical control system (1) has a first arithmetic unit (4) and a second arithmetic unit (5) connected via a communication unit (3), and a task allocation changing device (2). The task allocation changing device (2) performs an allocation changing action in a manner that a software task executed by the numerical control system (1) is executed by an arithmetic unit different from an arithmetic unit to which the software task is currently allocated among the first arithmetic unit (4) and the second arithmetic unit (5). The task allocation changing device (2) performs the allocation changing action while maintaining a state in which the numerical control system (1) controls a control object (6), that is, an operating state.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a numerical control system, a task allocation and modification device, and a numerical control method for controlling production equipment or machinery, such as machine tools. Background Technology

[0002] The CNC system controls the drive axes of the machining center, thereby achieving the desired actions of the machining center. A machining center is a working machine that performs some or all of the cutting, turning, and grinding processes; it also includes laser processing machines, electrical discharge machining machines, and AM (Additive Processing) machines.

[0003] The term "manufacturing" refers to a collective term for processing machines, etc. Regarding processing machines, with the increasing development of large-scale systems characterized by high functionality, process integration, and complexity, the software processing requirements for the controllers of processing machines, i.e., CNC systems, are also continuously increasing.

[0004] In recent years, in order to achieve factory automation, measures have been taken not only regarding machining machines, but also peripheral equipment such as robots and AGVs (Automated Guided Vehicles) that assist in the transfer of materials or workpieces between two machining machines, to enable CNC systems to implement control, thereby increasing and accelerating the software processing executed by the CNC system.

[0005] Due to increased software processing, the performance required by the software sometimes exceeds the performance of the CNC system's hardware, resulting in hardware-related performance insufficiency. When performance insufficiency occurs, problems arise. Examples of minor problems include a reduced update frequency of the CNC system's display or slower response to screen operations. Examples of serious problems include drive axes failing to reach the desired speed and decelerating, or coming to a complete stop. To address these problems, the following prior art exists…

[0006] That is, by using communication units to connect multiple hardware components, the performance deficiency is eliminated by distributing the processing load.

[0007] Patent Document 1 discloses a technique in which various functional elements of a control device are distributed to multiple CPUs (Central Processing Units) or computers, and multiple CPUs or computers are connected using communication lines, thereby distributing the processing load.

[0008] Patent document 2 discloses the following technology: connecting two or more CNC devices via an information transmission path, generating a series of control software based on system structure data that is a combination of various software modules that are structural elements of control software used to output various instructions to the machine when the power is turned on, and forwarding and setting them in the volatile memory of the CNC devices of each machine.

[0009] Patent Literature 1: Japanese Patent No. 2577600

[0010] Patent Literature 2: Japanese Patent No. 3373115 SUMMARY

[0011] However, in the above-described prior art, the structure of the system after the power is turned on cannot be changed. That is, in the above-described prior art, a numerical control system corresponding to the situation of the processing load during the execution of the control operation cannot be realized.

[0012] The amount of processing performed by the numerical control system varies depending on the contents of the machining program executed by the numerical control system. The machining program is made by describing how the object controlled by the numerical control system acts in a text form. Information such as the path designation determined by the end point coordinates during positioning, straight lines or circular arcs during trajectory control, or the speed during movement is recorded in the machining program.

[0013] For example, in the tool nose point control, which is one of the controls performed by the numerical control system, a coordinate transformation calculation for transforming the coordinate system observed from the rotary table and the coordinate system fixed to the machine is required, and the processing time increases.

[0014] In a program in which the movement distance of each 1 line of the machining program is short, compared with a long program, the number of program blocks in which processing is required in order to maintain the movement speed of the designated tool is large, and thus the processing time is long. One line of the machining program is referred to as one program block, and the above-described movement distance is also referred to as the line segment length.

[0015] The amount of processing performed by the numerical control system also varies depending on the action of the peripheral instrument of the machining machine or the operation performed by the user with respect to the machining machine, or the like, in the case where a specific function becomes effective. For example, the amount of processing performed by the numerical control system increases in the case where the numerical control system uses a function such as a path calculation performed before the actual axis action of the machining machine, an interference check function in which a check is performed so that the table and the workpiece do not come into contact with the tool, or a function in which inference processing of AI (Artificial Intelligence) in which a plurality of products are required to be calculated is performed. The amount of processing performed by the numerical control system also varies in the case where the action of the external axis of the gantry or the loader, or the like, the control of the robot or the AGV, or the like, the communication or the cooperation is required, or in the case where the screen operation or the manual operation is performed by the user.

[0016] The above-described examples are only a part of the examples, but the amount of processing performed by the numerical control system increases or decreases depending on the action situation during the control execution or the operation contents.

[0017] In the related art, it is only possible to change the allocation of software processing when the power is turned on, and therefore in the related art numerical control system, there is a problem that it is not possible to cope with a change in the processing amount that occurs during operation.

[0018] As a method for solving this problem, a method is considered in which the numerical control system is experimentally operated once, after the state of the load during operation is grasped, the numerical control system is stopped, and the problem caused by insufficient performance is solved by turning the power on again. However, it is a disadvantage of this method that it is necessary to implement experimental operation that does not produce, and this method does not guarantee that the actual operation will be strictly reproduced. Furthermore, depending on the production equipment, if the operation is stopped, sometimes a large amount of work and a long time are required for re-operation, or the flow of the entire production deteriorates and has an impact on business, and it can be said that the turning on of the power is a large problem in practical applications.

[0019] The present application has been made in view of the above circumstances, and has an object to obtain a numerical control system that does not require the turning on of the power, and that executes processing in response to a change in the processing amount that occurs during operation.

[0020] In order to solve the above problem and achieve the object, the numerical control system according to the present application has a plurality of arithmetic units connected via a communication unit, and has a task allocation change device that changes the allocation of software tasks executed by the numerical control system in such a manner that the software tasks are executed by arithmetic units other than the arithmetic units to which the software tasks are currently allocated, among the plurality of arithmetic units. The task allocation change device performs the allocation change operation while maintaining a state in which the control object is controlled by the numerical control system, that is, an operation state.

[0021] Effects of the Invention

[0022] The numerical control system according to the present application has the effect that it is possible to execute processing in response to a change in the processing amount that occurs during operation without requiring the turning on of the power. BRIEF DESCRIPTION OF DRAWINGS

[0023] Figure 1 is a diagram that schematically shows the structure of the numerical control system according to Embodiment 1.

[0024] Figure 2 is a state transition diagram of the numerical control system according to Embodiment 1.

[0025] Figure 3 is a flowchart showing the sequence of actions performed by the measurement unit possessed by the numerical control system according to Embodiment 1.

[0026] Figure 4 is a flowchart showing the sequence of actions performed by the processing time estimation unit possessed by the numerical control system according to Embodiment 1. is a flowchart showing the sequence of actions performed by the processing time estimation unit possessed by the numerical control system according to Embodiment 1.

[0027] Figure 5 is a flowchart showing a sequence of actions performed by the task allocation changing device possessed by the numerical control system according to Embodiment 1.

[0028] Figure 6 is a flowchart showing a sequence of actions performed by the task allocation changing device possessed by the numerical control system according to Embodiment 1 when selecting a target task.

[0029] Figure 7 is a diagram showing the numerical control system in a case where the allocation of the software task constituting the numerical control processing section of Figure 1 is changed to the second arithmetic section.

[0030] Figure 8 is a diagram showing the structure of the numerical control system according to Embodiment 2.

[0031] Figure 9 is a diagram showing the structure of the numerical control system according to Embodiment 3.

[0032] Figure 10 is a diagram showing the processor in a case where the first arithmetic section possessed by the numerical control system according to Embodiment 1 is implemented by a processor.

[0033] Figure 11 is a diagram showing the processing circuit in a case where the first arithmetic section possessed by the numerical control system according to Embodiment 1 is implemented by a processing circuit. DETAILED DESCRIPTION

[0034] Hereinafter, the numerical control system, the task allocation changing device, and the numerical control method according to the embodiments will be described in detail based on the drawings.

[0035] Embodiment 1.

[0036] (Structure of Embodiment 1)

[0037] Figure 1 is a diagram showing the structure of the numerical control system 1 according to Embodiment 1. The numerical control system 1 has at least two or more arithmetic sections. In the example of Embodiment 1, the numerical control system 1 has a first arithmetic section 4 and a second arithmetic section 5. The first arithmetic section 4 and the second arithmetic section 5 are examples of a plurality of arithmetic sections. In Embodiment 1, the numerical control system 1 having two arithmetic sections is described, but the concept of Embodiment 1 can be applied without limitation to a case where the numerical control system 1 has three or more arithmetic sections.

[0038] The arithmetic unit, if having a capability to perform a calculation process, is not limited in form and can be a CPU, a processor core of a multi-core CPU, a DSP (Digital Signal Processor), or various integrated circuits, and the like. Hereinafter, the above processor core will be simply referred to as a "core". For example, in a multi-core CPU having a plurality of cores, one core corresponds to one arithmetic unit, and in a multi-CPU environment having a plurality of CPUs, one CPU corresponds to one arithmetic unit.

[0039] The numerical control system 1 further has a task allocation changing device 2. The three structural elements of the task allocation changing device 2, the first arithmetic unit 4, and the second arithmetic unit 5 are each connected in a manner capable of communicating with other structural elements among the three structural elements via the communication unit 3.

[0040] The task allocation changing device 2 communicates with each of the first arithmetic unit 4 and the second arithmetic unit 5 via the communication unit 3 and has a function of controlling the allocation changing operation of the software task to the arithmetic unit described later. The task allocation changing device 2 is independently provided from the first arithmetic unit 4 and the second arithmetic unit 5 in Embodiment 1, but can be configured to operate through any one of the first arithmetic unit 4 and the second arithmetic unit 5.

[0041] The communication unit 3 can be a unit capable of wireless communication or a unit capable of wired communication. The communication unit 3 can be a unit capable of serial communication or a unit capable of parallel communication. The implementation method of the communication via the communication unit 3 is not limited. For example, the communication unit 3 can be an RS-232C (Recommended Standard 232C), a USB (Universal Serial Bus), a PCI (Peripheral Component Interconnect) Express, a SATA (Serial AT Attachment), an IEEE (Institute of Electrical and Electronics Engineers) 1394 (FireWire), a 1-Wire, or an Ethernet (registered trademark), or the like, which is usually used as a serial bus.

[0042] The communication unit 3 can also be a GPIB (General Purpose Interface Bus), SCSI (Small Computer System Interface), PCI, ATA (AT Attachment), or the like, which is generally used as a parallel bus. The communication unit 3 can be a communication unit realized by a general wireless communication method, such as Wi-Fi (registered trademark) or Bluetooth (registered trademark).

[0043] The control target 6 is an object to be controlled by the numerical control system 1, and is driven by a motor to provide various functions by realizing a prescribed motion. For example, the control target 6 can be various processing machines. As specific examples of the processing machines, there are mentioned a working machine that performs a part or all of cutting, turning, and grinding, a laser processing machine, an electric discharge processing machine, or an AM processing machine. The control target 6 can be an industrial robot, an AGV, or a drone that performs transportation or conveyance of articles.

[0044] The first arithmetic unit 4 has a numerical control processing unit 10 that performs numerical control for controlling the control target 6. The numerical control processing unit 10 is constituted by one or more software tasks, and performs analysis of a string of a processing program, calculation of coordinates of a start point and an end point of a path of an instruction based on a motion pattern, and interpolation calculation of the path, and the like. In Figure 1 Examples of the above-mentioned software tasks are a software task A and a software task B. The processing program is a program in which contents of a motion are described in a text form mainly for specifying a motion for a processing machine. The motion instruction unit for the control target 6 is not limited to the processing program.

[0045] The first arithmetic unit 4 has an axis control unit 11 that performs calculation of instruction data for a drive axis of the control target 6. The axis control unit 11 is constituted by one or more software tasks, and performs calculation of the instruction data for the drive axis of the control target 6 using a result of calculation obtained by the numerical control processing unit 10. In Figure 1 Examples of the above-mentioned software tasks are a software task C and a software task D. As one example of processing performed by the axis control unit 11, there is mentioned acceleration / deceleration processing, that is, calculation of a velocity instruction that makes each axis smoothly accelerate and decelerate so that excessive acceleration does not occur in the drive axis and vibration does not occur.

[0046] In Figure 1 The numerical control processing unit 10 and the axis control unit 11 are assigned to the first arithmetic unit 4, but one or both of the numerical control processing unit 10 and the axis control unit 11 can be assigned to the second arithmetic unit 5.

[0047] The first arithmetic unit 4 and the second arithmetic unit 5 each have a measurement unit 12 that measures the processing time in the case where the numerical control processing unit 10 and the axis control unit 11 perform processing. Specifically, the measurement unit 12 measures the processing time of each software task that constitutes the numerical control processing unit 10 and the axis control unit 11 performed by each arithmetic unit. In the numerical control system 1, the execution of each software task is started at a predetermined cycle, that is, a prescribed cycle, and the necessary processing is performed within the prescribed cycle, and the instruction data output to the control object 6 is created. The numerical control system 1 realizes the control of the control object 6 by creating the instruction data. The measurement unit 12 data-izes the processing time of each software task within the prescribed cycle by recording when the execution of each software task is started and when it is completed based on the time of the clock of the numerical control system 1.

[0048] In order to accurately measure the processing time of the software task, not only the start time and the end time but also the occurrence of preemption of the execution due to interruption and the OS (Operating Ssystem) need to be considered. This information can be utilized by using the API (Application Programming Interface) provided by the real-time OS and the like that are generally popular, and acquiring the event occurrence time of each task. Hereinafter, the real-time OS is referred to as RTOS.

[0049] As examples of the events, there are a start event that occurs when a task gets the execution right in the arithmetic unit, a preempted event that occurs when the task is deprived of the execution right by interruption and another task of high priority, an exit event that occurs when the task completes the processing and releases the execution right, and a release to xxx event that occurs when the task opens the execution right to another task. The task name that becomes the object is input in xxx.

[0050] The processing time estimation unit 13 possessed by the first arithmetic unit 4 and the second arithmetic unit 5 performs the calculation of the estimated value of the processing time required by the numerical control processing unit 10, that is, the processing load prediction value, and the comparison determination of the processing load prediction value and the threshold value.

[0051] The processing time of the numerical control processing unit 10 is comprehensively affected from various elements, but the two elements are particularly important in order to perform estimation.

[0052] The first element is the number of processes of the program block that constitutes the machining program. The machining program is regarded as an integrated instruction by taking each 1 line as a program block, and the processing is performed by the program block unit. For example, in the case where the numerical control processing unit 10 needs to simultaneously perform the processing of 10 program blocks, the processing time estimation unit 13 can estimate that 10 times the processing time is required compared to the case where the processing of 1 program block is performed.

[0053] The second factor is a running mode specified by the machining program. For example, as the running mode, an interpolation mode in which a path through which interpolation is to be performed between a specified start point and end point is specified, or a high-speed mode in which a plurality of program blocks are collectively processed to achieve high-speed movement, is cited. Depending on which of these running modes is specified, the processing time required by the numerical control processing section 10 to process one program block changes.

[0054] Here, the number of program blocks that need to be simultaneously processed by the numerical control processing section 10 is described. In a case where the movement speed of the specified axis, i.e., the command speed, is large, the movement amount that needs to be output to the control object 6 by the axis control section 11 per 1 cycle also becomes large. Along with this, the numerical control processing section 10 that performs the preprocessing of the axis control section 11 also needs to process a longer movement distance. At this time, if the distance per 1 program block of the machining program, i.e., the length that connects the start point and end point is long, a long movement distance can be processed by a small number of program blocks, but if the distance per 1 program block is short, the number of program blocks required to process the same distance becomes large. That is, the number of program blocks that need to be processed per 1 cycle by the numerical control processing section 10 can be calculated from the command speed and the movement distance of the program block that is processed.

[0055] As for the processing time for each running mode, for example, the processing time under each running mode can be measured in advance, and the average processing time can be saved in the form of a database or a list, and at the time of actually processing the machining program, one candidate is selected from one or a plurality of candidates saved to estimate.

[0056] (Action of Embodiment 1)

[0057] The kinds and definitions of the states that can be taken by the numerical control system 1 are described. Figure 2 is a state transition diagram of the numerical control system 1 according to Embodiment 1. The respective states shown in Figure 2 and the conditions for transitioning between the states, i.e., conditions S1 to S10, are described.

[0058] The power OFF state is a state in which the power of the numerical control system 1 is not turned on.

[0059] The power ON state is a state that is transitioned from the power OFF state by turning on the power of the numerical control system 1 under condition S1. The power ON state includes three states of a non-start state, a start-in-progress state, and a start-completion state.

[0060] If the state of the numerical control system 1 is changed to the power ON state, the state of the numerical control system 1 becomes the non-start state as the initial state, and is changed to the starting state by starting the start processing in the condition S2. The start processing includes, for example, initialization processing of various hardware and loading or expansion of software modules of the numerical control system 1 to a memory area, and the like.

[0061] The starting state is a state in which the start processing is not completed.

[0062] The start processing is completed in the condition S3, and the software processing of the numerical control system 1 is started, whereby the state of the numerical control system 1 is changed to the start completion state.

[0063] The start completion state includes the non-operation state and the operation state.

[0064] If the state of the numerical control system 1 is changed to the start completion state, the state of the numerical control system 1 becomes the non-operation state as the initial state, and is changed to the operation state by starting the control of the control object in the condition S4.

[0065] The operation state can be, for example, a state in which the control command is output from the axis control section 11 assigned to the first arithmetic section 4 or the second arithmetic section 5 to the control object 6, and the control of the control object 6 is performed after the power is turned on. The operation state can be a state in which the machining program in which the action content of the control object 6 is described is selected, and the state from the start of the control using the machining program to the completion of the control.

[0066] In the operation state, even if the task assignment changing device 2 performs the assignment changing action described later, the state of the numerical control system 1 is not changed from the operation state (S5), and the state of the numerical control system 1 is changed to the non-operation state (S6) by performing the release of the operation state.

[0067] An example of the action for releasing the operation state is an action of stopping the output of the control command from the axis control section 11 to the control object 6. An example of the action for releasing the operation state can be an action of completing the execution of the machining program and returning to a state in which the machining program is not executed.

[0068] In any of the non-start, starting, non-operation, and operation states, the power is turned off from the condition S7 to the condition S10, and the state of the numerical control system 1 is changed to the power OFF state.

[0069] Next, the action of the measurement section 12 will be described.

[0070] The measurement section 12 takes the following action, that is, measurement data is created by measuring the processing time of the software tasks executed by each of the arithmetic sections, and the measurement data is transmitted to the task allocation changing device 2. The measurement section 12 creates the measurement data using the event log occurrence time of each task by using the function of the API or the like provided by the RTOS as described above. The measurement section 12 sets the start time of the prescribed cycle of the numerical control system 1 as time 0, and calculates the time of the event log of each task, thereby creating the measurement data. The measurement section 12 can also calculate the start time of the prescribed cycle as the occurrence time of a specific event, for example, in the case where the task started by the timer interrupt is used as a reference, the time of the start event of this task becomes the start time of the prescribed cycle.

[0071] Figure 3 is a flowchart showing the sequence of actions performed by the measurement section 12 possessed by the numerical control system 1 according to Embodiment 1. Hereinafter, the actions of the measurement section 12 will be described according to this flowchart. If the measurement section 12 starts the actions, it first performs performance measurement (Sll). Next, the measurement section 12 calculates the event log time of each task executed in the cycle by the aforementioned calculation method, and creates the measurement data (S12). The measurement section 12 determines whether or not to transmit the measurement data (S13), and in the case where it is determined to transmit the measurement data (Yes in S13), it transmits the measurement data to the task allocation changing device 2 (S14). In the case where it is determined not to transmit the measurement data (No in S13), the measurement section 12 accumulates the measurement data (S15), and transmits the accumulated measurement data at the time of the next and subsequent start.

[0072] As for the frequency of transmission of the measurement data, the measurement section 12 can transmit the measurement data each time, or can accumulate the measurement data corresponding to a predetermined number of times and transmit the accumulated measurement data in total.

[0073] Next, the actions of the processing time estimation section 13 will be described.

[0074] The processing time estimation section 13 performs actions until the numerical control processing section 10 is started in the next cycle after the processing by the numerical control processing section 10 is completed. The processing time estimation section 13, as will be described later, processes only the information of the command speed, the operation mode, and the movement distance among the contents of the program block of the machining program as an object, thereby being able to perform the processing in a considerably shorter time compared to the numerical control processing section 10.

[0075] Figure 4 is a flowchart showing the sequence of actions performed by the processing time estimation section 13 possessed by the numerical control system 1 according to Embodiment 1.

[0076] In step S21, the processing time estimation section 13 performs the read-in of the program block from the next program block after the processing by the numerical control processing section 10 is completed. In Figure 4 In this case, the operation of step S21 is expressed by the statement "1st program block read-in".

[0077] In step S22, the processing time estimation section 13 decides the command speed used for the calculation of the total movement distance. The processing time estimation section 13 uses the value of the command speed if the command speed is specified by the program block read-in in step S21, and decides the command speed based on the speed information created by the numerical control processing section 10 until the previous time if the command speed is not specified.

[0078] In step S23, the processing time estimation section 13 calculates the total movement distance which is the movement distance that should be processed by the numerical control processing section 10 in the next cycle. The processing time estimation section 13 calculates the total movement distance by multiplying the command speed decided in step S22 by the prescribed cycle.

[0079] In step S24, the processing time estimation section 13 acquires the information of the operation mode of the program block in the current processing, and saves the information in a manner that knows the correspondence relationship with the program block. In the case where there is no information of the operation mode, the processing time estimation section 13 saves the information of the operation mode created by the numerical control processing section 10 until the previous time.

[0080] In step S25, the processing time estimation section 13 calculates the movement distance of the program block in the current processing. In the operation mode specified by the relative value, the square root of the sum of the squares of the command values of each axis described in the program block in the current processing becomes the movement distance. In the operation mode specified by the absolute value, the command values of each axis described in the program block in the current processing become the end points, and thus the square root of the sum of the squares of the differences between the end point positions of each axis created by the numerical control processing section 10 until the previous time and the command values of each axis described in the program block in the current processing becomes the movement distance.

[0081] In step S26, the processing time estimation section 13 accumulates the calculated movement distance to the accumulated movement distance.

[0082] In step S27, the processing time estimation section 13 determines whether the cumulative movement distance is greater than or equal to the total movement distance, and in the case where it is determined that the cumulative movement distance is greater than or equal to the total movement distance (Yes in S27), determines the number of program blocks to be read in (S29), and the operation of the processing time estimation section 13 proceeds to step S30. In the case where it is determined that the cumulative movement distance is less than the total movement distance (No in S27), the processing time estimation section 13 reads in the next program block in step S28, and repeats the operation of steps S24 to S27. In the case where the operation is repeated, the processing time estimation section 13 does not use the information created by the numerical control processing section 10 up to the previous time, but uses the information of the previous program block.

[0083] Next, the operation of the processing time estimation section 13 after the number of program blocks to be read in is determined will be described.

[0084] In step S30, the processing time estimation section 13 reads in again from the program block at the start. In the case where the number of program blocks to be read in is one, the operation of step S30 is performed by the statement "1st program block read in". In step S31, the processing time estimation section 13 selects the average processing time corresponding to the operation mode of the program block. Figure 4

[0085] Next, the processing time estimation section 13 selects the value of the average processing time corresponding to the operation mode from one or a plurality of candidates prepared in advance by measurement or the like, and sets the value obtained by multiplying the number of program blocks to be read in by the selected candidate as the processing load prediction value.

[0086] In practice, the operation mode sometimes changes within the range of program blocks to be read in. In this case, for example, the processing time estimation section 13 can select the candidate having the longest processing time from a plurality of candidates, multiply the number of program blocks to be read in by the selected candidate, and set the worst value as the processing load prediction value. The processing time estimation section 13 can calculate the accurate value by accumulating the results obtained by multiplying the processing time corresponding to the operation mode and the corresponding program block one by one, and set the calculation result as the processing load prediction value.

[0087] Here, an example in which the processing time estimation section 13 selects the average processing time corresponding to the operation mode for each program block is shown, but the processing time estimation section 13 can also use a calculation method in which the average processing time having the longest value is selected from the operation modes of the program blocks to be read in, and the number of program blocks to be read in is multiplied by the selected average processing time.

[0088] In step S32, the processing time estimation section 13 accumulates the selected average processing time to the processing load prediction value. ​

[0089] In step S33, the processing time estimation section 13 determines whether the read-in program block has reached the final program block, and in the case where it is determined that the read-in program block has reached the final program block (Yes in S33), it is considered that the processing load prediction value has been calculated, and the processing ends. In the case where it is determined that the read-in program block has not reached the final program block (No in S33), the processing time estimation section 13 reads in the information of the next program block in step S34, and repeats the actions of steps S31 to S33.

[0090] The processing time estimation section 13 compares the processing load prediction value calculated by the above actions with a threshold value determined in advance, and if the processing load prediction value exceeds the threshold value, it performs allocation change, and thus notifies the task allocation change device 2.

[0091] If the threshold value is set strictly, the allocation change is performed so that a small decrease in performance is not allowed, and if the threshold value is set loosely, the allocation change is not performed until a serious decrease in performance occurs.

[0092] The threshold value can be set according to the comparison of the measurement result obtained by the measurement section 12 and the actual processing time of the numerical control processing section 10 up to this point. For example, the threshold value can be set at an increase rate of +x% or the like with respect to the average value of the processing time up to this point. x is a real number.

[0093] The execution frequency of the allocation change for exceeding the threshold value can be adjusted. For example, if it is set that the allocation change is performed after the processing load prediction value exceeds the threshold value for a certain time, the numerical control system 1 can reliably prevent a decrease in performance. If it is set that the allocation change is performed in the case where the processing load prediction value exceeds the threshold value continuously n times, the numerical control system 1 cannot cope with the occurrence of accidental exceeding, and performs the allocation change only in the case where a serious decrease in performance occurs. n is an integer equal to or greater than 2. As a trade-off method, it can be set that the allocation change is performed when the processing load prediction value exceeds the threshold value m times in total, and the total value is reset. m is an integer greater than 2 and smaller than n.

[0094] The selection method of the task that becomes the object of the allocation change is described. In the case where the numerical control processing section 10 is constituted by one task, the task becomes the task that becomes the object of the allocation change.

[0095] In the case where the numerical control processing section 10 is constituted by a plurality of tasks, it is necessary to select the task that becomes the object of the allocation change.

[0096] There are no particular restrictions on the selection method. For example, it can be set to prioritize the allocation change for each task constituting the CNC processing unit 10, starting with the task with the highest priority. In the CNC processing unit 10, it can also be set that tasks directly related to the creation of data used by the axis control unit 11 have relatively high importance, while other tasks have relatively low importance. By prioritizing the transfer of tasks with relatively low importance to other processing units, the resources of the processing unit are concentrated on tasks with relatively high importance.

[0097] Tasks that use the created data in subsequent processing can be considered tasks with relatively high response performance requirements, while tasks that use the created data when it needs to be stored in a storage area can be considered tasks with relatively low response performance requirements. It is possible to configure the processing unit's resources to concentrate on tasks with relatively low response performance requirements by assigning higher priority to the objects being processed.

[0098] Next, the method for selecting the computation unit for assigning change targets will be explained.

[0099] like Figure 1 As shown, when there are 2 arithmetic units, there is only one arithmetic unit that is different from the currently assigned arithmetic unit, so the arithmetic unit for which the assignment is changed is automatically determined.

[0100] In a CNC system with three or more arithmetic units, it is necessary to select which arithmetic unit among the optional arithmetic units to set as the target.

[0101] There are no particular restrictions on the method for selecting the computational units (RAMs) to be allocated and changed. However, for example, the priority of the RAMs to be allocated and changed can be set in advance for each target task. Taking the case where multiple RAMs are each core of a multi-core CPU as an example, if it is an SMP (Symmetric Multiprocessing) type, all cores are equivalent. However, if it is an AMP (Asymmetric Multiprocessing) type, there are also cores with different characteristics, and therefore some cores are unsuitable for allocation. In the above case, the priority of the cores suitable for allocation is set relatively high, and the priority of the cores unsuitable for allocation is set relatively low or negative, so that the unsuitable cores are excluded from the allocation change.

[0102] The target for allocation change can be selected sequentially from the calculation unit with the relatively low processing load, using the measurement data obtained through the measurement unit 12.

[0103] The operation of the task allocation change device 2 will be described. First, the terms that are prerequisites will be described. An RTOS is generally an RTOS that controls the operation of a system by managing the execution state of a software task, but at least four task states are defined and managed. The execution state is a state in which a task is executed by the arithmetic unit. The executable state is a condition in which a task can be executed by the arithmetic unit, but is waiting for the use right of the arithmetic unit because it is in the process of executing other processing by the arithmetic unit. The waiting state is a state in which the condition for executing a task by the arithmetic unit is not established, and the condition is waiting to be established. The dormant state is a state in which a task is not generated and is not registered as an object of management of the RTOS.

[0104] The operation of giving the use right of the arithmetic unit to the task in the executable state is called dispatching, and the reverse operation is called preemption. The task in the dormant state is registered as an object of management of the RTOS, and the task state is changed to the waiting state. Conversely, if the task is put to sleep, the task is deleted from the object of management of the RTOS, and the task state is changed to the dormant state. As described above, the management of the task is performed by the RTOS, and thus the task allocation change device 2 performs the operation by issuing an instruction to the RTOS using the function such as the API prepared by the RTOS.

[0105] Figure 5 is a flowchart showing the operation sequence performed by the task allocation change device 2 possessed by the numerical control system 1 according to Embodiment 1. First, in step S41, the task allocation change device 2 determines whether the object task for which the allocation change is performed is determined. In a case where the determination data is sent only from the measurement unit 12 and the task allocation change device 2 determines that the object task for which the allocation change is performed is not determined (No in S41), the object task is selected in step S42.

[0106] The task allocation change device 2 performs the operation in step S43 in a case where the object task for which the allocation change is performed is determined (Yes in S41) and after the operation in step S42 is performed. The information of the selected object task is sent from the processing time estimation unit 13, and thus the task allocation change device 2 determines whether the arithmetic unit that is the change target is determined in step S43.

[0107] In a case where the arithmetic unit that is the change target is not determined (No in S43), the task allocation change device 2 selects the arithmetic unit that is the change target in step S44. In a case where the arithmetic unit that is the change target is determined (Yes in S43) and after the operation in step S44 is performed, the task allocation change device 2 determines whether the allocation change implementation condition is established in step S45.

[0108] The method for selecting the computation unit of the target change is the same as the determination method described in the explanation of the processing time estimation unit 13, and there are no particular limitations. For example, it can be predetermined for each target task. For each target task, the priority levels of the allocated computation units can be listed, and the computation units of the target change can be selected in order of priority. Measurement data can be used to select the computation units of the target change sequentially, starting with the computation units with the lowest processing load.

[0109] Next, based on Figure 6 The operation of the task allocation change device 2 when selecting the target task in step S42 will be explained. Figure 6 This is a flowchart showing the sequence of actions of the task allocation change device 2 when a target task is selected by the task allocation change device 2 of the CNC system 1 according to Embodiment 1.

[0110] In step S51, the task allocation change device 2 selects the task to be calculated for the deadline margin. This task is a software task constituting the CNC processing unit 10 or the axis control unit 11. Due to system limitations, the deadline margin is calculated by comparing the end time of tasks that must be completed within a specified period (i.e., hard-deadline tasks) with the specified period. Sometimes there are multiple hard-deadline tasks, but the task with the latest end time becomes the task to be calculated.

[0111] In step S52, the task allocation change device 2 calculates the deadline margin based on the measurement data. As mentioned above, the measurement data stores the event times of each task for which the start time of the specified period is set to time 0. Therefore, the task allocation change device 2 compares the end time of the target task of the deadline margin with the deadline time calculated according to the specified period, thereby calculating the deadline margin.

[0112] The calculation method for the time limit can be changed according to the operating state of the CNC system 1. The time limit is the same as the specified period, that is, sometimes it is 1 times the specified period, and sometimes it is a constant multiple of the specified period. When the time limit is a constant multiple of the specified period, it is calculated by performing calculations on a predetermined period.

[0113] Regarding the measurement data used, the task allocation change device 2 can use the average value of the measurement data over a certain period or the entire period, or it can use the worst value within a certain period or the entire period. When using the average value, the task allocation change device 2 can update the average value each time the measurement data increases, or it can choose not to update the average value until a certain amount of measurement data has been accumulated.

[0114] In step S53, the task allocation change device 2 determines whether or not to make an allocation change. Specifically, the task allocation change device 2 compares the deadline margin with a threshold value set in advance, and if the deadline margin is smaller than the threshold value (Yes in S53), the operation of the task allocation change device 2 proceeds to step S54. If the deadline margin is larger than or equal to the threshold value (No in S53), the task allocation change device 2 determines that no allocation change is needed, and determines the target task of the allocation change to be none in step S55.

[0115] The threshold value can be adjusted and changed. For example, if the threshold value is set strictly, the allocation change is made in a manner that does not allow a small decrease in performance, and if the threshold value is set loosely, the allocation change is not made until a serious decrease in performance occurs.

[0116] The frequency of the allocation change made in response to the determination that the threshold value is smaller can be set to be adjustable. If the frequency is set each time, the numerical control system 1 can promptly perform the allocation change in response to a decrease in performance. On the other hand, if the allocation change is set to be made at the same time over a plurality of times, the numerical control system 1 allows a slight decrease in performance, and can make the allocation change only when a decrease in performance occurs repeatedly.

[0117] In step S54, the task allocation change device 2 obtains the difference between the end time and the start time of the hard deadline task, and determines whether or not the difference is within a threshold value. The threshold value is set in advance by measuring the processing time for each task, or the like. The threshold value is a standard value of the pure processing time of the target task in a case where an interruption occurs or the processing of the upper task is not interrupted. If the difference is within the threshold value (Yes in S54), the execution time of the target task is not problematic, and it is known that the start time is late, so the deadline margin decreases. Therefore, in step S56, the task allocation change device 2 determines whether or not the difference obtained by subtracting the time at which the state becomes executable from the start time is larger than the threshold value.

[0118] In a case where the difference is larger than the threshold value (No in S54), the processing is interrupted by the upper task through an interruption, and it is known that the deadline margin is likely to decrease. Therefore, in a case where the difference is larger than the threshold value (No in S54), in step S57, the task allocation change device 2 determines whether or not the execution time other than the interruption time generated by the interruption is within the threshold value.

[0119] In step S56, the task allocation change device 2 compares the difference between the start time and the time when the executable state is attained to the threshold value, as described above. This threshold value is also set in advance for each task in association with the determination of the processing time and the like in step S54. The number of tasks of the upper level than the task of the object varies depending on the priority of the task, and thus the average waiting time from the time when the executable state is attained to the actual start of the execution varies. Therefore, it is necessary to set the threshold value for each task. The task allocation change device 2 determines that the execution start is late in the case where the difference is greater than the threshold value (Yes in S56), and thus the currently allocated arithmetic unit is occupied by the execution of the high-priority task, and thus determines the hard deadline task as the object task of the allocation change in step S58.

[0120] The task allocation change device 2 determines that the hard deadline task is started by the average waiting time after the executable state is attained in the case where the difference is within the threshold value (No in S56), and thus determines that the time when the executable state is specified is late, and thus the margin of the deadline becomes small, and thus determines the task that issues the execution permission event for the hard deadline task as the object task in step S59, and performs the operation of step S54 again.

[0121] As described above, the task allocation change device 2 compares the processing time of the hard deadline task other than the interrupt time generated by the interrupt to the threshold value in step S57. The interrupt time generated by the interrupt can be calculated by using the occurrence time of each event of the preemption and the dispatch of the hard deadline task. This threshold value can be the same as the threshold value used in step S54. According to the task, it is also considered that the occurrence of the interrupt is assumed as a premise, and thus in this case, a threshold value different from the threshold value used in step S54 can be set.

[0122] The task allocation change device 2 determines that the usage rate of the high-priority task involved in the currently allocated arithmetic unit is large in the case where the execution time other than the interrupt time generated by the interrupt is greater than the threshold value (No in S57), and thus determines that the reason why the execution time of the hard deadline task cannot be ensured to be the execution time other than the interrupt time generated by the interrupt greater than the threshold value. Therefore, the task allocation change device 2 determines the hard deadline task as the object task of the allocation change in step S58, and shifts the object task to the arithmetic unit where the margin is rich.

[0123] The task allocation change device 2 determines whether the execution time other than the interrupt time generated by the interruption is within the threshold value (Yes in S57). If the hard deadline task is executed without a problem, it is determined that the timing of the start of the processing is late. Therefore, the task allocation change device 2 determines the task that issues the execution permission event for the hard deadline task as the target task in S59, and performs the operation of S54 again.

[0124] By the above operation of the task allocation change device 2, the task allocation change device 2 is able to select the target task for which the allocation change should be performed in a case where the deadline margin is less than or equal to the threshold value. The selection method of the target task can be a method in which priority levels are set for each task, and the selection is performed in order of the priority levels from high to low from among the tasks for which the allocation is not changed in a case where the allocation change implementation condition is satisfied.

[0125] Returning to Figure 5 the operation of the task allocation change device 2 illustrated in the flowchart of

[0126] The allocation change implementation condition is satisfied in a case where the target task of the allocation change is set and the operation section that can be used as the target of the allocation change is set.

[0127] As described above, in a case where the margin is greater than or equal to the threshold value, the allocation change is not necessary, and therefore the task allocation change device 2 sets "no target task" in the target task of the allocation change, and thus the allocation change is not performed. In a case where the operation section that is not present or cannot perform the communication is set as the target of the allocation change, if the allocation change processing is performed, the operation of the numerical control system 1 is impaired, and therefore the task allocation change device 2 determines that the change condition is not satisfied, and the allocation change is not performed.

[0128] The allocation change operation of S46 is described. First, the operation of the task allocation change device 2 with respect to the operation section before the allocation change is described. The allocation change cannot be performed in a case where the task is being executed, and therefore if the target task of the allocation change is in the execution state, the task allocation change device 2 performs the preemption, and sets the state of the target task of the allocation change to the executable state. The task allocation change device 2 acquires the management information of the task in the executable state or the waiting state, and sets the target task to the suspended state. Therefore, the target task is outside the management of the RTOS in the operation section before the allocation change.

[0129] The management information of the task is generally called association, and includes, for example, a PCB (Process Control Block), a TCB (Task Control Block), values of various registers, or values of stack pointers.

[0130] Next, the operation performed by the task allocation change device 2 with respect to the allocation change target will be described. If the generation of the target task is not performed by the allocation change target operation section, the task allocation change device 2 generates the target task. By this, the target task becomes a task under the management of the RTOS in the operation section after the allocation change. In the case where the two operation sections before and after the allocation change do not share the memory, the task allocation change device 2 sets the management information of the task before the allocation change in the area of the management information of the target task generated by the allocation change target operation section. In the case where the two operation sections before and after the allocation change share the memory, the task allocation change device 2 can set the area in which the management information of the acquired task is stored, in such a manner that the task generated by the allocation change target operation section refers to it.

[0131] In this stage, the allocation change of the target task itself is completed, and the state of the target task becomes at least a state of a waiting state or more. If the executable condition is satisfied, the state of the target task becomes an executable state, and if it is necessary to be an executable state, the task allocation change device 2 performs task dispatching with respect to the allocation change target operation section using an interrupt instruction or the like, and thus the target task can be executed.

[0132] Here, the generation method of the task in the allocation change target operation section will be described. The generation method of the task is not particularly limited, and for example, as the simplest method, there is a method in which the task is generated every time the allocation change is performed. In this method, the task is generated at the time when the allocation change is actually performed, and thus the generated task can be limited to only the necessary task, and the advantage that the management area of the RTOS can be saved can be obtained.

[0133] The generation method of the task can be a method in which the task is generated in advance. In this method, the task can be generated before the start of the allocation change, and thus the time required for the allocation change processing can be shortened. All the tasks in which the allocation change is likely to be performed can be generated in advance, or only a part of the tasks in which the frequency of the allocation change is expected to be high can be generated.

[0134] Alternatively, a dedicated task for receiving allocation changes can be prepared. This method allows for limiting the number of tasks generated to the desired level and shortening the time required for allocation change processing. The dedicated task includes a control structure for the task (i.e., a process for waiting for execution rights to be acquired), a function that becomes the first entry point to be executed after execution begins, and a loop structure that returns to the execution rights acquisition waiting area after execution is complete. Which task is executed through the dedicated task can be switched by whether the memory address of the function that becomes the entry point of the target task is set within the function that becomes the entry point. For example, in C, this can be achieved using function pointers.

[0135] Through the above actions, the CNC system 1 according to Embodiment 1 can be allocated and changed in such a way that a software task constituting the CNC processing unit 10 and the axis control unit 11 is greater than or equal to one, and is executed by an arithmetic unit different from the currently executing arithmetic unit. Figure 7 It indicates composition Figure 1 The diagram shows the CNC system 1 when the allocation of software task A in the CNC processing unit 10 is changed to the second arithmetic unit 5. Figure 7 middle, Figure 1 The numerical control processing unit 10 is designated as numerical control processing unit 10A. That is, Figure 7 It shows that it will constitute Figure 1 The CNC system 1 is configured such that the software task A of the CNC processing unit 10 is reassigned to the second arithmetic unit 5, and the software task A is set as the task of the CNC processing unit 10B constituting the second arithmetic unit 5. This operation is preferably performed in the operating state. By performing this operation in the operating state, the CNC system 1 can perform reassignment changes corresponding to the processing load of each arithmetic unit in the operating state.

[0136] Furthermore, the task allocation change device 2 can perform processing each time measurement data is received, or it can perform processing at a constant cycle. The task allocation change device 2 can also perform an allocation change operation when it receives a notification from the processing time estimation unit 13 that a threshold has been exceeded.

[0137] (Effects of Implementation Method 1)

[0138] The task allocation change device 2 performs an allocation change operation on the software task executed by the CNC system 1, in a manner that the software task is executed by a different arithmetic unit from the one currently assigned to the software task. The task allocation change device 2 maintains the state of the CNC system 1 controlling the controlled object 6, i.e., the operating state remains unchanged, while performing the allocation change operation. Therefore, the CNC system 1 according to Embodiment 1 can perform processing in response to changes in the processing volume that occur during operation without requiring a power reconnection.

[0139] The effect is further described. By the task allocation changing device 2, even in the running state of the numerically controlled system 1 after the power supply is turned on to the numerically controlled system 1 related to Embodiment 1, the software task can be moved from the operation section currently executing to another operation section to be executed. Thus, the numerically controlled system 1 changes the allocation of the task from the operation section whose load is increased in the running processing to another operation section, thereby being able to disperse the load of the processing to ensure the performance of the entire numerically controlled system 1 without re-turning on the power supply.

[0140] That is, in the environment where the running of the numerically controlled system 1 cannot be temporarily stopped easily, the numerically controlled system 1 can also eliminate the fluctuation of the processing load for the plurality of operation sections. Thus, the performance of the numerically controlled system 1 can be maximally exerted.

[0141] The task allocation changing device 2 changes the allocation of the operation section related to the software task of the object based on the measurement result related to the processing load of the numerically controlled system 1 in operation, thereby the numerically controlled system 1 can disperse the load of the processing to comply with the set completion time of the processing, that is, to comply with the hard deadline. Thus, the load of the processing which is fluctuated every moment corresponding to the contents of the instruction to the numerically controlled system 1 becomes the cause, in the situation where it is likely to exceed the set completion time of the processing of the numerically controlled system 1, the numerically controlled system 1 can also improve the situation by changing the allocation of the task to the operation section.

[0142] The task with relatively low priority in the numerically controlled system 1 is executed in the idle time of the task with relatively high priority, that is, the hard deadline task, and thus cannot be executed in the situation where the hard deadline task exceeds the completion time. As an example of the task with relatively high priority, the task constituting the numerically controlled processing section 10 or the axis control section 11 is cited, and as an example of the task with relatively low priority, the drawing processing of the screen or the communication processing of the external device is cited. Thus, the phenomenon that the screen display is not updated or the like can occur. If the completion time of the processing exceeds to become serious, the task with relatively high priority also cannot be completed, and the operation of the control object can stop.

[0143] In the case where the load of the processing becomes excessive with respect to the performance of the hardware, it is generally necessary to reduce the contents of the instruction to the numerically controlled system 1 in the manner of performing the enhancement of the hardware or reducing the load of the processing. However, the numerically controlled system 1 related to Embodiment 1 can also shorten the completion time of the processing by changing the allocation of the task to the operation section in the above case, and can maximally utilize the performance of the hardware of the numerically controlled system 1.

[0144] Further, according to the task allocation changing device 2, the numerical control system 1 in operation detects performance insufficiency based on the prediction of the processing time of the numerical control processing section 10, and changes the software task to be executed by another operation section, whereby it is possible to disperse the load of processing so as to avoid performance insufficiency.

[0145] The main factor of the fluctuation of the load of processing of the numerical control system 1 in operation is that the load of processing of the numerical control processing section 10 greatly changes depending on the contents described in the machining program. In fact, until the machining program is read in, it is not known what processing is executed, and thus it is difficult to predict the load of processing when the power is turned on to the numerical control system 1. Therefore, there is a case where the numerical control system 1 is operated and performance insufficiency is first known.

[0146] In the above case, in order to reduce the load of processing by the machining program, the following countermeasure is generally executed, that is, the distance per 1 program block is made long by reducing the command speed or replacing a thin command path composed of a small line segment to a long line segment or a circular arc. However, in this countermeasure, the user compromises the realization of machining at efficiency, machining of a high-precision shape, or realization of a high-quality machined surface, which the user originally intended to realize.

[0147] However, the numerical control system 1 according to Embodiment 1 reads ahead of the machining program, and it is possible to predict the load of processing of the numerical control processing section 10, and thus in the operation of the numerical control system 1, it is possible to disperse the load of processing after the actual load of processing is predicted with high precision. Thus, the user can realize machining at productivity, precision, and quality, which the user originally intended to realize.

[0148] The software task involved in the allocation changing operation by the task allocation changing device 2 is a software task constituting the numerical control processing section 10 or the axis control section 11. The task allocation changing device 2 performs the allocation changing operation in such a manner that the margin for the period, that is, the period margin, of the time at which the processing that needs to be completed within a predetermined period set to the numerical control system 1, that is, the hard deadline processing, is completed is secured to be greater than or equal to a threshold value based on the measurement result of the processing time obtained by the measurement section 12. Thus, the numerical control system 1 can disperse the load of processing so as to comply with the processing completion time, that is, the hard deadline, set to the numerical control system 1.

[0149] The processing time estimation section 13 calculates the number of program blocks to be processed when the next operation is performed by the numerical control processing section 10, based on the machining program input to the numerical control system 1, using the designated target speed and information indicating the length of the movement distance of each program block of the machining program, selects an average processing time of the numerical control processing section 10 that is greater than or equal to one, based on the operation mode information designated by the machining program, and calculates a processing load prediction value obtained by multiplying the number of program blocks by the selected processing time. The task allocation changing device 2 performs the allocation changing operation when the processing load prediction value calculated by the processing time estimation section 13 is greater than or equal to a threshold value. Thus, the numerical control system 1 can disperse the load of processing so that performance shortage is avoided.

[0150] Embodiment 2

[0151] (Structure of Embodiment 2)

[0152] Figure 8 is a diagram indicating the outline of the structure of the numerical control system 1A according to Embodiment 2. The numerical control system 1A has a first numerical control device 7 and a second numerical control device 8. The first numerical control device 7 and the second numerical control device 8 are connected in a manner that they are communicable through the communication unit 3. The second numerical control device 8 is connected to the control object 6. The control object 6 is the same as the control object 6 described in Embodiment 1, and thus the description of the control object 6 is omitted in Embodiment 2.

[0153] The first numerical control device 7 and the second numerical control device 8 each have at least one arithmetic section that is greater than or equal to one, and if they have a storage area used in the execution of processing of the arithmetic section, they can be realized in any manner. For example, the first numerical control device 7 and the second numerical control device 8 can be realized by the same kind of hardware, or can be realized by different kinds of hardware.

[0154] As an example of the case where the first numerical control device 7 and the second numerical control device 8 are realized by the same kind of hardware, a mode realized using a dedicated electronic circuit board on which an integrated circuit, a resistor, a capacitor, and the like are mounted is considered. In this case, regarding the first numerical control device 7 and the second numerical control device 8, generalization of constituent components and inventory is possible, and thus high efficiency in manufacturing, distribution, and sales is expected.

[0155] In the case where the first numerical control device 7 and the second numerical control device 8 are realized by different kinds of hardware, for example, a mode in which, regarding the first numerical control device 7, a server or a workstation or the like is adopted to secure relatively high processing capacity, and regarding the second numerical control device 8, a substrate is mounted with a minimum of electronic components to realize miniaturization and cost reduction is considered.

[0156] The communication unit 3 can be a unit capable of wireless communication or a unit capable of wired communication, similarly to the communication unit 3 of Embodiment 1. The communication unit 3 can be a unit capable of serial communication or a unit capable of parallel communication. For example, in a case where the first numerical control device 7 and the second numerical control device 8 are realized by a substrate and connected via a bus connector, communication can be performed by an arbitrary method. In a case where the first numerical control device 7 and the second numerical control device 8 are each realized by an independent product, the first numerical control device 7 and the second numerical control device 8 can be connected by wireless or by a cable. The method, standard, and the like related to communication by the first numerical control device 7 and the second numerical control device 8 can be arbitrary.

[0157] The first numerical control device 7 and the second numerical control device 8 each have a measurement unit 12 and a processing time estimation unit 13. The measurement unit 12 and the processing time estimation unit 13 are the same as the measurement unit 12 and the processing time estimation unit 13 of Embodiment 1, and thus a description related to the measurement unit 12 and the processing time estimation unit 13 is omitted.

[0158] The first numerical control device 7 has a first numerical control processing unit 21, and the second numerical control device 8 has a second numerical control processing unit 22. The first numerical control processing unit 21 and the second numerical control processing unit 22 share the numerical control processing performed by the numerical control processing unit 10 in Embodiment 1. Specifically, a software task constituting the numerical control processing unit 10 is divided, a part of the software task is allocated to the first numerical control processing unit 21, and the remaining part of the software task is allocated to the second numerical control processing unit 22. That is, the first numerical control processing unit 21 performs a part of the numerical control processing performed by the numerical control processing unit 10, and the second numerical control processing unit 22 performs the remaining part of the numerical control processing performed by the numerical control processing unit 10.

[0159] The sharing method for determining the part shared by the first numerical control processing unit 21 and the part shared by the second numerical control processing unit 22 in the entire numerical control processing is not particularly limited. As the simplest example of the sharing method, a method in which a first half process such as analysis of a string of a machining program is allocated to the first numerical control processing unit 21, and a second half process such as interpolation processing of a path is allocated to the second numerical control processing unit 22 is considered.

[0160] As another example of the sharing method, a method in which only one of the first numerical control processing unit 21 and the second numerical control processing unit 22 is allocated to all software tasks constituting the numerical control processing unit 10 is present. For example, a sharing method in which, in a case where the performance of the second numerical control device 8 is insufficient, no software task is allocated to the second numerical control processing unit 22, and all numerical control processing is performed by the first numerical control processing unit 21, and the second numerical control device 8 is dedicated to processing related to the axis control unit 11 can be employed.

[0161] The first numerical control processing section 21 performs numerical control processing in accordance with the set division, and creates first numerical control command information. The first numerical control command information contains data and signals used by the second numerical control processing section 22 or the axis control section 11 or both the second numerical control processing section 22 and the axis control section 11.

[0162] The second numerical control processing section 22 performs numerical control processing in accordance with the set division using the first numerical control command information, and creates second numerical control command information. The second numerical control command information contains data and signals used by the axis control section 11.

[0163] The second numerical control device 8 has the axis control section 11. The axis control section 11 functions in the same way as the axis control section 11 of Embodiment 1, and therefore, as for the axis control section 11, in Embodiment 2, the explanation of the functions explained in Embodiment 1 among the functions of the axis control section 11 is omitted, and only the unique features are explained in Embodiment 2. The axis control section 11 of Embodiment 2 switches whether to use the first numerical control command information, or to use the second numerical control command information or both the first numerical control command information and the second numerical control command information, in correspondence with the division of the numerical control processing of the aforementioned first numerical control processing section 21 and the second numerical control processing section 22.

[0164] The numerical control system 1A related to Embodiment 2 can have a storage area 9 configured so that the first numerical control device 7 and the second numerical control device 8 can be connected via the communication unit 3. In the case where the numerical control system 1A does not have the storage area 9, a local storage area is provided in each of the first numerical control device 7 and the second numerical control device 8, and the local storage area is used instead of the storage area 9.

[0165] The kind of the storage area 9 is not considered. The storage area 9 can be various kinds of storage, volatile or non-volatile, which can be installed on a substrate in correspondence with the kind of the communication unit 3, or can be a NAS (Network Attached Storage) or various kinds of data servers configured to be connectable on a network constructed by an Ethernet cable, or an on-premise or cloud, and the like.

[0166] In the storage area 9, a software module 19 for executing a software processing required for realizing the numerical control system 1A is saved. The software module 19 contains software for realizing the functions of the first numerical control processing section 21, the second numerical control processing section 22, the axis control section 11, the measurement section 12, the processing time estimation section 13, the task allocation change section 14, the operation input reception section 15, and the communicable hardware detection section 16, or can contain processing software other than the software. Hereinafter, the communicable hardware detection section 16 is written as the communicable HW detection section 16. In the case where the numerical control system 1A does not have the storage area 9, a local storage area is provided in each of the first numerical control device 7 and the second numerical control device 8, and the local storage area is used instead of the storage area 9. Figure 8The communicable hardware detection section 16 is also referred to as a communicable HW detection section 16.

[0167] The structure setting file 18 is also stored in the storage area 9. The structure setting file 18 describes which of the software included in the plurality of numerical control devices included in the numerical control system 1A is included in the software module 19 to execute the initialization software information at the time of power-on. Specifically, the structure setting file 18 is a file that describes the initialization software information that determines which of the plurality of software used to realize the functions of the first numerical control device 7 and the second numerical control device 8 is executed at the time of power-on. The structure setting file 18 includes main selection information that assigns the role of the first numerical control device 7 to which hardware. The main selection information can be included in the initialization software information.

[0168] The role of the first numerical control device 7 is a role in which the task allocation change section 14 and the communicable HW detection section 16 are executed in the arithmetic section included in the first numerical control device 7 to realize the allocation change action in the numerical control system 1A.

[0169] The file format and the description form of the structure setting file 18 can be any file format and description form as long as they can be analyzed by the first numerical control device 7 and the second numerical control device 8. For example, the structure setting file 18 can be described by the format of a text file to select the initialization software information of the first numerical control device 7 and the second numerical control device 8 based on the identification ID (Identifier) inherent in each of the hardware of the first numerical control device 7 and the second numerical control device 8.

[0170] The first numerical control device 7 has the communicable HW detection section 16. The communicable HW detection section 16 detects the numerical control device communicable via the communication unit 3. Further, the communicable HW detection section 16 corresponds to the type of the communication unit 3 to perform the transmission and reception of various signals and data for detecting the communicable hardware, and detects the communicable hardware and the type of the communication unit related to the communicable hardware. For example, if the communication that the communication unit 3 can perform is bus communication, and the second numerical control device 8 is connected by the connector provided to the substrate, the communicable HW detection section 16 can periodically transmit a specific signal to detect whether the hardware is connected to the front end of the connector based on the change in the signal. For example, if the communication unit 3 can perform communication in wired Ethernet, the communicable HW detection section 16 can detect the communicable hardware on the network by the communication control technology based on TCP / IP (Transmission Control Protocol / Internet Protocol).

[0171] The communicable HW detection section 16 creates communicable hardware information 17. Hereinafter, the communicable hardware information 17 is described as communicable HW information 17. The communicable HW information 17 includes various information related to the detected communicable hardware. As examples of the information included in the communicable HW information 17, there are information on the kind or number of arithmetic units possessed by each hardware, the kind or number of HMI (Human Machine Interface) connected to each hardware, other hardware such as an external I / O (Input / Output) device or a control object 6, and connection-related information necessary for the communication unit 3 to connect to the hardware, and the like. In the connection-related information, for example, there are the category of the communication unit or additional information for each category of the communication unit, and the like. If a specific example is given, in the case where the communication unit is an Ethernet, the additional information for each category of the communication unit includes communication protocol information, an IP (Internet Protocol) address, a port number, and the like. Figure 8

[0172] The first numerical control device 7 has a task allocation change section 14. The task allocation change section 14 functions in the same manner as the task allocation change device 2 in Embodiment 1, and thus detailed description of the task allocation change section 14 is omitted.

[0173] By applying the relationship between the first arithmetic unit 4 and the second arithmetic unit 5 in Embodiment 1 to the arithmetic units of the first numerical control device 7 and the second numerical control device 8, respectively, the numerical control system 1A according to Embodiment 2 can achieve the same functions as those explained in Embodiment 1.

[0174] The first numerical control device 7 and the second numerical control device 8 each have an operation input reception section 15 that receives an input related to the operation of the numerical control system 1A. Instead of the user causing the numerical control system 1A to determine the execution timing of the allocation change action of the software task to the arithmetic unit based on the functions possessed by the numerical control system 1A, the user sometimes desires to control the execution timing of the allocation change action. Among the end users who actually use the numerical control system 1A, there are users who think that it is desirable to make adjustments at their own discretion, and users who do not prefer to make adjustments at their own discretion. For such users, the permission of the allocation change is input using an input device provided to the numerical control device, the result of the input is received by the operation input reception section 15, and the control is performed so as to act in accordance with the received result, whereby the numerical control system 1A is configured so that the user can control the allocation change action.

[0175] There is no particular limitation in the kind of the input device. In the input device, an input interface normally provided to the numerical control device can be used. The input device can be an HMI or a mechanical button, or the like.​

[0176] (Action of Embodiment 2)

[0177] An action of the numerical control system 1A according to Embodiment 2 will be described. If the power supply of the first numerical control device 7 and the second numerical control device 8 constituting the numerical control system 1A is turned on, the state of the numerical control system 1A is changed from the power OFF state to the power ON state, and then, by starting the boot-up process, it is changed to the boot-up in state, the first numerical control device 7 and the second numerical control device 8 are connected to the storage area 9 through the communication unit 3, and the configuration setting file 18 is read in.

[0178] The first numerical control device 7 and the second numerical control device 8 read in the software module 19 from the storage area 9, and expand the corresponding configuration elements in accordance with the initialization software information and the main selection information included in the configuration setting file 18.

[0179] Next, the first numerical control device 7 grasps the communicable numerical control devices by the communicable HW detection section 16. In Embodiment 2, there are only two numerical control devices, the first numerical control device 7 and the second numerical control device 8, but in the case where there are three or more numerical control devices, the first numerical control device 7 detects the three or more numerical control devices and grasps the number of the three or more numerical control devices.

[0180] At the stage where the first numerical control device 7 and the second numerical control device 8 establish the communication via the communication unit 3, the state of the numerical control system 1A is changed to the boot-up completion state, and the action of the numerical control system 1A can be performed, so the first numerical control instruction information created by the first numerical control processing section 21 is transmitted to the second numerical control device 8 via the communication unit 3. The second numerical control device 8 performs the processing using the first numerical control instruction information by the second numerical control processing section 22 or the axis control section 11 or both of the second numerical control processing section 22 and the axis control section 11 in correspondence with the sharing state of the numerical control processing, and the axis control section 11 performs the control of the control object 6 by outputting the instruction to the control object 6, thereby realizing the control of the control object 6.

[0181] An action of the task allocation change section 14 in Embodiment 2 will be described. The basic action of the task allocation change section 14 according to Embodiment 2 is the same as the action of the task allocation change device 2 described in Embodiment 1. Therefore, in Embodiment 2, the description of the basic action of the task allocation change section 14 is omitted, and only the unique part in Embodiment 2 will be described.

[0182] In Embodiment 2, in order to describe the change of the allocation of the tasks in the plurality of numerical control devices, the change of the allocation in the plurality of arithmetic sections in the inside of the numerical control device is not particularly described, but the change of the allocation in the plurality of arithmetic sections in the inside of the first numerical control device 7 or the second numerical control device 8 can be made based on the contents described in Embodiment 1.

[0183] The measuring section 12 and the processing time estimation section 13 of the first numerical control device 7 and the measuring section 12 and the processing time estimation section 13 of the second numerical control device 8 perform the contents of the operation explained in Embodiment 1 with respect to the software tasks of the first numerical control processing section 21 constituting the inside of the first numerical control device 7 and the software tasks of the axis control section 11 and the second numerical control processing section 22 constituting the inside of the second numerical control device 8.

[0184] In the same manner as the operation of the measuring section 12 and the processing time estimation section 13 of the first numerical control device 7 and the measuring section 12 and the processing time estimation section 13 of the second numerical control device 8 via the communication unit 3 to the task allocation change device 2 in Embodiment 1, the measuring section 12 and the processing time estimation section 13 of the first numerical control device 7 and the measuring section 12 and the processing time estimation section 13 of the second numerical control device 8 perform the transmission of the measurement data and the notification of the allocation change task to the task allocation change section 14 via the communication unit 3. In Figure 8 In the case where the task allocation change section 14 is configured in the inside of the first numerical control device 7, the measuring section 12 and the processing time estimation section 13 of the first numerical control device 7 can transmit data and notification to the task allocation change section 14 by a method of replacing the communication unit 3 and using the internal bus or the like of the first numerical control device 7.

[0185] The task allocation change section 14 performs the allocation change operation based on the measurement data and the notification of the allocation change task in the same manner as the task allocation change device 2 in Embodiment 1. The task allocation change section 14 can improve the selection of the allocation target of the arithmetic section using the information included in the communicable HW information 17 and the configuration setting file 18. For example, the task allocation change section 14 can change the allocation priority of the arithmetic section taking into account the magnitude of the communication delay with the second numerical control device 8 expected to occur corresponding to the kind of the communication unit 3.

[0186] The task allocation change section 14 can change the allocation priority of the arithmetic section based on the number of the arithmetic sections possessed by the second numerical control device 8 and the state of the load of each arithmetic section. The task allocation change section 14 can acquire the number of the arithmetic sections possessed by each numerical control device from the communicable HW information 17 and can acquire the state of the load of each arithmetic section by using the measurement data of the measuring section 12.

[0187] The operation of the operation input reception section 15 will be explained. The operation input reception section 15 issues an instruction to the task allocation change section 14 to cause the execution of the allocation change processing or specifies the execution period of the allocation change processing based on the input data from the input device as explained above.

[0188] For example, in a case where the user desires to immediately perform the allocation change, the operation input receiving section 15 can output an allocation change processing execution command to the task allocation change section 14 to cause the allocation change processing to be immediately executed if an instruction is received through the input device.

[0189] The operation input receiving section 15 adjusts the frequency of execution of the allocation change processing based on one or both of the mode setting of the numerical control system 1A or the first numerical control device 7 and information indicating the effectiveness or ineffectiveness of the function and a parameter set for the purpose of adjustment of the operation and the like. That is, in a case where the parameter is changed, the operation input receiving section 15 can receive a parameter change notification and increase or decrease the frequency of the allocation change executed by the task allocation change section 14 based on the contents of the changed parameter.

[0190] (EFFECTS OF EMBODIMENT 2)

[0191] Through the above operation, the numerical control system 1A according to Embodiment 2 can move the software task being executed from the currently operating arithmetic section to another arithmetic section and execute the software task even in the state where the numerical control system 1A is in operation. Thus, by changing the allocation to another numerical control device from the numerical control device whose processing load has increased and whose performance has become insufficient during operation, the processing load can be dispersed and the overall performance of the numerical control system 1A can be ensured without interrupting the operation.

[0192] Thus, the performance requirement sufficient for the hardware of the single body can be dealt with by the single body, and in a case where higher performance is required, the hardware can be added, so the user can use the numerical control system 1A at a cost commensurate with the required performance.

[0193] In the numerical control system 1A, the execution timing and frequency of the allocation change operation can be specified by the user, and in a trial operation, evaluation, or investigation, or the like, the user can grasp the state inside by manually instructing the allocation change, and on the other hand, in a relatively long operation in production, the numerical control system 1A can be caused to automatically perform the allocation change and maintain the performance of the numerical control system 1A.

[0194] As described above, the first numerical control device 7 and the second numerical control device 8 are connected via the communication unit 3. The first numerical control device 7 transmits the first numerical control instruction information created by the first numerical control processing section 21 to the second numerical control device 8 via the communication unit 3. The axis control section 11 possessed by the second numerical control device 8 executes the control of the drive axis provided in the control object 6 using the first numerical control instruction information or the second numerical control instruction information. The first numerical control device 7 and the second numerical control device 8 each determine whether the role thereof is the first numerical control device 7 or not by reading in the configuration setting file 18 at the time of startup.

[0195] The communicable HW detection section 16 of the first NC device 7 detects the NC devices communicable via the communication unit 3. The task allocation change section 14 of the first NC device 7 changes the allocation of the software tasks executed by the NC system 1A, based on the communicable HW information 17 including the detection result obtained by the communicable HW detection section 16 and the configuration setting file 18, in such a manner that the software tasks are executed by the NC device different from the NC device currently allocated with the software tasks, among the first NC device 7 and the second NC device 8, with respect to the software tasks executed by the NC system 1A, and maintains the state of the control of the control objects 6 by the NC system 1A, i.e., the running state, unchanged. Thus, the NC system 1A can perform the allocation change action even in the running state, and can exhibit the required performance as a whole of the NC system 1A even in the condition that the first NC device 7 or the second NC device 8 is insufficient in performance in the unit.

[0196] The task allocation change section 14 can perform the allocation change action at the opportunity that the operation input reception section 15 receives an input. In this case, the user can grasp the allocation state of the internal processing of the NC system 1A at the time of trial operation, evaluation, or investigation, or the like.

[0197] Embodiment 3.

[0198] (Configuration of Embodiment 3)

[0199] Figure 9 is a diagram showing the outline of the configuration of the NC system 1B according to Embodiment 3. The plurality of structural elements in Embodiment 3 are substantially the same as the structural elements described in the other embodiments, and thus in Embodiment 3, only the characteristic points in Embodiment 3 and the differences from the other embodiments are described. The NC system 1B according to Embodiment 3 can control two or more control objects 6. Figure 9 A condition in which the NC system 1B controls three control objects 6 is shown.

[0200] The NC system 1B according to Embodiment 3 further has two NC devices compared with the NC system 1A according to Embodiment 2. The two NC devices are a third NC device 83 and a fourth NC device 84. The third NC device 83 and the fourth NC device 84 are each configured to be connectable to the hardware constituting the NC system 1B, i.e., the first NC device 7, the second NC device 8, and the storage region 9, via the communication unit 3.

[0201] The third CNC device 83 has the same structural elements as the second CNC device 8. That is, the third CNC device 83 has an axis control unit 11, a measuring unit 12, a processing time estimation unit 13, an operation input receiving unit 15, and a second CNC processing unit 22. The fourth CNC device 84 has the measuring unit 12, the processing time estimation unit 13, the operation input receiving unit 15, and the first CNC processing unit 21, which are among the multiple structural elements of the first CNC device 7.

[0202] The task allocation change unit 14 only needs to exist inside the CNC system 1B. In embodiment 3, it exists inside the first CNC device 7, therefore the fourth CNC device 84 does not have the task allocation change unit 14. The communicable HW detection unit 16 is also the same as the task allocation change unit 14.

[0203] exist Figure 9 In this configuration, one control object 6 is connected to the second CNC device 8, and two control objects 6 are connected to the third CNC device 83. There is no particular limitation on the number of control objects 6 connected to the CNC devices. That is, one CNC device can be connected to one control object 6, multiple CNC devices can be connected to one control object 6, or one CNC device can be connected to multiple control objects 6.

[0204] To control the controlled object 6, the first CNC processing unit 21, the second CNC processing unit 22, and the axis control unit 11 within the CNC system 1B each need to perform processing. In Embodiment 3, the first CNC device 7 and the second CNC device 8 each have a first CNC processing unit 21, and the second CNC device 8 and the third CNC device 83 each have a second CNC processing unit 22 and an axis control unit 11. However, there are no particular restrictions on how the units are allocated to perform processing for controlling multiple controlled objects 6.

[0205] For example in Figure 9 In the example, there are three controlled objects 6: one controlled object 6 is connected to the second CNC device 8, and two controlled objects 6 are connected to the third CNC device 83. However, it is not necessary for the first CNC processing unit 21 of the first CNC device 7 to perform the processing related to the one controlled object 6 connected to the second CNC device 8, and for the first CNC processing unit 21 of the fourth CNC device 84 to perform the processing related to the two controlled objects 6 connected to the third CNC device 83. It is also possible for the first CNC processing unit 21 of the first CNC device 7 to perform the processing of the controlled object 6 connected to the third CNC device 83.

[0206] (The action of implementation method 3)

[0207] An operation of the numerical control system 1B according to Embodiment 3 will be described. The basic part of the operation of the numerical control system 1B is the same as that of the numerical control system 1A according to Embodiment 2, and thus, only the operation and features peculiar to Embodiment 3 will be described below.

[0208] At the start of the numerical control system 1B, at least the first numerical control device 7 and the second numerical control device 8 are started. That is, the power supply to the third numerical control device 83 and the fourth numerical control device 84 can be turned on after the state of the numerical control system 1B is changed to the start completion state, and the third numerical control device 83 and the fourth numerical control device 84 are connected using the communication unit 3. Of course, at the start of the numerical control system 1B, the third numerical control device 83 and the fourth numerical control device 84 can be started, and any one of the third numerical control device 83 and the fourth numerical control device 84 can perform an operation different from the other.

[0209] As to the case where all the numerical control devices are started at the start of the numerical control system 1B, the description is made in Embodiment 2, and thus, in Embodiment 3, the case where the third numerical control device 83 and the fourth numerical control device 84 are added in the operation of the numerical control system 1B will be described.

[0210] In the operation of the numerical control system 1B, if the power supply to the third numerical control device 83 and the fourth numerical control device 84 is turned on, and the third numerical control device 83 and the fourth numerical control device 84 can communicate with the hardware constituting the numerical control system 1B through the communication unit 3, the communicable HW detection section 16 of the first numerical control device 7 detects the added numerical control devices, and updates the communicable HW information 17 by adding the detection result to the communicable HW information 17.

[0211] As described above, the communicable HW detection section 16 performs the detection process of the communicable hardware in correspondence with the communication unit 3, but for example, it can be configured to periodically perform the detection process at a constant period, and thus, the detection can be promptly performed at the time of addition of the numerical control devices. For example, in the case where the communication unit 3 is Ethernet, the communicable HW detection section 16 can transmit a ping or the like to a broadcast address, and detect the numerical control devices newly added to the network. In the case where the communication unit 3 is bus communication, the communicable HW detection section 16 can transmit a specific signal or data to the bus connector, and detect the added numerical control devices by detecting the change of the signal or data at the time of turning on of the power supply to become communicable.

[0212] The communicable HW detection section 16 newly detects communicable HW, and after updating the communicable HW information 17, the updated communicable HW information 17 is notified to the task allocation change section 14. The task allocation change section 14 performs the same allocation change action as explained in Embodiment 2 using the updated communicable HW information 17. The task allocation change section 14 can perform the allocation change action on the occasion of the communicable NC device newly detected by the communicable HW detection section 16. In the case where the task allocation change section 14 performs the allocation change action on the occasion of the communicable NC device newly detected, the NC system IB does not stop the operation, and the load of processing can be distributed effectively using the enhanced performance. The task allocation change section 14 can perform the allocation change action based on the conditions explained in Embodiment 1 and Embodiment 2.

[0213] The task allocation change section 14 refers to the communicable HW information 17, and switches the mode of allocation change corresponding to the presence or absence of the control object 6 connected to each NC device. One allocation change mode is the type of the allocation change mode of the first NC device 7 having the first NC processing section 21, and the other allocation change mode is the type of the allocation change mode of the second NC device 8 having the second NC processing section 22 and the axis control section 11.

[0214] In the case where the control object 6 is not connected, the software task constituting the first NC processing section 21 becomes a candidate of allocation change, and in the case where the control object 6 is connected, the software task constituting the second NC processing section 22 and the axis control section 11 becomes a candidate of allocation change. Further, the allocation change mode is not limited to the above two modes, and can be set to three or more allocation change modes corresponding to the information of the number of axes possessed by the control object 6 or the like.

[0215] (EFFECTS OF EMBODIMENT 3)

[0216] In the case where a large-scale system is required compared to the NC system IA related to Embodiment 2, that is, in the case where a plurality of control objects 6 are required to be controlled, the NC system IB can distribute the load of processing by the additional NC device even in the case where the performance of the hardware is insufficient with respect to the processing load of the required software, and can operate without falling into the performance insufficiency.

[0217] The NC system IB can realize the above action without interrupting the operation, and in a production device or the like which cannot be easily stopped, the load of processing can be distributed by adding the NC device corresponding to the required performance.

[0218] Figure 10is a diagram showing the processor 91 in the case where the first arithmetic unit 4 that the numerical control system 1 according to Embodiment 1 has is implemented by the processor 91. That is, the function of the first arithmetic unit 4 can be implemented by the processor 91 that executes a program stored in the memory 92. The processor 91 is a CPU, a processing device, an arithmetic device, a microprocessor, or a DSP. In Figure 10 The memory 92 is also shown in FIG. 1.

[0219] In the case where the function of the first arithmetic unit 4 is implemented by the processor 91, the function is implemented by the processor 91 and software, firmware, or a combination of software and firmware. The software or firmware is described as a program and stored in the memory 92. The processor 91 reads out and executes the program stored in the memory 92, thereby implementing the function of the first arithmetic unit 4.

[0220] In the case where the function of the first arithmetic unit 4 is implemented by the processor 91, the numerical control system 1 has the memory 92 for storing a program by which the steps executed by the first arithmetic unit 4 are finally executed. The program stored in the memory 92 can be said to cause a computer to execute the processing executed by the first arithmetic unit 4.

[0221] The memory 92 is, for example, a non-volatile or volatile semiconductor memory such as a RAM (Random Access Memory), a ROM (Read Only Memory), a flash memory, an EPROM (Erasable Programmable Read Only Memory), an EEPROM (registered trademark) (Electrically Erasable Programmable Read-Only Memory), a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, or a DVD (Digital Versatile Disk).

[0222] Figure 11 is a diagram showing the processing circuit 93 in the case where the first arithmetic unit 4 that the numerical control system 1 according to Embodiment 1 has is implemented by the processing circuit 93. That is, the first arithmetic unit 4 can be implemented by the processing circuit 93. The processing circuit 93 is a dedicated hardware. The processing circuit 93 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.

[0223] As for the plurality of functions of the first arithmetic unit 4, a part of the plurality of functions can be implemented by software or firmware, and the remaining part of the plurality of functions can be implemented by dedicated hardware. As described above, the plurality of functions of the first arithmetic unit 4 can be implemented by hardware, software, firmware, or a combination thereof.

[0224] The second arithmetic unit 5 included in the numerical control system 1 according to Embodiment 1 can be implemented by a processor or a processing circuit. The processor is the same as the processor 91. The processing circuit is the same as the processing circuit 93. In the case where the second arithmetic unit 5 is implemented by a processor, the numerical control system 1 has a memory for storing a program by which the steps performed by the second arithmetic unit 5 are ultimately performed. The memory is the same as the memory 92.

[0225] The task allocation changing device 2 included in the numerical control system 1 according to Embodiment 1 can be implemented by a processor or a processing circuit. The processor is the same as the processor 91. The processing circuit is the same as the processing circuit 93. In the case where the task allocation changing device 2 is implemented by a processor, the numerical control system 1 has a memory for storing a program by which the steps performed by the task allocation changing device 2 are ultimately performed. The memory is the same as the memory 92.

[0226] The first numerical control device 7 included in the numerical control system 1A according to Embodiment 2 can be implemented by a processor or a processing circuit. The processor is the same as the processor 91. The processing circuit is the same as the processing circuit 93. In the case where the first numerical control device 7 is implemented by a processor, the numerical control system 1A has a memory for storing a program by which the steps performed by the first numerical control device 7 are ultimately performed. The memory is the same as the memory 92.

[0227] The second numerical control device 8 included in the numerical control system 1A according to Embodiment 2 can be implemented by a processor or a processing circuit. The processor is the same as the processor 91. The processing circuit is the same as the processing circuit 93. In the case where the second numerical control device 8 is implemented by a processor, the numerical control system 1A has a memory for storing a program by which the steps performed by the second numerical control device 8 are ultimately performed. The memory is the same as the memory 92.

[0228] The third numerical control device 83 of the numerical control system 1B according to Embodiment 3 can be implemented by a processor or by processing circuitry. The processor is the same processor as the processor 91. The processing circuitry is the same processing circuitry as the processing circuitry 93. In the case where the third numerical control device 83 is implemented by a processor, the numerical control system 1B has a memory for storing a program by which the steps performed by the third numerical control device 83 are ultimately performed. The memory is the same memory as the memory 92.

[0229] The fourth numerical control device 84 of the numerical control system 1B according to Embodiment 3 can be implemented by a processor or by processing circuitry. The processor is the same processor as the processor 91. The processing circuitry is the same processing circuitry as the processing circuitry 93. In the case where the fourth numerical control device 84 is implemented by a processor, the numerical control system 1B has a memory for storing a program by which the steps performed by the fourth numerical control device 84 are ultimately performed. The memory is the same memory as the memory 92.

[0230] The structures shown in the above embodiments represent one example, can be combined with other known techniques, can be combined with each other, and can omit or change a part of the structures without departing from the gist.

[0231] Explanation of Reference Signs

[0232] 1, 1A, 1B numerical control system, 2 task allocation change device, 3 communication unit, 4 first arithmetic unit, 5 second arithmetic unit, 6 control object, 7 first numerical control device, 8 second numerical control device, 9 storage area, 10, 10A, 10B numerical control processing unit, 11 axis control unit, 12 measurement unit, 13 processing time estimation unit, 14 task allocation change unit, 15 operation input reception unit, 16 communicable hardware detection unit, 17 communicable hardware information, 18 configuration setting file, 19 software module, 21 first numerical control processing unit, 22 second numerical control processing unit, 83 third numerical control device, 84 fourth numerical control device, 91 processor, 92 memory, 93 processing circuitry.

Claims

1. A numerical control system having a first numerical control device and a second numerical control device connected via a communication unit, the numerical control system characterized by the first numerical control device having a first numerical control processing section that creates first numerical control command information, and sending the first numerical control command information created by the first numerical control processing section to the second numerical control device via the communication unit, the second numerical control device having a second numerical control processing section that creates second numerical control command information using the first numerical control command information created by the first numerical control processing section, and an axis control section that performs control of a drive shaft provided to a control object using the first numerical control command information created by the first numerical control processing section or the second numerical control command information created by the second numerical control processing section, the first numerical control device and the second numerical control device each determining whether the role thereof is the first numerical control device or a device other than the first numerical control device by reading in a configuration setting file in which initialization software information that describes determination of execution at power-on of which software among a plurality of software used to realize functions of the first numerical control device and the second numerical control device is executed when the power is turned on, at start-up, the first numerical control device having a communicable hardware detection section that detects numerical control devices communicable via the communication unit, and a task allocation change section, the task allocation change section performing a task allocation change action in a case where a state in which the control object is controlled by the numerical control system, i.e., an operation state, is maintained, with respect to a software task executed by the numerical control system, in a manner in which the software task is executed by a numerical control device different from a numerical control device to which the software task is currently allocated among the first numerical control device and the second numerical control device, based on communicable hardware information including a detection result obtained by the communicable hardware detection section and the configuration setting file.

2. The numerical control system according to claim 1, characterized in that the first numerical control device and the second numerical control device have a measurement section that measures a processing time in a case where processing is performed by the first numerical control processing section, the second numerical control processing section, and the axis control section, the software task to which the task allocation change action performed by the task allocation change section pertains is a software task that constitutes the first numerical control processing section, the second numerical control processing section, or the axis control section, the task allocation change section performs the task allocation change action in a manner in which a margin for the period, i.e., a deadline margin, that ensures that a time at which processing that needs to be completed within a predetermined period set to the numerical control system, i.e., a hard deadline processing, is completed is greater than or equal to a first threshold value, based on a measurement result of the processing time obtained by the measurement section.

3. The numerical control system according to claim 1, characterized in that The first and second numerical control devices have a processing time estimation section that, based on a machining program input to the numerical control system, uses a designated target speed and information indicating the length of a movement distance of each program block of the machining program to calculate the number of program blocks to be processed when the first and second numerical control processing sections next act, selects a processing time that is greater than or equal to one candidate average of the first and second numerical control processing sections based on operation mode information designated by the machining program, and calculates a processing load prediction value obtained by multiplying the number of program blocks being processed by the selected processing time, The task allocation changing device performs the allocation changing action when the processing load prediction value calculated by the processing time estimation section is greater than or equal to a second threshold value.

4. The numerical control system according to any one of claims 1 to 3, characterized in that The task allocation changing section performs the allocation changing action in conjunction with the numerical control device newly detected as communicable by the communicable hardware detection section.

5. The numerical control system according to any one of claims 1 to 3, characterized in that The first and second numerical control devices each further have an operation input reception section that receives an input related to the action of the numerical control system, The task allocation changing section performs the allocation changing action in conjunction with the input received by the operation input reception section.

6. A task allocation changing device that performs an allocation changing action related to a software task executed by a numerical control system having a first numerical control device and a second numerical control device connected via a communication unit, The task allocation changing device is characterized in that The first numerical control device has a first numerical control processing section that creates first numerical control instruction information and a communicable hardware detection section that detects a numerical control device communicable via the communication unit, and the first numerical control instruction information created by the first numerical control processing section is transmitted to the second numerical control device via the communication unit, The second numerical control device has a second numerical control processing section that creates second numerical control instruction information using the first numerical control instruction information created by the first numerical control processing section, and an axis control section that executes control of a drive shaft provided to a control object using the first numerical control instruction information created by the first numerical control processing section or the second numerical control instruction information created by the second numerical control processing section. Based on the communicable hardware information including the detection result obtained by the communicable hardware detection section and the configuration setting file in which the initialization software information that determines the execution at the time of power-on of which software among a plurality of software used for realizing the functions of the first numerical control device and the second numerical control device is described, regarding the software task executed by the numerical control system, in the case of maintaining the state of controlling the control object by the numerical control system, that is, the running state, the allocation change action is performed in a manner that the software task is executed by the numerical control device different from the numerical control device to which the software task is currently allocated among the first numerical control device and the second numerical control device.

7. A numerical control method that performs an allocation change action regarding a software task executed by a numerical control system having a first numerical control device and a second numerical control device connected via a communication unit, The numerical control method is characterized by comprising the steps of: The first numerical control device creates first numerical control instruction information; The first numerical control device detects a numerical control device communicable via the communication unit; The first numerical control instruction information created by the first numerical control device is transmitted to the second numerical control device via the communication unit; The second numerical control device creates second numerical control instruction information using the first numerical control instruction information created by the first numerical control device; The second numerical control device executes control of a drive shaft provided to a control object using the first numerical control instruction information created by the first numerical control device or the second numerical control instruction information created; The first numerical control device, based on the communicable hardware information including the detection result obtained in the step of detecting a numerical control device communicable and the configuration setting file in which the initialization software information that determines the execution at the time of power-on of which software among a plurality of software used for realizing the functions of the first numerical control device and the second numerical control device is described, regarding the software task executed by the numerical control system, in the case of maintaining the state of controlling the control object by the numerical control system, that is, the running state, performs the allocation change action in a manner that the software task is executed by the numerical control device different from the numerical control device to which the software task is currently allocated among the first numerical control device and the second numerical control device.

Citation Information

Patent Citations

  • Elevator software update system

    JP5996703B1

  • Distributed control method and apparatus

    US20030187907A1

  • Industrial control system, and assistance apparatus, control assist method, and program thereof

    US20190188110A1