Fixed aligner and started main state machine
- Fixed datatype for received offsets - Added HMI Interface for Hot and Coolplate
This commit is contained in:
@@ -19,13 +19,11 @@ VAR
|
||||
_xDisableVacuum AT %Q* : BOOL := TRUE;
|
||||
_xVacuumOk AT %I* : BOOL;
|
||||
|
||||
_udiXOffset AT %I* : UDINT;
|
||||
_udiYOffset AT %I* : UDINT;
|
||||
_udiXOffset AT %I* : DINT;
|
||||
_udiYOffset AT %I* : DINT;
|
||||
|
||||
_rXPosToGo : REAL;
|
||||
_rYPosToGo : REAL;
|
||||
|
||||
_iState : INT := 0;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
@@ -39,13 +37,7 @@ END_VAR
|
||||
lrAcceleration:= 0,
|
||||
lrDecelleration:= 0,
|
||||
lrJerk:= 0,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
xEnabled=> ,
|
||||
xHomed=> ,
|
||||
lrActPosition=> ,
|
||||
xIsStopped=> ,
|
||||
xBusy=> ,
|
||||
xError=> );
|
||||
xConfirmAlarms:= xConfirmAlarms);
|
||||
|
||||
_fbYAxis(
|
||||
xEnable:= TRUE,
|
||||
@@ -57,20 +49,14 @@ _fbYAxis(
|
||||
lrAcceleration:= 0,
|
||||
lrDecelleration:= 0,
|
||||
lrJerk:= 0,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
xEnabled=> ,
|
||||
xHomed=> ,
|
||||
lrActPosition=> ,
|
||||
xIsStopped=> ,
|
||||
xBusy=> ,
|
||||
xError=> );
|
||||
xConfirmAlarms:= xConfirmAlarms);
|
||||
|
||||
// Drei mal ausführen damit die Position genau ist
|
||||
IF xAlign THEN
|
||||
xAlign := FALSE;
|
||||
|
||||
_rXPosToGo := UDINT_TO_REAL(_udiXOffset) * -0.001;
|
||||
_rYPosToGo := ((UDINT_TO_REAL(_udiYOffset) * 0.001) - 37.5) * -1;
|
||||
_rXPosToGo := DINT_TO_REAL(_udiXOffset) * -0.001;
|
||||
_rYPosToGo := ((DINT_TO_REAL(_udiYOffset) * 0.001) - 37.5) * -1;
|
||||
|
||||
IF (ABS(_rXPosToGo) < 10.0) AND (ABS(_rYPosToGo) < 10.0) AND (NOT _fbXAxis.xError) AND (NOT _fbYAxis.xError) THEN
|
||||
_fbXAxis.M_MoveRel(lrRelDist := _rXPosToGo);
|
||||
|
||||
@@ -86,7 +86,7 @@ _fbValveDoor(
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface:= stHMIInterface.stDoorHMIInterface);
|
||||
|
||||
xDoorOpen := _fbValveDoor.IsOpen;
|
||||
|
||||
|
||||
// Chuck
|
||||
_rtEjectChuckCmd(CLK := xEjectChuck);
|
||||
@@ -134,6 +134,8 @@ _xDisableVacuum := (NOT xEnableVacuum);
|
||||
SUPER^();
|
||||
|
||||
// Copy internal signals to output
|
||||
xDoorOpen := _fbValveDoor.IsOpen;
|
||||
xChuckClampOpen := _fbUnlockLeft.IsOpen AND _fbUnlockRight.IsOpen;
|
||||
xVacuumEnabled := _xVacuumOk;]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="FB_Init" Id="{afcda70c-3e52-4a32-9ca9-670a6b854f24}">
|
||||
|
||||
@@ -7,6 +7,9 @@ VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
stHMIInterface : ST_HCPlateHMIInterface;
|
||||
END_VAR
|
||||
VAR
|
||||
// Card inputs
|
||||
_stStatus AT %I* : ST_SerialStatus;
|
||||
@@ -31,7 +34,8 @@ END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[// Clamp temperature settings
|
||||
_rTempSetpoint := rTempSetpoint;
|
||||
// Currently only controlled throught hmi interface
|
||||
_rTempSetpoint := stHMIInterface.rSetpoint;
|
||||
|
||||
IF _rTempSetpoint > 60.0 THEN
|
||||
_rTempSetpoint := 60.0;
|
||||
@@ -62,8 +66,8 @@ IF _stStatus.bTransmitAccepted THEN
|
||||
END_IF
|
||||
|
||||
// Debug test
|
||||
IF _xTempTest THEN
|
||||
_xTempTest := FALSE;
|
||||
IF stHMIInterface.xEnable THEN
|
||||
stHMIInterface.xEnable := FALSE;
|
||||
M_SetTemp(rTemp := _rTempSetpoint);
|
||||
_xSend := TRUE;
|
||||
END_IF]]></ST>
|
||||
|
||||
@@ -7,6 +7,9 @@ VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
stHMIInterface : ST_HCStationHMIInterface;
|
||||
END_VAR
|
||||
VAR
|
||||
_fbHeatingPlate : FB_HotPlate;
|
||||
|
||||
@@ -21,11 +24,12 @@ END_VAR
|
||||
<ST><![CDATA[_fbHeatingPlate(
|
||||
xEnable:= _xEnableHotplate,
|
||||
rTargetTemp:= _rTargetTemp,
|
||||
stHMIInterface := stHMIInterface.stHotplateHMIInterface,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
uiNextFreeSlot=> ,
|
||||
uiNextReadySlot=> );
|
||||
|
||||
_fbCoolPlate();]]></ST>
|
||||
_fbCoolPlate(stHMIInterface := stHMIInterface.stCoolplateHMIInterface);]]></ST>
|
||||
</Implementation>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
@@ -13,6 +13,9 @@ VAR_OUTPUT
|
||||
uiNextFreeSlot : UINT;
|
||||
uiNextReadySlot : UINT;
|
||||
END_VAR
|
||||
VAR_IN_OUT
|
||||
stHMIInterface : ST_HCPlateHMIInterface;
|
||||
END_VAR
|
||||
VAR
|
||||
_xEnableHotplate AT %Q* : BOOL;
|
||||
|
||||
@@ -53,13 +56,23 @@ _fbTempSensor(
|
||||
xReleaseHardwareErrors:= TRUE,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface=> );
|
||||
|
||||
// Clamp HMI Setpoint
|
||||
IF stHMIInterface.rSetpoint > 140.0 THEN
|
||||
stHMIInterface.rSetpoint := 140;
|
||||
END_IF
|
||||
|
||||
IF stHMIInterface.rSetpoint < 0.0 THEN
|
||||
stHMIInterface.rSetpoint := 0.0;
|
||||
END_IF
|
||||
|
||||
// For now get setpoint from HMI interface
|
||||
_fbPITempControl(
|
||||
rSP:= rTargetTemp,
|
||||
rSP:= stHMIInterface.rSetpoint,
|
||||
rPV:= _fbTempSensor.rScaledValue,
|
||||
rKp:= 2,
|
||||
rKp:= 6,
|
||||
rTn:= 0,
|
||||
xEnable:= xEnable,
|
||||
xEnable:= stHMIInterface.xEnable,
|
||||
xSaturatedUpper:= _xSaturatedUpper,
|
||||
xSaturatedLower:= _xSaturatedLower,
|
||||
rMV=> _rMV);
|
||||
@@ -82,15 +95,9 @@ _fbPWMOut(
|
||||
rPWM:= _rMV,
|
||||
timPeriod:= T#10S,
|
||||
xOutput=> _xEnableHotplate);
|
||||
|
||||
// Control temperature with two point controller
|
||||
// IF _fbTempSensor.rScaledValue < (rTargetTemp - rDeadBand) THEN
|
||||
// _xEnableHotplate := TRUE;
|
||||
// END_IF
|
||||
//
|
||||
// IF _fbTempSensor.rScaledValue >= (rTargetTemp) THEN
|
||||
// _xEnableHotplate := FALSE;
|
||||
// END_IF
|
||||
|
||||
// Output HMI Interface
|
||||
stHMIInterface.rPV := _fbTempSensor.rScaledValue;
|
||||
]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="M_AddItem" Id="{9707459a-6558-487c-b730-c9dc92d598ed}">
|
||||
|
||||
13
PLC/01_Stationen/HeatCoolPlates/ST_HCPlateHMIInterface.TcDUT
Normal file
13
PLC/01_Stationen/HeatCoolPlates/ST_HCPlateHMIInterface.TcDUT
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_HCPlateHMIInterface" Id="{cc97f396-14fe-4cf1-8a0f-254b86749233}">
|
||||
<Declaration><![CDATA[TYPE ST_HCPlateHMIInterface :
|
||||
STRUCT
|
||||
xEnable : BOOL;
|
||||
rSetpoint : REAL;
|
||||
rPV : REAL;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_HCStationHMIInterface" Id="{2459de16-cb2e-4745-be67-cc251c8b91cf}">
|
||||
<Declaration><![CDATA[TYPE ST_HCStationHMIInterface :
|
||||
STRUCT
|
||||
stHotplateHMIInterface : ST_HCPlateHMIInterface;
|
||||
stCoolplateHMIInterface : ST_HCPlateHMIInterface;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
Reference in New Issue
Block a user