Good Day Group, I am having an
Good Day Group, I am having an
(OP)
Good Day Group,
I am having an issue between my logic and the VFD that is controlling my motor. The VFD is an Automation Direct GS1. In my logic O2 is run/stop and O1 is direction (closed = CW and open = CCW, rung 6, line 3). What I am trying to accomplish is "if counter is equal to 1 then energize coil" (top rung line 15)and when the coil goes high the corresponding N.O. contact on rung 6, line 3 will close and energize coil O1 to change direction. For some reason I cannot get O1 to change states and am not sure if it might be my logic or an issue with the VFD. It seems pretty straight forward to me but obviously I am missing something and am hoping another set of eyes night be able to see something I am missing. For reference rung 4 (the top rung) is timing and rung 6 is motion. Thank you all in advance and have a great day!
Regards,
Cliff
I am having an issue between my logic and the VFD that is controlling my motor. The VFD is an Automation Direct GS1. In my logic O2 is run/stop and O1 is direction (closed = CW and open = CCW, rung 6, line 3). What I am trying to accomplish is "if counter is equal to 1 then energize coil" (top rung line 15)and when the coil goes high the corresponding N.O. contact on rung 6, line 3 will close and energize coil O1 to change direction. For some reason I cannot get O1 to change states and am not sure if it might be my logic or an issue with the VFD. It seems pretty straight forward to me but obviously I am missing something and am hoping another set of eyes night be able to see something I am missing. For reference rung 4 (the top rung) is timing and rung 6 is motion. Thank you all in advance and have a great day!
Regards,
Cliff
RE: Good Day Group, I am having an
When monitoring does the rest of the rung go true but just O1 never goes active?
Or does O1 go active but you never see the drive respond to it?
Since that is only a code snippet I can't tell if you have any more O1's anywhere. Is that the single and only one in the program?
Keith Cress
kcress - http://www.flaminsystems.com
RE: Good Day Group, I am having an
RE: Good Day Group, I am having an
RE: Good Day Group, I am having an
So, do you have a "Monitor Mode" that shows the running state of the viewed page of code? This is NOT the LEDs on the device but usually is part of the development system that you're using to look at the code.
You can post the full code as a PDF and we/I may be able to spot the problem.
Keith Cress
kcress - http://www.flaminsystems.com
RE: Good Day Group, I am having an
RUNG 1: MOVE PANEL BITS TO SYSTEM DISCRETE TO START PROGRAM WHEN F1 IS PUSHED
RUNG 2: STATIC CALCULATIONS, CONVERT TIMING INTEGERS TO FLOATING POINT (LINES 1 AND 2), SET UP TIME LINE FOR MOTOR RAMP, DWELL, STOP (LINES 5-8), SCALE ANALOG SIGNAL (LINES 9-13, NEEDS WORK) AND SCALE BRAKE SIGNAL (LINE 15)
RUNG 3: TIMERS TO CONTROL ACCEL, DWELL, BRAKE, BRAKE HOLD AND WAIT INTERVALS ( TIMES SET ON HMI)
RUNG 4: TIMING OF PROGRAM ITSELF (WHEN F1 IS PUSHED START OVERALL TIMER, CONVERT TO FLOATING POINT AND ACCEL, DWELL, BRAKE, BRAKE HOLD AND WAIT BASED ON TIMERS IN RUNG 3 (LINES 1-11). EACH TIME "SEGMENT TIME END POINT" IS REACHED IT EQUALS 1/2 CYCLE, LINE 19 IS A COUNTER/CYCLE RESET WHEN TEST IS FINISHED (F2 ON HMI)
RUNG 5: SETTING A BIT BASED ON IF THE PROX SENSOR IS HIGH OR LOW THAT IS TIED TO A TIMER ON TUNG 6 TO SHUT DOWN IF NO CHANGE IS SEEN DURING MOTION CYCLE
RUNG 6: THERE IF NEEDED FOR NOW
RUNG 7: MOTION: ENGAGING MOTOR/CLUTCH AND SETTING DIRECTION VIA VFD (LINES 2, 3) SETTING ACCELERATION AND VELOCITY (NEEDS WORK) AND TIMERS FOR SHUTDOWN, (LINE 6) AND MOVING SCALED VALUES TO VFD FOR DWELL (LINE 13) AND STOP (line 15)
RUNG 8: BRAKING: SEND SCALED VALUE TO BRAKE (LINE 1), CHECK # OF COUNTS AND OVERALL AVERAGE (LINE 4), SEND FULL SCALE VALUE TO BRAKE FOR HOLDING ( LINE 13) AND RELEASE (LINE 15)
Thank you in advance for your time and any insight in sincerely appreciated.
RE: Good Day Group, I am having an
I haven't figured it out yet but without a running monitor (I sure don't see how just being shown the initial state is worth diddly squat!) I'd be trying to get running info out to see it.
If you have any spare outputs (Ox) I'd use them all as probes. Assign one to ACCEL, one to DWELL, and one to VFD_FWD, to see which is the problem. If you only have one spare output work thru each one until you find the problem. That will guide you to where the problem code is.
You might also parallel O1 with a spare to prove it's not a hardware problem with O1. If you have no spares commandeer one. Pick the easiest one to steal,(maybe RUN_STOP), that the program can still operate around.
Keith Cress
kcress - http://www.flaminsystems.com
RE: Good Day Group, I am having an
Thank you for the insight! Please forgive my ignorance in advance but when you say to use a spare output as a probe ( I do have 1 available) what are you referring to (and would this be to the NO contacts on rung 7)?
RE: Good Day Group, I am having an
RE: Good Day Group, I am having an
RE: Good Day Group, I am having an
Yes!
Those contacts are outputs elsewhere in your logic. They just happen to be internalized.
You immediately follow the rung under study with a single simple rung. You make rung 8:
First to confirm the hardware isn't screwed-up follow rung7 with:
CODE --> Ladder
If that's not it follow with:
CODE --> Ladder
then
CODE --> Ladder
then
CODE --> Ladder
Or whatever the spare output is.
One of those is not doing what you expect. This should show which.
Keith Cress
kcress - http://www.flaminsystems.com
RE: Good Day Group, I am having an
RE: Good Day Group, I am having an
So it turns out that FWD-VFD was not doing what I wanted it to do. For some reason it did not like being in the "timing" rung so I put it into it's own rung and I am now sending the signal as intended (high on 1 half and low on the other) but for some reason the VFD is not responding as it should (still staying in reverse) but at least the logic is doing what is is supposed to so now on to the next question "why are you being like that VFD"? Will keep you posted on outcome...
RE: Good Day Group, I am having an
Always remember the way a PLC executes.
Top to bottom it does all LOGIC first. Output states are kept in memory and not physically sent to the actual output hardware until all LOGIC is completed. Once all logic is completed the PLC mass transfers the resulting memory output states to the physical outputs.
What does this mean to you? It means the last state of an output is the winner that gets a physical representation. This can cause a lot of confusion as you may look at a rung that sets an output and everything is saying the output should be happening but something else farther down the code can be altering that result.
If you're looking at a rung that should've had an active output and yet it doesn't it often means you have something later in the code killing the output. This goes for internalized outputs that later become contacts in later rungs.
As for the VFD. Remember that most VFDs want you to feedback the control voltage that they source from their own control circuit. Usually one takes in that VFD supplied voltage at the PLC output group's voltage input. Then when an output goes active it sends that VFD supplied voltage back to the inputs of the VFD. If you're not doing this it may be the problem. There are caveats about this too. You can't generally use that weak VFD source to do anything else. On a basic PLC you might only have one single output power source group. Trying to run a brake unit or something non VFD will cause problems and possibly malfunctions. Sometimes you have to use external relays to provide a limit on what gets the VFD source voltage.
Use a piece of wire to check that the VFD can be controlled using the screw terminals the PLC is diddling. Check the VFD parameters are set to allow the external control. Reverse can be locked out. The external control screws can be selected and wrong for your wiring. If you command reverse while the VFD is in forward it will decelerate to stopped over the programmed decel time. Once stopped it will accelerate over the programmed acceleration time to the set speed.
Be careful as the VFD output is lethal and you don't want to come in contact with it or confuse the screw terminals.
Keith Cress
kcress - http://www.flaminsystems.com
RE: Good Day Group, I am having an
RE: Good Day Group, I am having an
0-10V inputs usually take a remote source whereas the digital inputs may not.
0-10V is very common and should work. You don't need the V input to change signs to change the motor's direction as that is handled by that digital input.
With the PLC's analog out disconnected see what the PLC is putting out on the two leads.
Most VFDs have a switch you must set telling the VFD you're supplying a current (4-20mA) or a voltage (0-10V).
I cannot see how the PLC could be stopping the VFD from going one way via the analog voltage input unless the analog signal is going to 0V during the missing direction phase.
Keith Cress
kcress - http://www.flaminsystems.com
RE: Good Day Group, I am having an
A little more background info: the VFD is an Automation Direct GS1. I have double checked the settings on the VFD to confirm the the switch is set to V, the analog gain is 200% (to account for the -100% analog input offset), negative input offset polarity and that FWD and REV motion are enabled. When you mention to disconnect the analog out and see what the PLC is putting on the 2 leads are you referring to the the output and common of the IO module? To start I think my first issue is that my "RPM MAX" (line 9 of control and pid pic) is not specified which in turn I think will screw up the math for the "RPM SCALE ANALOG" (line 9 of control and pid pic also) which will in turn not be able to send proper "RPM FULL SCALE" data to OR2 (line 13 of motion logic pic, OR2 is the motor run signal - RPM SCALE ANALOG and RPM FULL SCALE are converted on line 11 of control and pid pic). The original associated HMI program has "RPM MAX" set as a read only setting, my thought process is that to control the acceleration (VELOCITY 32 on line 6 of motion control pic) and dwell rpm I need to install a PID to scale my rpm (0-3000) to the analog module ( 16 bit, 0-4095). Does that thought process make sense and if so could we possibly discuss PID setup? I have been researching the topic but am not solid on the parameters. I would think that my control variable would be RPM FULL SCALE (data being moved to inverter for dwell cycle, the output rpm I am looking) for and my process variable would either be CURRENT RPM (line 13 of control and pid pic) or TARGET/DWELL RPM (line 9 of control and pid pic) but from there I am in the dark without a candle. I threw a shot of the PID parameters up for hopefully good measure. If a small novel would need to be written concerning these questions I can be reached at (775) 888-8257 (direct line) or 1-800-568-4327, EXT 257. Hopefully I am dialing in but as evidenced by this diatribe I have a ways to go.
RE: Good Day Group, I am having an
I think you may be trying to run before you've crawled. You should have the whole thing running just fine with some rational fixed speed in both directions first. Like 300rpm. Then try higher ones as confidence builds. Once you have that you will then know you have full control of the motor as needed.
Then and only then you do you start messing with PIDs. You need speed feedback to use PID, don't recall seeing that.
Keith Cress
kcress - http://www.flaminsystems.com
RE: Good Day Group, I am having an
Thank you! As I was writing that diatribe yesterday it felt like I may have been thrashing in the deep end of the pool (I don't know what I don't know, thank you for setting me straight) . I will check the analog output signal as you had recommended to start and see what I am getting for direction control signal and concentrate on controlling the dwell speed with the program before I start worrying about accel times and the like. The speed feedback that would be used for PID is a proximity sensor ( tag-prox, I16 on page 7 of program) that is keeping counts via slots cut in the inertia wheel which will also be a function of the gearhead ratio that is being tested but that is for another day (you may be able to see the slots in the attached pic).
RE: Good Day Group, I am having an
While you can reverse the drive with analog on a GS1 you'd be insane to do it. Use the digital FWD/REV and AVOID using the analog for such foolishness. All you need is some tiny offset to cause crazy machine behavior.
Also, if you are considering feedback for PID and getting it from the inertial mass what happens when the coupling breaks? The inertial mass starts slowing down and the PID speeds up the motor spinning a broken coupling??!! You need something to detect a speed difference between the motor and the inertial mass.
I'm using a Productivity 2000 PLC and one of the (HSI) HighSpeedInput modules. They handle two high speed inputs. You'd assign one each to motor shaft and the inertial load. You'd know instantly when they weren't in sync. They also have specific GSx drive stuff in them and PIDs.
Keith Cress
kcress - http://www.flaminsystems.com
RE: Good Day Group, I am having an
RE: Good Day Group, I am having an
Over the weekend I did some more studying and it has dawned on me that I will need to create a new rung to be able to scale the output signal to the motor for total sped control. The line that I initially thought was for output scaling is actually for rate of velocity increase (line 9 of rung 2 of logic sent Aug 8th). The way that the EZ420 does scaling is a little different ( I have attached a screenshot of the example tech support sent to me). My question is "based on the logic that I attached on August 8th (power panel project) would you agree that I need to add a rung specifically to scale the analog output signal and if so would it be best to do it before or after my "motion" rung (rung 7). My thought process is to put the motor scaling signal rung right before motion rung (rung 7)so that during scanning the program the signal will be scaled as necessary prior to the motion rung (and subsequent outputs) being read and would also make sense based on the program "doing all logic prior to outputs". Currently the logic goes in these steps, calculations, timers, process timing, motion and braking. I have attached a pic of how the EZPLC does analog scaling, if I understand correctly the "IR1" source in the scaling example will be my "OR2" (analog out inverter), that "U16" value is converted to a floating point 32 bit value, that value is then multiplied by the "scale value" (I need 3000 RPM from a 16 bit module, my slope is 3000/4095 = .7326). I am not sure why the final "X=Y" conversion is needed to convert back to unsigned decimal. I have also attached a couple of pics concerning reading and averaging the analog signal, I am not sure if this logic somehow ties in or not but wanted to throw it up there in case it does. Any insight into this latest info is sincerely appreciated and if necessary I am willing to pay for some tutoring via a teamviewer session to get this project over the top.
RE: Good Day Group, I am having an