collinsd70

Debugging Local O: Data

8 posts in this topic

Posted (edited)

Hi All.

I have a wierd bug in my program, my logic includes 2 routines that pass a tagname directly to and from Input and Output addresses (ie the "Local Data")

The problem I have is 2 of these outputs are being set- even though the logic doesnt appear to ve driving them. I have cross checked these and also checked there are no other tags using the same aliases.

1 output is permanently high, whilst the other is flashing so fast I have had to disconnect it from a spare solenoid.

Does anyone have any further ideas what could be driving these?

Edited by collinsd70

Share this post


Link to post
Share on other sites

Can you post your project file?

Share this post


Link to post
Share on other sites

Posted (edited)

Joe E.

Thanks for your response- I had a theory that the output bit may at some point have been latched before the logic was shuffled/ deleted. So I simply toggled the bit and now it stays in a low state.

The flickering output however; I will have to do some tracing with the trend graphs.  

Edited by collinsd70

Share this post


Link to post
Share on other sites

Flickering means that it's being controlled by something somewhere or it's faulty, but that would be a really weird failure that I've never seen before. If you measure the voltage on the output is it really flickering on and off or is it a low voltage so that the solenoid chatters? What voltage is the output?

 

You should be able to find it in the program if it's being controlled. Is there an HMI in the system?

Share this post


Link to post
Share on other sites

Hi Joe.

Yes I completely agree that it was most likely being controlled from another part of the program- however the system is now fully commissioned and this problem no longer seems to exist

This project was developed from a "standard" piece of code (I use the word "standard" very loosely)- and thus; have spent about 80% of my time (roughly 4 weeks) debugging lots of different problems in this piece of code rather than improving my motion logic; written for drilling control.

 

Share this post


Link to post
Share on other sites

Posted (edited)

This problem was caused by logic in different cyclic priorities handling the same Boolean.....was very hard to find (thanks to the Trending facility for helping me debug this).

 

Edited by collinsd70
1 person likes this

Share this post


Link to post
Share on other sites

Usually, a simple cross reference will show all usages of any location in a PLC, start there if you have problems like this.

Share this post


Link to post
Share on other sites

Usually, a cross reference will help you find the culprit (like 2 pieces of code controlling the same parameter).  However, with UDTs bundled into an AOI, is is very easy to have this situation.  If anyone has used the open-source PackML template (which Collins may be working with) then you know what I am talking about.  It is very possible to "walk on" a tag within the AOI.  I wrestled with the very same type of situation for a long time, and ended up re-writing the whole program without the pain-in-my-butt PackML template.

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