Started fixes for HMI
This commit is contained in:
@@ -17,6 +17,7 @@ VAR
|
||||
_fbCoolplate : FB_Coolplate;
|
||||
_fbHVTesterHot : FB_HVTester;
|
||||
_fbHVTesterCold : FB_HVTester;
|
||||
//_fbInput : FB_Input;
|
||||
//_fbNOK : FB_NOK;
|
||||
//_fbTrayFeederOutput : FB_TrayFeeder(sIPAddr := '192.168.1.11', udiPort := 5000);
|
||||
|
||||
@@ -26,7 +27,6 @@ VAR
|
||||
// =======================
|
||||
|
||||
_xReleaseAlarms : BOOL;
|
||||
_xConfirmAlarms : BOOL;
|
||||
_stRobotCmd : ST_PMLc;
|
||||
_stRobotStatus : ST_PMLs;
|
||||
_stRobotAdmin : ST_PMLa;
|
||||
@@ -35,14 +35,6 @@ VAR
|
||||
stCamResult AT %I* : ST_TrayFeederCamPosData;
|
||||
_rtStopRobotFromSafety : R_TRIG;
|
||||
|
||||
// commands
|
||||
_xClear : BOOL;
|
||||
_xReset : BOOL;
|
||||
_xStart : BOOL;
|
||||
_xHold : BOOL;
|
||||
_xUnhold : BOOL;
|
||||
_xStop : BOOL;
|
||||
|
||||
_xStartCycle : BOOL;
|
||||
|
||||
_xStartTrigger : BOOL;
|
||||
@@ -56,36 +48,6 @@ END_VAR
|
||||
<ST><![CDATA[// Data from safety
|
||||
_xReleaseAlarms := PRG_Safety.xEStopOk;
|
||||
|
||||
IF _xClear THEN
|
||||
_xClear := FALSE;
|
||||
_fbRobot.M_CmdClear();
|
||||
END_IF
|
||||
|
||||
IF _xReset THEN
|
||||
_xReset := FALSE;
|
||||
_fbRobot.M_CmdReset();
|
||||
END_IF
|
||||
|
||||
IF _xStart THEN
|
||||
_xStart := FALSE;
|
||||
_fbRobot.M_CmdStart();
|
||||
END_IF
|
||||
|
||||
IF _xHold THEN
|
||||
_xHold := FALSE;
|
||||
_fbRobot.M_CmdHold();
|
||||
END_IF
|
||||
|
||||
IF _xUnhold THEN
|
||||
_xUnhold := FALSE;
|
||||
_fbRobot.M_CmdUnhold();
|
||||
END_IF
|
||||
|
||||
IF _xStop THEN
|
||||
_xStop := FALSE;
|
||||
_fbRobot.M_CmdStop();
|
||||
END_IF
|
||||
|
||||
_rtStopRobotFromSafety(CLK := PRG_Safety.xStopRobot);
|
||||
IF _rtStopRobotFromSafety.Q THEN
|
||||
_stRobotCmd.eCntrlCmd := E_PackMLCmd.STOP;
|
||||
@@ -100,7 +62,7 @@ _fbRobot(
|
||||
stJobParams := _stRobotJobParams,
|
||||
stUnitFeedbacks := _stUnitFeedbacks,
|
||||
xReleaseAlarms:= _xReleaseAlarms,
|
||||
xConfirmAlarms:= GVL_SCADA.xErrAck,
|
||||
xConfirmAlarms:= GVL_SCADA.stMachine.stConfirmAlarmsBtn.xRequest,
|
||||
stStatus => _stRobotStatus,
|
||||
stAdmin => _stRobotAdmin,
|
||||
stHMIInterface := GVL_SCADA.stMachine.stKukaRobot);
|
||||
@@ -117,42 +79,40 @@ _fbEtcher1(
|
||||
xOpenDoor:= GVL_SCADA.xOpenAllChambers,
|
||||
xOpenChuckClamp := GVL_SCADA.xOpenChuckClampEtcher1,
|
||||
xReleaseAlarms := _xReleaseAlarms,
|
||||
xConfirmAlarms := GVL_SCADA.xErrAck,
|
||||
xConfirmAlarms := GVL_SCADA.stMachine.stConfirmAlarmsBtn.xRequest,
|
||||
stHMIInterface := GVL_SCADA.stMachine.stEtcher1);
|
||||
|
||||
_fbEtcher2(
|
||||
xOpenDoor:= GVL_SCADA.xOpenAllChambers,
|
||||
xOpenChuckClamp := GVL_SCADA.xOpenChuckClampEtcher2,
|
||||
xReleaseAlarms := _xReleaseAlarms,
|
||||
xConfirmAlarms := GVL_SCADA.xErrAck,
|
||||
xConfirmAlarms := GVL_SCADA.stMachine.stConfirmAlarmsBtn.xRequest,
|
||||
stHMIInterface := GVL_SCADA.stMachine.stEtcher2);
|
||||
|
||||
_fbTrayFeederInput(
|
||||
stCommand:= ,
|
||||
xReleaseAlarms := _xReleaseAlarms,
|
||||
xConfirmAlarms := GVL_SCADA.xErrAck,
|
||||
stStatus=> GVL_SCADA.stTrayFeederInputState,
|
||||
stAdmin=> GVL_SCADA.stTRayFeederInputAdmin,
|
||||
xConfirmAlarms := GVL_SCADA.stMachine.stConfirmAlarmsBtn.xRequest,
|
||||
stHMIInterface := GVL_SCADA.stMachine.stTrayFeederIn);
|
||||
|
||||
_fbTrayFeederInput(
|
||||
stCommand:= ,
|
||||
xReleaseAlarms := _xReleaseAlarms,
|
||||
xConfirmAlarms := GVL_SCADA.xErrAck,
|
||||
stStatus=> GVL_SCADA.stTrayFeederInputState,
|
||||
stAdmin=> GVL_SCADA.stTRayFeederInputAdmin,
|
||||
stHMIInterface := GVL_SCADA.stMachine.stTrayFeederOut);
|
||||
// _fbTrayFeederOut(
|
||||
// stCommand:= ,
|
||||
// xReleaseAlarms := _xReleaseAlarms,
|
||||
// xConfirmAlarms := GVL_SCADA.stMachine.stConfirmAlarmsBtn.xRequest,
|
||||
// stStatus=> GVL_SCADA.stTrayFeederInputState,
|
||||
// stAdmin=> GVL_SCADA.stTRayFeederInputAdmin,
|
||||
// stHMIInterface := GVL_SCADA.stMachine.stTrayFeederOut);
|
||||
|
||||
_fbHotplate(stHMIInterface := GVL_SCADA.stMachine.stHotplate);
|
||||
|
||||
_fbCoolplate(stHMIInterface := GVL_SCADA.stMachine.stCoolplate);
|
||||
|
||||
_fbAligner(stCommand:= , stStatus=> , stAdmin=> , xConfirmAlarms:= GVL_SCADA.xErrAck, stHMIInterface := GVL_SCADA.stMachine.stAligner);
|
||||
_fbAligner(stCommand:= , stStatus=> , stAdmin=> , xConfirmAlarms:= GVL_SCADA.stMachine.stConfirmAlarmsBtn.xRequest, stHMIInterface := GVL_SCADA.stMachine.stAligner);
|
||||
|
||||
|
||||
// Call safety program
|
||||
PRG_Safety(
|
||||
xConfirmAlarms := GVL_SCADA.xErrAck,
|
||||
xConfirmAlarms := GVL_SCADA.stMachine.stConfirmAlarmsBtn.xRequest,
|
||||
xRobotStopped := (_stRobotStatus.eStateCurrent <> E_PackMLState.EXECUTE));
|
||||
|
||||
// Handle robot cmds
|
||||
@@ -249,11 +209,7 @@ END_IF
|
||||
xTriggerCamera := _tofTriggerTime.Q;
|
||||
|
||||
// Reset alarm reset request
|
||||
GVL_SCADA.xErrAck := FALSE;
|
||||
|
||||
IF _xConfirmAlarms THEN
|
||||
_xConfirmAlarms := FALSE;
|
||||
END_IF]]></ST>
|
||||
GVL_SCADA.stMachine.stConfirmAlarmsBtn.xRequest := FALSE;]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="M_HandleRobotCmd" Id="{14934aaa-b667-4ddb-915d-1d84e8eb799d}">
|
||||
<Declaration><![CDATA[METHOD PRIVATE M_HandleRobotCmd
|
||||
|
||||
@@ -79,6 +79,9 @@ VAR
|
||||
_fbRobot : FB_Mecademics;
|
||||
|
||||
xDisableVacuum AT %Q* : BOOL;
|
||||
|
||||
// Internals
|
||||
_xOpenChuckClamp : BOOL;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
@@ -100,8 +103,11 @@ ELSE
|
||||
_tpEjectChuck(IN := FALSE);
|
||||
END_IF
|
||||
|
||||
// Todo bessere implementierung finden
|
||||
_xOpenChuckClamp := xOpenChuckClamp OR stHMIInterface.stChuckUnlockCmd.xRequest;
|
||||
|
||||
_fbUnlockLeft(
|
||||
xAutomaticOpen:= xOpenChuckClamp,
|
||||
xAutomaticOpen:= _xOpenChuckClamp,
|
||||
xReleaseErrors:= xReleaseAlarms,
|
||||
stValveConfig:= _stValveUnlockLeftCfg,
|
||||
xReleaseManualMode:= xReleaseManualMode,
|
||||
@@ -109,7 +115,7 @@ _fbUnlockLeft(
|
||||
stHMIInterface:= stHMIInterface.stChuckUnlockLeft);
|
||||
|
||||
_fbUnlockRight(
|
||||
xAutomaticOpen:= xOpenChuckClamp,
|
||||
xAutomaticOpen:= _xOpenChuckClamp,
|
||||
xReleaseErrors:= xReleaseAlarms,
|
||||
stValveConfig:= _stValveUnlockRightCfg,
|
||||
xReleaseManualMode:= xReleaseManualMode,
|
||||
|
||||
@@ -26,8 +26,7 @@ VAR
|
||||
_xDone : BOOL;
|
||||
_xError : BOOL;
|
||||
_iDS : INT;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
END_VAR]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[SUPER^(stPackMLHMIInterface := stPackMLHMIInterface);
|
||||
|
||||
@@ -257,6 +256,7 @@ END_VAR]]></Declaration>
|
||||
M_CmdAbort();
|
||||
END_IF
|
||||
|
||||
|
||||
// Set wrf
|
||||
32:
|
||||
M_ExecuteCmd(E_Meca_Cmds.SET_WRF, 163.5, -34.79, 465, -180, 0, 180, xDone => xExecDone, xError => xExecError);
|
||||
@@ -271,7 +271,8 @@ END_VAR]]></Declaration>
|
||||
|
||||
// Set trf
|
||||
33:
|
||||
M_ExecuteCmd(E_Meca_Cmds.SET_TRF, 0, 0, 91, 0, 180, 90, xDone => xExecDone, xError => xExecError);
|
||||
// SetTrf(32.38 , 27.52, 91, 0, 180, -90)
|
||||
M_ExecuteCmd(E_Meca_Cmds.SET_TRF, 32.38, 27.52, 91, 0, 180, -90, xDone => xExecDone, xError => xExecError);
|
||||
|
||||
IF xExecDone THEN
|
||||
_iSSM := 34;
|
||||
|
||||
@@ -4,15 +4,31 @@
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_Input EXTENDS FB_PackMLGeneric
|
||||
VAR_INPUT
|
||||
stRecipe : ST_Input_Recipe;
|
||||
|
||||
xReleaseAlarms : BOOL;
|
||||
xConfirmAlarms : BOOL;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
stHMIInterface : ST_HMI_Input;
|
||||
END_VAR
|
||||
VAR
|
||||
_fbTrayFeeder : FB_TrayFeeder(sIPAddr := '192.168.1.10', udiPort := 5000);
|
||||
_fbCamera : FB_KeyenceVS;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
<ST><![CDATA[// Call components
|
||||
// ===============
|
||||
// _fbTrayFeeder(
|
||||
// stHMIInterface:= stHMIInterface.stTrayFeeder,
|
||||
// xReleaseAlarms:= xReleaseAlarms,
|
||||
// xConfirmAlarms:= xConfirmAlarms);
|
||||
//
|
||||
// _fbCamera(
|
||||
// xReleaseAlarms:= xReleaseAlarms,
|
||||
// xConfirmAlarms:= xConfirmAlarms);]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="FB_init" Id="{bbceb3b3-f8a1-472a-b29a-eebb04390aa6}">
|
||||
<Declaration><![CDATA[//FB_Init ist immer implizit verfügbar und wird primär für die Initialisierung verwendet.
|
||||
|
||||
388
PLC/01_Stationen/Input/FB_KeyenceVS.TcPOU
Normal file
388
PLC/01_Stationen/Input/FB_KeyenceVS.TcPOU
Normal file
@@ -0,0 +1,388 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_KeyenceVS" Id="{2ea89630-4476-43f8-991b-76955c0d8baf}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_KeyenceVS
|
||||
VAR_INPUT
|
||||
xReleaseAlarms : BOOL;
|
||||
xConfirmAlarms : BOOL;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
xBusy : BOOL;
|
||||
xDone : BOOL;
|
||||
xError : BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
// ======
|
||||
// Inputs
|
||||
// ======
|
||||
i_xTriggerRdy AT %I* : BOOL;
|
||||
i_xTriggerAck AT %I* : BOOL;
|
||||
i_xResultRdy AT %I* : BOOL;
|
||||
i_xRunStatus AT %I*: BOOL;
|
||||
i_xCmdComplete AT %I* : BOOL;
|
||||
i_xCmdError AT %I* : BOOL;
|
||||
i_xCmdRdy AT %I* : BOOL;
|
||||
i_xProgLoadComplete AT %I* : BOOL;
|
||||
i_xError0State AT %I* : BOOL;
|
||||
i_xError1State AT %I* : BOOL;
|
||||
i_udiError0Code AT %I* : UDINT;
|
||||
i_udiError1Code AT %I* : UDINT;
|
||||
i_udiPrgNr AT %I* : UDINT;
|
||||
i_udiTotalCnt AT %I* : UDINT;
|
||||
i_abyResult128 AT %I* : ARRAY[0..127] OF BYTE;
|
||||
|
||||
// =======
|
||||
// Outputs
|
||||
// =======
|
||||
o_xTrigger AT %Q* : BOOL;
|
||||
o_xResultHandshakeEnable AT %Q* : BOOL;
|
||||
o_xResultAck AT %Q* : BOOL;
|
||||
o_xGotoRun AT %Q* : BOOL;
|
||||
o_xGotoSetting AT %Q* : BOOL;
|
||||
o_xError0Clear AT %Q* : BOOL;
|
||||
o_xError1Clear AT %Q* : BOOL;
|
||||
o_xCmdRequest AT %Q* : BOOL;
|
||||
o_xPrgLoadExec AT %Q* : BOOL;
|
||||
o_udiPrgNr AT %Q* : UDINT;
|
||||
|
||||
// ======
|
||||
// Alarms
|
||||
// ======
|
||||
_fbError0Alarm : FB_AlarmMessage(stEventEntry := TC_EVENTS.KeyenceVS.Error0, xWithConfirmation := TRUE);
|
||||
_rtError0 : R_TRIG;
|
||||
|
||||
_fbError1Alarm : FB_AlarmMessage(stEventEntry := TC_EVENTS.KeyenceVS.Error1, xWithConfirmation := TRUE);
|
||||
_rtError1 : R_TRIG;
|
||||
|
||||
// ==============
|
||||
// Ouputs buffers
|
||||
// ==============
|
||||
_xBusy : BOOL;
|
||||
_xDone : BOOL;
|
||||
_xError : BOOL;
|
||||
|
||||
// =============
|
||||
// State machine
|
||||
// =============
|
||||
// State of state machine
|
||||
_uiState : UINT;
|
||||
|
||||
// Command to start loading a program with defined number
|
||||
_xLoadProgNr : BOOL;
|
||||
// Program number to load
|
||||
_udiProgNrToLoad : UDINT;
|
||||
|
||||
// Command to change camera into run mode
|
||||
_xSwitchToRunMode : BOOL;
|
||||
|
||||
// Command to change to config mode
|
||||
_xSwitchToConfigMode : BOOL;
|
||||
|
||||
// Trigger a picture
|
||||
_xTrigger : BOOL;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[// ==============
|
||||
// Alarm handling
|
||||
// ==============
|
||||
// If error 0 occurs, add error code to alarm message
|
||||
_rtError0(CLK := i_xError0State);
|
||||
IF _rtError0.Q THEN
|
||||
_fbError0Alarm.Arguments.Clear().AddUDInt(i_udiError0Code);
|
||||
END_IF
|
||||
|
||||
_fbError0Alarm(
|
||||
xActive:= i_xError0State,
|
||||
xRelease:= xReleaseAlarms,
|
||||
xAcknowledge:= xConfirmAlarms);
|
||||
|
||||
IF _fbError0Alarm.Active THEN
|
||||
_xError := TRUE;
|
||||
END_IF
|
||||
|
||||
// If error 1 occurs, add error code to alarm message
|
||||
_rtError1(CLK := i_xError1State);
|
||||
IF _rtError1.Q THEN
|
||||
_fbError1Alarm.Arguments.Clear().AddUDInt(i_udiError1Code);
|
||||
END_IF
|
||||
|
||||
_fbError1Alarm(
|
||||
xActive:= i_xError1State,
|
||||
xRelease:= xReleaseAlarms,
|
||||
xAcknowledge:= xConfirmAlarms);
|
||||
|
||||
IF _fbError1Alarm.Active THEN
|
||||
_xError := TRUE;
|
||||
END_IF
|
||||
|
||||
|
||||
// =============
|
||||
// State machine
|
||||
// =============
|
||||
CASE _uiState OF
|
||||
// Idle
|
||||
0:
|
||||
// Load program number
|
||||
IF _xLoadProgNr THEN
|
||||
_xLoadProgNr := FALSE;
|
||||
_uiState := 10;
|
||||
END_IF
|
||||
|
||||
IF _xSwitchToRunMode THEN
|
||||
_xSwitchToRunMode := FALSE;
|
||||
_uiState := 20;
|
||||
END_IF
|
||||
|
||||
IF _xSwitchToConfigMode THEN
|
||||
_xSwitchToConfigMode := FALSE;
|
||||
_uiState := 30;
|
||||
END_IF
|
||||
|
||||
IF _xTrigger THEN
|
||||
_xTrigger := FALSE;
|
||||
_uiState := 40;
|
||||
END_IF
|
||||
|
||||
// Load program number
|
||||
10:
|
||||
o_udiPrgNr := _udiProgNrToLoad;
|
||||
o_xPrgLoadExec := TRUE;
|
||||
|
||||
IF i_xProgLoadComplete THEN
|
||||
o_xPrgLoadExec := FALSE;
|
||||
_xDone := TRUE;
|
||||
_xBusy := FALSE;
|
||||
_uiState := 0;
|
||||
END_IF
|
||||
|
||||
IF _xError THEN
|
||||
_uiState := 900;
|
||||
END_IF
|
||||
|
||||
|
||||
// Switch to run mode
|
||||
20:
|
||||
o_xGotoRun := TRUE;
|
||||
o_xGotoSetting := FALSE;
|
||||
|
||||
IF i_xRunStatus THEN
|
||||
o_xGotoRun := FALSE;
|
||||
_xDone := TRUE;
|
||||
_xBusy := FALSE;
|
||||
_uiState := 0;
|
||||
END_IF
|
||||
|
||||
IF _xError THEN
|
||||
_uiState := 900;
|
||||
END_IF
|
||||
|
||||
|
||||
// Switch to config mode
|
||||
30:
|
||||
o_xGotoSetting := TRUE;
|
||||
o_xGotoRun := FALSE;
|
||||
|
||||
IF (NOT i_xRunStatus) THEN
|
||||
o_xGotoRun := FALSE;
|
||||
_xDone := TRUE;
|
||||
_xBusy := FALSE;
|
||||
_uiState := 0;
|
||||
END_IF
|
||||
|
||||
IF _xError THEN
|
||||
_uiState := 900;
|
||||
END_IF
|
||||
|
||||
// Trigger
|
||||
40:
|
||||
o_xTrigger := TRUE;
|
||||
|
||||
IF i_xTriggerAck THEN
|
||||
o_xTrigger := FALSE;
|
||||
_uiState := 41;
|
||||
END_IF
|
||||
|
||||
IF _xError THEN
|
||||
_uiState := 900;
|
||||
END_IF
|
||||
|
||||
// Wait for result
|
||||
41:
|
||||
IF i_xResultRdy THEN
|
||||
o_xResultAck := TRUE;
|
||||
_uiState := 42;
|
||||
END_IF
|
||||
|
||||
IF _xError THEN
|
||||
_uiState := 900;
|
||||
END_IF
|
||||
|
||||
// Wait for result ack done
|
||||
42:
|
||||
IF (NOT i_xResultRdy) THEN
|
||||
o_xResultAck := FALSE;
|
||||
_uiState := 0;
|
||||
END_IF
|
||||
|
||||
IF _xError THEN
|
||||
_uiState := 900;
|
||||
END_IF
|
||||
|
||||
// Error state
|
||||
900:
|
||||
_xError := TRUE;
|
||||
_xDone := FALSE;
|
||||
_xBusy := FALSE;
|
||||
|
||||
_uiState := 901;
|
||||
|
||||
// Wait for error ack
|
||||
901:
|
||||
IF xConfirmAlarms THEN
|
||||
_xError := FALSE;
|
||||
_uiState := 0;
|
||||
END_IF
|
||||
END_CASE
|
||||
|
||||
|
||||
// =============================
|
||||
// Copy output buffers to output
|
||||
// =============================
|
||||
xBusy := _xBusy;
|
||||
xDone := _xDone;
|
||||
xError := _xError;
|
||||
]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="M_GetResult128" Id="{80736d9c-5f6b-4185-a62e-60e64078b87d}">
|
||||
<Declaration><![CDATA[// Get result data from 128 Byte input
|
||||
METHOD M_GetResult128 : BOOL
|
||||
VAR_INPUT
|
||||
// Start index in result byte array
|
||||
uiIdx : UINT;
|
||||
// Target buffer
|
||||
pTarget : PVOID;
|
||||
// Target buffer size
|
||||
udiSize : UDINT := 0;
|
||||
|
||||
// Result of copy
|
||||
udiResult : UDINT;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Check index size
|
||||
IF (uiIdx < 0)
|
||||
OR (uiIdx > 127) // Index to big
|
||||
OR ((uiIdx + udiSize) > 128) // Start index and size will read over the input array bounds
|
||||
OR udiSize = 0 // No target size given
|
||||
OR pTarget = 0 // No valid target pointer
|
||||
THEN
|
||||
M_GetResult128 := FALSE;
|
||||
RETURN;
|
||||
END_IF
|
||||
|
||||
// Copy data
|
||||
udiResult := MEMCPY(destAddr := pTarget, srcAddr := ADR(i_abyResult128[uiIdx]), n := udiSize);
|
||||
|
||||
// Check if copy was successful
|
||||
IF udiResult <> udiSize THEN
|
||||
M_GetResult128 := FALSE;
|
||||
ELSE
|
||||
M_GetResult128 := TRUE;
|
||||
END_IF]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_SetProgramNr" Id="{61381180-0979-4559-a38e-7a94f647a142}">
|
||||
<Declaration><![CDATA[METHOD M_SetProgramNr : BOOL
|
||||
VAR_INPUT
|
||||
udiPrgNr : UDINT;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[IF _xBusy OR _xError THEN
|
||||
M_SetProgramNr := FALSE;
|
||||
RETURN;
|
||||
END_IF
|
||||
|
||||
// Set Prg nr
|
||||
_udiProgNrToLoad := udiPrgNr;
|
||||
|
||||
// Start command
|
||||
_xLoadProgNr := TRUE;
|
||||
|
||||
// Set busy
|
||||
_xBusy := TRUE;
|
||||
_xDone := FALSE;
|
||||
|
||||
// Report command result
|
||||
M_SetProgramNr := TRUE;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_SwitchToConfig" Id="{97bb226a-9857-448a-8000-4f7ffa070011}">
|
||||
<Declaration><![CDATA[METHOD M_SwitchToConfig : BOOL
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[IF _xBusy OR _xError THEN
|
||||
M_SwitchToConfig := FALSE;
|
||||
RETURN;
|
||||
END_IF
|
||||
|
||||
// Start command
|
||||
_xSwitchToConfigMode := TRUE;
|
||||
|
||||
// Set busy
|
||||
_xBusy := TRUE;
|
||||
_xDone := FALSE;
|
||||
|
||||
// Report command result
|
||||
M_SwitchToConfig := TRUE;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_SwitchToRun" Id="{949f243b-ddfd-4924-8c44-0bc4957e34cf}">
|
||||
<Declaration><![CDATA[METHOD M_SwitchToRun : BOOL
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[IF _xBusy OR _xError THEN
|
||||
M_SwitchToRun := FALSE;
|
||||
RETURN;
|
||||
END_IF
|
||||
|
||||
// Start command
|
||||
_xSwitchToRunMode := TRUE;
|
||||
|
||||
// Set busy
|
||||
_xBusy := TRUE;
|
||||
_xDone := FALSE;
|
||||
|
||||
// Report command result
|
||||
M_SwitchToRun := TRUE;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Trigger" Id="{d463f53a-1fcf-4a61-a95a-507b0a863218}">
|
||||
<Declaration><![CDATA[METHOD M_Trigger : BOOL
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[IF _xBusy OR _xError OR (NOT i_xTriggerRdy) THEN
|
||||
M_Trigger := FALSE;
|
||||
RETURN;
|
||||
END_IF
|
||||
|
||||
// Start command
|
||||
_xTrigger := TRUE;
|
||||
|
||||
// Set busy
|
||||
_xBusy := TRUE;
|
||||
_xDone := FALSE;
|
||||
|
||||
// Report command result
|
||||
M_Trigger := TRUE;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
11
PLC/01_Stationen/Input/ST_HMI_Input.TcDUT
Normal file
11
PLC/01_Stationen/Input/ST_HMI_Input.TcDUT
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_HMI_Input" Id="{a4730084-6aa8-4ec8-a056-5ec2c2cb728b}">
|
||||
<Declaration><![CDATA[TYPE ST_HMI_Input :
|
||||
STRUCT
|
||||
stTrayFeeder : ST_HMI_PackML;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -356,7 +356,7 @@ END_IF
|
||||
<Declaration><![CDATA[METHOD PROTECTED M_Idle
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[_stJobParams := stJobParams;]]></ST>
|
||||
<ST><![CDATA[_stJobParams := stHMIInterface.stJobParams;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Resetting" Id="{dfe4d36a-80aa-4364-bfd8-6ddd41636d59}" FolderPath="StateMachine\">
|
||||
|
||||
@@ -139,7 +139,7 @@ END_VAR]]></Declaration>
|
||||
IF _tonReconnect.Q THEN
|
||||
_tonReconnect(IN := FALSE, PT := T#5S);
|
||||
_xConnect := TRUE;
|
||||
_iSSM := 35;
|
||||
_iSSM := 40;
|
||||
END_IF
|
||||
|
||||
35:
|
||||
|
||||
@@ -11,8 +11,6 @@ VAR_GLOBAL
|
||||
// DEBUG - NOT FOR HMI!
|
||||
// ====================
|
||||
|
||||
xErrAck : BOOL;
|
||||
|
||||
xOpenAllChambers : BOOL;
|
||||
|
||||
xOpenChuckClampEtcher1 : BOOL;
|
||||
|
||||
@@ -146,6 +146,12 @@
|
||||
<Compile Include="01_Stationen\Input\FB_Input.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\Input\FB_KeyenceVS.TcPOU">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\Input\ST_HMI_Input.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="01_Stationen\Input\ST_Input_Recipe.TcDUT">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
@@ -480,8 +486,8 @@
|
||||
<ProjectExtensions>
|
||||
<PlcProjectOptions>
|
||||
<XmlArchive>
|
||||
<Data>
|
||||
<o xml:space="preserve" t="OptionKey">
|
||||
<Data>
|
||||
<o xml:space="preserve" t="OptionKey">
|
||||
<v n="Name">"<ProjectRoot>"</v>
|
||||
<d n="SubKeys" t="Hashtable" ckt="String" cvt="OptionKey">
|
||||
<v>{192FAD59-8248-4824-A8DE-9177C94C195A}</v>
|
||||
@@ -626,14 +632,14 @@
|
||||
</d>
|
||||
<d n="Values" t="Hashtable" />
|
||||
</o>
|
||||
</Data>
|
||||
<TypeList>
|
||||
<Type n="Boolean">System.Boolean</Type>
|
||||
<Type n="Hashtable">System.Collections.Hashtable</Type>
|
||||
<Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type>
|
||||
<Type n="String">System.String</Type>
|
||||
</TypeList>
|
||||
</XmlArchive>
|
||||
</Data>
|
||||
<TypeList>
|
||||
<Type n="Boolean">System.Boolean</Type>
|
||||
<Type n="Hashtable">System.Collections.Hashtable</Type>
|
||||
<Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type>
|
||||
<Type n="String">System.String</Type>
|
||||
</TypeList>
|
||||
</XmlArchive>
|
||||
</PlcProjectOptions>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
||||
258
PLC/PLC.tmc
258
PLC/PLC.tmc
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user