Click or drag to resize

4.3.4.2 Pre-Configuration IPG Interface G

  • The output Alarm signal (J3 pin 26) to the SP-ICE-3 Card will be activated whenever any of a pre-configured set of patterns of active alarm inputs is recognised.

    • On the SP-ICE-3 Card the Alarm signal will cause the currently running job to be aborted.

  • Do not enable VIO_out 5V output on J1 pin 17 by by writing a 1 to PortD.4.

    • Pin 17 is marked as reserved in the laser manual.

  • Note that the laser requires a signal on J1 pin 13 (Reserved Output_2) to reset an alarm state.

    • Pin 13 can be controlled by writing to PortD.19.

  • On connector J1 pin 10 is permanently connected to GND.

    • The laser manual states that no connection is allowed.

  • The laser's PPI (parallel peripheral interface) can be enabled by enabling the Reserved_Output_1 J1 Pin 24.

    • Reserved_Output_1 can be controlled by writing to PortD.21.

  • The laser's SPI (serial peripheral interface) can not be used because J1 pin 25 is required but not connected to the SP-ICE-3 Card.

Pre-configured alarm input evaluation.

The Alarm1..Alarm4 input signals from the laser are used to evaluate the state of the laser, as shown in the YLP Type G Alarm Table, below:

Column(s)

Description

Alarm1..Alarm4

The states of the alarm input signals from the laser.

Priority and Name

As shown in the IPG YLP Type G manual.

SP-ICE-3 Job

Whether the job running on the SP-ICE-3 card will be aborted in that alarm state.

In other words, whether the output Alarm signal will be activated.

LED columns

The state of the Yellow Alarm (D10) and Red System Alarm (D11) LEDs on the bracket, and the Green LED D1 on the adapter's PCB.

Note that the Yellow Alarm LED (D10) will be overridden to blink whenever the shutter J2 on the IPG-comp interface is open.

YLP Type G Alarm Table

Alarm4
(Pin12)

Alarm3
(Pin11)

Alarm2
(Pin21)

Alarm1
(Pin16)

Priority

Name

SP-ICE-3 Job

Yellow Alarm
LED D10

Red System Alarm
LED D11

Green
LED D1

LOW

LOW

LOW

LOW

4

Temperature alarm

Abort

ON

ON

OFF

LOW

LOW

LOW

HIGH

3

Back reflection alarm

Abort

ON

ON

OFF

LOW

LOW

HIGH

LOW

12

Laser is waiting for emission

Run

OFF

OFF

ON

LOW

LOW

HIGH

HIGH

2

System alarm

Abort

ON

ON

OFF

LOW

HIGH

LOW

LOW

5

Fiber alarm

Abort

ON

ON

OFF

LOW

HIGH

LOW

HIGH

9

Safety alarm

Abort

ON

OFF

OFF

LOW

HIGH

HIGH

LOW

11

Laser is not ready for emission

Run

OFF

OFF

OFF

LOW

HIGH

HIGH

HIGH

0

reserved

Abort

ON

ON

OFF

HIGH

LOW

LOW

LOW

1

Critical alarm

Abort

ON

ON

OFF

HIGH

LOW

LOW

HIGH

7

Hot stop alarm

Abort

ON

ON

OFF

HIGH

LOW

HIGH

LOW

10

Main power supply is OFF

Run

OFF

OFF

OFF

HIGH

LOW

HIGH

HIGH

13

Emission ON

Run

OFF

OFF

ON

HIGH

HIGH

LOW

LOW

8

reserved

Abort

ON

OFF

OFF

HIGH

HIGH

LOW

HIGH

6

HK alarm

Abort

ON

ON

OFF

HIGH

HIGH

HIGH

LOW

n.a.

unused

Abort

ON

OFF

OFF

HIGH

HIGH

HIGH

HIGH

n.a.

unused

Abort

ON

OFF

OFF

Using IPP to send a command with a byte parameter to an IPG Type G laser
C#
class IpgTypeGLaser
{

    private ushort _ippToggle = 0x0000;

