Workbackup

This commit is contained in:
2021-01-29 16:50:45 +01:00
parent b000ac4ac0
commit a0716a263b
2007 changed files with 170078 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version="4.9.2.46" WorkingVersion="4.9"?>
<Project Description="Lackierzelle" 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.13.0" />
<mappCockpit Version="5.13.1" />
<mappMotion McAcpDrv="5.13.1" McAcpSim="5.13.1" McAcpSys="5.13.1" McMechSys="5.13.1" McPathXT="5.13.1" McProfGen="5.13.1" Version="5.13.1" />
<mappView Version="5.13.0" />
<TextSystem udbdef="0.1.0" />
</TechnologyPackages>
</Project>

7
LastUser.set Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version="4.9.2.46"?>
<ProjectSettings xmlns="http://br-automation.co.at/AS/ProjectSettings">
<ConfigurationManager ActiveConfigurationName="Config0" />
<Deployment Value="ActiveCpu" />
<Print Footer="%cPage: %p" Header="%lProject: %n%c%x" />
</ProjectSettings>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.7.5.60 SP?>
<DataObject SubType="Cnc" xmlns="http://br-automation.co.at/AS/DataObject">
<Files>
<File Description="CNC program (G-Code-Alternative 1)">CncInit.mpf</File>
</Files>
</DataObject>

View File

@@ -0,0 +1,32 @@
;*******************************************************************
; COPYRIGHT -- Kerschdorfer Sondermaschinenbau GmbH
;*******************************************************************
; CNC program: CncInit
; File: CncInit.mpf
; Author: Michael Rest
; Created: November 18, 2020
;*******************************************************************
;InitialisierungsProgramm
;*******************************************************************
%00 ;Definition Nummer Hauptprogramm)
N10 (Kommentar)
(Definition der PLC Variablen entf<74>llt passiert in SPS Config)
(N40 DEF plc_global LREAL pParamPositions.lrToolZeroPosZ AS toolzero_z)
N20 G90 (Absolutkoordinaten)
N30 F=lrFeedrate (Vorschub von SPS mm/min)
N100 (SC3 definieren)
N110 IF bShuttle1InPos
N120 G54 (Shuttle 1 ist in Position)
N130 ELSE
IF bShuttle3InPos
N140 G55 (Shuttle 2 ist in Position)
N150 ELSE
N160 G53
N170 M30 (Programmende)
ENDIF
N180 ENDIF
N200 M30 (Program end)

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.7.5.60 SP?>
<DataObject SubType="Cnc" xmlns="http://br-automation.co.at/AS/DataObject">
<Files>
<File Description="CNC program (G-Code)">CncPrg01.cnc</File>
</Files>
</DataObject>

View File

