Pulse command

  • I recently created a AutoStart program to monitor certain IO events and its been working well. One thing I noticed the other day is I had forgot to enable the system switch to enable the AutoStart feature (oops, rookie mistake) which I promptly corrected. But that got me thinking about a previous post I read on here about the PULSE command. I seem to remember reading that someone was using a pulsed output as a "heart beat" from the robot, monitored by the plc. If you don't see that output turning on and off then trigger an alarm to alert of a communication interruption. I believe this will be sufficient, I was also planning on setting the time base to 3 sec. Thought or suggestions on best practices?

  • If the ethernet communication between the robot and PLC is working. This autostart is just writing to outputs used to trigger supervisory alarms. They don't stop the process in any way, just aid in troubleshooting physical problems.

  • Are you using a GSD file for the robot in the PLC program? If the robot is on profinet communication, then you can use some profinet diagnostics in orfer to check If the device is still running or not.


    Also, in the robot program you can check If the autostart program is running or not with task function. It is very usefull If you need to exchange information between autostart program and motion program.

  • Are you using a GSD file for the robot in the PLC program? If the robot is on profinet communication, then you can use some profinet diagnostics in orfer to check If the device is still running or not.


    Also, in the robot program you can check If the autostart program is running or not with task function. It is very usefull If you need to exchange information between autostart program and motion program.

    No the OEM just has it mapped to a generic ethernet module and write to a I/O array. Nothing actually monitors the connection that I'm aware of. As far as Task Function's, I could read up on those in the Ops manual right? Right now I'm just writing to networked outputs to signal if the robot is Held, if a solenoid is enabled, or if the collision sensor is off. These outputs are used to trigger alarm bit tags in the plc so that there is a trackable alarm on the HMI to "alert" the operator or skilled tradesmen of those events. It in now way interrupts the equipment running.

  • You could use the EIPSTATUS command to monitor on the robot to report adapter/scanner status.

    Within the PLC, surely there is diagnostic monitoring that can do the same.

    Negating any need for any heartbeat exchange.


    PULSE only controls the ON period, not the OFF period as a command.

    The opposite of PULSE is the DLYSIG, which delays the turning ON of the specified signal.

    So if used in a continuous PC Task, you will need to control the OFF period too.

    Especially if you are synchronising a PLC to read the ON and OFF periods.


    A simple heartbeat example is in the AS Manual, I posted a variant of this in a previous post:

    - Replace the internal signal with a relevant fieldbus output.

    - Replace the PCSCAN value with 3.

    - This of course requires to be running all the time for the PLC to monitor for.


    .PROGRAM heartbeat.pc()

    PCSCAN 1; Sets the scan time to 1 second.

    IF SIG(2256) THEN

    SIGNAL -2256

    ELSE

    SIGNAL 2256

    END

    .END


    This of course is not necessarily practical as this is utilizing a complete PC Task just for this function.

    But you can add more instructions to the above and still maintain an 'x' sec duration.

    You would need to test this of course, but will provide a definitive ON and OFF duration for the PLC to monitor for.


    The other aspect to consider (often overlooked is the RUNMASK command).

    RUNMASK masks the signal(s) to only be controlled from any program when it's executing.

    So simply applied, if you turn the signal on at the start of the PC Task......you know it's running.

  • You could use the EIPSTATUS command to monitor on the robot to report adapter/scanner status.

    Within the PLC, surely there is diagnostic monitoring that can do the same.

    Negating any need for any heartbeat exchange.

    I cant find anything in the E-series AS Language manual about EIPSTATUS? Am I looking in the wrong manual?

    The other aspect to consider (often overlooked is the RUNMASK command).

    RUNMASK masks the signal(s) to only be controlled from any program when it's executing.

    So simply applied, if you turn the signal on at the start of the PC Task......you know it's running.

    Looking at the description of RUNMASK, I appreciate the suggestion but I don't think it will work with the alarm events I'm trying to monitor/send to the plc. Might come in handy at a later date though! Also thanks for clarifying the function of the PULSE command.

  • I cant find anything in the E-series AS Language manual about EIPSTATUS? Am I looking in the wrong manual?

    That doesn't surprise me.

    In the majority of cases, specific option commands are not usually supplied in the standard AS manual, only the option manual relative to it.

    You'll find it in the General Fieldbus Manual in the Ethernet/IP section.

  • For sure, thank you for the suggestion. Unfortunately I’ve seen where a signals stay “high” after a connection was lost, hence the desire to create a heart beat situation.

Advertising from our partners