    private void AppendValue(CommandList list, byte payload)
    {
        // Arrange payload
        ushort value = payload;
        // Move the 8 bit payload to the upper bits because in the 16 bit mode IPG Type G only uses the eight
        // most significant bits.
        value <<= 8;
        value |= _ippToggle;

        // Append payload and sleep
        list.AppendPower(value);
        list.AppendSleep(10.0d);

        // toggle the LSB
        // The toggling is necessary because the SP-ICE-3 will ignore consecutive writes if the data does not change.
        // Therefore the latch signal would not be generated.
        // To circumvent that, we toggle the LSB of the 16 bit data which is not used by the IPG Type G laser.
        // So the data changes every time.
        _ippToggle ^= 0x0001;
    }
    public void ipgTypegIppSendCommandByte(ClientAPI client, byte cmdc, byte para)
    {
        // Save the original laser configuration so it can restored after sending the ipp command is done
        LaserConfig originalLaserConfig = client.Laser.GetConfig();

        // Save the original command list
        CommandList originalList = client.List.Get(0);

        try
        {
            // Make a copy of the original laser configuration and modify it to our needs
            LaserConfig ippLaserConfig = client.Laser.GetConfig();
            // Disable the Power Calibration so the numbers we send to the laser are not modified by that
            ippLaserConfig.EnablePowerCalibration = false;
            // Disable the Field Position Power Correction so the numbers we send to the laser are not modified by that
            ippLaserConfig.EnablePowerCorrection = false;
            // Disable the Velocity Power Correction so the numbers we send to the laser are not modified by that
            ippLaserConfig.EnableVelocityCorrection = false;
            // Select the 16 bit mode although we only send 8 bits. We need to toggle the LSB
            // to force the latch signal to be sent even if we send the same data twice
            ippLaserConfig.HotPowerTarget = PowerTarget.Digital16Bit;
            // Set the Power Scale to 1.0 to avoid modification of the values we want to send
            ippLaserConfig.PowerScale = 1.0;
            // Set the timing of the latch signal
            ippLaserConfig.PowerWriteDelay = 4.0;
            ippLaserConfig.PowerWriteWidth = 5.0;

            // Write the laser configuration to the SP-ICE-3
            client.Laser.SetConfig(ippLaserConfig);

            // Assemble a list which sends the command and parameter via the IPP to the IPG Type G laser
            CommandList list = new CommandList();

            // Enable IPP by setting IPP Enable to 1 (Pin24 - Reserved_Output_1 - PortD.21)
            list.AppendGpioValue(IOPort.PortD, PinAction.Set, 1 << 21);
            // Wait for 10us (IPG Type G specifications tells to wait at least 1us)
            list.AppendSleep(10.0d);
            // Send the Command Bytes
            AppendValue(list, 0xA5); // Message prefix
            AppendValue(list, cmdc); // Command code
            AppendValue(list, para); // Parameter
            AppendValue(list, 0x00); // Fill rest of DWORD with zeros
            AppendValue(list, 0x00); // Fill rest of DWORD with zeros
            AppendValue(list, 0x00); // Fill rest of DWORD with zeros

            // Wait for 10us (IPG Type G specifications tells to wait at least 1us)
            list.AppendSleep(10.0d);
            // Disable IPP by setting IPP Enable to 0 (Pin24 - Reserved_Output_1 - PortD.21)
            list.AppendGpioValue(IOPort.PortD, PinAction.Clear, 1 << 21);

            // Wait for 20ms (IPG Type G specifications tells the Set APD mode Index can take up to 10ms)
            list.AppendSleep(20000.0d);

            // Set the laser power to zero
            list.AppendPower(0);

            // Send the list with the IPP command sequence to the SP-ICE-3
            client.List.Set(0, list);
            // Execute the list
            int listIDin = 0;
            client.List.Execute(listIDin);
            // Wait for the list execution to complete
            int? listID;
            client.List.WaitForListDone(out listID, 1000);
        }
        catch (Exception ex)
        {
            throw (ex);
        }
        finally
        {
            // Restore the original command list
            client.List.Set(0, originalList);

            // Restore the original laser configuration
            client.Laser.SetConfig(originalLaserConfig);
        }

    }

}
IpgTypeG_IPP.png not found.