Hamwi89
Member
Hello PLC Gurus,
I am losing my mind over this problem, please help!
Essentially, an %M bit is somehow being changed from 0 to 1 erroneously and causing problems in the system.
This %M3900 bit is assigned to an "ok" button on all alarm pop-up windows of the HMI to clear alarms. Occasionally, the machine would stop without an alarm message because the state of the bit changes from 0 to 1 right after the alarm occurs which clears the alarm immediately before the message is humanly visible. This does not occur every alarm and ranges between 0-8% of the alarms per job on the machine.
The intended sequence of events is: When a fault condition occurs, the PLC sets an alarm bit for each alarm condition, stops the machine, changes the window on the HMI to the alarm window by writing an integer to the register that the HMI monitors. Then when the ok button is pressed, the HMI sets-on the %M3900 bit, then the PLC would clear the alarm bit, clear the ok bit %M3900 by writing 0 bool to it, and change the window to normal operation window.
I had sent Maple the HMI project to confirm that nothing in the project would set this bit to 1 besides pressing the "ok" button on the pop-up window, and they had checked the whole project and confirmed that for me (macros and windows and everything else in the project). (Kudos to Maple for their prompt support!)
I had looked everywhere in the ladder logic for the %M3900 bit and there is nowhere a set coil or any other type of coil besides a reset-coil. The way i looked for the coils was by clicking on one of the contacts of %M3900 in the logic and opened the "Reference" tab and checked every single instance the bit is used for a coil.
I also used the same method to look for functions that would change the bit to 1 like a move_bool or move_int, but there is nowhere in the logic where the PLC would set that bit to 1.
The problem only started to happen after i took the PLC and HMI codes from one of our production machines and modified it to add some new features like actuators and their alarms and controls, and loaded them on an old machine acquired from an auction. We have the unmodified code on one other machine that has been in production for a long time and we never had this problem before, and that machine uses the same bit addresses for the ok button and alarm windows, given that i added a few more alarm windows to the HMI code.
The PLC is GE 90-30 with a 374 + CPU and a maple systems HMI 5070LB, i attached a diagram of the PLC cards.
The HMI and PLC are communicating through a 4wire RS-485 and SNP-X protocol.
Here are the solutions i tried so far but with no success:
1- Changed the HMI screen.
2- Changed the Communication serial cable between the HMI and PLC.
3- Changed the PLC backplane.
The way i confirmed the OK button %M3900 was being set to 1 right after the alarm occurs was by adding 2 timers to monitor when the alarm occurs and when the ok button changes to 1, and both timers matched ( I used Tenth of a second timer).
I dont have more theories that i can take action on to explain this, i think maybe there is somewhere in the PLC program that i have not looked and i do not know how to access, or something about the communication structure that i do not understand is causing this to happen.
I am using proficy Machine edition 7.5 for PLC programming.
Is there any way that i can find the source of a command to change a bit from 0 to 1 in this PLC?
or are there any other troubleshooting actions i can take to reveal more information about this error?
if there are any other information i can provide to clarify anything, please let me know and i will post it. i uploaded the PLC program and the HMI project as well.
I am losing my mind over this problem, please help!
Essentially, an %M bit is somehow being changed from 0 to 1 erroneously and causing problems in the system.
This %M3900 bit is assigned to an "ok" button on all alarm pop-up windows of the HMI to clear alarms. Occasionally, the machine would stop without an alarm message because the state of the bit changes from 0 to 1 right after the alarm occurs which clears the alarm immediately before the message is humanly visible. This does not occur every alarm and ranges between 0-8% of the alarms per job on the machine.
The intended sequence of events is: When a fault condition occurs, the PLC sets an alarm bit for each alarm condition, stops the machine, changes the window on the HMI to the alarm window by writing an integer to the register that the HMI monitors. Then when the ok button is pressed, the HMI sets-on the %M3900 bit, then the PLC would clear the alarm bit, clear the ok bit %M3900 by writing 0 bool to it, and change the window to normal operation window.
I had sent Maple the HMI project to confirm that nothing in the project would set this bit to 1 besides pressing the "ok" button on the pop-up window, and they had checked the whole project and confirmed that for me (macros and windows and everything else in the project). (Kudos to Maple for their prompt support!)
I had looked everywhere in the ladder logic for the %M3900 bit and there is nowhere a set coil or any other type of coil besides a reset-coil. The way i looked for the coils was by clicking on one of the contacts of %M3900 in the logic and opened the "Reference" tab and checked every single instance the bit is used for a coil.
I also used the same method to look for functions that would change the bit to 1 like a move_bool or move_int, but there is nowhere in the logic where the PLC would set that bit to 1.
The problem only started to happen after i took the PLC and HMI codes from one of our production machines and modified it to add some new features like actuators and their alarms and controls, and loaded them on an old machine acquired from an auction. We have the unmodified code on one other machine that has been in production for a long time and we never had this problem before, and that machine uses the same bit addresses for the ok button and alarm windows, given that i added a few more alarm windows to the HMI code.
The PLC is GE 90-30 with a 374 + CPU and a maple systems HMI 5070LB, i attached a diagram of the PLC cards.
The HMI and PLC are communicating through a 4wire RS-485 and SNP-X protocol.
Here are the solutions i tried so far but with no success:
1- Changed the HMI screen.
2- Changed the Communication serial cable between the HMI and PLC.
3- Changed the PLC backplane.
The way i confirmed the OK button %M3900 was being set to 1 right after the alarm occurs was by adding 2 timers to monitor when the alarm occurs and when the ok button changes to 1, and both timers matched ( I used Tenth of a second timer).
I dont have more theories that i can take action on to explain this, i think maybe there is somewhere in the PLC program that i have not looked and i do not know how to access, or something about the communication structure that i do not understand is causing this to happen.
I am using proficy Machine edition 7.5 for PLC programming.
Is there any way that i can find the source of a command to change a bit from 0 to 1 in this PLC?
or are there any other troubleshooting actions i can take to reveal more information about this error?
if there are any other information i can provide to clarify anything, please let me know and i will post it. i uploaded the PLC program and the HMI project as well.