Sign in to follow this  
Followers 0
gravitar

Extreme Newbie Proficy ME Question

8 posts in this topic

Hello! I'm currently working on my first experience with a GE PLC. It is a small automated shear table with a Series 90-30 CPU374 PLC. The program is already written, I'm just trying to make a few small improvements. Here's the first thing I'm trying to figure out.. I hoped that I could put a contact between a timer and its output coil, but Proficy didn't like that. So I'm figuring that I need to add a rung, assign a new bit to the timer done bit, and use this new bit with the condition I want to trigger the bit that's currently the timer done bit. Here's my problem.. I'm looking in the %M table, and it shows me a table of bits from 0-4096. I can see their present state, but I can't figure out how to see a "usage" table. How do I figure out which bits are unused in the program so that I can use one of them?

Share this post


Link to post
Share on other sites
Hi Gravitar, The Default Reference View tables are used to show the current status of the reference variable and the description, if one has been defined, can also be seen when you select a bit or a register, other than that the reference table will not provide the usage. There are two methods that I use to see the usage; The first is to use the "Search - Find In" search function from the main menu of Proficy and search for the variable. The results of the search will be displayed in the "Feedback Zone" display menu. The other method is to go to the "Project Navigator - Variable List" and do a Cross-Reference on the desired variable. To do this, go to the top of the variable list and right-click on the Variable List Icon. Then choose "Report - Cross reference by ... " and press OK. This will generate a cross-reference report for you. I hope that this helps. Best regards

Share this post


Link to post
Share on other sites
Not sure what you are doing but maybe here are a few points. If you want to add a timer, I would create a new %R (register) for a timer. Keep in mind timers use 3 WORDS. In a table it would look like this: MY_TIMER1 WORD[3] 16 TRUE GE FANUC PLC %R00072 MY NEW TIMER I JUST CREATED #1 MY_TIMER2 WORD[3] 16 TRUE GE FANUC PLC %R00075 MY NEW TIMER I JUST CREATED #1 Make sure you separate your timer creation by 3 registers. 1 %R is 1 word or 16 bits. There is no such thing as built in timer done bits. You can either stick a timer inbetween a start condition and an output, or create another BIT. Which will become your "timer done" In this screen shot, %M00305 is a DONE BIT for the timer %R00069 %M00060 starts the timer. Timer resolution is decided by what kind of a timer you put in. I inserted a tenth timer in this case. So my PV "Preset value" is "1" or 1 tenth of a delay. You can assign another %R at the location of PV, so you can vary the present value or you can just type in a hard value like I did. Hope that helps. What BURNS first time GE users is forgetting a timer consumes 3 words...don't forget that... If you forget to skip the right amount of registers, neither timer will work correctly.

Share this post


Link to post
Share on other sites
If a bit is explicitly used in the program, it will show up in the variables list. Order your variables by address and whatever %M bits you have used will be there in numerical order. When you're entering ladder logic and you put in a NO contact instruction, instead of typying in the full address (%M00123 for example), type in %M and leave off the numeric part. ME will select the next unused %M address. This technique goes back to the days of Logicmaster and works foro all memory types. The technique will not fill in unused blanks. If you have already used %M0001 and %M00100, it wil assign %M00101 as the next available.

Share this post


Link to post
Share on other sites
Also when asked for an address just respond with "%M" or "%R" when you do this Proficy will select the next available address of that type. Another way to get a contact between a timer and the done bit is to put a Continuation_Coil (+) after the timer and begin the next rung with a Continuation_Contact [+] then your conditionals and done bit. This does not take up any additional internals or addresses and works just fine. Learn Something Today so you can Teach Something Tomorrow.

Share this post


Link to post
Share on other sites
Does the "+" coil/contact signify more than just allowing a rung to be longer than the width of the display? I had plenty of room on the displayed rung to insert a contact between the timer block and the done bit, but it seemed that proficy would not accept that as a valid sequence of instructions.

Share this post


Link to post
Share on other sites
The ban on contacts after a function block is a 90-30 limitation. It's been that way ever since the product line was introduced. The other limitation on the 90-30 is that you can't put in a parallel branch around a funtion block. The continuation coil is just a shorthand method of extending a rung beyond ten elements. Under the hood the continuation coil and its associated contacts have an address (%SA0032 if I remember correctly).

Share this post


Link to post
Share on other sites
It just allows you to split a rung into multiple parts without using internal addresses, it would be the same as using the same bit multiple times. But it gives additional flexibility as you can also have one CONT_COIL and multiple rungs with CONT_CONT.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0