Hi all,
I am relatively new to PLC programming but getting there. I am currently working on a project using PID control and starting to struggle. Here is a quick overview of the set up:
I am upgraging an existing unit to incorporate some extra features. The original motot was controlled with a pot, I am using a micrologix 1100 and a variable speed drive to control the motor. The PLC also writes out to a printer with the rpm, time the motor ran for, etc when the cylce is finished.
To read the speed back I am using a proximity sensor which picks up on slots on the wheel as it rotates. The sensor comes back to a digital input on the PLC. I initially used the pulse train function on the PLC to set the speed, which worked fine until the motor had to take it maximum load. At its maximum load the drag caused the motor to sit on the lower acceptable rpm parameter. The pulse train function in micrologix 500 wont let me change the pulse train speed when the drive is in run. So it was back to the drawing board.
I have now bought an analog card, I'm using an analog output to control the speed of the drive, which works. I want to set up closed loop control with the PID function. I have used some maths functions to scale the feedback from the sensor to 0-16383, simulating an analog input.
Here is where I run into trouble. I have had a few stabs at tuning the controller, and can get it to function relatively well for one of my motor settings. ( I have a few different RPM setting that are selected when the user selects product information from the HMI) For a start I am not sure why the settings work . I followed the manual on tuning the controller, and away it went. I need to alter the setpoint depending on the HMI selection and when I enter a different setpoint the motor generally oscillates out of control if the parameters (PID) remain the same.
Is it possible to have one set of parameters to cover all my settings or will I have to tune each setting inpependantly and dump in the values when the settings are selected?
The motor runs between 150 and 600 rpm. There will also probably be a manual setting on the HMI which will allow the user to select any RPM within the range, which is likely to give me a major headache if I have to tune the PID for each setting.
Anyone out there able to give me a few pointers in the right direction?
I am relatively new to PLC programming but getting there. I am currently working on a project using PID control and starting to struggle. Here is a quick overview of the set up:
I am upgraging an existing unit to incorporate some extra features. The original motot was controlled with a pot, I am using a micrologix 1100 and a variable speed drive to control the motor. The PLC also writes out to a printer with the rpm, time the motor ran for, etc when the cylce is finished.
To read the speed back I am using a proximity sensor which picks up on slots on the wheel as it rotates. The sensor comes back to a digital input on the PLC. I initially used the pulse train function on the PLC to set the speed, which worked fine until the motor had to take it maximum load. At its maximum load the drag caused the motor to sit on the lower acceptable rpm parameter. The pulse train function in micrologix 500 wont let me change the pulse train speed when the drive is in run. So it was back to the drawing board.
I have now bought an analog card, I'm using an analog output to control the speed of the drive, which works. I want to set up closed loop control with the PID function. I have used some maths functions to scale the feedback from the sensor to 0-16383, simulating an analog input.
Here is where I run into trouble. I have had a few stabs at tuning the controller, and can get it to function relatively well for one of my motor settings. ( I have a few different RPM setting that are selected when the user selects product information from the HMI) For a start I am not sure why the settings work . I followed the manual on tuning the controller, and away it went. I need to alter the setpoint depending on the HMI selection and when I enter a different setpoint the motor generally oscillates out of control if the parameters (PID) remain the same.
Is it possible to have one set of parameters to cover all my settings or will I have to tune each setting inpependantly and dump in the values when the settings are selected?
The motor runs between 150 and 600 rpm. There will also probably be a manual setting on the HMI which will allow the user to select any RPM within the range, which is likely to give me a major headache if I have to tune the PID for each setting.
Anyone out there able to give me a few pointers in the right direction?