@@ -0,0 +1,40 @@
(*******************************************************************)
( COPYRIGHT -- Kerschdorfer Sondermaschinenbau GmbH )
(*******************************************************************)
( CNC program: CncProg )
( File: CncProg.cnc )
( Author: Michael Rest )
( Created: November 18, 2020 )
(*******************************************************************)
( CNC program file: CncProg.cnc )
(*******************************************************************)
%001 (Main program definition)
N10 (Kommentar)
(Definition der PLC Variablen)
(N40 DEF plc_global LREAL pParamPositions.lrToolZeroPosZ AS toolzero_z)
(N41 DEF plc_global LREAL MachCtrl:CNCVars.lrToolOffsetX AS tooloffset_x)
(N42 DEF plc_global LREAL MachCtrl:CNCVars.lrToolOffsetY AS tooloffset_y)
(N43 DEF plc_global LREAL MachCtrl:CNCVars.lrNozzleOffset AS nozzleoff_z)
(N44 DEF plc_global LREAL MachCtrl:CNCVars.lrGlueGap AS gluegap_z)
(N44 DEF plc_global LREAL MachCtrl:CNCVars.lrFeedrate AS feedrate)
N50 G90 (Absolutkoordinaten)
(N60 F=feedrate (Vorschub mm/min)
N60 F500 (Vorschub mm/min)
(Koordinatensystemverschiebungen)
(N67 G292 X=tooloffset_x Y=tooloffset_y Z=toolzero_z (Werkzeug KO System)
(N68 G192 Z=nozzleoff_z (DuesenKorrektur)
(N69 G92 X2 Z=gluegap_z - 1 (Klebespalt)
N70 G126 1.0 (Globale Verschleifungen mit Distanz 1mm)
(N80 G00 Z=380-nozzleoff_z-toolzero_z (wg. SOFT Limits)
N200 G00 X 0 Y 50 Z 0 C 0 A 0
(N205 G25 5.0 (Radieninterpolation)
(Klebespur Lange Seite)
N209 G01 X 500.9 Y 500 Z 500 C 0 A 0
(N210 G01 X 190.9 Y 24.4 Z 142.2 M40 (M40 Start Kleber)
(N400 G01 X 190.8 Y 189.4 Z 142.2 M41 (M41 Kleber Stop)
N590 G00 Z 380-nozzleoff_z-toolzero_z (wg. SOFT Limits)
N595 G25 5.0 (Radieninterpolation)
N4998 G00 X 0 Y 50 Z 0 C 0 A 0
N4999 G126 0 (Verschleifungen deaktivieren)
N5000 M30 (Program end)

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.7.5.60 SP?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="DataObject" Language="Cnc" Description="Initialisierungsprogramm">CncInit</Object>
<Object Type="DataObject" Language="Cnc">CncPrg1</Object>
</Objects>
</Package>

View File

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

View File

@@ -0,0 +1,25 @@
VAR
bBlink0_1 : BOOL;
bBlink0_5 : BOOL;
bBlink1_0 : BOOL;
bBlink2_0 : BOOL;
bBlink5_0 : BOOL;
gdtCurrentTime : DATE_AND_TIME; (*Current Date and Time*)
gDTstrucCurrentTime : DTStructure := (0); (*Current Date and Time as DTStructure*)
gsCurrentTime : STRING[25] := ''; (*Current Date and Time as String*)
gsCurrentTimestamp : STRING[19] := ''; (*Current Date and Time as String Timestamp*)
gTCurrentTime : TIME := T#0ms; (*Current Time*)
END_VAR
VAR CONSTANT
gAInNull : INT := 0; (*O FOR Analog Input*)
gTrue : BOOL := TRUE; (*Konstant TRUE*)
gFalse : BOOL := FALSE; (*Konstant False*)
gInNull : BOOL := FALSE; (*FALSE FOR Input *)
END_VAR
VAR
gOuNull : BOOL; (*DUMMY for Output*)
END_VAR
VAR CONSTANT
iAIVoltageOverflow : INT := 16#7FFF; (* Analog Input Voltage Mode,Overflow *)
iAIVoltageUnderflow : INT := -32767; (* Analog Input Voltage Underflow *)
END_VAR

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.2.3.159?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="File">GlobalCommon.typ</Object>
<Object Type="File">GlobalComon.var</Object>
<Object Type="Program" Language="IEC" Description="Current Date_And_Time / DT Struct">get_dt</Object>
<Object Type="Program" Language="IEC" Description="Blinker 0,1 -0,5s (f. 100ms Task) !!!">blinker</Object>
</Objects>
</Package>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.2.3.159?>
<Program xmlns="http://br-automation.co.at/AS/Program">
<Files>
<File Description="Local variables" Private="true">blinker.var</File>
<File Description="Initialization code">blinkerInit.ab</File>
<File Description="Cyclic code">blinkerCyclic.ab</File>
</Files>
</Program>

View File

@@ -0,0 +1,13 @@
(********************************************************************
* COPYRIGHT -- kA
********************************************************************
* Program: blinker
* File: blinker.var
* Author: michi
* Created: November 23, 2009
********************************************************************
* Local variables of program blinker
********************************************************************)
VAR
iCount : USINT;
END_VAR

View File

@@ -0,0 +1,30 @@
(********************************************************************
* COPYRIGHT -- kA
********************************************************************
* Program: blinker
* File: blinkerCyclic.ab
* Author: michi
* Created: November 23, 2009
********************************************************************
* Implementation of program blinker
********************************************************************)
PROGRAM _CYCLIC
(* cyclic program *)
;Has to be taskclass 100ms
bBlink0_1 = not bBlink0_1
inc (iCount)
if ((iCount mod 5) = 0) then
bBlink0_5 = not bBlink0_5
endif
if ((iCount mod 10) = 0) then
bBlink1_0 = not bBlink1_0
endif
if ((iCount mod 20) = 0) then
bBlink2_0 = not bBlink2_0
endif
if ((iCount mod 50) = 0) then
bBlink5_0 = not bBlink5_0
iCount = 0
endif
END_PROGRAM

View File

@@ -0,0 +1,16 @@
(********************************************************************
* COPYRIGHT -- kA
********************************************************************
* Program: blinker
* File: blinkerInit.ab
* Author: michi
* Created: November 23, 2009
********************************************************************
* Implementation of program blinker
********************************************************************)
PROGRAM _INIT
iCount = 0
END_PROGRAM

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.2.3.159?>
<Program xmlns="http://br-automation.co.at/AS/Program">
<Files>
<File>get_dtCyclic.ab</File>
<File Private="true">get_dt.var</File>
<File>get_dtInit.ab</File>
</Files>
</Program>

View File

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

View File

@@ -0,0 +1,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

View File

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

View File

@@ -0,0 +1,38 @@
(*//Interface IPG-Laser*)
TYPE
gytp_IPGInterfaceIn : STRUCT (*Inputs from IPG Laser Interface*)
bPilotLaserIsOn : BOOL := FALSE; (*Pilotlaser ist Ein (f. Handshake*)
bLaserIsEnabled : BOOL := FALSE; (*Laserquelle aktiviert*)
bLaserIsEmitting : BOOL := FALSE; (*Lasser emittiert*)
END_STRUCT;
gytp_IPGInterfaceOut : STRUCT (*Output to IPG Laser Interface*)
bPilotLaserOn : BOOL := FALSE; (*Pilotlaser Einschalten*)
bEnalbeLaser : BOOL := FALSE; (*Laser mit Programm 0 einschalten*)
uiOutputPower : UINT; (*Laserleistung in W*)
END_STRUCT;
gytp_IPGInterface : STRUCT (*IPG Laser Interface*)
In : gytp_IPGInterfaceIn; (*von IPG Laser Task*)
Out : gytp_IPGInterfaceOut; (*an IPG Laser Task*)
END_STRUCT;
END_TYPE
(*//Interface Raytools-Interface*)
TYPE
gytp_RTInterfaceIn : STRUCT (*Inputs from IPG Laser Interface*)
bHeadIsOk : USINT; (*Kopf ist OK / Kalibriert / Referenziert und keine St<53>rung*)
bHeadIsMidPos : BOOL := FALSE; (*Kopf ist in Mittelstellung*)
bHeadIsInFollowpos : BOOL := FALSE; (*Kopf ist is in H<>henregelung*)
END_STRUCT;
gytp_RTInterfaceOut : STRUCT (*Output to IPG Laser Interface*)
bMidPos : BOOL := FALSE; (*InMittelpos*)
bFollowPos : BOOL := FALSE; (*Position folgen*)
END_STRUCT;
gytp_RTInterface : STRUCT (*Raytools Laser Interface*)
In : gytp_RTInterfaceIn; (*von RT Laser Task*)
Out : gytp_RTInterfaceOut; (*an RT Laser Task*)
END_STRUCT;
END_TYPE
(**)

View File

@@ -0,0 +1,12 @@
(*//Kommunikationsstrukturen*)
VAR RETAIN
gIPGLaserInterface : gytp_IPGInterface;
gRTLaserInterface : gytp_RTInterface;
END_VAR
(*Variablen / Strukturen*)
VAR
gudRFIDReader1ID : UDINT;
gudRFIDReader2ID : UDINT;
gudRFIDReader3ID : UDINT;
gudRFIDReader4ID : UDINT;
END_VAR

View File

@@ -0,0 +1,148 @@
PROGRAM _CYCLIC
//Eing<EFBFBD>nge
//==============================================
//Byte 1
LaserIn.Status.bLaserIsAssigned := usInByte[1].0;
LaserIn.Status.bLaserIsOn := usInByte[1].1;
LaserIn.Status.bSystemError := usInByte[1].2;
LaserIn.Status.bPilotLaserIsOn := usInByte[1].3;
LaserIn.Status.bProgramActive := usInByte[1].4;
LaserIn.Status.bProgramEnd := usInByte[1].5;
LaserIn.Status.bProgramInterupted := usInByte[1].6;
LaserIn.Status.bAnalogControlIsOn := usInByte[1].7;
//Byte 2
LaserIn.Status.bSystemWarning := usInByte[2].0;
LaserIn.Status.bLaserIsReady := usInByte[2].1;
LaserIn.Status.bEmissionIsOn := usInByte[2].2;
LaserIn.Status.bSyncOutput := usInByte[2].3;
LaserIn.Status.bSystemWarning := usInByte[2].4;
LaserIn.Status.bRobotModeActive := usInByte[2].5;
LaserIn.Status.bInterlockActive := usInByte[2].6;
LaserIn.Status.bSoftwareCtrlActive := usInByte[2].7;
//Byte 3 / 4
LaserIn.uiOutPutPower := SHL (USINT_TO_UINT (usInByte[4]), 8) + USINT_TO_UINT (usInByte[3]);
//Byte 5
LaserIn.usOpticalChannel := usInByte[5];
//Byte 6
LaserIn.usProgramNumber := usInByte[6];
//Byte 7
LaserIn.Status2.bLaserError := usInByte[7].0;
LaserIn.Status2.bLaserWarning := usInByte[7].1;
LaserIn.Status2.bChillerError := usInByte[7].2;
LaserIn.Status2.bChillerWarning := usInByte[7].3;
LaserIn.Status2.bSafetyOpen := usInByte[7].4;
LaserIn.Status2.bChannelError := usInByte[7].5;
LaserIn.Status2.bLaserIsBusy := usInByte[7].6;
LaserIn.Status2.bSlotError := usInByte[7].7;
//Byte 8
LaserIn.Status2.bCabinetDoorOpen := usInByte[8].0;
LaserIn.Status2.bReserverdModuleIsActive := usInByte[8].1;
LaserIn.Status2.bReducedActiveModules := usInByte[8].2;
LaserIn.Status2.bHighBackReflection := usInByte[8].3;
LaserIn.Status2.bModulePowerSupplyWarning := usInByte[8].4;
//Byte 9
LaserIn.usLaserNr := usInByte[9];
//Interface von Laser an Maschine (Eing<EFBFBD>nge verarbeiten)
//=======================================
gIPGLaserInterface.In.bPilotLaserIsOn := LaserIn.Status.bPilotLaserIsOn;
gIPGLaserInterface.In.bLaserIsEnabled := LaserIn.Status.bLaserIsOn;
gIPGLaserInterface.In.bLaserIsEmitting := LaserIn.Status.bEmissionIsOn;
//Interface Maschine an Laser (Ausg<EFBFBD>nge vorbereiten)
//=======================================
IF NOT Status.bLocalCtrl THEN
//Pilotlaser steuern
LaserOut.Control.bPilotLaserOn := gIPGLaserInterface.Out.bPilotLaserOn;
//Laser einschalten
IF gIPGLaserInterface.Out.bEnalbeLaser THEN
LaserOut.Control.bLaserOn := LaserIn.Status.bRobotModeActive AND LaserIn.Status.bInterlockActive;
//Programm starten
IF LaserIn.Status.bLaserIsOn AND LaserIn.Status.bLaserIsReady THEN
LaserOut.Control.bProgramStart := TRUE;
END_IF
//Lesitung <EFBFBD>bergeben
LaserOut.uiOutPutPower := gIPGLaserInterface.Out.uiOutputPower;
ELSE
LaserOut.uiOutPutPower := 0;
IF NOT LaserIn.Status.bEmissionIsOn THEN
LaserOut.Control.bProgramStart := FALSE;
END_IF
IF NOT LaserIn.Status.bProgramActive THEN
LaserOut.Control.bLaserOn := FALSE;
END_IF
END_IF
//Fehler quittieren
LaserOut.Control.bResetErrors := gMP7121.Button;
END_IF
// Einzelschussmodus
IF NOT Status.bLocalCtrl THEN
Status.bShootMode := FALSE;
END_IF
TON_Shot.IN := (LaserOut.uiOutPutPower > 0) AND LaserOut.Control.bLaserOn AND Status.bShootMode;
TON_Shot ();
IF TON_Shot.Q THEN
LaserOut.uiOutPutPower := 0;
END_IF
//Ausg<EFBFBD>nge
//==============================================
//Schneidgas
TOF_CuttingGas.IN := (LaserOut.uiOutPutPower > 0) AND LaserOut.Control.bLaserOn;
TOF_CuttingGas.PT := t#8s;
TOF_CuttingGas ();
bOuCuttingGas := TOF_CuttingGas.Q;
//Byte 1
LaserOut.Control.bRequestLaser := TRUE;
usOuByte[1].0 := LaserOut.Control.bRequestLaser;
usOuByte[1].1 := LaserOut.Control.bLaserOn;
usOuByte[1].2 := LaserOut.Control.bResetErrors;
usOuByte[1].3 := LaserOut.Control.bPilotLaserOn;
usOuByte[1].4 := LaserOut.Control.bProgramStart;
usOuByte[1].5 := LaserOut.Control.bProgramStop;
usOuByte[1].6 := FALSE;
usOuByte[1].7 := LaserOut.Control.bAnalogControlOn;
//Byte 2
usOuByte[2].0 := LaserOut.Control.bEnableLaserSoft;
usOuByte[2].1 := LaserOut.Control.bSetRampUp;
usOuByte[2].2 := LaserOut.Control.bSetRampDown;
usOuByte[2].3 := LaserOut.Control.bSyncInput;
usOuByte[2].4 := FALSE;
usOuByte[2].5 := FALSE;
usOuByte[2].6 := FALSE;
LaserOut.Control.bExternalError := FALSE;
usOuByte[2].7 := LaserOut.Control.bExternalError;
//Byte 3/4 Endianess vetauscht
usOuByte[4] := UINT_TO_USINT (SHR (LaserOut.uiOutPutPower,8));
usOuByte[3] := UINT_TO_USINT (LaserOut.uiOutPutPower);
//Byte 5
LaserOut.usOpticalChannel := 0;
usOuByte[5] := LaserOut.usOpticalChannel;
//Byte 6
LaserOut.usProgramNumber := 0; //Analogwert oder Sollert <EFBFBD>ber Bus
usOuByte[6] := LaserOut.usProgramNumber;
//Byte 7/8
usOuByte[7] := UINT_TO_USINT (SHR (LaserOut.uiRampingTime,8));
usOuByte[8] := UINT_TO_USINT (LaserOut.uiRampingTime);
//Byte 9
LaserOut.usLaserNr := 1;
usOuByte[9] := LaserOut.usLaserNr;
//Byte 10
usOuByte[10] := 0;
END_PROGRAM

View File

@@ -0,0 +1,6 @@
PROGRAM _EXIT
(* Insert code here *)
END_PROGRAM

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.7.5.60 SP?>
<Program SubType="IEC" 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>
<File Description="IOs" Private="true">IOs.var</File>
</Files>
</Program>

View File

@@ -0,0 +1,5 @@
VAR
usInByte : ARRAY[1..32] OF USINT;
usOuByte : ARRAY[1..32] OF USINT;
bOuCuttingGas : BOOL;
END_VAR

View File

@@ -0,0 +1,10 @@
PROGRAM _INIT
//Einzelschuss
TON_Shot.PT := t#20ms;
Status.bLocalCtrl := FALSE;
Status.bShootMode := FALSE;
END_PROGRAM

View File

@@ -0,0 +1,70 @@
TYPE
typ_Status : STRUCT
bLocalCtrl : BOOL; (*Lokale Steuerung - Interface deaktiviet*)
bShootMode : BOOL; (*Einzelschuss f<>r lokale Steuerung*)
END_STRUCT;
typ_In : STRUCT
Status : {REDUND_UNREPLICABLE} typ_In_Status;
uiOutPutPower : UINT; (*Ausgangsleistung [W]*)
usOpticalChannel : USINT; (*Optischer Kanal*)
usProgramNumber : USINT; (*Programmnummer*)
Status2 : typ_In_Status2;
usLaserNr : USINT; (*Lasernummer*)
END_STRUCT;
typ_In_Status : STRUCT
bLaserIsAssigned : BOOL; (*Laser ist zugeordnet / Steuerung <20>ber Feldbus*)
bLaserIsOn : BOOL; (*Laser ist ein - Spannungsversorgung ist ein*)
bSystemError : BOOL; (*Systemfehler*)
bPilotLaserIsOn : BOOL; (*Pilotlaser ist ein*)
bProgramActive : BOOL; (*Programm aktiv*)
bProgramEnd : BOOL; (*Programm Ende*)
bProgramInterupted : BOOL; (*Programm Unterbrochen*)
bAnalogControlIsOn : BOOL; (*Analogsteuerung (Programmnummer 0) ist ein - Obsolete*)
bSystemWarning : BOOL; (*Systemwarnung*)
bLaserIsReady : BOOL; (*Laser ist Bereit f<>r Abstrahlung*)
bEmissionIsOn : BOOL; (*Laserstrahl ist Ein*)
bSyncOutput : BOOL; (*Synchronisationsausgang von Programm*)
bRobotModeActive : BOOL; (*RoboterModus ist aktiv*)
bInterlockActive : BOOL;
bLaserAlive : BOOL; (*Feldbus aktiv*)
bSoftwareCtrlActive : BOOL; (*LaserNet Software aktiv*)
END_STRUCT;
typ_In_Status2 : STRUCT
bLaserError : BOOL; (*St<53>rung Laser*)
bLaserWarning : BOOL; (*Warnung Laser*)
bChillerError : BOOL; (*St<53>rung K<>hler*)
bChillerWarning : BOOL; (*Warnung K<>hler*)
bSafetyOpen : BOOL; (*Sicherheitskreis Offen*)
bChannelError : BOOL; (*Kanalfehler*)
bLaserIsBusy : BOOL; (*Laser von anderem Controller angew<65>hl*)
bSlotError : BOOL; (*Ung<6E>ltige Lasernummer*)
bCabinetDoorOpen : BOOL; (*Schrank offen*)
bReserverdModuleIsActive : BOOL; (*ReserveModul aktiv*)
bReducedActiveModules : BOOL; (*ReserveModule reduziert*)
bHighBackReflection : BOOL; (*R<>ckreflektion zu hoch*)
bModulePowerSupplyWarning : BOOL; (*Power Supply Warnung*)
END_STRUCT;
typ_Out : STRUCT
Control : typ_Out_Ctrl;
uiOutPutPower : UINT; (*Laserleistung [W]*)
usOpticalChannel : USINT; (*Optischer Kanal - immer 1*)
usProgramNumber : USINT; (*Programmnummer 0-50 - Immer 0*)
uiRampingTime : UINT; (*Rampenzeiten [ms]*)
usLaserNr : USINT; (*LaserNummer - Immer 0*)
END_STRUCT;
typ_Out_Ctrl : STRUCT
bRequestLaser : BOOL; (*Laser Anfordern - Immer Ein*)
bLaserOn : BOOL; (*Laser Spannungsversorgung Ein*)
bResetErrors : BOOL; (*St<53>rungen quittieren*)
bPilotLaserOn : BOOL; (*Pilotlaser Einschalten*)
bProgramStart : BOOL; (*Programm starten*)
bProgramStop : BOOL; (*Programm stoppen*)
bAnalogControlOn : BOOL; (*Analogsteuerung einschalten - Obsolete*)
bEnableLaserSoft : BOOL; (*Lasersoft Freigeben*)
bSetRampUp : BOOL; (*Auframpzeit aktivieren - f<>r Prg 0*)
bSetRampDown : BOOL; (*Abrampzeit aktivieren - f<>r Prg 0*)
bSyncInput : BOOL; (*Synchronisationseingang an Programm*)
bExternalError : BOOL; (*Externer Fehler - False*)
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,7 @@
VAR
Status : typ_Status;
LaserOut : typ_Out;
LaserIn : typ_In;
TON_Shot : TON;
TOF_CuttingGas : TOF;
END_VAR

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.7.5.60 SP?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="Program" Language="IEC">IPG</Object>
</Objects>
</Package>

View File

@@ -0,0 +1,70 @@
(*//Interface Mobile Panel*)
TYPE
gtyp_MP7150 : STRUCT
Left1 : BOOL; (*Links 1 (von oben) [1]*)
Left2 : BOOL; (*Links 2 (von oben) [2]*)
Left3 : BOOL; (*Links 3 (von oben) [3]*)
Left4 : BOOL; (*Links 4 (von oben) [4]*)
Right1 : BOOL; (*Rechts 1 (von oben) [5]*)
Right2 : BOOL; (*Rechts 2 (von oben) [6]*)
Right3 : BOOL; (*Rechts 3 (von oben) [7]*)
Right4 : BOOL; (*Rechts 4 (von oben) [8]*)
ESC : BOOL; (*Escape Unten 1 (von links) [9]*)
Second : BOOL; (*2te Ebene Unten 2 (von links) [10]*)
VInc : BOOL; (*V+ Unten 3 (von links) [11]*)
VDec : BOOL; (*V- Unten 4 (von links) [12]*)
Vars : BOOL; (*X= VariablenMonitor Unten 5 (von links) [13]*)
Positions : BOOL; (*Positionsmaske Unten 6 (von links) [14]*)
Projekt : BOOL; (*Projektmaske Unten 7 (von links) [15]*)
Service : BOOL; (*Serviceseite Unten 8 (von links) [0]*)
Mask1 : BOOL; (*Applikationsmaske1 Unten 9 (von links) [16]*)
Start : BOOL; (*Start Unten 10 (von links) [17]*)
Stop : BOOL; (*Stop Unten 11 (von links) [18]*)
Alarms : BOOL; (*Alarmmaske Unten 12 (von links) [19]*)
Settings : BOOL; (*Einstellungen Unten 13 (von links) [20]*)
Ctrl : BOOL; (*Steuertaste links Oben [21]*)
KeyRight : BOOL; (*Schl<68>sselschalter Rechts [120]*)
KeyLeft : BOOL; (*Schl<68>sselschalter Rechts [122]*)
END_STRUCT;
gtyp_MP7121 : STRUCT
VInc : BOOL; (*V+ [33]*)
VDec : BOOL; (*V- [25]*)
Start : BOOL; (*Start [17]*)
Stop : BOOL; (*Stop [9]*)
Home : BOOL; (*Applikationsmaske1 [34]*)
Alarms : BOOL; (*Alarmmaske [26]*)
XDec : BOOL; (*X- [18]*)
XInc : BOOL; (*X+ [10]*)
Settings : BOOL; (*Einstellungen (Gabelschl<68>ssel) [35]*)
Positions : BOOL; (*Positionsmaske [27]*)
YDec : BOOL; (*Y- [19]*)
YInc : BOOL; (*Y+ [11]*)
Service : BOOL; (*Servicesetie [0]*)
Up : BOOL; (*Auf [28]*)
ZDec : BOOL; (*Z- [20]*)
ZInc : BOOL; (*Z+ [12]*)
Left : BOOL; (*Links [36]*)
Down : BOOL; (*Ab [29]*)
Right : BOOL; (*Rechts [21]*)
Ctrl : BOOL; (*Steuertaste Hase [13]*)
Button : BOOL; (*Leuchttaster [112]*)
KeyRight : BOOL; (*Schl<68>sselschalter Rechts [115]*)
KeyLeft : BOOL; (*Schl<68>sselschalter Links [114]*)
udWheelPos : UDINT; (*Handrad*)
LED_Process : gen_LEDState;
LED_Motion : gen_LEDState;
LED_Error : gen_LEDState;
LED_Run : gen_LEDState;
LED_Button : gen_LEDState;
END_STRUCT;
gen_LEDState :
(
enLED_OFF := 0,
enLED_ON := 1,
enLED_FLASH_SLOW := 2,
enLED_FLASH_FAST := 3
);
END_TYPE
(**)

View File

@@ -0,0 +1,4 @@
VAR
gMP7150 : gtyp_MP7150; (*Tasten / LEDs MP 7150*)
gMP7121 : gtyp_MP7121; (*Tasten / LEDs MP 7150*)
END_VAR

View File

@@ -0,0 +1,124 @@
PROGRAM _CYCLIC
IF Status.bConnect THEN
Status.uiRfbExtConnect := RfbExtConnect (ADR (RFBLib), ADR (Parameter.strVisuName));
IF (Status.uiRfbExtConnect = 0) THEN
Status.bConnect := FALSE;
END_IF
END_IF
Status.uiRfbDataAge := RfbExtDataAge (RFBLib, ADR (Status.udDataAge));
IF (Status.udDataAge < Parameter.udTimeout) THEN
//Daten g<EFBFBD>ltig ansonsten keine Verbindung zum VNC Server
Status.uiRfbKeyState := RfbExtKeyState(RFBLib, 1, ADR (usKeystate));
Status.uiRfbTemp := RfbExtTemperatureValue (RFBLib, 1, ADR (diTemperature));
CASE Parameter.enPanelType OF
enMP7121:
RfbExtKeyState(RFBLib, 112, ADR (Status.usKeyState));
gMP7121.Button := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 114, ADR (Status.usKeyState));
gMP7121.KeyLeft := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 115, ADR (Status.usKeyState));
gMP7121.KeyRight := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 33, ADR (Status.usKeyState));
gMP7121.VInc := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 25, ADR (Status.usKeyState));
gMP7121.VDec := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 17, ADR (Status.usKeyState));
gMP7121.Start := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 9, ADR (Status.usKeyState));
gMP7121.Stop := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 34, ADR (Status.usKeyState));
gMP7121.Home := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 26, ADR (Status.usKeyState));
gMP7121.Alarms := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 18, ADR (Status.usKeyState));
gMP7121.XDec := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 10, ADR (Status.usKeyState));
gMP7121.XInc := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 35, ADR (Status.usKeyState));
gMP7121.Settings := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 27, ADR (Status.usKeyState));
gMP7121.Positions := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 19, ADR (Status.usKeyState));
gMP7121.YDec := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 11, ADR (Status.usKeyState));
gMP7121.YInc := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 0, ADR (Status.usKeyState));
gMP7121.Service := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 28, ADR (Status.usKeyState));
gMP7121.Up := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 20, ADR (Status.usKeyState));
gMP7121.ZDec := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 12, ADR (Status.usKeyState));
gMP7121.ZInc := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 36, ADR (Status.usKeyState));
gMP7121.Left := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 29, ADR (Status.usKeyState));
gMP7121.Down := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 21, ADR (Status.usKeyState));
gMP7121.Right := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 13, ADR (Status.usKeyState));
gMP7121.Ctrl := USINT_TO_BOOL (Status.usKeyState);
RfbExtHandwheelValue (RFBLib, 0, ADR (gMP7121.udWheelPos));
enMP7150:
RfbExtKeyState(RFBLib, 0, ADR (Status.usKeyState));
gMP7150.Service := USINT_TO_BOOL (Status.usKeyState);
Status.uiRfbKeyState := RfbExtKeyState(RFBLib, 1, ADR (Status.usKeyState));
gMP7150.Left1 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 2, ADR (Status.usKeyState));
gMP7150.Left2 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 3, ADR (Status.usKeyState));
gMP7150.Left2 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 4, ADR (Status.usKeyState));
gMP7150.Left2 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 5, ADR (Status.usKeyState));
gMP7150.Right1 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 6, ADR (Status.usKeyState));
gMP7150.Right2 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 7, ADR (Status.usKeyState));
gMP7150.Right3 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 8, ADR (Status.usKeyState));
gMP7150.Right4 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 9, ADR (Status.usKeyState));
gMP7150.ESC := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 10, ADR (Status.usKeyState));
gMP7150.Second := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 11, ADR (Status.usKeyState));
gMP7150.VInc := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 12, ADR (Status.usKeyState));
gMP7150.VDec := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 13, ADR (Status.usKeyState));
gMP7150.Vars := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 14, ADR (Status.usKeyState));
gMP7150.Positions := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 15, ADR (Status.usKeyState));
gMP7150.Projekt := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 16, ADR (Status.usKeyState));
gMP7150.Mask1 := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 17, ADR (Status.usKeyState));
gMP7150.Start := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 18, ADR (Status.usKeyState));
gMP7150.Stop := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 19, ADR (Status.usKeyState));
gMP7150.Alarms := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 20, ADR (Status.usKeyState));
gMP7150.Settings := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 21, ADR (Status.usKeyState));
gMP7150.Ctrl := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 120, ADR (Status.usKeyState));
gMP7150.KeyRight := USINT_TO_BOOL (Status.usKeyState);
RfbExtKeyState(RFBLib, 121, ADR (Status.usKeyState));
gMP7150.KeyLeft := USINT_TO_BOOL (Status.usKeyState);
END_CASE
END_IF
usLEDMatrix[37] := UDINT_TO_USINT (gMP7121.LED_Run);
usLEDMatrix[38] := UDINT_TO_USINT (gMP7121.LED_Motion);
usLEDMatrix[39] := UDINT_TO_USINT (gMP7121.LED_Error);
usLEDMatrix[40] := UDINT_TO_USINT (gMP7121.LED_Process);
//FixMe
usLEDMatrix[127] := UDINT_TO_USINT (gMP7121.LED_Run);
END_PROGRAM

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.7.5.60 SP?>
<Program SubType="IEC" 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="Local data types" Private="true">Types.typ</File>
<File Description="Local variables" Private="true">Variables.var</File>
</Files>
</Program>

