Workbackup Robot 1 i.O. Beta
This commit is contained in:
@@ -5,8 +5,6 @@
|
||||
<Object Type="DataObject" Language="Apt" Description="Acp Parameter for Grinder 1 Motor (SEW)">gAxGrnd1a</Object>
|
||||
<Object Type="DataObject" Language="Apt">gAxR1G2a</Object>
|
||||
<Object Type="DataObject" Language="Apt">gAxR2G2a</Object>
|
||||
<Object Type="DataObject" Language="Apt" Description="Tablet1">gAxR1T1a</Object>
|
||||
<Object Type="DataObject" Language="Apt" Description="Tablet2">gAxR1T2a</Object>
|
||||
<Object Type="DataObject" Language="Apt" Description="Acp Parameter for Office Motor (24V)">motor_office</Object>
|
||||
<Object Type="DataObject" Language="Apt" Description="Acp Parameter for motor simulation">motor_sim</Object>
|
||||
</Objects>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.6.81 SP?>
|
||||
<?AutomationStudio Version=?>
|
||||
<AcoposParameterTable>
|
||||
<Root Name="Parameters">
|
||||
<Parameter Name="PCTRL_S_ACT_PARID" ID="230" Value="PCTRL_S_SET" />
|
||||
<Parameter Name="PCTRL_S_ACT_PARID" ID="230" Value="1" />
|
||||
<Parameter Name="SERVO_V_MAX_OUTPUT" ID="64201" Value="546116,666666667" />
|
||||
</Root>
|
||||
</AcoposParameterTable>
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.6.81 SP?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>gAxR1T1a.apt</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=?>
|
||||
<AcoposParameterTable>
|
||||
<Root Name="Parameters">
|
||||
<Parameter Name="PCTRL_S_ACT_PARID" ID="230" Value="PCTRL_S_SET" />
|
||||
<Parameter Name="SERVO_V_MAX_OUTPUT" ID="64201" Value="546116,666666667" />
|
||||
</Root>
|
||||
</AcoposParameterTable>
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.6.81 SP?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>gAxR1T2a.apt</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=?>
|
||||
<AcoposParameterTable>
|
||||
<Root Name="Parameters">
|
||||
<Parameter Name="PCTRL_S_ACT_PARID" ID="230" Value="PCTRL_S_SET" />
|
||||
<Parameter Name="SERVO_V_MAX_OUTPUT" ID="64201" Value="546116,666666667" />
|
||||
</Root>
|
||||
</AcoposParameterTable>
|
||||
@@ -1,36 +0,0 @@
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//MC FunctionBlocks*)
|
||||
VAR
|
||||
Axis_MC_BR_ReadDriveStatus : MC_BR_ReadDriveStatus := (0);
|
||||
Axis_MC_BR_Powermeter : MC_BR_PowerMeter := (0);
|
||||
Axis_MC_Power : MC_Power := (0);
|
||||
Axis_MC_ReadStatus : MC_ReadStatus := (0);
|
||||
Axis_MC_ReadAxisError : MC_ReadAxisError := (0);
|
||||
Axis_MC_BR_ReadAxisError : MC_BR_ReadAxisError := (0);
|
||||
Axis_MC_Reset : MC_Reset := (0);
|
||||
END_VAR
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//Dynamic Vars*)
|
||||
VAR
|
||||
lPS : REFERENCE TO typPS; (*Axis Datastruct *)
|
||||
lbSimulation : REFERENCE TO BOOL;
|
||||
enStep : enPSStep;
|
||||
END_VAR
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//Constants*)
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//Retain*)
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//Local Vars*)
|
||||
VAR
|
||||
bAxisInit : BOOL := FALSE; (*Devel - Init Axis*)
|
||||
bHomeAbs : BOOL := FALSE; (*Devel - Home Absolue Encoder*)
|
||||
bTest : BOOL := FALSE;
|
||||
usCamTableID : USINT;
|
||||
uiRestartDelay : UINT := 2500; (*Wait Cycles after Cold restart*)
|
||||
uiAbsStatus : UINT;
|
||||
uiAxisUserVar1 : UINT := 0;
|
||||
uiMCReadError : UINT := 0; (*Error in MC_Read_Paramaeter*)
|
||||
uiMCWriteError : UINT := 0; (*Error in MC_Write_Paramaeter*)
|
||||
udAxisObj : UDINT;
|
||||
END_VAR
|
||||
@@ -1,201 +0,0 @@
|
||||
PROGRAM _CYCLIC
|
||||
|
||||
IF (uiRestartDelay > 0) THEN
|
||||
uiRestartDelay := uiRestartDelay - 1;
|
||||
END_IF
|
||||
|
||||
|
||||
|
||||
Axis_MC_ReadStatus ();
|
||||
IF Axis_MC_ReadStatus.Valid THEN
|
||||
lPS.AxisState.bDisabled := Axis_MC_ReadStatus.Disabled;
|
||||
lPS.AxisState.bStandstill := Axis_MC_ReadStatus.StandStill;
|
||||
lPS.AxisState.bStopping := Axis_MC_ReadStatus.Stopping;
|
||||
lPS.AxisState.bHoming := Axis_MC_ReadStatus.Homing;
|
||||
lPS.AxisState.bMotionDiscrete := Axis_MC_ReadStatus.DiscreteMotion;
|
||||
lPS.AxisState.bMotionContinous := Axis_MC_ReadStatus.ContinuousMotion;
|
||||
lPS.AxisState.bMotionSynchronized := Axis_MC_ReadStatus.SynchronizedMotion;
|
||||
lPS.AxisState.bErrorstop := Axis_MC_ReadStatus.Errorstop;
|
||||
END_IF
|
||||
|
||||
Axis_MC_BR_ReadDriveStatus ();
|
||||
Axis_MC_BR_ReadAxisError ();
|
||||
|
||||
|
||||
|
||||
//enMachine Axis
|
||||
//Check for general Axis errors
|
||||
IF (Axis_MC_ReadAxisError.AxisErrorID <> 0) AND Axis_MC_ReadAxisError.Valid THEN
|
||||
lPS.enStep := enPSSTATE_ERROR_AXIS;
|
||||
//power should be off
|
||||
ELSIF NOT lPS.Command.bPower AND Axis_MC_ReadStatus.Errorstop AND Axis_MC_ReadStatus.Valid THEN
|
||||
lPS.enStep := enPSSTATE_ERROR_RESET;
|
||||
ELSIF NOT lPS.Command.bPower AND NOT (lbSimulation XOR lPS.DriveStatus.bSimulation) THEN
|
||||
lPS.enStep := enPSSTATE_WAIT;
|
||||
END_IF
|
||||
|
||||
CASE lPS.enStep OF
|
||||
|
||||
//==============================================
|
||||
//WAIT
|
||||
enPSSTATE_WAIT:
|
||||
//reset power
|
||||
Axis_MC_Power.Enable := 0;
|
||||
Axis_MC_BR_Powermeter.Enable := 0;
|
||||
|
||||
lPS.Error.uiID := 0;
|
||||
lPS.enStep := enPSSTATE_READY;
|
||||
|
||||
//==============================================
|
||||
//Ready, wait for commands
|
||||
enPSSTATE_READY:
|
||||
IF lPS.Command.bPower AND NOT Axis_MC_Power.Status THEN
|
||||
lPS.enStep := enPSSTATE_POWER_ON;
|
||||
ELSIF Axis_MC_Power.Status AND NOT lPS.Command.bPower THEN
|
||||
Axis_MC_Power.Enable := 1;
|
||||
ELSIF lPS.Command.bStartPowerMeter THEN
|
||||
lPS.enStep := enPSSTATE_POWERMETER_START;
|
||||
ELSIF lPS.Command.bStopPowerMeter THEN
|
||||
lPS.enStep := enPSSTATE_POWERMETER_STOP;
|
||||
ELSIF lPS.Command.bRestartInterval THEN
|
||||
Axis_MC_BR_Powermeter.RestartInterval := FALSE;
|
||||
lPS.enStep := enPSSTATE_RESTART_INTERVAL;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Power On
|
||||
enPSSTATE_POWER_ON:
|
||||
Axis_MC_Power.Enable := 1;
|
||||
|
||||
IF Axis_MC_Power.Status THEN
|
||||
lPS.enStep := enPSSTATE_READY;
|
||||
ELSIF (Axis_MC_Power.ErrorID <> 0) THEN
|
||||
lPS.Error.uiID := Axis_MC_Power.ErrorID;
|
||||
lPS.enStep := enPSSTATE_ERROR;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Start Powermeter
|
||||
enPSSTATE_POWERMETER_START:
|
||||
Axis_MC_BR_Powermeter.Enable := TRUE;
|
||||
Axis_MC_BR_Powermeter.Mode := mcONLY_PSM;
|
||||
Axis_MC_BR_Powermeter.IntervalTime := lPS.Parameter.uiIntervalTime;
|
||||
|
||||
lPS.Command.bStartPowerMeter := FALSE;
|
||||
IF Axis_MC_BR_Powermeter.Valid THEN
|
||||
lPS.enStep := enPSSTATE_READY;
|
||||
END_IF
|
||||
|
||||
IF Axis_MC_BR_Powermeter.Error THEN
|
||||
Axis_MC_BR_Powermeter.Enable := FALSE;
|
||||
lPS.Error.uiID := Axis_MC_BR_Powermeter.ErrorID;
|
||||
lPS.enStep := enPSSTATE_ERROR;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Stop Powermeter
|
||||
enPSSTATE_POWERMETER_STOP:
|
||||
Axis_MC_BR_Powermeter.Enable := FALSE;
|
||||
lPS.Command.bStopPowerMeter := FALSE;
|
||||
IF NOT Axis_MC_BR_Powermeter.Valid THEN
|
||||
lPS.enStep := enPSSTATE_READY;
|
||||
END_IF
|
||||
|
||||
|
||||
//==============================================
|
||||
//Restart Powermeter Interval
|
||||
enPSSTATE_RESTART_INTERVAL:
|
||||
lPS.Command.bRestartInterval := FALSE;
|
||||
Axis_MC_BR_Powermeter.RestartInterval := TRUE;
|
||||
lPS.enStep := enPSSTATE_READY;
|
||||
|
||||
|
||||
//==============================================
|
||||
//Error
|
||||
enPSSTATE_ERROR:
|
||||
IF lPS.Error.bAcknowledge AND Axis_MC_ReadStatus.Errorstop AND Axis_MC_ReadStatus.Valid THEN
|
||||
lPS.Error.bAcknowledge := 0;
|
||||
lPS.Error.uiID := 0;
|
||||
lPS.enStep := enPSSTATE_ERROR_RESET;
|
||||
ELSIF lPS.Error.bAcknowledge THEN
|
||||
lPS.Error.bAcknowledge := 0;
|
||||
lPS.Error.uiID := 0;
|
||||
lPS.enStep := enPSSTATE_WAIT;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Error Axis
|
||||
enPSSTATE_ERROR_AXIS:
|
||||
IF NOT Axis_MC_ReadAxisError.Valid THEN
|
||||
lPS.enStep := enPSSTATE_ERROR_AXIS;
|
||||
ELSIF (Axis_MC_ReadAxisError.AxisErrorID <> 0) AND (Axis_MC_ReadAxisError.AxisErrorID > 0) THEN
|
||||
lPS.Error.uiID := Axis_MC_ReadAxisError.AxisErrorID;
|
||||
END_IF
|
||||
|
||||
//IF (lPS.Error.uiID = 1004) AND (uiRestartDelay > 0) THEN
|
||||
// lPS.Error.bAcknowledge := 1;
|
||||
//END_IF
|
||||
|
||||
Axis_MC_ReadAxisError.Acknowledge := 0;
|
||||
|
||||
IF lPS.Error.bAcknowledge THEN
|
||||
lPS.Error.bAcknowledge := 0;
|
||||
IF (Axis_MC_ReadAxisError.AxisErrorID <> 0) THEN
|
||||
Axis_MC_ReadAxisError.Acknowledge := 1;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF (Axis_MC_ReadAxisError.AxisErrorCount = 0) AND
|
||||
Axis_MC_ReadStatus.Errorstop AND
|
||||
Axis_MC_ReadStatus.Valid THEN
|
||||
lPS.Error.uiID := 0;
|
||||
lPS.enStep := enPSSTATE_ERROR_RESET;
|
||||
ELSIF (Axis_MC_ReadAxisError.AxisErrorCount = 0) THEN
|
||||
lPS.Error.uiID := 0;
|
||||
lPS.enStep := enPSSTATE_WAIT;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Reset DONE
|
||||
enPSSTATE_ERROR_RESET:
|
||||
Axis_MC_Reset.Execute := 1;
|
||||
|
||||
IF Axis_MC_Power.Error THEN
|
||||
Axis_MC_Power.Enable := 0;
|
||||
END_IF
|
||||
|
||||
IF Axis_MC_Reset.Done THEN
|
||||
Axis_MC_Reset.Execute := 0;
|
||||
lPS.enStep := enPSSTATE_WAIT;
|
||||
ELSIF (Axis_MC_Reset.ErrorID <> 0) THEN
|
||||
lPS.Error.uiID := Axis_MC_Reset.ErrorID;
|
||||
Axis_MC_Reset.Execute := 0;
|
||||
lPS.enStep := enPSSTATE_ERROR;
|
||||
END_IF
|
||||
END_CASE
|
||||
|
||||
//--------------------------------------------
|
||||
//Call Function Blocks
|
||||
Axis_MC_Power ();
|
||||
Axis_MC_Reset ();
|
||||
(**********************MC_BR_POWERMETER *****************************)
|
||||
Axis_MC_BR_Powermeter ();
|
||||
IF Axis_MC_BR_Powermeter.Valid THEN
|
||||
lPS.Status.mcPowerData.IntervalDuration := Axis_MC_BR_Powermeter.PowerData.IntervalDuration;
|
||||
lPS.Status.mcPowerData.AverageActivePower := Axis_MC_BR_Powermeter.PowerData.AverageActivePower;
|
||||
lPS.Status.mcPowerData.AverageReactivePower := Axis_MC_BR_Powermeter.PowerData.AverageReactivePower;
|
||||
lPS.Status.mcPowerData.MaximumActivePower := Axis_MC_BR_Powermeter.PowerData.MaximumActivePower;
|
||||
lPS.Status.mcPowerData.MinimalActivePower := Axis_MC_BR_Powermeter.PowerData.MinimalActivePower;
|
||||
lPS.Status.mcPowerData.ConsumedEnergy := Axis_MC_BR_Powermeter.PowerData.ConsumedEnergy;
|
||||
lPS.Status.mcPowerData.RegeneratedEnergy := Axis_MC_BR_Powermeter.PowerData.RegeneratedEnergy;
|
||||
lPS.Status.mcPowerData.EnergyBalance := Axis_MC_BR_Powermeter.PowerData.EnergyBalance;
|
||||
IF (lPS.Status.mcPowerData.IntervalNumber <> Axis_MC_BR_Powermeter.PowerData.IntervalNumber) THEN
|
||||
//New Interval
|
||||
grConsumedEnergy := grConsumedEnergy + lPS.Status.mcPowerData.ConsumedEnergy;
|
||||
grRegeneratedEnergy := grRegeneratedEnergy + lPS.Status.mcPowerData.ConsumedEnergy;
|
||||
lPS.Energy.rConsumedEnergy := lPS.Energy.rConsumedEnergy + lPS.Status.mcPowerData.ConsumedEnergy;
|
||||
lPS.Energy.rRegeneratedEnergy := lPS.Energy.rRegeneratedEnergy + lPS.Status.mcPowerData.RegeneratedEnergy;
|
||||
END_IF
|
||||
lPS.Status.mcPowerData.IntervalNumber := Axis_MC_BR_Powermeter.PowerData.IntervalNumber;
|
||||
END_IF
|
||||
END_PROGRAM
|
||||
@@ -1,40 +0,0 @@
|
||||
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
//Which Axis
|
||||
lPS ACCESS ADR (gPS);
|
||||
lbSimulation ACCESS ADR (gMachine.bAxisSimulation);
|
||||
|
||||
//Access global ACP10 Axis Objects
|
||||
udAxisObj := ADR (gAxPS);
|
||||
|
||||
//Initial Step
|
||||
lPS.enStep := enPSSTATE_READY;
|
||||
|
||||
|
||||
|
||||
//Overhand Axis Obj to FunctionBlocks
|
||||
Axis_MC_BR_ReadDriveStatus.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadDriveStatus.AdrDriveStatus := ADR (lPS.DriveStatus);
|
||||
Axis_MC_BR_Powermeter.Axis := udAxisObj;
|
||||
Axis_MC_Power.Axis := udAxisObj;
|
||||
Axis_MC_ReadStatus.Axis := udAxisObj;
|
||||
Axis_MC_ReadAxisError.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadAxisError.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadAxisError.Mode := mcTEXT;
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataAddress := ADR (lPS.Error.Text);
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataLength := SIZEOF (lPS.Error.Text);
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataObjectName := 'acp10etxde';
|
||||
Axis_MC_BR_ReadAxisError.Configuration.Format := mcWRAP + mcNULL;
|
||||
Axis_MC_BR_ReadAxisError.Configuration.LineLength := SIZEOF (lPS.Error.Text[0]);
|
||||
Axis_MC_Reset.Axis := udAxisObj;
|
||||
|
||||
|
||||
|
||||
//Enable Fubs
|
||||
Axis_MC_BR_ReadDriveStatus.Enable := TRUE;
|
||||
Axis_MC_BR_ReadAxisError.Enable := TRUE;
|
||||
Axis_MC_ReadStatus.Enable := TRUE;
|
||||
|
||||
|
||||
END_PROGRAM
|
||||
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.5.68 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Initialization code">AxisPSlInit.st</File>
|
||||
<File Description="Cyclic code">AxisPSlCyclic.st</File>
|
||||
<File Description="Local variables" Private="true">AxisPS.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
@@ -1,91 +0,0 @@
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//MC FunctionBlocks*)
|
||||
VAR
|
||||
Axis_MC_BR_AxisErrorCollector : MC_BR_AxisErrorCollector;
|
||||
Axis_MC_ACP_ENCOD_REF : MC_ACP_ENCOD_REF := (0);
|
||||
Axis_MC_ACP_ENCOD_PARAM_REF : MC_ACP_ENCOD_PARAM_REF := (0);
|
||||
Axis_MC_GearIn : MC_GearIn := (0); (*Start electronic Gear coupling with master*)
|
||||
Axis_MC_GearInPos : MC_GearInPos := (0); (*Start electronic Gear coupling (Position mode) with master*)
|
||||
Axis_MC_GearOut : MC_GearOut := (0); (*Stop electronic Gear coupling*)
|
||||
Axis_MC_BR_BrakeControl : MC_BR_BrakeControl := (0);
|
||||
Axis_MC_BR_GetErrorText : MC_BR_GetErrorText := (0);
|
||||
Axis_MC_BR_HomeAcpEncoder : MC_BR_HomeAcpEncoder := (0);
|
||||
Axis_MC_BR_InitAxisPar : MC_BR_InitAxisPar := (0);
|
||||
Axis_MC_BR_JogVelocity : MC_BR_JogVelocity := (0);
|
||||
Axis_MC_BR_JogLimitPosition : MC_BR_JogLimitPosition := (0);
|
||||
Axis_MC_BR_JogTargetPosition : MC_BR_JogTargetPosition := (0);
|
||||
Axis_MC_BR_ReadDriveStatus : MC_BR_ReadDriveStatus := (0);
|
||||
Axis_MC_BR_Simulation : MC_BR_Simulation := (0);
|
||||
Axis_MC_BR_SetHardwareInputs : MC_BR_SetHardwareInputs := (0); (*Set HW-Inputs (Limits for Axises)*)
|
||||
Axis_MC_BR_TorqueControl : MC_BR_TorqueControl := (0); (*Continuous Movement with Cyclic Torque*)
|
||||
Axis_MC_BR_VelocityControl : MC_BR_VelocityControl := (0); (*Cyclic Velocity / Torque*)
|
||||
Axis_MC_Halt : MC_Halt := (0); (*Halt*)
|
||||
Axis_MC_Home : MC_Home := (0); (*Homing*)
|
||||
Axis_MC_BR_InitModPos : MC_BR_InitModPos := (0); (*Modulo Position*)
|
||||
Axis_MC_MoveAbsolute : MC_MoveAbsolute := (0); (*Absolute Movement*)
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop : MC_BR_MoveAbsoluteTriggStop := (0); (*Absolute Movement with Trigger Stop*)
|
||||
Axis_MC_MoveAdditive : MC_MoveAdditive := (0); (*Additive Movement*)
|
||||
Axis_MC_BR_MoveAdditiveTriggStop : MC_BR_MoveAdditiveTriggStop := (0); (*Additive Movement with Trigger Stop*)
|
||||
Axis_MC_MoveVelocity : MC_MoveVelocity := (0); (*Continuous Movement with Cyclic Velocity*)
|
||||
AXis_MC_BR_MoveVelocityTriggStop : MC_BR_MoveVelocityTriggStop := (0); (*Continuous Movement with Cyclic Velocity and Trigger Stop*)
|
||||
Axis_MC_Power : MC_Power := (0);
|
||||
Axis_MC_ReadActualPosition : MC_ReadActualPosition := (0);
|
||||
Axis_MC_ReadActualTorque : MC_ReadActualTorque := (0);
|
||||
Axis_MC_ReadActualVelocity : MC_ReadActualVelocity := (0);
|
||||
Axis_MC_BR_ReadAxisError : MC_BR_ReadAxisError := (0);
|
||||
Axis_MC_ReadStatus : MC_ReadStatus := (0);
|
||||
Axis_MC_Reset : MC_Reset := (0);
|
||||
Axis_MC_SetOverride : MC_SetOverride := (0);
|
||||
Axis_MC_Stop : MC_Stop := (0);
|
||||
END_VAR
|
||||
(*//Further Parameter - Cyclic*)
|
||||
VAR
|
||||
Axis_MC_BR_CyclicRead : MC_BR_CyclicRead := (0); (*Read Further Axis Parameter*)
|
||||
Axis_MC_BR_CyclicWrite : MC_BR_CyclicWrite := (0);
|
||||
END_VAR
|
||||
(*//Further Parameter*)
|
||||
VAR
|
||||
Axis_MC_BR_ReadParID : MC_BR_ReadParID := (0); (*Read Furhter Axis Parameter*)
|
||||
END_VAR
|
||||
(*//ParemeterTrace*)
|
||||
VAR
|
||||
Axis_MC_BR_WriteParID : MC_BR_WriteParID := (0); (*USER_R4_VAR1 used for Trace*)
|
||||
END_VAR
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//Dynamic Vars*)
|
||||
VAR
|
||||
lAxis : REFERENCE TO typAxis; (*Axis Datastruct *)
|
||||
lAxisActPos : REFERENCE TO REAL;
|
||||
lAxisMaster : REFERENCE TO typAxis;
|
||||
lbSimulation : REFERENCE TO BOOL;
|
||||
rUser_Var1 : REFERENCE TO REAL; (*Value for Cyclic transmission to Acopos*)
|
||||
END_VAR
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//Constants*)
|
||||
VAR CONSTANT
|
||||
uiTORQUE_NOT_REACHED : UINT := 0;
|
||||
END_VAR
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//Retain*)
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//Local Vars*)
|
||||
VAR
|
||||
bAxisInit : BOOL := FALSE; (*Devel - Init Axis*)
|
||||
bDisableCommands : BOOL := FALSE;
|
||||
bHomeAbs : BOOL := FALSE; (*Devel - Home Absolue Encoder*)
|
||||
bTest : BOOL := FALSE;
|
||||
usCamTableID : USINT;
|
||||
uiRestartDelay : UINT := 2500; (*Wait Cycles after Cold restart*)
|
||||
uiAbsStatus : UINT;
|
||||
uiAxisUserVar1 : UINT := 0;
|
||||
uiMCReadError : UINT := 0; (*Error in MC_Read_Paramaeter*)
|
||||
uiMCWriteError : UINT := 0; (*Error in MC_Write_Paramaeter*)
|
||||
udAxisMasterObj : UDINT;
|
||||
udAxisSlaveObj : UDINT;
|
||||
udAxisObj : UDINT;
|
||||
udEnableTorqueLimit : UDINT := 0;
|
||||
rOldVelocity : REAL := 0.0;
|
||||
rOldTorquelimit : REAL := 0.0; (*//Used to Trigger Sending Value to Axis*)
|
||||
rUser_VarTemp : REAL := 0.0;
|
||||
TON_HomingOk : TON;
|
||||
END_VAR
|
||||
@@ -1,712 +0,0 @@
|
||||
PROGRAM _CYCLIC
|
||||
|
||||
IF (uiRestartDelay > 0) THEN
|
||||
uiRestartDelay := uiRestartDelay - 1;
|
||||
END_IF
|
||||
|
||||
|
||||
//Devel Axis Initialisation
|
||||
Axis_MC_BR_InitAxisPar.Axis := udAxisObj;
|
||||
Axis_MC_BR_InitAxisPar.Execute := bAxisInit;
|
||||
Axis_MC_BR_InitAxisPar ();
|
||||
IF Axis_MC_BR_InitAxisPar.Done THEN
|
||||
bAxisInit := FALSE;
|
||||
END_IF
|
||||
|
||||
//Devel Absolute Encoder Homing
|
||||
Axis_MC_ACP_ENCOD_REF.Slot := 3;
|
||||
|
||||
Axis_MC_ACP_ENCOD_PARAM_REF.HomingMode := mcHOME_ABSOLUTE;
|
||||
Axis_MC_ACP_ENCOD_PARAM_REF.Offset := 0;
|
||||
Axis_MC_ACP_ENCOD_PARAM_REF.ReadOffset := FALSE;
|
||||
|
||||
Axis_MC_BR_HomeAcpEncoder.Execute := bHomeAbs;
|
||||
Axis_MC_BR_HomeAcpEncoder.AcpEncoder := Axis_MC_ACP_ENCOD_REF;
|
||||
Axis_MC_BR_HomeAcpEncoder.HomingParameters := Axis_MC_ACP_ENCOD_PARAM_REF;
|
||||
Axis_MC_BR_HomeAcpEncoder ();
|
||||
|
||||
IF Axis_MC_BR_HomeAcpEncoder.Done THEN
|
||||
bHomeAbs := FALSE;
|
||||
END_IF
|
||||
|
||||
//Set Hardware inputs
|
||||
//Direct map IO
|
||||
Axis_MC_BR_SetHardwareInputs.Enable := lAxis.Para.bSetHWInputs;
|
||||
Axis_MC_BR_SetHardwareInputs ();
|
||||
|
||||
//get axis information
|
||||
Axis_MC_BR_AxisErrorCollector ();
|
||||
|
||||
(***********************CHECK FOR ERRORS**************************)
|
||||
IF (lAxis.enStep < enAxSTATE_STOP_AFTER_ERROR) THEN
|
||||
IF (Axis_MC_BR_AxisErrorCollector.Errorstop) THEN
|
||||
lAxis.enStep := enAxSTATE_ERROR;
|
||||
ELSIF (Axis_MC_BR_AxisErrorCollector.FunctionBlockError) OR
|
||||
(Axis_MC_BR_AxisErrorCollector.AxisError) OR
|
||||
(Axis_MC_BR_AxisErrorCollector.AxisWarning) THEN
|
||||
lAxis.enStep := enAxSTATE_STOP_AFTER_ERROR;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
Axis_MC_BR_ReadAxisError ();
|
||||
|
||||
Axis_MC_ReadStatus ();
|
||||
IF Axis_MC_ReadStatus.Valid THEN
|
||||
lAxis.Status.bDisabled := Axis_MC_ReadStatus.Disabled;
|
||||
lAxis.Status.bStandstill := Axis_MC_ReadStatus.StandStill;
|
||||
lAxis.Status.bStopping := Axis_MC_ReadStatus.Stopping;
|
||||
lAxis.Status.bHoming := Axis_MC_ReadStatus.Homing;
|
||||
lAxis.Status.bMotionDiscrete := Axis_MC_ReadStatus.DiscreteMotion;
|
||||
lAxis.Status.bMotionContinous := Axis_MC_ReadStatus.ContinuousMotion;
|
||||
lAxis.Status.bMotionSynchronized := Axis_MC_ReadStatus.SynchronizedMotion;
|
||||
lAxis.Status.bErrorstop := Axis_MC_ReadStatus.Errorstop;
|
||||
END_IF
|
||||
|
||||
Axis_MC_BR_ReadDriveStatus ();
|
||||
TON_HomingOk.IN := lAxis.DriveStatus.bHomingOk AND NOT lAxis.Status.bHoming;
|
||||
IF EDGEPOS (lAxis.bHome) THEN
|
||||
TON_HomingOk.IN := FALSE;
|
||||
END_IF
|
||||
TON_HomingOk.PT := t#50ms;
|
||||
TON_HomingOk ();
|
||||
lAxis.Status.bHomingOkDelayed := TON_HomingOk.Q;
|
||||
|
||||
//Position
|
||||
Axis_MC_ReadActualPosition ();
|
||||
IF Axis_MC_ReadActualPosition.Valid THEN
|
||||
lAxis.rActPosition := Axis_MC_ReadActualPosition.Position;
|
||||
lAxisActPos := lAxis.rActPosition;
|
||||
END_IF
|
||||
|
||||
//Velocity
|
||||
Axis_MC_ReadActualVelocity ();
|
||||
IF Axis_MC_ReadActualVelocity.Valid THEN
|
||||
lAxis.rActVelocity := Axis_MC_ReadActualVelocity.Velocity;
|
||||
END_IF
|
||||
|
||||
//Torque
|
||||
IF lbSimulation OR lAxis.DriveStatus.bSimulation OR lAxis.bVAxis THEN
|
||||
Axis_MC_ReadActualTorque.Enable := FALSE; //Disable for Simulation (not Possible)
|
||||
END_IF
|
||||
Axis_MC_ReadActualTorque ();
|
||||
IF Axis_MC_ReadActualTorque.Valid THEN
|
||||
lAxis.rActTorque := Axis_MC_ReadActualTorque.Torque;
|
||||
END_IF
|
||||
|
||||
//Power OFF
|
||||
IF NOT lAxis.bPower AND lAxis.DriveStatus.bControllerStatus THEN
|
||||
lAxis.enStep := enAxSTATE_POWER_OFF;
|
||||
END_IF
|
||||
|
||||
CASE lAxis.enStep OF
|
||||
//==============================================
|
||||
//WAIT
|
||||
enAxSTATE_WAIT:
|
||||
//IF lAxis.Status.bDisabled AND lbSimulation AND NOT lAxis.DriveStatus.bSimulation THEN
|
||||
// lAxis.enStep := enAxSTATE_SIMULATION_ON;
|
||||
//ELSIF lAxis.Status.bDisabled AND NOT lbSimulation AND lAxis.DriveStatus.bSimulation THEN
|
||||
// lAxis.enStep := enAxSTATE_SIMULATION_OFF;
|
||||
IF lAxis.bPower THEN
|
||||
lAxis.enStep := enAxSTATE_POWER_ON;
|
||||
ELSE
|
||||
bDisableCommands := TRUE;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Simulation On
|
||||
enAxSTATE_SIMULATION_ON:
|
||||
Axis_MC_BR_Simulation.Execute := 1;
|
||||
Axis_MC_BR_Simulation.SimulationCommand := mcMOTOR;
|
||||
|
||||
IF Axis_MC_BR_Simulation.Done THEN
|
||||
Axis_MC_BR_Simulation.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_WAIT;
|
||||
ELSIF (Axis_MC_BR_Simulation.ErrorID <> 0) THEN
|
||||
lAxis.enStep := enAxSTATE_ERROR;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Simulation Off
|
||||
enAxSTATE_SIMULATION_OFF;
|
||||
Axis_MC_BR_Simulation.Execute := 1;
|
||||
Axis_MC_BR_Simulation.SimulationCommand := mcSIMULATION_OFF;
|
||||
|
||||
IF Axis_MC_BR_Simulation.Done THEN
|
||||
Axis_MC_BR_Simulation.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_WAIT;
|
||||
ELSIF (Axis_MC_BR_Simulation.ErrorID <> 0) THEN
|
||||
lAxis.enStep := enAxSTATE_ERROR;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Power On
|
||||
enAxSTATE_POWER_ON:
|
||||
Axis_MC_Power.Enable := TRUE;
|
||||
|
||||
IF Axis_MC_Power.Status THEN
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
ELSIF (Axis_MC_Power.ErrorID <> 0) THEN
|
||||
lAxis.enStep := enAxSTATE_ERROR;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Power Off
|
||||
enAxSTATE_POWER_OFF:
|
||||
Axis_MC_Power.Enable := FALSE;
|
||||
|
||||
IF Axis_MC_Power.Status THEN
|
||||
lAxis.enStep := enAxSTATE_WAIT;
|
||||
ELSIF (Axis_MC_Power.ErrorID <> 0) THEN
|
||||
lAxis.enStep := enAxSTATE_ERROR;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Ready, wait for commands
|
||||
enAxSTATE_READY:
|
||||
IF lAxis.bStop THEN
|
||||
lAxis.bStop := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
ELSIF lAxis.bHome THEN
|
||||
lAxis.enStep := enAxSTATE_HOME;
|
||||
ELSIF lAxis.Move.bBraketest THEN
|
||||
lAxis.Move.bBraketest := 0;
|
||||
lAxis.enStep := enAxSTATE_BRAKE_TEST;
|
||||
ELSIF lAxis.Move.bJogPos OR lAxis.Move.bJogNeg THEN
|
||||
//Movement will stopped when command is resetted
|
||||
lAxis.enStep := enAxSTATE_JOG;
|
||||
ELSIF lAxis.Move.bAbsolute AND NOT lAxis.Para.bTriggStop THEN
|
||||
//Movement will stopped when command is resetted
|
||||
lAxis.enStep := enAxSTATE_MOVE_ABSOLUTE;
|
||||
ELSIF lAxis.Move.bAbsolute AND lAxis.Para.bTriggStop THEN
|
||||
//Movement will stopped when command is resetted
|
||||
lAxis.enStep := enAxSTATE_MOVE_ABSOLUTE_TRIGSTP;
|
||||
ELSIF lAxis.Move.bAdditive AND NOT lAxis.Para.bTriggStop THEN
|
||||
//Movement will stopped when command is resetted
|
||||
lAxis.enStep := enAxSTATE_MOVE_ADDITIVE;
|
||||
ELSIF lAxis.Move.bAdditive AND lAxis.Para.bTriggStop THEN
|
||||
//Movement will stopped when command is resetted
|
||||
lAxis.enStep := enAxSTATE_MOVE_ADDITIVE_TRIGSTP;
|
||||
ELSIF lAxis.Move.bVelocity THEN
|
||||
lAxis.Move.bVelocity := 0;
|
||||
lAxis.Status.bTorqueLimitReached := 0;
|
||||
lAxis.enStep := enAxSTATE_MOVE_VELOCITY;
|
||||
ELSIF lAxis.Move.bVelocityControl THEN
|
||||
lAxis.Move.bVelocityControl := 0;
|
||||
lAxis.Status.bTorqueLimitReached := 0;
|
||||
lAxis.enStep := enAxSTATE_MOVE_VELOCITY_CTRL;
|
||||
ELSIF lAxis.Move.bTorqueControl THEN
|
||||
lAxis.Move.bTorqueControl := 0;
|
||||
lAxis.Status.bTorqueLimitReached := 0;
|
||||
lAxis.enStep := enAxSTATE_MOVE_TORQUE_CTRL;
|
||||
ELSIF lAxis.Move.bStartGearSlave THEN
|
||||
lAxis.Move.bStartGearSlave := 0;
|
||||
lAxis.enStep := enAxSTATE_MOVE_GEAR_START;
|
||||
ELSIF lAxis.Move.bStartGearPosSlave THEN
|
||||
lAxis.Move.bStartGearSlave := 0;
|
||||
lAxis.enStep := enAxSTATE_MOVE_GEARPOS_START;
|
||||
ELSIF lAxis.Move.bStopGearSlave THEN
|
||||
lAxis.Move.bStopGearSlave := 0;
|
||||
lAxis.enStep := enAxSTATE_MOVE_GEAR_STOP;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Drive Home
|
||||
enAxSTATE_HOME:
|
||||
Axis_MC_Home.Position := lAxis.Para.rHomePosition;
|
||||
Axis_MC_Home.HomingMode := lAxis.Para.usHomeingMode;
|
||||
Axis_MC_Home.Execute := 1;
|
||||
|
||||
IF lAxis.bStop THEN
|
||||
Axis_MC_Home.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
lAxis.bHome := 0;
|
||||
ELSIF Axis_MC_Home.Done AND (lAxis.Para.udAxisModPosFactor > 0) AND (lAxis.Para.udAxisModPosPeriod > 0) THEN
|
||||
Axis_MC_Home.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_INIT_MOD_POS;
|
||||
lAxis.bHome := 0;
|
||||
ELSIF Axis_MC_Home.Done THEN
|
||||
Axis_MC_Home.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
lAxis.bHome := 0;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Test Brake
|
||||
enAxSTATE_BRAKE_TEST:
|
||||
Axis_MC_BR_BrakeControl.Command := mcBRAKE_TEST_START;
|
||||
Axis_MC_BR_BrakeControl.Configuration.BrakeTest.PositionLimit := lAxis.Para.rBraketestPosLimit;
|
||||
Axis_MC_BR_BrakeControl.Configuration.BrakeTest.TestTorque := lAxis.Para.rBraketestTorque;
|
||||
Axis_MC_BR_BrakeControl.Execute := 1;
|
||||
IF lAxis.bStop THEN
|
||||
Axis_MC_BR_BrakeControl.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
ELSIF Axis_MC_Home.Done THEN
|
||||
Axis_MC_BR_BrakeControl.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Initialize Modulo Position
|
||||
enAxSTATE_INIT_MOD_POS:
|
||||
Axis_MC_BR_InitModPos.Factor := lAxis.Para.udAxisModPosFactor;
|
||||
Axis_MC_BR_InitModPos.Period := lAxis.Para.udAxisModPosPeriod;
|
||||
Axis_MC_BR_InitModPos.Execute := 1;
|
||||
|
||||
IF Axis_MC_BR_InitModPos.Done THEN
|
||||
Axis_MC_BR_InitModPos.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Stop Movement (as long as Stop Command is set)
|
||||
enAxSTATE_STOP:
|
||||
Axis_MC_Stop.Deceleration := lAxis.Para.rDeceleration;
|
||||
Axis_MC_Stop.Execute := 1;
|
||||
|
||||
IF Axis_MC_Stop.Done AND NOT lAxis.bStop THEN
|
||||
Axis_MC_Stop.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
END_IF
|
||||
|
||||
IF (Axis_MC_Stop.Error OR Axis_MC_Stop.CommandAborted) AND NOT lAxis.bStop THEN
|
||||
Axis_MC_Stop.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
END_IF
|
||||
|
||||
|
||||
//==============================================
|
||||
//Jog Positive
|
||||
enAxSTATE_JOG:
|
||||
Axis_MC_BR_JogVelocity.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_BR_JogVelocity.Deceleration := lAxis.Para.rDeceleration;
|
||||
Axis_MC_BR_JogVelocity.Velocity := lAxis.Para.rJogVelocity;
|
||||
Axis_MC_BR_JogVelocity.JogPositive := lAxis.Move.bJogPos;
|
||||
Axis_MC_BR_JogVelocity.JogNegative := lAxis.Move.bJogNeg;
|
||||
Axis_MC_BR_JogVelocity.Enable := (lAxis.Para.JogMode = enAxJOG);
|
||||
|
||||
Axis_MC_BR_JogLimitPosition.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_BR_JogLimitPosition.Deceleration := lAxis.Para.rDeceleration;
|
||||
Axis_MC_BR_JogLimitPosition.Velocity := lAxis.Para.rJogVelocity;
|
||||
Axis_MC_BR_JogLimitPosition.JogPositive := lAxis.Move.bJogPos;
|
||||
Axis_MC_BR_JogLimitPosition.JogNegative := lAxis.Move.bJogNeg;
|
||||
Axis_MC_BR_JogLimitPosition.FirstPosition := lAxis.Para.rJogLimitLow;
|
||||
Axis_MC_BR_JogLimitPosition.LastPosition := lAxis.Para.rJogLimitHigh;
|
||||
Axis_MC_BR_JogLimitPosition.Enable := (lAxis.Para.JogMode = enAxJOG_Limits);
|
||||
|
||||
Axis_MC_BR_JogTargetPosition.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_BR_JogTargetPosition.Deceleration := lAxis.Para.rDeceleration;
|
||||
Axis_MC_BR_JogTargetPosition.Velocity := lAxis.Para.rJogVelocity;
|
||||
Axis_MC_BR_JogTargetPosition.TargetPosition:= lAxis.Para.rPosition;
|
||||
Axis_MC_BR_JogTargetPosition.JogToTarget := lAxis.Move.bJogPos OR lAxis.Move.bJogNeg;
|
||||
Axis_MC_BR_JogTargetPosition.JogPositive := FALSE;
|
||||
Axis_MC_BR_JogTargetPosition.JogNegative := FALSE;
|
||||
Axis_MC_BR_JogTargetPosition.Enable := (lAxis.Para.JogMode = enAxJOG_Target);
|
||||
|
||||
IF (NOT lAxis.Move.bJogPos AND NOT lAxis.Move.bJogNeg) OR lAxis.bStop THEN
|
||||
Axis_MC_BR_JogVelocity.Enable := 0;
|
||||
Axis_MC_BR_JogLimitPosition.Enable := 0;
|
||||
Axis_MC_BR_JogTargetPosition.Enable := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Move Absolute
|
||||
enAxSTATE_MOVE_ABSOLUTE:
|
||||
Axis_MC_MoveAbsolute.Position := lAxis.Para.rPosition;
|
||||
Axis_MC_MoveAbsolute.Velocity := lAxis.Para.rVelocity;
|
||||
Axis_MC_MoveAbsolute.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_MoveAbsolute.Deceleration := lAxis.Para.rDeceleration;
|
||||
Axis_MC_MoveAbsolute.Direction := lAxis.Para.usDirection; //Interesting on Periodic Axises
|
||||
Axis_MC_MoveAbsolute.Execute := 1;
|
||||
|
||||
IF lAxis.bStop OR NOT lAxis.Move.bAbsolute THEN
|
||||
;lAxis.bStop := 0;
|
||||
Axis_MC_MoveAbsolute.Execute := 0;
|
||||
lAxis.Move.bAbsolute := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
ELSIF Axis_MC_MoveAbsolute.Done THEN
|
||||
Axis_MC_MoveAbsolute.Execute := 0;
|
||||
lAxis.Move.bAbsolute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Move Absolute (Stopp with Trigger
|
||||
enAxSTATE_MOVE_ABSOLUTE_TRIGSTP:
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.Position := lAxis.Para.rPosition;
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.Velocity := lAxis.Para.rVelocity;
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.Deceleration := lAxis.Para.rDeceleration;
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.Direction := lAxis.Para.usDirection; //Interesting on Periodic Axises
|
||||
//Triggerinput is configured in Init Up
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.TriggerDistance := lAxis.Para.rTriggDistance;
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.ForceTriggerDistance := mcOFF; // --> force Trigger Dist even if Dest Pos is Exeeded
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.Execute := 1;
|
||||
|
||||
IF lAxis.bStop OR NOT lAxis.Move.bAbsolute THEN
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.Execute := 0;
|
||||
lAxis.Move.bAbsolute := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
ELSIF Axis_MC_BR_MoveAbsoluteTriggStop.Done THEN
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.Execute := 0;
|
||||
lAxis.Move.bAbsolute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Move Additive
|
||||
enAxSTATE_MOVE_ADDITIVE:
|
||||
Axis_MC_MoveAdditive.Distance := lAxis.Para.rDistance;
|
||||
Axis_MC_MoveAdditive.Velocity := lAxis.Para.rVelocity;
|
||||
Axis_MC_MoveAdditive.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_MoveAdditive.Deceleration := lAxis.Para.rDeceleration;
|
||||
Axis_MC_MoveAdditive.Execute := 1;
|
||||
|
||||
IF lAxis.bStop OR NOT lAxis.Move.bAdditive THEN
|
||||
lAxis.Move.bAdditive := 0;
|
||||
Axis_MC_MoveAdditive.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
ELSIF Axis_MC_MoveAdditive.Done THEN
|
||||
lAxis.Move.bAdditive := 0;
|
||||
Axis_MC_MoveAdditive.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Move Additive
|
||||
enAxSTATE_MOVE_ADDITIVE_TRIGSTP:
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.Distance := lAxis.Para.rDistance;
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.Velocity := lAxis.Para.rVelocity;
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.Deceleration := lAxis.Para.rDeceleration;
|
||||
//Triggerinput is configured in Init Up
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.TriggerDistance := lAxis.Para.rTriggDistance;
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.ForceTriggerDistance := mcOFF; // --> force Trigger Dist even if Dest Pos is Exeeded
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.Execute := 1;
|
||||
|
||||
IF lAxis.bStop OR NOT lAxis.Move.bAdditive THEN
|
||||
lAxis.Move.bAdditive := 0;
|
||||
Axis_MC_MoveAdditive.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
ELSIF Axis_MC_BR_MoveAdditiveTriggStop.Done THEN
|
||||
lAxis.Move.bAdditive := 0;
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Move Velocity
|
||||
enAxSTATE_MOVE_VELOCITY:
|
||||
Axis_MC_MoveVelocity.Velocity := lAxis.Para.rVelocity;
|
||||
Axis_MC_MoveVelocity.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_MoveVelocity.Deceleration := lAxis.Para.rDeceleration;
|
||||
Axis_MC_MoveVelocity.Direction := lAxis.Para.usDirection;
|
||||
Axis_MC_MoveVelocity.Execute := 1;
|
||||
|
||||
IF lAxis.bStop THEN
|
||||
Axis_MC_MoveVelocity.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Move Velocity Control (Only POWERLINK)
|
||||
//FixMe just prepared
|
||||
enAxSTATE_MOVE_VELOCITY_CTRL:
|
||||
Axis_MC_BR_VelocityControl.CyclicVelocityCorrection := 0;
|
||||
Axis_MC_BR_VelocityControl.CyclicVelocity := lAxis.Para.rVelocity;
|
||||
Axis_MC_BR_VelocityControl.CyclicTorque := lAxis.Para.rTorqueLimit;
|
||||
Axis_MC_BR_VelocityControl.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_BR_VelocityControl.Deceleration := lAxis.Para.rDeceleration;
|
||||
Axis_MC_BR_VelocityControl.TorqueMode := mcLIMIT;
|
||||
Axis_MC_BR_VelocityControl.Enable := 1;
|
||||
|
||||
//==============================================
|
||||
//Move Torque Control
|
||||
enAxSTATE_MOVE_TORQUE_CTRL:
|
||||
Axis_MC_BR_TorqueControl.StartSignal := NOT lAxis.bStop;
|
||||
Axis_MC_BR_TorqueControl.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_BR_TorqueControl.PosMaxVelocity := lAxis.Para.rVelocity;
|
||||
Axis_MC_BR_TorqueControl.NegMaxVelocity := -lAxis.Para.rVelocity;
|
||||
Axis_MC_BR_TorqueControl.Mode := mcCHECK_HOMING_OFF;
|
||||
//mcV_LIMIT_OFF; //(No Speed Limit)
|
||||
//mcV_LIMIT_CALC; //(No Speed Overrrun)
|
||||
//mcTIME_LIMIT; //(Enable Timelimit)
|
||||
Axis_MC_BR_TorqueControl.TimeLimit := 0;
|
||||
Axis_MC_BR_TorqueControl.StartParID := 0; //Not Used by now
|
||||
Axis_MC_BR_TorqueControl.TorqueRamp := 0; //Ramp Disabled
|
||||
Axis_MC_BR_TorqueControl.Torque := lAxis.Para.rTorqueLimit;
|
||||
//Axis_MC_BR_TorqueControl.TorqueParID := 0; //Alternative Torque Source
|
||||
Axis_MC_BR_TorqueControl.Enable := 1;
|
||||
|
||||
//Trigger Parameter rewrite
|
||||
Axis_MC_BR_TorqueControl.InitData := (lAxis.Para.rVelocity <> rOldVelocity) OR
|
||||
(lAxis.Para.rTorqueLimit <> rOldTorquelimit);
|
||||
rOldVelocity := lAxis.Para.rVelocity;
|
||||
rOldTorquelimit := lAxis.Para.rTorqueLimit;
|
||||
|
||||
lAxis.Status.bTorqueLimitReached := Axis_MC_BR_TorqueControl.InTorque AND
|
||||
NOT Axis_MC_BR_TorqueControl.AxisLimitActive;
|
||||
|
||||
IF lAxis.bStop THEN
|
||||
Axis_MC_BR_TorqueControl.Enable := 0;
|
||||
lAxis.Status.bTorqueLimitReached := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Move GEAR START
|
||||
enAxSTATE_MOVE_GEAR_START:
|
||||
Axis_MC_GearIn.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_GearIn.Deceleration := lAxis.Para.rDeceleration;
|
||||
Axis_MC_GearIn.RatioNumerator := lAxis.Para.iGearRatioNumerator;
|
||||
Axis_MC_GearIn.RatioDenominator := lAxis.Para.uiGearRatioDenominator;
|
||||
Axis_MC_GearIn.Execute := 1;
|
||||
|
||||
IF Axis_MC_GearIn.InGear THEN
|
||||
Axis_MC_GearIn.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
ELSIF lAxis.bStop THEN
|
||||
Axis_MC_GearIn.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
ELSIF lAxis.Move.bStopGearSlave THEN
|
||||
lAxis.Move.bStopGearSlave := 0;
|
||||
Axis_MC_GearIn.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_MOVE_GEAR_STOP;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Move GEAR POS START
|
||||
enAxSTATE_MOVE_GEARPOS_START:
|
||||
Axis_MC_GearInPos.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_GearInPos.RatioNumerator := lAxis.Para.iGearRatioNumerator;
|
||||
Axis_MC_GearInPos.RatioDenominator := lAxis.Para.uiGearRatioDenominator;
|
||||
Axis_MC_GearInPos.MasterSyncPosition := lAxis.Para.rGearMasterSyncPos;
|
||||
Axis_MC_GearInPos.SlaveSyncPosition := lAxis.Para.rGearSlaveSyncPos;
|
||||
Axis_MC_GearInPos.Velocity := lAxis.Para.rGearSyncVelocity;
|
||||
Axis_MC_GearInPos.Acceleration := lAxis.Para.rGearSyncAcceleration;
|
||||
Axis_MC_GearInPos.SyncMode := mcSHORTEST_WAY;
|
||||
Axis_MC_GearInPos.Execute := 1;
|
||||
|
||||
IF Axis_MC_GearInPos.InSync THEN
|
||||
Axis_MC_GearIn.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
ELSIF lAxis.bStop THEN
|
||||
Axis_MC_GearInPos.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
ELSIF lAxis.Move.bStopGearSlave THEN
|
||||
lAxis.Move.bStopGearSlave := 0;
|
||||
Axis_MC_GearInPos.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_MOVE_GEAR_STOP;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Move GEAR STOP
|
||||
enAxSTATE_MOVE_GEAR_STOP:
|
||||
Axis_MC_GearOut.Execute := 1;
|
||||
|
||||
IF Axis_MC_GearOut.Done THEN
|
||||
Axis_MC_GearOut.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Stop after an Error
|
||||
enAxSTATE_STOP_AFTER_ERROR:
|
||||
|
||||
IF (lAxis.Status.bMotionContinous) OR
|
||||
(lAxis.Status.bMotionDiscrete) OR
|
||||
(lAxis.Status.bMotionSynchronized) OR
|
||||
(lAxis.Status.bHoming) THEN
|
||||
Axis_MC_Stop.Deceleration := lAxis.Para.rDeceleration;
|
||||
Axis_MC_Stop.Execute := TRUE;
|
||||
IF Axis_MC_Stop.Done OR Axis_MC_Stop.Error THEN
|
||||
Axis_MC_Stop.Execute := FALSE;
|
||||
lAxis.enStep := enAxSTATE_ERROR;
|
||||
END_IF
|
||||
ELSE
|
||||
lAxis.enStep := enAxSTATE_ERROR;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Error
|
||||
enAxSTATE_ERROR:
|
||||
bDisableCommands := TRUE;
|
||||
IF Axis_MC_BR_ReadAxisError.Valid THEN
|
||||
IF (Axis_MC_BR_ReadAxisError.ErrorRecord.Number <> 0) THEN
|
||||
lAxis.Error.uiID := Axis_MC_BR_ReadAxisError.ErrorRecord.Number;
|
||||
END_IF
|
||||
|
||||
IF lAxis.Error.bAcknowledge THEN
|
||||
lAxis.Error.bAcknowledge := FALSE;
|
||||
IF (Axis_MC_BR_ReadAxisError.ErrorRecord.Number <> 0) THEN
|
||||
Axis_MC_BR_ReadAxisError.Acknowledge:=TRUE;
|
||||
END_IF
|
||||
|
||||
lAxis.enStep := enAxSTATE_ERROR_CHECK;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
|
||||
//==============================================
|
||||
//Error Axis
|
||||
enAxSTATE_ERROR_CHECK:
|
||||
IF (Axis_MC_BR_ReadAxisError.Valid) THEN
|
||||
IF (Axis_MC_BR_ReadAxisError.ErrorRecord.Number = 0) THEN
|
||||
lAxis.Error.uiID := 0;
|
||||
(* reset axis state IF the axis is in state ErrorStop *)
|
||||
IF lAxis.Status.bErrorstop AND Axis_MC_ReadStatus.Valid THEN
|
||||
lAxis.enStep := enAxSTATE_ERROR_RESET;
|
||||
ELSE
|
||||
lAxis.enStep := enAxSTATE_WAIT;
|
||||
END_IF
|
||||
ELSE
|
||||
lAxis.enStep := enAxSTATE_ERROR;
|
||||
END_IF
|
||||
Axis_MC_BR_ReadAxisError.Acknowledge := FALSE;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Reset DONE
|
||||
enAxSTATE_ERROR_RESET:
|
||||
Axis_MC_Reset.Execute := 1;
|
||||
|
||||
IF Axis_MC_Power.Error THEN
|
||||
Axis_MC_Power.Enable := 0;
|
||||
END_IF
|
||||
|
||||
IF Axis_MC_Reset.Done THEN
|
||||
Axis_MC_Reset.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_WAIT;
|
||||
ELSIF (Axis_MC_Reset.ErrorID <> 0) THEN
|
||||
lAxis.Error.uiID := Axis_MC_Reset.ErrorID;
|
||||
Axis_MC_Reset.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_ERROR;
|
||||
END_IF
|
||||
END_CASE
|
||||
|
||||
|
||||
IF bDisableCommands THEN
|
||||
//reset power
|
||||
Axis_MC_Power.Enable := 0;
|
||||
//reset all fb execute inputs we use
|
||||
Axis_MC_Home.Execute := 0;
|
||||
Axis_MC_BR_BrakeControl.Execute := 0;
|
||||
Axis_MC_BR_Simulation.Execute := 0;
|
||||
Axis_MC_Stop.Execute := 0;
|
||||
Axis_MC_MoveAbsolute.Execute := 0;
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.Execute := 0;
|
||||
Axis_MC_MoveAdditive.Execute := 0;
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.Execute := 0;
|
||||
Axis_MC_MoveVelocity.Execute := 0;
|
||||
Axis_MC_MoveVelocity.Execute := 0;
|
||||
Axis_MC_BR_VelocityControl.Enable := 0;
|
||||
Axis_MC_BR_TorqueControl.Enable := 0;
|
||||
Axis_MC_GearIn.Execute := 0;
|
||||
Axis_MC_GearInPos.Execute := 0;
|
||||
Axis_MC_GearOut.Execute := 0;
|
||||
Axis_MC_Reset.Execute := 0;
|
||||
|
||||
//reset user commands
|
||||
lAxis.bStop := 0;
|
||||
lAxis.bHome := 0;
|
||||
lAxis.Move.bBraketest := 0;
|
||||
lAxis.Move.bJogPos := 0;
|
||||
lAxis.Move.bJogNeg := 0;
|
||||
lAxis.Move.bVelocity := 0;
|
||||
lAxis.Move.bVelocityControl := 0;
|
||||
lAxis.Move.bAbsolute := 0;
|
||||
lAxis.Move.bAdditive := 0;
|
||||
lAxis.Move.bTorqueControl := 0;
|
||||
lAxis.Move.bStartGearSlave := 0;
|
||||
lAxis.Move.bStartGearPosSlave := 0;
|
||||
lAxis.Move.bStopGearSlave := 0;
|
||||
|
||||
bDisableCommands := FALSE;
|
||||
END_IF
|
||||
|
||||
//--------------------------------------------
|
||||
//Override Velocity and Acceleration
|
||||
Axis_MC_SetOverride.Enable := (lAxis.Para.rOverrideVelocity <> 1.0) OR (lAxis.Para.rOverrideAcceleration <> 1.0);
|
||||
Axis_MC_SetOverride.VelFactor := lAxis.Para.rOverrideVelocity;
|
||||
Axis_MC_SetOverride.AccFactor := lAxis.Para.rOverrideAcceleration;
|
||||
Axis_MC_SetOverride ();
|
||||
|
||||
//--------------------------------------------
|
||||
//Call Function Blocks
|
||||
Axis_MC_Power ();
|
||||
Axis_MC_BR_Simulation ();
|
||||
Axis_MC_Home ();
|
||||
Axis_MC_BR_BrakeControl ();
|
||||
Axis_MC_BR_InitModPos();
|
||||
Axis_MC_BR_JogVelocity ();
|
||||
Axis_MC_BR_JogLimitPosition ();
|
||||
Axis_MC_BR_JogTargetPosition ();
|
||||
Axis_MC_MoveAbsolute ();
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop();
|
||||
Axis_MC_MoveAdditive ();
|
||||
Axis_MC_BR_MoveAdditiveTriggStop ();
|
||||
Axis_MC_MoveVelocity ();
|
||||
AXis_MC_BR_MoveVelocityTriggStop ();
|
||||
Axis_MC_GearIn ();
|
||||
Axis_MC_GearInPos ();
|
||||
Axis_MC_GearOut ();
|
||||
Axis_MC_Stop ();
|
||||
Axis_MC_Reset ();
|
||||
Axis_MC_BR_TorqueControl ();
|
||||
|
||||
|
||||
//--------------------------------------------
|
||||
//Cyclic Parameter Read
|
||||
Axis_MC_BR_CyclicRead.Enable := 0;
|
||||
//Axis_MC_BR_CyclicRead.ParID ;= 4160 ; 4160 User Variable0 I2
|
||||
//Axis_MC_BR_CyclicRead.DataAddress = adr ()
|
||||
//Axis_MC_BR_CyclicRead.DataType = ncPAR_TYP_INT
|
||||
Axis_MC_BR_CyclicRead ();
|
||||
|
||||
|
||||
//---------------------------------------------
|
||||
//Read individual Parameter
|
||||
|
||||
IF Axis_MC_BR_ReadParID.Done THEN
|
||||
END_IF
|
||||
IF Axis_MC_BR_ReadParID.Error THEN
|
||||
uiMCReadError := Axis_MC_BR_ReadParID.ErrorID;
|
||||
END_IF
|
||||
Axis_MC_BR_ReadParID.Execute := 0;
|
||||
Axis_MC_BR_ReadParID.ParID := 4128;
|
||||
Axis_MC_BR_ReadParID.DataAddress := ADR (lAxis);
|
||||
Axis_MC_BR_ReadParID.DataType := ncPAR_TYP_REAL;
|
||||
Axis_MC_BR_ReadParID ();
|
||||
|
||||
|
||||
//--------------------------------------------
|
||||
//Write individual Parameter
|
||||
|
||||
//Write UserParam1 on change
|
||||
(*
|
||||
rUser_Var1 access lAxis.Para.udAdrParamUserVar1
|
||||
if (rUser_VarTemp <> rUser_Var1) and\
|
||||
not Axis_MC_BR_WriteParID.Busy then
|
||||
Axis_MC_BR_WriteParID.Execute = 1
|
||||
rUser_VarTemp = rUser_Var1
|
||||
END_IF
|
||||
if Axis_MC_BR_WriteParID.Done or Axis_MC_BR_WriteParID.Error then
|
||||
if Axis_MC_BR_WriteParID.Error then
|
||||
uiMCWriteError = Axis_MC_BR_WriteParID.ErrorID
|
||||
END_IF
|
||||
Axis_MC_BR_WriteParID.Execute := 0;
|
||||
END_IF
|
||||
Axis_MC_BR_WriteParID.ParID = 586 ;USER_R4_VAR1
|
||||
Axis_MC_BR_WriteParID.DataAddress = adr (rUser_VarTemp)
|
||||
Axis_MC_BR_WriteParID.DataType = ncPAR_TYP_REAL
|
||||
Axis_MC_BR_WriteParID fub MC_BR_WriteParID ()
|
||||
*)
|
||||
|
||||
//-----------------------------------------------
|
||||
//Cyclick write of Parameter
|
||||
Axis_MC_BR_CyclicWrite.Enable := 0;
|
||||
Axis_MC_BR_CyclicWrite.DataAddress := ADR (rUser_VarTemp);
|
||||
Axis_MC_BR_CyclicWrite.DataType := ncPAR_TYP_REAL;
|
||||
Axis_MC_BR_CyclicWrite.ParID := 586; //USER_R4_VAR1
|
||||
Axis_MC_BR_CyclicWrite ();
|
||||
END_PROGRAM
|
||||
@@ -1,90 +0,0 @@
|
||||
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
//Which Axis
|
||||
lAxis ACCESS ADR (gAxis[0]);
|
||||
lAxisActPos ACCESS ADR (gAxisActPos[0]);
|
||||
lAxisMaster ACCESS ADR (gAxis[0]);
|
||||
lbSimulation ACCESS ADR (gMachine.bAxisSimulation);
|
||||
rUser_Var1 ACCESS ADR (grDummy);
|
||||
lAxis.bVAxis := TRUE;
|
||||
|
||||
//Configure Trigger for Triggermovements (Absolute/Additive/Velocity)
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.TriggerInput.InputSource := ncTRIGGER1; //ncTrigger2
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.TriggerInput.Edge := ncP_EDGE; //ncN_Edge
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.TriggerInput.InputSource := ncTRIGGER1; //ncTrigger2
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.TriggerInput.Edge := ncP_EDGE; //ncN_Edge
|
||||
AXis_MC_BR_MoveVelocityTriggStop.TriggerInput.InputSource := ncTRIGGER1; //ncTrigger2
|
||||
AXis_MC_BR_MoveVelocityTriggStop.TriggerInput.Edge := ncP_EDGE; //ncN_Edge
|
||||
|
||||
//Access global ACP10 Axis Objects
|
||||
udAxisObj := ADR (gvAxShaftMaster);
|
||||
//This Axis is always slave (in case OF CAM/Gear)
|
||||
udAxisMasterObj := ADR (gvAxShaftMaster);
|
||||
udAxisSlaveObj := udAxisObj;
|
||||
|
||||
//Initial Step
|
||||
lAxis.enStep := enAxSTATE_WAIT;
|
||||
|
||||
|
||||
//Overhand Axis Obj to FunctionBlocks
|
||||
Axis_MC_BR_AxisErrorCollector.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadDriveStatus.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadDriveStatus.AdrDriveStatus := ADR (lAxis.DriveStatus);
|
||||
Axis_MC_BR_JogVelocity.Axis := udAxisObj;
|
||||
Axis_MC_BR_JogLimitPosition.Axis := udAxisObj;
|
||||
Axis_MC_BR_JogTargetPosition.Axis := udAxisObj;
|
||||
Axis_MC_BR_Simulation.Axis := udAxisObj;
|
||||
Axis_MC_BR_SetHardwareInputs.Axis := udAxisObj;
|
||||
Axis_MC_BR_TorqueControl.Axis := udAxisObj;
|
||||
Axis_MC_BR_VelocityControl.Axis := udAxisObj;
|
||||
Axis_MC_ACP_ENCOD_REF.Axis := udAxisObj;
|
||||
Axis_MC_GearIn.Master := udAxisMasterObj;
|
||||
Axis_MC_GearIn.Slave := udAxisSlaveObj;
|
||||
Axis_MC_GearInPos.Master := udAxisMasterObj;
|
||||
Axis_MC_GearInPos.Slave := udAxisSlaveObj;
|
||||
Axis_MC_GearOut.Slave := udAxisSlaveObj;
|
||||
Axis_MC_Home.Axis := udAxisObj;
|
||||
Axis_MC_BR_InitModPos.Axis := udAxisMasterObj;
|
||||
Axis_MC_MoveAbsolute.Axis := udAxisObj;
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.Axis := udAxisObj;
|
||||
Axis_MC_MoveAdditive.Axis := udAxisObj;
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.Axis := udAxisObj;
|
||||
Axis_MC_MoveVelocity.Axis := udAxisObj;
|
||||
AXis_MC_BR_MoveVelocityTriggStop.Axis := udAxisObj;
|
||||
Axis_MC_Power.Axis := udAxisObj;
|
||||
Axis_MC_ReadActualPosition.Axis := udAxisObj;
|
||||
Axis_MC_ReadActualVelocity.Axis := udAxisObj;
|
||||
Axis_MC_ReadActualTorque.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadAxisError.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadAxisError.Mode := mcTEXT;
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataAddress := ADR (lAxis.Error.Text);
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataLength := SIZEOF (lAxis.Error.Text);
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataObjectName := 'acp10etxde';
|
||||
Axis_MC_BR_ReadAxisError.Configuration.Format := mcWRAP + mcNULL;
|
||||
Axis_MC_BR_ReadAxisError.Configuration.LineLength := SIZEOF (lAxis.Error.Text[0]);
|
||||
Axis_MC_ReadStatus.Axis := udAxisObj;
|
||||
Axis_MC_Reset.Axis := udAxisObj;
|
||||
Axis_MC_SetOverride.Axis := udAxisObj;
|
||||
Axis_MC_Stop.Axis := udAxisObj;
|
||||
|
||||
|
||||
|
||||
//Parameter
|
||||
Axis_MC_BR_CyclicRead.Axis := udAxisObj;
|
||||
Axis_MC_BR_CyclicWrite.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadParID.Axis := udAxisObj;
|
||||
Axis_MC_BR_WriteParID.Axis := udAxisObj;
|
||||
|
||||
|
||||
//Enable Fubs
|
||||
Axis_MC_BR_AxisErrorCollector.Enable := TRUE;
|
||||
Axis_MC_BR_ReadAxisError.Enable := TRUE;
|
||||
Axis_MC_ReadStatus.Enable := TRUE;
|
||||
Axis_MC_ReadActualPosition.Enable := TRUE;
|
||||
Axis_MC_ReadActualVelocity.Enable := TRUE;
|
||||
Axis_MC_ReadActualTorque.Enable := TRUE; //Not for Stepper Axises
|
||||
Axis_MC_BR_ReadDriveStatus.Enable := TRUE;
|
||||
|
||||
|
||||
END_PROGRAM
|
||||
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.5.68 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Initialization code">AxisctrlInit.st</File>
|
||||
<File Description="Cyclic code">AxisctrlCyclic.st</File>
|
||||
<File Description="Local variables" Private="true">Axisctrl.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
@@ -1,92 +0,0 @@
|
||||
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
//Which Axis
|
||||
lAxis ACCESS ADR (gAxis[1]);
|
||||
lAxisActPos ACCESS ADR (gAxisActPos[1]);
|
||||
lAxisMaster ACCESS ADR (gAxis[0]);
|
||||
lbSimulation ACCESS ADR (gMachine.bAxisSimulation);
|
||||
rUser_Var1 ACCESS ADR (grDummy);
|
||||
lAxis.bVAxis := FALSE;
|
||||
|
||||
//Configure Trigger for Triggermovements (Absolute/Additive/Velocity)
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.TriggerInput.InputSource := ncTRIGGER1; //ncTrigger2
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.TriggerInput.Edge := ncP_EDGE; //ncN_Edge
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.TriggerInput.InputSource := ncTRIGGER1; //ncTrigger2
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.TriggerInput.Edge := ncP_EDGE; //ncN_Edge
|
||||
AXis_MC_BR_MoveVelocityTriggStop.TriggerInput.InputSource := ncTRIGGER1; //ncTrigger2
|
||||
AXis_MC_BR_MoveVelocityTriggStop.TriggerInput.Edge := ncP_EDGE; //ncN_Edge
|
||||
|
||||
//Access global ACP10 Axis Objects
|
||||
udAxisObj := ADR (gAxShaft1);
|
||||
//This Axis is always slave (in case OF CAM/Gear)
|
||||
udAxisMasterObj := ADR (gvAxShaftMaster);
|
||||
udAxisSlaveObj := udAxisObj;
|
||||
|
||||
//Initial Step
|
||||
lAxis.enStep := enAxSTATE_WAIT;
|
||||
|
||||
|
||||
//Overhand Axis Obj to FunctionBlocks
|
||||
Axis_MC_BR_AxisErrorCollector.Axis := udAxisObj;
|
||||
Axis_MC_BR_BrakeControl.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadDriveStatus.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadDriveStatus.AdrDriveStatus := ADR (lAxis.DriveStatus);
|
||||
Axis_MC_BR_JogVelocity.Axis := udAxisObj;
|
||||
Axis_MC_BR_JogLimitPosition.Axis := udAxisObj;
|
||||
Axis_MC_BR_JogTargetPosition.Axis := udAxisObj;
|
||||
Axis_MC_BR_Simulation.Axis := udAxisObj;
|
||||
Axis_MC_BR_SetHardwareInputs.Axis := udAxisObj;
|
||||
Axis_MC_BR_TorqueControl.Axis := udAxisObj;
|
||||
Axis_MC_BR_VelocityControl.Axis := udAxisObj;
|
||||
Axis_MC_ACP_ENCOD_REF.Axis := udAxisObj;
|
||||
Axis_MC_GearIn.Master := udAxisMasterObj;
|
||||
Axis_MC_GearIn.Slave := udAxisSlaveObj;
|
||||
Axis_MC_GearInPos.Master := udAxisMasterObj;
|
||||
Axis_MC_GearInPos.Slave := udAxisSlaveObj;
|
||||
Axis_MC_GearOut.Slave := udAxisSlaveObj;
|
||||
Axis_MC_Halt.Axis := udAxisObj;
|
||||
Axis_MC_Home.Axis := udAxisObj;
|
||||
Axis_MC_BR_InitModPos.Axis := udAxisMasterObj;
|
||||
Axis_MC_MoveAbsolute.Axis := udAxisObj;
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.Axis := udAxisObj;
|
||||
Axis_MC_MoveAdditive.Axis := udAxisObj;
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.Axis := udAxisObj;
|
||||
Axis_MC_MoveVelocity.Axis := udAxisObj;
|
||||
AXis_MC_BR_MoveVelocityTriggStop.Axis := udAxisObj;
|
||||
Axis_MC_Power.Axis := udAxisObj;
|
||||
Axis_MC_ReadActualPosition.Axis := udAxisObj;
|
||||
Axis_MC_ReadActualVelocity.Axis := udAxisObj;
|
||||
Axis_MC_ReadActualTorque.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadAxisError.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadAxisError.Mode := mcTEXT;
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataAddress := ADR (lAxis.Error.Text);
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataLength := SIZEOF (lAxis.Error.Text);
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataObjectName := 'acp10etxde';
|
||||
Axis_MC_BR_ReadAxisError.Configuration.Format := mcWRAP + mcNULL;
|
||||
Axis_MC_BR_ReadAxisError.Configuration.LineLength := SIZEOF (lAxis.Error.Text[0]);
|
||||
Axis_MC_ReadStatus.Axis := udAxisObj;
|
||||
Axis_MC_Reset.Axis := udAxisObj;
|
||||
Axis_MC_SetOverride.Axis := udAxisObj;
|
||||
Axis_MC_Stop.Axis := udAxisObj;
|
||||
|
||||
|
||||
|
||||
//Parameter
|
||||
Axis_MC_BR_CyclicRead.Axis := udAxisObj;
|
||||
Axis_MC_BR_CyclicWrite.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadParID.Axis := udAxisObj;
|
||||
Axis_MC_BR_WriteParID.Axis := udAxisObj;
|
||||
|
||||
|
||||
//Enable Fubs
|
||||
Axis_MC_BR_AxisErrorCollector.Enable := TRUE;
|
||||
Axis_MC_BR_ReadAxisError.Enable := TRUE;
|
||||
Axis_MC_ReadStatus.Enable := TRUE;
|
||||
Axis_MC_ReadActualPosition.Enable := TRUE;
|
||||
Axis_MC_ReadActualVelocity.Enable := TRUE;
|
||||
Axis_MC_ReadActualTorque.Enable := TRUE; //Not for Stepper Axises
|
||||
Axis_MC_BR_ReadDriveStatus.Enable := TRUE;
|
||||
|
||||
|
||||
END_PROGRAM
|
||||
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.5.68 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Initialization code">AxisctrlInit1.st</File>
|
||||
<File Reference="true">\Logical\Axises\Axisctrl\AxisctrlCyclic.st</File>
|
||||
<File Description="Local variables" Private="true" Reference="true">\Logical\Axises\Axisctrl\Axisctrl.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
@@ -1,92 +0,0 @@
|
||||
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
//Which Axis
|
||||
lAxis ACCESS ADR (gAxis[5]);
|
||||
lAxisActPos ACCESS ADR (gAxisActPos[5]);
|
||||
lAxisMaster ACCESS ADR (gAxis[0]);
|
||||
lbSimulation ACCESS ADR (gMachine.bAxisSimulation);
|
||||
rUser_Var1 ACCESS ADR (grDummy);
|
||||
lAxis.bVAxis := FALSE;
|
||||
|
||||
//Configure Trigger for Triggermovements (Absolute/Additive/Velocity)
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.TriggerInput.InputSource := ncTRIGGER1; //ncTrigger2
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.TriggerInput.Edge := ncP_EDGE; //ncN_Edge
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.TriggerInput.InputSource := ncTRIGGER1; //ncTrigger2
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.TriggerInput.Edge := ncP_EDGE; //ncN_Edge
|
||||
AXis_MC_BR_MoveVelocityTriggStop.TriggerInput.InputSource := ncTRIGGER1; //ncTrigger2
|
||||
AXis_MC_BR_MoveVelocityTriggStop.TriggerInput.Edge := ncP_EDGE; //ncN_Edge
|
||||
|
||||
//Access global ACP10 Axis Objects
|
||||
udAxisObj := ADR (gAxExtra1);
|
||||
//This Axis is always slave (in case OF CAM/Gear)
|
||||
udAxisMasterObj := ADR (gAxExtra1);
|
||||
udAxisSlaveObj := udAxisObj;
|
||||
|
||||
//Initial Step
|
||||
lAxis.enStep := enAxSTATE_WAIT;
|
||||
|
||||
|
||||
//Overhand Axis Obj to FunctionBlocks
|
||||
Axis_MC_BR_AxisErrorCollector.Axis := udAxisObj;
|
||||
Axis_MC_BR_BrakeControl.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadDriveStatus.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadDriveStatus.AdrDriveStatus := ADR (lAxis.DriveStatus);
|
||||
Axis_MC_BR_JogVelocity.Axis := udAxisObj;
|
||||
Axis_MC_BR_JogLimitPosition.Axis := udAxisObj;
|
||||
Axis_MC_BR_JogTargetPosition.Axis := udAxisObj;
|
||||
Axis_MC_BR_Simulation.Axis := udAxisObj;
|
||||
Axis_MC_BR_SetHardwareInputs.Axis := udAxisObj;
|
||||
Axis_MC_BR_TorqueControl.Axis := udAxisObj;
|
||||
Axis_MC_BR_VelocityControl.Axis := udAxisObj;
|
||||
Axis_MC_ACP_ENCOD_REF.Axis := udAxisObj;
|
||||
Axis_MC_GearIn.Master := udAxisMasterObj;
|
||||
Axis_MC_GearIn.Slave := udAxisSlaveObj;
|
||||
Axis_MC_GearInPos.Master := udAxisMasterObj;
|
||||
Axis_MC_GearInPos.Slave := udAxisSlaveObj;
|
||||
Axis_MC_GearOut.Slave := udAxisSlaveObj;
|
||||
Axis_MC_Halt.Axis := udAxisObj;
|
||||
Axis_MC_Home.Axis := udAxisObj;
|
||||
Axis_MC_BR_InitModPos.Axis := udAxisMasterObj;
|
||||
Axis_MC_MoveAbsolute.Axis := udAxisObj;
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.Axis := udAxisObj;
|
||||
Axis_MC_MoveAdditive.Axis := udAxisObj;
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.Axis := udAxisObj;
|
||||
Axis_MC_MoveVelocity.Axis := udAxisObj;
|
||||
AXis_MC_BR_MoveVelocityTriggStop.Axis := udAxisObj;
|
||||
Axis_MC_Power.Axis := udAxisObj;
|
||||
Axis_MC_ReadActualPosition.Axis := udAxisObj;
|
||||
Axis_MC_ReadActualVelocity.Axis := udAxisObj;
|
||||
Axis_MC_ReadActualTorque.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadAxisError.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadAxisError.Mode := mcTEXT;
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataAddress := ADR (lAxis.Error.Text);
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataLength := SIZEOF (lAxis.Error.Text);
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataObjectName := 'acp10etxde';
|
||||
Axis_MC_BR_ReadAxisError.Configuration.Format := mcWRAP + mcNULL;
|
||||
Axis_MC_BR_ReadAxisError.Configuration.LineLength := SIZEOF (lAxis.Error.Text[0]);
|
||||
Axis_MC_ReadStatus.Axis := udAxisObj;
|
||||
Axis_MC_Reset.Axis := udAxisObj;
|
||||
Axis_MC_SetOverride.Axis := udAxisObj;
|
||||
Axis_MC_Stop.Axis := udAxisObj;
|
||||
|
||||
|
||||
|
||||
//Parameter
|
||||
Axis_MC_BR_CyclicRead.Axis := udAxisObj;
|
||||
Axis_MC_BR_CyclicWrite.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadParID.Axis := udAxisObj;
|
||||
Axis_MC_BR_WriteParID.Axis := udAxisObj;
|
||||
|
||||
|
||||
//Enable Fubs
|
||||
Axis_MC_BR_AxisErrorCollector.Enable := TRUE;
|
||||
Axis_MC_BR_ReadAxisError.Enable := TRUE;
|
||||
Axis_MC_ReadStatus.Enable := TRUE;
|
||||
Axis_MC_ReadActualPosition.Enable := TRUE;
|
||||
Axis_MC_ReadActualVelocity.Enable := TRUE;
|
||||
Axis_MC_ReadActualTorque.Enable := TRUE; //Not for Stepper Axises
|
||||
Axis_MC_BR_ReadDriveStatus.Enable := TRUE;
|
||||
|
||||
|
||||
END_PROGRAM
|
||||
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.5.68 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Initialization code">AxisctrlInitExtra1.st</File>
|
||||
<File Reference="true">\Logical\Axises\Axisctrl\AxisctrlCyclic.st</File>
|
||||
<File Description="Local variables" Private="true" Reference="true">\Logical\Axises\Axisctrl\Axisctrl.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
@@ -1,92 +0,0 @@
|
||||
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
//Which Axis
|
||||
lAxis ACCESS ADR (gAxis[6]);
|
||||
lAxisActPos ACCESS ADR (gAxisActPos[6]);
|
||||
lAxisMaster ACCESS ADR (gAxis[0]);
|
||||
lbSimulation ACCESS ADR (gMachine.bAxisSimulation);
|
||||
rUser_Var1 ACCESS ADR (grDummy);
|
||||
lAxis.bVAxis := FALSE;
|
||||
|
||||
//Configure Trigger for Triggermovements (Absolute/Additive/Velocity)
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.TriggerInput.InputSource := ncTRIGGER1; //ncTrigger2
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.TriggerInput.Edge := ncP_EDGE; //ncN_Edge
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.TriggerInput.InputSource := ncTRIGGER1; //ncTrigger2
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.TriggerInput.Edge := ncP_EDGE; //ncN_Edge
|
||||
AXis_MC_BR_MoveVelocityTriggStop.TriggerInput.InputSource := ncTRIGGER1; //ncTrigger2
|
||||
AXis_MC_BR_MoveVelocityTriggStop.TriggerInput.Edge := ncP_EDGE; //ncN_Edge
|
||||
|
||||
//Access global ACP10 Axis Objects
|
||||
udAxisObj := ADR (gAxExtra2);
|
||||
//This Axis is always slave (in case OF CAM/Gear)
|
||||
udAxisMasterObj := ADR (gAxExtra2);
|
||||
udAxisSlaveObj := udAxisObj;
|
||||
|
||||
//Initial Step
|
||||
lAxis.enStep := enAxSTATE_WAIT;
|
||||
|
||||
|
||||
//Overhand Axis Obj to FunctionBlocks
|
||||
Axis_MC_BR_AxisErrorCollector.Axis := udAxisObj;
|
||||
Axis_MC_BR_BrakeControl.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadDriveStatus.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadDriveStatus.AdrDriveStatus := ADR (lAxis.DriveStatus);
|
||||
Axis_MC_BR_JogVelocity.Axis := udAxisObj;
|
||||
Axis_MC_BR_JogLimitPosition.Axis := udAxisObj;
|
||||
Axis_MC_BR_JogTargetPosition.Axis := udAxisObj;
|
||||
Axis_MC_BR_Simulation.Axis := udAxisObj;
|
||||
Axis_MC_BR_SetHardwareInputs.Axis := udAxisObj;
|
||||
Axis_MC_BR_TorqueControl.Axis := udAxisObj;
|
||||
Axis_MC_BR_VelocityControl.Axis := udAxisObj;
|
||||
Axis_MC_ACP_ENCOD_REF.Axis := udAxisObj;
|
||||
Axis_MC_GearIn.Master := udAxisMasterObj;
|
||||
Axis_MC_GearIn.Slave := udAxisSlaveObj;
|
||||
Axis_MC_GearInPos.Master := udAxisMasterObj;
|
||||
Axis_MC_GearInPos.Slave := udAxisSlaveObj;
|
||||
Axis_MC_GearOut.Slave := udAxisSlaveObj;
|
||||
Axis_MC_Halt.Axis := udAxisObj;
|
||||
Axis_MC_Home.Axis := udAxisObj;
|
||||
Axis_MC_BR_InitModPos.Axis := udAxisMasterObj;
|
||||
Axis_MC_MoveAbsolute.Axis := udAxisObj;
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop.Axis := udAxisObj;
|
||||
Axis_MC_MoveAdditive.Axis := udAxisObj;
|
||||
Axis_MC_BR_MoveAdditiveTriggStop.Axis := udAxisObj;
|
||||
Axis_MC_MoveVelocity.Axis := udAxisObj;
|
||||
AXis_MC_BR_MoveVelocityTriggStop.Axis := udAxisObj;
|
||||
Axis_MC_Power.Axis := udAxisObj;
|
||||
Axis_MC_ReadActualPosition.Axis := udAxisObj;
|
||||
Axis_MC_ReadActualVelocity.Axis := udAxisObj;
|
||||
Axis_MC_ReadActualTorque.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadAxisError.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadAxisError.Mode := mcTEXT;
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataAddress := ADR (lAxis.Error.Text);
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataLength := SIZEOF (lAxis.Error.Text);
|
||||
Axis_MC_BR_ReadAxisError.Configuration.DataObjectName := 'acp10etxde';
|
||||
Axis_MC_BR_ReadAxisError.Configuration.Format := mcWRAP + mcNULL;
|
||||
Axis_MC_BR_ReadAxisError.Configuration.LineLength := SIZEOF (lAxis.Error.Text[0]);
|
||||
Axis_MC_ReadStatus.Axis := udAxisObj;
|
||||
Axis_MC_Reset.Axis := udAxisObj;
|
||||
Axis_MC_SetOverride.Axis := udAxisObj;
|
||||
Axis_MC_Stop.Axis := udAxisObj;
|
||||
|
||||
|
||||
|
||||
//Parameter
|
||||
Axis_MC_BR_CyclicRead.Axis := udAxisObj;
|
||||
Axis_MC_BR_CyclicWrite.Axis := udAxisObj;
|
||||
Axis_MC_BR_ReadParID.Axis := udAxisObj;
|
||||
Axis_MC_BR_WriteParID.Axis := udAxisObj;
|
||||
|
||||
|
||||
//Enable Fubs
|
||||
Axis_MC_BR_AxisErrorCollector.Enable := TRUE;
|
||||
Axis_MC_BR_ReadAxisError.Enable := TRUE;
|
||||
Axis_MC_ReadStatus.Enable := TRUE;
|
||||
Axis_MC_ReadActualPosition.Enable := TRUE;
|
||||
Axis_MC_ReadActualVelocity.Enable := TRUE;
|
||||
Axis_MC_ReadActualTorque.Enable := TRUE; //Not for Stepper Axises
|
||||
Axis_MC_BR_ReadDriveStatus.Enable := TRUE;
|
||||
|
||||
|
||||
END_PROGRAM
|
||||
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.5.68 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Initialization code">AxisctrlInitExtra2.st</File>
|
||||
<File Reference="true">\Logical\Axises\Axisctrl\AxisctrlCyclic.st</File>
|
||||
<File Description="Local variables" Private="true" Reference="true">\Logical\Axises\Axisctrl\Axisctrl.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
@@ -1,29 +1,18 @@
|
||||
VAR
|
||||
gPS : typPS;
|
||||
gAxis : ARRAY[0..6] OF typAxis; (*Axis Datasructure / Controlinterface*)
|
||||
gMAxTrace : typMultAx_Trace; (*Multiaxtrace*)
|
||||
gAxisActPos : ARRAY[0..6] OF REAL;
|
||||
grDummy : REAL; (*Dummy Real to be accessed from Axistasks*)
|
||||
gToolalarms : typAlarm; (*Werkzeugalarme*)
|
||||
END_VAR
|
||||
(*//ACP/SDC Axobjects*)
|
||||
VAR
|
||||
gAxPS : ACP10AXIS_typ;
|
||||
gvAxShaftMaster : ACP10VAXIS_typ;
|
||||
gAxShaft1 : ACP10AXIS_typ;
|
||||
gAxShaft2 : ACP10AXIS_typ;
|
||||
gAxShaft3 : ACP10AXIS_typ;
|
||||
gAxShaft4 : ACP10AXIS_typ;
|
||||
gAxExtra1 : ACP10AXIS_typ;
|
||||
gAxExtra2 : ACP10AXIS_typ;
|
||||
gCmdTightenBelt1Rob1 : BOOL; (*Spannen Band 1 Roboter 1*)
|
||||
gCmdTightenBelt2Rob1 : BOOL; (*Spannen Band 2 Roboter 1*)
|
||||
gCmdTightenBelt1Rob2 : BOOL; (*Spannen Band 1 Roboter 1*)
|
||||
gCmdTightenBelt2Rob2 : BOOL; (*Spannen Band 2 Roboter 2*)
|
||||
gCmdHoldDoorClosedRob1 : BOOL; (*Zuhaltung Roboter 1*)
|
||||
gCmdHoldDoorClosedRob2 : BOOL; (*Zuhaltung Roboter 1*)
|
||||
END_VAR
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//Retain*)
|
||||
(*Constants*)
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
VAR RETAIN
|
||||
grConsumedEnergy : REAL;
|
||||
grRegeneratedEnergy : REAL;
|
||||
grAxisABSOffShaft : ARRAY[1..4] OF REAL; (*Absolute Offsets*)
|
||||
grPressPosHome : REAL := 200.0; (*Presse Grundstellung Ein/Ausfahren allg*)
|
||||
giSpeedGrinder1 : INT := 800; (*[rpm] Bandschleifer*)
|
||||
giSpeedGrinder2 : INT := 800; (*[rpm] Bandschleifer*)
|
||||
END_VAR
|
||||
(*Constants*)
|
||||
|
||||
@@ -41,4 +41,19 @@ TYPE
|
||||
enTool2StepHome_WAIT_START_HOME, (*Auf Startbefehl warten f<>r Grundstellung*)
|
||||
enTool2StepHome_HOMEPOS (*Grundstellung*)
|
||||
);
|
||||
typ_enPrograms :
|
||||
( (*Teile / Programme*)
|
||||
enROB_PRG_BEL := 10, (*Vimercati BEL*)
|
||||
enROB_PRG_CBF := 11, (*Preh Centerstack*)
|
||||
enROB_PRG_FKA := 12, (*Preh Fondklima*)
|
||||
enROB_PRG_FFG := 13, (*DRS Fondfrischluft*)
|
||||
enROB_PRG_FoKo := 14, (*Magna FoKo*)
|
||||
enROB_PRG_MAL := 15, (*Magna MAL*)
|
||||
enROB_PRG_SPR := 16, (*Alps Sport Rechts*)
|
||||
enROB_PRG_SPL := 17, (*Alps Sport Links*)
|
||||
enROB_PRG_LUR := 18, (*Alps Luxus Rechts*)
|
||||
enROB_PRG_LUL := 19, (*Alps Luxus Links*)
|
||||
enROB_PRG_BAR := 18, (*Alps Basis Rechts*)
|
||||
enROB_PRG_BAL := 19 (*Alps Basis Links*)
|
||||
);
|
||||
END_TYPE
|
||||
|
||||
@@ -6,6 +6,11 @@ VAR
|
||||
gTool1Interface : typ_ToolInterface; (*Interface zu Werkzeug 1*)
|
||||
gTool2Interface : typ_ToolInterface; (*Interface zu werkzeug 2*)
|
||||
END_VAR
|
||||
(*Remanent*)
|
||||
VAR
|
||||
genActivePrgRob1 : typ_enPrograms; (*Actives Programm Roboter 1*)
|
||||
genActivePrgRob2 : typ_enPrograms; (*Actives Programm Roboter 1*)
|
||||
END_VAR
|
||||
(*Permanent*)
|
||||
VAR RETAIN
|
||||
gusSelectedTool : USINT; (*Angew<65>hltes Werkzeug*)
|
||||
|
||||
271
Logical/Axises/GrindCtrl/GrindCtrl.st
Normal file
271
Logical/Axises/GrindCtrl/GrindCtrl.st
Normal file
@@ -0,0 +1,271 @@
|
||||
PROGRAM _CYCLIC
|
||||
|
||||
IF EDGEPOS (bBlink0_1) THEN
|
||||
udSteptime := udSteptime + 492;
|
||||
udCycletime := udCycletime + 492;
|
||||
END_IF
|
||||
|
||||
|
||||
|
||||
//States //FixME
|
||||
lMachine.bMachineHOME := lABBRobot.In.bWZChangePart;
|
||||
IF lMachine.bMachineHOME THEN
|
||||
lMachine.bRequestHoming := FALSE;
|
||||
END_IF
|
||||
|
||||
TON_SafetyOk.IN := lbSafetyOk;
|
||||
TON_SafetyOk.PT := t#250ms;
|
||||
TON_SafetyOk ();
|
||||
|
||||
bSafetyOk := TON_SafetyOk.Q;
|
||||
IF NOT bSafetyOk THEN
|
||||
lABBRobot.Out.bSwitchMotorOn := FALSE;
|
||||
END_IF
|
||||
|
||||
//Move Conditions
|
||||
MoveConditions.bEnableNegSlay1 := (lMachine.bSetupMode OR (lMachine.enMode = enMACH_JOG)) AND lbGateIsOpen;
|
||||
MoveConditions.bEnablePosSlay1 := (lMachine.bSetupMode OR (lMachine.enMode = enMACH_JOG)) AND lbGateIsOpen;
|
||||
MoveConditions.bEnableNegSlay2 := (lMachine.bSetupMode OR (lMachine.enMode = enMACH_JOG)) AND lbGateIsOpen;
|
||||
MoveConditions.bEnablePosSlay2 := (lMachine.bSetupMode OR (lMachine.enMode = enMACH_JOG)) AND lbGateIsOpen;
|
||||
|
||||
//Safety Door
|
||||
MoveConditions.bEnableCloseGate := (lbToolslay1IsIn OR lbToolslay1IsOut) AND
|
||||
(lbToolslay2IsIn OR lbToolslay2IsOut);
|
||||
|
||||
|
||||
//Status Control vor Visual Component Controls
|
||||
StatusVCControls.usJogPosSlay1 := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnablePosSlay1), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT ((lMachine.enMode <> enMACH_JOG)), VC_HIDE_BITPOS);
|
||||
StatusVCControls.usJogNegSlay1 := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnableNegSlay1), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT ((lMachine.enMode <> enMACH_JOG)), VC_HIDE_BITPOS);
|
||||
StatusVCControls.usJogPosSlay2 := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnablePosSlay2), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT ((lMachine.enMode <> enMACH_JOG)), VC_HIDE_BITPOS);
|
||||
StatusVCControls.usJogNegSlay2 := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnableNegSlay2), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT ((lMachine.enMode <> enMACH_JOG)), VC_HIDE_BITPOS);
|
||||
|
||||
//gbCmdCloseDoorToolslay1
|
||||
StatusVCControls.usCloseGate := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnableCloseGate), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT ((lMachine.enMode <> enMACH_JOG) OR lbGateIsOpen), VC_HIDE_BITPOS);
|
||||
StatusVCControls.usOpenGate := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnableOpenGate), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT ((lMachine.enMode <> enMACH_JOG) OR lbGateIsClosed), VC_HIDE_BITPOS);
|
||||
|
||||
StatusVCControls.usOpenGate := SHL (BOOL_TO_USINT (FALSE), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (lMachine.enMode <> enMACH_AUTOMATIC), VC_HIDE_BITPOS);
|
||||
//Belt Tightgening
|
||||
StatusVCControls.usTightenBeltGrinder1 := SHL (BOOL_TO_USINT ((lMachine.enMode <> enMACH_JOG) OR lbTightenBelt1), VC_HIDE_BITPOS);
|
||||
StatusVCControls.usReleaseBeltGrinder1 := SHL (BOOL_TO_USINT ((lMachine.enMode <> enMACH_JOG) OR NOT lbTightenBelt1), VC_HIDE_BITPOS);
|
||||
|
||||
//Reset Manual Commands
|
||||
IF (lMachine.enMode <> enMACH_JOG) THEN
|
||||
ManualCommands.bStartGrinder1 := FALSE;
|
||||
END_IF
|
||||
|
||||
//Jog Mode
|
||||
//==========================================================================================
|
||||
IF lMachine.enMode = enMACH_JOG THEN
|
||||
//Clear Commands
|
||||
|
||||
//Uncritical Movements
|
||||
IF ManualCommands.bTightenBeltGrinder1 THEN
|
||||
lbTightenBelt1 := TRUE;
|
||||
ELSIF ManualCommands.bReleaseBeltGrinder1 THEN
|
||||
lbTightenBelt1 := FALSE;
|
||||
END_IF
|
||||
|
||||
//Homing Mode
|
||||
//==========================================================================================
|
||||
ELSIF (lMachine.enMode = enMACH_HOMEPOS) THEN
|
||||
//Home Robot
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
CASE enStepHoming OF
|
||||
//Init
|
||||
//---------------------------
|
||||
enHomingStep_INIT:
|
||||
lABBRobot.Out.usProgNr := ROB_PRG_IDLE;
|
||||
bTransitionCondition := TRUE; // NOT lMachine.bRequestHoming AND bMachineIsInHomepos
|
||||
IF bTransitionCondition THEN
|
||||
enStepHoming := enHomingStep_WAIT_START;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
|
||||
//Wait for Start
|
||||
//---------------------------
|
||||
enHomingStep_WAIT_START:
|
||||
udCycletime := 0;
|
||||
bTransitionCondition := EDGEPOS (lbStartKey1 OR lbStartKey2);
|
||||
|
||||
IF bTransitionCondition THEN
|
||||
enStepHoming := enHomingStep_WAIT_MOTORS_ON;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
|
||||
//Wait Motors On
|
||||
//---------------------------
|
||||
enHomingStep_WAIT_MOTORS_ON:
|
||||
IF NOT lABBRobot.In.bEStop AND NOT lABBRobot.In.bMotorsOn THEN
|
||||
lABBRobot.Out.bSwitchMotorOn := TRUE;
|
||||
lABBRobot.Out.bStart := TRUE;
|
||||
END_IF
|
||||
|
||||
IF lABBRobot.In.bMotorsOn THEN
|
||||
lABBRobot.Out.bSwitchMotorOn := FALSE;
|
||||
lABBRobot.Out.bStart := FALSE;
|
||||
enStepHoming := enHomingStep_WAIT_IN_CYCLE;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
|
||||
//Wait for Robot in Cycle
|
||||
//---------------------------
|
||||
enHomingStep_WAIT_IN_CYCLE:
|
||||
IF NOT lABBRobot.In.bProgramRun THEN
|
||||
lABBRobot.Out.bStartAtMain := TRUE;
|
||||
END_IF
|
||||
|
||||
IF lABBRobot.In.bProgramRun THEN
|
||||
lABBRobot.Out.bStartAtMain := FALSE;
|
||||
enStepHoming := enHomingStep_START_HOME;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
|
||||
//Start Grind
|
||||
//---------------------------
|
||||
enHomingStep_START_HOME:
|
||||
lABBRobot.Out.usProgNr := ROB_PRG_HOME;
|
||||
|
||||
IF lABBRobot.In.usStatus = lABBRobot.Out.usProgNr THEN
|
||||
enStepHoming := enHomingStep_WAIT_FINISHED;
|
||||
lABBRobot.Out.usProgNr := ROB_PRG_IDLE;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
|
||||
//Wait for Robot finished Grinding
|
||||
//---------------------------
|
||||
enHomingStep_WAIT_FINISHED:
|
||||
IF lABBRobot.In.usStatus = lABBRobot.Out.usProgNr THEN
|
||||
enStepHoming := enHomingStep_INIT;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
|
||||
END_CASE;
|
||||
|
||||
//Automatic Mode
|
||||
//==========================================================================================
|
||||
ELSIF (lMachine.enMode = enMACH_AUTOMATIC) THEN
|
||||
IF (enStepAuto = enAutoStep_WAIT_START) AND EDGEPOS (gbInStartKey1Rob1 OR gbInStartKey2Rob1) AND NOT gbInKeyReleasePart THEN
|
||||
enTool1State := enTool_Loaded;
|
||||
END_IF
|
||||
|
||||
IF gbInKeyReleasePart THEN
|
||||
enTool1State := enTool_Empty;
|
||||
END_IF
|
||||
|
||||
IF (enStepAuto = enAutoStep_WAIT_START) THEN
|
||||
lenActivePrg := enProgramSelection;
|
||||
END_IF
|
||||
|
||||
//Robot Automatic
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
CASE enStepAuto OF
|
||||
//Init
|
||||
//---------------------------
|
||||
enAutoStep_INIT:
|
||||
lABBRobot.Out.usProgNr := ROB_PRG_IDLE;
|
||||
bTransitionCondition := lABBRobot.In.bWZChangePart; // NOT lMachine.bRequestHoming AND bMachineIsInHomepos
|
||||
IF NOT lABBRobot.In.bWZChangePart THEN
|
||||
lMachine.bRequestHoming := TRUE;
|
||||
END_IF
|
||||
IF bTransitionCondition THEN
|
||||
enStepAuto := enAutoStep_WAIT_START;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
|
||||
//Wait for Start
|
||||
//---------------------------
|
||||
enAutoStep_WAIT_START:
|
||||
udCycletime := 0;
|
||||
bTransitionCondition := (udSteptime > 500) AND lABBRobot.In.bWZChangePart AND bSafetyOk AND
|
||||
(((enTool1State = enTool_Loaded)) OR ((enTool2State = enTool_Loaded)));
|
||||
|
||||
|
||||
IF bTransitionCondition THEN
|
||||
enStepAuto := enAutoStep_WAIT_MOTORS_ON;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
|
||||
//Wait Motors On
|
||||
//---------------------------
|
||||
enAutoStep_WAIT_MOTORS_ON:
|
||||
IF NOT lABBRobot.In.bEStop AND NOT lABBRobot.In.bMotorsOn THEN
|
||||
lABBRobot.Out.bSwitchMotorOn := TRUE;
|
||||
END_IF
|
||||
|
||||
IF lABBRobot.In.bMotorsOn THEN
|
||||
lABBRobot.Out.bSwitchMotorOn := FALSE;
|
||||
enStepAuto := enAutoStep_WAIT_IN_CYCLE;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
|
||||
//Wait for Robot in Cycle
|
||||
//---------------------------
|
||||
enAutoStep_WAIT_IN_CYCLE:
|
||||
IF NOT lABBRobot.In.bProgramRun THEN
|
||||
lABBRobot.Out.bStartAtMain := TRUE;
|
||||
lABBRobot.Out.bStart := TRUE;
|
||||
END_IF
|
||||
|
||||
IF lABBRobot.In.bProgramRun THEN
|
||||
lABBRobot.Out.bStartAtMain := FALSE;
|
||||
lABBRobot.Out.bStart := FALSE;
|
||||
enStepAuto := enAutoStep_START_GRIND;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
|
||||
//Start Grind
|
||||
//---------------------------
|
||||
enAutoStep_START_GRIND:
|
||||
lABBRobot.Out.usProgNr := DINT_TO_USINT (lenActivePrg);
|
||||
|
||||
IF lABBRobot.In.usStatus = lABBRobot.Out.usProgNr THEN
|
||||
enStepAuto := enAutoStep_WAIT_FINISHED;
|
||||
lABBRobot.Out.usProgNr := ROB_PRG_IDLE;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
|
||||
//Wait for Robot finished Grinding
|
||||
//---------------------------
|
||||
enAutoStep_WAIT_FINISHED:
|
||||
IF lABBRobot.In.usStatus = lABBRobot.Out.usProgNr THEN
|
||||
enStepAuto := enAutoStep_INIT;
|
||||
udSteptime := 0;
|
||||
enTool1State := enTool_TobeUnload;
|
||||
END_IF
|
||||
|
||||
END_CASE;
|
||||
END_IF;
|
||||
|
||||
gbEnableNextStepBtn := bTransitionCondition AND (lMachine.enMode = enMACH_MANUAL);
|
||||
|
||||
//Set Output Commands
|
||||
lbHoldDoorClosed := (enStepAuto <> enAutoStep_WAIT_START);
|
||||
|
||||
|
||||
//Start Grinder 1
|
||||
IF (gABBRobot1.In.bGrinder1On OR ManualCommands.bStartGrinder1) AND lMachine.bMachineON THEN
|
||||
liSetSpeedGrinder1 := giSpeedGrinder1;
|
||||
ELSE
|
||||
liSetSpeedGrinder1 := 0;
|
||||
END_IF;
|
||||
|
||||
|
||||
|
||||
//Steptime Control
|
||||
//Motors On
|
||||
lMachineAlarms.Alarm[100] := ((enStepHoming = enHomingStep_WAIT_MOTORS_ON) OR (enStepAuto = enAutoStep_WAIT_MOTORS_ON))
|
||||
AND (udSteptime > 15000);
|
||||
//Prg Run
|
||||
lMachineAlarms.Alarm[101] := ((enStepHoming = enHomingStep_WAIT_IN_CYCLE) OR (enStepAuto = enAutoStep_WAIT_IN_CYCLE))
|
||||
AND (udSteptime > 15000);
|
||||
|
||||
|
||||
END_PROGRAM
|
||||
64
Logical/Axises/GrindCtrl/GrindCtrl.typ
Normal file
64
Logical/Axises/GrindCtrl/GrindCtrl.typ
Normal file
@@ -0,0 +1,64 @@
|
||||
(**)
|
||||
|
||||
TYPE
|
||||
typ_enStepAuto :
|
||||
( (*Schrittkette*)
|
||||
enAutoStep_INIT := 0, (*Grundstellung pr<70>fen*)
|
||||
enAutoStep_WAIT_START, (*Auf Start warten (Geladenes Teil / Schutztzor geschlossen)*)
|
||||
enAutoStep_WAIT_MOTORS_ON, (*Pr<50>fen ob Roboter Motoren EIN*)
|
||||
enAutoStep_WAIT_IN_CYCLE, (*Pr<50>fen ob Roboter im Zyklus*)
|
||||
enAutoStep_START_GRIND, (*Programm <20>bergeben *)
|
||||
enAutoStep_WAIT_FINISHED (*Warten bis Geschliffen*)
|
||||
);
|
||||
typ_enStepHoming :
|
||||
( (*Grundstellungsfahrt*)
|
||||
enHomingStep_INIT := 0, (*Auf Start warten*)
|
||||
enHomingStep_WAIT_START, (*Auf Startbefehl warten*)
|
||||
enHomingStep_WAIT_MOTORS_ON, (*Pr<50>fen ob Roboter Motoren EIN*)
|
||||
enHomingStep_WAIT_IN_CYCLE, (*Referenzwerte Laden*)
|
||||
enHomingStep_START_HOME, (*Programm Grundstellung starten*)
|
||||
enHomingStep_WAIT_FINISHED (*Warten bis Grundstellung erreicht*)
|
||||
);
|
||||
typ_enToolState :
|
||||
( (*Werkzeugstatus*)
|
||||
enTool_Empty,
|
||||
enTool_Loaded,
|
||||
enTool_TobeUnload
|
||||
);
|
||||
typStatusPressVCControls : STRUCT (*Controlbytes f<>r Visu*)
|
||||
usJogNegSlay1 : USINT;
|
||||
usJogPosSlay1 : USINT;
|
||||
usJogNegSlay2 : USINT;
|
||||
usJogPosSlay2 : USINT;
|
||||
usCloseGate : USINT; (*Schutztor bei Werkzeugschlitten 1 Schlie<69>en*)
|
||||
usOpenGate : USINT; (*Schutztor bei Werkzeugschlitten 1 <20>ffnen*)
|
||||
usTightenBeltGrinder1 : USINT;
|
||||
usReleaseBeltGrinder1 : USINT;
|
||||
usTightenBeltGrinder2 : USINT;
|
||||
usReleaseBeltGrinder2 : USINT;
|
||||
usPrgSelection : USINT;
|
||||
END_STRUCT;
|
||||
typManualCommnands : STRUCT (*Kommandos f<>r Hand / Automatikbetrieb*)
|
||||
bNextManStep : BOOL; (*N<>chster Schritt (Semi) Automatic*)
|
||||
bJogNegSlay1 : BOOL;
|
||||
bJogPosSlay1 : BOOL;
|
||||
bJogNegSlay2 : BOOL;
|
||||
bJogPosSlay2 : BOOL;
|
||||
bCloseGate : BOOL; (*Schutztor bei Werkzeugschlitten Schlie<69>en*)
|
||||
bOpenGate : BOOL; (*Schutztor bei Werkzeugschlitten <20>ffnen*)
|
||||
bStartGrinder1 : BOOL; (*Schleifmaschine 1 Starten*)
|
||||
bStartGrinder2 : BOOL; (*Schleifmaschine 2 Starten*)
|
||||
bTightenBeltGrinder1 : BOOL; (*Schleifmaschine 1 Band Freigeben*)
|
||||
bReleaseBeltGrinder1 : BOOL; (*Schleifmaschine 1 Band Freigeben*)
|
||||
bTightenBeltGrinder2 : BOOL; (*Schleifmaschine 1 Band Freigeben*)
|
||||
bReleaseBeltGrinder2 : BOOL; (*Schleifmaschine 1 Band Freigeben*)
|
||||
END_STRUCT;
|
||||
typMoveConditions : STRUCT (*Bewegungsfreigaben*)
|
||||
bEnableNegSlay1 : BOOL;
|
||||
bEnablePosSlay1 : BOOL;
|
||||
bEnablePosSlay2 : BOOL;
|
||||
bEnableNegSlay2 : BOOL;
|
||||
bEnableCloseGate : BOOL; (*Schutztor bei Werkzeugschlitten Schlie<69>en*)
|
||||
bEnableOpenGate : BOOL; (*Schutztor bei Werkzeugschlitten <20>ffnen*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
58
Logical/Axises/GrindCtrl/GrindCtrl.var
Normal file
58
Logical/Axises/GrindCtrl/GrindCtrl.var
Normal file
@@ -0,0 +1,58 @@
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//Dynamic Vars*)
|
||||
VAR
|
||||
lMachine : REFERENCE TO typMachine;
|
||||
lbSafetyOk : REFERENCE TO BOOL;
|
||||
lbGateIsOpen : REFERENCE TO BOOL;
|
||||
lbGateIsClosed : REFERENCE TO BOOL;
|
||||
lbToolslay1IsOut : REFERENCE TO BOOL;
|
||||
lbToolslay1IsIn : REFERENCE TO BOOL;
|
||||
lbToolslay2IsOut : REFERENCE TO BOOL;
|
||||
lbToolslay2IsIn : REFERENCE TO BOOL;
|
||||
lbTightenBelt1 : REFERENCE TO BOOL;
|
||||
lbTightenBelt2 : REFERENCE TO BOOL;
|
||||
lbHoldDoorClosed : REFERENCE TO BOOL;
|
||||
lbStartKey1 : REFERENCE TO BOOL;
|
||||
lbStartKey2 : REFERENCE TO BOOL;
|
||||
liSetSpeedGrinder1 : REFERENCE TO INT;
|
||||
liSetSpeedGrinder2 : REFERENCE TO INT;
|
||||
lABBRobot : REFERENCE TO TypABBInterface;
|
||||
lMachineAlarms : REFERENCE TO typAlarm; (*Maschinenalarme*)
|
||||
lenActivePrg : REFERENCE TO typ_enPrograms;
|
||||
END_VAR
|
||||
(*//Constants*)
|
||||
VAR CONSTANT
|
||||
ROB_PRG_IDLE : USINT := 0;
|
||||
ROB_PRG_HOME : USINT := 1;
|
||||
END_VAR
|
||||
(*//Local Vars*)
|
||||
VAR
|
||||
bTransitionCondition : BOOL;
|
||||
bSafetyOk : BOOL;
|
||||
bSafetyOkToolSlay1 : BOOL;
|
||||
bSafetyOkFP : BOOL;
|
||||
bHomeMaster : BOOL := FALSE;
|
||||
bStop : BOOL;
|
||||
bHalt : BOOL;
|
||||
bEnableNextStep : BOOL; (*N<>chsten Schritt (Semiautomatik) Freigeben*)
|
||||
usi : USINT;
|
||||
usErrorReset : USINT;
|
||||
udSteptime : UDINT; (*0.1s*)
|
||||
udCycletime : UDINT := 0; (*ms*)
|
||||
udCycletimeLast : UDINT := 0; (*ms*)
|
||||
StatusVCControls : typStatusPressVCControls;
|
||||
ManualCommands : typManualCommnands; (*Kommandos Betriebsart Hand*)
|
||||
MoveConditions : typMoveConditions;
|
||||
enProgramSelection : typ_enPrograms; (*Programmvorwahl*)
|
||||
enTool1State : typ_enToolState := 0;
|
||||
enTool2State : typ_enToolState := 0;
|
||||
enStepAuto : typ_enStepAuto; (*Schrittkette Automatik*)
|
||||
enStepHoming : typ_enStepHoming; (*Schrittkette Grundstellung*)
|
||||
lPressParamActTool1 : REFERENCE TO typ_PressParam; (*Positionen aktuelles Werkzeug*)
|
||||
lPressParamActTool2 : REFERENCE TO typ_PressParam; (*Positionen aktuelles Werkzeug*)
|
||||
END_VAR
|
||||
(*//FUBS*)
|
||||
VAR
|
||||
TON_SafetyOk : TON;
|
||||
FUB_AsArLogWrite : AsArLogWrite;
|
||||
END_VAR
|
||||
20
Logical/Axises/GrindCtrl/GrindCtrlInit.st
Normal file
20
Logical/Axises/GrindCtrl/GrindCtrlInit.st
Normal file
@@ -0,0 +1,20 @@
|
||||
PROGRAM _INIT
|
||||
lMachine ACCESS ADR (gMachine1);
|
||||
lbSafetyOk ACCESS ADR (gbSPLCInWorkzoneOkRob1);
|
||||
lbGateIsClosed ACCESS ADR (gbSInGateClosedRob1);
|
||||
lbGateIsOpen ACCESS ADR (gbInGateIsOpenRob1);
|
||||
lbToolslay1IsIn ACCESS ADR (gbInToolSlay1InRob1);
|
||||
lbToolslay1IsOut ACCESS ADR (gbInToolSlay1OutRob1);
|
||||
lbToolslay2IsIn ACCESS ADR (gbInToolSlay2InRob1);
|
||||
lbToolslay2IsOut ACCESS ADR (gbInToolSlay1OutRob1);
|
||||
lbTightenBelt1 ACCESS ADR (gCmdTightenBelt1Rob1);
|
||||
lbTightenBelt2 ACCESS ADR (gCmdTightenBelt2Rob1);
|
||||
lbHoldDoorClosed ACCESS ADR (gbCmdCloseDoorRobot1);
|
||||
lbStartKey1 ACCESS ADR (gbInStartKey1Rob1);
|
||||
lbStartKey2 ACCESS ADR (gbInStartKey2Rob1);
|
||||
lenActivePrg ACCESS ADR (genActivePrgRob1);
|
||||
liSetSpeedGrinder1 ACCESS ADR (gAxR1G1.Out.iLFR_Setpointspeed);
|
||||
// liSetSpeedGrinder2 ACCESS ADR (gAxR1G2.
|
||||
lMachineAlarms ACCESS ADR (gMachineAlarms1);
|
||||
lABBRobot ACCESS ADR (gABBRobot1);
|
||||
END_PROGRAM
|
||||
12
Logical/Axises/GrindCtrl/IEC.prg
Normal file
12
Logical/Axises/GrindCtrl/IEC.prg
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.6.81 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Implementation code">GrindCtrl.st</File>
|
||||
<File Description="InitCode">GrindCtrlInit.st</File>
|
||||
<File Description="Local data types" Private="true">GrindCtrl.typ</File>
|
||||
<File Description="Local variables" Private="true">GrindCtrl.var</File>
|
||||
<File Private="true">PressCtrl.fun</File>
|
||||
<File Description="Zylinderüberwachung">FUB_CylinderCheck.st</File>
|
||||
</Files>
|
||||
</Program>
|
||||
@@ -1,13 +1,4 @@
|
||||
|
||||
FUNCTION HomeAxis : BOOL (*Home an Absoulte Encoder Axis*)
|
||||
VAR_INPUT
|
||||
InAxis : REFERENCE TO typAxis; (*Achsreferenz*)
|
||||
rInPermanentOffset : REFERENCE TO REAL; (*Referenz auf permanenten Offset*)
|
||||
rInOffset : REAL;
|
||||
enInStep : REFERENCE TO typ_enHome; (*Step*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION_BLOCK FUB_CylinderCheck (*Zylinderüberwachung*)
|
||||
VAR_INPUT
|
||||
bInOutputCylinderFw : BOOL; (*Ausgang Zylinder Ausfahren*)
|
||||
@@ -5,7 +5,5 @@
|
||||
<Object Type="DataObject" Language="Ax" Description="Acp Init for Grinder 1 Motor (SEW)">gAxGrnd1i</Object>
|
||||
<Object Type="DataObject" Language="Ax">gAxR1G2i</Object>
|
||||
<Object Type="DataObject" Language="Ax">gAxR2G2i</Object>
|
||||
<Object Type="DataObject" Language="Ax" Description="Tablet1">gAxR1T1i</Object>
|
||||
<Object Type="DataObject" Language="Ax" Description="Tablet2">gAxR1T2i</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
@@ -17,7 +17,7 @@
|
||||
<Group ID="scaling">
|
||||
<Group ID="load">
|
||||
<Parameter ID="units" Value="1000" />
|
||||
<Parameter ID="rev_motor" Value="1" />
|
||||
<Parameter ID="rev_motor" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.6.81 SP?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>gAxR1T1i.ax</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
@@ -1,170 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.6.81 SP?>
|
||||
<InitParameter Version="2.48.1" NcSwId="Acp10">
|
||||
<Group ID="ACP10AXIS_typ">
|
||||
<Group ID="dig_in">
|
||||
<Group ID="level">
|
||||
<Parameter ID="reference" Value="ncACTIV_HI" />
|
||||
<Parameter ID="pos_hw_end" Value="ncACTIV_LO" />
|
||||
<Parameter ID="neg_hw_end" Value="ncACTIV_LO" />
|
||||
<Parameter ID="trigger1" Value="ncACTIV_HI" />
|
||||
<Parameter ID="trigger2" Value="ncACTIV_LO + ncQUICKSTOP" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="encoder_if">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="count_dir" Value="ncSTANDARD" />
|
||||
<Group ID="scaling">
|
||||
<Group ID="load">
|
||||
<Parameter ID="units" Value="1000" />
|
||||
<Parameter ID="rev_motor" Value="1" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="limit">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="v_pos" Value="10000" />
|
||||
<Parameter ID="v_neg" Value="10000" />
|
||||
<Parameter ID="a1_pos" Value="50000" />
|
||||
<Parameter ID="a2_pos" Value="50000" />
|
||||
<Parameter ID="a1_neg" Value="50000" />
|
||||
<Parameter ID="a2_neg" Value="50000" />
|
||||
<Parameter ID="t_jolt" Value="0" />
|
||||
<Parameter ID="t_in_pos" Value="0" />
|
||||
<Parameter ID="pos_sw_end" Value="2000000000" />
|
||||
<Parameter ID="neg_sw_end" Value="-2000000000" />
|
||||
<Parameter ID="ds_warning" Value="500" />
|
||||
<Parameter ID="ds_stop" Value="1000" />
|
||||
<Parameter ID="a_stop" Value="1.0e30" />
|
||||
<Parameter ID="dv_stop" Value="0" />
|
||||
<Parameter ID="dv_stop_mode" Value="ncOFF" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="controller">
|
||||
<Parameter ID="mode" Value="ncPOSITION" />
|
||||
<Group ID="position">
|
||||
<Parameter ID="kv" Value="50" />
|
||||
<Parameter ID="tn" Value="0" />
|
||||
<Parameter ID="t_predict" Value="0.006" />
|
||||
<Parameter ID="t_total" Value="0.006" />
|
||||
<Parameter ID="p_max" Value="1.0e30" />
|
||||
<Parameter ID="i_max" Value="0" />
|
||||
</Group>
|
||||
<Group ID="speed">
|
||||
<Parameter ID="kv" Value="2.0" />
|
||||
<Parameter ID="tn" Value="0" />
|
||||
<Parameter ID="t_filter" Value="0.0" />
|
||||
<Group ID="isq_filter1">
|
||||
<Parameter ID="type" Value="ncOFF" />
|
||||
<Parameter ID="a0" Value="0.0" />
|
||||
<Parameter ID="a1" Value="0.0" />
|
||||
<Parameter ID="b0" Value="0.0" />
|
||||
<Parameter ID="b1" Value="0.0" />
|
||||
<Parameter ID="b2" Value="0.0" />
|
||||
<Parameter ID="c0_par_id" Value="0" />
|
||||
<Parameter ID="c1_par_id" Value="0" />
|
||||
</Group>
|
||||
<Group ID="isq_filter2">
|
||||
<Parameter ID="type" Value="ncOFF" />
|
||||
<Parameter ID="a0" Value="0.0" />
|
||||
<Parameter ID="a1" Value="0.0" />
|
||||
<Parameter ID="b0" Value="0.0" />
|
||||
<Parameter ID="b1" Value="0.0" />
|
||||
<Parameter ID="b2" Value="0.0" />
|
||||
<Parameter ID="c0_par_id" Value="0" />
|
||||
<Parameter ID="c1_par_id" Value="0" />
|
||||
</Group>
|
||||
<Group ID="isq_filter3">
|
||||
<Parameter ID="type" Value="ncOFF" />
|
||||
<Parameter ID="a0" Value="0.0" />
|
||||
<Parameter ID="a1" Value="0.0" />
|
||||
<Parameter ID="b0" Value="0.0" />
|
||||
<Parameter ID="b1" Value="0.0" />
|
||||
<Parameter ID="b2" Value="0.0" />
|
||||
<Parameter ID="c0_par_id" Value="0" />
|
||||
<Parameter ID="c1_par_id" Value="0" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="uf">
|
||||
<Parameter ID="type" Value="ncLINEAR" />
|
||||
<Parameter ID="auto_config" Value="ncMOTOR_PAR" />
|
||||
<Parameter ID="u0" Value="0" />
|
||||
<Parameter ID="un" Value="0" />
|
||||
<Parameter ID="fn" Value="50.0" />
|
||||
<Parameter ID="k_f_slip" Value="0" />
|
||||
</Group>
|
||||
<Group ID="ff">
|
||||
<Parameter ID="torque_load" Value="0.0" />
|
||||
<Parameter ID="torque_pos" Value="0.0" />
|
||||
<Parameter ID="torque_neg" Value="0.0" />
|
||||
<Parameter ID="kv_torque" Value="0.0" />
|
||||
<Parameter ID="inertia" Value="0.0" />
|
||||
<Parameter ID="t_filter_a" Value="0.0" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="move">
|
||||
<Group ID="stop">
|
||||
<Group ID="parameter[0]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
|
||||
<Parameter ID="controller" Value="ncON" />
|
||||
</Group>
|
||||
<Group ID="parameter[1]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
|
||||
<Parameter ID="controller" Value="ncON" />
|
||||
</Group>
|
||||
<Group ID="parameter[2]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
|
||||
<Parameter ID="controller" Value="ncON" />
|
||||
</Group>
|
||||
<Group ID="parameter[3]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
|
||||
<Parameter ID="controller" Value="ncON" />
|
||||
</Group>
|
||||
<Group ID="quickstop">
|
||||
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
|
||||
</Group>
|
||||
<Group ID="drive_error">
|
||||
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="homing">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="s" Value="0" />
|
||||
<Parameter ID="v_switch" Value="5000" />
|
||||
<Parameter ID="v_trigger" Value="500" />
|
||||
<Parameter ID="a" Value="50000" />
|
||||
<Parameter ID="mode" Value="ncDIRECT" />
|
||||
<Parameter ID="edge_sw" Value="ncPOSITIVE" />
|
||||
<Parameter ID="start_dir" Value="ncPOSITIVE" />
|
||||
<Parameter ID="trigg_dir" Value="ncPOSITIVE" />
|
||||
<Parameter ID="ref_pulse" Value="ncOFF" />
|
||||
<Parameter ID="fix_dir" Value="ncOFF" />
|
||||
<Parameter ID="tr_s_block" Value="0" />
|
||||
<Parameter ID="torque_lim" Value="0" />
|
||||
<Parameter ID="ds_block" Value="0" />
|
||||
<Parameter ID="ds_stop" Value="0" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="basis">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="v_pos" Value="5000" />
|
||||
<Parameter ID="v_neg" Value="5000" />
|
||||
<Parameter ID="a1_pos" Value="50000" />
|
||||
<Parameter ID="a2_pos" Value="50000" />
|
||||
<Parameter ID="a1_neg" Value="50000" />
|
||||
<Parameter ID="a2_neg" Value="50000" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="message">
|
||||
<Group ID="text">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="format" Value="ncBREAK" />
|
||||
<Parameter ID="columns" Value="80" />
|
||||
<Parameter ID="data_modul" Value="acp10etxde" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</InitParameter>
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.6.81 SP?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>gAxR1T2i.ax</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
@@ -1,170 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.6.81 SP?>
|
||||
<InitParameter Version="2.48.1" NcSwId="Acp10">
|
||||
<Group ID="ACP10AXIS_typ">
|
||||
<Group ID="dig_in">
|
||||
<Group ID="level">
|
||||
<Parameter ID="reference" Value="ncACTIV_HI" />
|
||||
<Parameter ID="pos_hw_end" Value="ncACTIV_LO" />
|
||||
<Parameter ID="neg_hw_end" Value="ncACTIV_LO" />
|
||||
<Parameter ID="trigger1" Value="ncACTIV_HI" />
|
||||
<Parameter ID="trigger2" Value="ncACTIV_LO + ncQUICKSTOP" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="encoder_if">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="count_dir" Value="ncSTANDARD" />
|
||||
<Group ID="scaling">
|
||||
<Group ID="load">
|
||||
<Parameter ID="units" Value="1000" />
|
||||
<Parameter ID="rev_motor" Value="1" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="limit">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="v_pos" Value="10000" />
|
||||
<Parameter ID="v_neg" Value="10000" />
|
||||
<Parameter ID="a1_pos" Value="50000" />
|
||||
<Parameter ID="a2_pos" Value="50000" />
|
||||
<Parameter ID="a1_neg" Value="50000" />
|
||||
<Parameter ID="a2_neg" Value="50000" />
|
||||
<Parameter ID="t_jolt" Value="0" />
|
||||
<Parameter ID="t_in_pos" Value="0" />
|
||||
<Parameter ID="pos_sw_end" Value="2000000000" />
|
||||
<Parameter ID="neg_sw_end" Value="-2000000000" />
|
||||
<Parameter ID="ds_warning" Value="500" />
|
||||
<Parameter ID="ds_stop" Value="1000" />
|
||||
<Parameter ID="a_stop" Value="1.0e30" />
|
||||
<Parameter ID="dv_stop" Value="0" />
|
||||
<Parameter ID="dv_stop_mode" Value="ncOFF" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="controller">
|
||||
<Parameter ID="mode" Value="ncPOSITION" />
|
||||
<Group ID="position">
|
||||
<Parameter ID="kv" Value="50" />
|
||||
<Parameter ID="tn" Value="0" />
|
||||
<Parameter ID="t_predict" Value="0.006" />
|
||||
<Parameter ID="t_total" Value="0.006" />
|
||||
<Parameter ID="p_max" Value="1.0e30" />
|
||||
<Parameter ID="i_max" Value="0" />
|
||||
</Group>
|
||||
<Group ID="speed">
|
||||
<Parameter ID="kv" Value="2.0" />
|
||||
<Parameter ID="tn" Value="0" />
|
||||
<Parameter ID="t_filter" Value="0.0" />
|
||||
<Group ID="isq_filter1">
|
||||
<Parameter ID="type" Value="ncOFF" />
|
||||
<Parameter ID="a0" Value="0.0" />
|
||||
<Parameter ID="a1" Value="0.0" />
|
||||
<Parameter ID="b0" Value="0.0" />
|
||||
<Parameter ID="b1" Value="0.0" />
|
||||
<Parameter ID="b2" Value="0.0" />
|
||||
<Parameter ID="c0_par_id" Value="0" />
|
||||
<Parameter ID="c1_par_id" Value="0" />
|
||||
</Group>
|
||||
<Group ID="isq_filter2">
|
||||
<Parameter ID="type" Value="ncOFF" />
|
||||
<Parameter ID="a0" Value="0.0" />
|
||||
<Parameter ID="a1" Value="0.0" />
|
||||
<Parameter ID="b0" Value="0.0" />
|
||||
<Parameter ID="b1" Value="0.0" />
|
||||
<Parameter ID="b2" Value="0.0" />
|
||||
<Parameter ID="c0_par_id" Value="0" />
|
||||
<Parameter ID="c1_par_id" Value="0" />
|
||||
</Group>
|
||||
<Group ID="isq_filter3">
|
||||
<Parameter ID="type" Value="ncOFF" />
|
||||
<Parameter ID="a0" Value="0.0" />
|
||||
<Parameter ID="a1" Value="0.0" />
|
||||
<Parameter ID="b0" Value="0.0" />
|
||||
<Parameter ID="b1" Value="0.0" />
|
||||
<Parameter ID="b2" Value="0.0" />
|
||||
<Parameter ID="c0_par_id" Value="0" />
|
||||
<Parameter ID="c1_par_id" Value="0" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="uf">
|
||||
<Parameter ID="type" Value="ncLINEAR" />
|
||||
<Parameter ID="auto_config" Value="ncMOTOR_PAR" />
|
||||
<Parameter ID="u0" Value="0" />
|
||||
<Parameter ID="un" Value="0" />
|
||||
<Parameter ID="fn" Value="50.0" />
|
||||
<Parameter ID="k_f_slip" Value="0" />
|
||||
</Group>
|
||||
<Group ID="ff">
|
||||
<Parameter ID="torque_load" Value="0.0" />
|
||||
<Parameter ID="torque_pos" Value="0.0" />
|
||||
<Parameter ID="torque_neg" Value="0.0" />
|
||||
<Parameter ID="kv_torque" Value="0.0" />
|
||||
<Parameter ID="inertia" Value="0.0" />
|
||||
<Parameter ID="t_filter_a" Value="0.0" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="move">
|
||||
<Group ID="stop">
|
||||
<Group ID="parameter[0]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
|
||||
<Parameter ID="controller" Value="ncON" />
|
||||
</Group>
|
||||
<Group ID="parameter[1]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
|
||||
<Parameter ID="controller" Value="ncON" />
|
||||
</Group>
|
||||
<Group ID="parameter[2]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
|
||||
<Parameter ID="controller" Value="ncON" />
|
||||
</Group>
|
||||
<Group ID="parameter[3]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
|
||||
<Parameter ID="controller" Value="ncON" />
|
||||
</Group>
|
||||
<Group ID="quickstop">
|
||||
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
|
||||
</Group>
|
||||
<Group ID="drive_error">
|
||||
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="homing">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="s" Value="0" />
|
||||
<Parameter ID="v_switch" Value="5000" />
|
||||
<Parameter ID="v_trigger" Value="500" />
|
||||
<Parameter ID="a" Value="50000" />
|
||||
<Parameter ID="mode" Value="ncDIRECT" />
|
||||
<Parameter ID="edge_sw" Value="ncPOSITIVE" />
|
||||
<Parameter ID="start_dir" Value="ncPOSITIVE" />
|
||||
<Parameter ID="trigg_dir" Value="ncPOSITIVE" />
|
||||
<Parameter ID="ref_pulse" Value="ncOFF" />
|
||||
<Parameter ID="fix_dir" Value="ncOFF" />
|
||||
<Parameter ID="tr_s_block" Value="0" />
|
||||
<Parameter ID="torque_lim" Value="0" />
|
||||
<Parameter ID="ds_block" Value="0" />
|
||||
<Parameter ID="ds_stop" Value="0" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="basis">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="v_pos" Value="5000" />
|
||||
<Parameter ID="v_neg" Value="5000" />
|
||||
<Parameter ID="a1_pos" Value="50000" />
|
||||
<Parameter ID="a2_pos" Value="50000" />
|
||||
<Parameter ID="a1_neg" Value="50000" />
|
||||
<Parameter ID="a2_neg" Value="50000" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="message">
|
||||
<Group ID="text">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="format" Value="ncBREAK" />
|
||||
<Parameter ID="columns" Value="80" />
|
||||
<Parameter ID="data_modul" Value="acp10etxde" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</InitParameter>
|
||||
@@ -6,16 +6,10 @@
|
||||
<Object Type="File" Description="Werkzeugdatentypen">GlobalTool.typ</Object>
|
||||
<Object Type="File" Description="Package variables">GlobalAxis.var</Object>
|
||||
<Object Type="File" Description="Package variables">GlobalTool.var</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Lifecounters of SDC Axises">ncsdcctrl</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Controller">PressCtrl</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Controller">GrindCtrl</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Werkzeugselektor">ToolCtrl</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Toolparameter">ToolParam</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Shift/Overallcounter">PartCount</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Ctrl PowerSupply">AxisPS</Object>
|
||||
<Object Type="Program" Language="IEC" Description="AxisCtrl (Master)">Axisctrl</Object>
|
||||
<Object Type="Program" Language="IEC" Description="AxisCtrl Shaft 1">Axisctrl1</Object>
|
||||
<Object Type="Program" Language="IEC" Description="AxisCtrl Tool 1">AxisctrlExtra1</Object>
|
||||
<Object Type="Program" Language="IEC" Description="AxisCtrl Tool 2">AxisctrlExtra2</Object>
|
||||
<Object Type="Package">Init</Object>
|
||||
<Object Type="Package">ACPPar</Object>
|
||||
<Object Type="DataObject" Language="Ett">acp10etxde</Object>
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
|
||||
FUNCTION HomeAxis
|
||||
IF (enInStep = enHomeOffsetPerm) THEN
|
||||
//Home with permanent Stored Offset
|
||||
//---------------------------
|
||||
InAxis.Para.rHomePosition := rInPermanentOffset;
|
||||
InAxis.bHome := TRUE;
|
||||
enInStep := enHomeOffsetPermDone;
|
||||
ELSIF (enInStep = enHomeOffsetPermDone) THEN
|
||||
//Home with permanent Stored Offset
|
||||
//---------------------------
|
||||
IF InAxis.Status.bHomingOkDelayed AND NOT InAxis.bHome THEN
|
||||
enInStep := enHomeIdle;
|
||||
END_IF
|
||||
ELSIF (enInStep = enHomeOffset0) THEN
|
||||
//Home with Stored 0
|
||||
//---------------------------
|
||||
InAxis.Para.rHomePosition := 0.0;
|
||||
InAxis.bHome := TRUE;
|
||||
enInStep := enHomeOffset0Done;
|
||||
ELSIF (enInStep = enHomeOffset0Done) THEN
|
||||
//Home with Stored 0
|
||||
//---------------------------
|
||||
IF InAxis.Status.bHomingOkDelayed AND NOT InAxis.bHome THEN
|
||||
enInStep := enHomeStorePos;
|
||||
END_IF
|
||||
ELSIF (enInStep = enHomeOffset0NoStore) THEN
|
||||
//Home with Stored 0
|
||||
//---------------------------
|
||||
InAxis.Para.rHomePosition := 0.0;
|
||||
InAxis.bHome := TRUE;
|
||||
enInStep := enHomeOffset0DoneNoStore;
|
||||
ELSIF (enInStep = enHomeOffset0DoneNoStore) THEN
|
||||
//Home with Stored 0
|
||||
//---------------------------
|
||||
IF InAxis.Status.bHomingOkDelayed AND NOT InAxis.bHome THEN
|
||||
enInStep := enHomeIdle;
|
||||
END_IF
|
||||
ELSIF (enInStep = enHomeStorePos) THEN
|
||||
//Store Axis Position
|
||||
//---------------------------
|
||||
rInPermanentOffset := - InAxis.rActPosition + rInOffset;
|
||||
ERRxwarning (50001, 0 , ADR ('Permanenter Geberoffset einer Spindel wurde ver<65>ndert'));
|
||||
enInStep := enHomeOffsetPerm;
|
||||
END_IF
|
||||
END_FUNCTION
|
||||
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.5.68 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Implementation code">PressCtrl.st</File>
|
||||
<File Description="InitCode">PressCtrlInit.st</File>
|
||||
<File Description="Local data types" Private="true">PressCtrl.typ</File>
|
||||
<File Description="Local variables" Private="true">PressCtrl.var</File>
|
||||
<File Description="Home an Absoulte Encoder Axis">HomeAxis.st</File>
|
||||
<File Private="true">PressCtrl.fun</File>
|
||||
<File Description="Zylinderüberwachung">FUB_CylinderCheck.st</File>
|
||||
</Files>
|
||||
</Program>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,165 +0,0 @@
|
||||
(**)
|
||||
|
||||
TYPE
|
||||
typ_enStepPress :
|
||||
( (*Absolutoffset einstellen*)
|
||||
enPressStep_INIT := 0, (*Grundstellung pr<70>fen*)
|
||||
enPressStep_WAIT_START, (*Auf Startbefehl warten (mit Teil)*)
|
||||
enPressStep_WAIT_AX_SINGLE, (*Warten bis Achsen Unsync und Bereit*)
|
||||
enPressStep_REF_PRESS, (*Referenzwerte Laden*)
|
||||
enPressStep_LEVEL_PRESS, (*Presse ggf. Ausniviellieren*)
|
||||
enPressStep_LEVEL_WAIT, (*Presse ggf. Ausniviellieren*)
|
||||
enPressStep_START_GEAR, (*Getriebe Starten*)
|
||||
enPressStep_MOVE_HOME_LVL, (*Presse auffahren*)
|
||||
enPressStep_MOVE_HOME_LVL_WAIT, (*Presse aufgefahren*)
|
||||
enPressStep_SELECT_TOOL, (*Werkzeug ausw<73>hlen*)
|
||||
enPressStep_TOOL1_OPENDOOR := 10, (*Werkzeug 1 Schutzt<7A>r <20>ffnen*)
|
||||
enPressStep_TOOL1_IN, (*Werkzeug 1 einfahren*)
|
||||
enPressStep_TOOL1_IN_WAIT, (*Werkzeug 1 einfahren warten bis eingefahren*)
|
||||
enPressStep_PRESS_MOUNTPOS1, (*Presse auf Montageposition Wzg 1 fahren*)
|
||||
enPressStep_PRESS_MOUNTPOS1_WAIT, (*Presse auf Montageposition Wzg 1 fahren*)
|
||||
enPressStep_PRESS_PRESSPOS1, (*Presse auf Pressposition Wzg 1 fahren*)
|
||||
enPressStep_PRESS_PRESSPOS1_WAIT, (*Presse auf Pressposition Wzg 1 fahren*)
|
||||
enPressStep_WAIT_PRESSED1, (*Ruhezeit Wzg 1*)
|
||||
enPressStep_PRESS_HOMEPOS1, (*Presse auf Ruheposition fahren*)
|
||||
enPressStep_PRESS_HOMEPOS1_WAIT, (*Presse auf Ruheposition fahren*)
|
||||
enPressStep_TOOL1_OUT, (*Werkzeug 1 ausfahren*)
|
||||
enPressStep_TOOL1_OUT_WAIT, (*Werkzeug 2 ausgefahren*)
|
||||
enPressStep_TOOL1_CLOSEDOOR, (*Werkzeug 1 Schutzt<7A>r schlie<69>en*)
|
||||
enPressStep_TOOL2_OPENDOOR := 30, (*Werkzeug 1 Schutzt<7A>r <20>ffnen*)
|
||||
enPressStep_TOOL2_IN, (*Werkzeug 2 einfahren*)
|
||||
enPressStep_TOOL2_IN_WAIT, (*Werkzeug 2 einfahren warten bis eingefahren*)
|
||||
enPressStep_PRESS_MOUNTPOS2, (*Presse auf Montageposition Wzg 2 fahren*)
|
||||
enPressStep_PRESS_MOUNTPOS2_WAIT, (*Presse auf Montageposition Wzg 2 fahren*)
|
||||
enPressStep_PRESS_PRESSPOS2, (*Presse auf Pressposition Wzg 2 fahren*)
|
||||
enPressStep_PRESS_PRESSPOS2_WAIT, (*Presse auf Pressposition Wzg 2 fahren*)
|
||||
enPressStep_WAIT_PRESSED2, (*Ruhezeit Wzg 2*)
|
||||
enPressStep_PRESS_HOMEPOS2, (*Presse auf Ruheposition fahren*)
|
||||
enPressStep_PRESS_HOMEPOS2_WAIT, (*Presse auf Ruheposition fahren*)
|
||||
enPressStep_TOOL2_OUT, (*Werkzeug einfahren*)
|
||||
enPressStep_TOOL2_OUT_WAIT, (*Werkzeug einfahren*)
|
||||
enPressStep_TOOL2_CLOSEDOOR (*Werkzeug 2 Schutzt<7A>r schlie<69>en*)
|
||||
);
|
||||
typ_enStepHoming :
|
||||
( (*Grundstellungsfahrt*)
|
||||
enPressStepHoming_INIT, (*Auf Start warten*)
|
||||
enPressStepHoming_WAIT_START, (*Auf Startbefehl warten*)
|
||||
enPressStepHoming_WAIT_AX_SINGLE, (*Warten bis Achsen Unsync und Bereit*)
|
||||
enPressStepHoming_REF_PRESS, (*Referenzwerte Laden*)
|
||||
enPressStepHoming_LEVEL_PRESS, (*Presse ggf. Ausniviellieren*)
|
||||
enPressStepHoming_LEVEL_WAIT, (*Presse ggf. Ausniviellieren*)
|
||||
enPressStepHoming_START_GEAR, (*Getriebe Starten*)
|
||||
enPressStepHoming_MOVE_HOME, (*Presse auffahren*)
|
||||
enPressStepHoming_MOVE_HOME_WAIT, (*Presse aufgefahren*)
|
||||
enPressStepHoming_TOOL1_REF, (*Werkzeugschlitten 1 referenzieren*)
|
||||
enPressStepHoming_TOOL1_REF_WAIT, (*Werkzeugschlitten 1 referenziert*)
|
||||
enPressStepHoming_TOOL1_OUT, (*Werkzeugschlitten 1 ausfahren*)
|
||||
enPressStepHoming_TOOL1_OUT_WAIT, (*Werkzeugschlitten 1 ausgefahren*)
|
||||
enPressStepHoming_TOOL2_REF, (*Werkzeugschlitten 2 referenzieren*)
|
||||
enPressStepHoming_TOOL2_REF_WAIT, (*Werkzeugschlitten 2 referenziert*)
|
||||
enPressStepHoming_TOOL2_OUT, (*Werkzeugschlitten 2 ausfahren*)
|
||||
enPressStepHoming_TOOL2_OUT_WAIT, (*Werkzeugschlitten 2 ausgefahren*)
|
||||
enPressStepHoming_CLOSE_DOORS, (*Schutztore schlie<69>en*)
|
||||
enPressStepHoming_DONE (*GST-Fahrt abgeschlossen*)
|
||||
);
|
||||
typ_enHome :
|
||||
(
|
||||
enHomeIdle,
|
||||
enHomeOffsetPerm, (*Mit permanet gesp. Offset*)
|
||||
enHomeOffsetPermDone, (*Mit permanet gesp. Offset*)
|
||||
enHomeOffset0, (*Mit Offset 0 referenzieren*)
|
||||
enHomeOffset0Done, (*Mit Offset 0 referenzieren*)
|
||||
enHomeOffset0NoStore, (*Mit Offset 0 referenzieren*)
|
||||
enHomeOffset0DoneNoStore, (*Mit Offset 0 referenzieren*)
|
||||
enHomeStorePos (*Aktuelle Pos als Offset (zum Allg Offset) speichern*)
|
||||
);
|
||||
typ_enToolState :
|
||||
( (*Werkzeugstatus*)
|
||||
enTool_Empty,
|
||||
enTool_Loaded,
|
||||
enTool_TobeUnload
|
||||
);
|
||||
typStatusPressVCControls : STRUCT (*Controlbytes f<>r Visu*)
|
||||
usToggleAutoRepCycle : USINT; (*Reperaturzyklus antriggern*)
|
||||
usJogNegShaft1 : USINT;
|
||||
usJogPosShaft1 : USINT;
|
||||
usJogNegShaft2 : USINT;
|
||||
usJogPosShaft2 : USINT;
|
||||
usJogNegShaft3 : USINT;
|
||||
usJogPosShaft3 : USINT;
|
||||
usJogNegShaft4 : USINT;
|
||||
usJogPosShaft4 : USINT;
|
||||
usJogNegShaftMaster : USINT;
|
||||
usJogHomeShaftMaster : USINT;
|
||||
usJogPosShaftMaster : USINT;
|
||||
usReferencePress : USINT; (*Presse Referenzieren*)
|
||||
usReferencePressABS : USINT; (*Presse Referenzieren mit gespeicherten Absolutwerten*)
|
||||
usJogNegSlay1 : USINT;
|
||||
usJogPosSlay1 : USINT;
|
||||
usReferenceSlay1 : USINT; (*Werkzeugschlitten 1 referenzieren*)
|
||||
usJogNegSlay2 : USINT;
|
||||
usJogPosSlay2 : USINT;
|
||||
usReferenceSlay2 : USINT; (*Werkzeugschlitten 2 referenzieren*)
|
||||
usBtnActivateGear : USINT;
|
||||
usBtnDisableGear : USINT;
|
||||
usCloseDoorSlay1 : USINT; (*Schutztor bei Werkzeugschlitten 1 Schlie<69>en*)
|
||||
usOpenDoorSlay1 : USINT; (*Schutztor bei Werkzeugschlitten 1 <20>ffnen*)
|
||||
usCloseDoorSlay2 : USINT; (*Schutztor bei Werkzeugschlitten 2 Schlie<69>en*)
|
||||
usOpenDoorSlay2 : USINT; (*Schutztor bei Werkzeugschlitten 2 <20>ffnen*)
|
||||
END_STRUCT;
|
||||
typManualCommnands : STRUCT (*Kommandos f<>r Hand / Automatikbetrieb*)
|
||||
bNextManStep : BOOL; (*N<>chster Schritt (Semi) Automatic*)
|
||||
bJogNegShaft1 : BOOL;
|
||||
bJogPosShaft1 : BOOL;
|
||||
bJogNegShaft2 : BOOL;
|
||||
bJogPosShaft2 : BOOL;
|
||||
bJogNegShaft3 : BOOL;
|
||||
bJogPosShaft3 : BOOL;
|
||||
bJogNegShaft4 : BOOL;
|
||||
bJogPosShaft4 : BOOL;
|
||||
bJogNegShaftMaster : BOOL;
|
||||
bJogHomeShaftMaster : BOOL;
|
||||
bJogPosShaftMaster : BOOL;
|
||||
bReferencePress : BOOL; (*Presse Referenzieren*)
|
||||
bReferencePressABS : BOOL; (*Presse Referenzieren mit gespeicherten Absolutwerten*)
|
||||
bActivateGear : BOOL;
|
||||
bDisableGear : BOOL;
|
||||
bToolslay1Up : BOOL; (*Werkzeugschlitten 1 anheben*)
|
||||
bToolslay1Down : BOOL; (*Werkzeugschlitten 1 absenken*)
|
||||
bJogNegSlay1 : BOOL;
|
||||
bJogPosSlay1 : BOOL;
|
||||
bReferenceSlay1 : BOOL; (*Werkzeugschlitten 1 referenzieren*)
|
||||
bJogNegSlay2 : BOOL;
|
||||
bJogPosSlay2 : BOOL;
|
||||
bReferenceSlay2 : BOOL; (*Werkzeugschlitten 2 referenzieren*)
|
||||
bCloseDoorSlay1 : BOOL; (*Schutztor bei Werkzeugschlitten 1 Schlie<69>en*)
|
||||
bOpenDoorSlay1 : BOOL; (*Schutztor bei Werkzeugschlitten 1 <20>ffnen*)
|
||||
bCloseDoorSlay2 : BOOL; (*Schutztor bei Werkzeugschlitten 2 Schlie<69>en*)
|
||||
bOpenDoorSlay2 : BOOL; (*Schutztor bei Werkzeugschlitten 2 <20>ffnen*)
|
||||
END_STRUCT;
|
||||
typMoveConditions : STRUCT (*Bewegungsfreigaben*)
|
||||
bEnableNegShaft1 : BOOL;
|
||||
bEnablePosShaft1 : BOOL;
|
||||
bEnableNegShaft2 : BOOL;
|
||||
bEnablePosShaft2 : BOOL;
|
||||
bEnableNegShaft3 : BOOL;
|
||||
bEnablePosShaft3 : BOOL;
|
||||
bEnableNegShaft4 : BOOL;
|
||||
bEnablePosShaft4 : BOOL;
|
||||
bEnableNegShaftMaster : BOOL;
|
||||
bEnableJogHomeShaftMaster : BOOL;
|
||||
bEnablePosShaftMaster : BOOL;
|
||||
bEnableReferencePress : BOOL; (*Presse Referenzieren*)
|
||||
bEnableReferencePressABS : BOOL; (*Presse Referenzieren*)
|
||||
bEnableNegSlay1 : BOOL;
|
||||
bEnablePosSlay1 : BOOL;
|
||||
bEnableReferenceSlay1 : BOOL; (*Werkzeugschlitten 1 referenzieren*)
|
||||
bEnablePosSlay2 : BOOL;
|
||||
bEnableNegSlay2 : BOOL;
|
||||
bEnableReferenceSlay2 : BOOL; (*Werkzeugschlitten 2 referenzieren*)
|
||||
bEnableCloseDoorSlay1 : BOOL; (*Schutztor bei Werkzeugschlitten 1 Schlie<69>en*)
|
||||
bEnableOpenDoorSlay1 : BOOL; (*Schutztor bei Werkzeugschlitten 1 <20>ffnen*)
|
||||
bEnableCloseDoorSlay2 : BOOL; (*Schutztor bei Werkzeugschlitten 2 Schlie<69>en*)
|
||||
bEnableOpenDoorSlay2 : BOOL; (*Schutztor bei Werkzeugschlitten 2 <20>ffnen*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
@@ -1,123 +0,0 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT --
|
||||
********************************************************************
|
||||
* Program: AxCtrl
|
||||
* File: AxCtrl.var
|
||||
* Author: michi
|
||||
* Created: July 17, 2012
|
||||
********************************************************************
|
||||
* Local variables of program AxCtrl
|
||||
********************************************************************)
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//Dynamic Vars*)
|
||||
VAR
|
||||
lPS : REFERENCE TO typPS; (*Axis PS Datastruct *)
|
||||
lAxisShaftMaster : REFERENCE TO typAxis; (*Axis Datastruct *)
|
||||
lAxisShaft1 : REFERENCE TO typAxis; (*Axis Datastruct *)
|
||||
lAxisShaft2 : REFERENCE TO typAxis; (*Axis Datastruct *)
|
||||
lAxisShaft3 : REFERENCE TO typAxis; (*Axis Datastruct *)
|
||||
lAxisShaft4 : REFERENCE TO typAxis; (*Axis Datastruct *)
|
||||
lAxisSlay1 : REFERENCE TO typAxis;
|
||||
lAxisSlay2 : REFERENCE TO typAxis;
|
||||
END_VAR
|
||||
(*//Local Vars*)
|
||||
VAR RETAIN
|
||||
bDevelEnalbeGear : BOOL := TRUE;
|
||||
END_VAR
|
||||
VAR
|
||||
bTransitionCondition : BOOL;
|
||||
bSafetyOk : BOOL;
|
||||
bSafetyOkToolSlay1 : BOOL;
|
||||
bSafetyOkToolSlay2 : BOOL;
|
||||
bSafetyOkFP : BOOL;
|
||||
bNotLevel : BOOL;
|
||||
bNotLevelLimit : BOOL;
|
||||
bStopShaftAfterGear1 : BOOL;
|
||||
bStopShaftAfterGear2 : BOOL;
|
||||
bStopShaftAfterGear3 : BOOL;
|
||||
bStopShaftAfterGear4 : BOOL;
|
||||
bTool1Cycle : BOOL;
|
||||
bTool2Cycle : BOOL;
|
||||
bReferenedShaft1 : BOOL;
|
||||
bReferenedShaft2 : BOOL;
|
||||
bReferenedShaft3 : BOOL;
|
||||
bReferenedShaft4 : BOOL;
|
||||
bMachineIsInHomepos : BOOL;
|
||||
bPressIsInHomepos : BOOL;
|
||||
bPressIsInMountpos : BOOL;
|
||||
bPressIsInMountpos2 : BOOL;
|
||||
bPressIsInPresspos : BOOL;
|
||||
bPressIsInPresspos2 : BOOL;
|
||||
bStopReference : BOOL;
|
||||
bToolslay1IsUp : BOOL; (*Werkzeugschlitten 1 Luftfedern vollst. ausgefahren*)
|
||||
bToolslay1IsOut : BOOL; (*Werkzeugschlitten 1 ist in GST*)
|
||||
bToolslay1IsIn : BOOL; (*Werkzeugschlitten 1 ist in AST (in Presse)*)
|
||||
bToolslay2IsUp : BOOL; (*Werkzeugschlitten 2 Luftfedern vollst. ausgefahren*)
|
||||
bToolslay2IsOut : BOOL; (*Werkzeugschlitten 2 ist in GST*)
|
||||
bToolslay2IsIn : BOOL; (*Werkzeugschlitten 2 ist in AST (in Presse)*)
|
||||
bDoor1IsOpen : BOOL;
|
||||
bDoor1IsClosed : BOOL;
|
||||
bDoor2IsOpen : BOOL;
|
||||
bDoor2IsClosed : BOOL;
|
||||
bHome : BOOL := FALSE;
|
||||
bHomeMaster : BOOL := FALSE;
|
||||
bStop : BOOL;
|
||||
bHalt : BOOL;
|
||||
bAllAxisesInSync : BOOL;
|
||||
bAllAxisesSingle : BOOL;
|
||||
bAllAxisesControllerRdy : BOOL;
|
||||
bEnableNextStep : BOOL; (*N<>chsten Schritt (Semiautomatik) Freigeben*)
|
||||
usi : USINT;
|
||||
usErrorReset : USINT;
|
||||
udSteptime : UDINT; (*0.1s*)
|
||||
udCycletime : UDINT := 0; (*ms*)
|
||||
udCycletimeLast : UDINT := 0; (*ms*)
|
||||
StatusVCControls : typStatusPressVCControls;
|
||||
ManualCommands : typManualCommnands; (*Kommandos Betriebsart Hand*)
|
||||
MoveConditions : typMoveConditions;
|
||||
enStepHomeShaft1 : typ_enHome;
|
||||
enStepHomeShaft2 : typ_enHome;
|
||||
enStepHomeShaft3 : typ_enHome;
|
||||
enStepHomeShaft4 : typ_enHome;
|
||||
enTool1State : typ_enToolState := 0;
|
||||
enTool2State : typ_enToolState := 0;
|
||||
enStepPress : typ_enStepPress;
|
||||
enStepPressHoming : typ_enStepHoming;
|
||||
rOverrideVelocity : REAL := 100.0; (*[0.1mm]*)
|
||||
rAveragePos : REAL;
|
||||
lPressParamActTool1 : REFERENCE TO typ_PressParam; (*Positionen aktuelles Werkzeug*)
|
||||
lPressParamActTool2 : REFERENCE TO typ_PressParam; (*Positionen aktuelles Werkzeug*)
|
||||
END_VAR
|
||||
VAR CONSTANT
|
||||
rPressPosMin : REAL := 100.0; (*Presse Oben Pos Min [0.1mm]*)
|
||||
rPressPosMax : REAL := 4250.0; (*Press Unten Pos Max [0.1mm]*)
|
||||
rSpeedSlay : REAL := 1000.0; (*Speed Slay max 2000*)
|
||||
rToolSlay1PosOut : REAL := 18.0;
|
||||
rToolSlay2PosOut : REAL := 18.0;
|
||||
END_VAR
|
||||
VAR
|
||||
rPosDiffShaft1 : REAL; (*Pos Abweichung zum Master*)
|
||||
rPosDiffShaft2 : REAL; (*Pos Abweichung zum Master*)
|
||||
rPosDiffShaft3 : REAL; (*Pos Abweichung zum Master*)
|
||||
rPosDiffShaft4 : REAL; (*Pos Abweichung zum Master*)
|
||||
rPosDiffShaft1_2 : REAL; (*Pos Abweichung zum Master*)
|
||||
rPosDiffShaft1_3 : REAL; (*Pos Abweichung zum Master*)
|
||||
rPosDiffShaft3_4 : REAL; (*Pos Abweichung zum Master*)
|
||||
rPosDiffShaft2_4 : REAL := 0.0; (*Pos Abweichung zum Master*)
|
||||
END_VAR
|
||||
VAR RETAIN
|
||||
rHOMEPOS : REAL := 100.0; (*[0.1mm] Homepos f<>r Referenzierung !!!!*)
|
||||
END_VAR
|
||||
VAR CONSTANT
|
||||
rSlayAccDecManRef : REAL := 250.0;
|
||||
rSlayAccAuto : REAL := 900.0;
|
||||
rSlayDecAuto : REAL := 750.0;
|
||||
END_VAR
|
||||
(*//FUBS*)
|
||||
VAR
|
||||
FUB_AsArLogWrite : AsArLogWrite;
|
||||
TOF_ResetAxisErrors : TOF;
|
||||
TON_Slay1Up : TON;
|
||||
TON_PressBrakeRdBck : TON;
|
||||
TON_Slay2Up : TON;
|
||||
END_VAR
|
||||
@@ -1,115 +0,0 @@
|
||||
|
||||
PROGRAM _INIT
|
||||
lPS ACCESS ADR (gPS);
|
||||
lAxisShaftMaster ACCESS ADR (gAxis[0]);
|
||||
lAxisShaft1 ACCESS ADR (gAxis[1]);
|
||||
lAxisShaft2 ACCESS ADR (gAxis[2]);
|
||||
lAxisShaft3 ACCESS ADR (gAxis[3]);
|
||||
lAxisShaft4 ACCESS ADR (gAxis[4]);
|
||||
lAxisSlay1 ACCESS ADR (gAxis[5]);
|
||||
lAxisSlay2 ACCESS ADR (gAxis[6]);
|
||||
|
||||
|
||||
//Enable Powermeter
|
||||
lPS.Parameter.uiIntervalTime := 100;
|
||||
lPS.Command.bStartPowerMeter := 1;
|
||||
|
||||
//Prepare Trace (later from Dataobject)
|
||||
strcpy (ADR (gMAxTrace.Trace_Config.DatObj.Device), ADR ('logfiles'));
|
||||
strcpy (ADR (gMAxTrace.Trace_Config.DatObj.Name), ADR ('ParTrace'));
|
||||
gMAxTrace.Trace_Config.DatObj.Type := mcDATOBJ; // mcFILE + mcADD_DATE_TIME;
|
||||
gMAxTrace.Trace_Config.DatObj.Format := 0;
|
||||
//Setup Trace
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[0].Axis := ADR (gAxShaft1);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[0].ParID := ACP10PAR_PCTRL_S_ACT;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[1].Axis := ADR (gAxShaft2);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[1].ParID := ACP10PAR_PCTRL_S_ACT;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[2].Axis := ADR (gAxShaft3);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[2].ParID := ACP10PAR_PCTRL_S_ACT;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[3].Axis := ADR (gAxShaft4);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[3].ParID := ACP10PAR_PCTRL_S_ACT;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[4].Axis := ADR (gAxShaft1);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[4].ParID := ACP10PAR_PCTRL_LAG_ERROR;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[5].Axis := ADR (gAxShaft2);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[5].ParID := ACP10PAR_PCTRL_LAG_ERROR;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[6].Axis := ADR (gAxShaft3);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[6].ParID := ACP10PAR_PCTRL_LAG_ERROR;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[7].Axis := ADR (gAxShaft4);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[7].ParID := ACP10PAR_PCTRL_LAG_ERROR;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[8].Axis := ADR (gAxShaft1);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[8].ParID := ACP10PAR_TORQUE_ACT;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[9].Axis := ADR (gAxShaft2);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[9].ParID := ACP10PAR_TORQUE_ACT;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[10].Axis := ADR (gAxShaft3);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[10].ParID := ACP10PAR_TORQUE_ACT;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[11].Axis := ADR (gAxShaft4);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[11].ParID := ACP10PAR_TORQUE_ACT;
|
||||
gMAxTrace.Trace_Config.ParTrace.Trigger.Axis := ADR (gAxShaft1);
|
||||
gMAxTrace.Trace_Config.ParTrace.Trigger.ParID := ACP10PAR_PCTRL_V_ACT;
|
||||
gMAxTrace.Trace_Config.ParTrace.Trigger.Event:= mcOUT_WINDOW;
|
||||
gMAxTrace.Trace_Config.ParTrace.Trigger.Threshold := 1;
|
||||
gMAxTrace.Trace_Config.ParTrace.Trigger.Window := 1;
|
||||
gMAxTrace.Trace_Config.ParTrace.Type := mcMULTI_AXIS_TRACE;
|
||||
gMAxTrace.Trace_Config.ParTrace.TracingTime := 20;
|
||||
gMAxTrace.Trace_Config.ParTrace.SamplingTime := 0.01;
|
||||
gMAxTrace.Trace_Config.ParTrace.Delay := 0.0;
|
||||
gMAxTrace.Trace_Config.ParTrace.NetTriggerDelay := 0;
|
||||
|
||||
FUB_AsArLogWrite.ident := arlogBASE_USER_LOG_IDENT;
|
||||
|
||||
//Parameter
|
||||
lAxisShaftMaster.Para.rVelocity := 100; // [0.1mm/s]
|
||||
lAxisShaftMaster.Para.rAcceleration := 1000; // [0.1mm/s^2]
|
||||
lAxisShaftMaster.Para.rDeceleration := 1000; // [0.1mm/s^2]
|
||||
|
||||
//Dummy Tool
|
||||
gPressParamTools[0].rPosPremount := 1100;
|
||||
gPressParamTools[0].rPosPremountMin := 1050;
|
||||
gPressParamTools[0].rPosPremountMax := 1150;
|
||||
gPressParamTools[0].rPosPress := 2000;
|
||||
gPressParamTools[0].rPosPressMin := 200;
|
||||
gPressParamTools[0].rPosPressMax := rPressPosMax;
|
||||
// gPressParamTools[0].rPosPressToolslay := 1310;
|
||||
|
||||
|
||||
lAxisShaftMaster.Para.rJogVelocity := 100; // [0.1mm/s]
|
||||
lAxisShaft1.Para.rJogVelocity := lAxisShaftMaster.Para.rJogVelocity;
|
||||
lAxisShaft2.Para.rJogVelocity := lAxisShaft1.Para.rJogVelocity;
|
||||
lAxisShaft3.Para.rJogVelocity := lAxisShaft1.Para.rJogVelocity;
|
||||
lAxisShaft4.Para.rJogVelocity := lAxisShaft1.Para.rJogVelocity;
|
||||
|
||||
lAxisShaft1.Para.rVelocity := lAxisShaftMaster.Para.rVelocity; // [0.1mm/s]
|
||||
lAxisShaft2.Para.rVelocity := lAxisShaft1.Para.rVelocity;
|
||||
lAxisShaft3.Para.rVelocity := lAxisShaft1.Para.rVelocity;
|
||||
lAxisShaft4.Para.rVelocity := lAxisShaft1.Para.rVelocity;
|
||||
|
||||
lAxisShaft1.Para.usHomeingMode := mcHOME_ABSOLUTE;
|
||||
lAxisShaft2.Para.usHomeingMode := mcHOME_ABSOLUTE;
|
||||
lAxisShaft3.Para.usHomeingMode := mcHOME_ABSOLUTE;
|
||||
lAxisShaft4.Para.usHomeingMode := mcHOME_ABSOLUTE;
|
||||
|
||||
//Gear Coupling Axis2 is Slave from Axis 1
|
||||
lAxisShaft1.Para.iGearRatioNumerator := 1;
|
||||
lAxisShaft1.Para.uiGearRatioDenominator := 1;
|
||||
lAxisShaft2.Para.iGearRatioNumerator := 1;
|
||||
lAxisShaft2.Para.uiGearRatioDenominator := 1;
|
||||
lAxisShaft3.Para.iGearRatioNumerator := 1;
|
||||
lAxisShaft3.Para.uiGearRatioDenominator := 1;
|
||||
lAxisShaft4.Para.iGearRatioNumerator := 1;
|
||||
lAxisShaft4.Para.uiGearRatioDenominator := 1;
|
||||
|
||||
lAxisShaft1.Para.rGearMasterSyncPos := 100;
|
||||
lAxisShaft1.Para.rGearSlaveSyncPos := 200;
|
||||
lAxisShaft1.Para.rGearMasterStartDistance := 100;
|
||||
lAxisShaft1.Para.rGearSyncVelocity := lAxisShaftMaster.Para.rVelocity * 1.1;
|
||||
lAxisShaft1.Para.rGearSyncAcceleration := lAxisShaftMaster.Para.rAcceleration * 0.5;
|
||||
|
||||
//Reference Offset
|
||||
lAxisSlay1.Para.rHomePosition := 20.0; //mm
|
||||
lAxisSlay2.Para.rHomePosition := 20.0; //mm
|
||||
|
||||
lAxisSlay1.Para.rVelocity := 175; // [mm/s]
|
||||
lAxisSlay2.Para.rVelocity := 175; // [mm/s]
|
||||
lAxisSlay1.Para.rJogVelocity := 75; // [mm/s]
|
||||
lAxisSlay2.Para.rJogVelocity := 75; // [mm/s]
|
||||
END_PROGRAM
|
||||
@@ -1,14 +0,0 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT --
|
||||
********************************************************************
|
||||
* Program: ncsdcctrl
|
||||
* File: ncsdcctrl.typ
|
||||
* Author: michi
|
||||
* Created: May 15, 2015
|
||||
********************************************************************
|
||||
* Local data types of program ncsdcctrl
|
||||
********************************************************************)
|
||||
|
||||
TYPE
|
||||
|
||||
END_TYPE
|
||||
@@ -1,74 +0,0 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT --
|
||||
********************************************************************
|
||||
* Program: ncsdcctrl
|
||||
* File: ncsdcctrlCyclic.st
|
||||
* Author: michi
|
||||
* Created: May 15, 2015
|
||||
********************************************************************
|
||||
* Implementation of program ncsdcctrl
|
||||
********************************************************************)
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
|
||||
(* ### BEGIN gAxR1G1 ### *)
|
||||
|
||||
(* life counter emulation of digital inputs *)
|
||||
gAxR1G1_DiDoIf.iLifeCntReference := gAxR1G1_DiDoIf.iLifeCntReference + 1;
|
||||
gAxR1G1_DiDoIf.iLifeCntNegHwEnd := gAxR1G1_DiDoIf.iLifeCntNegHwEnd + 1;
|
||||
gAxR1G1_DiDoIf.iLifeCntPosHwEnd := gAxR1G1_DiDoIf.iLifeCntPosHwEnd + 1;
|
||||
|
||||
(* ### END gAxR1G1 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxR2G1 ### *)
|
||||
|
||||
(* life counter emulation of digital inputs *)
|
||||
gAxR2G1_DiDoIf.iLifeCntReference := gAxR2G1_DiDoIf.iLifeCntReference + 1;
|
||||
gAxR2G1_DiDoIf.iLifeCntNegHwEnd := gAxR2G1_DiDoIf.iLifeCntNegHwEnd + 1;
|
||||
gAxR2G1_DiDoIf.iLifeCntPosHwEnd := gAxR2G1_DiDoIf.iLifeCntPosHwEnd + 1;
|
||||
|
||||
(* ### END gAxR2G1 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxR1T1 ### *)
|
||||
|
||||
(* life counter emulation of digital inputs *)
|
||||
gAxR1T1_DiDoIf.iLifeCntReference := gAxR1T1_DiDoIf.iLifeCntReference + 1;
|
||||
gAxR1T1_DiDoIf.iLifeCntNegHwEnd := gAxR1T1_DiDoIf.iLifeCntNegHwEnd + 1;
|
||||
gAxR1T1_DiDoIf.iLifeCntPosHwEnd := gAxR1T1_DiDoIf.iLifeCntPosHwEnd + 1;
|
||||
|
||||
(* ### END gAxR1T1 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxR1T2 ### *)
|
||||
|
||||
(* life counter emulation of digital inputs *)
|
||||
gAxR1T2_DiDoIf.iLifeCntReference := gAxR1T2_DiDoIf.iLifeCntReference + 1;
|
||||
gAxR1T2_DiDoIf.iLifeCntNegHwEnd := gAxR1T2_DiDoIf.iLifeCntNegHwEnd + 1;
|
||||
gAxR1T2_DiDoIf.iLifeCntPosHwEnd := gAxR1T2_DiDoIf.iLifeCntPosHwEnd + 1;
|
||||
|
||||
(* ### END gAxR1T2 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxR2T1 ### *)
|
||||
|
||||
(* life counter emulation of digital inputs *)
|
||||
gAxR2T1_DiDoIf.iLifeCntReference := gAxR2T1_DiDoIf.iLifeCntReference + 1;
|
||||
gAxR2T1_DiDoIf.iLifeCntNegHwEnd := gAxR2T1_DiDoIf.iLifeCntNegHwEnd + 1;
|
||||
gAxR2T1_DiDoIf.iLifeCntPosHwEnd := gAxR2T1_DiDoIf.iLifeCntPosHwEnd + 1;
|
||||
|
||||
(* ### END gAxR2T1 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxR2T2 ### *)
|
||||
|
||||
(* life counter emulation of digital inputs *)
|
||||
gAxR2T2_DiDoIf.iLifeCntReference := gAxR2T2_DiDoIf.iLifeCntReference + 1;
|
||||
gAxR2T2_DiDoIf.iLifeCntNegHwEnd := gAxR2T2_DiDoIf.iLifeCntNegHwEnd + 1;
|
||||
gAxR2T2_DiDoIf.iLifeCntPosHwEnd := gAxR2T2_DiDoIf.iLifeCntPosHwEnd + 1;
|
||||
|
||||
(* ### END gAxR2T2 ### *)
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
@@ -1,326 +0,0 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT --
|
||||
********************************************************************
|
||||
* Program: ncsdcctrl
|
||||
* File: ncsdcctrlInit.st
|
||||
* Author: michi
|
||||
* Created: May 15, 2015
|
||||
********************************************************************
|
||||
* Implementation of program ncsdcctrl
|
||||
********************************************************************)
|
||||
|
||||
PROGRAM _INIT
|
||||
|
||||
(* ### BEGIN gAxis03 ### *)
|
||||
|
||||
(* initialize variables *)
|
||||
gAxis03_HW.DrvIf_Typ := ncSDC_DRVSERVO16;
|
||||
strcpy( ADR(gAxis03_HW.DrvIf_Name[0]), ADR('gAxis03_DrvIf') );
|
||||
gAxis03_HW.DiDoIf_Typ := ncSDC_DIDO;
|
||||
strcpy( ADR(gAxis03_HW.DiDoIf_Name[0]), ADR('gAxis03_DiDoIf') );
|
||||
|
||||
(* force variable offset generation *)
|
||||
gAxis03.size := gAxis03.size;
|
||||
gAxis03_DrvIf.iLifeCnt := gAxis03_DrvIf.iLifeCnt;
|
||||
gAxis03_DiDoIf.iLifeCntDriveReady := gAxis03_DiDoIf.iLifeCntDriveReady;
|
||||
gAxis03_ModuleOk := gAxis03_ModuleOk;
|
||||
|
||||
(* assign your hardware inputs here*)
|
||||
|
||||
(* gAxis03_DiDoIf.iPosHwEnd := gAxis03_DiDoIf.iPosHwEnd;
|
||||
gAxis03_DiDoIf.iNegHwEnd := gAxis03_DiDoIf.iNegHwEnd;
|
||||
gAxis03_DiDoIf.iReference := gAxis03_DiDoIf.iReference;
|
||||
*)
|
||||
|
||||
(* ### END gAxis03 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxis04 ### *)
|
||||
|
||||
(* initialize variables *)
|
||||
gAxis04_HW.DrvIf_Typ := ncSDC_DRVSERVO16;
|
||||
strcpy( ADR(gAxis04_HW.DrvIf_Name[0]), ADR('gAxis04_DrvIf') );
|
||||
gAxis04_HW.DiDoIf_Typ := ncSDC_DIDO;
|
||||
strcpy( ADR(gAxis04_HW.DiDoIf_Name[0]), ADR('gAxis04_DiDoIf') );
|
||||
|
||||
(* force variable offset generation *)
|
||||
gAxis04.size := gAxis04.size;
|
||||
gAxis04_DrvIf.iLifeCnt := gAxis04_DrvIf.iLifeCnt;
|
||||
gAxis04_DiDoIf.iLifeCntDriveReady := gAxis04_DiDoIf.iLifeCntDriveReady;
|
||||
gAxis04_ModuleOk := gAxis04_ModuleOk;
|
||||
|
||||
(* assign your hardware inputs here*)
|
||||
|
||||
(* gAxis04_DiDoIf.iPosHwEnd := gAxis04_DiDoIf.iPosHwEnd;
|
||||
gAxis04_DiDoIf.iNegHwEnd := gAxis04_DiDoIf.iNegHwEnd;
|
||||
gAxis04_DiDoIf.iReference := gAxis04_DiDoIf.iReference;
|
||||
*)
|
||||
|
||||
(* ### END gAxis04 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxis05 ### *)
|
||||
|
||||
(* initialize variables *)
|
||||
gAxis05_HW.DrvIf_Typ := ncSDC_DRVSERVO16;
|
||||
strcpy( ADR(gAxis05_HW.DrvIf_Name[0]), ADR('gAxis05_DrvIf') );
|
||||
gAxis05_HW.DiDoIf_Typ := ncSDC_DIDO;
|
||||
strcpy( ADR(gAxis05_HW.DiDoIf_Name[0]), ADR('gAxis05_DiDoIf') );
|
||||
|
||||
(* force variable offset generation *)
|
||||
gAxis05.size := gAxis05.size;
|
||||
gAxis05_DrvIf.iLifeCnt := gAxis05_DrvIf.iLifeCnt;
|
||||
gAxis05_DiDoIf.iLifeCntDriveReady := gAxis05_DiDoIf.iLifeCntDriveReady;
|
||||
gAxis05_ModuleOk := gAxis05_ModuleOk;
|
||||
|
||||
(* assign your hardware inputs here*)
|
||||
|
||||
(* gAxis05_DiDoIf.iPosHwEnd := gAxis05_DiDoIf.iPosHwEnd;
|
||||
gAxis05_DiDoIf.iNegHwEnd := gAxis05_DiDoIf.iNegHwEnd;
|
||||
gAxis05_DiDoIf.iReference := gAxis05_DiDoIf.iReference;
|
||||
*)
|
||||
|
||||
(* ### END gAxis05 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxis06 ### *)
|
||||
|
||||
(* initialize variables *)
|
||||
gAxis06_HW.DrvIf_Typ := ncSDC_DRVSERVO16;
|
||||
strcpy( ADR(gAxis06_HW.DrvIf_Name[0]), ADR('gAxis06_DrvIf') );
|
||||
gAxis06_HW.DiDoIf_Typ := ncSDC_DIDO;
|
||||
strcpy( ADR(gAxis06_HW.DiDoIf_Name[0]), ADR('gAxis06_DiDoIf') );
|
||||
|
||||
(* force variable offset generation *)
|
||||
gAxis06.size := gAxis06.size;
|
||||
gAxis06_DrvIf.iLifeCnt := gAxis06_DrvIf.iLifeCnt;
|
||||
gAxis06_DiDoIf.iLifeCntDriveReady := gAxis06_DiDoIf.iLifeCntDriveReady;
|
||||
gAxis06_ModuleOk := gAxis06_ModuleOk;
|
||||
|
||||
(* assign your hardware inputs here*)
|
||||
|
||||
(* gAxis06_DiDoIf.iPosHwEnd := gAxis06_DiDoIf.iPosHwEnd;
|
||||
gAxis06_DiDoIf.iNegHwEnd := gAxis06_DiDoIf.iNegHwEnd;
|
||||
gAxis06_DiDoIf.iReference := gAxis06_DiDoIf.iReference;
|
||||
*)
|
||||
|
||||
(* ### END gAxis06 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxis07 ### *)
|
||||
|
||||
(* initialize variables *)
|
||||
gAxis07_HW.DrvIf_Typ := ncSDC_DRVSERVO16;
|
||||
strcpy( ADR(gAxis07_HW.DrvIf_Name[0]), ADR('gAxis07_DrvIf') );
|
||||
gAxis07_HW.DiDoIf_Typ := ncSDC_DIDO;
|
||||
strcpy( ADR(gAxis07_HW.DiDoIf_Name[0]), ADR('gAxis07_DiDoIf') );
|
||||
|
||||
(* force variable offset generation *)
|
||||
gAxis07.size := gAxis07.size;
|
||||
gAxis07_DrvIf.iLifeCnt := gAxis07_DrvIf.iLifeCnt;
|
||||
gAxis07_DiDoIf.iLifeCntDriveReady := gAxis07_DiDoIf.iLifeCntDriveReady;
|
||||
gAxis07_ModuleOk := gAxis07_ModuleOk;
|
||||
|
||||
(* assign your hardware inputs here*)
|
||||
|
||||
(* gAxis07_DiDoIf.iPosHwEnd := gAxis07_DiDoIf.iPosHwEnd;
|
||||
gAxis07_DiDoIf.iNegHwEnd := gAxis07_DiDoIf.iNegHwEnd;
|
||||
gAxis07_DiDoIf.iReference := gAxis07_DiDoIf.iReference;
|
||||
*)
|
||||
|
||||
(* ### END gAxis07 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxis08 ### *)
|
||||
|
||||
(* initialize variables *)
|
||||
gAxis08_HW.DrvIf_Typ := ncSDC_DRVSERVO16;
|
||||
strcpy( ADR(gAxis08_HW.DrvIf_Name[0]), ADR('gAxis08_DrvIf') );
|
||||
gAxis08_HW.DiDoIf_Typ := ncSDC_DIDO;
|
||||
strcpy( ADR(gAxis08_HW.DiDoIf_Name[0]), ADR('gAxis08_DiDoIf') );
|
||||
|
||||
(* force variable offset generation *)
|
||||
gAxis08.size := gAxis08.size;
|
||||
gAxis08_DrvIf.iLifeCnt := gAxis08_DrvIf.iLifeCnt;
|
||||
gAxis08_DiDoIf.iLifeCntDriveReady := gAxis08_DiDoIf.iLifeCntDriveReady;
|
||||
gAxis08_ModuleOk := gAxis08_ModuleOk;
|
||||
|
||||
(* assign your hardware inputs here*)
|
||||
|
||||
(* gAxis08_DiDoIf.iPosHwEnd := gAxis08_DiDoIf.iPosHwEnd;
|
||||
gAxis08_DiDoIf.iNegHwEnd := gAxis08_DiDoIf.iNegHwEnd;
|
||||
gAxis08_DiDoIf.iReference := gAxis08_DiDoIf.iReference;
|
||||
*)
|
||||
|
||||
(* ### END gAxis08 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxGrnd1 ### *)
|
||||
|
||||
(* initialize variables *)
|
||||
gAxGrnd1_HW.DrvIf_Typ := ncSDC_DRVSERVO16;
|
||||
strcpy( ADR(gAxGrnd1_HW.DrvIf_Name[0]), ADR('gAxGrnd1_DrvIf') );
|
||||
gAxGrnd1_HW.DiDoIf_Typ := ncSDC_DIDO;
|
||||
strcpy( ADR(gAxGrnd1_HW.DiDoIf_Name[0]), ADR('gAxGrnd1_DiDoIf') );
|
||||
|
||||
(* force variable offset generation *)
|
||||
gAxGrnd1.size := gAxGrnd1.size;
|
||||
gAxGrnd1_DrvIf.iLifeCnt := gAxGrnd1_DrvIf.iLifeCnt;
|
||||
gAxGrnd1_DiDoIf.iLifeCntDriveReady := gAxGrnd1_DiDoIf.iLifeCntDriveReady;
|
||||
gAxGrnd1_ModuleOk := gAxGrnd1_ModuleOk;
|
||||
|
||||
(* assign your hardware inputs here*)
|
||||
|
||||
(* gAxGrnd1_DiDoIf.iPosHwEnd := gAxGrnd1_DiDoIf.iPosHwEnd;
|
||||
gAxGrnd1_DiDoIf.iNegHwEnd := gAxGrnd1_DiDoIf.iNegHwEnd;
|
||||
gAxGrnd1_DiDoIf.iReference := gAxGrnd1_DiDoIf.iReference;
|
||||
*)
|
||||
|
||||
(* ### END gAxGrnd1 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxR1G1 ### *)
|
||||
|
||||
(* initialize variables *)
|
||||
gAxR1G1_HW.DrvIf_Typ := ncSDC_DRVSERVO16;
|
||||
strcpy( ADR(gAxR1G1_HW.DrvIf_Name[0]), ADR('gAxR1G1_DrvIf') );
|
||||
gAxR1G1_HW.DiDoIf_Typ := ncSDC_DIDO;
|
||||
strcpy( ADR(gAxR1G1_HW.DiDoIf_Name[0]), ADR('gAxR1G1_DiDoIf') );
|
||||
|
||||
(* force variable offset generation *)
|
||||
gAxR1G1.size := gAxR1G1.size;
|
||||
gAxR1G1_DrvIf.iLifeCnt := gAxR1G1_DrvIf.iLifeCnt;
|
||||
gAxR1G1_DiDoIf.iLifeCntDriveReady := gAxR1G1_DiDoIf.iLifeCntDriveReady;
|
||||
gAxR1G1_ModuleOk := gAxR1G1_ModuleOk;
|
||||
|
||||
(* assign your hardware inputs here*)
|
||||
|
||||
(* gAxR1G1_DiDoIf.iPosHwEnd := gAxR1G1_DiDoIf.iPosHwEnd;
|
||||
gAxR1G1_DiDoIf.iNegHwEnd := gAxR1G1_DiDoIf.iNegHwEnd;
|
||||
gAxR1G1_DiDoIf.iReference := gAxR1G1_DiDoIf.iReference;
|
||||
*)
|
||||
|
||||
(* ### END gAxR1G1 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxR2G1 ### *)
|
||||
|
||||
(* initialize variables *)
|
||||
gAxR2G1_HW.DrvIf_Typ := ncSDC_DRVSERVO16;
|
||||
strcpy( ADR(gAxR2G1_HW.DrvIf_Name[0]), ADR('gAxR2G1_DrvIf') );
|
||||
gAxR2G1_HW.DiDoIf_Typ := ncSDC_DIDO;
|
||||
strcpy( ADR(gAxR2G1_HW.DiDoIf_Name[0]), ADR('gAxR2G1_DiDoIf') );
|
||||
|
||||
(* force variable offset generation *)
|
||||
gAxR2G1.size := gAxR2G1.size;
|
||||
gAxR2G1_DrvIf.iLifeCnt := gAxR2G1_DrvIf.iLifeCnt;
|
||||
gAxR2G1_DiDoIf.iLifeCntDriveReady := gAxR2G1_DiDoIf.iLifeCntDriveReady;
|
||||
gAxR2G1_ModuleOk := gAxR2G1_ModuleOk;
|
||||
|
||||
(* assign your hardware inputs here*)
|
||||
|
||||
(* gAxR2G1_DiDoIf.iPosHwEnd := gAxR2G1_DiDoIf.iPosHwEnd;
|
||||
gAxR2G1_DiDoIf.iNegHwEnd := gAxR2G1_DiDoIf.iNegHwEnd;
|
||||
gAxR2G1_DiDoIf.iReference := gAxR2G1_DiDoIf.iReference;
|
||||
*)
|
||||
|
||||
(* ### END gAxR2G1 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxR1T1 ### *)
|
||||
|
||||
(* initialize variables *)
|
||||
gAxR1T1_HW.DrvIf_Typ := ncSDC_DRVSERVO16;
|
||||
strcpy( ADR(gAxR1T1_HW.DrvIf_Name[0]), ADR('gAxR1T1_DrvIf') );
|
||||
gAxR1T1_HW.DiDoIf_Typ := ncSDC_DIDO;
|
||||
strcpy( ADR(gAxR1T1_HW.DiDoIf_Name[0]), ADR('gAxR1T1_DiDoIf') );
|
||||
|
||||
(* force variable offset generation *)
|
||||
gAxR1T1.size := gAxR1T1.size;
|
||||
gAxR1T1_DrvIf.iLifeCnt := gAxR1T1_DrvIf.iLifeCnt;
|
||||
gAxR1T1_DiDoIf.iLifeCntDriveReady := gAxR1T1_DiDoIf.iLifeCntDriveReady;
|
||||
gAxR1T1_ModuleOk := gAxR1T1_ModuleOk;
|
||||
|
||||
(* assign your hardware inputs here*)
|
||||
|
||||
(* gAxR1T1_DiDoIf.iPosHwEnd := gAxR1T1_DiDoIf.iPosHwEnd;
|
||||
gAxR1T1_DiDoIf.iNegHwEnd := gAxR1T1_DiDoIf.iNegHwEnd;
|
||||
gAxR1T1_DiDoIf.iReference := gAxR1T1_DiDoIf.iReference;
|
||||
*)
|
||||
|
||||
(* ### END gAxR1T1 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxR1T2 ### *)
|
||||
|
||||
(* initialize variables *)
|
||||
gAxR1T2_HW.DrvIf_Typ := ncSDC_DRVSERVO16;
|
||||
strcpy( ADR(gAxR1T2_HW.DrvIf_Name[0]), ADR('gAxR1T2_DrvIf') );
|
||||
gAxR1T2_HW.DiDoIf_Typ := ncSDC_DIDO;
|
||||
strcpy( ADR(gAxR1T2_HW.DiDoIf_Name[0]), ADR('gAxR1T2_DiDoIf') );
|
||||
|
||||
(* force variable offset generation *)
|
||||
gAxR1T2.size := gAxR1T2.size;
|
||||
gAxR1T2_DrvIf.iLifeCnt := gAxR1T2_DrvIf.iLifeCnt;
|
||||
gAxR1T2_DiDoIf.iLifeCntDriveReady := gAxR1T2_DiDoIf.iLifeCntDriveReady;
|
||||
gAxR1T2_ModuleOk := gAxR1T2_ModuleOk;
|
||||
|
||||
(* assign your hardware inputs here*)
|
||||
|
||||
(* gAxR1T2_DiDoIf.iPosHwEnd := gAxR1T2_DiDoIf.iPosHwEnd;
|
||||
gAxR1T2_DiDoIf.iNegHwEnd := gAxR1T2_DiDoIf.iNegHwEnd;
|
||||
gAxR1T2_DiDoIf.iReference := gAxR1T2_DiDoIf.iReference;
|
||||
*)
|
||||
|
||||
(* ### END gAxR1T2 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxR2T1 ### *)
|
||||
|
||||
(* initialize variables *)
|
||||
gAxR2T1_HW.DrvIf_Typ := ncSDC_DRVSERVO16;
|
||||
strcpy( ADR(gAxR2T1_HW.DrvIf_Name[0]), ADR('gAxR2T1_DrvIf') );
|
||||
gAxR2T1_HW.DiDoIf_Typ := ncSDC_DIDO;
|
||||
strcpy( ADR(gAxR2T1_HW.DiDoIf_Name[0]), ADR('gAxR2T1_DiDoIf') );
|
||||
|
||||
(* force variable offset generation *)
|
||||
gAxR2T1.size := gAxR2T1.size;
|
||||
gAxR2T1_DrvIf.iLifeCnt := gAxR2T1_DrvIf.iLifeCnt;
|
||||
gAxR2T1_DiDoIf.iLifeCntDriveReady := gAxR2T1_DiDoIf.iLifeCntDriveReady;
|
||||
gAxR2T1_ModuleOk := gAxR2T1_ModuleOk;
|
||||
|
||||
(* assign your hardware inputs here*)
|
||||
|
||||
(* gAxR2T1_DiDoIf.iPosHwEnd := gAxR2T1_DiDoIf.iPosHwEnd;
|
||||
gAxR2T1_DiDoIf.iNegHwEnd := gAxR2T1_DiDoIf.iNegHwEnd;
|
||||
gAxR2T1_DiDoIf.iReference := gAxR2T1_DiDoIf.iReference;
|
||||
*)
|
||||
|
||||
(* ### END gAxR2T1 ### *)
|
||||
|
||||
|
||||
(* ### BEGIN gAxR2T2 ### *)
|
||||
|
||||
(* initialize variables *)
|
||||
gAxR2T2_HW.DrvIf_Typ := ncSDC_DRVSERVO16;
|
||||
strcpy( ADR(gAxR2T2_HW.DrvIf_Name[0]), ADR('gAxR2T2_DrvIf') );
|
||||
gAxR2T2_HW.DiDoIf_Typ := ncSDC_DIDO;
|
||||
strcpy( ADR(gAxR2T2_HW.DiDoIf_Name[0]), ADR('gAxR2T2_DiDoIf') );
|
||||
|
||||
(* force variable offset generation *)
|
||||
gAxR2T2.size := gAxR2T2.size;
|
||||
gAxR2T2_DrvIf.iLifeCnt := gAxR2T2_DrvIf.iLifeCnt;
|
||||
gAxR2T2_DiDoIf.iLifeCntDriveReady := gAxR2T2_DiDoIf.iLifeCntDriveReady;
|
||||
gAxR2T2_ModuleOk := gAxR2T2_ModuleOk;
|
||||
|
||||
(* assign your hardware inputs here*)
|
||||
|
||||
(* gAxR2T2_DiDoIf.iPosHwEnd := gAxR2T2_DiDoIf.iPosHwEnd;
|
||||
gAxR2T2_DiDoIf.iNegHwEnd := gAxR2T2_DiDoIf.iNegHwEnd;
|
||||
gAxR2T2_DiDoIf.iReference := gAxR2T2_DiDoIf.iReference;
|
||||
*)
|
||||
|
||||
(* ### END gAxR2T2 ### *)
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
@@ -1,14 +1,30 @@
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
//Input Byte 1 (1-8)
|
||||
lABBRobot.In.bMotorsOn := BIT_TST (dpInByte[1], 0);
|
||||
TON_Motors_On.IN := BIT_TST (dpInByte[1], 0);
|
||||
TON_Motors_On.PT := t#1200ms;
|
||||
TON_Motors_On ();
|
||||
lABBRobot.In.bMotorsOn := TON_Motors_On.Q;
|
||||
lABBRobot.In.bMotorsOff := BIT_TST (dpInByte[1], 1);
|
||||
lABBRobot.In.bProgramRun := BIT_TST (dpInByte[1], 2);
|
||||
lABBRobot.In.bEStop := BIT_TST (dpInByte[1], 3);
|
||||
lABBRobot.In.bAutomatic := BIT_TST (dpInByte[1], 4);
|
||||
|
||||
lABBRobot.In.bHome := BIT_TST (dpInByte[1], 5);
|
||||
lABBRobot.In.bWZTablet1 := BIT_TST (dpInByte[1], 6);
|
||||
lABBRobot.In.bWZTablet2 := BIT_TST (dpInByte[1], 7);
|
||||
//Input Byte 2 (9-16)
|
||||
lABBRobot.In.bWZToolShelf := BIT_TST (dpInByte[2], 0);
|
||||
lABBRobot.In.bWZGrinder1 := BIT_TST (dpInByte[2], 1);
|
||||
lABBRobot.In.bWZGrinder2 := BIT_TST (dpInByte[2], 2);
|
||||
lABBRobot.In.bWZLimit1 := BIT_TST (dpInByte[2], 3);
|
||||
lABBRobot.In.bWZLimit2 := BIT_TST (dpInByte[2], 4);
|
||||
lABBRobot.In.bWZChangePart := BIT_TST (dpInByte[2], 5);
|
||||
//Spares
|
||||
lABBRobot.In.bReleaseTool := BIT_TST (dpInByte[2], 7);
|
||||
//Input Byte 3 (17-24)
|
||||
lABBRobot.In.bReleasePart := BIT_TST (dpInByte[3], 0);
|
||||
lABBRobot.In.bGrinder1On := BIT_TST (dpInByte[3], 1);
|
||||
lABBRobot.In.bGrinder2On := BIT_TST (dpInByte[3], 2);
|
||||
//Input Byte 4 (25-32)
|
||||
//Input Byte 5 (33-40)
|
||||
//Input Byte 6 (41-48)
|
||||
@@ -18,7 +34,7 @@ PROGRAM _CYCLIC
|
||||
lABBRobot.In.usStatus := dpInByte[9];
|
||||
//Input Byte 10 (73-80)
|
||||
lABBRobot.In.usActiveTool := dpInByte[10];
|
||||
//Input Byte 11 (81-88)
|
||||
//Input Byte 11 (81-88)m
|
||||
lABBRobot.In.uspGrinder1 := dpInByte[11];
|
||||
//Input Byte 12 (89-96)
|
||||
lABBRobot.In.uspGrinder2 := dpInByte[12];
|
||||
@@ -28,16 +44,31 @@ PROGRAM _CYCLIC
|
||||
//Input Byte 16 (121-128)
|
||||
|
||||
//Output Byte 1 (1-8)
|
||||
dpOutByte[1] := BIT_CLR (dpOutByte[1], 0); //Reset E-Stop
|
||||
dpOutByte[1] := BIT_CLR (dpOutByte[1], 1); //Motors On
|
||||
dpOutByte[1] := BIT_CLR (dpOutByte[1], 2); //Motors Off
|
||||
TOF_Reset_EStop.IN := lABBRobot.Out.bResetEStop;
|
||||
TOF_Reset_EStop.PT := t#400ms;
|
||||
TOF_Reset_EStop ();
|
||||
IF TOF_Reset_EStop.Q THEN
|
||||
dpOutByte[1] := BIT_SET (dpOutByte[1], 0); //Reset E-Stop
|
||||
ELSE
|
||||
dpOutByte[1] := BIT_CLR (dpOutByte[1], 0); //Reset E-Stop
|
||||
END_IF
|
||||
IF lABBRobot.Out.bSwitchMotorOn THEN
|
||||
dpOutByte[1] := BIT_SET (dpOutByte[1], 1); //Motors On
|
||||
ELSE
|
||||
dpOutByte[1] := BIT_CLR (dpOutByte[1], 1); //Motors On
|
||||
END_IF
|
||||
IF lABBRobot.Out.bSwitchMotorOff THEN
|
||||
dpOutByte[1] := BIT_SET (dpOutByte[1], 2); //Motors Off
|
||||
ELSE
|
||||
dpOutByte[1] := BIT_CLR (dpOutByte[1], 2); //Motors Off
|
||||
END_IF
|
||||
IF lABBRobot.Out.bStartAtMain THEN
|
||||
dpOutByte[1] := BIT_SET (dpOutByte[1], 3); //Start at Main
|
||||
ELSE
|
||||
dpOutByte[1] := BIT_CLR (dpOutByte[1], 3); //Start at Main
|
||||
END_IF
|
||||
IF lABBRobot.Out.bStart THEN
|
||||
dpOutByte[1] := BIT_SET (dpOutByte[1], 4); //Start
|
||||
dpOutByte[1] := BIT_SET (dpOutByte[1], 4); //Start (1 Cycle)
|
||||
ELSE
|
||||
dpOutByte[1] := BIT_CLR (dpOutByte[1], 4); //Start
|
||||
END_IF
|
||||
@@ -54,6 +85,17 @@ PROGRAM _CYCLIC
|
||||
dpOutByte[1] := BIT_CLR (dpOutByte[1], 7); //SysReset
|
||||
|
||||
//Output Byte 2 (9-16)
|
||||
IF lABBRobot.Out.bReleaseTool THEN
|
||||
dpOutByte[2] := BIT_SET (dpOutByte[2], 0); //Release Tool
|
||||
ELSE
|
||||
dpOutByte[2] := BIT_CLR (dpOutByte[2], 0); //Release Tool
|
||||
END_IF
|
||||
IF lABBRobot.Out.bReleasePart THEN
|
||||
dpOutByte[2] := BIT_SET (dpOutByte[2], 1); //Release Part
|
||||
ELSE
|
||||
dpOutByte[2] := BIT_CLR (dpOutByte[2], 1); //Release Part
|
||||
END_IF
|
||||
|
||||
//Output Byte 3 (17-24)
|
||||
//Output Byte 4 (25-32)
|
||||
//Output Byte 5 (33-40)
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
VAR
|
||||
TOF_Reset_EStop : TOF;
|
||||
TON_Motors_On : TON;
|
||||
dpOutByte : ARRAY[1..16] OF USINT := [16(0)]; (*Raw Output Bytes Abb Interface*)
|
||||
dpInByte : ARRAY[1..16] OF USINT := [16(0)]; (*Raw Input Bytes Abb Interface*)
|
||||
lABBRobot : REFERENCE TO TypABBInterface; (*Referenz to ABB Interface*)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
PROGRAM _INIT
|
||||
//Zeiger auf Roboter Stellen
|
||||
//Zeiger auf Roboter Stellen
|
||||
lABBRobot ACCESS ADR (gABBRobot1);
|
||||
END_PROGRAM
|
||||
|
||||
@@ -15,6 +15,7 @@ TYPE
|
||||
bWZGrinder2 : BOOL := FALSE; (*11 Roboter is in Area of Grinder 2*)
|
||||
bWZLimit1 : BOOL := FALSE; (*12 Roboter is in Area of Limit 1*)
|
||||
bWZLimit2 : BOOL := FALSE; (*13 Roboter is in Area of Limit 2*)
|
||||
bWZChangePart : BOOL := FALSE; (*14 Roboter is in Area of ChangePart*)
|
||||
bReleaseTool : BOOL := FALSE; (*16 Release Tool*)
|
||||
bReleasePart : BOOL := FALSE; (*17 Release Part*)
|
||||
bGrinder1On : BOOL := FALSE; (*18 Grinder 1 (Big) On*)
|
||||
@@ -33,6 +34,8 @@ TYPE
|
||||
bStop : BOOL := FALSE; (*06 Stop Cycle*)
|
||||
bResetError : BOOL := FALSE; (*07 Reset Errors*)
|
||||
bResetSystem : BOOL := FALSE; (*08 Reset System*)
|
||||
bReleaseTool : BOOL := FALSE; (*09 Release Tool*)
|
||||
bReleasePart : BOOL := FALSE; (*10 Release Part*)
|
||||
usProgNr : USINT := 0; (*64 Programm Number*)
|
||||
usTool : USINT := 0; (*72 Tool Number (To Change)*)
|
||||
usStation : USINT := 0; (*80 Active Station FixMe*)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
VAR
|
||||
VAR RETAIN
|
||||
gABBRobot1 : TypABBInterface;
|
||||
gABBRobot2 : TypABBInterface;
|
||||
END_VAR
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
|
||||
TYPE
|
||||
ACPinverter_typ : STRUCT
|
||||
bModuleOK : BOOL;
|
||||
In : ACPinverterIn_typ;
|
||||
Out : ACPinverterOut_typ;
|
||||
END_STRUCT;
|
||||
ACPinverterIn_typ : STRUCT
|
||||
bStat00_ReadytoSwitchOn : BOOL;
|
||||
bStat01_SwitchedOnReady : BOOL;
|
||||
bstat02_Enabled : BOOL;
|
||||
bStat03_FaultDetecton : BOOL;
|
||||
bStat04_VoltageDisabled : BOOL;
|
||||
bStat05_QuickstopINV : BOOL;
|
||||
bStat06_SwitchedOnDisabled : BOOL;
|
||||
bStat07_Alarm : BOOL;
|
||||
bStat09_ReferenceViaNetwork : BOOL;
|
||||
bStat10_TargetReferenceReached : BOOL;
|
||||
bStat11_InternalLimitActive : BOOL;
|
||||
bStat14_StopViaKey : BOOL;
|
||||
bStat15_RotationDirection : BOOL;
|
||||
bExtStat00_EEPROM_NonVolatile : BOOL;
|
||||
bExtStat01_ParameterConsCheck : BOOL;
|
||||
bExtStat02_DriveInFault : BOOL;
|
||||
bExtStat04_SpeedModeActive : BOOL;
|
||||
bExtStat05_DCInjection : BOOL;
|
||||
bExtStat06_TransientState : BOOL;
|
||||
bExtStat07_ThermalTreshold : BOOL;
|
||||
bExtStat08_Overbraking : BOOL;
|
||||
bExtStat09_Accelerating : BOOL;
|
||||
bExtStat10_Decellerating : BOOL;
|
||||
bExtStat11_I_Limited : BOOL;
|
||||
bExtStat12_FastStopping : BOOL;
|
||||
bExtStat13_ExtControlled0 : BOOL;
|
||||
bExtStat14_ExtCondrolled1 : BOOL;
|
||||
bExtStat15_OperationDir : BOOL;
|
||||
iRFRD_Velocity : INT;
|
||||
iOTR_Torque : INT;
|
||||
uiLCR_Current : UINT;
|
||||
uiTHD_ThermalStateDrive : UINT;
|
||||
uiTHR_ThermalStatMotor : UINT;
|
||||
bInputLI1 : BOOL;
|
||||
bInputLI2 : BOOL;
|
||||
bInputLI3 : BOOL;
|
||||
bInputLI4 : BOOL;
|
||||
bRelay2State : BOOL;
|
||||
uiErrorCode : UINT;
|
||||
iLastFault : INT;
|
||||
END_STRUCT;
|
||||
ACPinverterOut_typ : STRUCT
|
||||
bCmd00_SwitchOn : BOOL;
|
||||
bCmd01_DisableVoltage : BOOL;
|
||||
bCmd02_QuickStop : BOOL;
|
||||
bCmd03_EnableOperation : BOOL;
|
||||
bCmd07_ResetFault : BOOL;
|
||||
bCmd11_Direction : BOOL;
|
||||
bCmd12_StopCommand : BOOL;
|
||||
bCmd13 : BOOL;
|
||||
bCmd14 : BOOL;
|
||||
bCmd15 : BOOL;
|
||||
bCmi00_FactorySettings : BOOL;
|
||||
bCmi01_SaveToEEPROM : BOOL;
|
||||
bCmi03_ExternalFault : BOOL;
|
||||
bCmi04_RampSwitching : BOOL;
|
||||
bCmi09_FrequencyReference : BOOL;
|
||||
bCmi13_LockOnStandstill : BOOL;
|
||||
bCmi15_CheckParameterConsitency : BOOL;
|
||||
iLFR_Setpointspeed : INT;
|
||||
bOR_Relay2 : BOOL;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
|
||||
@@ -14,8 +14,8 @@ END_VAR
|
||||
VAR
|
||||
gbSPLCOuResetEstopRob1 : BOOL; (*Safety PLC Reset Nothalt Roboter 1*)
|
||||
gbSPLCOuResetEstopRob2 : BOOL; (*Safety PLC Reset Nothalt Roboter 2*)
|
||||
gbSPLCOuResetWorkzoneRob1 : BOOL; (*Safety PLC Reset Sicherheit Best<EFBFBD>ckung Roboter 1*)
|
||||
gbSPLCOuResetWorkzoneRob2 : BOOL; (*Safety PLC Reset Sicherheit Best<EFBFBD>ckung Roboter 2*)
|
||||
gbSPLCOuResetWorkzoneRob1 : BOOL; (*Safety PLC Reset Sicherheit Einlegebereich Roboter 1*)
|
||||
gbSPLCOuResetWorkzoneRob2 : BOOL; (*Safety PLC Reset Sicherheit Einlegebereich Roboter 2*)
|
||||
gbSPLCOuHWSafetyDoor1Rob1OK : BOOL; (*Safety PLC kein Fehler HW*)
|
||||
gbSPLCOuHWSafetyDoor2Rob1OK : BOOL; (*Safety PLC kein Fehler HW*)
|
||||
gbSPLCOuHWSafetyDoor1Rob2OK : BOOL; (*Safety PLC kein Fehler HW*)
|
||||
@@ -34,6 +34,12 @@ VAR
|
||||
gbSPLCOuHWValveCloseGateRob2OK : BOOL; (*Safety PLC kein Fehler HW*)
|
||||
gbSPLCOuReleaseSafeOutputRob1 : BOOL; (*Safety PLC Release Nothalt*)
|
||||
gbSPLCOuReleaseSafeOutputRob2 : BOOL; (*Safety PLC Release Nothalt*)
|
||||
gbSPLCOuReleaseSafeDoorOuRob1 : BOOL; (*Safety PLC Release T<>rkreis Roboter 1*)
|
||||
gbSPLCOuReleaseSafeDoorOuRob2 : BOOL; (*Safety PLC Release T<>rkreis Roboter 2*)
|
||||
gbSPLCOuResetDoorzoneRob1 : BOOL; (*Safety PLCE Reset T<>rkreis Roboter 1*)
|
||||
gbSPLCOuResetDoorzoneRob2 : BOOL; (*Safety PLCE Reset T<>rkreis Roboter 2*)
|
||||
gbSPLCOuReleaseWorkzoneOuRob1 : BOOL; (*Safety PLC Release Einlegebereich Roboter 1*)
|
||||
gbSPLCOuReleaseWorkzoneOuRob2 : BOOL; (*Safety PLC Release Einlegebereich Roboter 2*)
|
||||
END_VAR
|
||||
(*Signals from Safe PLC*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
@@ -43,6 +49,8 @@ VAR
|
||||
gbSPLCInEstopOkRob2 : BOOL; (*Safety PLC E-Stop is Ok Roboter 2*)
|
||||
gbSPLCInWorkzoneOkRob1 : {REDUND_UNREPLICABLE} BOOL; (*Safety PLC E-Stop is Ok Best<73>ckung Roboter 1*)
|
||||
gbSPLCInWorkzoneOkRob2 : {REDUND_UNREPLICABLE} BOOL; (*Safety PLC E-Stop is Ok Best<73>ckung Roboter 2*)
|
||||
gbSPLCInDoorzoneOkRob1 : {REDUND_UNREPLICABLE} BOOL; (*Safety PLC E-Stop is Ok T<>rkreis Roboter 1*)
|
||||
gbSPLCInDoorzoneOkRob2 : {REDUND_UNREPLICABLE} BOOL; (*Safety PLC E-Stop is Ok T<>rkreis Roboter 2*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF3.ST2 - Acopos 1045 (Small Grinder Robot 1)*)
|
||||
@@ -60,41 +68,36 @@ END_VAR
|
||||
(*IF3.ST4 - Acopos P74 (Robot 1 / Tablett 1)*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gAxR1T1_ModuleOk : BOOL := 0;
|
||||
gAxR1T1 : ACP10AXIS_typ;
|
||||
gAxR1T1_HW : SdcHwCfg_typ := (0);
|
||||
gAxR1T1_DrvIf : SdcDrvIf16_typ := (0);
|
||||
gAxR1T1_DiDoIf : SdcDiDoIf_typ := (0);
|
||||
gAxR1T1 : ACPinverter_typ;
|
||||
giOuPressureR1G1 : INT; (*Preassure Grinder 1 Robot 1(0 to 8192)*)
|
||||
gbInToolSlay1OutRob1 : BOOL; (*Toolslay 1 Robot 1 is Out (LI1)*)
|
||||
gbInToolSlay1InRob1 : BOOL; (*Toolslay 1 Robot 1 is In (LI2)*)
|
||||
gbInGateIsOpenRob1 : BOOL; (*ToolGate Robot 1 is Closed (LI4)*)
|
||||
gbInKeyReleaseTool : BOOL; (*Temporary Key Release Gripper Robot 1 (LI5)*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF3.ST5 - Acopos P74 (Robot 1 / Tablett 2)*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gAxR1T2_ModuleOk : BOOL := 0;
|
||||
gAxR1T2 : ACP10AXIS_typ;
|
||||
gAxR1T2_HW : SdcHwCfg_typ := (0);
|
||||
gAxR1T2_DrvIf : SdcDrvIf16_typ := (0);
|
||||
gAxR1T2_DiDoIf : SdcDiDoIf_typ := (0);
|
||||
gAxR1T2 : ACPinverter_typ;
|
||||
giOuPressureR1G2 : INT; (*Preassure Grinder 2 Robot 1 (0 to 8192)*)
|
||||
gbInToolSlay2OutRob1 : BOOL; (*Toolslay 2 Robot 1 is Out (LI1)*)
|
||||
gbInToolSlay2InRob1 : BOOL; (*Toolslay 2 Robot 1 is In (LI2)*)
|
||||
gbInKeyReleasePart : BOOL; (*Temporary Key Release Part Robot 1 (LI5)*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF3.ST6 - Acopos P74 (Robot 2 / Tablett 1)*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gAxR2T1_ModuleOk : BOOL := 0;
|
||||
gAxR2T1 : ACP10AXIS_typ;
|
||||
gAxR2T1_HW : SdcHwCfg_typ := (0);
|
||||
gAxR2T1_DrvIf : SdcDrvIf16_typ := (0);
|
||||
gAxR2T1_DiDoIf : SdcDiDoIf_typ := (0);
|
||||
gAxR2T1 : ACPinverter_typ;
|
||||
giOuPressureR2G1 : INT; (*Preassure Grinder 1 Robot 2 (0 to 8192)*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF3.ST7 - Acopos P74 (Robot 2 / Tablett 2)*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gAxR2T2_ModuleOk : BOOL := 0;
|
||||
gAxR2T2 : ACP10AXIS_typ;
|
||||
gAxR2T2_HW : SdcHwCfg_typ := (0);
|
||||
gAxR2T2_DrvIf : SdcDrvIf16_typ := (0);
|
||||
gAxR2T2_DiDoIf : SdcDiDoIf_typ := (0);
|
||||
gAxR2T2 : ACPinverter_typ;
|
||||
giOuPressureR2G2 : INT; (*Preassure Grinder 2 Robot 2 (0 to 8192)*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF6.ST1 - DI9371*)
|
||||
@@ -122,8 +125,10 @@ VAR
|
||||
gbInResetKeyRob2 : BOOL; (*Resettaster Roboter 1*)
|
||||
gbInAirOKRob1 : BOOL; (*Druckw<6B>chter Luft OK Roboter 1*)
|
||||
gbInAirOKRob2 : BOOL; (*Druckw<6B>chter Luft OK Roboter 2*)
|
||||
gbInEStopPressedRob1 : BOOL; (*Nothalttaster Rob1 Bet<65>tigt*)
|
||||
gbInEStopPressedRob2 : BOOL; (*Nothalttaster Rob2 Bet<65>tigt*)
|
||||
gbInStartKey1Rob1 : BOOL; (*Starttaster Roboter 1 Tablet 1*)
|
||||
gbInStartKey2Rob2 : BOOL; (*Starttaster Roboter 2 Tablet 2*)
|
||||
gbInStartKey2Rob1 : BOOL; (*Starttaster Roboter 1 Tablet 2*)
|
||||
gbInStartKey1Rob2 : BOOL; (*Starttaster Roboter 2 Tablet 1*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF1.ST3 - DI9371*)
|
||||
@@ -132,14 +137,16 @@ VAR
|
||||
gbST3ModuleOk : BOOL;
|
||||
gbIDoorLockedRob1 : BOOL; (*Zugangst<73>r Rob 1 Geschlossen (Riegel eingef<65>hrt)*)
|
||||
gbIDoorErrorRob1 : BOOL; (*Zugangst<73>r Rob 1 St<53>rung*)
|
||||
gbIDoorKey1Rob1 : BOOL; (*Zugangst<73>r Rob 1 Taster 1*)
|
||||
gbIDoorKey2Rob1 : BOOL; (*Zugangst<73>r Rob 1 Taster 2*)
|
||||
gbIDoorKey1Rob1 : BOOL; (*Zugangst<73>r Rob 1 Taster 1 Wei<65>*)
|
||||
gbIDoorKey2Rob1 : BOOL; (*Zugangst<73>r Rob 1 Taster 2 Gelb*)
|
||||
gbIDoorKey3Rob1 : BOOL; (*Zugangst<73>r Rob 1 Schl<68>sselschalter*)
|
||||
gbIDoorLockedRob2 : BOOL; (*Zugangst<73>r Rob 2 Geschlossen (Riegel eingef<65>hrt)*)
|
||||
gbIDoorErrorRob2 : BOOL; (*Zugangst<73>r Rob 2 St<53>rung*)
|
||||
gbIDoorKey1Rob2 : BOOL; (*Zugangst<73>r Rob 2 Taster 1*)
|
||||
gbIDoorKey2Rob2 : BOOL; (*Zugangst<73>r Rob 2 Taster 2*)
|
||||
gbIDoorKey1Rob2 : BOOL; (*Zugangst<73>r Rob 2 Taster 1 Wei<65>*)
|
||||
gbIDoorKey2Rob2 : BOOL; (*Zugangst<73>r Rob 2 Taster 2 Gelb*)
|
||||
gbIDoorKey3Rob2 : BOOL; (*Zugangst<73>r Rob 2 Schl<68>sselschalter*)
|
||||
gbInEStopPressedRob1 : BOOL; (*Nothalttaster Rob1 Bet<65>tigt*)
|
||||
gbInEStopPressedRob2 : BOOL; (*Nothalttaster Rob2 Bet<65>tigt*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF1.ST4 - DO9322*)
|
||||
@@ -156,6 +163,8 @@ VAR
|
||||
gbOuResetDoorMGBRob1 : BOOL; (*Roboter 1 Zuhaltung Reset*)
|
||||
gbOuDoorMGBLED1Rob1 : BOOL; (*Roboter 1 MGB LED 1 Wei<65>*)
|
||||
gbOuDoorMGBLED2Rob1 : BOOL; (*Roboter 1 MGB LED 2 Gelb*)
|
||||
gbOuLEDStartKey1Rob1 : BOOL; (*LED Starttaster Roboter 1 Tablet 1*)
|
||||
gbOuLEDStartKey2Rob2 : BOOL; (*LED Starttaster Roboter 2 Tablet 2*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF1.ST5 - DO9322*)
|
||||
@@ -171,6 +180,8 @@ VAR
|
||||
gbOuResetDoorMGBRob2 : BOOL; (*Roboter 2 Zuhaltung Reset*)
|
||||
gbOuDoorMGBLED1Rob2 : BOOL; (*Roboter 2 MGB LED 1 Wei<65>*)
|
||||
gbOuDoorMGBLED2Rob2 : BOOL; (*Roboter 2 MGB LED 1 Gelb*)
|
||||
gbOuLEDStartKey2Rob1 : BOOL; (*LED Starttaster Roboter 1 Tablet 2*)
|
||||
gbOuLEDStartKey1Rob2 : BOOL; (*LED Starttaster Roboter 2 Tablet 1*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF1.ST6 - SI9100*)
|
||||
@@ -281,30 +292,22 @@ VAR
|
||||
gbOuDQuickStopGrind2Rob2 : BOOL; (*Quickstop Fingerschleifer Rob2*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF1.ST29 - X20BT9100*)
|
||||
(*IF1.ST15 - X20BT9100*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gbST29ModuleOk : BOOL;
|
||||
gbST15ModuleOk : BOOL;
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF1.ST30 - ACP X64*)
|
||||
(*IF1.ST16 - ACP X64*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gAxR1G1_ModuleOk : BOOL := 0;
|
||||
gAxR1G1 : ACP10AXIS_typ;
|
||||
gAxR1G1_HW : SdcHwCfg_typ := (0);
|
||||
gAxR1G1_DrvIf : SdcDrvIf16_typ := (0);
|
||||
gAxR1G1_DiDoIf : SdcDiDoIf_typ := (0);
|
||||
gAxR1G1 : ACPinverter_typ;
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF1.ST31 - ACP X64*)
|
||||
(*IF1.ST17 - ACP X64*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gAxR2G1_ModuleOk : BOOL := 0;
|
||||
gAxR2G1 : ACP10AXIS_typ;
|
||||
gAxR2G1_HW : SdcHwCfg_typ := (0);
|
||||
gAxR2G1_DrvIf : SdcDrvIf16_typ := (0);
|
||||
gAxR2G1_DiDoIf : SdcDiDoIf_typ := (0);
|
||||
gAxR2G1 : ACPinverter_typ;
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*For Test purpose only*)
|
||||
|
||||
@@ -26,6 +26,7 @@ TYPE
|
||||
bAxisSimulation : BOOL;
|
||||
bMachineON : BOOL; (*Anlage EIN*)
|
||||
bMachineONDel : BOOL; (*Anlage EIN Verz<72>gert*)
|
||||
bMachineHOME : BOOL; (*Anlage in Grundstellung*)
|
||||
bRequestHoming : BOOL := 1; (*Anforderung Grundstellungsfahrt*)
|
||||
bSetupMode : BOOL; (*Inbetriebnahme (Plausibilit<69>t deaktivieren)*)
|
||||
enMode : enMACHMODE := enMACH_HOMEPOS; (*Betriebsart*)
|
||||
|
||||
@@ -4,7 +4,8 @@ VAR
|
||||
gMachine2 : typMachine; (*Maschinenstati*)
|
||||
gMachineCommands1 : typMachineCommands; (*Machinenkommandos*)
|
||||
gMachineCommands2 : typMachineCommands; (*Machinenkommandos*)
|
||||
gMachineAlarms : typAlarm := (0); (*Maschinenalarme*)
|
||||
gMachineAlarms1 : typAlarm := (0); (*Maschinenalarme*)
|
||||
gMachineAlarms2 : typAlarm := (0); (*Maschinenalarme*)
|
||||
gSafetyAlarm : typAlarm := (0); (*Sicherheitstechnik Alarme*)
|
||||
gStatusVCControls : typStatusVCControls;
|
||||
gVCCommands : typVCCommands;
|
||||
|
||||
35
Logical/Machine/Grinders/Grinders.st
Normal file
35
Logical/Machine/Grinders/Grinders.st
Normal file
@@ -0,0 +1,35 @@
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
// Robot 1 Grinder 1
|
||||
//Enable IF Module is OK
|
||||
gAxR1G1.Out.bCmd01_DisableVoltage := gAxR1G1.bModuleOK;
|
||||
gAxR1G1.Out.bCmd02_QuickStop := gAxR1G1.bModuleOK;
|
||||
|
||||
//Power Up
|
||||
IF gAxR1G1.In.bStat00_ReadytoSwitchOn AND gMachine1.bMachineON THEN
|
||||
gAxR1G1.Out.bCmd00_SwitchOn := TRUE;
|
||||
gAxR1G1.Out.bCmd03_EnableOperation := TRUE;
|
||||
END_IF
|
||||
|
||||
IF NOT gMachine1.bMachineON OR gAxR1G1.In.bStat06_SwitchedOnDisabled THEN
|
||||
gAxR1G1.Out.bCmd00_SwitchOn := FALSE;
|
||||
gAxR1G1.Out.bCmd03_EnableOperation := FALSE;
|
||||
END_IF
|
||||
|
||||
//Reset Error
|
||||
gAxR1G1.Out.bCmd07_ResetFault := FALSE;
|
||||
|
||||
//Belt
|
||||
gbOuBeltLooseGrind1Rob1 := NOT gCmdTightenBelt1Rob1;
|
||||
gbOuBeltTightenGrind1Rob1 := gCmdTightenBelt1Rob1;
|
||||
|
||||
//Preassure Grinder 1
|
||||
//Robot Values 0-200 := 0-100 in 0.5% Steps Valve Max value is 8000 (8192)
|
||||
giOuPressureR1G1 := gABBRobot1.In.uspGrinder1 * iPreassureStep;
|
||||
|
||||
|
||||
//Preassure Grinder 2
|
||||
giOuPressureR1G2 := gABBRobot1.In.uspGrinder2 * iPreassureStep;
|
||||
|
||||
|
||||
END_PROGRAM
|
||||
3
Logical/Machine/Grinders/Grinders.var
Normal file
3
Logical/Machine/Grinders/Grinders.var
Normal file
@@ -0,0 +1,3 @@
|
||||
VAR CONSTANT
|
||||
iPreassureStep : INT := 40; (*(0-100%) in 0.5 Schritten*)
|
||||
END_VAR
|
||||
@@ -2,9 +2,7 @@
|
||||
<?AutomationStudio Version=4.1.6.81 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File>ncsdcctrlCyclic.st</File>
|
||||
<File>ncsdcctrlInit.st</File>
|
||||
<File Private="true">ncsdcctrl.typ</File>
|
||||
<File Private="true">ncsdcctrl.var</File>
|
||||
<File Description="Cyclic code">Grinders.st</File>
|
||||
<File Description="Local variables" Private="true">Grinders.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
@@ -1,9 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.5.68 SP?>
|
||||
<?AutomationStudio Version=4.1.6.81 SP?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File">GlobalMachine.typ</Object>
|
||||
<Object Type="File">GlobalMachine.var</Object>
|
||||
<Object Type="Program" Language="IEC">machine</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Control Grinders">Grinders</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Temporary Operation">TempMode</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
8
Logical/Machine/TempMode/IEC.prg
Normal file
8
Logical/Machine/TempMode/IEC.prg
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.1.6.81 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Cyclic code">TempMode.st</File>
|
||||
<File Description="Local variables" Private="true">TempMode.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
7
Logical/Machine/TempMode/TempMode.st
Normal file
7
Logical/Machine/TempMode/TempMode.st
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
//Temporary Operation of Valves on Robot
|
||||
gABBRobot1.Out.bReleaseTool := gbInKeyReleaseTool AND gMachine1.bMachineON;
|
||||
gABBRobot1.Out.bReleasePart := gbInKeyReleasePart AND gMachine1.bMachineON;
|
||||
|
||||
END_PROGRAM
|
||||
@@ -1,12 +1,12 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT --
|
||||
********************************************************************
|
||||
* Program: ncsdcctrl
|
||||
* File: ncsdcctrl.var
|
||||
* Program: TempMode
|
||||
* File: TempMode.var
|
||||
* Author: michi
|
||||
* Created: May 15, 2015
|
||||
* Created: July 08, 2015
|
||||
********************************************************************
|
||||
* Local variables of program ncsdcctrl
|
||||
* Local variables of program TempMode
|
||||
********************************************************************)
|
||||
|
||||
VAR
|
||||
@@ -85,32 +85,52 @@ END_IF
|
||||
|
||||
//Machinemodes Robot 1
|
||||
//=================================================
|
||||
IF gbInHomeModeRob1 THEN
|
||||
IF NOT gMachine1.bMachineON THEN
|
||||
gMachine1.enMode := enMACH_NOOP;
|
||||
ELSIF gbInHomeModeRob1 THEN
|
||||
gMachine1.enMode := enMACH_HOMEPOS;
|
||||
ELSIF gbInAutomaticModeRob1 THEN
|
||||
gMachine1.enMode := enMACH_AUTOMATIC;
|
||||
ELSE
|
||||
gMachine1.enMode := enMACH_JOG;
|
||||
END_IF
|
||||
|
||||
//Only Automatic modes
|
||||
IF (gMachine1.enMode = enMACH_AUTOMATIC) THEN
|
||||
IF lMachine1.bRequestHoming THEN
|
||||
// gMachine1.enMode := enMACH_HOMEPOS;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
//Reset Machine Modes
|
||||
IF (gMachine1.enMode = enMACH_HOMEPOS) OR (gMachine1.enMode = enMACH_AUTOMATIC) THEN
|
||||
IF gMachineAlarms1.Alarm[7] THEN
|
||||
gMachine1.enMode := enMACH_NOOP;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
|
||||
//On/OFF
|
||||
IF EDGEPOS (gbInCtrlOnRob1) THEN
|
||||
gMachine1.bMachineON := TRUE;
|
||||
END_IF
|
||||
IF NOT gbInCtrlOffRob1 THEN
|
||||
gMachine1.bMachineON := FALSE;
|
||||
gMachine1.enMode := enMACH_NOOP;
|
||||
//gMachine.bRequestHoming := TRUE;
|
||||
END_IF
|
||||
|
||||
//Machinemodes Robot 2
|
||||
//=================================================
|
||||
IF gbInHomeModeRob2 THEN
|
||||
IF NOT gMachine2.bMachineON THEN
|
||||
gMachine2.enMode := enMACH_NOOP;
|
||||
ELSIF gbInHomeModeRob2 THEN
|
||||
gMachine2.enMode := enMACH_HOMEPOS;
|
||||
ELSIF gbInAutomaticModeRob2 THEN
|
||||
gMachine2.enMode := enMACH_AUTOMATIC;
|
||||
ELSE
|
||||
gMachine2.enMode := enMACH_JOG;
|
||||
END_IF
|
||||
|
||||
//On/OFF
|
||||
IF EDGEPOS (gbInCtrlOnRob2) THEN
|
||||
gMachine2.bMachineON := TRUE;
|
||||
@@ -122,24 +142,8 @@ IF NOT gbInCtrlOffRob2 THEN
|
||||
END_IF
|
||||
|
||||
|
||||
//Reset Machine Modes
|
||||
IF (gMachine1.enMode = enMACH_HOMEPOS) OR (gMachine1.enMode = enMACH_MANUAL) OR (gMachine1.enMode = enMACH_AUTOMATIC) THEN
|
||||
IF gMachineAlarms.Alarm[7] THEN
|
||||
gMachine1.enMode := enMACH_NOOP;
|
||||
END_IF
|
||||
END_IF
|
||||
//Only Automatic modes
|
||||
IF (gMachine1.enMode = enMACH_MANUAL) OR (gMachine1.enMode = enMACH_AUTOMATIC) THEN
|
||||
IF lMachine1.bRequestHoming THEN
|
||||
gMachine1.enMode := enMACH_HOMEPOS;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
//Buttons
|
||||
gStatusVCControls.usBtnHomeMode1 := SHL (BOOL_TO_USINT (FALSE), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (NOT gMachine1.bMachineON OR (gMachine1.enMode <> enMACH_HOMEPOS)), VC_HIDE_BITPOS);
|
||||
gStatusVCControls.usBtnHomeMode2 := SHL (BOOL_TO_USINT (FALSE), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (NOT gMachine2.bMachineON OR (gMachine1.enMode <> enMACH_HOMEPOS)), VC_HIDE_BITPOS);
|
||||
|
||||
|
||||
//Layers
|
||||
@@ -155,51 +159,39 @@ gStatusVCControls.usLayersMainpage[2] := SHL (BOOL_TO_USINT (NOT gMachine1.bMach
|
||||
//gusVCCStatusTool[3] := SHL (BOOL_TO_USINT (gusCurrentTool <> 3), VC_HIDE_BITPOS);
|
||||
gStatusVCControls.usLayersMainpage[3] := SHL (BOOL_TO_USINT (NOT gMachine1.bMachineON OR (gMachine1.enMode <> enMACH_JOG) OR (gusCurrentOpLayer <> 3)), VC_HIDE_BITPOS);
|
||||
//Layer 4 Automatic Opteration Robot 1
|
||||
gStatusVCControls.usLayersMainpage[4] := SHL (BOOL_TO_USINT (NOT gMachine1.bMachineON OR (gMachine1.enMode <> enMACH_JOG) OR (gusCurrentOpLayer <> 4)), VC_HIDE_BITPOS);
|
||||
//Layer 5 Manual Opeation Tool 2
|
||||
IF (gusCurrentOpLayer = 5) AND (FALSE) THEN
|
||||
gusCurrentOpLayer := 3;
|
||||
END_IF
|
||||
gStatusVCControls.usLayersMainpage[5] := SHL (BOOL_TO_USINT (NOT gMachine1.bMachineON OR (gMachine1.enMode <> enMACH_JOG) OR (gusCurrentOpLayer <> 5)), VC_HIDE_BITPOS);
|
||||
//Layer 6 Automatic
|
||||
gStatusVCControls.usLayersMainpage[6] := SHL (BOOL_TO_USINT (NOT gMachine1.bMachineON OR ((gMachine1.enMode <> enMACH_MANUAL) AND (gMachine1.enMode <> enMACH_AUTOMATIC))), VC_HIDE_BITPOS);
|
||||
//Layer 7 Homing
|
||||
gStatusVCControls.usLayersMainpage[7] := SHL (BOOL_TO_USINT (NOT gMachine1.bMachineON OR (gMachine1.enMode <> enMACH_HOMEPOS)), VC_HIDE_BITPOS);
|
||||
gStatusVCControls.usLayersMainpage[4] := SHL (BOOL_TO_USINT (NOT gMachine1.bMachineON OR (gMachine1.enMode <> enMACH_AUTOMATIC)), VC_HIDE_BITPOS);
|
||||
//Layer 5 Homing Robot 1
|
||||
gStatusVCControls.usLayersMainpage[5] := SHL (BOOL_TO_USINT (NOT gMachine1.bMachineON OR (gMachine1.enMode <> enMACH_HOMEPOS)), VC_HIDE_BITPOS);
|
||||
|
||||
|
||||
//Alarms
|
||||
//=================================================
|
||||
//Fuse 24 V DC
|
||||
gMachineAlarms.Alarm[0] := NOT gbIn24VOk;
|
||||
gMachineAlarms1.Alarm[0] := NOT gbIn24VOk;
|
||||
//gMachineAlarms1.Alarm[1] := NOT gbIn24VOk;
|
||||
//Reset Fuse 24V DC
|
||||
gbOuReset24VError := (gbInResetKeyRob1 OR gbInResetKeyRob2) AND NOT gbIn24VOk;
|
||||
//Air
|
||||
//Air Robot 1
|
||||
TON_AirOk1.IN := gbInAirOKRob1;
|
||||
TON_AirOk1.PT := t#5s;
|
||||
TON_AirOk1.PT := t#2s;
|
||||
TON_AirOk1 ();
|
||||
gbAirOk1 := TON_AirOk1.Q;
|
||||
TON_AirNOk1.IN := NOT gbInAirOKRob1;
|
||||
TON_AirNOk1.PT := t#5s;
|
||||
TON_AirNOk1.IN := gMachine1.bMachineON AND gbSPLCInDoorzoneOkRob1 AND NOT gbInAirOKRob1;
|
||||
TON_AirNOk1.PT := t#2s;
|
||||
TON_AirNOk1 ();
|
||||
gMachineAlarms.Alarm[1] := TON_AirNOk1.Q;
|
||||
//Holding Brake
|
||||
gMachineAlarms.Alarm[2] := FALSE;
|
||||
gMachineAlarms.Alarm[3] := FALSE;
|
||||
|
||||
//Limit Switches Pressed
|
||||
//gMachineAlarms.Alarm[4] := NOT gPS.DriveStatus.bTrigger1;
|
||||
//gMachineAlarms.Alarm[5] := NOT gPS.DriveStatus.bTrigger2;
|
||||
|
||||
//Request MachineHoming
|
||||
gMachineAlarms.Alarm[6] := lMachine1.bRequestHoming;
|
||||
|
||||
//Bad Tool
|
||||
gMachineAlarms.Alarm[7] := FALSE;
|
||||
|
||||
//Hardware faults
|
||||
//Axis PS
|
||||
gMachineAlarms.Alarm[22] := FALSE; //lPS.DriveStatus.bAxisError;
|
||||
//Axis Shaft Master
|
||||
gMachineAlarms1.Alarm[1] := TON_AirNOk1.Q;
|
||||
//Air Robot 2
|
||||
TON_AirOk2.IN := gbInAirOKRob2;
|
||||
TON_AirOk2.PT := t#2s;
|
||||
TON_AirOk2 ();
|
||||
gbAirOk2 := TON_AirOk1.Q;
|
||||
TON_AirNOk2.IN := gMachine2.bMachineON AND gbSPLCInDoorzoneOkRob2 AND NOT gbInAirOKRob2;
|
||||
TON_AirNOk2.PT := t#2s;
|
||||
TON_AirNOk2 ();
|
||||
gMachineAlarms2.Alarm[1] := TON_AirNOk2.Q;
|
||||
//Request Homing
|
||||
gMachineAlarms1.Alarm[2] := lMachine1.bRequestHoming;
|
||||
gMachineAlarms2.Alarm[2] := lMachine1.bRequestHoming;
|
||||
|
||||
|
||||
//Cylinder Toolslay 1
|
||||
@@ -225,13 +217,18 @@ TON_MachineOn2 ();
|
||||
gMachine2.bMachineONDel := TON_MachineOn2.Q;
|
||||
|
||||
//Reset E-Stop
|
||||
gbSPLCOuResetEstopRob1 := gbInResetKeyRob1 AND gMachine1.bMachineON;
|
||||
gbSPLCOuResetEstopRob2 := gbInResetKeyRob2 AND gMachine2.bMachineON;
|
||||
gbSPLCOuResetEstopRob1 := EDGEPOS (gbInResetKeyRob1) AND gMachine1.bMachineON AND NOT bInit;
|
||||
gbSPLCOuResetEstopRob2 := EDGEPOS (gbInResetKeyRob2) AND gMachine2.bMachineON AND NOT bInit;
|
||||
|
||||
//Reset Workzone
|
||||
gbSPLCOuResetWorkzoneRob1 := (EDGENEG (gbInStartKey1Rob1) OR EDGENEG (gbInStartKey2Rob1)) AND gMachine1.bMachineON;
|
||||
gbSPLCOuResetWorkzoneRob2 := (EDGENEG (gbInStartKey1Rob2) OR EDGENEG (gbInStartKey2Rob2)) AND gMachine2.bMachineON;
|
||||
|
||||
//gbSPLCOuResetAreaToolslay1 := gbInResetKeyTool1;
|
||||
//gbSPLCOuResetAreaToorschlocholslay2 := gbInResetKeyTool2;
|
||||
|
||||
//Reset Doorzone
|
||||
//FixMe Temporary Mode
|
||||
gbSPLCOuResetDoorzoneRob1 := (EDGENEG (gbInStartKey1Rob1) OR EDGENEG (gbInStartKey2Rob1)) AND gMachine1.bMachineON;
|
||||
//gbSPLCOuResetDoorzoneRob1 := EDGENEG (gbIDoorKey2Rob1) AND gMachine1.bMachineON;
|
||||
gbSPLCOuResetDoorzoneRob2 := EDGENEG (gbIDoorKey2Rob2) AND gMachine2.bMachineON;
|
||||
|
||||
|
||||
bSafetyError := FALSE;
|
||||
@@ -241,21 +238,51 @@ FOR usi := 10 TO 33 DO
|
||||
END_IF
|
||||
END_FOR
|
||||
|
||||
//Outputs
|
||||
//================================================
|
||||
//Power Up Diagnostic Modules Bumper
|
||||
gbOuPowerBumperRob1 := TRUE OR gbInBumperRob1Ok;
|
||||
gbOuPowerBumperRob2 := TRUE OR gbInBumperRob2Ok;
|
||||
|
||||
//Hold Doors Closed
|
||||
gbOuHoldDoorClosedRob1 := gCmdHoldDoorClosedRob1;
|
||||
gbOuHoldDoorClosedRob2 := gCmdHoldDoorClosedRob2;
|
||||
|
||||
//Lamps
|
||||
//------------------------------------------------
|
||||
// cond = Estop
|
||||
// blink 0,5Hz = Ready to reset
|
||||
gbOuLEDOnKeyRob1 := lMachine1.bMachineON;
|
||||
gbOuLEDOnKeyRob2 := lMachine2.bMachineON;
|
||||
|
||||
//E-Stop Reset
|
||||
gbOuLEDResetKeyRob1 := NOT gbSPLCInEstopOkRob1;
|
||||
gbOuLEDResetKeyRob2 := NOT gbSPLCInEstopOkRob2;
|
||||
// (bSafetyError AND bBlink0_5);
|
||||
|
||||
//Door
|
||||
gbOuDoorMGBLED2Rob1 := NOT gbSPLCInDoorzoneOkRob1;
|
||||
gbOuDoorMGBLED2Rob2 := NOT gbSPLCInDoorzoneOkRob2;
|
||||
|
||||
|
||||
//Start Keys at Tablet
|
||||
gbOuLEDStartKey1Rob1 := NOT gbSPLCInWorkzoneOkRob1;
|
||||
gbOuLEDStartKey1Rob2 := NOT gbSPLCInWorkzoneOkRob2;
|
||||
|
||||
//Signal Tower
|
||||
gbOuLampGreenSignalTowerRob1 := lMachine1.bMachineON;
|
||||
gbOuLampRedSignalTowerRob1 := NOT gbSPLCInEstopOkRob1 OR (NOT gbSPLCInWorkzoneOkRob1 AND bBlink0_5);
|
||||
|
||||
gbOuLampGreenSignalTowerRob2 := lMachine2.bMachineON;
|
||||
gbOuLampRedSignalTowerRob2 := NOT gbSPLCInEstopOkRob2 OR (NOT gbSPLCInWorkzoneOkRob1 AND bBlink0_5);
|
||||
|
||||
|
||||
FUB_AsArLogWrite ();
|
||||
IF FUB_AsArLogWrite.status <> ERR_FUB_BUSY THEN
|
||||
FUB_AsArLogWrite.enable := FALSE;
|
||||
END_IF
|
||||
|
||||
bInit := FALSE;
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
|
||||
@@ -19,37 +19,30 @@ END_PROGRAM
|
||||
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
gSafetyAlarm.Alarm[0] := NOT gbSPLCInEstopOkRob1 AND gMachine1.bMachineON;
|
||||
gSafetyAlarm.Alarm[1] := NOT gbSPLCInEstopOkRob2 AND gMachine2.bMachineON;
|
||||
gSafetyAlarm.Alarm[2] := NOT gbSPLCInDoorzoneOkRob1 AND gMachine1.bMachineON;
|
||||
gSafetyAlarm.Alarm[3] := NOT gbSPLCInDoorzoneOkRob2 AND gMachine2.bMachineON;
|
||||
|
||||
gSafetyAlarm.Alarm[4] := FALSE;
|
||||
gSafetyAlarm.Alarm[5] := FALSE;
|
||||
|
||||
//Light Curtain 1 Tool 1 left big
|
||||
TON_LightCurtain1.IN := FALSE;
|
||||
TON_LightCurtain1 ();
|
||||
gSafetyAlarm.Alarm[0] := TON_LightCurtain1.Q;
|
||||
//Light Curtain 2 Tool 1 left small
|
||||
TON_LightCurtain2.IN := FALSE;
|
||||
TON_LightCurtain2 ();
|
||||
gSafetyAlarm.Alarm[1] := TON_LightCurtain2.Q;
|
||||
|
||||
//SafetyArea
|
||||
TON_SafetyAreaToolslay1.IN := FALSE; //gbSPLCInEstopOk AND NOT gbSPLCInAreaToolslay1Ok;
|
||||
TON_SafetyAreaToolslay1 ();
|
||||
gSafetyAlarm.Alarm[4] := TON_SafetyAreaToolslay1.Q;
|
||||
|
||||
TON_SafetyAreaToolslay2.IN := FALSE; //gbSPLCInEstopOk AND NOT gbSPLCInAreaToolslay2Ok;
|
||||
TON_SafetyAreaToolslay2 ();
|
||||
gSafetyAlarm.Alarm[5] := TON_SafetyAreaToolslay2.Q;
|
||||
|
||||
gSafetyAlarm.Alarm[6] := FALSE; //NOT gbSPLCInEstopOk;
|
||||
|
||||
//Hardwareerrors
|
||||
gbSPLCOuHWSafetyDoor1Rob1OK := TRUE;
|
||||
gbSPLCOuHWSafetyDoor2Rob1OK := TRUE;
|
||||
gbSPLCOuHWSafetyDoor1Rob2OK := TRUE;
|
||||
gbSPLCOuHWSafetyDoor2Rob2OK := TRUE;
|
||||
|
||||
gbSPLCOuHWSafetyEStop1Rob1OK := TRUE;
|
||||
gbSPLCOuHWSafetyEStop2Rob1OK := TRUE;
|
||||
gbSPLCOuHWSafetyEStop1Rob2OK := TRUE;
|
||||
gbSPLCOuHWSafetyEStop2Rob2OK := TRUE;
|
||||
|
||||
gbSPLCOuHWSafetyToolSlayRob1OK := TRUE;
|
||||
gbSPLCOuHWSafetyToolSlayRob2OK := TRUE;
|
||||
gbSPLCOuHWSafetyGrindersRob1OK := TRUE;
|
||||
@@ -61,176 +54,168 @@ gbSPLCOuHWMainValveRob2OK := TRUE;
|
||||
gbSPLCOuHWValveCloseGateRob2OK := TRUE;
|
||||
|
||||
|
||||
//MainValve
|
||||
(*IF (genST8StatDO1 = enSDO_RELEASE_ERROR2) THEN
|
||||
//HW Freigabe Fehler
|
||||
//Netzsch<EFBFBD>tz 1 Roboter 1 T<EFBFBD>r
|
||||
IF (genST7StatDO1 = enSDO_RELEASE_ERROR2) THEN
|
||||
gSafetyAlarm.Alarm[10] := TRUE;
|
||||
END_IF
|
||||
IF gbInResetKey THEN
|
||||
IF gbInResetKeyRob1 THEN
|
||||
gSafetyAlarm.Alarm[10] := FALSE;
|
||||
END_IF
|
||||
IF (genST8StatDO1 = enSDO_LOCK_ERROR) THEN
|
||||
IF (genST7StatDO1 = enSDO_LOCK_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[11] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob1 THEN
|
||||
gSafetyAlarm.Alarm[11] := FALSE;
|
||||
END_IF
|
||||
IF (genST8StatDO1 = enSDO_HW_ERROR) THEN
|
||||
IF (genST7StatDO1 = enSDO_HW_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[12] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob1 THEN
|
||||
gSafetyAlarm.Alarm[12] := FALSE;
|
||||
END_IF
|
||||
gbSPLCOuHWMainValveOK := NOT gSafetyAlarm.Alarm[12];
|
||||
//Mains Acopos
|
||||
IF (genST8StatDO2 = enSDO_RELEASE_ERROR2) THEN
|
||||
gbSPLCOuHWSafetyEStop1Rob1OK := NOT gSafetyAlarm.Alarm[12];
|
||||
|
||||
//Netzsch<EFBFBD>tz 2 Roboter 1 T<EFBFBD>r
|
||||
IF (genST7StatDO2 = enSDO_RELEASE_ERROR2) THEN
|
||||
gSafetyAlarm.Alarm[13] := TRUE;
|
||||
END_IF
|
||||
IF gbInResetKey THEN
|
||||
IF gbInResetKeyRob1 THEN
|
||||
gSafetyAlarm.Alarm[13] := FALSE;
|
||||
END_IF
|
||||
IF (genST8StatDO2 = enSDO_LOCK_ERROR) THEN
|
||||
IF (genST7StatDO2 = enSDO_LOCK_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[14] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob1 THEN
|
||||
gSafetyAlarm.Alarm[14] := FALSE;
|
||||
END_IF
|
||||
IF (genST8StatDO2 = enSDO_HW_ERROR) THEN
|
||||
IF (genST7StatDO2 = enSDO_HW_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[15] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob1 THEN
|
||||
gSafetyAlarm.Alarm[15] := FALSE;
|
||||
END_IF
|
||||
gbSPLCOuHWMainsAcoposOk := NOT gSafetyAlarm.Alarm[15];
|
||||
//Enable Acopos Multi
|
||||
IF (genST8StatDO3 = enSDO_RELEASE_ERROR2) THEN
|
||||
gbSPLCOuHWSafetyEStop2Rob1OK := NOT gSafetyAlarm.Alarm[15];
|
||||
|
||||
//Netzsch<EFBFBD>tz 1 Roboter 2 T<EFBFBD>r
|
||||
IF (genST7StatDO3 = enSDO_RELEASE_ERROR2) THEN
|
||||
gSafetyAlarm.Alarm[16] := TRUE;
|
||||
END_IF
|
||||
IF gbInResetKey THEN
|
||||
IF gbInResetKeyRob2 THEN
|
||||
gSafetyAlarm.Alarm[16] := FALSE;
|
||||
END_IF
|
||||
IF (genST8StatDO3 = enSDO_LOCK_ERROR) THEN
|
||||
IF (genST7StatDO1 = enSDO_LOCK_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[17] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob2 THEN
|
||||
gSafetyAlarm.Alarm[17] := FALSE;
|
||||
END_IF
|
||||
IF (genST8StatDO3 = enSDO_HW_ERROR) THEN
|
||||
IF (genST7StatDO1 = enSDO_HW_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[18] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob2 THEN
|
||||
gSafetyAlarm.Alarm[18] := FALSE;
|
||||
END_IF
|
||||
gbSPLCOuHWEnableAcpMultiOk := NOT gSafetyAlarm.Alarm[18];
|
||||
//Valve Pressbrake
|
||||
IF (genST8StatDO4 = enSDO_RELEASE_ERROR2) THEN
|
||||
gbSPLCOuHWSafetyEStop1Rob2OK := NOT gSafetyAlarm.Alarm[18];
|
||||
|
||||
//Netzsch<EFBFBD>tz 2 Roboter 2 T<EFBFBD>r
|
||||
IF (genST7StatDO4 = enSDO_RELEASE_ERROR2) THEN
|
||||
gSafetyAlarm.Alarm[19] := TRUE;
|
||||
END_IF
|
||||
IF gbInResetKey THEN
|
||||
IF gbInResetKeyRob2 THEN
|
||||
gSafetyAlarm.Alarm[19] := FALSE;
|
||||
END_IF
|
||||
IF (genST8StatDO4 = enSDO_LOCK_ERROR) THEN
|
||||
IF (genST7StatDO4 = enSDO_LOCK_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[20] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob2 THEN
|
||||
gSafetyAlarm.Alarm[20] := FALSE;
|
||||
END_IF
|
||||
IF (genST8StatDO4 = enSDO_HW_ERROR) THEN
|
||||
IF (genST7StatDO4 = enSDO_HW_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[21] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob2 THEN
|
||||
gSafetyAlarm.Alarm[21] := FALSE;
|
||||
END_IF
|
||||
gbSPLCOuHWValveBrakeOk := NOT gSafetyAlarm.Alarm[21];
|
||||
gbSPLCOuReleaseSafeOut := NOT gSafetyAlarm.Alarm[10] AND NOT gSafetyAlarm.Alarm[13]
|
||||
AND NOT gSafetyAlarm.Alarm[16] AND NOT gSafetyAlarm.Alarm[19];
|
||||
IF ((genST8StatDO1 = enSDO_LOCK) OR (genST8StatDO2 = enSDO_LOCK) OR
|
||||
(genST8StatDO3 = enSDO_LOCK) OR (genST8StatDO4 = enSDO_LOCK)) THEN
|
||||
TON_ReleaseFlag.IN := TRUE;
|
||||
END_IF
|
||||
IF TON_ReleaseFlag.IN AND NOT TON_ReleaseFlag.Q THEN
|
||||
gbSPLCOuReleaseSafeOut := FALSE;
|
||||
END_IF
|
||||
TON_ReleaseFlag.PT := t#50ms;
|
||||
TON_ReleaseFlag ();
|
||||
|
||||
//Valve Door 1
|
||||
IF (genST9StatDO1 = enSDO_RELEASE_ERROR2) THEN
|
||||
gbSPLCOuHWSafetyEStop2Rob2OK := NOT gSafetyAlarm.Alarm[21];
|
||||
|
||||
|
||||
//Netzsch<EFBFBD>tz 1 Roboter 1
|
||||
IF (genST8StatDO1 = enSDO_RELEASE_ERROR2) THEN
|
||||
gSafetyAlarm.Alarm[22] := TRUE;
|
||||
END_IF
|
||||
IF gbInResetKey THEN
|
||||
IF gbInResetKeyRob1 THEN
|
||||
gSafetyAlarm.Alarm[22] := FALSE;
|
||||
END_IF
|
||||
IF (genST9StatDO1 = enSDO_LOCK_ERROR) THEN
|
||||
IF (genST8StatDO1 = enSDO_LOCK_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[23] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob1 THEN
|
||||
gSafetyAlarm.Alarm[23] := FALSE;
|
||||
END_IF
|
||||
IF (genST9StatDO1 = enSDO_HW_ERROR) THEN
|
||||
IF (genST8StatDO1 = enSDO_HW_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[24] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob1 THEN
|
||||
gSafetyAlarm.Alarm[24] := FALSE;
|
||||
END_IF
|
||||
gbSPLCOuHWValveDoor1Ok := NOT gSafetyAlarm.Alarm[24];
|
||||
//Valve Door 2
|
||||
IF (genST9StatDO2 = enSDO_RELEASE_ERROR2) THEN
|
||||
gbSPLCOuHWSafetyDoor1Rob1OK := NOT gSafetyAlarm.Alarm[24];
|
||||
|
||||
//Netzsch<EFBFBD>tz 2 Roboter 1 T<EFBFBD>r
|
||||
IF (genST8StatDO2 = enSDO_RELEASE_ERROR2) THEN
|
||||
gSafetyAlarm.Alarm[25] := TRUE;
|
||||
END_IF
|
||||
IF gbInResetKey THEN
|
||||
IF gbInResetKeyRob1 THEN
|
||||
gSafetyAlarm.Alarm[25] := FALSE;
|
||||
END_IF
|
||||
IF (genST9StatDO2 = enSDO_LOCK_ERROR) THEN
|
||||
IF (genST8StatDO2 = enSDO_LOCK_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[26] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob1 THEN
|
||||
gSafetyAlarm.Alarm[26] := FALSE;
|
||||
END_IF
|
||||
IF (genST9StatDO2 = enSDO_HW_ERROR) THEN
|
||||
IF (genST8StatDO2 = enSDO_HW_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[27] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob1 THEN
|
||||
gSafetyAlarm.Alarm[27] := FALSE;
|
||||
END_IF
|
||||
gbSPLCOuHWValveDoor2Ok := NOT gSafetyAlarm.Alarm[27];
|
||||
gbSPLCOuReleaseDoors := NOT gSafetyAlarm.Alarm[22] AND NOT gSafetyAlarm.Alarm[25];
|
||||
gbSPLCOuHWSafetyDoor2Rob1OK := NOT gSafetyAlarm.Alarm[27];
|
||||
|
||||
//Enable Acp Tool 1
|
||||
IF (genST9StatDO3 = enSDO_RELEASE_ERROR2) THEN
|
||||
//Netzsch<EFBFBD>tz 1 Roboter 2 T<EFBFBD>r
|
||||
IF (genST8StatDO3 = enSDO_RELEASE_ERROR2) THEN
|
||||
gSafetyAlarm.Alarm[28] := TRUE;
|
||||
END_IF
|
||||
IF gbInResetKey THEN
|
||||
IF gbInResetKeyRob2 THEN
|
||||
gSafetyAlarm.Alarm[28] := FALSE;
|
||||
END_IF
|
||||
IF (genST9StatDO3 = enSDO_LOCK_ERROR) THEN
|
||||
IF (genST8StatDO1 = enSDO_LOCK_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[29] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob2 THEN
|
||||
gSafetyAlarm.Alarm[29] := FALSE;
|
||||
END_IF
|
||||
IF (genST9StatDO3 = enSDO_HW_ERROR) THEN
|
||||
IF (genST8StatDO1 = enSDO_HW_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[30] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob2 THEN
|
||||
gSafetyAlarm.Alarm[30] := FALSE;
|
||||
END_IF
|
||||
gbSPLCOuHWEnableAcpTool1Ok := NOT gSafetyAlarm.Alarm[30];
|
||||
gbSPLCOuReleaseAreaToolslay1 := NOT gSafetyAlarm.Alarm[28];
|
||||
//Enable Acp Tool 2
|
||||
IF (genST9StatDO4 = enSDO_RELEASE_ERROR2) THEN
|
||||
gbSPLCOuHWSafetyDoor1Rob2OK := NOT gSafetyAlarm.Alarm[30];
|
||||
|
||||
//Netzsch<EFBFBD>tz 2 Roboter 2 T<EFBFBD>r
|
||||
IF (genST8StatDO4 = enSDO_RELEASE_ERROR2) THEN
|
||||
gSafetyAlarm.Alarm[31] := TRUE;
|
||||
END_IF
|
||||
IF gbInResetKey THEN
|
||||
IF gbInResetKeyRob2 THEN
|
||||
gSafetyAlarm.Alarm[31] := FALSE;
|
||||
END_IF
|
||||
IF (genST9StatDO4 = enSDO_LOCK_ERROR) THEN
|
||||
IF (genST8StatDO4 = enSDO_LOCK_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[32] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob2 THEN
|
||||
gSafetyAlarm.Alarm[32] := FALSE;
|
||||
END_IF
|
||||
IF (genST9StatDO4 = enSDO_HW_ERROR) THEN
|
||||
IF (genST8StatDO4 = enSDO_HW_ERROR) THEN
|
||||
gSafetyAlarm.Alarm[33] := TRUE;
|
||||
ELSIF gbInResetKey THEN
|
||||
ELSIF gbInResetKeyRob2 THEN
|
||||
gSafetyAlarm.Alarm[33] := FALSE;
|
||||
END_IF
|
||||
gbSPLCOuHWEnableAcpTool2Ok := NOT gSafetyAlarm.Alarm[33];
|
||||
gbSPLCOuReleaseAreaToolslay2 := NOT gSafetyAlarm.Alarm[31];
|
||||
gbSPLCOuHWSafetyDoor2Rob2OK := NOT gSafetyAlarm.Alarm[34];
|
||||
|
||||
|
||||
|
||||
//EStop Tool 1 left
|
||||
gSafetyAlarm.Alarm[40] := gbInEStopPressed1;
|
||||
//EStop Tool 1 right
|
||||
gSafetyAlarm.Alarm[41] := gbInEStopPressed2;
|
||||
//EStop Tool 2 left
|
||||
gSafetyAlarm.Alarm[42] := gbInEStopPressed3;
|
||||
//EStop Tool 2 right
|
||||
gSafetyAlarm.Alarm[43] := gbInEStopPressed4;
|
||||
*)
|
||||
//Nothalt bet<EFBFBD>tigt Roboter 1
|
||||
gSafetyAlarm.Alarm[100] := gbInEStopPressedRob1;
|
||||
//Nothalt bet<EFBFBD>tigt Roboter 2
|
||||
gSafetyAlarm.Alarm[101] := gbInEStopPressedRob2;
|
||||
//Nothalt bet<EFBFBD>tigt Roboter 1
|
||||
gSafetyAlarm.Alarm[102] := NOT gbInEStopPressedRob1 AND NOT gbSInEStopOkRob1;
|
||||
//Nothalt bet<EFBFBD>tigt Roboter 2
|
||||
gSafetyAlarm.Alarm[103] := NOT gbInEStopPressedRob1 AND NOT gbSInEStopOkRob1;
|
||||
END_PROGRAM
|
||||
|
||||
@@ -70,15 +70,20 @@ TOF_ST10_Ch4_WaitAfterError ();
|
||||
|
||||
|
||||
//Release Signals
|
||||
gbSPLCOuReleaseSafeOutputRob1 := NOT (genST8StatDO1 = enSDO_RELEASE_ERROR2) AND NOT (genST8StatDO2 = enSDO_RELEASE_ERROR2);
|
||||
gbSPLCOuReleaseSafeOutputRob2 := NOT (genST8StatDO3 = enSDO_RELEASE_ERROR2) AND NOT (genST8StatDO4 = enSDO_RELEASE_ERROR2);
|
||||
|
||||
gbSPLCOuReleaseSafeOutputRob1 := NOT (genST8StatDO1 = enSDO_RELEASE_ERROR2) AND NOT (genST8StatDO2 = enSDO_RELEASE_ERROR2)
|
||||
AND NOT (genST10StatDO1 = enSDO_RELEASE_ERROR2);
|
||||
gbSPLCOuReleaseSafeOutputRob2 := NOT (genST8StatDO3 = enSDO_RELEASE_ERROR2) AND NOT (genST8StatDO4 = enSDO_RELEASE_ERROR2)
|
||||
AND NOT (genST10StatDO3 = enSDO_RELEASE_ERROR2);
|
||||
gbSPLCOuReleaseSafeDoorOuRob1 := NOT (genST7StatDO1 = enSDO_RELEASE_ERROR2) AND NOT (genST7StatDO2 = enSDO_RELEASE_ERROR2)
|
||||
AND NOT (genST9StatDO3 = enSDO_RELEASE_ERROR2);
|
||||
gbSPLCOuReleaseSafeDoorOuRob2 := NOT (genST7StatDO3 = enSDO_RELEASE_ERROR2) AND NOT (genST7StatDO4 = enSDO_RELEASE_ERROR2)
|
||||
AND NOT (genST9StatDO4 = enSDO_RELEASE_ERROR2);
|
||||
//Enable Signals to HW
|
||||
//ST7
|
||||
gbSOuSafetyAfterDoor1Rob1 := gMachine1.bMachineON AND gbSPLCInWorkzoneOkRob1;
|
||||
gbSOuSafetyAfterDoor2Rob1 := gMachine1.bMachineON AND gbSPLCInWorkzoneOkRob1;
|
||||
gbSOuSafetyAfterDoor1Rob2 := gMachine1.bMachineON AND gbSPLCInWorkzoneOkRob2;
|
||||
gbSOuSafetyAfterDoor2Rob2 := gMachine1.bMachineON AND gbSPLCInWorkzoneOkRob2;
|
||||
gbSOuSafetyAfterDoor1Rob2 := gMachine2.bMachineON AND gbSPLCInWorkzoneOkRob2;
|
||||
gbSOuSafetyAfterDoor2Rob2 := gMachine2.bMachineON AND gbSPLCInWorkzoneOkRob2;
|
||||
|
||||
|
||||
//ST8
|
||||
|
||||
285
Logical/VCShared/AlarmGroups/MachineAlarm1.algrp
Normal file
285
Logical/VCShared/AlarmGroups/MachineAlarm1.algrp
Normal file
@@ -0,0 +1,285 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<AlarmGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="MachineAlarm1">
|
||||
<Property Name="AcknowledgeImage" Value="None"/>
|
||||
<Property Name="ActiveBackColor" Value="45"/>
|
||||
<Property Name="ActiveForeColor" Value="0"/>
|
||||
<Property Name="AlarmImage" Value="Source[global].Variable[DataSource.Machine.gMachineAlarms1.Alarm]"/>
|
||||
<Property Name="BypassBackColor" Value="14"/>
|
||||
<Property Name="BypassForeColor" Value="0"/>
|
||||
<Property Name="BypassImage" Value="None"/>
|
||||
<Property Name="DefaultBackColor" Value="15"/>
|
||||
<Property Name="DefaultForeColor" Value="0"/>
|
||||
<Property Name="Description" Value="General Machine Alams Robot 1"/>
|
||||
<Property Name="GroupAlarm" Value="None"/>
|
||||
<Property Name="ImageOffset" Value="0"/>
|
||||
<Property Name="Index" Value="1"/>
|
||||
<Property Name="LatchedBackColor" Value="2"/>
|
||||
<Property Name="LatchedForeColor" Value="0"/>
|
||||
<Property Name="Priority" Value="1"/>
|
||||
<Property Name="QuitBackColor" Value="1"/>
|
||||
<Property Name="QuitForeColor" Value="0"/>
|
||||
<Alarms>
|
||||
<Alarm Index="0">
|
||||
<Property Name="Acknowledge" Value="Disabled"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="1">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="31">
|
||||
<Property Name="Acknowledge" Value="Disabled"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="2">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="3">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="50">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="51">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="52">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="53">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="100">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="101">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="Group">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
</Alarm>
|
||||
</Alarms>
|
||||
<TextGroup>
|
||||
<TextSnippets>
|
||||
<TextSnippet ClassId="0x00002002" Name="AxisMasterErr0">
|
||||
<Property Name="Alignment" Value="Left"/>
|
||||
<Property Name="Datapoint" Value="None"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FillCharacter" Value=""/>
|
||||
<Property Name="MaxChars" Value="None"/>
|
||||
<Property Name="MinChars" Value="None"/>
|
||||
<Property Name="Persistent" Value="False"/>
|
||||
</TextSnippet>
|
||||
<TextSnippet ClassId="0x00002002" Name="AxisPSErr">
|
||||
<Property Name="Alignment" Value="Left"/>
|
||||
<Property Name="Datapoint" Value="None"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FillCharacter" Value=""/>
|
||||
<Property Name="MaxChars" Value="None"/>
|
||||
<Property Name="MinChars" Value="None"/>
|
||||
<Property Name="Persistent" Value="False"/>
|
||||
</TextSnippet>
|
||||
<TextSnippet ClassId="0x00002002" Name="AxisShaft1Err0">
|
||||
<Property Name="Alignment" Value="Left"/>
|
||||
<Property Name="Datapoint" Value="None"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FillCharacter" Value=""/>
|
||||
<Property Name="MaxChars" Value="None"/>
|
||||
<Property Name="MinChars" Value="None"/>
|
||||
<Property Name="Persistent" Value="False"/>
|
||||
</TextSnippet>
|
||||
<TextSnippet ClassId="0x00002002" Name="AxisShaft2Err0">
|
||||
<Property Name="Alignment" Value="Left"/>
|
||||
<Property Name="Datapoint" Value="None"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FillCharacter" Value=""/>
|
||||
<Property Name="MaxChars" Value="None"/>
|
||||
<Property Name="MinChars" Value="None"/>
|
||||
<Property Name="Persistent" Value="False"/>
|
||||
</TextSnippet>
|
||||
<TextSnippet ClassId="0x00002002" Name="AxisShaft3Err0">
|
||||
<Property Name="Alignment" Value="Left"/>
|
||||
<Property Name="Datapoint" Value="None"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FillCharacter" Value=""/>
|
||||
<Property Name="MaxChars" Value="None"/>
|
||||
<Property Name="MinChars" Value="None"/>
|
||||
<Property Name="Persistent" Value="False"/>
|
||||
</TextSnippet>
|
||||
<TextSnippet ClassId="0x00002002" Name="AxisShaft4Err0">
|
||||
<Property Name="Alignment" Value="Left"/>
|
||||
<Property Name="Datapoint" Value="None"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FillCharacter" Value=""/>
|
||||
<Property Name="MaxChars" Value="None"/>
|
||||
<Property Name="MinChars" Value="None"/>
|
||||
<Property Name="Persistent" Value="False"/>
|
||||
</TextSnippet>
|
||||
<TextSnippet ClassId="0x00002002" Name="AxisSlay1Err0">
|
||||
<Property Name="Alignment" Value="Left"/>
|
||||
<Property Name="Datapoint" Value="None"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FillCharacter" Value=""/>
|
||||
<Property Name="MaxChars" Value="None"/>
|
||||
<Property Name="MinChars" Value="None"/>
|
||||
<Property Name="Persistent" Value="False"/>
|
||||
</TextSnippet>
|
||||
<TextSnippet ClassId="0x00002002" Name="AxisSlay2Err0">
|
||||
<Property Name="Alignment" Value="Left"/>
|
||||
<Property Name="Datapoint" Value="None"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FillCharacter" Value=""/>
|
||||
<Property Name="MaxChars" Value="None"/>
|
||||
<Property Name="MinChars" Value="None"/>
|
||||
<Property Name="Persistent" Value="False"/>
|
||||
</TextSnippet>
|
||||
</TextSnippets>
|
||||
<TextLayer LanguageId="en">
|
||||
<Text ID="21" Value="Dropout Fuse 24V DC"/>
|
||||
<Text ID="22" Value="Robot 1: Lack of Air "/>
|
||||
<Text ID="28" Value="External IO Block (Toolslay 1) not OK"/>
|
||||
<Text ID="29" Value="Robot 1: Request Homing"/>
|
||||
<Text ID="30" Value="Wrong Tool"/>
|
||||
<Text ID="31" Value="Safetydoor Toolslay 1 not opened"/>
|
||||
<Text ID="32" Value="Safetydoor Toolslay 1 not closed"/>
|
||||
<Text ID="33" Value="Safetydoor Toolslay 2 not opened"/>
|
||||
<Text ID="34" Value="Safetydoor Toolslay 2 not closed"/>
|
||||
<Text ID="47" Value="Robot 1: Time Violation in Step Motors On"/>
|
||||
<Text ID="57" Value="Robot 1: Time Violation in Step Start Cycle"/>
|
||||
<Text ID="20" Value=""/>
|
||||
</TextLayer>
|
||||
<TextLayer LanguageId="de">
|
||||
<Text ID="21" Value="Sicherungsfall 24 DC"/>
|
||||
<Text ID="22" Value="Roboter 1: Druckluftüberwachung (Mindestdruck nicht erreicht)"/>
|
||||
<Text ID="28" Value="Modulfehler I/O Block auf Werkzeug 1"/>
|
||||
<Text ID="29" Value="Roboter 1: Anforderung Grundstellungsfahrt"/>
|
||||
<Text ID="30" Value="Falsches Werkzeug eingebaut / angewählt"/>
|
||||
<Text ID="31" Value="Schutztor bei Werkzeugschlitten 1 öffnet nicht"/>
|
||||
<Text ID="32" Value="Schutztor bei Werkzeugschlitten 1 schließt nicht"/>
|
||||
<Text ID="33" Value="Schutztor bei Werkzeugschlitten 2 öffnet nicht"/>
|
||||
<Text ID="34" Value="Schutztor bei Werkzeugschlitten 2 schließt nicht"/>
|
||||
<Text ID="47" Value="Roboter 1: Zeitüberwachung in Schritt Motoren Einschalten"/>
|
||||
<Text ID="57" Value="Roboter 1: Zeitüberwachung in Schritt Programm Start"/>
|
||||
<Text ID="20" Value=""/>
|
||||
</TextLayer>
|
||||
<IndexMap>
|
||||
<Index ID="21" Value="0"/>
|
||||
<Index ID="22" Value="1"/>
|
||||
<Index ID="28" Value="31"/>
|
||||
<Index ID="29" Value="2"/>
|
||||
<Index ID="30" Value="3"/>
|
||||
<Index ID="31" Value="50"/>
|
||||
<Index ID="32" Value="51"/>
|
||||
<Index ID="33" Value="52"/>
|
||||
<Index ID="34" Value="53"/>
|
||||
<Index ID="47" Value="100"/>
|
||||
<Index ID="57" Value="101"/>
|
||||
<Index ID="20" Value="Group"/>
|
||||
</IndexMap>
|
||||
</TextGroup>
|
||||
</AlarmGroup>
|
||||
617
Logical/VCShared/AlarmGroups/SafetyAlarms.algrp
Normal file
617
Logical/VCShared/AlarmGroups/SafetyAlarms.algrp
Normal file
@@ -0,0 +1,617 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<AlarmGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="SafetyAlarms">
|
||||
<Property Name="AcknowledgeImage" Value="None"/>
|
||||
<Property Name="ActiveBackColor" Value="45"/>
|
||||
<Property Name="ActiveForeColor" Value="0"/>
|
||||
<Property Name="AlarmImage" Value="Source[global].Variable[DataSource.Machine.gSafetyAlarm.Alarm]"/>
|
||||
<Property Name="BypassBackColor" Value="14"/>
|
||||
<Property Name="BypassForeColor" Value="0"/>
|
||||
<Property Name="BypassImage" Value="None"/>
|
||||
<Property Name="DefaultBackColor" Value="15"/>
|
||||
<Property Name="DefaultForeColor" Value="0"/>
|
||||
<Property Name="Description" Value="Safety Chain Related Alarms"/>
|
||||
<Property Name="GroupAlarm" Value="None"/>
|
||||
<Property Name="ImageOffset" Value="0"/>
|
||||
<Property Name="Index" Value="3"/>
|
||||
<Property Name="LatchedBackColor" Value="2"/>
|
||||
<Property Name="LatchedForeColor" Value="0"/>
|
||||
<Property Name="Priority" Value="1"/>
|
||||
<Property Name="QuitBackColor" Value="1"/>
|
||||
<Property Name="QuitForeColor" Value="0"/>
|
||||
<Alarms>
|
||||
<Alarm Index="4">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="5">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="0">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="1">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="2">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="3">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="6">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="10">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="13">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="16">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="19">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="11">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="12">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="14">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="15">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="17">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="18">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="7">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="20">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="21">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="8">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="9">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="22">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="23">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="24">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="25">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="26">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="27">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="28">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="29">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="30">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="31">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="32">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="33">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="100">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="101">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="102">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="103">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
<Property Name="TriggerGroupAlarm" Value="False"/>
|
||||
</Alarm>
|
||||
<Alarm Index="Group">
|
||||
<Property Name="Acknowledge" Value="Possible"/>
|
||||
<Property Name="AcknowledgeActive" Value="Enabled"/>
|
||||
<Property Name="Bypass" Value="Enabled"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Latched" Value="False"/>
|
||||
<Property Name="RecordAcknowledge" Value="True"/>
|
||||
<Property Name="RecordBypass" Value="All"/>
|
||||
<Property Name="RecordReset" Value="All"/>
|
||||
<Property Name="RecordTrigger" Value="True"/>
|
||||
</Alarm>
|
||||
</Alarms>
|
||||
<TextGroup>
|
||||
<TextSnippets/>
|
||||
<TextLayer LanguageId="en">
|
||||
<Text ID="67" Value="SafetyArea Toolslay 1 offline"/>
|
||||
<Text ID="68" Value="SafetyArea Toolslay2 offline"/>
|
||||
<Text ID="77" Value="EStop Offline Robot 1"/>
|
||||
<Text ID="78" Value="EStop Offline Robot 2"/>
|
||||
<Text ID="79" Value="Safezone Door Offline Robot 1"/>
|
||||
<Text ID="80" Value="Safezone Door Offline Robot 2"/>
|
||||
<Text ID="81" Value="EStop offline"/>
|
||||
<Text ID="82" Value="SDO Mains after Door 1 Robot 1 Release Error 2"/>
|
||||
<Text ID="83" Value="SDO Mains after Door 2 Robot 1 Release Error 2"/>
|
||||
<Text ID="84" Value="SDO Mains after Door 1 Robot 2 Release Error 2"/>
|
||||
<Text ID="85" Value="SDO Mains after Door 2 Robot 2 Release Error 2"/>
|
||||
<Text ID="116" Value="SDO Mains after Door 1 Robot 1 Lock Error"/>
|
||||
<Text ID="117" Value="SDO Mains after Door 1 Robot 1 HW Error"/>
|
||||
<Text ID="118" Value="SDO Mains after Door 2 Robot 1 Lock Error"/>
|
||||
<Text ID="119" Value="SDO Mains after Door 2 Robot 1 HW Error"/>
|
||||
<Text ID="120" Value="SDO Mains after Door 1 Robot 2 Lock Error"/>
|
||||
<Text ID="121" Value="SDO Mains after Door 1 Robot 2 HW Error"/>
|
||||
<Text ID="122" Value=""/>
|
||||
<Text ID="123" Value="SDO Mains after Door 2 Robot 2 Lock Error"/>
|
||||
<Text ID="124" Value="SDO Mains after Door 2 Robot 2 HW Error"/>
|
||||
<Text ID="143" Value=""/>
|
||||
<Text ID="144" Value=""/>
|
||||
<Text ID="146" Value="SDO Mains 1 Robot 1 Release Error 2"/>
|
||||
<Text ID="147" Value="SDO Mains 1 Robot 1 Lock Error"/>
|
||||
<Text ID="148" Value="SDO Mains 1 Robot 1 HW Error"/>
|
||||
<Text ID="149" Value="SDO Mains 2 Robot 1 Release Error 2"/>
|
||||
<Text ID="150" Value="SDO Mains 2 Robot 1 Lock Error"/>
|
||||
<Text ID="151" Value="SDO Mains 2 Robot 1 HW Error"/>
|
||||
<Text ID="152" Value="SDO Mains 1 Robot 2 Release Error 2"/>
|
||||
<Text ID="153" Value="SDO Mains 1 Robot 2 Lock Error"/>
|
||||
<Text ID="154" Value="SDO Mains 1 Robot 2 HW Error"/>
|
||||
<Text ID="155" Value="SDO Mains 2 Robot 2 Release Error 2"/>
|
||||
<Text ID="156" Value="SDO Mains 2 Robot 2 Lock Error"/>
|
||||
<Text ID="157" Value="SDO Mains 2 Robot 2 HW Error"/>
|
||||
<Text ID="170" Value="E-Stop Operatorzone Robot 1 Pressed"/>
|
||||
<Text ID="171" Value="E-Stop Operatorzone Robot 2 Pressed"/>
|
||||
<Text ID="178" Value="E-Stop (Robotcontrol, Teachpendant, Door) Robot 1 Pressed"/>
|
||||
<Text ID="185" Value="E-Stop (Robotcontrol, Teachpendant, Door) Robot 2 Pressed"/>
|
||||
<Text ID="66" Value=""/>
|
||||
</TextLayer>
|
||||
<TextLayer LanguageId="de">
|
||||
<Text ID="67" Value="Sicherheitsbereich Werkzeugschlitten 1 unterbrochen"/>
|
||||
<Text ID="68" Value="Sicherheitsbereich Werkzeugschlitten 2 unterbrochen"/>
|
||||
<Text ID="77" Value="Nothalt Roboter 1"/>
|
||||
<Text ID="78" Value="Nothalt Roboter 2"/>
|
||||
<Text ID="79" Value="Automatikbereich Roboter 1 Sicherheit Offline "/>
|
||||
<Text ID="80" Value="Automatikbereich Roboter 2 Sicherheit Offline"/>
|
||||
<Text ID="81" Value="Nothaltkreis unterbrochen"/>
|
||||
<Text ID="82" Value="SDO Netzschütz nach Schutztür 1 Roboter 1 Freigabefehler 2"/>
|
||||
<Text ID="83" Value="SDO Netzschütz nach Schutztür 2 Roboter 1 Freigabefehler 2"/>
|
||||
<Text ID="84" Value="SDO Netzschütz nach Schutztür 1 Roboter 2 Freigabefehler 2"/>
|
||||
<Text ID="85" Value="SDO Netzschütz nach Schutztür 2 Roboter 2 Freigabefehler 2"/>
|
||||
<Text ID="116" Value="SDO Netzschütz nach Schutztür 1 Roboter 1 Verriegelungsfehler"/>
|
||||
<Text ID="117" Value="SDO Netzschütz nach Schutztür 1 Roboter 1 HW-Fehler"/>
|
||||
<Text ID="118" Value="SDO Netzschütz nach Schutztür 2 Roboter 1 Verriegelungsfehler"/>
|
||||
<Text ID="119" Value="SDO Netzschütz nach Schutztür 2 Roboter 1 HW-Fehler"/>
|
||||
<Text ID="120" Value="SDO Netzschütz nach Schutztür 2 Roboter 2 Verriegelungsfehler"/>
|
||||
<Text ID="121" Value="SDO Netzschütz nach Schutztür 1 Roboter 2 HW-Fehler"/>
|
||||
<Text ID="122" Value=""/>
|
||||
<Text ID="123" Value="SDO Netzschütz nach Schutztür 2 Roboter 2 Verriegelungsfehler"/>
|
||||
<Text ID="124" Value="SDO Netzschütz nach Schutztür 2 Roboter 2 HW-Fehler"/>
|
||||
<Text ID="143" Value=""/>
|
||||
<Text ID="144" Value=""/>
|
||||
<Text ID="146" Value="SDO Netzschütz Not-Halt 1 Roboter 1 Freigabefehler 2"/>
|
||||
<Text ID="147" Value="SDO Netzschütz Not-Halt 1 Roboter 1 Verriegelungsfehler"/>
|
||||
<Text ID="148" Value="SDO Netzschütz Not-Halt 1 Roboter 1 HW-Fehler"/>
|
||||
<Text ID="149" Value="SDO Netzschütz Not-Halt 2 Roboter 1 Freigabefehler 2"/>
|
||||
<Text ID="150" Value="SDO Netzschütz Not-Halt 2 Roboter 1 Verriegelungsfehler"/>
|
||||
<Text ID="151" Value="SDO Netzschütz Not-Halt 2 Roboter 1 HW-Fehler"/>
|
||||
<Text ID="152" Value="SDO Netzschütz Not-Halt 1 Roboter 2 Freigabefehler 2"/>
|
||||
<Text ID="153" Value="SDO Netzschütz Not-Halt 2 Roboter 2 Verriegelungsfehler"/>
|
||||
<Text ID="154" Value="SDO Netzschütz Not-Halt 1 Roboter 2 HW-Fehler"/>
|
||||
<Text ID="155" Value="SDO Netzschütz Not-Halt 2 Roboter 2 Freigabefehler 2"/>
|
||||
<Text ID="156" Value="SDO Netzschütz Not-Halt 2 Roboter 2 Verriegelungsfehler"/>
|
||||
<Text ID="157" Value="SDO Netzschütz Not-Halt 2 Roboter 2 HW-Fehler"/>
|
||||
<Text ID="170" Value="Nothalt Einlegebereich Roboter 1 betätigt"/>
|
||||
<Text ID="171" Value="Nothalt Einlegebereich Roboter 2 betätigt"/>
|
||||
<Text ID="178" Value="Nothalt (Robotersteuerung, Teachpendant, Tür) Roboter 1 betätigt"/>
|
||||
<Text ID="185" Value="Nothalt (Robotersteuerung, Teachpendant, Tür) Roboter 2 betätigt"/>
|
||||
<Text ID="66" Value=""/>
|
||||
</TextLayer>
|
||||
<IndexMap>
|
||||
<Index ID="67" Value="4"/>
|
||||
<Index ID="68" Value="5"/>
|
||||
<Index ID="77" Value="0"/>
|
||||
<Index ID="78" Value="1"/>
|
||||
<Index ID="79" Value="2"/>
|
||||
<Index ID="80" Value="3"/>
|
||||
<Index ID="81" Value="6"/>
|
||||
<Index ID="82" Value="10"/>
|
||||
<Index ID="83" Value="13"/>
|
||||
<Index ID="84" Value="16"/>
|
||||
<Index ID="85" Value="19"/>
|
||||
<Index ID="116" Value="11"/>
|
||||
<Index ID="117" Value="12"/>
|
||||
<Index ID="118" Value="14"/>
|
||||
<Index ID="119" Value="15"/>
|
||||
<Index ID="120" Value="17"/>
|
||||
<Index ID="121" Value="18"/>
|
||||
<Index ID="122" Value="7"/>
|
||||
<Index ID="123" Value="20"/>
|
||||
<Index ID="124" Value="21"/>
|
||||
<Index ID="143" Value="8"/>
|
||||
<Index ID="144" Value="9"/>
|
||||
<Index ID="146" Value="22"/>
|
||||
<Index ID="147" Value="23"/>
|
||||
<Index ID="148" Value="24"/>
|
||||
<Index ID="149" Value="25"/>
|
||||
<Index ID="150" Value="26"/>
|
||||
<Index ID="151" Value="27"/>
|
||||
<Index ID="152" Value="28"/>
|
||||
<Index ID="153" Value="29"/>
|
||||
<Index ID="154" Value="30"/>
|
||||
<Index ID="155" Value="31"/>
|
||||
<Index ID="156" Value="32"/>
|
||||
<Index ID="157" Value="33"/>
|
||||
<Index ID="170" Value="100"/>
|
||||
<Index ID="171" Value="101"/>
|
||||
<Index ID="178" Value="102"/>
|
||||
<Index ID="185" Value="103"/>
|
||||
<Index ID="66" Value="Group"/>
|
||||
</IndexMap>
|
||||
</TextGroup>
|
||||
</AlarmGroup>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<AlarmGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="SystemAlarms">
|
||||
<Property Name="ActiveBackColor" Value="4"/>
|
||||
<Property Name="ActiveForeColor" Value="16"/>
|
||||
|
||||
@@ -345,6 +345,15 @@
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="BOOL"/>
|
||||
</DataPoint>
|
||||
<DataPoint Name="enMode">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="enMACHMODE"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="INTEGER"/>
|
||||
</DataPoint>
|
||||
</Folder>
|
||||
<Folder Name="gMachine2">
|
||||
<Property Name="Description" Value=""/>
|
||||
@@ -358,6 +367,15 @@
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="BOOL"/>
|
||||
</DataPoint>
|
||||
<DataPoint Name="enMode">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="enMACHMODE"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="INTEGER"/>
|
||||
</DataPoint>
|
||||
</Folder>
|
||||
<Folder Name="gStatusVCControls">
|
||||
<Property Name="Description" Value=""/>
|
||||
@@ -407,6 +425,170 @@
|
||||
</DataPoint>
|
||||
</DataPoint>
|
||||
</Folder>
|
||||
<Folder Name="gMachineAlarms1">
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FolderType" Value="Struct"/>
|
||||
<DataPoint Name="Alarm">
|
||||
<Property Name="ConnectedBySharedResource" Value="True"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="BOOL[0..127]"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="BOOL[]"/>
|
||||
</DataPoint>
|
||||
</Folder>
|
||||
<Folder Name="gSafetyAlarm">
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FolderType" Value="Struct"/>
|
||||
<DataPoint Name="Alarm">
|
||||
<Property Name="ConnectedBySharedResource" Value="True"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="BOOL[0..127]"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="BOOL[]"/>
|
||||
</DataPoint>
|
||||
</Folder>
|
||||
</Folder>
|
||||
<Folder Name="Axises">
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FolderType" Value="Package"/>
|
||||
<Folder Name="GrindCtrl">
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FolderType" Value="Program"/>
|
||||
<DataPoint Name="enTool1State">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="typ_enToolState"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="INTEGER"/>
|
||||
</DataPoint>
|
||||
<DataPoint Name="enTool2State">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="typ_enToolState"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="INTEGER"/>
|
||||
</DataPoint>
|
||||
<DataPoint Name="enStepAuto">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="typ_enStepAuto"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="INTEGER"/>
|
||||
</DataPoint>
|
||||
<Folder Name="StatusVCControls">
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FolderType" Value="Struct"/>
|
||||
<DataPoint Name="usTightenBeltGrinder1">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="USINT"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="INTEGER"/>
|
||||
</DataPoint>
|
||||
<DataPoint Name="usReleaseBeltGrinder1">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="USINT"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="INTEGER"/>
|
||||
</DataPoint>
|
||||
<DataPoint Name="usPrgSelection">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="USINT"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="INTEGER"/>
|
||||
</DataPoint>
|
||||
</Folder>
|
||||
<Folder Name="ManualCommands">
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FolderType" Value="Struct"/>
|
||||
<DataPoint Name="bStartGrinder1">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="BOOL"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="BOOL"/>
|
||||
</DataPoint>
|
||||
<DataPoint Name="bTightenBeltGrinder1">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="BOOL"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="BOOL"/>
|
||||
</DataPoint>
|
||||
<DataPoint Name="bReleaseBeltGrinder1">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="BOOL"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="BOOL"/>
|
||||
</DataPoint>
|
||||
</Folder>
|
||||
<DataPoint Name="enProgramSelection">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="typ_enPrograms"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="INTEGER"/>
|
||||
</DataPoint>
|
||||
<DataPoint Name="enStepHoming">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="typ_enStepHoming"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="INTEGER"/>
|
||||
</DataPoint>
|
||||
</Folder>
|
||||
<DataPoint Name="genActivePrgRob1">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="typ_enPrograms"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="INTEGER"/>
|
||||
</DataPoint>
|
||||
</Folder>
|
||||
<Folder Name="GlobalVars">
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="FolderType" Value="Package"/>
|
||||
<DataPoint Name="giOuPressureR1G1">
|
||||
<Property Name="ConnectedBySharedResource" Value="False"/>
|
||||
<Property Name="ConnectingVisus" Value="Visualization\Visu1"/>
|
||||
<Property Name="DPLimit" Value="Default"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="PLCType" Value="INT"/>
|
||||
<Property Name="PLCUnit" Value="Source[relative:UnitGroup].Unit[PLC_Unit]"/>
|
||||
<Property Name="UnitGroup" Value="Source[global].UnitGroup[Percentage]"/>
|
||||
<Property Name="UpdateTime" Value="Default"/>
|
||||
<Property Name="UserID" Value="None"/>
|
||||
<Property Name="VCType" Value="SCALED"/>
|
||||
</DataPoint>
|
||||
</Folder>
|
||||
</DataPoints>
|
||||
</DataSource>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<Languages xmlns="http://br-automation.co.at/AS/VC/Project">
|
||||
<Property Name="Default" Value="en"/>
|
||||
<Property Name="Default" Value="de"/>
|
||||
<Property Name="FallBackLanguage" Value="None"/>
|
||||
<Language ID="en">
|
||||
<Property Name="BidiMode" Value="False"/>
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
<Source File="TextGroups\AlarmState.txtgrp"/>
|
||||
<Source File="TextGroups\DateTimeFormats.txtgrp"/>
|
||||
<Source File="TextGroups\httpURL_SDM.txtgrp"/>
|
||||
<Source File="TextGroups\MachineState.txtgrp"/>
|
||||
<Source File="TextGroups\MachineMode.txtgrp"/>
|
||||
<Source File="UnitGroups\Length.vcug"/>
|
||||
<Source File="UnitGroups\Mass.vcug"/>
|
||||
<Source File="UnitGroups\Volume.vcug"/>
|
||||
@@ -18,8 +20,11 @@
|
||||
<Source File="UnitGroups\Memory.vcug"/>
|
||||
<Source File="UnitGroups\Pressure.vcug"/>
|
||||
<Source File="UnitGroups\Temperatures.vcug"/>
|
||||
<Source File="UnitGroups\Percentage.vcug"/>
|
||||
<Source File="AlarmGroups\AlarmSystem.alcfg"/>
|
||||
<Source File="AlarmGroups\SystemAlarms.algrp"/>
|
||||
<Source File="AlarmGroups\MachineAlarm1.algrp"/>
|
||||
<Source File="AlarmGroups\SafetyAlarms.algrp"/>
|
||||
<Source File="DataSources\Internal.dso"/>
|
||||
<Source File="DataSources\DataSource.dso"/>
|
||||
<Source File="ControlVersion.cvinfo"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<TextGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="AlarmAcknowledgeState">
|
||||
<Property Name="Description" Value="Texts for acknowledge state of an alarm - index 0-1 long, index 10-11 short"/>
|
||||
<Property Name="Index" Value="152"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<TextGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="AlarmBypassState">
|
||||
<Property Name="Description" Value="Texts for the bypass state of an alarm - index 0-1 long, index 10-11 short"/>
|
||||
<Property Name="Index" Value="153"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<TextGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="AlarmEvent">
|
||||
<Property Name="Description" Value="Texts for the event of an alarm - index 0-1 long, index 10-11 short"/>
|
||||
<Property Name="Index" Value="151"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<TextGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="AlarmState">
|
||||
<Property Name="Description" Value="Texts for alarm state - index 0-1 long, index 10-11 short"/>
|
||||
<Property Name="Index" Value="150"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<TextGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="DateTimeFormats">
|
||||
<Property Name="Description" Value="Formats for Date and Time"/>
|
||||
<Property Name="Index" Value="0"/>
|
||||
|
||||
28
Logical/VCShared/TextGroups/MachineMode.txtgrp
Normal file
28
Logical/VCShared/TextGroups/MachineMode.txtgrp
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<TextGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="MachineMode">
|
||||
<Property Name="Description" Value="Maschinenmodus"/>
|
||||
<Property Name="Index" Value="3"/>
|
||||
<TextSnippets/>
|
||||
<TextLayer LanguageId="en">
|
||||
<Text ID="103968" Value="No Mode"/>
|
||||
<Text ID="103969" Value="Jog Mode"/>
|
||||
<Text ID="103970" Value="Manual Mode"/>
|
||||
<Text ID="103971" Value="Automatic Mode"/>
|
||||
<Text ID="103972" Value="HomingMode"/>
|
||||
</TextLayer>
|
||||
<TextLayer LanguageId="de">
|
||||
<Text ID="103968" Value="Keine Betr.art"/>
|
||||
<Text ID="103969" Value="Tippbetrieb"/>
|
||||
<Text ID="103970" Value="Handbetrieb"/>
|
||||
<Text ID="103971" Value="Automatik"/>
|
||||
<Text ID="103972" Value="Grundstellung"/>
|
||||
</TextLayer>
|
||||
<IndexMap>
|
||||
<Index ID="103968" Value="0"/>
|
||||
<Index ID="103969" Value="1"/>
|
||||
<Index ID="103970" Value="2"/>
|
||||
<Index ID="103971" Value="4"/>
|
||||
<Index ID="103972" Value="3"/>
|
||||
</IndexMap>
|
||||
</TextGroup>
|
||||
19
Logical/VCShared/TextGroups/MachineState.txtgrp
Normal file
19
Logical/VCShared/TextGroups/MachineState.txtgrp
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<TextGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="MachineState">
|
||||
<Property Name="Description" Value="Machine ON/OFF State"/>
|
||||
<Property Name="Index" Value="2"/>
|
||||
<TextSnippets/>
|
||||
<TextLayer LanguageId="en">
|
||||
<Text ID="103966" Value="Machine ON"/>
|
||||
<Text ID="103967" Value="Machine OFF"/>
|
||||
</TextLayer>
|
||||
<TextLayer LanguageId="de">
|
||||
<Text ID="103966" Value="Anlage EIN"/>
|
||||
<Text ID="103967" Value="Anlage AUS"/>
|
||||
</TextLayer>
|
||||
<IndexMap>
|
||||
<Index ID="103966" Value="1"/>
|
||||
<Index ID="103967" Value="0"/>
|
||||
</IndexMap>
|
||||
</TextGroup>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<TextGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="httpURL_SDM">
|
||||
<Property Name="Description" Value="URL Texts for SDM"/>
|
||||
<Property Name="Index" Value="1"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<UnitGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Length">
|
||||
<Property Name="DefaultDisplayUnit" Value="Source[embedded].Unit[Meter]"/>
|
||||
<Property Name="DefaultLimit" Value="None"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<UnitGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Mass">
|
||||
<Property Name="DefaultDisplayUnit" Value="Source[embedded].Unit[Kilogramm]"/>
|
||||
<Property Name="DefaultLimit" Value="None"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<UnitGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Memory">
|
||||
<Property Name="DefaultDisplayUnit" Value="Source[embedded].Unit[Byte]"/>
|
||||
<Property Name="DefaultLimit" Value="None"/>
|
||||
|
||||
70
Logical/VCShared/UnitGroups/Percentage.vcug
Normal file
70
Logical/VCShared/UnitGroups/Percentage.vcug
Normal file
@@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<UnitGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Percentage">
|
||||
<Property Name="DefaultDisplayUnit" Value="Source[embedded].Unit[Per0to200]"/>
|
||||
<Property Name="DefaultLimit" Value="None"/>
|
||||
<Property Name="DefaultPLCUnit" Value="Source[embedded].Unit[PLC_Unit]"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="InternalUnitTextIndex" Value="0"/>
|
||||
<Property Name="RuntimeUnitChange" Value="None"/>
|
||||
<Property Name="RuntimeUnitCurrentDatapoint" Value="None"/>
|
||||
<TextGroup Name="TextGroup_1">
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Index" Value="65536"/>
|
||||
<TextSnippets/>
|
||||
<TextLayer LanguageId="en">
|
||||
<Text ID="103992" Value=""/>
|
||||
<Text ID="103993" Value=""/>
|
||||
<Text ID="103994" Value="%"/>
|
||||
<Text ID="103996" Value=""/>
|
||||
<Text ID="103997" Value=""/>
|
||||
</TextLayer>
|
||||
<TextLayer LanguageId="de">
|
||||
<Text ID="103992" Value=""/>
|
||||
<Text ID="103993" Value=""/>
|
||||
<Text ID="103994" Value="%"/>
|
||||
<Text ID="103996" Value=""/>
|
||||
<Text ID="103997" Value=""/>
|
||||
</TextLayer>
|
||||
<IndexMap>
|
||||
<Index ID="103992" Value="0"/>
|
||||
<Index ID="103993" Value="1"/>
|
||||
<Index ID="103994" Value="2"/>
|
||||
<Index ID="103996" Value="3"/>
|
||||
<Index ID="103997" Value="4"/>
|
||||
</IndexMap>
|
||||
</TextGroup>
|
||||
<Units>
|
||||
<Unit ClassId="0x00000603" Name="Per0to200">
|
||||
<Property Name="DefaultPrecisionDatapoint" Value="None"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Index" Value="1"/>
|
||||
<Property Name="Text_Abbreviation_TextGroup" Value="None"/>
|
||||
<Property Name="Text_Abbreviation_TextIndex" Value="2"/>
|
||||
<Property Name="Text_Description_TextGroup" Value="None"/>
|
||||
<Property Name="Text_Description_TextIndex" Value="1"/>
|
||||
<Property Name="UnitFraction" Value="False"/>
|
||||
<Property Name="Unit_DefaultPrecision" Value="1"/>
|
||||
<Property Name="Value[0].Internal" Value="0"/>
|
||||
<Property Name="Value[0].Scaled" Value="0"/>
|
||||
<Property Name="Value[1].Internal" Value="8000"/>
|
||||
<Property Name="Value[1].Scaled" Value="100"/>
|
||||
</Unit>
|
||||
<Unit ClassId="0x00000603" Name="PLC_Unit">
|
||||
<Property Name="DefaultPrecisionDatapoint" Value="None"/>
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Index" Value="0"/>
|
||||
<Property Name="Text_Abbreviation_TextGroup" Value="None"/>
|
||||
<Property Name="Text_Abbreviation_TextIndex" Value="4"/>
|
||||
<Property Name="Text_Description_TextGroup" Value="None"/>
|
||||
<Property Name="Text_Description_TextIndex" Value="3"/>
|
||||
<Property Name="UnitFraction" Value="False"/>
|
||||
<Property Name="Unit_DefaultPrecision" Value="2"/>
|
||||
<Property Name="Value[0].Internal" Value="0"/>
|
||||
<Property Name="Value[0].Scaled" Value="0"/>
|
||||
<Property Name="Value[1].Internal" Value="1"/>
|
||||
<Property Name="Value[1].Scaled" Value="1"/>
|
||||
</Unit>
|
||||
</Units>
|
||||
<Limits/>
|
||||
</UnitGroup>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<UnitGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Power">
|
||||
<Property Name="DefaultDisplayUnit" Value="Source[embedded].Unit[Watt]"/>
|
||||
<Property Name="DefaultLimit" Value="None"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<UnitGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Pressure">
|
||||
<Property Name="DefaultDisplayUnit" Value="Source[embedded].Unit[Pascal]"/>
|
||||
<Property Name="DefaultLimit" Value="None"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<UnitGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Temperatures">
|
||||
<Property Name="DefaultDisplayUnit" Value="Source[embedded].Unit[Celsius]"/>
|
||||
<Property Name="DefaultLimit" Value="None"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<UnitGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Volume">
|
||||
<Property Name="DefaultDisplayUnit" Value="Source[embedded].Unit[Liter]"/>
|
||||
<Property Name="DefaultLimit" Value="None"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="AlarmAcknowledgeState">
|
||||
<Property Name="Description" Value="Bitmap group for acknowledge state of an alarm"/>
|
||||
<Property Name="Index" Value="151"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="AlarmBypassState">
|
||||
<Property Name="Description" Value="Bitmap group for bypass state of an alarm"/>
|
||||
<Property Name="Index" Value="152"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="AlarmEvent">
|
||||
<Property Name="Description" Value="Bitmap group for the event of an alarm"/>
|
||||
<Property Name="Index" Value="153"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="AlarmState">
|
||||
<Property Name="Description" Value="Bitmap group for alarm state"/>
|
||||
<Property Name="Index" Value="150"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Borders">
|
||||
<Property Name="Description" Value="Bitmap group for borders"/>
|
||||
<Property Name="Index" Value="3"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Buttons">
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Index" Value="6"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="GlobalArea">
|
||||
<Property Name="Description" Value="Bitmap group for global area elements"/>
|
||||
<Property Name="Index" Value="4"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Orange_24">
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Index" Value="5"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Orange_36">
|
||||
<Property Name="Description" Value=""/>
|
||||
<Property Name="Index" Value="2"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Pads">
|
||||
<Property Name="Description" Value="Bitmap group for input pads"/>
|
||||
<Property Name="Index" Value="1"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="msgBox">
|
||||
<Property Name="Description" Value="Bitmaps for Message Box"/>
|
||||
<Property Name="Index" Value="0"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<LogicalFont xmlns="http://br-automation.co.at/AS/VC/Project" Name="Default">
|
||||
<Property Name="Description" Value="font for simple texts"/>
|
||||
<Property Name="Index" Value="0"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?AutomationStudio Version="4.1.5.68 SP"?>
|
||||
<?AutomationStudio Version="4.1.6.81 SP"?>
|
||||
<LogicalFont xmlns="http://br-automation.co.at/AS/VC/Project" Name="Html_SDM">
|
||||
<Property Name="Description" Value="font for SDM HTML view"/>
|
||||
<Property Name="Index" Value="4"/>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user