Home Forums PID Control / Tuning Setpoint Profiles (for Reflow et al)

Viewing 15 posts - 16 through 30 (of 36 total)
  • Author
    Posts
  • Maddox
    Participant
    Post count: 13

    OK – sorry – it was on manual, not automatic. A case of RTFM 🙂

    Brett
    Keymaster
    Post count: 101

    @Maddox wrote:

    OK – sorry – it was on manual, not automatic. A case of RTFM 🙂

    thank you for posting this! you will not be the last person to do this. that is, until I put some logic in the firmware that flips the mode automatically when the profile is started.

    so that I don’t forget, I’ve added it as an issue on github.

    Maddox
    Participant
    Post count: 13

    I loaded the reflow profile you had posted earlier, sent it to the osPID, and ran it:


    [profile name, 7 chars max]
    3, 100, 0 //step (3) setpoint to (100) and immediately go so the next step
    2, 0, 0 //we have no idea where the oven temperature was at the start, so wait (2) until it crosses the setpoint from the previous command (100)
    1, 217, 100 //ramp (1) the setpoint to 217 over the next 100 seconds
    2,0,0 //because the oven temperature is likely lagging behind the setpoint ramp from the previous step, wait (2) until it actually GETS to 217 before proceeding the next step
    1, 245, 20 //ramp (1) the setpoint to 245 over the next 20 seconds
    3, 255, 30 //step (3) setpoint to 255 and wait 30 seconds
    1, 210, 20 //ramp (1) the setpoint to 210 over the next 20 seconds
    3, 75, 30 //step (3) setpoint to 75 and immediately go so the next step
    2, 5, 3 //wait (2) for input to be within (5) degrees of the of the last setpoint (75) for (3) seconds before proceeding to the next step (END)

    http://www.flickr.com/photos/77705680@N06/7118700487/

    I haven’t run autotune yet, but I thought I’d get feedback from the more experienced on how this profile looks and any suggestions for tuning and or operation?

    Brett
    Keymaster
    Post count: 101

    I haven’t run autotune yet, but I thought I’d get feedback from the more experienced on how this profile looks and any suggestions for tuning and or operation?

    it’s hard to get an idea for how well the tuning parameters are working, since the output is pegged at 100% or 0% for a large portion of the profile. the toaster is giving all it can at it still can’t achieve that heat rate. if you slow down the ramp rates (increase the 3rd number in the rows that begin with “1”,) you’ll be more likely to a) actually achieve the requested setpoint, and b) see the pid moving the output.

    Maddox
    Participant
    Post count: 13

    it’s hard to get an idea for how well the tuning parameters are working, since the output is pegged at 100% or 0% for a large portion of the profile. the toaster is giving all it can at it still can’t achieve that heat rate. if you slow down the ramp rates (increase the 3rd number in the rows that begin with “1”,) you’ll be more likely to a) actually achieve the requested setpoint, and b) see the pid moving the output.

    I’ll try the longer ramp times. On the ramp down (like going from 255 to 210 in 20 seconds, and then to 75), it seems to take a long time for the oven to cool off – I assume a little assist by opening the door is the the common way to address this? When I get everything figured out, I’ll post the details on which oven I used and how I wired it up.

    Thanks!!!

    dchris01
    Participant
    Post count: 17

    3,110,0   //Step (3) setpoint to (110) and Immediately go to next step
    1,175,30  //Ramp (1) setpoint to (175) over the next 30 seconds
    3,175,10  //Step (3) setpoint to (175) and wait 10 seconds
    1,200,30  //Ramp (1) setpoint to (200) over the next 30 seconds
    3,200,30  //Step (3) setpoint to (200) and wait 30 seconds
    1,230,30  //Ramp (1) setpoint to (230) over the next 30 seconds
    3,230,30  //Step (3) setpoint to (230) and wait 30 seconds
    3,75,30   //Step (3) setpoint to (75) and wait 30 seconds
    I have this profile set up and these were the results
     
     
    Time                          Ospid temp         TC temp
    30 seconds                 127                         141
    1 min                          164                        172
    1.30 min                     199                        200
    2 min                          225                        219
    2.30 min                     237                        228
    3 min                          219                        214
    3.30 min                     201                        196
    4 min                          183                        186
    4.30                             171                        168
     
     When preheater got motherboard to temp 110 I ran this profile
    I got this reading with TC  around 3mm from chip i was practising on
    One thing I am having issues with is when I select a profile from list in osPID front end and select my com port and then connect I then click send profile but nothing happens. The only way I can get the profile to send and run is to disconnect and connect straight away this then runs 100% without fail. Maybe error in software.

    Maddox
    Participant
    Post count: 13

    One thing I am having issues with is when I select a profile from list in osPID front end and select my com port and then connect I then click send profile but nothing happens. The only way I can get the profile to send and run is to disconnect and connect straight away this then runs 100% without fail. Maybe error in software.

    I have seen the same behavior.

    Brett
    Keymaster
    Post count: 101

    @Maddox wrote:

    I have seen the same behavior.

    ok. confirmation warrants an issue on github. I’ll look into it.

    Petterson
    Participant
    Post count: 2

    http://img826.imageshack.us/i/imagexil.jpg/
    http://www.flickr.com/photos/danstrother/5354723924/
    I have two pictures one for leaded solder reflow and other lead free
    I want to start both from 100oC but coding wouldn’t be one of my strong points any help is appreciated

    Maddox
    Participant
    Post count: 13

    I have two pictures one for leaded solder reflow and other lead free

    What are your PID tuning parameters for the run?

    Brett
    Keymaster
    Post count: 101

    I’ve updated the Setpoint Profile Code for both the firmware and the front-end. 2 things:
    -bundled with the front-end I’ve included some useful (*gasp*) profiles: Leaded and RoHS. included out of the box
    -the osPID buzzer can now be triggered at any point in the profile. in the default profiles this happens at the end, but you should put the command anywhere.

    as always, the code can be found http://github.com/ospid

    dstorey
    Participant
    Post count: 5

    Wanted to add to this thread … not sure if I am doing anything wrong, but I wanted to create a very simple profile for curing special paint for sublimation printing onto metal plate. It’s a simple process – cure in the oven for 20 minutes at 160 deg. C.

    So I used this:

    Curing // first row is Profile Name
    3, 160, 0 // Step Setpoint to 160, wait 0 seconds
    2, 0, 0 // Wait for PID Input to cross setpoint
    127, 0, 5 // buzz for 5 seconds
    3, 160, 1200 // Step setpoint to 160 and wait 20 minutes
    3,30,0 // Step setpoing back to 30 and cool down
    127, 0, 5 //buzz for 5 seconds
    2, 0, 0 //Wait for PID Input to cross setpoint

    So I uploaded the profile to the unit and put the plates into the oven for curing.
    It believe it worked fine for the 20 minutes (I was out of the room at the time) but after the allotted time instead of staying at low temperature, the oven just turned on and stayed on a full power (to 250 deg. C), which was a bit of a disaster for my plate.

    Is this normal behaviour? Is my file missing something? Is there any command that can be placed into this file that stops the pid and switches everything off? That’s what I need!

    What would really really help is some good documentation. I read in other places that you are looking for the right wiki. Why not just put the docs into a pdf and post it on your web site? Keep it simple!

    thanks Dominic

    dstorey
    Participant
    Post count: 5

    Ah I think I have found the answer to my own question.

    I hadn’t realized I could select the profile at the bottom of the main menu list. I found that info buried in this thread (it would REALLY help to have a manual!)

    My I suggest that on the next release, you move these menus around a bit? I’d suggest placing the menus used most near the top so they are accessed quickly.

    Also, is there any room for multiple profiles in EEPROM?

    Now that leaves one other thing. I must have been running in manual mode as it had been maintaining the temperature for a while. It just stopped doing so and left the relays on all the time with the temperature soaring from 160 to 250 C. It was quite happy doing so.

    Could you add a safety protocol, such that if the controller has lost loop control (say temperature reaches a upper set point or doesn’t change direction after X seconds) then the relays shut off and sound an alarm?

    Dom

    Dominic

    dstorey
    Participant
    Post count: 5

    Brett, I’ve used your profile settings below on a project to set an oven to 160C for 20 minutes. At the end of the process the PID stopped controlling and the oven stayed on, baking up to 280C! This fried my work 🙁 I may have done something wrong, and I’ll post the code when I’m at my development machine. However, it got me thinking. Could I suggest to you a new command?

    4,<relay state>,<max temp> // stop.

    where elay state> = 0 is with relays held OFF, and 1 is with relays held ON. This would give you flexibility for how people have configured heating, cooling, etc.
    <max temp> = 0 | <value. If pid crosses max temp then the device will shut off.

    You could use this in two ways. if max temp is specified as a real number (e.g. -50.6 or 0.0 or 160) and this command is placed at the beginning of the file, it sets a safety ceiling, i.e., if the PID loses control or some other logic is wrong, the controlled device will shut down safely. If max temp is set to 0 (no decimal points) then it’s used as a stop command at the end of the file.

    You may have ways of doing this with existing commands, but without a little more documentation (hint, hint 🙂 ) it’s hard to tell.

    A suggestion for the profile file is that you also consider using command words rather than numbers, e.g. step, wait, ramp, stop?

    kind regards

    Dominic

    Brett
    Keymaster
    Post count: 101

    Dominic, I’m sorry to hear you had profile issues. you’re right. the documentation there is pretty bad. if you attach your profile code, I might be able to spot something.

    as far as your suggestions, I think they’re excellent. I’ve gone ahead and added them as an issue on the github

Viewing 15 posts - 16 through 30 (of 36 total)
  • You must be logged in to reply to this topic.