I need some Help!!!

Neonmerlin17

Member
Join Date
Aug 2003
Location
Scranton,Pa
Posts
2
I haven't done programming in many years.I'm a little rusty.Here's is what I need help with: I'm trying to turn 4 motors on in order that the user defines. Each time the machine is started the the order in which that the motors are started changes. The Touch pad will tell the PLC which order to start them.I'm using Ge Fanuc PlC. Could Someon help?? Thanks James
 
Which GE Fanuc PLC model and which software package will you be using?

When you say that the order of motor starting changes, do you mean that the order changes randomly, or does the operator have to enter a new order before the machine is allowed to start?

If I'm wrong, I hope you'll forgive me, but this sounds suspiciously like a school project. I've seen (and written) routines to equalize the run times for multiple motors, but I've never run across a need to randomize starting order. Could you provide more details about the application. We're not too keen here about spoon-feeding students the answers to their homework assignments.
 
I'm using Ge Fanuc Versa-Max Plc and Cimplicity Machine Edition 4.0. The operator has to enter a new order before the machine is allowed to start,

By the why,No it isn't a school project.I haven't done programming in many of years. Trying to get back into it.My memory isn't all that it crack up to be. So forgive me. I only had a short course in ladder logic. The programmer where I work Left And they need some to fill in until the find someone esle.That how I got it.
 
Well, here's an approach.

Map your buttons on your HMI to four consecutive %M addresses that start on a byte boudary (%M001, %M009, %M017, etc). In your ladder logic program, move just those four bits into a %R register. You can do this by using a MOVE instruction with data type BIT and length 4, or you can use an AND function where you AND %M001 with hex 000F with the result going to the %R register.

Next, use a NE function to compare the %R value with zero. Put a one-shot coil at the output of the NE function. This coil will be true every time the operator pushes one of the buttons.

Each time the one-shot is true, add the value in the %R register to a running total, and use a Shift Register function to move the running total into a stack. The top value in the stack will have a single bit true corresponding to the motor you want to start first. The next lower addressed register will have two bits set corresponding to the two motors that should be running next, etc.

This is bare-bones. You'll need to include logic to ignore the operator pressing the same button more than once and any other non-standard commands. You'll also need logic to move the values from the stack to the outputs in proper order, but you should be able to make it work.

Good luck.

Just curious, but what is the reason for varying the order of starting the motors?
 
It sounds to me like you ar trying to accomplush an alternator for the motors to equalize run times. I think if you do a search on the site, you'll find some help in past threads.
 

Similar Topics

I'm fairly new to Rockwell software, I've had some basic training in the past but nothing too advanced. My company and I use Reliable products for...
Replies
11
Views
280
Hi all, I am having issues accessing my Cimplicity software - the site code changed after re-install and I am no longer able to attain a new key...
Replies
10
Views
158
Good day all! Can someone help me with the procedure to update Beijers E700 firmware? The Panel I am working on is firmware 2.04v and I would...
Replies
1
Views
62
Hello nice to meet you, im new in here, I'm currently trying to convert code written in STL for a S7-400 to SCL for an S7-1500, because when i run...
Replies
5
Views
316
Back
Top Bottom