Changed Gluesystem

This commit is contained in:
2018-12-08 09:27:40 +01:00
parent a73ec39102
commit aaec29fa6b
12 changed files with 68 additions and 60 deletions

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version="4.3.6.57 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<Project Description="Kartusche" Version="1.00.0" Edition="Standard" EditionComment="Standard" xmlns="http://br-automation.co.at/AS/Project">
<Communication />
<ANSIC DefaultIncludes="true" />

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version="4.3.6.57 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<ProjectSettings xmlns="http://br-automation.co.at/AS/ProjectSettings">
<ConfigurationManager ActiveConfigurationName="Config0" />
<Deployment Value="ActiveCpu" />

View File

@@ -10,8 +10,9 @@ PROGRAM _CYCLIC
gGlueInterface.In.bEnd := usComIn.1;
gGlueInterface.In.bHome := usComIn.2;
gGlueInterface.In.bHeatOn := usComIn.3;
gGlueInterface.In.rGlueAmmount := 0.001 * (UINT_TO_REAL (SHL (USINT_TO_UINT (usComInAmmount[2]), 8)) + USINT_TO_REAL (usComInAmmount[3]));
gGlueInterface.In.usTemperature := usComInHeat MOD 100;
gGlueInterface.In.bChangedCartrige := usComIn.4;
gGlueInterface.In.rGlueAmmount := 0.001 * (UINT_TO_REAL (SHL (USINT_TO_UINT (usComInAmmount[0]), 8)) + USINT_TO_REAL (usComInAmmount[1]));
gGlueInterface.In.rTemperature := USINT_TO_REAL (usComInTemperature MOD 101);
gGlueInterface.In.rTouchForce := ABS (USINT_TO_REAL (usComInForce)) / 100.0 * -1.0;
END_IF
usComOut.0 := gGlueInterface.Out.bReady;
@@ -19,20 +20,24 @@ PROGRAM _CYCLIC
usComOut.2 := gGlueInterface.Out.bHomed;
usComOut.3 := gGlueInterface.Out.bGlueActive;
usComOut.4 := gGlueInterface.Out.bCartrigeEmpty;
udTemp := REAL_TO_UDINT (gGlueInterface.Out.rAppliedGlue * 1000.0);
usComOutAmmount[3] := UDINT_TO_USINT (udTemp);
usComOutAmmount[2] := UDINT_TO_USINT (SHR (udTemp, 8));
usComOutAmmount[1] := UDINT_TO_USINT (SHR (udTemp, 16));
usComOutAmmount[0] := UDINT_TO_USINT (SHR (udTemp, 24));
uiTemp := REAL_TO_UINT (gGlueInterface.Out.rAppliedGlue * 1000.0);
usComOutAmmount[1] := UINT_TO_USINT (uiTemp);
usComOutAmmount[0] := UINT_TO_USINT (SHR (uiTemp, 8));
//usComOutAmmount[3] := UDINT_TO_USINT (udTemp);
//usComOutAmmount[2] := UDINT_TO_USINT (SHR (udTemp, 8));
//usComOutAmmount[1] := UDINT_TO_USINT (SHR (udTemp, 16));
//usComOutAmmount[0] := UDINT_TO_USINT (SHR (udTemp, 24));
usComOutRemain[1] := UINT_TO_USINT (gGlueInterface.Out.uRemainingGlue);
usComOutRemain[0] := UINT_TO_USINT (SHR (gGlueInterface.Out.uRemainingGlue, 8));
usComOutRemain[1] := UINT_TO_USINT (gGlueInterface.Out.uiRemainingGlue);
usComOutRemain[0] := UINT_TO_USINT (SHR (gGlueInterface.Out.uiRemainingGlue, 8));
udTemp := REAL_TO_UDINT (gGlueInterface.Out.rActPos * 10.0);
usComOutPos[3] := UDINT_TO_USINT (udTemp);
usComOutPos[2] := UDINT_TO_USINT (SHR (udTemp, 8));
usComOutPos[1] := UDINT_TO_USINT (SHR (udTemp, 16));
usComOutPos[0] := UDINT_TO_USINT (SHR (udTemp, 24));
uiTemp := REAL_TO_UINT (gGlueInterface.Out.rActPos * 10.0);
usComOutPos[1] := UINT_TO_USINT (uiTemp);
usComOutPos[0] := UINT_TO_USINT (SHR (uiTemp, 8));
//usComOutPos[3] := UDINT_TO_USINT (udTemp);
//usComOutPos[2] := UDINT_TO_USINT (SHR (udTemp, 8));
//usComOutPos[1] := UDINT_TO_USINT (SHR (udTemp, 16));
//usComOutPos[0] := UDINT_TO_USINT (SHR (udTemp, 24));
END_PROGRAM

