Initial Project Commit
This commit is contained in:
6
LastUser.set
Normal file
6
LastUser.set
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<ProjectSettings xmlns="http://br-automation.co.at/AS/ProjectSettings">
|
||||
<Print Header="%lProject: %n%c%x" Footer="%cPage: %p" />
|
||||
<ConfigurationManager ActiveConfigurationName="Conf-PanelSim" />
|
||||
</ProjectSettings>
|
||||
13
Logical/Axises/ACPPar/Package.pkg
Normal file
13
Logical/Axises/ACPPar/Package.pkg
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="DataObject" Language="Apt" Description="Acp Parameter Shafts">axShafta</Object>
|
||||
<Object Type="DataObject" Language="Apt" Description="Acp Parameter Shafts (Simulation)">axShaftSa</Object>
|
||||
<Object Type="DataObject" Language="Apt" Description="Acp Parameter Table Extra Axis">axExtraa</Object>
|
||||
<Object Type="DataObject" Language="Apt" Description="Acopos Parameter Table Master">vShafta</Object>
|
||||
<Object Type="DataObject" Language="Apt" Description="Acopos Parameter Table Master (Simimlulation)">vShaftSa</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>
|
||||
</Package>
|
||||
7
Logical/Axises/ACPPar/axExtraa/Apt.dob
Normal file
7
Logical/Axises/ACPPar/axExtraa/Apt.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>axExtraa.apt</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
132
Logical/Axises/ACPPar/axExtraa/axExtraa.apt
Normal file
132
Logical/Axises/ACPPar/axExtraa/axExtraa.apt
Normal file
@@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<AcoposParameterTable>
|
||||
<Root Name="Parameters">
|
||||
<Group Name="SEW_DT80N4" Disabled="TRUE">
|
||||
<Group Name="Allgemeine Parameter" Disabled="TRUE">
|
||||
<Parameter Name="MOTOR_TYPE" ID="30" Value="0x0001" Disabled="TRUE" Description="Motor: Typ" />
|
||||
<Parameter Name="MOTOR_COMPATIBILITY" ID="31" Value="0x0201" Disabled="TRUE" Description="Motor: Softwarekompatibilität" />
|
||||
<Parameter Name="MOTOR_POLEPAIRS" ID="47" Value="2" Disabled="TRUE" Description="Motor: Polpaarzahl" />
|
||||
</Group>
|
||||
<Group Name="Brems-Parameter" Disabled="TRUE">
|
||||
<Parameter Name="BRAKE_MODE" ID="90" Value="5" Disabled="TRUE" Description="Motor holding brake: Mode (Automatic, No Checks)" />
|
||||
<Parameter Name="MOTOR_BRAKE_CURR_RATED" ID="42" Value="0.7" Unit="A" Disabled="TRUE" Description="geschaetzt" />
|
||||
<Parameter Name="MOTOR_BRAKE_TORQ_RATED" ID="43" Value="20" Unit="Nm" Disabled="TRUE" Description="Motor-Haltebremse: Nennmoment" />
|
||||
<Parameter Name="MOTOR_BRAKE_ON_TIME" ID="44" Value="0.4" Unit="s" Disabled="TRUE" Description="Motor-Haltebremse: Verzögerungszeit Blockieren" />
|
||||
<Parameter Name="MOTOR_BRAKE_OFF_TIME" ID="45" Value="0.3" Unit="s" Disabled="TRUE" Description="Motor-Haltebremse: Verzögerungszeit Lüften" />
|
||||
</Group>
|
||||
<Group Name="Thermo-Sensor-Parameter" Disabled="TRUE">
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR1" ID="64" Value="0" Disabled="TRUE" Description="Motor: Temperatursensor-Parameter 1" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR2" ID="65" Value="0" Disabled="TRUE" Description="Motor: Temperatursensor-Parameter 2" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR3" ID="66" Value="0" Disabled="TRUE" Description="Motor: Temperatursensor-Parameter 3" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR4" ID="67" Value="0" Disabled="TRUE" Description="Motor: Temperatursensor-Parameter 4" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR5" ID="68" Value="0" Disabled="TRUE" Description="Motor: Temperatursensor-Parameter 5" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR6" ID="69" Value="0" Disabled="TRUE" Description="Motor: Temperatursensor-Parameter 6" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR7" ID="70" Value="0" Disabled="TRUE" Description="Motor: Temperatursensor-Parameter 7" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR8" ID="71" Value="0" Disabled="TRUE" Description="Motor: Temperatursensor-Parameter 8" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR9" ID="72" Value="0" Disabled="TRUE" Description="Motor: Temperatursensor-Parameter 9" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR10" ID="73" Value="0" Disabled="TRUE" Description="Motor: Temperatursensor-Parameter 10" />
|
||||
<Parameter Name="MOTOR_THERMAL_CONST" ID="75" Value="0" Unit="s" Disabled="TRUE" Description="Motor: Thermische Zeitkonstante (für MOTOR_COMPATIBILITY 0x0202)" />
|
||||
<Parameter Name="TEMP_MOTOR_MODEL_MODE" ID="373" Value="0" Disabled="TRUE" Description="Motor: Temperature model: Mode" />
|
||||
</Group>
|
||||
<Group Name="Motorparameter" Disabled="TRUE">
|
||||
<Parameter Name="MOTOR_VOLTAGE_RATED" ID="48" Value="400" Unit="V" Disabled="TRUE" Description="Motor: Nennspannung" />
|
||||
<Parameter Name="MOTOR_SPEED_RATED" ID="50" Value="1430" Unit="1/min" Disabled="TRUE" Description="Motor: Nenndrehzahl (100)" />
|
||||
<Parameter Name="MOTOR_SPEED_MAX" ID="51" Value="1700" Unit="1/min" Disabled="TRUE" Description="Motor: Maximaldrehzahl" />
|
||||
<Parameter Name="MOTOR_TORQ_STALL" ID="52" Value="12.29" Unit="Nm" Disabled="TRUE" Description="Motor: Stillstandsmoment" />
|
||||
<Parameter Name="MOTOR_TORQ_RATED" ID="53" Value="12.29" Unit="Nm" Disabled="TRUE" Description="Motor: Nennmoment" />
|
||||
<Parameter Name="MOTOR_TORQ_MAX" ID="54" Value="75.52" Unit="Nm" Disabled="TRUE" Description="Motor: Spitzenmoment" />
|
||||
<Parameter Name="MOTOR_TORQ_CONST" ID="55" Value="0" Unit="Nm/A" Disabled="TRUE" Description="Motor: Torque constant" />
|
||||
<Parameter Name="MOTOR_CURR_STALL" ID="56" Value="3.35" Unit="A" Disabled="TRUE" Description="Motor: Stillstandsstrom" />
|
||||
<Parameter Name="MOTOR_CURR_RATED" ID="57" Value="3.35" Unit="A" Disabled="TRUE" Description="Motor: Nennstrom" />
|
||||
<Parameter Name="MOTOR_CURR_MAX" ID="58" Value="12.73" Unit="A" Disabled="TRUE" Description="Motor: Spitzenstrom" />
|
||||
<Parameter Name="MOTOR_WIND_CROSS_SECT" ID="59" Value="0" Unit="mm²" Disabled="TRUE" Description="Motor: Strangquerschnitt" />
|
||||
<Parameter Name="MOTOR_STATOR_RESISTANCE" ID="60" Value="3.263" Unit="Ohm" Disabled="TRUE" Description="Motor: Statorwiderstand" />
|
||||
<Parameter Name="MOTOR_STATOR_INDUCTANCE" ID="61" Value="0.02048" Unit="Henry" Disabled="TRUE" Description="Motor: Statorinduktivität" />
|
||||
<Parameter Name="MOTOR_INERTIA" ID="62" Value="0.00096" Unit="kgm²" Disabled="TRUE" Description="Motor: Trägheitsmoment" />
|
||||
<Parameter Name="MOTOR_ROTOR_RESISTANCE" ID="76" Value="3.263" Unit="Ohm" Disabled="TRUE" Description="Motor: Rotorwiderstand" />
|
||||
<Parameter Name="MOTOR_ROTOR_INDUCTANCE" ID="77" Value="0.02048" Unit="Henry" Disabled="TRUE" Description="Motor: Rotorinduktivität" />
|
||||
<Parameter Name="MOTOR_MUTUAL_INDUCTANCE" ID="78" Value="0.51" Unit="Henry" Disabled="TRUE" Description="Motor: Hauptinduktivität" />
|
||||
<Parameter Name="MOTOR_MAGNETIZING_CURR" ID="79" Value="1.37" Unit="A" Disabled="TRUE" Description="Motor: Magnetisierungsstrom" />
|
||||
<Parameter Name="MOTOR_TAU_THERM" ID="849" Value="0" Unit="s" Disabled="TRUE" Description="Motor: Thermische Zeitkonstante" />
|
||||
<Parameter Name="MOTOR_WIND_CONNECT" ID="46" Value="1" Disabled="TRUE" Description="default" />
|
||||
<Parameter Name="MOTOR_COMMUT_OFFSET" ID="63" Value="0.0" Unit="rad" Disabled="TRUE" Description="Motor: Commutation offset" />
|
||||
</Group>
|
||||
<Group Name="Isolationsparameter" Disabled="TRUE">
|
||||
<Parameter Name="MOTOR_WIND_TEMP_MAX" ID="74" Value="130" Unit="°C" Disabled="TRUE" Description="Motor: Maximal zulässige Wicklungstemperatur" />
|
||||
</Group>
|
||||
<Group Name="Typenschildparameter" Disabled="TRUE">
|
||||
<Parameter Name="PIDENT_MOTOR_TYPE" ID="975" Value="1" Disabled="TRUE" Description="Parameter identification: Motor: Type" />
|
||||
<Parameter Name="PIDENT_VOLTAGE_RATED" ID="977" Value="400" Unit="V" Disabled="TRUE" Description="Parameter identification: Motor: Rated voltage" />
|
||||
<Parameter Name="PIDENT_SPEED_RATED" ID="979" Value="1380" Unit="1/min" Disabled="TRUE" Description="Parameter identification: Motor: Rated speed" />
|
||||
<Parameter Name="PIDENT_CURR_RATED" ID="986" Value="2.1" Unit="A" Disabled="TRUE" Description="Parameter identification: Motor: Rated current" />
|
||||
<Parameter Name="PIDENT_COS_PHI" ID="989" Value="0.73" Disabled="TRUE" Description="Parameter identification: Motor: Active power factor" />
|
||||
<Parameter Name="PIDENT_FREQ_RATED" ID="990" Value="50" Unit="cps" Disabled="TRUE" Description="Parameter identification: Motor: Rated frequency" />
|
||||
</Group>
|
||||
<Group Name="Regler" Disabled="TRUE">
|
||||
<Parameter Name="ICTRL_KV" ID="223" Value="1" Unit="V/A" Disabled="TRUE" Description="CTRL Current controller: Proportional amplification factor" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Parameter Name="AXLIM_T_JOLT" ID="125" Value="0.1" Unit="s" Disabled="TRUE" Description="Ruckzeit" />
|
||||
<Parameter Name="AXLIM_DS_STOP2" ID="229" Value="500" Unit="Einh." Disabled="TRUE" Description="AXLIM_DS_STOP2" />
|
||||
<Group Name="EncoderSS2">
|
||||
<Parameter Name="ENCOD_TYPE" ID="97" Value="ncINC" Description="Encoder1: Type" />
|
||||
<Parameter Name="SCALE_ENCOD_INCR" ID="109" Value="16777216" Description="Encoder1: Encoder scaling: increments per SCALE_ENCOD_MOTOR_REV motor revolutions" />
|
||||
<Parameter Name="ENCOD_LINE_CHK_IGNORE" ID="727" Value="0" Description="Encoder1: Ignore check" />
|
||||
<Parameter Name="ENCOD_COUNT_DIR" ID="96" Value="ncSTANDARD" Description="Encoder1: Load scaling: Count direction" />
|
||||
</Group>
|
||||
<Group Name="DRE90L">
|
||||
<Group Name="General parameters">
|
||||
<Parameter Name="MOTOR_TYPE" ID="30" Value="1" Description="Motor: Type" />
|
||||
<Parameter Name="MOTOR_COMPATIBILITY" ID="31" Value="513" Description="Motor: Software compatibility" />
|
||||
<Parameter Name="MOTOR_WIND_CONNECT" ID="46" Value="1" Description="Motor: Winding connection" />
|
||||
<Parameter Name="MOTOR_POLEPAIRS" ID="47" Value="2" Description="Motor: Number of pole-pairs" />
|
||||
</Group>
|
||||
<Group Name="Brake parameters">
|
||||
<Parameter Name="MOTOR_BRAKE_CURR_RATED" ID="42" Value="0.69999999" Unit="A" Description="Motor holding brake: Rated current" />
|
||||
<Parameter Name="MOTOR_BRAKE_TORQ_RATED" ID="43" Value="20" Unit="Nm" Description="Motor holding brake: Rated torque" />
|
||||
<Parameter Name="MOTOR_BRAKE_ON_TIME" ID="44" Value="0.40000001" Unit="s" Description="Motor holding brake: Engaging delay" />
|
||||
<Parameter Name="MOTOR_BRAKE_OFF_TIME" ID="45" Value="0.30000001" Unit="s" Description="Motor holding brake: Release delay" />
|
||||
</Group>
|
||||
<Group Name="Thermo sensor parameters">
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR1" ID="64" Value="0" Description="Temperature sensor: Parameter 1" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR2" ID="65" Value="0" Description="Temperature sensor: Parameter 2" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR3" ID="66" Value="0" Description="Temperature sensor: Parameter 3" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR4" ID="67" Value="0" Description="Temperature sensor: Parameter 4" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR5" ID="68" Value="0" Description="Temperature sensor: Parameter 5" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR6" ID="69" Value="0" Description="Temperature sensor: Parameter 6" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR7" ID="70" Value="0" Description="Temperature sensor: Parameter 7" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR8" ID="71" Value="0" Description="Temperature sensor: Parameter 8" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR9" ID="72" Value="0" Description="Temperature sensor: Parameter 9" />
|
||||
<Parameter Name="MOTOR_TEMPSENS_PAR10" ID="73" Value="0" Description="Temperature sensor: Parameter 10" />
|
||||
<Parameter Name="MOTOR_THERMAL_CONST" ID="75" Value="0" Unit="s" Description="Motor: Thermal time constant (for MOTOR_COMPATIBILITY 0x0202)" />
|
||||
</Group>
|
||||
<Group Name="Motor parameters">
|
||||
<Parameter Name="MOTOR_VOLTAGE_RATED" ID="48" Value="400" Unit="V" Description="Motor: Rated voltage" />
|
||||
<Parameter Name="MOTOR_VOLTAGE_CONST" ID="49" Value="0" Unit="mV*min" Description="Motor: Voltage constant" />
|
||||
<Parameter Name="MOTOR_SPEED_RATED" ID="50" Value="1430" Unit="1/min" Description="Motor: Rated speed" />
|
||||
<Parameter Name="MOTOR_SPEED_MAX" ID="51" Value="2860" Unit="1/min" Description="Motor: Maximum speed" />
|
||||
<Parameter Name="MOTOR_TORQ_STALL" ID="52" Value="12.102806" Unit="Nm" Description="Motor: Stall torque" />
|
||||
<Parameter Name="MOTOR_TORQ_RATED" ID="53" Value="12.102806" Unit="Nm" Description="Motor: Rated torque" />
|
||||
<Parameter Name="MOTOR_TORQ_MAX" ID="54" Value="69.756073" Unit="Nm" Description="Motor: Peak torque" />
|
||||
<Parameter Name="MOTOR_TORQ_CONST" ID="55" Value="0" Unit="Nm/A" Description="Motor: Torque constant" />
|
||||
<Parameter Name="MOTOR_CURR_STALL" ID="56" Value="3.3499999" Unit="A" Description="Motor: Stall current" />
|
||||
<Parameter Name="MOTOR_CURR_RATED" ID="57" Value="3.3499999" Unit="A" Description="Motor: Rated current" />
|
||||
<Parameter Name="MOTOR_CURR_MAX" ID="58" Value="17.746876" Unit="A" Description="Motor: Peak current" />
|
||||
<Parameter Name="MOTOR_WIND_CROSS_SECT" ID="59" Value="0" Unit="mm²" Description="Motor: Line cross section" />
|
||||
<Parameter Name="MOTOR_STATOR_RESISTANCE" ID="60" Value="3.9323912" Unit="Ohm" Description="Motor: Stator resistance" />
|
||||
<Parameter Name="MOTOR_STATOR_INDUCTANCE" ID="61" Value="0.023945207" Unit="Henry" Description="Motor: Stator inductance" />
|
||||
<Parameter Name="MOTOR_INERTIA" ID="62" Value="0.00095999998" Unit="kgm²" Description="Motor: Moment of inertia" />
|
||||
<Parameter Name="MOTOR_COMMUT_OFFSET" ID="63" Value="0" Unit="rad" Description="Motor: Commutation offset" />
|
||||
<Parameter Name="MOTOR_ROTOR_RESISTANCE" ID="76" Value="3.1152377" Unit="Ohm" Description="Motor: Rotor resistance" />
|
||||
<Parameter Name="MOTOR_ROTOR_INDUCTANCE" ID="77" Value="0.023945207" Unit="Henry" Description="Motor: Rotor inductance" />
|
||||
<Parameter Name="MOTOR_MUTUAL_INDUCTANCE" ID="78" Value="0.35375795" Unit="Henry" Description="Motor: Mutual inductance" />
|
||||
<Parameter Name="MOTOR_MAGNETIZING_CURR" ID="79" Value="1.3399999" Unit="A" Description="Motor: Magnetizing current" />
|
||||
<Parameter Name="MOTOR_TAU_THERM" ID="849" Value="0" Unit="s" Description="Motor: Thermal time constant" />
|
||||
</Group>
|
||||
<Group Name="Isolation parameters">
|
||||
<Parameter Name="MOTOR_WIND_TEMP_MAX" ID="74" Value="130" Unit="°C" Description="Motor: Limit temperature" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Root>
|
||||
</AcoposParameterTable>
|
||||
7
Logical/Axises/ACPPar/axShaftSa/Apt.dob
Normal file
7
Logical/Axises/ACPPar/axShaftSa/Apt.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>axShaftSa.apt</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
5
Logical/Axises/ACPPar/axShaftSa/axShaftSa.apt
Normal file
5
Logical/Axises/ACPPar/axShaftSa/axShaftSa.apt
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.22 SP04?>
|
||||
<AcoposParameterTable>
|
||||
<Root Name="Parameters" />
|
||||
</AcoposParameterTable>
|
||||
7
Logical/Axises/ACPPar/axShafta/Apt.dob
Normal file
7
Logical/Axises/ACPPar/axShafta/Apt.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>axShafta.apt</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
7
Logical/Axises/ACPPar/axShafta/axShafta.apt
Normal file
7
Logical/Axises/ACPPar/axShafta/axShafta.apt
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=?>
|
||||
<AcoposParameterTable>
|
||||
<Root Name="Parameters">
|
||||
<Parameter Name="UCTRL_UDC_REF" ID="851" Value="750" Unit="V" Description="CTRL DC bus: Set value voltage" />
|
||||
</Root>
|
||||
</AcoposParameterTable>
|
||||
7
Logical/Axises/ACPPar/motor_office/Apt.dob
Normal file
7
Logical/Axises/ACPPar/motor_office/Apt.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.22 SP04?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>motor_office.apt</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
8
Logical/Axises/ACPPar/motor_office/motor_office.apt
Normal file
8
Logical/Axises/ACPPar/motor_office/motor_office.apt
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.80.15?>
|
||||
<AcoposParameterTable>
|
||||
<Root Name="Parameters">
|
||||
<Parameter Name="PHASE_MON_IGNORE" ID="80" Value="1" Description="Power mains: Ignore phase failure" />
|
||||
<Parameter Name="UDC_NOMINAL" ID="390" Value="24" Unit="V" Description="CTRL DC bus: Nominal voltage" />
|
||||
</Root>
|
||||
</AcoposParameterTable>
|
||||
7
Logical/Axises/ACPPar/motor_sim/Apt.dob
Normal file
7
Logical/Axises/ACPPar/motor_sim/Apt.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.22 SP04?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>motor_sim.apt</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
7
Logical/Axises/ACPPar/motor_sim/motor_sim.apt
Normal file
7
Logical/Axises/ACPPar/motor_sim/motor_sim.apt
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.80.15?>
|
||||
<AcoposParameterTable>
|
||||
<Root Name="Parameters">
|
||||
<Parameter Name="CMD_SIMULATION" ID="110" Value="ncSW_ON" Description="Simulation mode: Command" />
|
||||
</Root>
|
||||
</AcoposParameterTable>
|
||||
7
Logical/Axises/ACPPar/vShaftSa/Apt.dob
Normal file
7
Logical/Axises/ACPPar/vShaftSa/Apt.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>vShaftSa.apt</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
5
Logical/Axises/ACPPar/vShaftSa/vShaftSa.apt
Normal file
5
Logical/Axises/ACPPar/vShaftSa/vShaftSa.apt
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<AcoposParameterTable>
|
||||
<Root Name="Parameters" />
|
||||
</AcoposParameterTable>
|
||||
7
Logical/Axises/ACPPar/vShafta/Apt.dob
Normal file
7
Logical/Axises/ACPPar/vShafta/Apt.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>vShafta.apt</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
5
Logical/Axises/ACPPar/vShafta/vShafta.apt
Normal file
5
Logical/Axises/ACPPar/vShafta/vShafta.apt
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<AcoposParameterTable>
|
||||
<Root Name="Parameters" />
|
||||
</AcoposParameterTable>
|
||||
35
Logical/Axises/AxisPS/AxisPS.var
Normal file
35
Logical/Axises/AxisPS/AxisPS.var
Normal file
@@ -0,0 +1,35 @@
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//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_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
|
||||
198
Logical/Axises/AxisPS/AxisPSlCyclic.st
Normal file
198
Logical/Axises/AxisPS/AxisPSlCyclic.st
Normal file
@@ -0,0 +1,198 @@
|
||||
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 ();
|
||||
|
||||
|
||||
|
||||
//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
|
||||
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
|
||||
32
Logical/Axises/AxisPS/AxisPSlInit.st
Normal file
32
Logical/Axises/AxisPS/AxisPSlInit.st
Normal file
@@ -0,0 +1,32 @@
|
||||
|
||||
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_Reset.Axis := udAxisObj;
|
||||
|
||||
|
||||
|
||||
//Enable Fubs
|
||||
Axis_MC_BR_ReadDriveStatus.Enable := TRUE;
|
||||
Axis_MC_ReadStatus.Enable := TRUE;
|
||||
|
||||
|
||||
END_PROGRAM
|
||||
9
Logical/Axises/AxisPS/IEC.prg
Normal file
9
Logical/Axises/AxisPS/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.22 SP04?>
|
||||
<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>
|
||||
91
Logical/Axises/Axisctrl/Axisctrl.var
Normal file
91
Logical/Axises/Axisctrl/Axisctrl.var
Normal file
@@ -0,0 +1,91 @@
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//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_CamIn : MC_CamIn := (0); (*Start CAM coupling with master*)
|
||||
Axis_MC_CamOut : MC_CamOut := (0); (*Stop CAM coupling *)
|
||||
Axis_MC_CamTableSelect : MC_CamTableSelect := (0); (*Select CAM Table*)
|
||||
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_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
|
||||
763
Logical/Axises/Axisctrl/AxisctrlCyclic.st
Normal file
763
Logical/Axises/Axisctrl/AxisctrlCyclic.st
Normal file
@@ -0,0 +1,763 @@
|
||||
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.DriveStatus.bHomingOk := 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 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.bHome := 0;
|
||||
lAxis.enStep := enAxSTATE_HOME;
|
||||
ELSIF lAxis.Move.bBraketest THEN
|
||||
lAxis.Move.bBraketest := 0;
|
||||
lAxis.enStep := enAxSTATE_BRAKE_TEST;
|
||||
ELSIF lAxis.Move.bJogPos THEN
|
||||
//Movement will stopped when command is resetted
|
||||
lAxis.enStep := enAxSTATE_JOG_POSITIVE;
|
||||
ELSIF lAxis.Move.bJogNeg THEN
|
||||
//Movement will stopped when command is resetted
|
||||
lAxis.enStep := enAxSTATE_JOG_NEGATIVE;
|
||||
ELSIF lAxis.Move.bAbsolute AND 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.bStopCAMSlave THEN
|
||||
lAxis.Move.bStopCAMSlave := 0;
|
||||
lAxis.enStep := enAxSTATE_MOVE_CAM_STOP;
|
||||
ELSIF lAxis.Move.bStartCAMSlave THEN
|
||||
lAxis.Move.bStopCAMSlave := 0;
|
||||
lAxis.enStep := enAxSTATE_MOVE_CAM_SELECT;
|
||||
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;
|
||||
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;
|
||||
ELSIF Axis_MC_Home.Done THEN
|
||||
Axis_MC_Home.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
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_POSITIVE:
|
||||
Axis_MC_MoveVelocity.Velocity := lAxis.Para.rJogVelocity;
|
||||
Axis_MC_MoveVelocity.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_MoveVelocity.Deceleration := lAxis.Para.rDeceleration;
|
||||
Axis_MC_MoveVelocity.Direction := mcPOSITIVE_DIR;
|
||||
Axis_MC_MoveVelocity.Execute := 1;
|
||||
|
||||
IF NOT lAxis.Move.bJogPos OR lAxis.bStop THEN
|
||||
Axis_MC_MoveVelocity.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Jog Negative
|
||||
enAxSTATE_JOG_NEGATIVE:
|
||||
Axis_MC_MoveVelocity.Velocity := lAxis.Para.rJogVelocity;
|
||||
Axis_MC_MoveVelocity.Acceleration := lAxis.Para.rAcceleration;
|
||||
Axis_MC_MoveVelocity.Deceleration := lAxis.Para.rDeceleration;
|
||||
Axis_MC_MoveVelocity.Direction := mcNEGATIVE_DIR;
|
||||
Axis_MC_MoveVelocity.Execute := 1;
|
||||
|
||||
IF NOT lAxis.Move.bJogNeg OR lAxis.bStop THEN
|
||||
Axis_MC_MoveVelocity.Execute := 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 CAM TABLE SELECT
|
||||
enAxSTATE_MOVE_CAM_SELECT:
|
||||
Axis_MC_CamTableSelect.CamTable := lAxis.Para.strCamTable;
|
||||
Axis_MC_CamTableSelect.Periodic := mcNON_PERIODIC;
|
||||
//mcPEIODIC
|
||||
Axis_MC_CamTableSelect.Execute := 1;
|
||||
|
||||
IF Axis_MC_CamTableSelect.Done THEN
|
||||
usCamTableID := Axis_MC_CamTableSelect.CamTableID;
|
||||
Axis_MC_CamTableSelect.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_MOVE_CAM_START;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Move CAM START
|
||||
enAxSTATE_MOVE_CAM_START:
|
||||
Axis_MC_CamIn.MasterOffset := 0.0;
|
||||
Axis_MC_CamIn.SlaveOffset := 0.0;
|
||||
Axis_MC_CamIn.MasterScaling := 1000.0;
|
||||
Axis_MC_CamIn.SlaveScaling := 1000.0;
|
||||
Axis_MC_CamIn.StartMode := mcRELATIVE;
|
||||
//mcABSOLUTE
|
||||
//mcDIRECT
|
||||
Axis_MC_CamIn.CamTableID := usCamTableID;
|
||||
Axis_MC_CamIn.Execute := 1;
|
||||
|
||||
IF lAxis.bStop THEN
|
||||
Axis_MC_CamIn.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_STOP;
|
||||
ELSIF lAxis.Move.bStopCAMSlave THEN
|
||||
lAxis.Move.bStopCAMSlave := 0;
|
||||
Axis_MC_CamIn.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_MOVE_CAM_STOP;
|
||||
END_IF
|
||||
|
||||
//==============================================
|
||||
//Move CAM STOP
|
||||
enAxSTATE_MOVE_CAM_STOP:
|
||||
Axis_MC_CamOut.Execute := 1;
|
||||
|
||||
IF Axis_MC_CamOut.Done THEN
|
||||
Axis_MC_CamOut.Execute := 0;
|
||||
lAxis.enStep := enAxSTATE_READY;
|
||||
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 CAM 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_CamTableSelect.Execute := 0;
|
||||
Axis_MC_CamIn.Execute := 0;
|
||||
Axis_MC_CamOut.Execute := 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.bStartCAMSlave := 0;
|
||||
lAxis.Move.bStopCAMSlave := 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_MoveAbsolute ();
|
||||
Axis_MC_BR_MoveAbsoluteTriggStop();
|
||||
Axis_MC_MoveAdditive ();
|
||||
Axis_MC_BR_MoveAdditiveTriggStop ();
|
||||
Axis_MC_MoveVelocity ();
|
||||
AXis_MC_BR_MoveVelocityTriggStop ();
|
||||
Axis_MC_CamTableSelect ();
|
||||
Axis_MC_CamIn ();
|
||||
Axis_MC_CamOut ();
|
||||
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
|
||||
91
Logical/Axises/Axisctrl/AxisctrlInit.st
Normal file
91
Logical/Axises/Axisctrl/AxisctrlInit.st
Normal file
@@ -0,0 +1,91 @@
|
||||
|
||||
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);
|
||||
|
||||
//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_Simulation.Axis := udAxisObj;
|
||||
Axis_MC_BR_SetHardwareInputs.Axis := udAxisObj;
|
||||
Axis_MC_BR_TorqueControl.Axis := udAxisObj;
|
||||
Axis_MC_BR_VelocityControl.Axis := udAxisObj;
|
||||
Axis_MC_CamIn.Master := udAxisMasterObj;
|
||||
Axis_MC_CamIn.Slave := udAxisSlaveObj;
|
||||
Axis_MC_CamOut.Slave := udAxisSlaveObj;
|
||||
Axis_MC_CamTableSelect.Master := udAxisMasterObj;
|
||||
Axis_MC_CamTableSelect.Slave := udAxisSlaveObj;
|
||||
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
|
||||
9
Logical/Axises/Axisctrl/IEC.prg
Normal file
9
Logical/Axises/Axisctrl/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.22 SP04?>
|
||||
<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>
|
||||
93
Logical/Axises/Axisctrl1/AxisctrlInit1.st
Normal file
93
Logical/Axises/Axisctrl1/AxisctrlInit1.st
Normal file
@@ -0,0 +1,93 @@
|
||||
|
||||
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);
|
||||
|
||||
//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_Simulation.Axis := udAxisObj;
|
||||
Axis_MC_BR_SetHardwareInputs.Axis := udAxisObj;
|
||||
Axis_MC_BR_TorqueControl.Axis := udAxisObj;
|
||||
Axis_MC_BR_VelocityControl.Axis := udAxisObj;
|
||||
Axis_MC_CamIn.Master := udAxisMasterObj;
|
||||
Axis_MC_CamIn.Slave := udAxisSlaveObj;
|
||||
Axis_MC_CamOut.Slave := udAxisSlaveObj;
|
||||
Axis_MC_CamTableSelect.Master := udAxisMasterObj;
|
||||
Axis_MC_CamTableSelect.Slave := udAxisSlaveObj;
|
||||
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
|
||||
9
Logical/Axises/Axisctrl1/IEC.prg
Normal file
9
Logical/Axises/Axisctrl1/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.22 SP04?>
|
||||
<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>
|
||||
93
Logical/Axises/Axisctrl2/AxisctrlInit2.st
Normal file
93
Logical/Axises/Axisctrl2/AxisctrlInit2.st
Normal file
@@ -0,0 +1,93 @@
|
||||
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
//Which Axis
|
||||
lAxis ACCESS ADR (gAxis[2]);
|
||||
lAxisActPos ACCESS ADR (gAxisActPos[2]);
|
||||
lAxisMaster ACCESS ADR (gAxis[0]);
|
||||
lbSimulation ACCESS ADR (gMachine.bAxisSimulation);
|
||||
rUser_Var1 ACCESS ADR (grDummy);
|
||||
|
||||
//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 (gAxShaft2);
|
||||
//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_Simulation.Axis := udAxisObj;
|
||||
Axis_MC_BR_SetHardwareInputs.Axis := udAxisObj;
|
||||
Axis_MC_BR_TorqueControl.Axis := udAxisObj;
|
||||
Axis_MC_BR_VelocityControl.Axis := udAxisObj;
|
||||
Axis_MC_CamIn.Master := udAxisMasterObj;
|
||||
Axis_MC_CamIn.Slave := udAxisSlaveObj;
|
||||
Axis_MC_CamOut.Slave := udAxisSlaveObj;
|
||||
Axis_MC_CamTableSelect.Master := udAxisMasterObj;
|
||||
Axis_MC_CamTableSelect.Slave := udAxisSlaveObj;
|
||||
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
|
||||
9
Logical/Axises/Axisctrl2/IEC.prg
Normal file
9
Logical/Axises/Axisctrl2/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.22 SP04?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Initialization code">AxisctrlInit2.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>
|
||||
93
Logical/Axises/Axisctrl3/AxisctrlInit3.st
Normal file
93
Logical/Axises/Axisctrl3/AxisctrlInit3.st
Normal file
@@ -0,0 +1,93 @@
|
||||
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
//Which Axis
|
||||
lAxis ACCESS ADR (gAxis[3]);
|
||||
lAxisActPos ACCESS ADR (gAxisActPos[3]);
|
||||
lAxisMaster ACCESS ADR (gAxis[0]);
|
||||
lbSimulation ACCESS ADR (gMachine.bAxisSimulation);
|
||||
rUser_Var1 ACCESS ADR (grDummy);
|
||||
|
||||
//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 (gAxShaft3);
|
||||
//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_Simulation.Axis := udAxisObj;
|
||||
Axis_MC_BR_SetHardwareInputs.Axis := udAxisObj;
|
||||
Axis_MC_BR_TorqueControl.Axis := udAxisObj;
|
||||
Axis_MC_BR_VelocityControl.Axis := udAxisObj;
|
||||
Axis_MC_CamIn.Master := udAxisMasterObj;
|
||||
Axis_MC_CamIn.Slave := udAxisSlaveObj;
|
||||
Axis_MC_CamOut.Slave := udAxisSlaveObj;
|
||||
Axis_MC_CamTableSelect.Master := udAxisMasterObj;
|
||||
Axis_MC_CamTableSelect.Slave := udAxisSlaveObj;
|
||||
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
|
||||
9
Logical/Axises/Axisctrl3/IEC.prg
Normal file
9
Logical/Axises/Axisctrl3/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.22 SP04?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Initialization code">AxisctrlInit3.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>
|
||||
93
Logical/Axises/Axisctrl4/AxisctrlInit4.st
Normal file
93
Logical/Axises/Axisctrl4/AxisctrlInit4.st
Normal file
@@ -0,0 +1,93 @@
|
||||
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
//Which Axis
|
||||
lAxis ACCESS ADR (gAxis[4]);
|
||||
lAxisActPos ACCESS ADR (gAxisActPos[4]);
|
||||
lAxisMaster ACCESS ADR (gAxis[0]);
|
||||
lbSimulation ACCESS ADR (gMachine.bAxisSimulation);
|
||||
rUser_Var1 ACCESS ADR (grDummy);
|
||||
|
||||
//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 (gAxShaft4);
|
||||
//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_Simulation.Axis := udAxisObj;
|
||||
Axis_MC_BR_SetHardwareInputs.Axis := udAxisObj;
|
||||
Axis_MC_BR_TorqueControl.Axis := udAxisObj;
|
||||
Axis_MC_BR_VelocityControl.Axis := udAxisObj;
|
||||
Axis_MC_CamIn.Master := udAxisMasterObj;
|
||||
Axis_MC_CamIn.Slave := udAxisSlaveObj;
|
||||
Axis_MC_CamOut.Slave := udAxisSlaveObj;
|
||||
Axis_MC_CamTableSelect.Master := udAxisMasterObj;
|
||||
Axis_MC_CamTableSelect.Slave := udAxisSlaveObj;
|
||||
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
|
||||
9
Logical/Axises/Axisctrl4/IEC.prg
Normal file
9
Logical/Axises/Axisctrl4/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.22 SP04?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Initialization code">AxisctrlInit4.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>
|
||||
93
Logical/Axises/AxisctrlExtra1/AxisctrlInitExtra1.st
Normal file
93
Logical/Axises/AxisctrlExtra1/AxisctrlInitExtra1.st
Normal file
@@ -0,0 +1,93 @@
|
||||
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
//Which Axis
|
||||
lAxis ACCESS ADR (gAxis[5]);
|
||||
lAxisActPos ACCESS ADR (gAxisActPos[6]);
|
||||
lAxisMaster ACCESS ADR (gAxis[0]);
|
||||
lbSimulation ACCESS ADR (gMachine.bAxisSimulation);
|
||||
rUser_Var1 ACCESS ADR (grDummy);
|
||||
|
||||
//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_Simulation.Axis := udAxisObj;
|
||||
Axis_MC_BR_SetHardwareInputs.Axis := udAxisObj;
|
||||
Axis_MC_BR_TorqueControl.Axis := udAxisObj;
|
||||
Axis_MC_BR_VelocityControl.Axis := udAxisObj;
|
||||
Axis_MC_CamIn.Master := udAxisMasterObj;
|
||||
Axis_MC_CamIn.Slave := udAxisSlaveObj;
|
||||
Axis_MC_CamOut.Slave := udAxisSlaveObj;
|
||||
Axis_MC_CamTableSelect.Master := udAxisMasterObj;
|
||||
Axis_MC_CamTableSelect.Slave := udAxisSlaveObj;
|
||||
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
|
||||
9
Logical/Axises/AxisctrlExtra1/IEC.prg
Normal file
9
Logical/Axises/AxisctrlExtra1/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<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>
|
||||
188
Logical/Axises/GlobalAxis.typ
Normal file
188
Logical/Axises/GlobalAxis.typ
Normal file
@@ -0,0 +1,188 @@
|
||||
|
||||
TYPE
|
||||
typAxis_Move : STRUCT (*Achsbewegungen*)
|
||||
bAbsolute : BOOL; (*Absolute Bewegung*)
|
||||
bAdditive : BOOL; (*Inkrementelle Bewegung*)
|
||||
bVelocity : BOOL; (*Bewegung mit konstanter Geschwindigkeit*)
|
||||
bVelocityControl : BOOL; (*Bewegung mit konstanter Geschwindigkeit / Drehmomentbegrenzt (Nur EPL)*)
|
||||
bTorqueControl : BOOL; (*Bewegung mit konstanter Geschwindigkeit / Drehmomentregelung*)
|
||||
bJogPos : BOOL; (*Tipp Vorw<72>rts*)
|
||||
bJogNeg : BOOL; (*Tipp R<>ckw<6B>rts*)
|
||||
bBraketest : BOOL; (*Bremstest*)
|
||||
bStartCAMSlave : BOOL; (*Kurvenscheibenkopplung starten*)
|
||||
bStopCAMSlave : BOOL; (*Kurvenscheibenkopplung stoppen*)
|
||||
bStartGearSlave : BOOL; (*Elektronisches Getriebe Slave (Geschwindigkeit)*)
|
||||
bStartGearPosSlave : BOOL; (*Elektronisches Getriebe Slave (Positon)*)
|
||||
bStopGearSlave : BOOL; (*Eektronisches Getriebe Slave Stoppen*)
|
||||
END_STRUCT;
|
||||
typAxis_Error : STRUCT (*Achsfehler*)
|
||||
bAcknowledge : BOOL;
|
||||
uiID : UINT;
|
||||
Text : ARRAY[0..3]OF STRING[79];
|
||||
END_STRUCT;
|
||||
error_typ : STRUCT (*error structure *)
|
||||
AxisErrorCount : UINT; (*number of active axis errors*)
|
||||
AxisWarningCount : UINT; (*number of active axis warinings*)
|
||||
FunctionBlockErrorCount : UINT; (*number of active function block errors*)
|
||||
ErrorRecord : MC_ERRORRECORD_REF; (*error record information*)
|
||||
ErrorText : ARRAY[0..3]OF STRING[79]; (*description of first active error or warning*)
|
||||
END_STRUCT;
|
||||
typAxis_Status : STRUCT (*Acopos Status*)
|
||||
bDisabled : BOOL; (*Disabled*)
|
||||
bStandstill : BOOL; (*Standstill*)
|
||||
bStopping : BOOL; (*Stopping*)
|
||||
bHoming : BOOL; (*Homing*)
|
||||
bMotionDiscrete : BOOL; (*Motion Discrete*)
|
||||
bMotionContinous : BOOL; (*Motion Continous*)
|
||||
bMotionSynchronized : BOOL; (*Motion Synchronized*)
|
||||
bErrorstop : BOOL; (*Error Stop*)
|
||||
bTorqueLimitReached : BOOL; (*Torquelimit from Move.bTorqueControl *)
|
||||
END_STRUCT;
|
||||
typAxis_DriveStatus : STRUCT (*Acopos Drive Statos*)
|
||||
bSimulation : BOOL; (*Axis Simulation*)
|
||||
bNetworkInit : BOOL;
|
||||
bHomeSwitch : BOOL;
|
||||
bPosHWSwitch : BOOL;
|
||||
bNegHWSwitch : BOOL;
|
||||
bTrigger1 : BOOL;
|
||||
bTrigger2 : BOOL;
|
||||
bDriveEnable : BOOL;
|
||||
bControllerReady : BOOL;
|
||||
bControllerStatus : BOOL;
|
||||
bHomingOk : BOOL;
|
||||
bAxisError : BOOL;
|
||||
bLagWarning : BOOL;
|
||||
END_STRUCT;
|
||||
typAxis_Para : STRUCT
|
||||
bTriggStop : BOOL; (*Use Trigger Stop for Move Absolute/Additive/Velocity*)
|
||||
bSetHWInputs : BOOL := 0; (*Set HW Inputs (e.g. for ACPMulti when need Limit/Ref)*)
|
||||
usDirection : USINT; (*Direction for Move Velocity*)
|
||||
usHomeingMode : USINT := mcHOME_DEFAULT;
|
||||
udAxisModPosPeriod : UDINT := 0; (*For Modulo Position - Axis period*)
|
||||
udAxisModPosFactor : UDINT := 0; (*For Modulo Position - Axis Factor*)
|
||||
udAdrParamUserVar1 : UDINT; (*Address: Cyclic to Acopos transmitted Value*)
|
||||
rPosition : REAL; (*Position for Absolute Movement*)
|
||||
rDistance : REAL; (*Distance for Additive Movement*)
|
||||
rTriggDistance : REAL; (*Distance for Trigger Movements (Absolue/Additive/Velocity)*)
|
||||
rVelocity : REAL; (*Velocity for Movements*)
|
||||
rOverrideVelocity : REAL := 1.0; (*Overridevalue for Velicity*)
|
||||
rAcceleration : REAL; (*Acceleration for Movements*)
|
||||
rOverrideAcceleration : REAL := 1.0; (*Overridevalue for Acceleration*)
|
||||
rDeceleration : REAL; (*Deceleration for Movements*)
|
||||
rHomePosition : REAL; (*Homepositoin for Homing*)
|
||||
rJogVelocity : REAL; (*Velocity for Jog*)
|
||||
rTorqueLimit : REAL; (*Torquelimit for TorqueControl*)
|
||||
rBraketestTorque : REAL; (*Tourque for Braketest*)
|
||||
rBraketestPosLimit : REAL; (*Tourque for Braketest*)
|
||||
iGearRatioNumerator : INT := 1; (*CAM/Gear*)
|
||||
uiGearRatioDenominator : UINT := 1; (*CAM/Gear*)
|
||||
rGearMasterSyncPos : REAL; (*Pos Gear *)
|
||||
rGearSlaveSyncPos : REAL; (*Pos Gear *)
|
||||
rGearMasterStartDistance : REAL; (*Pos Gear*)
|
||||
rGearSyncVelocity : REAL; (*Pos Gear*)
|
||||
rGearSyncAcceleration : REAL; (*Pos Gear*)
|
||||
strCamTable : STRING[12]; (*CAM*)
|
||||
END_STRUCT;
|
||||
typAxis : STRUCT (*Acopos Achse*)
|
||||
enStep : enAxisStep; (*Achs Schritt*)
|
||||
bPower : BOOL; (*Achse Einschalten*)
|
||||
bHome : BOOL; (*Achse referenzieren*)
|
||||
bHalt : BOOL; (*Achse anhalten (kann durch andres Kommando abgebr. werden)*)
|
||||
bStop : BOOL; (*Achse stoppen (solange Kommando gesetzt ist)*)
|
||||
rActPosition : REAL; (*Aktuelle Position*)
|
||||
rActVelocity : REAL; (*Aktuelle Geschwindigkeit*)
|
||||
rActTorque : REAL; (*Aktuelles Drehmoment*)
|
||||
rReachedTorque : REAL; (*Erreichtes Drehmoment bei Stop mit M-Limit*)
|
||||
diPositionReachedTorque : DINT; (*Position bei Erreichen des Drehmoments*)
|
||||
Move : typAxis_Move; (*Achsbewegungen*)
|
||||
Error : typAxis_Error;
|
||||
Status : typAxis_Status;
|
||||
DriveStatus : typAxis_DriveStatus;
|
||||
Para : typAxis_Para;
|
||||
END_STRUCT;
|
||||
typMultAx_Trace : STRUCT (*MultiaxTrace*)
|
||||
sStep : STRING[25];
|
||||
bStartSave : BOOL; (*Activate Trace*)
|
||||
bLoadConfig : BOOL; (*Load Trace Config*)
|
||||
bStop : USINT; (*Stop Trace*)
|
||||
uiTraceStep : USINT; (*Step of Trace*)
|
||||
uiTraceState : UINT; (*Status of Trace*)
|
||||
uiTraceError : UINT; (*Error of Trace*)
|
||||
Trace_Config : MC_PARTRACECONFIG_REF; (*Configuration of Trase*)
|
||||
Trace_DatObj_Refercence : MC_DATOBJ_REF; (*Parameter for Save the Trace-Config*)
|
||||
Trace_Error_Record : MC_ERRORRECORD_REF; (*Fehlerspeicher*)
|
||||
END_STRUCT;
|
||||
enAxisStep :
|
||||
( (*Acopos Schritt*)
|
||||
enAxSTATE_WAIT, (*Waruten*)
|
||||
enAxSTATE_SIMULATION_ON, (*Simulation einschalten*)
|
||||
enAxSTATE_SIMULATION_OFF, (*Simulation ausschalten*)
|
||||
enAxSTATE_POWER_ON, (*Achse einschalten*)
|
||||
enAxSTATE_POWER_OFF, (*Achse einschalten*)
|
||||
enAxSTATE_READY, (*Achse Bereit*)
|
||||
enAxSTATE_HOME, (*Achse referenzieren*)
|
||||
enAxSTATE_BRAKE_TEST, (*Bremstest durchf<68>hren*)
|
||||
enAxSTATE_INIT_MOD_POS, (*Modulo Posiotion initialisieren*)
|
||||
enAxSTATE_STOP, (*Achse stopppen*)
|
||||
enAxSTATE_JOG_POSITIVE, (*Achse vorw<72>rts tippen*)
|
||||
enAxSTATE_JOG_NEGATIVE, (*Achse r<>ckw<6B>rts tippen*)
|
||||
enAxSTATE_MOVE_ABSOLUTE, (*Achse absolut positionieren*)
|
||||
enAxSTATE_MOVE_ABSOLUTE_TRIGSTP, (*Achse absolut positionieren Stop mit Trigger*)
|
||||
enAxSTATE_MOVE_ADDITIVE, (*Achse inkrementell positionieren*)
|
||||
enAxSTATE_MOVE_ADDITIVE_TRIGSTP, (*Achse inkrementell positionieren Stop mit Trigger*)
|
||||
enAxSTATE_MOVE_VELOCITY, (*Achse mit konstanter Geschwindigkeit bewegen*)
|
||||
enAxSTATE_MOVE_VELOCITY_CTRL, (*Achse Geschwindigkeitsregeln (M-Regelung)*)
|
||||
enAxSTATE_MOVE_TORQUE_CTRL, (*Achse Drehmomentregeln*)
|
||||
enAxSTATE_MOVE_CAM_SELECT, (*CAM Tabelle ausw<73>hlen*)
|
||||
enAxSTATE_MOVE_CAM_START, (*CAM starten*)
|
||||
enAxSTATE_MOVE_CAM_STOP, (*CAM Stoppen*)
|
||||
enAxSTATE_MOVE_GEAR_START, (*Elektronisches Getriebe Starten*)
|
||||
enAxSTATE_MOVE_GEARPOS_START, (*Elektronisches Getriebe (Positionsmodus) Starten*)
|
||||
enAxSTATE_MOVE_GEAR_STOP, (*Elektronisches Getriebe Stoppen*)
|
||||
enAxSTATE_STOP_AFTER_ERROR, (*Stoppen nach Fehler*)
|
||||
enAxSTATE_ERROR, (*Fehler*)
|
||||
enAxSTATE_ERROR_CHECK, (*Fehler pr<70>fen*)
|
||||
enAxSTATE_ERROR_RESET (*Achsfehler quittieren*)
|
||||
);
|
||||
typPS_Command : STRUCT (*command structure for power supply modules*)
|
||||
bPower : BOOL; (*switch on the controller of the psm*)
|
||||
bStartPowerMeter : BOOL; (*start the power evaluation of psm*)
|
||||
bStopPowerMeter : BOOL; (*stop the power evaluation of psm*)
|
||||
bRestartInterval : BOOL; (*restart the interval of power evaluation*)
|
||||
END_STRUCT;
|
||||
typPS_Parameter : STRUCT (*parameter structure for psm*)
|
||||
uiIntervalTime : UINT; (*interval time for the power evaluation*)
|
||||
END_STRUCT;
|
||||
typPS_Status : STRUCT (*status structure for psm*)
|
||||
mcPowerData : MC_POWERDATA_REF; (*evaluated power data*)
|
||||
uiMissedInterval : UINT; (*MissedIntervals with power evaluation*)
|
||||
mcDriveStatus : MC_DRIVESTATUS_TYP; (*actual status of the axis*)
|
||||
END_STRUCT;
|
||||
typPS_Energy : STRUCT
|
||||
rConsumedEnergy : REAL; (*Verbrauchte Energie [Ws]*)
|
||||
rRegeneratedEnergy : REAL; (*R<>ckgespeiste Energie [Ws]*)
|
||||
END_STRUCT;
|
||||
typPS : STRUCT (*substructure for psm*)
|
||||
enStep : enPSStep; (*Achs Schritt*)
|
||||
Command : typPS_Command; (*command structure for psm*)
|
||||
Parameter : typPS_Parameter; (*parameter structure for psm*)
|
||||
Status : typPS_Status; (*status structure for psm*)
|
||||
Energy : typPS_Energy;
|
||||
AxisState : typAxis_Status; (*axis state structure*)
|
||||
DriveStatus : typAxis_DriveStatus;
|
||||
Error : typAxis_Error; (*error structure*)
|
||||
END_STRUCT;
|
||||
enPSStep :
|
||||
(
|
||||
enPSSTATE_WAIT, (*Waruten*)
|
||||
enPSSTATE_READY,
|
||||
enPSSTATE_POWER_OFF,
|
||||
enPSSTATE_POWER_ON,
|
||||
enPSSTATE_POWERMETER_START,
|
||||
enPSSTATE_POWERMETER_STOP,
|
||||
enPSSTATE_RESTART_INTERVAL,
|
||||
enPSSTATE_ERROR, (*Fehler bei FUB ausf<73>hrung*)
|
||||
enPSSTATE_ERROR_AXIS, (*Achsfehler*)
|
||||
enPSSTATE_ERROR_RESET (*Achsfehler quittieren*)
|
||||
);
|
||||
END_TYPE
|
||||
23
Logical/Axises/GlobalAxis.var
Normal file
23
Logical/Axises/GlobalAxis.var
Normal file
@@ -0,0 +1,23 @@
|
||||
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*)
|
||||
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;
|
||||
END_VAR
|
||||
(*Permanent*)
|
||||
VAR RETAIN
|
||||
grAxisABSOffShaft : ARRAY[1..4] OF REAL; (*Absolute Offsets*)
|
||||
END_VAR
|
||||
(*Constants*)
|
||||
12
Logical/Axises/Init/Package.pkg
Normal file
12
Logical/Axises/Init/Package.pkg
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="DataObject" Language="Ax" Description="Initmodule Powersupply Axis">axPSi</Object>
|
||||
<Object Type="DataObject" Language="Ax" Description="Initmodule Axis Shafts">axShafti</Object>
|
||||
<Object Type="DataObject" Language="Ax" Description="Initmodule Axis Shafts (Simulation)">axShaftSi</Object>
|
||||
<Object Type="DataObject" Language="Vax" Description="Initmodule VAxis (Master)">vShafti</Object>
|
||||
<Object Type="DataObject" Language="Vax" Description="Initmodule VAxis (Simulation)">vShaftSi</Object>
|
||||
<Object Type="DataObject" Language="Ax" Description="Initmodule Extra Axis">axExtrai</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
7
Logical/Axises/Init/axExtrai/Ax.dob
Normal file
7
Logical/Axises/Init/axExtrai/Ax.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>axExtrai.ax</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
166
Logical/Axises/Init/axExtrai/axExtrai.ax
Normal file
166
Logical/Axises/Init/axExtrai/axExtrai.ax
Normal file
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<InitParameter Version="2.34.1" NcSwId="ACP10">
|
||||
<Group ID="ACP10AXIS_typ" Description="">
|
||||
<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_HI" />
|
||||
</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="45000" />
|
||||
<Parameter ID="rev_motor" Value="1435" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="limit">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="v_pos" Value="800.0" />
|
||||
<Parameter ID="v_neg" Value="800.0" />
|
||||
<Parameter ID="a1_pos" Value="1000.0" />
|
||||
<Parameter ID="a2_pos" Value="1000.0" />
|
||||
<Parameter ID="a1_neg" Value="1000.0" />
|
||||
<Parameter ID="a2_neg" Value="1000.0" />
|
||||
<Parameter ID="t_jolt" Value="0.0001" />
|
||||
<Parameter ID="t_in_pos" Value="0.0" />
|
||||
<Parameter ID="pos_sw_end" Value="2000000000" />
|
||||
<Parameter ID="neg_sw_end" Value="-2000000000" />
|
||||
<Parameter ID="ds_warning" Value="500.0" />
|
||||
<Parameter ID="ds_stop" Value="1.0e+006" />
|
||||
<Parameter ID="a_stop" Value="1000.0" />
|
||||
<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="15.0" Description="Proportional amplification (25 working but too hard)" />
|
||||
<Parameter ID="tn" Value="0.0" />
|
||||
<Parameter ID="t_predict" Value="0.0035" />
|
||||
<Parameter ID="t_total" Value="0.004" />
|
||||
<Parameter ID="p_max" Value="589.0" />
|
||||
<Parameter ID="i_max" Value="0.0" />
|
||||
</Group>
|
||||
<Group ID="speed">
|
||||
<Parameter ID="kv" Value="0.86" />
|
||||
<Parameter ID="tn" Value="0.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="400.0" />
|
||||
<Parameter ID="un" Value="400.0" />
|
||||
<Parameter ID="fn" Value="50.0" />
|
||||
<Parameter ID="k_f_slip" Value="0.0" />
|
||||
</Group>
|
||||
<Group ID="ff">
|
||||
<Parameter ID="torque_load" Value="10.0" />
|
||||
<Parameter ID="torque_pos" Value="10.0" />
|
||||
<Parameter ID="torque_neg" Value="10.0" />
|
||||
<Parameter ID="kv_torque" Value="1.0" />
|
||||
<Parameter ID="inertia" Value="0.00683" />
|
||||
<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="100.0" />
|
||||
<Parameter ID="v_trigger" Value="100.0" />
|
||||
<Parameter ID="a" Value="500.0" />
|
||||
<Parameter ID="mode" Value="ncHOME_OFFSET" />
|
||||
<Parameter ID="edge_sw" Value="ncPOSITIVE" />
|
||||
<Parameter ID="start_dir" Value="ncPOSITIVE" />
|
||||
<Parameter ID="trigg_dir" Value="ncPOSITIVE" />
|
||||
<Parameter ID="ref_pulse" Value="ncON" />
|
||||
<Parameter ID="tr_s_block" Value="0.0" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="basis">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="v_pos" Value="700.0" />
|
||||
<Parameter ID="v_neg" Value="700.0" />
|
||||
<Parameter ID="a1_pos" Value="1000.0" />
|
||||
<Parameter ID="a2_pos" Value="1000.0" />
|
||||
<Parameter ID="a1_neg" Value="1000.0" />
|
||||
<Parameter ID="a2_neg" Value="1000.0" />
|
||||
</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="german" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</InitParameter>
|
||||
7
Logical/Axises/Init/axPSi/Ax.dob
Normal file
7
Logical/Axises/Init/axPSi/Ax.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>axPSi.ax</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
166
Logical/Axises/Init/axPSi/axPSi.ax
Normal file
166
Logical/Axises/Init/axPSi/axPSi.ax
Normal file
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<InitParameter Version="2.34.1" NcSwId="acp10">
|
||||
<Group ID="ACP10AXIS_typ" Description="">
|
||||
<Group ID="dig_in">
|
||||
<Group ID="level">
|
||||
<Parameter ID="reference" Value="ncACTIV_HI" />
|
||||
<Parameter ID="pos_hw_end" Value="ncACTIV_HI" />
|
||||
<Parameter ID="neg_hw_end" Value="ncACTIV_HI" />
|
||||
<Parameter ID="trigger1" Value="ncACTIV_HI" />
|
||||
<Parameter ID="trigger2" Value="ncACTIV_HI" />
|
||||
</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.0008" />
|
||||
<Parameter ID="t_total" Value="0.0008" />
|
||||
<Parameter ID="p_max" Value="10000" />
|
||||
<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="tr_s_block" 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="acp10etxen" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</InitParameter>
|
||||
7
Logical/Axises/Init/axShaftSi/Ax.dob
Normal file
7
Logical/Axises/Init/axShaftSi/Ax.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>axShaftSi.ax</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
166
Logical/Axises/Init/axShaftSi/axShaftSi.ax
Normal file
166
Logical/Axises/Init/axShaftSi/axShaftSi.ax
Normal file
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<InitParameter Version="2.34.1" NcSwId="acp10">
|
||||
<Group ID="ACP10AXIS_typ" Description="">
|
||||
<Group ID="dig_in">
|
||||
<Group ID="level">
|
||||
<Parameter ID="reference" Value="ncACTIV_HI" />
|
||||
<Parameter ID="pos_hw_end" Value="ncACTIV_HI" />
|
||||
<Parameter ID="neg_hw_end" Value="ncACTIV_HI" />
|
||||
<Parameter ID="trigger1" Value="ncACTIV_HI" />
|
||||
<Parameter ID="trigger2" Value="ncACTIV_HI" />
|
||||
</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="10" Description="Units at the load {}" />
|
||||
<Parameter ID="rev_motor" Value="5" />
|
||||
</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.0008" />
|
||||
<Parameter ID="t_total" Value="0.0008" />
|
||||
<Parameter ID="p_max" Value="10000" />
|
||||
<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="tr_s_block" 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="acp10etxen" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</InitParameter>
|
||||
7
Logical/Axises/Init/axShafti/Ax.dob
Normal file
7
Logical/Axises/Init/axShafti/Ax.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>axShafti.ax</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
166
Logical/Axises/Init/axShafti/axShafti.ax
Normal file
166
Logical/Axises/Init/axShafti/axShafti.ax
Normal file
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<InitParameter Version="2.34.1" NcSwId="acp10">
|
||||
<Group ID="ACP10AXIS_typ" Description="">
|
||||
<Group ID="dig_in">
|
||||
<Group ID="level">
|
||||
<Parameter ID="reference" Value="ncACTIV_HI" />
|
||||
<Parameter ID="pos_hw_end" Value="ncACTIV_HI" />
|
||||
<Parameter ID="neg_hw_end" Value="ncACTIV_HI" />
|
||||
<Parameter ID="trigger1" Value="ncACTIV_HI" />
|
||||
<Parameter ID="trigger2" Value="ncACTIV_HI" />
|
||||
</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="10" />
|
||||
<Parameter ID="rev_motor" Value="5" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="limit">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="v_pos" Value="100.0" />
|
||||
<Parameter ID="v_neg" Value="100.0" />
|
||||
<Parameter ID="a1_pos" Value="1000.0" />
|
||||
<Parameter ID="a2_pos" Value="1000.0" />
|
||||
<Parameter ID="a1_neg" Value="1000.0" />
|
||||
<Parameter ID="a2_neg" Value="1000.0" />
|
||||
<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="0.1" />
|
||||
<Parameter ID="ds_stop" Value="1.0" />
|
||||
<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.0008" />
|
||||
<Parameter ID="t_total" Value="0.0008" />
|
||||
<Parameter ID="p_max" Value="10000" />
|
||||
<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="100.0" />
|
||||
<Parameter ID="v_trigger" Value="50.0" />
|
||||
<Parameter ID="a" Value="1000.0" />
|
||||
<Parameter ID="mode" Value="ncHOME_OFFSET" />
|
||||
<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="tr_s_block" Value="0" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="basis">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="v_pos" Value="500.0" />
|
||||
<Parameter ID="v_neg" Value="500.0" />
|
||||
<Parameter ID="a1_pos" Value="1000.0" />
|
||||
<Parameter ID="a2_pos" Value="1000.0" />
|
||||
<Parameter ID="a1_neg" Value="1000.0" />
|
||||
<Parameter ID="a2_neg" Value="1000.0" />
|
||||
</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="acp10etxen" />
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</InitParameter>
|
||||
7
Logical/Axises/Init/vShaftSi/Vax.dob
Normal file
7
Logical/Axises/Init/vShaftSi/Vax.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>vShaftSi.vax</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
51
Logical/Axises/Init/vShaftSi/vShaftSi.vax
Normal file
51
Logical/Axises/Init/vShaftSi/vShaftSi.vax
Normal file
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<InitParameter Version="2.34.1" NcSwId="acp10">
|
||||
<Group ID="ACP10VAXIS_typ" Description="">
|
||||
<Group ID="limit">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="t_jolt" Value="0" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="move">
|
||||
<Group ID="stop">
|
||||
<Group ID="parameter[0]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_MOVE" />
|
||||
</Group>
|
||||
<Group ID="parameter[1]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_MOVE" />
|
||||
</Group>
|
||||
<Group ID="parameter[2]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_MOVE" />
|
||||
</Group>
|
||||
<Group ID="parameter[3]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_MOVE" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="homing">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="s" 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>
|
||||
7
Logical/Axises/Init/vShafti/Vax.dob
Normal file
7
Logical/Axises/Init/vShafti/Vax.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>vShafti.vax</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
51
Logical/Axises/Init/vShafti/vShafti.vax
Normal file
51
Logical/Axises/Init/vShafti/vShafti.vax
Normal file
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<InitParameter Version="2.34.1" NcSwId="acp10">
|
||||
<Group ID="ACP10VAXIS_typ" Description="">
|
||||
<Group ID="limit">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="t_jolt" Value="0" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="move">
|
||||
<Group ID="stop">
|
||||
<Group ID="parameter[0]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_MOVE" />
|
||||
</Group>
|
||||
<Group ID="parameter[1]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_MOVE" />
|
||||
</Group>
|
||||
<Group ID="parameter[2]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_MOVE" />
|
||||
</Group>
|
||||
<Group ID="parameter[3]">
|
||||
<Parameter ID="decel_ramp" Value="ncA_MOVE" />
|
||||
</Group>
|
||||
</Group>
|
||||
<Group ID="homing">
|
||||
<Group ID="parameter">
|
||||
<Parameter ID="s" 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>
|
||||
9
Logical/Axises/MAxTrace/IEC.prg
Normal file
9
Logical/Axises/MAxTrace/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.22 SP04?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Cyclic code">MAxTraceCyclic.ab</File>
|
||||
<File Description="Initialization code">MAxTraceInit.ab</File>
|
||||
<File Description="Local variables" Private="true">MAxTrace.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
11
Logical/Axises/MAxTrace/MAxTrace.var
Normal file
11
Logical/Axises/MAxTrace/MAxTrace.var
Normal file
@@ -0,0 +1,11 @@
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//MC FunctionBlocks*)
|
||||
VAR
|
||||
Axis_MC_BR_ParTrace : MC_BR_ParTrace := (0); (*Parameter Trace*)
|
||||
Axis_MC_BR_ReadParTraceStatus : MC_BR_ReadParTraceStatus := (0); (*Parameter Trace Status*)
|
||||
END_VAR
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
(*//Dynamic Vars*)
|
||||
VAR
|
||||
lMAxTrace : REFERENCE TO typMultAx_Trace; (*Axis Datastruct *)
|
||||
END_VAR
|
||||
107
Logical/Axises/MAxTrace/MAxTraceCyclic.ab
Normal file
107
Logical/Axises/MAxTrace/MAxTraceCyclic.ab
Normal file
@@ -0,0 +1,107 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT --
|
||||
********************************************************************
|
||||
* Program: MAxTrace
|
||||
* File: MAxTraceCyclic.ab
|
||||
* Author: michi
|
||||
* Created: July 18, 2012
|
||||
********************************************************************
|
||||
* Implementation of program MAxTrace
|
||||
********************************************************************)
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
;STATE Machine Trace
|
||||
SELECT lMAxTrace.uiTraceStep
|
||||
;==============================================
|
||||
;READY
|
||||
STATE AxTraceSTATE_READY
|
||||
strcpy (ADR (lMAxTrace.sStep), "AxTraceSTATE_READY")
|
||||
|
||||
WHEN (lMAxTrace.bLoadConfig = 1)
|
||||
lMAxTrace.bLoadConfig = 0
|
||||
NEXT AxTraceSTATE_LOAD_CONFIG
|
||||
|
||||
WHEN (lMAxTrace.bStartSave = 1)
|
||||
lMAxTrace.bStartSave = 0
|
||||
NEXT AxTraceSTATE_START_SAVE
|
||||
|
||||
Axis_MC_BR_ParTrace.Execute = 0
|
||||
//Axis_MC_BR_ParTraceConfig.Execute = 0
|
||||
Axis_MC_BR_ReadParTraceStatus.Enable = 0
|
||||
|
||||
;==============================================
|
||||
;Load Trace Config
|
||||
STATE AxTraceSTATE_LOAD_CONFIG
|
||||
strcpy (ADR (lMAxTrace.sStep), "AxTraceSTATE_LOAD_CONFIG")
|
||||
//Axis_MC_BR_ParTraceConfig.Command = mcLoad
|
||||
//Axis_MC_BR_ParTraceConfig.AdrTraceConfig = adr (lMAxTrace.Trace_DatObj_Refercence)
|
||||
//Axis_MC_BR_ParTraceConfig.Execute = 1
|
||||
|
||||
;check if loading is finished
|
||||
//when (Axis_MC_BR_ParTrace.Done)
|
||||
// Axis_MC_BR_ParTraceConfig.Execute = 0
|
||||
//next AxTraceSTATE_READY
|
||||
|
||||
;check for error occured
|
||||
//when (Axis_MC_BR_ParTraceConfig.Error)
|
||||
// Axis_MC_BR_ParTraceConfig.Execute = 0
|
||||
// Axis_MC_BR_ParTraceConfig.ErrorRecord
|
||||
//next AxTraceSTATE_ERROR
|
||||
|
||||
;==============================================
|
||||
;Start and Save Trace
|
||||
STATE AxTraceSTATE_START_SAVE
|
||||
strcpy (ADR (lMAxTrace.sStep), "AxTraceSTATE_START_SAVE")
|
||||
Axis_MC_BR_ParTrace.Configuration = lMAxTrace.Trace_Config
|
||||
Axis_MC_BR_ParTrace.Command = mcSTART + mcSAVE
|
||||
Axis_MC_BR_ParTrace.Execute = 1
|
||||
|
||||
;check if Trace is finished
|
||||
WHEN (Axis_MC_BR_ParTrace.Done)
|
||||
Axis_MC_BR_ParTrace.Execute = 0
|
||||
NEXT AxTraceSTATE_READY
|
||||
|
||||
;check for error occured
|
||||
WHEN (Axis_MC_BR_ParTrace.Error)
|
||||
Axis_MC_BR_ParTrace.Execute = 0
|
||||
lMAxTrace.uiTraceError = Axis_MC_BR_ParTrace.ErrorID
|
||||
lMAxTrace.Trace_Error_Record = Axis_MC_BR_ParTrace.ErrorRecord
|
||||
NEXT AxTraceSTATE_ERROR
|
||||
|
||||
WHEN (lMAxTrace.bStop = 1)
|
||||
Axis_MC_BR_ParTrace.Execute = 0
|
||||
lMAxTrace.bStop = 0
|
||||
NEXT AxTraceSTATE_STOP
|
||||
|
||||
;==============================================
|
||||
;Stop Trace
|
||||
STATE AxTraceSTATE_STOP
|
||||
strcpy (ADR (lMAxTrace.sStep), "AxTraceSTATE_STOP")
|
||||
Axis_MC_BR_ParTrace.Command = mcSTOP
|
||||
Axis_MC_BR_ParTrace.Execute = 1
|
||||
|
||||
;check if Trace is finished
|
||||
WHEN (Axis_MC_BR_ParTrace.Done)
|
||||
Axis_MC_BR_ParTrace.Execute = 0
|
||||
NEXT AxTraceSTATE_READY
|
||||
|
||||
;check for error occured
|
||||
WHEN (Axis_MC_BR_ParTrace.Error)
|
||||
Axis_MC_BR_ParTrace.Execute = 0
|
||||
;Axis_MC_BR_ParTrace.ErrorRecord
|
||||
NEXT AxTraceSTATE_ERROR
|
||||
|
||||
;==============================================
|
||||
;Error
|
||||
STATE AxTraceSTATE_ERROR
|
||||
strcpy (ADR (lMAxTrace.sStep), "AxTraceSTATE_ERROR")
|
||||
WHEN (1 = 1)
|
||||
NEXT AxTraceSTATE_READY
|
||||
|
||||
ENDSELECT
|
||||
|
||||
Axis_MC_BR_ParTrace FUB MC_BR_ParTrace ()
|
||||
//Axis_MC_BR_ParTraceConfig fub MC_BR_ParTraceConfig ()
|
||||
Axis_MC_BR_ReadParTraceStatus FUB MC_BR_ReadParTraceStatus ()
|
||||
|
||||
END_PROGRAM
|
||||
17
Logical/Axises/MAxTrace/MAxTraceInit.ab
Normal file
17
Logical/Axises/MAxTrace/MAxTraceInit.ab
Normal file
@@ -0,0 +1,17 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT --
|
||||
********************************************************************
|
||||
* Program: MAxTrace
|
||||
* File: MAxTraceInit.ab
|
||||
* Author: michi
|
||||
* Created: July 18, 2012
|
||||
********************************************************************
|
||||
* Implementation of program MAxTrace
|
||||
********************************************************************)
|
||||
|
||||
PROGRAM _INIT
|
||||
|
||||
lMAxTrace ACCESS ADR (gMAxTrace);
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
20
Logical/Axises/Package.pkg
Normal file
20
Logical/Axises/Package.pkg
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File" Description="Achsdatentypen">GlobalAxis.typ</Object>
|
||||
<Object Type="File" Description="Package variables">GlobalAxis.var</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Controller">PressCtrl</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Multi Axis Trace">MAxTrace</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 Shaft 2">Axisctrl2</Object>
|
||||
<Object Type="Program" Language="IEC" Description="AxisCtrl Shaft 3">Axisctrl3</Object>
|
||||
<Object Type="Program" Language="IEC" Description="AxisCtrl Shaft 4">Axisctrl4</Object>
|
||||
<Object Type="Program" Language="IEC" Description="AxisCtrl Tool 1">AxisctrlExtra1</Object>
|
||||
<Object Type="Package">Init</Object>
|
||||
<Object Type="Package">ACPPar</Object>
|
||||
<Object Type="DataObject" Language="Ett">acp10etxde</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
38
Logical/Axises/PressCtrl/HomeAxis.st
Normal file
38
Logical/Axises/PressCtrl/HomeAxis.st
Normal file
@@ -0,0 +1,38 @@
|
||||
|
||||
FUNCTION HomeAxis
|
||||
IF (enInStep = enHomeOffsetPerm) THEN
|
||||
//Home with permanent Stored Offset
|
||||
//---------------------------
|
||||
InAxis.Para.rHomePosition := rInPermanentOffset + rInOffset;
|
||||
InAxis.bHome := TRUE;
|
||||
enInStep := enHomeOffsetPermDone;
|
||||
ELSIF (enInStep = enHomeOffsetPermDone) THEN
|
||||
//Home with permanent Stored Offset
|
||||
//---------------------------
|
||||
IF InAxis.DriveStatus.bHomingOk 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;
|
||||
END_IF
|
||||
|
||||
IF (enInStep = enHomeOffset0Done) THEN
|
||||
//Home with Stored 0
|
||||
//---------------------------
|
||||
IF InAxis.DriveStatus.bHomingOk AND NOT InAxis.bHome THEN
|
||||
enInStep := enHomeStorePos;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF (enInStep = enHomeStorePos) THEN
|
||||
//Store Axis Position
|
||||
//---------------------------
|
||||
rInPermanentOffset := - InAxis.rActPosition + rInOffset;
|
||||
ERRxwarning(50001, 0 , ADR ('Encoder Offset modified'));
|
||||
enInStep := enHomeOffsetPerm;
|
||||
END_IF
|
||||
END_FUNCTION
|
||||
11
Logical/Axises/PressCtrl/IEC.prg
Normal file
11
Logical/Axises/PressCtrl/IEC.prg
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Implementation code">PressCtrl.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>
|
||||
</Files>
|
||||
</Program>
|
||||
19
Logical/Axises/PressCtrl/PressCtrl.fun
Normal file
19
Logical/Axises/PressCtrl/PressCtrl.fun
Normal file
@@ -0,0 +1,19 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT --
|
||||
********************************************************************
|
||||
* Program: PressCtrl
|
||||
* File: PressCtrl.fun
|
||||
* Author: michi
|
||||
* Created: December 08, 2012
|
||||
********************************************************************
|
||||
* Functions and function blocks of program PressCtrl
|
||||
********************************************************************)
|
||||
|
||||
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
|
||||
312
Logical/Axises/PressCtrl/PressCtrl.st
Normal file
312
Logical/Axises/PressCtrl/PressCtrl.st
Normal file
@@ -0,0 +1,312 @@
|
||||
|
||||
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]);
|
||||
|
||||
//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 := mcFILE + mcADD_DATE_TIME;
|
||||
|
||||
//Setup Trace
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[0].Axis := ADR (gvAxShaftMaster);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[0].ParID := ACP10PAR_PCTRL_V_SET;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[1].Axis := ADR (gAxShaft1);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[1].ParID := ACP10PAR_PCTRL_V_SET;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[2].Axis := ADR (gAxShaft2);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[2].ParID := ACP10PAR_PCTRL_S_ACT;
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[3].Axis := ADR (gAxShaft3);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[3].ParID := ACP10PAR_PCTRL_S_ACT ; //ACP10PAR_PCTRL_S_ACT
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[4].Axis := ADR (gAxShaft4);
|
||||
gMAxTrace.Trace_Config.ParTrace.Parameter[4].ParID := ACP10PAR_PCTRL_S_ACT ; //ACP10PAR_PCTRL_S_ACT
|
||||
gMAxTrace.Trace_Config.ParTrace.Trigger.Axis := ADR (gvAxShaftMaster);
|
||||
gMAxTrace.Trace_Config.ParTrace.Trigger.ParID := ACP10PAR_PCTRL_V_SET;
|
||||
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 := 60;
|
||||
gMAxTrace.Trace_Config.ParTrace.SamplingTime := 0.08;
|
||||
gMAxTrace.Trace_Config.ParTrace.Delay := 0.0;
|
||||
gMAxTrace.Trace_Config.ParTrace.NetTriggerDelay := 0;
|
||||
|
||||
//Parameter
|
||||
lAxisShaftMaster.Para.rVelocity := 1000;
|
||||
lAxisShaftMaster.Para.rAcceleration := 500;
|
||||
lAxisShaftMaster.Para.rDeceleration := 500;
|
||||
// lAxisWire1.Para.rPosition := 100;
|
||||
// lAxisWire1.Para.rDistance := 340;
|
||||
|
||||
|
||||
lAxisShaftMaster.Para.rJogVelocity := 10;
|
||||
lAxisShaft1.Para.rJogVelocity := 10;
|
||||
lAxisShaft2.Para.rJogVelocity := lAxisShaft1.Para.rJogVelocity;
|
||||
lAxisShaft3.Para.rJogVelocity := lAxisShaft1.Para.rJogVelocity;
|
||||
lAxisShaft4.Para.rJogVelocity := lAxisShaft1.Para.rJogVelocity;
|
||||
|
||||
lAxisShaft1.Para.rVelocity := 100;
|
||||
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;
|
||||
|
||||
rPressPosMin := rPressPosMin;
|
||||
rPressPosMax := rPressPosMax;
|
||||
END_PROGRAM
|
||||
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
//SIMULATION
|
||||
gMachine.bAxisSimulation := FALSE;
|
||||
|
||||
|
||||
lAxisShaft2.Para.rGearMasterSyncPos := lAxisShaft1.Para.rGearMasterSyncPos;
|
||||
lAxisShaft2.Para.rGearSlaveSyncPos := lAxisShaft1.Para.rGearSlaveSyncPos;
|
||||
lAxisShaft2.Para.rGearMasterStartDistance := lAxisShaft1.Para.rGearMasterStartDistance;
|
||||
lAxisShaft2.Para.rGearSyncVelocity := lAxisShaft1.Para.rGearSyncVelocity;
|
||||
lAxisShaft2.Para.rGearSyncAcceleration := lAxisShaft1.Para.rGearSyncAcceleration;
|
||||
|
||||
lAxisShaft3.Para.rGearMasterSyncPos := lAxisShaft1.Para.rGearMasterSyncPos;
|
||||
lAxisShaft3.Para.rGearSlaveSyncPos := lAxisShaft1.Para.rGearSlaveSyncPos;
|
||||
lAxisShaft3.Para.rGearMasterStartDistance := lAxisShaft1.Para.rGearMasterStartDistance;
|
||||
lAxisShaft3.Para.rGearSyncVelocity := lAxisShaft1.Para.rGearSyncVelocity;
|
||||
lAxisShaft3.Para.rGearSyncAcceleration := lAxisShaft1.Para.rGearSyncAcceleration;
|
||||
|
||||
lAxisShaft4.Para.rGearMasterSyncPos := lAxisShaft1.Para.rGearMasterSyncPos;
|
||||
lAxisShaft4.Para.rGearSlaveSyncPos := lAxisShaft1.Para.rGearSlaveSyncPos;
|
||||
lAxisShaft4.Para.rGearMasterStartDistance := lAxisShaft1.Para.rGearMasterStartDistance;
|
||||
lAxisShaft4.Para.rGearSyncVelocity := lAxisShaft1.Para.rGearSyncVelocity;
|
||||
lAxisShaft4.Para.rGearSyncAcceleration := lAxisShaft1.Para.rGearSyncAcceleration;
|
||||
|
||||
//Pransfer Values to Axis2
|
||||
lAxisShaft1.Para.rAcceleration := lAxisShaftMaster.Para.rAcceleration;
|
||||
lAxisShaft1.Para.rDeceleration := lAxisShaftMaster.Para.rDeceleration;
|
||||
lAxisShaft2.Para.rAcceleration := lAxisShaftMaster.Para.rAcceleration;
|
||||
lAxisShaft2.Para.rDeceleration := lAxisShaftMaster.Para.rDeceleration;
|
||||
lAxisShaft3.Para.rAcceleration := lAxisShaftMaster.Para.rAcceleration;
|
||||
lAxisShaft3.Para.rDeceleration := lAxisShaftMaster.Para.rDeceleration;
|
||||
lAxisShaft4.Para.rAcceleration := lAxisShaftMaster.Para.rAcceleration;
|
||||
lAxisShaft4.Para.rDeceleration := lAxisShaftMaster.Para.rDeceleration;
|
||||
|
||||
//Power Up Axises
|
||||
lPS.Command.bPower := gMachine.bMachineON;
|
||||
lAxisShaftMaster.bPower := gMachine.bMachineON;
|
||||
lAxisShaft1.bPower := gMachine.bMachineON;
|
||||
lAxisShaft2.bPower := gMachine.bMachineON;
|
||||
lAxisShaft3.bPower := gMachine.bMachineON;
|
||||
lAxisShaft4.bPower := gMachine.bMachineON;
|
||||
|
||||
lAxisShaftMaster.bStop := bStop;
|
||||
lAxisShaft1.bStop := bStop;
|
||||
lAxisShaft2.bStop := bStop;
|
||||
lAxisShaft3.bStop := bStop;
|
||||
lAxisShaft3.bStop := bStop;
|
||||
|
||||
//Couple Axises
|
||||
IF EDGEPOS (bDevelEnalbeGear) THEN
|
||||
rAveragePos := (lAxisShaft1.rActPosition +
|
||||
lAxisShaft2.rActPosition +
|
||||
lAxisShaft3.rActPosition +
|
||||
lAxisShaft4.rActPosition) * 0.25;
|
||||
lAxisShaftMaster.Para.rPosition := rAveragePos;
|
||||
lAxisShaftMaster.Move.bAbsolute := 1;
|
||||
lAxisShaft1.Para.rPosition := rAveragePos;
|
||||
lAxisShaft1.Move.bAbsolute := 1;
|
||||
lAxisShaft2.Para.rPosition := rAveragePos;
|
||||
lAxisShaft2.Move.bAbsolute := 1;
|
||||
lAxisShaft3.Para.rPosition := rAveragePos;
|
||||
lAxisShaft3.Move.bAbsolute := 1;
|
||||
lAxisShaft4.Para.rPosition := rAveragePos;
|
||||
lAxisShaft4.Move.bAbsolute := 1;
|
||||
END_IF
|
||||
|
||||
IF lAxisShaftMaster.DriveStatus.bHomingOk AND lAxisShaft1.DriveStatus.bHomingOk AND bDevelEnalbeGear
|
||||
AND NOT lAxisShaft1.Status.bMotionSynchronized AND NOT lAxisShaft1.Move.bAbsolute THEN //AND (lAxisShaft1.rActPosition = rAveragePos) AND (lAxisShaftMaster.rActPosition = rAveragePos) THEN
|
||||
lAxisShaft1.Move.bStartGearSlave := TRUE;
|
||||
END_IF
|
||||
IF lAxisShaftMaster.DriveStatus.bHomingOk AND lAxisShaft2.DriveStatus.bHomingOk AND bDevelEnalbeGear
|
||||
AND NOT lAxisShaft2.Status.bMotionSynchronized AND NOT lAxisShaft2.Move.bAbsolute THEN //AND (lAxisShaft2.rActPosition = rAveragePos) AND (lAxisShaftMaster.rActPosition = rAveragePos) THEN
|
||||
lAxisShaft2.Move.bStartGearSlave := TRUE;
|
||||
END_IF
|
||||
IF lAxisShaftMaster.DriveStatus.bHomingOk AND lAxisShaft3.DriveStatus.bHomingOk AND bDevelEnalbeGear
|
||||
AND NOT lAxisShaft3.Status.bMotionSynchronized AND NOT lAxisShaft3.Move.bAbsolute THEN //AND (lAxisShaft3.rActPosition = rAveragePos) AND (lAxisShaftMaster.rActPosition = rAveragePos) THEN
|
||||
lAxisShaft3.Move.bStartGearSlave := TRUE;
|
||||
END_IF
|
||||
IF lAxisShaftMaster.DriveStatus.bHomingOk AND lAxisShaft4.DriveStatus.bHomingOk AND bDevelEnalbeGear
|
||||
AND NOT lAxisShaft4.Status.bMotionSynchronized AND NOT lAxisShaft4.Move.bAbsolute THEN //AND (lAxisShaft4.rActPosition = rAveragePos) AND (lAxisShaftMaster.rActPosition = rAveragePos) THEN
|
||||
lAxisShaft4.Move.bStartGearSlave := TRUE;
|
||||
END_IF
|
||||
|
||||
|
||||
//Move Conditions
|
||||
MoveConditions.bEnableNegShaft1 := (lAxisShaft1.rActPosition > rPressPosMin);
|
||||
MoveConditions.bEnablePosShaft1 := (lAxisShaft1.rActPosition < rPressPosMax);
|
||||
MoveConditions.bEnableNegShaft2 := (lAxisShaft2.rActPosition > rPressPosMin);
|
||||
MoveConditions.bEnablePosShaft2 := (lAxisShaft2.rActPosition < rPressPosMax);
|
||||
MoveConditions.bEnableNegShaft3 := (lAxisShaft3.rActPosition > rPressPosMin);
|
||||
MoveConditions.bEnablePosShaft3 := (lAxisShaft3.rActPosition < rPressPosMax);
|
||||
MoveConditions.bEnableNegShaft4 := (lAxisShaft4.rActPosition > rPressPosMin);
|
||||
MoveConditions.bEnablePosShaft4 := (lAxisShaft4.rActPosition < rPressPosMax);
|
||||
MoveConditions.bEnableNegShaftMaster := (lAxisShaftMaster.rActPosition > rPressPosMin);
|
||||
MoveConditions.bEnablePosShaftMaster := (lAxisShaftMaster.rActPosition < rPressPosMax);
|
||||
|
||||
StatusVCControls.usJogNegShaft1 := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnableNegShaft1), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (gMachine.enMode <> enMACH_JOG) OR bDevelEnalbeGear, VC_HIDE_BITPOS);
|
||||
StatusVCControls.usJogPosShaft1 := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnablePosShaft1), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (gMachine.enMode <> enMACH_JOG) OR bDevelEnalbeGear, VC_HIDE_BITPOS);
|
||||
StatusVCControls.usJogNegShaft2 := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnableNegShaft2), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (gMachine.enMode <> enMACH_JOG) OR bDevelEnalbeGear, VC_HIDE_BITPOS);
|
||||
StatusVCControls.usJogPosShaft2 := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnablePosShaft2), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (gMachine.enMode <> enMACH_JOG) OR bDevelEnalbeGear, VC_HIDE_BITPOS);
|
||||
StatusVCControls.usJogNegShaft3 := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnableNegShaft3), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (gMachine.enMode <> enMACH_JOG) OR bDevelEnalbeGear, VC_HIDE_BITPOS);
|
||||
StatusVCControls.usJogPosShaft3 := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnablePosShaft3), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (gMachine.enMode <> enMACH_JOG) OR bDevelEnalbeGear, VC_HIDE_BITPOS);
|
||||
StatusVCControls.usJogNegShaft4 := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnableNegShaft4), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (gMachine.enMode <> enMACH_JOG) OR bDevelEnalbeGear, VC_HIDE_BITPOS);
|
||||
StatusVCControls.usJogPosShaft4 := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnablePosShaft4), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (gMachine.enMode <> enMACH_JOG) OR bDevelEnalbeGear, VC_HIDE_BITPOS);
|
||||
StatusVCControls.usJogNegShaftMaster := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnableNegShaftMaster), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (gMachine.enMode <> enMACH_JOG) OR NOT bDevelEnalbeGear, VC_HIDE_BITPOS);
|
||||
StatusVCControls.usJogPosShaftMaster := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnablePosShaftMaster), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (gMachine.enMode <> enMACH_JOG) OR NOT bDevelEnalbeGear, VC_HIDE_BITPOS);
|
||||
|
||||
StatusVCControls.usBtnActivateGear := SHL (BOOL_TO_USINT ((gMachine.enMode <> enMACH_JOG ) OR bDevelEnalbeGear), VC_HIDE_BITPOS);
|
||||
StatusVCControls.usBtnDisableGear := SHL (BOOL_TO_USINT ((gMachine.enMode <> enMACH_JOG ) OR NOT bDevelEnalbeGear), VC_HIDE_BITPOS);
|
||||
|
||||
//Home
|
||||
lAxisShaftMaster.bHome := bHome;
|
||||
IF gMachine.bMachineON OR (gMachine.enMode = enMACH_JOG) OR bHome THEN
|
||||
IF ( enStepHomeShaft1 = enHomeIdle) AND NOT lAxisShaft1.DriveStatus.bHomingOk THEN
|
||||
enStepHomeShaft1 := enHomeOffsetPerm;
|
||||
END_IF
|
||||
IF ( enStepHomeShaft2 = enHomeIdle) AND NOT lAxisShaft2.DriveStatus.bHomingOk THEN
|
||||
enStepHomeShaft2 := enHomeOffsetPerm;
|
||||
END_IF
|
||||
IF ( enStepHomeShaft3 = enHomeIdle) AND NOT lAxisShaft3.DriveStatus.bHomingOk THEN
|
||||
enStepHomeShaft3 := enHomeOffsetPerm;
|
||||
END_IF
|
||||
IF ( enStepHomeShaft4 = enHomeIdle) AND NOT lAxisShaft4.DriveStatus.bHomingOk THEN
|
||||
enStepHomeShaft4 := enHomeOffsetPerm;
|
||||
END_IF
|
||||
END_IF
|
||||
bHome :=FALSE;
|
||||
|
||||
HomeAxis (ADR (lAxisShaft1),
|
||||
ADR (grAxisABSOffShaft[1]),
|
||||
rHOMEPOS,
|
||||
ADR (enStepHomeShaft1));
|
||||
|
||||
HomeAxis (ADR (lAxisShaft2),
|
||||
ADR (grAxisABSOffShaft[2]),
|
||||
rHOMEPOS,
|
||||
ADR (enStepHomeShaft2));
|
||||
|
||||
HomeAxis (ADR (lAxisShaft3),
|
||||
ADR (grAxisABSOffShaft[3]),
|
||||
rHOMEPOS,
|
||||
ADR (enStepHomeShaft3));
|
||||
|
||||
HomeAxis (ADR (lAxisShaft4),
|
||||
ADR (grAxisABSOffShaft[4]),
|
||||
rHOMEPOS,
|
||||
ADR (enStepHomeShaft4));
|
||||
|
||||
|
||||
//Jog Mode
|
||||
//==========================================================================================
|
||||
IF gMachine.enMode = enMACH_JOG THEN
|
||||
//Uncritical Movements
|
||||
// IF EDGEPOS (gManualCommands.bToggleWireClutch) THEN
|
||||
// END_IF
|
||||
lAxisShaft1.Move.bJogNeg := ManualCommands.bJogNegShaft1 AND MoveConditions.bEnableNegShaft1;
|
||||
lAxisShaft1.Move.bJogPos := ManualCommands.bJogPosShaft1 AND MoveConditions.bEnablePosShaft1;
|
||||
lAxisShaft2.Move.bJogNeg := ManualCommands.bJogNegShaft2 AND MoveConditions.bEnableNegShaft2;
|
||||
lAxisShaft2.Move.bJogPos := ManualCommands.bJogPosShaft2 AND MoveConditions.bEnablePosShaft2;
|
||||
lAxisShaft3.Move.bJogNeg := ManualCommands.bJogNegShaft3 AND MoveConditions.bEnableNegShaft3;
|
||||
lAxisShaft3.Move.bJogPos := ManualCommands.bJogPosShaft3 AND MoveConditions.bEnablePosShaft3;
|
||||
lAxisShaft4.Move.bJogNeg := ManualCommands.bJogNegShaft4 AND MoveConditions.bEnableNegShaft4;
|
||||
lAxisShaft4.Move.bJogPos := ManualCommands.bJogPosShaft4 AND MoveConditions.bEnablePosShaft4;
|
||||
lAxisShaftMaster.Move.bJogNeg := ManualCommands.bJogNegShaftMaster AND MoveConditions.bEnableNegShaftMaster;
|
||||
lAxisShaftMaster.Move.bJogPos := ManualCommands.bJogPosShaftMaster AND MoveConditions.bEnablePosShaftMaster;
|
||||
IF ManualCommands.bActivateGear THEN
|
||||
bDevelEnalbeGear := TRUE;
|
||||
END_IF
|
||||
IF ManualCommands.bDisableGear THEN
|
||||
bDevelEnalbeGear := FALSE;
|
||||
END_IF
|
||||
|
||||
//FixMe Homeswitch
|
||||
IF 1 = 1 AND (genAccessLevel = 0) THEN
|
||||
IF EDGEPOS (ManualCommands.bAdjustHomeShaft1) THEN
|
||||
|
||||
END_IF
|
||||
|
||||
END_IF
|
||||
|
||||
|
||||
|
||||
//(Semi) - Automaticmode
|
||||
//==========================================================================================
|
||||
ELSIF gMachine.enMode = enMACH_MANUAL THEN
|
||||
bEnableNextStep := EDGEPOS (ManualCommands.bNextManStep);
|
||||
//Wirefeed
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// CASE enStepWirefeed OF
|
||||
//Init
|
||||
//---------------------------
|
||||
// enWireStep_INIT:
|
||||
// gbOuWireDistirbutorOpen := FALSE;
|
||||
// IF bHomePosWireprocess AND bEnableNextStep THEN
|
||||
// enStepWirefeed := enWireStep_FEED;
|
||||
// enStateWire := enWire_FEEDING;
|
||||
// lAxisWire1.Move.bAdditive := TRUE;
|
||||
// END_IF
|
||||
|
||||
// END_CASE;
|
||||
END_IF;
|
||||
|
||||
gStatusVCControls.usBtnErrorReset := (lPS.Error.uiID = 0) AND
|
||||
(lAxisShaftMaster.Error.uiID = 0) AND
|
||||
(lAxisShaft1.Error.uiID = 0) AND
|
||||
(lAxisShaft2.Error.uiID = 0) AND
|
||||
(lAxisShaft3.Error.uiID = 0) AND
|
||||
(lAxisShaft4.Error.uiID = 0);
|
||||
IF EDGEPOS (gVCCommands.bErrorReset) THEN
|
||||
lPS.Error.bAcknowledge := (lPS.Error.uiID > 0);
|
||||
lAxisShaftMaster.Error.bAcknowledge := (lAxisShaftMaster.Error.uiID > 0);
|
||||
lAxisShaft1.Error.bAcknowledge := (lAxisShaft1.Error.uiID > 0);
|
||||
lAxisShaft2.Error.bAcknowledge := (lAxisShaft2.Error.uiID > 0);
|
||||
lAxisShaft3.Error.bAcknowledge := (lAxisShaft3.Error.uiID > 0);
|
||||
lAxisShaft4.Error.bAcknowledge := (lAxisShaft4.Error.uiID > 0);
|
||||
usErrorReset := 0;
|
||||
END_IF
|
||||
END_PROGRAM
|
||||
121
Logical/Axises/PressCtrl/PressCtrl.typ
Normal file
121
Logical/Axises/PressCtrl/PressCtrl.typ
Normal file
@@ -0,0 +1,121 @@
|
||||
(**)
|
||||
|
||||
TYPE
|
||||
typ_enStepWirefeed :
|
||||
( (*Schritte Drahtzuf<75>hrung / Verteiler*)
|
||||
enWireStep_INIT,
|
||||
enWireStep_FEED, (*Draht zuf<75>hren*)
|
||||
enWireStep_BEND_END2, (*Drahtende 2 biegen*)
|
||||
enWireStep_WAIT_BENT_END2, (*warten bis Drahtende 2 gebogen*)
|
||||
enWireStep_WATT_BENDER2_OPEN, (*Drahtende 2 freigegeben*)
|
||||
enWireStep_CUT, (*Draht schneiden*)
|
||||
enWireStep_HOME_CUTTER, (*Cutter zur<75>ck in GS*)
|
||||
enWireStep_BEND_END1, (*Drahtende 1 biegen*)
|
||||
enWireStep_WAIT_BENT_END1, (*warten bis Drahtende 1 gebogen*)
|
||||
enWireStep_WATT_BENDER1_OPEN, (*Drahtende 1 freigeben*)
|
||||
enWireStep_CHANGE_LANE, (*Spurwechsel*)
|
||||
enWireStep_WAIT_WIRE_PICKED, (*Warten bis Draht gegriffen ist*)
|
||||
enWireStep_OPEN_WIREDISTRIBUTOR, (*Drahtverteiler <20>ffnen*)
|
||||
enWireStep_WAIT_WIRE_AWAY, (*Warten bis Draht abgeholt ist*)
|
||||
enWireStep_RETURN_LANE1, (*Auf Spur 1 (ggf.) zur<75>ck*)
|
||||
enWireStep_WAIT_BENDERS_HOMED, (*Warten bis Bieger zur<75>ckgestelt sind*)
|
||||
enWireStep_CLOSE_WIREDISTRIBUTOR, (*Drahtverteiler schlie<69>en*)
|
||||
enWireStep_STOP
|
||||
);
|
||||
typ_enStepWireHandling :
|
||||
( (*Schritte Drahthandlingeinheit*)
|
||||
enWireHandlingStep_INIT,
|
||||
enWireHandlingStep_WAIT_WIRE, (*Auf Draht warten*)
|
||||
enWireHandlingStep_INSERT_HDL, (*Handling in Drahtverteiler einfahren*)
|
||||
enWireHandlingStep_PRESTRETCH, (*Greifer vorspannen*)
|
||||
enWireHandlingStep_PICK_WIRE, (*Draht greifen*)
|
||||
enWireHandlingStep_WAIT_OPEN_D, (*Warten bis Drahtverteiler ge<67>ffnet*)
|
||||
enWireHandlingStep_RETURN_HDL, (*Handling zur<75>ck fahren*)
|
||||
enWireHandlingStep_LIFT_WIRE, (*Draht auffahren*)
|
||||
enWireHandlingStep_WAIT_2ndWIRE, (*Synchronisieren mit Draht 2 bzw. 1*)
|
||||
enWireHandlingStep_HEAT_WIRE, (*Draht vorheizen*)
|
||||
enWireHandlingStep_INSERT_WIRE, (*Draht in Lamelle Einfahren*)
|
||||
enWireHandlingStep_COOL_WIRE, (*Draht abk<62>hlen lassen*)
|
||||
enWireHandlingStep_OPEN_GRIPPER, (*Draht freigeben*)
|
||||
enWireHandlingStep_RETURN_HDL2, (*Handling zur<75>ckfahren*)
|
||||
enWireHandlingStep_SINK_HDL (*Handling absenken*)
|
||||
);
|
||||
typ_enWireState :
|
||||
( (*Zustand Draht in Verteiler*)
|
||||
enWire_NOWIRE, (*Kein Draht im Verteiler*)
|
||||
enWire_FEEDING, (*Drahtzufuhr ist gestartet*)
|
||||
enWire_FEEDED, (*Draht ist zugef<65>hrt*)
|
||||
enWire_END2_BENT1, (*Drahtende 2 ist gebogen f<>r Handling 1*)
|
||||
enWire_END2_BENT2, (*Drahtende 2 ist gebogen f<>r Handling 2*)
|
||||
enWire_CUT1, (*Draht ist Geschnitten f<>r Handling 1*)
|
||||
enWire_CUT2, (*Draht ist Geschnitten f<>r Handling 2*)
|
||||
enWire_BENT1, (*Draht ist fertig gebogen f<>r Handling 1*)
|
||||
enWire_BENT2 (*Draht ist fertig gebogen f<>r Handling 2*)
|
||||
);
|
||||
typ_enStepBelt :
|
||||
( (*Absolutoffset einstellen*)
|
||||
enBeltStep_INIT,
|
||||
enBeltStep_WAIT_WELDED,
|
||||
enBeltStep_WAIT_ALL_RETURNED,
|
||||
enBeltStep_EJECT_FRAME,
|
||||
enBeltStep_RETURN_TO_WELDPOS
|
||||
);
|
||||
typ_enHome :
|
||||
(
|
||||
enHomeIdle,
|
||||
enHomeOffsetPerm, (*Mit permanet gesp. Offset*)
|
||||
enHomeOffsetPermDone, (*Mit permanet gesp. Offset*)
|
||||
enHomeOffset0, (*Mit Offset 0 referenzieren*)
|
||||
enHomeOffset0Done, (*Mit Offset 0 referenzieren*)
|
||||
enHomeStorePos (*Aktuelle Pos als Offset (zum Allg Offset) speichern*)
|
||||
);
|
||||
typStatusPressVCControls : STRUCT (*Controlbytes f<>r Visu*)
|
||||
usJogNegShaft1 : USINT;
|
||||
usJogPosShaft1 : USINT;
|
||||
usJogNegShaft2 : USINT;
|
||||
usJogPosShaft2 : USINT;
|
||||
usJogNegShaft3 : USINT;
|
||||
usJogPosShaft3 : USINT;
|
||||
usJogNegShaft4 : USINT;
|
||||
usJogPosShaft4 : USINT;
|
||||
usJogNegShaftMaster : USINT;
|
||||
usJogPosShaftMaster : USINT;
|
||||
usAdjustHomeShaft1 : USINT;
|
||||
usAdjustHomeShaft2 : USINT;
|
||||
usAdjustHomeShaft3 : USINT;
|
||||
usAdjustHomeShaft4 : USINT;
|
||||
usBtnActivateGear : USINT;
|
||||
usBtnDisableGear : USINT;
|
||||
END_STRUCT;
|
||||
typManualCommnands : STRUCT
|
||||
bNextManStep : BOOL; (*N<>chster Schritt (Semi) Automatic*)
|
||||
bJogNegShaft1 : BOOL;
|
||||
bJogPosShaft1 : BOOL;
|
||||
bJogNegShaft2 : BOOL;
|
||||
bJogPosShaft2 : BOOL;
|
||||
bJogNegShaft3 : BOOL;
|
||||
bJogPosShaft3 : BOOL;
|
||||
bJogNegShaft4 : BOOL;
|
||||
bJogPosShaft4 : BOOL;
|
||||
bAdjustHomeShaft1 : BOOL;
|
||||
bAdjustHomeShaft2 : BOOL;
|
||||
bAdjustHomeShaft3 : BOOL;
|
||||
bAdjustHomeShaft4 : BOOL;
|
||||
bJogNegShaftMaster : BOOL;
|
||||
bJogPosShaftMaster : BOOL;
|
||||
bActivateGear : BOOL;
|
||||
bDisableGear : BOOL;
|
||||
END_STRUCT;
|
||||
typMoveConditions : STRUCT (*Bewegungsfreigaben*)
|
||||
bEnableNegShaft1 : BOOL;
|
||||
bEnablePosShaft1 : BOOL;
|
||||
bEnableNegShaft2 : BOOL;
|
||||
bEnablePosShaft2 : BOOL;
|
||||
bEnableNegShaft3 : BOOL;
|
||||
bEnablePosShaft3 : BOOL;
|
||||
bEnableNegShaft4 : BOOL;
|
||||
bEnablePosShaft4 : BOOL;
|
||||
bEnableNegShaftMaster : BOOL;
|
||||
bEnablePosShaftMaster : BOOL;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
43
Logical/Axises/PressCtrl/PressCtrl.var
Normal file
43
Logical/Axises/PressCtrl/PressCtrl.var
Normal file
@@ -0,0 +1,43 @@
|
||||
(********************************************************************
|
||||
* 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 *)
|
||||
END_VAR
|
||||
(*//Local Vars*)
|
||||
VAR
|
||||
bDevelEnalbeGear : BOOL := FALSE;
|
||||
bHome : BOOL := FALSE;
|
||||
bStop : BOOL;
|
||||
bHalt : BOOL;
|
||||
bEnableNextStep : BOOL; (*N<>chsten Schritt (Semiautomatik) Freigeben*)
|
||||
usErrorReset : USINT;
|
||||
rAveragePos : REAL;
|
||||
rPressPosMin : REAL := 0.0; (*Presse Oben Pos Min*)
|
||||
rPressPosMax : REAL := 6000.0; (*Press Unten Pos Max*)
|
||||
StatusVCControls : typStatusPressVCControls;
|
||||
ManualCommands : typManualCommnands; (*Kommandos Betriebsart Hand*)
|
||||
MoveConditions : typMoveConditions;
|
||||
enStepHomeShaft1 : typ_enHome;
|
||||
enStepHomeShaft2 : typ_enHome;
|
||||
enStepHomeShaft3 : typ_enHome;
|
||||
enStepHomeShaft4 : typ_enHome;
|
||||
END_VAR
|
||||
(*//Positions Bender*)
|
||||
VAR CONSTANT
|
||||
rHOMEPOS : REAL := 0.0;
|
||||
END_VAR
|
||||
7
Logical/Axises/acp10etxde/Ett.dob
Normal file
7
Logical/Axises/acp10etxde/Ett.dob
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.22 SP04?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>acp10etxde.ett</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
3843
Logical/Axises/acp10etxde/acp10etxde.ett
Normal file
3843
Logical/Axises/acp10etxde/acp10etxde.ett
Normal file
File diff suppressed because it is too large
Load Diff
8
Logical/Common/GlobalCommon.typ
Normal file
8
Logical/Common/GlobalCommon.typ
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
TYPE
|
||||
typAlarm : STRUCT
|
||||
Alarm : ARRAY[0..127]OF BOOL;
|
||||
Ack : ARRAY[0..127]OF BOOL;
|
||||
Bypass : ARRAY[0..127]OF BOOL;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
24
Logical/Common/GlobalComon.var
Normal file
24
Logical/Common/GlobalComon.var
Normal file
@@ -0,0 +1,24 @@
|
||||
VAR
|
||||
bBlink0_1 : BOOL;
|
||||
bBlink0_5 : BOOL;
|
||||
bBlink1_0 : BOOL;
|
||||
bBlink2_0 : BOOL;
|
||||
bBlink5_0 : BOOL;
|
||||
gdtCurrentTime : DATE_AND_TIME; (*Current Date and Time*)
|
||||
gDTstrucCurrentTime : DTStructure := (0); (*Current Date and Time as DTStructure*)
|
||||
gsCurrentTime : STRING[25] := ''; (*Current Date and Time as String*)
|
||||
gTCurrentTime : TIME := T#0ms; (*Current Time*)
|
||||
END_VAR
|
||||
VAR CONSTANT
|
||||
gAInNull : INT := 0; (*O FOR Analog Input*)
|
||||
gTrue : BOOL := TRUE; (*Konstant TRUE*)
|
||||
gFalse : BOOL := FALSE; (*Konstant False*)
|
||||
gInNull : BOOL := FALSE; (*FALSE FOR Input *)
|
||||
END_VAR
|
||||
VAR
|
||||
gOuNull : BOOL; (*DUMMY for Output*)
|
||||
END_VAR
|
||||
VAR CONSTANT
|
||||
iAIVoltageOverflow : INT := 16#7FFF; (* Analog Input Voltage Mode,Overflow *)
|
||||
iAIVoltageUnderflow : INT := -32767; (* Analog Input Voltage Underflow *)
|
||||
END_VAR
|
||||
10
Logical/Common/Package.pkg
Normal file
10
Logical/Common/Package.pkg
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File">GlobalCommon.typ</Object>
|
||||
<Object Type="File">GlobalComon.var</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Current Date_And_Time / DT Struct">get_dt</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Blinker 0,1 -0,5s">blinker</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
9
Logical/Common/blinker/IEC.prg
Normal file
9
Logical/Common/blinker/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.22 SP04?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Local variables" Private="true">blinker.var</File>
|
||||
<File Description="Initialization code">blinkerInit.ab</File>
|
||||
<File Description="Cyclic code">blinkerCyclic.ab</File>
|
||||
</Files>
|
||||
</Program>
|
||||
13
Logical/Common/blinker/blinker.var
Normal file
13
Logical/Common/blinker/blinker.var
Normal file
@@ -0,0 +1,13 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- kA
|
||||
********************************************************************
|
||||
* Program: blinker
|
||||
* File: blinker.var
|
||||
* Author: michi
|
||||
* Created: November 23, 2009
|
||||
********************************************************************
|
||||
* Local variables of program blinker
|
||||
********************************************************************)
|
||||
VAR
|
||||
iCount : USINT;
|
||||
END_VAR
|
||||
30
Logical/Common/blinker/blinkerCyclic.ab
Normal file
30
Logical/Common/blinker/blinkerCyclic.ab
Normal file
@@ -0,0 +1,30 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- kA
|
||||
********************************************************************
|
||||
* Program: blinker
|
||||
* File: blinkerCyclic.ab
|
||||
* Author: michi
|
||||
* Created: November 23, 2009
|
||||
********************************************************************
|
||||
* Implementation of program blinker
|
||||
********************************************************************)
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
(* cyclic program *)
|
||||
;Has to be taskclass 10ms
|
||||
bBlink0_1 = not bBlink0_1
|
||||
inc (iCount)
|
||||
if ((iCount mod 5) = 0) then
|
||||
bBlink0_5 = not bBlink0_5
|
||||
endif
|
||||
if ((iCount mod 10) = 0) then
|
||||
bBlink1_0 = not bBlink1_0
|
||||
endif
|
||||
if ((iCount mod 20) = 0) then
|
||||
bBlink2_0 = not bBlink2_0
|
||||
endif
|
||||
if ((iCount mod 50) = 0) then
|
||||
bBlink5_0 = not bBlink5_0
|
||||
iCount = 0
|
||||
endif
|
||||
END_PROGRAM
|
||||
16
Logical/Common/blinker/blinkerInit.ab
Normal file
16
Logical/Common/blinker/blinkerInit.ab
Normal file
@@ -0,0 +1,16 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- kA
|
||||
********************************************************************
|
||||
* Program: blinker
|
||||
* File: blinkerInit.ab
|
||||
* Author: michi
|
||||
* Created: November 23, 2009
|
||||
********************************************************************
|
||||
* Implementation of program blinker
|
||||
********************************************************************)
|
||||
|
||||
PROGRAM _INIT
|
||||
iCount = 0
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
9
Logical/Common/get_dt/IEC.prg
Normal file
9
Logical/Common/get_dt/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File>get_dtCyclic.ab</File>
|
||||
<File Private="true">get_dt.var</File>
|
||||
<File>get_dtInit.ab</File>
|
||||
</Files>
|
||||
</Program>
|
||||
6
Logical/Common/get_dt/get_dt.var
Normal file
6
Logical/Common/get_dt/get_dt.var
Normal file
@@ -0,0 +1,6 @@
|
||||
VAR
|
||||
sTemp : STRING[10] := '';
|
||||
lDTStructureGetTime : DTStructureGetTime := (0);
|
||||
lDTGetTime : DTGetTime := (0);
|
||||
lTimeStructure : TIMEStructure := (0);
|
||||
END_VAR
|
||||
44
Logical/Common/get_dt/get_dtCyclic.ab
Normal file
44
Logical/Common/get_dt/get_dtCyclic.ab
Normal file
@@ -0,0 +1,44 @@
|
||||
PROGRAM _CYCLIC
|
||||
(* cyclic program *)
|
||||
|
||||
lDTGetTime.enable = true
|
||||
lDTGetTime FUB DTGetTime()
|
||||
gdtCurrentTime = lDTGetTime.DT1
|
||||
|
||||
lDTStructureGetTime.enable = true
|
||||
lDTStructureGetTime FUB DTStructureGetTime ()
|
||||
lDTStructureGetTime.pDTStructure = adr (gDTstrucCurrentTime)
|
||||
|
||||
ascDTStructure (adr (gDTstrucCurrentTime), adr (gsCurrentTime), 25)
|
||||
strcpy (adr (gsCurrentTime), "")
|
||||
itoa (gDTstrucCurrentTime.year, adr (sTemp))
|
||||
strcat (adr (gsCurrentTime), adr (sTemp))
|
||||
strcat (adr (gsCurrentTime), "/")
|
||||
itoa (gDTstrucCurrentTime.month, adr (sTemp))
|
||||
strcat (adr (gsCurrentTime), adr (sTemp))
|
||||
strcat (adr (gsCurrentTime), "/")
|
||||
itoa (gDTstrucCurrentTime.day, adr (sTemp))
|
||||
strcat (adr (gsCurrentTime), adr (sTemp))
|
||||
strcat (adr (gsCurrentTime), " ")
|
||||
itoa (gDTstrucCurrentTime.hour, adr (sTemp))
|
||||
strcat (adr (gsCurrentTime), adr (sTemp))
|
||||
strcat (adr (gsCurrentTime), ":")
|
||||
itoa (gDTstrucCurrentTime.minute, adr (sTemp))
|
||||
strcat (adr (gsCurrentTime), adr (sTemp))
|
||||
strcat (adr (gsCurrentTime), ":")
|
||||
itoa (gDTstrucCurrentTime.second, adr (sTemp))
|
||||
strcat (adr (gsCurrentTime), adr (sTemp))
|
||||
strcat (adr (gsCurrentTime), ".")
|
||||
itoa (gDTstrucCurrentTime.millisec, adr (sTemp))
|
||||
strcat (adr (gsCurrentTime), adr (sTemp))
|
||||
|
||||
lTimeStructure.day = gDTstrucCurrentTime.day
|
||||
lTimeStructure.hour = gDTstrucCurrentTime.hour
|
||||
lTimeStructure.minute = gDTstrucCurrentTime.minute
|
||||
lTimeStructure.second = gDTstrucCurrentTime.second
|
||||
lTimeStructure.millisec = gDTstrucCurrentTime.millisec
|
||||
lTimeStructure.microsec = gDTstrucCurrentTime.microsec
|
||||
gTCurrentTime = TIMEStructure_TO_TIME (adr (lTimeStructure))
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
4
Logical/Common/get_dt/get_dtInit.ab
Normal file
4
Logical/Common/get_dt/get_dtInit.ab
Normal file
@@ -0,0 +1,4 @@
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
END_PROGRAM
|
||||
|
||||
13
Logical/Communication/CommGlobal.var
Normal file
13
Logical/Communication/CommGlobal.var
Normal file
@@ -0,0 +1,13 @@
|
||||
(*Inputs / Outputs*)
|
||||
(*================================================================================================================*)
|
||||
(*Sick UE410*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gUE410_MU_MED : typUE410_MU_MED; (*Sick Sicherheits Modul - ST1 Eingangsdaten*)
|
||||
gUE410_MU_MQD : typUE410_MU_MQD; (*Sick Sicherheits Modul - ST1 Ausgangsdaten*)
|
||||
gUE410_ST2_8DI_MED : typUE410_8DI_MED; (*Sich Sicherheits Modul - ST2 Eingangsdaten*)
|
||||
gUE410_ST2_8DI_MQD : typUE410_8DI_MQD; (*Sich Sicherheits Modul - ST2 Ausgangsdaten*)
|
||||
gUE410_BAS1 : typUE410_BAS1; (*Sick Sicherheits Modul - Sammelfehler*)
|
||||
gusUE410_BPF : USINT; (*Sick Sicherheits Modul - Backplane Fehler*)
|
||||
guiUE410_CRC : UINT; (*Sick Sicherheits Modul - CRC der Config*)
|
||||
END_VAR
|
||||
9
Logical/Communication/Package.pkg
Normal file
9
Logical/Communication/Package.pkg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File" Description="Global variables / IOs">CommGlobal.var</Object>
|
||||
<Object Type="File">UE410Global.typ</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Sick UE410 Safety Controller">UE410</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
43
Logical/Communication/UE410/ASCtoUDINT.st
Normal file
43
Logical/Communication/UE410/ASCtoUDINT.st
Normal file
@@ -0,0 +1,43 @@
|
||||
FUNCTION ASCtoUDINT
|
||||
ASCtoUDINT := 0;
|
||||
udNextAdr := udInNextAdr;
|
||||
FOR usi:=0 TO 7 BY 1 DO
|
||||
memcpy (ADR (usChar), udNextAdr + usi, 1);
|
||||
CASE usChar OF
|
||||
48:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 0;
|
||||
49:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 1;
|
||||
50:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 2;
|
||||
51:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 3;
|
||||
52:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 4;
|
||||
53:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 5;
|
||||
54:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 6;
|
||||
55:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 7;
|
||||
56:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 8;
|
||||
57:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 9;
|
||||
65:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 10;
|
||||
66:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 11;
|
||||
67:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 12;
|
||||
68:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 13;
|
||||
69:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 14;
|
||||
70:
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 15;
|
||||
ELSE
|
||||
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 16#f;
|
||||
END_CASE
|
||||
END_FOR
|
||||
END_FUNCTION
|
||||
12
Logical/Communication/UE410/IEC.prg
Normal file
12
Logical/Communication/UE410/IEC.prg
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.23 SP05?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Private="true">UE410.var</File>
|
||||
<File Description="Local data types" Private="true">UE410.typ</File>
|
||||
<File>UE410Cyclic.st</File>
|
||||
<File>UE410Init.st</File>
|
||||
<File Private="true">UE410.fun</File>
|
||||
<File Description="Convert ASCII Value to UDINT">ASCtoUDINT.st</File>
|
||||
</Files>
|
||||
</Program>
|
||||
11
Logical/Communication/UE410/UE410.fun
Normal file
11
Logical/Communication/UE410/UE410.fun
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
FUNCTION ASCtoUDINT : UDINT (*Convert ASCII Value to UDINT*)
|
||||
VAR_INPUT
|
||||
udInNextAdr : UDINT; (*Next Pos in ByteStream (No CHECK)*)
|
||||
END_VAR
|
||||
VAR
|
||||
udNextAdr : UDINT;
|
||||
usi : USINT;
|
||||
usChar : USINT;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
12
Logical/Communication/UE410/UE410.typ
Normal file
12
Logical/Communication/UE410/UE410.typ
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
TYPE
|
||||
Steps_enum :
|
||||
( (*Steps of RFID Statemachine*)
|
||||
enSTEP_INIT,
|
||||
enSTEP_OPEN,
|
||||
enSTEP_OPENED,
|
||||
enSTEP_CONNECTED,
|
||||
enSTEP_CLOSE,
|
||||
enSTEP_CLOSED
|
||||
);
|
||||
END_TYPE
|
||||
33
Logical/Communication/UE410/UE410.var
Normal file
33
Logical/Communication/UE410/UE410.var
Normal file
@@ -0,0 +1,33 @@
|
||||
(*FUB Instances*)
|
||||
VAR
|
||||
FUB_TcpOpen : TcpOpen;
|
||||
FUB_TcpClient : TcpClient;
|
||||
FUB_TcpClose : TcpClose;
|
||||
FUB_TcpRecv : TcpRecv;
|
||||
FUB_TcpSend : TcpSend;
|
||||
END_VAR
|
||||
(*//Local VArs*)
|
||||
VAR
|
||||
bAllowData : BOOL;
|
||||
bSend : BOOL;
|
||||
usi : USINT := 0;
|
||||
usTemp : USINT := 0;
|
||||
uiSequence : UINT;
|
||||
uiOffset : UINT;
|
||||
udClosePortID : UDINT;
|
||||
udClientID : UDINT;
|
||||
udSocketID : UDINT;
|
||||
strServerIP : STRING[20];
|
||||
enState : Steps_enum;
|
||||
RequestTelegram : typUE410_REQUEST;
|
||||
ResponseTelegram : typUE410_RESPONSE;
|
||||
ResponseTelegramSave : typUE410_RESPONSE;
|
||||
TON_Clienttimeout : TON;
|
||||
TON_Reconnect : TON;
|
||||
TON_RequestData : TON;
|
||||
UE41Alarms : typAlarm := (0); (*UE41 Alarms*)
|
||||
END_VAR
|
||||
(*//Constants*)
|
||||
VAR CONSTANT
|
||||
uiCRC : UINT := 1234; (*Config CRC*)
|
||||
END_VAR
|
||||
220
Logical/Communication/UE410/UE410Cyclic.st
Normal file
220
Logical/Communication/UE410/UE410Cyclic.st
Normal file
@@ -0,0 +1,220 @@
|
||||
PROGRAM _CYCLIC
|
||||
|
||||
|
||||
TON_Reconnect.IN := (enState = enSTEP_CLOSED);
|
||||
TON_Reconnect.PT := t#1s;
|
||||
TON_Reconnect ();
|
||||
|
||||
TON_RequestData.IN := (enState = enSTEP_CONNECTED) AND NOT bSend;
|
||||
TON_RequestData.PT := t#200ms;
|
||||
TON_RequestData ();
|
||||
|
||||
IF TON_RequestData.Q THEN
|
||||
bSend := TRUE;
|
||||
END_IF
|
||||
|
||||
IF TON_Reconnect.Q OR (enState = enSTEP_INIT) THEN
|
||||
enState := enSTEP_OPEN;
|
||||
END_IF
|
||||
|
||||
//Open listener Socket
|
||||
FUB_TcpOpen.enable := (enState = enSTEP_OPEN);
|
||||
FUB_TcpOpen ();
|
||||
|
||||
|
||||
IF FUB_TcpOpen.status = 0 THEN
|
||||
udClosePortID := FUB_TcpOpen.ident;
|
||||
udSocketID := FUB_TcpOpen.ident;
|
||||
enState := enSTEP_OPENED;
|
||||
ELSIF FUB_TcpOpen.status = tcpERR_ALREADY_EXIST THEN
|
||||
udClosePortID := FUB_TcpOpen.ident;
|
||||
enState := enSTEP_CLOSE;
|
||||
ELSIF FUB_TcpOpen.status = tcpERR_NOMORE_IDENTS THEN
|
||||
udClosePortID := 1; //Close Port 1
|
||||
enState := enSTEP_CLOSE;
|
||||
END_IF
|
||||
|
||||
|
||||
//connect to server
|
||||
FUB_TcpClient.enable := (enState = enSTEP_OPENED);
|
||||
FUB_TcpClient.ident := udSocketID;
|
||||
FUB_TcpClient ();
|
||||
|
||||
TON_Clienttimeout.IN := (FUB_TcpClient.status = ERR_FUB_BUSY);
|
||||
TON_Clienttimeout.PT := t#4s;
|
||||
TON_Clienttimeout ();
|
||||
|
||||
IF FUB_TcpClient.status = ERR_OK THEN
|
||||
//New Connection on Socket
|
||||
enState := enSTEP_CONNECTED;
|
||||
udClientID := udSocketID;
|
||||
ELSIF (FUB_TcpClient.status = tcpERR_INVALID) OR
|
||||
(FUB_TcpClient.status = tcpERR_ALREADY_CONNECTED) OR
|
||||
(FUB_TcpClient.status = tcpERR_SYSTEM) OR
|
||||
TON_Clienttimeout.Q THEN
|
||||
udClosePortID := udSocketID;
|
||||
enState := enSTEP_CLOSE;
|
||||
END_IF
|
||||
|
||||
|
||||
//Close listener Socket //Or Reset All
|
||||
FUB_TcpClose.enable := (enState = enSTEP_CLOSE);
|
||||
FUB_TcpClose.ident := udClosePortID;
|
||||
FUB_TcpClose.how := (tcpSHUT_RD OR tcpSHUT_WR);
|
||||
FUB_TcpClose ();
|
||||
|
||||
IF (FUB_TcpClose.status = 0) OR
|
||||
(FUB_TcpClose.status = tcpERR_INVALID_IDENT) THEN
|
||||
enState := enSTEP_CLOSED;
|
||||
END_IF
|
||||
|
||||
|
||||
//Receive Data an Client Connections
|
||||
FUB_TcpRecv.enable := (enState = enSTEP_CONNECTED);
|
||||
FUB_TcpRecv.ident := udClientID;
|
||||
FUB_TcpRecv.pData := ADR (ResponseTelegram);
|
||||
FUB_TcpRecv.datamax := 128;
|
||||
FUB_TcpRecv.flags := 0;
|
||||
FUB_TcpRecv ();
|
||||
|
||||
|
||||
IF (FUB_TcpRecv.recvlen > 0) AND (FUB_TcpRecv.status = 0) THEN
|
||||
memcpy (ADR (ResponseTelegramSave), ADR (ResponseTelegram), SIZEOF (ResponseTelegram));
|
||||
IF (ResponseTelegram.uiSequence = H_TO_NUINT (uiSequence)) THEN
|
||||
IF (RequestTelegram.wCommand = 16#F100) AND (ResponseTelegram.wCommand = 16#1F00) THEN
|
||||
uiOffset := 0;
|
||||
IF (ResponseTelegram.wRequestDS1 > 0) THEN
|
||||
//InputData
|
||||
gUE410_MU_MED.bS3 := (ResponseTelegram.BData[0] AND 2#10000000) > 0;
|
||||
gUE410_MU_MED.bS2 := (ResponseTelegram.BData[0] AND 2#01000000) > 0;
|
||||
gUE410_MU_MED.bS1 := (ResponseTelegram.BData[0] AND 2#00100000) > 0;
|
||||
gUE410_MU_MED.bEN := (ResponseTelegram.BData[0] AND 2#00010000) > 0;
|
||||
gUE410_MU_MED.bI4 := (ResponseTelegram.BData[0] AND 2#00001000) > 0;
|
||||
gUE410_MU_MED.bI3 := (ResponseTelegram.BData[0] AND 2#00000100) > 0;
|
||||
gUE410_MU_MED.bI2 := (ResponseTelegram.BData[0] AND 2#00000010) > 0;
|
||||
gUE410_MU_MED.bI1 := (ResponseTelegram.BData[0] AND 2#00000001) > 0;
|
||||
gUE410_ST2_8DI_MED.bI8 := (ResponseTelegram.BData[1] AND 2#10000000) > 0;
|
||||
gUE410_ST2_8DI_MED.bI7 := (ResponseTelegram.BData[1] AND 2#01000000) > 0;
|
||||
gUE410_ST2_8DI_MED.bI6 := (ResponseTelegram.BData[1] AND 2#00100000) > 0;
|
||||
gUE410_ST2_8DI_MED.bI5 := (ResponseTelegram.BData[1] AND 2#00010000) > 0;
|
||||
gUE410_ST2_8DI_MED.bI4 := (ResponseTelegram.BData[1] AND 2#00001000) > 0;
|
||||
gUE410_ST2_8DI_MED.bI3 := (ResponseTelegram.BData[1] AND 2#00000100) > 0;
|
||||
gUE410_ST2_8DI_MED.bI2 := (ResponseTelegram.BData[1] AND 2#00000010) > 0;
|
||||
gUE410_ST2_8DI_MED.bI1 := (ResponseTelegram.BData[1] AND 2#00000001) > 0;
|
||||
uiOffset := uiOffset + N_TO_HUINT (WORD_TO_UINT (ResponseTelegram.wRequestDS1));
|
||||
END_IF
|
||||
IF (ResponseTelegram.wRequestDS2 > 0) THEN
|
||||
//Module 2 is 8DI (Fix Coded)
|
||||
gUE410_MU_MQD.bBYP := (ResponseTelegram.BData[uiOffset] AND 2#10000000) > 0;
|
||||
gUE410_MU_MQD.bMUT := (ResponseTelegram.BData[uiOffset] AND 2#01000000) > 0;
|
||||
gUE410_MU_MQD.bStRqB := (ResponseTelegram.BData[uiOffset] AND 2#00100000) > 0;
|
||||
gUE410_MU_MQD.bStRqA := (ResponseTelegram.BData[uiOffset] AND 2#00010000) > 0;
|
||||
gUE410_MU_MQD.bX4 := (ResponseTelegram.BData[uiOffset] AND 2#00001000) > 0;
|
||||
gUE410_MU_MQD.bX3 := (ResponseTelegram.BData[uiOffset] AND 2#00000100) > 0;
|
||||
gUE410_MU_MQD.bX2 := (ResponseTelegram.BData[uiOffset] AND 2#00000010) > 0;
|
||||
gUE410_MU_MQD.bX1 := (ResponseTelegram.BData[uiOffset] AND 2#00000001) > 0;
|
||||
gUE410_ST2_8DI_MQD.bQB := (ResponseTelegram.BData[uiOffset + 1] AND 2#00001000) > 0;
|
||||
gUE410_ST2_8DI_MQD.bQA := (ResponseTelegram.BData[uiOffset + 1] AND 2#00000010) > 0;
|
||||
uiOffset := uiOffset + N_TO_HUINT (WORD_TO_UINT (ResponseTelegram.wRequestDS2));
|
||||
END_IF
|
||||
IF (ResponseTelegram.wRequestDS3 > 0) THEN
|
||||
//Module 2 is 8DI (Fix Coded)
|
||||
gUE410_BAS1.bIF := (ResponseTelegram.BData[uiOffset] AND 2#10000000) > 0;
|
||||
gUE410_BAS1.bQS := (ResponseTelegram.BData[uiOffset] AND 2#01000000) > 0;
|
||||
gUE410_BAS1.bAF := (ResponseTelegram.BData[uiOffset] AND 2#00100000) > 0;
|
||||
gUE410_BAS1.bZF := (ResponseTelegram.BData[uiOffset] AND 2#00010000) > 0;
|
||||
gUE410_BAS1.bRDO := (ResponseTelegram.BData[uiOffset] AND 2#00001000) > 0;
|
||||
gUE410_BAS1.bFM := (ResponseTelegram.BData[uiOffset] AND 2#00000100) > 0;
|
||||
gUE410_BAS1.bX12active := (ResponseTelegram.BData[uiOffset] AND 2#00000010) > 0;
|
||||
gUE410_BAS1.bX34active := (ResponseTelegram.BData[uiOffset] AND 2#00000001) > 0;
|
||||
gusUE410_BPF := BYTE_TO_USINT (ResponseTelegram.BData[uiOffset + 1]);
|
||||
guiUE410_CRC := SHL (BYTE_TO_UINT (ResponseTelegram.BData[uiOffset + 3]), 8) +
|
||||
BYTE_TO_UINT (ResponseTelegram.BData[uiOffset + 2]);
|
||||
IF guiUE410_CRC <> uiCRC THEN
|
||||
UE41Alarms.Alarm[3] := 1;
|
||||
END_IF
|
||||
uiOffset := uiOffset + N_TO_HUINT (WORD_TO_UINT (ResponseTelegram.wRequestDS3));
|
||||
END_IF
|
||||
ELSE
|
||||
UE41Alarms.Alarm[2] := 1;
|
||||
END_IF
|
||||
ELSE
|
||||
UE41Alarms.Alarm[1] := 1;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
|
||||
//Send Data on Client Connections
|
||||
IF EDGEPOS (bSend) THEN
|
||||
uiSequence := uiSequence + 1;
|
||||
RequestTelegram.uiSequence := H_TO_NUINT (uiSequence);
|
||||
END_IF
|
||||
|
||||
IF (enState = enSTEP_CONNECTED) THEN
|
||||
FUB_TcpSend.enable := bSend;
|
||||
FUB_TcpSend.pData := ADR (RequestTelegram);
|
||||
FUB_TcpSend.datalen := 16;
|
||||
FUB_TcpSend.ident := udClientID;
|
||||
FUB_TcpSend.flags := 0;
|
||||
FUB_TcpSend ();
|
||||
|
||||
IF FUB_TcpSend.status = 0 THEN
|
||||
bSend := FALSE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
|
||||
//Alarms
|
||||
//0 Connection Closed
|
||||
IF (enState = enSTEP_CLOSED) THEN
|
||||
UE41Alarms.Alarm[0] := 1;
|
||||
ELSIF (enState = enSTEP_CONNECTED) THEN
|
||||
UE41Alarms.Alarm[0] := 0;
|
||||
END_IF
|
||||
//1 Invalid Sequence
|
||||
//2 Bad Answer
|
||||
//3 Illegal CRC
|
||||
//4 E-Stop Channel 1
|
||||
UE41Alarms.Alarm[4] := NOT gUE410_ST2_8DI_MED.bI1;
|
||||
//5 E-Stop Channel 2
|
||||
UE41Alarms.Alarm[5] := NOT gUE410_ST2_8DI_MED.bI2;
|
||||
//6 Doors Channel 1
|
||||
UE41Alarms.Alarm[6] := NOT gUE410_ST2_8DI_MED.bI3;
|
||||
//7 Doors Channel 2
|
||||
UE41Alarms.Alarm[7] := NOT gUE410_ST2_8DI_MED.bI4;
|
||||
//8 Light Curtain 1 Channel 1
|
||||
UE41Alarms.Alarm[8] := NOT gUE410_MU_MED.bI1;
|
||||
//9 Light Curtain 1 Channel 2
|
||||
UE41Alarms.Alarm[9] := NOT gUE410_MU_MED.bI2;
|
||||
//10 Light Curtain 1 Channel 1
|
||||
UE41Alarms.Alarm[10] := NOT gUE410_MU_MED.bI3;
|
||||
//11 Light Curtain 1 Channel 2
|
||||
UE41Alarms.Alarm[11] := NOT gUE410_MU_MED.bI4;
|
||||
//12 Output A Channel 1
|
||||
UE41Alarms.Alarm[12] := NOT gUE410_MU_MQD.bX1;
|
||||
//13 Output A Channel 2
|
||||
UE41Alarms.Alarm[13] := NOT gUE410_MU_MQD.bX2;
|
||||
//14 Output A Start Request
|
||||
UE41Alarms.Alarm[14] := gUE410_MU_MQD.bStRqA;
|
||||
//15 Output B Channel 1
|
||||
UE41Alarms.Alarm[15] := NOT gUE410_MU_MQD.bX3;
|
||||
//16 Output B Channel 2
|
||||
UE41Alarms.Alarm[16] := NOT gUE410_MU_MQD.bX4;
|
||||
//17 Output B Start Request
|
||||
UE41Alarms.Alarm[17] := gUE410_MU_MQD.bStRqB;
|
||||
END_PROGRAM
|
||||
|
||||
|
||||
|
||||
PROGRAM _EXIT
|
||||
FUB_TcpClose.enable := TRUE;
|
||||
FUB_TcpClose.ident := udClosePortID;
|
||||
FUB_TcpClose.how := (tcpSHUT_RD OR tcpSHUT_WR);
|
||||
WHILE TRUE DO
|
||||
FUB_TcpClose ();
|
||||
IF (FUB_TcpClose.status <> ERR_FUB_BUSY) THEN
|
||||
EXIT;
|
||||
END_IF
|
||||
END_WHILE
|
||||
|
||||
END_PROGRAM
|
||||
15
Logical/Communication/UE410/UE410Init.st
Normal file
15
Logical/Communication/UE410/UE410Init.st
Normal file
@@ -0,0 +1,15 @@
|
||||
PROGRAM _INIT
|
||||
strcpy (ADR (strServerIP), ADR ('192.168.11.74'));
|
||||
|
||||
FUB_TcpOpen.pIfAddr := ADR (gstrIPAddress);
|
||||
FUB_TcpOpen.port := 0;
|
||||
FUB_TcpOpen.options := tcpOPT_REUSEADDR;
|
||||
|
||||
FUB_TcpClient.portserv := 9100;
|
||||
FUB_TcpClient.pServer := ADR (strServerIP);
|
||||
|
||||
enState := enSTEP_INIT;
|
||||
bAllowData := TRUE;
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
91
Logical/Communication/UE410Global.typ
Normal file
91
Logical/Communication/UE410Global.typ
Normal file
@@ -0,0 +1,91 @@
|
||||
|
||||
TYPE
|
||||
typUE410_MU_MED : STRUCT (*Module 410_MU InputData*)
|
||||
bS3 : BOOL;
|
||||
bS2 : BOOL;
|
||||
bS1 : BOOL;
|
||||
bEN : BOOL;
|
||||
bI4 : BOOL;
|
||||
bI3 : BOOL;
|
||||
bI2 : BOOL;
|
||||
bI1 : BOOL;
|
||||
END_STRUCT;
|
||||
typUE410_MU_MQD : STRUCT (*Module 410_MU OutputData*)
|
||||
bBYP : BOOL; (*Bypass Active*)
|
||||
bMUT : BOOL; (*Muting Active*)
|
||||
bStRqB : BOOL; (*Start Request B*)
|
||||
bStRqA : BOOL; (*Start Request A*)
|
||||
bX4 : BOOL; (*Bit 3*)
|
||||
bX3 : BOOL; (*Bit 2*)
|
||||
bX2 : BOOL; (*Bit 1*)
|
||||
bX1 : BOOL; (*Bit 0*)
|
||||
END_STRUCT;
|
||||
typUE410_8DI_MED : STRUCT (*Module 410_8DI InputData*)
|
||||
bI8 : BOOL;
|
||||
bI7 : BOOL;
|
||||
bI6 : BOOL;
|
||||
bI5 : BOOL;
|
||||
bI4 : BOOL;
|
||||
bI3 : BOOL;
|
||||
bI2 : BOOL;
|
||||
bI1 : BOOL;
|
||||
END_STRUCT;
|
||||
typUE410_8DI_MQD : STRUCT (*Module 410_MU OutputData*)
|
||||
bQB : BOOL; (*Module Logical Output Channel B*)
|
||||
bQA : BOOL; (*Module Logical Output Channel A*)
|
||||
END_STRUCT;
|
||||
typUE410_BAS1 : STRUCT (*Errorsum of all Modules*)
|
||||
bIF : BOOL; (*Internal Error*)
|
||||
bQS : BOOL; (*Cross-Circuit Error*)
|
||||
bAF : BOOL; (*Runtime Error*)
|
||||
bZF : BOOL; (*Time Error*)
|
||||
bRDO : BOOL; (*Contacts of Feedback Loop Open*)
|
||||
bFM : BOOL; (*Programm Selector modified during Operation*)
|
||||
bX12active : BOOL; (*Output X1/2 is active*)
|
||||
bX34active : BOOL; (*Output X3/4 is active*)
|
||||
END_STRUCT;
|
||||
typUE410_STATUS : STRUCT (*Configuration of an Module*)
|
||||
MED : USINT; (*Module Input Data*)
|
||||
MQD : USINT; (*Module State / Output Data*)
|
||||
MKD1 : USINT; (*Module Config Data (Switches)*)
|
||||
MKD2 : USINT; (*Module Config Data (Bridges)*)
|
||||
MFD : USINT; (*Module Error Data*)
|
||||
MFCLASS1 : USINT; (*Error Class Channel 1*)
|
||||
MFCODE1 : USINT; (*Error Code Channel 1*)
|
||||
MFCLASS2 : USINT; (*Error Class Channel 2*)
|
||||
MFCODE2 : USINT; (*Error Code Channel 2*)
|
||||
RSP_ID : typenUE410_REQ_ID; (*Response ID*)
|
||||
END_STRUCT;
|
||||
typenUE410_REQ_ID :
|
||||
( (*Control Byte Request Data*)
|
||||
enUE410_REQ_NONE := 0,
|
||||
enUE410_REQ_STATUS_MODULE1 := 1, (*Status Data Module x*)
|
||||
enUE410_REQ_STATUS_MODULE2 := 2, (*Status Data Module x*)
|
||||
enUE410_REQ_STATUS_MODULE3 := 3, (*Status Data Module x*)
|
||||
enUE410_REQ_CONFIG_MODULE1 := 21, (*Configuration Data Module x*)
|
||||
enUE410_REQ_CONFIG_MODULE2 := 22, (*Configuration Data Module x*)
|
||||
enUE410_REQ_CONFIG_MODULE3 := 23, (*Configuration Data Module x*)
|
||||
enUE410_REQ_DIAG_INTERN := 255 (*Configuration Data Module x*)
|
||||
);
|
||||
typUE410_REQUEST : STRUCT
|
||||
wCommand : WORD := 16#F100; (*Request Data*)
|
||||
wRequestDS1 : WORD := 16#0100;
|
||||
wRequestDS2 : WORD := 16#0100;
|
||||
wRequestDS3 : WORD := 0;
|
||||
wRequestDS4 : WORD := 0;
|
||||
wRequestDS5 : WORD := 0;
|
||||
wRequestDS6 : WORD := 0;
|
||||
uiSequence : UINT := 0;
|
||||
END_STRUCT;
|
||||
typUE410_RESPONSE : STRUCT
|
||||
wCommand : WORD := 0;
|
||||
wRequestDS1 : WORD := 0;
|
||||
wRequestDS2 : WORD := 0;
|
||||
wRequestDS3 : WORD := 0;
|
||||
wRequestDS4 : WORD := 0;
|
||||
wRequestDS5 : WORD := 0;
|
||||
wRequestDS6 : WORD := 0;
|
||||
uiSequence : UINT := 0;
|
||||
BData : ARRAY[0..120]OF BYTE := [121(0)];
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
0
Logical/GlobalVars/Global.typ
Normal file
0
Logical/GlobalVars/Global.typ
Normal file
37
Logical/GlobalVars/Global.var
Normal file
37
Logical/GlobalVars/Global.var
Normal file
@@ -0,0 +1,37 @@
|
||||
(*Inputs / Outputs*)
|
||||
(*================================================================================================================*)
|
||||
(*CPU*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
udSerialNr : UDINT; (*Seriennummer*)
|
||||
guiTemperatureCPU : UINT; (*CPU Temperatur*)
|
||||
guiTemperatureENV : UINT; (*Umgebungstemperatur*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF1.ST1 - EPL Receiver*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gbIFST1ModuleOk : BOOL;
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*ST1 - PS*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gbST1ModuleOk : BOOL;
|
||||
gbST1BusPowerWarning : BOOL;
|
||||
gbST1IOPowerWarning : BOOL;
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF1.ST2 - DI9371*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gbST2ModuleOk : BOOL;
|
||||
gbInDCVoltageOk : BOOL; (*Kein Fehler 24V Versorgung (PSU Modul)*)
|
||||
gbInAccessLevel1 : BOOL; (*Euchner Transponderleser Berechtigungslevel Bit1*)
|
||||
gbInAccessLevel2 : BOOL; (*Euchner Transponderleser Berechtigungslevel Bit2*)
|
||||
gbInAccessLevel3 : BOOL; (*Euchner Transponderleser Berechtigungslevel Bit3*)
|
||||
gbInAccessLevel4 : BOOL; (*Euchner Transponderleser Berechtigungslevel Bit4*)
|
||||
gbInAccessKeyOK : BOOL; (*Euchner Transponderleser Freigabe Betriebsartwechsel (Tag ist eingelegt)*)
|
||||
gbInResetKey : BOOL; (*Resettaster*)
|
||||
gbInAirOK : BOOL; (*Druckw<6B>chter Luft OK*)
|
||||
END_VAR
|
||||
8
Logical/GlobalVars/Package.pkg
Normal file
8
Logical/GlobalVars/Package.pkg
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.22 SP04?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File">Global.typ</Object>
|
||||
<Object Type="File" Description="Global variables / IOs">Global.var</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
14
Logical/Libraries/Acp10_MC/Binary.lby
Normal file
14
Logical/Libraries/Acp10_MC/Binary.lby
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.0.0?>
|
||||
<Library Version="2.34.1" xmlns="http://br-automation.co.at/AS/Library" Description="PLCopen Motion Control function blocks">
|
||||
<Files>
|
||||
<File>acp10_mc.var</File>
|
||||
<File>acp10_mc.typ</File>
|
||||
<File>acp10_mc.fun</File>
|
||||
</Files>
|
||||
<Dependencies>
|
||||
<Dependency ObjectName="Sys_lib" FromVersion="0.00.0" />
|
||||
<Dependency ObjectName="Brsystem" FromVersion="0.00.0" />
|
||||
<Dependency ObjectName="Acp10man" FromVersion="2.34.1" ToVersion="2.34.1" />
|
||||
</Dependencies>
|
||||
</Library>
|
||||
BIN
Logical/Libraries/Acp10_MC/SG3/acp10_mc.br
Normal file
BIN
Logical/Libraries/Acp10_MC/SG3/acp10_mc.br
Normal file
Binary file not shown.
5543
Logical/Libraries/Acp10_MC/SG3/acp10_mc.h
Normal file
5543
Logical/Libraries/Acp10_MC/SG3/acp10_mc.h
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Logical/Libraries/Acp10_MC/SG3/libacp10_mc.a
Normal file
BIN
Logical/Libraries/Acp10_MC/SG3/libacp10_mc.a
Normal file
Binary file not shown.
BIN
Logical/Libraries/Acp10_MC/SG4/acp10_mc.br
Normal file
BIN
Logical/Libraries/Acp10_MC/SG4/acp10_mc.br
Normal file
Binary file not shown.
5952
Logical/Libraries/Acp10_MC/SG4/acp10_mc.h
Normal file
5952
Logical/Libraries/Acp10_MC/SG4/acp10_mc.h
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Logical/Libraries/Acp10_MC/SG4/libacp10_mc.a
Normal file
BIN
Logical/Libraries/Acp10_MC/SG4/libacp10_mc.a
Normal file
Binary file not shown.
BIN
Logical/Libraries/Acp10_MC/SGC/acp10_mc.br
Normal file
BIN
Logical/Libraries/Acp10_MC/SGC/acp10_mc.br
Normal file
Binary file not shown.
5543
Logical/Libraries/Acp10_MC/SGC/acp10_mc.h
Normal file
5543
Logical/Libraries/Acp10_MC/SGC/acp10_mc.h
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Logical/Libraries/Acp10_MC/SGC/libacp10_mc.a
Normal file
BIN
Logical/Libraries/Acp10_MC/SGC/libacp10_mc.a
Normal file
Binary file not shown.
6127
Logical/Libraries/Acp10_MC/acp10_mc.fun
Normal file
6127
Logical/Libraries/Acp10_MC/acp10_mc.fun
Normal file
File diff suppressed because it is too large
Load Diff
1481
Logical/Libraries/Acp10_MC/acp10_mc.typ
Normal file
1481
Logical/Libraries/Acp10_MC/acp10_mc.typ
Normal file
File diff suppressed because it is too large
Load Diff
190
Logical/Libraries/Acp10_MC/acp10_mc.var
Normal file
190
Logical/Libraries/Acp10_MC/acp10_mc.var
Normal file
@@ -0,0 +1,190 @@
|
||||
VAR CONSTANT
|
||||
mc5TH_ORDER_POLYNOMIAL : UINT := 4; (*motion rule*)
|
||||
mcABOVE_WINDOW : USINT := 40; (*trigger event mode*)
|
||||
mcABSOLUTE : USINT := 0; (*start mode*)
|
||||
mcABSOLUTE_NO_RESET : USINT := 2; (*definition for the shift input of MC_BR_Offset and MC_BR_Phasing*)
|
||||
mcACKNOWLEDGE_ALL : UINT := 2; (*acknowledge all error records immediately*)
|
||||
mcACT_CFG : UINT := 1;
|
||||
mcADD_DATE_TIME : UINT := 1; (*additional data object type*)
|
||||
mcALL_AXES : UDINT := 16#FFFFFFFF;
|
||||
mcALL_EVENTS : USINT := 255; (*event index*)
|
||||
mcALL_PARAMS : USINT := 0; (*parameter index*)
|
||||
mcALL_STATES : USINT := 255; (*state index*)
|
||||
mcAUTOMAT_POS : USINT := 100; (*additional movement direction*)
|
||||
mcAVERAGE : UINT := 2;
|
||||
mcAVERAGE_WEIGHTED : UINT := 4;
|
||||
mcAXIS_ERROR : USINT := 0;
|
||||
mcAXIS_WARNING : USINT := 1;
|
||||
mcBASIS_PARAMETERS : REAL := 2.0; (*Option for DefaultMoveParameter*)
|
||||
mcBELOW_WINDOW : USINT := 50; (*trigger event mode*)
|
||||
mcBESTFIT_5TH_ORDER : UINT := 1024; (*interpolation rule*)
|
||||
mcBESTFIT_6TH_ORDER : UINT := 1280; (*interpolation rule*)
|
||||
mcBLANK : UINT := 0;
|
||||
mcBRAKE_CONTROL_INIT : USINT := 8; (*brake command*)
|
||||
mcBRAKE_TEST_INIT : USINT := 2; (*brake command*)
|
||||
mcBRAKE_TEST_START : USINT := 4; (*brake command*)
|
||||
mcCALCULATION : UINT := 11; (*setup mode*)
|
||||
mcCATCH_UP : USINT := 4; (*synchronization mode*)
|
||||
mcCHECK : UINT := 1; (*mode for automat compensation check*)
|
||||
mcCHECK_HOMING_OFF : USINT := 1; (*disable homing check*)
|
||||
mcCLOSE : USINT := 0;
|
||||
mcCONTINUE_CONTROLLER_OFF : UINT := 128; (* continue if controller is off *)
|
||||
mcCUBIC_SPLINE : UINT := 256; (*interpolation rule*)
|
||||
mcCURRENT_DIR : USINT := 2; (*movement direction*)
|
||||
mcCYCLIC : UINT := 2; (*event move mode*)
|
||||
mcCYCLIC_ALL_EVENTS : UINT := 3; (*event move mode*)
|
||||
mcDATOBJ : UINT := 0; (*data object type*)
|
||||
mcDIRECT : USINT := 7; (*start mode*)
|
||||
mcDISTANCE_BASED : UINT := 0; (*basis for cam movement (e.g. for MC_BR_CamTransition)*)
|
||||
mcDITHER : USINT := 32; (*setup mode*)
|
||||
mcEDGE_SENSITIVE : USINT := 4; (*additional mode for trigger event*)
|
||||
mcENCODER : USINT := 0; (*setup mode*)
|
||||
mcEQUAL : UINT := 2;
|
||||
mcEVERY_RECORD : UINT := 1; (*mode for MC_BR_CyclicRead*)
|
||||
mcEXCEED_PERIOD : USINT := 8; (*movement direction*)
|
||||
mcFB_ERROR : USINT := 2;
|
||||
mcFB_INPUTS : REAL := 255.0; (*option for DefaultMoveParameters*)
|
||||
mcFF : USINT := 32; (*setup, torque mode*)
|
||||
mcFF_NEG_MOVE : UINT := 34; (*setup mode*)
|
||||
mcFF_POS_MOVE : UINT := 33; (*setup mode*)
|
||||
mcFILE : UINT := 1; (*data object type*)
|
||||
mcFILE_BIN : UINT := 0; (*binary format*)
|
||||
mcFILE_CSV : UINT := 1; (*CSV format*)
|
||||
mcFILE_TXT : UINT := 2; (*text format*)
|
||||
mcFIRST_TRIGGER : UINT := 2;
|
||||
mcFLUX : USINT := 1; (*setup mode*)
|
||||
mcGE : UINT := 6;
|
||||
mcGET_BRAKE_STATUS : USINT := 16; (*brake command*)
|
||||
mcGREATER : UINT := 4;
|
||||
mcHARMONIC_COMBINATION : UINT := 8; (*motion rule*)
|
||||
mcHOLDOFF_DISTANCE : UINT := 16384;
|
||||
mcHOME_ABS_SWITCH : USINT := 2; (*homing mode*)
|
||||
mcHOME_ABSOLUTE : USINT := 4; (*homing mode*)
|
||||
mcHOME_ABSOLUTE_CORR : USINT := 6; (*homing mode*)
|
||||
mcHOME_AXIS_REF : USINT := 12; (*homing mode *)
|
||||
mcHOME_DCM : USINT := 9; (*homing mode*)
|
||||
mcHOME_DCM_CORR : USINT := 10; (*homing mode*)
|
||||
mcHOME_DEFAULT : USINT := 0; (*homing mode*)
|
||||
mcHOME_DIRECT : USINT := 1; (*homing mode*)
|
||||
mcHOME_LIMIT_SWITCH : USINT := 3; (*homing mode*)
|
||||
mcHOME_REF_PULSE : USINT := 5; (*homing mode*)
|
||||
mcHOME_RESTORE_POS : USINT := 11; (*homing mode*)
|
||||
mcHOME_SET_PHASE : USINT := 7; (*homing mode*)
|
||||
mcHOME_SWITCH_GATE : USINT := 8; (*homing mode*)
|
||||
mcHORIZONTAL : USINT := 0; (*setup option for controller setup*)
|
||||
mcIDENTIFICATION : UINT := 10; (*setup mode *)
|
||||
mcIMMEDIATE : UINT := 0; (*mode for MC_BR_RegMarkCalc001, StartMode for MC_BR_CrossCutterControl, *)
|
||||
mcIN_WINDOW : USINT := 20; (*trigger event mode*)
|
||||
mcINCLINED_SINE_CURVE : UINT := 5; (*motion rule*)
|
||||
mcINTERVAL_EVENT : UINT := 16;
|
||||
mcIPL_OFF : USINT := 0; (*interpolation mode*)
|
||||
mcIPL_LINEAR : USINT := 1; (*interpolation mode*)
|
||||
mcIPL_QUADRATIC : USINT := 2; (*interpolation mode*)
|
||||
mcIPL_QUADRATIC_NO_OVERSHOOT : USINT := 4; (*interpolation mode*)
|
||||
mcISQ_F1_NOTCH : UINT := 128; (*setup mode*)
|
||||
mcISQ_F2_NOTCH : UINT := 256; (*setup mode*)
|
||||
mcISQ_F3_NOTCH : UINT := 512; (*setup mode*)
|
||||
mcISQ_RIPPLE : UINT := 20; (*setup mode*)
|
||||
mcLAST_POINT : UINT := 0; (*motion rule*)
|
||||
mcLEAD_IN : UINT := 2;
|
||||
mcLEAD_OUT : UINT := 4;
|
||||
mcLENGTH_ONLY : UINT := 32;
|
||||
mcLIMIT : USINT := 40; (*torque mode*)
|
||||
mcLIMIT_PARAMETERS : REAL := 1.0; (*option for DefaultMoveParameters*)
|
||||
mcLINEAR_CAM : USINT := 253; (*predefined 1:1 cam profile for MC_BR_CamDwell*)
|
||||
mcLINEAR_CAM_NON_PERIODIC : USINT := 254; (*for predifined 1:1 cam profile*)
|
||||
mcLINEAR_CAM_PERIODIC : USINT := 255; (*for predefined 1:1 cam profile*)
|
||||
mcLOAD : UINT := 276; (*trace command*)
|
||||
mcMANUAL_SEARCH : UINT := 64;
|
||||
mcMASTER_DISTANCE_BASED : UINT := 3; (*basis for movement profile (e.g. for MC_BR_Offset or MC_BR_Phasing)*)
|
||||
mcMASTER_POSITION : UINT := 256; (*additional basis for movement profile (e.g. for MC_BR_Offset), StartMode for MC_BR_CrossCutterControl*)
|
||||
mcMASTER_POSITION_BASED : UINT := 2; (*basis for movement profile (e.g. for MC_BR_Offset or MC_BR_Phasing)*)
|
||||
mcMAX_IV_TIME : USINT := 8; (*additional mode for power evaluation*)
|
||||
mcMAX_SLAVE_COMP_DISTANCE_NEG : UINT := 4; (*mode for automat compensation check*)
|
||||
mcMAX_SLAVE_COMP_DISTANCE_POS : UINT := 3; (*mode for automat compensation check*)
|
||||
mcMIDDLE : USINT := 5;
|
||||
mcMIN_MASTER_COMP_DISTANCE : UINT := 2; (*mode for automat compensation check*)
|
||||
mcMODIFIED_ACCEL_TRAPEZOID : UINT := 6; (*motion rule*)
|
||||
mcMODIFIED_SINE_CURVE : UINT := 7; (*motion rule*)
|
||||
mcMOTOR : UINT := 258; (*switch on simulation mode*)
|
||||
mcMULTI_AXIS_TRACE : UDINT := 0; (*parameter trace type*)
|
||||
mcN_EDGE : USINT := 1;
|
||||
mcNEGATIVE_DIR : USINT := 1; (*movement direction*)
|
||||
mcNET_TRACE_GLOBAL : UDINT := 0; (*network trace type*)
|
||||
mcNO_EVENTS : USINT := 253; (*event index*)
|
||||
mcNO_PARAMS : USINT := 253; (*parameter index*)
|
||||
mcNO_POSITION : USINT := 0;
|
||||
mcNO_TEXT : UINT := 0; (*no error text determination active*)
|
||||
mcNON_PERIODIC : BOOL := FALSE; (*cam profile mode*)
|
||||
mcNOT_AXIS_RELATED : UDINT := 16#FFFFFFFF;
|
||||
mcNULL : UINT := 1;
|
||||
mcOFF : BOOL := FALSE;
|
||||
mcON : BOOL := TRUE;
|
||||
mcONCE : UINT := 1;
|
||||
mcONE_RECORD : UINT := 0; (*mode for MC_BR_CyclicRead*)
|
||||
mcONLY_EVENTS : USINT := 254; (*event index*)
|
||||
mcONLY_PSM : USINT := 1; (*power evaluation mode*)
|
||||
mcOPEN : USINT := 1;
|
||||
mcOPTIMIZED_ACCELERATION : UINT := 768; (*interpolation rule*)
|
||||
mcOPTIMIZED_VELOCITY : UINT := 512; (*interpolation rule*)
|
||||
mcOUT_WINDOW : USINT := 30; (*trigger event mode*)
|
||||
mcP_EDGE : USINT := 0;
|
||||
mcPERIODIC : BOOL := TRUE; (*cam profile mode*)
|
||||
mcPOSITION : USINT := 1; (*setup mode*)
|
||||
mcPOSITIVE_DIR : USINT := 0; (*movement direction*)
|
||||
mcQUADRATIC_PARABOLA : UINT := 2; (*motion rule*)
|
||||
mcQUEUED : UINT := 1;
|
||||
mcRELATIVE : USINT := 1; (*start mode*)
|
||||
mcRESET : UINT := 320; (*trace command*)
|
||||
mcREVERSE : UINT := 8;
|
||||
mcSATURATION : USINT := 30; (*setup mode*)
|
||||
mcSAVE : UINT := 341; (*trace command*)
|
||||
mcSE : UINT := 3;
|
||||
mcSET_OFFSET : USINT := 34; (*setup mode*)
|
||||
mcSHIFT_FROM_EXPECTED : UINT := 50; (*input for MC_BR_TouchProbe*)
|
||||
mcSHIFT_FROM_RESULT : UINT := 49; (*input for MC_BR_TouchProbe*)
|
||||
mcSHORTEST_WAY : USINT := 3; (*synchronization mode, movement direction*)
|
||||
mcSIMPLE_SINE_CURVE : UINT := 3; (*motion rule*)
|
||||
mcSIMULATION_OFF : UINT := 259; (*switch off simulation mode*)
|
||||
mcSLAVE_POSITION : UINT := 0; (*additional basis for movement profile (e.g. for MC_BR_Offset)*)
|
||||
mcSLOW_DOWN : USINT := 5; (*synchronization mode*)
|
||||
mcSMALLER : UINT := 1;
|
||||
mcSPEED : USINT := 2; (*setup mode*)
|
||||
mcSTART : UINT := 260;
|
||||
mcSTART_ONLY : USINT := 3; (*power evaluation mode*)
|
||||
mcSTEPPER : USINT := 31; (*setup mode*)
|
||||
mcSTOP : UINT := 261;
|
||||
mcSTRAIGHT_LINE : UINT := 1; (*motion rule*)
|
||||
mcSW_END_ACTIVE : REAL := 0.0; (*SW end monitoring mode*)
|
||||
mcSW_END_IGNORE : REAL := 1.0; (*SW end monitoring mode*)
|
||||
mcSW_END_SPF : REAL := 2.0; (*SW end monitoring mode*)
|
||||
mcSWITCH_OFF : UINT := 259; (*trace command*)
|
||||
mcSWITCH_ON : UINT := 258; (*trace command*)
|
||||
mcT_FILTER : UINT := 64; (*setup mode*)
|
||||
mcTEST : UINT := 31; (*setup mode*)
|
||||
mcTEXT : UINT := 1; (*error text determination active*)
|
||||
mcTIME_BASED : UINT := 1; (*basis for movement profile (e.g. for MC_BR_Offset or MC_BR_Phasing)*)
|
||||
mcTIME_LIMIT : USINT := 8; (*enable time dependent switch off of function*)
|
||||
mcTRACE_DELAY : USINT := 6; (*trace status*)
|
||||
mcTRACE_FINISHED : USINT := 1; (*trace status*)
|
||||
mcTRACE_REST : USINT := 5; (*trace status*)
|
||||
mcTRACE_RING : USINT := 4; (*trace status*)
|
||||
mcTRACE_STARTED : USINT := 20; (*trace status*)
|
||||
mcTRACE_TIME : USINT := 2; (*trace status*)
|
||||
mcTRACE_TRIGGER : USINT := 3; (*trace status*)
|
||||
mcTRANSITION_OFF : UINT := 0;
|
||||
mcTRANSITION_ON : UINT := 1;
|
||||
mcUNEQUAL : UINT := 5;
|
||||
mcUPDATE_PERIOD : UINT := 16#8000; (*input for MC_BR_TouchProbe*)
|
||||
mcUSE_FILTER_PAR : UINT := 4; (*setup mode *)
|
||||
mcUSE_FIRST_TRIGGER_POS : UINT := 64; (*additional input for MC_BR_TouchProbe*)
|
||||
mcV_LIMIT_CALC : USINT := 4; (*recalculate speed limit depending on user setting*)
|
||||
mcV_LIMIT_OFF : USINT := 2; (*disable speed limit*)
|
||||
mcVELOCITY_CONTROL : UINT := 4; (*basis for movement profile (e.g. for MC_BR_Offset or MC_BR_Phasing)*)
|
||||
mcVERTICAL : USINT := 1; (*setup option for controller setup*)
|
||||
mcWITH_PARAM : USINT := 2; (*power evaluation mode*)
|
||||
mcRESTART : UINT := 273; (*StartMode for MC_BR_CrossCutterControl*)
|
||||
mcWITHIN_PERIOD : USINT := 6; (*synchronization mode*)
|
||||
mcWITHOUT_PERIOD : UINT := 4; (*input for MC_BR_TouchProbe*)
|
||||
mcWRAP : UINT := 2;
|
||||
END_VAR
|
||||
1550
Logical/Libraries/Acp10man/Acp10err-de.txt
Normal file
1550
Logical/Libraries/Acp10man/Acp10err-de.txt
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user