View File

@@ -0,0 +1,10 @@
PROGRAM _INIT
Parameter.udTimeout := 250; //Max Alter von Daten
Parameter.strVisuName := 'VisuMP';
Parameter.enPanelType := enMP7121;
Status.bConnect := TRUE; //Verbindungsaufbau erzwingen
RfbExtInit (ADR (RFBLib), Parameter.udTimeout);
END_PROGRAM

View File

@@ -0,0 +1,23 @@
TYPE
typ_Parameter : STRUCT
udTimeout : UDINT;
strVisuName : STRING[80];
enPanelType : typ_enPanels;
END_STRUCT;
typ_Status : STRUCT
bConnect : BOOL;
usKeyState : USINT;
uiRfbTemp : UINT;
uiRfbExtConnect : UINT;
uiRfbKeyState : UINT;
uiRfbDataAge : UINT;
udDataAge : UDINT;
END_STRUCT;
typ_enPanels :
(
enMP7140,
enMP7150,
enMP7121
);
END_TYPE

View File

@@ -0,0 +1,9 @@
(*//Strukturen*)
VAR
usKeystate : USINT;
diTemperature : DINT;
RFBLib : AsRfbExt_typ; (*RFBLib*)
Parameter : typ_Parameter;
Status : typ_Status;
usLEDMatrix : ARRAY[0..127] OF USINT; (*LEDS*)
END_VAR

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.7.5.60 SP?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="File" Description="Communication Types">GlobalMP.typ</Object>
<Object Type="File" Description="Logging Vars">GlobalMP.var</Object>
<Object Type="Program" Language="IEC" Description="Verbindung zu MobilePanel">MPComm</Object>
<Object Type="Library" Language="Binary" Description="The AsRfbExt library provides access to extended MP40/50 functions.">asrfbext</Object>
</Objects>
</Package>

View File

@@ -0,0 +1,158 @@
(********************************************************************
* COPYRIGHT (C) BERNECKER + RAINER, AUSTRIA, A-5142 EGGELSBERG
********************************************************************
* Library: ASRFBEXT
* File: ASRFBEXT.fun
* Created: 10.04.2008
********************************************************************
* Functions and function blocks of library ASRFBEXT
********************************************************************)
FUNCTION RfbExtInit : UINT (*init the library*)
VAR_INPUT
pLib : UDINT; (*instance of the library*)
uiTimeOut : UDINT; (*maximum age in ms of the data from the client for which a valid value can be read.*)
END_VAR
END_FUNCTION
FUNCTION RfbExtConnect : UINT (*connect to client*)
VAR_INPUT
pLib : UDINT; (*instance of the library*)
pName : UDINT; (*pointer to STRING containing the name of the visualization*)
END_VAR
END_FUNCTION
FUNCTION RfbExtSetClientCaption : UINT (*set client caption*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
pClientCaption : UDINT; (*pointer to STRING containing the new title*)
END_VAR
END_FUNCTION
FUNCTION RfbExtSetPassword : UINT (*set vnc password*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
mode : USINT; (*defines which password to set. 0 = view only, 1 = view and control*)
pPassword : UDINT; (*pointer to STRING which contains the new password*)
END_VAR
END_FUNCTION
FUNCTION RfbExtKeyState : UINT (*get the state of a key*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
index : USINT; (*index of the key*)
pValue : UDINT; (*pointer to USINT variable containing the value of the key*)
END_VAR
END_FUNCTION
FUNCTION RfbExtReconnect : UINT (*terminate current connection and let client connect to new ip address*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
pTargetIp : UDINT; (*pointer to STRING containing the ip-address of the target*)
END_VAR
END_FUNCTION
FUNCTION RfbExtStartProcess : UINT (*start a process on the client side*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
pcmdLine : UDINT; (*pointer to STRING containing the name of the command line*)
END_VAR
END_FUNCTION
FUNCTION RfbExtProcessState : UINT (*get the state of a process running on the client side*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
piProcessState : UDINT; (*pointer to DINT variable containing the state of process*)
END_VAR
END_FUNCTION
FUNCTION RfbExtNrClientsConnected : UINT (*get the number of clients connected*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
END_VAR
END_FUNCTION
FUNCTION RfbExtServerTimeout : UINT (*set the server timeout*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
timeout : UDINT; (*timeout in ms*)
END_VAR
END_FUNCTION
FUNCTION RfbExtDisableClientLogin : UINT (*disable all clients from login*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
END_VAR
END_FUNCTION
FUNCTION RfbExtDisconnectAllClients : UINT (*disconnect all clients*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
END_VAR
END_FUNCTION
FUNCTION RfbExtEnableClientLogin : UINT (*enable client login*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
END_VAR
END_FUNCTION
FUNCTION RfbExtSetMaxClients : UINT (*set the max number of clients allowed*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
maxClients : USINT; (*maximum number of clients to be allowed (max = 10)*)
END_VAR
END_FUNCTION
FUNCTION RfbExtDataAge : UINT (*get the age of the client data*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
pAge : UDINT; (*age of last refresh of client window*)
END_VAR
END_FUNCTION
FUNCTION RfbExtJoystickValue : UINT (*get joystick value*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
index : USINT; (*index of the joystick (0 = first joystick)*)
pValueX : UDINT; (*pointer to DINT variable containing the x value*)
pValueY : UDINT; (*pointer to DINT variable containing the y value*)
pValueZ : UDINT; (*pointer to DINT variable containing the z value*)
END_VAR
END_FUNCTION
FUNCTION RfbExtResetHandwheelValue : UINT (*reset handwheel value*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
index : USINT; (*index of the handwheel (0 = first handwheel)*)
value : DINT; (*new value for the handwheel*)
END_VAR
END_FUNCTION
FUNCTION RfbExtHandwheelValue : UINT (*get the handwheel value*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
index : USINT; (*index of the handwheel (0 = first handwheel)*)
pValue : UDINT; (*pointer to UDINT variable containing the value of the handwheel*)
END_VAR
END_FUNCTION
FUNCTION RfbExtPotiValue : UINT (*get the value of the potentiometer*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
index : USINT; (*index of the potentiometer (0 = first potentiometer)*)
pValue : UDINT; (*pointer to UDINT variable containing the value of the potentiometer*)
END_VAR
END_FUNCTION
FUNCTION RfbExtTemperatureValue : UINT (*get the temperature value*)
VAR_INPUT
pLib : AsRfbExt_typ; (*pointer to the instance of the library*)
index : USINT; (*index of the temperature (0 = first temperature)*)
pValue : UDINT; (*pointer to DINT variable containing the temperature value*)
END_VAR
END_FUNCTION

View File

@@ -0,0 +1,26 @@
(********************************************************************
* COPYRIGHT (C) BERNECKER + RAINER, AUSTRIA, A-5142 EGGELSBERG
********************************************************************
* Library: AsRfbExt
* File: AsRfbExt.typ
* Created: 10.04.2008
********************************************************************
* Global data types of library AsRfbExt
********************************************************************)
TYPE
AsRfbExtType : STRUCT
pClient : UDINT;
pHeader : UDINT;
uiTimeOut : UDINT;
uiTimeOutValue : UDINT;
status : UINT;
END_STRUCT;
AsRfbExt_typ : STRUCT
pClient : UDINT;
pHeader : UDINT;
uiTimeOut : UDINT;
uiTimeOutValue : UDINT;
status : UINT;
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.3.6.57 SP?>
<Library Version="4.33.0" Description="The AsRfbExt library provides access to extended MP40/50 functions." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsRfbExt.fun</File>
<File>AsRfbExt.typ</File>
</Files>
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>

View File

@@ -0,0 +1,5 @@
Just for internal use. Do not modify or delete this file!!
This file indicates that the default library structure for Ar dependent libraries will be irgnored and the libary is treated as versioned library.
Therefore if a library folder contains this file but no library versions the library isn't valid anymore.

View File

@@ -0,0 +1,6 @@
Just for internal use. Do not modify or delete this file!!
This file indicates that the default library structure for versioned libraries will be ignored and the libary is treated as Ar or Vc dependent library.
Only counts for AS 3.00.80.xx or higher versions.
Therefore if a library folder contains this file but no library declaration files the library isn't valid anymore.

View File

@@ -0,0 +1,66 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASRFBEXT_
#define _ASRFBEXT_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#ifndef _IEC_CONST
#define _IEC_CONST _WEAK const
#endif
/* Datatypes and datatypes of function blocks */
typedef struct AsRfbExtType
{ unsigned long pClient;
unsigned long pHeader;
unsigned long uiTimeOut;
unsigned long uiTimeOutValue;
unsigned short status;
} AsRfbExtType;
typedef struct AsRfbExt_typ
{ unsigned long pClient;
unsigned long pHeader;
unsigned long uiTimeOut;
unsigned long uiTimeOutValue;
unsigned short status;
} AsRfbExt_typ;
/* Prototyping of functions and function blocks */
unsigned short RfbExtInit(unsigned long pLib, unsigned long uiTimeOut);
unsigned short RfbExtConnect(unsigned long pLib, unsigned long pName);
unsigned short RfbExtSetClientCaption(struct AsRfbExt_typ* pLib, unsigned long pClientCaption);
unsigned short RfbExtSetPassword(struct AsRfbExt_typ* pLib, unsigned char mode, unsigned long pPassword);
unsigned short RfbExtKeyState(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
unsigned short RfbExtReconnect(struct AsRfbExt_typ* pLib, unsigned long pTargetIp);
unsigned short RfbExtStartProcess(struct AsRfbExt_typ* pLib, unsigned long pcmdLine);
unsigned short RfbExtProcessState(struct AsRfbExt_typ* pLib, unsigned long piProcessState);
unsigned short RfbExtNrClientsConnected(struct AsRfbExt_typ* pLib);
unsigned short RfbExtServerTimeout(struct AsRfbExt_typ* pLib, unsigned long timeout);
unsigned short RfbExtDisableClientLogin(struct AsRfbExt_typ* pLib);
unsigned short RfbExtDisconnectAllClients(struct AsRfbExt_typ* pLib);
unsigned short RfbExtEnableClientLogin(struct AsRfbExt_typ* pLib);
unsigned short RfbExtSetMaxClients(struct AsRfbExt_typ* pLib, unsigned char maxClients);
unsigned short RfbExtDataAge(struct AsRfbExt_typ* pLib, unsigned long pAge);
unsigned short RfbExtJoystickValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValueX, unsigned long pValueY, unsigned long pValueZ);
unsigned short RfbExtResetHandwheelValue(struct AsRfbExt_typ* pLib, unsigned char index, signed long value);
unsigned short RfbExtHandwheelValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
unsigned short RfbExtPotiValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
__asm__(".section \".plc\"");
__asm__(".previous");
#ifdef __cplusplus
};
#endif
#endif /* _ASRFBEXT_ */

View File

@@ -0,0 +1,62 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASRFBEXT_
#define _ASRFBEXT_
#ifndef _BUR_PUBLIC
#define _BUR_PUBLIC
#endif
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
/* Datatypes and datatypes of function blocks */
typedef struct AsRfbExtType
{ unsigned long pClient;
unsigned long pHeader;
unsigned long uiTimeOut;
unsigned long uiTimeOutValue;
unsigned short status;
} AsRfbExtType;
typedef struct AsRfbExt_typ
{ unsigned long pClient;
unsigned long pHeader;
unsigned long uiTimeOut;
unsigned long uiTimeOutValue;
unsigned short status;
} AsRfbExt_typ;
/* Prototyping of functions and function blocks */
_BUR_PUBLIC unsigned short RfbExtInit(unsigned long pLib, unsigned long uiTimeOut);
_BUR_PUBLIC unsigned short RfbExtConnect(unsigned long pLib, unsigned long pName);
_BUR_PUBLIC unsigned short RfbExtSetClientCaption(struct AsRfbExt_typ* pLib, unsigned long pClientCaption);
_BUR_PUBLIC unsigned short RfbExtSetPassword(struct AsRfbExt_typ* pLib, unsigned char mode, unsigned long pPassword);
_BUR_PUBLIC unsigned short RfbExtKeyState(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
_BUR_PUBLIC unsigned short RfbExtReconnect(struct AsRfbExt_typ* pLib, unsigned long pTargetIp);
_BUR_PUBLIC unsigned short RfbExtStartProcess(struct AsRfbExt_typ* pLib, unsigned long pcmdLine);
_BUR_PUBLIC unsigned short RfbExtProcessState(struct AsRfbExt_typ* pLib, unsigned long piProcessState);
_BUR_PUBLIC unsigned short RfbExtNrClientsConnected(struct AsRfbExt_typ* pLib);
_BUR_PUBLIC unsigned short RfbExtServerTimeout(struct AsRfbExt_typ* pLib, unsigned long timeout);
_BUR_PUBLIC unsigned short RfbExtDisableClientLogin(struct AsRfbExt_typ* pLib);
_BUR_PUBLIC unsigned short RfbExtDisconnectAllClients(struct AsRfbExt_typ* pLib);
_BUR_PUBLIC unsigned short RfbExtEnableClientLogin(struct AsRfbExt_typ* pLib);
_BUR_PUBLIC unsigned short RfbExtSetMaxClients(struct AsRfbExt_typ* pLib, unsigned char maxClients);
_BUR_PUBLIC unsigned short RfbExtDataAge(struct AsRfbExt_typ* pLib, unsigned long pAge);
_BUR_PUBLIC unsigned short RfbExtJoystickValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValueX, unsigned long pValueY, unsigned long pValueZ);
_BUR_PUBLIC unsigned short RfbExtResetHandwheelValue(struct AsRfbExt_typ* pLib, unsigned char index, signed long value);
_BUR_PUBLIC unsigned short RfbExtHandwheelValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
_BUR_PUBLIC unsigned short RfbExtPotiValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
_BUR_PUBLIC unsigned short RfbExtTemperatureValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
#ifdef __cplusplus
};
#endif
#endif /* _ASRFBEXT_ */

View File

@@ -0,0 +1,66 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASRFBEXT_
#define _ASRFBEXT_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#ifndef _IEC_CONST
#define _IEC_CONST _WEAK const
#endif
/* Datatypes and datatypes of function blocks */
typedef struct AsRfbExtType
{ unsigned long pClient;
unsigned long pHeader;
unsigned long uiTimeOut;
unsigned long uiTimeOutValue;
unsigned short status;
} AsRfbExtType;
typedef struct AsRfbExt_typ
{ unsigned long pClient;
unsigned long pHeader;
unsigned long uiTimeOut;
unsigned long uiTimeOutValue;
unsigned short status;
} AsRfbExt_typ;
/* Prototyping of functions and function blocks */
unsigned short RfbExtInit(unsigned long pLib, unsigned long uiTimeOut);
unsigned short RfbExtConnect(unsigned long pLib, unsigned long pName);
unsigned short RfbExtSetClientCaption(struct AsRfbExt_typ* pLib, unsigned long pClientCaption);
unsigned short RfbExtSetPassword(struct AsRfbExt_typ* pLib, unsigned char mode, unsigned long pPassword);
unsigned short RfbExtKeyState(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
unsigned short RfbExtReconnect(struct AsRfbExt_typ* pLib, unsigned long pTargetIp);
unsigned short RfbExtStartProcess(struct AsRfbExt_typ* pLib, unsigned long pcmdLine);
unsigned short RfbExtProcessState(struct AsRfbExt_typ* pLib, unsigned long piProcessState);
unsigned short RfbExtNrClientsConnected(struct AsRfbExt_typ* pLib);
unsigned short RfbExtServerTimeout(struct AsRfbExt_typ* pLib, unsigned long timeout);
unsigned short RfbExtDisableClientLogin(struct AsRfbExt_typ* pLib);
unsigned short RfbExtDisconnectAllClients(struct AsRfbExt_typ* pLib);
unsigned short RfbExtEnableClientLogin(struct AsRfbExt_typ* pLib);
unsigned short RfbExtSetMaxClients(struct AsRfbExt_typ* pLib, unsigned char maxClients);
unsigned short RfbExtDataAge(struct AsRfbExt_typ* pLib, unsigned long pAge);
unsigned short RfbExtJoystickValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValueX, unsigned long pValueY, unsigned long pValueZ);
unsigned short RfbExtResetHandwheelValue(struct AsRfbExt_typ* pLib, unsigned char index, signed long value);
unsigned short RfbExtHandwheelValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
unsigned short RfbExtPotiValue(struct AsRfbExt_typ* pLib, unsigned char index, unsigned long pValue);
__asm__(".section \".plc\"");
__asm__(".previous");
#ifdef __cplusplus
};
#endif
#endif /* _ASRFBEXT_ */

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio FileVersion="4.9"?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="File" Description="Communication Types">GlobalCom.typ</Object>
<Object Type="File" Description="Logging Vars">GlobalCom.var</Object>
<Object Type="Program" Language="IEC" Description="13 Mhz Transponder B&amp;R + Scanner HR 100">RFID_USB</Object>
<Object Type="Package" Description="Mobile Panel">MP</Object>
<Object Type="Package" Description="IPG Laser">IPG</Object>
<Object Type="Package" Description="Schneidkopf">RayTools</Object>
</Objects>
</Package>

View File

@@ -0,0 +1,52 @@
FUNCTION ASCtoUDINT
ASCtoUDINT := 0;
udNextAdr := udInNextAdr;
IF bInReverse THEN
sStart := 7;
sEnd := 0;
sStep := -1;
ELSE
sStart := 0;
sEnd := 7;
sStep := 1;
END_IF
FOR usi := sStart TO sEnd BY sStep DO
brsmemcpy (ADR (usChar), udNextAdr + usi, 1);
CASE usChar OF
48:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 0;
49:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 1;
50:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 2;
51:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 3;
52:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 4;
53:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 5;
54:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 6;
55:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 7;
56:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 8;
57:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 9;
65:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 10;
66:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 11;
67:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 12;
68:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 13;
69:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 14;
70:
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 15;
ELSE
ASCtoUDINT := SHL (ASCtoUDINT, 4) + 16#f;
END_CASE
END_FOR
END_FUNCTION

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View 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

View 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

View File

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

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.7.5.60 SP?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="Program" Language="IEC">Raytools</Object>
</Objects>
</Package>

View File

@@ -0,0 +1,31 @@
PROGRAM _CYCLIC
//Interface von Raytools Kopf
gRTLaserInterface.In.bHeadIsOk := NOT bInAlarm AND bInCalibrated AND bInReady;
gRTLaserInterface.In.bHeadIsMidPos := bInMidPosArrived;
gRTLaserInterface.In.bHeadIsInFollowpos := bInFollowPosition;
//Interface an Raytools Kopf
bOuFollowPos := gRTLaserInterface.Out.bFollowPos AND NOT TOF_Error.Q AND bInReady;
bOuMidpos := gRTLaserInterface.Out.bMidPos AND NOT bInMidPosArrived AND NOT TOF_FollowPos.Q AND NOT TOF_Error.Q
AND NOT TON_MidPosTimeout.Q AND NOT TOF_MidPosTimeouterror.Q AND bInReady;
bOuReset := gMP7121.Button;
TOF_FollowPos.IN := bOuFollowPos;
TOF_FollowPos.PT := t#20ms;
TOF_FollowPos ();
TOF_Error.IN := bInAlarm;
TOF_Error.PT := t#20ms;
TOF_Error ();
TON_MidPosTimeout.IN := bOuMidpos;
TON_MidPosTimeout.PT := t#1s;
TON_MidPosTimeout ();
TOF_MidPosTimeouterror.IN := TON_MidPosTimeout.Q;
TOF_MidPosTimeouterror.PT := t#20ms;
TOF_MidPosTimeouterror ();
END_PROGRAM

View File

@@ -0,0 +1,6 @@
PROGRAM _EXIT
(* Insert code here *)
END_PROGRAM

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.7.5.60 SP?>
<Program SubType="IEC" 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>
<File Description="IOs" Private="true">IOs.var</File>
</Files>
</Program>

View File

@@ -0,0 +1,21 @@
(*//Inputs*)
VAR
bInAlarm : BOOL;
bInFollowPosition : BOOL;
bInMidPosArrived : BOOL;
bInInHome : BOOL;
bInCalibrated : BOOL;
bInReady : BOOL;
bInPosLimits : BOOL;
END_VAR
(*//Outputs*)
VAR
bOuCalibrate : BOOL;
bOuFollowPos : BOOL;
bOuHome : BOOL;
bOuClearToCapacitance : BOOL;
bOuReset : BOOL;
bOuMidpos : BOOL;
bOuCornerComp1 : BOOL;
bOuCornerComp2 : BOOL;
END_VAR

View File

@@ -0,0 +1,6 @@
PROGRAM _INIT
(* Insert code here *)
END_PROGRAM

View File

@@ -0,0 +1,6 @@
VAR
TOF_FollowPos : TOF;
TOF_Error : TOF;
TOF_MidPosTimeouterror : TOF;
TON_MidPosTimeout : TON;
END_VAR

View 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

View File

@@ -0,0 +1,6 @@
PROGRAM _EXIT
(* Insert code here *)
END_PROGRAM

View File

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

View File

@@ -0,0 +1,7 @@
PROGRAM _INIT
Parameter.usEditLines := 12;
Parameter.usPageLines:= 5;
bReadDir := TRUE;
END_PROGRAM

View 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

View 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

View File

@@ -0,0 +1,4 @@
PROGRAM _CYCLIC
(* Insert code here *)
END_PROGRAM

View File

@@ -0,0 +1,6 @@
PROGRAM _EXIT
(* Insert code here *)
END_PROGRAM

View File

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

View File

@@ -0,0 +1,9 @@
PROGRAM _INIT
MpFUBs.MpFileManagerConfig.MpLink := ADR (gFileManagerUI);
MpFUBs.MpFileManagerUI.MpLink := ADR (gFileManagerUI);
END_PROGRAM

View File

@@ -0,0 +1,8 @@
(*//FunctionBlocks / Daten*)
TYPE
typ_MpFUB : STRUCT (*Funktionsbausteine*)
MpFileManagerUI : MpFileManagerUI;
MpFileManagerConfig : MpFileManagerConfig;
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,4 @@
(*//Funktionsbl<62>cke*)
VAR
MpFUBs : typ_MpFUB;
END_VAR

View File

@@ -0,0 +1,3 @@
VAR
gstrFilenames : ARRAY[0..100] OF STRING[25];
END_VAR

10
Logical/File/Package.pkg Normal file
View File

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

View File

@@ -0,0 +1,3 @@
VAR
VisuPageCtrl_File : gtyp_VisuCtrlPage; (*Seiteninterface allgemein*)
END_VAR

View 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

View File

@@ -0,0 +1,128 @@
(*================================================================================================================*)
(*CPU (PWLnk Node 240)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
udSerialNr : UDINT; (*Seriennummer*)
guiTemperatureCPU : UINT; (*CPU Temperatur*)
guiTemperatureENV : UINT; (*Umgebungstemperatur*)
gdiSystemTime : DINT;
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST20 - X67DI1371*)
(*----------------------------------------------------------------------------------------------------------------*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST1 - SL8100*)
(*----------------------------------------------------------------------------------------------------------------*)
(*----------------------------------------------------------------------------------------------------------------*)
(*Signals to Safe PLC*)
(*----------------------------------------------------------------------------------------------------------------*)
(*BOOL 101 bis 105*)
VAR
gbSPLCMachineOn : BOOL;
gbSPLCJogMode : BOOL; (*Handbetrieb*)
END_VAR
(*BOOL 106 bis 110*)
VAR
gbSPLCResetEStop : BOOL;
gbSPLCResetDoors : BOOL;
END_VAR
(*BOOL 111 bis 115*)
VAR
gbSPLCResetSafeMCError : BOOL;
END_VAR
(*2 R<>cklesesignale direkt von Eingang gemappt*)
(*----------------------------------------------------------------------------------------------------------------*)
(*Signals from Safe PLC*)
(*----------------------------------------------------------------------------------------------------------------*)
(*BOOL 001 bis 005*)
VAR
gbSPLCInEstopOk : BOOL; (*Safety PLC E-Stop ist Ok*)
gbSPLCInSafetyCNCOk : BOOL; (*Safety PLC Sicherheit f<>r CNC Achsen Ok*)
gbSPLCInSafetyShuttle1Ok : BOOL; (*Safety PLC Sicherheit f<>r Shuttle 1 Ok*)
gbSPLCInSafetyShuttle2Ok : BOOL; (*Safety PLC Sicherheit f<>r Shuttle 2 Ok*)
gbSPLCInMaintDoorOk : {REDUND_UNREPLICABLE} BOOL := FALSE; (*Safety PLC Wartungst<73>r ist Geschlossen und Quittiert*)
END_VAR
(*BOOL 006 bis 010*)
(*BOOL 011 bis 018*)
(*//Fehler Safe MC*)
(*UINT 001 bis 010*)
(*UINT 011 bis 020*)
(*//Diagnose Code Safe MC*)
(*UDINT 001 bis 010*)
(*//Status Code Safe MC*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST3 - SI4100*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSInStopButtonPanel : BOOL; (*Sicherer Eingang 01/02 Equivalent - Stopp Taster Bedienpanel*)
gbSInAckKeyPanel : BOOL; (*Sicherer Eingang 02/03 Equivalent - Zustimmtaster Panel*)
gudST3FBK_Status : UDINT;
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST4 - SI9100*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSInStopButtonLaser : BOOL; (*Sicherer Eingang 01/02 Equivalent - Not-Halt von Lasersteuerung*)
END_VAR
(*Insert your comment here.*)
VAR
gbSInMaintDoorLeftOk : BOOL; (*Sicherer Eingang 05/06 Equivalent - Wartungst<73>r Fl<46>gel Links*)
gbSInMaintDoorRightOk : BOOL; (*Sicherer Eingang 07/08 Equivalent - Wartungst<73>r Fl<46>gel Rechts*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST5 - SO6300 (56K1)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSOuOpenBreakZ : BOOL; (*Freigabe Z-Achse Zusatzbremse*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST6 - SO6530 (56K3)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSOuP3 : BOOL; (*Potential P3 Nach Nothalt*)
gbSOuP4 : BOOL; (*Potential P4 Sicherheit f. Tore / Zelle komplett*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST6 - SO6530 (56K3)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSOuEStopLaser : {REDUND_UNREPLICABLE} BOOL := FALSE; (*Nothalt an Laser DO 1/2*)
gbSOuEnableLaser : BOOL; (*Freigabe Laser DO 5/6*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST7 - DI9371 (60K1)*)
(*----------------------------------------------------------------------------------------------------------------*)
(*//DI 4 R<>ckmeldung K<>hlung*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST8 - DI9371 (60K2)*)
(*----------------------------------------------------------------------------------------------------------------*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST9 - DI9371 (60K3)*)
(*----------------------------------------------------------------------------------------------------------------*)
(*1/2 Anmelde Quittiertaster f. Wartungst<73>r in machine.st*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST10 - DO9322 (62K1)*)
(*----------------------------------------------------------------------------------------------------------------*)
(*1/2 Wartungstuer verriegeln in machine.st*)
(*5/6 Ventile Kuehlung - in AcpTemnperat.st*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST11 - DO9322 (62K2)*)
(*----------------------------------------------------------------------------------------------------------------*)
(*1/2 LEds Wartungst<73>r*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST12 - PS2100 (64K0) //IOs- Laserkopf*)
(*----------------------------------------------------------------------------------------------------------------*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST13 - DI9371 (64K1)*)
(*----------------------------------------------------------------------------------------------------------------*)
(*alles in Raytools*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST14 - DO9322 (64K3)*)
(*----------------------------------------------------------------------------------------------------------------*)
(*alles in Raytools*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST15 - PS2100 (65K0) //Geschaltende Ausg<73>nge f<>r Tore und Gas*)
(*----------------------------------------------------------------------------------------------------------------*)
(*----------------------------------------------------------------------------------------------------------------*)
(*IF1.ST10.IF1.ST16 - DO9322 (65K1)*)
(*----------------------------------------------------------------------------------------------------------------*)

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.2.3.159?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="File">Global.typ</Object>
<Object Type="File" Description="Global variables / IOs">Global.var</Object>
</Objects>
</Package>

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@@ -0,0 +1 @@

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,5 @@
VAR CONSTANT
brwUCtoU8 : USINT := 1; (*instructs the wcsconv function to convert a WC character string into an ANSI string*)
brwU8toUC : USINT := 0; (*instructs the wcsconv function to convert an ANSI character string into a WC string*)
END_VAR

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