|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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; |
|