I’m in need of some “big brain” help. Apologize in advance for the long winded post but I figured if I set it up properly, there’d be fewer questions.
I have a vessel called a doubler that is used to heat liquid. Liquid flows into the doubler from a condenser. Liquid leaves the doubler as vapor or can be pumped from the vessel, based on the level in the vessel. The doubler has a pump that is used to remove liquid from it. Prior to a recent change I made in the PLC ladder code, the operators had to run up and down the stairs to check the level in the doubler then manually turn the pump on/off to control the level in the doubler. The snippet of PLC code to control this is in the first attachment (pre-mod_ladder_code.GIF).
In order to save wear-n-tear on the stairs (the operators are all young guys), I took advantage of a level transmitter installed in the doubler and added PLC code that senses the level in the tank then used that to control the pump (attachments added_ladder_code-rungs_2-6.gif, added_ladder_code-rungs_14.gif, added_ladder_code-rungs_18.gif).
As the operators still need to be able to control the pump manually for some operations, I left the old code in place and added the DOUBLER_AUTO_MODE_ENABLED XIO to rungs 15, 16 and 17. Those are the XIOs I marked out in the first attachment.
I built a new HMI control panel by copying the existing control panel display then adding two “new” buttons and tied them to the appropriate tags. I then modified the HMI base page to call the new control panel. I also added some HMI panel animation control to hide the manual control buttons when the Auto mode was enabled.
The Auto Mode Enable/Disable buttons work as expected. When Auto Mode is enabled, the pump operates as expected and maintains the level in the doubler without any operator intervention. When Auto Mode is enable, the HMI “hides” the manual control buttons expected. When Auto Mode is disabled, the manual controls re-appear as expected.
The problem is the Manual Controls no longer work.
I’ve monitored all the tags during operation by setting up trends. All the tags fire as expected. In particular I’ve paid a lot of attention to rung 17. When all the conditions are right to start the pump manually (DOUBLER_AUTO_MODE_ENABLED XIC == TRUE
HMI_DOUBLER_STOP_PB XIC == TRUE
DOUBLER DISCHARGE PUMP P-303 AUTO PB XOC == TRUE
BEER_WELL_TANK_LEVEL_TMR.DN XIC == TRUE
RUN_P303_TO_MED_LEVEL XIC == TRUE)
and the operator responds YES on the HMI (DOUBLER_START_DC_CONFIRMED XOC goes TRUE), the P303.PgmCntrl OTE does not go TRUE or goes TRUE for a tic then back to FALSE.
The only thing that I’ve seen when doing the editing/checking/testing of the PLC modes is:
Accepting the Pending Edits of program ‘Doubler_and_Gauging_Tanks’…
Accepting the Pending Edits of routine ‘Doubler_Discharge’ in program ‘Doubler_and_Gauging_Tanks’…
Warning: Duplicate Destructive Bit Reference Detected: ‘P303.PgmCntrl’
Doubler_and_Gauging_Tanks – Doubler_Discharge, Rung 18, OTE
Doubler_and_Gauging_Tanks – Doubler_Discharge, Rung 19, OTE
Doubler_and_Gauging_Tanks – Doubler_Discharge, Rung 17, OTE
Complete – 0 error(s), 1 warning(s)
Some digging on the interwebs revealed this nugget:
“…that if you are using Latch bits (OTL) and regular output bits (OTE) within the same program, you will get the destructive bit warning and your bits won’t turn on.”
So, I’m wondering if that’s my issue? If so, can anyone suggest a different approach I can investigate?
Thanks in advance,
My boss and I have gone around and around with using OTL’s and OTU’s. He doesn’t like them and I don’t use them much any more. For one thing, they bring up those destructive bit references as you see, because it’s basically the same tag name (Or instruction). Logic thinks it’s a duplicate OTE, although it’s not.
There weree a few in the reference for my air handler routines and I basically got away from them. I just use a holding circuit now for all OTE’s if I need one. .TT bits work real well for that also. I have experienced problems just like you’re having–very simple few lines of logic and then something doesn’t work. What I did in the past was thoroughly cross reference everything to see if something was holding me out that didn’t before. In your case maybe some of those HMI tags may not be exactly correct or a problem with a timer not resetting. Just a few suggestions that have helped me. Hope this is of some value to you also. Good luck and quit wearing out those young guys ha.
The issue isn’t you use of OTL or OTU the issue appears to be that you have the OTE “Doubler Pump P303 control input P303.pgmCntrl” in both rungs 17 and 18.
This problem arises when you use the same bit in 2 locations. What happens is when one rung is scanned the logic is true, but in the other rung the logic is false. Thus the last rung scanned status is which one the output ends up. Or it flashes REALLY REALLY fast LOL
the fix is to us differant bits in both locations then us them in parallel in a separate rung to turn on the output needed.
I have attached a screenshot below of an example.
Hope this helps and makes sense.
Thanks for the input. You’re solution was a lot more elegant than what I had come up with. Also easier to implement.
Here you go
I don’t see the attachments referenced. How do i get to them?
I’m not sure what happened to the attachments. If you can give me some context around what you were looking for, I might be able to recreate the attachments.
Thanks for the quick reply. I was just hoping see how you fixed the problem and see if it will work for me as well.
Give me a few minutes and I’ll draw up how I fixed it.
Well the website won’t let me paste the file I’ve created into the website. Do you have some place I can drop the file and you can retrieve it? Right now it’s a .png (image) file but I can change it to a .pdf or other file format.
It is not letting me post and links
it is https dropbox then this
I put it in my DropBox public folder. See if you can retrieve it from there.
I have it and I understand what you guys were talking about. Thanks again.
Good. Glad I could help.