View File

@@ -1,12 +1,12 @@
VAR
bComDisabled : BOOL;
usComIn : USINT;
usComInHeat : USINT;
usComInTemperature : USINT;
usComInForce : USINT; (*Kraft zum an tasten in 100 Nm*)
usComInAmmount : {REDUND_UNREPLICABLE} ARRAY[0..3] OF USINT;
usComInAmmount : {REDUND_UNREPLICABLE} ARRAY[0..1] OF USINT;
usComOut : USINT;
udTemp : UDINT;
usComOutAmmount : {REDUND_UNREPLICABLE} ARRAY[0..3] OF USINT;
uiTemp : UINT;
usComOutAmmount : {REDUND_UNREPLICABLE} ARRAY[0..1] OF USINT;
usComOutRemain : {REDUND_UNREPLICABLE} ARRAY[0..1] OF USINT;
usComOutPos : {REDUND_UNREPLICABLE} ARRAY[0..3] OF USINT;
usComOutPos : {REDUND_UNREPLICABLE} ARRAY[0..1] OF USINT;
END_VAR

View File

@@ -5,8 +5,9 @@ TYPE
bEnd : BOOL; (*Ende Kleben*)
bHome : BOOL; (*Grundstellung anfahren*)
bHeatOn : BOOL;
bChangedCartrige : BOOL;
rTemperature : REAL; (*Temperatur <20>C*)
rGlueAmmount : {REDUND_UNREPLICABLE} REAL; (*Klebemenge in cm3/S*)
usTemperature : USINT;
rTouchForce : REAL; (*Antastmoment von USINT*)
END_STRUCT;
gtyp_GlueInterfaceOut : STRUCT (*Befehle an Robotersteuerung*)
@@ -16,7 +17,7 @@ TYPE
bCartrigeUnderPressure : BOOL; (*Kartusche unter Druck*)
bNozzleJammed : BOOL; (*D<>se Verstopft*)
bCartrigeEmpty : BOOL; (*Kartusche Leer*)
uRemainingGlue : UINT; (*Restlicher Kleber in %*)
uiRemainingGlue : UINT; (*Restlicher Kleber in %*)
rAppliedGlue : REAL; (*Ausgetragene Klebermenge in cm3*)
rActPos : REAL; (*Position Spindel*)
END_STRUCT;

View File

