Help - Search - Members - Calendar
Full Version: clear problems
Forums.MrPLC.com > PLCs and Supporting Devices > General Topics - The Lounge
kolonelvonklink
Hi

if I have a machine with loads of pneumatic cilinders servo's etc. and loads of proximityswitches and other stuff that can become broken.
In such case the plc program stops the machine cycle waiting for this -for the technician unknown- input signal to appear.

Is there an easy programming way/trick to make the PLC say -via HMI- what "he is waiting for"?

thankx
BobLfoot
QUOTE(kolonelvonklink @ Apr 22 2009, 02:45 PM) [snapback]81410[/snapback]

Hi

if I have a machine with loads of pneumatic cilinders servo's etc. and loads of proximityswitches and other stuff that can become broken.
In such case the plc program stops the machine cycle waiting for this -for the technician unknown- input signal to appear.

Is there an easy programming way/trick to make the PLC say -via HMI- what "he is waiting for"?

thankx

The answer to your question depends a several things.
1. Your Definition of Easy Programming.
2. Your choice of PLC.
3. Your choice of HMI.

What you describe are called "machine status warning alarms" and we write and use them every day where I work.
Ken Moore
Have to agree with Bob.
A well written program will alert the operator to the current problem. This takes a lot of up front planning and coding. Robust coding almost always tells the operator the problem. Retro-fitting an existing program may take a considerable amount of effort.
OkiePC
If you use a sequencer with sequenced inputs, you can quite easily produce a list of things that the sequence is waiting for in each step, and it will always be accurate.

You simply XOR the input word with the input file to find the differences, then MVM the result with the input mask to create a word with only bits set for things that are in the wrong state. Put that on the HMI (individual bits) with meaningful labels for each bit and have a self troubleshooting machine.

Personally, I don't care for the built in SQC (or SQI) / SQO instructions, so I use MEQ and MVM with indirect addressing to acheive the same thing, and I manipulate the step index separately.

Paul

EDIT: The pnemonics in my response are allen bradley specific, but could be adapted to others...
kolonelvonklink
I was searching for a common way to achieve this.

@Paul
I'm a novice user of Omron and Siemens so I don't know what MEQ or MVM does blush.gif
Also the sequencer concept??? I thought it was a musical tool oops.gif

Can you explain this a little more. Maybe a small example

I still have much to learn graduated.gif

thank you

@Ken
I've seen programmers rather completely rewrite a program than to adjust it
panic mode
what paul mentioned is probably the only easy way of producing information on what machine sequence is looking for. for this to work one must use table-driven sequencer (regardless if it is built in instruction or DIY version). the idea is to look at conditions on a register level and use masks to extract information (XOR can be used to find the difference between "expected" and "current" status). mentioned mnemonics are Allen Bradley PLC instructions, Omron and Siemens will have their own instruction set. the idea is the same and any plc will have some form of AND, OR, XOR etc.
The idea behind table driven sequencers is to format I/O or whatever conditions into columns of a table which is mapped to some memory block (such as D or DM in Omron for example) so that each step of the sequence would be represented by row (register) in that memory block. When conditions in one step are met, program would increment to next step etc. this will happen for every step where input conditions mach the requirement listed in table. if the condition is not met, sequence would stop and one can examine problem using XOR function and display result on HMI.

OkiePC
Panic did a good job of explaining the concept.

Thanks, Panic!

Yesterday, I read your question and thought it might best be answered via example, so I have added a generic sequencer to the download section (under Allen Bradley). It includes a spreadsheet and a RSLogix500 program that can be used as a base. I suppose I could create a pdf file of the ladder program for users who don't have RSLogix500 to work with...

Paul

EDIT: Well, I broke the download trying to update it, now I can't upload or download anything to it...I sent a note to the moderators, but until they get it fingered out, I will attach the updated version here...

EDIT: It's fixed in the download section...(Thanks Chris)
kolonelvonklink
Great.

I will have a look at it

thanks to all thumbsupsmileyanim.gif thumbsupsmileyanim.gif thumbsupsmileyanim.gif
panic mode
note that MEQ (masked equal) is like CMP= but only compares bits specified by mask:

if (source AND mask)=(reference AND mask) then
MEQ_result=true
else
MEQ_result=false
endif



MVM (masked move) is like MOV but only copies bits specified by mask:

output=(source AND Mask) OR (output AND NOT(mask))



One can add teach functionality on HMI and you have canned universal program that can be setup by customer and without need for programming software.

then you put everyone in trouble... wink.gif
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.