Workbackup

This commit is contained in:
2021-12-01 11:54:02 +01:00
parent 945006a556
commit 45ee686ded
1297 changed files with 115791 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version="4.9.4.92 SP" WorkingVersion="4.9"?>
<Project Description="Stiftsäge" Version="1.00.0" Edition="Standard" EditionComment="Standard" xmlns="http://br-automation.co.at/AS/Project">
<Communication />
<ANSIC DefaultIncludes="true" />
<IEC ExtendedConstants="true" IecExtendedComments="true" KeywordsAsStructureMembers="false" NamingConventions="true" Pointers="true" Preprocessor="false" />
<Motion RestartAcoposParameter="true" RestartInitParameter="true" />
<Project StoreRuntimeInProject="false" />
<Variables DefaultInitValue="0" DefaultRetain="false" DefaultVolatile="true" />
<TechnologyPackages>
<Acp10Arnc0 Version="5.14.2" />
<mapp Version="5.14.1" />
<TextSystem udbdef="0.1.0" />
</TechnologyPackages>
</Project>

8
LastUser.set Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version="4.9.4.92 SP"?>
<ProjectSettings xmlns="http://br-automation.co.at/AS/ProjectSettings">
<ConfigurationManager ActiveConfigurationName="Config1" />
<Deployment Value="ActiveCpu" />
<ExportProject ExportFilePath="D:\src44\KD_Hoertnagel_Fraese\KD_Hoertnagel_Fraese.zip" />
<Print Footer="%cPage: %p" Header="%lProject: %n%c%x" />
</ProjectSettings>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<DataObject SubType="Apt" xmlns="http://br-automation.co.at/AS/DataObject">
<Files>
<File>ENC2ENDAT.apt</File>
</Files>
</DataObject>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<AcoposParameterTable>
<Root Name="Parameters" Description="Glasmasstab">
<Parameter Name="ENCOD2_LINE_CHK_IGNORE" ID="728" Value="0x10" Disabled="FALSE" Description="Encoder2: Ignore check MT Fehler ignorieren" />
<Parameter Name="ENCOD2_TYPE" ID="85" Value="ncENDAT" Disabled="FALSE" Description="Encoder2: Type" />
<Parameter Name="SCALE_ENCOD2_INCR" ID="289" Value="19660800" Disabled="FALSE" Description="Encoder2: Encoder scaling: Increments per encoder revolution" />
<Parameter Name="SCALE_ENCOD2_UNITS" ID="420" Value="2400" Unit="Units" Description="Encoder2: Load scaling: Units per load revolution 1/100mm" />
<Parameter Name="SCALE_ENCOD2_REV" ID="421" Value="1" Description="Encoder2: Load scaling: Encoder revolutions" />
<Parameter Name="F_SWITCH" ID="347" Value="20000" Unit="cps" Disabled="TRUE" Description="Inverter: Switch frequency" />
<Parameter Name="MOTOR_CURR_ROT_DIR" ID="872" Value="ncINVERSE" Disabled="TRUE" Description="Motor: Rotational direction of current" />
</Root>
</AcoposParameterTable>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<DataObject SubType="Apt" xmlns="http://br-automation.co.at/AS/DataObject">
<Files>
<File>ENC2INC.apt</File>
</Files>
</DataObject>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<AcoposParameterTable>
<Root Name="Parameters" Description="Glasmasstab">
<Parameter Name="ENCOD2_TYPE" ID="85" Value="ncINC" Disabled="FALSE" Description="Encoder2: Type" />
<Parameter Name="ENCOD2_SUPPLY_VOLTAGE" ID="1576" Value="12" Unit="V" Description="Encoder2: Output voltage of the encoder supply" />
<Parameter Name="SCALE_ENCOD2_INCR" ID="289" Value="19660800" Disabled="FALSE" Description="Encoder2: Encoder scaling: Increments per encoder revolution" />
<Parameter Name="ENCOD2_LINES_PER_REVO" ID="1572" Value="1200" Disabled="FALSE" Description="Encoder2: Encoder scaling: Lines/signal periods per encoder revolution - Fehler in NCT" />
<Parameter Name="SCALE_ENCOD2_UNITS" ID="420" Value="2400" Unit="Units" Description="Encoder2: Load scaling: Units per load revolution 1/100mm" />
<Parameter Name="SCALE_ENCOD2_REV" ID="421" Value="1" Description="Encoder2: Load scaling: Encoder revolutions" />
</Root>
</AcoposParameterTable>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="DataObject" Language="Apt" Description="Encoder 2 als Inkrementalgeber initialisieren">ENC2INC</Object>
<Object Type="DataObject" Language="Apt" Description="Encoder 2 als ENDAT Geber initialisieren">ENC2ENDAT</Object>
<Object Type="DataObject" Language="Ax" Description="Inittab Y Achse Sägevorschub">gAxisYi</Object>
<Object Type="DataObject" Language="Ax" Description="Inittab X Achse Drahtvorschub">gAxisXi</Object>
</Objects>
</Package>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<DataObject SubType="Ax" xmlns="http://br-automation.co.at/AS/DataObject">
<Files>
<File>gAxisXi.ax</File>
</Files>
</DataObject>

View File

@@ -0,0 +1,189 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.9.3.144 SP?>
<InitParameter Version="5.14.2" NcSwId="Acp10">
<Group ID="ACP10AXIS_typ">
<Group ID="dig_in">
<Group ID="level">
<Parameter ID="reference" Value="ncACTIV_HI" />
<Parameter ID="pos_hw_end" Value="ncACTIV_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="2400" Description="Units at the load [1/100mm]" />
<Parameter ID="rev_motor" Value="1" />
</Group>
</Group>
</Group>
</Group>
<Group ID="limit">
<Group ID="parameter">
<Parameter ID="v_pos" Value="50000.0" />
<Parameter ID="v_neg" Value="50000.0" />
<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.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="10.0" />
<Parameter ID="ds_stop" Value="20.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 + ncFF" />
<Group ID="position">
<Parameter ID="kv" Value="130.0" />
<Parameter ID="tn" Value="0" />
<Parameter ID="t_predict" Value="0.0004" />
<Parameter ID="t_total" Value="0.0004" />
<Parameter ID="p_max" Value="1.0e30" />
<Parameter ID="i_max" Value="0" />
</Group>
<Group ID="speed">
<Parameter ID="kv" Value="1.9" Description="Proportional amplification 10.9" />
<Parameter ID="tn" Value="0.012" />
<Parameter ID="t_filter" Value="0.0004" />
<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 + ncCORRECTION" />
<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="mode" Value="ncSTANDARD" />
<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 ID="fb">
<Parameter ID="mode" Value="ncSTANDARD" />
<Parameter ID="speed_mix_ratio" Value="0.0" />
<Parameter ID="speed_kv" Value="2.0" />
</Group>
<Group ID="model">
<Group ID="mass1">
<Parameter ID="inertia" Value="0" />
<Parameter ID="viscous_friction" Value="0" />
</Group>
<Group ID="mass2">
<Parameter ID="inertia" Value="0" />
<Parameter ID="viscous_friction" Value="0" />
<Parameter ID="stiffness" Value="0" />
<Parameter ID="damping" Value="0" />
</Group>
</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" />
<Parameter ID="t_jolt" Value="0" />
</Group>
<Group ID="drive_error">
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
</Group>
</Group>
<Group ID="homing">
<Group ID="parameter">
<Parameter ID="s" Value="0" />
<Parameter ID="v_switch" Value="5000" />
<Parameter ID="v_trigger" Value="500" />
<Parameter ID="a" Value="50000" />
<Parameter ID="mode" Value="ncDIRECT" />
<Parameter ID="edge_sw" Value="ncPOSITIVE" />
<Parameter ID="start_dir" Value="ncPOSITIVE" />
<Parameter ID="trigg_dir" Value="ncPOSITIVE" />
<Parameter ID="ref_pulse" Value="ncOFF" />
<Parameter ID="fix_dir" Value="ncOFF" />
<Parameter ID="tr_s_block" Value="0" />
<Parameter ID="torque_lim" Value="0" />
<Parameter ID="ds_block" Value="0" />
<Parameter ID="ds_stop" Value="0" />
</Group>
</Group>
<Group ID="basis">
<Group ID="parameter">
<Parameter ID="v_pos" Value="5000" />
<Parameter ID="v_neg" Value="5000" />
<Parameter ID="a1_pos" Value="50000" />
<Parameter ID="a2_pos" Value="50000" />
<Parameter ID="a1_neg" Value="50000" />
<Parameter ID="a2_neg" Value="50000" />
</Group>
</Group>
</Group>
<Group ID="message">
<Group ID="text">
<Group ID="parameter">
<Parameter ID="format" Value="ncBREAK" />
<Parameter ID="columns" Value="80" />
<Parameter ID="data_modul" Value="acp10etxde" />
</Group>
</Group>
</Group>
</Group>
</InitParameter>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<DataObject SubType="Ax" xmlns="http://br-automation.co.at/AS/DataObject">
<Files>
<File>gAxisYi.ax</File>
</Files>
</DataObject>

View File

@@ -0,0 +1,189 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.9.3.144 SP?>
<InitParameter Version="5.14.2" NcSwId="Acp10">
<Group ID="ACP10AXIS_typ">
<Group ID="dig_in">
<Group ID="level">
<Parameter ID="reference" Value="ncACTIV_HI" />
<Parameter ID="pos_hw_end" Value="ncACTIV_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="2400" Description="Units at the load [1/100mm]" />
<Parameter ID="rev_motor" Value="1" />
</Group>
</Group>
</Group>
</Group>
<Group ID="limit">
<Group ID="parameter">
<Parameter ID="v_pos" Value="5000.0" Description="Speed in positive direction [1/100mm/s]" />
<Parameter ID="v_neg" Value="5000.0" Description="Speed in negative direction [1/100mm/s]" />
<Parameter ID="a1_pos" Value="50000" Description="Acceleration in positive direction [1/100mm/s2]" />
<Parameter ID="a2_pos" Value="50000" Description="Deceleration in positive direction [1/100mm/s2]" />
<Parameter ID="a1_neg" Value="50000" />
<Parameter ID="a2_neg" Value="50000" />
<Parameter ID="t_jolt" Value="0.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="10.0" />
<Parameter ID="ds_stop" Value="20.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 + ncFF" />
<Group ID="position">
<Parameter ID="kv" Value="390.0" />
<Parameter ID="tn" Value="0" />
<Parameter ID="t_predict" Value="0.0004" />
<Parameter ID="t_total" Value="0.0004" />
<Parameter ID="p_max" Value="1.0e30" />
<Parameter ID="i_max" Value="0" />
</Group>
<Group ID="speed">
<Parameter ID="kv" Value="2.4" Description="Proportional amplification 2.35" />
<Parameter ID="tn" Value="0.012" />
<Parameter ID="t_filter" Value="0.0004" />
<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 + ncCORRECTION" />
<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="mode" Value="ncSTANDARD" />
<Parameter ID="torque_load" Value="-0.2" />
<Parameter ID="torque_pos" Value="0.2" />
<Parameter ID="torque_neg" Value="0.5" />
<Parameter ID="kv_torque" Value="0.0" />
<Parameter ID="inertia" Value="0.0" />
<Parameter ID="t_filter_a" Value="0.0" />
</Group>
<Group ID="fb">
<Parameter ID="mode" Value="ncSTANDARD" />
<Parameter ID="speed_mix_ratio" Value="0.0" />
<Parameter ID="speed_kv" Value="2.0" />
</Group>
<Group ID="model">
<Group ID="mass1">
<Parameter ID="inertia" Value="0" />
<Parameter ID="viscous_friction" Value="0" />
</Group>
<Group ID="mass2">
<Parameter ID="inertia" Value="0" />
<Parameter ID="viscous_friction" Value="0" />
<Parameter ID="stiffness" Value="0" />
<Parameter ID="damping" Value="0" />
</Group>
</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" />
<Parameter ID="t_jolt" Value="0" />
</Group>
<Group ID="drive_error">
<Parameter ID="decel_ramp" Value="ncA_LIMIT" />
</Group>
</Group>
<Group ID="homing">
<Group ID="parameter">
<Parameter ID="s" Value="0" />
<Parameter ID="v_switch" Value="5000" />
<Parameter ID="v_trigger" Value="500" />
<Parameter ID="a" Value="50000" />
<Parameter ID="mode" Value="ncDIRECT" />
<Parameter ID="edge_sw" Value="ncPOSITIVE" />
<Parameter ID="start_dir" Value="ncPOSITIVE" />
<Parameter ID="trigg_dir" Value="ncPOSITIVE" />
<Parameter ID="ref_pulse" Value="ncOFF" />
<Parameter ID="fix_dir" Value="ncOFF" />
<Parameter ID="tr_s_block" Value="0" />
<Parameter ID="torque_lim" Value="0" />
<Parameter ID="ds_block" Value="0" />
<Parameter ID="ds_stop" Value="0" />
</Group>
</Group>
<Group ID="basis">
<Group ID="parameter">
<Parameter ID="v_pos" Value="5000" />
<Parameter ID="v_neg" Value="5000" />
<Parameter ID="a1_pos" Value="50000" />
<Parameter ID="a2_pos" Value="50000" />
<Parameter ID="a1_neg" Value="50000" />
<Parameter ID="a2_neg" Value="50000" />
</Group>
</Group>
</Group>
<Group ID="message">
<Group ID="text">
<Group ID="parameter">
<Parameter ID="format" Value="ncBREAK" />
<Parameter ID="columns" Value="80" />
<Parameter ID="data_modul" Value="acp10etxde" />
</Group>
</Group>
</Group>
</Group>
</InitParameter>

View File

@@ -0,0 +1,8 @@
TYPE
typAlarm : STRUCT (*Alarm Datenstruktur*)
Alarm : ARRAY[0..127]OF BOOL;
Ack : ARRAY[0..127]OF BOOL;
Bypass : ARRAY[0..127]OF BOOL;
END_STRUCT;
END_TYPE

View 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

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.2.3.159?>
<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 (f. 100ms Task) !!!">blinker</Object>
</Objects>
</Package>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.2.3.159?>
<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>

View 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

View 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 100ms
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

View 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

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.2.3.159?>
<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>

View File

@@ -0,0 +1,6 @@
VAR
sTemp : STRING[10] := '';
lDTStructureGetTime : DTStructureGetTime := (0);
lDTGetTime : DTGetTime := (0);
lTimeStructure : TIMEStructure := (0);
END_VAR

View File