@@ -5,13 +5,13 @@ PROGRAM _CYCLIC
IF bInit THEN
Parameter.rCartrigeEmpty := 14;
Parameter.rCartrigeFulle := 190;
Parameter.rCartrigeFulle := 158; //130;
Parameter.rTorqueJammed := 2.6;
Parameter.rSpeedLimit := 1.5;
Parameter.rSpeedLimit := 2.0;
Parameter.rTorqueTouch := -1.1;
END_IF
Parameter.rTemperature := USINT_TO_REAL (gGlueInterface.In.usTemperature);
Parameter.rTemperature := gGlueInterface.In.rTemperature; //USINT_TO_REAL (gGlueInterface.In.usTemperature);
//Menge 2.0 cm3 / s
@@ -22,7 +22,7 @@ PROGRAM _CYCLIC
//Ist Positionen abfragen
States.PosState.bHomeC := gAxis[0].DriveStatus.bHomingOk AND FC_InTolerance (gAxis[0].rActPosition, 220.0, -0.1, 0.1);
States.PosState.bHomeC := gAxis[0].DriveStatus.bHomingOk AND FC_InTolerance (gAxis[0].rActPosition, 220.0 -30.0, -1.0, 0.1);
//Grundstellungen
@@ -39,10 +39,10 @@ PROGRAM _CYCLIC
gAxis[0].Para.usHomeingMode := 11; //Restorepos
gAxis[0].Para.rHomePosition := 0.0;
gAxis[0].Para.usHomeingMode := 13; //Torque
gAxis[0].Para.rHomePosition := 222.0;
gAxis[0].Para.rHomePosition := 222.0 - 30;
ELSE
gAxis[0].Para.usHomeingMode := 13; //Torque
gAxis[0].Para.rHomePosition := 222.0;
gAxis[0].Para.rHomePosition := 222.0 - 30;
END_IF
gAxis[0].bHome := TRUE;
END_IF
@@ -52,12 +52,14 @@ PROGRAM _CYCLIC
END_IF
IF gGlueInterface.In.bChangedCartrige THEN
gGlueInterface.Out.uiRemainingGlue := 100;
END_IF
IF gAxis[0].DriveStatus.bHomingOk AND gGlueInterface.Out.bCartrigeUnderPressure THEN
IF gAxis[0].rActPosition >= Parameter.rCartrigeFulle THEN
gGlueInterface.Out.uRemainingGlue := 100;
gGlueInterface.Out.uiRemainingGlue := 100;
ELSE
gGlueInterface.Out.uRemainingGlue := REAL_TO_UINT (100 * (gAxis[0].rActPosition - Parameter.rCartrigeEmpty) / (Parameter.rCartrigeFulle - Parameter.rCartrigeEmpty));
gGlueInterface.Out.uiRemainingGlue := REAL_TO_UINT (100 * (gAxis[0].rActPosition - Parameter.rCartrigeEmpty) / (Parameter.rCartrigeFulle - Parameter.rCartrigeEmpty));
END_IF
END_IF
@@ -92,7 +94,7 @@ PROGRAM _CYCLIC
IF lMachine.enMode = enMACH_JOG THEN
//Grenzwerte aktiv
gAxis[0].Para.rJogLimitLow := 10.51;
gAxis[0].Para.rJogLimitHigh := 220.5;
gAxis[0].Para.rJogLimitHigh := 220.5 - 30;
//Geschwindigkeiten
gAxis[0].Para.rJogVelocity := 5;
@@ -139,10 +141,11 @@ PROGRAM _CYCLIC
//---------------------------
enAutoStep_INIT:
enStepAuto := enAutoStep_WAIT_CMD;
//Auf Befehle Warten
//---------------------------
enAutoStep_WAIT_CMD:
gAxis[0].Move.bAbsolute := FALSE;
gAxis[0].bStop := FALSE;
IF gGlueInterface.In.bHome AND NOT gGlueInterface.Out.bHomed THEN
enStepAuto := enAutoStep_MOVE_HOME;
ELSIF gGlueInterface.In.bStartGlue AND NOT gGlueInterface.Out.bCartrigeEmpty AND NOT gGlueInterface.Out.bNozzleJammed THEN
@@ -158,8 +161,9 @@ PROGRAM _CYCLIC
gAxis[0].Para.rVelocity := 55.0; //mm/s
gAxis[0].Para.rAcceleration := 750.0; //mm/s2
gAxis[0].Para.rDeceleration := 750.0; //mm/s2
gAxis[0].Para.rPosition := 220.0;
gAxis[0].Para.rPosition := 220.0 - 30;
gAxis[0].Move.bAbsolute := TRUE;
gAxis[0].bStop := FALSE;
enStepAuto := enAutoStep_WAIT_HOME;
@@ -262,10 +266,10 @@ PROGRAM _CYCLIC
gAxis[0].Para.rAcceleration := 750.0; //mm/s2
gAxis[0].Para.rDeceleration := 750.0; //mm/s2
IF NOT gAxis[0].Move.bAdditive THEN
IF gAxis[0].rActPosition + 5.0 <= 220 THEN
gAxis[0].Para.rDistance := 5.0;
IF gAxis[0].rActPosition + 7.5 <= 190 THEN
gAxis[0].Para.rDistance := 7.5;
ELSE
gAxis[0].Para.rDistance := 220 - gAxis[0].rActPosition;
gAxis[0].Para.rDistance := 190 - gAxis[0].rActPosition;
END_IF
END_IF
IF (gAxis[0].Status.bStopping AND (ABS (gAxis[0].rActVelocity) < 0.05)) OR NOT gAxis[0].bStop THEN

View File

