Workbackup
This commit is contained in:
16
KD_Boell_RR.apj
Normal file
16
KD_Boell_RR.apj
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version="4.4.8.122 SP"?>
|
||||
<Project Version="1.00.0" Edition="Standard" EditionComment="Standard" xmlns="http://br-automation.co.at/AS/Project">
|
||||
<Communication />
|
||||
<ANSIC DefaultIncludes="true" />
|
||||
<IEC ExtendedConstants="true" IecExtendedComments="true" KeywordsAsStructureMembers="false" NamingConventions="true" Pointers="true" Preprocessor="false" />
|
||||
<Motion RestartAcoposParameter="true" RestartInitParameter="true" />
|
||||
<Project StoreRuntimeInProject="false" />
|
||||
<Variables DefaultInitValue="0" DefaultRetain="false" DefaultVolatile="true" />
|
||||
<TechnologyPackages>
|
||||
<mapp Version="5.8.0" />
|
||||
<mappCockpit Version="5.8.0" />
|
||||
<mappMotion McAcpDrv="5.8.2" McAcpSim="5.8.2" McAcpSys="5.8.2" McMechSys="5.8.2" Version="5.8.2" />
|
||||
<mappView Version="5.8.1" />
|
||||
</TechnologyPackages>
|
||||
</Project>
|
||||
7
LastUser.set
Normal file
7
LastUser.set
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version="4.4.8.122 SP"?>
|
||||
<ProjectSettings xmlns="http://br-automation.co.at/AS/ProjectSettings">
|
||||
<ConfigurationManager ActiveConfigurationName="Config1" />
|
||||
<Deployment Value="ActiveCpu" />
|
||||
<Print Footer="%cPage: %p" Header="%lProject: %n%c%x" />
|
||||
</ProjectSettings>
|
||||
0
Logical/Common/GlobalCommon.typ
Normal file
0
Logical/Common/GlobalCommon.typ
Normal file
25
Logical/Common/GlobalComon.var
Normal file
25
Logical/Common/GlobalComon.var
Normal file
@@ -0,0 +1,25 @@
|
||||
VAR
|
||||
bBlink0_1 : BOOL;
|
||||
bBlink0_5 : BOOL;
|
||||
bBlink1_0 : BOOL;
|
||||
bBlink2_0 : BOOL;
|
||||
bBlink5_0 : BOOL;
|
||||
gdtCurrentTime : DATE_AND_TIME; (*Aktuelles Datum/Uhrzeit DT*)
|
||||
gDTstrucCurrentTime : DTStructure := (0); (*Aktuelles Datum/Uhrzeit DTStructure*)
|
||||
gsCurrentTime : STRING[25] := ''; (*Aktuelles Datum/Uhrzeit String*)
|
||||
gsCurrentTimestamp : STRING[19] := ''; (*Aktuelles Datum/Uhrzeit String Timestamp*)
|
||||
gTCurrentTime : TIME := T#0ms; (*Aktuelle Zeit*)
|
||||
END_VAR
|
||||
VAR CONSTANT
|
||||
gAInNull : INT := 0; (*0 f<>r Analogeing<6E>nge*)
|
||||
gTrue : BOOL := TRUE; (*Konstant TRUE*)
|
||||
gFalse : BOOL := FALSE; (*Konstant False*)
|
||||
gInNull : BOOL := FALSE; (*FALSE FOR Input *)
|
||||
END_VAR
|
||||
VAR
|
||||
gOuNull : BOOL; (*DUMMY for Ausg<73>nge*)
|
||||
END_VAR
|
||||
VAR CONSTANT
|
||||
iAIVoltageOverflow : INT := 16#7FFF; (* Analog Eingang Spannungsmodus,Overflow *)
|
||||
iAIVoltageUnderflow : INT := -32767; (* Analog Eingang Spannungsmodus Underflow *)
|
||||
END_VAR
|
||||
10
Logical/Common/Package.pkg
Normal file
10
Logical/Common/Package.pkg
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<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="Aktuelles Datum / Uhrzeig auslesen">get_dt</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Blinker 0,1 -0,5s (f. 100ms Task) !!!">blinker</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
9
Logical/Common/blinker/IEC.prg
Normal file
9
Logical/Common/blinker/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Local variables" Private="true">blinker.var</File>
|
||||
<File Description="Initialization code">blinkerInit.ab</File>
|
||||
<File Description="Cyclic code">blinkerCyclic.ab</File>
|
||||
</Files>
|
||||
</Program>
|
||||
13
Logical/Common/blinker/blinker.var
Normal file
13
Logical/Common/blinker/blinker.var
Normal file
@@ -0,0 +1,13 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- kA
|
||||
********************************************************************
|
||||
* Program: blinker
|
||||
* File: blinker.var
|
||||
* Author: michi
|
||||
* Created: November 23, 2009
|
||||
********************************************************************
|
||||
* Local variables of program blinker
|
||||
********************************************************************)
|
||||
VAR
|
||||
iCount : USINT;
|
||||
END_VAR
|
||||
30
Logical/Common/blinker/blinkerCyclic.ab
Normal file
30
Logical/Common/blinker/blinkerCyclic.ab
Normal file
@@ -0,0 +1,30 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- kA
|
||||
********************************************************************
|
||||
* Program: blinker
|
||||
* File: blinkerCyclic.ab
|
||||
* Author: michi
|
||||
* Created: November 23, 2009
|
||||
********************************************************************
|
||||
* Implementation of program blinker
|
||||
********************************************************************)
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
(* cyclic program *)
|
||||
;Has to be taskclass 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
|
||||
16
Logical/Common/blinker/blinkerInit.ab
Normal file
16
Logical/Common/blinker/blinkerInit.ab
Normal file
@@ -0,0 +1,16 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- kA
|
||||
********************************************************************
|
||||
* Program: blinker
|
||||
* File: blinkerInit.ab
|
||||
* Author: michi
|
||||
* Created: November 23, 2009
|
||||
********************************************************************
|
||||
* Implementation of program blinker
|
||||
********************************************************************)
|
||||
|
||||
PROGRAM _INIT
|
||||
iCount = 0
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
9
Logical/Common/get_dt/IEC.prg
Normal file
9
Logical/Common/get_dt/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File>get_dtCyclic.ab</File>
|
||||
<File Private="true">get_dt.var</File>
|
||||
<File>get_dtInit.ab</File>
|
||||
</Files>
|
||||
</Program>
|
||||
6
Logical/Common/get_dt/get_dt.var
Normal file
6
Logical/Common/get_dt/get_dt.var
Normal file
@@ -0,0 +1,6 @@
|
||||
VAR
|
||||
sTemp : STRING[10] := '';
|
||||
lDTStructureGetTime : DTStructureGetTime := (0);
|
||||
lDTGetTime : DTGetTime := (0);
|
||||
lTimeStructure : TIMEStructure := (0);
|
||||
END_VAR
|
||||
96
Logical/Common/get_dt/get_dtCyclic.ab
Normal file
96
Logical/Common/get_dt/get_dtCyclic.ab
Normal file
@@ -0,0 +1,96 @@
|
||||
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)
|
||||
//Timestamp
|
||||
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
|
||||
brsstrcat (ADR (gsCurrentTimestamp), "")
|
||||
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))
|
||||
|
||||
//Timestamp
|
||||
brsstrcpy (ADR (gsCurrentTimestamp), "")
|
||||
IF (gDTstrucCurrentTime.day < 10) THEN
|
||||
brsstrcat (ADR (gsCurrentTimestamp), "0")
|
||||
ENDIF
|
||||
brsstrcat (ADR (gsCurrentTimestamp), "")
|
||||
brsitoa (gDTstrucCurrentTime.day, ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTimestamp), ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTimestamp), ".")
|
||||
IF (gDTstrucCurrentTime.month < 10) THEN
|
||||
brsstrcat (ADR (gsCurrentTimestamp), "0")
|
||||
ENDIF
|
||||
brsitoa (gDTstrucCurrentTime.month, ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTimestamp), ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTimestamp), ".")
|
||||
brsitoa (gDTstrucCurrentTime.year, ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTimestamp), ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTimestamp), " ")
|
||||
IF (gDTstrucCurrentTime.hour < 10) THEN
|
||||
brsstrcat (ADR (gsCurrentTimestamp), "0")
|
||||
ENDIF
|
||||
brsitoa (gDTstrucCurrentTime.hour, ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTimestamp), ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTimestamp), ":")
|
||||
IF (gDTstrucCurrentTime.minute < 10) THEN
|
||||
brsstrcat (ADR (gsCurrentTimestamp), "0")
|
||||
ENDIF
|
||||
brsitoa (gDTstrucCurrentTime.minute, ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTimestamp), ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTimestamp), ":")
|
||||
IF (gDTstrucCurrentTime.second < 10) THEN
|
||||
brsstrcat (ADR (gsCurrentTimestamp), "0")
|
||||
ENDIF
|
||||
brsitoa (gDTstrucCurrentTime.second, ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTimestamp), ADR (sTemp))
|
||||
|
||||
|
||||
lTimeStructure.day = gDTstrucCurrentTime.day
|
||||
lTimeStructure.hour = gDTstrucCurrentTime.hour
|
||||
lTimeStructure.minute = gDTstrucCurrentTime.minute
|
||||
lTimeStructure.second = gDTstrucCurrentTime.second
|
||||
lTimeStructure.millisec = gDTstrucCurrentTime.millisec
|
||||
lTimeStructure.microsec = gDTstrucCurrentTime.microsec
|
||||
gTCurrentTime = TIMEStructure_TO_TIME (adr (lTimeStructure))
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
4
Logical/Common/get_dt/get_dtInit.ab
Normal file
4
Logical/Common/get_dt/get_dtInit.ab
Normal file
@@ -0,0 +1,4 @@
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
END_PROGRAM
|
||||
|
||||
133
Logical/Communication/ABBCom/ABBCom/ABBCom.st
Normal file
133
Logical/Communication/ABBCom/ABBCom/ABBCom.st
Normal file
@@ -0,0 +1,133 @@
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
//Zeiger auf Roboter Stellen (Zyklisch wg. Download)
|
||||
|
||||
lABBRobot ACCESS ADR (gABBRobot1);
|
||||
//Lifebeat erzeugen
|
||||
lABBRobot.Out.bLifebeat := bBlink0_5;
|
||||
|
||||
//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)
|
||||
|
||||
//Eingangs Byte 2 (16-23)
|
||||
lABBRobot.In.bOpenGripper := dpInByte[2].0;
|
||||
IF lABBRobot.In.bOpenGripper THEN
|
||||
IF NOT gEGP1.In.bGripperIsOpen THEN
|
||||
gEGP1.Out.bOpen := TRUE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
lABBRobot.In.bCloseGripper := dpInByte[2].1;
|
||||
IF lABBRobot.In.bCloseGripper THEN
|
||||
IF NOT gEGP1.In.bGripperIsClosed AND NOT gEGP1.In.bGripperIsClosedWithPart THEN
|
||||
gEGP1.Out.bClose := TRUE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
lABBRobot.In.bGripperDropPart := dpInByte[2].2;
|
||||
IF lABBRobot.In.bGripperDropPart THEN
|
||||
IF NOT gEGP1.In.bGripperDroppedPart THEN
|
||||
gEGP1.Out.bPosition := TRUE;
|
||||
//Wert ist in EGP - Parameter hinterleg1
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
//Eingangs Byte 3 (24-31)
|
||||
lABBRobot.In.bWZHome := dpInByte[3].0;
|
||||
lABBRobot.In.bWZChangetool := dpInByte[3].1;
|
||||
lABBRobot.In.bWZPlacepoint := dpInByte[3].2;
|
||||
gCmd1.FeederRobFeed.RobfeedToFd.bRobotInPlacepos := dpInByte[3].2;
|
||||
|
||||
//Eingangs Byte 4 (32-39)
|
||||
lABBRobot.In.bWZFeederFree := dpInByte[4].0;
|
||||
lABBRobot.In.bWZOvHndFree := dpInByte[4].1;
|
||||
|
||||
// lABBRobot.In.uiRotationPos := SHL (USINT_TO_UINT (dpInByte[4]), 8) + USINT_TO_UINT (dpInByte[4]);
|
||||
//Eingangs Byte 5 (40-47)
|
||||
// lABBRobot.In.usRotations := dpInByte[5];
|
||||
//Eingangs Byte 6 (48-55)
|
||||
lABBRobot.In.usRotationSpeed := dpInByte[6];
|
||||
//Eingangs Byte 7 (56-63)
|
||||
lABBRobot.In.usTurnTablePos := dpInByte[7];
|
||||
//Eingangs Byte 8 (64-71)
|
||||
lABBRobot.In.usStatus := dpInByte[8];
|
||||
//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)
|
||||
|
||||
//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 := gEGP1.In.bGripperIsOpen;
|
||||
dpOutByte[2].1 := gEGP1.In.bGripperIsClosed OR gEGP1.In.bGripperIsClosedWithPart;
|
||||
dpOutByte[2].2 := gCmd1.FeederRobFeed.FdToRobfeed.bTangUpsideDownOk;
|
||||
dpOutByte[2].3 := gCmd1.FeederRobFeed.FdToRobfeed.bTangUpsideOk;
|
||||
dpOutByte[2].4 := gCmd1.FeederRobFeed.FdToRobfeed.bNoTang;
|
||||
dpOutByte[2].5 := gCmd1.FeederRobFeed.FdToRobfeed.bOvHndBackAndFree;
|
||||
dpOutByte[2].6 := gCmd1.FeederRobFeed.FdToRobfeed.bOvHndBusy;
|
||||
|
||||
dpOutByte[2].7 := gEGP1.In.bGripperDroppedPart;
|
||||
|
||||
//Schrauber ist weg von <EFBFBD>bergabe
|
||||
dpOutByte[3].0 := gCmd1.ScrewdriverRob[1].RobToScr.bRobAwayFromOvHnd;
|
||||
|
||||
//Ausgangs Byte 3 (24-31)
|
||||
//Ausgangs Byte 4 (32-39)
|
||||
// dpOutByte[4] := UINT_TO_USINT (lABBRobot.Out.uiRotationPos MOD 256);
|
||||
// dpOutByte[5] := UINT_TO_USINT (SHR (lABBRobot.Out.uiRotationPos, 8));
|
||||
//Ausgangs Byte 5 (40-47)
|
||||
// dpOutByte[5] := lABBRobot.Out.usRotationsDone;
|
||||
//Ausgangs Byte 6 (48-55)
|
||||
//dpOutByte[6] := lABBRobot.Out.usPartsNr;
|
||||
//Ausgangs Byte 7 (56-63)
|
||||
//dpOutByte[7] := lABBRobot.Out.usTurnTablePos;
|
||||
//Ausgangs Byte 8 (64-71)
|
||||
dpOutByte[8] := lABBRobot.Out.usProgNr;
|
||||
//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
|
||||
8
Logical/Communication/ABBCom/ABBCom/ABBCom.var
Normal file
8
Logical/Communication/ABBCom/ABBCom/ABBCom.var
Normal file
@@ -0,0 +1,8 @@
|
||||
VAR
|
||||
lABBRobot : REFERENCE TO TypABBInterface; (*Referenz to ABB Interface*)
|
||||
dpOutByte : ARRAY[0..63] OF USINT := [64(0)]; (*Raw Output Bytes Abb Interface*)
|
||||
dpInByte : ARRAY[0..63] OF USINT := [64(0)]; (*Raw Input Bytes Abb Interface*)
|
||||
TOF_Reset_EStop : TOF;
|
||||
TON_Motors_On : TON;
|
||||
TON_Lifebeat : TON;
|
||||
END_VAR
|
||||
2
Logical/Communication/ABBCom/ABBCom/ABBComInit.st
Normal file
2
Logical/Communication/ABBCom/ABBCom/ABBComInit.st
Normal file
@@ -0,0 +1,2 @@
|
||||
PROGRAM _INIT
|
||||
END_PROGRAM
|
||||
9
Logical/Communication/ABBCom/ABBCom/IEC.prg
Normal file
9
Logical/Communication/ABBCom/ABBCom/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Implementation code">ABBComInit.st</File>
|
||||
<File Description="Implementation code">ABBCom.st</File>
|
||||
<File Description="Local variables" Private="true">ABBCom.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
45
Logical/Communication/ABBCom/GlobalABBCom.typ
Normal file
45
Logical/Communication/ABBCom/GlobalABBCom.typ
Normal file
@@ -0,0 +1,45 @@
|
||||
(*//Interface ABB Roboter*)
|
||||
|
||||
TYPE
|
||||
typABBInterfaceIn : 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)*)
|
||||
bOpenGripper : BOOL := FALSE; (*16 Greifer <20>ffnen*)
|
||||
bCloseGripper : BOOL := FALSE; (*17 Greifer Schlie<69>en*)
|
||||
bGripperDropPart : BOOL := FALSE; (*18 Greifer zum abwerfen <20>ffnen*)
|
||||
bWZHome : BOOL := FALSE; (*24 Roboter ist in Homepos*)
|
||||
bWZChangetool : BOOL := FALSE; (*25 Roboter ist in Weltzone ChangeTool*)
|
||||
bWZPlacepoint : BOOL := FALSE; (*26 Roboter ist in Weltzone Abgabepos <20>bergabestation*)
|
||||
bWZFeederFree : BOOL := FALSE; (*32 Roboter ist nicht Weltzone Feeder*)
|
||||
bWZOvHndFree : BOOL := FALSE; (*33 Roboter ist in Weltzone <20>bergabe*)
|
||||
usTurnTablePos : USINT := 0; (*40 Sollpos Drehtisch (0<>, 180<38>)*)
|
||||
usRotationPos : USINT := 0; (*48 Rotationspos (in 10<31> Schritten 0 - 36)*)
|
||||
usRotationSpeed : USINT := 0; (*56 Rotationsgeschwindigkeit 1-255*)
|
||||
usStatus : USINT := 0; (*64 Status*)
|
||||
END_STRUCT;
|
||||
typABBInterfaceOut : 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 (1Cycle)*)
|
||||
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;
|
||||
TypABBInterface : STRUCT (*ABB Robot Interface*)
|
||||
bOnline : BOOL; (*Kommuniktion OK*)
|
||||
In : typABBInterfaceIn; (*Eing<6E>nge von ABB Roboter*)
|
||||
Out : typABBInterfaceOut; (*Ausga<67>nge an aBB Roboter*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
|
||||
(**)
|
||||
5
Logical/Communication/ABBCom/GlobalABBCom.var
Normal file
5
Logical/Communication/ABBCom/GlobalABBCom.var
Normal file
@@ -0,0 +1,5 @@
|
||||
(*//Kommunikationsstrukturen*)
|
||||
VAR RETAIN
|
||||
gABBRobot1 : TypABBInterface;
|
||||
END_VAR
|
||||
(*Variablen / Strukturen*)
|
||||
9
Logical/Communication/ABBCom/Package.pkg
Normal file
9
Logical/Communication/ABBCom/Package.pkg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File" Description="Globale Typen ABB-Roboter">GlobalABBCom.typ</Object>
|
||||
<Object Type="File" Description="Globale Varibalen ABB-Roboter">GlobalABBCom.var</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Communication to ABB Robot 1 (IRC 5 Version)">ABBCom</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
211
Logical/Communication/ABBCom2/ABBCom2/ABBCom.st
Normal file
211
Logical/Communication/ABBCom2/ABBCom2/ABBCom.st
Normal file
@@ -0,0 +1,211 @@
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
//Zeiger auf Roboter Stellen (Zyklisch wg. Download)
|
||||
lABBRobot ACCESS ADR (gABBRobot2);
|
||||
|
||||
//Zapfenbrecher erkennen
|
||||
IF gToolsDetected.Tangbreaker[1] THEN
|
||||
usTangBreaker := 1;
|
||||
ELSIF gToolsDetected.Tangbreaker[2] THEN
|
||||
usTangBreaker := 2;
|
||||
ELSIF gToolsDetected.Tangbreaker[3] THEN
|
||||
usTangBreaker := 3;
|
||||
ELSE
|
||||
usTangBreaker := 0;
|
||||
END_IF
|
||||
|
||||
//Lifebeat erzeugen
|
||||
lABBRobot.Out.bLifebeat := bBlink0_5;
|
||||
|
||||
//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;
|
||||
// Reserve
|
||||
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)
|
||||
gCmd1.ScrewdriverRob[1].RobToScr.bPowerOff := dpInByte[1].0;
|
||||
gCmd1.ScrewdriverRob[1].RobToScr.bRobAwayFromOvHnd := dpInByte[1].1;
|
||||
gCmd1.ScrewdriverRob[1].RobToScr.bRobInOvHndPos := dpInByte[1].2;
|
||||
gCmd1.FeederRob[1].RobToFd.bRobotInLoadPos := dpInByte[1].2;
|
||||
gCmd1.ScrewdriverRob[1].RobToScr.bRobInSetpos := dpInByte[1].3;
|
||||
//Eingangs Byte 2 (16-23)
|
||||
gCmd1.ScrewdriverRob[1].RobToScr.bStartLoad := dpInByte[2].0;
|
||||
gCmd1.ScrewdriverRob[1].RobToScr.bSetHelicoil := dpInByte[2].1;
|
||||
gCmd1.ScrewdriverRob[1].RobToScr.bDropHelicoil := dpInByte[2].2;
|
||||
|
||||
|
||||
|
||||
//Eingangs Byte 3 (24-31)
|
||||
lABBRobot.In.bWZHome := dpInByte[3].0;
|
||||
|
||||
|
||||
//lABBRobot.In.bWZLimit1 := dpInByte[3].1;
|
||||
//lABBRobot.In.bWZLimit2 := dpInByte[3].2;
|
||||
// lABBRobot.In.bWZCleanPos := dpInByte[2].5;
|
||||
// lABBRobot.In.bPaintOn := dpInByte[3].0;
|
||||
// lABBRobot.In.bPaintRound := dpInByte[3].1;
|
||||
// lABBRobot.In.bPaintWide := dpInByte[3].2;
|
||||
// lABBRobot.In.bCleanOn := dpInByte[3].3;
|
||||
|
||||
//In Zapfenbrechpos
|
||||
gCmd1.TangBreakerRob[1].RobToTBrk.bRobInTangbreakpos := dpInByte[3].4;
|
||||
gCmd1.TangBreakerRob[2].RobToTBrk.bRobInTangbreakpos := dpInByte[3].4;
|
||||
gCmd1.TangBreakerRob[3].RobToTBrk.bRobInTangbreakpos := dpInByte[3].4;
|
||||
//In Absaugpos
|
||||
gCmd1.TangBreakerRob[1].RobToTBrk.bRobInSuckpos := dpInByte[3].5;
|
||||
gCmd1.TangBreakerRob[2].RobToTBrk.bRobInSuckpos := dpInByte[3].5;
|
||||
gCmd1.TangBreakerRob[3].RobToTBrk.bRobInSuckpos := dpInByte[3].5;
|
||||
//In Abwurfpos
|
||||
gCmd1.TangBreakerRob[1].RobToTBrk.bRobInDroppos := dpInByte[3].6;
|
||||
gCmd1.TangBreakerRob[2].RobToTBrk.bRobInDroppos := dpInByte[3].6;
|
||||
gCmd1.TangBreakerRob[3].RobToTBrk.bRobInDroppos := dpInByte[3].6;
|
||||
gCmd1.TangDetectionRob.RobToTBrk.bRobInDroppos := dpInByte[3].6;
|
||||
|
||||
|
||||
//Eingangs Byte 4 (32-39)
|
||||
//Befehl Zapfenbrechen f<EFBFBD>r aktives Werkzeug (f. Inaktive wird der Befehl in der Werkzeugtask gel<EFBFBD>scht)
|
||||
gCmd1.TangBreakerRob[usTangBreaker].RobToTBrk.bBrkTang := dpInByte[4].0;
|
||||
//Befehl Zapfen absaugen f<EFBFBD>r aktives Werkzeug (f. Inaktive wird der Befehl in der Werkzeugtask gel<EFBFBD>scht)
|
||||
gCmd1.TangBreakerRob[usTangBreaker].RobToTBrk.bSuckTang := dpInByte[4].1;
|
||||
//Befehl Zapfenb abwerfen f<EFBFBD>r aktives Werkzeug (f. Inaktive wird der Befehl in der Werkzeugtask gel<EFBFBD>scht)
|
||||
gCmd1.TangBreakerRob[usTangBreaker].RobToTBrk.bDropTang := dpInByte[4].2;
|
||||
|
||||
//Werkzeug l<EFBFBD>sen
|
||||
bDoUnlockTool := dpInByte[5].4;
|
||||
|
||||
|
||||
// lABBRobot.In.uiRotationPos := SHL (USINT_TO_UINT (dpInByte[4]), 8) + USINT_TO_UINT (dpInByte[4]);
|
||||
//Eingangs Byte 5 (40-47)
|
||||
// lABBRobot.In.usRotations := dpInByte[5];
|
||||
//Eingangs Byte 6 (48-55)
|
||||
//Eingangs Byte 7 (56-63)
|
||||
//Eingangs Byte 8 (64-71)
|
||||
//Eingangs Byte 9 (72-79)
|
||||
//Eingangs Byte 10 (80-87)
|
||||
//Eingangs Byte 11 (88-95)
|
||||
//Eingangs Byte 12 (96-103)
|
||||
//Eingangs Byte 13 (104-111)
|
||||
//Eingangs Byte 14 (112-119)
|
||||
//Eingangs Byte 15 (120-127)
|
||||
|
||||
//Eingangs Byte 25 (200-207)
|
||||
lABBRobot.In.usStatus := dpInByte[25];
|
||||
|
||||
|
||||
|
||||
|
||||
//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)
|
||||
//Schrauber 1 erkannt
|
||||
dpOutByte[1].0 := gToolsDetected.Screwdiver[1];
|
||||
|
||||
//Ausgangs Byte 2 (16-23)
|
||||
dpOutByte[2].0 := gCmd1.ScrewdriverRob[1].ScrToRob.bAxisRefereced;
|
||||
dpOutByte[2].1 := gCmd1.ScrewdriverRob[1].ScrToRob.bHCOnMandrel;
|
||||
dpOutByte[2].2 := gCmd1.ScrewdriverRob[1].ScrToRob.bMandelIsBack;
|
||||
dpOutByte[2].3 := gCmd1.ScrewdriverRob[1].ScrToRob.bMandrelLoadPos;
|
||||
dpOutByte[2].3 := gCmd1.ScrewdriverRob[1].ScrToRob.bMandrelisEmpty;
|
||||
|
||||
|
||||
//Ausgangs Byte 3 (24-31)
|
||||
dpOutByte[3].0 := gABBRobot1.In.bWZOvHndFree;
|
||||
dpOutByte[3].1 := gCmd1.FeederRob[1].FdToRob.bFeederIsLoaded;
|
||||
dpOutByte[3].2 := gCmd1.FeederRob[1].FdToRob.bFeederisHome;
|
||||
|
||||
//Ausgangs Byte 4 (32-39)
|
||||
dpOutByte[4].0 := gCmd1.ScrewdriverRob[1].ScrToRob.bHCSetOk;
|
||||
dpOutByte[4].1 := gCmd1.ScrewdriverRob[1].ScrToRob.bHCSetNOK;
|
||||
dpOutByte[4].2 := gCmd1.ScrewdriverRob[1].ScrToRob.bHCDidntReachFinalPos;
|
||||
dpOutByte[4].3 := gCmd1.ScrewdriverRob[1].ScrToRob.bHCTorqueToHighDuringSet;
|
||||
dpOutByte[4].4 := gCmd1.ScrewdriverRob[1].ScrToRob.bHCTorqueToSmallDuringSpindleOut;
|
||||
dpOutByte[4].5 := gCmd1.ScrewdriverRob[1].ScrToRob.bHCDidntDetectPart;
|
||||
|
||||
|
||||
//Ausgangs Byte 5 (40-47)
|
||||
//Zapfenbrecher 1-4 erkannt
|
||||
dpOutByte[5].0 := gToolsDetected.Tangbreaker[1];
|
||||
dpOutByte[5].1 := gToolsDetected.Tangbreaker[2];
|
||||
dpOutByte[5].2 := gToolsDetected.Tangbreaker[3];
|
||||
|
||||
dpOutByte[5].4 := bDiToolLocked;
|
||||
dpOutByte[5].5 := bDiToolUnlocked;
|
||||
|
||||
//Ausgangs Byte 6 (48-55)
|
||||
dpOutByte[6].0 := gCmd1.TangBreakerRob[usTangBreaker].TBrkToRob.bTBrkIsHome;
|
||||
dpOutByte[6].1 := gCmd1.TangBreakerRob[usTangBreaker].TBrkToRob.bSuckunitIsHome;
|
||||
dpOutByte[6].2 := gCmd1.TangBreakerRob[usTangBreaker].TBrkToRob.bHoleCoverIsBack;
|
||||
dpOutByte[6].3 := gCmd1.TangBreakerRob[usTangBreaker].TBrkToRob.bLidIsOpen;
|
||||
//Ausgangs Byte 7 (56-63)
|
||||
dpOutByte[7].0 := gCmd1.TangBreakerRob[usTangBreaker].TBrkToRob.bTangBroken;
|
||||
dpOutByte[7].1 := gCmd1.TangBreakerRob[usTangBreaker].TBrkToRob.bTangNotBroken;
|
||||
dpOutByte[7].2 := gCmd1.TangBreakerRob[usTangBreaker].TBrkToRob.bTangSucked;
|
||||
dpOutByte[7].3 := gCmd1.TangBreakerRob[usTangBreaker].TBrkToRob.bTangNotSucked;
|
||||
dpOutByte[7].4 := gCmd1.TangDetectionRob.TBrkToRob.bTangDetected;
|
||||
|
||||
//Ausgangs Byte 8 (64-71)
|
||||
//Ausgangs Byte 9 (72-79)
|
||||
//Ausgangs Byte 10 (80-87)
|
||||
//Ausgangs Byte 11 (88-95)
|
||||
dTemp :=(gCmd1.ScrewdriverRob[1].ScrToRob.diDepth);
|
||||
|
||||
dpOutByte[8] := DINT_TO_USINT (dTemp);
|
||||
dpOutByte[9] := DINT_TO_USINT (SHR (dTemp, 8));
|
||||
dpOutByte[10] := DINT_TO_USINT (SHR (dTemp, 16));
|
||||
dpOutByte[11] := DINT_TO_USINT (SHR (dTemp, 24));
|
||||
|
||||
|
||||
//Ausgangs Byte 12 (96-103)
|
||||
//Ausgangs Byte 13 (104-111)
|
||||
//Ausgangs Byte 14 (112-119)
|
||||
//Ausgangs Byte 15 (120-127)
|
||||
//Ausgangs Byte 16 (128-135)
|
||||
//Ausgangs Byte 17 (136-143)
|
||||
//Ausgangs Byte 18 (144-151)
|
||||
//Ausgangs Byte 19 (152-159)
|
||||
//Ausgangs Byte 20 (160-167)
|
||||
//Ausgangs Byte 21 (168-175)
|
||||
//Ausgangs Byte 22 (176-183)
|
||||
//Ausgangs Byte 23 (184-191)
|
||||
//Ausgangs Byte 24 (192-199)
|
||||
//Ausgangs Byte 25 (200-207)
|
||||
dpOutByte[25] := gABBRobot2.Out.usProgNr;
|
||||
//Ausgangs Byte 26 (208-215)
|
||||
//Ausgangs Byte 27 (216-223)
|
||||
//Ausgangs Byte 28 (224-231)
|
||||
dpOutByte[28] := gTestmachine.usOuHoleColumn;
|
||||
//Ausgangs Byte 28 (232-239)
|
||||
dpOutByte[29] := gTestmachine.usOuHoleNumber;
|
||||
//Lochnummer auch an Schrauber wg logging
|
||||
gCmd1.ScrewdriverRob[1].RobToScr.usHoleNr := gTestmachine.usOuHoleNumber;
|
||||
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
13
Logical/Communication/ABBCom2/ABBCom2/ABBCom.var
Normal file
13
Logical/Communication/ABBCom2/ABBCom2/ABBCom.var
Normal file
@@ -0,0 +1,13 @@
|
||||
VAR
|
||||
lABBRobot : REFERENCE TO TypABBInterface2; (*Referenz to ABB Interface*)
|
||||
dTemp : DINT;
|
||||
usTangBreaker : USINT;
|
||||
dpOutByte : ARRAY[0..63] OF USINT := [64(0)]; (*Raw Output Bytes Abb Interface*)
|
||||
dpInByte : ARRAY[0..63] OF USINT := [64(0)]; (*Raw Input Bytes Abb Interface*)
|
||||
TOF_Reset_EStop : TOF;
|
||||
TON_Motors_On : TON;
|
||||
TON_Lifebeat : TON;
|
||||
bDiToolLocked : BOOL;
|
||||
bDiToolUnlocked : BOOL;
|
||||
bDoUnlockTool : BOOL;
|
||||
END_VAR
|
||||
2
Logical/Communication/ABBCom2/ABBCom2/ABBComInit.st
Normal file
2
Logical/Communication/ABBCom2/ABBCom2/ABBComInit.st
Normal file
@@ -0,0 +1,2 @@
|
||||
PROGRAM _INIT
|
||||
END_PROGRAM
|
||||
9
Logical/Communication/ABBCom2/ABBCom2/IEC.prg
Normal file
9
Logical/Communication/ABBCom2/ABBCom2/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Implementation code">ABBComInit.st</File>
|
||||
<File Description="Implementation code">ABBCom.st</File>
|
||||
<File Description="Local variables" Private="true">ABBCom.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
38
Logical/Communication/ABBCom2/GlobalABBCom2.typ
Normal file
38
Logical/Communication/ABBCom2/GlobalABBCom2.typ
Normal file
@@ -0,0 +1,38 @@
|
||||
(*//Interface Machine*)
|
||||
(*//Interface ABB Roboter*)
|
||||
|
||||
TYPE
|
||||
typABBInterfaceIn2 : 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*)
|
||||
bLifebeat : BOOL := FALSE; (*07 Lifebeat von Roboter (<28>ber CC zur<75>ckgeroutet)*)
|
||||
bOpenGripper : BOOL := FALSE; (*16 Greifer <20>ffnen*)
|
||||
bCloseGripper : BOOL := FALSE; (*17 Greifer Schlie<69>en*)
|
||||
bWZHome : BOOL := FALSE; (*24 Roboter ist in Homepos*)
|
||||
bWZChangetool : BOOL := FALSE; (*25 Roboter ist in Workzone ChangeTool*)
|
||||
bWZOverHandFree : USINT;
|
||||
usStatus : USINT := 0; (*200 Status*)
|
||||
END_STRUCT;
|
||||
typABBInterfaceOut2 : 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 (1Cycle)*)
|
||||
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*)
|
||||
usProgNr : USINT := 0; (*200 Programm Number*)
|
||||
END_STRUCT;
|
||||
TypABBInterface2 : STRUCT (*ABB Robot Interface*)
|
||||
bOnline : BOOL; (*Kommuniktion OK*)
|
||||
In : typABBInterfaceIn2; (*Eing<6E>nge von ABB Roboter*)
|
||||
Out : typABBInterfaceOut2; (*Ausga<67>nge an aBB Roboter*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
|
||||
(**)
|
||||
5
Logical/Communication/ABBCom2/GlobalABBCom2.var
Normal file
5
Logical/Communication/ABBCom2/GlobalABBCom2.var
Normal file
@@ -0,0 +1,5 @@
|
||||
(*//Kommunikationsstrukturen*)
|
||||
VAR RETAIN
|
||||
gABBRobot2 : TypABBInterface2;
|
||||
END_VAR
|
||||
(*Variablen / Strukturen*)
|
||||
9
Logical/Communication/ABBCom2/Package.pkg
Normal file
9
Logical/Communication/ABBCom2/Package.pkg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File" Description="Globale Typen ABB-Roboter">GlobalABBCom2.typ</Object>
|
||||
<Object Type="File" Description="Globale Varibalen ABB-Roboter">GlobalABBCom2.var</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Communication to ABB Robot 1 (IRC 5 Version)">ABBCom2</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
50
Logical/Communication/EGP/EGPCom/Action.st
Normal file
50
Logical/Communication/EGP/EGPCom/Action.st
Normal file
@@ -0,0 +1,50 @@
|
||||
ACTION DoTimes:
|
||||
//Zeiten berechnen
|
||||
Times.diSteptime := gdiSystemTime - TimesLatch.diSteptime;
|
||||
END_ACTION
|
||||
|
||||
ACTION DoAlarms:
|
||||
//Alarme erzeugen bzw. r<EFBFBD>cksetzen
|
||||
//===================================================
|
||||
|
||||
//Greifer Fehler
|
||||
IF (EGPIn.usStatus = EGP_STAT_ERROR) AND bEGPSupplyOk THEN
|
||||
IF (AlarmIDs.udEGPError = 0) THEN
|
||||
AlarmIDs.udEGPError := MpAlarmXSet (gMpAlarmXCore, 'EGPError');
|
||||
END_IF
|
||||
ELSIF (EGPIn.usStatus = EGP_STAT_OK) AND (AlarmIDs.udEGPError > 0) THEN
|
||||
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udEGPError);
|
||||
AlarmIDs.udEGPError := 0;
|
||||
END_IF
|
||||
|
||||
//Greifer Wartung Erforderlich
|
||||
IF (EGPIn.usStatus = EGP_STAT_MAINT) THEN
|
||||
IF (AlarmIDs.udEGPMaint = 0) THEN
|
||||
AlarmIDs.udEGPMaint := MpAlarmXSet (gMpAlarmXCore, 'EGPMaint');
|
||||
END_IF
|
||||
ELSIF (EGPIn.usStatus = EGP_STAT_OK) AND (AlarmIDs.udEGPMaint > 0) THEN
|
||||
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udEGPMaint);
|
||||
AlarmIDs.udEGPMaint := 0;
|
||||
END_IF
|
||||
|
||||
//Greifer au<EFBFBD>er Spezifikation
|
||||
IF (EGPIn.usStatus = EGP_STAT_SPEC) THEN
|
||||
IF (AlarmIDs.udEGPSpec = 0) THEN
|
||||
AlarmIDs.udEGPSpec := MpAlarmXSet (gMpAlarmXCore, 'EGPSpec');
|
||||
END_IF
|
||||
ELSIF (EGPIn.usStatus = EGP_STAT_OK) AND (AlarmIDs.udEGPSpec > 0) THEN
|
||||
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udEGPSpec);
|
||||
AlarmIDs.udEGPSpec := 0;
|
||||
END_IF
|
||||
|
||||
IF (EGPIn.usStatus = EGP_STAT_OK) AND NOT EGPIn.bReferenced THEN
|
||||
IF (AlarmIDs.udEGPNotReferenced = 0) THEN
|
||||
AlarmIDs.udEGPNotReferenced := MpAlarmXSet (gMpAlarmXCore, 'EGPNotReferenced');
|
||||
END_IF
|
||||
ELSIF EGPIn.bReferenced AND (AlarmIDs.udEGPNotReferenced > 0) THEN
|
||||
MpAlarmXResetID (gMpAlarmXCore, AlarmIDs.udEGPNotReferenced);
|
||||
AlarmIDs.udEGPNotReferenced := 0;
|
||||
END_IF
|
||||
|
||||
|
||||
END_ACTION
|
||||
335
Logical/Communication/EGP/EGPCom/EGPCom.st
Normal file
335
Logical/Communication/EGP/EGPCom/EGPCom.st
Normal file
@@ -0,0 +1,335 @@
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
//Zeiger auf Interface Stellen (Zyklisch wg. Download)
|
||||
lEGPIf ACCESS ADR (gEGP1);
|
||||
//lABBRobot ACCESS ADR (gABBRobot1);
|
||||
|
||||
//FixMe Error nur wenn ESTOP Ok
|
||||
bEGPSupplyOk := gbSPLCInSafetySperation1Ok;
|
||||
//FixMe Kraft
|
||||
lEGPIf.Out.usForce := 3;
|
||||
|
||||
EGPIn.usStatus := dpInByte[0] AND 2#0000_0111;
|
||||
EGPIn.bReferenced := dpInByte[0].3;
|
||||
EGPIn.bSuccess := dpInByte[0].4;
|
||||
EGPIn.bLimit := dpInByte[0].5;
|
||||
EGPIn.bBlocked := dpInByte[0].6;
|
||||
EGPIn.bProcessCmd := dpInByte[0].7;
|
||||
|
||||
EGPIn.bPart[1] := dpInByte[1].0;
|
||||
EGPIn.bPart[2] := dpInByte[1].1;
|
||||
EGPIn.bPart[3] := dpInByte[1].2;
|
||||
EGPIn.bPart[4] := dpInByte[1].3;
|
||||
EGPIn.bPart[5] := dpInByte[1].4;
|
||||
EGPIn.bPart[6] := dpInByte[1].5;
|
||||
EGPIn.bPart[7] := dpInByte[1].6;
|
||||
EGPIn.bPart[8] := dpInByte[1].7;
|
||||
|
||||
EGPIn.bSensorSwitch1 := dpInByte[2].0;
|
||||
EGPIn.bSensorSwitch2 := dpInByte[2].1;
|
||||
//Position wird direkt eingelesen
|
||||
|
||||
//Zeiten berechne
|
||||
DoTimes;
|
||||
|
||||
//Stati
|
||||
lEGPIf.In.bGripperIsOpen := (EGPIn.rPosition <= 0.1);
|
||||
lEGPIf.In.bGripperIsClosed := FC_InTolerance (EGPIn.rPosition, Status.rPosClosed, -0.1, 0.1);
|
||||
lEGPIf.In.bGripperIsClosedWithPart := FC_InTolerance (EGPIn.rPosition, Status.rPosClosed, -0.1, 0.1);
|
||||
lEGPIf.In.bGripperDroppedPart := EGPIn.rPosition < (Status.rPosClosed + Parameter.rOpenRel + 0.1);
|
||||
//IF lEGPIf.In.bGripperIsOpen THEN
|
||||
// lEGPIf.In.bGripperIsClosed := FALSE;
|
||||
// lEGPIf.In.bGripperIsClosedWithPart := FALSE;
|
||||
//END_IF
|
||||
|
||||
IF EGPIn.bProcessCmd THEN
|
||||
bCmdSent := TRUE;
|
||||
END_IF
|
||||
|
||||
//Automatik Schrittkette
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
CASE enStepEGP OF
|
||||
//Initial Schritt
|
||||
//---------------------------
|
||||
enEGP_Step_INIT:
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
|
||||
IF (EGPIn.usStatus = EGP_STAT_OK) AND NOT EGPIn.bProcessCmd THEN
|
||||
IF (lEGPIf.Out.bReference OR NOT EGPIn.bReferenced) AND bEGPSupplyOk THEN
|
||||
Times.diSteptime := gdiSystemTime;
|
||||
enStepEGP := enEGP_Step_REF;
|
||||
bCmdSent := FALSE;
|
||||
ELSIF lEGPIf.Out.bMeasure AND bEGPSupplyOk THEN
|
||||
enStepEGP := enEGB_Step_MEAS;
|
||||
bCmdSent := FALSE;
|
||||
ELSIF lEGPIf.Out.bOpen AND bEGPSupplyOk THEN
|
||||
enStepEGP := enEGP_Step_OPEN;
|
||||
bCmdSent := FALSE;
|
||||
ELSIF lEGPIf.Out.bClose AND bEGPSupplyOk THEN
|
||||
enStepEGP := enEGP_Step_CLOSE;
|
||||
bCmdSent := FALSE;
|
||||
ELSIF lEGPIf.Out.bPosition AND bEGPSupplyOk THEN
|
||||
enStepEGP := enEGP_Step_POS;
|
||||
bCmdSent := FALSE;
|
||||
ELSIF lEGPIf.Out.bIncremental AND bEGPSupplyOk THEN
|
||||
enStepEGP := enEGP_Step_INC;
|
||||
bCmdSent := FALSE;
|
||||
END_IF
|
||||
ELSIF bEGPSupplyOk THEN
|
||||
//Fehler Autoreset FixMe
|
||||
//IF lEGPIf.Out.bReset THEN
|
||||
TimesLatch.diSteptime := gdiSystemTime;
|
||||
enStepEGP := enEGP_Step_RESET;
|
||||
//END_IF
|
||||
END_IF
|
||||
|
||||
//Fehler quittiern
|
||||
//---------------------------
|
||||
enEGP_Step_RESET:
|
||||
EGPOu.usCommand := EGP_CMD_RESET;
|
||||
EGPOu.bExecuteCmd := NOT bCmdSent;
|
||||
IF (Times.diSteptime > 3000000) THEN
|
||||
bCmdSent := FALSE;
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
TimesLatch.diSteptime := gdiSystemTime;
|
||||
END_IF
|
||||
|
||||
IF EGPIn.bProcessCmd THEN
|
||||
IF (EGPIn.usStatus <> 0) THEN
|
||||
//Quittieren Ok
|
||||
END_IF
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
enStepEGP := enEGP_Step_INIT;
|
||||
bCmdSent := FALSE;
|
||||
END_IF
|
||||
|
||||
//Greifer Referenzieren (max. <EFBFBD>ffnung)
|
||||
//---------------------------
|
||||
enEGP_Step_REF:
|
||||
IF (Times.diSteptime > 3000000) THEN
|
||||
bCmdSent := FALSE;
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
TimesLatch.diSteptime := gdiSystemTime;
|
||||
END_IF
|
||||
EGPOu.usCommand := EGP_CMD_REF;
|
||||
EGPOu.bExecuteCmd := NOT bCmdSent;
|
||||
|
||||
IF bCmdSent AND NOT EGPIn.bProcessCmd THEN
|
||||
//Befehl Best<EFBFBD>tigt warten auf Ergebnis
|
||||
Status.bReferenceOk := FALSE;
|
||||
Status.bReferenceNOk := FALSE;
|
||||
IF EGPIn.bBlocked AND EGPIn.bLimit AND EGPIn.bSuccess AND EGPIn.bReferenced AND (EGPIn.usStatus <> 0) THEN
|
||||
//Referenzieren Ok
|
||||
Status.bReferenceOk := TRUE;
|
||||
ELSIF EGPIn.bBlocked AND NOT EGPIn.bLimit AND NOT EGPIn.bSuccess AND NOT EGPIn.bReferenced THEN
|
||||
//Referenzieren NOk
|
||||
Status.bReferenceOk := TRUE;
|
||||
END_IF
|
||||
Status.rPosClosed := 9; //FixME
|
||||
IF Status.bReferenceOk OR Status.bReferenceNOk THEN
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
enStepEGP := enEGP_Step_INIT;
|
||||
lEGPIf.Out.bReference := FALSE;
|
||||
bCmdSent := FALSE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
//Greifer Hubmessung (max. Schie<EFBFBD>pos.)
|
||||
//---------------------------
|
||||
enEGB_Step_MEAS:
|
||||
EGPOu.usCommand := EGP_CMD_MEASURE;
|
||||
EGPOu.bExecuteCmd := NOT bCmdSent;
|
||||
|
||||
IF bCmdSent AND NOT EGPIn.bProcessCmd THEN
|
||||
//Befehl Best<EFBFBD>tigt warten auf Ergebnis
|
||||
Status.bMeasuereOk := FALSE;
|
||||
Status.bMeasureNOk := FALSE;
|
||||
IF EGPIn.bBlocked AND EGPIn.bLimit AND EGPIn.bSuccess AND EGPIn.bReferenced AND (EGPIn.usStatus <> 0) THEN
|
||||
//Hubmessung Ok
|
||||
Status.bMeasuereOk := TRUE;
|
||||
ELSIF NOT EGPIn.bBlocked AND NOT EGPIn.bSuccess AND EGPIn.bReferenced THEN
|
||||
//Hubmessung NOk
|
||||
Status.bMeasureNOk := TRUE;
|
||||
END_IF
|
||||
|
||||
IF Status.bMeasuereOk OR Status.bMeasureNOk THEN
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
enStepEGP := enEGP_Step_INIT;
|
||||
lEGPIf.Out.bMeasure := FALSE;
|
||||
bCmdSent := FALSE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
//Greifer <EFBFBD>ffnen
|
||||
//---------------------------
|
||||
|
||||
enEGP_Step_OPEN:
|
||||
IF (Times.diSteptime > 3000000) THEN
|
||||
bCmdSent := FALSE;
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
TimesLatch.diSteptime := gdiSystemTime;
|
||||
END_IF
|
||||
EGPOu.usCommand := EGP_CMD_OPEN;
|
||||
EGPOu.rSetPositon := 0.0;
|
||||
EGPOu.bExecuteCmd := NOT bCmdSent;
|
||||
|
||||
IF bCmdSent AND NOT EGPIn.bProcessCmd THEN
|
||||
//Befehl Best<EFBFBD>tigt warten auf Ergebnis
|
||||
Status.bOpenOk := FALSE;
|
||||
Status.bOpenNOk := FALSE;
|
||||
IF EGPIn.bBlocked AND EGPIn.bLimit AND EGPIn.bSuccess AND EGPIn.bReferenced AND (EGPIn.usStatus <> 0) THEN
|
||||
//<EFBFBD>ffnen Ok
|
||||
Status.bOpenOk := TRUE;
|
||||
Status.rPosClosed := 9; //FixME
|
||||
ELSIF EGPIn.bBlocked AND NOT EGPIn.bLimit AND NOT EGPIn.bSuccess AND EGPIn.bReferenced THEN
|
||||
//<EFBFBD>ffnen NOk
|
||||
Status.bOpenNOk := TRUE;
|
||||
Status.rPosClosed := 9; //FixME
|
||||
END_IF
|
||||
|
||||
IF Status.bOpenOk OR Status.bOpenNOk THEN
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
enStepEGP := enEGP_Step_INIT;
|
||||
lEGPIf.Out.bOpen := FALSE;
|
||||
bCmdSent := FALSE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
//Greifer Schlie<EFBFBD>en
|
||||
//Optional Werkst<EFBFBD>ckangabe (bei Auswertung noch zu implementieren)
|
||||
//---------------------------
|
||||
enEGP_Step_CLOSE:
|
||||
IF (Times.diSteptime > 3000000) THEN
|
||||
bCmdSent := FALSE;
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
TimesLatch.diSteptime := gdiSystemTime;
|
||||
END_IF
|
||||
EGPOu.usCommand := EGP_CMD_CLOSE;
|
||||
EGPOu.rSetPositon := 0.0;
|
||||
EGPOu.bExecuteCmd := NOT bCmdSent;
|
||||
EGPOu.usPartNr := 0;
|
||||
|
||||
IF bCmdSent AND NOT EGPIn.bProcessCmd THEN
|
||||
//Befehl Best<EFBFBD>tigt warten auf Ergebnis
|
||||
Status.bCloseOk := FALSE;
|
||||
Status.bCloseNOk := FALSE;
|
||||
IF EGPIn.bBlocked AND NOT EGPIn.bLimit AND EGPIn.bSuccess AND EGPIn.bReferenced AND (EGPIn.usStatus <> 0) THEN
|
||||
//Schlie<EFBFBD>en Ok
|
||||
Status.bCloseOk := TRUE;
|
||||
Status.rPosClosed := EGPIn.rPosition;
|
||||
//lEGPIf.In.bGripperIsClosedWithPart := TRUE;
|
||||
ELSIF EGPIn.bBlocked AND EGPIn.bLimit AND NOT EGPIn.bSuccess AND EGPIn.bReferenced THEN
|
||||
//Schlie<EFBFBD>en NOk
|
||||
Status.bCloseNOk := TRUE;
|
||||
Status.rPosClosed := EGPIn.rPosition;
|
||||
//lEGPIf.In.bGripperIsClosed := TRUE;
|
||||
END_IF
|
||||
|
||||
IF Status.bCloseOk OR Status.bCloseNOk THEN
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
enStepEGP := enEGP_Step_INIT;
|
||||
lEGPIf.Out.bClose := FALSE;
|
||||
bCmdSent := FALSE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
|
||||
//Greifer Positionieren
|
||||
//---------------------------
|
||||
enEGP_Step_POS:
|
||||
IF (Times.diSteptime > 3000000) THEN
|
||||
bCmdSent := FALSE;
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
TimesLatch.diSteptime := gdiSystemTime;
|
||||
END_IF
|
||||
EGPOu.usCommand := EGP_CMD_POS;
|
||||
EGPOu.rSetPositon := Status.rPosClosed + Parameter.rOpenRel; // lEGPIf.Out.rPosition;
|
||||
EGPOu.bExecuteCmd := NOT bCmdSent;
|
||||
|
||||
IF bCmdSent AND NOT EGPIn.bProcessCmd THEN
|
||||
Status.bPosOk := FALSE;
|
||||
Status.bPosNOk := FALSE;
|
||||
IF NOT EGPIn.bBlocked AND NOT EGPIn.bLimit AND EGPIn.bSuccess AND EGPIn.bReferenced AND (EGPIn.usStatus <> 0) THEN
|
||||
//FixMe Pos Toleranz pr<EFBFBD>fen
|
||||
//Schlie<EFBFBD>en Ok
|
||||
Status.bPosOk := TRUE;
|
||||
ELSIF NOT EGPIn.bBlocked AND NOT EGPIn.bSuccess AND EGPIn.bReferenced THEN
|
||||
//Schlie<EFBFBD>en NOk
|
||||
Status.bPosNOk := TRUE;
|
||||
END_IF
|
||||
|
||||
IF Status.bPosOk OR Status.bPosNOk THEN
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
enStepEGP := enEGP_Step_INIT;
|
||||
lEGPIf.Out.bPosition := FALSE;
|
||||
bCmdSent := FALSE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
//Greifer Relativfahrt
|
||||
//---------------------------
|
||||
enEGP_Step_INC:
|
||||
IF (Times.diSteptime > 3000000) THEN
|
||||
bCmdSent := FALSE;
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
TimesLatch.diSteptime := gdiSystemTime;
|
||||
END_IF
|
||||
EGPOu.usCommand := EGP_CMD_INC;
|
||||
EGPOu.rSetPositon := lEGPIf.Out.rPosition;
|
||||
EGPOu.bExecuteCmd := NOT bCmdSent;
|
||||
|
||||
IF bCmdSent AND NOT EGPIn.bProcessCmd THEN
|
||||
//Befehl Best<EFBFBD>tigt warten auf Ergebnis
|
||||
Status.bIncOk := FALSE;
|
||||
Status.bIncNOk := FALSE;
|
||||
IF NOT EGPIn.bBlocked AND NOT EGPIn.bLimit AND EGPIn.bSuccess AND EGPIn.bReferenced AND (EGPIn.usStatus <> 0) THEN
|
||||
//FixMe Pos Toleranz pr<EFBFBD>fen
|
||||
//Schlie<EFBFBD>en Ok
|
||||
Status.bIncOk := TRUE;
|
||||
ELSIF NOT EGPIn.bBlocked AND NOT EGPIn.bSuccess AND EGPIn.bReferenced THEN
|
||||
//Schlie<EFBFBD>en NOk
|
||||
Status.bIncNOk := TRUE;
|
||||
END_IF
|
||||
|
||||
IF Status.bCloseOk OR Status.bCloseNOk THEN
|
||||
EGPOu.bExecuteCmd := FALSE;
|
||||
enStepEGP := enEGP_Step_INIT;
|
||||
lEGPIf.Out.bIncremental := FALSE;
|
||||
bCmdSent := FALSE;
|
||||
END_IF
|
||||
END_IF
|
||||
END_CASE
|
||||
|
||||
|
||||
//Greifer ansteuern
|
||||
EGPOu.usForce := lEGPIf.Out.usForce; //0 : 100%, 1 : 75%, 2 : 50%, 3 : 25%
|
||||
EGPOu.bGripDirection := FALSE; //Force Aussengreifen
|
||||
|
||||
|
||||
//Ausgangswrte Schreiben
|
||||
//Byte 0 Befehl
|
||||
dpOutByte[0] := EGPOu.usCommand;
|
||||
dpOutByte[0].7 := EGPOu.bExecuteCmd;
|
||||
|
||||
//Byte 1 Werks<EFBFBD>ck und Greifrichtung
|
||||
//Werkst<EFBFBD>cknr
|
||||
dpOutByte[1].4 := EGPOu.usPartNr.0;
|
||||
dpOutByte[1].5 := EGPOu.usPartNr.1;
|
||||
dpOutByte[1].6 := EGPOu.usPartNr.2;
|
||||
dpOutByte[1].7 := EGPOu.usPartNr.3;
|
||||
//Greifrichtung
|
||||
dpOutByte[1].0 := EGPOu.bGripDirection;
|
||||
|
||||
//Byte 2 Greifkraft
|
||||
dpOutByte[2].0 := EGPOu.usForce.0;
|
||||
dpOutByte[2].1 := EGPOu.usForce.1;
|
||||
dpOutByte[2].2 := EGPOu.usForce.2;
|
||||
|
||||
//Byte 3 Reserviert
|
||||
//Byte 4-7 Position wird direkt ausgegeben
|
||||
|
||||
|
||||
//Alarme
|
||||
DoAlarms;
|
||||
|
||||
END_PROGRAM
|
||||
51
Logical/Communication/EGP/EGPCom/EGPCom.var
Normal file
51
Logical/Communication/EGP/EGPCom/EGPCom.var
Normal file
@@ -0,0 +1,51 @@
|
||||
(*//Raw In/Out*)
|
||||
VAR
|
||||
dpOutByte : ARRAY[0..3] OF USINT := [4(0)]; (*Raw Output Bytes EGP Interface*)
|
||||
dpInByte : ARRAY[0..3] OF USINT := [4(0)]; (*Raw Input Bytes EGP Interface*)
|
||||
END_VAR
|
||||
(*//MAschineninterface f. Greifer*)
|
||||
VAR
|
||||
lEGPIf : REFERENCE TO gtpy_EGP;
|
||||
END_VAR
|
||||
(*//Lokale Variablen*)
|
||||
VAR
|
||||
bCmdSent : BOOL;
|
||||
bEGPSupplyOk : BOOL; (*EGP wird mit Spannung versorgt*)
|
||||
END_VAR
|
||||
(*//Processed Communication Structure*)
|
||||
VAR
|
||||
EGPOu : typ_EGPOu; (*EGP Steuerwort*)
|
||||
EGPIn : typ_EGPIn; (*EGP Statuswort*)
|
||||
END_VAR
|
||||
(*//Befehle EGP Greifer*)
|
||||
VAR CONSTANT
|
||||
EGP_CMD_FASTSTOP : USINT := 0; (*EGP Befehl Schnellstopp*)
|
||||
EGP_CMD_RESET : USINT := 1; (*EGP Befehl St<53>rung quittieren*)
|
||||
EGP_CMD_REF : USINT := 2; (*EGP Befehl Referenzieren*)
|
||||
EGP_CMD_OPEN : USINT := 3; (*EGP Befehl <20>ffnen*)
|
||||
EGP_CMD_CLOSE : USINT := 4; (*EGP Befehl Greifen mit Werkstp<74>ckangabe*)
|
||||
EGP_CMD_POS : USINT := 5; (*EGP Befehl Positionsfahrt*)
|
||||
EGP_CMD_INC : USINT := 6; (*EGP Befehl Relativfahrt*)
|
||||
EGP_CMD_MEASURE : USINT := 7; (*EGP Befehl Hubmessung*)
|
||||
EGP_CMD_STOP : USINT := 8; (*EGP Befehl Stop*)
|
||||
EGP_CMD_CALIBRATE : USINT := 9; (*EGP Befehl Kalibrieren*)
|
||||
END_VAR
|
||||
(*//Stati EGP Greifer*)
|
||||
VAR CONSTANT
|
||||
EGP_STAT_ERROR : USINT := 0; (*EGP St<53>rung*)
|
||||
EGP_STAT_SPEC : USINT := 1; (*EGP Au<41>erhalb Spezifikation*)
|
||||
EGP_STAT_MAINT : USINT := 2; (*EGP Wartung erforderlich*)
|
||||
EGP_STAT_OK : USINT := 3; (*EGP Betriebsbereit*)
|
||||
END_VAR
|
||||
(*//Strukturen*)
|
||||
VAR
|
||||
enStepEGP : typ_enStepEGP; (*Schrittkette*)
|
||||
Status : typ_States; (*Statis*)
|
||||
AlarmIDs : typ_AlarmIDs; (*Alarm IDs*)
|
||||
Times : typ_Times;
|
||||
TimesLatch : typ_Times; (*Gespeicherte Systemzeit*)
|
||||
END_VAR
|
||||
VAR RETAIN
|
||||
Parameter : {REDUND_UNREPLICABLE} typ_Parameter; (*Parameter*)
|
||||
END_VAR
|
||||
(*Insert your comment here.*)
|
||||
2
Logical/Communication/EGP/EGPCom/EGPComInit.st
Normal file
2
Logical/Communication/EGP/EGPCom/EGPComInit.st
Normal file
@@ -0,0 +1,2 @@
|
||||
PROGRAM _INIT
|
||||
END_PROGRAM
|
||||
11
Logical/Communication/EGP/EGPCom/IEC.prg
Normal file
11
Logical/Communication/EGP/EGPCom/IEC.prg
Normal file
@@ -0,0 +1,11 @@
|
||||
<?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="Aktionen TBrk-Ctrl">Action.st</File>
|
||||
<File Description="Implementation code">EGPComInit.st</File>
|
||||
<File Description="Implementation code">EGPCom.st</File>
|
||||
<File Description="Local variables" Private="true">EGPCom.var</File>
|
||||
<File Description="Local data types" Private="true">Types.typ</File>
|
||||
</Files>
|
||||
</Program>
|
||||
80
Logical/Communication/EGP/EGPCom/Types.typ
Normal file
80
Logical/Communication/EGP/EGPCom/Types.typ
Normal file
@@ -0,0 +1,80 @@
|
||||
(*//I/Os*)
|
||||
|
||||
TYPE
|
||||
typ_EGPIn : STRUCT (*EGP Eingangsdaten (Status)*)
|
||||
usStatus : USINT; (*0.0 - 0.2 Status*)
|
||||
bReferenced : BOOL; (*0.3 Referenziert*)
|
||||
bSuccess : BOOL; (*0.4 Erfolg*)
|
||||
bLimit : BOOL; (*0.5 Endanschlag*)
|
||||
bBlocked : BOOL; (*0.6 Blockiert*)
|
||||
bProcessCmd : BOOL; (*0.7 Prozessbefehl*)
|
||||
bPart : ARRAY[1..8]OF BOOL; (*1.0 - 1.7 Werkst<73>cknummer*)
|
||||
bSensorSwitch1 : USINT; (*3.0 Sensorschalter 1*)
|
||||
bSensorSwitch2 : USINT; (*3.1 Sensorschalter 2*)
|
||||
rPosition : REAL; (*4.0 - 7.7 Position*)
|
||||
END_STRUCT;
|
||||
typ_EGPOu : STRUCT (*EGP Ausgangsdaten (Steuer)*)
|
||||
usCommand : USINT; (*0.0 - 0.6 Befehl*)
|
||||
bExecuteCmd : BOOL; (*0.7 Ausf<73>hrbefehl*)
|
||||
bGripDirection : BOOL; (*1.0 Greifrichtung*)
|
||||
usPartNr : USINT; (*1.4 - 1.7 Werkst<73>cknummer*)
|
||||
usForce : USINT; (*2.0- 2.2 Greifkraft*)
|
||||
rSetPositon : REAL; (*4.0 - 7.7 Zielposition*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
|
||||
(*//Strukturen*)
|
||||
|
||||
TYPE
|
||||
typ_States : STRUCT
|
||||
bReferenceOk : BOOL;
|
||||
bReferenceNOk : BOOL;
|
||||
bMeasuereOk : BOOL;
|
||||
bMeasureNOk : BOOL;
|
||||
bCloseOk : BOOL;
|
||||
bCloseNOk : BOOL;
|
||||
bOpenOk : BOOL;
|
||||
bOpenNOk : BOOL;
|
||||
bPosOk : BOOL;
|
||||
bPosNOk : BOOL;
|
||||
bIncOk : BOOL;
|
||||
bIncNOk : BOOL;
|
||||
rPosClosed : REAL;
|
||||
END_STRUCT;
|
||||
typ_Times : STRUCT (*Zykluszeiten etc.*)
|
||||
diSteptime : {REDUND_UNREPLICABLE} DINT; (*[<5B>s]*)
|
||||
END_STRUCT;
|
||||
typ_Parameter : STRUCT (*Parameter (Feste Parameter Schrauber bezogen)*)
|
||||
rOpenRel : REAL := -0.7; (*<2A>fnnen des Greifers*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
|
||||
(*//Schrittketten / Befehle / Bedingungen*)
|
||||
|
||||
TYPE
|
||||
typ_enStepEGP :
|
||||
( (*Schrittkette*)
|
||||
enEGP_Step_INIT := 0, (*Initstep*)
|
||||
enEGP_Step_RESET, (*Fehler quittieren*)
|
||||
enEGP_Step_REF, (*Referenzieren (max. <20>ffnung)*)
|
||||
enEGB_Step_MEAS, (*Hubmessung (max. Schlie<69>en)*)
|
||||
enEGP_Step_OPEN, (*<2A>ffnen*)
|
||||
enEGP_Step_CLOSE, (*Schliesen*)
|
||||
enEGP_Step_POS, (*Positionieren*)
|
||||
enEGP_Step_INC (*Relativfahrt*)
|
||||
);
|
||||
END_TYPE
|
||||
|
||||
(*//Alarme*)
|
||||
|
||||
TYPE
|
||||
typ_AlarmIDs : STRUCT (*Puffer f<>r Alarm IDs*)
|
||||
udEGPError : UDINT; (*Fehler EGP Greifer*)
|
||||
udEGPMaint : UDINT; (*Wartung EGP Erforderlich*)
|
||||
udEGPSpec : UDINT; (*EGP au<61>er Spezifikation*)
|
||||
udEGPNotReferenced : UDINT; (*EGP nicht Referenziert*)
|
||||
END_STRUCT;
|
||||
typ_AlarmSnippets : STRUCT (*Infos f<>r Alarmtexte*)
|
||||
strDummy : STRING[40]; (*Dummystring*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
24
Logical/Communication/EGP/GlobalEGP.typ
Normal file
24
Logical/Communication/EGP/GlobalEGP.typ
Normal file
@@ -0,0 +1,24 @@
|
||||
(*//Interface EGP_Greifer*)
|
||||
|
||||
TYPE
|
||||
gtpy_EGP : STRUCT
|
||||
In : gtyp_EGP_In;
|
||||
Out : gtyp_EGP_Out; (*Befehle an Greifer*)
|
||||
END_STRUCT;
|
||||
gtyp_EGP_Out : STRUCT
|
||||
bReference : BOOL; (*Referenzieren (Max. <20>ffnung)*)
|
||||
bMeasure : BOOL; (*Hubmessung (Max. Schlie<69>pos)*)
|
||||
bOpen : BOOL; (*Greifer <20>ffnen*)
|
||||
bClose : BOOL; (*Greifer schlie<69>en (Optional mit Werkst<73>ck Angabe)*)
|
||||
bPosition : BOOL; (*Positonsfahrt (Angabe Position)*)
|
||||
bIncremental : BOOL; (*Relativfahrt (Angabe Positon=*)
|
||||
usForce : USINT; (*Kraftstufen //0 : 100%, 1 : 75%, 2 : 50%, 3 : 25%*)
|
||||
rPosition : REAL; (*Sollposition*)
|
||||
END_STRUCT;
|
||||
gtyp_EGP_In : STRUCT
|
||||
bGripperIsOpen : BOOL; (*Greifer ist Offen*)
|
||||
bGripperDroppedPart : BOOL; (*Greifer Teilweise ge<67>ffnet*)
|
||||
bGripperIsClosed : BOOL; (*Greifer ist Geschlossen Ohne Teil*)
|
||||
bGripperIsClosedWithPart : BOOL; (*Greifer ist Geschlossen Mit Teil*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
3
Logical/Communication/EGP/GlobalEGP.var
Normal file
3
Logical/Communication/EGP/GlobalEGP.var
Normal file
@@ -0,0 +1,3 @@
|
||||
VAR
|
||||
gEGP1 : gtpy_EGP; (*g *)
|
||||
END_VAR
|
||||
10
Logical/Communication/EGP/Package.pkg
Normal file
10
Logical/Communication/EGP/Package.pkg
Normal file
@@ -0,0 +1,10 @@
|
||||
<?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="Globale Typen EGP-Greifer">GlobalEGP.typ</Object>
|
||||
<Object Type="File" Description="Globale Variablen EGP-Greifer">GlobalEGP.var</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Kommunikation mit EGP Greifer">EGPCom</Object>
|
||||
<Object Type="File" Description="Alarme">TxtAlarms.tmx</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
41
Logical/Communication/EGP/TxtAlarms.tmx
Normal file
41
Logical/Communication/EGP/TxtAlarms.tmx
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<tmx version="1.4">
|
||||
<header creationtool="B&R Automation Studio" creationtoolversion="4.2" datatype="unknown" segtype="sentence" adminlang="en" srclang="en" o-tmf="TMX">
|
||||
<note>Change the namespace to define where this text module should be located within the logical structure of your texts</note>
|
||||
<prop type="x-BR-TS:Namespace">EGP/Alarms</prop>
|
||||
</header>
|
||||
<body>
|
||||
<tu tuid="EGPError">
|
||||
<tuv xml:lang="de">
|
||||
<seg>Vereinzelung: Greifer Fehler</seg>
|
||||
</tuv>
|
||||
<tuv xml:lang="en">
|
||||
<seg>Feeder: Gripper Error</seg>
|
||||
</tuv>
|
||||
</tu>
|
||||
<tu tuid="EGPMaint">
|
||||
<tuv xml:lang="de">
|
||||
<seg>Vereinzelung: Greifer Wartung Erforderlich</seg>
|
||||
</tuv>
|
||||
<tuv xml:lang="en">
|
||||
<seg>Feeder: Gripper Maintenance neccersary</seg>
|
||||
</tuv>
|
||||
</tu>
|
||||
<tu tuid="EGPSpec">
|
||||
<tuv xml:lang="de">
|
||||
<seg>Vereinzelung: Greifer außerhalb Spezifikation</seg>
|
||||
</tuv>
|
||||
<tuv xml:lang="en">
|
||||
<seg>Feeder: Gripper out of specifications</seg>
|
||||
</tuv>
|
||||
</tu>
|
||||
<tu tuid="EGPNotReferenced">
|
||||
<tuv xml:lang="de">
|
||||
<seg>Vereinzelung: Greifer nicht referenziert</seg>
|
||||
</tuv>
|
||||
<tuv xml:lang="en">
|
||||
<seg>Feeder: Gripper not referenced</seg>
|
||||
</tuv>
|
||||
</tu>
|
||||
</body>
|
||||
</tmx>
|
||||
7
Logical/Communication/GlobalCom.var
Normal file
7
Logical/Communication/GlobalCom.var
Normal file
@@ -0,0 +1,7 @@
|
||||
(*Variablen / Strukturen*)
|
||||
VAR
|
||||
gudRFIDReader1ID : UDINT;
|
||||
gudRFIDReader2ID : UDINT;
|
||||
gudRFIDReader3ID : UDINT;
|
||||
gudRFIDReader4ID : UDINT;
|
||||
END_VAR
|
||||
9
Logical/Communication/MachIf/ComMach/IEC.prg
Normal file
9
Logical/Communication/MachIf/ComMach/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Init, cyclic, exit code">Main.st</File>
|
||||
<File Description="Local data types" Private="true">Types.typ</File>
|
||||
<File Description="Local variables" Private="true">Variables.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
94
Logical/Communication/MachIf/ComMach/Main.st
Normal file
94
Logical/Communication/MachIf/ComMach/Main.st
Normal file
@@ -0,0 +1,94 @@
|
||||
|
||||
PROGRAM _INIT
|
||||
//FixMe
|
||||
bComDisabled := TRUE;
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
|
||||
//Erkennen welches Werkzeug
|
||||
IF gToolsDetected.Screwdiver[1] THEN
|
||||
usActScrewdriver := 1;
|
||||
ELSE
|
||||
usActScrewdriver := 0;
|
||||
END_IF
|
||||
|
||||
|
||||
IF NOT bComDisabled THEN
|
||||
//Lifebeat usComIn[0].0;
|
||||
//Reset Error := usComIn[0].1;
|
||||
|
||||
IF usActScrewdriver > 1 THEN
|
||||
gCmd1.ScrewdriverRob[usActScrewdriver].RobToScr.bPowerOff := usComIn[1].0;
|
||||
gCmd1.ScrewdriverRob[usActScrewdriver].RobToScr.bRobAwayFromOvHnd := usComIn[1].1;
|
||||
gCmd1.ScrewdriverRob[usActScrewdriver].RobToScr.bRobInOvHndPos := usComIn[1].2;
|
||||
gCmd1.ScrewdriverRob[usActScrewdriver].RobToScr.bRobInSetpos := usComIn[1].3;
|
||||
END_IF
|
||||
|
||||
//Simu
|
||||
usComOut[0].0 := gMachine1.bMachineON;
|
||||
usComOut[0].1 := TRUE; //FixME kein Fehler
|
||||
usComOut[0].2 := FALSE; //FixMe Vorwarnung Helicoils
|
||||
usComOut[0].3 := FALSE;
|
||||
usComOut[0].4 := FALSE;
|
||||
usComOut[0].5 := FALSE;
|
||||
usComOut[0].6 := FALSE;
|
||||
usComOut[0].7 := FALSE;
|
||||
|
||||
usComOut[1].0 := TRUE; //FixMe Schrauber 1 als Werkzeug erkannt
|
||||
IF usActScrewdriver > 1 THEN
|
||||
usComOut[2].0 := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.bAxisRefereced;
|
||||
usComOut[2].1 := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.bHCOnMandrel;
|
||||
usComOut[2].2 := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.bMandelIsBack;
|
||||
usComOut[2].3 := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.bMandrelLoadPos;
|
||||
END_IF
|
||||
|
||||
//Feeder
|
||||
usComOut[3].0 := TRUE; //FixMe FeedRobot is away - no collsion at Moment
|
||||
usComOut[3].1 := gCmd1.FeederRob[1].FdToRob.bFeederIsLoaded;
|
||||
usComOut[3].2 := gCmd1.FeederRob[1].FdToRob.bFeederisHome;
|
||||
|
||||
//pResults of Screwdriver
|
||||
IF usActScrewdriver > 1 THEN
|
||||
usComOut[4].0 := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.bHCSetOk;
|
||||
usComOut[4].1 := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.bHCSetNOK;
|
||||
usComOut[4].2 := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.bHCDidntReachFinalPos;
|
||||
usComOut[4].3 := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.bHCTorqueToHighDuringSet;
|
||||
usComOut[4].4 := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.bHCTorqueToSmallDuringSpindleOut;
|
||||
usComOut[4].5 := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.bHCDidntDetectPart;
|
||||
END_IF
|
||||
|
||||
//pResults of Screwdriver
|
||||
IF usActScrewdriver > 1 THEN
|
||||
dTemp := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.diDepth;
|
||||
usComOut[7] := DINT_TO_USINT (dTemp);
|
||||
usComOut[6] := DINT_TO_USINT (SHR (dTemp, 8));
|
||||
usComOut[5] := DINT_TO_USINT (SHR (dTemp, 16));
|
||||
usComOut[4] := DINT_TO_USINT (SHR (dTemp, 24));
|
||||
|
||||
dTemp := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.diPartPos;
|
||||
usComOut[11] := DINT_TO_USINT (dTemp);
|
||||
usComOut[10] := DINT_TO_USINT (SHR (dTemp, 8));
|
||||
usComOut[9] := DINT_TO_USINT (SHR (dTemp, 16));
|
||||
usComOut[8] := DINT_TO_USINT (SHR (dTemp, 24));
|
||||
|
||||
dTemp := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.diRevolutions;
|
||||
usComOut[15] := DINT_TO_USINT (dTemp);
|
||||
usComOut[14] := DINT_TO_USINT (SHR (dTemp, 8));
|
||||
usComOut[13] := DINT_TO_USINT (SHR (dTemp, 16));
|
||||
usComOut[12] := DINT_TO_USINT (SHR (dTemp, 24));
|
||||
|
||||
dTemp := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.diMaxTorqueSet;
|
||||
usComOut[19] := DINT_TO_USINT (dTemp);
|
||||
usComOut[18] := DINT_TO_USINT (SHR (dTemp, 8));
|
||||
usComOut[17] := DINT_TO_USINT (SHR (dTemp, 16));
|
||||
usComOut[16] := DINT_TO_USINT (SHR (dTemp, 24));
|
||||
|
||||
dTemp := gCmd1.ScrewdriverRob[usActScrewdriver].ScrToRob.diMaxTorqueSpindleOut;
|
||||
usComOut[23] := DINT_TO_USINT (dTemp);
|
||||
usComOut[22] := DINT_TO_USINT (SHR (dTemp, 8));
|
||||
usComOut[21] := DINT_TO_USINT (SHR (dTemp, 16));
|
||||
usComOut[20] := DINT_TO_USINT (SHR (dTemp, 24));
|
||||
END_IF
|
||||
END_PROGRAM
|
||||
7
Logical/Communication/MachIf/ComMach/Types.typ
Normal file
7
Logical/Communication/MachIf/ComMach/Types.typ
Normal file
@@ -0,0 +1,7 @@
|
||||
(*//FunctionBlocks / Daten*)
|
||||
|
||||
TYPE
|
||||
typ_FUB : STRUCT (*Funktionsbausteine*)
|
||||
TOF_Lifeat : TOF;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
9
Logical/Communication/MachIf/ComMach/Variables.var
Normal file
9
Logical/Communication/MachIf/ComMach/Variables.var
Normal file
@@ -0,0 +1,9 @@
|
||||
VAR
|
||||
usComIn : {REDUND_UNREPLICABLE} ARRAY[0..31] OF USINT;
|
||||
usComOut : {REDUND_UNREPLICABLE} ARRAY[0..31] OF USINT;
|
||||
bComDisabled : BOOL; (*F<>r Inbetriebnahme*)
|
||||
usActScrewdriver : USINT;
|
||||
usActTangbreaker : USINT;
|
||||
uiTemp : UINT;
|
||||
dTemp : DINT;
|
||||
END_VAR
|
||||
7
Logical/Communication/MachIf/Package.pkg
Normal file
7
Logical/Communication/MachIf/Package.pkg
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="Program" Language="IEC">ComMach</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
12
Logical/Communication/Package.pkg
Normal file
12
Logical/Communication/Package.pkg
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File" Description="Logging Vars">GlobalCom.var</Object>
|
||||
<Object Type="Program" Language="IEC" Description="13 Mhz Transponder B&R + Scanner HR 100">RFID_USB</Object>
|
||||
<Object Type="Package" Description="AnlagenInterface">MachIf</Object>
|
||||
<Object Type="Package" Description="EGP-Greifer">EGP</Object>
|
||||
<Object Type="Package" Description="Kommunikation mit ABB Roboter">ABBCom</Object>
|
||||
<Object Type="Package" Description="Kommunikation mit ABB Roboter">ABBCom2</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
52
Logical/Communication/RFID_USB/ASCtoUDINT.st
Normal file
52
Logical/Communication/RFID_USB/ASCtoUDINT.st
Normal 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
|
||||
12
Logical/Communication/RFID_USB/IEC.prg
Normal file
12
Logical/Communication/RFID_USB/IEC.prg
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 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>
|
||||
28
Logical/Communication/RFID_USB/RFID_USB.fun
Normal file
28
Logical/Communication/RFID_USB/RFID_USB.fun
Normal 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
|
||||
1019
Logical/Communication/RFID_USB/RFID_USB.st
Normal file
1019
Logical/Communication/RFID_USB/RFID_USB.st
Normal file
File diff suppressed because it is too large
Load Diff
68
Logical/Communication/RFID_USB/RFID_USB.typ
Normal file
68
Logical/Communication/RFID_USB/RFID_USB.typ
Normal file
@@ -0,0 +1,68 @@
|
||||
|
||||
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_INIT_SET_AGC, (*Initialize Reader*)
|
||||
enRFIDReaderStep_INIT_SET_RCVM, (*Initialize Reader*)
|
||||
enRFIDReaderStep_IDLE, (*Wait for commands*)
|
||||
enRFIDReaderStep_READ, (*READ from Reader*)
|
||||
enRFIDReaderStep_WRITE (*WRITE to Reader*)
|
||||
);
|
||||
typ_FUBs : STRUCT (*Funktionsblocks*)
|
||||
UsbNodeGet : {REDUND_UNREPLICABLE} UsbNodeGet;
|
||||
UsbNodeListGet : {REDUND_UNREPLICABLE} UsbNodeListGet;
|
||||
UsbDescriptorGet : {REDUND_UNREPLICABLE} UsbDescriptorGet;
|
||||
FrameRead1 : {REDUND_UNREPLICABLE} FRM_read;
|
||||
FrameRead2 : {REDUND_UNREPLICABLE} FRM_read;
|
||||
FrameRead3 : {REDUND_UNREPLICABLE} FRM_read;
|
||||
FrameRead4 : {REDUND_UNREPLICABLE} FRM_read;
|
||||
FrameRead5 : {REDUND_UNREPLICABLE} FRM_read;
|
||||
FrameReleaseBuffer1 : {REDUND_UNREPLICABLE} FRM_rbuf;
|
||||
FrameReleaseBuffer2 : {REDUND_UNREPLICABLE} FRM_rbuf;
|
||||
FrameReleaseBuffer3 : {REDUND_UNREPLICABLE} FRM_rbuf;
|
||||
FrameReleaseBuffer4 : {REDUND_UNREPLICABLE} FRM_rbuf;
|
||||
FrameReleaseBuffer5 : {REDUND_UNREPLICABLE} FRM_rbuf;
|
||||
FrameWrite1 : {REDUND_UNREPLICABLE} FRM_write;
|
||||
FrameWrite2 : {REDUND_UNREPLICABLE} FRM_write;
|
||||
FrameWrite3 : {REDUND_UNREPLICABLE} FRM_write;
|
||||
FrameWrite4 : {REDUND_UNREPLICABLE} FRM_write;
|
||||
FrameWrite5 : {REDUND_UNREPLICABLE} FRM_write;
|
||||
FrameXOpen1 : {REDUND_UNREPLICABLE} FRM_xopen;
|
||||
FrameXOpen2 : {REDUND_UNREPLICABLE} FRM_xopen;
|
||||
FrameXOpen3 : {REDUND_UNREPLICABLE} FRM_xopen;
|
||||
FrameXOpen4 : {REDUND_UNREPLICABLE} FRM_xopen;
|
||||
FrameXOpen5 : {REDUND_UNREPLICABLE} FRM_xopen;
|
||||
TON_DelayUSB : TON;
|
||||
TON_Read1 : {REDUND_UNREPLICABLE} TON;
|
||||
TON_Read2 : {REDUND_UNREPLICABLE} TON;
|
||||
TON_Read3 : {REDUND_UNREPLICABLE} TON;
|
||||
TON_Read4 : {REDUND_UNREPLICABLE} TON;
|
||||
TON_Read5 : {REDUND_UNREPLICABLE} TON;
|
||||
TON_Timeout1 : {REDUND_UNREPLICABLE} TON;
|
||||
TON_Timeout2 : {REDUND_UNREPLICABLE} TON;
|
||||
TON_Timeout3 : {REDUND_UNREPLICABLE} TON;
|
||||
TON_Timeout4 : {REDUND_UNREPLICABLE} TON;
|
||||
TON_Timeout5 : {REDUND_UNREPLICABLE} TON;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
76
Logical/Communication/RFID_USB/RFID_USB.var
Normal file
76
Logical/Communication/RFID_USB/RFID_USB.var
Normal file
@@ -0,0 +1,76 @@
|
||||
(*//Konfiguration*)
|
||||
VAR
|
||||
NEEDED_DEVICES : {REDUND_UNREPLICABLE} USINT := 1; (*Anzahl RFID Leser verbaut*)
|
||||
udRFIDSerialReader1 : {REDUND_UNREPLICABLE} UDINT := 1; (*Serien Nr RFID Reader 1 (User Auth)*)
|
||||
udRFIDSerialReader2 : {REDUND_UNREPLICABLE} UDINT := 0; (*Serien Nr RFID Reader 2 (Tool 1)*)
|
||||
udRFIDSerialReader3 : {REDUND_UNREPLICABLE} UDINT := 0; (*Serien Nr RFID Reader 3 (Tool 2)*)
|
||||
udRFIDSerialReader4 : {REDUND_UNREPLICABLE} UDINT := 0; (*Serien Nr RFID Reader 4*)
|
||||
END_VAR
|
||||
(*//---------------------------------------------*)
|
||||
VAR
|
||||
bDbgFlag : USINT;
|
||||
sizeUsbNode : USINT;
|
||||
END_VAR
|
||||
VAR RETAIN
|
||||
usNodeIx : USINT;
|
||||
END_VAR
|
||||
VAR
|
||||
usi : USINT;
|
||||
uij : UINT;
|
||||
usFoundReaders : USINT;
|
||||
usFoundScanner : USINT;
|
||||
END_VAR
|
||||
VAR RETAIN
|
||||
usNodeIxSanner : USINT := 99; (*Node Index Scanner*)
|
||||
usNodeIxReader1 : USINT := 99; (*Node Index Reader 1*)
|
||||
usNodeIxReader2 : USINT := 99; (*Node Index Reader 2*)
|
||||
usNodeIxReader3 : USINT := 99; (*Node Index Reader 3*)
|
||||
usNodeIxReader4 : USINT := 99; (*Node Index Reader 4*)
|
||||
END_VAR
|
||||
VAR
|
||||
usBlockNr : USINT;
|
||||
usTemp : USINT;
|
||||
udSerialNr : ARRAY[0..31] OF UDINT;
|
||||
uiReadAnswer : ARRAY[1..5] OF UINT;
|
||||
uiReadBufferLength : ARRAY[1..5] OF UINT;
|
||||
uiReadCount : ARRAY[1..5] OF UINT;
|
||||
uiLength : UINT;
|
||||
udAttachDetachCount : UDINT;
|
||||
udNodeList : ARRAY[0..31] OF UDINT;
|
||||
pReadBuffer : ARRAY[1..5] OF UDINT;
|
||||
udTemp : UDINT;
|
||||
usTempSc : ARRAY[0..200] OF USINT;
|
||||
udLastAuthRFID : UDINT;
|
||||
udTemp2 : UDINT;
|
||||
udWriteData : UDINT;
|
||||
udErrors : ARRAY[1..5] OF UDINT;
|
||||
strReadData : {REDUND_UNREPLICABLE} ARRAY[1..5] OF STRING[80];
|
||||
strReadTag : ARRAY[1..5] OF STRING[80];
|
||||
strDeviceDescr : ARRAY[1..5] OF WSTRING[80];
|
||||
strWriteData : ARRAY[1..5] OF STRING[80];
|
||||
strWriteDatalen : ARRAY[1..5] OF STRING[2];
|
||||
strWriteTelegram : ARRAY[1..5] OF STRING[80];
|
||||
strTemp : STRING[2];
|
||||
enStep : typ_enStepRFID;
|
||||
enStepReader1 : typ_enStepRFIDReader;
|
||||
enStepReader1_Latch : typ_enStepRFIDReader;
|
||||
enStepReader2 : typ_enStepRFIDReader;
|
||||
enStepReader2_Latch : typ_enStepRFIDReader;
|
||||
enStepReader3 : typ_enStepRFIDReader;
|
||||
enStepReader3_Latch : typ_enStepRFIDReader;
|
||||
enStepReader4 : typ_enStepRFIDReader;
|
||||
enStepReader4_Latch : typ_enStepRFIDReader;
|
||||
enStepScanner : typ_enStepRFIDReader;
|
||||
enStepScanner_Latch : typ_enStepRFIDReader;
|
||||
enCmd1 : typ_enCmdRFID;
|
||||
enCmd2 : typ_enCmdRFID;
|
||||
enCmd3 : typ_enCmdRFID;
|
||||
enCmd4 : typ_enCmdRFID;
|
||||
usbDevice : ARRAY[0..31] OF usbNode_typ;
|
||||
FUBs : typ_FUBs;
|
||||
END_VAR
|
||||
VAR CONSTANT
|
||||
TRANSPONDER_FTDI_VENDOR_ID : UINT := 16#0403;
|
||||
TRANSPONDER_FTDI_PRODUCT_ID : UINT := 16#6001;
|
||||
TRANSPONDER_FTDI_BCD : UINT := 16#0600;
|
||||
END_VAR
|
||||
44
Logical/Communication/RFID_USB/UDINTtoASC.st
Normal file
44
Logical/Communication/RFID_USB/UDINTtoASC.st
Normal 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
|
||||
324
Logical/File/FileEdit/Cyclic.st
Normal file
324
Logical/File/FileEdit/Cyclic.st
Normal file
@@ -0,0 +1,324 @@
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
strDevice := 'CNC_PrgDir';
|
||||
strPath := '';
|
||||
|
||||
//Parameter
|
||||
VCCtrl.ListboxEdit.usMinIndex := 0;
|
||||
VCCtrl.ListboxEdit.usMaxIndex := Parameter.usEditLines;
|
||||
|
||||
lstrEditline ACCESS ADR (strLines[VCCtrl.ListboxEdit.usIndexDatapoint]);
|
||||
|
||||
FUBs.TON_ReadDir.IN := NOT bReadDir;
|
||||
FUBs.TON_ReadDir.PT := t#90s;
|
||||
FUBs.TON_ReadDir ();
|
||||
IF FUBs.TON_ReadDir.Q THEN
|
||||
bReadDir := TRUE;
|
||||
END_IF
|
||||
|
||||
CASE enDirStep OF
|
||||
//auf Befehl warten
|
||||
//=================================
|
||||
enDirStep_WAIT:
|
||||
IF bReadDir THEN
|
||||
enDirStep := enDirStep_DIRINFO;
|
||||
bReadDir := FALSE;
|
||||
END_IF
|
||||
|
||||
|
||||
//Verzeichnisinfo lesen
|
||||
//=================================
|
||||
enDirStep_DIRINFO:
|
||||
FUBs.DirInfo.pDevice := ADR (strDevice);
|
||||
FUBs.DirInfo.pPath := ADR (strPath);
|
||||
FUBs.DirInfo.enable := TRUE;
|
||||
IF (FUBs.DirInfo.status = ERR_OK) THEN
|
||||
FUBs.DirInfo.enable := FALSE;
|
||||
States.udFilesInDir := FUBs.DirInfo.filenum;
|
||||
IF (States.udFilesInDir > 0) THEN
|
||||
States.udFilesInDir := States.udFilesInDir - 1;
|
||||
END_IF
|
||||
VCCtrl.DropDownBoxFile.usMaxIndex := UDINT_TO_USINT (States.udFilesInDir);
|
||||
udCurrentFile := 0;
|
||||
enDirStep := enDirStep_READDIR;
|
||||
ELSIF (FUBs.DirInfo.status < ERR_FUB_ENABLE_FALSE) THEN
|
||||
//Fehler
|
||||
FUBStates.DirInfo := FUBs.DirInfo.status;
|
||||
FUBs.DirInfo.enable := FALSE;
|
||||
enDirStep := enDirStep_WAIT;
|
||||
END_IF
|
||||
|
||||
//Datei lesen
|
||||
//=================================
|
||||
enDirStep_READDIR:
|
||||
FUBs.DirRead.enable := (udCurrentFile <= States.udFilesInDir);
|
||||
FUBs.DirRead.entry := udCurrentFile;
|
||||
FUBs.DirRead.pDevice := ADR (strDevice);
|
||||
FUBs.DirRead.pPath := ADR (strPath);
|
||||
FUBs.DirRead.option := fiFILE;
|
||||
FUBs.DirRead.pData := ADR (DirReadData);
|
||||
FUBs.DirRead.data_len := SIZEOF (DirReadData);
|
||||
IF (udCurrentFile > States.udFilesInDir) THEN
|
||||
enDirStep := enDirStep_WAIT;
|
||||
ELSIF (FUBs.DirRead.status = ERR_OK) THEN
|
||||
FUBs.DirRead.enable := FALSE;
|
||||
enDirStep := enDirStep_BUILDLIST;
|
||||
ELSIF (FUBs.DirRead.status < ERR_FUB_ENABLE_FALSE) THEN
|
||||
//Fehler
|
||||
FUBStates.DirRead := FUBs.DirRead.status;
|
||||
FUBs.DirRead.enable := FALSE;
|
||||
enDirStep := enDirStep_WAIT;
|
||||
END_IF
|
||||
|
||||
//Liste Bilden
|
||||
enDirStep_BUILDLIST:
|
||||
brsmemcpy (ADR (gstrFilenames[udCurrentFile]), ADR (DirReadData.Filename), SIZEOF (gstrFilenames[0]));
|
||||
udCurrentFile := udCurrentFile + 1;
|
||||
enDirStep := enDirStep_READDIR;
|
||||
|
||||
END_CASE
|
||||
|
||||
|
||||
//Buttons Anzeigen Verriegeln etc.
|
||||
VCCtrl.LineDown.usStatus.0 := (enFileStep <> enFileStep_WAITCMD2);
|
||||
VCCtrl.LineDown.usStatus.1 := (States.udOrgLineOffset[0] >= States.udFileLen);
|
||||
VCCtrl.LineUp.usStatus.0 := (enFileStep <> enFileStep_WAITCMD2);
|
||||
VCCtrl.LineUp.usStatus.1 := (States.udOrgLineOffset[0] = 0) AND (VCCtrl.ListboxEdit.usIndexDatapoint = 0);
|
||||
VCCtrl.ScrollDown.usStatus.0 := (enFileStep <> enFileStep_WAITCMD2);
|
||||
VCCtrl.ScrollDown.usStatus.1 := (States.udOrgLineOffset[0] >= States.udFileLen);
|
||||
VCCtrl.ScrollUp.usStatus.0 := (enFileStep <> enFileStep_WAITCMD2);
|
||||
VCCtrl.ScrollUp.usStatus.1 := (States.udOrgLineOffset[0] = 0);
|
||||
VCCtrl.Cancel.usStatus.0 := (enFileStep <> enFileStep_WAITCMD2);
|
||||
VCCtrl.DropDownBoxFile.usStatus.0 := (enFileStep <> enFileStep_WAIT);
|
||||
VCCtrl.LoadEdit.usStatus.0 := (enFileStep <> enFileStep_WAIT);
|
||||
|
||||
CASE enFileStep OF
|
||||
//auf Befehl warten
|
||||
//=================================
|
||||
enFileStep_WAIT:
|
||||
FUBs.FileOpen.enable := FALSE;
|
||||
strFile := gstrFilenames[usEditFileSelection];
|
||||
IF VCCtrl.LoadEdit.bCommand THEN
|
||||
VCCtrl.LoadEdit.bCommand := FALSE;
|
||||
VCCtrl.DropDownBoxFile.bCompletion := FALSE;
|
||||
enFileStep := enFileStep_OPEN;
|
||||
END_IF
|
||||
|
||||
IF (States.udFileHandle > 0) THEN
|
||||
//Offenes File schlie<EFBFBD>en
|
||||
FUBs.FileClose.ident := States.udFileHandle;
|
||||
enFileStep := enFileStep_CLOSE;
|
||||
END_IF
|
||||
|
||||
//Datei <EFBFBD>ffnen
|
||||
//=================================
|
||||
enFileStep_OPEN:
|
||||
FUBs.FileOpen.mode := fiREAD_WRITE;
|
||||
FUBs.FileOpen.pDevice := ADR (strDevice);
|
||||
FUBs.FileOpen.pFile := ADR (strFile);
|
||||
FUBs.FileOpen.enable := TRUE;
|
||||
IF (FUBs.FileOpen.status = ERR_OK) THEN
|
||||
FUBs.FileOpen.enable := FALSE;
|
||||
enFileStep := enFileStep_READLINE;
|
||||
States.udFileHandle := FUBs.FileOpen.ident;
|
||||
States.udReadlineOffset := 0;
|
||||
States.uiCurrentBlockLine := 0;
|
||||
States.udFileLen := FUBs.FileOpen.filelen;
|
||||
ELSIF (FUBs.FileOpen.status < ERR_FUB_ENABLE_FALSE) THEN
|
||||
//Fehler
|
||||
FUBs.FileOpen.enable := FALSE;
|
||||
enFileStep := enFileStep_WAIT;
|
||||
States.udFileHandle := 0;
|
||||
END_IF
|
||||
|
||||
//Datei "Zeile Lesen"
|
||||
//=================================
|
||||
enFileStep_READLINE:
|
||||
FUBs.FileRead.ident := States.udFileHandle;
|
||||
FUBs.FileRead.offset := States.udReadlineOffset;
|
||||
FUBs.FileRead.pDest := ADR (strReadBuffer);
|
||||
FUBs.FileRead.len := SIZEOF (strReadBuffer);
|
||||
FUBs.FileRead.enable := TRUE;
|
||||
|
||||
IF (FUBs.FileRead.status = ERR_OK) THEN
|
||||
FUBs.FileRead.enable := FALSE;
|
||||
States.udReadLineLen := FUBs.FileRead.bytesread;
|
||||
IF (States.udReadLineLen = 0) THEN
|
||||
enFileStep := enFileStep_WAITCMD2;
|
||||
FOR usi := UINT_TO_USINT (States.uiCurrentBlockLine) TO Parameter.usEditLines DO
|
||||
brsmemset (ADR (strLines[usi]), 0, SIZEOF (strLines[usi]));
|
||||
END_FOR
|
||||
ELSE
|
||||
enFileStep := enFileStep_PARSELINE;
|
||||
END_IF
|
||||
ELSIF (FUBs.FileRead.status < ERR_FUB_ENABLE_FALSE) THEN
|
||||
//Fehler
|
||||
FUBs.FileRead.enable := FALSE;
|
||||
//Offenes File schlie<EFBFBD>en
|
||||
FUBs.FileClose.ident := States.udFileHandle;
|
||||
enFileStep := enFileStep_CLOSE;
|
||||
END_IF
|
||||
|
||||
//Gelesene Zeile parsen
|
||||
//=================================
|
||||
enFileStep_PARSELINE:
|
||||
FOR udi := 0 TO (States.udReadLineLen - 2) DO
|
||||
IF (brsmemcmp (ADR (strReadBuffer) + udi, ADR (strLineEnd), 2) = 0) THEN
|
||||
brsmemcpy (ADR (strLines[States.uiCurrentBlockLine]), ADR (strReadBuffer), udi);
|
||||
//Offset und L<EFBFBD>nge speichern und Zeiter weiterstellen
|
||||
States.udOrgLineLen[States.uiCurrentBlockLine] := udi;
|
||||
States.udOrgLineOffset[States.uiCurrentBlockLine] := States.udReadlineOffset;
|
||||
States.udReadlineOffset := States.udReadlineOffset + udi + 2;
|
||||
brsmemset (ADR (strLines[States.uiCurrentBlockLine]) + udi, 0, 1);
|
||||
States.uiCurrentBlockLine := States.uiCurrentBlockLine + 1;
|
||||
IF States.uiCurrentBlockLine = Parameter.usEditLines THEN
|
||||
enFileStep := enFileStep_WAITCMD2;
|
||||
EXIT;
|
||||
ELSE
|
||||
brsmemset (ADR (strReadBuffer) + udi, 0, SIZEOF (strReadBuffer));
|
||||
enFileStep := enFileStep_READLINE;
|
||||
EXIT;
|
||||
END_IF
|
||||
END_IF
|
||||
END_FOR
|
||||
|
||||
//Auf neue Befehle warten
|
||||
//=================================
|
||||
enFileStep_WAITCMD2:
|
||||
IF VCCtrl.ScrollDown.bCommand AND (States.udOrgLineOffset[0] < States.udFileLen) THEN
|
||||
FOR usi := 0 TO Parameter.usPageLines DO
|
||||
//Zeilen shiften
|
||||
brsstrcpy (ADR (strLines[usi]), ADR (strLines[usi + Parameter.usPageLines]));
|
||||
END_FOR
|
||||
States.uiCurrentBlockLine := Parameter.usPageLines;
|
||||
VCCtrl.ScrollDown.bCommand := FALSE;
|
||||
enFileStep := enFileStep_READLINE;
|
||||
ELSIF VCCtrl.ScrollUp.bCommand AND (States.udOrgLineOffset[0] > 0) THEN
|
||||
VCCtrl.ScrollUp.bCommand := FALSE;
|
||||
States.udReadlineOffset := 0;
|
||||
States.uiCurrentBlockLine := 0;
|
||||
enFileStep := enFileStep_READLINE;
|
||||
ELSIF VCCtrl.LineUp.bCommand THEN
|
||||
IF (VCCtrl.ListboxEdit.usIndexDatapoint > 0) THEN
|
||||
VCCtrl.ListboxEdit.usIndexDatapoint := VCCtrl.ListboxEdit.usIndexDatapoint - 1;
|
||||
ELSIF (States.udOrgLineOffset[0] > 0) THEN
|
||||
//Seite scrollen
|
||||
VCCtrl.ScrollUp.bCommand := FALSE;
|
||||
END_IF
|
||||
VCCtrl.LineUp.bCommand := FALSE;
|
||||
ELSIF VCCtrl.LineDown.bCommand THEN
|
||||
IF (VCCtrl.ListboxEdit.usIndexDatapoint < VCCtrl.ListboxEdit.usMaxIndex) THEN
|
||||
VCCtrl.ListboxEdit.usIndexDatapoint := VCCtrl.ListboxEdit.usIndexDatapoint + 1;
|
||||
ELSIF (States.udOrgLineOffset[0] < States.udFileLen) THEN
|
||||
VCCtrl.ScrollDown.bCommand := TRUE;
|
||||
END_IF
|
||||
VCCtrl.LineDown.bCommand := FALSE;
|
||||
ELSIF VCCtrl.Cancel.bCommand THEN
|
||||
VCCtrl.Cancel.bCommand := FALSE;
|
||||
enFileStep := enFileStep_CLOSE;
|
||||
END_IF
|
||||
|
||||
IF VCCtrl.LineEdit.bCompletion THEN
|
||||
VCCtrl.LineEdit.bCompletion := FALSE;
|
||||
//Eingabe abgeschlossen
|
||||
udNewLen := brsstrlen (ADR (lstrEditline));
|
||||
brsmemset (ADR (strWriteBuffer) + udi, 0, SIZEOF (strWriteBuffer));
|
||||
brsstrcpy (ADR (strWriteBuffer), ADR (lstrEditline));
|
||||
brsstrcat (ADR (strWriteBuffer), ADR (strLineEnd));
|
||||
IF (udNewLen = States.udOrgLineLen[VCCtrl.ListboxEdit.usIndexDatapoint]) THEN
|
||||
//Gleiche L<EFBFBD>nge einfach <EFBFBD>berschreiben
|
||||
enFileStep := enFileStep_WRITELINE;
|
||||
ELSE
|
||||
enFileStep := enFileStep_READFILEREST;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
//Restliches File auslesen
|
||||
//=================================
|
||||
enFileStep_READFILEREST:
|
||||
FUBs.FileRead.ident := States.udFileHandle;
|
||||
FUBs.FileRead.offset := States.udOrgLineOffset[VCCtrl.ListboxEdit.usIndexDatapoint] +
|
||||
States.udOrgLineLen[VCCtrl.ListboxEdit.usIndexDatapoint] + 2;
|
||||
FUBs.FileRead.pDest := ADR (usBuffer);
|
||||
FUBs.FileRead.len := SIZEOF (usBuffer);
|
||||
FUBs.FileRead.enable := TRUE;
|
||||
IF (FUBs.FileRead.status = ERR_OK) THEN
|
||||
FUBs.FileRead.enable := FALSE;
|
||||
States.udReadFileRestLen := FUBs.FileRead.bytesread;
|
||||
enFileStep := enFileStep_WRITELINE;
|
||||
ELSIF (FUBs.FileRead.status < ERR_FUB_ENABLE_FALSE) THEN
|
||||
//Fehler
|
||||
FUBs.FileRead.enable := FALSE;
|
||||
//Offenes File schlie<EFBFBD>en
|
||||
FUBs.FileClose.ident := States.udFileHandle;
|
||||
enFileStep := enFileStep_CLOSE;
|
||||
END_IF
|
||||
|
||||
//Ge<EFBFBD>nderte Zeile in Datei schreiben
|
||||
//=================================
|
||||
enFileStep_WRITELINE:
|
||||
FUBs.FileWrite.ident := States.udFileHandle;
|
||||
FUBs.FileWrite.pSrc := ADR (strWriteBuffer);
|
||||
FUBs.FileWrite.offset := States.udOrgLineOffset[VCCtrl.ListboxEdit.usIndexDatapoint];
|
||||
FUBs.FileWrite.len := brsstrlen (ADR (strWriteBuffer));
|
||||
FUBs.FileWrite.option := 0; //No Trunc
|
||||
FUBs.FileWrite.enable := TRUE;
|
||||
|
||||
IF (FUBs.FileWrite.status = ERR_OK) THEN
|
||||
FUBs.FileWrite.enable := FALSE;
|
||||
IF (udNewLen = States.udOrgLineLen[VCCtrl.ListboxEdit.usIndexDatapoint]) THEN
|
||||
//Editierte Zeile ohne L<EFBFBD>ngen<EFBFBD>nderung
|
||||
enFileStep := enFileStep_WAITCMD2;
|
||||
ELSE
|
||||
enFileStep := enFileStep_WriteFILEREST;
|
||||
END_IF
|
||||
ELSIF (FUBs.FileWrite.status < ERR_FUB_ENABLE_FALSE) THEN
|
||||
//Fehler
|
||||
FUBs.FileWrite.enable := FALSE;
|
||||
//Offenes File schlie<EFBFBD>en
|
||||
FUBs.FileClose.ident := States.udFileHandle;
|
||||
enFileStep := enFileStep_CLOSE;
|
||||
END_IF
|
||||
|
||||
//Restdaten in Datei schreiben
|
||||
//=================================
|
||||
enFileStep_WriteFILEREST:
|
||||
FUBs.FileWrite.ident := States.udFileHandle;
|
||||
FUBs.FileWrite.pSrc := ADR (usBuffer);
|
||||
FUBs.FileWrite.offset := States.udOrgLineOffset[VCCtrl.ListboxEdit.usIndexDatapoint] + brsstrlen (ADR (strWriteBuffer));
|
||||
FUBs.FileWrite.len := States.udReadFileRestLen;
|
||||
FUBs.FileWrite.option := 1; //With Trunc
|
||||
FUBs.FileWrite.enable := TRUE;
|
||||
|
||||
IF (FUBs.FileWrite.status = ERR_OK) THEN
|
||||
FUBs.FileWrite.enable := FALSE;
|
||||
States.udReadlineOffset := States.udOrgLineOffset[VCCtrl.ListboxEdit.usIndexDatapoint];
|
||||
States.uiCurrentBlockLine := VCCtrl.ListboxEdit.usIndexDatapoint;
|
||||
enFileStep := enFileStep_READLINE;
|
||||
ELSIF (FUBs.FileWrite.status < ERR_FUB_ENABLE_FALSE) THEN
|
||||
//Fehler
|
||||
FUBs.FileWrite.enable := FALSE;
|
||||
//Offenes File schlie<EFBFBD>en
|
||||
FUBs.FileClose.ident := States.udFileHandle;
|
||||
enFileStep := enFileStep_CLOSE;
|
||||
END_IF
|
||||
|
||||
//Datei schlie<EFBFBD>en
|
||||
//=================================
|
||||
enFileStep_CLOSE:
|
||||
FUBs.FileClose.enable := TRUE;
|
||||
IF (FUBs.FileClose.status = ERR_OK) OR (FUBs.FileClose.status < ERR_FUB_ENABLE_FALSE) THEN
|
||||
FUBs.FileClose.enable := FALSE;
|
||||
States.udFileHandle := 0;
|
||||
enFileStep := enFileStep_WAIT;
|
||||
END_IF
|
||||
|
||||
END_CASE
|
||||
|
||||
FUBs.DirInfo ();
|
||||
FUBs.DirRead ();
|
||||
FUBs.FileOpen ();
|
||||
FUBs.FileRead ();
|
||||
FUBs.FileWrite ();
|
||||
FUBs.FileClose ();
|
||||
END_PROGRAM
|
||||
6
Logical/File/FileEdit/Exit.st
Normal file
6
Logical/File/FileEdit/Exit.st
Normal file
@@ -0,0 +1,6 @@
|
||||
|
||||
|
||||
PROGRAM _EXIT
|
||||
(* Insert code here *)
|
||||
|
||||
END_PROGRAM
|
||||
11
Logical/File/FileEdit/IEC.prg
Normal file
11
Logical/File/FileEdit/IEC.prg
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Cyclic code">Cyclic.st</File>
|
||||
<File Description="Init code">Init.st</File>
|
||||
<File Description="Exit code">Exit.st</File>
|
||||
<File Description="Local data types" Private="true">Types.typ</File>
|
||||
<File Description="Local variables" Private="true">Variables.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
7
Logical/File/FileEdit/Init.st
Normal file
7
Logical/File/FileEdit/Init.st
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
|
||||
PROGRAM _INIT
|
||||
Parameter.usEditLines := 12;
|
||||
Parameter.usPageLines:= 5;
|
||||
bReadDir := TRUE;
|
||||
END_PROGRAM
|
||||
84
Logical/File/FileEdit/Types.typ
Normal file
84
Logical/File/FileEdit/Types.typ
Normal file
@@ -0,0 +1,84 @@
|
||||
(*//Schrittketten / Befehle / Bedingungen*)
|
||||
|
||||
TYPE
|
||||
typ_enStepFile :
|
||||
( (*Schrittkette*)
|
||||
enFileStep_WAIT := 0, (*Auf Befehl Warten*)
|
||||
enFileStep_OPEN, (*Datei <20>ffnen*)
|
||||
enFileStep_READLINE, (*Datei Zeile Lesen*)
|
||||
enFileStep_PARSELINE, (*Datei Zeile Parsen*)
|
||||
enFileStep_WAITCMD2, (*Auf Befehl Warten*)
|
||||
enFileStep_READFILEREST, (*Restliches File Lesen*)
|
||||
enFileStep_WRITELINE, (*Ge<47>nderte Zeile in Datei Schreiben*)
|
||||
enFileStep_WriteFILEREST, (*Restliches File Schreiben*)
|
||||
enFileStep_CLOSE (*Datei Schlie<69>en*)
|
||||
);
|
||||
typ_enStepDir :
|
||||
(
|
||||
enDirStep_WAIT,
|
||||
enDirStep_DIRINFO,
|
||||
enDirStep_READDIR,
|
||||
enDirStep_BUILDLIST
|
||||
);
|
||||
typ_States : STRUCT
|
||||
udFileHandle : UDINT; (*FileHandle*)
|
||||
udReadlineOffset : UDINT; (*Offset*)
|
||||
udFileLen : UDINT; (*Dateil<69>nge*)
|
||||
udReadLineLen : UDINT; (*Tats. gelesene L<>nge*)
|
||||
udReadFileRestLen : UDINT; (*Gelesene L<>nge Restl. File*)
|
||||
udOrgLineLen : ARRAY[0..EDIT_LINES]OF UDINT; (*Zeilen L<>nge (um L<>ngen<65>nderung festzustellen*)
|
||||
udOrgLineOffset : ARRAY[0..EDIT_LINES]OF UDINT; (*Offeset der Zeile im File*)
|
||||
uiCurrentBlockLine : UINT; (*Aktuelle Zeile (im Block)*)
|
||||
udFilesInDir : UDINT; (*Dateien in Verzeichnis*)
|
||||
END_STRUCT;
|
||||
typ_FUBstates : STRUCT
|
||||
DirInfo : UINT;
|
||||
DirRead : UINT;
|
||||
END_STRUCT;
|
||||
typ_Parameter : STRUCT
|
||||
usEditLines : USINT; (*Anzahl der Zeilen zum Editieren*)
|
||||
usPageLines : USINT; (*Anzahl der Zeilen zum Bl<42>ttern*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
|
||||
(*//FunctionBlocks / Daten*)
|
||||
|
||||
TYPE
|
||||
typ_FUB : STRUCT (*Funktionsbausteine*)
|
||||
FileOpen : FileOpen := (0);
|
||||
FileClose : FileClose := (0);
|
||||
FileRead : FileReadEx := (0); (*Datei Lesen (mit L<>nge Gelesener Daten)*)
|
||||
FileWrite : FileWriteEx := (0); (*Datei Schreiben (Optional mit Truncate)*)
|
||||
DirInfo : DirInfo; (*Verzeichnisinfo*)
|
||||
DirRead : DirRead; (*Verzeichnisinhalt lesen*)
|
||||
TON_ReadDir : TON;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
|
||||
(*Insert your comment here.*)
|
||||
|
||||
TYPE
|
||||
enumTabs :
|
||||
( (*Tabs*)
|
||||
TAB_TUNE_LOWER_TOOL := 8, (*Tab Tuning Unterwerkzeug*)
|
||||
TAB_TUNE_UPPER_TOOL := 9, (*Tab Tuning Oberwerkzeug*)
|
||||
TAB_PROFILE_LOWER_TOOL := 10, (*Tab Profil Unterwerkzeug*)
|
||||
TAB_PROFILE_UPPER_TOOL := 11 (*Tab Profil Oberwerkzeug*)
|
||||
);
|
||||
typ_VCCtrl : STRUCT (*VC Controls*)
|
||||
Status : typ_VCStatus;
|
||||
ListboxEdit : gtyp_VCListbox; (*Listbox Editor*)
|
||||
LineEdit : gtyp_VCString;
|
||||
DropDownBoxFile : gtyp_VCDropdownbox;
|
||||
LineUp : gtyp_VCButton;
|
||||
LineDown : gtyp_VCButton;
|
||||
ScrollUp : gtyp_VCButton;
|
||||
ScrollDown : gtyp_VCButton;
|
||||
Slider : gtyp_VCSlider;
|
||||
Cancel : gtyp_VCButton;
|
||||
LoadEdit : gtyp_VCButton;
|
||||
END_STRUCT;
|
||||
typ_VCStatus : STRUCT (*VC Statis - Allgemein*)
|
||||
usDummy : USINT;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
39
Logical/File/FileEdit/Variables.var
Normal file
39
Logical/File/FileEdit/Variables.var
Normal file
@@ -0,0 +1,39 @@
|
||||
VAR CONSTANT
|
||||
EDIT_LINES : USINT := 25;
|
||||
END_VAR
|
||||
VAR
|
||||
bScrollDown : BOOL;
|
||||
bScrollUp : BOOL;
|
||||
bReadDir : BOOL;
|
||||
usi : USINT;
|
||||
usEditFileSelection : USINT;
|
||||
udi : UDINT;
|
||||
udCurrentFile : UDINT;
|
||||
udNewLen : UDINT;
|
||||
usBuffer : {REDUND_UNREPLICABLE} ARRAY[0..999999] OF USINT; (*Puffer*)
|
||||
END_VAR
|
||||
(*//Strings*)
|
||||
VAR
|
||||
strDevice : STRING[80];
|
||||
strPath : STRING[80];
|
||||
strFile : STRING[80];
|
||||
strLineEnd : STRING[3] := '$r$n';
|
||||
strReadBuffer : STRING[80];
|
||||
strWriteBuffer : STRING[80];
|
||||
strLines : ARRAY[0..EDIT_LINES] OF STRING[80];
|
||||
lstrEditline : REFERENCE TO STRING[80]; (*Editierte Zeile*)
|
||||
END_VAR
|
||||
(*//Strukturen*)
|
||||
VAR
|
||||
enFileStep : typ_enStepFile;
|
||||
enDirStep : typ_enStepDir;
|
||||
States : typ_States;
|
||||
Parameter : typ_Parameter;
|
||||
VCCtrl : typ_VCCtrl; (*Seiteninterface spezifisch*)
|
||||
DirReadData : fiDIR_READ_DATA;
|
||||
FUBStates : typ_FUBstates;
|
||||
END_VAR
|
||||
(*//Funktionsbl<62>cke*)
|
||||
VAR
|
||||
FUBs : typ_FUB;
|
||||
END_VAR
|
||||
4
Logical/File/FileMan/Cyclic.st
Normal file
4
Logical/File/FileMan/Cyclic.st
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
(* Insert code here *)
|
||||
END_PROGRAM
|
||||
6
Logical/File/FileMan/Exit.st
Normal file
6
Logical/File/FileMan/Exit.st
Normal file
@@ -0,0 +1,6 @@
|
||||
|
||||
|
||||
PROGRAM _EXIT
|
||||
(* Insert code here *)
|
||||
|
||||
END_PROGRAM
|
||||
11
Logical/File/FileMan/IEC.prg
Normal file
11
Logical/File/FileMan/IEC.prg
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Cyclic code">Cyclic.st</File>
|
||||
<File Description="Init code">Init.st</File>
|
||||
<File Description="Exit code">Exit.st</File>
|
||||
<File Description="Local data types" Private="true">Types.typ</File>
|
||||
<File Description="Local variables" Private="true">Variables.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
9
Logical/File/FileMan/Init.st
Normal file
9
Logical/File/FileMan/Init.st
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
|
||||
PROGRAM _INIT
|
||||
MpFUBs.MpFileManagerConfig.MpLink := ADR (gFileManagerUI);
|
||||
|
||||
MpFUBs.MpFileManagerUI.MpLink := ADR (gFileManagerUI);
|
||||
|
||||
|
||||
END_PROGRAM
|
||||
8
Logical/File/FileMan/Types.typ
Normal file
8
Logical/File/FileMan/Types.typ
Normal file
@@ -0,0 +1,8 @@
|
||||
(*//FunctionBlocks / Daten*)
|
||||
|
||||
TYPE
|
||||
typ_MpFUB : STRUCT (*Funktionsbausteine*)
|
||||
MpFileManagerUI : MpFileManagerUI;
|
||||
MpFileManagerConfig : MpFileManagerConfig;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
4
Logical/File/FileMan/Variables.var
Normal file
4
Logical/File/FileMan/Variables.var
Normal file
@@ -0,0 +1,4 @@
|
||||
(*//Funktionsbl<62>cke*)
|
||||
VAR
|
||||
MpFUBs : typ_MpFUB;
|
||||
END_VAR
|
||||
3
Logical/File/GlobalFile.var
Normal file
3
Logical/File/GlobalFile.var
Normal file
@@ -0,0 +1,3 @@
|
||||
VAR
|
||||
gstrFilenames : ARRAY[0..100] OF STRING[25];
|
||||
END_VAR
|
||||
10
Logical/File/Package.pkg
Normal file
10
Logical/File/Package.pkg
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File" Description="Globale Variablen - File">GlobalFile.var</Object>
|
||||
<Object Type="File" Description="Package Variablen - File" Private="true">PackageFile.var</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Simple Texteditor">FileEdit</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Filemanagement">FileMan</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
3
Logical/File/PackageFile.var
Normal file
3
Logical/File/PackageFile.var
Normal file
@@ -0,0 +1,3 @@
|
||||
VAR
|
||||
VisuPageCtrl_File : gtyp_VisuCtrlPage; (*Seiteninterface allgemein*)
|
||||
END_VAR
|
||||
97
Logical/GlobalVars/Global.typ
Normal file
97
Logical/GlobalVars/Global.typ
Normal file
@@ -0,0 +1,97 @@
|
||||
|
||||
TYPE
|
||||
gtyp_ACPinverter : STRUCT (*Acopos Inverter*)
|
||||
bModuleOK : BOOL;
|
||||
In : gtyp_ACPinverterIn;
|
||||
Out : gtyp_ACPinverterOut;
|
||||
END_STRUCT;
|
||||
gtyp_ACPinverterIn : 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;
|
||||
gtyp_ACPinverterOut : 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;
|
||||
gtyp_PushButton : 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;
|
||||
gtyp_PowerSupply : STRUCT (*80PS Stromversorgung*)
|
||||
In : gtyp_PowerSupplyInuts;
|
||||
Out : gtyp_PowerSupplyOutputs;
|
||||
END_STRUCT;
|
||||
gtyp_PowerSupplyInuts : STRUCT (*80PS Stromversorgung*)
|
||||
bIurrentLimitActive : BOOL; (*Strombegrenzung 01 aktiv*)
|
||||
siVoltage : SINT; (*Ausgangsspannung 01 [V]*)
|
||||
iCurrent : INT; (*Ausgangsstrom [0.1 A]*)
|
||||
bErrorOutput : BOOL; (*Ausgang abgeschaltet*)
|
||||
bErrorPhaseDetection : BOOL; (*Phasenausfall*)
|
||||
bErrorOvertemperature : BOOL; (*<2A>bertemperatur*)
|
||||
bErrorOverload : BOOL; (*<2A>berlast*)
|
||||
bErrorOverVoltage : BOOL; (*<2A>berstrom*)
|
||||
bError24VDC : BOOL; (*Fehler 24 Ausgang*)
|
||||
END_STRUCT;
|
||||
gtyp_PowerSupplyOutputs : STRUCT (*80PS Stromversorgung*)
|
||||
bClearError : BOOL; (*St<53>rung quittieren*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
108
Logical/GlobalVars/Global.var
Normal file
108
Logical/GlobalVars/Global.var
Normal file
@@ -0,0 +1,108 @@
|
||||
(*================================================================================================================*)
|
||||
(*CPU (PWLnk Node 240)*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gusBatteryStateCPU : USINT; (*Batterie Status CPU (0=Schwach, 1=Ok)*)
|
||||
guiTemperatureCPU : UINT; (*CPU Temperatur [0.1<EFBFBD>C]*)
|
||||
guiTemperatureENV : UINT; (*Umgebungstemperatur [0.1<EFBFBD>C]*)
|
||||
gdiSystemTime : DINT; (*Systemzeit [<5B>s]*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF6.ST1 - 20K1 CMR111*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
giRelHumidityCabinet : INT; (*Luftfeuchtigkeit Schaltschrank [%]*)
|
||||
giTemperatureCabinet : INT; (*Temperatur Schaltschrank [0.1<EFBFBD>C]*)
|
||||
giAccelerationCabinet1 : INT; (*Beschleunigung Achse 1 16g = 32767*)
|
||||
giAccelerationCabinet2 : INT; (*Beschleunigung Achse 2 16g = 32767*)
|
||||
giAccelerationCabinet3 : INT; (*Beschleunigung Achse 3 16g = 32767*)
|
||||
giRotationCabinet1 : INT; (*Drehrate Achse 1 2000dps = 32767*)
|
||||
giRotationCabinet2 : INT; (*Drehrate Achse 2 2000dps = 32767*)
|
||||
giRotationCabinet3 : INT; (*Drehrate Achse 3 2000dps = 32767*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF6.ST2 - 21K1 SLX410*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gbIF6ST1ModuleOk : BOOL;
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*Signals to Safe PLC*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gbSPLCMachineOn : BOOL;
|
||||
gbSPLCJogMode : BOOL; (*Handbetrieb*)
|
||||
gbSPLCResetEStop : BOOL; (*Not-Halt Quittierung ??*)
|
||||
gbSPLCReadbackEStop : BOOL; (*R<>ckf<6B>hrkreis Not-Halt an <20>bergeordnete Maschine*)
|
||||
gbSPLCReadbackSafetyScrewdriver1 : BOOL; (*R<>ckf<6B>hrkreis*)
|
||||
gbSPLCReadbackSafetySeperation1 : BOOL; (*R<>ckf<6B>hrkreis*)
|
||||
gbSPLCResetReadbackError : BOOL; (*Reset R<>ckf<6B>hrkreisfehler*)
|
||||
END_VAR
|
||||
(*2 R<>cklesesignale direkt von Eingang gemappt*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*Signals from Safe PLC*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gbSPLCInEstopOk : BOOL; (*Safety PLC E-Stop ist Ok*)
|
||||
gbSPLCInSafetySperation1Ok : BOOL; (*Safety PLC Sicherheit Vereinzelung 1 Ok*)
|
||||
gbSPLCInSafetyScrewdriver1Ok : BOOL; (*Safety PLC Sicherheit Schrauber 1 Ok*)
|
||||
gbSPLCInRdbckErrorEStop : BOOL; (*Safety PLC R<>cklesefehler Not-Halt an <20>bergeordnete Maschine*)
|
||||
gbSPLCInRdbckErrorSeperation1 : BOOL; (*Safety PLC R<>cklesefehler Sicherheit Vereinzelung 1*)
|
||||
gbSPLCInRdbckErrorScrewdriver1 : BOOL; (*Safety PLC R<>cklesefehler Sicherheit Schrauber 1*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*I/O from SLX*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gbSInEStop1 : BOOL; (*Sicherer Eingang 01/02 Equivalent - Nothalt 1 Optional*)
|
||||
gbSInEStop2 : BOOL; (*Sicherer Eingang 02/03 Equivalent - Nothalt 2 Optional*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF6.ST3 - 21K2 SC2212*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gbSInEStopExt : BOOL; (*Sicherer Eingang 01/02 Equivalent - Nothalt Extern*)
|
||||
gbSInSafetyExt : BOOL; (*Sicherer Eingang 03/04 Equivalent - Sicherheit Extern*)
|
||||
gbSInEStop3 : BOOL; (*Sicherer Eingang 05/06 Equivalent - Nothalt 3 Optional*)
|
||||
gbSOuEnableAxisSpindle1 : BOOL; (*Sicherer Ausgang 01 - STO Achse Spindel 1*)
|
||||
gbSOuMainValve : BOOL; (*Sicherer Ausgang 02 - Hauptventil*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF6.ST4 - 21K3 SSO4110*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gbSOuSafetyOkToExt : BOOL; (*Sicherer Ausgang 02 - Sicherheitseinrichtungen OK an <20>bergeordnete Maschine (Optional)*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF6.ST5 - 22K1 - DI9371 (Eing<6E>nge Allgemein)*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gbInFdBckEStopToExt : BOOL; (*R<>ckf<6B>hrkreis Not-Halt an <20>bergeordnete Maschine*)
|
||||
gbInFdBckSafetyOkToExt : BOOL; (*R<>ckf<6B>hrkreis Sicherheiseinrichtungen OK an <20>Bergeordnete Maschine*)
|
||||
gbInFuse10F3Ok : BOOL; (*24V Versorgung Extern Ok*)
|
||||
gbInFdBackAir : BOOL; (*Abfrage Luft*)
|
||||
gbSOuEStopOkToExt : BOOL; (*Sicherer Ausgang 01 - Not-Halt an <20>bergeordnete Maschine*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF6.ST6 - 22K2 - DO9322 ( Ausg<73>nge Allgemein)*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*================================================================================================================*)
|
||||
(*IF3.ST2 - Vereinzelung*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF3.ST2.IF1.ST2 - 208K4 SI4100*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gbSInEStopRobot : BOOL; (*Sicherer Eingang 01/02 Equivalent - Nothalt von Roboter*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*IF3.ST2.IF1.ST3 - 208K5 SO6530*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gbSOuRobotEStop : BOOL; (*Sicherer Ausgang 01/02 Nothalt 2-kanalig an Roboter (General Stop / EStop)*)
|
||||
gbSOuRobotAStop : BOOL; (*Sicherer Ausgang 03/04 Auto-Stop 2-kanalig an Roboter*)
|
||||
gbSOuSafetySeperationOk : BOOL; (*Sicherer Ausgang 05/06 Sicherheit f<>r Vereinzelung Ok (Versorgung Greifer / Hauptventil)*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
8
Logical/GlobalVars/Package.pkg
Normal file
8
Logical/GlobalVars/Package.pkg
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<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>
|
||||
123
Logical/Libraries/ArTextSys/ArTextSys.fun
Normal file
123
Logical/Libraries/ArTextSys/ArTextSys.fun
Normal 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
|
||||
32
Logical/Libraries/ArTextSys/ArTextSys.typ
Normal file
32
Logical/Libraries/ArTextSys/ArTextSys.typ
Normal 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
|
||||
21
Logical/Libraries/ArTextSys/ArTextSys.var
Normal file
21
Logical/Libraries/ArTextSys/ArTextSys.var
Normal 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
|
||||
9
Logical/Libraries/ArTextSys/Binary.lby
Normal file
9
Logical/Libraries/ArTextSys/Binary.lby
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.8.122 SP?>
|
||||
<Library Description="IEC Text-System Library." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>ArTextSys.fun</File>
|
||||
<File>ArTextSys.typ</File>
|
||||
<File>ArTextSys.var</File>
|
||||
</Files>
|
||||
</Library>
|
||||
221
Logical/Libraries/ArTextSys/SG4/ArTextSys.h
Normal file
221
Logical/Libraries/ArTextSys/SG4/ArTextSys.h
Normal 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_ */
|
||||
|
||||
1344
Logical/Libraries/AsARCfg/AsARCfg.fun
Normal file
1344
Logical/Libraries/AsARCfg/AsARCfg.fun
Normal file
File diff suppressed because it is too large
Load Diff
11
Logical/Libraries/AsARCfg/AsARCfg.typ
Normal file
11
Logical/Libraries/AsARCfg/AsARCfg.typ
Normal 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
|
||||
88
Logical/Libraries/AsARCfg/AsARCfg.var
Normal file
88
Logical/Libraries/AsARCfg/AsARCfg.var
Normal 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
|
||||
12
Logical/Libraries/AsARCfg/Binary.lby
Normal file
12
Logical/Libraries/AsARCfg/Binary.lby
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Library Description="The AsARCfg library supports reading and writing Automation Runtime configurations." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>AsARCfg.fun</File>
|
||||
<File>AsARCfg.typ</File>
|
||||
<File>AsARCfg.var</File>
|
||||
</Files>
|
||||
<Dependencies>
|
||||
<Dependency ObjectName="runtime" />
|
||||
</Dependencies>
|
||||
</Library>
|
||||
204
Logical/Libraries/AsARCfg/SG3/AsARCfg.h
Normal file
204
Logical/Libraries/AsARCfg/SG3/AsARCfg.h
Normal 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_ */
|
||||
|
||||
|
||||
1378
Logical/Libraries/AsARCfg/SG4/AsARCfg.h
Normal file
1378
Logical/Libraries/AsARCfg/SG4/AsARCfg.h
Normal file
File diff suppressed because it is too large
Load Diff
272
Logical/Libraries/AsARCfg/SGC/AsARCfg.h
Normal file
272
Logical/Libraries/AsARCfg/SGC/AsARCfg.h
Normal 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_ */
|
||||
|
||||
|
||||
39
Logical/Libraries/AsArSdm/AsArSdm.fun
Normal file
39
Logical/Libraries/AsArSdm/AsArSdm.fun
Normal 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
|
||||
1
Logical/Libraries/AsArSdm/AsArSdm.typ
Normal file
1
Logical/Libraries/AsArSdm/AsArSdm.typ
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
21
Logical/Libraries/AsArSdm/AsArSdm.var
Normal file
21
Logical/Libraries/AsArSdm/AsArSdm.var
Normal 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
|
||||
12
Logical/Libraries/AsArSdm/Binary.lby
Normal file
12
Logical/Libraries/AsArSdm/Binary.lby
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Library Description="The AsArSdm library supports the System Diagnostics Manager" xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>AsArSdm.fun</File>
|
||||
<File>AsArSdm.typ</File>
|
||||
<File>AsArSdm.var</File>
|
||||
</Files>
|
||||
<Dependencies>
|
||||
<Dependency ObjectName="runtime" />
|
||||
</Dependencies>
|
||||
</Library>
|
||||
104
Logical/Libraries/AsArSdm/SG4/AsArSdm.h
Normal file
104
Logical/Libraries/AsArSdm/SG4/AsArSdm.h
Normal 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_ */
|
||||
|
||||
80
Logical/Libraries/AsBrStr/AsBrStr.fun
Normal file
80
Logical/Libraries/AsBrStr/AsBrStr.fun
Normal 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
|
||||
|
||||
4
Logical/Libraries/AsBrStr/AsBrStr.typ
Normal file
4
Logical/Libraries/AsBrStr/AsBrStr.typ
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
TYPE
|
||||
|
||||
END_TYPE
|
||||
4
Logical/Libraries/AsBrStr/AsBrStr.var
Normal file
4
Logical/Libraries/AsBrStr/AsBrStr.var
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
VAR CONSTANT
|
||||
|
||||
END_VAR
|
||||
9
Logical/Libraries/AsBrStr/Binary.lby
Normal file
9
Logical/Libraries/AsBrStr/Binary.lby
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Library Description="The AsBrStr Library contains FBKs for memory and character string handling." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>AsBrStr.fun</File>
|
||||
<File>AsBrStr.typ</File>
|
||||
<File>AsBrStr.var</File>
|
||||
</Files>
|
||||
</Library>
|
||||
39
Logical/Libraries/AsBrStr/SG3/AsBrStr.h
Normal file
39
Logical/Libraries/AsBrStr/SG3/AsBrStr.h
Normal 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_ */
|
||||
|
||||
39
Logical/Libraries/AsBrStr/SG4/AsBrStr.h
Normal file
39
Logical/Libraries/AsBrStr/SG4/AsBrStr.h
Normal 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_ */
|
||||
|
||||
39
Logical/Libraries/AsBrStr/SGC/AsBrStr.h
Normal file
39
Logical/Libraries/AsBrStr/SGC/AsBrStr.h
Normal 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_ */
|
||||
|
||||
70
Logical/Libraries/AsIOAcc/AsIOAcc.fun
Normal file
70
Logical/Libraries/AsIOAcc/AsIOAcc.fun
Normal file
@@ -0,0 +1,70 @@
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIOAccRead (*reads noncyclical register (only inputs); asynchronous execution*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pDeviceName :UDINT; (*device name given as a pointer*)
|
||||
pChannelName :UDINT; (*pointer to the channel name*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
|
||||
value :UDINT; (*value read*)
|
||||
END_VAR
|
||||
VAR
|
||||
intern :IOAC_I_TYPE; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIOAccWrite (*writes noncyclical register (ONLY outputs); asynchronous execution*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pDeviceName :UDINT; (*device name given as a pointer*)
|
||||
pChannelName :UDINT; (*pointer to the channel name*)
|
||||
value :UDINT; (*value to be written*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
VAR
|
||||
intern :IOAC_I_TYPE; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIOAccReadReg (*reads noncyclical register (SGC only); asynchronous execution*)
|
||||
VAR_INPUT
|
||||
enable : BOOL; (*enables execution*)
|
||||
nodeNr : USINT; (*node number of x2x module*)
|
||||
registerNr : UINT; (*register number*)
|
||||
size : USINT; (*register size*)
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
|
||||
value : UDINT; (*regsiter value*)
|
||||
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 AsIOAccWriteReg (*writes noncyclical register (SGC only); asynchronous execution*)
|
||||
VAR_INPUT
|
||||
enable : BOOL; (*enables execution*)
|
||||
nodeNr : USINT; (*node number of x2x module*)
|
||||
registerNr : UINT; (*register number*)
|
||||
size : USINT; (*register size*)
|
||||
value : UDINT; (*new register value*)
|
||||
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
|
||||
15
Logical/Libraries/AsIOAcc/AsIOAcc.typ
Normal file
15
Logical/Libraries/AsIOAcc/AsIOAcc.typ
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
TYPE
|
||||
IOAC_I_TYPE : STRUCT (*internal use*)
|
||||
StateMan : UINT ;
|
||||
ErrMan : UINT ;
|
||||
Init : UDINT ;
|
||||
Taskhandle : UDINT ;
|
||||
Semaphore : UDINT ;
|
||||
Requestsize : UDINT ;
|
||||
Answersize : UDINT ;
|
||||
pAccessObj : UDINT ;
|
||||
Offset : UDINT ;
|
||||
flags : UDINT ;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
10
Logical/Libraries/AsIOAcc/AsIOAcc.var
Normal file
10
Logical/Libraries/AsIOAcc/AsIOAcc.var
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
VAR CONSTANT
|
||||
ioacERR_INTERNAL : UINT := 30190; (*internal error*)
|
||||
ioacERR_DEVICE : UINT := 30191; (*I/O module does not exist*)
|
||||
ioacERR_CHANNEL : UINT := 30192; (*incorrect channel name specified*)
|
||||
ioacERR_TIMEOUT : UINT := 30193; (*timeout reached*)
|
||||
ioacERR_NOTSUPPORTED : UINT := 30194; (*not supported*)
|
||||
ioacERR_PARAMETER : UINT := 30195; (*invalid parameter*)
|
||||
ioacERR_ACCESS : UINT := 30196; (*access error*)
|
||||
END_VAR
|
||||
12
Logical/Libraries/AsIOAcc/Binary.lby
Normal file
12
Logical/Libraries/AsIOAcc/Binary.lby
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=4.4.7.144 SP?>
|
||||
<Library Description="This library provides read and write access to non-cyclic I/O data points." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>AsIOAcc.fun</File>
|
||||
<File>AsIOAcc.typ</File>
|
||||
<File>AsIOAcc.var</File>
|
||||
</Files>
|
||||
<Dependencies>
|
||||
<Dependency ObjectName="runtime" />
|
||||
</Dependencies>
|
||||
</Library>
|
||||
132
Logical/Libraries/AsIOAcc/SG4/AsIOAcc.h
Normal file
132
Logical/Libraries/AsIOAcc/SG4/AsIOAcc.h
Normal file
@@ -0,0 +1,132 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _ASIOACC_
|
||||
#define _ASIOACC_
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#include <runtime.h>
|
||||
|
||||
#ifndef _BUR_PUBLIC
|
||||
#define _BUR_PUBLIC
|
||||
#endif
|
||||
/* Constants */
|
||||
#ifdef _REPLACE_CONST
|
||||
#define ioacERR_ACCESS 30196U
|
||||
#define ioacERR_PARAMETER 30195U
|
||||
#define ioacERR_NOTSUPPORTED 30194U
|
||||
#define ioacERR_TIMEOUT 30193U
|
||||
#define ioacERR_CHANNEL 30192U
|
||||
#define ioacERR_DEVICE 30191U
|
||||
#define ioacERR_INTERNAL 30190U
|
||||
#else
|
||||
#ifndef _GLOBAL_CONST
|
||||
#define _GLOBAL_CONST _WEAK const
|
||||
#endif
|
||||
_GLOBAL_CONST unsigned short ioacERR_ACCESS;
|
||||
_GLOBAL_CONST unsigned short ioacERR_PARAMETER;
|
||||
_GLOBAL_CONST unsigned short ioacERR_NOTSUPPORTED;
|
||||
_GLOBAL_CONST unsigned short ioacERR_TIMEOUT;
|
||||
_GLOBAL_CONST unsigned short ioacERR_CHANNEL;
|
||||
_GLOBAL_CONST unsigned short ioacERR_DEVICE;
|
||||
_GLOBAL_CONST unsigned short ioacERR_INTERNAL;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct IOAC_I_TYPE
|
||||
{ unsigned short StateMan;
|
||||
unsigned short ErrMan;
|
||||
unsigned long Init;
|
||||
unsigned long Taskhandle;
|
||||
unsigned long Semaphore;
|
||||
unsigned long Requestsize;
|
||||
unsigned long Answersize;
|
||||
unsigned long pAccessObj;
|
||||
unsigned long Offset;
|
||||
unsigned long flags;
|
||||
} IOAC_I_TYPE;
|
||||
|
||||
typedef struct AsIOAccRead
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDeviceName;
|
||||
unsigned long pChannelName;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long value;
|
||||
/* VAR (analog) */
|
||||
struct IOAC_I_TYPE intern;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} AsIOAccRead_typ;
|
||||
|
||||
typedef struct AsIOAccWrite
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDeviceName;
|
||||
unsigned long pChannelName;
|
||||
unsigned long value;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
struct IOAC_I_TYPE intern;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} AsIOAccWrite_typ;
|
||||
|
||||
typedef struct AsIOAccReadReg
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned char nodeNr;
|
||||
unsigned short registerNr;
|
||||
unsigned char size;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long value;
|
||||
/* VAR (analog) */
|
||||
unsigned short i_state;
|
||||
unsigned short i_result;
|
||||
unsigned long i_tmp;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} AsIOAccReadReg_typ;
|
||||
|
||||
typedef struct AsIOAccWriteReg
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned char nodeNr;
|
||||
unsigned short registerNr;
|
||||
unsigned char size;
|
||||
unsigned long value;
|
||||
/* 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;
|
||||
} AsIOAccWriteReg_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
_BUR_PUBLIC void AsIOAccRead(struct AsIOAccRead* inst);
|
||||
_BUR_PUBLIC void AsIOAccWrite(struct AsIOAccWrite* inst);
|
||||
_BUR_PUBLIC void AsIOAccReadReg(struct AsIOAccReadReg* inst);
|
||||
_BUR_PUBLIC void AsIOAccWriteReg(struct AsIOAccWriteReg* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _ASIOACC_ */
|
||||
|
||||
101
Logical/Libraries/AsIOAcc/SGC/AsIOAcc.h
Normal file
101
Logical/Libraries/AsIOAcc/SGC/AsIOAcc.h
Normal file
@@ -0,0 +1,101 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _ASIOACC_
|
||||
#define _ASIOACC_
|
||||
#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 ioacERR_ACCESS 30196U
|
||||
#define ioacERR_PARAMETER 30195U
|
||||
#define ioacERR_NOTSUPPORTED 30194U
|
||||
#define ioacERR_TIMEOUT 30193U
|
||||
#define ioacERR_CHANNEL 30192U
|
||||
#define ioacERR_DEVICE 30191U
|
||||
#define ioacERR_INTERNAL 30190U
|
||||
#else
|
||||
_IEC_CONST unsigned short ioacERR_ACCESS = 30196U;
|
||||
_IEC_CONST unsigned short ioacERR_PARAMETER = 30195U;
|
||||
_IEC_CONST unsigned short ioacERR_NOTSUPPORTED = 30194U;
|
||||
_IEC_CONST unsigned short ioacERR_TIMEOUT = 30193U;
|
||||
_IEC_CONST unsigned short ioacERR_CHANNEL = 30192U;
|
||||
_IEC_CONST unsigned short ioacERR_DEVICE = 30191U;
|
||||
_IEC_CONST unsigned short ioacERR_INTERNAL = 30190U;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct IOAC_I_TYPE
|
||||
{ unsigned short StateMan;
|
||||
unsigned short ErrMan;
|
||||
unsigned long Init;
|
||||
unsigned long Taskhandle;
|
||||
unsigned long Semaphore;
|
||||
unsigned long Requestsize;
|
||||
unsigned long Answersize;
|
||||
unsigned long pAccessObj;
|
||||
unsigned long Offset;
|
||||
unsigned long flags;
|
||||
} IOAC_I_TYPE;
|
||||
|
||||
typedef struct AsIOAccReadReg
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned char nodeNr;
|
||||
unsigned short registerNr;
|
||||
unsigned char size;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long value;
|
||||
/* VAR (analog) */
|
||||
unsigned short i_state;
|
||||
unsigned short i_result;
|
||||
unsigned long i_tmp;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} AsIOAccReadReg_typ;
|
||||
|
||||
typedef struct AsIOAccWriteReg
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned char nodeNr;
|
||||
unsigned short registerNr;
|
||||
unsigned char size;
|
||||
unsigned long value;
|
||||
/* 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;
|
||||
} AsIOAccWriteReg_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
void AsIOAccReadReg(struct AsIOAccReadReg* inst);
|
||||
void AsIOAccWriteReg(struct AsIOAccWriteReg* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _ASIOACC_ */
|
||||
|
||||
|
||||
75
Logical/Libraries/AsIODiag/AsIODiag.fun
Normal file
75
Logical/Libraries/AsIODiag/AsIODiag.fun
Normal file
@@ -0,0 +1,75 @@
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DiagCreateInfo (*collects information about the currently configured and/or inserted hardware modules; asynchronous execution*)
|
||||
VAR_INPUT
|
||||
enable : BOOL; (*enables execution*)
|
||||
infoKind : UDINT; (*type of information to be generated, e.g. asdiagPLUGGED, asdiagCONFIGURED, ..*)
|
||||
END_VAR
|
||||
|
||||
VAR
|
||||
StateMan : UINT; (*internal variable*)
|
||||
ErrMan : UINT; (*internal variable*)
|
||||
Init : 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; (*identifier of the generated information*)
|
||||
nrEntries : UDINT; (*number of generated information entries*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DiagDisposeInfo (*frees up the resources taken up by DiagCreateInfo(); asynchronous execution*)
|
||||
VAR_INPUT
|
||||
enable : BOOL; (*enables execution*)
|
||||
ident : UDINT; (*identifier of the information to be freed up*)
|
||||
END_VAR
|
||||
|
||||
VAR
|
||||
StateMan : UINT; (*internal variable*)
|
||||
ErrMan : UINT; (*internal variable*)
|
||||
Init : 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 DiagGetNumInfo (*queries the numeric value of a specified information entry*)
|
||||
VAR_INPUT
|
||||
enable : BOOL; (*enables execution*)
|
||||
ident : UDINT; (*identifier returned from DiagCreateInfo()*)
|
||||
index : UDINT; (*index of the entry [0..nrEntries-1]*)
|
||||
infoCode : UDINT; (*code of the desired information, e.g. asdiagMODUL_STATE, asdiagPLUGGED_MODNO, ..*)
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
value : UDINT; (*numeric value*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DiagGetStrInfo (*queries the string value of a specified information entry*)
|
||||
VAR_INPUT
|
||||
enable : BOOL; (*enables execution*)
|
||||
ident : UDINT; (*identifier returned from DiagCreateInfo()*)
|
||||
index : UDINT; (*index of the entry [0..nrEntries-1]*)
|
||||
infoCode : UDINT; (*code of the desired information*)
|
||||
pBuffer : UDINT; (*pointer to the return buffer*)
|
||||
bufferLen : UDINT; (*size of the return buffer*)
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
stringLen: UDINT; (*string length of the original data*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION DiagCpuIsSimulated : BOOL (*queries if CPU is simulated *)
|
||||
|
||||
END_FUNCTION
|
||||
|
||||
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION DiagCpuIsARsim : BOOL (*queries if CPU is ARsim *)
|
||||
|
||||
END_FUNCTION
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user