@@ -0,0 +1,57 @@
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)
brsstrcpy (ADR (gsCurrentTime), "")
brsitoa (gDTstrucCurrentTime.year, ADR (sTemp))
brsstrcat (ADR (gsCurrentTime), ADR (sTemp))
IF (gDTstrucCurrentTime.month < 10) THEN
brsstrcat (ADR (gsCurrentTime), "0")
ENDIF
brsitoa (gDTstrucCurrentTime.month, ADR (sTemp))
brsstrcat (ADR (gsCurrentTime), ADR (sTemp))
IF (gDTstrucCurrentTime.day < 10) THEN
brsstrcat (ADR (gsCurrentTime), "0")
ENDIF
brsitoa (gDTstrucCurrentTime.day, ADR (sTemp))
brsstrcat (ADR (gsCurrentTime), ADR (sTemp))
brsstrcat (ADR (gsCurrentTime), "_")
IF (gDTstrucCurrentTime.hour < 10) THEN
brsstrcat (ADR (gsCurrentTime), "0")
ENDIF
brsitoa (gDTstrucCurrentTime.hour, ADR (sTemp))
brsstrcat (ADR (gsCurrentTime), ADR (sTemp))
brsstrcat (ADR (gsCurrentTime), "-")
IF (gDTstrucCurrentTime.minute < 10) THEN
brsstrcat (ADR (gsCurrentTime), "0")
ENDIF
brsitoa (gDTstrucCurrentTime.minute, ADR (sTemp))
brsstrcat (ADR (gsCurrentTime), ADR (sTemp))
brsstrcat (ADR (gsCurrentTime), "-")
IF (gDTstrucCurrentTime.second < 10) THEN
brsstrcat (ADR (gsCurrentTime), "0")
ENDIF
brsitoa (gDTstrucCurrentTime.second, ADR (sTemp))
brsstrcat (ADR (gsCurrentTime), ADR (sTemp))
brsstrcat (ADR (gsCurrentTime), "_")
brsitoa (gDTstrucCurrentTime.millisec, ADR (sTemp))
brsstrcat (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

View File

@@ -0,0 +1,4 @@
PROGRAM _INIT
(* init program *)
END_PROGRAM

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="Package">RFID</Object>
</Objects>
</Package>

View File

@@ -0,0 +1,8 @@
(*//Communicationstructures*)
(*//Transponders*)
VAR
gudRFIDReader1ID : UDINT; (*Gelesene ID*)
gudRFIDReader2ID : UDINT; (*Gelesene ID*)
gudRFIDReader3ID : UDINT; (*Gelesene ID*)
gudRFIDReader4ID : UDINT; (*Gelesene ID*)
END_VAR

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.4.8.122 SP?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="File" Description="Logging Vars">GlobaRFID.var</Object>
<Object Type="File" Description="Logging Vars" Private="true">RFID1var.var</Object>
<Object Type="Program" Language="IEC" Description="13 Mhz Transponder B&amp;R">RFID_USB</Object>
</Objects>
</Package>

View File

@@ -0,0 +1,8 @@
(*//Communicationstructures*)
(*//Transponders*)
VAR RETAIN
pudRFIDSerialReader1 : {REDUND_UNREPLICABLE} UDINT := 3735632; (*Serien Nr RFID Reader 1*)
pudRFIDSerialReader2 : {REDUND_UNREPLICABLE} UDINT := 0; (*Serien Nr RFID Reader 2*)
pudRFIDSerialReader3 : {REDUND_UNREPLICABLE} UDINT := 0; (*Serien Nr RFID Reader 3*)
pudRFIDSerialReader4 : {REDUND_UNREPLICABLE} UDINT := 0; (*Serien Nr RFID Reader 4*)
END_VAR

View File

@@ -0,0 +1,52 @@
FUNCTION ASCtoUDINT
ASCtoUDINT := 0;
udNextAdr := udInNextAdr;
IF bInReverse THEN
sStart := 7;
sEnd := 0;
sStep := -1;
ELSE
sStart := 0;
sEnd := 7;
sStep := 1;
END_IF
FOR usi := sStart TO sEnd BY sStep DO
brsmemcpy (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

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.4.8.122 SP?>
<Program xmlns="http://br-automation.co.at/AS/Program">
<Files>
<File Description="Implementation code">RFID_USB.st</File>
<File Description="Local variables" Private="true">RFID_USB.var</File>
<File Description="Local data types" Private="true">RFID_USB.typ</File>
<File Private="true">RFID_USB.fun</File>
<File Description="Convert ASCII Value to UDINT">ASCtoUDINT.st</File>
<File Description="Convert UDINT Value to ASCII">UDINTtoASC.st</File>
</Files>
</Program>

View File

@@ -0,0 +1,28 @@
FUNCTION ASCtoUDINT : UDINT (*Convert ASCII Value to UDINT*)
VAR_INPUT
udInNextAdr : UDINT; (*Next Pos in ByteStream (No CHECK)*)
bInReverse : BOOL;
END_VAR
VAR
udNextAdr : UDINT;
usi : SINT;
sStart : SINT;
sEnd : SINT;
sStep : SINT;
usChar : USINT;
END_VAR
END_FUNCTION
FUNCTION UDINTtoASC : UDINT (*Convert UDINT Value to ASCII*)
VAR_INPUT
udInNextAdr : UDINT; (*Next Pos in ByteStream (No CHECK)*)
udInValue : UDINT;
END_VAR
VAR
udNextAdr : UDINT;
udValue : UDINT;
usi : USINT;
usChar : USINT;
END_VAR
END_FUNCTION

View File

@@ -0,0 +1,609 @@
(********************************************************************
* COPYRIGHT --
********************************************************************
* Program: RFID_USB
* File: RFID_USB.st
* Author: michi
* Created: December 04, 2012
********************************************************************
* Implementation of program RFID_USB
* With 4 readers
********************************************************************)
PROGRAM _INIT
udAttachDetachCount := 0;
usNodeIx := 0;
enStep := enRFIDStep_INIT;
FUB_UsbDescriptorGet.descriptorType := asusb_USB_DESCR_STRING;
FUB_UsbDescriptorGet.descriptorIndex := 3; //DeviceDescr Serial Nr
//Seriennumer Reader
pudRFIDSerialReader1 := 3735632;
END_PROGRAM
PROGRAM _CYCLIC
CASE enStep OF
//Init
//---------------------------
enRFIDStep_INIT:
FUB_FrameRead1.enable := 0;
FUB_FrameRead2.enable := 0;
FUB_FrameRead3.enable := 0;
FUB_FrameRead4.enable := 0;
FUB_FrameReleaseBuffer1.enable := 0;
FUB_FrameReleaseBuffer2.enable := 0;
FUB_FrameReleaseBuffer3.enable := 0;
FUB_FrameReleaseBuffer4.enable := 0;
FUB_FrameWrite1.enable := 0;
FUB_FrameWrite2.enable := 0;
FUB_FrameWrite3.enable := 0;
FUB_FrameWrite4.enable := 0;
FUB_FrameXOpen1.enable := 0;
FUB_FrameXOpen2.enable := 0;
FUB_FrameXOpen3.enable := 0;
FUB_FrameXOpen4.enable := 0;
FUB_UsbNodeGet.enable := 0;
FUB_UsbNodeListGet.enable := 0;
enStep := enRFIDStep_USB_GETNODELIST;
//Get USB Nodelsit
//---------------------------
enRFIDStep_USB_GETNODELIST:
FUB_UsbNodeListGet.enable := 1;
FUB_UsbNodeListGet.pBuffer := ADR (udNodeList);
FUB_UsbNodeListGet.bufferSize := SIZEOF (udNodeList);
FUB_UsbNodeListGet.filterInterfaceClass := 0;
FUB_UsbNodeListGet.filterInterfaceSubClass := 0;
IF (FUB_UsbNodeListGet.status = ERR_OK) AND (FUB_UsbNodeListGet.listNodes > 0) THEN
// USB Device Attach or detach
FUB_UsbNodeListGet.enable := 0;
usNodeIx := 0;
udAttachDetachCount := FUB_UsbNodeListGet.attachDetachCount;
IF FUB_UsbNodeListGet.listNodes < NEEDED_DEVICES THEN
enStep := enRFIDStep_USB_SEARCHDEVICE;
//FixMe Error
END_IF
enStep := enRFIDStep_USB_SEARCHDEVICE;
usFoundReaders := 0;
END_IF
//else if (UsbNodeListGetFub.status == asusbERR_BUFSIZE || UsbNodeListGetFub.status == asusbERR_NULLPOINTER)
//Serch Reader in USB Devices
//---------------------------
enRFIDStep_USB_SEARCHDEVICE:
FUB_UsbNodeGet.enable := 1;
FUB_UsbNodeGet.nodeId := udNodeList[usNodeIx];
FUB_UsbNodeGet.pBuffer := ADR (usbDevice[usNodeIx]);
FUB_UsbNodeGet.bufferSize := SIZEOF (usbDevice[usNodeIx]);
IF (FUB_UsbNodeGet.status = ERR_OK ) THEN
FUB_UsbNodeGet.enable := 0;
// USB FTDI Transponder
IF (usbDevice[usNodeIx].vendorId = TRANSPONDER_FTDI_VENDOR_ID) AND
(usbDevice[usNodeIx].productId = TRANSPONDER_FTDI_PRODUCT_ID) AND
(usbDevice[usNodeIx].bcdDevice = TRANSPONDER_FTDI_BCD) THEN
// USB FTDI Transponder found
usFoundReaders := usFoundReaders + 1;
ELSE
udNodeList[usNodeIx] := 0; //Ignore
END_IF
usNodeIx := usNodeIx + 1;
IF (usNodeIx >= FUB_UsbNodeListGet.allNodes) THEN
//Find individual Readers
usNodeIx := 0;
enStep := enRFIDStep_USB_READDEVDESCR;
END_IF
ELSIF (FUB_UsbNodeGet.status = asusbERR_USB_NOTFOUND) THEN
// USB Device NOT found
enStep := enRFIDStep_USB_GETNODELIST;
END_IF
//ELSE IF (FUB_UsbNodeGet.status == asusbERR_BUFSIZE || FUB_UsbNodeGet.status == asusbERR_NULLPOINTER)
//Get DeviceDescriptor
enRFIDStep_USB_READDEVDESCR:
FUB_UsbDescriptorGet.enable := (udNodeList[usNodeIx] > 0);
FUB_UsbDescriptorGet.nodeId := udNodeList[usNodeIx];
FUB_UsbDescriptorGet.requestType := asusb_USB_RT_DEVICE;
FUB_UsbDescriptorGet.descriptorType := asusb_USB_DESCR_STRING;
FUB_UsbDescriptorGet.descriptorIndex := 3; //DeviceDescr Serial Nr
FUB_UsbDescriptorGet.languageId := 16#0409;
FUB_UsbDescriptorGet.pBuffer := ADR (strDeviceDescr[usNodeIx]);
FUB_UsbDescriptorGet.bufferSize := SIZEOF (strDeviceDescr[usNodeIx]);
IF (udNodeList[usNodeIx] = 0) THEN
usNodeIx := usNodeIx + 1;
ELSIF (FUB_UsbDescriptorGet.status = ERR_OK ) THEN
FUB_UsbDescriptorGet.enable := 0;
brsmemcpy (ADR (udSerialNr[usNodeIx]), ADR (strDeviceDescr[usNodeIx]) + 14, 4);
usNodeIx := usNodeIx + 1;
IF (udSerialNr[usNodeIx] = pudRFIDSerialReader1) AND (pudRFIDSerialReader1 > 0) THEN
usNodeIxReader1 := usNodeIx;
ELSIF (udSerialNr[usNodeIx] = pudRFIDSerialReader2) AND (pudRFIDSerialReader2 > 0) THEN
usNodeIxReader2 := usNodeIx;
ELSIF (udSerialNr[usNodeIx] = pudRFIDSerialReader3) AND (pudRFIDSerialReader3 > 0) THEN
usNodeIxReader3 := usNodeIx;
ELSIF (udSerialNr[usNodeIx] = pudRFIDSerialReader4) AND (pudRFIDSerialReader4 > 0) THEN
usNodeIxReader4 := usNodeIx;
END_IF
IF (usNodeIx >= FUB_UsbNodeListGet.allNodes) THEN
// Found All Devices
usNodeIx := 55;
enStep := enRFIDStep_IDLE;
END_IF
ELSIF (FUB_UsbDescriptorGet.status = asusbERR_USB_NOTFOUND) THEN
// USB Device NOT found
enStep := enRFIDStep_USB_GETNODELIST;
END_IF
END_CASE
CASE enStepReader1 OF
//Init
//---------------------------
enRFIDReaderStep_INIT:
IF (usNodeIxReader1 < 55) THEN
enStepReader1 := enRFIDReaderStep_USB_DVDEVOPEN;
END_IF;
//Open Reader Devicer
//---------------------------
enRFIDReaderStep_USB_DVDEVOPEN:
// initialize open structure */
FUB_FrameXOpen1.device :=ADR (usbDevice[usNodeIxReader1].ifName);
FUB_FrameXOpen1.mode := 0;
FUB_FrameXOpen1.config := 0;
FUB_FrameXOpen1.enable := (udNodeList[usNodeIxReader1] > 0);
IF (FUB_FrameXOpen1.status = frmERR_OK) THEN
FUB_FrameWrite1.ident := FUB_FrameXOpen1.ident;
FUB_FrameRead1.ident := FUB_FrameXOpen1.ident;
FUB_FrameReleaseBuffer1.ident := FUB_FrameXOpen1.ident;
FUB_FrameXOpen1.enable := 0;
enStepReader1 := enRFIDReaderStep_INIT_READER;
END_IF
//Get USB Nodelist
//---------------------------
enRFIDReaderStep_INIT_READER:
// Register Write:
// 5V operation, RF output active, full power; ISO 15693, low bit rate, 6.62 kbps, one subcarrier, 1 out OF 4
//
// 10 00 21 01 00
// | | | | |
// | | | | Value Register 0x01
// | | | ISO Control Register (0x01)
// | | Value Register 0x00
// | Chip Status Control Register (0x00)
// Register Write Cmd
// Set Protocol, 1 out OF 4, full power, low bit rate */
brsstrcpy (ADR (strWriteData[1]), ADR ('1000210100'));
brsstrcpy (ADR (strWriteDatalen[1]), ADR ('0C'));
uiReadAnswer[1] := 1;
enStepReader1 := enRFIDReaderStep_WRITE;
//IDLE
//---------------------------
enRFIDReaderStep_IDLE:
CASE enCmd1 OF
enRFIDCMD_NONE:
enRFIDCMD_READ_INVENTORY:
// Inventory
// 14 04 01 00
// | | | |
// | | | Mask Length
// | | Anticollision Cmd
// | Flags (Inventory flag = 1, HDR = 0)
// Inventory request
// inventory 16 slot
brsstrcpy (ADR (strWriteData[1]), ADR ('14040100'));
brsstrcpy (ADR (strWriteDatalen[1]), ADR ('0B'));
uiReadAnswer[1] := 16; // 16 slot answer
enStepReader1 := enRFIDReaderStep_WRITE;
enRFIDCMD_READ_SYSINFO:
// Read System Info
// 18 00 2B
// | | |
// | | Get System Info Cmd
// | Flags (Option = 0, HDR = 0)
// Request Cmd
brsstrcpy (ADR (strWriteData[1]), ADR ('18002B'));
brsstrcpy (ADR (strWriteDatalen[1]), ADR ('0A'));
uiReadAnswer[1] := 1;
enStepReader1 := enRFIDReaderStep_WRITE;
enRFIDCMD_READ_SBLOCK:
// Read Single Block
// 18 02 20
// | | |
// | | Read Single Block Cmd
// | Flags (Option = 1, HDR = 0)
// Request Cmd
//
// Option = 1: Return block security status
brsstrcpy (ADR (strWriteData[1]), ADR ('184020')); // read block #1
uiLength := brsitoa (usBlockNr, ADR (strTemp));
IF (uiLength = 1) THEN
brsstrcat (ADR (strWriteData[1]), ADR ('0'));
END_IF
brsstrcat (ADR (strWriteData[1]), ADR (strTemp));
brsstrcpy (ADR (strWriteDatalen[1]), ADR ('0B'));
uiReadAnswer[1] := 1;
enStepReader1 := enRFIDReaderStep_WRITE;
enRFIDCMD_WRITE_SBLOCK:
// Write Single Block
// 18 00 21
// | | |
// | | Write Single Block Cmd
// | Flags (Option = 0, HDR = 0)
// Request Cmd
brsstrcpy (ADR (strWriteData[1]), ADR ('180021')); // write block #1 (Data = 0x12345678)
uiLength := brsitoa (usBlockNr, ADR (strTemp));
IF (uiLength = 1) THEN
brsstrcat (ADR (strWriteData[1]), ADR ('0'));
END_IF
UDINTtoASC (ADR (strWriteData[1]) + 8, udWriteData);
brsstrcpy (ADR (strWriteDatalen[1]), ADR ('0F'));
uiReadAnswer[1] := 1;
enStepReader1 := enRFIDReaderStep_WRITE;
enRFIDCMD_WRITE_AFI:
// Write AFI
// 18 00 30
// | | |
// | | Get System Info Cmd
// | Flags (Option = 0, HDR = 0)
// Request Cmd
brsstrcpy (ADR (strWriteData[1]), ADR ('18002730')); // write AFI (0x30 = Identification)
brsstrcpy (ADR (strWriteDatalen[1]), ADR ('0B'));
uiReadAnswer[1] := 1;
enStepReader1 := enRFIDReaderStep_WRITE;
enRFIDCMD_WRITE_DFSID:
// Write DSFID
// 18 00 29
// | | |
// | | Write DSFID Cmd
// | Flags (Option = 0, HDR = 0)
// Request Cmd
brsstrcpy (ADR (strWriteData[1]), ADR ('18002918')); // write DSFID 0x18
brsstrcpy (ADR (strWriteDatalen[1]), ADR ('0B'));
uiReadAnswer[1] := 1;
enStepReader1 := enRFIDReaderStep_WRITE;
END_CASE
//WRITE
//---------------------------
enRFIDReaderStep_WRITE:
// initialize write structure */
//Frame Start
brsstrcpy (ADR (strWriteTelegram[1]), ADR ('01'));
//Length
brsstrcat (ADR (strWriteTelegram[1]), ADR (strWriteDatalen[1]));
//Const 00 + Start of Payload
brsstrcat (ADR (strWriteTelegram[1]), ADR ('000304'));
brsstrcat (ADR (strWriteTelegram[1]), ADR (strWriteData[1]));
//Frame End + \n $r$n
brsstrcat (ADR (strWriteTelegram[1]), ADR ('0000'));
FUB_FrameWrite1.buffer := ADR (strWriteTelegram[1]);
FUB_FrameWrite1.buflng := UDINT_TO_UINT (brsstrlen (ADR (strWriteTelegram[1])));
FUB_FrameWrite1.enable := 1;
IF (FUB_FrameWrite1.status = frmERR_OK) THEN
enStepReader1 := enRFIDReaderStep_READ;
FUB_FrameWrite1.enable := 0;
uiReadCount[1] := 0;
END_IF
//READ
//---------------------------
enRFIDReaderStep_READ:
// initialize read structure
FUB_FrameRead1.enable := 1;
pReadBuffer[1] := FUB_FrameRead1.buffer; // get adress OF read buffer */
uiReadBufferLength[1] := FUB_FrameRead1.buflng; // get length OF read buffer */
IF (FUB_FrameRead1.status = frmERR_NOINPUT) THEN
enStepReader1 := enRFIDReaderStep_WRITE; //Wiederholen
ELSIF (FUB_FrameRead1.status = frmERR_OK) THEN
udTemp := 0;
brsmemset (ADR (strReadData[1]), 0, SIZEOF (strReadData[1]));
brsmemcpy (ADR (strReadData[1]), pReadBuffer[1], uiReadBufferLength[1]); // copy read data into array */
IF (uiReadBufferLength[1] > 7) THEN
brsstrcpy (ADR (strReadTag[1]), ADR (strReadData[1])); // copy read data into Tag array */
END_IF
IF (uiReadBufferLength[1] = 16) THEN
udTemp := ASCtoUDINT (ADR (strReadData[1]) + 5, FALSE);
END_IF
IF (uiReadBufferLength[1] >= 23) THEN
//TagID Slot
udTemp := ASCtoUDINT (ADR (strReadData[1]) + 2, TRUE);
END_IF
// initialize release buffer structure */
FUB_FrameReleaseBuffer1.enable := 1;
FUB_FrameReleaseBuffer1.buffer := pReadBuffer[1];
FUB_FrameReleaseBuffer1.buflng := uiReadBufferLength[1];
FUB_FrameReleaseBuffer1 ();
uiReadCount[1] := uiReadCount[1] + 1;
IF udTemp > 0 THEN
gudRFIDReader1ID := udTemp;
udSave := udTemp;
END_IF
IF (uiReadCount[1] = uiReadAnswer[1]) THEN
FUB_FrameRead1.enable := 0;
enStepReader1 := enRFIDReaderStep_IDLE;
enCmd1 := enRFIDCMD_NONE;
END_IF
END_IF
END_CASE
CASE enStepReader2 OF
//Init
//---------------------------
enRFIDReaderStep_INIT:
IF (usNodeIxReader2 < 55) AND (NEEDED_DEVICES >= 2) THEN
enStepReader2 := enRFIDReaderStep_USB_DVDEVOPEN;
END_IF;
//Open Reader Devicer
//---------------------------
enRFIDReaderStep_USB_DVDEVOPEN:
// initialize open structure */
FUB_FrameXOpen2.device :=ADR (usbDevice[usNodeIxReader2].ifName);
FUB_FrameXOpen2.mode := 0;
FUB_FrameXOpen2.config := 0;
FUB_FrameXOpen2.enable := (udNodeList[usNodeIxReader2] > 0);
IF (FUB_FrameXOpen2.status = frmERR_OK) THEN
FUB_FrameWrite2.ident := FUB_FrameXOpen2.ident;
FUB_FrameRead2.ident := FUB_FrameXOpen2.ident;
FUB_FrameReleaseBuffer2.ident := FUB_FrameXOpen2.ident;
FUB_FrameXOpen2.enable := 0;
enStepReader2 := enRFIDReaderStep_INIT_READER;
END_IF
//Get USB Nodelist
//---------------------------
enRFIDReaderStep_INIT_READER:
// Register Write:
// 5V operation, RF output active, full power; ISO 15693, low bit rate, 6.62 kbps, one subcarrier, 1 out OF 4
//
// 10 00 21 01 00
// | | | | |
// | | | | Value Register 0x01
// | | | ISO Control Register (0x01)
// | | Value Register 0x00
// | Chip Status Control Register (0x00)
// Register Write Cmd
// Set Protocol, 1 out OF 4, full power, low bit rate */
brsstrcpy (ADR (strWriteData[2]), ADR ('1000210100'));
brsstrcpy (ADR (strWriteDatalen[2]), ADR ('0C'));
uiReadAnswer[2] := 1;
enStepReader2 := enRFIDReaderStep_WRITE;
//IDLE
//---------------------------
enRFIDReaderStep_IDLE:
CASE enCmd2 OF
enRFIDCMD_NONE:
enRFIDCMD_READ_INVENTORY:
// Inventory
// 14 04 01 00
// | | | |
// | | | Mask Length
// | | Anticollision Cmd
// | Flags (Inventory flag = 1, HDR = 0)
// Inventory request
// inventory 16 slot
brsstrcpy (ADR (strWriteData[2]), ADR ('14040100'));
brsstrcpy (ADR (strWriteDatalen[2]), ADR ('0B'));
uiReadAnswer[2] := 16; // 16 slot answer
enStepReader2 := enRFIDReaderStep_WRITE;
enRFIDCMD_READ_SYSINFO:
// Read System Info
// 18 00 2B
// | | |
// | | Get System Info Cmd
// | Flags (Option = 0, HDR = 0)
// Request Cmd
brsstrcpy (ADR (strWriteData[2]), ADR ('18002B'));
brsstrcpy (ADR (strWriteDatalen[2]), ADR ('0A'));
uiReadAnswer[2] := 1;
enStepReader2 := enRFIDReaderStep_WRITE;
enRFIDCMD_READ_SBLOCK:
// Read Single Block
// 18 02 20
// | | |
// | | Read Single Block Cmd
// | Flags (Option = 1, HDR = 0)
// Request Cmd
//
// Option = 1: Return block security status
brsstrcpy (ADR (strWriteData[2]), ADR ('184020')); // read block #1
uiLength := brsitoa (usBlockNr, ADR (strTemp));
IF (uiLength = 1) THEN
brsstrcat (ADR (strWriteData[2]), ADR ('0'));
END_IF
brsstrcat (ADR (strWriteData[2]), ADR (strTemp));
brsstrcpy (ADR (strWriteDatalen[2]), ADR ('0B'));
uiReadAnswer[2] := 1;
enStepReader2 := enRFIDReaderStep_WRITE;
enRFIDCMD_WRITE_SBLOCK:
// Write Single Block
// 18 00 21
// | | |
// | | Write Single Block Cmd
// | Flags (Option = 0, HDR = 0)
// Request Cmd
brsstrcpy (ADR (strWriteData[2]), ADR ('180021')); // write block #1 (Data = 0x12345678)
uiLength := brsitoa (usBlockNr, ADR (strTemp));
IF (uiLength = 1) THEN
brsstrcat (ADR (strWriteData[2]), ADR ('0'));
END_IF
UDINTtoASC (ADR (strWriteData[2]) + 8, udWriteData);
brsstrcpy (ADR (strWriteDatalen[2]), ADR ('0F'));
uiReadAnswer[2] := 1;
enStepReader2 := enRFIDReaderStep_WRITE;
enRFIDCMD_WRITE_AFI:
// Write AFI
// 18 00 30
// | | |
// | | Get System Info Cmd
// | Flags (Option = 0, HDR = 0)
// Request Cmd
brsstrcpy (ADR (strWriteData[2]), ADR ('18002730')); // write AFI (0x30 = Identification)
brsstrcpy (ADR (strWriteDatalen[2]), ADR ('0B'));
uiReadAnswer[2] := 1;
enStepReader2 := enRFIDReaderStep_WRITE;
enRFIDCMD_WRITE_DFSID:
// Write DSFID
// 18 00 29
// | | |
// | | Write DSFID Cmd
// | Flags (Option = 0, HDR = 0)
// Request Cmd
brsstrcpy (ADR (strWriteData[2]), ADR ('18002918')); // write DSFID 0x18
brsstrcpy (ADR (strWriteDatalen[2]), ADR ('0B'));
uiReadAnswer[2] := 1;
enStepReader2 := enRFIDReaderStep_WRITE;
END_CASE
//WRITE
//---------------------------
enRFIDReaderStep_WRITE:
// initialize write structure */
//Frame Start
brsstrcpy (ADR (strWriteTelegram[2]), ADR ('01'));
//Length
brsstrcat (ADR (strWriteTelegram[2]), ADR (strWriteDatalen[2]));
//Const 00 + Start of Payload
brsstrcat (ADR (strWriteTelegram[2]), ADR ('000304'));
brsstrcat (ADR (strWriteTelegram[2]), ADR (strWriteData[2]));
//Frame End
brsstrcat (ADR (strWriteTelegram[2]), ADR ('0000'));
FUB_FrameWrite2.buffer := ADR (strWriteTelegram[2]);
FUB_FrameWrite2.buflng := UDINT_TO_UINT (brsstrlen (ADR (strWriteTelegram[2])));
FUB_FrameWrite2.enable := 1;
IF (FUB_FrameWrite2.status = frmERR_OK) THEN
enStepReader2 := enRFIDReaderStep_READ;
FUB_FrameWrite2.enable := 0;
uiReadCount[2] := 0;
END_IF
//READ
//---------------------------
enRFIDReaderStep_READ:
// initialize read structure
FUB_FrameRead2.enable := 1;
pReadBuffer[2] := FUB_FrameRead2.buffer; // get adress OF read buffer */
uiReadBufferLength[2] := FUB_FrameRead2.buflng; // get length OF read buffer */
IF (FUB_FrameRead2.status = frmERR_OK) THEN
udTemp := 0;
brsmemset (ADR (strReadData[2]), 0, SIZEOF (strReadData[2]));
brsmemcpy (ADR (strReadData[2]), pReadBuffer[2], uiReadBufferLength[2]); // copy read data into array */
IF (uiReadBufferLength[2] > 7) THEN
brsstrcpy (ADR (strReadTag[2]), ADR (strReadData[2])); // copy read data into Tag array */
END_IF
IF (uiReadBufferLength[2] = 16) THEN
udTemp := ASCtoUDINT (ADR (strReadData[2]) + 5, FALSE);
END_IF
IF (uiReadBufferLength[2] >= 23) THEN
//TagID Slot
udTemp := ASCtoUDINT (ADR (strReadData[2]) + 2, TRUE);
END_IF
// initialize release buffer structure */
FUB_FrameReleaseBuffer2.enable := 1;
FUB_FrameReleaseBuffer2.buffer := pReadBuffer[2];
FUB_FrameReleaseBuffer2.buflng := uiReadBufferLength[2];
FUB_FrameReleaseBuffer2 ();
uiReadCount[2] := uiReadCount[2] + 1;
IF udTemp > 0 THEN
gudRFIDReader2ID := udTemp;
END_IF
IF (uiReadCount[2] = uiReadAnswer[2]) THEN
FUB_FrameRead2.enable := 0;
enStepReader2 := enRFIDReaderStep_IDLE;
enCmd2 := enRFIDCMD_NONE;
END_IF
END_IF
END_CASE
TON_Read1.IN := (enStepReader1 = enRFIDReaderStep_IDLE) AND (enCmd1 = enRFIDCMD_NONE) AND (NEEDED_DEVICES >= 1);
TON_Read1.PT := t#1s;
TON_Read1 ();
IF TON_Read1.Q THEN
enCmd1 := enRFIDCMD_READ_INVENTORY;
END_IF
TON_Read2.IN := (enStepReader2 = enRFIDReaderStep_IDLE) AND (enCmd2 = enRFIDCMD_NONE) AND (NEEDED_DEVICES >= 2);
TON_Read2.PT := t#1s;
TON_Read2 ();
IF TON_Read2.Q THEN
enCmd2 := enRFIDCMD_READ_INVENTORY;
END_IF
TON_Read3.IN := (enStepReader3 = enRFIDReaderStep_IDLE) AND (enCmd3 = enRFIDCMD_NONE AND (NEEDED_DEVICES >= 3));
TON_Read3.PT := t#1s;
TON_Read3 ();
IF TON_Read3.Q THEN
enCmd3 := enRFIDCMD_READ_INVENTORY;
END_IF
TON_Read4.IN := (enStepReader4 = enRFIDReaderStep_IDLE) AND (enCmd4 = enRFIDCMD_NONE AND (NEEDED_DEVICES >= 4));
TON_Read4.PT := t#1s;
TON_Read4 ();
IF TON_Read4.Q THEN
enCmd4 := enRFIDCMD_READ_INVENTORY;
END_IF
//Call FUBs
FUB_FrameRead1 ();
FUB_FrameRead2 ();
FUB_FrameRead3 ();
FUB_FrameRead4 ();
FUB_FrameWrite1 ();
FUB_FrameWrite2 ();
FUB_FrameWrite3 ();
FUB_FrameWrite4 ();
FUB_FrameXOpen1 ();
FUB_FrameXOpen2 ();
FUB_FrameXOpen3 ();
FUB_FrameXOpen4 ();
FUB_UsbNodeGet ();
FUB_UsbNodeListGet ();
FUB_UsbDescriptorGet ();
END_PROGRAM
PROGRAM _EXIT
(* TODO : Add your code here *)
END_PROGRAM

View File

@@ -0,0 +1,30 @@
TYPE
typ_enStepRFID :
( (*Schritte RFID Leser*)
enRFIDStep_INIT, (*Init -> Search Reader*)
enRFIDStep_USB_GETNODELIST, (*Get USB Devices*)
enRFIDStep_USB_SEARCHDEVICE, (*Search Reader in Devices*)
enRFIDStep_USB_READDEVDESCR, (*Get Device Descriptor*)
enRFIDStep_IDLE
);
typ_enCmdRFID :
(
enRFIDCMD_NONE,
enRFIDCMD_READ_INVENTORY,
enRFIDCMD_READ_SYSINFO,
enRFIDCMD_READ_SBLOCK,
enRFIDCMD_WRITE_SBLOCK,
enRFIDCMD_WRITE_AFI,
enRFIDCMD_WRITE_DFSID
);
typ_enStepRFIDReader :
( (*Schritte RFID Leser*)
enRFIDReaderStep_INIT, (*Init -> Search Reader*)
enRFIDReaderStep_USB_DVDEVOPEN, (*Open Reader*)
enRFIDReaderStep_INIT_READER, (*Initialize Reader*)
enRFIDReaderStep_IDLE, (*Wait for commands*)
enRFIDReaderStep_READ, (*READ from Reader*)
enRFIDReaderStep_WRITE (*WRITE to Reader*)
);
END_TYPE

View File

@@ -0,0 +1,71 @@
VAR
sizeUsbNode : USINT;
END_VAR
VAR RETAIN
usNodeIx : USINT;
END_VAR
VAR
usFoundReaders : USINT;
usNodeIxReader1 : USINT; (*Node Index Reader 1*)
usNodeIxReader2 : USINT; (*Node Index Reader 2*)
usNodeIxReader3 : USINT; (*Node Index Reader 3*)
usNodeIxReader4 : USINT; (*Node Index Reader 4*)
usBlockNr : USINT;
udSerialNr : ARRAY[0..31] OF UDINT;
uiReadAnswer : ARRAY[1..4] OF UINT;
uiReadBufferLength : ARRAY[1..4] OF UINT;
uiReadCount : ARRAY[1..4] OF UINT;
uiLength : UINT;
udAttachDetachCount : UDINT;
udNodeList : ARRAY[0..31] OF UDINT;
pReadBuffer : ARRAY[1..4] OF UDINT;
udTemp : UDINT;
udSave : UDINT;
udWriteData : UDINT;
strReadData : ARRAY[1..4] OF STRING[80];
strReadTag : ARRAY[1..4] OF STRING[80];
strDeviceDescr : ARRAY[1..4] OF WSTRING[80];
strWriteData : ARRAY[1..4] OF STRING[80];
strWriteDatalen : ARRAY[1..4] OF STRING[2];
strWriteTelegram : ARRAY[1..4] OF STRING[80];
strTemp : STRING[2];
enStep : typ_enStepRFID;
enStepReader1 : typ_enStepRFIDReader;
enStepReader2 : typ_enStepRFIDReader;
enStepReader3 : typ_enStepRFIDReader;
enStepReader4 : typ_enStepRFIDReader;
enCmd1 : {REDUND_UNREPLICABLE} typ_enCmdRFID;
enCmd2 : typ_enCmdRFID;
enCmd3 : typ_enCmdRFID;
enCmd4 : typ_enCmdRFID;
usbDevice : ARRAY[0..31] OF usbNode_typ;
FUB_FrameRead1 : FRM_read;
FUB_FrameRead2 : FRM_read;
FUB_FrameRead3 : FRM_read;
FUB_FrameRead4 : FRM_read;
FUB_FrameReleaseBuffer1 : FRM_rbuf;
FUB_FrameReleaseBuffer2 : FRM_rbuf;
FUB_FrameReleaseBuffer3 : FRM_rbuf;
FUB_FrameReleaseBuffer4 : FRM_rbuf;
FUB_FrameWrite1 : FRM_write;
FUB_FrameWrite2 : FRM_write;
FUB_FrameWrite3 : FRM_write;
FUB_FrameWrite4 : FRM_write;
FUB_FrameXOpen1 : FRM_xopen;
FUB_FrameXOpen2 : FRM_xopen;
FUB_FrameXOpen3 : FRM_xopen;
FUB_FrameXOpen4 : FRM_xopen;
FUB_UsbNodeGet : UsbNodeGet;
FUB_UsbNodeListGet : UsbNodeListGet;
FUB_UsbDescriptorGet : UsbDescriptorGet;
TON_Read1 : TON;
TON_Read2 : TON;
TON_Read3 : TON;
TON_Read4 : TON;
END_VAR
VAR CONSTANT
TRANSPONDER_FTDI_VENDOR_ID : UINT := 8137;
TRANSPONDER_FTDI_PRODUCT_ID : UINT := 17;
TRANSPONDER_FTDI_BCD : UINT := 256;
NEEDED_DEVICES : USINT := 1; (*4 RFID Leserverbaut*)
END_VAR

View File

@@ -0,0 +1,44 @@
FUNCTION UDINTtoASC
UDINTtoASC := udNextAdr + 8;
udNextAdr := udInNextAdr;
udValue := udInValue;
FOR usi:=7 TO 0 BY -1 DO
usChar := UDINT_TO_USINT (udValue MOD 16);
usChar := UDINT_TO_USINT (udValue / 16);
brsmemcpy (ADR (usChar), udNextAdr + usi, 1);
CASE usChar OF
0:
brsmemcpy (udNextAdr + usi, ADR ('0'), 1);
1:
brsmemcpy (udNextAdr + usi, ADR ('1'), 1);
2:
brsmemcpy (udNextAdr + usi, ADR ('2'), 1);
3:
brsmemcpy (udNextAdr + usi, ADR ('3'), 1);
4:
brsmemcpy (udNextAdr + usi, ADR ('4'), 1);
5:
brsmemcpy (udNextAdr + usi, ADR ('5'), 1);
6:
brsmemcpy (udNextAdr + usi, ADR ('6'), 1);
7:
brsmemcpy (udNextAdr + usi, ADR ('7'), 1);
8:
brsmemcpy (udNextAdr + usi, ADR ('8'), 1);
9:
brsmemcpy (udNextAdr + usi, ADR ('9'), 1);
10:
brsmemcpy (udNextAdr + usi, ADR ('A'), 1);
11:
brsmemcpy (udNextAdr + usi, ADR ('B'), 1);
12:
brsmemcpy (udNextAdr + usi, ADR ('C'), 1);
13:
brsmemcpy (udNextAdr + usi, ADR ('D'), 1);
14:
brsmemcpy (udNextAdr + usi, ADR ('E'), 1);
15:
brsmemcpy (udNextAdr + usi, ADR ('F'), 1);
END_CASE
END_FOR
END_FUNCTION

View File

@@ -0,0 +1,79 @@
TYPE
ACPinverter_typ : STRUCT (*Acopos Inverter*)
bModuleOK : BOOL;
In : ACPinverterIn_typ;
Out : ACPinverterOut_typ;
END_STRUCT;
ACPinverterIn_typ : STRUCT (*Acopos Inverter Inputs*)
bStat00_ReadytoSwitchOn : BOOL;
bStat01_SwitchedOnReady : BOOL;
bstat02_Enabled : BOOL;
bStat03_FaultDetecton : BOOL;
bStat04_VoltageDisabled : BOOL;
bStat05_QuickstopINV : BOOL;
bStat06_SwitchedOnDisabled : BOOL;
bStat07_Alarm : BOOL;
bStat09_ReferenceViaNetwork : BOOL;
bStat10_TargetReferenceReached : BOOL;
bStat11_InternalLimitActive : BOOL;
bStat14_StopViaKey : BOOL;
bStat15_RotationDirection : BOOL;
bExtStat00_EEPROM_NonVolatile : BOOL;
bExtStat01_ParameterConsCheck : BOOL;
bExtStat02_DriveInFault : BOOL;
bExtStat04_SpeedModeActive : BOOL;
bExtStat05_DCInjection : BOOL;
bExtStat06_TransientState : BOOL;
bExtStat07_ThermalTreshold : BOOL;
bExtStat08_Overbraking : BOOL;
bExtStat09_Accelerating : BOOL;
bExtStat10_Decellerating : BOOL;
bExtStat11_I_Limited : BOOL;
bExtStat12_FastStopping : BOOL;
bExtStat13_ExtControlled0 : BOOL;
bExtStat14_ExtCondrolled1 : BOOL;
bExtStat15_OperationDir : BOOL;
iRFRD_Velocity : INT;
iOTR_Torque : INT;
uiLCR_Current : UINT;
uiTHD_ThermalStateDrive : UINT;
uiTHR_ThermalStatMotor : UINT;
bInputLI1 : BOOL;
bInputLI2 : BOOL;
bInputLI3 : BOOL;
bInputLI4 : BOOL;
bRelay2State : BOOL;
uiErrorCode : UINT;
iLastFault : INT;
END_STRUCT;
ACPinverterOut_typ : STRUCT (*Acopos Inverter Outputs*)
bCmd00_SwitchOn : BOOL;
bCmd01_DisableVoltage : BOOL;
bCmd02_QuickStop : BOOL;
bCmd03_EnableOperation : BOOL;
bCmd07_ResetFault : BOOL;
bCmd11_Direction : BOOL;
bCmd12_StopCommand : BOOL;
bCmd13 : BOOL;
bCmd14 : BOOL;
bCmd15 : BOOL;
bCmi00_FactorySettings : BOOL;
bCmi01_SaveToEEPROM : BOOL;
bCmi03_ExternalFault : BOOL;
bCmi04_RampSwitching : BOOL;
bCmi09_FrequencyReference : BOOL;
bCmi13_LockOnStandstill : BOOL;
bCmi15_CheckParameterConsitency : BOOL;
iLFR_Setpointspeed : INT;
bOR_Relay2 : BOOL;
END_STRUCT;
PushButton_typ : STRUCT (*Leuchtringtaster*)
bInKeyStatus : BOOL; (*Taster - Status*)
bOuGreen : BOOL; (*Leuchtring Gr<47>n*)
bOuYellow : BOOL; (*Leuchtring Gelb*)
bOuRed : BOOL; (*Leuchtring Rot*)
bOuWhite : BOOL; (*Leuchtring Wei<65>*)
bOuBlue : BOOL; (*Leuchtring Blau (Optional)*)
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,130 @@
(*================================================================================================================*)
(*CPU (PWLnk Node 240)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
udSerialNr : UDINT; (*Seriennummer*)
guiTemperatureCPU : UINT; (*CPU Temperatur*)
guiTemperatureENV : UINT; (*Umgebungstemperatur*)
gdiSystemTime : DINT; (*Systemzeit [<5B>s]*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST3.IF1.ST16 - X67DI1371*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbST20ModuleOk : BOOL;
gPB1 : PushButton_typ; (*Leuchtringtaster 1*)
gPB2 : PushButton_typ; (*Leuchtringtaster 2*)
gPB3 : PushButton_typ; (*Leuchtringtaster 3*)
gPB4 : PushButton_typ; (*Leuchtringtaster 4*)
gPB5 : PushButton_typ; (*Leuchtringtaster 5*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST3.IF1.ST3 - SLX411 (51K1)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSLXModuleOk : BOOL;
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*Signals to Safe PLC*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSPLCResetEStop : BOOL; (*Reset Not-Halt*)
gbSPLCResetDoors : BOOL; (*Reset T<>ren*)
gbSPLCReadbackEstop : BOOL; (*R<>ckf<6B>hrkreis Not-Halt*)
END_VAR
(*gbSPLCReadbackSafety*)
(*R<>cklesesignale direkt von Eingang gemappt*)
(*----------------------------------------------------------------------------------------------------------------*)
(*Signals from Safe PLC*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSPLCInEstopOk : BOOL; (*Safety PLC E-Stop ist Ok*)
gbSPLCInDoorsOk : BOOL; (*Safety PLC T<>rkreis it Ok*)
gbSPLCInErrorReadBackEStop : BOOL; (*Safety PlC Fehler R<>ckf<6B>hrkreis Netzsch<63>tze (PV Mapping von DI)*)
END_VAR
(*gbSPLCInErrorReadBackSafety*)
VAR
guiSPLCInESTOPDiag : UINT; (*DiagnoseCode E-Stop*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*I/O from SLX*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSInEStop1Ok : BOOL; (*Sicherer Eingang 03/04 Equivalent - Nothalt Bedientableau Ok*)
gusST3FBK_2ChStatus12 : USINT; (*Status 2-kanal*)
gusST3FBK_2ChStatus34 : USINT; (*Status 2-kanal*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST3.IF1.ST4 - SC2212 (51K2)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSInMaintDoor1Ok : BOOL; (*Sicherer Eingang 01/02 Equivalent - Schutztuer 1 Ok*)
gbSOuMains4T1 : BOOL; (*Sicherer Ausgang 01 - Netzsch<63>tz Acopos Umrichter X*)
gbSOuMains6T1 : BOOL; (*Sicherer Ausgang 02 - Netzsch<63>tz Acopos Umrichter Y / S<>ge*)
gusST4FBK_2ChStatus12 : USINT; (*Status 2-kanal*)
gusST4FBK_2ChStatus34 : USINT; (*Status 2-kanal*)
gusST4FBK_2ChStatus56 : USINT; (*Status 2-kanal*)
guiST4FBK_StatusRestInhibit : UINT; (*Status Wiederanlaufsperre*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST3.IF1.ST5 - SO4110 (51K3)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSOuMains7M1 : BOOL; (*Sicherer Ausgang 01 - Netzsch<63>tz Hydraulikaggregat*)
gbSOuMains8M1 : BOOL; (*Sicherer Ausgang 012 - Netzsch<63>tz K<>hlpumpe*)
gudST5FBK_StatusRestInhibit : UDINT; (*Status Wiederanlaufsperre*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST3.IF1.ST6 - SO6530 (52K1)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSOuSafetyOk : BOOL; (*Sicherer Ausgang 01/02 Sicherheit Ok*)
END_VAR
(*IF1.ST3.IF1.ST7 - DI9371 (Eing<6E>nge Allgemein)*)
(*----------------------------------------------------------------------------------------------------------------*)
(*//E1-11 Meldeeing<6E>nge auf machine.st*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST6 - DI9371 (Eing<6E>nge Allgemein)*)
(*----------------------------------------------------------------------------------------------------------------*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST7 - DI9371 (Eing<6E>nge*)
(*----------------------------------------------------------------------------------------------------------------*)
(*//Nietbolzen GS*)
(*//gbInRobGripper1Closed*)
(*//gbInRobGripper1Open*)
(*//gbInRobGripper2Closed*)
(*//gbInRobGripper2Open*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST8 - DI9371 (Eing<6E>nge)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbInMaintDoor1Error : BOOL; (*Wartungst<73>r 1 Diagnose - Fehler*)
gbInMaintDoor1Closed : BOOL; (*Wartungst<73>r 1 Geschlossen - nicht verriegelt*)
gbInMaintDoor2Error : BOOL; (*Wartungst<73>r 2 Diagnose - Fehler*)
gbInMaintDoor2Closed : BOOL; (*Wartungst<73>r 1 Geschlossen - nicht verriegelt*)
gbInMaintDoor3Error : BOOL; (*Wartungst<73>r 3 Diagnose - Fehler*)
gbInMaintDoor3Closed : BOOL; (*Wartungst<73>r 3 Geschlossen - nicht verriegelt*)
END_VAR
(*/Spare*)
VAR
gbInMainAirOk : BOOL; (*Haupluft Druck Ok*)
gbInFdBackMainsInverters : BOOL; (*R<>ckf<6B>hrkreis Netzsch<63>tze Umrichter // PV Mapping auf PLC*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST9 - DI9371 (Eing<6E>nge)*)
(*----------------------------------------------------------------------------------------------------------------*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10 - X20DO9322*)
(*----------------------------------------------------------------------------------------------------------------*)
(*//gbOuEnableBunker*)
(*//gbOuEnablePott*)
VAR
gbOuMaintDoor1Lock : BOOL; (*Wartungst<73>r 1 Verriegeln*)
END_VAR
(*//1Spare*)
VAR
gbOuLightOn : BOOL; (*Anlagenbeleuchtung*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST11 - X20DO9322*)
(*----------------------------------------------------------------------------------------------------------------*)

View File

@@ -0,0 +1,14 @@
(*//Achsstrukturen*)
VAR
gAxisX : ACP10AXIS_typ;
gAxisY : ACP10AXIS_typ;
gAxisSaw : ACP10AXIS_typ;
END_VAR
(*Permanent*)
VAR RETAIN
gbAxisXCalibrated : {REDUND_UNREPLICABLE} BOOL; (*X-Achse kalibriert*)
gbAxisYCalibrated : {REDUND_UNREPLICABLE} BOOL; (*Y-Achse kalibriert*)
glrOffsetAxisX : {REDUND_UNREPLICABLE} LREAL; (*Referenzoffset X Achse*)
glrOffsetAxisY : {REDUND_UNREPLICABLE} LREAL; (*Referenzoffset X Achse*)
gCounter : gtyp_PartCounter; (*Z<>hler*)
END_VAR

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<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>
<Object Type="File" Description="Global variables Achsdefinitionen">Global_Axis.var</Object>
</Objects>
</Package>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,290 @@
VAR CONSTANT
mc5TH_ORDER_POLYNOMIAL : UINT := 4; (*motion rule*)
mcABOVE_WINDOW : USINT := 40; (*trigger event mode*)
mcABS : USINT := 1; (*encoder type*)
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;
mcACTUAL_POSITION : UINT := 1; (*position source for MPDC*)
mcACTUAL_VELOCITY : INT := 10; (*PLCopen motion parameter*)
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*)
mcAUT_POS_TOLERANCE : INT := 1009; (*PLCopen motion parameter*)
mcAUTOMAT_POS : USINT := 100; (*additional movement direction*)
mcAVERAGE : UINT := 2;
mcAVERAGE_WEIGHTED : UINT := 4;
mcAXIS_ERROR : USINT := 0;
mcAXIS_FACTOR : INT := 1007; (*PLCopen motion parameter*)
mcAXIS_FACTOR_MAPPING : INT := 1019; (*PLCopen motion parameter*)
mcAXIS_NETWORK_CYCLE_TIME: INT := 1018; (*PLCopen motion parameter*)
mcAXIS_PERIOD : INT := 1008; (*PLCopen motion parameter*)
mcAXIS_PERIOD_MAPPING : INT := 1020; (*PLCopen motion parameter*)
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;
mcCMD_ERROR : UINT := 1; (*error command*)
mcCMD_ERROR_COAST_TO_STANDSTILL : UINT := 5; (*error command*)
mcCMD_ERROR_INDUCTION_HALT : UINT := 6; (*error command*)
mcCMD_ERROR_STOP : UINT := 2; (*error command*)
mcCMD_ERROR_STOP_CTRL_OFF : UINT := 3; (*error command*)
mcCMD_ERROR_V_STOP_CTRL_OFF : UINT := 4; (*error command*)
mcCMD_WARNING : UINT := 0; (*error command *)
mcCOMMANDED_POSITION : INT := 1; (*PLCopen motion parameter*)
mcCOMMANDED_VELOCITY : INT := 11; (*PLCopen motion parameter*)
mcCONTINUE_CONTROLLER_OFF : UINT := 128; (* continue if controller is off *)
mcCORRECT_CURRENT_CYCLE : UINT := 32768; (*additive StartMode for MC_BR_CrossCutterControl*)
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*)
mcDEFAULT_MOVE_PARAMETERS : INT := 1012; (*PLCopen motion parameter*)
mcDIRECT : USINT := 7; (*start mode*)
mcDIR_DEPENDENT : UINT := 1; (*mode for MPDC*)
mcDIR_DEPENDENT_BACKLASH : UINT := 2; (*mode for MPDC*)
mcDIR_DEPENDENT_SET_POSITION : UINT := 5; (*mode for MPDC*)
mcDIR_INDEPENDENT : UINT := 3; (*mode for MPDC*)
mcDIR_INDEPENDENT_SPEED : UINT := 4; (*mode for MPDC*)
mcDIR_DEPENDENT_AX_POS : UINT := 257; (*mode for MPDC*)
mcDIR_DEPENDENT_BACKLASH_AX_POS : UINT := 258; (*mode for MPDC*)
mcDIR_DEPENDENT_SET_POS_AX_POS : UINT := 261; (*mode for MPDC*)
mcDIR_INDEPENDENT_AX_POS : UINT := 259; (*mode for MPDC*)
mcDIR_INDEPENDENT_SPEED_AX_POS : UINT := 260; (*mode for MPDC*)
mcDISTANCE_BASED : UINT := 0; (*basis for cam movement (e.g. for MC_BR_CamTransition)*)
mcDITHER : USINT := 32; (*setup mode*)
mcDITHER2 : USINT := 35; (*setup mode*)
mcEDGE_SENSITIVE : USINT := 4; (*additional mode for trigger event*)
mcENABLE : UINT := 2;
mcENABLE_LIMIT_NEG : INT := 5; (*PLCopen motion parameter*)
mcENABLE_LIMIT_POS : INT := 4; (*PLCopen motion parameter*)
mcENABLE_POS_LAG_MONITORING : INT := 6; (*PLCopen motion parameter*)
mcENCODER : USINT := 0; (*setup mode*)
mcENCODER_POSITION : UINT := 2; (*position source for MPDC*)
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*)
mcFINISH : UINT := 282;
mcFIRST_RM : UINT := 0;
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_BLOCK_DS : USINT := 14; (*homing mode *)
mcHOME_BLOCK_TORQUE : USINT := 13; (*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*)
mcINC : USINT := 2; (*encoder type*)
mcINC_ABS : USINT := 4; (*encoder type*)
mcINC_REF : USINT := 3; (*encoder type*)
mcINCLINED_SINE_CURVE : UINT := 5; (*motion rule*)
mcINTERVAL_EVENT : UINT := 16;
mcINVERSE : USINT := 255; (*encoder count direction*)
mcIPL_LINEAR : USINT := 1; (*interpolation mode*)
mcIPL_OFF : USINT := 0; (*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_INTERVAL : USINT := 0; (*start mode*)
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_ACCELERATION_APPL : INT := 13; (*PLCopen motion parameter*)
mcMAX_ACCELERATION_SYSTEM : INT := 12; (*PLCopen motion parameter*)
mcMAX_DECELERATION_APPL : INT := 15; (*PLCopen motion parameter*)
mcMAX_DECELERATION_SYSTEM : INT := 14; (*PLCopen motion parameter*)
mcMAX_IV_TIME : USINT := 8; (*additional mode for power evaluation*)
mcMAX_JERK : INT := 16; (*PLCopen motion parameter*)
mcMAX_LOAD_SYSTEM : INT := 1015; (*PLCopen motion parameter*)
mcMAX_POSITION_CHANGE : INT := 1016; (*PLCopen motion parameter*)
mcMAX_POSITION_LAG : INT := 7; (*PLCopen motion parameter*)
mcMAX_SLAVE_COMP_DISTANCE_NEG : UINT := 4; (*mode for automat compensation check*)
mcMAX_SLAVE_COMP_DISTANCE_POS : UINT := 3; (*mode for automat compensation check*)
mcMAX_VELOCITY_APPL : INT := 9; (*PLCopen motion parameter*)
mcMAX_VELOCITY_SYSTEM : INT := 8; (*PLCopen motion parameter*)
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*)
mcMOVE_ACCELERATION_NEG : INT := 1005; (*PLCopen motion parameter*)
mcMOVE_ACCELERATION_POS : INT := 1003; (*PLCopen motion parameter*)
mcMOVE_CYCL_POS_IPL_MODE : INT := 1010; (*PLCopen motion parameter*)
mcMOVE_CYCL_VEL_IPL_MODE : INT := 1011; (*PLCopen motion parameter*)
mcMOVE_DECELERATION_NEG : INT := 1006; (*PLCopen motion parameter*)
mcMOVE_DECELERATION_POS : INT := 1004; (*PLCopen motion parameter*)
mcMOVE_VELOCITY_NEG : INT := 1002; (*PLCopen motion parameter*)
mcMOVE_VELOCITY_POS : INT := 1001; (*PLCopen motion parameter*)
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*)
mcNETWORK_CYCLE_TIME: INT := 1017; (*PLCopen motion parameter*)
mcNO_CHANGE_COMP : USINT := 2;
mcNO_EVENTS : USINT := 253; (*event index*)
mcNO_STATES : USINT := 253;
mcNO_PARAMS : USINT := 253; (*parameter index*)
mcNO_POSITION : USINT := 0;
mcNO_START_COMP : USINT := 1;
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*)
mcOVERRIDE : INT := 1000; (*PLCopen motion parameter*)
mcP_EDGE : USINT := 0;
mcPASSIVE : UINT := 4; (*setup mode*)
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*)
mcRELATIVE_NO_RESET : USINT := 3; (*start mode*)
mcRESET : UINT := 320; (*trace command*)
mcRESET_RING_STARTIDX : UINT := 4416; (*trace command (0x1000 + 0x0140)*)
mcRESTART : UINT := 273; (*StartMode for MC_BR_CrossCutterControl*)
mcREVERSE : UINT := 8;
mcSATURATION : USINT := 30; (*setup mode*)
mcSAVE : UINT := 341; (*trace command*)
mcSAVE_RING_STARTIDX : UINT := 4437; (*trace command (0x1000 + 0x0155)*)
mcSE : UINT := 3;
mcSET_GEN_ONLY : UINT := 1024; (*simulation with only set value generation*)
mcSET_OFFSET : USINT := 34; (*setup mode*)
mcSET_POSITION : UINT := 0; (*position source for MPDC*)
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*)
mcSIGNAL_CHIRP : UINT := 1; (*excitation signal type for controller setup*)
mcSIGNAL_CHIRP_TRAPEZOID : UINT := 2; (*excitation signal type for controller setup*)
mcSIGNAL_PRBS : UINT := 0; (*excitation signal type for controller setup*)
mcSIMPLE_SINE_CURVE : UINT := 3; (*motion rule*)
mcSIMULATION_INIT : UINT := 512; (*initialize simulation parameters*)
mcSIMULATION_OFF : UINT := 259; (*switch off simulation mode*)
mcSIMULATION_ON : UINT := 258; (*switch on simulation mode*)
mcSIMULATION_READ : UINT := 265; (*read calculated simulation parameters*)
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*)
mcSTANDARD : USINT := 0; (*encoder count direction*)
mcSTART : UINT := 260;
mcSTART_N_FLANK : UINT := 128; (*start MPDC at negative flank*)
mcSTART_ONLY : USINT := 3; (*power evaluation mode*)
mcSTART_P_FLANK : UINT := 0; (*start MPDC at positive flank*)
mcSTEPPER : USINT := 31; (*setup mode*)
mcSTOP : UINT := 261;
mcSTOP_INDEX : INT := 1013; (*PLCopen motion parameter*)
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_MONITORING : INT := 1014; (*PLCopen motion parameter*)
mcSW_END_SPF : REAL := 2.0; (*SW end monitoring mode*)
mcSW_LIMIT_NEG : INT := 3; (*PLCopen motion parameter*)
mcSW_LIMIT_POS : INT := 2; (*PLCopen motion parameter*)
mcSWITCH_OFF : UINT := 259; (*trace command*)
mcSWITCH_ON : UINT := 258; (*trace command*)
mcT_FILTER : UINT := 64; (*setup mode*)
mcT_FILTER_2 : UINT := 65; (*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;
mcTUNE_FBCTRL_MODEL_1MASS : UINT := 12288; (*setup mode*)
mcTUNE_FBCTRL_MODEL_2MASS : UINT := 8192; (*setup mode*)
mcTUNE_MODEL_2MASS : UINT := 32768; (*setup mode*)
mcTUNE_STANDSTILL : USINT := 0; (*constant for OperatingPoint*)
mcTUNE_TN : UINT := 16; (*setup mode*)
mcTUNE_V_CONSTANT : USINT := 1; (*constant for OperatingPoint*)
mcUNEQUAL : UINT := 5;
mcUPDATE_PERIOD : UINT := 16#8000; (*input for MC_BR_TouchProbe*)
mcUSE_AXIS_PERIOD : UINT := 16#4000; (*input for MC_BR_TouchProbe*)
mcUSE_FILTER_PAR : UINT := 4; (*setup mode *)
mcUSE_FIRST_TRIGGER_POS : UINT := 64; (*additional input for MC_BR_TouchProbe*)
mcUSE_STOP_COMP : USINT := 4;
mcUSE_TN : UINT := 8; (*setup mode*)
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*)
mcWITHIN_PERIOD : USINT := 6; (*synchronization mode*)
mcWITHOUT_PERIOD : UINT := 4; (*input for MC_BR_TouchProbe*)
mcWITH_FF : USINT := 0; (*torque limit mode*)
mcWITHOUT_FF : USINT := 1; (*torque limit mode*)
mcWRAP : UINT := 2;
mcWRITE_DIRECT : UINT := 256; (*cyclic write mode*)
END_VAR

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<Library Version="5.14.2" SubType="binary" Description="PLCopen Motion Control function blocks" xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>acp10_mc.fun</File>
<File>acp10_mc.typ</File>
<File>acp10_mc.var</File>
</Files>
<Dependencies>
<Dependency ObjectName="Sys_lib" FromVersion="0.00.0" />
<Dependency ObjectName="Brsystem" FromVersion="0.00.0" />
<Dependency ObjectName="Acp10man" FromVersion="5.14.2" ToVersion="5.14.2" />
</Dependencies>
</Library>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<Library Version="5.14.2" SubType="Binary" Description="Motion Control Manager" xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>Acp10man.typ</File>
</Files>
<Dependencies>
<Dependency ObjectName="Acp10par" FromVersion="5.14.2" ToVersion="5.14.2" />
<Dependency ObjectName="Ncglobal" FromVersion="5.14.2" ToVersion="5.14.2" />
</Dependencies>
</Library>

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<Library Version="5.14.2" SubType="Binary" Description="ACOPOS Parameters" xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>Acp10par.var</File>
</Files>
</Library>

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,307 @@
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogCreate (*creates an event log module; asynchronous execution *)
VAR_INPUT
Execute : BOOL; (*enables execution*)
Name : STRING[256]; (*name of the event log module*)
Size : UDINT; (*size of the event log module*)
Persistence : USINT; (*persistence type of the log module*)
Info : UDINT; (*format of the additional data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution running*)
Error : BOOL; (*execution failed*)
StatusID : DINT; (*execution error: see help*)
Ident : ArEventLogIdentType; (*ident for the event log module*)
END_VAR
VAR
Internal : ArEventLogAsyncInternalType;(*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogDelete (*deletes an event log module; asynchronous execution *)
VAR_INPUT
Execute : BOOL; (*enables execution*)
Ident : ArEventLogIdentType; (*ident for the event log module*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution running*)
Error : BOOL; (*execution failed*)
StatusID : DINT; (*execution error: see help*)
END_VAR
VAR
Internal : ArEventLogAsyncInternalType;(*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogGetIdent (*gets identifier of an event log module*)
VAR_INPUT
Execute : BOOL; (*enables execution*)
Name : STRING[256]; (*name of the event log module*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Error : BOOL; (*execution failed*)
StatusID : DINT; (*execution error: see help*)
Ident : ArEventLogIdentType; (*identifier of the event log module*)
END_VAR
VAR
Internal : ArEventLogInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogWrite (*writes a log entry to an event log module*)
VAR_INPUT
Execute : BOOL; (*enables execution*)
Ident : ArEventLogIdentType; (*ident for the event log module to be written*)
EventID : DINT; (*event id of the log entry*)
OriginRecordID : ArEventLogRecordIDType; (*record id of basic cause of error/warning, or 0*)
ObjectID : STRING[36]; (*object id - string of maximum 35 characters, string length of 0 object id is generated internally*)
AddDataSize : UDINT; (*size of the additional data, or 0 (no additional data)*)
AddDataFormat : USINT; (*format of the additional data*)
AddData : UDINT; (*additional data of the entry given as pointer, or 0 (no additional data)*)
TimeStamp : UDINT; (*external timestamp given as pointer to ArEventLogTimeStampType, or 0 (timestamp is taken internally)*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Error : BOOL; (*execution failed*)
StatusID : DINT; (*execution error: see help*)
RecordID : ArEventLogRecordIDType; (*id of current record*)
END_VAR
VAR
Internal : ArEventLogInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogGetLatestRecordID (*gets latest record id*)
VAR_INPUT
Execute : BOOL; (*enables execution*)
Ident : ArEventLogIdentType; (*ident for the event log module to be written*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Error : BOOL; (*execution failed*)
StatusID : DINT; (*execution error: see help*)
RecordID : ArEventLogRecordIDType; (*latest record id to read*)
END_VAR
VAR
Internal : ArEventLogInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogGetPreviousRecordID (*gets previous record id*)
VAR_INPUT
Execute : BOOL; (*enables execution*)
Ident : ArEventLogIdentType; (*ident for the event log module to be written*)
RecordID : ArEventLogRecordIDType; (*current record id*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Error : BOOL; (*execution failed*)
StatusID : DINT; (*execution error: see help*)
PrevRecordID : ArEventLogRecordIDType; (*previous record id to read*)
END_VAR
VAR
Internal : ArEventLogInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogRead (*reads a log entry from an event log module*)
VAR_INPUT
Execute : BOOL; (*enables execution*)
Ident : ArEventLogIdentType; (*ident for the event log module to be written*)
RecordID : ArEventLogRecordIDType; (*record id to read*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Error : BOOL; (*execution failed*)
StatusID : DINT; (*execution error: see help*)
EventID : DINT; (*event id of the log entry*)
OriginRecordID : ArEventLogRecordIDType; (*record id of basic cause of error/warning, or 0*)
AddDataFormat : USINT; (*format of the additional data*)
AddDataSize : UDINT; (*size of the additional data*)
TimeStamp : ArEventLogTimeStampType; (*timestamp*)
END_VAR
VAR
Internal : ArEventLogInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogReadDescription (*reads a description of an event id*)
VAR_INPUT
Execute : BOOL; (*enables execution*)
Ident : ArEventLogIdentType; (*ident for the event log module to be written*)
RecordID : ArEventLogRecordIDType; (*record id to read*)
LanguageCode : ArEventLogLanguageCodeType;(*language id of description*)
Qualifier : STRING[250]; (*additional qualifier - reserved for future use*)
TextBuffer : UDINT; (*buffer for description*)
TextBufferSize : UDINT; (*maximum description size*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution running*)
Error : BOOL; (*execution failed*)
StatusID : DINT; (*execution error: see help*)
TextSize : UDINT; (*size of description (including 0-termination)*)
END_VAR
VAR
Internal : ArEventLogAsyncInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogReadErrorNumber (*reads an error number log entry from an event log module*)
VAR_INPUT
Execute : BOOL; (*enables execution*)
Ident : ArEventLogIdentType; (*ident for the event log module to be written*)
RecordID : ArEventLogRecordIDType; (*record id to read*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Error : BOOL; (*execution failed*)
StatusID : DINT; (*execution error: see help*)
ErrorNumber : UDINT; (*error number of the log entry*)
Severity : USINT; (*severity of the log entry*)
END_VAR
VAR
Internal : ArEventLogInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogReadAddData (*reads the additional data from an event log module*)
VAR_INPUT
Execute : BOOL; (*enables execution*)
Ident : ArEventLogIdentType; (*ident for the event log module to be written*)
RecordID : ArEventLogRecordIDType; (*record id to read*)
AddData : UDINT; (*buffer for additional data given as pointer*)
BytesToRead : UDINT; (*buffer size for additional data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Error : BOOL; (*execution failed*)
StatusID : DINT; (*execution status: see help*)
AddDataSize : UDINT; (*size of the additional data*)
END_VAR
VAR
Internal : ArEventLogInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogReadObjectID (*reads the object id from an event log module*)
VAR_INPUT
Execute : BOOL; (*enables execution*)
Ident : ArEventLogIdentType; (*ident for the event log module to be written*)
RecordID : ArEventLogRecordIDType; (*record id to read*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Error : BOOL; (*execution failed*)
StatusID : DINT; (*execution error: see help*)
ObjectID : STRING[36]; (*object id - string of maximum 35 characters*)
END_VAR
VAR
Internal : ArEventLogInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_OK} FUNCTION ArEventLogMakeEventID : DINT (*makes an event id*)
VAR_INPUT
Severity : USINT; (*severity code of event id*)
Facility : UINT; (*facility of event id*)
ErrorCode : UINT; (*error code of event id*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION ArEventLogIsError : BOOL (*returns true if event id is an error entry*)
VAR_INPUT
EventID : DINT; (*event id*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION ArEventLogIsWarning : BOOL (*returns true if event id is a warning entry*)
VAR_INPUT
EventID : DINT; (*event id*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION ArEventLogIsInformation : BOOL (*returns true if event id is a information entry*)
VAR_INPUT
EventID : DINT; (*event id*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION ArEventLogIsSuccess : BOOL (*returns true if event id is a success entry*)
VAR_INPUT
EventID : DINT; (*event id*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION ArEventLogIsCustomerArea : BOOL (*returns true if the customer flag of the event id is set*)
VAR_INPUT
EventID : DINT; (*event id*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataInit : BOOL (*returns true on success, false on failure*)
VAR_INPUT
Buffer : UDINT; (*buffer for additional event log data*)
BufferSize : UDINT; (*buffer size*)
Format : USINT; (*format of the additional data*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataUdint : BOOL (*returns true on success, false on failure*)
VAR_INPUT
Buffer : UDINT; (*buffer for additional event data*)
BufferSize : UDINT; (*buffer size*)
Value : UDINT; (*UDINT value*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataDint : BOOL (*returns true on success, false on failure*)
VAR_INPUT
Buffer : UDINT; (*buffer for additional event data*)
BufferSize : UDINT; (*buffer size*)
Value : DINT; (*DINT value*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataString : BOOL (*returns true on success, false on failure*)
VAR_INPUT
Buffer : UDINT; (*buffer for additional event log data*)
BufferSize : UDINT; (*buffer size*)
Value : UDINT; (*STRING value, given as pointer to null terminated string*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataQuantity : BOOL (*returns true on success, false on failure*)
VAR_INPUT
Buffer : UDINT; (*buffer for additional event log data*)
BufferSize : UDINT; (*buffer size*)
Value : LREAL; (*LREAL value*)
UnitID : DINT; (*unit ID, -1 no unit*)
NamespaceURI : UDINT; (*namespace URI given as pointer to null terminated string, null is default namespace (CEFACT)*)
END_VAR
END_FUNCTION

View File

@@ -0,0 +1,20 @@
TYPE
ArEventLogIdentType : UDINT;
ArEventLogRecordIDType : UDINT;
ArEventLogLanguageCodeType : STRING[18]; (*String-type for language ID*)
ArEventLogTimeStampType : STRUCT
sec : UDINT; (*seconds*)
nsec : UDINT; (*nano seconds*)
END_STRUCT;
ArEventLogAsyncInternalType : STRUCT
FBStateCtx : ArFBStateInternalType;
AsyFuMaCtx : ArFBAsyFuMaInternalType;
END_STRUCT;
ArEventLogInternalType : STRUCT
FBStateCtx : ArFBStateInternalType;
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,42 @@
VAR CONSTANT
arEVENTLOG_ERR_PARAMETER : DINT := -1070586096; (*obsolete - invalid parameters specified*)
arEVENTLOG_ERR_RECORDID_INVALID : DINT := -1070586096; (*no record with the given id exists in the logbook*)
arEVENTLOG_ERR_EXISTING : DINT := -1070586095; (*obsolete- log module already exists*)
arEVENTLOG_ERR_LOGBOOK_EXISTS : DINT := -1070586095; (*a logbook with the given name already exists*)
arEVENTLOG_ERR_INTERNAL : DINT := -1070586094; (*unexpected internal error*)
arEVENTLOG_ERR_NAME_INVALID : DINT := -1070586093; (*the given name is invalid (empty)*)
arEVENTLOG_ERR_SIZE_INVALID : DINT := -1070586092; (*the given size is smaller than the minimum size of a logbook*)
arEVENTLOG_ERR_PERSISTENCE_INVAL : DINT := -1070586091; (*the given persistence level is unknown*)
arEVENTLOG_ERR_IDENT_INVALID : DINT := -1070586090; (*the given ident is invalid (NULL)*)
arEVENTLOG_ERR_IDENT_SYSTEM : DINT := -1070586089; (*access denied, the given ident belongs to a system logbook*)
arEVENTLOG_ERR_EVENTID_INVALID : DINT := -1070586088; (*the given event id is no customer event id*)
arEVENTLOG_ERR_LOGBOOK_NOT_FOUND : DINT := -1070586087; (*a logbook with the given name does not exist*)
arEVENTLOG_ERR_ADDDATA_NULL : DINT := -1070586086; (*the given pointer to the additional data buffer is NULL*)
arEVENTLOG_ERR_NO_ERRORNUMBER : DINT := -1070586085; (*the given record is no error number record*)
arEVENTLOG_ERR_MODULE_EXISTS : DINT := -1070586084; (*another module with the given name already exists*)
arEVENTLOG_ERR_NO_DESCRIPTION : DINT := -1070586083; (*no description was found for the given record id*)
arEVENTLOG_ERR_DESCRIPTION_NULL : DINT := -1070586082; (*the given pointer to the description buffer is NULL*)
arEVENTLOG_ERR_FORMAT_INVALID : DINT := -1070586081; (*the given format for the additional data is unknown*)
arEVENTLOG_WRN_NO_EVENTID : DINT := -2144327920; (*the given record is no event id record*)
arEVENTLOG_WRN_FORMAT_INVALID : DINT := -2144327919; (*the given format for the additional data is unknown*)
arEVENTLOG_WRN_ADDDATA_NULL : DINT := -2144327918; (*the given pointer to the additional data is NULL*)
arEVENTLOG_INF_SIZE : DINT := 1076897555; (*specified data size too small*)
arEVENTLOG_SEVERITY_SUCCESS : USINT := 0; (*severity code success*)
arEVENTLOG_SEVERITY_INFO : USINT := 1; (*severity code informational*)
arEVENTLOG_SEVERITY_WARNING : USINT := 2; (*severity code warning*)
arEVENTLOG_SEVERITY_ERROR : USINT := 3; (*severity code error*)
arEVENTLOG_PERSISTENCE_VOLATILE : USINT := 0; (*persistence volatile*)
arEVENTLOG_PERSISTENCE_REMANENT : USINT := 1; (*persistence remanent*)
arEVENTLOG_PERSISTENCE_PERSIST : USINT := 2; (*persistence persistent*)
arEVENTLOG_ADDFORMAT_BINARY : USINT := 0; (*additional data format binary*)
arEVENTLOG_ADDFORMAT_TEXT : USINT := 1; (*additional data format series of null terminated strings*)
arEVENTLOG_ADDFORMAT_CODED : USINT := 2; (*additional data format binary coded data*)
arEVENTLOG_ADDFORMAT_CUST_BASE : USINT := 100; (*additional data format begin of customer area*)
arEVENTLOG_ADDFORMAT_CUST_MAX : USINT := 150; (*additional data format end of customer area*)
END_VAR

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The ArEventLog library can be used to collect additional error information and for further processing.">
<Files>
<File>ArEventLog.fun</File>
<File>ArEventLog.typ</File>
<File>ArEventLog.var</File>
</Files>
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>

View File

@@ -0,0 +1,354 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _AREVENTLOG_
#define _AREVENTLOG_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#include <runtime.h>
#ifndef _BUR_PUBLIC
#define _BUR_PUBLIC
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define arEVENTLOG_ADDFORMAT_CUST_MAX 150U
#define arEVENTLOG_ADDFORMAT_CUST_BASE 100U
#define arEVENTLOG_ADDFORMAT_CODED 2U
#define arEVENTLOG_ADDFORMAT_TEXT 1U
#define arEVENTLOG_ADDFORMAT_BINARY 0U
#define arEVENTLOG_PERSISTENCE_PERSIST 2U
#define arEVENTLOG_PERSISTENCE_REMANENT 1U
#define arEVENTLOG_PERSISTENCE_VOLATILE 0U
#define arEVENTLOG_SEVERITY_ERROR 3U
#define arEVENTLOG_SEVERITY_WARNING 2U
#define arEVENTLOG_SEVERITY_INFO 1U
#define arEVENTLOG_SEVERITY_SUCCESS 0U
#define arEVENTLOG_INF_SIZE 1076897555
#define arEVENTLOG_WRN_ADDDATA_NULL (-2144327918)
#define arEVENTLOG_WRN_FORMAT_INVALID (-2144327919)
#define arEVENTLOG_WRN_NO_EVENTID (-2144327920)
#define arEVENTLOG_ERR_FORMAT_INVALID (-1070586081)
#define arEVENTLOG_ERR_DESCRIPTION_NULL (-1070586082)
#define arEVENTLOG_ERR_NO_DESCRIPTION (-1070586083)
#define arEVENTLOG_ERR_MODULE_EXISTS (-1070586084)
#define arEVENTLOG_ERR_NO_ERRORNUMBER (-1070586085)
#define arEVENTLOG_ERR_ADDDATA_NULL (-1070586086)
#define arEVENTLOG_ERR_LOGBOOK_NOT_FOUND (-1070586087)
#define arEVENTLOG_ERR_EVENTID_INVALID (-1070586088)
#define arEVENTLOG_ERR_IDENT_SYSTEM (-1070586089)
#define arEVENTLOG_ERR_IDENT_INVALID (-1070586090)
#define arEVENTLOG_ERR_PERSISTENCE_INVAL (-1070586091)
#define arEVENTLOG_ERR_SIZE_INVALID (-1070586092)
#define arEVENTLOG_ERR_NAME_INVALID (-1070586093)
#define arEVENTLOG_ERR_INTERNAL (-1070586094)
#define arEVENTLOG_ERR_LOGBOOK_EXISTS (-1070586095)
#define arEVENTLOG_ERR_EXISTING (-1070586095)
#define arEVENTLOG_ERR_RECORDID_INVALID (-1070586096)
#define arEVENTLOG_ERR_PARAMETER (-1070586096)
#else
#ifndef _GLOBAL_CONST
#define _GLOBAL_CONST _WEAK const
#endif
_GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_CUST_MAX;
_GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_CUST_BASE;
_GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_CODED;
_GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_TEXT;
_GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_BINARY;
_GLOBAL_CONST unsigned char arEVENTLOG_PERSISTENCE_PERSIST;
_GLOBAL_CONST unsigned char arEVENTLOG_PERSISTENCE_REMANENT;
_GLOBAL_CONST unsigned char arEVENTLOG_PERSISTENCE_VOLATILE;
_GLOBAL_CONST unsigned char arEVENTLOG_SEVERITY_ERROR;
_GLOBAL_CONST unsigned char arEVENTLOG_SEVERITY_WARNING;
_GLOBAL_CONST unsigned char arEVENTLOG_SEVERITY_INFO;
_GLOBAL_CONST unsigned char arEVENTLOG_SEVERITY_SUCCESS;
_GLOBAL_CONST signed long arEVENTLOG_INF_SIZE;
_GLOBAL_CONST signed long arEVENTLOG_WRN_ADDDATA_NULL;
_GLOBAL_CONST signed long arEVENTLOG_WRN_FORMAT_INVALID;
_GLOBAL_CONST signed long arEVENTLOG_WRN_NO_EVENTID;
_GLOBAL_CONST signed long arEVENTLOG_ERR_FORMAT_INVALID;
_GLOBAL_CONST signed long arEVENTLOG_ERR_DESCRIPTION_NULL;
_GLOBAL_CONST signed long arEVENTLOG_ERR_NO_DESCRIPTION;
_GLOBAL_CONST signed long arEVENTLOG_ERR_MODULE_EXISTS;
_GLOBAL_CONST signed long arEVENTLOG_ERR_NO_ERRORNUMBER;
_GLOBAL_CONST signed long arEVENTLOG_ERR_ADDDATA_NULL;
_GLOBAL_CONST signed long arEVENTLOG_ERR_LOGBOOK_NOT_FOUND;
_GLOBAL_CONST signed long arEVENTLOG_ERR_EVENTID_INVALID;
_GLOBAL_CONST signed long arEVENTLOG_ERR_IDENT_SYSTEM;
_GLOBAL_CONST signed long arEVENTLOG_ERR_IDENT_INVALID;
_GLOBAL_CONST signed long arEVENTLOG_ERR_PERSISTENCE_INVAL;
_GLOBAL_CONST signed long arEVENTLOG_ERR_SIZE_INVALID;
_GLOBAL_CONST signed long arEVENTLOG_ERR_NAME_INVALID;
_GLOBAL_CONST signed long arEVENTLOG_ERR_INTERNAL;
_GLOBAL_CONST signed long arEVENTLOG_ERR_LOGBOOK_EXISTS;
_GLOBAL_CONST signed long arEVENTLOG_ERR_EXISTING;
_GLOBAL_CONST signed long arEVENTLOG_ERR_RECORDID_INVALID;
_GLOBAL_CONST signed long arEVENTLOG_ERR_PARAMETER;
#endif
/* Datatypes and datatypes of function blocks */
typedef struct ArEventLogTimeStampType
{ unsigned long sec;
unsigned long nsec;
} ArEventLogTimeStampType;
typedef struct ArEventLogAsyncInternalType
{ struct ArFBStateInternalType FBStateCtx;
struct ArFBAsyFuMaInternalType AsyFuMaCtx;
} ArEventLogAsyncInternalType;
typedef struct ArEventLogInternalType
{ struct ArFBStateInternalType FBStateCtx;
} ArEventLogInternalType;
typedef unsigned long ArEventLogIdentType;
typedef struct ArEventLogCreate
{
/* VAR_INPUT (analog) */
plcstring Name[257];
unsigned long Size;
unsigned char Persistence;
unsigned long Info;
/* VAR_OUTPUT (analog) */
signed long StatusID;
ArEventLogIdentType Ident;
/* VAR (analog) */
struct ArEventLogAsyncInternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Busy;
plcbit Error;
} ArEventLogCreate_typ;
typedef struct ArEventLogDelete
{
/* VAR_INPUT (analog) */
ArEventLogIdentType Ident;
/* VAR_OUTPUT (analog) */
signed long StatusID;
/* VAR (analog) */
struct ArEventLogAsyncInternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Busy;
plcbit Error;
} ArEventLogDelete_typ;
typedef struct ArEventLogGetIdent
{
/* VAR_INPUT (analog) */
plcstring Name[257];
/* VAR_OUTPUT (analog) */
signed long StatusID;
ArEventLogIdentType Ident;
/* VAR (analog) */
struct ArEventLogInternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Error;
} ArEventLogGetIdent_typ;
typedef unsigned long ArEventLogRecordIDType;
typedef struct ArEventLogWrite
{
/* VAR_INPUT (analog) */
ArEventLogIdentType Ident;
signed long EventID;
ArEventLogRecordIDType OriginRecordID;
plcstring ObjectID[37];
unsigned long AddDataSize;
unsigned char AddDataFormat;
unsigned long AddData;
unsigned long TimeStamp;
/* VAR_OUTPUT (analog) */
signed long StatusID;
ArEventLogRecordIDType RecordID;
/* VAR (analog) */
struct ArEventLogInternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Error;
} ArEventLogWrite_typ;
typedef struct ArEventLogGetLatestRecordID
{
/* VAR_INPUT (analog) */
ArEventLogIdentType Ident;
/* VAR_OUTPUT (analog) */
signed long StatusID;
ArEventLogRecordIDType RecordID;
/* VAR (analog) */
struct ArEventLogInternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Error;
} ArEventLogGetLatestRecordID_typ;
typedef struct ArEventLogGetPreviousRecordID
{
/* VAR_INPUT (analog) */
ArEventLogIdentType Ident;
ArEventLogRecordIDType RecordID;
/* VAR_OUTPUT (analog) */
signed long StatusID;
ArEventLogRecordIDType PrevRecordID;
/* VAR (analog) */
struct ArEventLogInternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Error;
} ArEventLogGetPreviousRecordID_typ;
typedef struct ArEventLogRead
{
/* VAR_INPUT (analog) */
ArEventLogIdentType Ident;
ArEventLogRecordIDType RecordID;
/* VAR_OUTPUT (analog) */
signed long StatusID;
signed long EventID;
ArEventLogRecordIDType OriginRecordID;
unsigned char AddDataFormat;
unsigned long AddDataSize;
struct ArEventLogTimeStampType TimeStamp;
/* VAR (analog) */
struct ArEventLogInternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Error;
} ArEventLogRead_typ;
typedef plcstring ArEventLogLanguageCodeType[19];
typedef struct ArEventLogReadDescription
{
/* VAR_INPUT (analog) */
ArEventLogIdentType Ident;
ArEventLogRecordIDType RecordID;
ArEventLogLanguageCodeType LanguageCode;
plcstring Qualifier[251];
unsigned long TextBuffer;
unsigned long TextBufferSize;
/* VAR_OUTPUT (analog) */
signed long StatusID;
unsigned long TextSize;
/* VAR (analog) */
struct ArEventLogAsyncInternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Busy;
plcbit Error;
} ArEventLogReadDescription_typ;
typedef struct ArEventLogReadErrorNumber
{
/* VAR_INPUT (analog) */
ArEventLogIdentType Ident;
ArEventLogRecordIDType RecordID;
/* VAR_OUTPUT (analog) */
signed long StatusID;
unsigned long ErrorNumber;
unsigned char Severity;
/* VAR (analog) */
struct ArEventLogInternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Error;
} ArEventLogReadErrorNumber_typ;
typedef struct ArEventLogReadAddData
{
/* VAR_INPUT (analog) */
ArEventLogIdentType Ident;
ArEventLogRecordIDType RecordID;
unsigned long AddData;
unsigned long BytesToRead;
/* VAR_OUTPUT (analog) */
signed long StatusID;
unsigned long AddDataSize;
/* VAR (analog) */
struct ArEventLogInternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Error;
} ArEventLogReadAddData_typ;
typedef struct ArEventLogReadObjectID
{
/* VAR_INPUT (analog) */
ArEventLogIdentType Ident;
ArEventLogRecordIDType RecordID;
/* VAR_OUTPUT (analog) */
signed long StatusID;
plcstring ObjectID[37];
/* VAR (analog) */
struct ArEventLogInternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Error;
} ArEventLogReadObjectID_typ;
/* Prototyping of functions and function blocks */
_BUR_PUBLIC void ArEventLogCreate(struct ArEventLogCreate* inst);
_BUR_PUBLIC void ArEventLogDelete(struct ArEventLogDelete* inst);
_BUR_PUBLIC void ArEventLogGetIdent(struct ArEventLogGetIdent* inst);
_BUR_PUBLIC void ArEventLogWrite(struct ArEventLogWrite* inst);
_BUR_PUBLIC void ArEventLogGetLatestRecordID(struct ArEventLogGetLatestRecordID* inst);
_BUR_PUBLIC void ArEventLogGetPreviousRecordID(struct ArEventLogGetPreviousRecordID* inst);
_BUR_PUBLIC void ArEventLogRead(struct ArEventLogRead* inst);
_BUR_PUBLIC void ArEventLogReadDescription(struct ArEventLogReadDescription* inst);
_BUR_PUBLIC void ArEventLogReadErrorNumber(struct ArEventLogReadErrorNumber* inst);
_BUR_PUBLIC void ArEventLogReadAddData(struct ArEventLogReadAddData* inst);
_BUR_PUBLIC void ArEventLogReadObjectID(struct ArEventLogReadObjectID* inst);
_BUR_PUBLIC signed long ArEventLogMakeEventID(unsigned char Severity, unsigned short Facility, unsigned short ErrorCode);
_BUR_PUBLIC plcbit ArEventLogIsError(signed long EventID);
_BUR_PUBLIC plcbit ArEventLogIsWarning(signed long EventID);
_BUR_PUBLIC plcbit ArEventLogIsInformation(signed long EventID);
_BUR_PUBLIC plcbit ArEventLogIsSuccess(signed long EventID);
_BUR_PUBLIC plcbit ArEventLogIsCustomerArea(signed long EventID);
_BUR_PUBLIC plcbit ArEventLogAddDataInit(unsigned long Buffer, unsigned long BufferSize, unsigned char Format);
_BUR_PUBLIC plcbit ArEventLogAddDataUdint(unsigned long Buffer, unsigned long BufferSize, unsigned long Value);
_BUR_PUBLIC plcbit ArEventLogAddDataDint(unsigned long Buffer, unsigned long BufferSize, signed long Value);
_BUR_PUBLIC plcbit ArEventLogAddDataString(unsigned long Buffer, unsigned long BufferSize, unsigned long Value);
_BUR_PUBLIC plcbit ArEventLogAddDataQuantity(unsigned long Buffer, unsigned long BufferSize, double Value, signed long UnitID, unsigned long NamespaceURI);
#ifdef __cplusplus
};
#endif
#endif /* _AREVENTLOG_ */

View File

@@ -0,0 +1,123 @@
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArTextSysGetSystemLanguage (*determine preferred user-language*)
VAR_INPUT
Execute : BOOL; (*start on rising edge*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution successful. FB finished*)
Busy : BOOL; (*FB is still active; needs call*)
Error : BOOL;
StatusID : DINT;
LanguageCode : ArTextSysLanguageCodeType;
END_VAR
VAR (*internals*)
Internal : ArTextSysExec1InternalType;
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArTextSysSetSystemLanguage (*update preferred user-language*)
VAR_INPUT
Execute : BOOL;
LanguageCode : ArTextSysLanguageCodeType;
END_VAR
VAR_OUTPUT
Done : BOOL;
Busy : BOOL;
Error : BOOL; (*error occurred during operation*)
StatusID : DINT;
END_VAR
VAR (*internals*)
Internal : ArTextSysExec1InternalType;
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArTextSysGetNamespaceLanguages
VAR_INPUT
Execute : BOOL; (*start on rising edge*)
Namespace : UDINT; (*string-pointer to namespace*)
First : BOOL; (*get first entry; or next*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution successful. FB finished*)
Busy : BOOL; (*FB is still active; needs call*)
Error : BOOL; (*error occurred during operation*)
StatusID : DINT;
LanguageCode : ArTextSysLanguageCodeType;
EndOfList : BOOL; (*indicator for last found entry*)
END_VAR
VAR (*internals*)
Internal : ArTextSysIter1InternalType;
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArTextSysGetText
VAR_INPUT
Execute : BOOL;
Namespace : UDINT; (*string-pointer to namespace*)
TextID : UDINT; (*string-pointer to text-key*)
LanguageCode : ArTextSysLanguageCodeType;
TextBufferSize : UDINT; (*size of result-buffer to get text*)
TextBuffer : UDINT; (*pointer to text result-buffer*)
SearchMode : ArTextSysSearchModeEnum;
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution successful. FB finished*)
Busy : BOOL; (*FB is still active; needs call*)
Error : BOOL; (*error occurred during operation*)
StatusID : DINT;
TextSize : UDINT; (*Length of text in result-buffer*)
END_VAR
VAR (*internals*)
Internal : ArTextSysExec1InternalType;
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArTextSysFormatString
VAR_INPUT
Execute : BOOL;
FormatString : UDINT; (*string-pointer to format-template*)
ArgumentCount : UINT; (*count of arguments in list*)
ArgumentList : ARRAY[0..9] OF ArTextSysFormatArgumentType;
LanguageCode : ArTextSysLanguageCodeType;
MeasurementCode : UDINT;
TextBufferSize : UDINT; (*size of result-buffer to get text*)
TextBuffer : UDINT; (*pointer to result-buffer*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution successful. FB finished*)
Busy : BOOL; (*FB is still active; needs call*)
Error : BOOL; (*error occurred during operation*)
StatusID : DINT;
TextSize : UDINT; (*Length of text in result-buffer*)
END_VAR
VAR (*internals*)
Internal : ArTextSysExec1InternalType;
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArTextSysGetFormattedText
VAR_INPUT
Execute : BOOL;
Namespace : UDINT; (*string-pointer to namespace*)
TextID : UDINT; (*string-pointer to text-key*)
ArgumentCount : UINT; (*count of arguments in list*)
ArgumentList : ARRAY[0..9] OF ArTextSysFormatArgumentType;
LanguageCode : ArTextSysLanguageCodeType;
MeasurementCode : UDINT;
TextBufferSize : UDINT; (*size of result-buffer to get text*)
TextBuffer : UDINT; (*pointer to result-buffer*)
SearchMode : ArTextSysSearchModeEnum;
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution successful. FB finished*)
Busy : BOOL; (*FB is still active; needs call*)
Error : BOOL; (*error occurred during operation*)
StatusID : DINT;
TextSize : UDINT; (*Length of text in result-buffer*)
END_VAR
VAR (*internals*)
Internal : ArTextSysExec1InternalType;
END_VAR
END_FUNCTION_BLOCK

View File

@@ -0,0 +1,32 @@
TYPE
ArTextSysLanguageCodeType : STRING[18]; (*String-type for language ID*)
(*Enumeration for ArTextSysGetText-FUBs*)
ArTextSysSearchModeEnum :
(
arTEXTSYS_SEARCH_FALLBACK_SUBST, (*with fallback-languages or substitute*)
arTEXTSYS_SEARCH_LANGUAGE_ONLY, (*search for matching language only*)
arTEXTSYS_SEARCH_FALLBACK (*with fallback-searches, no substitute*)
);
(*argument-properties for formatter*)
ArTextSysFormatArgumentType : STRUCT
Datatype : UINT; (*type of argument; eg. IEC_DATATYPE_UDINT*)
Data : UDINT; (*pointer to Argument*)
UnitNamespace : UDINT; (*namespace of UnitID; default OPC-UA recommended*)
UnitID : UDINT;
END_STRUCT;
(*Internal type(s) for FUB-processing*)
ArTextSysExec1InternalType : STRUCT
i_serno : UINT;
i_state : UINT;
Result : DINT;
END_STRUCT;
ArTextSysIter1InternalType : STRUCT
i_base : ArTextSysExec1InternalType;
m_iter : DINT; (*internal iterator; eg. ArTextSysGetNamespaceLanguages*)
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,21 @@
VAR CONSTANT
arTEXTSYS_ERR_OUT_OF_MEMORY : UDINT := 16#C030_280A; (*fatal error: out of memory*)
arTEXTSYS_ERR_INVALID_ARG : UDINT := 16#8030_280B; (*provided argument is invalid*)
arTEXTSYS_ERR_FAILED : UDINT := 16#8030_280C; (*internal operation failure*)
arTEXTSYS_ERR_ACCESS_DENIED : UDINT := 16#8030_280D; (*resource-access denied*)
arTEXTSYS_ERR_INVALID_HANDLE : UDINT := 16#8030_280E; (*invalid handle detected*)
arTEXTSYS_ERR_CANT_OPEN_TEXTDB : UDINT := 16#8030_2811; (*opening of text-db failed*)
arTEXTSYS_INF_ALREADY_OPENED : DINT := 16#4030_2812; (*text-db is open and ready*)
arTEXTSYS_ERR_TEXTDB_SCHEMA : UDINT := 16#8030_2813; (*unrecognised text-db schema or structure*)
arTEXTSYS_ERR_TEXTDB_READER : UDINT := 16#8030_2814; (*read of open text-db failed*)
arTEXTSYS_ERR_TEXTDB_INTERNAL : UDINT := 16#8030_2815; (*other kind of text-db error*)
arTEXTSYS_INF_NOT_SET_DURABLE : DINT := 16#4030_2816; (*configuration-change is not durable*)
arTEXTSYS_ERR_NO_TEXT_FOUND : UDINT := 16#8030_2818; (*no requested text found*)
arTEXTSYS_INF_LANGUAGE_DIFFERS : DINT := 16#4030_281A; (*text-language differs; not in requested language*)
arTEXTSYS_INF_SUBSTITUTE_TEXT : DINT := 16#4030_281B; (*no text found, but substitute-text provided*)
arTEXTSYS_ERR_NOT_EXISTS : UDINT := 16#8030_281C; (*record not found; doesn't exist*)
arTEXTSYS_ERR_END_REACHED : UDINT := 16#8030_281D; (*no further suitable entry found*)
END_VAR

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="IEC Text-System Library.">
<Files>
<File>ArTextSys.fun</File>
<File>ArTextSys.typ</File>
<File>ArTextSys.var</File>
</Files>
</Library>

View File

@@ -0,0 +1,221 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ARTEXTSYS_
#define _ARTEXTSYS_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#ifndef _BUR_PUBLIC
#define _BUR_PUBLIC
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define arTEXTSYS_ERR_END_REACHED 2150639645U
#define arTEXTSYS_ERR_NOT_EXISTS 2150639644U
#define arTEXTSYS_INF_SUBSTITUTE_TEXT 1076897819
#define arTEXTSYS_INF_LANGUAGE_DIFFERS 1076897818
#define arTEXTSYS_ERR_NO_TEXT_FOUND 2150639640U
#define arTEXTSYS_INF_NOT_SET_DURABLE 1076897814
#define arTEXTSYS_ERR_TEXTDB_INTERNAL 2150639637U
#define arTEXTSYS_ERR_TEXTDB_READER 2150639636U
#define arTEXTSYS_ERR_TEXTDB_SCHEMA 2150639635U
#define arTEXTSYS_INF_ALREADY_OPENED 1076897810
#define arTEXTSYS_ERR_CANT_OPEN_TEXTDB 2150639633U
#define arTEXTSYS_ERR_INVALID_HANDLE 2150639630U
#define arTEXTSYS_ERR_ACCESS_DENIED 2150639629U
#define arTEXTSYS_ERR_FAILED 2150639628U
#define arTEXTSYS_ERR_INVALID_ARG 2150639627U
#define arTEXTSYS_ERR_OUT_OF_MEMORY 3224381450U
#else
#ifndef _GLOBAL_CONST
#define _GLOBAL_CONST _WEAK const
#endif
_GLOBAL_CONST unsigned long arTEXTSYS_ERR_END_REACHED;
_GLOBAL_CONST unsigned long arTEXTSYS_ERR_NOT_EXISTS;
_GLOBAL_CONST signed long arTEXTSYS_INF_SUBSTITUTE_TEXT;
_GLOBAL_CONST signed long arTEXTSYS_INF_LANGUAGE_DIFFERS;
_GLOBAL_CONST unsigned long arTEXTSYS_ERR_NO_TEXT_FOUND;
_GLOBAL_CONST signed long arTEXTSYS_INF_NOT_SET_DURABLE;
_GLOBAL_CONST unsigned long arTEXTSYS_ERR_TEXTDB_INTERNAL;
_GLOBAL_CONST unsigned long arTEXTSYS_ERR_TEXTDB_READER;
_GLOBAL_CONST unsigned long arTEXTSYS_ERR_TEXTDB_SCHEMA;
_GLOBAL_CONST signed long arTEXTSYS_INF_ALREADY_OPENED;
_GLOBAL_CONST unsigned long arTEXTSYS_ERR_CANT_OPEN_TEXTDB;
_GLOBAL_CONST unsigned long arTEXTSYS_ERR_INVALID_HANDLE;
_GLOBAL_CONST unsigned long arTEXTSYS_ERR_ACCESS_DENIED;
_GLOBAL_CONST unsigned long arTEXTSYS_ERR_FAILED;
_GLOBAL_CONST unsigned long arTEXTSYS_ERR_INVALID_ARG;
_GLOBAL_CONST unsigned long arTEXTSYS_ERR_OUT_OF_MEMORY;
#endif
/* Datatypes and datatypes of function blocks */
typedef enum ArTextSysSearchModeEnum
{ arTEXTSYS_SEARCH_FALLBACK_SUBST,
arTEXTSYS_SEARCH_LANGUAGE_ONLY,
arTEXTSYS_SEARCH_FALLBACK
} ArTextSysSearchModeEnum;
typedef struct ArTextSysFormatArgumentType
{ unsigned short Datatype;
unsigned long Data;
unsigned long UnitNamespace;
unsigned long UnitID;
} ArTextSysFormatArgumentType;
typedef struct ArTextSysExec1InternalType
{ unsigned short i_serno;
unsigned short i_state;
signed long Result;
} ArTextSysExec1InternalType;
typedef struct ArTextSysIter1InternalType
{ struct ArTextSysExec1InternalType i_base;
signed long m_iter;
} ArTextSysIter1InternalType;
typedef plcstring ArTextSysLanguageCodeType[19];
typedef struct ArTextSysGetSystemLanguage
{
/* VAR_OUTPUT (analog) */
signed long StatusID;
ArTextSysLanguageCodeType LanguageCode;
/* VAR (analog) */
struct ArTextSysExec1InternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Busy;
plcbit Error;
} ArTextSysGetSystemLanguage_typ;
typedef struct ArTextSysSetSystemLanguage
{
/* VAR_INPUT (analog) */
ArTextSysLanguageCodeType LanguageCode;
/* VAR_OUTPUT (analog) */
signed long StatusID;
/* VAR (analog) */
struct ArTextSysExec1InternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Busy;
plcbit Error;
} ArTextSysSetSystemLanguage_typ;
typedef struct ArTextSysGetNamespaceLanguages
{
/* VAR_INPUT (analog) */
unsigned long Namespace;
/* VAR_OUTPUT (analog) */
signed long StatusID;
ArTextSysLanguageCodeType LanguageCode;
/* VAR (analog) */
struct ArTextSysIter1InternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
plcbit First;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Busy;
plcbit Error;
plcbit EndOfList;
} ArTextSysGetNamespaceLanguages_typ;
typedef struct ArTextSysGetText
{
/* VAR_INPUT (analog) */
unsigned long Namespace;
unsigned long TextID;
ArTextSysLanguageCodeType LanguageCode;
unsigned long TextBufferSize;
unsigned long TextBuffer;
enum ArTextSysSearchModeEnum SearchMode;
/* VAR_OUTPUT (analog) */
signed long StatusID;
unsigned long TextSize;
/* VAR (analog) */
struct ArTextSysExec1InternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Busy;
plcbit Error;
} ArTextSysGetText_typ;
typedef struct ArTextSysFormatString
{
/* VAR_INPUT (analog) */
unsigned long FormatString;
unsigned short ArgumentCount;
struct ArTextSysFormatArgumentType ArgumentList[10];
ArTextSysLanguageCodeType LanguageCode;
unsigned long MeasurementCode;
unsigned long TextBufferSize;
unsigned long TextBuffer;
/* VAR_OUTPUT (analog) */
signed long StatusID;
unsigned long TextSize;
/* VAR (analog) */
struct ArTextSysExec1InternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Busy;
plcbit Error;
} ArTextSysFormatString_typ;
typedef struct ArTextSysGetFormattedText
{
/* VAR_INPUT (analog) */
unsigned long Namespace;
unsigned long TextID;
unsigned short ArgumentCount;
struct ArTextSysFormatArgumentType ArgumentList[10];
ArTextSysLanguageCodeType LanguageCode;
unsigned long MeasurementCode;
unsigned long TextBufferSize;
unsigned long TextBuffer;
enum ArTextSysSearchModeEnum SearchMode;
/* VAR_OUTPUT (analog) */
signed long StatusID;
unsigned long TextSize;
/* VAR (analog) */
struct ArTextSysExec1InternalType Internal;
/* VAR_INPUT (digital) */
plcbit Execute;
/* VAR_OUTPUT (digital) */
plcbit Done;
plcbit Busy;
plcbit Error;
} ArTextSysGetFormattedText_typ;
/* Prototyping of functions and function blocks */
_BUR_PUBLIC void ArTextSysGetSystemLanguage(struct ArTextSysGetSystemLanguage* inst);
_BUR_PUBLIC void ArTextSysSetSystemLanguage(struct ArTextSysSetSystemLanguage* inst);
_BUR_PUBLIC void ArTextSysGetNamespaceLanguages(struct ArTextSysGetNamespaceLanguages* inst);
_BUR_PUBLIC void ArTextSysGetText(struct ArTextSysGetText* inst);
_BUR_PUBLIC void ArTextSysFormatString(struct ArTextSysFormatString* inst);
_BUR_PUBLIC void ArTextSysGetFormattedText(struct ArTextSysGetFormattedText* inst);
#ifdef __cplusplus
};
#endif
#endif /* _ARTEXTSYS_ */

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
TYPE
cfgLease_typ : STRUCT (*lease structure*)
name : STRING[8]; (*name of lease (max 8)*)
startAdr : STRING[16]; (*start address of lease*)
stopAdr : STRING[16]; (*stop address of lease*)
subnetMask : STRING[16]; (*subnet mask of lease*)
defaultGateway : STRING[16]; (*default gateway of lease*)
leaseTimeout : DINT; (*-1 for infinite timeout*)
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,90 @@
VAR CONSTANT
cfgERR_DEVICE_NOT_EXIST : UINT := 29000; (*device doesn't exist or device not configured*)
cfgERR_DEVICE_INVALID : UINT := 29001; (*FBK "pDevice" parameter invalid (e.g. pDevice = 0)*)
cfgERR_OPTION_INVALID : UINT := 29002; (*FBK "Option" parameter invalid*)
cfgERR_VALUE_INVALID : UINT := 29003; (*invalid FBK parameter, error text depends on the function block*)
cfgERR_SET_NOT_POSSIBLE : UINT := 29004; (*not possible to set the subnet mask (e.g. DHCP client)*)
cfgERR_ARREG : UINT := 29005; (*error in the AR registry*)
cfgERR_INANODE_NOT_SUPPORTED : UINT := 29006; (*INA device does not support INA node numbers (e.g. IF1 = RS232)*)
cfgERR_FTP_SINIT : UINT := 29007; (*initialization error on FTP server*)
cfgERR_FTP_SDOWN : UINT := 29008; (*shutdown error on FTP server*)
cfgERR_PARAM_NOT_SET : UINT := 29009; (*default gateway not defined*)
cfgERR_SNTP_SERVER : UINT := 29010; (*could not start the SNTP server*)
cfgERR_SNTP_CLIENT : UINT := 29011; (*error starting SNTP client (e.g. client already running)*)
cfgERR_SNTP_INTERVAL : UINT := 29012; (*invalid FBK parameter - values from 1 to 60 are valid*)
cfgERR_SYSTEM : UINT := 29013; (*unexpected system error*)
cfgERR_TIMEZONE : UINT := 29014; (*invalid timezone specified*)
cfgERR_YEAR_INVALID : UINT := 29015; (*invalid year specified*)
cfgERR_CIFS_DOMAIN_INVALID : UINT := 29016; (*cifs domain name not defined *)
cfgERR_CIFS_DEFAULTUSER_INVALID : UINT := 29017; (*cifs defaultuser not defined *)
cfgERR_INANODE_NUMBER_SET : UINT := 29018; (*could not set the INA node number*)
cfgERR_CIFS_DEFAULTPW_INVALID : UINT := 29019; (*cifs default password not defined *)
cfgERR_DHCP_SERVER_STARTED : UINT := 29020; (*server is already working*)
cfgERR_INTERFACELIST_BUFFER : UINT := 29021; (*interfacelist buffer to small*)
cfgERR_LEASES_BUFFER : UINT := 29022; (*leases array to small*)
cfgERR_LEASE_EXISTS : UINT := 29023; (*leasename already exists*)
cfgERR_LEASE_TIMEOUT : UINT := 29024; (*invalid lease timeout*)
cfgERR_DHCP_CONFIG : UINT := 29025; (*DHCP server is not configured*)
cfgERR_SDM_FUNCTION_NOT_FOUND : UINT := 29026; (*used arsdm function was not found*)
cfgERR_CLEAR_NV_DATA : UINT := 29027; (*could not clear NV data*)
cfgERR_FUNCTION_NOT_FOUND : UINT := 29028; (*referenced function was not found*)
cfgERR_SDM_DISABLED : UINT := 29029; (*System diagnostics disabled*)
cfgERR_WEBSERV_DISABLED : UINT := 29030; (*Web Server disabled*)
cfgERR_DHCP_NO_DHCP_IP_OBTAINED : UINT := 29031; (*DHCP activated, but no IP obtained*)
cfgERR_NTP_SERVER : UINT := 29032; (*could not start the NTP server*)
cfgERR_NTP_CLIENT : UINT := 29033; (*error starting NTP client*)
cfgERR_ROUTE_TABLE : UINT := 29034; (*error updating network routing table*)
cfgERR_DST : UINT := 29035; (*could not enable or disable automatic daylight saving*)
cfgETHBAUDRATE_AUTO : UDINT := 0; (*auto-detect*)
cfgETHBAUDRATE_10 : UDINT := 10; (*10 MBaud, half-duplex*)
cfgETHBAUDRATE_10FD : UDINT := 11; (*10 MBaud, full-duplex*)
cfgETHBAUDRATE_10AUTO : UDINT := 12; (*10 MBaud, auto-duplex*)
cfgETHBAUDRATE_100 : UDINT := 100; (*100 MBaud, half-duplex*)
cfgETHBAUDRATE_100FD : UDINT := 101; (*100 MBaud, full-duplex*)
cfgETHBAUDRATE_100AUTO : UDINT := 102; (*100 MBaud, auto-duplex*)
cfgETHBAUDRATE_1000FD : UDINT := 1001; (*1 GBaud, full-duplex*)
cfgOPTION_NON_VOLATILE : UDINT := 1; (*permanently sets parameters*)
cfgOPTION_VOLATILE : UDINT := 0; (*temporarily sets parameters*)
cfgCONFIGMODE_MANUALLY : UDINT := 0; (*manual configuration*)
cfgCONFIGMODE_DHCPCLIENT : UDINT := 1; (*DHCP client*)
cfgOPTION_DISABLE : UDINT := 0; (*disable*)
cfgOPTION_ENABLE : UDINT := 1; (*enable*)
cfgOPTION_WORKGROUP : USINT := 1; (*Domain is Workgroup*)
cfgOPTION_NON_WORKGROUP : USINT := 0; (*Domain isn't Workgroup*)
cfgOPTION_ENABLE_SDM : USINT := 1; (*enable sdm*)
cfgOPTION_DISABLE_SDM : USINT := 2; (*disable sdm*)
cfgSTATUS_SDM_ENABLED : USINT := 1; (*sdm is enabled*)
cfgSTATUS_SDM_DISABLED : USINT := 2; (*sdm is disabled*)
cfgWEB_MODE_GOFORM_DISABLE : UINT := 0; (*Webserver Goform disabled*)
cfgWEB_MODE_GOFORM_ENABLE : UINT := 1; (*Webserver Goform enabled*)
cfgWEB_MODE_GOFORM_NO_WRITE : UINT := 2; (*Webserver Goform readonly*)
cfgWEB_MODE_MIME_DEL : UINT := 0; (*Webserver delete MimeType*)
cfgWEB_MODE_MIME_ADD : UINT := 1; (*Webserver set MimeType*)
cfgWEB_MODE_DISABLED : UINT := 0; (*Webserver disabled*)
cfgWEB_MODE_ENABLED : UINT := 1; (*Webserver enabled*)
cfgOPTION_DNS_OFF : USINT := 0; (*disable DNS service*)
cfgOPTION_DNS_ON_CONFIG : USINT := 1; (*DNS service using the server address as configured*)
cfgOPTION_DNS_ON_DHCP : USINT := 2; (*Get the DNS address from the DHCP server*)
cfgNTP_START : UINT := 1; (*start NTP server/client*)
cfgNTP_STOP : UINT := 0; (*stop NTP server/client*)
cfgSTATUS_NTP_ACTIVE : UINT := 1; (*NTP server/client active*)
cfgSTATUS_NTP_INACTIVE : UINT := 0; (*NTP server/client inactive*)
cfgSDM_COLOR_DEFAULT : UDINT := 2147483648; (*sdm default color*)
cfgDHCP_OPTION_VENDOR_CLASS_ID : USINT := 60; (*DHCP option vendor class identifier*)
END_VAR

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The AsARCfg library supports reading and writing Automation Runtime configurations.">
<Files>
<File>AsARCfg.fun</File>
<File>AsARCfg.typ</File>
<File>AsARCfg.var</File>
</Files>
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>

View File

@@ -0,0 +1,204 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASARCFG_
#define _ASARCFG_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#include <runtime.h>
#ifndef _IEC_CONST
#define _IEC_CONST _WEAK const
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define cfgSTATUS_SDM_DISABLED 2U
#define cfgSTATUS_SDM_ENABLED 1U
#define cfgOPTION_DISABLE_SDM 2U
#define cfgOPTION_ENABLE_SDM 1U
#define cfgOPTION_NON_WORKGROUP 0U
#define cfgOPTION_WORKGROUP 1U
#define cfgOPTION_ENABLE 1U
#define cfgOPTION_DISABLE 0U
#define cfgCONFIGMODE_DHCPCLIENT 1U
#define cfgCONFIGMODE_MANUALLY 0U
#define cfgOPTION_VOLATILE 0U
#define cfgOPTION_NON_VOLATILE 1U
#define cfgETHBAUDRATE_1000FD 1001U
#define cfgETHBAUDRATE_100FD 101U
#define cfgETHBAUDRATE_100 100U
#define cfgETHBAUDRATE_10FD 11U
#define cfgETHBAUDRATE_10 10U
#define cfgETHBAUDRATE_AUTO 0U
#define cfgERR_CLEAR_NV_DATA 29027U
#define cfgERR_SDM_FUNCTION_NOT_FOUND 29026U
#define cfgERR_LEASE_TIMEOUT 29024U
#define cfgERR_LEASE_EXISTS 29023U
#define cfgERR_LEASES_BUFFER 29022U
#define cfgERR_INTERFACELIST_BUFFER 29021U
#define cfgERR_DHCP_SERVER_STARTED 29020U
#define cfgERR_CIFS_DEFAULTPW_INVALID 29019U
#define cfgERR_INANODE_NUMBER_SET 29018U
#define cfgERR_CIFS_DEFAULTUSER_INVALID 29017U
#define cfgERR_CIFS_DOMAIN_INVALID 29016U
#define cfgERR_YEAR_INVALID 29015U
#define cfgERR_TIMEZONE 29014U
#define cfgERR_SYSTEM 29013U
#define cfgERR_SNTP_INTERVAL 29012U
#define cfgERR_SNTP_CLIENT 29011U
#define cfgERR_SNTP_SERVER 29010U
#define cfgERR_PARAM_NOT_SET 29009U
#define cfgERR_FTP_SDOWN 29008U
#define cfgERR_FTP_SINIT 29007U
#define cfgERR_INANODE_NOT_SUPPORTED 29006U
#define cfgERR_ARREG 29005U
#define cfgERR_SET_NOT_POSSIBLE 29004U
#define cfgERR_VALUE_INVALID 29003U
#define cfgERR_OPTION_INVALID 29002U
#define cfgERR_DEVICE_INVALID 29001U
#define cfgERR_DEVICE_NOT_EXIST 29000U
#else
_IEC_CONST unsigned char cfgSTATUS_SDM_DISABLED = 2U;
_IEC_CONST unsigned char cfgSTATUS_SDM_ENABLED = 1U;
_IEC_CONST unsigned char cfgOPTION_DISABLE_SDM = 2U;
_IEC_CONST unsigned char cfgOPTION_ENABLE_SDM = 1U;
_IEC_CONST unsigned char cfgOPTION_NON_WORKGROUP = 0U;
_IEC_CONST unsigned char cfgOPTION_WORKGROUP = 1U;
_IEC_CONST unsigned long cfgOPTION_ENABLE = 1U;
_IEC_CONST unsigned long cfgOPTION_DISABLE = 0U;
_IEC_CONST unsigned long cfgCONFIGMODE_DHCPCLIENT = 1U;
_IEC_CONST unsigned long cfgCONFIGMODE_MANUALLY = 0U;
_IEC_CONST unsigned long cfgOPTION_VOLATILE = 0U;
_IEC_CONST unsigned long cfgOPTION_NON_VOLATILE = 1U;
_IEC_CONST unsigned long cfgETHBAUDRATE_1000FD = 1001U;
_IEC_CONST unsigned long cfgETHBAUDRATE_100FD = 101U;
_IEC_CONST unsigned long cfgETHBAUDRATE_100 = 100U;
_IEC_CONST unsigned long cfgETHBAUDRATE_10FD = 11U;
_IEC_CONST unsigned long cfgETHBAUDRATE_10 = 10U;
_IEC_CONST unsigned long cfgETHBAUDRATE_AUTO = 0U;
_IEC_CONST unsigned short cfgERR_CLEAR_NV_DATA = 29027U;
_IEC_CONST unsigned short cfgERR_SDM_FUNCTION_NOT_FOUND = 29026U;
_IEC_CONST unsigned short cfgERR_LEASE_TIMEOUT = 29024U;
_IEC_CONST unsigned short cfgERR_LEASE_EXISTS = 29023U;
_IEC_CONST unsigned short cfgERR_LEASES_BUFFER = 29022U;
_IEC_CONST unsigned short cfgERR_INTERFACELIST_BUFFER = 29021U;
_IEC_CONST unsigned short cfgERR_DHCP_SERVER_STARTED = 29020U;
_IEC_CONST unsigned short cfgERR_CIFS_DEFAULTPW_INVALID = 29019U;
_IEC_CONST unsigned short cfgERR_INANODE_NUMBER_SET = 29018U;
_IEC_CONST unsigned short cfgERR_CIFS_DEFAULTUSER_INVALID = 29017U;
_IEC_CONST unsigned short cfgERR_CIFS_DOMAIN_INVALID = 29016U;
_IEC_CONST unsigned short cfgERR_YEAR_INVALID = 29015U;
_IEC_CONST unsigned short cfgERR_TIMEZONE = 29014U;
_IEC_CONST unsigned short cfgERR_SYSTEM = 29013U;
_IEC_CONST unsigned short cfgERR_SNTP_INTERVAL = 29012U;
_IEC_CONST unsigned short cfgERR_SNTP_CLIENT = 29011U;
_IEC_CONST unsigned short cfgERR_SNTP_SERVER = 29010U;
_IEC_CONST unsigned short cfgERR_PARAM_NOT_SET = 29009U;
_IEC_CONST unsigned short cfgERR_FTP_SDOWN = 29008U;
_IEC_CONST unsigned short cfgERR_FTP_SINIT = 29007U;
_IEC_CONST unsigned short cfgERR_INANODE_NOT_SUPPORTED = 29006U;
_IEC_CONST unsigned short cfgERR_ARREG = 29005U;
_IEC_CONST unsigned short cfgERR_SET_NOT_POSSIBLE = 29004U;
_IEC_CONST unsigned short cfgERR_VALUE_INVALID = 29003U;
_IEC_CONST unsigned short cfgERR_OPTION_INVALID = 29002U;
_IEC_CONST unsigned short cfgERR_DEVICE_INVALID = 29001U;
_IEC_CONST unsigned short cfgERR_DEVICE_NOT_EXIST = 29000U;
#endif
/* Datatypes and datatypes of function blocks */
typedef struct cfgLease_typ
{ plcstring name[9];
plcstring startAdr[17];
plcstring stopAdr[17];
plcstring subnetMask[17];
plcstring defaultGateway[17];
signed long leaseTimeout;
} cfgLease_typ;
typedef struct CfgGetInaNode
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned char InaNode;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} CfgGetInaNode_typ;
typedef struct CfgGetIPAddr
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pIPAddr;
unsigned char Len;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} CfgGetIPAddr_typ;
typedef struct CfgGetSubnetMask
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pSubnetMask;
unsigned char Len;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} CfgGetSubnetMask_typ;
typedef struct CfgGetMacAddr
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pMacAddr;
unsigned char Len;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} CfgGetMacAddr_typ;
/* Prototyping of functions and function blocks */
void CfgGetInaNode(struct CfgGetInaNode* inst);
void CfgGetIPAddr(struct CfgGetIPAddr* inst);
void CfgGetSubnetMask(struct CfgGetSubnetMask* inst);
void CfgGetMacAddr(struct CfgGetMacAddr* inst);
#ifdef __cplusplus
};
#endif
#endif /* _ASARCFG_ */

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,272 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASARCFG_
#define _ASARCFG_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#include <runtime.h>
#ifndef _IEC_CONST
#define _IEC_CONST _WEAK const
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define cfgSTATUS_SDM_DISABLED 2U
#define cfgSTATUS_SDM_ENABLED 1U
#define cfgOPTION_DISABLE_SDM 2U
#define cfgOPTION_ENABLE_SDM 1U
#define cfgOPTION_NON_WORKGROUP 0U
#define cfgOPTION_WORKGROUP 1U
#define cfgOPTION_ENABLE 1U
#define cfgOPTION_DISABLE 0U
#define cfgCONFIGMODE_DHCPCLIENT 1U
#define cfgCONFIGMODE_MANUALLY 0U
#define cfgOPTION_VOLATILE 0U
#define cfgOPTION_NON_VOLATILE 1U
#define cfgETHBAUDRATE_1000FD 1001U
#define cfgETHBAUDRATE_100FD 101U
#define cfgETHBAUDRATE_100 100U
#define cfgETHBAUDRATE_10FD 11U
#define cfgETHBAUDRATE_10 10U
#define cfgETHBAUDRATE_AUTO 0U
#define cfgERR_CLEAR_NV_DATA 29027U
#define cfgERR_SDM_FUNCTION_NOT_FOUND 29026U
#define cfgERR_LEASE_TIMEOUT 29024U
#define cfgERR_LEASE_EXISTS 29023U
#define cfgERR_LEASES_BUFFER 29022U
#define cfgERR_INTERFACELIST_BUFFER 29021U
#define cfgERR_DHCP_SERVER_STARTED 29020U
#define cfgERR_CIFS_DEFAULTPW_INVALID 29019U
#define cfgERR_INANODE_NUMBER_SET 29018U
#define cfgERR_CIFS_DEFAULTUSER_INVALID 29017U
#define cfgERR_CIFS_DOMAIN_INVALID 29016U
#define cfgERR_YEAR_INVALID 29015U
#define cfgERR_TIMEZONE 29014U
#define cfgERR_SYSTEM 29013U
#define cfgERR_SNTP_INTERVAL 29012U
#define cfgERR_SNTP_CLIENT 29011U
#define cfgERR_SNTP_SERVER 29010U
#define cfgERR_PARAM_NOT_SET 29009U
#define cfgERR_FTP_SDOWN 29008U
#define cfgERR_FTP_SINIT 29007U
#define cfgERR_INANODE_NOT_SUPPORTED 29006U
#define cfgERR_ARREG 29005U
#define cfgERR_SET_NOT_POSSIBLE 29004U
#define cfgERR_VALUE_INVALID 29003U
#define cfgERR_OPTION_INVALID 29002U
#define cfgERR_DEVICE_INVALID 29001U
#define cfgERR_DEVICE_NOT_EXIST 29000U
#else
_IEC_CONST unsigned char cfgSTATUS_SDM_DISABLED = 2U;
_IEC_CONST unsigned char cfgSTATUS_SDM_ENABLED = 1U;
_IEC_CONST unsigned char cfgOPTION_DISABLE_SDM = 2U;
_IEC_CONST unsigned char cfgOPTION_ENABLE_SDM = 1U;
_IEC_CONST unsigned char cfgOPTION_NON_WORKGROUP = 0U;
_IEC_CONST unsigned char cfgOPTION_WORKGROUP = 1U;
_IEC_CONST unsigned long cfgOPTION_ENABLE = 1U;
_IEC_CONST unsigned long cfgOPTION_DISABLE = 0U;
_IEC_CONST unsigned long cfgCONFIGMODE_DHCPCLIENT = 1U;
_IEC_CONST unsigned long cfgCONFIGMODE_MANUALLY = 0U;
_IEC_CONST unsigned long cfgOPTION_VOLATILE = 0U;
_IEC_CONST unsigned long cfgOPTION_NON_VOLATILE = 1U;
_IEC_CONST unsigned long cfgETHBAUDRATE_1000FD = 1001U;
_IEC_CONST unsigned long cfgETHBAUDRATE_100FD = 101U;
_IEC_CONST unsigned long cfgETHBAUDRATE_100 = 100U;
_IEC_CONST unsigned long cfgETHBAUDRATE_10FD = 11U;
_IEC_CONST unsigned long cfgETHBAUDRATE_10 = 10U;
_IEC_CONST unsigned long cfgETHBAUDRATE_AUTO = 0U;
_IEC_CONST unsigned short cfgERR_CLEAR_NV_DATA = 29027U;
_IEC_CONST unsigned short cfgERR_SDM_FUNCTION_NOT_FOUND = 29026U;
_IEC_CONST unsigned short cfgERR_LEASE_TIMEOUT = 29024U;
_IEC_CONST unsigned short cfgERR_LEASE_EXISTS = 29023U;
_IEC_CONST unsigned short cfgERR_LEASES_BUFFER = 29022U;
_IEC_CONST unsigned short cfgERR_INTERFACELIST_BUFFER = 29021U;
_IEC_CONST unsigned short cfgERR_DHCP_SERVER_STARTED = 29020U;
_IEC_CONST unsigned short cfgERR_CIFS_DEFAULTPW_INVALID = 29019U;
_IEC_CONST unsigned short cfgERR_INANODE_NUMBER_SET = 29018U;
_IEC_CONST unsigned short cfgERR_CIFS_DEFAULTUSER_INVALID = 29017U;
_IEC_CONST unsigned short cfgERR_CIFS_DOMAIN_INVALID = 29016U;
_IEC_CONST unsigned short cfgERR_YEAR_INVALID = 29015U;
_IEC_CONST unsigned short cfgERR_TIMEZONE = 29014U;
_IEC_CONST unsigned short cfgERR_SYSTEM = 29013U;
_IEC_CONST unsigned short cfgERR_SNTP_INTERVAL = 29012U;
_IEC_CONST unsigned short cfgERR_SNTP_CLIENT = 29011U;
_IEC_CONST unsigned short cfgERR_SNTP_SERVER = 29010U;
_IEC_CONST unsigned short cfgERR_PARAM_NOT_SET = 29009U;
_IEC_CONST unsigned short cfgERR_FTP_SDOWN = 29008U;
_IEC_CONST unsigned short cfgERR_FTP_SINIT = 29007U;
_IEC_CONST unsigned short cfgERR_INANODE_NOT_SUPPORTED = 29006U;
_IEC_CONST unsigned short cfgERR_ARREG = 29005U;
_IEC_CONST unsigned short cfgERR_SET_NOT_POSSIBLE = 29004U;
_IEC_CONST unsigned short cfgERR_VALUE_INVALID = 29003U;
_IEC_CONST unsigned short cfgERR_OPTION_INVALID = 29002U;
_IEC_CONST unsigned short cfgERR_DEVICE_INVALID = 29001U;
_IEC_CONST unsigned short cfgERR_DEVICE_NOT_EXIST = 29000U;
#endif
/* Datatypes and datatypes of function blocks */
typedef struct cfgLease_typ
{ plcstring name[9];
plcstring startAdr[17];
plcstring stopAdr[17];
plcstring subnetMask[17];
plcstring defaultGateway[17];
signed long leaseTimeout;
} cfgLease_typ;
typedef struct CfgGetInaNode
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned char InaNode;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} CfgGetInaNode_typ;
typedef struct CfgGetIPAddr
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pIPAddr;
unsigned char Len;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} CfgGetIPAddr_typ;
typedef struct CfgSetIPAddr
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pIPAddr;
unsigned long Option;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} CfgSetIPAddr_typ;
typedef struct CfgGetSubnetMask
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pSubnetMask;
unsigned char Len;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} CfgGetSubnetMask_typ;
typedef struct CfgSetSubnetMask
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pSubnetMask;
unsigned long Option;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} CfgSetSubnetMask_typ;
typedef struct CfgGetDefaultGateway
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pGateway;
unsigned char Len;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} CfgGetDefaultGateway_typ;
typedef struct CfgSetDefaultGateway
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pGateway;
unsigned long Option;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} CfgSetDefaultGateway_typ;
typedef struct CfgGetMacAddr
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pMacAddr;
unsigned char Len;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} CfgGetMacAddr_typ;
/* Prototyping of functions and function blocks */
void CfgGetInaNode(struct CfgGetInaNode* inst);
void CfgGetIPAddr(struct CfgGetIPAddr* inst);
void CfgSetIPAddr(struct CfgSetIPAddr* inst);
void CfgGetSubnetMask(struct CfgGetSubnetMask* inst);
void CfgSetSubnetMask(struct CfgSetSubnetMask* inst);
void CfgGetDefaultGateway(struct CfgGetDefaultGateway* inst);
void CfgSetDefaultGateway(struct CfgSetDefaultGateway* inst);
void CfgGetMacAddr(struct CfgGetMacAddr* inst);
#ifdef __cplusplus
};
#endif
#endif /* _ASARCFG_ */

View File

@@ -0,0 +1,124 @@
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsArLogCreate (*creates an AR logger user module; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pName : UDINT; (*name of the AR logger user module to be created give as a pointer, e.g. "vclog".*)
len : UDINT; (*length of the log data area*)
memType : UDINT; (*memory type on the target: arlogDRAM, arlogUSRRAM, arlogUSRROM*)
END_VAR
VAR
intResult : UDINT; (*internal variable*)
intState : UDINT; (*internal variable*)
intRes : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
ident : UDINT; (*ident of the AR logger basis module to be generated*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsArLogDelete (*deletes an AR logger user module; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*ident of the AR logger user module to be deleted*)
END_VAR
VAR
intResult : UDINT; (*internal variable*)
intState : UDINT; (*internal variable*)
intRes : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsArLogWrite (*writes a log entry to a AR logger user module; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*ident for the AR logger module to be written (user module or base module)*)
logLevel : UDINT; (*log level of the log entry*)
errornr : UDINT; (*error number of the entry*)
mem : UDINT; (*binary log data given as a pointer*)
len : UDINT; (*length of the binary log data in bytes*)
asciiString : UDINT; (*log-specific zero-terminated ASCII string give as a pointer*)
END_VAR
VAR
intResult : UDINT; (*internal variable*)
intState : UDINT; (*internal variable*)
intRes : UDINT; (*internal variable*)
intTaskName : ARRAY[0..35] OF USINT; (*internal variable*)
intRtkTime : ARRAY[0..3] OF UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsArLogRead (*reads a log entry from a AR logger module; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*ident for the AR logger module to be read (user module or base module)*)
index : UDINT; (*index of the log entry to be read*)
arlogRead : UDINT; (*specifies read structure (given as a pointer) where the header data for the log entry can be copied*)
memBin : UDINT; (*buffer for binary log data given as a pointer (if NULL, no binary log data is copied)*)
lenBin : UDINT; (*number of binary log data bytes to be read (if NULL, no binary log data is copied)*)
memAscii : UDINT; (*buffer for ASCII string given as a pointer*)
lenAscii : UDINT; (*number of bytes to be read for the ASCII string*)
END_VAR
VAR
intResult : UDINT; (*internal variable*)
intState : UDINT; (*internal variable*)
intRes : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsArLogClear (*deletes or reinitializes the log data in an AR logger user module; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*ident of the AR logger user module to be reinitialized*)
END_VAR
VAR
intResult : UDINT; (*internal variable*)
intState : UDINT; (*internal variable*)
intRes : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsArLogGetInfo (*reads information from a self-generated AR logger user module or AR logger base user module*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pName : UDINT; (*name of the AR logger user module (e.g. "vclog") given as a pointer*)
END_VAR
VAR
intResult : UDINT; (*internal variable*)
intState : UDINT; (*internal variable*)
intRes : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
ident : UDINT; (*ident of the AR logger BR module*)
len : UDINT; (*length of the log data area*)
memType : UDINT; (*memory type on the target*)
actualIndex : UDINT; (*current entry index in the specified AR logger BR module*)
FormatVer : UDINT; (*version of de log data format*)
END_VAR
END_FUNCTION_BLOCK

View File

@@ -0,0 +1,20 @@
TYPE
asarlogRead : STRUCT
len : UDINT; (*length of the entire log entry (header + binary log data + ASCII string)*)
lenBin : UDINT; (*length of the binary log data*)
lenAscii : UDINT; (*length of the ASCII log data*)
logLevel : UDINT; (*log level of the log entry*)
errornr : UDINT; (*error number of the entry*)
taskName : ARRAY[0..35] OF USINT; (*task name*)
errYear : UDINT; (*year (date of error)*)
errMonth : UDINT; (*month (date of error)*)
errDay : UDINT; (*day (date of error)*)
errHour : UDINT; (*hour (time of error)*)
errMinute : UDINT; (*minute (time of error)*)
errSecond : UDINT; (*second (time of error)*)
errMilliSec : UDINT; (*millisecond (time of error)*)
errMicroSec : UDINT; (*microsecond (time of error)*)
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,45 @@
VAR CONSTANT
arlogDRAM : USINT := 65; (*temporary AR log modules (DRAM)*)
arlogUSRRAM : USINT := 3; (*USERRAM*)
arlogUSRROM : USINT := 2; (*USERROM (USER FLASH)*)
arlogLEVEL_INFO : UDINT := 1; (*log level INFO*)
arlogLEVEL_WARNING : UDINT := 2; (*log level WARNING*)
arlogLEVEL_FATAL : UDINT := 3; (*log level FATAL*)
arlogMIN_LOGDATA_SIZE : UINT := 4096; (*minimum log data size of 4 KB*)
arlogBASE_SYSTEM_LOG_IDENT : UDINT := 0; (*fixed ID for the "$arlogsys" base system module*)
arlogBASE_USER_LOG_IDENT : UDINT := 1; (*fixed ID for the "$arlogusr" base user module*)
arlogBASE_FIELDBUS_LOG_IDENT : UDINT := 2; (*fixed ID for the "fieldbus" logger module*)
arlogBASE_SAFETY_LOG_IDENT : UDINT := 3; (*fixed ID for the "safety" logger module*)
arlogBASE_REDUND_LOG_IDENT : UDINT := 4; (*fixed ID for the "redund" logger module*)
arlogERR_ILL_NAME : UINT := 31400; (*incorrect or invalid name*)
arlogERR_ILL_MEMTYPE : UINT := 31401; (*incorrect memory type*)
arlogERR_ILL_LOGLEVEL : UINT := 31402; (*invalid log level (only arlogLEVEL_INFO, arlogLEVEL_WARNING, and arlogLEVEL_FATAL valid)*)
arlogERR_ILL_PARAM : UINT := 31403; (*invalid parameters specified*)
arlogERR_ILL_LEN : UINT := 31404; (*incorrect log data length. Must be >= arlogMIN_LOGDATA_SIZE (4096 bytes)*)
arlogERR_EXISTING : UINT := 31405; (*log module already exists*)
arlogERR_CREATE : UINT := 31406; (*general create error (create failed)*)
arlogERR_INSTALL : UINT := 31407; (*install error for AsArLogCreate*)
arlogERR_ACCESS_DENIED : UINT := 31408; (*cannot access the "$arlogsys" and "$arlogusr" base log modules*)
arlogERR_IN_ACCESS : UINT := 31409; (*access denied since other critical FBK simultaneously active*)
arlogERR_INVALID_IDENT : UINT := 31410; (*invalid ident specified*)
arlogERR_DELETE : UINT := 31411; (*general delete error (delete failed)*)
arlogERR_NOMEMORY : UINT := 31412; (*not enough buffer to copy*)
arlogERR_NOTEXISTING : UINT := 31416; (*AR log module doesn't exist*)
arlogERR_WRITE : UINT := 31417; (*general write error (write failed)*)
arlogERR_WRITE_CALC_DATA : UINT := 31418; (*error calculating referencing index*)
arlogERR_READ : UINT := 31419; (*general read error (read failed)*)
arlogERR_READ_BUFFER : UINT := 31420; (*invalid buffer specified*)
arlogERR_INVALID_INDEX : UINT := 31421; (*invalid index (smaller than the reference index and larger than the current index)*)
arlogERR_INVALID_ENTRY : UINT := 31422; (*invalid log entry read*)
arlogERR_READ_BINARY_BUFFER : UINT := 31423; (*buffer length for binary data too small*)
arlogERR_READ_ASCII_BUFFER : UINT := 31424; (*buffer length for ASCII data too small*)
arlogERR_NO_MORE_ENTRY : UINT := 31425; (*FBK still working*)
END_VAR

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="OBSOLETE - The AsArLog library is replaced by ArEventLog and exists only for compatibility reasons.">
<Files>
<File>AsArLog.fun</File>
<File>AsArLog.typ</File>
<File>AsArLog.var</File>
</Files>
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>

View File

@@ -0,0 +1,237 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASARLOG_
#define _ASARLOG_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#include <runtime.h>
#ifndef _BUR_PUBLIC
#define _BUR_PUBLIC
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define arlogERR_NO_MORE_ENTRY 31425U
#define arlogERR_READ_ASCII_BUFFER 31424U
#define arlogERR_READ_BINARY_BUFFER 31423U
#define arlogERR_INVALID_ENTRY 31422U
#define arlogERR_INVALID_INDEX 31421U
#define arlogERR_READ_BUFFER 31420U
#define arlogERR_READ 31419U
#define arlogERR_WRITE_CALC_DATA 31418U
#define arlogERR_WRITE 31417U
#define arlogERR_NOTEXISTING 31416U
#define arlogERR_NOMEMORY 31412U
#define arlogERR_DELETE 31411U
#define arlogERR_INVALID_IDENT 31410U
#define arlogERR_IN_ACCESS 31409U
#define arlogERR_ACCESS_DENIED 31408U
#define arlogERR_INSTALL 31407U
#define arlogERR_CREATE 31406U
#define arlogERR_EXISTING 31405U
#define arlogERR_ILL_LEN 31404U
#define arlogERR_ILL_PARAM 31403U
#define arlogERR_ILL_LOGLEVEL 31402U
#define arlogERR_ILL_MEMTYPE 31401U
#define arlogERR_ILL_NAME 31400U
#define arlogBASE_REDUND_LOG_IDENT 4U
#define arlogBASE_SAFETY_LOG_IDENT 3U
#define arlogBASE_FIELDBUS_LOG_IDENT 2U
#define arlogBASE_USER_LOG_IDENT 1U
#define arlogBASE_SYSTEM_LOG_IDENT 0U
#define arlogMIN_LOGDATA_SIZE 4096U
#define arlogLEVEL_FATAL 3U
#define arlogLEVEL_WARNING 2U
#define arlogLEVEL_INFO 1U
#define arlogUSRROM 2U
#define arlogUSRRAM 3U
#define arlogDRAM 65U
#else
#ifndef _GLOBAL_CONST
#define _GLOBAL_CONST _WEAK const
#endif
_GLOBAL_CONST unsigned short arlogERR_NO_MORE_ENTRY;
_GLOBAL_CONST unsigned short arlogERR_READ_ASCII_BUFFER;
_GLOBAL_CONST unsigned short arlogERR_READ_BINARY_BUFFER;
_GLOBAL_CONST unsigned short arlogERR_INVALID_ENTRY;
_GLOBAL_CONST unsigned short arlogERR_INVALID_INDEX;
_GLOBAL_CONST unsigned short arlogERR_READ_BUFFER;
_GLOBAL_CONST unsigned short arlogERR_READ;
_GLOBAL_CONST unsigned short arlogERR_WRITE_CALC_DATA;
_GLOBAL_CONST unsigned short arlogERR_WRITE;
_GLOBAL_CONST unsigned short arlogERR_NOTEXISTING;
_GLOBAL_CONST unsigned short arlogERR_NOMEMORY;
_GLOBAL_CONST unsigned short arlogERR_DELETE;
_GLOBAL_CONST unsigned short arlogERR_INVALID_IDENT;
_GLOBAL_CONST unsigned short arlogERR_IN_ACCESS;
_GLOBAL_CONST unsigned short arlogERR_ACCESS_DENIED;
_GLOBAL_CONST unsigned short arlogERR_INSTALL;
_GLOBAL_CONST unsigned short arlogERR_CREATE;
_GLOBAL_CONST unsigned short arlogERR_EXISTING;
_GLOBAL_CONST unsigned short arlogERR_ILL_LEN;
_GLOBAL_CONST unsigned short arlogERR_ILL_PARAM;
_GLOBAL_CONST unsigned short arlogERR_ILL_LOGLEVEL;
_GLOBAL_CONST unsigned short arlogERR_ILL_MEMTYPE;
_GLOBAL_CONST unsigned short arlogERR_ILL_NAME;
_GLOBAL_CONST unsigned long arlogBASE_REDUND_LOG_IDENT;
_GLOBAL_CONST unsigned long arlogBASE_SAFETY_LOG_IDENT;
_GLOBAL_CONST unsigned long arlogBASE_FIELDBUS_LOG_IDENT;
_GLOBAL_CONST unsigned long arlogBASE_USER_LOG_IDENT;
_GLOBAL_CONST unsigned long arlogBASE_SYSTEM_LOG_IDENT;
_GLOBAL_CONST unsigned short arlogMIN_LOGDATA_SIZE;
_GLOBAL_CONST unsigned long arlogLEVEL_FATAL;
_GLOBAL_CONST unsigned long arlogLEVEL_WARNING;
_GLOBAL_CONST unsigned long arlogLEVEL_INFO;
_GLOBAL_CONST unsigned char arlogUSRROM;
_GLOBAL_CONST unsigned char arlogUSRRAM;
_GLOBAL_CONST unsigned char arlogDRAM;
#endif
/* Datatypes and datatypes of function blocks */
typedef struct asarlogRead
{ unsigned long len;
unsigned long lenBin;
unsigned long lenAscii;
unsigned long logLevel;
unsigned long errornr;
unsigned char taskName[36];
unsigned long errYear;
unsigned long errMonth;
unsigned long errDay;
unsigned long errHour;
unsigned long errMinute;
unsigned long errSecond;
unsigned long errMilliSec;
unsigned long errMicroSec;
} asarlogRead;
typedef struct AsArLogCreate
{
/* VAR_INPUT (analog) */
unsigned long pName;
unsigned long len;
unsigned long memType;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long ident;
/* VAR (analog) */
unsigned long intResult;
unsigned long intState;
unsigned long intRes;
/* VAR_INPUT (digital) */
plcbit enable;
} AsArLogCreate_typ;
typedef struct AsArLogDelete
{
/* VAR_INPUT (analog) */
unsigned long ident;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned long intResult;
unsigned long intState;
unsigned long intRes;
/* VAR_INPUT (digital) */
plcbit enable;
} AsArLogDelete_typ;
typedef struct AsArLogWrite
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long logLevel;
unsigned long errornr;
unsigned long mem;
unsigned long len;
unsigned long asciiString;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned long intResult;
unsigned long intState;
unsigned long intRes;
unsigned char intTaskName[36];
unsigned long intRtkTime[4];
/* VAR_INPUT (digital) */
plcbit enable;
} AsArLogWrite_typ;
typedef struct AsArLogRead
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long index;
unsigned long arlogRead;
unsigned long memBin;
unsigned long lenBin;
unsigned long memAscii;
unsigned long lenAscii;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned long intResult;
unsigned long intState;
unsigned long intRes;
/* VAR_INPUT (digital) */
plcbit enable;
} AsArLogRead_typ;
typedef struct AsArLogClear
{
/* VAR_INPUT (analog) */
unsigned long ident;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned long intResult;
unsigned long intState;
unsigned long intRes;
/* VAR_INPUT (digital) */
plcbit enable;
} AsArLogClear_typ;
typedef struct AsArLogGetInfo
{
/* VAR_INPUT (analog) */
unsigned long pName;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long ident;
unsigned long len;
unsigned long memType;
unsigned long actualIndex;
unsigned long FormatVer;
/* VAR (analog) */
unsigned long intResult;
unsigned long intState;
unsigned long intRes;
/* VAR_INPUT (digital) */
plcbit enable;
} AsArLogGetInfo_typ;
/* Prototyping of functions and function blocks */
_BUR_PUBLIC void AsArLogCreate(struct AsArLogCreate* inst);
_BUR_PUBLIC void AsArLogDelete(struct AsArLogDelete* inst);
_BUR_PUBLIC void AsArLogWrite(struct AsArLogWrite* inst);
_BUR_PUBLIC void AsArLogRead(struct AsArLogRead* inst);
_BUR_PUBLIC void AsArLogClear(struct AsArLogClear* inst);
_BUR_PUBLIC void AsArLogGetInfo(struct AsArLogGetInfo* inst);
#ifdef __cplusplus
};
#endif
#endif /* _ASARLOG_ */

View File

@@ -0,0 +1,39 @@
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK SdmSystemDump (*SDM - create a system dump; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
configuration : UDINT; (*cfgSDM_SYSTEMDUMP_PARAM(0) parameters only or cfgSDM_SYSTEMDUMP_DATA(1) parameters and data-files*)
pDevice : UDINT; (*Devicename given as a pointer*)
pFile : UDINT; (*Filename given as a pointer*)
pParam : UDINT; (*Parameterstring given as a pointer*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK SdmSetAppParam (*SDM - set application mode; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
appMode : UDINT; (*cfgSDM_APPMODE_OK(1),cfgSDM_APPMODE_WARNING(2),cfgSDM_APPMODE_ERROR(3)*)
pLink : UDINT; (*URL given as a pointer*)
Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,21 @@
VAR CONSTANT
sdmERR_NOT_EXIST : UINT := 34900; (*SDM not active*)
sdmERR_ARREG : UINT := 34901; (*SDM AR registry error*)
sdmERR_SYSTEMDUMP : UINT := 34902; (*SDM System dump error*)
sdmERR_INVALID_DEVICE : UINT := 34903; (*SDM System dump invalid device*)
sdmERR_INVALID_POINTER : UINT := 34904; (*SDM System dump invalid pointer*)
sdmERR_INVALID_VALUE : UINT := 34905; (*SDM Invalid application mode*)
sdmERR_OPTION_INVALID : UINT := 34906; (*SDM"Option" parameter invalid*)
sdm_SYSTEMDUMP_PARAM : UINT := 0; (*SDM System Dump parameters only*)
sdm_SYSTEMDUMP_DATA : UINT := 1; (*SDM SDM System Dump parameters and data files*)
sdm_APPMODE_NOTUSED : UINT := 0; (*SDM Applicationmode not set*)
sdm_APPMODE_OK : UINT := 1; (*SDM Application ok*)
sdm_APPMODE_WARNING : UINT := 2; (*SDM Application warning *)
sdm_APPMODE_ERROR : UINT := 3; (*SDM Application error*)
sdmOPTION_NON_VOLATILE : UDINT := 1; (*permanently sets parameters*)
sdmOPTION_VOLATILE : UDINT := 0; (*temporarily sets parameters*)
END_VAR

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The AsArSdm library supports the System Diagnostics Manager">
<Files>
<File>AsArSdm.fun</File>
<File>AsArSdm.typ</File>
<File>AsArSdm.var</File>
</Files>
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>

View File

@@ -0,0 +1,104 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASARSDM_
#define _ASARSDM_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#include <runtime.h>
#ifndef _BUR_PUBLIC
#define _BUR_PUBLIC
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define sdmOPTION_VOLATILE 0U
#define sdmOPTION_NON_VOLATILE 1U
#define sdm_APPMODE_ERROR 3U
#define sdm_APPMODE_WARNING 2U
#define sdm_APPMODE_OK 1U
#define sdm_APPMODE_NOTUSED 0U
#define sdm_SYSTEMDUMP_DATA 1U
#define sdm_SYSTEMDUMP_PARAM 0U
#define sdmERR_OPTION_INVALID 34906U
#define sdmERR_INVALID_VALUE 34905U
#define sdmERR_INVALID_POINTER 34904U
#define sdmERR_INVALID_DEVICE 34903U
#define sdmERR_SYSTEMDUMP 34902U
#define sdmERR_ARREG 34901U
#define sdmERR_NOT_EXIST 34900U
#else
#ifndef _GLOBAL_CONST
#define _GLOBAL_CONST _WEAK const
#endif
_GLOBAL_CONST unsigned long sdmOPTION_VOLATILE;
_GLOBAL_CONST unsigned long sdmOPTION_NON_VOLATILE;
_GLOBAL_CONST unsigned short sdm_APPMODE_ERROR;
_GLOBAL_CONST unsigned short sdm_APPMODE_WARNING;
_GLOBAL_CONST unsigned short sdm_APPMODE_OK;
_GLOBAL_CONST unsigned short sdm_APPMODE_NOTUSED;
_GLOBAL_CONST unsigned short sdm_SYSTEMDUMP_DATA;
_GLOBAL_CONST unsigned short sdm_SYSTEMDUMP_PARAM;
_GLOBAL_CONST unsigned short sdmERR_OPTION_INVALID;
_GLOBAL_CONST unsigned short sdmERR_INVALID_VALUE;
_GLOBAL_CONST unsigned short sdmERR_INVALID_POINTER;
_GLOBAL_CONST unsigned short sdmERR_INVALID_DEVICE;
_GLOBAL_CONST unsigned short sdmERR_SYSTEMDUMP;
_GLOBAL_CONST unsigned short sdmERR_ARREG;
_GLOBAL_CONST unsigned short sdmERR_NOT_EXIST;
#endif
/* Datatypes and datatypes of function blocks */
typedef struct SdmSystemDump
{
/* VAR_INPUT (analog) */
unsigned long configuration;
unsigned long pDevice;
unsigned long pFile;
unsigned long pParam;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} SdmSystemDump_typ;
typedef struct SdmSetAppParam
{
/* VAR_INPUT (analog) */
unsigned long appMode;
unsigned long pLink;
unsigned long Option;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} SdmSetAppParam_typ;
/* Prototyping of functions and function blocks */
_BUR_PUBLIC void SdmSystemDump(struct SdmSystemDump* inst);
_BUR_PUBLIC void SdmSetAppParam(struct SdmSetAppParam* inst);
#ifdef __cplusplus
};
#endif
#endif /* _ASARSDM_ */

View File

@@ -0,0 +1,72 @@
{REDUND_OK} FUNCTION brmatan2 : REAL (*calculates the arc tangent of y/x*)
VAR_INPUT
y :REAL; (*y*)
x :REAL; (*x*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION brmceil : REAL (*calculates the smallest integer value which is greater than or equal to the input value*)
VAR_INPUT
x :REAL; (*input value*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION brmcosh : REAL (*calculates the hyperbolic cosine of x*)
VAR_INPUT
x :REAL; (*input value*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION brmfloor : REAL (*calculates the largest integer value which is less than or equal to the input value*)
VAR_INPUT
x :REAL; (*input value*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION brmfmod : REAL (*calculates the remainder of the division x/y*)
VAR_INPUT
x :REAL; (*numerator*)
y :REAL; (*denominator*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION brmfrexp : REAL (*calculates the mantissa and the exponent of a floating point number*)
VAR_INPUT
x :REAL; (*input value*)
pExp :UDINT; (*address of the exponent (address of DINT) (base 2)*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION brmldexp : REAL (*calculates a floating point number from mantissa x and exponent exp*)
VAR_INPUT
x :REAL; (*mantissa*)
exp_val :DINT; (*exponent (base 2)*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION brmmodf : REAL (*separates a floating point number into an integer and decimal part*)
VAR_INPUT
x :REAL; (*input value*)
plp :UDINT; (*address of the integer part (address of a REAL value)*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION brmpow : REAL (*calculates x raised to the power of y*)
VAR_INPUT
x :REAL; (*base*)
y :REAL; (*exponent*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION brmsinh : REAL (*calculates the hyperbolic sine of x*)
VAR_INPUT
x :REAL; (*input value*)
END_VAR
END_FUNCTION
{REDUND_OK} FUNCTION brmtanh : REAL (*calculates the hyperbolic tangent of x*)
VAR_INPUT
x :REAL; (*input value*)
END_VAR
END_FUNCTION

View File

@@ -0,0 +1,4 @@
TYPE
END_TYPE

View File

@@ -0,0 +1,25 @@
VAR CONSTANT
brm2_SQRTPI : REAL := 1.12838; (*2/(square root from PI)*)
brmSQRT1_2 : REAL := 0.707107; (*square root from 1/2*)
brmSQRTPI : REAL := 1.77245; (*square root from PI*)
brmLOG2_E : REAL := 0.693147; (*log with the base 2 from E*)
brmLOG10E : REAL := 0.434294; (*log with the base 10 from E*)
brmIVLN10 : REAL := 0.434294; (*1/(ln from 10)*)
brmINVLN2 : REAL := 1.4427; (*1/(ln from 2)*)
brmTWOPI : REAL := 6.28319; (*2 PI*)
brmSQRT3 : REAL := 1.73205; (*square root from 3*)
brmSQRT2 : REAL := 1.41421; (*square root from 2*)
brmLOG2E : REAL := 1.4427; (*log with the base 2 from E*)
brmLN2LO : REAL := 1.90821e-010; (*log with the base 2 from LOW*)
brmLN2HI : REAL := 0.693147; (*log with the base 2 from HIGH*)
brm3PI_4 : REAL := 2.35619; (*3/4 PI*)
brmPI_4 : REAL := 0.785398; (*PI/4*)
brmPI_2 : REAL := 1.5708; (*PI/2*)
brmLN10 : REAL := 2.30259; (*ln from 10*)
brm2_PI : REAL := 0.63662; (*2/PI*)
brm1_PI : REAL := 0.31831; (*1/PI*)
brmLN2 : REAL := 0.693147; (*ln from 2*)
brmPI : REAL := 3.14159; (*PI*)
brmE : REAL := 2.71828; (*E*)
END_VAR

View File

@@ -0,0 +1,90 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASBRMATH_
#define _ASBRMATH_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#ifndef _IEC_CONST
#define _IEC_CONST _WEAK const
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define brm2_SQRTPI 1.12838
#define brmSQRT1_2 0.707107
#define brmSQRTPI 1.77245
#define brmLOG2_E 0.693147
#define brmLOG10E 0.434294
#define brmIVLN10 0.434294
#define brmINVLN2 1.4427
#define brmTWOPI 6.28319
#define brmSQRT3 1.73205
#define brmSQRT2 1.41421
#define brmLOG2E 1.4427
#define brmLN2LO 1.90821e-010
#define brmLN2HI 0.693147
#define brm3PI_4 2.35619
#define brmPI_4 0.785398
#define brmPI_2 1.5708
#define brmLN10 2.30259
#define brm2_PI 0.63662
#define brm1_PI 0.31831
#define brmLN2 0.693147
#define brmPI 3.14159
#define brmE 2.71828
#else
_IEC_CONST float brm2_SQRTPI = 1.12838;
_IEC_CONST float brmSQRT1_2 = 0.707107;
_IEC_CONST float brmSQRTPI = 1.77245;
_IEC_CONST float brmLOG2_E = 0.693147;
_IEC_CONST float brmLOG10E = 0.434294;
_IEC_CONST float brmIVLN10 = 0.434294;
_IEC_CONST float brmINVLN2 = 1.4427;
_IEC_CONST float brmTWOPI = 6.28319;
_IEC_CONST float brmSQRT3 = 1.73205;
_IEC_CONST float brmSQRT2 = 1.41421;
_IEC_CONST float brmLOG2E = 1.4427;
_IEC_CONST float brmLN2LO = 1.90821e-010;
_IEC_CONST float brmLN2HI = 0.693147;
_IEC_CONST float brm3PI_4 = 2.35619;
_IEC_CONST float brmPI_4 = 0.785398;
_IEC_CONST float brmPI_2 = 1.5708;
_IEC_CONST float brmLN10 = 2.30259;
_IEC_CONST float brm2_PI = 0.63662;
_IEC_CONST float brm1_PI = 0.31831;
_IEC_CONST float brmLN2 = 0.693147;
_IEC_CONST float brmPI = 3.14159;
_IEC_CONST float brmE = 2.71828;
#endif
/* Prototyping of functions and function blocks */
float brmatan2(float y, float x);
float brmceil(float x);
float brmcosh(float x);
float brmfloor(float x);
float brmfmod(float x, float y);
float brmfrexp(float x, unsigned long pExp);
float brmldexp(float x, signed long exp_val);
float brmmodf(float x, unsigned long plp);
float brmpow(float x, float y);
float brmsinh(float x);
float brmtanh(float x);
#ifdef __cplusplus
};
#endif
#endif /* _ASBRMATH_ */

View File

@@ -0,0 +1,92 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASBRMATH_
#define _ASBRMATH_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#ifndef _BUR_PUBLIC
#define _BUR_PUBLIC
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define brmE 2.71828f
#define brmPI 3.14159f
#define brmLN2 0.693147f
#define brm1_PI 0.31831f
#define brm2_PI 0.63662f
#define brmLN10 2.30259f
#define brmPI_2 1.5708f
#define brmPI_4 0.785398f
#define brm3PI_4 2.35619f
#define brmLN2HI 0.693147f
#define brmLN2LO 1.90821e-10f
#define brmLOG2E 1.4427f
#define brmSQRT2 1.41421f
#define brmSQRT3 1.73205f
#define brmTWOPI 6.28319f
#define brmINVLN2 1.4427f
#define brmIVLN10 0.434294f
#define brmLOG10E 0.434294f
#define brmLOG2_E 0.693147f
#define brmSQRTPI 1.77245f
#define brmSQRT1_2 0.707107f
#define brm2_SQRTPI 1.12838f
#else
#ifndef _GLOBAL_CONST
#define _GLOBAL_CONST _WEAK const
#endif
_GLOBAL_CONST float brmE;
_GLOBAL_CONST float brmPI;
_GLOBAL_CONST float brmLN2;
_GLOBAL_CONST float brm1_PI;
_GLOBAL_CONST float brm2_PI;
_GLOBAL_CONST float brmLN10;
_GLOBAL_CONST float brmPI_2;
_GLOBAL_CONST float brmPI_4;
_GLOBAL_CONST float brm3PI_4;
_GLOBAL_CONST float brmLN2HI;
_GLOBAL_CONST float brmLN2LO;
_GLOBAL_CONST float brmLOG2E;
_GLOBAL_CONST float brmSQRT2;
_GLOBAL_CONST float brmSQRT3;
_GLOBAL_CONST float brmTWOPI;
_GLOBAL_CONST float brmINVLN2;
_GLOBAL_CONST float brmIVLN10;
_GLOBAL_CONST float brmLOG10E;
_GLOBAL_CONST float brmLOG2_E;
_GLOBAL_CONST float brmSQRTPI;
_GLOBAL_CONST float brmSQRT1_2;
_GLOBAL_CONST float brm2_SQRTPI;
#endif
/* Prototyping of functions and function blocks */
_BUR_PUBLIC float brmatan2(float y, float x);
_BUR_PUBLIC float brmceil(float x);
_BUR_PUBLIC float brmcosh(float x);
_BUR_PUBLIC float brmfloor(float x);
_BUR_PUBLIC float brmfmod(float x, float y);
_BUR_PUBLIC float brmfrexp(float x, unsigned long pExp);
_BUR_PUBLIC float brmldexp(float x, signed long exp_val);
_BUR_PUBLIC float brmmodf(float x, unsigned long plp);
_BUR_PUBLIC float brmpow(float x, float y);
_BUR_PUBLIC float brmsinh(float x);
_BUR_PUBLIC float brmtanh(float x);
#ifdef __cplusplus
};
#endif
#endif /* _ASBRMATH_ */

View File

@@ -0,0 +1,90 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASBRMATH_
#define _ASBRMATH_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#ifndef _IEC_CONST
#define _IEC_CONST _WEAK const
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define brm2_SQRTPI 1.12838
#define brmSQRT1_2 0.707107
#define brmSQRTPI 1.77245
#define brmLOG2_E 0.693147
#define brmLOG10E 0.434294
#define brmIVLN10 0.434294
#define brmINVLN2 1.4427
#define brmTWOPI 6.28319
#define brmSQRT3 1.73205
#define brmSQRT2 1.41421
#define brmLOG2E 1.4427
#define brmLN2LO 1.90821e-010
#define brmLN2HI 0.693147
#define brm3PI_4 2.35619
#define brmPI_4 0.785398
#define brmPI_2 1.5708
#define brmLN10 2.30259
#define brm2_PI 0.63662
#define brm1_PI 0.31831
#define brmLN2 0.693147
#define brmPI 3.14159
#define brmE 2.71828
#else
_IEC_CONST float brm2_SQRTPI = 1.12838;
_IEC_CONST float brmSQRT1_2 = 0.707107;
_IEC_CONST float brmSQRTPI = 1.77245;
_IEC_CONST float brmLOG2_E = 0.693147;
_IEC_CONST float brmLOG10E = 0.434294;
_IEC_CONST float brmIVLN10 = 0.434294;
_IEC_CONST float brmINVLN2 = 1.4427;
_IEC_CONST float brmTWOPI = 6.28319;
_IEC_CONST float brmSQRT3 = 1.73205;
_IEC_CONST float brmSQRT2 = 1.41421;
_IEC_CONST float brmLOG2E = 1.4427;
_IEC_CONST float brmLN2LO = 1.90821e-010;
_IEC_CONST float brmLN2HI = 0.693147;
_IEC_CONST float brm3PI_4 = 2.35619;
_IEC_CONST float brmPI_4 = 0.785398;
_IEC_CONST float brmPI_2 = 1.5708;
_IEC_CONST float brmLN10 = 2.30259;
_IEC_CONST float brm2_PI = 0.63662;
_IEC_CONST float brm1_PI = 0.31831;
_IEC_CONST float brmLN2 = 0.693147;
_IEC_CONST float brmPI = 3.14159;
_IEC_CONST float brmE = 2.71828;
#endif
/* Prototyping of functions and function blocks */
float brmatan2(float y, float x);
float brmceil(float x);
float brmcosh(float x);
float brmfloor(float x);
float brmfmod(float x, float y);
float brmfrexp(float x, unsigned long pExp);
float brmldexp(float x, signed long exp_val);
float brmmodf(float x, unsigned long plp);
float brmpow(float x, float y);
float brmsinh(float x);
float brmtanh(float x);
#ifdef __cplusplus
};
#endif
#endif /* _ASBRMATH_ */

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<Library SubType="binary" Description="This library integrates mathematical functions such as angle functions, rounding off, etc. into the program." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsBrMath.fun</File>
<File>AsBrMath.typ</File>
<File>AsBrMath.var</File>
</Files>
</Library>

View File

@@ -0,0 +1,80 @@
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsftoa : UINT (*converts a REAL value into a character string*)
VAR_INPUT
value :REAL; (*REAL (FLOAT) value to be converted into a character string*)
pString :UDINT; (*pointer to the destination character string*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatof : REAL (*converts a character string into a REAL (FLOAT) value*)
VAR_INPUT
pString :UDINT; (*pointer to the character string to be converted*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatod : LREAL (*converts a character string into a LREAL (DOUBLE) value*)
VAR_INPUT
pString :UDINT; (*pointer to the character string to be converted*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsitoa : UINT (*converts a DINT value into a character string*)
VAR_INPUT
value :DINT; (*numerical value to be converted into a string*)
pString :UDINT; (*pointer to the destination character string*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatoi : DINT (*converts a character string into a DINT value*)
VAR_INPUT
pString :UDINT; (*pointer to the character string to be converted*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemset : UDINT (*fills the memory area with specific values*)
VAR_INPUT
pDest :UDINT; (*pointer to the destination memory*)
value :USINT; (*initialization value*)
length :UDINT; (*number of bytes to be initialized*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemcpy : UDINT (*copies the memory area*)
VAR_INPUT
pDest :UDINT; (*pointer to the destination memory*)
pSrc :UDINT; (*pointer to the data to be copied*)
length :UDINT; (*size of bytes to be copied*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemmove : UDINT (*copies the memory area (even if the memory areas overlap)*)
VAR_INPUT
pDest :UDINT; (*pointer to the destination memory*)
pSrc :UDINT; (*pointer to the data to be copied*)
length :UDINT; (*size of bytes to be copied*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemcmp : DINT (*compares memory areas*)
VAR_INPUT
pMem1 :UDINT; (*pointer to the memory area 1*)
pMem2 :UDINT; (*pointer to the memory area 2*)
length :UDINT; (*size of bytes to be checked*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcat : UDINT (*attaches character strings to one another*)
VAR_INPUT
pDest :UDINT; (*pointer to the destination character string*)
pSrc :UDINT; (*pointer to the source character string*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrlen : UDINT (*provides the length of a character string*)
VAR_INPUT
pString :UDINT; (*pointer to the source character string*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcpy : UDINT (*copies one character string into another*)
VAR_INPUT
pDest :UDINT; (*pointer to the destination character string*)
pSrc :UDINT; (*pointer to the source character string*)
END_VAR
END_FUNCTION
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcmp : DINT (*compares two character strings*)
VAR_INPUT
pString1 :UDINT; (*pointer to the first character string*)
pString2 :UDINT; (*pointer to the second character string*)
END_VAR
END_FUNCTION

View File

@@ -0,0 +1,4 @@
TYPE
END_TYPE

View File

@@ -0,0 +1,4 @@
VAR CONSTANT
END_VAR

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.0.0?>
<Library xmlns="http://br-automation.co.at/AS/Library" Description="The AsBrStr Library contains FBKs for memory and character string handling.">
<Files>
<File>AsBrStr.fun</File>
<File>AsBrStr.typ</File>
<File>AsBrStr.var</File>
</Files>
</Library>

Some files were not shown because too many files have changed in this diff Show More