3/10/2025 8:41 AM | |
Joined: 2/10/2015 Last visit: 5/16/2025 Posts: 291 Rating:
|
Hello everyone, I am writing this message to strongly request your help. I am programming a compact PID to give a speed reference to its output and also to the analog output of the PLC to run a winding motor via a speed variator. I have configured the compact PID and edited the program. As you can see from the attached files, I send the speed reference by calculation (coil width, cable diameter, coil internal diameter, speed reference entered from a display) with a ramp function block. I put the calculated speed at the "detpoint" input of the PID block. And normally at the "Input" input of the PID block, I should put the speed feedback from the variator via an analog input of the PLC, i.e. IW0 at the "INPUT" input of the PID block. but as I am simulating the program to see how it works, I use the same instruction after calculation divided by 1.005 so that there is a slight difference and I put it at the INPUT input of the PID. but I notice that the PID does not give anything at its output or the PID does not work, I really need your help to solve this problem my engine has a nominal speed of 1500 rpm coupled to a reducer with a ratio of 10:1, hence the speed of the coil on which the cable must be wound is 1500/10 = 150 rpm and this is the value that I use in the configuration of the pid block. see attached file for details AttachmentPID COMPACT.zip (242 Downloads) |
3/10/2025 2:02 PM | |
Joined: 7/7/2010 Last visit: 9/16/2025 Posts: 16103 Rating:
|
Perhaps something I wrote a couple years ago may help: https://support.industry.siemens.com/forum/WW/en/posts/pid-compact-plcsim/271803
|
science guy |
|
3/10/2025 2:37 PM | |
Joined: 2/10/2015 Last visit: 5/16/2025 Posts: 291 Rating:
|
|
4/9/2025 4:05 PM | |
Joined: 2/10/2015 Last visit: 5/16/2025 Posts: 291 Rating:
|
Hello everyone, I'm using a Siemens S7-1200 PLC, model CPU 1214C DC/DC/RLY, to implement a Compact PID controller. The purpose of this controller is to provide the speed setpoint to a drive that drives a motor. The speed feedback is retrieved from the drive's analog output and then sent to the Input input of the Compact PID block via the PLC's analog input after calculation. First, I determine the actual motor speed using a setpoint from a potentiometer. This speed, ranging from 0 to 2820 rpm, is sent to the Setpoint input of the PID block to define the speed setpoint. The speed feedback from the drive, also corresponding to 2820 rpm, is read via the PLC's analog input and sent to the Input input of the PID block. However, I'm noticing a malfunction: when I manipulate the potentiometer, the PID block's Output_per output does generate a value to run the motor, but this value doesn't stop at the setpoint input. It continues to increase until it reaches 27648, even though the setpoint remains much lower. Worse still, when I lower the potentiometer completely (setpoint to 0), the Output_per output remains stuck at 27648, and the motor continues to run. It doesn't return to 0 as expected. For your information, I set the cycle time of the cyclic interrupt OB30 to 30 ms. I created an FB block to calculate the actual speed and the actual speed feedback of the motor for the setpoint input of the motor PID and the input input of the Compact PID block. I therefore ask for your help to identify the source of the problem and help me get the Compact PID block working properly. Thank you in advance for your support. see attach file , my program
AttachmentPID FB .zip (199 Downloads) |
Last edited by: Moderator_Lan at: 04/10/2025 06:59:12Text formatting optimized |
|
Follow us on