Workbackup

This commit is contained in:
2020-12-13 15:20:52 +01:00
parent d12c535e7a
commit 0c569b7c0c
1384 changed files with 111117 additions and 0 deletions

17
KD_Hoertnagel_Lackier.apj Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version="4.7.5.60 SP"?>
<Project Description="Lackierzelle doppelt" Version="1.00.0" Edition="Standard" EditionComment="Standard" xmlns="http://br-automation.co.at/AS/Project">
<Communication>
<OnlineConfiguration Name="Lackierzelle_Single" DeviceType="TCPIP" DeviceParameters="/IF=tcpip /LOPO=11159 /SA=96" ConnectionParameters="/COMT=2500 /RT=1000 /AM=* /SDT=5 /DAIP=192.168.1.147 /REPO=11159 /ANSL=1 /PT=11169" Description="" />
</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.9.2" />
<mapp Version="5.9.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.7.5.60 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,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,140 @@
PROGRAM _CYCLIC
//Zeiger auf Roboter Stellen (Zyklisch wg. Download)
lABBRobot ACCESS ADR (gABBRobot[usRobotNr]);
lRobInterface ACCESS ADR (gCmd[usRobotNr].Robot);
//Lifebeat erzeugen
lABBRobot.Out.bLifebeat := bBlink0_5;
//Eing<EFBFBD>nge von Roboter
//============================================================
//Eingangs Byte 0 (0-7)
TON_Motors_On.IN := dpInByte[0].0;
TON_Motors_On.PT := t#1200ms;
TON_Motors_On ();
lABBRobot.In.bMotorsOn := TON_Motors_On.Q;
lABBRobot.In.bMotorsOff := dpInByte[0].1;
lABBRobot.In.bProgramRun := dpInByte[0].2;
lABBRobot.In.bEStop := dpInByte[0].3;
lABBRobot.In.bAutomatic := dpInByte[0].4;
lABBRobot.In.bError := dpInByte[0].5;
lABBRobot.In.bRunChainOk := dpInByte[0].6;
lABBRobot.In.bLifebeat := dpInByte[0].7;
IF EDGE (lABBRobot.In.bLifebeat) THEN
TON_Lifebeat.IN := FALSE;
ELSE
TON_Lifebeat.IN := TRUE;
END_IF;
TON_Lifebeat.PT := t#750ms;
TON_Lifebeat ();
lABBRobot.bOnline := NOT TON_Lifebeat.Q;
//Eingangs Byte 1 (8-15)
lABBRobot.In.bMotionSupervisionTriggered := dpInByte[1].0;
//Eingangs Byte 2 (16-23)
//Spritzpistole Ein
lRobInterface.FromRobot.bPaintOn := dpInByte[2].0;
//Spritzpistole Rund
lRobInterface.FromRobot.bPaintRound := dpInByte[2].1;
//Spritzpistole Breit
lRobInterface.FromRobot.bPaintWide := dpInByte[2].2;
//Vorw<EFBFBD>rts Rotieren
lRobInterface.FromRobot.bRotateFw := dpInByte[2].3;
//R<EFBFBD>ckw<EFBFBD>rts Rotieren
lRobInterface.FromRobot.bRotateBw := dpInByte[2].4;
//Schwenken auf 0<EFBFBD>
lRobInterface.FromRobot.bPos0 := dpInByte[2].5;
//Schwenken auf 180<EFBFBD>
lRobInterface.FromRobot.bPos180 := dpInByte[2].6;
//Eingangs Byte 3 (24-31)
lABBRobot.In.bWZHome := dpInByte[3].0;
lRobInterface.FromRobot.bWZHome := dpInByte[3].0;
lRobInterface.FromRobot.bWZChangetool := dpInByte[3].1;
//Roboter in Bereich Flexfeeder (nur lokal wg. Homing benutzt
//dpInByte[3].6
//Eingangs Byte 4 (32-39)
//WZ Rotationsbereich Frei
lRobInterface.FromRobot.bTurnAreaFree := dpInByte[4].0;
//WZ Schlitten Frei
lRobInterface.FromRobot.bSlayFree := dpInByte[4].1;
//Eingangs Byte 5 (40-47)
lABBRobot.In.usStatus := dpInByte[5];
//Eingangs Byte 6 (48-55)
lRobInterface.FromRobot.usRotationSpeed := dpInByte[6];
//Eingangs Byte 7 (56-63)
//Eingangs Byte 8 (64-71)
lRobInterface.FromRobot.uiRotationPos := SHL (USINT_TO_UINT (dpInByte[8]), 8) + USINT_TO_UINT (dpInByte[7]);
//Eingangs Byte 9 (72-80)
//Eingangs Byte 10 (81-88)
//Eingangs Byte 11 (89-96)
//Eingangs Byte 12 (97-104)
//Eingangs Byte 13 (105-112)
//Eingangs Byte 14 (113-120)
//Eingangs Byte 15 (121-128)
//Ausg<EFBFBD>nge an Roboter
//============================================================
//Ausgangs Byte 0 (0-7)
TOF_Reset_EStop.IN := lABBRobot.Out.bResetEStop;
TOF_Reset_EStop.PT := t#400ms;
TOF_Reset_EStop ();
dpOutByte[0].0 := lABBRobot.Out.bSwitchMotorOn;
dpOutByte[0].1 := lABBRobot.Out.bSwitchMotorOff;
dpOutByte[0].2 := lABBRobot.Out.bStart;
dpOutByte[0].3 := lABBRobot.Out.bStop;
dpOutByte[0].4 := TOF_Reset_EStop.Q;
dpOutByte[0].5 := lABBRobot.Out.bResetError;
dpOutByte[0].6 := lABBRobot.Out.bStartAtMain;
dpOutByte[0].7 := lABBRobot.Out.bLifebeat;
//Ausgangs Byte 1 (8-15)
dpOutByte[1].0 := lABBRobot.Out.bStartBackup;
//dpOutByte[1].1 := lABBRobot.Out.bWirteAccess;
//Ausgangs Byte 2 (16-23)
dpOutByte[2].0 := FALSE;
dpOutByte[2].1 := FALSE;
dpOutByte[2].3 := FALSE;
dpOutByte[2].4 := FALSE;
dpOutByte[2].7 := FALSE;
//Ausgangs Byte 3 (24-31)
//Schlitten in Lackierposition
dpOutByte[3].0 := lRobInterface.ToRobot.bSlayInSprayPos;
//In Pos 0<EFBFBD> gedreht
dpOutByte[3].1 := lRobInterface.ToRobot.bInPos0;
//In Pos 180<EFBFBD> gedreht
dpOutByte[3].2 := lRobInterface.ToRobot.bInPos180;
//Ausgangs Byte 4 (32-39)
//Ausgangs Byte 5 (40-47)
dpOutByte[5] := lABBRobot.Out.usProgNr;
//Ausgangs Byte 6 (48-55)
dpOutByte[6] := lRobInterface.ToRobot.usParts;
//Ausgangs Byte 7 (56-63)
//Ausgangs Byte 8 (64-71)
dpOutByte[7] := UINT_TO_USINT (lRobInterface.ToRobot.uiRotationPos MOD 256);
dpOutByte[8] := UINT_TO_USINT (SHR (lRobInterface.ToRobot.uiRotationPos, 8));
//Ausgangs Byte 9 (72-79)
//Ausgangs Byte 10 (80-87)
//Ausgangs Byte 11 (88-95)
//Ausgangs Byte 12 (96-103)
//Ausgangs Byte 13 (104-111)
//Ausgangs Byte 14 (112-119)
//Ausgangs Byte 15 (120-127)
END_PROGRAM

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.7.3.93 SP?>
<Program SubType="IEC" xmlns="http://br-automation.co.at/AS/Program">
<Files>
<File Description="Instanzabh. Initcode ">Init.st</File>
<File Description="Zyklischer Code">Cyclic.st</File>
<File Description="Local variables" Private="true">Variables.var</File>
<File Description="Local IOs" Private="true">IOs.var</File>
</Files>
</Program>

