Programmable logic controller and support device for setting the same
The cam curve determination unit addresses undesired behavior in spline curve generation by specifying pass points and accelerations, enabling efficient adjustment of cam curves to meet user-defined characteristics and motor constraints.
Patent Information
- Application Number
- JP2024024320
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-02-21
- Publication Date
- 2025-09-02
AI Technical Summary
Existing cam curve generation methods using spline curves often result in undesired behavior, particularly when specifying multiple pass points, leading to displacement exceeding the motor's movement range.
A cam curve determination unit that receives pass-through points and specifies speed or acceleration at these points, determining a smooth cam curve that satisfies user-defined characteristics, reducing user burden by relaxing higher-order derivative constraints.
The solution allows users to adjust cam curves efficiently, ensuring desired characteristics are met while keeping displacements within motor capabilities, thus reducing user effort and ensuring smooth operation.
Smart Images

Figure 2025127556000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a programmable logic controller and a setting support device for setting the same. [Background technology]
[0002] In factory automation, programmable logic controllers (PLCs) are the core controllers that control industrial machinery. Most industrial machinery uses motors as its drive source to drive various loads. Traditionally, cam mechanisms have been controlled by mechanically driving a cam with a motor. However, in recent years, electronic cams, which electronically control cams, have been proposed (see Patent Document 1). According to Patent Document 1, smoothing the operation of an electronic cam near a transition point is proposed by using a quintic function to control the position of the electronic cam in a PLC, a quartic function to control the speed of the electronic cam, and a cubic function to control the acceleration of the electronic cam. More specifically, the use of a smooth spline curve is said to reduce mechanical vibration and load. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2006-172438 Summary of the Invention [Problem to be solved by the invention]
[0004] However, using a spline curve does not necessarily result in the desired behavior of the user. In particular, when a user specifies multiple pass points and a cam curve is drawn using a spline curve so that it passes through the specified pass points, the behavior at each pass point may not be as desired by the user. For example, a cam curve may be generated such that the displacement of the electronic cam exceeds the range of movement of the electronic cam in the section from one pass point to the next.
[0005] Therefore, an object of the present invention is to reduce the burden on the user when adjusting a cam curve so that the cam curve has desired characteristics. [Means for solving the problem]
[0006] The present invention is, for example, a cam curve determination unit that receives designation of one or more pass-through points between a first point and a second point, and determines a cam curve that represents a displacement of an output shaft relative to a displacement of an input shaft, the cam curve being a cam curve that passes through the first point, the one or more pass-through points, and the second point and is a smooth curve; a generation unit that generates an output signal that indicates a displacement of the output shaft that follows the cam curve based on the cam curve determined by the cam curve determination unit and an input phase signal that indicates a displacement of the input shaft, The cam curve determination unit receives a specification of one of the one or more passing points and a specification of at least one of a speed and an acceleration at the specified passing point, and determines a cam curve consisting of the smooth curve so that the speed or acceleration at the specified passing point satisfies the specified speed or acceleration. [Effects of the Invention]
[0007] According to the present invention, it is possible to reduce the burden on the user when the user adjusts the cam curve so that the cam curve has the desired characteristics. [Brief explanation of the drawings]
[0008] [Figure 1] Diagram explaining a PLC system [Figure 2] FIG. 1 is a diagram illustrating a setting support device. [Figure 3] Diagram explaining the PLC basic unit (CPU unit) [Figure 4] Diagram explaining the motor driver (motion unit) that realizes the electronic cam [Figure 5]A diagram explaining the functions realized by the CPU of the PC or base unit [Figure 6] Diagram explaining the user interface [Figure 7] Diagram explaining the user interface [Figure 8] A diagram illustrating the cam curve and its derivative curve [Figure 9] Diagram explaining the user interface [Figure 10] Diagram explaining the relaxation of constraint conditions by specifying differential values [Figure 11] Flowchart showing how to determine the cam curve [Figure 12] Flowchart showing how to determine the detailed cam curve [Figure 13] Diagram explaining function blocks DETAILED DESCRIPTION OF THE INVENTION
[0009] Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the scope of the invention as claimed, and not all combinations of features described in the embodiments are necessarily essential to the invention. Two or more of the features described in the embodiments may be arbitrarily combined. Furthermore, the same reference numerals are used for the same or similar components, and redundant explanations will be omitted.
[0010] <PLCシステム> FIG. 1 shows an example of the configuration of a programmable logic controller system (hereinafter referred to as PLC system 1) according to an embodiment of the present invention. As shown in FIG. 1, this PLC system 1 includes a PC (computer) that is a setting support device for editing user programs such as ladder programs, a basic unit 3 that is a PLC (programmable logic controller) for comprehensively controlling various control devices installed in a factory, and multiple motor drivers 4a-4c. The multiple motor drivers 4a-4c drive motors 10a, 10b, and 10c, respectively. If the motors 10a, 10b, and 10c are servo motors, the motor drivers 4a-4c may also be called servo amplifiers. The motors 10a, 10b, and 10c implement an electronic cam. The basic unit 3 executes calculations according to a cam table to issue commands, and the motor driver 4 drives the motor 10 according to the commands, electronically imitating the operation of a physical cam. This is called an "electronic cam." The control function for controlling the motion unit may be built into the basic unit 3 or into an expansion unit electrically connected to the basic unit 3.
[0011] The user program created by PC2, which is a setting support device, may be created using a graphical programming language such as a ladder language or a flowchart-format motion program, or may be created using a high-level programming language such as C language.
[0012] In the PLC system 1, one or more expansion units (e.g., I / O unit, analog input unit, analog output unit, communication unit, etc.) may be connected to the basic unit 3. The basic unit 3 is sometimes called a CPU unit.
[0013] The basic unit 3 has a display unit 5 and an operation unit 6. The display unit 5 can display the operating status of the motor drivers 4a to 4c, etc. The display unit 5 may switch the display content depending on the operation of the operation unit 6. The display unit 5 usually displays the current values (device values) of devices in the PLC system 1 and error information (presence or absence of alarms or warnings) that has occurred in the PLC system 1. A device is a memory area provided for storing device values (device data), and is sometimes called a data memory or device memory. A device value is information that indicates the input status from input devices, the output status to output devices, and the status of internal relays (auxiliary relays), timers, counters, data memories, etc. that are set in a user program. Device values are classified into bit and word types. A bit device stores a 1-bit device value. A word device stores a 1-word device value.
[0014] The motor drivers 4a to 4c are provided to extend the functions of the PLC system 1. The motors 10a to 10c are controlled by the motor drivers 4a to 4c, respectively. The motor drivers 4a to 4c supply power to the motors 10a to 10c and control the amount of rotation and the like in accordance with commands from the basic unit 3. The motors 10a to 10c are, for example, servo motors or stepping motors.
[0015] The PC2 is a computer that provides a development environment for the PLC system 1. The PC2 is, for example, a portable notebook or tablet personal computer, and is equipped with a display unit 7 and an operation unit 8. A ladder program, which is an example of a user program for controlling the PLC system 1, is created using the PC2. The created ladder program is converted into mnemonic code within the PC2. The PC2 is connected to the basic unit 3 of the PLC system 1 via a communication cable 9a such as a universal serial bus (USB) and sends the ladder program converted into mnemonic code to the basic unit 3. The basic unit 3 converts the ladder program into machine code and stores it in a memory provided in the basic unit 3. Note that, although the mnemonic code is transmitted to the basic unit 3 in this example, the present invention is not limited to this. For example, the PC2 may convert the mnemonic code into intermediate code and transmit the intermediate code to the basic unit 3.
[0016] Although not shown in FIG. 1, the operation unit 8 of the PC 2 may include a pointing device such as a mouse connected to the PC 2. The PC 2 may also be configured to be detachably connected to the basic unit 3 via a communication cable 9a other than USB. The PC 2 may also be connected to the basic unit 3 wirelessly, without using the communication cable 9a. In this case, the communication cable 9a may be understood to represent a wireless link.
[0017] The basic unit 3 and motor driver 4a are connected by a communication cable 9b and can communicate with each other via the communication cable 9b. The motor drivers 4a and 4b are connected by a communication cable 9c and can communicate with each other via the communication cable 9c. The motor driver 4b can communicate with the basic unit 3 via the communication cables 9b and 9c. The motor drivers 4b and 4c are connected by a communication cable 9d and can communicate with each other via the communication cable 9d. Furthermore, the motor driver 4c can communicate with the basic unit 3 via the communication cables 9b, 9c, and 9d.
[0018] In the following, when common matters are described for the motor drivers 4a to 4c, they will be referred to as motor drivers 4. Similarly, when common matters are described for the motors 10a to 10c, they will be referred to as motors 10.
[0019] <Setting support device> FIG. 2 is a block diagram for explaining the electrical configuration of PC 2 that operates as a setting support device. As shown in FIG. 2, PC 2 includes a CPU 11, a display unit 7, an operation unit 8, a storage device 12, and a communication unit 13. The display unit 7, the operation unit 8, the storage device 12, and the communication unit 13 are each electrically connected to CPU 11. The storage device 12 includes RAM, ROM, HDD, and SSD, and may further include a removable memory card. CPU is an abbreviation for central processing unit. ROM is an abbreviation for read-only memory. RAM is an abbreviation for random access memory. HDD is an abbreviation for hard disk drive. SSD is an abbreviation for solid state drive.
[0020] A user of the PC 2 causes the CPU 11 to execute the editing software 21 stored in the storage device 12, edits a user program 22 via the operation unit 8, and transmits the user program 22 to the basic unit 3. Optionally, the user causes the CPU 11 to execute the cam curve software 23 stored in the storage device 12, adjusts the cam curve via the operation unit 8, creates a cam table 24, and transmits the cam table 24 to the basic unit 3. The cam table 24 is a group of cam data used to realize an electronic cam using the motor driver 4 and motor 10, and indicates the amount of cam displacement relative to phase or time. The cam table 24 may be created within the basic unit 3. The PC 2 may also be referred to as an engineering tool. The user program 22 and cam table 24 may be transferred as part of project data. The project data includes one or more user programs (e.g., ladder programs) and configuration information for the basic unit 3, motor driver 4, and motor 10. The configuration information includes information indicating the connection positions of the multiple motor drivers 4 relative to the basic unit 3, information indicating the functions of the basic unit 3 (e.g., communication function and positioning function), information indicating the functions of the motor drivers 4, and device allocation information. Here, editing the project data includes creating and changing (re-editing) the project data. The user reads the project data stored in the storage device 12 as needed and changes the project data using the editing software 21. The communication unit 13 communicates with the basic unit 3 via the communication cable 9a. The CPU 11 transfers the project data (user program 22 and CAM table 24) to the basic unit 3 via the communication unit 13. The communication unit 13 includes a communication circuit capable of performing communication compliant with the USB standard, a communication circuit for wired LAN communication, and a communication circuit for wireless LAN communication. The communication unit 13 may communicate with the motor drivers 4 via the communication cable. The communication protocol between the PC 2 and the basic unit 3 may be a general-purpose protocol or a proprietary protocol.
[0021] <Basic unit> FIG. 3 shows the hardware configuration of the basic unit 3. The CPU 31 writes information to and reads information from the memory 32. The memory 32 includes RAM, ROM, HDD, and SSD, and may also include a removable memory card. The project storage unit 35 is a ROM area that stores project data created and transferred by the PC 2. The project data includes the user program 22 and configuration information. If the CAM table 24 is created by the PC 2, the project data includes the CAM table 24. Furthermore, the CPU 31 accepts input of information from the operation unit 6. The CPU 31 displays various information on the display unit 5.
[0022] The CPU 31 is connected to the PC 2 via a communication unit 33a, and is also connected to the motor driver 4 via a communication unit 33b to perform communication. The communication unit 33a is, for example, a communication circuit compatible with USB. The communication unit 33b is a communication circuit capable of executing communication compatible with industrial Ethernet protocols (e.g., EtherCAT, EtherNet / IP, PROFINET, MECHATROLINK-III).
[0023] The program execution unit 36 is a processing circuit that executes the user program 22. The program execution unit 36 may be implemented in a CPU different from the CPU 31.
[0024] When the basic unit 3 creates the CAM table 24, the memory 32 stores the CAM curve software 23. The CPU 31 executes the CAM curve software 23 to implement a reception unit 37, a CAM curve determination unit 38, and a generation unit 39 (which may include a CAM table creation unit 39a). The reception unit 37 receives various numerical values that need to be adjusted to create the CAM curve. The CAM curve determination unit 38 determines a CAM curve based on instructions or specifications input by the user via the operation unit 6 or the user program 22 and accepted by the reception unit 37. The generation unit 39 and the CAM table creation unit 39a create the CAM table 24 based on the CAM curve determined by the CAM curve determination unit 38 and store it in the memory 32. The motion control unit 34 has an electronic cam control unit 48 that sends cam control data, such as commands or numerical values for implementing the electronic CAM, as an output signal to the motor driver 4 in accordance with the CAM table 24.
[0025] <Motor driver> 4 shows the hardware configuration of the motor driver 4. A CPU 41 writes information to a memory 42 and reads information from the memory 42. The memory 42 includes a RAM, a ROM, an HDD, and an SSD, and may further include a removable memory card.
[0026] The CPU 41 communicates with the basic unit 3 and other motor drivers 4 via the communication unit 43. The communication unit 43 is a communication circuit capable of performing communication compatible with industrial Ethernet protocols (e.g., EtherCAT, EtherNet / IP, PROFINET, MECHATROLINK-III). The communication unit 43 is capable of performing cyclic communication and message communication. Motor control data (e.g., coordinates of the motor 10 calculated by the motion control unit of the basic unit 3 using cam data) is transmitted from the basic unit 3 via cyclic communication.
[0027] The input / output unit 44 includes input terminals and input circuits to which limit switches and the like are connected, and output circuits and output terminals for outputting information to the outside. The motor drive circuit 45 supplies power and control signals for driving the motor 10 to the motor 10. Note that the power to the motor 10 may be supplied from an external power source.
[0028] The CPU 41 controls the motor 10 through the motor drive circuit 45 based on the cam control data (output signal) transmitted from the basic unit 3 based on the cam table 24, and realizes an electronic cam.
[0029] <Function of the CPU when the cam table is created by a PC> FIG. 5 shows the functions of the CPU 11 when the cam table 24 is created by the PC 2. The editing unit 25 is a function realized when the CPU 11 executes editing software 21. The CPU 11 realizes the reception unit 37, the cam curve determination unit 38, and the generation unit 39 (which may include the cam table creation unit 39a) described above by executing the cam curve software 23 stored in the storage device 12. The transfer unit 26 transfers the user program 22 created by the editing unit 25 and the cam table 24 generated by the generation unit 39 to the basic unit 3 as part of the project data.
[0030] <User interface> FIGS. 6 and 7 show a user interface (UI) 600 displayed on the display unit 7 or the display unit 5. In particular, FIG. 6 shows a cam curve 604 determined by designating three passing points P1 to P3. FIG. 7 shows a cam curve 604 determined by designating three passing points P1 to P3 and the speed and acceleration for two passing points P1 and P2.
[0031] The UI 600 is displayed on the display unit 5 or 7 based on display data created by the reception unit 37, for example. The CAM curve display area 601 displays a CAM curve 604 determined by the CAM curve determination unit 38 for each section based on section information set via the section information setting unit 603. Note that the CAM curve 604 may be realized by a smooth curve using a polynomial determined for each section. In this example, the CAM curve 604 defines multiple sections i to iv by a start point Ps, multiple pass points P1, P2, and P3, and an end point Pe. The start point Ps, the multiple pass points P1, P2, and P3, and the end point Pe may be referred to as the start phase, pass phase, and end phase, respectively. Section i is the section from the start point Ps to the pass point P1. Section ii is the section from the pass point P1 to the pass point P2. Section iii is the section from the pass point P2 to the pass point P3. Section iv is the section from the pass point P3 to the end point Pe. If the number of pass points is one or more, the number of sections is two or more. If the number of pass points is zero, only the start point and end point exist, so the number of sections is one. In this case, the speed and acceleration of the end point can also be specified. The horizontal axis (x-axis) of the cam curve 604 represents the control point (phase) and is displayed, for example, from 0% to 100%. In this example, the resolution of the horizontal axis is set to 2048 (11 bits). The vertical axis (y-axis) of the cam curve 604 represents the displacement of the electronic cam. The user operates the pointer 605 via the operation units 8 and 6 to select one of the pass points P1, P2, and P3 to be adjusted. For example, when pass point P1 is selected by the pointer 605, the reception unit 37 may recognize the curve in section i (a curve with smooth displacement) as the section to be adjusted. Since pass point P1 is the start point of section ii, section ii will also be adjusted. The receiving unit 37 may highlight the section i in the cam curve display area 601. The receiving unit 37 may also highlight the entry for the section i in the section information setting unit 603. The numerical value display unit 602 indicates the displacement, speed, acceleration, jerk, snap, etc. of the position specified by the pointer 605 on the cam curve 604. Alternatively, the numeric display unit 602 may display the velocity, acceleration, jerk, and range of jerk for the entire cam curve.
[0032] The section information setting unit 603 accepts input of section information for each of a plurality of sections divided by one or more pass points. The section information setting unit 603 accepts specification of the start phase, end phase, displacement (displacement at the end phase), CAM curve specification method (curve type), end velocity (velocity at the end phase), and end acceleration (acceleration at the end phase) for each section. According to this embodiment, for example, a free curve (e.g., a quintic spline curve) is input as the default CAM curve specification method. The user can operate the pointer 605 to select the end velocity field and input a desired end velocity. As a result, the CAM curve specification method may be changed to a quintic spline curve and velocity specification. Furthermore, the user can operate the pointer 605 to select the end acceleration field and input a desired end acceleration. As a result, the CAM curve specification method may be changed to a quintic spline curve and velocity specification and acceleration specification. The user can specify the position of a pass point, specify a pass point and its end velocity, or specify a pass point, its end velocity, and its end acceleration. This allows the displacement of the cam curve 604 in the section selected by the user to be adjusted to a desired displacement.
[0033] If the speed and acceleration are not specified by the user, the displacement in one of the sections may deviate from the displacement (movable range) that can be achieved by the motor 10. Therefore, by specifying the speed and acceleration in this way, the user can adjust the displacement to the desired displacement while checking the displacement of the cam curve 604.
[0034] Alternatively, a tangent line corresponding to the velocity may be displayed at the passing point, and the velocity may be input by adjusting the slope of the tangent line with the pointer 605.
[0035] When the insert button 606 is pressed with the pointer 605, the reception unit 37 inserts a new entry next to the entry currently selected in the section information setting unit 603. In other words, a new section and a new pass point are added. The reception unit 37 receives adjustments to the position of the new pass point input by the user via the pointer 605, and also receives specifications for the speed and acceleration at that pass point. The CAM curve determination unit 38 updates the CAM curve 604 taking into account the section information corresponding to the new pass point.
[0036] FIG. 8 shows the displacement of a cam curve 801 created by specifying three passing points P1, P2, and P3, as well as the velocity (first derivative of the displacement) and acceleration (second derivative of the displacement). A quintic spline function allows for up to four derivatives, but the third and fourth derivatives are not shown here. In the state shown in FIG. 8, the displacements in sections i, iii, and iv are large. Therefore, the user may wish to adjust the cam curve 801.
[0037] 8 shows the displacement of a cam curve 802 created by specifying three passing points P1, P2, and P3, as well as the velocity and acceleration of passing point P1 and the velocity and acceleration of passing point P2. It can be seen that the displacement in section i and the displacement in section ii are significantly reduced in cam curve 802 compared to cam curve 801. It will be possible to keep the displacement of the electronic cam within the range of displacement that can be achieved by motor 10.
[0038] Here, as an example, the degree of the CAM curve for each section is 5th order. In other words, the CAM curve for each section is defined by a 5th order spline function. As shown in Figure 8, if derivative values such as velocity and acceleration are not specified, the first to third derivatives each become a continuous, smooth curve. Note that the fourth derivative is continuous, but is a broken line.
[0039] On the other hand, if the velocity (first derivative) or acceleration (second derivative) is specified, the curve will be continuous from the first to second derivative. The third derivative is continuous and smooth, but is not smooth (although continuous) at the point where the velocity or acceleration is specified. The fourth derivative is continuous (broken line), but is discontinuous at the point where the velocity or acceleration is specified.
[0040] As shown in Figure 8, when both velocity (first derivative) and acceleration (second derivative) are specified, the first to second derivatives are continuous, smooth curves. The third and fourth derivatives include non-smooth line segments. [0] The first derivative is continuous and smooth. The second derivative is continuous and smooth, except for the specified point where it is not smooth (although it is still continuous at that point). The third derivative is continuous and smooth, except for the specified point where it is discontinuous. The fourth derivative is continuous (broken line), except for the specified point where it is discontinuous.
[0041] When only a passing point is specified, the constraint imposed for generating a CAM curve using an Nth-order spline function is that each of the first to (N-1)th order differentials must be continuous. On the other hand, as in this embodiment, when the user specifies K of the N-1 differential values from the first to (N-1)th order differentials at a certain passing point (section), the K constraints from the (NK-1)th order differentials to the (N-1)th order differentials are released.
[0042] In other words, let n be the number of sections making up the CAM curve, the curve of each section be fn(x), and assume that fn(x) has 2M curve parameters. In this case, fn(x) is configured so that the variable x remains after (2M-2) differentiation. This allows for the existence of a curve that is continuous up to the (2M-2)th order at waypoints where neither speed nor acceleration specifications are accepted. At waypoints where either speed or acceleration specifications are accepted, the curve is continuous up to the (2M-3)th order. At points where both speed and acceleration specifications are accepted, the curve is continuous up to the (2M-4)th order. The CAM curve is determined to satisfy these constraints or partially relaxed constraints.
[0043] In the example shown in Figure 9, velocity is specified in section ii. Therefore, the constraint that the fourth-order derivatives should be continuous is released. Furthermore, velocity and acceleration are specified in section iii. Therefore, the constraint that the fourth-order derivatives should be continuous and the constraint that the third-order derivatives should be continuous are both released. In this way, when multiple derivative values are specified, the constraints are relaxed in order from the highest order derivative. Here, the number of specified derivatives matches the number of constraints that are relaxed.
[0044] 10 shows section information 1001 indicating constraint conditions imposed on each point when the positions (displacements) of passing points P1 to P3 are specified but no differential values are specified, and section information 1002 indicating constraint conditions imposed on each point when the positions (displacements) of passing points P1 to P3 are specified and several differential values are specified. Here, it is assumed that a quintic spline function is used in each section to create the cam curve 604. Note that FIG. 10 is just an example, and the velocity may be continuous, the acceleration may be continuous, the jerk may be continuous, or the acceleration / deceleration may be continuous.
[0045] Only the displacements of the passing points P1 to P3 are specified in the section information 1001. Therefore, a constraint is imposed that the passing points P1 to P3 should be continuous from low-order differentials to high-order differentials, that is, from the first differential to the fourth differential.
[0046] On the other hand, in the section information 1001, a speed is specified at the passing point P2. Therefore, the fourth-order differential, which is a higher-order differential, is released from the constraint condition. Furthermore, two differential values, namely, a speed and an acceleration, are specified at the passing point P3. Therefore, the third-order differential and the fourth-order differential, which are two higher-order differentials, are released from the constraint condition.
[0047] As described above, when the curve function in the n-th point interval is fn(x), the interval information 1001 is expressed as follows: where fn(x) has 2M curve parameters and is differentiable 2M-2 times. In the following, the total number of intervals, N, is assumed to be 4, and M is assumed to be 3.
[0048] ●The coordinates of the starting point Ps are (x0, y0). Therefore, the constraint conditions are as follows. f1(x0) = y0. f1'(x0)=0. f1''(x0)=0. Here, f1'(x0) and f1''(x0) may not be 0 but may be other values. Furthermore, each value may be specified by the user.
[0049] ●The coordinates of the passing point P1 are (x1, y1). Therefore, the constraint conditions are as follows. f2(x1)=y1. f1(x1)=y1. f1'(x1)=f2'(x1). f1''(x1)=f2''(x1). f1'''(x1)=f2'''(x1). f1''''(x1)=f2''''(x1).
[0050] ●The coordinates of passing point P2 are (x2, y2). Therefore, the constraints are as follows: f3(x2)=y2. f2(x2)=y2. f2'(x2)=f3'(x2). f2''(x2)=f3''(x2). f2'''(x2)=f3'''(x2). f2''''(x2)=f3''''(x2).
[0051] ●The coordinates of the passing point P3 are (x3, y3). Therefore, the constraint conditions are as follows. f4(x3)=y3. f3(x3)=y3. f3'(x3)=f4'(x3). f3''(x3)=f4''(x3). f3'''(x3)=f4'''(x3). f3''''(x3)=f4''''(x3).
[0052] ●The coordinates of the end point Pe are (x4, y4). Therefore, the constraints are as follows: f4(x4)=y4. f4'(x4)=0. f4''(x4)=0. Here, f4'(x4) and f4''(x4) may not be 0 but may be other values. Furthermore, each value may be specified by the user.
[0053] The constraints for each point may be as follows: ●The coordinates of the starting point Ps are (x0, y0), and the coordinates of the end point Pe are (x4, y4). Therefore, the constraints are as follows: f1(x0) = y0. f4(x4)=y4. f1'(x0)=f4'(x4). f1''(x0)=f4''(x4). f1'''(x0)=f4'''(x4). f1''''(x0)=f4''''(x4).
[0054] ●The coordinates of the passing point P1 are (x1, y1). Therefore, the constraint conditions are as follows. f2(x1)=y1. f1(x1)=y1. f1'(x1)=f2'(x1). f1''(x1)=f2''(x1). f1'''(x1)=f2'''(x1). f1''''(x1)=f2''''(x1).
[0055] ●The coordinates of passing point P2 are (x2, y2). Therefore, the constraints are as follows: f3(x2)=y2. f2(x2)=y2. f2'(x2)=f3'(x2). f2''(x2)=f3''(x2). f2'''(x2)=f3'''(x2). f2''''(x2)=f3''''(x2).
[0056] ●The coordinates of the passing point P3 are (x3, y3). Therefore, the constraint conditions are as follows. f4(x3)=y3. f3(x3)=y3. f3'(x3)=f4'(x3). f3''(x3)=f4''(x3). f3'''(x3)=f4'''(x3). f3''''(x3)=f4''''(x3).
[0057] The section information 1002 is expressed as follows: Since a speed v2 is specified at the passing point P2, the constraint condition is relaxed as follows: f3(x2)=y2. f2(x2)=y2. f2'(x2)=f3'(x2)=v2. f2''(x2)=f3''(x2). f2'''(x2)=f3'''(x2).
[0058] Since a velocity v3 and an acceleration a3 are specified at the passing point P3, the constraint conditions are relaxed as follows: f4(x3)=y3. f3(x3)=y3. f3'(x3)=f4'(x3)=v3. f3''(x3)=f4''(x3)=a3.
[0059] In this way, when K differential values are specified, K constraints on continuity are relaxed.
[0060] In order to efficiently calculate spline functions, B-splines or the Dever-Cox algorithm may be used. The Dever-Cox algorithm is a method for finding a (k+1)th order B-spline function from a kth order B-spline function.
[0061] For example, a spline function s(x) of degree K-1 can be expressed as a linear combination of B-spline functions of degree K.
[0062] s(x) = Σ(i=0, R-1) α_i · B_i,K(x)···(1) Here, R is the number of passing points that s(x) must satisfy. By providing R pairs of passing points (x, s(x)), R simultaneous equations related to the coupling coefficients α_i of the B-spline function are obtained.
[0063] Here, by adding one constraint on the differential value and by adding one to the number of B-spline functions to be linearly combined, it becomes possible to specify the differential value at one point on s(x).
[0064] <Flowchart> (1) Cam curve determination method 11 shows a method for determining a cam curve that is executed by CPU 11 (or CPU 31) according to the cam curve software. While it is assumed below that CPU 11 executes each step, CPU 11 can be read as CPU 31. Also, it is assumed below that UI 600 is already displayed on display unit 7 (or display unit 5).
[0065] In S1101, the CPU 11 (reception unit 37) determines whether a section addition has been instructed by the user. For example, if the insert button 606 is pressed, the CPU 11 determines that a section addition has been instructed, and proceeds from S1101 to S1102. If the insert button 606 has not been pressed and the section information has already been completed, the CPU 11 proceeds from S1101 to S1107.
[0066] In S1102, the CPU 11 (reception unit 37) adds an entry for the new section to the section information.
[0067] In S1103, the CPU 11 (acceptance unit 37) accepts the designation or adjustment of the passing point via the operation unit 8 (or operation unit 6).
[0068] In S1104, the CPU 11 (reception unit 37 or cam curve determination unit 38) determines whether the user has specified a differential value such as velocity or acceleration for the passing point. If the position of the passing point has been specified but no differential value has been specified, the CPU 11 proceeds from S1104 to S1107. On the other hand, if the position of the passing point has been specified and one or more differential values have been specified, the CPU 11 proceeds from S1104 to S1105.
[0069] In S1105, the CPU 11 (reception unit 37 or cam curve determination unit 38) obtains a specified number K that indicates how many differential values have been specified. For example, if one differential value is specified, the specified number K is 1. If two differential values are specified, the specified number K is 2. If three differential values are specified, the specified number K is 3.
[0070] In S1106, the CPU 11 (the reception unit 37 or the cam curve determination unit 38) relaxes the constraint conditions regarding the continuity of the curve before and after the passing point in accordance with the specified number K. As illustrated in Fig. 10, in accordance with the specified number K, the constraint conditions are released for K higher order differentials in order from the highest order differential.
[0071] In S1107, CPU 11 (CAM curve determination unit 38) determines or updates CAM curve 604 based on the updated or created section information. CPU 11 (generation unit 39 and CAM table creation unit 39a) may also create CAM table 24 based on CAM curve 604. The section information, parameters indicating CAM curve 604, and CAM table 24 are stored in storage device 12 (or memory 32). CPU 11 (reception unit 37) displays the determined or updated CAM curve 604 in CAM curve display area 601.
[0072] (2) Details of how the cam curve is determined FIG. 12 is a flowchart showing the details of S1107.
[0073] In S1201, the CPU 11 (cam curve determination unit 38) acquires section information from the storage device 12.
[0074] In S1202, the CPU 11 (cam curve determination unit 38) determines whether the cam curve 604 includes any sections other than smooth curves based on the section information. If any sections other than smooth curves are included, the CPU 11 proceeds from S1202 to S1203. If any sections other than smooth curves are not included, the CPU 11 proceeds from S1202 to S1204.
[0075] In S1203, the CPU 11 (cam curve determination unit 38) calculates the displacement of the section other than the smooth curve. The displacement is calculated from a function or the like that defines the section.
[0076] In S1204, the CPU 11 (cam curve determination unit 38) determines whether or not there is an unprocessed smooth curve section based on the section information. If there is no unprocessed smooth curve section, the CPU 11 ends the series of processes shown in Fig. 12. If there is an unprocessed smooth curve section remaining, the CPU 11 proceeds from S1204 to S1205.
[0077] In S1205, the CPU 11 (cam curve determination unit 38) determines the first section of the continuous smooth curve sections as the section to be processed. For example, the section i starting from the start point Ps to the first passing point P1 is determined as the section to be processed.
[0078] In S1206, the CPU 11 (cam curve determination unit 38) adds the constraint on the start point of the processing target section to the constraint matrix.
[0079] In S1207, the CPU 11 (cam curve determination unit 38) adds the constraint of the end point of the processing target section to the constraint matrix.
[0080] In S1208, the CPU 11 (cam curve determination unit 38) determines whether a differential value is specified for the pass point in the section information. If a differential value is not specified for the pass point, the CPU 11 proceeds from S1208 to S1210. If a differential value is specified for the pass point, the CPU 11 proceeds from S1208 to S1209.
[0081] In S1209, the CPU 11 (cam curve determination unit 38) adds the differential constraint of the passing point to the constraint matrix, for example, adds the differential value input by the user to the constraint matrix.
[0082] In S1210, the CPU 11 (cam curve determination unit 38) determines whether there is an unprocessed smooth curve section continuing from the start point based on the section information. If there is an unprocessed smooth curve section continuing from the start point, the CPU 11 proceeds from S1210 to S1211. If there is no unprocessed smooth curve section continuing from the start point, the CPU 11 proceeds from S1210 to S1212.
[0083] In S1211, the CPU 11 (cam curve determination unit 38) sets the next section of the processing target section. After that, the CPU 11 proceeds from S1211 to S1207.
[0084] In S1212, the CPU 11 (cam curve determination unit 38) calculates curve parameters for each section from the constraint matrix. The curve parameters are coefficients and constants of a function that defines a smooth curve for each section. This determines the function of the smooth curve for each section that defines the CAM curve 604.
[0085] In S1213, the CPU 11 (cam curve determination unit 38) calculates the displacement of each point from the curve parameters, thereby completing the CAM table 24 consisting of the displacement of each point.
[0086] <Function block> In the above embodiment, it has been explained that the CAM table 24 can be created by the CAM curve software 23 in the basic unit 3, which is a PLC. Here, the program that creates the CAM table 24 may be a function block written in the user program 22. For example, the function block written in the user program 22 may create the CAM table 24 based on section information that has been created in advance through the CAM curve software 23.
[0087] 13 shows a function block 1300 written in a ladder program. In this example, the function block 1300 is given the name MC_Camgenerate (creates a cam table).
[0088] Execute indicates the input of an execution command; when the input changes from 0 to 1, the function block 1300 begins operation. CamNo indicates the identification number assigned to the CAM table 24 being generated. ReadOperation is information that specifies whether to read the section information of the generated CAM table 24 (TRUE) or to generate the CAM table 24 from the section information (FALSE). SectionNum indicates the number of sections of the CAM curve 604 represented by the CAM table 24. SectionInfo is the section information. Done indicates whether the creation or reading of the CAM table 24 specified by CamNo has been completed. Resolution indicates the resolution of the CAM table 24. Resolution indicates the number of points in the CAM table 24. Because the CAM table 24 is a collection of discrete data (a sequence of points), the number of points must be managed. Busy is ON when the function block 1300 is operating. Error is ON when an error occurs while the function block 1300 is operating, indicating the occurrence of an error. ErrorID is a number that indicates the cause of the error when Error is ON.
[0089] In this way, the CPU 11 inputs the CamNo, the number of sections, and the section information to the function block 1300, whereby the CAM table 24 is created and stored in the memory 32.
[0090] <Technical ideas derived from examples> [Point 1] As described above, the PLC system 1 including the PC 2 and the basic unit 3 is an example of a programmable logic controller. The receiving unit 37 and the CAM curve determination unit 38 receive the specification of one or more pass points (e.g., P1-P3) between a first point (e.g., a start point Ps) and a second point (e.g., an end point Pe), and determine a CAM curve 604, which is a CAM curve with a smooth curved displacement passing through the first point, the one or more pass points, and the second point, and which represents the displacement of the output axis (e.g., the vertical axis (y-axis) in FIG. 6) relative to the displacement of the input axis (e.g., the horizontal axis (x-axis) in FIG. 6). Note that the number of pass points may be zero. The generating unit 39 generates an output signal indicating the displacement of the output axis according to the CAM curve 604 determined by the CAM curve determination unit 38 and an input phase signal indicating the displacement of the input axis (e.g., an arbitrary point on the horizontal axis determined by the resolution). Receiving unit 37 and cam curve determination unit 38 receive the specification of one or more pass points and at least one of the velocity and acceleration at the specified pass point, and determine cam curve 604, which is a smooth curve, so that the velocity or acceleration at the specified pass point satisfies the specified velocity or acceleration. This will reduce the burden on the user when adjusting cam curve 604 so that cam curve 604 has the desired characteristics.
[0091] [Point 2] As explained with reference to FIG. 6 and the like, the passing points P1 to P3 may be specified by the displacement of the input shaft and the displacement of the output shaft.
[0092] [Point 3] As explained using Figure 6, etc., when there are multiple pass points between the first point and the second point on the cam curve 604, the cam curve determination unit 38 may accept a specification as to whether or not to specify a velocity or acceleration for each of the multiple pass points.
[0093] [Point 4] The CAM curve determination unit 38 interpolates a section of the CAM curve 604 consisting of two adjacent pass points (e.g., sections i to iv) using a quintic function, and determines the quintic function for the preceding section and the quintic function for the following section of the two adjacent sections, based on the constraint that first- to fourth-order derivatives are continuous at the boundary between the preceding and following sections. At pass points where a velocity or acceleration is specified, the CAM curve is determined so that the velocity or acceleration at the specified pass point satisfies the specified velocity or acceleration. In this way, by the user specifying constraints (constraints) such as velocity and acceleration, the constraint condition automatically applied at the pass points (continuous derivative values) is relaxed, allowing the user to freely adjust the shape of the CAM curve 604. The total number of constraint conditions (the sum of the number of user-specified constraint conditions and the number of automatic constraint conditions) remains unchanged.
[0094] [Point 5] When a speed is specified at a specified passing point, the cam curve determination unit 38 may remove the constraint (e.g., constraint condition) that fourth-order derivatives are continuous, and determine the cam curve 604 so that the first-order derivative matches the specified speed and so that the preceding section ending at the specified passing point and the subsequent section starting at the specified passing point are continuous from the first-order derivative to the third-order derivative at the specified passing point. This allows the user to freely adjust the shape of the cam curve 604.
[0095] [Point 6] When a velocity and acceleration are specified at a specified pass point, the cam curve determination unit 38 may remove the constraint that the third-order and fourth-order derivatives are continuous, and may determine the cam curve 604 so that the first-order derivative matches the specified velocity and the second-order derivative matches the specified acceleration, while still retaining the constraint that the first-order derivative, second-order derivative, and third-order derivative are continuous at the specified pass point between a preceding section ending at the specified pass point and a succeeding section starting at the specified pass point. This allows the user to freely adjust the shape of the cam curve 604. In this way, the constraints may be relaxed depending on the number of specified derivative values.
[0096] [Point 7] As described with reference to FIG. 6 and the like, the velocity or acceleration at a specified waypoint may be specified by a numerical value.
[0097] [Point 8] The velocity or acceleration at a specified passing point may be specified by manipulating a pointing device (e.g., pointer 605) to change the slope of a tangent to the cam curve 604 at the passing point. This allows the user to specify the velocity or acceleration without inputting a derivative value as a numerical value. When adjusting the acceleration, the slope of a tangent to the curve (e.g., the dashed line in FIG. 8) formed by the first derivative of the cam curve 604 at the passing point may be adjusted by the pointing device (e.g., pointer 605).
[0098] [Point 9] The generation unit 39 may include a CAM table creation unit 39a that creates a CAM table 24 indicating the displacement of the input shaft and the displacement of the output shaft of the electronic cam from the CAM curve 604, and a table storage unit (memory 32 or storage device 12) that stores the CAM table 24. The generation unit 39 may refer to the CAM table 24 and generate an output signal corresponding to the input phase signal. The generation unit 39 may interpolate multiple discrete values included in the CAM table 24 to calculate the displacement of a point not included in the CAM table 24, and output the calculated displacement to the motor driver 4.
[0099] [Point 10] The basic unit 3 of the PLC system 1 may further include a program execution unit 36 that executes a control program (e.g., user program 22). The program execution unit 36 may refer to the CAM table 24 from the control program and output an output signal to a motor drive device (e.g., motor driver 4) that realizes the electronic cam.
[0100] [Point 11] The number of sections making up the cam curve 604 may be n, the curve of each section may be fn(x), and fn(x) may have 2M curve parameters. The cam curve determination unit 38 may configure fn(x) so that the variable x remains after (2M-2) differentiation, thereby determining a smooth curve that is continuous up to the (2M-2)th order at pass points where neither a speed nor an acceleration specification is accepted, continuous up to the (2M-3)th order at pass points where either a speed or an acceleration specification is accepted, and continuous up to the (2M-4)th order at points where both a speed and an acceleration specification are accepted.
[0101] [Point 12] The CAM curve determination unit 38 receives specification of one or more pass-point positions between the first point and the second point, and determines a CAM curve 604 in which the displacement passing through the first point, the one or more pass-points, and the second point is a smooth curve, and the CAM curve 604 represents the displacement of the output axis relative to the displacement of the input axis. The CAM table creation unit 39a creates a CAM table 24 indicating the displacement of the input axis and the displacement of the output axis of the electronic cam from the CAM curve 604. The transfer unit 26 functions as a transmission unit that transmits the CAM table 24 to a programmable logic controller (e.g., the basic unit 3). The CAM curve determination unit 38 receives specification of one or more pass-points and specification of at least one of the velocity and acceleration at the specified pass-point, and determines the CAM curve 604 in which the velocity or acceleration at the specified pass-point satisfies the specified velocity or acceleration. This reduces the burden on the user when adjusting the CAM curve 604 so that it has desired characteristics.
[0102] [Point 13] The cam curve software 23 is an example of a computer program that causes a computer (e.g., PC2) to execute the following steps: a cam curve 604 determination step of receiving specification of the positions of one or more pass-through points between a first point and a second point, and determining a cam curve 604 consisting of a smooth curve that passes through the first point, the one or more pass-through points, and the second point, and that represents the displacement of the output shaft relative to the displacement of the input shaft; a table creation step of creating a cam table that shows the displacement of the input shaft and the displacement of the output shaft of the electronic cam from the cam curve 604; and a transmission step of transmitting the cam table to a programmable logic controller.
[0103] [Point 14] The CPU 31 and the program execution unit 36 are an example of a program execution unit that executes a control logic program. The CAM curve determination unit 38 may receive specification of the positions of one or more pass points between a first point and a second point and determine a CAM curve 604 that passes through the first point, the one or more pass points, and the second point. The generation unit 39 may generate an output signal that conforms to the CAM curve 604 determined by the CAM curve determination unit 38 based on an input phase signal and the CAM curve 604 determined by the CAM curve determination unit 38. The CAM curve 604 for each section connecting two adjacent points between the first point, the one or more pass points, and the second point may be expressed by a polynomial function of degree N, which is an odd number greater than or equal to three. The CAM curve determination unit 38 determines the CAM curve 604 under the constraint that the first to (N-1)th order differentials are continuous before and after the pass point. Furthermore, when the CAM curve determination unit 38 receives a specification of a value of at least a first-order differential at one or more passing points, it may reflect the specification received as the constraint condition and remove the condition that higher-order differentials are continuous from the constraint condition to determine a CAM curve 604 consisting of a polynomial function of degree N (e.g., a spline function) of degree 3 or higher, which is an odd number.
[0104] [Point 15] The first point may be the start point of the cam curve 604, and the second point may be the end point of the cam curve 604. The cam curve determination unit 38 may determine the cam curve 604 under the constraint that the first to (N-1)th order differentials are continuous at the first and second points. Furthermore, when the cam curve determination unit 38 receives a specification of the value of the first order differential at the first or second point, it may determine the cam curve 604 by reflecting the specification received as the constraint and removing the condition that higher order differentials are continuous from the constraint.
[0105] [Point 16] Each section can be expressed by a polynomial function of degree N, which is an odd number greater than or equal to 5. The CAM curve determination unit 38 determines the CAM curve 604 under the constraint that the first through (N-1)th order derivatives are continuous before and after the pass point. Furthermore, when the CAM curve determination unit 38 receives a specification of at least a first order derivative value or a second order derivative value at one or more pass points, the CAM curve determination unit 38 may reflect the specification received as the constraint and remove the condition that higher order derivatives are continuous from the constraint, thereby determining the CAM curve 604 consisting of a polynomial function of degree N, which is an odd number greater than or equal to 5.
[0106] The invention is not limited to the above-described embodiment, and various modifications and variations are possible within the scope of the gist of the invention.
Claims
1. a cam curve determination unit that receives designation of one or more pass-through points between a first point and a second point, and determines a cam curve that represents a displacement of an output shaft relative to a displacement of an input shaft, the cam curve being a cam curve that passes through the first point, the one or more pass-through points, and the second point and is a smooth curve; a generation unit that generates an output signal that indicates a displacement of the output shaft that follows the cam curve based on the cam curve determined by the cam curve determination unit and an input phase signal that indicates a displacement of the input shaft, the cam curve determination unit receives a specification of one of the one or more passing points and a specification of at least one of a velocity and an acceleration at the specified passing point, and determines a cam curve consisting of the smooth curve so that the velocity or acceleration at the specified passing point satisfies the specified velocity or acceleration.
2. 2. The programmable logic controller according to claim 1, wherein the passing point is specified by a displacement of an input shaft and a displacement of an output shaft.
3. 2. The programmable logic controller according to claim 1, wherein, when there are multiple pass points between the first point and the second point on the CAM curve, the CAM curve determination unit accepts a specification of whether to specify a velocity or an acceleration for each of the multiple pass points.
4. 2. The programmable logic controller according to claim 1, wherein the CAM curve determination unit interpolates a section consisting of two adjacent pass points on the CAM curve with a quintic function, determines the quintic function in the preceding section of the two adjacent sections and the quintic function in the succeeding section according to a constraint that first to fourth order differentials are continuous at the boundary between the preceding section and the succeeding section, and determines the CAM curve at pass points where a velocity or acceleration is specified so that the velocity or acceleration at the specified pass point satisfies the specified velocity or acceleration.
5. 5. The programmable logic controller according to claim 4, wherein, when a velocity is specified at the specified passing point, the CAM curve determination unit removes the constraint that fourth-order derivatives are continuous, and determines the CAM curve so that a preceding section having the specified passing point as an end point and a subsequent section having the specified passing point as a start point have continuous first-order to third-order derivatives at the specified passing point, and so that the first-order derivative matches the specified velocity.
6. 5. The programmable logic controller according to claim 4, wherein, when a velocity and an acceleration are specified at the specified passing point, the CAM curve determination unit removes the constraint that third-order and fourth-order derivatives are continuous, and determines the CAM curve so that a preceding section having the specified passing point as an end point and a subsequent section having the specified passing point as a start point are continuous from first-order to second-order derivatives at the specified passing point, and so that the first-order derivative coincides with the specified velocity and the second-order derivative coincides with the specified acceleration.
7. 2. The programmable logic controller according to claim 1, wherein the velocity or acceleration at the specified passing point is specified by a numerical value.
8. 2. The programmable logic controller according to claim 1, wherein the velocity or acceleration at the specified passing point is specified by manipulating a pointing device to change the slope of a tangent to the cam curve at the passing point.
9. The generation unit a table creating unit that creates a CAM table that indicates the displacement of the input shaft and the displacement of the output shaft of the electronic cam from the CAM curve; a table storage unit that stores the CAM table; 2. The programmable logic controller according to claim 1, wherein the programmable logic controller is configured to refer to the CAM table and generate the output signal corresponding to the input phase signal.
10. further comprising a program execution unit that executes a control program; 10. The programmable logic controller according to claim 9, wherein the program execution unit references the CAM table from the control program and outputs the output signal to a motor drive device that realizes the electronic cam.
11. the cam curve determination unit defines the number of sections constituting the cam curve as n, defines a curve of each section as fn(x), and defines fn(x) as having 2M curve parameters; 2. The programmable logic controller according to claim 1, wherein said smooth curve is determined so that, by configuring said fn(x) so that a variable x remains after (2M-2) differentiation, at said passing points, the smooth curve is continuous up to the (2M-2)th order at passing points where no speed or acceleration specification is accepted, the smooth curve is continuous up to the (2M-3)th order at passing points where either speed or acceleration specification is accepted, and the smooth curve is continuous up to the (2M-4)th order at passing points where both speed and acceleration specification are accepted.
12. a cam curve determination unit that receives designation of one or more pass-through points between a first point and a second point, and determines a cam curve that represents a displacement of an output shaft relative to a displacement of an input shaft, the cam curve being a cam curve that passes through the first point, the one or more pass-through points, and the second point and is a smooth curve; a table creating unit that creates a CAM table that indicates the displacement of the input shaft and the displacement of the output shaft of the electronic cam from the CAM curve; a transmitting unit that transmits the CAM table to a programmable logic controller, a cam curve determination unit that receives a specification of one of the one or more passing points and a specification of at least one of a speed and an acceleration at the specified passing point, and determines a cam curve consisting of the smooth curve so that the speed or acceleration at the specified passing point satisfies the specified speed or acceleration.
13. On the computer, a cam curve determination step of receiving designation of one or more pass-through points between a first point and a second point, and determining a cam curve consisting of a smooth curve that passes through the first point, the one or more pass-through points, and the second point, the cam curve representing a displacement of the output shaft relative to a displacement of the input shaft; a table creation step of creating a CAM table indicating the displacement of the input shaft and the displacement of the output shaft of the electronic cam from the CAM curve; a transmitting step of transmitting the CAM table to a programmable logic controller; A computer program characterized by causing the computer to execute the following:
14. a control program execution unit that executes a control logic program; a cam curve determination unit that receives designation of one or more pass points between a first point and a second point, and determines a cam curve that passes through the first point, the one or more pass points, and the second point; a generation unit that generates an output signal that follows the cam curve based on the cam curve determined by the cam curve determination unit and an input phase signal, the cam curve for each section connecting two adjacent points existing from the first point through the one or more passing points to the second point is expressed by an N-th degree polynomial function, which is an odd number equal to or greater than 3rd degree, The CAM curve determination unit determines the CAM curve under a constraint that first-order to (N-1)-order differentials are continuous before and after the passing point, and when a specification of a value of at least a first-order differential is accepted at any of the one or more passing points, the programmable logic controller reflects the specification accepted as the constraint and removes the condition that higher-order differentials are continuous from the constraint to determine the CAM curve consisting of a polynomial function of order N, which is an odd number greater than or equal to third order.
15. 15. The programmable logic controller according to claim 14, wherein the CAM curve determination unit determines the CAM curve under a constraint that the first point is a start point of the CAM curve, the second point is an end point of the CAM curve, and that first-order to (N-1)-order differentials are continuous at the first point and the second point, and when a designation of a value of a first-order differential at the first point or the second point is accepted, the CAM curve determination unit reflects the designation accepted as the constraint and deletes the condition that higher-order differentials are continuous from the constraint.
16. each of the intervals is expressed by an N-th degree polynomial function, which is an odd number equal to or greater than 5; 16. The programmable logic controller according to claim 15, wherein the CAM curve determination unit determines the CAM curve under a constraint that first-order to (N-1)-order differentials are continuous before and after the pass point, and when a designation of at least a first-order differential value or a second-order differential value is accepted at any of the one or more pass points, the CAM curve determination unit reflects the accepted designation as the constraint and deletes the condition that higher-order differentials are continuous from the constraint to determine the CAM curve consisting of an N-th-order polynomial function that is an odd number of fifth or greater.
Citation Information
Patent Citations
Method of controlling electronic cam and servo motor control system
JP2006172438A