@@ -42,7 +42,7 @@ END_VAR
VAR CONSTANT
rTorqueToForce : REAL := 5026.54824574367; (*Umrechungsfaktor Drehmoment auf Kraft*)
rForceToTorque : REAL := 0.000198943678864869; (*Umrechungsfaktor Krauf auf Drehmoment*)
rArea : REAL := 1731.394543246407; (*Fl<46>che*)
rArea : REAL := 3218.05; (*Fl<46>che mm2*)
END_VAR
(*//Strukturen*)
VAR

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<?AutomationStudio Version=4.3.7.46 SP?>
<Hardware xmlns="http://br-automation.co.at/AS/Hardware">
<Module Name="45K6_X20DI9371-Allg1" Type="X20DI9371" Version="1.0.2.0">
<Connection Connector="SS1" TargetModule="X20TB12k" TargetConnector="SS" />
@@ -63,8 +63,8 @@
<Connector Name="IF2">
<Parameter ID="ActivateDevice" Value="1" />
<Parameter ID="Mode" Value="Manual" />
<Parameter ID="InternetAddress" Value="192.168.1.221" />
<Parameter ID="SubnetMask" Value="255.255.255.0" />
<Parameter ID="InternetAddress" Value="10.4.18.29" />
<Parameter ID="SubnetMask" Value="255.255.254.0" />
<Parameter ID="DeviceParam" Value="/EDDN=gei" />
</Connector>
<Connector Name="IF3">
@@ -73,8 +73,6 @@
<Parameter ID="ChannelType1" Value="OCTET[48]" />
<Parameter ID="HostName" Value="if3-eth-kd-03-57-17" />
</Connector>
<Parameter ID="ConfigurationID" Value="KD_Fritzmaier_Kleberauftrag_CNC" />
<Parameter ID="UserPartitionSize" Value="56" />
<Parameter ID="PermanentPvSize" Value="102400" />
<Parameter ID="RemanentGlobalPvSize" Value="6500" />
<Parameter ID="EnableUsbRemoteInstall" Value="1" />
@@ -96,14 +94,7 @@
<Parameter ID="FileDevicePath3" Value="F:\Report\" />
<Parameter ID="ActivateDaylightSavingTime" Value="1" />
<Parameter ID="EthernetHostName" Value="kd-03-57-17" />
<Parameter ID="EthernetDefaultGateway" Value="192.168.1.1" />
<Group ID="FtpUser1" />
<Parameter ID="FtpUsername1" Value="cnc" />
<Parameter ID="FtpUserPassword1" Value="MtSpqxDrrEekJuhzNqbasvGpYhpvlKvn4G0vglp/xFs=" />
<Parameter ID="FtpUserSalt1" Value="eig9E5/f" />
<Parameter ID="FTPAccessRight1" Value="0" />
<Parameter ID="ActivateOpcUa" Value="1" />
<Parameter ID="OpcUa_Security_SoftwareCertificates" Value="" />
<Parameter ID="EthernetDefaultGateway" Value="10.4.18.1" />
</Module>
<Module Name="X20IF10E3_1" Type="X20IF10E3-1" Version="1.3.8.0">
<Connection Connector="SS" TargetModule="X20CP1485_1" TargetConnector="SS1" />

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<?AutomationStudio Version=4.3.7.46 SP?>
<Cpu xmlns="http://br-automation.co.at/AS/Cpu">
<Objects>
<Object Type="File" Description="Software configuration">Cpu.sw</Object>
@@ -26,6 +26,6 @@
<Transfer AdditionalUserDir="" AddToUserPart="false" AllowInitialTransfer="false" AllowPartitioning="false" ExecuteInitExitProgram="true" ForceInitialTransfer="false" IdentificationTypeValue="" IgnoreVersion="true" KeepNonVolatileMemory="false" ModuleSystemForPip="" PreserveVariableValues="true" ProjectConsistent="true" RebootDuringTransfer="false" TargetIdentificationType="Always" UserFilesIgnoreDifference="false" />
<Vc FirmwareVersion="V4.34.1" />
<Safety SafetyRelease="0.0" />
<OnlineConfiguration Name="Fritzmeier" DeviceType="TCPIP" DeviceParameters="/IF=tcpip /LOPO=11159 /SA=31" ConnectionParameters="/RT=1000 /AM=* /SDT=5 /DAIP=192.168.1.221 /REPO=11159 /ANSL=1 /PT=11169" Description="" />
<OnlineConfiguration Name="Fritzmeier" DeviceType="TCPIP" DeviceParameters="/IF=tcpip /LOPO=11159 /SA=31" ConnectionParameters="/RT=1000 /AM=* /SDT=5 /DAIP=10.4.18.29 /REPO=11159 /ANSL=1 /PT=11169" Description="" />
</Configuration>
</Cpu>

View File

@@ -11,7 +11,6 @@ VAR_CONFIG
gbOuHeating1 AT %QX."45K7_X20DO9322-Allg1".DigitalOutput03;
ComRob:usComIn AT %IB."X20IF10E3_1".Module002_Outputs;
ComRob:usComOut AT %QB."X20IF10E3_1".Module001_Inputs;
gGlueInterface.Out.uRemainingGlue AT %QW."X20IF10E3_1".Module003_Inputs;
gGlueInterface.Out.rAppliedGlue AT %QD."X20IF10E3_1".Module004_Inputs;
ComRob:rGlueAmmountIn AT %ID."X20IF10E3_1".Module005_Outputs;
ComRob:usComIn AT %IB."X20IF10E3_1".Module004_Outputs;
@@ -25,16 +24,24 @@ VAR_CONFIG
ComRob:usComOutAmmount[3] AT %QB."X20IF10E3_1".Module002_Inputs004;
ComRob:usComOutRemain[0] AT %QB."X20IF10E3_1".Module003_Inputs001;
ComRob:usComOutRemain[1] AT %QB."X20IF10E3_1".Module003_Inputs002;
ComRob:usComInHeat AT %IB."X20IF10E3_1".Module006_Outputs;
ComRob:usComInTemperature AT %IB."X20IF10E3_1".Module006_Outputs;
ComRob:usComInHeat AT %IB."X20IF10E3_1".Module007_Outputs;
ComRob:usComOutPos[0] AT %QB."X20IF10E3_1".Module004_Inputs001;
ComRob:usComOutPos[1] AT %QB."X20IF10E3_1".Module004_Inputs002;
ComRob:usComOutPos[2] AT %QB."X20IF10E3_1".Module004_Inputs003;
ComRob:usComOutPos[3] AT %QB."X20IF10E3_1".Module004_Inputs004;
ComRob:usComIn AT %IB."X20IF10E3_1".Module005_Outputs;
ComRob:usComInAmmount[0] AT %IB."X20IF10E3_1".Module006_Outputs001;
ComRob:usComInAmmount[1] AT %IB."X20IF10E3_1".Module006_Outputs002;
ComRob:usComInTemperature AT %IB."X20IF10E3_1".Module006_Outputs001;
ComRob:usComInAmmount[2] AT %IB."X20IF10E3_1".Module006_Outputs003;
ComRob:usComInAmmount[3] AT %IB."X20IF10E3_1".Module006_Outputs004;
ComRob:usComInForce AT %IB."X20IF10E3_1".Module008_Outputs;
ComRob:usComInForce AT %IB."X20IF10E3_1".Module008_Outputs;
ComRob:usComOutAmmount AT %QW."X20IF10E3_1".Module002_Inputs;
ComRob:usComOutRemain AT %QW."X20IF10E3_1".Module003_Inputs;
ComRob:usComOutPos AT %QW."X20IF10E3_1".Module004_Inputs;
ComRob:usComInAmmount AT %IW."X20IF10E3_1".Module006_Outputs;
ComRob:usComInTemperature AT %IW."X20IF10E3_1".Module007_Outputs;
ComRob:usComInForce AT %IW."X20IF10E3_1".Module008_Outputs;
ComRob:usComInAmmount[0] AT %IB."X20IF10E3_1".Module007_Outputs001;
ComRob:usComInAmmount[1] AT %IB."X20IF10E3_1".Module007_Outputs002;
ComRob:usComInForce AT %IB."X20IF10E3_1".Module008_Outputs001;
END_VAR

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version="4.3.6.57 SP"?>
<?AutomationStudio Version="4.3.7.46 SP"?>
<ProjectSettings xmlns="http://br-automation.co.at/AS/ProjectSettings">
<ConfigurationManager ActiveConfigurationName="Config0" />
<Deployment Value="ActiveCpu" />