View File

@@ -0,0 +1,4 @@
VAR
dpOutByte : ARRAY[0..15] OF USINT := [16(0)]; (*Raw Output Bytes Abb Interface*)
dpInByte : ARRAY[0..15] OF USINT := [16(0)]; (*Raw Input Bytes Abb Interface*)
END_VAR

View File

@@ -0,0 +1,3 @@
PROGRAM _INIT
usRobotNr := 1; //Roboternummer
END_PROGRAM

View File

@@ -0,0 +1,8 @@
VAR
lABBRobot : REFERENCE TO gtyp_ABBInterface; (*Referenz to ABB Standard Interface*)
lRobInterface : REFERENCE TO gtyp_Robot; (*Interace Roboter Maschine*)
usRobotNr : USINT;
TOF_Reset_EStop : TOF;
TON_Motors_On : TON;
TON_Lifebeat : TON;
END_VAR

View File

@@ -0,0 +1,34 @@
(*//Standard Interface ABB Roboter*)
TYPE
gtyp_ABBInterfaceIn : STRUCT (*Inputs from ABB Robot Interface*)
bMotorsOn : BOOL := FALSE; (*00 Motors are On (Flash = Unsync)*)
bMotorsOff : BOOL := FALSE; (*01 Motoren sind Aus (Blinken = Safety Chain)*)
bProgramRun : BOOL := FALSE; (*02 Programm l<>uft*)
bEStop : BOOL := FALSE; (*03 E-Stop von Roboter*)
bAutomatic : BOOL := FALSE; (*04 Automatik Modus*)
bError : BOOL := FALSE; (*05 Error von Roboter*)
bRunChainOk : BOOL; (*06 RunChain Ok*)
bLifebeat : BOOL := FALSE; (*07 Lifebeat von Roboter (<28>ber CC zur<75>ckgeroutet)*)
bMotionSupervisionTriggered : BOOL := FALSE; (*08 Bewegungs<67>berwachung ausgl<67>st*)
bWZHome : BOOL := FALSE; (*24 Roboter ist in Homepos*)
usStatus : USINT := 0; (*64 Status*)
END_STRUCT;
gtyp_ABBInterfaceOut : STRUCT (*Output to ABB Robot Interface*)
bSwitchMotorOn : BOOL := FALSE; (*00 Switch Motors On*)
bSwitchMotorOff : BOOL := FALSE; (*01 Switch Motors Off*)
bStart : BOOL := FALSE; (*02 Start - Nicht at Main*)
bStop : BOOL := FALSE; (*03 Stop Cycle*)
bResetEStop : BOOL := FALSE; (*04 Reset E-Stop*)
bResetError : BOOL := FALSE; (*05 Reset Errors*)
bStartAtMain : BOOL := FALSE; (*06 Start At Main (Continuous)*)
bLifebeat : BOOL := FALSE; (*07 Lifebeat an Roboter*)
bStartBackup : BOOL := FALSE; (*08 Start Backup*)
usProgNr : USINT := 0; (*64 Programm Number*)
END_STRUCT;
gtyp_ABBInterface : STRUCT (*ABB Robot Interface*)
bOnline : BOOL; (*Kommuniktion OK*)
In : gtyp_ABBInterfaceIn; (*Eing<6E>nge von ABB Roboter*)
Out : gtyp_ABBInterfaceOut; (*Ausga<67>nge an aBB Roboter*)
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,5 @@
(*//Kommunikationsstrukturen*)
VAR RETAIN
gABBRobot : ARRAY[1..2] OF gtyp_ABBInterface; (*Standard interface zu ABB Roboter*)
END_VAR
(*Variablen / Strukturen*)

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.7.4.67 SP?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="File" Description="Communication Types">GlobalCom.typ</Object>
<Object Type="File" Description="Logging Vars">GlobalCom.var</Object>
<Object Type="Program" Language="IEC" Description="Communication to ABB Robot 1 (IRC 5 Version)">ABBCom</Object>
<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 := 5242948; (*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,606 @@
(********************************************************************
* 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 := 5242948;
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
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_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 : 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 := 16#0403;
TRANSPONDER_FTDI_PRODUCT_ID : UINT := 16#6001;
TRANSPONDER_FTDI_BCD : UINT := 16#0600;
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,206 @@
(*================================================================================================================*)
(*CPU (PWLnk Node 240)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
udSerialNr : UDINT; (*Seriennummer*)
guiTemperatureCPU : UINT; (*CPU Temperatur*)
guiTemperatureENV : UINT; (*Umgebungstemperatur*)
gdiSystemTime : DINT; (*Systemzeit [<5B>s]*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF5.ST1 - 3XP0057*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
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
(*----------------------------------------------------------------------------------------------------------------*)
(*IF5.ST2 - 3XP0057*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gPB1_Right : PushButton_typ; (*Leuchtringtaster 1 (Anlage Rechts)*)
gPB2_Right : PushButton_typ; (*Leuchtringtaster 2 (Anlage Rechts)*)
gPB3_Right : PushButton_typ; (*Leuchtringtaster 3 (Anlage Rechts)*)
gPB4_Right : PushButton_typ; (*Leuchtringtaster 4 (Anlage Rechts)*)
gPB5_Right : PushButton_typ; (*Leuchtringtaster 5 (Anlage Rechts)*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST3 - SLX811*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSLXModuleOk : BOOL;
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*Signals to Safe PLC*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSPLCResetEStop : BOOL; (*Reset Not-Halt (Allgemein)*)
gbSPLCResetDoorsLeft : BOOL; (*Wartungst<73>ren Links quittieren*)
gbSPLCReadbackEstop : BOOL; (*R<>ckf<6B>hrkreis*)
gbSPLCResetBumperLeft : BOOL; (*Bumper Links quittieren*)
END_VAR
(*R<>cklesesignale direkt von Eingang gemappt*)
(*----------------------------------------------------------------------------------------------------------------*)
(*Signals from Safe PLC*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSPLCInEstopOk : BOOL; (*Safety PLC E-Stop ist Ok*)
gbSPLCInDoorsLeftOk : BOOL; (*Safety PLC T<>rkreis Links ist Ok*)
gbSPLCInErrorReadBackEStop : BOOL; (*Safety PlC Fehler R<>ckf<6B>hrkreis Netzsch<63>tze (PV Mapping von DI)*)
gbSPLCInBumperLeftOk : BOOL; (*Safety PLC Handschutzleiste Links ist Ok und quittiert*)
gbSPLCInMaintDoorsLeftOk : BOOL; (*Safety PLC Wartungst<73>ren Links Ok und quittiert*)
guiSPLCInESTOPDiag : UINT; (*DiagnoseCode E-Stop*)
guiSPLCInMaintDLeftESTOPDiag : UINT; (*DiagnoseCode E-Stop Diagnose Code E_STOP FB Wartungst<73>ren bei Abluft Zelle Links*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*I/O from SLX*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSInEStopLeftOk : BOOL; (*Sicherer Eingang 01/02 Equivalent - Nothalt Links Ok*)
gbSInMaintDoorLeftOk : BOOL; (*Sicherer Eingang 03/04 Equivalent - Wartungst<73>r Links Ok*)
gbSInBumperLeftOk : BOOL; (*Sicherer Eingang 05/06 Equivalent - Handschutzleiste Links Ok*)
gbSInGateLeftClosed : BOOL; (*Sicherer Eingang 07/08 Equivalent - Einlegetor Links Geschlossen*)
gusST3FBK_2ChStatus12 : USINT; (*Status 2-kanal*)
gusST3FBK_2ChStatus34 : USINT; (*Status 2-kanal*)
gusST3FBK_2ChStatus56 : USINT; (*Status 2-kanal*)
gusST3FBK_2ChStatus78 : USINT; (*Status 2-kanal*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST4 - SC2212*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSInEStopRobLeftOk : BOOL; (*Sicherer Eingang 01/02 Equivalent - Nothalt von Roboter Links Ok*)
END_VAR
(*//Spare*)
VAR
gbSInEStop1Ok : BOOL; (*Sicherer Eingang 05/06 Equivalent - Nothalt Bedientableau Ok*)
gbSOuMainValveAirLeft : BOOL; (*Sicherer Ausgang 01 - Freigabe Luft Links*)
END_VAR
(*//Spare*)
VAR
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.ST5 - SO6300*)
(*----------------------------------------------------------------------------------------------------------------*)
(*gbSOuCloseGateLeft Sicherer Ausgang 01 - Schutztor Links schlie<69>en*)
(*gbSOuOpenFlapLeft Sicherer Ausgang 02 - Schutzklappe Links <20>ffnen*)
VAR
guiST5FBK_StatusRestInhibit : UINT; (*Status Wiederanlaufsperre*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST6 - SO6530*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSOuRobLeftEStop : BOOL; (*Sicherer Ausgang 01/02 Nothalt 2-kanalig an Roboter links (General Stop / EStop)*)
gbSOuRobLeftAStop : BOOL; (*Sicherer Ausgang 03/04 Auto-Stop 2-kanalig an Roboter links*)
gbSOuSafetyLeftOk : BOOL; (*Sicherer Ausgang 05/06 Sicherheit Links Ok*)
gudST6FBK_StatusRestInhibit : UDINT; (*Status Wiederanlaufsperre*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST7 - DI9371 (Eing<6E>nge allgemein*)
(*----------------------------------------------------------------------------------------------------------------*)
(*gbInSlayLeftBw*)
(*gbInSlayLeftFw*)
(*//Drehzylinder*)
(*//Drehzylinder*)
(*//1Spare*)
(*//1Spare*)
VAR
gbIn10F3Ok : BOOL; (*Sicherung Ok*)
END_VAR
(*//1Spare*)
VAR
gbIn10F5Ok : BOOL; (*Sicherung Ok*)
END_VAR
(*//1Spare*)
(*gbInEnableSuctionLeft*)
(*//1Spare*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST8 - DI9371 (Eing<6E>nge)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbInKeyResetLeft : BOOL; (*Taster Reset Links*)
END_VAR
(*//gbInKeyStartLeft*)
VAR
gbInMaintDoorLeftError : BOOL; (*Wartungst<73>r Links Diagnose - Fehler*)
gbInMaintDoorLeftClosed : BOOL; (*Wartungst<73>r Links Geschlossen - nicht verriegelt*)
END_VAR
(*gbInAirFlapOpenLeft*)
(*gbInAirFlapClosedLeft*)
(*gbInGateOpenLeft*)
VAR
gbInTurnLeftHome : BOOL; (*Schrittmotor Drehen Links GS*)
gbInMainAirOkLeft : BOOL; (*Haupluft Druck Ok Links*)
END_VAR
(*gbInFireLeftNoFirealarm*)
VAR
gbInNoErrorBumperLeft : BOOL; (*Keine St<53>rung Auswerteeinheit Handschutzleiste Links (Nur wenn Versorgung Ok)*)
END_VAR
(*gbInFireLeftError*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST9 - X20DO9322 (Ausg<73>nge Allgemein)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbOu4T1_Di01 : BOOL; (*DI 1 auf Umrichter - Crosslinked mit ReferenzIni*)
END_VAR
(*//1 Spare - An Umnrichter*)
(*//1 Spare*)
VAR
gbOuSupplyBumperLeft : BOOL; (*Versorgungsspannung Bumper Auswerteger<65>t Links*)
END_VAR
(*gbOuFireTestResetLeft*)
(*gbOuOperationToSucktionLeft*)
(*//gbOuLampGreenLeft*)
VAR
gbOuLampRedLeft : BOOL; (*LM Taster Rot Links*)
gbOuMaintDoorLeftLock : BOOL; (*Wartungst<73>r Links Verriegeln*)
END_VAR
(*gbOuErrorToSucktionLeft*)
VAR
gbOuLightOn : BOOL;
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST16 - PS2100 (Sicherheit Links Ok)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbInPSafeLeftOff : BOOL; (*Potential 24 Sicher Links - Aus (F<>r R<>ckf<6B>hrkreis)*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST11 - X20DO9322 (Ausg<73>nge Sicherheit Links)*)
(*----------------------------------------------------------------------------------------------------------------*)
(*gbOuPaintOnRight*)
(*gbOuPaintGunOnRight*)
(*gbOuSlayRightFw*)
(*gbOuSlayRightBw*)
(*gbOuPaintRightRound*)
(*gbOuPaintRighttWide*)
(*//1 Reserve*)
(*//1 Reserve*)
(*//1 Reserve*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST21 - X20SI4100*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSInCabLeftMaintDoorLeft : BOOL; (*Sicherer Eingang 01/02 Equivalent - Kabine Links Schutzt<7A>r links*)
gbSInCabLeftMaintDoorRight : BOOL; (*Sicherer Eingang 03/04 Equivalent - Kabine Links Schutzt<7A>r rechts*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*----------------------------------------------------------------------------------------------------------------*)
(*Achsen*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gAxis01 : ACP10AXIS_typ;
gAxis01_HW : SdcHwCfg_typ := (0);
gAxis01_DrvIf : SdcDrvIf16_typ := (0);
gAxis01_EncIf1 : SdcEncIf16_typ := (0);
gAxis01_DiDoIf : SdcDiDoIf_typ := (0);
gAxis01_MotorStep0 : INT := 0;
END_VAR

View File

@@ -0,0 +1,8 @@
<?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">Global.typ</Object>
<Object Type="File" Description="Global variables / IOs">Global.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,286 @@
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*)
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_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 Version=4.7.5.60 SP?>
<Library Version="5.09.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.09.2" ToVersion="5.09.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 Version=4.7.5.60 SP?>
<Library Version="5.09.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.09.2" ToVersion="5.09.2" />
<Dependency ObjectName="Ncglobal" FromVersion="5.09.2" ToVersion="5.09.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 Version=4.7.5.60 SP?>
<Library Version="5.09.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

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,142 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ACP10SDC_
#define _ACP10SDC_
#include <bur/plctypes.h>
#ifndef _IEC_CONST
#define _IEC_CONST _WEAK const
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define ncSDC_ENC16 100U
#define ncSDC_ENC32 101U
#define ncSDC_DRVSM16 110U
#define ncSDC_DRVSM32 111U
#define ncSDC_DRVSM16_CTRL 112U
#define ncSDC_DRVSM32_CTRL 113U
#define ncSDC_DRVSERVO16 120U
#define ncSDC_TRIG 130U
#define ncSDC_TRIGDIGin 131U
#define ncSDC_DIDO 140U
#else
_IEC_CONST unsigned short ncSDC_ENC16 = 100U;
_IEC_CONST unsigned short ncSDC_ENC32 = 101U;
_IEC_CONST unsigned short ncSDC_DRVSM16 = 110U;
_IEC_CONST unsigned short ncSDC_DRVSM32 = 111U;
_IEC_CONST unsigned short ncSDC_DRVSM16_CTRL = 112U;
_IEC_CONST unsigned short ncSDC_DRVSM32_CTRL = 113U;
_IEC_CONST unsigned short ncSDC_DRVSERVO16 = 120U;
_IEC_CONST unsigned short ncSDC_TRIG = 130U;
_IEC_CONST unsigned short ncSDC_TRIGDIGin = 131U;
_IEC_CONST unsigned short ncSDC_DIDO = 140U;
#endif
/* Variables */
/* Datatypes and datatypes of function blocks */
typedef struct SdcHwCfg_typ
{ unsigned short EncIf1_Typ;
unsigned short EncIf2_Typ;
unsigned short DrvIf_Typ;
unsigned short TrigIf1_Typ;
unsigned short TrigIf2_Typ;
unsigned short DiDoIf_Typ;
unsigned char EncIf1_Name[34];
unsigned char EncIf2_Name[34];
unsigned char DrvIf_Name[34];
unsigned char TrigIf1_Name[34];
unsigned char TrigIf2_Name[34];
unsigned char DiDoIf_Name[34];
unsigned long NOT_USE[10];
} SdcHwCfg_typ;
typedef struct SdcEncIf16_typ
{ signed char iLifeCnt;
plcbit iEncOK;
signed short iActTime;
signed short iActPos;
signed short iRefPulsePos;
signed char iRefPulseCnt;
plcbit reserve[3];
} SdcEncIf16_typ;
typedef struct SdcEncIf32_typ
{ signed char iLifeCnt;
plcbit iEncOK;
signed short iActTime;
signed long iActPos;
signed long iRefPulsePos;
signed char iRefPulseCnt;
plcbit reserve[3];
} SdcEncIf32_typ;
typedef struct SdcDrvIf16_typ
{ signed char iLifeCnt;
plcbit iDrvOK;
signed short oSetTime;
signed short oSetPos;
plcbit oBoostCurrent;
plcbit oStandStillCurrent;
plcbit iStatusEnable;
plcbit oBrake;
plcbit reserve[2];
} SdcDrvIf16_typ;
typedef struct SdcDrvIf32_typ
{ signed char iLifeCnt;
plcbit iDrvOK;
signed short oSetTime;
signed long oSetPos;
plcbit oBoostCurrent;
plcbit oStandStillCurrent;
plcbit iStatusEnable;
plcbit oBrake;
} SdcDrvIf32_typ;
typedef struct SdcTrigIf_typ
{ signed char iLifeCnt;
signed char iTriggerCntRise;
signed char iTriggerCntFall;
plcbit iTriggerInput;
signed short iTriggerTimeRise;
signed short iTriggerTimeFall;
} SdcTrigIf_typ;
typedef struct SdcTrigIfDIGin_typ
{ signed char iLifeCnt;
plcbit iTriggerInput;
plcbit reserve[2];
} SdcTrigIfDIGin_typ;
typedef struct SdcDiDoIf_typ
{ signed char iLifeCntDriveReady;
signed char iLifeCntPosHwEnd;
signed char iLifeCntNegHwEnd;
signed char iLifeCntReference;
signed char iLifeCntDriveEnable;
plcbit iDriveReady;
plcbit iPosHwEnd;
plcbit iNegHwEnd;
plcbit iReference;
plcbit oDriveEnable;
plcbit reserve[2];
} SdcDiDoIf_typ;
/* Prototyping of functions and function blocks */
__asm__(".section \".plc\"");
__asm__(".previous");
#endif /* _ACP10SDC_ */

View File

@@ -0,0 +1,83 @@
TYPE
SdcHwCfg_typ : STRUCT
EncIf1_Typ :UINT;
EncIf2_Typ :UINT;
DrvIf_Typ :UINT;
TrigIf1_Typ :UINT;
TrigIf2_Typ :UINT;
DiDoIf_Typ :UINT;
EncIf1_Name :ARRAY[0..33] OF USINT;
EncIf2_Name :ARRAY[0..33] OF USINT;
DrvIf_Name :ARRAY[0..33] OF USINT;
TrigIf1_Name :ARRAY[0..33] OF USINT;
TrigIf2_Name :ARRAY[0..33] OF USINT;
DiDoIf_Name :ARRAY[0..33] OF USINT;
NOT_USE :ARRAY[0..9] OF UDINT;
END_STRUCT;
SdcEncIf16_typ : STRUCT
iLifeCnt :SINT;
iEncOK :BOOL;
iActTime :INT;
iActPos :INT;
iRefPulsePos :INT;
iRefPulseCnt :SINT;
reserve :ARRAY[0..2] OF BOOL;
END_STRUCT;
SdcEncIf32_typ : STRUCT
iLifeCnt :SINT;
iEncOK :BOOL;
iActTime :INT;
iActPos :DINT;
iRefPulsePos :DINT;
iRefPulseCnt :SINT;
reserve :ARRAY[0..2] OF BOOL;
END_STRUCT;
SdcDrvIf16_typ : STRUCT
iLifeCnt :SINT;
iDrvOK :BOOL;
oSetTime :INT;
oSetPos :INT;
oBoostCurrent :BOOL;
oStandStillCurrent :BOOL;
iStatusEnable :BOOL;
oBrake :BOOL;
reserve :ARRAY[0..1] OF BOOL;
END_STRUCT;
SdcDrvIf32_typ : STRUCT
iLifeCnt :SINT;
iDrvOK :BOOL;
oSetTime :INT;
oSetPos :DINT;
oBoostCurrent :BOOL;
oStandStillCurrent :BOOL;
iStatusEnable :BOOL;
oBrake :BOOL;
END_STRUCT;
SdcTrigIf_typ : STRUCT
iLifeCnt :SINT;
iTriggerCntRise :SINT;
iTriggerCntFall :SINT;
iTriggerInput :BOOL;
iTriggerTimeRise :INT;
iTriggerTimeFall :INT;
END_STRUCT;
SdcTrigIfDIGin_typ : STRUCT
iLifeCnt :SINT;
iTriggerInput :BOOL;
reserve :ARRAY[0..1] OF BOOL;
END_STRUCT;
SdcDiDoIf_typ : STRUCT
iLifeCntDriveReady :SINT;
iLifeCntPosHwEnd :SINT;
iLifeCntNegHwEnd :SINT;
iLifeCntReference :SINT;
iLifeCntDriveEnable :SINT;
iDriveReady :BOOL;
iPosHwEnd :BOOL;
iNegHwEnd :BOOL;
iReference :BOOL;
oDriveEnable :BOOL;
reserve :ARRAY[0..1] OF BOOL;
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,13 @@
VAR CONSTANT
ncSDC_ENC16 :UINT :=100;
ncSDC_ENC32 :UINT :=101;
ncSDC_DRVSM16 :UINT :=110;
ncSDC_DRVSM32 :UINT :=111;
ncSDC_DRVSM16_CTRL :UINT :=112;
ncSDC_DRVSM32_CTRL :UINT :=113;
ncSDC_DRVSERVO16 :UINT :=120;
ncSDC_TRIG :UINT :=130;
ncSDC_TRIGDIGin :UINT :=131;
ncSDC_DIDO :UINT :=140;
END_VAR

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.7.5.60 SP?>
<Library Version="5.09.2" SubType="binary" Description="Smart Device Controller" xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>acp10sdc.var</File>
<File>acp10sdc.typ</File>
</Files>
<Dependencies>
<Dependency ObjectName="Acp10man" FromVersion="5.09.2" ToVersion="5.09.2" />
</Dependencies>
</Library>

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,88 @@
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_100 : UDINT := 100; (*100 MBaud, half-duplex*)
cfgETHBAUDRATE_100FD : UDINT := 101; (*100 MBaud, full-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,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>

View File

@@ -0,0 +1,39 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASBRSTR_
#define _ASBRSTR_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#ifndef _IEC_CONST
#define _IEC_CONST _WEAK const
#endif
/* Prototyping of functions and function blocks */
unsigned short brsftoa(float value, unsigned long pString);
float brsatof(unsigned long pString);
unsigned short brsitoa(signed long value, unsigned long pString);
signed long brsatoi(unsigned long pString);
unsigned long brsmemset(unsigned long pDest, unsigned char value, unsigned long length);
unsigned long brsmemcpy(unsigned long pDest, unsigned long pSrc, unsigned long length);
unsigned long brsmemmove(unsigned long pDest, unsigned long pSrc, unsigned long length);
signed long brsmemcmp(unsigned long pMem1, unsigned long pMem2, unsigned long length);
unsigned long brsstrcat(unsigned long pDest, unsigned long pSrc);
unsigned long brsstrlen(unsigned long pString);
unsigned long brsstrcpy(unsigned long pDest, unsigned long pSrc);
signed long brsstrcmp(unsigned long pString1, unsigned long pString2);
#ifdef __cplusplus
};
#endif
#endif /* _ASBRSTR_ */

View File

@@ -0,0 +1,39 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASBRSTR_
#define _ASBRSTR_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#ifndef _BUR_PUBLIC
#define _BUR_PUBLIC
#endif
/* Prototyping of functions and function blocks */
_BUR_PUBLIC unsigned short brsftoa(float value, unsigned long pString);
_BUR_PUBLIC float brsatof(unsigned long pString);
_BUR_PUBLIC double brsatod(unsigned long pString);
_BUR_PUBLIC unsigned short brsitoa(signed long value, unsigned long pString);
_BUR_PUBLIC signed long brsatoi(unsigned long pString);
_BUR_PUBLIC unsigned long brsmemset(unsigned long pDest, unsigned char value, unsigned long length);
_BUR_PUBLIC unsigned long brsmemcpy(unsigned long pDest, unsigned long pSrc, unsigned long length);
_BUR_PUBLIC unsigned long brsmemmove(unsigned long pDest, unsigned long pSrc, unsigned long length);
_BUR_PUBLIC signed long brsmemcmp(unsigned long pMem1, unsigned long pMem2, unsigned long length);
_BUR_PUBLIC unsigned long brsstrcat(unsigned long pDest, unsigned long pSrc);
_BUR_PUBLIC unsigned long brsstrlen(unsigned long pString);
_BUR_PUBLIC unsigned long brsstrcpy(unsigned long pDest, unsigned long pSrc);
_BUR_PUBLIC signed long brsstrcmp(unsigned long pString1, unsigned long pString2);
#ifdef __cplusplus
};
#endif
#endif /* _ASBRSTR_ */

View File

@@ -0,0 +1,39 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASBRSTR_
#define _ASBRSTR_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#ifndef _IEC_CONST
#define _IEC_CONST _WEAK const
#endif
/* Prototyping of functions and function blocks */
unsigned short brsftoa(float value, unsigned long pString);
float brsatof(unsigned long pString);
unsigned short brsitoa(signed long value, unsigned long pString);
signed long brsatoi(unsigned long pString);
unsigned long brsmemset(unsigned long pDest, unsigned char value, unsigned long length);
unsigned long brsmemcpy(unsigned long pDest, unsigned long pSrc, unsigned long length);
unsigned long brsmemmove(unsigned long pDest, unsigned long pSrc, unsigned long length);
signed long brsmemcmp(unsigned long pMem1, unsigned long pMem2, unsigned long length);
unsigned long brsstrcat(unsigned long pDest, unsigned long pSrc);
unsigned long brsstrlen(unsigned long pString);
unsigned long brsstrcpy(unsigned long pDest, unsigned long pSrc);
signed long brsstrcmp(unsigned long pString1, unsigned long pString2);
#ifdef __cplusplus
};
#endif
#endif /* _ASBRSTR_ */

View File

@@ -0,0 +1,71 @@
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsconv : UDINT (*converts one string to a different format*)
VAR_INPUT
pDestination :REFERENCE TO USINT; (*string to be appended to, given as a pointer*)
pSource :REFERENCE TO USINT; (*string to be appended, given as a pointer*)
level :USINT; (*brwU8toUC (= 0) if converting from U8 to UC; brwUCtoU8 (= 1) if converting from UC to U8*)
END_VAR
END_FUNCTION
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsncpy : UDINT (*copies a maximum of n characters from the pSource WC string to the pDestination address*)
VAR_INPUT
pDestination :REFERENCE TO UINT; (*pointer to the target memory for the string*)
pSource :REFERENCE TO UINT; (*string to be copied, given as a pointer*)
n :UDINT; (*max. number of characters to be copied*)
END_VAR
END_FUNCTION
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsncat : UDINT (*appends a maximum of n characters from the pSource string to the pDestination string*)
VAR_INPUT
pDestination :REFERENCE TO UINT; (*string to be appended to, given as a pointer*)
pSource :REFERENCE TO UINT; (*string to be appended, given as a pointer*)
n :UDINT; (*maximum number of characters to be added from pSource to pDestination*)
END_VAR
END_FUNCTION
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcscat : UDINT (*connects two WC strings to each other (concatenation)*)
VAR_INPUT
pDestination :REFERENCE TO UINT; (*string to be appended to, given as a pointer*)
pSource :REFERENCE TO UINT; (*string to be appended, given as a pointer*)
END_VAR
END_FUNCTION
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcscmp : DINT (*compares two 16-bit character strings*)
VAR_INPUT
pUcstr1 :REFERENCE TO UINT; (*first string, given as a pointer*)
pUcstr2 :REFERENCE TO UINT; (*second string, given as a pointer*)
END_VAR
END_FUNCTION
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcslen : UDINT (*determines the length of a WC string*)
VAR_INPUT
pwcString :REFERENCE TO UINT; (*string whose length should be determined, given as a pointer*)
END_VAR
END_FUNCTION
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsset : UDINT (*appends the pSource string to the pDestination string*)
VAR_INPUT
pDestination :REFERENCE TO UINT; (*string being written, given as a pointer*)
len :UDINT; (*number of characters to be written*)
symbol :UINT; (*character used to overwrite*)
END_VAR
END_FUNCTION
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsncmp : DINT (*compares two 16-bit strings*)
VAR_INPUT
pwcString1 :REFERENCE TO UINT; (*first string given as a pointer*)
pwcString2 :REFERENCE TO UINT; (*second string given as a pointer*)
n :UDINT; (*max. number of characters from pUcstr1 to be compared with pUcstr2*)
END_VAR
END_FUNCTION
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcscpy : UDINT (*copies a WC string*)
VAR_INPUT
pDestination :REFERENCE TO UINT; (*pointer to the target memory for the string*)
pSource :REFERENCE TO UINT; (*string to be copied, given as a pointer*)
END_VAR
END_FUNCTION
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsrchr : UDINT (*searches for the last occurrence of a certain character in a WC string*)
VAR_INPUT
pDestination :REFERENCE TO UINT; (*character string being searched, given as a pointer*)
symbol :UINT; (*character being looked for*)
END_VAR
END_FUNCTION
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcschr : UDINT (*searches for the first occurrence of a certain character*)
VAR_INPUT
pDestination :REFERENCE TO UINT; (*string given as a pointer*)
symbol :UINT; (*character being looked for*)
END_VAR
END_FUNCTION

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