Help With BG Logic/User Alarms

  • Good Afternoon all,


    We have a 4 robot mig welding system, with 4 R-30IA Fanucs.

    We are adding water flow sensors to the cell, and We'd like to monitor them at all time so we dont accidentally weld without our coolers on.

    I'm having issues trying to get this done in BG logic.


    I figured I could run a simple program in the background that turned on a User Alarm when any of the four water flow sensors were not on, but I kept getting syntax errors.

    I've since read that I can't call a User Alarm in BG logic.


    With this being said, does anyone have any ideas of how I could constantly monitor this?


    Thank you in advance for any help on this.


    PS- We have no PLC on this cell

  • You could use a condition monitor which can then call user alarm. That would work pretty well in this situation.


    Another option is to monitor in BG and drop out the UI hold signal. You must use a flag mapped to the UI signal to do so.


    If you go the BG route would also suggest adding an indicator. Could be as simple as writing to the user screen or wiring in a light, or display on an HMI screen.

  • Another thing, there is an option in Fanuc called Multiple control program using RUN instruction, this is the program that is pretty much like BG logic but easier. it is just running secondary program together with primary program

  • I won't recommend using RUN command for this purpose. You may forget to reset your async program and them you will have alarm during start of the next program. I agree, that you can write additional conditions to escape from loops and else. But I would feel more comfortable and secure if it will be done using BGLogic or condition monitoring as @HawkME mentioned. BG and Monitoring conditions is more traceble during debug or testing.

  • Okay, so here is where I am at.


    I created a conditional job, called COND_WATER that looks like this:


    Code
    WHEN DI[9]= OFF OR DI[14]= OFF, CALL USER_ALM_WATER


    Then, I created a macro called USER_ALM_WATER that looks like this:


    Code
    UALM[1]


    My Main Program for testing looks like this:


    Code
    MONITOR COND_WATER
    CALL TEST_MOTION
    MONITOR END COND_WATER


    The TEST_MOTION program is just a simple motion program I made for testing this.



    I ran the program, turned off the DI[9] and my robot stopped and display the warning, which was great, but then I was able to clear the fault, without turning the sensor back on, and the program continued. After this I tried turning the sensors back on and off multiple times again, but it no longer stops the motion or displays the warning.


    And ideas as to what I need to do to make sure that sensor is back on before restarting, and then also making sure it continues to monitor the input after a restart?


    Thanks again for everyone's assistance.

  • You need to recall your monitor program again. If you want to have strict condition that will block smth with monkeying around your monitor program then BG Logic may be an option to solve it faster.

Advertising from our partners