Trying to figure out motor timing for starts

jd2325 said:
... I wish there was a way that I could try different methods and see if they work but with 1 four hour class a week it is difficult to do as much playing around with the logic as I would like....

See if you can download the trial version of RSLogix Micro Starter Lite or whatever it's called, and if you can get RSLogix500 Emulate to go with it...Those two gems will give you all the (virtual) PLC time you want.
 
I looked at the program you posted in #12, and if I sit there and hit the start button 3 times with the motor running I'll be locked out for an hour. I would think you'd want to count based on the output coming on (or in real world application, the aux contact on the motor starter), rather than the start button, to compensate for pesky impatient operators.
 
Yes I need to be able to shut the motor off and then restart up to 3 times in 1 hour hypothetically because the start windings on a larger motor would get too hot and cause damage to the motor. I will post a copy of my logic once I have finished writing the program and test it on the trainer at school. Still a bit confused on how to drop and reset one timer after the hour and then if Start is pushed to make the start inoperable again. I seem to be able to get things going it is stopping applications properly that confuses me.
Thanks,
Jim Dalton
 
Downloaded all of those but cant get the emulator to work with Microsoft vista or 7. I can write the programs with RS500 but cant check them.
 
Yes I need to be able to shut the motor off and then restart up to 3 times in 1 hour hypothetically because the start windings on a larger motor would get too hot and cause damage to the motor. I will post a copy of my logic once I have finished writing the program and test it on the trainer at school. Still a bit confused on how to drop and reset one timer after the hour and then if Start is pushed to make the start inoperable again. I seem to be able to get things going it is stopping applications properly that confuses me.
Thanks,
Jim Dalton

Jim,

Another approach would be to use the time words in the processor (S:40 to S:42), involves a lot more moving around of data/compares but would allow you to hold to 3 starts in any moving hour.

It'll take some thought on how to set it up, but it can be done.
 
What version of win7 you have? u can use WinXp mode if professional/ultimate etc.

Or if you have winxp licence, u can use virtualbox to make virtual machine.
 
The Real Time Clock method would be good for flexibility in changing the time limits and/or the number of allowed starts, but the ML1000 ain't got one.

Here's another way to skin this one...simple instructions, no fancy latching or oneshots.
 
I probably shouldn't have posted what I did in post 12 since it is only a partial solution based only on post #7, not post #1 and post #7. I was hoping that maybe it will add some ideas for the final solution.
 
Here is a more generalised approach using arrays in structured text. (This code only generates the interlock to prevent a start of Q0.0)
Code:
FUNCTION_BLOCK FB1

VAR_TEMP
  // Temporary Variables

END_VAR
VAR
  Starts:ARRAY[1..3] OF INT;
  iNumberOfStarts:INT:=3; //Size of the array above
  iTimePeriodsecs:INT:=3600; 
  bStartEdgeStore:BOOL;
  bStart:BOOL;
  bStartNotAllowed:BOOL;
  bStartSeen:BOOL;
  bOneSecondPulse:BOOL;
  iIndex:INT;
  iCount:INT;
END_VAR
bOneSecondPulse:=M0.0;
iTimePeriodsecs:=30; //use 30 secs for testing
//rising edge for each start
  bStart:= Q0.0 AND NOT bstartEdgeStore;
  bStartEdgeStore:=Q0.0;
//loop for all starts finding
IF bstart THEN
     bStartSeen:=False;
     FOR iIndex:=1 TO iNumberOfStarts DO
     IF NOT bStartSeen AND Starts[iIndex]=0 THEN 
        Starts[iIndex]:=iTimePeriodsecs;
        bStartseen:=True;    
     END_IF;
     END_FOR;    
END_IF;  

//update array of start timers every second decrementing to zero
IF bOneSecondPulse THEN 
 FOR iIndex:=1 TO iNumberOfStarts DO
 IF Starts[iIndex]<>0 THEN 
    Starts[iIndex]:=Starts[iIndex]-1;    
 END_IF;
 END_FOR;
 bOneSecondPulse:=False;
END_IF; 
M0.0:=bOnesecondPulse;

//search array of timers for non-zero
//If all starts are non-zero then another start is not allowed
iCount:=0;
bStartNotAllowed:=False;
FOR iIndex:=1 TO iNumberOfStarts DO
IF Starts[iIndex]<>0 THEN 
   iCount:=iCount+1;    
END_IF;
END_FOR;
IF iCount = iNumberOfStarts THEN bStartNotAllowed:=True; END_IF;
//monitor for plcsim
q0.1:=NOT bStartNotAllowed;

//watch code
iIndex:=starts[1];
iIndex:=starts[2];
iIndex:=starts[3];

END_FUNCTION_BLOCK
 
OkiePC: I guess that you have to move T4:1.acc to T4:2.acc whens T4:2 starts, and move T4:2.acc when t4:3.acc when t4:3 starts , and if one of the timer gets maximum acc then reset all the timers to start another hour.
 
Not sure I follow you Bill. The goal is to keep track of the most recent three starts, not reset anything on the hour.

My first attempt would allow the wrong timer to begin if you let one time out and then hit start, so I ended up with something more like Bernie has to start the timer that isn't running.

Also, when I tested it in Emulate, I tried starting one right when a timer was finishing several times, and I ended and somehow had no timers running and a counter .acc=2! So I added the reset rung for the counter and rearranged the timer trigger logic.
 
Actually, besides the mentioned miscalculation on the timer presets, my version would allow the following problems:

If the operator were holding the start button when all three timers were being used then one times out the motor would suddenly start.

Also if the operator continued to hold the button and another timer timed out that timer would then be started, counting as another button press.

I have a version to address these but I'll hold off for the moment.
 

Similar Topics

We have a keg check weigher that that lost a fight to a forklift. The scale was previously a Systec IT3000, which was the only PROFIBUS slave...
Replies
5
Views
675
We run multiple products on our machines, which means we have multiple robot programs that we swap to, due to the points for the robots having to...
Replies
7
Views
1,920
Hi all, I need to send a 4-20mA signal from a PLC (ICLinks Everest) to a paperless chart recorder (Endress and Hauser RSG30) and I'm having a...
Replies
7
Views
2,261
I came across this Youtube video on facebook, and there's obviously something going on we can't see. I embedded the link above, for those who...
Replies
11
Views
2,692
Hey guys, I've been working on a couple of systems that were originally programmed and integrated by another programmer at a different business...
Replies
6
Views
2,264
Back
Top Bottom