Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

To go to next HMI image use the touch buttons; some of them are interactive.

SCANNER ET200SP FB3 Siemens QR-Scanner control

 

 

 

Netzwerk 1: Scanner CM Start-up

 

IF NOT #Support.CFG_DONE THEN

    #Port_Config("PORT" := #LADDR_HW_IO,

                 PROTOCOL := "HMI SYS".SCAN_RC232C.Protocol,

                 BAUD := "HMI SYS".SCAN_RC232C.Baud,

                 PARITY := "HMI SYS".SCAN_RC232C.Parity,

                 DATABITS := "HMI SYS".SCAN_RC232C.DataBits,

                 STOPBITS := "HMI SYS".SCAN_RC232C.StopBits,

                 FLOWCTRL := "HMI SYS".SCAN_RC232C.FlowCtrl,

                 WAITTIME := "HMI SYS".SCAN_RC232C.WaitTime,

                 MODE := "HMI SYS".SCAN_RC232C.Mode,

                 LINE_PRE := "HMI SYS".SCAN_RC232C.Line_Pre,

                 DONE => #Support.CFG_DONE,

                 ERROR => #Support.ERROR,

                 STATUS => #Support.STATUS);

    #STEP := 0;

ELSIF #Support.CFG_DONE AND NOT #Support.RST_DONE THEN

    #RCV_Reset("PORT" := #LADDR_HW_IO,

               REQ := #Support.REQ,

               DONE => #Support.RST_DONE,

               STATUS => #Support.STATUS,

               ERROR => #Support.ERROR);

    #Support.REQ := TRUE;

END_IF;

 

 

 

Netzwerk 2: Scanner Error acknowledgment

 

IF #ERROR AND #ACK_FLT THEN

    #ERROR := FALSE;

    #Support_AT := #STEP := 0;

    RETURN;

ELSIF #Support_AT.%X8 OR #Support.ERROR THEN

    #ERROR := TRUE;

    RETURN;

END_IF;

 

 

 

Netzwerk 3: Scanner control

 

CASE #STEP OF

    0: // Initialisation to start

        IF #Support_AT <> 0 THEN

            IF #Support_AT = 16#1f THEN

                #Support_AT := 0;

                RETURN;

            END_IF;

        ELSIF #LB_1 AND #Support.CFG_DONE AND #Support.RST_DONE THEN

            #STEP := 1;

            #Support_AT.%X0 := TRUE;

            #Support.REQ := FALSE;

        END_IF;

       

    1: // Query moving towards scanning position

        IF #Support_AT.%X0 AND #Support_AT.%X1 THEN

            #Support_AT.%X2 := #ENABLE;

        ELSIF  #Support_AT.%X0 AND #LB_2 THEN

            #Support_AT.%X1 := TRUE;

        END_IF;

        IF #Support_AT.%X2 THEN

            #RCV_P2P("PORT" := #LADDR_HW_IO,

                     BUFFER := #PUFFER,

                     NDR => #Support.NDR,

                     ERROR => #Support.ERROR,

                     STATUS => #Support.STATUS,

                     LENGTH => #Support.LENGTH);

        END_IF;

        IF #Support.NDR THEN

            #STEP := 2;

        END_IF;

       

    2: // Checking if Filter has been scanned

        IF #Support.LENGTH > 0 AND #Support.STATUS <> 16#7002 THEN

            #Support_AT.%X3 := TRUE;

            #STEP := 3;

        ELSE

            #STEP := 0;

            #Support_AT.%X8 := TRUE;

        END_IF;

       

    3: // Query moving away from scanning position

        IF NOT #ENABLE THEN

            IF NOT #LB_1 THEN

                #Support_AT.%X4 := NOT #LB_2;

                IF #Support_AT = 16#1f THEN

                    #STEP := 0;

                END_IF;

            END_IF;

        END_IF;

END_CASE;