Initial Commit- Working Project
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<ProjectSettings xmlns="http://br-automation.co.at/AS/ProjectSettings">
|
||||
<Print Header="%lProject: %n%c%x" Footer="%cPage: %p" />
|
||||
<ConfigurationManager ActiveConfigurationName="Config1" />
|
||||
</ProjectSettings>
|
||||
@@ -0,0 +1,8 @@
|
||||
|
||||
TYPE
|
||||
typAlarm : STRUCT
|
||||
Alarm : ARRAY[0..127]OF BOOL;
|
||||
Ack : ARRAY[0..127]OF BOOL;
|
||||
Bypass : ARRAY[0..127]OF BOOL;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
@@ -0,0 +1,23 @@
|
||||
VAR
|
||||
bBlink0_1 : BOOL;
|
||||
bBlink0_5 : BOOL;
|
||||
bBlink1_0 : BOOL;
|
||||
bBlink2_0 : BOOL;
|
||||
bBlink5_0 : BOOL;
|
||||
gdtActTime : DATE_AND_TIME; (*Current Date and Time*)
|
||||
gDTSActTimeUTC : DTStructure := (0); (*Current Date and Time as DTS (ms) UTC !!!*)
|
||||
gudUnixTimeUTC : UDINT; (*Current Date and Time as Unixts UTC !!!*)
|
||||
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
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<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="Actual Date_And_Time">get_dt</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Blinker 0,1 -0,5s">blinker</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<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>
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Private="true">get_dt.var</File>
|
||||
<File>get_dtInit.ab</File>
|
||||
<File>get_dtCyclic.ab</File>
|
||||
</Files>
|
||||
</Program>
|
||||
@@ -0,0 +1,13 @@
|
||||
VAR
|
||||
lDTGetTime : DTGetTime;
|
||||
lUtcDTStructureGetTime : UtcDTStructureGetTime;
|
||||
END_VAR
|
||||
(*For unixtimestamp conversion*)
|
||||
VAR CONSTANT
|
||||
uiDaysToMonthStart : ARRAY[0..11] OF UINT := [0,31,59,90,120,151,181,212,243,273,304,334];
|
||||
END_VAR
|
||||
VAR
|
||||
udYears : UDINT;
|
||||
udSwitchYears : UDINT;
|
||||
udUnixTime : UDINT;
|
||||
END_VAR
|
||||
@@ -0,0 +1,28 @@
|
||||
PROGRAM _CYCLIC
|
||||
//Retrieve actual Date and Time in different Formats
|
||||
//as Date and Time
|
||||
lDTGetTime.enable = true
|
||||
lDTGetTime FUB DTGetTime()
|
||||
gdtActTime = lDTGetTime.DT1
|
||||
|
||||
//as Datetime Structure
|
||||
lUtcDTStructureGetTime.enable = TRUE
|
||||
lUtcDTStructureGetTime.pDTStructure = ADR (gDTSActTimeUTC)
|
||||
lUtcDTStructureGetTime FUB UtcDTStructureGetTime ()
|
||||
|
||||
//as Unix Timestamp
|
||||
udYears = gDTSActTimeUTC.year - 1970
|
||||
udSwitchYears = ((gDTSActTimeUTC.year - 1) - 1968) / 4\
|
||||
- ((gDTSActTimeUTC.year - 1) - 1900) / 100\
|
||||
+ ((gDTSActTimeUTC.year - 1) - 1600) / 400
|
||||
|
||||
udUnixTime = gDTSActTimeUTC.second + 60 * gDTSActTimeUTC.minute + 3600 * gDTSActTimeUTC.hour + \
|
||||
(uiDaysToMonthStart[gDTSActTimeUTC.month - 1] + gDTSActTimeUTC.day -1 + udYears * 365 + udSwitchYears) * 86400
|
||||
|
||||
IF (gDTSActTimeUTC.month > 2) AND (gDTSActTimeUTC.year MOD 4 = 0) AND ((gDTSActTimeUTC.year MOD 100 <> 0) OR (gDTSActTimeUTC.year MOD 400 = 0)) THEN
|
||||
udUnixTime = udUnixTime + 86400
|
||||
ENDIF
|
||||
gudUnixTimeUTC = udUnixTime
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
;tSEtSntpClient_0.enalbe = true
|
||||
END_PROGRAM
|
||||
|
||||
@@ -0,0 +1,303 @@
|
||||
|
||||
PROGRAM _INIT
|
||||
//Keep Turntable
|
||||
bDOuTurnTableFw := bDInTurnTableFw;
|
||||
bDOuTurnTableBw := bDInTurnTableBw;
|
||||
bTableUndefinedRestart := NOT bDInTurnTableFw AND NOT bDInTurnTableBw;
|
||||
|
||||
bDOuGateOpen := bDInGateOpen;
|
||||
bDOuGateClose := FALSE;
|
||||
|
||||
bDOuCutterBw := TRUE;
|
||||
bDOuCutterFw := FALSE;
|
||||
|
||||
bDOuCutterClose := FALSE;
|
||||
//FixMe Gegendruck
|
||||
END_PROGRAM
|
||||
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
|
||||
//Eingänge auslesen
|
||||
bDInGateClosed := BIT_TST (uiInputs, 0);
|
||||
bDInPart1Available := BIT_TST (uiInputs, 1);
|
||||
bDInPart2Available := BIT_TST (uiInputs, 2);
|
||||
bDInEStopOK := BIT_TST (uiInputs, 3);
|
||||
bDInCutAreaOK := BIT_TST (uiInputs, 4);
|
||||
|
||||
bCuttersHome := bDInHomeCutter1 AND bDInHomeCutter2 AND bDInHomeCutter3 AND bDInHomeCutter4;
|
||||
bTableInPos := (bDInTurnTableFw AND bDOuTurnTableFw AND NOT bDOuTurnTableBw) OR
|
||||
(bDInTurnTableBw AND bDOuTurnTableBw AND NOT bDOuTurnTableFw);
|
||||
|
||||
gbMachIsInHomepos := bCuttersHome AND NOT bDInGateOpen AND (bDInTurnTableFw OR bDInTurnTableBw); //FiXMe
|
||||
bSafetyOk := TRUE; //FixMe
|
||||
|
||||
gMoveConditions.bEnableGateClose := bTableInPos;
|
||||
gMoveConditions.bEnableTurnTable := bCuttersHome AND bDInGateOpen;
|
||||
gMoveConditions.bEnableCutterFw := bTableInPos AND bDInGateClosed; // (Safety...OK)
|
||||
|
||||
|
||||
//Jog Mode
|
||||
//==========================================================================================
|
||||
IF genMachMode = enMACH_JOG THEN
|
||||
//Set LEDs
|
||||
IF bDInGateOpen THEN
|
||||
gVCLEDs.usGateOpen := 0;
|
||||
ELSIF NOT gMoveConditions.bEnableGateClose THEN
|
||||
gVCLEDs.usGateOpen := 3; //Fast Blink
|
||||
ELSE
|
||||
gVCLEDs.usGateOpen := 1; //ON
|
||||
END_IF
|
||||
|
||||
IF NOT bDInGateOpen THEN //FixMe Closed
|
||||
gVCLEDs.usGateClose := 0;
|
||||
ELSIF NOT gMoveConditions.bEnableGateClose THEN
|
||||
gVCLEDs.usGateClose := 3; //Fast Blink
|
||||
ELSE
|
||||
gVCLEDs.usGateClose := 1; //ON
|
||||
END_IF
|
||||
|
||||
IF (bDInTurnTableFw AND bDOuTurnTableFw) THEN
|
||||
gVCLEDs.usTurnPosPart1 := 0;
|
||||
ELSIF NOT gMoveConditions.bEnableTurnTable THEN
|
||||
gVCLEDs.usTurnPosPart1 := 3;
|
||||
ELSE
|
||||
gVCLEDs.usTurnPosPart1 := 1;
|
||||
END_IF
|
||||
|
||||
IF (bDInTurnTableBw AND bDOuTurnTableBw) THEN
|
||||
gVCLEDs.usTurnPosPart2 := 0;
|
||||
ELSIF NOT gMoveConditions.bEnableTurnTable THEN
|
||||
gVCLEDs.usTurnPosPart2 := 3;
|
||||
ELSE
|
||||
gVCLEDs.usTurnPosPart2 := 1;
|
||||
END_IF
|
||||
|
||||
IF bDOuCutterFw THEN
|
||||
gVCLEDs.usCutterFw := 0;
|
||||
ELSIF NOT gMoveConditions.bEnableCutterFw THEN
|
||||
gVCLEDs.usCutterFw := 3;
|
||||
ELSE
|
||||
gVCLEDs.usCutterFw := 1;
|
||||
END_IF
|
||||
|
||||
IF bDOuCutterBw THEN
|
||||
gVCLEDs.usCutterBw := 0;
|
||||
ELSE
|
||||
gVCLEDs.usCutterBw := 1;
|
||||
END_IF
|
||||
|
||||
|
||||
IF gMoveConditions.bEnableGateClose AND (gManualCommands.usGateClose = 1) THEN
|
||||
bDOuGateClose := TRUE;
|
||||
bDOuGateOpen := FALSE;
|
||||
ELSIF (gManualCommands.usGateOpen = 1) THEN
|
||||
bDOuGateClose := FALSE;
|
||||
bDOuGateOpen := TRUE;
|
||||
END_IF
|
||||
|
||||
IF gMoveConditions.bEnableTurnTable THEN
|
||||
IF (gManualCommands.usTurnPosPart1 = 1) THEN
|
||||
bDOuTurnTableFw := TRUE;
|
||||
bDOuTurnTableBw := FALSE;
|
||||
ELSIF (gManualCommands.usTurnPosPart2 = 1) THEN
|
||||
bDOuTurnTableFw := FALSE;
|
||||
bDOuTurnTableBw := TRUE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF gMoveConditions.bEnableCutterFw AND (gManualCommands.usCutterFw = 1) THEN
|
||||
bDOuCutterFw := TRUE;
|
||||
bDOuCutterBw := FALSE;
|
||||
ELSIF (gManualCommands.usCutterBw = 1) THEN
|
||||
bDOuCutterFw := FALSE;
|
||||
bDOuCutterBw := TRUE;
|
||||
END_IF
|
||||
|
||||
bDOuCutterClose := (gManualCommands.usCutterClose = 1);
|
||||
|
||||
ELSIF (genMachMode = enMACH_HOMEPOS) THEN
|
||||
//Homing
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
CASE enStepFFGHoming OF
|
||||
|
||||
END_CASE
|
||||
ELSIF (genMachMode = enMACH_MANUAL) OR (genMachMode = enMACH_AUTOMATIC) THEN
|
||||
bEnableNextStep := EDGEPOS (gManualCommands.usNextManStep = 1) OR (genMachMode = enMACH_AUTOMATIC);
|
||||
//Automatic
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
CASE enStepFFG OF
|
||||
//Init
|
||||
//---------------------------
|
||||
enFFGStep_INIT:
|
||||
bTransitionCondition := gbMachIsInHomepos;
|
||||
IF bTransitionCondition THEN
|
||||
enStepFFG := enFFGStep_WAIT_START;
|
||||
END_IF
|
||||
|
||||
//Wait for Start
|
||||
//---------------------------
|
||||
enFFGStep_WAIT_START:
|
||||
udCycletime := 0;
|
||||
|
||||
bTransitionCondition := ((EDGEPOS (bDInStartKey) AND (genMachMode = enMACH_AUTOMATIC)) OR (genMachMode = enMACH_MANUAL)) AND bSafetyOk AND gbMachON;
|
||||
|
||||
IF (bSafetyOkFP OR (bTransitionCondition AND (bEnableNextStep))) THEN
|
||||
enStepFFG := enFFGStep_OPEN_GATE;
|
||||
END_IF
|
||||
|
||||
|
||||
//Schutztür öffnen
|
||||
//------------------------------
|
||||
enFFGStep_OPEN_GATE:
|
||||
bDOuGateOpen := TRUE;
|
||||
bDOuGateClose := FALSE;
|
||||
TOF_Cleaner.IN := TRUE;
|
||||
IF bDInTurnTableFw THEN
|
||||
bDOuHoldPart1Fw := TRUE;
|
||||
END_IF
|
||||
IF bDInTurnTableBw THEN
|
||||
bDOuHoldPart2Fw := TRUE;
|
||||
END_IF
|
||||
bTransitionCondition := gMoveConditions.bEnableTurnTable AND bEnableNextStep;
|
||||
|
||||
IF bTransitionCondition THEN
|
||||
enStepFFG := enFFGStep_TURN;
|
||||
IF bDInTurnTableFw THEN
|
||||
bDOuTurnTableBw := TRUE;
|
||||
bDOuTurnTableFw := FALSE;
|
||||
ELSIF bDInTurnTableBw THEN
|
||||
bDOuTurnTableFw := TRUE;
|
||||
bDOuTurnTableBw := FALSE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
//Tisch drehen und einlege zylinder zustellen
|
||||
//---------------------------
|
||||
enFFGStep_TURN:
|
||||
bTransitionCondition := (bDInTurnTableFw AND bDOuTurnTableFw) OR (bDInTurnTableBw AND bDOuTurnTableBw) AND bEnableNextStep;
|
||||
|
||||
IF bTransitionCondition THEN
|
||||
enStepFFG := enFFGStep_CLOSE_GATE;
|
||||
END_IF
|
||||
|
||||
|
||||
//Schutztür Schließen
|
||||
//------------------------------
|
||||
enFFGStep_CLOSE_GATE:
|
||||
bDOuGateOpen := FALSE;
|
||||
bDOuGateClose := gMoveConditions.bEnableGateClose;
|
||||
bTransitionCondition := bDInGateClosed AND bEnableNextStep;
|
||||
IF bDInTurnTableFw THEN
|
||||
bDOuHoldPart1Fw := FALSE;
|
||||
END_IF
|
||||
IF bDInTurnTableBw THEN
|
||||
bDOuHoldPart2Fw := FALSE;
|
||||
END_IF
|
||||
|
||||
IF bTransitionCondition AND NOT ((bDInTurnTableFw AND bDInPart2Available) OR (bDInTurnTableBw AND bDInPart1Available)) THEN
|
||||
enStepFFG := enFFGStep_INIT;
|
||||
TOF_Cleaner.IN := FALSE;
|
||||
udSteptime := 0;
|
||||
ELSIF bTransitionCondition THEN
|
||||
enStepFFG := enFFGStep_FW_CUTTER;
|
||||
END_IF
|
||||
|
||||
//Cutter Zustellen
|
||||
//------------------------------
|
||||
enFFGStep_FW_CUTTER:
|
||||
bDOuCutterBw := FALSE;
|
||||
bDOuCutterFw := gMoveConditions.bEnableCutterFw;
|
||||
bTransitionCondition := NOT bDInHomeCutter1 AND NOT bDInHomeCutter2 AND NOT bDInHomeCutter3 AND NOT bDInHomeCutter4 AND bEnableNextStep;
|
||||
|
||||
IF bTransitionCondition THEN
|
||||
enStepFFG := enFFGStep_CUT;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
|
||||
//Cutter Schließen
|
||||
//------------------------------
|
||||
enFFGStep_CUT:
|
||||
bDOuCutterClose := TRUE;
|
||||
bCount := TRUE;
|
||||
bTransitionCondition := (udSteptime > 500) AND bEnableNextStep;
|
||||
|
||||
IF bTransitionCondition THEN
|
||||
enStepFFG := enFFGStep_BW_CUTTER;
|
||||
bDOuCutterClose := FALSE;
|
||||
END_IF
|
||||
|
||||
//Cutter Rückstellen
|
||||
//------------------------------
|
||||
enFFGStep_BW_CUTTER:
|
||||
bDOuCutterBw := TRUE;
|
||||
bDOuCutterFw := FALSE;
|
||||
TOF_Cleaner.IN := FALSE;
|
||||
bTransitionCondition := bCuttersHome;
|
||||
|
||||
IF bTransitionCondition THEN
|
||||
enStepFFG := enFFGStep_INIT;
|
||||
udSteptime := 0;
|
||||
IF bCount THEN
|
||||
bCount := FALSE;
|
||||
gudShiftCounter := gudShiftCounter + 1;
|
||||
gudOverallCounter := gudOverallCounter + 1;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
END_CASE
|
||||
END_IF
|
||||
|
||||
IF (gManualCommands.uResetShiftCount = 1) THEN
|
||||
gudShiftCounter := 0;
|
||||
END_IF
|
||||
|
||||
guiStepFFG := DINT_TO_UINT (enStepFFG);
|
||||
|
||||
bDOuLEDRd := gbMachON AND NOT bDInEStopOK;
|
||||
bDOuLEDGn := gbMachON AND NOT bDInCutAreaOK;
|
||||
|
||||
|
||||
IF EDGEPOS (bBlink0_1) THEN
|
||||
udSteptime := udSteptime + 100;
|
||||
udCycletime := udCycletime + 100;
|
||||
END_IF
|
||||
|
||||
IF NOT gbMachON THEN
|
||||
TOF_Cleaner.IN := FALSE;
|
||||
END_IF
|
||||
TOF_Cleaner.PT := t#5s;
|
||||
TOF_Cleaner ();
|
||||
bDOuCleanerOn := TOF_Cleaner.Q;
|
||||
//Outputs
|
||||
IF bDOuHoldPart1Fw THEN
|
||||
uiOutputs := BIT_SET (uiOutputs, 0);
|
||||
ELSE
|
||||
uiOutputs := BIT_CLR (uiOutputs, 0);
|
||||
END_IF
|
||||
|
||||
IF bDOuHoldPart2Fw THEN
|
||||
uiOutputs := BIT_SET (uiOutputs, 1);
|
||||
ELSE
|
||||
uiOutputs := BIT_CLR (uiOutputs, 1);
|
||||
END_IF
|
||||
|
||||
IF bDOuLEDGn THEN
|
||||
uiOutputs := BIT_SET (uiOutputs, 2);
|
||||
ELSE
|
||||
uiOutputs := BIT_CLR (uiOutputs, 2);
|
||||
END_IF
|
||||
|
||||
IF bDOuLEDRd THEN
|
||||
uiOutputs := BIT_SET (uiOutputs, 3 + 4);
|
||||
ELSE
|
||||
uiOutputs := BIT_CLR (uiOutputs, 3 + 4);
|
||||
END_IF
|
||||
|
||||
IF bDOuCleanerOn THEN
|
||||
uiOutputs := BIT_SET (uiOutputs, 4);
|
||||
ELSE
|
||||
uiOutputs := BIT_CLR (uiOutputs, 4);
|
||||
END_IF
|
||||
|
||||
END_PROGRAM
|
||||
@@ -0,0 +1,45 @@
|
||||
(**)
|
||||
|
||||
TYPE
|
||||
typ_enStepFFG :
|
||||
(
|
||||
enFFGStep_INIT := 0, (*Grundstellung prüfen*)
|
||||
enFFGStep_WAIT_START, (*Auf Startbefehl warten (mit Teil)*)
|
||||
enFFGStep_OPEN_GATE, (*Schutztür öffnen*)
|
||||
enFFGStep_TURN, (*Tisch drehen*)
|
||||
enFFGStep_CLOSE_GATE, (*Schutztür schließen*)
|
||||
enFFGStep_FW_CUTTER, (*Cutter zustellen*)
|
||||
enFFGStep_CUT, (*Schneiden*)
|
||||
enFFGStep_WAIT_CUTTER, (*Wartezeit*)
|
||||
enFFGStep_BW_CUTTER (*Cutter zurückstellen*)
|
||||
);
|
||||
typ_enStepHoming :
|
||||
( (*Grundstellungsfahrt*)
|
||||
enFFGStepHoming_INIT, (*Auf Start warten*)
|
||||
enFFGStepHoming_WAIT_START, (*Auf Startbefehl warten*)
|
||||
enFFGStepHoming_OPEN_GATE, (*Referenzwerte Laden*)
|
||||
enFFGStepHoming_TURN, (*Alles in Grundstellung fahren*)
|
||||
enPressStepHoming_MOVE_HOME_TT, (*Drehtisch in Grundstellung*)
|
||||
enPressStepHoming_FW_AX, (*Achse an Einlegeposition Zustellen*)
|
||||
enPressStepHoming_DONE (*GST-Fahrt abgeschlossen*)
|
||||
);
|
||||
typStatusPressVCControls : STRUCT (*Controlbytes für Visu*)
|
||||
usStartHoming : USINT;
|
||||
usJogPosShaft1 : USINT;
|
||||
usJogPosShaft2 : USINT;
|
||||
usShaft1MaskPos : USINT;
|
||||
usShaft2MaskPos : USINT;
|
||||
usTurnPosShaft1 : USINT; (*Drehtisch auf Achse 1 drehen*)
|
||||
usTurnPosShaft2 : USINT; (*Drehtisch auf Achse 2 drehen*)
|
||||
usAxis1Fw : USINT;
|
||||
usAxis1Bw : USINT;
|
||||
usAxis2Fw : USINT;
|
||||
usAxis2Bw : USINT;
|
||||
usGrinderFw : USINT;
|
||||
usGrinderBw : USINT;
|
||||
usReferencePress : USINT; (*Presse Referenzieren*)
|
||||
usReferencePressABS : USINT; (*Presse Referenzieren mit gespeicherten Absolutwerten*)
|
||||
usResetAx1 : USINT;
|
||||
usResetAx2 : USINT;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
@@ -0,0 +1,17 @@
|
||||
VAR
|
||||
bSafetyOk : BOOL;
|
||||
bSafetyOkFP : BOOL;
|
||||
bTransitionCondition : BOOL;
|
||||
bTableUndefinedRestart : BOOL;
|
||||
bCuttersHome : BOOL;
|
||||
bTableInPos : BOOL;
|
||||
bEnableNextStep : BOOL; (*Nächsten Schritt (Semiautomatik) Freigeben*)
|
||||
bCount : BOOL;
|
||||
enStepFFG : typ_enStepFFG;
|
||||
enStepFFGHoming : typ_enStepHoming;
|
||||
guiStepFFG : UINT; (*Für Visu*)
|
||||
uiTemp : UINT;
|
||||
udSteptime : UDINT; (*[0.1s]*)
|
||||
udCycletime : UDINT;
|
||||
TOF_Cleaner : TOF;
|
||||
END_VAR
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Implementation code">FFGCtrl.st</File>
|
||||
<File Description="Local variables" Private="true">FFGCtrl.var</File>
|
||||
<File Description="Local data types" Private="true">FFGCtrl.typ</File>
|
||||
</Files>
|
||||
</Program>
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
TYPE
|
||||
typManualCommnands : STRUCT (*Kommandos für Hand / Automatikbetrieb*)
|
||||
usNextManStep : USINT; (*Nächster Schritt (Semi) Automatic*)
|
||||
usStartHoming : USINT; (*Maschine in Grundstellung fahren*)
|
||||
usGateOpen : USINT; (*Schutztür öffnen*)
|
||||
usGateClose : USINT; (*Schutztür schließen*)
|
||||
usTurnPosPart1 : USINT; (*Drehtisch auf Teil 1 drehen*)
|
||||
usTurnPosPart2 : USINT; (*Drehtisch auf Teil 2 drehen*)
|
||||
usCutterFw : USINT;
|
||||
usCutterBw : USINT;
|
||||
usCutterClose : USINT;
|
||||
usToggleHolderPart1 : USINT;
|
||||
usToggleHolderPart2 : USINT;
|
||||
uResetShiftCount : USINT;
|
||||
END_STRUCT;
|
||||
typMoveConditions : STRUCT (*Bewegungsfreigaben*)
|
||||
bEnableGateClose : BOOL;
|
||||
bEnableTurnTable : BOOL;
|
||||
bEnableCutterFw : BOOL;
|
||||
END_STRUCT;
|
||||
typVCLEDs : STRUCT (*Kommandos für Hand / Automatikbetrieb*)
|
||||
usJOGButton : USINT;
|
||||
usHOMEButton : USINT;
|
||||
usAUTOButton : USINT;
|
||||
usNextManStep : USINT; (*Nächster Schritt (Semi) Automatic*)
|
||||
usStartHoming : USINT; (*Maschine in Grundstellung fahren*)
|
||||
usGateOpen : USINT; (*Schutztür öffnen*)
|
||||
usGateClose : USINT; (*Schutztür schließen*)
|
||||
usTurnPosPart1 : USINT; (*Drehtisch auf Teil 1 drehen*)
|
||||
usTurnPosPart2 : USINT; (*Drehtisch auf Teil 2 drehen*)
|
||||
usCutterFw : USINT;
|
||||
usCutterBw : USINT;
|
||||
usCutterClose : USINT;
|
||||
usToggleHolderPart1 : USINT;
|
||||
usToggleHolderPart2 : USINT;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
@@ -0,0 +1,52 @@
|
||||
(*//Inputs Panel Onboard*)
|
||||
VAR
|
||||
bDInHomeCutter1 : BOOL; (*Cutter 1 GS*)
|
||||
bDInHomeCutter2 : BOOL; (*Cutter 2 GS*)
|
||||
bDInHomeCutter3 : BOOL; (*Cutter 3 GS*)
|
||||
bDInHomeCutter4 : BOOL; (*Cutter 4 GS*)
|
||||
bDInGateOpen : BOOL; (*Schutztür offen*)
|
||||
bDInTurnTableFw : BOOL; (*Drehtisch Pos 1 (Fw) im Einlegebereich*)
|
||||
bDInTurnTableBw : BOOL; (*Drehtisch Pos 2 (Bw) im Einlegebereich*)
|
||||
bDInStartKey : BOOL; (*Starttaster*)
|
||||
bDInAirOk1 : BOOL; (*Druckluft 1 (Nach Notaus) OK*)
|
||||
bDInAirOk2 : BOOL; (*Druckluft 1 (Nach Lichtvorhang) OK*)
|
||||
END_VAR
|
||||
(*//Expansion Module 1*)
|
||||
VAR
|
||||
uiInputs : UINT; (*Gesammelte Eingänge*)
|
||||
bDInGateClosed : BOOL; (*Schutztür geschlossen (unsicher)*)
|
||||
bDInPart1Available : BOOL; (*Teil 1 eingelegt*)
|
||||
bDInPart2Available : BOOL; (*Teil 2 eingelegt*)
|
||||
bDInEStopOK : BOOL; (*Notauskreis OK*)
|
||||
bDInCutAreaOK : BOOL; (*Sicherheitskreis Schneidebereich OK*)
|
||||
END_VAR
|
||||
(*//Outputs Panel Onboard*)
|
||||
VAR
|
||||
bDOuGateOpen : BOOL; (*Schutztür öffnen*)
|
||||
bDOuGateClose : BOOL; (*Schtuztür schließen*)
|
||||
bDOuTurnTableFw : BOOL; (*Drehtisch auf Pos 1 drehen*)
|
||||
bDOuTurnTableBw : BOOL; (*Drehtisch auf Pos 2 drehen*)
|
||||
bDOuCutterFw : BOOL; (*Cutter Zustellen*)
|
||||
bDOuCutterBw : BOOL; (*Cutter Rückstellen*)
|
||||
bDOuCutterClose : BOOL; (*Cutter - Schließen*)
|
||||
bDOuLightOn : BOOL; (*Anlagenbeleuchtung ein*)
|
||||
END_VAR
|
||||
(*//Expansion Module 2*)
|
||||
VAR
|
||||
uiOutputs : UINT; (*Gesammelte Ausgänge*)
|
||||
bDOuHoldPart1Fw : BOOL; (*Teil 1 - Niederhalter ausfahren*)
|
||||
bDOuHoldPart2Fw : BOOL; (*Teil 2 - Niederhalter ausfahren*)
|
||||
bDOuLEDGn : BOOL; (*LED Starttaster*)
|
||||
bDOuLEDRd : BOOL; (*LED Reset*)
|
||||
bDOuCleanerOn : BOOL; (*Staubsauger ein*)
|
||||
END_VAR
|
||||
(*Structures*)
|
||||
VAR
|
||||
gManualCommands : typManualCommnands; (*Kommandos Betriebsart Hand*)
|
||||
gMoveConditions : typMoveConditions;
|
||||
gVCLEDs : typVCLEDs; (*LED Statis*)
|
||||
END_VAR
|
||||
VAR RETAIN
|
||||
gudOverallCounter : UDINT;
|
||||
gudShiftCounter : UDINT;
|
||||
END_VAR
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File" Description="Global variables">Global.var</Object>
|
||||
<Object Type="File" Description="Global data types">Global.typ</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Library Description="This library contains function interfaces for IEC 1131-3 conversion functions." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>AsIecCon.fun</File>
|
||||
</Files>
|
||||
<Dependencies>
|
||||
<Dependency ObjectName="AsTime" />
|
||||
</Dependencies>
|
||||
</Library>
|
||||
@@ -0,0 +1,49 @@
|
||||
/* Automation Studio Generated Header File, Format Version 1.00 */
|
||||
/* do not change */
|
||||
#ifndef ASIECCON_H_
|
||||
#define ASIECCON_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#include <bur/plc.h>
|
||||
|
||||
|
||||
|
||||
/* Constants */
|
||||
|
||||
|
||||
/* Datatypes */
|
||||
|
||||
|
||||
/* Datatypes of function blocks */
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
signed short H_TO_NINT(signed short IN);
|
||||
unsigned short H_TO_NUINT(unsigned short IN);
|
||||
signed long H_TO_NDINT(signed long IN);
|
||||
unsigned long H_TO_NUDINT(unsigned long IN);
|
||||
float H_TO_NREAL(float IN);
|
||||
plctime H_TO_NTIME(plctime IN);
|
||||
DATE_AND_TIME H_TO_NDT(DATE_AND_TIME IN);
|
||||
signed short N_TO_HINT(signed short IN);
|
||||
unsigned short N_TO_HUINT(unsigned short IN);
|
||||
signed long N_TO_HDINT(signed long IN);
|
||||
unsigned long N_TO_HUDINT(unsigned long IN);
|
||||
float N_TO_HREAL(float IN);
|
||||
plctime N_TO_HTIME(plctime IN);
|
||||
DATE_AND_TIME N_TO_HDT(DATE_AND_TIME IN);
|
||||
signed short swapINT(signed short IN);
|
||||
unsigned short swapUINT(unsigned short IN);
|
||||
signed long swapDINT(signed long IN);
|
||||
unsigned long swapUDINT(unsigned long IN);
|
||||
float swapREAL(float IN);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* ASIECCON_H_ */
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
/* Automation Studio Generated Header File, Format Version 1.00 */
|
||||
/* do not change */
|
||||
#ifndef ASIECCON_H_
|
||||
#define ASIECCON_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#include <bur/plc.h>
|
||||
|
||||
|
||||
|
||||
/* Constants */
|
||||
|
||||
|
||||
/* Datatypes */
|
||||
|
||||
|
||||
/* Datatypes of function blocks */
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
signed short H_TO_NINT(signed short IN);
|
||||
unsigned short H_TO_NUINT(unsigned short IN);
|
||||
signed long H_TO_NDINT(signed long IN);
|
||||
unsigned long H_TO_NUDINT(unsigned long IN);
|
||||
float H_TO_NREAL(float IN);
|
||||
plctime H_TO_NTIME(plctime IN);
|
||||
DATE_AND_TIME H_TO_NDT(DATE_AND_TIME IN);
|
||||
DATE H_TO_NDATE(DATE IN);
|
||||
TOD H_TO_NTOD(TOD IN);
|
||||
signed short N_TO_HINT(signed short IN);
|
||||
unsigned short N_TO_HUINT(unsigned short IN);
|
||||
signed long N_TO_HDINT(signed long IN);
|
||||
unsigned long N_TO_HUDINT(unsigned long IN);
|
||||
float N_TO_HREAL(float IN);
|
||||
plctime N_TO_HTIME(plctime IN);
|
||||
DATE_AND_TIME N_TO_HDT(DATE_AND_TIME IN);
|
||||
DATE N_TO_HDATE(DATE IN);
|
||||
TOD N_TO_HTOD(TOD IN);
|
||||
signed short swapINT(signed short IN);
|
||||
unsigned short swapUINT(unsigned short IN);
|
||||
WORD swapWORD(WORD IN);
|
||||
signed long swapDINT(signed long IN);
|
||||
unsigned long swapUDINT(unsigned long IN);
|
||||
DWORD swapDWORD(DWORD IN);
|
||||
TIME swapTIME(TIME IN);
|
||||
DATE_AND_TIME swapDT(DATE_AND_TIME IN);
|
||||
DATE swapDATE(DATE IN);
|
||||
TOD swapTOD(TOD IN);
|
||||
float swapREAL(float IN);
|
||||
|
||||
/* The interface declarations of the AsIecCon functions are not included here
|
||||
* because they are inline in IEC languages. The x_TO_STRING and the
|
||||
* STRING_TO_x functions are not available for C programms. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* ASIECCON_H_ */
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
/* Automation Studio Generated Header File, Format Version 1.00 */
|
||||
/* do not change */
|
||||
#ifndef ASIECCON_H_
|
||||
#define ASIECCON_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#include <bur/plc.h>
|
||||
|
||||
|
||||
|
||||
/* Constants */
|
||||
|
||||
|
||||
/* Datatypes */
|
||||
|
||||
|
||||
/* Datatypes of function blocks */
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
signed short H_TO_NINT(signed short IN);
|
||||
unsigned short H_TO_NUINT(unsigned short IN);
|
||||
signed long H_TO_NDINT(signed long IN);
|
||||
unsigned long H_TO_NUDINT(unsigned long IN);
|
||||
float H_TO_NREAL(float IN);
|
||||
plctime H_TO_NTIME(plctime IN);
|
||||
DATE_AND_TIME H_TO_NDT(DATE_AND_TIME IN);
|
||||
DATE H_TO_NDATE(DATE IN);
|
||||
TOD H_TO_NTOD(TOD IN);
|
||||
signed short N_TO_HINT(signed short IN);
|
||||
unsigned short N_TO_HUINT(unsigned short IN);
|
||||
signed long N_TO_HDINT(signed long IN);
|
||||
unsigned long N_TO_HUDINT(unsigned long IN);
|
||||
float N_TO_HREAL(float IN);
|
||||
plctime N_TO_HTIME(plctime IN);
|
||||
DATE_AND_TIME N_TO_HDT(DATE_AND_TIME IN);
|
||||
DATE N_TO_HDATE(DATE IN);
|
||||
TOD N_TO_HTOD(TOD IN);
|
||||
signed short swapINT(signed short IN);
|
||||
unsigned short swapUINT(unsigned short IN);
|
||||
WORD swapWORD(WORD IN);
|
||||
signed long swapDINT(signed long IN);
|
||||
unsigned long swapUDINT(unsigned long IN);
|
||||
DWORD swapDWORD(DWORD IN);
|
||||
TIME swapTIME(TIME IN);
|
||||
DATE_AND_TIME swapDT(DATE_AND_TIME IN);
|
||||
DATE swapDATE(DATE IN);
|
||||
TOD swapTOD(TOD IN);
|
||||
float swapREAL(float IN);
|
||||
|
||||
/* The interface declarations of the AsIecCon functions are not included here
|
||||
* because they are inline in IEC languages. The x_TO_STRING and the
|
||||
* STRING_TO_x functions are not available for C programms. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* ASIECCON_H_ */
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="Library" Language="Binary" Description="This library contains function interfaces for IEC1131-3 operator functions. For the most part, these are mathematical and logical functions.">Operator</Object>
|
||||
<Object Type="Library" Language="Binary" Description="This library contains runtime functions for IEC tasks.">Runtime</Object>
|
||||
<Object Type="Library" Language="Binary" Description="The AsTime Library supports DATE_AND_TIME and TIME data types.">AsTime</Object>
|
||||
<Object Type="Library" Language="Binary" Description="This library contains function interfaces for IEC 1131-3 conversion functions.">AsIecCon</Object>
|
||||
<Object Type="Library" Language="Binary" Description="The AsString Library contains FBKs for memory and character string handling.">asstring</Object>
|
||||
<Object Type="Library" Language="Binary" Description="This library contains standard function blocks and funtions for IEC 1131-3.">standard</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Library Description="The AsString Library contains FBKs for memory and character string handling." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>asstring.fun</File>
|
||||
</Files>
|
||||
</Library>
|
||||
@@ -0,0 +1,33 @@
|
||||
/* Automation Studio Generated Header File, Format Version 1.00 */
|
||||
/* do not change */
|
||||
#ifndef ASSTRING_H_
|
||||
#define ASSTRING_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#include <bur/plc.h>
|
||||
|
||||
|
||||
|
||||
/* Constants */
|
||||
|
||||
|
||||
/* Datatypes */
|
||||
|
||||
|
||||
/* Datatypes of function blocks */
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
unsigned short ftoa(float value, unsigned long pString);
|
||||
unsigned short itoa(signed long value, unsigned long pString);
|
||||
float atof(unsigned long pString);
|
||||
signed long atoi(unsigned long pString);
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* ASSTRING_H_ */
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
/* Automation Studio Generated Header File, Format Version 1.00 */
|
||||
/* do not change */
|
||||
#ifndef ASSTRING_H_
|
||||
#define ASSTRING_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#include <bur/plc.h>
|
||||
|
||||
|
||||
|
||||
/* Constants */
|
||||
|
||||
|
||||
/* Datatypes */
|
||||
|
||||
|
||||
/* Datatypes of function blocks */
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
unsigned short ftoa(float value, unsigned long pString);
|
||||
unsigned short itoa(signed long value, unsigned long pString);
|
||||
float atof(unsigned long pString);
|
||||
signed long atoi(unsigned long pString);
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* ASSTRING_H_ */
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
/* Automation Studio Generated Header File, Format Version 1.00 */
|
||||
/* do not change */
|
||||
#ifndef ASSTRING_H_
|
||||
#define ASSTRING_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#include <bur/plc.h>
|
||||
|
||||
|
||||
|
||||
/* Constants */
|
||||
|
||||
|
||||
/* Datatypes */
|
||||
|
||||
|
||||
/* Datatypes of function blocks */
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
unsigned short ftoa(float value, unsigned long pString);
|
||||
unsigned short itoa(signed long value, unsigned long pString);
|
||||
float atof(unsigned long pString);
|
||||
signed long atoi(unsigned long pString);
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* ASSTRING_H_ */
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- Bernecker + Rainer
|
||||
********************************************************************
|
||||
* Library: asstring
|
||||
* File: asstring.fun
|
||||
* Author: B+R
|
||||
********************************************************************
|
||||
* Functions and function blocks of library asstring
|
||||
********************************************************************)
|
||||
|
||||
FUNCTION ftoa : 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
|
||||
FUNCTION atof : 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
|
||||
FUNCTION itoa : 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
|
||||
FUNCTION atoi : 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
|
||||
FUNCTION memset : 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
|
||||
FUNCTION memcpy : 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
|
||||
FUNCTION memmove : 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
|
||||
FUNCTION memcmp : 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
|
||||
FUNCTION strcat : 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
|
||||
FUNCTION strlen : UINT (*provides the length of a character string*)
|
||||
VAR_INPUT
|
||||
pString :UDINT; (*pointer to the source character string*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION strcpy : 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
|
||||
FUNCTION strcmp : 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
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Library Description="The AsTime Library supports DATE_AND_TIME and TIME data types." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>astime.var</File>
|
||||
<File>astime.typ</File>
|
||||
<File>astime.fun</File>
|
||||
</Files>
|
||||
<Dependencies>
|
||||
<Dependency ObjectName="runtime" />
|
||||
</Dependencies>
|
||||
</Library>
|
||||
@@ -0,0 +1,130 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _ASTIME_
|
||||
#define _ASTIME_
|
||||
#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 timERR_AR 33213U
|
||||
#define timERR_INVALID_DTSTRUCTURE 33212U
|
||||
#define timERR_INVALID_LEN 33211U
|
||||
#define timERR_INVALID_PARAMETER 33210U
|
||||
#define timTIME_SERVER 2U
|
||||
#define timREAL_TIME_CLOCK 1U
|
||||
#define timNO_DST 3U
|
||||
#define timDAYLIGHT_SAVING_TIME 2U
|
||||
#define timNORMAL_TIME 1U
|
||||
#define TIME_MAX 2073600000
|
||||
#define TIME_MIN (-2073600000)
|
||||
#define DATE_AND_TIME_MAX 4102444799U
|
||||
#define timEXSETTIME_NO_OPTION 0U
|
||||
#define timEXSETTIME_NO_LOGENTRY 1U
|
||||
#else
|
||||
_IEC_CONST unsigned short timERR_AR = 33213U;
|
||||
_IEC_CONST unsigned short timERR_INVALID_DTSTRUCTURE = 33212U;
|
||||
_IEC_CONST unsigned short timERR_INVALID_LEN = 33211U;
|
||||
_IEC_CONST unsigned short timERR_INVALID_PARAMETER = 33210U;
|
||||
_IEC_CONST unsigned char timTIME_SERVER = 2U;
|
||||
_IEC_CONST unsigned char timREAL_TIME_CLOCK = 1U;
|
||||
_IEC_CONST unsigned char timNO_DST = 3U;
|
||||
_IEC_CONST unsigned char timDAYLIGHT_SAVING_TIME = 2U;
|
||||
_IEC_CONST unsigned char timNORMAL_TIME = 1U;
|
||||
_IEC_CONST signed long TIME_MAX = 2073600000;
|
||||
_IEC_CONST signed long TIME_MIN = -2073600000;
|
||||
_IEC_CONST unsigned long DATE_AND_TIME_MAX = 4102444799U;
|
||||
_IEC_CONST unsigned char timEXSETTIME_NO_OPTION = 0U;
|
||||
_IEC_CONST unsigned char timEXSETTIME_NO_LOGENTRY = 1U;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct TIMEStructure
|
||||
{ signed char day;
|
||||
unsigned char hour;
|
||||
unsigned char minute;
|
||||
unsigned char second;
|
||||
unsigned short millisec;
|
||||
unsigned short microsec;
|
||||
} TIMEStructure;
|
||||
|
||||
typedef struct DTStructure
|
||||
{ unsigned short year;
|
||||
unsigned char month;
|
||||
unsigned char day;
|
||||
unsigned char wday;
|
||||
unsigned char hour;
|
||||
unsigned char minute;
|
||||
unsigned char second;
|
||||
unsigned short millisec;
|
||||
unsigned short microsec;
|
||||
} DTStructure;
|
||||
|
||||
typedef struct DTExSetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
plcdt DT1;
|
||||
unsigned char Option;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DTExSetTime_typ;
|
||||
|
||||
typedef struct DTSetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
plcdt DT1;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DTSetTime_typ;
|
||||
|
||||
typedef struct DTGetTime
|
||||
{
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
plcdt DT1;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DTGetTime_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
void DTExSetTime(struct DTExSetTime* inst);
|
||||
void DTSetTime(struct DTSetTime* inst);
|
||||
void DTGetTime(struct DTGetTime* inst);
|
||||
unsigned long ascTIMEStructure(unsigned long pTIMEStructure, unsigned long pStr, unsigned long len);
|
||||
unsigned long ascDTStructure(unsigned long pDTStructure, unsigned long pStr, unsigned long len);
|
||||
unsigned long ascTIME(plctime TIME1, unsigned long pStr, unsigned long len);
|
||||
unsigned long ascDT(plcdt DT1, unsigned long pStr, unsigned long len);
|
||||
plctime TIMEStructure_TO_TIME(unsigned long pTIMEStructure);
|
||||
unsigned long TIME_TO_TIMEStructure(plctime TIME1, unsigned long pTIMEStructure);
|
||||
plcdt DTStructure_TO_DT(unsigned long pDTStructure);
|
||||
unsigned long DT_TO_DTStructure(plcdt DT1, unsigned long pDTStructure);
|
||||
unsigned long DiffT(plctime TIME2, plctime TIME1);
|
||||
unsigned long DiffDT(plcdt DT2, plcdt DT1);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _ASTIME_ */
|
||||
|
||||
|
||||
@@ -0,0 +1,362 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _ASTIME_
|
||||
#define _ASTIME_
|
||||
#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 timERR_AR 33213U
|
||||
#define timERR_INVALID_DTSTRUCTURE 33212U
|
||||
#define timERR_INVALID_LEN 33211U
|
||||
#define timERR_INVALID_PARAMETER 33210U
|
||||
#define timTIME_SERVER 2U
|
||||
#define timREAL_TIME_CLOCK 1U
|
||||
#define timNO_DST 3U
|
||||
#define timDAYLIGHT_SAVING_TIME 2U
|
||||
#define timNORMAL_TIME 1U
|
||||
#define TIME_MAX 2073600000
|
||||
#define TIME_MIN (-2073600000)
|
||||
#define DATE_AND_TIME_MAX 4102444799U
|
||||
#define timEXSETTIME_NO_OPTION 0U
|
||||
#define timEXSETTIME_NO_LOGENTRY 1U
|
||||
#else
|
||||
_IEC_CONST unsigned short timERR_AR = 33213U;
|
||||
_IEC_CONST unsigned short timERR_INVALID_DTSTRUCTURE = 33212U;
|
||||
_IEC_CONST unsigned short timERR_INVALID_LEN = 33211U;
|
||||
_IEC_CONST unsigned short timERR_INVALID_PARAMETER = 33210U;
|
||||
_IEC_CONST unsigned char timTIME_SERVER = 2U;
|
||||
_IEC_CONST unsigned char timREAL_TIME_CLOCK = 1U;
|
||||
_IEC_CONST unsigned char timNO_DST = 3U;
|
||||
_IEC_CONST unsigned char timDAYLIGHT_SAVING_TIME = 2U;
|
||||
_IEC_CONST unsigned char timNORMAL_TIME = 1U;
|
||||
_IEC_CONST signed long TIME_MAX = 2073600000;
|
||||
_IEC_CONST signed long TIME_MIN = -2073600000;
|
||||
_IEC_CONST unsigned long DATE_AND_TIME_MAX = 4102444799U;
|
||||
_IEC_CONST unsigned char timEXSETTIME_NO_OPTION = 0U;
|
||||
_IEC_CONST unsigned char timEXSETTIME_NO_LOGENTRY = 1U;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct TIMEStructure
|
||||
{ signed char day;
|
||||
unsigned char hour;
|
||||
unsigned char minute;
|
||||
unsigned char second;
|
||||
unsigned short millisec;
|
||||
unsigned short microsec;
|
||||
} TIMEStructure;
|
||||
|
||||
typedef struct DTStructure
|
||||
{ unsigned short year;
|
||||
unsigned char month;
|
||||
unsigned char day;
|
||||
unsigned char wday;
|
||||
unsigned char hour;
|
||||
unsigned char minute;
|
||||
unsigned char second;
|
||||
unsigned short millisec;
|
||||
unsigned short microsec;
|
||||
} DTStructure;
|
||||
|
||||
typedef struct DTExSetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
plcdt DT1;
|
||||
unsigned char Option;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DTExSetTime_typ;
|
||||
|
||||
typedef struct DTSetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
plcdt DT1;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DTSetTime_typ;
|
||||
|
||||
typedef struct DTGetTime
|
||||
{
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
plcdt DT1;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DTGetTime_typ;
|
||||
|
||||
typedef struct UtcDTGetTime
|
||||
{
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
plcdt DT1;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} UtcDTGetTime_typ;
|
||||
|
||||
typedef struct UtcDTSetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
plcdt DT1;
|
||||
/* 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;
|
||||
} UtcDTSetTime_typ;
|
||||
|
||||
typedef struct UtcDTExSetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
plcdt DT1;
|
||||
unsigned char 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;
|
||||
} UtcDTExSetTime_typ;
|
||||
|
||||
typedef struct DTStructureGetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDTStructure;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DTStructureGetTime_typ;
|
||||
|
||||
typedef struct DTStructureSetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDTStructure;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DTStructureSetTime_typ;
|
||||
|
||||
typedef struct DTStructureExSetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDTStructure;
|
||||
unsigned char Option;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DTStructureExSetTime_typ;
|
||||
|
||||
typedef struct UtcDTStructureGetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDTStructure;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} UtcDTStructureGetTime_typ;
|
||||
|
||||
typedef struct UtcDTStructureSetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDTStructure;
|
||||
/* 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;
|
||||
} UtcDTStructureSetTime_typ;
|
||||
|
||||
typedef struct UtcDTStructureExSetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDTStructure;
|
||||
unsigned char 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;
|
||||
} UtcDTStructureExSetTime_typ;
|
||||
|
||||
typedef struct UtcDT_TO_LocalDTStructure
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
plcdt DT1;
|
||||
unsigned long pDTStructure;
|
||||
/* 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;
|
||||
} UtcDT_TO_LocalDTStructure_typ;
|
||||
|
||||
typedef struct LocalDT_TO_UtcDTStructure
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
plcdt DT1;
|
||||
unsigned long pDTStructure;
|
||||
/* 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;
|
||||
} LocalDT_TO_UtcDTStructure_typ;
|
||||
|
||||
typedef struct UtcDTStructure_TO_LocalDT
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDTStructure;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
plcdt DT1;
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
unsigned short i_state;
|
||||
unsigned short i_result;
|
||||
unsigned long i_tmp;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} UtcDTStructure_TO_LocalDT_typ;
|
||||
|
||||
typedef struct LocalDTStructure_TO_UtcDT
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDTStructure;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
plcdt DT1;
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
unsigned short i_state;
|
||||
unsigned short i_result;
|
||||
unsigned long i_tmp;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} LocalDTStructure_TO_UtcDT_typ;
|
||||
|
||||
typedef struct TimeDeviceGetInfo
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pServer;
|
||||
unsigned char len;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned char timeDevice;
|
||||
float avgDeviation;
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
unsigned short i_state;
|
||||
unsigned short i_result;
|
||||
unsigned long i_tmp;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} TimeDeviceGetInfo_typ;
|
||||
|
||||
typedef struct DstGetInfo
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDTStructure;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned char dstState;
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
unsigned short i_state;
|
||||
unsigned short i_result;
|
||||
unsigned long i_tmp;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DstGetInfo_typ;
|
||||
|
||||
typedef struct DstGetInfoDT
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
plcdt DT1;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned char dstState;
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
unsigned short i_state;
|
||||
unsigned short i_result;
|
||||
unsigned long i_tmp;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DstGetInfoDT_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
void DTExSetTime(struct DTExSetTime* inst);
|
||||
void DTSetTime(struct DTSetTime* inst);
|
||||
void DTGetTime(struct DTGetTime* inst);
|
||||
void UtcDTGetTime(struct UtcDTGetTime* inst);
|
||||
void UtcDTSetTime(struct UtcDTSetTime* inst);
|
||||
void UtcDTExSetTime(struct UtcDTExSetTime* inst);
|
||||
void DTStructureGetTime(struct DTStructureGetTime* inst);
|
||||
void DTStructureSetTime(struct DTStructureSetTime* inst);
|
||||
void DTStructureExSetTime(struct DTStructureExSetTime* inst);
|
||||
void UtcDTStructureGetTime(struct UtcDTStructureGetTime* inst);
|
||||
void UtcDTStructureSetTime(struct UtcDTStructureSetTime* inst);
|
||||
void UtcDTStructureExSetTime(struct UtcDTStructureExSetTime* inst);
|
||||
void UtcDT_TO_LocalDTStructure(struct UtcDT_TO_LocalDTStructure* inst);
|
||||
void LocalDT_TO_UtcDTStructure(struct LocalDT_TO_UtcDTStructure* inst);
|
||||
void UtcDTStructure_TO_LocalDT(struct UtcDTStructure_TO_LocalDT* inst);
|
||||
void LocalDTStructure_TO_UtcDT(struct LocalDTStructure_TO_UtcDT* inst);
|
||||
void TimeDeviceGetInfo(struct TimeDeviceGetInfo* inst);
|
||||
void DstGetInfo(struct DstGetInfo* inst);
|
||||
void DstGetInfoDT(struct DstGetInfoDT* inst);
|
||||
plctime clock_ms();
|
||||
unsigned long ascTIMEStructure(unsigned long pTIMEStructure, unsigned long pStr, unsigned long len);
|
||||
unsigned long ascDTStructure(unsigned long pDTStructure, unsigned long pStr, unsigned long len);
|
||||
unsigned long ascTIME(plctime TIME1, unsigned long pStr, unsigned long len);
|
||||
unsigned long ascDT(plcdt DT1, unsigned long pStr, unsigned long len);
|
||||
plctime TIMEStructure_TO_TIME(unsigned long pTIMEStructure);
|
||||
unsigned long TIME_TO_TIMEStructure(plctime TIME1, unsigned long pTIMEStructure);
|
||||
plcdt DTStructure_TO_DT(unsigned long pDTStructure);
|
||||
unsigned long DT_TO_DTStructure(plcdt DT1, unsigned long pDTStructure);
|
||||
unsigned long DiffT(plctime TIME2, plctime TIME1);
|
||||
unsigned long DiffDT(plcdt DT2, plcdt DT1);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _ASTIME_ */
|
||||
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _ASTIME_
|
||||
#define _ASTIME_
|
||||
#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 timERR_AR 33213U
|
||||
#define timERR_INVALID_DTSTRUCTURE 33212U
|
||||
#define timERR_INVALID_LEN 33211U
|
||||
#define timERR_INVALID_PARAMETER 33210U
|
||||
#define timTIME_SERVER 2U
|
||||
#define timREAL_TIME_CLOCK 1U
|
||||
#define timNO_DST 3U
|
||||
#define timDAYLIGHT_SAVING_TIME 2U
|
||||
#define timNORMAL_TIME 1U
|
||||
#define TIME_MAX 2073600000
|
||||
#define TIME_MIN (-2073600000)
|
||||
#define DATE_AND_TIME_MAX 4102444799U
|
||||
#define timEXSETTIME_NO_OPTION 0U
|
||||
#define timEXSETTIME_NO_LOGENTRY 1U
|
||||
#else
|
||||
_IEC_CONST unsigned short timERR_AR = 33213U;
|
||||
_IEC_CONST unsigned short timERR_INVALID_DTSTRUCTURE = 33212U;
|
||||
_IEC_CONST unsigned short timERR_INVALID_LEN = 33211U;
|
||||
_IEC_CONST unsigned short timERR_INVALID_PARAMETER = 33210U;
|
||||
_IEC_CONST unsigned char timTIME_SERVER = 2U;
|
||||
_IEC_CONST unsigned char timREAL_TIME_CLOCK = 1U;
|
||||
_IEC_CONST unsigned char timNO_DST = 3U;
|
||||
_IEC_CONST unsigned char timDAYLIGHT_SAVING_TIME = 2U;
|
||||
_IEC_CONST unsigned char timNORMAL_TIME = 1U;
|
||||
_IEC_CONST signed long TIME_MAX = 2073600000;
|
||||
_IEC_CONST signed long TIME_MIN = -2073600000;
|
||||
_IEC_CONST unsigned long DATE_AND_TIME_MAX = 4102444799U;
|
||||
_IEC_CONST unsigned char timEXSETTIME_NO_OPTION = 0U;
|
||||
_IEC_CONST unsigned char timEXSETTIME_NO_LOGENTRY = 1U;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct TIMEStructure
|
||||
{ signed char day;
|
||||
unsigned char hour;
|
||||
unsigned char minute;
|
||||
unsigned char second;
|
||||
unsigned short millisec;
|
||||
unsigned short microsec;
|
||||
} TIMEStructure;
|
||||
|
||||
typedef struct DTStructure
|
||||
{ unsigned short year;
|
||||
unsigned char month;
|
||||
unsigned char day;
|
||||
unsigned char wday;
|
||||
unsigned char hour;
|
||||
unsigned char minute;
|
||||
unsigned char second;
|
||||
unsigned short millisec;
|
||||
unsigned short microsec;
|
||||
} DTStructure;
|
||||
|
||||
typedef struct DTExSetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
plcdt DT1;
|
||||
unsigned char Option;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DTExSetTime_typ;
|
||||
|
||||
typedef struct DTSetTime
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
plcdt DT1;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DTSetTime_typ;
|
||||
|
||||
typedef struct DTGetTime
|
||||
{
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
plcdt DT1;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DTGetTime_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
void DTExSetTime(struct DTExSetTime* inst);
|
||||
void DTSetTime(struct DTSetTime* inst);
|
||||
void DTGetTime(struct DTGetTime* inst);
|
||||
unsigned long ascTIMEStructure(unsigned long pTIMEStructure, unsigned long pStr, unsigned long len);
|
||||
unsigned long ascDTStructure(unsigned long pDTStructure, unsigned long pStr, unsigned long len);
|
||||
unsigned long ascTIME(plctime TIME1, unsigned long pStr, unsigned long len);
|
||||
unsigned long ascDT(plcdt DT1, unsigned long pStr, unsigned long len);
|
||||
plctime TIMEStructure_TO_TIME(unsigned long pTIMEStructure);
|
||||
unsigned long TIME_TO_TIMEStructure(plctime TIME1, unsigned long pTIMEStructure);
|
||||
plcdt DTStructure_TO_DT(unsigned long pDTStructure);
|
||||
unsigned long DT_TO_DTStructure(plcdt DT1, unsigned long pDTStructure);
|
||||
unsigned long DiffT(plctime TIME2, plctime TIME1);
|
||||
unsigned long DiffDT(plcdt DT2, plcdt DT1);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _ASTIME_ */
|
||||
|
||||
|
||||
@@ -0,0 +1,342 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- Bernecker + Rainer
|
||||
********************************************************************
|
||||
* Library: astime
|
||||
* File: astime.fun
|
||||
* Author: B+R
|
||||
********************************************************************
|
||||
* Functions and function blocks of library astime
|
||||
********************************************************************)
|
||||
|
||||
FUNCTION_BLOCK DTExSetTime (*sets the current time using the DATE_AND_TIME data type*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
DT1 :DATE_AND_TIME; (*date and time to be written*)
|
||||
Option :USINT; (*additional option: timEXSETTIME_NO_OPTION, timEXSETTIME_NO_LOGENTRY*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
FUNCTION_BLOCK DTSetTime (*sets current time in DATE_AND_TIME data type*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
DT1 :DATE_AND_TIME; (*date and time to be written*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
FUNCTION_BLOCK DTGetTime (*reads the current time in the DATE_AND_TIME data type*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
DT1 :DATE_AND_TIME; (*date and time read*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
FUNCTION clock_ms : TIME (*provides a continuous millisecond counter in the TIME data type*)
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION_BLOCK UtcDTGetTime (*reads the current UTC-time in the DATE_AND_TIME data type*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
DT1 :DATE_AND_TIME; (*UTC date and time read*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
FUNCTION_BLOCK UtcDTSetTime (*sets current UTC-time in DATE_AND_TIME data type*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
DT1 :DATE_AND_TIME; (*UTC date and time to be written*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
VAR
|
||||
i_state : UINT; (*internal variable*)
|
||||
i_result : UINT; (*internal variable*)
|
||||
i_tmp : UDINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
FUNCTION_BLOCK UtcDTExSetTime (*sets current UTC-time in DATE_AND_TIME data type*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
DT1 :DATE_AND_TIME; (*UTC date and time to be written*)
|
||||
Option :USINT; (*additional option: timEXSETTIME_NO_OPTION, timEXSETTIME_NO_LOGENTRY*)
|
||||
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
|
||||
|
||||
FUNCTION_BLOCK DTStructureGetTime (*reads the current time in the calendar structure*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pDTStructure :UDINT; (*address of the calendar structure*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
FUNCTION_BLOCK DTStructureSetTime (*sets current time in calendar structure*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pDTStructure :UDINT; (*address of the calendar structure*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
FUNCTION_BLOCK DTStructureExSetTime (*sets current time in calendar structure*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pDTStructure :UDINT; (*address of the calendar structure*)
|
||||
Option :USINT; (*additional option: timEXSETTIME_NO_OPTION, timEXSETTIME_NO_LOGENTRY*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
FUNCTION_BLOCK UtcDTStructureGetTime (*reads the UTC time in the calendar structure*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pDTStructure :UDINT; (*address of the calendar structure*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
FUNCTION_BLOCK UtcDTStructureSetTime (*sets UTC time in calendar structure*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pDTStructure :UDINT; (*address of the calendar structure*)
|
||||
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
|
||||
|
||||
FUNCTION_BLOCK UtcDTStructureExSetTime (*sets UTC time in calendar structure*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pDTStructure :UDINT; (*address of the calendar structure*)
|
||||
Option :USINT; (*additional option: timEXSETTIME_NO_OPTION, timEXSETTIME_NO_LOGENTRY*)
|
||||
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
|
||||
|
||||
FUNCTION_BLOCK UtcDT_TO_LocalDTStructure (*sets current UTC-time in DATE_AND_TIME data type*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
DT1 :DATE_AND_TIME; (*UTC date and time*)
|
||||
pDTStructure :UDINT; (*address of the calendar structure*)
|
||||
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
|
||||
|
||||
FUNCTION_BLOCK LocalDT_TO_UtcDTStructure (*sets current UTC-time in DATE_AND_TIME data type*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
DT1 :DATE_AND_TIME; (*Local date and time*)
|
||||
pDTStructure :UDINT; (*address of the calendar structure*)
|
||||
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
|
||||
|
||||
FUNCTION_BLOCK UtcDTStructure_TO_LocalDT (*sets current UTC-time in DATE_AND_TIME data type*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pDTStructure :UDINT; (*address of the calendar structure*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
DT1 :DATE_AND_TIME; (*Local date and time*)
|
||||
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
|
||||
|
||||
FUNCTION_BLOCK LocalDTStructure_TO_UtcDT (*sets current UTC-time in DATE_AND_TIME data type*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pDTStructure :UDINT; (*address of the calendar structure*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
DT1 :DATE_AND_TIME; (*UTC date and time*)
|
||||
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
|
||||
|
||||
FUNCTION ascTIMEStructure : UDINT (*converts a "time" structure to a character string in the format "15:14:13\0"*)
|
||||
VAR_INPUT
|
||||
pTIMEStructure :UDINT; (*address of the time structure*)
|
||||
pStr :UDINT; (*address of the character field*)
|
||||
len :UDINT; (*length of the character field *)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION ascDTStructure : UDINT (*converts a "date" structure to a character string in the format "Sun Jan 3 15:14:13 1988\0"*)
|
||||
VAR_INPUT
|
||||
pDTStructure :UDINT; (*address of the calendar structure *)
|
||||
pStr :UDINT; (*address of the character field*)
|
||||
len :UDINT; (*length of the character field*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION ascTIME : UDINT (*converts the TIME data type to a character string in the format "15:14:13\0"*)
|
||||
VAR_INPUT
|
||||
TIME1 :TIME; (*time*)
|
||||
pStr :UDINT; (*address of the character field*)
|
||||
len :UDINT; (*length of the character field*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION ascDT : UDINT (*converts the DATE_AND_TIME data type to character string in the format "Sun Jan 3 15:14:13 1988\0"*)
|
||||
VAR_INPUT
|
||||
DT1 :DATE_AND_TIME; (*date and time*)
|
||||
pStr :UDINT; (*address of the character field*)
|
||||
len :UDINT; (*length of the character field*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION TIMEStructure_TO_TIME : TIME (*converts a "time" structure to the TIME data type*)
|
||||
VAR_INPUT
|
||||
pTIMEStructure :UDINT; (*address of the time structure*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION TIME_TO_TIMEStructure : UDINT (*converts the TIME data type to a "time" structure*)
|
||||
VAR_INPUT
|
||||
TIME1 :TIME; (*time*)
|
||||
pTIMEStructure :UDINT; (*address of the calendar structure*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION DTStructure_TO_DT : DATE_AND_TIME (*converts a "date" structure to the DATE_AND_TIME data type*)
|
||||
VAR_INPUT
|
||||
pDTStructure :UDINT; (*address of the calendar structure*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION DT_TO_DTStructure : UDINT (*converts the DATE_AND_TIME data type to a "date" structure*)
|
||||
VAR_INPUT
|
||||
DT1 :DATE_AND_TIME; (*date and time*)
|
||||
pDTStructure :UDINT; (*address of the calendar structure*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION DiffT : UDINT (*shows the difference between two times (TIME data type) expressed in milliseconds*)
|
||||
VAR_INPUT
|
||||
TIME2 :TIME; (*time 2*)
|
||||
TIME1 :TIME; (*time 1*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION DiffDT : UDINT (*shows the difference between two times (DATE_AND_TIME data type) expressed in seconds*)
|
||||
VAR_INPUT
|
||||
DT2 :DATE_AND_TIME; (*date and time 2*)
|
||||
DT1 :DATE_AND_TIME; (*date and time 1*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION_BLOCK TimeDeviceGetInfo (*read information about time device*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pServer :UDINT; (*Pointer to string*)
|
||||
len :USINT; (*length of pServer*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
timeDevice :USINT; (*sntpREAL_TIME_CLOCK or sntpTIME_SERVER*)
|
||||
avgDeviation :REAL; (*average deviation between software time and time device*)
|
||||
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
|
||||
|
||||
FUNCTION_BLOCK DstGetInfo (*read information about time device*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pDTStructure :UDINT; (*Pointer to DTStructure*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
dstState :USINT; (*timDAYLIGHT_SAVING_TIME, timNORMAL_TIME or timNO_DST*)
|
||||
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
|
||||
|
||||
FUNCTION_BLOCK DstGetInfoDT (*read information about time device*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
DT1 :DATE_AND_TIME; (*date and time in UTC*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
dstState :USINT; (*timDAYLIGHT_SAVING_TIME, timNORMAL_TIME or timNO_DST*)
|
||||
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
|
||||
@@ -0,0 +1,31 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- Bernecker + Rainer
|
||||
********************************************************************
|
||||
* Library: astime
|
||||
* File: astime.typ
|
||||
* Author: B+R
|
||||
********************************************************************
|
||||
* Data types of library astime
|
||||
********************************************************************)
|
||||
|
||||
TYPE
|
||||
TIMEStructure : STRUCT (*time structure*)
|
||||
day : SINT ; (*day (1-31)*)
|
||||
hour : USINT ; (*hours (0-23)*)
|
||||
minute : USINT ; (*minutes (0-59)*)
|
||||
second : USINT ; (*seconds (0-59)*)
|
||||
millisec : UINT ; (*milliseconds (0-999)*)
|
||||
microsec : UINT ; (*microseconds (0-999)*)
|
||||
END_STRUCT;
|
||||
DTStructure : STRUCT (*date structure*)
|
||||
year : UINT ; (*year*)
|
||||
month : USINT ; (*month (1-12)*)
|
||||
day : USINT ; (*day (1-31)*)
|
||||
wday : USINT ; (*day of the week (0-6), e.g. 0 = Sunday, 6 = Saturday*)
|
||||
hour : USINT ; (*hours (0-23)*)
|
||||
minute : USINT ; (*minutes (0-59)*)
|
||||
second : USINT ; (*seconds (0-59)*)
|
||||
millisec : UINT ; (*milliseconds (0-999)*)
|
||||
microsec : UINT ; (*microseconds (0-999)*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
@@ -0,0 +1,26 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- Bernecker + Rainer
|
||||
********************************************************************
|
||||
* Library: astime
|
||||
* File: astime.var
|
||||
* Author: B+R
|
||||
********************************************************************
|
||||
* Local variables of library astime
|
||||
********************************************************************)
|
||||
|
||||
VAR CONSTANT
|
||||
timEXSETTIME_NO_LOGENTRY : USINT := 1;
|
||||
timEXSETTIME_NO_OPTION : USINT := 0;
|
||||
DATE_AND_TIME_MAX : UDINT := 4102444799;
|
||||
TIME_MIN : DINT := -2073600000;
|
||||
TIME_MAX : DINT := 2073600000;
|
||||
timNORMAL_TIME : USINT := 1;
|
||||
timDAYLIGHT_SAVING_TIME : USINT := 2;
|
||||
timNO_DST : USINT := 3;
|
||||
timREAL_TIME_CLOCK : USINT := 1;
|
||||
timTIME_SERVER : USINT := 2;
|
||||
timERR_INVALID_PARAMETER : UINT := 33210;
|
||||
timERR_INVALID_LEN : UINT := 33211;
|
||||
timERR_INVALID_DTSTRUCTURE : UINT := 33212;
|
||||
timERR_AR : UINT := 33213;
|
||||
END_VAR
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Library Description="This library contains function interfaces for IEC1131-3 operator functions. For the most part, these are mathematical and logical functions." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>operator.fun</File>
|
||||
</Files>
|
||||
</Library>
|
||||
@@ -0,0 +1,11 @@
|
||||
/****************************************************************************/
|
||||
/* */
|
||||
/* operator.h */
|
||||
/* */
|
||||
/* Automation Studio */
|
||||
/* Copyright Bernecker&Rainer 1998-1999 */
|
||||
/* */
|
||||
/****************************************************************************/
|
||||
|
||||
/* This library does not contain C code */
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
/****************************************************************************/
|
||||
/* */
|
||||
/* operator.h */
|
||||
/* */
|
||||
/* Automation Studio */
|
||||
/* Copyright Bernecker&Rainer 1998-1999 */
|
||||
/* */
|
||||
/****************************************************************************/
|
||||
|
||||
/* This library does not contain C code */
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
/****************************************************************************/
|
||||
/* */
|
||||
/* operator.h */
|
||||
/* */
|
||||
/* Automation Studio */
|
||||
/* Copyright Bernecker&Rainer 1998-1999 */
|
||||
/* */
|
||||
/****************************************************************************/
|
||||
|
||||
/* This library does not contain C code */
|
||||
|
||||
@@ -0,0 +1,231 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- Bernecker + Rainer
|
||||
********************************************************************
|
||||
* Library: operator
|
||||
* File: operator.fun
|
||||
* Author: B+R
|
||||
********************************************************************
|
||||
* Functions and function blocks of library operator
|
||||
********************************************************************)
|
||||
|
||||
FUNCTION SIZEOF : UDINT (*determines the size of a variable in bytes*)
|
||||
VAR_INPUT
|
||||
in :ANY; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION ADR : UDINT (*determines the address of a data point*)
|
||||
VAR_INPUT
|
||||
in :ANY; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION SHR : ANY (*shifts bitwise to the right*)
|
||||
VAR_INPUT
|
||||
IN :ANY; (*input value*)
|
||||
N :SINT; (*number of bits to be shifted*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION ROR : ANY (*rotates bitwise to the right*)
|
||||
VAR_INPUT
|
||||
IN :ANY; (*input value*)
|
||||
N :SINT; (*number of bits to be rotated*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION ROL : ANY (*rotates bitwise to the left*)
|
||||
VAR_INPUT
|
||||
IN :ANY; (*input value*)
|
||||
N :SINT; (*number of bits to be rotated*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION SHL : ANY (*shifts bitwise to the left*)
|
||||
VAR_INPUT
|
||||
IN :ANY; (*input value*)
|
||||
N :SINT; (*number of bits to be shifted*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION AND : ANY (*makes a bitwise AND relation for 2 or more variables*)
|
||||
VAR_INPUT
|
||||
INx :ANY; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION XOR : ANY (*makes a bitwise XOR relation for 2 or more variables*)
|
||||
VAR_INPUT
|
||||
INx :ANY; (*input values*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION OR : ANY (*makes a bitwise OR relation for 2 or more variables*)
|
||||
VAR_INPUT
|
||||
INx :ANY; (*input values*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION NOT : ANY (*makes a bitwise inversion of variables*)
|
||||
VAR_INPUT
|
||||
IN :ANY; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION ADD : ANY (*adds 2 or more variables*)
|
||||
VAR_INPUT
|
||||
INx :ANY; (*input values*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION MUL : ANY_NUM (*multiplies 2 or more variables*)
|
||||
VAR_INPUT
|
||||
INx :ANY_NUM; (*input values*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION SUB : ANY (*subtracts one or more variables from another variable*)
|
||||
VAR_INPUT
|
||||
IN1 :ANY; (*value 1*)
|
||||
IN2 :ANY; (*value 2*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION DIV : ANY_NUM (*divides a variable by one or more variables*)
|
||||
VAR_INPUT
|
||||
IN1 :ANY_NUM; (*dividend*)
|
||||
IN2 :ANY_NUM; (*divisor*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION MOD : ANY_INT (*makes a remainder when dividing a variable by another variable*)
|
||||
VAR_INPUT
|
||||
IN1 :ANY_INT; (*dividend*)
|
||||
IN2 :ANY_INT; (*divisor*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION MOVE : ANY (*copies the contents of the input variables to the corresponding output variables*)
|
||||
VAR_INPUT
|
||||
IN :ANY; (*input variable*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION MAX : ANY (*determines the maximum value of two or more values*)
|
||||
VAR_INPUT
|
||||
IN1 :ANY; (*input value 1*)
|
||||
IN2 :ANY; (*input value 2*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION MIN : ANY (*determines the lowest value of two or more values*)
|
||||
VAR_INPUT
|
||||
IN1 :ANY; (*input value 1*)
|
||||
IN2 :ANY; (*input value 2*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION LIMIT : ANY (*limits a value to within maximum and minimum boundaries*)
|
||||
VAR_INPUT
|
||||
MN :ANY; (*minimum value*)
|
||||
IN :ANY; (*input value*)
|
||||
MX :ANY; (*maximum value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION SEL : ANY (*selects one value from two values*)
|
||||
VAR_INPUT
|
||||
G :BOOL; (*selection variable*)
|
||||
IN0 :ANY; (*input value for FALSE*)
|
||||
IN1 :ANY; (*input value for TRUE*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION MUX : ANY (*selects a value from several values*)
|
||||
VAR_INPUT
|
||||
K :SINT; (*selection variable*)
|
||||
INx :ANY; (*input values*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION GE : BOOL (*checks if the input values are in decreasing order*)
|
||||
VAR_INPUT
|
||||
IN1 :ANY; (*comparison value 1*)
|
||||
IN2 :ANY; (*comparison value 2*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION EQ : BOOL (*compares two or more values whether they are equal*)
|
||||
VAR_INPUT
|
||||
IN1 :ANY; (*comparison value 1*)
|
||||
IN2 :ANY; (*comparison value 2*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION GT : BOOL (*checks if the input values are in decreasing order*)
|
||||
VAR_INPUT
|
||||
IN1 :ANY; (*comparison value 1*)
|
||||
IN2 :ANY; (*comparison value 2*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION LE : BOOL (*checks if the input values are in increasing order*)
|
||||
VAR_INPUT
|
||||
IN1 :ANY; (*comparison value 1*)
|
||||
IN2 :ANY; (*comparison value 2*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION LT : BOOL (*checks if the input values are in increasing order*)
|
||||
VAR_INPUT
|
||||
IN1 :ANY; (*comparison value 1*)
|
||||
IN2 :ANY; (*comparison value 2*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION NE : BOOL (*compares two values whether they are not equal*)
|
||||
VAR_INPUT
|
||||
IN1 :ANY; (*comparison value 1*)
|
||||
IN2 :ANY; (*comparison value 2*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION ABS : ANY_NUM (*returns the absolute value of a number*)
|
||||
VAR_INPUT
|
||||
IN :ANY_NUM; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION SQRT : ANY_REAL (*returns the square root of a number*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION LN : ANY_REAL (*returns the result of a natural logarithm*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION LOG : ANY_REAL (*returns the result of a base 10 logarithm*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION EXP : ANY_REAL (*returns the result of a natural exponential function*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION SIN : ANY_REAL (*returns the sine of a number (calculated in radian)*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value in radian*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION COS : ANY_REAL (*returns the cosine of a number (calculated in radian)*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value in radian*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION TAN : ANY_REAL (*returns the tangent of a number (calculated in radian)*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value in radian*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION ASIN : ANY_REAL (*returns the arc sine (inverse function of sine) of a number (calculated in radian)*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION ACOS : ANY_REAL (*returns the arc cosine (inverse function of cosine) of a number (calculated in radian)*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION ATAN : ANY_REAL (*returns the arc tangent (inverse function of tangent) of a number (calculated in radian)*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION EXPT : REAL (*raises one variable to the power of another*)
|
||||
VAR_INPUT
|
||||
IN1 :REAL; (*base*)
|
||||
IN2 :ANY_NUM; (*exponent*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION TRUNC : INT (*converts from type REAL to type INT (number is always rounded down)*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Library Description="This library contains runtime functions for IEC tasks." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>runtime.var</File>
|
||||
<File>runtime.typ</File>
|
||||
<File>runtime.fun</File>
|
||||
</Files>
|
||||
</Library>
|
||||
@@ -0,0 +1,80 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _RUNTIME_
|
||||
#define _RUNTIME_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#ifndef _IEC_CONST
|
||||
#define _IEC_CONST _WEAK const
|
||||
#endif
|
||||
|
||||
/* Constants */
|
||||
#ifdef _REPLACE_CONST
|
||||
#define ERR_OK 0
|
||||
#define ERR_NOTIMPLEMENTED 9999
|
||||
#define ERR_FUB_ENABLE_FALSE 0xFFFE
|
||||
#define ERR_FUB_BUSY 0xFFFF
|
||||
|
||||
/* IEC 61131-3 Datentypen */
|
||||
#define IEC_DATATYPE_BOOL 1
|
||||
#define IEC_DATATYPE_SINT 2
|
||||
#define IEC_DATATYPE_INT 3
|
||||
#define IEC_DATATYPE_DINT 4
|
||||
#define IEC_DATATYPE_USINT 5
|
||||
#define IEC_DATATYPE_UINT 6
|
||||
#define IEC_DATATYPE_UDINT 7
|
||||
#define IEC_DATATYPE_REAL 8
|
||||
#define IEC_DATATYPE_STRING 9
|
||||
#define IEC_DATATYPE_ULINT 10
|
||||
#define IEC_DATATYPE_DATE_AND_TIME 11
|
||||
#define IEC_DATATYPE_TIME 12
|
||||
#define IEC_DATATYPE_DATE 13
|
||||
#define IEC_DATATYPE_LREAL 14
|
||||
#define IEC_DATATYPE_TIME_OF_DAY 16
|
||||
#define IEC_DATATYPE_BYTE 17
|
||||
#define IEC_DATATYPE_WORD 18
|
||||
#define IEC_DATATYPE_DWORD 19
|
||||
#define IEC_DATATYPE_LWORD 20
|
||||
#define IEC_DATATYPE_WSTRING 21
|
||||
#define IEC_DATATYPE_LINT 23
|
||||
|
||||
#else
|
||||
_IEC_CONST unsigned short ERR_OK = 0U;
|
||||
_IEC_CONST unsigned short ERR_NOTIMPLEMENTED = 9999U;
|
||||
_IEC_CONST unsigned short ERR_FUB_ENABLE_FALSE = 0xFFFEU;
|
||||
_IEC_CONST unsigned short ERR_FUB_BUSY = 0xFFFFU;
|
||||
|
||||
/* IEC 61131-3 Datentypen */
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_BOOL = 1;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_SINT = 2;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_INT = 3;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_DINT = 4;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_USINT = 5;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_UINT = 6;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_UDINT = 7;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_REAL = 8;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_STRING = 9;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_ULINT = 10;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_DATE_AND_TIME = 11;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_TIME = 12;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_DATE = 13;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_LREAL = 14;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_TIME_OF_DAY = 16;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_BYTE = 17;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_WORD = 18;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_DWORD = 19;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_LWORD = 20;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_WSTRING = 21;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_LINT = 23;
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _RUNTIME_ */
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _RUNTIME_
|
||||
#define _RUNTIME_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#ifndef _IEC_CONST
|
||||
#define _IEC_CONST _WEAK const
|
||||
#endif
|
||||
|
||||
/* Constants */
|
||||
#ifdef _REPLACE_CONST
|
||||
#define ERR_OK 0
|
||||
#define ERR_NOTIMPLEMENTED 9999
|
||||
#define ERR_FUB_ENABLE_FALSE 0xFFFE
|
||||
#define ERR_FUB_BUSY 0xFFFF
|
||||
|
||||
/* IEC 61131-3 Datentypen */
|
||||
#define IEC_DATATYPE_BOOL 1
|
||||
#define IEC_DATATYPE_SINT 2
|
||||
#define IEC_DATATYPE_INT 3
|
||||
#define IEC_DATATYPE_DINT 4
|
||||
#define IEC_DATATYPE_USINT 5
|
||||
#define IEC_DATATYPE_UINT 6
|
||||
#define IEC_DATATYPE_UDINT 7
|
||||
#define IEC_DATATYPE_REAL 8
|
||||
#define IEC_DATATYPE_STRING 9
|
||||
#define IEC_DATATYPE_ULINT 10
|
||||
#define IEC_DATATYPE_DATE_AND_TIME 11
|
||||
#define IEC_DATATYPE_TIME 12
|
||||
#define IEC_DATATYPE_DATE 13
|
||||
#define IEC_DATATYPE_LREAL 14
|
||||
#define IEC_DATATYPE_TIME_OF_DAY 16
|
||||
#define IEC_DATATYPE_BYTE 17
|
||||
#define IEC_DATATYPE_WORD 18
|
||||
#define IEC_DATATYPE_DWORD 19
|
||||
#define IEC_DATATYPE_LWORD 20
|
||||
#define IEC_DATATYPE_WSTRING 21
|
||||
#define IEC_DATATYPE_LINT 23
|
||||
|
||||
#else
|
||||
_IEC_CONST unsigned short ERR_OK = 0U;
|
||||
_IEC_CONST unsigned short ERR_NOTIMPLEMENTED = 9999U;
|
||||
_IEC_CONST unsigned short ERR_FUB_ENABLE_FALSE = 0xFFFEU;
|
||||
_IEC_CONST unsigned short ERR_FUB_BUSY = 0xFFFFU;
|
||||
|
||||
/* IEC 61131-3 Datentypen */
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_BOOL = 1;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_SINT = 2;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_INT = 3;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_DINT = 4;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_USINT = 5;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_UINT = 6;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_UDINT = 7;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_REAL = 8;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_STRING = 9;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_ULINT = 10;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_DATE_AND_TIME = 11;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_TIME = 12;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_DATE = 13;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_LREAL = 14;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_TIME_OF_DAY = 16;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_BYTE = 17;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_WORD = 18;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_DWORD = 19;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_LWORD = 20;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_WSTRING = 21;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_LINT = 23;
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _RUNTIME_ */
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _RUNTIME_
|
||||
#define _RUNTIME_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#ifndef _IEC_CONST
|
||||
#define _IEC_CONST _WEAK const
|
||||
#endif
|
||||
|
||||
/* Constants */
|
||||
#ifdef _REPLACE_CONST
|
||||
#define ERR_OK 0
|
||||
#define ERR_NOTIMPLEMENTED 9999
|
||||
#define ERR_FUB_ENABLE_FALSE 0xFFFE
|
||||
#define ERR_FUB_BUSY 0xFFFF
|
||||
|
||||
/* IEC 61131-3 Datentypen */
|
||||
#define IEC_DATATYPE_BOOL 1
|
||||
#define IEC_DATATYPE_SINT 2
|
||||
#define IEC_DATATYPE_INT 3
|
||||
#define IEC_DATATYPE_DINT 4
|
||||
#define IEC_DATATYPE_USINT 5
|
||||
#define IEC_DATATYPE_UINT 6
|
||||
#define IEC_DATATYPE_UDINT 7
|
||||
#define IEC_DATATYPE_REAL 8
|
||||
#define IEC_DATATYPE_STRING 9
|
||||
#define IEC_DATATYPE_ULINT 10
|
||||
#define IEC_DATATYPE_DATE_AND_TIME 11
|
||||
#define IEC_DATATYPE_TIME 12
|
||||
#define IEC_DATATYPE_DATE 13
|
||||
#define IEC_DATATYPE_LREAL 14
|
||||
#define IEC_DATATYPE_TIME_OF_DAY 16
|
||||
#define IEC_DATATYPE_BYTE 17
|
||||
#define IEC_DATATYPE_WORD 18
|
||||
#define IEC_DATATYPE_DWORD 19
|
||||
#define IEC_DATATYPE_LWORD 20
|
||||
#define IEC_DATATYPE_WSTRING 21
|
||||
#define IEC_DATATYPE_LINT 23
|
||||
|
||||
#else
|
||||
_IEC_CONST unsigned short ERR_OK = 0U;
|
||||
_IEC_CONST unsigned short ERR_NOTIMPLEMENTED = 9999U;
|
||||
_IEC_CONST unsigned short ERR_FUB_ENABLE_FALSE = 0xFFFEU;
|
||||
_IEC_CONST unsigned short ERR_FUB_BUSY = 0xFFFFU;
|
||||
|
||||
/* IEC 61131-3 Datentypen */
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_BOOL = 1;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_SINT = 2;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_INT = 3;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_DINT = 4;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_USINT = 5;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_UINT = 6;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_UDINT = 7;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_REAL = 8;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_STRING = 9;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_ULINT = 10;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_DATE_AND_TIME = 11;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_TIME = 12;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_DATE = 13;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_LREAL = 14;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_TIME_OF_DAY = 16;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_BYTE = 17;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_WORD = 18;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_DWORD = 19;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_LWORD = 20;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_WSTRING = 21;
|
||||
_IEC_CONST unsigned short IEC_DATATYPE_LINT = 23;
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _RUNTIME_ */
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- Bernecker + Rainer
|
||||
********************************************************************
|
||||
* Library: runtime
|
||||
* File: runtime.fun
|
||||
* Author: B+R
|
||||
********************************************************************
|
||||
* Functions and function blocks of library runtime
|
||||
********************************************************************)
|
||||
|
||||
FUNCTION_BLOCK r_trig (*for internal use only - do not use this function in user programs*)
|
||||
VAR_INPUT
|
||||
CLK :BOOL;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
M :BOOL;
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK f_trig (*for internal use only - do not use this function in user programs*)
|
||||
VAR_INPUT
|
||||
CLK :BOOL;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
M :BOOL;
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK rf_trig (*for internal use only - do not use this function in user programs*)
|
||||
VAR_INPUT
|
||||
CLK :BOOL;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
M :BOOL;
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION GetTime : TIME (*for internal use only - do not use this function in user programs*)
|
||||
END_FUNCTION
|
||||
FUNCTION_BLOCK SFCActionControl (*for internal use only - do not use this function in user programs*)
|
||||
VAR_INPUT
|
||||
N :BOOL;
|
||||
R0 :BOOL;
|
||||
S0 :BOOL;
|
||||
L :BOOL;
|
||||
D :BOOL;
|
||||
P :BOOL;
|
||||
SD :BOOL;
|
||||
DS :BOOL;
|
||||
SL :BOOL;
|
||||
T :TIME;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
S_FF_SET :USINT;
|
||||
S_FF_R1 :USINT;
|
||||
S_FF_Q :USINT;
|
||||
dummy1 :USINT;
|
||||
L_TMR_PT :TIME;
|
||||
L_TMR_ET :TIME;
|
||||
L_TMR_STAR :TIME;
|
||||
L_TMR_IN :USINT;
|
||||
L_TMR_Q :USINT;
|
||||
L_TMR_M :USINT;
|
||||
dummy2 :USINT;
|
||||
D_TMR_PT :TIME;
|
||||
D_TMR_ET :TIME;
|
||||
D_TMR_STAR :TIME;
|
||||
D_TMR_IN :USINT;
|
||||
D_TMR_Q :USINT;
|
||||
D_TMR_M :USINT;
|
||||
dummy3 :USINT;
|
||||
P_TRIG_CLK :USINT;
|
||||
P_TRIG_Q :USINT;
|
||||
P_TRIG_M :USINT;
|
||||
dummy4 :USINT;
|
||||
SD_TMR_PT :TIME;
|
||||
SD_TMR_ET :TIME;
|
||||
SD_TMR_STA :TIME;
|
||||
SD_TMR_IN :USINT;
|
||||
SD_TMR_Q :USINT;
|
||||
SD_TMR_M :USINT;
|
||||
dummy5 :USINT;
|
||||
SD_FF_SET :USINT;
|
||||
SD_FF_R1 :USINT;
|
||||
SD_FF_Q :USINT;
|
||||
DS_FF_SET :USINT;
|
||||
DS_FF_R1 :USINT;
|
||||
DS_FF_Q :USINT;
|
||||
DS_TMR_PT :TIME;
|
||||
DS_TMR_ET :TIME;
|
||||
DS_TMR_STA :TIME;
|
||||
DS_TMR_IN :USINT;
|
||||
DS_TMR_Q :USINT;
|
||||
DS_TMR_M :USINT;
|
||||
dummy6 :USINT;
|
||||
SL_FF_SET :USINT;
|
||||
SL_FF_R1 :USINT;
|
||||
SL_FF_Q :USINT;
|
||||
dummy7 :USINT;
|
||||
SL_TMR_PT :TIME;
|
||||
SL_TMR_ET :TIME;
|
||||
SL_TMR_STA :TIME;
|
||||
SL_TMR_IN :USINT;
|
||||
SL_TMR_Q :USINT;
|
||||
SL_TMR_M :USINT;
|
||||
dummy8 :USINT;
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK SFCAC2 (*for internal use only - do not use this function in user programs*)
|
||||
VAR_INPUT
|
||||
N :BOOL;
|
||||
R0 :BOOL;
|
||||
S0 :BOOL;
|
||||
L :BOOL;
|
||||
D :BOOL;
|
||||
P :BOOL;
|
||||
P1 :BOOL;
|
||||
P0 :BOOL;
|
||||
SD :BOOL;
|
||||
DS :BOOL;
|
||||
SL :BOOL;
|
||||
T :TIME;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL;
|
||||
A :BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
S_FF_SET :USINT;
|
||||
S_FF_R1 :USINT;
|
||||
S_FF_Q :USINT;
|
||||
L_TMR_PT :TIME;
|
||||
L_TMR_ET :TIME;
|
||||
L_TMR_STAR :TIME;
|
||||
L_TMR_IN :USINT;
|
||||
L_TMR_Q :USINT;
|
||||
L_TMR_M :USINT;
|
||||
D_TMR_PT :TIME;
|
||||
D_TMR_ET :TIME;
|
||||
D_TMR_STAR :TIME;
|
||||
D_TMR_IN :USINT;
|
||||
D_TMR_Q :USINT;
|
||||
D_TMR_M :USINT;
|
||||
SD_TMR_PT :TIME;
|
||||
SD_TMR_ET :TIME;
|
||||
SD_TMR_STA :TIME;
|
||||
SD_TMR_IN :USINT;
|
||||
SD_TMR_Q :USINT;
|
||||
SD_TMR_M :USINT;
|
||||
SD_FF_SET :USINT;
|
||||
SD_FF_R1 :USINT;
|
||||
SD_FF_Q1 :USINT;
|
||||
DS_FF_SET :USINT;
|
||||
DS_FF_R1 :USINT;
|
||||
DS_FF_Q1 :USINT;
|
||||
DS_TMR_PT :TIME;
|
||||
DS_TMR_ET :TIME;
|
||||
DS_TMR_STA :TIME;
|
||||
DS_TMR_IN :USINT;
|
||||
DS_TMR_Q :USINT;
|
||||
DS_TMR_M :USINT;
|
||||
SL_FF_SET :USINT;
|
||||
SL_FF_R1 :USINT;
|
||||
SL_FF_Q :USINT;
|
||||
SL_TMR_PT :TIME;
|
||||
SL_TMR_ET :TIME;
|
||||
SL_TMR_STA :TIME;
|
||||
SL_TMR_IN :USINT;
|
||||
SL_TMR_Q :USINT;
|
||||
SL_TMR_M :USINT;
|
||||
P_TRIG_Q :USINT;
|
||||
P_TRIG_M :USINT;
|
||||
Q_TRIG_Q :USINT;
|
||||
Q_TRIG_M :USINT;
|
||||
P1_TRIG_Q :USINT;
|
||||
P1_TRIG_M :USINT;
|
||||
P0_TRIG_Q :USINT;
|
||||
P0_TRIG_M :USINT;
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
@@ -0,0 +1,78 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- Bernecker + Rainer
|
||||
********************************************************************
|
||||
* Library: runtime
|
||||
* File: runtime.typ
|
||||
* Author: B+R
|
||||
********************************************************************
|
||||
* Data types of library runtime
|
||||
********************************************************************)
|
||||
|
||||
TYPE
|
||||
SFCActionType : STRUCT (*internal use*)
|
||||
x : BOOL ;
|
||||
_x : BOOL ;
|
||||
t : TIME ;
|
||||
_t : TIME ;
|
||||
AC : SFCActionControl;
|
||||
END_STRUCT;
|
||||
SFCActionType2 : STRUCT (*internal use*)
|
||||
x : BOOL ;
|
||||
_x : BOOL ;
|
||||
AC : SFCAC2 ;
|
||||
END_STRUCT;
|
||||
SFCActionCType : STRUCT (*internal use*)
|
||||
x : BOOL ;
|
||||
_x : BOOL ;
|
||||
force : BOOL ;
|
||||
_force : BOOL ;
|
||||
active : BOOL ;
|
||||
_active : BOOL ;
|
||||
AC : SFCActionControl ;
|
||||
END_STRUCT;
|
||||
SFCActionCType2 : STRUCT (*internal use*)
|
||||
x : BOOL ;
|
||||
_x : BOOL ;
|
||||
force : BOOL ;
|
||||
_force : BOOL ;
|
||||
active : BOOL ;
|
||||
_active : BOOL ;
|
||||
AC : SFCAC2 ;
|
||||
END_STRUCT;
|
||||
SFCStepType : STRUCT (*internal use*)
|
||||
x : BOOL ;
|
||||
t : TIME ;
|
||||
_x : BOOL ;
|
||||
_t : TIME ;
|
||||
END_STRUCT;
|
||||
SFCStepCType : STRUCT (*internal use*)
|
||||
t : TIME ;
|
||||
_t : TIME ;
|
||||
inactive_actions : UDINT ;
|
||||
_inactive_actions : UDINT ;
|
||||
x : BOOL ;
|
||||
_x : BOOL ;
|
||||
force : BOOL ;
|
||||
_force : BOOL ;
|
||||
active : BOOL ;
|
||||
_active : BOOL ;
|
||||
error : BOOL ;
|
||||
END_STRUCT;
|
||||
SFCSimpleStepCType : STRUCT (*internal use*)
|
||||
t : TIME ;
|
||||
_t : TIME ;
|
||||
x : BOOL ;
|
||||
_x : BOOL ;
|
||||
force : BOOL ;
|
||||
_force : BOOL ;
|
||||
active : BOOL ;
|
||||
_active : BOOL ;
|
||||
error : BOOL ;
|
||||
END_STRUCT;
|
||||
SFCTransitionCType : STRUCT (*internal use*)
|
||||
force : BOOL ;
|
||||
_force : BOOL ;
|
||||
active : BOOL ;
|
||||
_active : BOOL ;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
@@ -0,0 +1,42 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- Bernecker + Rainer
|
||||
********************************************************************
|
||||
* Library: runtime
|
||||
* File: runtime.var
|
||||
* Author: B+R
|
||||
********************************************************************
|
||||
* Local variables of library runtime
|
||||
********************************************************************)
|
||||
|
||||
(*Common Functionblock Status*)
|
||||
VAR CONSTANT
|
||||
ERR_OK : UINT := 0; (*no error*)
|
||||
ERR_NOTIMPLEMENTED : UINT := 9999; (*function or function block not implemented*)
|
||||
ERR_FUB_ENABLE_FALSE : UINT := 16#FFFE; (*function block parameter "enable" is FALSE*)
|
||||
ERR_FUB_BUSY : UINT := 16#FFFF; (*function block still working*)
|
||||
END_VAR
|
||||
|
||||
(*IEC 61131-3 Datatypes*)
|
||||
VAR CONSTANT
|
||||
IEC_DATATYPE_BOOL : UINT := 1; (*8 Bit containing a boolean value FALSE=0 or TRUE=1*)
|
||||
IEC_DATATYPE_SINT : UINT := 2; (*8 Bit signed integer*)
|
||||
IEC_DATATYPE_INT : UINT := 3; (*16 Bit signed integer*)
|
||||
IEC_DATATYPE_DINT : UINT := 4; (*32 Bit signed integer*)
|
||||
IEC_DATATYPE_USINT : UINT := 5; (*8 Bit unsigned integer*)
|
||||
IEC_DATATYPE_UINT : UINT := 6; (*16 Bit unsigned integer*)
|
||||
IEC_DATATYPE_UDINT : UINT := 7; (*32 Bit unsigned integer*)
|
||||
IEC_DATATYPE_REAL : UINT := 8; (*32 Bit floating point number*)
|
||||
IEC_DATATYPE_STRING : UINT := 9; (*Variable-length single-byte character string*)
|
||||
IEC_DATATYPE_ULINT : UINT := 10; (*64 Bit unsigned integer*)
|
||||
IEC_DATATYPE_DATE_AND_TIME : UINT := 11; (*32 Bit of Date in Seconds since 01.01.1970 00:00:00*)
|
||||
IEC_DATATYPE_TIME : UINT := 12; (*32 Bit of Time in ms*)
|
||||
IEC_DATATYPE_DATE : UINT := 13; (*32 Bit of Date (only)*)
|
||||
IEC_DATATYPE_LREAL : UINT := 14; (*64 Bit floating point number*)
|
||||
IEC_DATATYPE_TIME_OF_DAY: UINT := 16; (*32 Bit Time of day (only)*)
|
||||
IEC_DATATYPE_BYTE : UINT := 17; (*Bit string of length 8*)
|
||||
IEC_DATATYPE_WORD : UINT := 18; (*Bit string of length 16*)
|
||||
IEC_DATATYPE_DWORD : UINT := 19; (*Bit string of length 32*)
|
||||
IEC_DATATYPE_LWORD : UINT := 20; (*Bit string of length 64*)
|
||||
IEC_DATATYPE_WSTRING : UINT := 21; (*Variable-length double-byte character string*)
|
||||
IEC_DATATYPE_LINT : UINT := 23; (*64 Bit signed integer*)
|
||||
END_VAR
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Library Description="This library contains standard function blocks and funtions for IEC 1131-3." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>standard.fun</File>
|
||||
</Files>
|
||||
</Library>
|
||||
@@ -0,0 +1,262 @@
|
||||
/* Automation Studio Generated Header File, Format Version 1.00 */
|
||||
/* do not change */
|
||||
#ifndef STANDARD_H_
|
||||
#define STANDARD_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#include <bur/plc.h>
|
||||
|
||||
#define TP_10mstyp TP_10ms_typ
|
||||
#define TOF_10mstyp TOF_10ms_typ
|
||||
#define TON_10mstyp TON_10ms_typ
|
||||
#define TPtyp TP_typ
|
||||
#define TOFtyp TOF_typ
|
||||
#define TONtyp TON_typ
|
||||
#define SEMAtyp SEMA_typ
|
||||
#define RStyp RS_typ
|
||||
#define SRtyp SR_typ
|
||||
#define R_TRIGtyp R_TRIG_typ
|
||||
#define F_TRIGtyp F_TRIG_typ
|
||||
#define CTUtyp CTU_typ
|
||||
#define CTDtyp CTD_typ
|
||||
#define CTUDtyp CTUD_typ
|
||||
#define RF_TRIGtyp RF_TRIG_typ
|
||||
|
||||
/* Constants */
|
||||
|
||||
|
||||
/* Datatypes */
|
||||
|
||||
|
||||
/* Datatypes of function blocks */
|
||||
typedef struct TP_10ms
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned long PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned long ET;
|
||||
/* VAR (analogous) */
|
||||
unsigned long StartTime;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
} TP_10ms_typ;
|
||||
|
||||
typedef struct TOF_10ms
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned long PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned long ET;
|
||||
/* VAR (analogous) */
|
||||
unsigned long StartTime;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} TOF_10ms_typ;
|
||||
|
||||
typedef struct TON_10ms
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned long PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned long ET;
|
||||
/* VAR (analogous) */
|
||||
unsigned long StartTime;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} TON_10ms_typ;
|
||||
|
||||
typedef struct TP
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
plctime PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
plctime ET;
|
||||
/* VAR (analogous) */
|
||||
plctime StartTime;
|
||||
unsigned long Restart;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
} TP_typ;
|
||||
|
||||
typedef struct TOF
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
plctime PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
plctime ET;
|
||||
/* VAR (analogous) */
|
||||
plctime StartTime;
|
||||
unsigned long Restart;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} TOF_typ;
|
||||
|
||||
typedef struct TON
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
plctime PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
plctime ET;
|
||||
/* VAR (analogous) */
|
||||
plctime StartTime;
|
||||
unsigned long Restart;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} TON_typ;
|
||||
|
||||
typedef struct SEMA
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CLAIM;
|
||||
plcbit RELEASE;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit BUSY;
|
||||
/* VAR (digital) */
|
||||
plcbit X;
|
||||
} SEMA_typ;
|
||||
|
||||
typedef struct RS
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit SET;
|
||||
plcbit RESET1;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q1;
|
||||
} RS_typ;
|
||||
|
||||
typedef struct SR
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit SET1;
|
||||
plcbit RESET;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q1;
|
||||
} SR_typ;
|
||||
|
||||
typedef struct R_TRIG
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CLK;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} R_TRIG_typ;
|
||||
|
||||
typedef struct F_TRIG
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CLK;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} F_TRIG_typ;
|
||||
|
||||
typedef struct CTU
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned short PV;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned short CV;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CU;
|
||||
plcbit RESET;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} CTU_typ;
|
||||
|
||||
typedef struct CTD
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned short PV;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned short CV;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CD;
|
||||
plcbit LOAD;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} CTD_typ;
|
||||
|
||||
typedef struct CTUD
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
signed short PV;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
signed short CV;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CU;
|
||||
plcbit CD;
|
||||
plcbit RESET;
|
||||
plcbit LOAD;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit QU;
|
||||
plcbit QD;
|
||||
/* VAR (digital) */
|
||||
plcbit MU;
|
||||
plcbit MD;
|
||||
} CTUD_typ;
|
||||
|
||||
typedef struct RF_TRIG
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CLK;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} RF_TRIG_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
void TP_10ms(TP_10ms_typ* inst);
|
||||
void TOF_10ms(TOF_10ms_typ* inst);
|
||||
void TON_10ms(TON_10ms_typ* inst);
|
||||
void TP(TP_typ* inst);
|
||||
void TOF(TOF_typ* inst);
|
||||
void TON(TON_typ* inst);
|
||||
void SEMA(SEMA_typ* inst);
|
||||
void RS(RS_typ* inst);
|
||||
void SR(SR_typ* inst);
|
||||
void R_TRIG(R_TRIG_typ* inst);
|
||||
void F_TRIG(F_TRIG_typ* inst);
|
||||
void CTU(CTU_typ* inst);
|
||||
void CTD(CTD_typ* inst);
|
||||
void CTUD(CTUD_typ* inst);
|
||||
void RF_TRIG(RF_TRIG_typ* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* STANDARD_H_ */
|
||||
|
||||
@@ -0,0 +1,262 @@
|
||||
/* Automation Studio Generated Header File, Format Version 1.00 */
|
||||
/* do not change */
|
||||
#ifndef STANDARD_H_
|
||||
#define STANDARD_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#include <bur/plc.h>
|
||||
|
||||
#define TP_10mstyp TP_10ms_typ
|
||||
#define TOF_10mstyp TOF_10ms_typ
|
||||
#define TON_10mstyp TON_10ms_typ
|
||||
#define TPtyp TP_typ
|
||||
#define TOFtyp TOF_typ
|
||||
#define TONtyp TON_typ
|
||||
#define SEMAtyp SEMA_typ
|
||||
#define RStyp RS_typ
|
||||
#define SRtyp SR_typ
|
||||
#define R_TRIGtyp R_TRIG_typ
|
||||
#define F_TRIGtyp F_TRIG_typ
|
||||
#define CTUtyp CTU_typ
|
||||
#define CTDtyp CTD_typ
|
||||
#define CTUDtyp CTUD_typ
|
||||
#define RF_TRIGtyp RF_TRIG_typ
|
||||
|
||||
/* Constants */
|
||||
|
||||
|
||||
/* Datatypes */
|
||||
|
||||
|
||||
/* Datatypes of function blocks */
|
||||
typedef struct TP_10ms
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned long PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned long ET;
|
||||
/* VAR (analogous) */
|
||||
unsigned long StartTime;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
} TP_10ms_typ;
|
||||
|
||||
typedef struct TOF_10ms
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned long PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned long ET;
|
||||
/* VAR (analogous) */
|
||||
unsigned long StartTime;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} TOF_10ms_typ;
|
||||
|
||||
typedef struct TON_10ms
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned long PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned long ET;
|
||||
/* VAR (analogous) */
|
||||
unsigned long StartTime;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} TON_10ms_typ;
|
||||
|
||||
typedef struct TP
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
plctime PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
plctime ET;
|
||||
/* VAR (analogous) */
|
||||
plctime StartTime;
|
||||
unsigned long Restart;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
} TP_typ;
|
||||
|
||||
typedef struct TOF
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
plctime PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
plctime ET;
|
||||
/* VAR (analogous) */
|
||||
plctime StartTime;
|
||||
unsigned long Restart;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} TOF_typ;
|
||||
|
||||
typedef struct TON
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
plctime PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
plctime ET;
|
||||
/* VAR (analogous) */
|
||||
plctime StartTime;
|
||||
unsigned long Restart;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} TON_typ;
|
||||
|
||||
typedef struct SEMA
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CLAIM;
|
||||
plcbit RELEASE;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit BUSY;
|
||||
/* VAR (digital) */
|
||||
plcbit X;
|
||||
} SEMA_typ;
|
||||
|
||||
typedef struct RS
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit SET;
|
||||
plcbit RESET1;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q1;
|
||||
} RS_typ;
|
||||
|
||||
typedef struct SR
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit SET1;
|
||||
plcbit RESET;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q1;
|
||||
} SR_typ;
|
||||
|
||||
typedef struct R_TRIG
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CLK;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} R_TRIG_typ;
|
||||
|
||||
typedef struct F_TRIG
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CLK;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} F_TRIG_typ;
|
||||
|
||||
typedef struct CTU
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned short PV;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned short CV;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CU;
|
||||
plcbit RESET;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} CTU_typ;
|
||||
|
||||
typedef struct CTD
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned short PV;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned short CV;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CD;
|
||||
plcbit LOAD;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} CTD_typ;
|
||||
|
||||
typedef struct CTUD
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
signed short PV;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
signed short CV;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CU;
|
||||
plcbit CD;
|
||||
plcbit RESET;
|
||||
plcbit LOAD;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit QU;
|
||||
plcbit QD;
|
||||
/* VAR (digital) */
|
||||
plcbit MU;
|
||||
plcbit MD;
|
||||
} CTUD_typ;
|
||||
|
||||
typedef struct RF_TRIG
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CLK;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} RF_TRIG_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
void TP_10ms(TP_10ms_typ* inst);
|
||||
void TOF_10ms(TOF_10ms_typ* inst);
|
||||
void TON_10ms(TON_10ms_typ* inst);
|
||||
void TP(TP_typ* inst);
|
||||
void TOF(TOF_typ* inst);
|
||||
void TON(TON_typ* inst);
|
||||
void SEMA(SEMA_typ* inst);
|
||||
void RS(RS_typ* inst);
|
||||
void SR(SR_typ* inst);
|
||||
void R_TRIG(R_TRIG_typ* inst);
|
||||
void F_TRIG(F_TRIG_typ* inst);
|
||||
void CTU(CTU_typ* inst);
|
||||
void CTD(CTD_typ* inst);
|
||||
void CTUD(CTUD_typ* inst);
|
||||
void RF_TRIG(RF_TRIG_typ* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* STANDARD_H_ */
|
||||
|
||||
@@ -0,0 +1,262 @@
|
||||
/* Automation Studio Generated Header File, Format Version 1.00 */
|
||||
/* do not change */
|
||||
#ifndef STANDARD_H_
|
||||
#define STANDARD_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#include <bur/plc.h>
|
||||
|
||||
#define TP_10mstyp TP_10ms_typ
|
||||
#define TOF_10mstyp TOF_10ms_typ
|
||||
#define TON_10mstyp TON_10ms_typ
|
||||
#define TPtyp TP_typ
|
||||
#define TOFtyp TOF_typ
|
||||
#define TONtyp TON_typ
|
||||
#define SEMAtyp SEMA_typ
|
||||
#define RStyp RS_typ
|
||||
#define SRtyp SR_typ
|
||||
#define R_TRIGtyp R_TRIG_typ
|
||||
#define F_TRIGtyp F_TRIG_typ
|
||||
#define CTUtyp CTU_typ
|
||||
#define CTDtyp CTD_typ
|
||||
#define CTUDtyp CTUD_typ
|
||||
#define RF_TRIGtyp RF_TRIG_typ
|
||||
|
||||
/* Constants */
|
||||
|
||||
|
||||
/* Datatypes */
|
||||
|
||||
|
||||
/* Datatypes of function blocks */
|
||||
typedef struct TP_10ms
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned long PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned long ET;
|
||||
/* VAR (analogous) */
|
||||
unsigned long StartTime;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
} TP_10ms_typ;
|
||||
|
||||
typedef struct TOF_10ms
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned long PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned long ET;
|
||||
/* VAR (analogous) */
|
||||
unsigned long StartTime;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} TOF_10ms_typ;
|
||||
|
||||
typedef struct TON_10ms
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned long PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned long ET;
|
||||
/* VAR (analogous) */
|
||||
unsigned long StartTime;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} TON_10ms_typ;
|
||||
|
||||
typedef struct TP
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
plctime PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
plctime ET;
|
||||
/* VAR (analogous) */
|
||||
plctime StartTime;
|
||||
unsigned long Restart;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
} TP_typ;
|
||||
|
||||
typedef struct TOF
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
plctime PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
plctime ET;
|
||||
/* VAR (analogous) */
|
||||
plctime StartTime;
|
||||
unsigned long Restart;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} TOF_typ;
|
||||
|
||||
typedef struct TON
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
plctime PT;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
plctime ET;
|
||||
/* VAR (analogous) */
|
||||
plctime StartTime;
|
||||
unsigned long Restart;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit IN;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} TON_typ;
|
||||
|
||||
typedef struct SEMA
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CLAIM;
|
||||
plcbit RELEASE;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit BUSY;
|
||||
/* VAR (digital) */
|
||||
plcbit X;
|
||||
} SEMA_typ;
|
||||
|
||||
typedef struct RS
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit SET;
|
||||
plcbit RESET1;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q1;
|
||||
} RS_typ;
|
||||
|
||||
typedef struct SR
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit SET1;
|
||||
plcbit RESET;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q1;
|
||||
} SR_typ;
|
||||
|
||||
typedef struct R_TRIG
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CLK;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} R_TRIG_typ;
|
||||
|
||||
typedef struct F_TRIG
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CLK;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} F_TRIG_typ;
|
||||
|
||||
typedef struct CTU
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned short PV;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned short CV;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CU;
|
||||
plcbit RESET;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} CTU_typ;
|
||||
|
||||
typedef struct CTD
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
unsigned short PV;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
unsigned short CV;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CD;
|
||||
plcbit LOAD;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} CTD_typ;
|
||||
|
||||
typedef struct CTUD
|
||||
{
|
||||
/* VAR_INPUT (analogous) */
|
||||
signed short PV;
|
||||
/* VAR_OUTPUT (analogous) */
|
||||
signed short CV;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CU;
|
||||
plcbit CD;
|
||||
plcbit RESET;
|
||||
plcbit LOAD;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit QU;
|
||||
plcbit QD;
|
||||
/* VAR (digital) */
|
||||
plcbit MU;
|
||||
plcbit MD;
|
||||
} CTUD_typ;
|
||||
|
||||
typedef struct RF_TRIG
|
||||
{
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit CLK;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
/* VAR (digital) */
|
||||
plcbit M;
|
||||
} RF_TRIG_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
void TP_10ms(TP_10ms_typ* inst);
|
||||
void TOF_10ms(TOF_10ms_typ* inst);
|
||||
void TON_10ms(TON_10ms_typ* inst);
|
||||
void TP(TP_typ* inst);
|
||||
void TOF(TOF_typ* inst);
|
||||
void TON(TON_typ* inst);
|
||||
void SEMA(SEMA_typ* inst);
|
||||
void RS(RS_typ* inst);
|
||||
void SR(SR_typ* inst);
|
||||
void R_TRIG(R_TRIG_typ* inst);
|
||||
void F_TRIG(F_TRIG_typ* inst);
|
||||
void CTU(CTU_typ* inst);
|
||||
void CTD(CTD_typ* inst);
|
||||
void CTUD(CTUD_typ* inst);
|
||||
void RF_TRIG(RF_TRIG_typ* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* STANDARD_H_ */
|
||||
|
||||
@@ -0,0 +1,262 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- Bernecker + Rainer
|
||||
********************************************************************
|
||||
* Library: standard
|
||||
* File: standard.fun
|
||||
* Author: B+R
|
||||
********************************************************************
|
||||
* Functions and function blocks of library standard
|
||||
********************************************************************)
|
||||
|
||||
FUNCTION_BLOCK RF_TRIG (*recognizes both edges of BOOL values*)
|
||||
VAR_INPUT
|
||||
CLK :BOOL; (*input signal of the edge to be recognized*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL; (*TRUE if the input signal was FALSE on the last call and is now TRUE*)
|
||||
END_VAR
|
||||
VAR
|
||||
M :BOOL; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK CTUD (*counts upward or downward*)
|
||||
VAR_INPUT
|
||||
CU :BOOL; (*counter CV is increased by 1 by CU when the edge is rising*)
|
||||
CD :BOOL; (*counter CV is reduced by 1 by CD when the edge is rising*)
|
||||
RESET :BOOL; (*counter CV is set to 0 if RESET is TRUE*)
|
||||
LOAD :BOOL; (*if LOAD is TRUE, then counter CV is initialized with the starting value PV*)
|
||||
PV :INT; (*start value*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
QU :BOOL; (*is TRUE if CV is greater than or equal to PV*)
|
||||
QD :BOOL; (*is TRUE if CV equals 0*)
|
||||
CV :INT; (*counter*)
|
||||
END_VAR
|
||||
VAR
|
||||
MU :BOOL; (*internal variable*)
|
||||
MD :BOOL; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK CTD (*counts downward*)
|
||||
VAR_INPUT
|
||||
CD :BOOL; (*counter CV is reduced by 1 by CD when the edge is rising*)
|
||||
LOAD :BOOL; (*if LOAD is TRUE, then counter CV is initialized with the starting value PV*)
|
||||
PV :UINT; (*start value*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL; (*is TRUE if CV equals 0*)
|
||||
CV :UINT; (*counter*)
|
||||
END_VAR
|
||||
VAR
|
||||
M :BOOL; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK CTU (*counts upward*)
|
||||
VAR_INPUT
|
||||
CU :BOOL; (*counter CV is increased by 1 by CU when the edge is rising*)
|
||||
RESET :BOOL; (*counter CV is set to 0 if RESET is TRUE*)
|
||||
PV :UINT; (*comparison variable*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL; (*is TRUE if counter CV is greater than or equal to the PV comparison variable*)
|
||||
CV :UINT; (*counter*)
|
||||
END_VAR
|
||||
VAR
|
||||
M :BOOL; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK F_TRIG (*recognizes falling edges from BOOL values*)
|
||||
VAR_INPUT
|
||||
CLK :BOOL; (*input signal whose edge should be detected*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL; (*is set to TRUE if the input signal was TRUE during the last call and is now FALSE*)
|
||||
END_VAR
|
||||
VAR
|
||||
M :BOOL; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK R_TRIG (*recognizes rising edges from BOOL values*)
|
||||
VAR_INPUT
|
||||
CLK :BOOL; (*input signal whose edge should be detected*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL; (*is set to TRUE if the input signal was FALSE during the last call and is now TRUE*)
|
||||
END_VAR
|
||||
VAR
|
||||
M :BOOL; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK SR (*sets or resets the output (set has priority)*)
|
||||
VAR_INPUT
|
||||
SET1 :BOOL; (*sets output Q1 (priority)*)
|
||||
RESET :BOOL; (*resets output Q1*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q1 :BOOL; (*output value *)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK RS (*sets or resets the output (reset has priority)*)
|
||||
VAR_INPUT
|
||||
SET :BOOL; (*sets output Q1*)
|
||||
RESET1 :BOOL; (*resets output Q1 (priority)*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q1 :BOOL; (*output value*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK SEMA (*blocks access within the same task class (simple semaphore)*)
|
||||
VAR_INPUT
|
||||
CLAIM :BOOL; (*locks semaphore*)
|
||||
RELEASE :BOOL; (*releases semaphore*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
BUSY :BOOL; (*TRUE if the semaphore was already locked*)
|
||||
END_VAR
|
||||
VAR
|
||||
X :BOOL; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK TON (*implements a switch on delay*)
|
||||
VAR_INPUT
|
||||
IN :BOOL; (*input signal*)
|
||||
PT :TIME; (*delay time*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL; (*rising edge of the input signal is delayed by PT*)
|
||||
ET :TIME; (*elapsed time*)
|
||||
END_VAR
|
||||
VAR
|
||||
StartTime :TIME; (*internal variable*)
|
||||
M :BOOL; (*internal variable*)
|
||||
Restart :UDINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK TOF (*implements a switch off delay*)
|
||||
VAR_INPUT
|
||||
IN :BOOL; (*input signal*)
|
||||
PT :TIME; (*delay time*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL; (*falling edge of the input signal is delayed by PT*)
|
||||
ET :TIME; (*elapsed time*)
|
||||
END_VAR
|
||||
VAR
|
||||
M :BOOL; (*internal variable*)
|
||||
StartTime :TIME; (*internal variable*)
|
||||
Restart :UDINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK TP (*implements a pulse generator*)
|
||||
VAR_INPUT
|
||||
IN :BOOL; (*input signal*)
|
||||
PT :TIME; (*pulse time*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL; (*output signal*)
|
||||
ET :TIME; (*elapsed time*)
|
||||
END_VAR
|
||||
VAR
|
||||
StartTime :TIME; (*internal variable*)
|
||||
Restart :UDINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK TON_10ms (*implements a switch on delay based on 10 ms steps*)
|
||||
VAR_INPUT
|
||||
IN :BOOL; (*input signal*)
|
||||
PT :UDINT; (*delay time in 10 ms steps*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL; (*output signal, the rising edge of the input signal is delayed by PT*)
|
||||
ET :UDINT; (*elapsed time in 10 ms increments*)
|
||||
END_VAR
|
||||
VAR
|
||||
StartTime :UDINT; (*internal variable*)
|
||||
M :BOOL; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK TOF_10ms (*implements a switch off delay based on 10 ms steps*)
|
||||
VAR_INPUT
|
||||
IN :BOOL; (*input signal*)
|
||||
PT :UDINT; (*delay time in 10 ms steps*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL; (*output signal, the falling edge of the input signal is delayed by PT*)
|
||||
ET :UDINT; (*elapsed time in 10 ms increments*)
|
||||
END_VAR
|
||||
VAR
|
||||
M :BOOL; (*internal variable*)
|
||||
StartTime :UDINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION_BLOCK TP_10ms (*implements a pulse using 10 ms steps*)
|
||||
VAR_INPUT
|
||||
IN :BOOL; (*input signal*)
|
||||
PT :UDINT; (*pulse time in 10 ms steps*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q :BOOL; (*output signal*)
|
||||
ET :UDINT; (*elapsed time in 10 ms increments*)
|
||||
END_VAR
|
||||
VAR
|
||||
StartTime :UDINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
FUNCTION LEN : INT (*calculates the length of a string*)
|
||||
VAR_INPUT
|
||||
IN :STRING[32767]; (*input string*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION LEFT : STRING[255] (*extracts a certain amount (L) of leftmost characters from a string*)
|
||||
VAR_INPUT
|
||||
IN :STRING[32767]; (*input string*)
|
||||
L :INT; (*number of characters*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION RIGHT : STRING[255] (*extracts a certain amount (L) of rightmost characters from a string*)
|
||||
VAR_INPUT
|
||||
IN :STRING[32767]; (*input string*)
|
||||
L :INT; (*number of characters*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION MID : STRING[255] (*extracts L number of characters out of string beginning with position P*)
|
||||
VAR_INPUT
|
||||
IN :STRING[32767]; (*string which should be extracted from*)
|
||||
L :INT; (*number of characters*)
|
||||
P :INT; (*position of the first character which should be extracted*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION CONCAT : STRING[255] (*attaches strings to one another*)
|
||||
VAR_INPUT
|
||||
IN1 :STRING[32767]; (*first input string*)
|
||||
IN2 :STRING[32767]; (*second input string*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION INSERT : STRING[255] (*inserts a string into a string*)
|
||||
VAR_INPUT
|
||||
IN1 :STRING[32767]; (*string which should be inserted into*)
|
||||
IN2 :STRING[32767]; (*string which should be inserted*)
|
||||
P :INT; (*position where insertion should take place*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION DELETE : STRING[255] (*deletes L number of characters from the IN string beginning with the Pth character position*)
|
||||
VAR_INPUT
|
||||
IN :STRING[32767]; (*input string*)
|
||||
L :INT; (*number of characters to be deleted*)
|
||||
P :INT; (*starting position of characters to be deleted*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION REPLACE : STRING[255] (*replaces characters in a string*)
|
||||
VAR_INPUT
|
||||
IN1 :STRING[32767]; (*string which should have characters replaced*)
|
||||
IN2 :STRING[32767]; (*string used for the replacement*)
|
||||
L :INT; (*length of the area to be replaced*)
|
||||
P :INT; (*starting position of replacement*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
FUNCTION FIND : INT (*determines the position of a string inside a string*)
|
||||
VAR_INPUT
|
||||
IN1 :STRING[32767]; (*string which should be looked through*)
|
||||
IN2 :STRING[32767]; (*string which should be looked for*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
TYPE
|
||||
typMachineCommands : STRUCT (*Betriebsart wählen*)
|
||||
usSwitchOff : USINT;
|
||||
usSwitchOn : USINT;
|
||||
usJogMode : USINT;
|
||||
usManualMode : USINT;
|
||||
usHomeMode : USINT;
|
||||
usAutomaticMode : USINT;
|
||||
END_STRUCT;
|
||||
typStatusVCControls : STRUCT
|
||||
usBtnPowerOff : USINT;
|
||||
usBtnPowerOn : USINT;
|
||||
usBtnJogMode : USINT;
|
||||
usBtnManMode : USINT;
|
||||
usBtnHomeMode : USINT;
|
||||
usBtnAutoMode : USINT;
|
||||
usBtnSetupmode : USINT;
|
||||
usLabelSetupmode : USINT;
|
||||
usBtnErrorReset : USINT;
|
||||
usBtnNextStep : USINT;
|
||||
usLayersMainpage : ARRAY[1..7]OF USINT;
|
||||
END_STRUCT;
|
||||
typVCCommands : STRUCT
|
||||
bErrorReset : BOOL;
|
||||
END_STRUCT;
|
||||
enMACHMODE :
|
||||
(
|
||||
enMACH_NOOP, (*Maschine hat keine gültige Betriebsart*)
|
||||
enMACH_JOG, (*Maschine ist im Tippbetrieb*)
|
||||
enMACH_MANUAL, (*Maschine ist im Hand (Semiautomatic) Betrieb*)
|
||||
enMACH_HOMEPOS, (*Maschine ist in Betriebsart Grundstellung Anfahren*)
|
||||
enMACH_AUTOMATIC (*Maschine ist im Automatikbetrieb*)
|
||||
);
|
||||
enACCESSLEVEL :
|
||||
( (*Berechtigungslevel (von Euchner EKS)*)
|
||||
enACCESSLEVEL_0 := 0,
|
||||
enACCESSLEVEL_1 := 1,
|
||||
enACCESSLEVEL_2 := 2,
|
||||
enACCESSLEVEL_3 := 3,
|
||||
enACCESSLEVEL_4 := 4,
|
||||
enACCESSLEVEL_5 := 5,
|
||||
enACCESSLEVEL_6 := 6,
|
||||
enACCESSLEVEL_7 := 7,
|
||||
enACCESSLEVEL_8 := 8,
|
||||
enACCESSLEVEL_9 := 9,
|
||||
enACCESSLEVEL_10 := 10,
|
||||
enACCESSLEVEL_11 := 11,
|
||||
enACCESSLEVEL_12 := 12,
|
||||
enACCESSLEVEL_13 := 13,
|
||||
enACCESSLEVEL_14 := 14,
|
||||
enACCESSLEVEL_15 := 15
|
||||
);
|
||||
END_TYPE
|
||||
@@ -0,0 +1,21 @@
|
||||
VAR
|
||||
gusCurrentOpLayer : USINT; (*Aktueller Bedienlayer*)
|
||||
gbMachON : BOOL; (*Anlage ist EIN*)
|
||||
gbMachRequestHome : BOOL; (*Anforderung GS Fahrt*)
|
||||
gbMachSetupMode : BOOL; (*Inbetriebnahmemodus*)
|
||||
gbMachIsInHomepos : BOOL;
|
||||
gstrMachineCaption : STRING[80];
|
||||
genMachMode : enMACHMODE := enMACH_HOMEPOS;
|
||||
guiMachMode : UINT; (*Für Visu*)
|
||||
gMachineCommands : typMachineCommands; (*Machinenkommandos*)
|
||||
gMachineAlarms : typAlarm; (*Maschinenalarme*)
|
||||
genAccessLevel : enACCESSLEVEL := enACCESSLEVEL_0; (*aktueller Berechtigungslevel*)
|
||||
gStatusVCControls : typStatusVCControls;
|
||||
gVCCommands : typVCCommands;
|
||||
gbEnableNextStepBtn : BOOL;
|
||||
END_VAR
|
||||
(*Constants*)
|
||||
VAR CONSTANT
|
||||
VC_HIDE_BITPOS : USINT := 0;
|
||||
VC_LOCK_BITPOS : USINT := 1;
|
||||
END_VAR
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File">GlobalMachine.typ</Object>
|
||||
<Object Type="File">GlobalMachine.var</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Init Machine">mc_init</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Global Machine Control">machine</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Private="true">machine.var</File>
|
||||
<File>machineInit.st</File>
|
||||
<File>machineCyclic.st</File>
|
||||
</Files>
|
||||
</Program>
|
||||
@@ -0,0 +1,3 @@
|
||||
VAR
|
||||
bInit : BOOL;
|
||||
END_VAR
|
||||
@@ -0,0 +1,85 @@
|
||||
PROGRAM _CYCLIC
|
||||
(* cyclic program *)
|
||||
IF bInit THEN
|
||||
gbMachON := FALSE;
|
||||
genMachMode := enMACH_JOG;
|
||||
bInit := FALSE;
|
||||
END_IF
|
||||
|
||||
//Eingänge einlesen
|
||||
bDInEStopOK := BIT_TST (uiInputs, 3);
|
||||
|
||||
//Machine On / Off
|
||||
IF (gMachineCommands.usSwitchOn = 1) THEN
|
||||
gbMachON := TRUE;
|
||||
END_IF
|
||||
//Mschine Ein / Aus
|
||||
IF (gMachineCommands.usSwitchOff = 1) THEN
|
||||
gbMachON := FALSE;
|
||||
END_IF
|
||||
|
||||
//Inbetriebnahmemodus
|
||||
gbMachSetupMode := TRUE;
|
||||
|
||||
IF EDGEPOS (gMachineCommands.usManualMode = 1) THEN
|
||||
genMachMode := enMACH_MANUAL;
|
||||
END_IF
|
||||
IF EDGEPOS (gMachineCommands.usJogMode = 1) THEN
|
||||
genMachMode := enMACH_JOG;
|
||||
END_IF
|
||||
IF EDGEPOS (gMachineCommands.usHomeMode = 1) THEN
|
||||
genMachMode := enMACH_HOMEPOS;
|
||||
END_IF
|
||||
IF EDGEPOS (gMachineCommands.usAutomaticMode = 1) THEN
|
||||
genMachMode := enMACH_AUTOMATIC;
|
||||
END_IF
|
||||
|
||||
gStatusVCControls.usBtnJogMode := SHL (BOOL_TO_USINT (genAccessLevel < enACCESSLEVEL_2), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (NOT gbMachON OR (genMachMode = enMACH_JOG)), VC_HIDE_BITPOS);
|
||||
gStatusVCControls.usBtnManMode := SHL (BOOL_TO_USINT ((genAccessLevel < enACCESSLEVEL_2)), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (NOT gbMachON OR (genMachMode = enMACH_MANUAL) OR gbMachRequestHome), VC_HIDE_BITPOS);
|
||||
gStatusVCControls.usBtnNextStep := SHL (BOOL_TO_USINT ((genAccessLevel < enACCESSLEVEL_2) OR NOT gbEnableNextStepBtn), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (NOT gbMachON OR (genMachMode <> enMACH_MANUAL)), VC_HIDE_BITPOS);
|
||||
gStatusVCControls.usBtnHomeMode := SHL (BOOL_TO_USINT ((genAccessLevel < enACCESSLEVEL_1)), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (NOT gbMachON OR (genMachMode = enMACH_HOMEPOS)), VC_HIDE_BITPOS);
|
||||
gStatusVCControls.usBtnAutoMode := SHL (BOOL_TO_USINT ((genAccessLevel < enACCESSLEVEL_1)), VC_LOCK_BITPOS) +
|
||||
SHL (BOOL_TO_USINT (NOT gbMachON OR (genMachMode = enMACH_AUTOMATIC) OR gbMachRequestHome), VC_HIDE_BITPOS);
|
||||
|
||||
guiMachMode := DINT_TO_UINT (genMachMode);
|
||||
|
||||
|
||||
IF (genMachMode = enMACH_JOG) THEN
|
||||
gVCLEDs.usJOGButton := 1; //ON
|
||||
ELSE
|
||||
gVCLEDs.usJOGButton := 0; //Off
|
||||
END_IF
|
||||
|
||||
IF (genMachMode = enMACH_HOMEPOS) THEN
|
||||
gVCLEDs.usHOMEButton := 1; //ON
|
||||
ELSE
|
||||
gVCLEDs.usHOMEButton := 0; //Off
|
||||
END_IF
|
||||
|
||||
IF (genMachMode = enMACH_AUTOMATIC) THEN
|
||||
gVCLEDs.usAUTOButton := 1; //ON
|
||||
ELSE
|
||||
gVCLEDs.usAUTOButton := 0; //Off
|
||||
END_IF
|
||||
|
||||
//gbOuLEDEStop := NOT gbInEStopOk AND (bBlink0_5 OR NOT gbInEStopPressed);
|
||||
|
||||
//Anlagenbeleuchtung
|
||||
bDOuLightOn := gbMachON;
|
||||
|
||||
|
||||
//Alarms
|
||||
gMachineAlarms.Alarm[0] := NOT bDInEStopOK;
|
||||
//gMachineAlarms.Alarm[1] := gbInEStopPressed;
|
||||
//gMachineAlarms.Alarm[2] := gbInEStopOk AND NOT gbInSafetyChainOk;
|
||||
|
||||
//Accesslevels
|
||||
genAccessLevel := enACCESSLEVEL_5;
|
||||
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
PROGRAM _INIT
|
||||
bInit := TRUE;
|
||||
END_PROGRAM
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Program xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Private="true">mc_init.var</File>
|
||||
<File>mc_initInit.ab</File>
|
||||
<File>mc_initCyclic.ab</File>
|
||||
</Files>
|
||||
</Program>
|
||||
@@ -0,0 +1,4 @@
|
||||
VAR
|
||||
bInit : BOOL;
|
||||
usi : USINT;
|
||||
END_VAR
|
||||
@@ -0,0 +1,7 @@
|
||||
PROGRAM _CYCLIC
|
||||
(* cyclic program *)
|
||||
IF bInit THEN
|
||||
strcpy(ADR (gstrMachineCaption), "FFG-Pinchanlage")
|
||||
bInit = FALSE
|
||||
ENDIF
|
||||
END_PROGRAM
|
||||
@@ -0,0 +1,5 @@
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
bInit = true
|
||||
END_PROGRAM
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="Package">Global</Object>
|
||||
<Object Type="Package">Common</Object>
|
||||
<Object Type="Package">Mach</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Controller">FFGCtrl</Object>
|
||||
<Object Type="Package" Description="Global libraries">Libraries</Object>
|
||||
<Object Type="DataObject" Language="Vc3" Description="4P304000490dis">Visu</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version="3.0"?>
|
||||
<VisualComponents xmlns="http://br-automation.co.at/AS/VC/Project">
|
||||
<Visualization Name="Visu">
|
||||
<Property Name="Hardware" Value="4P304000490dis.hwc" />
|
||||
<Property Name="Printer" Value="None" />
|
||||
</Visualization>
|
||||
</VisualComponents>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<DataObject xmlns="http://br-automation.co.at/AS/DataObject">
|
||||
<Files>
|
||||
<File>VCObject.vc3</File>
|
||||
</Files>
|
||||
</DataObject>
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Configuration xmlns="http://br-automation.co.at/AS/Configuration">
|
||||
<Objects>
|
||||
<Object Type="File" Description="Hardware topology">Hardware.hc</Object>
|
||||
<Object Type="PLC" Description="Files belonging to this PLC">PLC1</Object>
|
||||
</Objects>
|
||||
</Configuration>
|
||||
Binary file not shown.
@@ -0,0 +1,13 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT --
|
||||
********************************************************************
|
||||
* File: Cpu.per
|
||||
* Author: michi
|
||||
* Created: April 17, 2015
|
||||
********************************************************************
|
||||
* Declaration of permanent variables
|
||||
********************************************************************)
|
||||
VAR_CONFIG
|
||||
gudShiftCounter AT %MD0;
|
||||
gudOverallCounter AT %MD4;
|
||||
END_VAR
|
||||
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<SwConfiguration CpuAddress="SL1" xmlns="http://br-automation.co.at/AS/SwConfiguration">
|
||||
<TaskClass Name="Exception" />
|
||||
<TaskClass Name="Timer#1" />
|
||||
<TaskClass Name="Cyclic#1" />
|
||||
<TaskClass Name="Cyclic#2" />
|
||||
<TaskClass Name="Cyclic#3">
|
||||
<Task Name="blinker" Source="Common.blinker.prg" Memory="UserRAM" Language="IEC" Debugging="true" />
|
||||
<Task Name="mc_init" Source="Mach.mc_init.prg" Memory="UserRAM" Language="IEC" Debugging="true" />
|
||||
<Task Name="machine" Source="Mach.machine.prg" Memory="UserRAM" Language="IEC" Debugging="true" />
|
||||
<Task Name="FFGCtrl" Source="FFGCtrl.prg" Memory="UserRAM" Language="IEC" Debugging="true" />
|
||||
</TaskClass>
|
||||
<TaskClass Name="Cyclic#4" />
|
||||
<DataObjects />
|
||||
<NcDataObjects />
|
||||
<VcDataObjects>
|
||||
<VcDataObject Name="Visu" Source="Visu.dob" Memory="UserROM" Language="Vc3" />
|
||||
</VcDataObjects>
|
||||
<Binaries>
|
||||
<BinaryObject Name="vcinter" Source="" Memory="UserRAM" Language="Binary" />
|
||||
<BinaryObject Name="rtk68k" Source="" Memory="UserRAM" Language="Binary" />
|
||||
<BinaryObject Name="ddpcpp41" Source="" Memory="UserRAM" Language="Binary" />
|
||||
<BinaryObject Name="Visu01" Source="" Memory="UserRAM" Language="Binary" />
|
||||
<BinaryObject Name="gcloader" Source="" Memory="UserROM" Language="Binary" />
|
||||
<BinaryObject Name="Visu02" Source="" Memory="UserRAM" Language="Binary" />
|
||||
<BinaryObject Name="aplib" Source="" Memory="UserRAM" Language="Binary" />
|
||||
<BinaryObject Name="sysconf" Source="" Memory="SystemROM" Language="Binary" />
|
||||
</Binaries>
|
||||
<Libraries>
|
||||
<LibraryObject Name="burtrap" Source="" Memory="UserROM" Language="Binary" Debugging="true" />
|
||||
<LibraryObject Name="dataobj" Source="" Memory="UserROM" Language="Binary" Debugging="true" />
|
||||
<LibraryObject Name="asieccon" Source="" Memory="UserROM" Language="Binary" Debugging="true" />
|
||||
<LibraryObject Name="runtime" Source="" Memory="UserROM" Language="Binary" Debugging="true" />
|
||||
<LibraryObject Name="sys_lib" Source="" Memory="UserROM" Language="Binary" Debugging="true" />
|
||||
<LibraryObject Name="asstring" Source="Libraries.asstring.lby" Memory="UserROM" Language="Binary" Debugging="true" />
|
||||
<LibraryObject Name="standard" Source="Libraries.standard.lby" Memory="UserROM" Language="Binary" Debugging="true" />
|
||||
</Libraries>
|
||||
</SwConfiguration>
|
||||
@@ -0,0 +1,31 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT --
|
||||
********************************************************************
|
||||
* File: IoMap.iom
|
||||
* Author: michi
|
||||
* Created: April 17, 2015
|
||||
********************************************************************
|
||||
* IO mapping file
|
||||
********************************************************************)
|
||||
VAR_CONFIG
|
||||
bDInHomeCutter1 AT %IX.SL2.DigitalInput01;
|
||||
bDInHomeCutter2 AT %IX.SL2.DigitalInput02;
|
||||
bDInHomeCutter3 AT %IX.SL2.DigitalInput03;
|
||||
bDInHomeCutter4 AT %IX.SL2.DigitalInput04;
|
||||
bDInGateOpen AT %IX.SL2.DigitalInput05;
|
||||
bDInTurnTableFw AT %IX.SL2.DigitalInput06;
|
||||
bDInTurnTableBw AT %IX.SL2.DigitalInput07;
|
||||
bDInStartKey AT %IX.SL2.DigitalInput08;
|
||||
bDOuGateOpen AT %QX.SL2.DigitalOutput01;
|
||||
bDOuGateClose AT %QX.SL2.DigitalOutput02;
|
||||
bDOuTurnTableFw AT %QX.SL2.DigitalOutput03;
|
||||
bDOuTurnTableBw AT %QX.SL2.DigitalOutput04;
|
||||
bDOuCutterBw AT %QX.SL2.DigitalOutput05;
|
||||
bDOuCutterClose AT %QX.SL2.DigitalOutput07;
|
||||
bDOuLightOn AT %QX.SL2.DigitalOutput08;
|
||||
bDOuCutterFw AT %QX.SL2.DigitalOutput06;
|
||||
bDInAirOk1 AT %IX.SL2.DigitalInput09;
|
||||
uiInputs AT %IW.SL0.SS1.AnalogInput01;
|
||||
uiOutputs AT %QW.SL0.SS2.AnalogOutput01;
|
||||
bDInAirOk2 AT %IX.SL2.DigitalInput10;
|
||||
END_VAR
|
||||
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<PLC xmlns="http://br-automation.co.at/AS/PLC">
|
||||
<Objects>
|
||||
<Object Type="File" Description="Software configuration">Cpu.sw</Object>
|
||||
<Object Type="File" Description="Declaration of permanent variables">Cpu.per</Object>
|
||||
<Object Type="File" Description="IO mapping file">IoMap.iom</Object>
|
||||
<Object Type="File" Description="VC Mapping File">Visual.vcm</Object>
|
||||
<Object Type="File" Description="CPU system configuration">sysconf.br</Object>
|
||||
</Objects>
|
||||
<CpuModules>
|
||||
<CpuModule LocalVariablesMemory="MemoryPool" GeneratePPCode="false" HasNcOperatingSystem="false" Target="SG3" ModuleID="PP41" ClassID="PP41" GccVersion="V2.95.3">
|
||||
<DefaultTargetMemory Tasks="UserRAM" Libraries="UserROM" DataObjects="UserRAM" />
|
||||
<DefaultTaskClass Name="Cyclic4" />
|
||||
<IO DefaultTaskClass="Automatic" ArConfigDataModule="false" ArConfigDataModulePath="$(AS_CPU_PATH)\AS\CfgData.br" IoMapDataModule="false" IoMapDataModulePath="$(AS_CPU_PATH)\AS\IomData.br" />
|
||||
<OS Version="8.14.0" Status="X" />
|
||||
<Transfer DownloadMode="Overload" PromptBeforeProject="false" PromptBeforeTask="false" PackedArConfig="false" PackedIoMap="false" IgnoreTargetOnlyObjects="false" GeneratePviTransferList="true" TransferOnlyRelevantChanges="true" AllowWarmRestart="true" IgnoreBrDependencies="false" />
|
||||
<Build />
|
||||
<VC FirmwareVersion="V3.96.2" />
|
||||
<OPC WindowsServer="false" />
|
||||
</CpuModule>
|
||||
</CpuModules>
|
||||
<Communication />
|
||||
</PLC>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<VcMapping>
|
||||
<Row Address="SY1" ObjectName="Visu" KeyPriority="Lower Cyclic #8" Description="Display" />
|
||||
</VcMapping>
|
||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version=3.0.90.30 SP12?>
|
||||
<Physical xmlns="http://br-automation.co.at/AS/Physical">
|
||||
<Configurations>
|
||||
<Configuration Name="Config1" Description="" />
|
||||
</Configurations>
|
||||
</Physical>
|
||||
Binary file not shown.
@@ -0,0 +1,5 @@
|
||||
[config]
|
||||
rule: MK_RK_mempercent , 2, 32, 1, 17003
|
||||
rule: MK_RK_NMERRTAB , 16, 60, 1, 17531
|
||||
rule: MK_RK_NUMSS , 0, 2, 1, 17520
|
||||
rule: MK_SS_zyklimit8 , 0, 0, 1, 17031
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user