Workbackup
This commit is contained in:
12
KD_Elunic_Devel.apj
Normal file
12
KD_Elunic_Devel.apj
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version="4.9.4.92 SP" WorkingVersion="4.9"?>
|
||||
<Project Description="Ausgangsprojekt - Entwicklung Elunic" Version="1.00.0" Edition="Standard" EditionComment="Standard" xmlns="http://br-automation.co.at/AS/Project">
|
||||
<Communication>
|
||||
<OnlineConfiguration Name="Elunic-Management" DeviceType="TCPIP" DeviceParameters="/IF=tcpip /LOPO=11159 /SA=194" ConnectionParameters="/COMT=5000 /RT=1000 /AM=* /SDT=5 /DAIP=10.13.15.10 /REPO=11159 /ANSL=1" Description="" />
|
||||
</Communication>
|
||||
<ANSIC DefaultIncludes="true" />
|
||||
<IEC ExtendedConstants="true" IecExtendedComments="true" KeywordsAsStructureMembers="false" NamingConventions="true" Pointers="true" Preprocessor="false" />
|
||||
<Motion RestartAcoposParameter="true" RestartInitParameter="true" />
|
||||
<Project StoreRuntimeInProject="false" />
|
||||
<Variables DefaultInitValue="0" DefaultRetain="false" DefaultVolatile="true" />
|
||||
</Project>
|
||||
7
LastUser.set
Normal file
7
LastUser.set
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio Version="4.9.4.92 SP"?>
|
||||
<ProjectSettings xmlns="http://br-automation.co.at/AS/ProjectSettings">
|
||||
<ConfigurationManager ActiveConfigurationName="CfgSPSL1a" />
|
||||
<Deployment Value="ActiveCpu" />
|
||||
<Print Footer="%cPage: %p" Header="%lProject: %n%c%x" />
|
||||
</ProjectSettings>
|
||||
10
Logical/Common/GlobalCommon.typ
Normal file
10
Logical/Common/GlobalCommon.typ
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
TYPE
|
||||
gtyp_Blinker : STRUCT
|
||||
bBlink0_1 : BOOL; (*Blinker 0,1Hz*)
|
||||
bBlink0_5 : BOOL; (*Blinker 0,5Hz*)
|
||||
bBlink1_0 : BOOL; (*Blinker 1Hz*)
|
||||
bBlink2_0 : BOOL; (*Blinker 2Hz*)
|
||||
bBlink5_0 : BOOL; (*Blinker 5Hz*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
12
Logical/Common/GlobalComon.var
Normal file
12
Logical/Common/GlobalComon.var
Normal file
@@ -0,0 +1,12 @@
|
||||
VAR
|
||||
gBlinker : gtyp_Blinker;
|
||||
gdtCurrentTime : DATE_AND_TIME; (*Current Date and Time*)
|
||||
gDTstrucCurrentTime : DTStructure := (0); (*Current Date and Time as DTStructure*)
|
||||
gsCurrentTime : STRING[25] := ''; (*Current Date and Time as String*)
|
||||
gTCurrentTime : TIME := T#0ms; (*Current Time*)
|
||||
END_VAR
|
||||
VAR CONSTANT
|
||||
gAInNull : INT := 0; (*O FOR Analog Input*)
|
||||
iAIVoltageOverflow : INT := 16#7FFF; (* Analog Input Voltage Mode,Overflow *)
|
||||
iAIVoltageUnderflow : INT := -32767; (* Analog Input Voltage Underflow *)
|
||||
END_VAR
|
||||
10
Logical/Common/Package.pkg
Normal file
10
Logical/Common/Package.pkg
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File">GlobalCommon.typ</Object>
|
||||
<Object Type="File">GlobalComon.var</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Current Date_And_Time / DT Struct">get_dt</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Blinker 0,1 -0,5s (f. 100ms Task) !!!">blinker</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
9
Logical/Common/blinker/IEC.prg
Normal file
9
Logical/Common/blinker/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Program SubType="IEC" 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.st</File>
|
||||
</Files>
|
||||
</Program>
|
||||
13
Logical/Common/blinker/blinker.var
Normal file
13
Logical/Common/blinker/blinker.var
Normal file
@@ -0,0 +1,13 @@
|
||||
(********************************************************************
|
||||
* COPYRIGHT -- kA
|
||||
********************************************************************
|
||||
* Program: blinker
|
||||
* File: blinker.var
|
||||
* Author: michi
|
||||
* Created: November 23, 2009
|
||||
********************************************************************
|
||||
* Local variables of program blinker
|
||||
********************************************************************)
|
||||
VAR
|
||||
iCount : USINT;
|
||||
END_VAR
|
||||
18
Logical/Common/blinker/blinkerCyclic.st
Normal file
18
Logical/Common/blinker/blinkerCyclic.st
Normal file
@@ -0,0 +1,18 @@
|
||||
PROGRAM _CYCLIC
|
||||
//Must be taskclass 100ms
|
||||
gBlinker.bBlink0_1 := NOT gBlinker.bBlink0_1;
|
||||
iCount := iCount + 1;
|
||||
IF ((iCount MOD 5) = 0) THEN
|
||||
gBlinker.bBlink0_5 := NOT gBlinker.bBlink0_5;
|
||||
END_IF
|
||||
IF ((iCount MOD 10) = 0) THEN
|
||||
gBlinker.bBlink1_0 := NOT gBlinker.bBlink1_0;
|
||||
END_IF
|
||||
IF ((iCount MOD 20) = 0) THEN
|
||||
gBlinker.bBlink2_0 := NOT gBlinker.bBlink2_0;
|
||||
END_IF
|
||||
IF ((iCount MOD 50) = 0) THEN
|
||||
gBlinker.bBlink5_0 := NOT gBlinker.bBlink5_0;
|
||||
iCount := 0;
|
||||
END_IF
|
||||
END_PROGRAM
|
||||
4
Logical/Common/blinker/blinkerInit.ab
Normal file
4
Logical/Common/blinker/blinkerInit.ab
Normal file
@@ -0,0 +1,4 @@
|
||||
PROGRAM _INIT
|
||||
iCount := 0;
|
||||
END_PROGRAM
|
||||
|
||||
9
Logical/Common/get_dt/IEC.prg
Normal file
9
Logical/Common/get_dt/IEC.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Program SubType="IEC" xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File>get_dtCyclic.ab</File>
|
||||
<File Private="true">get_dt.var</File>
|
||||
<File>get_dtInit.ab</File>
|
||||
</Files>
|
||||
</Program>
|
||||
6
Logical/Common/get_dt/get_dt.var
Normal file
6
Logical/Common/get_dt/get_dt.var
Normal file
@@ -0,0 +1,6 @@
|
||||
VAR
|
||||
sTemp : STRING[10] := '';
|
||||
lDTStructureGetTime : DTStructureGetTime := (0);
|
||||
lDTGetTime : DTGetTime := (0);
|
||||
lTimeStructure : TIMEStructure := (0);
|
||||
END_VAR
|
||||
57
Logical/Common/get_dt/get_dtCyclic.ab
Normal file
57
Logical/Common/get_dt/get_dtCyclic.ab
Normal file
@@ -0,0 +1,57 @@
|
||||
PROGRAM _CYCLIC
|
||||
(* cyclic program *)
|
||||
|
||||
lDTGetTime.enable = true
|
||||
lDTGetTime FUB DTGetTime()
|
||||
gdtCurrentTime = lDTGetTime.DT1
|
||||
|
||||
lDTStructureGetTime.enable = true
|
||||
lDTStructureGetTime FUB DTStructureGetTime ()
|
||||
lDTStructureGetTime.pDTStructure = adr (gDTstrucCurrentTime)
|
||||
|
||||
ascDTStructure (ADR (gDTstrucCurrentTime), ADR (gsCurrentTime), 25)
|
||||
brsstrcpy (ADR (gsCurrentTime), "")
|
||||
brsitoa (gDTstrucCurrentTime.year, ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTime), ADR (sTemp))
|
||||
IF (gDTstrucCurrentTime.month < 10) THEN
|
||||
brsstrcat (ADR (gsCurrentTime), "0")
|
||||
ENDIF
|
||||
brsitoa (gDTstrucCurrentTime.month, ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTime), ADR (sTemp))
|
||||
IF (gDTstrucCurrentTime.day < 10) THEN
|
||||
brsstrcat (ADR (gsCurrentTime), "0")
|
||||
ENDIF
|
||||
brsitoa (gDTstrucCurrentTime.day, ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTime), ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTime), "_")
|
||||
IF (gDTstrucCurrentTime.hour < 10) THEN
|
||||
brsstrcat (ADR (gsCurrentTime), "0")
|
||||
ENDIF
|
||||
brsitoa (gDTstrucCurrentTime.hour, ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTime), ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTime), "-")
|
||||
IF (gDTstrucCurrentTime.minute < 10) THEN
|
||||
brsstrcat (ADR (gsCurrentTime), "0")
|
||||
ENDIF
|
||||
brsitoa (gDTstrucCurrentTime.minute, ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTime), ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTime), "-")
|
||||
IF (gDTstrucCurrentTime.second < 10) THEN
|
||||
brsstrcat (ADR (gsCurrentTime), "0")
|
||||
ENDIF
|
||||
brsitoa (gDTstrucCurrentTime.second, ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTime), ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTime), "_")
|
||||
brsitoa (gDTstrucCurrentTime.millisec, ADR (sTemp))
|
||||
brsstrcat (ADR (gsCurrentTime), ADR (sTemp))
|
||||
|
||||
lTimeStructure.day = gDTstrucCurrentTime.day
|
||||
lTimeStructure.hour = gDTstrucCurrentTime.hour
|
||||
lTimeStructure.minute = gDTstrucCurrentTime.minute
|
||||
lTimeStructure.second = gDTstrucCurrentTime.second
|
||||
lTimeStructure.millisec = gDTstrucCurrentTime.millisec
|
||||
lTimeStructure.microsec = gDTstrucCurrentTime.microsec
|
||||
gTCurrentTime = TIMEStructure_TO_TIME (adr (lTimeStructure))
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
4
Logical/Common/get_dt/get_dtInit.ab
Normal file
4
Logical/Common/get_dt/get_dtInit.ab
Normal file
@@ -0,0 +1,4 @@
|
||||
PROGRAM _INIT
|
||||
(* init program *)
|
||||
END_PROGRAM
|
||||
|
||||
0
Logical/Global.typ
Normal file
0
Logical/Global.typ
Normal file
0
Logical/Global.var
Normal file
0
Logical/Global.var
Normal file
8
Logical/GlobalVars/Global.var
Normal file
8
Logical/GlobalVars/Global.var
Normal file
@@ -0,0 +1,8 @@
|
||||
(*================================================================================================================*)
|
||||
(*CPU (PWLnk Node 240)*)
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
VAR
|
||||
gudSerialNr : UDINT; (*Seriennummer*)
|
||||
gdiSystemTime : DINT; (*Systemzeit [<5B>s]*)
|
||||
END_VAR
|
||||
(*----------------------------------------------------------------------------------------------------------------*)
|
||||
7
Logical/GlobalVars/Package.pkg
Normal file
7
Logical/GlobalVars/Package.pkg
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File" Description="Global variables / IOs">Global.var</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
80
Logical/Libraries/AsBrStr/AsBrStr.fun
Normal file
80
Logical/Libraries/AsBrStr/AsBrStr.fun
Normal file
@@ -0,0 +1,80 @@
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsftoa : UINT (*converts a REAL value into a character string*)
|
||||
VAR_INPUT
|
||||
value :REAL; (*REAL (FLOAT) value to be converted into a character string*)
|
||||
pString :UDINT; (*pointer to the destination character string*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatof : REAL (*converts a character string into a REAL (FLOAT) value*)
|
||||
VAR_INPUT
|
||||
pString :UDINT; (*pointer to the character string to be converted*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatod : LREAL (*converts a character string into a LREAL (DOUBLE) value*)
|
||||
VAR_INPUT
|
||||
pString :UDINT; (*pointer to the character string to be converted*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsitoa : UINT (*converts a DINT value into a character string*)
|
||||
VAR_INPUT
|
||||
value :DINT; (*numerical value to be converted into a string*)
|
||||
pString :UDINT; (*pointer to the destination character string*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatoi : DINT (*converts a character string into a DINT value*)
|
||||
VAR_INPUT
|
||||
pString :UDINT; (*pointer to the character string to be converted*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemset : UDINT (*fills the memory area with specific values*)
|
||||
VAR_INPUT
|
||||
pDest :UDINT; (*pointer to the destination memory*)
|
||||
value :USINT; (*initialization value*)
|
||||
length :UDINT; (*number of bytes to be initialized*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemcpy : UDINT (*copies the memory area*)
|
||||
VAR_INPUT
|
||||
pDest :UDINT; (*pointer to the destination memory*)
|
||||
pSrc :UDINT; (*pointer to the data to be copied*)
|
||||
length :UDINT; (*size of bytes to be copied*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemmove : UDINT (*copies the memory area (even if the memory areas overlap)*)
|
||||
VAR_INPUT
|
||||
pDest :UDINT; (*pointer to the destination memory*)
|
||||
pSrc :UDINT; (*pointer to the data to be copied*)
|
||||
length :UDINT; (*size of bytes to be copied*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemcmp : DINT (*compares memory areas*)
|
||||
VAR_INPUT
|
||||
pMem1 :UDINT; (*pointer to the memory area 1*)
|
||||
pMem2 :UDINT; (*pointer to the memory area 2*)
|
||||
length :UDINT; (*size of bytes to be checked*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcat : UDINT (*attaches character strings to one another*)
|
||||
VAR_INPUT
|
||||
pDest :UDINT; (*pointer to the destination character string*)
|
||||
pSrc :UDINT; (*pointer to the source character string*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrlen : UDINT (*provides the length of a character string*)
|
||||
VAR_INPUT
|
||||
pString :UDINT; (*pointer to the source character string*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcpy : UDINT (*copies one character string into another*)
|
||||
VAR_INPUT
|
||||
pDest :UDINT; (*pointer to the destination character string*)
|
||||
pSrc :UDINT; (*pointer to the source character string*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcmp : DINT (*compares two character strings*)
|
||||
VAR_INPUT
|
||||
pString1 :UDINT; (*pointer to the first character string*)
|
||||
pString2 :UDINT; (*pointer to the second character string*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
|
||||
4
Logical/Libraries/AsBrStr/AsBrStr.typ
Normal file
4
Logical/Libraries/AsBrStr/AsBrStr.typ
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
TYPE
|
||||
|
||||
END_TYPE
|
||||
4
Logical/Libraries/AsBrStr/AsBrStr.var
Normal file
4
Logical/Libraries/AsBrStr/AsBrStr.var
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
VAR CONSTANT
|
||||
|
||||
END_VAR
|
||||
39
Logical/Libraries/AsBrStr/SG3/AsBrStr.h
Normal file
39
Logical/Libraries/AsBrStr/SG3/AsBrStr.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _ASBRSTR_
|
||||
#define _ASBRSTR_
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#ifndef _IEC_CONST
|
||||
#define _IEC_CONST _WEAK const
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
unsigned short brsftoa(float value, unsigned long pString);
|
||||
float brsatof(unsigned long pString);
|
||||
unsigned short brsitoa(signed long value, unsigned long pString);
|
||||
signed long brsatoi(unsigned long pString);
|
||||
unsigned long brsmemset(unsigned long pDest, unsigned char value, unsigned long length);
|
||||
unsigned long brsmemcpy(unsigned long pDest, unsigned long pSrc, unsigned long length);
|
||||
unsigned long brsmemmove(unsigned long pDest, unsigned long pSrc, unsigned long length);
|
||||
signed long brsmemcmp(unsigned long pMem1, unsigned long pMem2, unsigned long length);
|
||||
unsigned long brsstrcat(unsigned long pDest, unsigned long pSrc);
|
||||
unsigned long brsstrlen(unsigned long pString);
|
||||
unsigned long brsstrcpy(unsigned long pDest, unsigned long pSrc);
|
||||
signed long brsstrcmp(unsigned long pString1, unsigned long pString2);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _ASBRSTR_ */
|
||||
|
||||
39
Logical/Libraries/AsBrStr/SG4/AsBrStr.h
Normal file
39
Logical/Libraries/AsBrStr/SG4/AsBrStr.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _ASBRSTR_
|
||||
#define _ASBRSTR_
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#ifndef _BUR_PUBLIC
|
||||
#define _BUR_PUBLIC
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
_BUR_PUBLIC unsigned short brsftoa(float value, unsigned long pString);
|
||||
_BUR_PUBLIC float brsatof(unsigned long pString);
|
||||
_BUR_PUBLIC double brsatod(unsigned long pString);
|
||||
_BUR_PUBLIC unsigned short brsitoa(signed long value, unsigned long pString);
|
||||
_BUR_PUBLIC signed long brsatoi(unsigned long pString);
|
||||
_BUR_PUBLIC unsigned long brsmemset(unsigned long pDest, unsigned char value, unsigned long length);
|
||||
_BUR_PUBLIC unsigned long brsmemcpy(unsigned long pDest, unsigned long pSrc, unsigned long length);
|
||||
_BUR_PUBLIC unsigned long brsmemmove(unsigned long pDest, unsigned long pSrc, unsigned long length);
|
||||
_BUR_PUBLIC signed long brsmemcmp(unsigned long pMem1, unsigned long pMem2, unsigned long length);
|
||||
_BUR_PUBLIC unsigned long brsstrcat(unsigned long pDest, unsigned long pSrc);
|
||||
_BUR_PUBLIC unsigned long brsstrlen(unsigned long pString);
|
||||
_BUR_PUBLIC unsigned long brsstrcpy(unsigned long pDest, unsigned long pSrc);
|
||||
_BUR_PUBLIC signed long brsstrcmp(unsigned long pString1, unsigned long pString2);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _ASBRSTR_ */
|
||||
|
||||
39
Logical/Libraries/AsBrStr/SGC/AsBrStr.h
Normal file
39
Logical/Libraries/AsBrStr/SGC/AsBrStr.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _ASBRSTR_
|
||||
#define _ASBRSTR_
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#ifndef _IEC_CONST
|
||||
#define _IEC_CONST _WEAK const
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
unsigned short brsftoa(float value, unsigned long pString);
|
||||
float brsatof(unsigned long pString);
|
||||
unsigned short brsitoa(signed long value, unsigned long pString);
|
||||
signed long brsatoi(unsigned long pString);
|
||||
unsigned long brsmemset(unsigned long pDest, unsigned char value, unsigned long length);
|
||||
unsigned long brsmemcpy(unsigned long pDest, unsigned long pSrc, unsigned long length);
|
||||
unsigned long brsmemmove(unsigned long pDest, unsigned long pSrc, unsigned long length);
|
||||
signed long brsmemcmp(unsigned long pMem1, unsigned long pMem2, unsigned long length);
|
||||
unsigned long brsstrcat(unsigned long pDest, unsigned long pSrc);
|
||||
unsigned long brsstrlen(unsigned long pString);
|
||||
unsigned long brsstrcpy(unsigned long pDest, unsigned long pSrc);
|
||||
signed long brsstrcmp(unsigned long pString1, unsigned long pString2);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _ASBRSTR_ */
|
||||
|
||||
9
Logical/Libraries/AsBrStr/binary.lby
Normal file
9
Logical/Libraries/AsBrStr/binary.lby
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Library SubType="binary" Description="The AsBrStr Library contains FBKs for memory and character string handling." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>AsBrStr.fun</File>
|
||||
<File>AsBrStr.typ</File>
|
||||
<File>AsBrStr.var</File>
|
||||
</Files>
|
||||
</Library>
|
||||
1729
Logical/Libraries/AsIecCon/AsIecCon.fun
Normal file
1729
Logical/Libraries/AsIecCon/AsIecCon.fun
Normal file
File diff suppressed because it is too large
Load Diff
4
Logical/Libraries/AsIecCon/AsIecCon.typ
Normal file
4
Logical/Libraries/AsIecCon/AsIecCon.typ
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
TYPE
|
||||
|
||||
END_TYPE
|
||||
4
Logical/Libraries/AsIecCon/AsIecCon.var
Normal file
4
Logical/Libraries/AsIecCon/AsIecCon.var
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
VAR CONSTANT
|
||||
|
||||
END_VAR
|
||||
49
Logical/Libraries/AsIecCon/SG3/AsIecCon.h
Normal file
49
Logical/Libraries/AsIecCon/SG3/AsIecCon.h
Normal file
@@ -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_ */
|
||||
|
||||
61
Logical/Libraries/AsIecCon/SG4/AsIecCon.h
Normal file
61
Logical/Libraries/AsIecCon/SG4/AsIecCon.h
Normal file
@@ -0,0 +1,61 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _ASIECCON_
|
||||
#define _ASIECCON_
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#ifndef _BUR_PUBLIC
|
||||
#define _BUR_PUBLIC
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
_BUR_PUBLIC signed short H_TO_NINT(signed short IN);
|
||||
_BUR_PUBLIC unsigned short H_TO_NUINT(unsigned short IN);
|
||||
_BUR_PUBLIC signed long H_TO_NDINT(signed long IN);
|
||||
_BUR_PUBLIC unsigned long H_TO_NUDINT(unsigned long IN);
|
||||
_BUR_PUBLIC float H_TO_NREAL(float IN);
|
||||
_BUR_PUBLIC double H_TO_NLREAL(double IN);
|
||||
_BUR_PUBLIC plctime H_TO_NTIME(plctime IN);
|
||||
_BUR_PUBLIC DATE_AND_TIME H_TO_NDT(DATE_AND_TIME IN);
|
||||
_BUR_PUBLIC DATE H_TO_NDATE(DATE IN);
|
||||
_BUR_PUBLIC TOD H_TO_NTOD(TOD IN);
|
||||
_BUR_PUBLIC signed short N_TO_HINT(signed short IN);
|
||||
_BUR_PUBLIC unsigned short N_TO_HUINT(unsigned short IN);
|
||||
_BUR_PUBLIC signed long N_TO_HDINT(signed long IN);
|
||||
_BUR_PUBLIC unsigned long N_TO_HUDINT(unsigned long IN);
|
||||
_BUR_PUBLIC float N_TO_HREAL(float IN);
|
||||
_BUR_PUBLIC double N_TO_HLREAL(double IN);
|
||||
_BUR_PUBLIC plctime N_TO_HTIME(plctime IN);
|
||||
_BUR_PUBLIC DATE_AND_TIME N_TO_HDT(DATE_AND_TIME IN);
|
||||
_BUR_PUBLIC DATE N_TO_HDATE(DATE IN);
|
||||
_BUR_PUBLIC TOD N_TO_HTOD(TOD IN);
|
||||
_BUR_PUBLIC signed short swapINT(signed short IN);
|
||||
_BUR_PUBLIC unsigned short swapUINT(unsigned short IN);
|
||||
_BUR_PUBLIC WORD swapWORD(WORD IN);
|
||||
_BUR_PUBLIC signed long swapDINT(signed long IN);
|
||||
_BUR_PUBLIC unsigned long swapUDINT(unsigned long IN);
|
||||
_BUR_PUBLIC DWORD swapDWORD(DWORD IN);
|
||||
_BUR_PUBLIC TIME swapTIME(TIME IN);
|
||||
_BUR_PUBLIC DATE_AND_TIME swapDT(DATE_AND_TIME IN);
|
||||
_BUR_PUBLIC DATE swapDATE(DATE IN);
|
||||
_BUR_PUBLIC TOD swapTOD(TOD IN);
|
||||
_BUR_PUBLIC float swapREAL(float IN);
|
||||
_BUR_PUBLIC double swapLREAL(double 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_ */
|
||||
|
||||
62
Logical/Libraries/AsIecCon/SGC/AsIecCon.h
Normal file
62
Logical/Libraries/AsIecCon/SGC/AsIecCon.h
Normal file
@@ -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_ */
|
||||
|
||||
12
Logical/Libraries/AsIecCon/binary.lby
Normal file
12
Logical/Libraries/AsIecCon/binary.lby
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Library SubType="binary" Description="This library contains function interfaces for IEC 61131-3 conversion functions." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>AsIecCon.fun</File>
|
||||
<File>AsIecCon.typ</File>
|
||||
<File>AsIecCon.var</File>
|
||||
</Files>
|
||||
<Dependencies>
|
||||
<Dependency ObjectName="astime" />
|
||||
</Dependencies>
|
||||
</Library>
|
||||
98
Logical/Libraries/DRV_mbus/DRV_mbus.fun
Normal file
98
Logical/Libraries/DRV_mbus/DRV_mbus.fun
Normal file
@@ -0,0 +1,98 @@
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK MBMCmd (*operates the modbus protocol in runtime*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*identifier of the MBMOpen() FBK*)
|
||||
mfc :USINT; (*modbus function call*)
|
||||
node :USINT; (*station number (0 = broadcast)*)
|
||||
data :UDINT; (*pointer to the data area*)
|
||||
offset :UINT; (*offset*)
|
||||
len :UINT; (*size of data*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK MBMClose (*closes the driver environment to enable the MBMOpen() FBK to be called again*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*identifier of the MBMOpen() FBK*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK MBMaster (*operates the modbus protocol in runtime*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*identifier of the MBMOpen() FBK*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
execute :BOOL; (*command executed (execute = 1)*)
|
||||
recordnum :UINT; (*number of the entry in the data object currently being processed*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK MBMOpen (*configures the interface and initializes the internal structures that are required*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pDevice :UDINT; (*device name given as a pointer*)
|
||||
pMode :UDINT; (*pointer to the mode description string*)
|
||||
pConfig :UDINT; (*pointer to the data object name*)
|
||||
timeout :UINT; (*response timeout in milliseconds (the value must be a multiple of 10)*)
|
||||
ascii :USINT; (*modBus mode (0 = RTU / 1 = ASCII)*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
ident :UDINT; (*identifier for the MBMaster(), MBMCmd() and MBMClose() FBKs*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK MBSClose (*closes the driver environment to enable the MBSOpen() FBK to be called again*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*identifier of the MBSOpen() FBK*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
VAR
|
||||
InitCount :USINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK MBSlave (*operates the modbus protocol in runtime*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*identifier of the MBSOpen() FBK*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
exec :UINT; (*counter for modbus commands received*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK MBSOpen (*configures the interface and initializes the internal structures that are required*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pDevice :UDINT; (*device name given as a pointer*)
|
||||
pMode :UDINT; (*pointer to the mode description string*)
|
||||
pCoilStat :UDINT; (*pointer to the coil status (modbus simulation variable)*)
|
||||
pInputStat :UDINT; (*pointer to the input status (modbus simulation variable)*)
|
||||
pHoldingReg :UDINT; (*pointer to the holding register (modbus simulation variable)*)
|
||||
pInputReg :UDINT; (*pointer to the input register (modbus simulation variable)*)
|
||||
own_ID :USINT; (*own node number*)
|
||||
timeout :UINT; (*response timeout in milliseconds (the value must be a multiple of 10)*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
ident :UDINT; (*identifier for the MBClient() and MBSClose() FBKs*)
|
||||
END_VAR
|
||||
VAR
|
||||
FirstInit :UDINT; (*internal variable*)
|
||||
InitCount :USINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
4
Logical/Libraries/DRV_mbus/DRV_mbus.typ
Normal file
4
Logical/Libraries/DRV_mbus/DRV_mbus.typ
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
TYPE
|
||||
|
||||
END_TYPE
|
||||
28
Logical/Libraries/DRV_mbus/DRV_mbus.var
Normal file
28
Logical/Libraries/DRV_mbus/DRV_mbus.var
Normal file
@@ -0,0 +1,28 @@
|
||||
|
||||
VAR CONSTANT
|
||||
mbERR_INVALID_PARAM : UINT := 20201; (*invalid FBK parameter (e.g. pDevice = 0)*)
|
||||
mbERR_ILG_O_NODE_N : UINT := 20205; (*invalid own_ID stated in MBSOpen() FBK; valid IDs are between 1 and 247*)
|
||||
mbERR_ILG_IDENT : UINT := 20210; (*invalid ID or ID is 0*)
|
||||
mbERR_ILG_MBVAR : UINT := 20215; (*ModBus simulation variable invalid or missing (MBSOpen() and MBSlave() FBK)*)
|
||||
mbERR_NODE_TOUT : UINT := 20220; (*in MBSOpen(), MBMOpen(): invalid value for timeout parameter, in MBMCmd(), MBMaster(), MBSlave(): timeout detected*)
|
||||
mbERR_CMD_ENTRY : UINT := 20240; (*invalid entry in data object, invalid length of data object*)
|
||||
mbERR_CMD_NULL : UINT := 20241; (*data object not present or data parameter in MBMCmd FBK is 0*)
|
||||
mbERR_CMD_EVENTPV : UINT := 20242; (*invalid EventPV stated in the data object*)
|
||||
mbERR_CMD_FUNCTION : UINT := 20243; (*invalid ModBus function stated in the data object or in the MBMCmd() FBK*)
|
||||
mbERR_CMD_NODE : UINT := 20244; (*invalid nodenumber stated in the data object or in the MBMCmd() FBK*)
|
||||
mbERR_CMD_LOCALPV : UINT := 20245; (*invalid EventPV stated in the data object*)
|
||||
mbERR_CMD_LENGTH : UINT := 20246; (*invalid length stated in the data object*)
|
||||
mbERR_NO_MEM : UINT := 20250; (*no memory for internal library management*)
|
||||
mbERR_MEM_FREE : UINT := 20252; (*memory for internal library management cannot be freed*)
|
||||
mbERR_RESP_ERROR : UINT := 20260; (*invalid frame received*)
|
||||
mbERR_RESP_LENGTH : UINT := 20261; (*frame with wrong length received*)
|
||||
mbERR_RESP_INVALID : UINT := 20262; (*error in frame*)
|
||||
mbERR_RESP_CRC : UINT := 20263; (*error in frame check (CRC / LRC) MBMaster() and MBMCmd()*)
|
||||
mbERR_QUERY_CRC : UINT := 20264; (*error in frame check (CRC) MBMSlave()*)
|
||||
mbERR_FRM_READ : UINT := 20291; (*error while receiving a frame (FRM_read())*)
|
||||
mbERR_FRM_GETBUF : UINT := 20292; (*no write buffer available (FRM_gbuf())*)
|
||||
mbERR_FRM_WRITE : UINT := 20293; (*error while writing a frame (FRM_write())*)
|
||||
mbERR_FRM_RELOUTBUF : UINT := 20294; (*error in buffer return (FRM_robuf())*)
|
||||
mbERR_FRM_RELBUF : UINT := 20295; (*error in buffer return (FRM_rbuf())*)
|
||||
mbERR_FRM_CLOSE : UINT := 20296; (*error while closing the interface (FRM_close())*)
|
||||
END_VAR
|
||||
193
Logical/Libraries/DRV_mbus/SG3/DRV_mbus.h
Normal file
193
Logical/Libraries/DRV_mbus/SG3/DRV_mbus.h
Normal file
@@ -0,0 +1,193 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _DRV_MBUS_
|
||||
#define _DRV_MBUS_
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#include <DataObj.h>
|
||||
#include <dvframe.h>
|
||||
#include <runtime.h>
|
||||
|
||||
#ifndef _IEC_CONST
|
||||
#define _IEC_CONST _WEAK const
|
||||
#endif
|
||||
|
||||
/* Constants */
|
||||
#ifdef _REPLACE_CONST
|
||||
#define mbERR_INVALID_PARAM 20201U
|
||||
#define mbERR_ILG_O_NODE_N 20205U
|
||||
#define mbERR_ILG_IDENT 20210U
|
||||
#define mbERR_ILG_MBVAR 20215U
|
||||
#define mbERR_NODE_TOUT 20220U
|
||||
#define mbERR_CMD_ENTRY 20240U
|
||||
#define mbERR_CMD_NULL 20241U
|
||||
#define mbERR_CMD_EVENTPV 20242U
|
||||
#define mbERR_CMD_FUNCTION 20243U
|
||||
#define mbERR_CMD_NODE 20244U
|
||||
#define mbERR_CMD_LOCALPV 20245U
|
||||
#define mbERR_CMD_LENGTH 20246U
|
||||
#define mbERR_NO_MEM 20250U
|
||||
#define mbERR_MEM_FREE 20252U
|
||||
#define mbERR_RESP_ERROR 20260U
|
||||
#define mbERR_RESP_LENGTH 20261U
|
||||
#define mbERR_RESP_INVALID 20262U
|
||||
#define mbERR_RESP_CRC 20263U
|
||||
#define mbERR_QUERY_CRC 20264U
|
||||
#define mbERR_FRM_READ 20291U
|
||||
#define mbERR_FRM_GETBUF 20292U
|
||||
#define mbERR_FRM_WRITE 20293U
|
||||
#define mbERR_FRM_RELOUTBUF 20294U
|
||||
#define mbERR_FRM_RELBUF 20295U
|
||||
#define mbERR_FRM_CLOSE 20296U
|
||||
#else
|
||||
_IEC_CONST unsigned short mbERR_INVALID_PARAM = 20201U;
|
||||
_IEC_CONST unsigned short mbERR_ILG_O_NODE_N = 20205U;
|
||||
_IEC_CONST unsigned short mbERR_ILG_IDENT = 20210U;
|
||||
_IEC_CONST unsigned short mbERR_ILG_MBVAR = 20215U;
|
||||
_IEC_CONST unsigned short mbERR_NODE_TOUT = 20220U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_ENTRY = 20240U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_NULL = 20241U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_EVENTPV = 20242U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_FUNCTION = 20243U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_NODE = 20244U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_LOCALPV = 20245U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_LENGTH = 20246U;
|
||||
_IEC_CONST unsigned short mbERR_NO_MEM = 20250U;
|
||||
_IEC_CONST unsigned short mbERR_MEM_FREE = 20252U;
|
||||
_IEC_CONST unsigned short mbERR_RESP_ERROR = 20260U;
|
||||
_IEC_CONST unsigned short mbERR_RESP_LENGTH = 20261U;
|
||||
_IEC_CONST unsigned short mbERR_RESP_INVALID = 20262U;
|
||||
_IEC_CONST unsigned short mbERR_RESP_CRC = 20263U;
|
||||
_IEC_CONST unsigned short mbERR_QUERY_CRC = 20264U;
|
||||
_IEC_CONST unsigned short mbERR_FRM_READ = 20291U;
|
||||
_IEC_CONST unsigned short mbERR_FRM_GETBUF = 20292U;
|
||||
_IEC_CONST unsigned short mbERR_FRM_WRITE = 20293U;
|
||||
_IEC_CONST unsigned short mbERR_FRM_RELOUTBUF = 20294U;
|
||||
_IEC_CONST unsigned short mbERR_FRM_RELBUF = 20295U;
|
||||
_IEC_CONST unsigned short mbERR_FRM_CLOSE = 20296U;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct MBMCmd
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned char mfc;
|
||||
unsigned char node;
|
||||
unsigned long data;
|
||||
unsigned short offset;
|
||||
unsigned short len;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBMCmd_typ;
|
||||
|
||||
typedef struct MBMClose
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBMClose_typ;
|
||||
|
||||
typedef struct MBMaster
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned short recordnum;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit execute;
|
||||
} MBMaster_typ;
|
||||
|
||||
typedef struct MBMOpen
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDevice;
|
||||
unsigned long pMode;
|
||||
unsigned long pConfig;
|
||||
unsigned short timeout;
|
||||
unsigned char ascii;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBMOpen_typ;
|
||||
|
||||
typedef struct MBSClose
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
unsigned char InitCount;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBSClose_typ;
|
||||
|
||||
typedef struct MBSlave
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned short exec;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBSlave_typ;
|
||||
|
||||
typedef struct MBSOpen
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDevice;
|
||||
unsigned long pMode;
|
||||
unsigned long pCoilStat;
|
||||
unsigned long pInputStat;
|
||||
unsigned long pHoldingReg;
|
||||
unsigned long pInputReg;
|
||||
unsigned char own_ID;
|
||||
unsigned short timeout;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
/* VAR (analog) */
|
||||
unsigned long FirstInit;
|
||||
unsigned char InitCount;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBSOpen_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
void MBMCmd(struct MBMCmd* inst);
|
||||
void MBMClose(struct MBMClose* inst);
|
||||
void MBMaster(struct MBMaster* inst);
|
||||
void MBMOpen(struct MBMOpen* inst);
|
||||
void MBSClose(struct MBSClose* inst);
|
||||
void MBSlave(struct MBSlave* inst);
|
||||
void MBSOpen(struct MBSOpen* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _DRV_MBUS_ */
|
||||
|
||||
195
Logical/Libraries/DRV_mbus/SG4/DRV_mbus.h
Normal file
195
Logical/Libraries/DRV_mbus/SG4/DRV_mbus.h
Normal file
@@ -0,0 +1,195 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _DRV_MBUS_
|
||||
#define _DRV_MBUS_
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#include <DataObj.h>
|
||||
#include <dvframe.h>
|
||||
#include <runtime.h>
|
||||
|
||||
#ifndef _BUR_PUBLIC
|
||||
#define _BUR_PUBLIC
|
||||
#endif
|
||||
/* Constants */
|
||||
#ifdef _REPLACE_CONST
|
||||
#define mbERR_FRM_CLOSE 20296U
|
||||
#define mbERR_FRM_RELBUF 20295U
|
||||
#define mbERR_FRM_RELOUTBUF 20294U
|
||||
#define mbERR_FRM_WRITE 20293U
|
||||
#define mbERR_FRM_GETBUF 20292U
|
||||
#define mbERR_FRM_READ 20291U
|
||||
#define mbERR_QUERY_CRC 20264U
|
||||
#define mbERR_RESP_CRC 20263U
|
||||
#define mbERR_RESP_INVALID 20262U
|
||||
#define mbERR_RESP_LENGTH 20261U
|
||||
#define mbERR_RESP_ERROR 20260U
|
||||
#define mbERR_MEM_FREE 20252U
|
||||
#define mbERR_NO_MEM 20250U
|
||||
#define mbERR_CMD_LENGTH 20246U
|
||||
#define mbERR_CMD_LOCALPV 20245U
|
||||
#define mbERR_CMD_NODE 20244U
|
||||
#define mbERR_CMD_FUNCTION 20243U
|
||||
#define mbERR_CMD_EVENTPV 20242U
|
||||
#define mbERR_CMD_NULL 20241U
|
||||
#define mbERR_CMD_ENTRY 20240U
|
||||
#define mbERR_NODE_TOUT 20220U
|
||||
#define mbERR_ILG_MBVAR 20215U
|
||||
#define mbERR_ILG_IDENT 20210U
|
||||
#define mbERR_ILG_O_NODE_N 20205U
|
||||
#define mbERR_INVALID_PARAM 20201U
|
||||
#else
|
||||
#ifndef _GLOBAL_CONST
|
||||
#define _GLOBAL_CONST _WEAK const
|
||||
#endif
|
||||
_GLOBAL_CONST unsigned short mbERR_FRM_CLOSE;
|
||||
_GLOBAL_CONST unsigned short mbERR_FRM_RELBUF;
|
||||
_GLOBAL_CONST unsigned short mbERR_FRM_RELOUTBUF;
|
||||
_GLOBAL_CONST unsigned short mbERR_FRM_WRITE;
|
||||
_GLOBAL_CONST unsigned short mbERR_FRM_GETBUF;
|
||||
_GLOBAL_CONST unsigned short mbERR_FRM_READ;
|
||||
_GLOBAL_CONST unsigned short mbERR_QUERY_CRC;
|
||||
_GLOBAL_CONST unsigned short mbERR_RESP_CRC;
|
||||
_GLOBAL_CONST unsigned short mbERR_RESP_INVALID;
|
||||
_GLOBAL_CONST unsigned short mbERR_RESP_LENGTH;
|
||||
_GLOBAL_CONST unsigned short mbERR_RESP_ERROR;
|
||||
_GLOBAL_CONST unsigned short mbERR_MEM_FREE;
|
||||
_GLOBAL_CONST unsigned short mbERR_NO_MEM;
|
||||
_GLOBAL_CONST unsigned short mbERR_CMD_LENGTH;
|
||||
_GLOBAL_CONST unsigned short mbERR_CMD_LOCALPV;
|
||||
_GLOBAL_CONST unsigned short mbERR_CMD_NODE;
|
||||
_GLOBAL_CONST unsigned short mbERR_CMD_FUNCTION;
|
||||
_GLOBAL_CONST unsigned short mbERR_CMD_EVENTPV;
|
||||
_GLOBAL_CONST unsigned short mbERR_CMD_NULL;
|
||||
_GLOBAL_CONST unsigned short mbERR_CMD_ENTRY;
|
||||
_GLOBAL_CONST unsigned short mbERR_NODE_TOUT;
|
||||
_GLOBAL_CONST unsigned short mbERR_ILG_MBVAR;
|
||||
_GLOBAL_CONST unsigned short mbERR_ILG_IDENT;
|
||||
_GLOBAL_CONST unsigned short mbERR_ILG_O_NODE_N;
|
||||
_GLOBAL_CONST unsigned short mbERR_INVALID_PARAM;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct MBMCmd
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned char mfc;
|
||||
unsigned char node;
|
||||
unsigned long data;
|
||||
unsigned short offset;
|
||||
unsigned short len;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBMCmd_typ;
|
||||
|
||||
typedef struct MBMClose
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBMClose_typ;
|
||||
|
||||
typedef struct MBMaster
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned short recordnum;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit execute;
|
||||
} MBMaster_typ;
|
||||
|
||||
typedef struct MBMOpen
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDevice;
|
||||
unsigned long pMode;
|
||||
unsigned long pConfig;
|
||||
unsigned short timeout;
|
||||
unsigned char ascii;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBMOpen_typ;
|
||||
|
||||
typedef struct MBSClose
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
unsigned char InitCount;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBSClose_typ;
|
||||
|
||||
typedef struct MBSlave
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned short exec;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBSlave_typ;
|
||||
|
||||
typedef struct MBSOpen
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDevice;
|
||||
unsigned long pMode;
|
||||
unsigned long pCoilStat;
|
||||
unsigned long pInputStat;
|
||||
unsigned long pHoldingReg;
|
||||
unsigned long pInputReg;
|
||||
unsigned char own_ID;
|
||||
unsigned short timeout;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
/* VAR (analog) */
|
||||
unsigned long FirstInit;
|
||||
unsigned char InitCount;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBSOpen_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
_BUR_PUBLIC void MBMCmd(struct MBMCmd* inst);
|
||||
_BUR_PUBLIC void MBMClose(struct MBMClose* inst);
|
||||
_BUR_PUBLIC void MBMaster(struct MBMaster* inst);
|
||||
_BUR_PUBLIC void MBMOpen(struct MBMOpen* inst);
|
||||
_BUR_PUBLIC void MBSClose(struct MBSClose* inst);
|
||||
_BUR_PUBLIC void MBSlave(struct MBSlave* inst);
|
||||
_BUR_PUBLIC void MBSOpen(struct MBSOpen* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _DRV_MBUS_ */
|
||||
|
||||
194
Logical/Libraries/DRV_mbus/SGC/DRV_mbus.h
Normal file
194
Logical/Libraries/DRV_mbus/SGC/DRV_mbus.h
Normal file
@@ -0,0 +1,194 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _DRV_MBUS_
|
||||
#define _DRV_MBUS_
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#include <DataObj.h>
|
||||
#include <dvframe.h>
|
||||
#include <runtime.h>
|
||||
|
||||
#ifndef _IEC_CONST
|
||||
#define _IEC_CONST _WEAK const
|
||||
#endif
|
||||
|
||||
/* Constants */
|
||||
#ifdef _REPLACE_CONST
|
||||
#define mbERR_INVALID_PARAM 20201U
|
||||
#define mbERR_ILG_O_NODE_N 20205U
|
||||
#define mbERR_ILG_IDENT 20210U
|
||||
#define mbERR_ILG_MBVAR 20215U
|
||||
#define mbERR_NODE_TOUT 20220U
|
||||
#define mbERR_CMD_ENTRY 20240U
|
||||
#define mbERR_CMD_NULL 20241U
|
||||
#define mbERR_CMD_EVENTPV 20242U
|
||||
#define mbERR_CMD_FUNCTION 20243U
|
||||
#define mbERR_CMD_NODE 20244U
|
||||
#define mbERR_CMD_LOCALPV 20245U
|
||||
#define mbERR_CMD_LENGTH 20246U
|
||||
#define mbERR_NO_MEM 20250U
|
||||
#define mbERR_MEM_FREE 20252U
|
||||
#define mbERR_RESP_ERROR 20260U
|
||||
#define mbERR_RESP_LENGTH 20261U
|
||||
#define mbERR_RESP_INVALID 20262U
|
||||
#define mbERR_RESP_CRC 20263U
|
||||
#define mbERR_QUERY_CRC 20264U
|
||||
#define mbERR_FRM_READ 20291U
|
||||
#define mbERR_FRM_GETBUF 20292U
|
||||
#define mbERR_FRM_WRITE 20293U
|
||||
#define mbERR_FRM_RELOUTBUF 20294U
|
||||
#define mbERR_FRM_RELBUF 20295U
|
||||
#define mbERR_FRM_CLOSE 20296U
|
||||
#else
|
||||
_IEC_CONST unsigned short mbERR_INVALID_PARAM = 20201U;
|
||||
_IEC_CONST unsigned short mbERR_ILG_O_NODE_N = 20205U;
|
||||
_IEC_CONST unsigned short mbERR_ILG_IDENT = 20210U;
|
||||
_IEC_CONST unsigned short mbERR_ILG_MBVAR = 20215U;
|
||||
_IEC_CONST unsigned short mbERR_NODE_TOUT = 20220U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_ENTRY = 20240U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_NULL = 20241U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_EVENTPV = 20242U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_FUNCTION = 20243U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_NODE = 20244U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_LOCALPV = 20245U;
|
||||
_IEC_CONST unsigned short mbERR_CMD_LENGTH = 20246U;
|
||||
_IEC_CONST unsigned short mbERR_NO_MEM = 20250U;
|
||||
_IEC_CONST unsigned short mbERR_MEM_FREE = 20252U;
|
||||
_IEC_CONST unsigned short mbERR_RESP_ERROR = 20260U;
|
||||
_IEC_CONST unsigned short mbERR_RESP_LENGTH = 20261U;
|
||||
_IEC_CONST unsigned short mbERR_RESP_INVALID = 20262U;
|
||||
_IEC_CONST unsigned short mbERR_RESP_CRC = 20263U;
|
||||
_IEC_CONST unsigned short mbERR_QUERY_CRC = 20264U;
|
||||
_IEC_CONST unsigned short mbERR_FRM_READ = 20291U;
|
||||
_IEC_CONST unsigned short mbERR_FRM_GETBUF = 20292U;
|
||||
_IEC_CONST unsigned short mbERR_FRM_WRITE = 20293U;
|
||||
_IEC_CONST unsigned short mbERR_FRM_RELOUTBUF = 20294U;
|
||||
_IEC_CONST unsigned short mbERR_FRM_RELBUF = 20295U;
|
||||
_IEC_CONST unsigned short mbERR_FRM_CLOSE = 20296U;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct MBMCmd
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned char mfc;
|
||||
unsigned char node;
|
||||
unsigned long data;
|
||||
unsigned short offset;
|
||||
unsigned short len;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBMCmd_typ;
|
||||
|
||||
typedef struct MBMClose
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBMClose_typ;
|
||||
|
||||
typedef struct MBMaster
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned short recordnum;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit execute;
|
||||
} MBMaster_typ;
|
||||
|
||||
typedef struct MBMOpen
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDevice;
|
||||
unsigned long pMode;
|
||||
unsigned long pConfig;
|
||||
unsigned short timeout;
|
||||
unsigned char ascii;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBMOpen_typ;
|
||||
|
||||
typedef struct MBSClose
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
unsigned char InitCount;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBSClose_typ;
|
||||
|
||||
typedef struct MBSlave
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned short exec;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBSlave_typ;
|
||||
|
||||
typedef struct MBSOpen
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pDevice;
|
||||
unsigned long pMode;
|
||||
unsigned long pCoilStat;
|
||||
unsigned long pInputStat;
|
||||
unsigned long pHoldingReg;
|
||||
unsigned long pInputReg;
|
||||
unsigned char own_ID;
|
||||
unsigned short timeout;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
/* VAR (analog) */
|
||||
unsigned long FirstInit;
|
||||
unsigned char InitCount;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} MBSOpen_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
void MBMCmd(struct MBMCmd* inst);
|
||||
void MBMClose(struct MBMClose* inst);
|
||||
void MBMaster(struct MBMaster* inst);
|
||||
void MBMOpen(struct MBMOpen* inst);
|
||||
void MBSClose(struct MBSClose* inst);
|
||||
void MBSlave(struct MBSlave* inst);
|
||||
void MBSOpen(struct MBSOpen* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _DRV_MBUS_ */
|
||||
|
||||
|
||||
14
Logical/Libraries/DRV_mbus/binary.lby
Normal file
14
Logical/Libraries/DRV_mbus/binary.lby
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Library SubType="binary" Description="The DRV_mbus library provides functions that allow a B&R System to communicate via Modbus communication." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>DRV_mbus.fun</File>
|
||||
<File>DRV_mbus.typ</File>
|
||||
<File>DRV_mbus.var</File>
|
||||
</Files>
|
||||
<Dependencies>
|
||||
<Dependency ObjectName="dvframe" />
|
||||
<Dependency ObjectName="DataObj" />
|
||||
<Dependency ObjectName="runtime" />
|
||||
</Dependencies>
|
||||
</Library>
|
||||
157
Logical/Libraries/DataObj/DataObj.fun
Normal file
157
Logical/Libraries/DataObj/DataObj.fun
Normal file
@@ -0,0 +1,157 @@
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DatObjCreate (*creates a data object*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
grp :USINT; (*group ID for the data object (default 0x00), must be set to zero*)
|
||||
pName :UDINT; (*pointer to name of the data object to be created*)
|
||||
len :UDINT; (*length of the data area of the data object to be created*)
|
||||
MemType :USINT; (*type of target memory: doTEMP, doUSRRAM, doUSRROM, doSYSROM, doFIXRAM, doMEMCARD*)
|
||||
Option :UDINT; (*options: doNO_CS*)
|
||||
pCpyData :UDINT; (*pointer to data written to the data object during generation*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
ident :UDINT; (*ID of the created data object*)
|
||||
pDatObjMem :UDINT; (*pointer to the data in the data object*)
|
||||
END_VAR
|
||||
VAR
|
||||
i_state :UDINT; (*internal variable*)
|
||||
i_result :UDINT; (*internal variable*)
|
||||
i_spare :ARRAY[0..104] OF USINT; (*internal variable*)
|
||||
i_spare_1 :UDINT; (*internal variable*)
|
||||
i_spare_2 :UINT; (*internal variable*)
|
||||
i_spare_3 :UDINT; (*internal variable*)
|
||||
i_spare_4 :USINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DatObjWrite (*writes to a data object*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*ID of the data object*)
|
||||
Offset :UDINT; (*offset in the data area of the data object*)
|
||||
pSource :UDINT; (*pointer to the data copied to the data object*)
|
||||
len :UDINT; (*length of the data to be copied*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DatObjRead (*reads from a data object*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*ID of the data object*)
|
||||
Offset :UDINT; (*offset in the data area of the data object*)
|
||||
pDestination:UDINT; (*memory to which the data to be read is copied*)
|
||||
len :UDINT; (*length of the data to be copied*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DatObjDelete (*deletes data objects*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*ID of the data object*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
VAR
|
||||
i_state :UDINT; (*internal variable*)
|
||||
i_result :UDINT; (*internal variable*)
|
||||
i_spare :USINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DatObjMove (*moves the storage space of a data object to a new target memory*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*ID of the data object*)
|
||||
MemType :USINT; (*target memory in which the data object is to be saved, e.g. doTEMP, doUSRRAM, doUSRROM, ...*)
|
||||
Option :UDINT; (*options for the object to be saved (doNO_CS = no checksum)*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
identNew :UDINT; (*ID of the new data object*)
|
||||
pDatObjMem :UDINT; (*pointer to the data in the newly created data object*)
|
||||
END_VAR
|
||||
VAR
|
||||
i_state :UDINT; (*internal variable*)
|
||||
i_result :UDINT; (*internal variable*)
|
||||
i_spare :ARRAY[0..40] OF USINT; (*internal variable*)
|
||||
i_spare_1 :UDINT; (*internal variable*)
|
||||
i_spare_2 :USINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DatObjCopy (*copies a data object*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*ID of the data object to be copied*)
|
||||
pNameTarget :UDINT; (*pointer to name of the new data object*)
|
||||
MemTypeTarget :USINT; (*target memory in which the new object is to be generated, e.g. doTEMP, doUSRRAM, ...*)
|
||||
OptionTarget :UDINT; (*options for the copied object (doNO_CS = no checksum)*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
identNew :UDINT; (*ID of the copied data object*)
|
||||
pDatObjMemNew :UDINT; (*pointer to the data in the newly created data object*)
|
||||
END_VAR
|
||||
VAR
|
||||
i_state :UDINT; (*internal variable*)
|
||||
i_result :UDINT; (*internal variable*)
|
||||
i_spare :ARRAY[0..40] OF USINT; (*internal variable*)
|
||||
i_spare_1 :UDINT; (*internal variable*)
|
||||
i_spare_2 :USINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DatObjInfo (*gives information about a data object*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pName :UDINT; (*name of data object*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
ident :UDINT; (*ID of the data object*)
|
||||
pDatObjMem :UDINT; (*pointer to the data in the data object*)
|
||||
len :UDINT; (*length of the data area in the data object*)
|
||||
MemType :USINT; (*memory type in which the data object is located, e.g. doTEMP, doUSRRAM, doUSRROM, ...*)
|
||||
Option :UDINT; (*information about data object options*)
|
||||
ChangeDate :DATE_AND_TIME; (*modification date of the data object*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DatObjChangeDate (*changes the modification date of a data object*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
pName :UDINT; (*pointer to name of data object*)
|
||||
SetDate :DATE_AND_TIME; (*date and time; if the value 0 is transferred, the current PLC system time is used*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DatObjAttach (*attaches a data object to prevent deletion*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*ID of the data object*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DatObjDetach (*detaches a data object*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*ID of the data object*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
14
Logical/Libraries/DataObj/DataObj.typ
Normal file
14
Logical/Libraries/DataObj/DataObj.typ
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
TYPE
|
||||
|
||||
END_TYPE
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
27
Logical/Libraries/DataObj/DataObj.var
Normal file
27
Logical/Libraries/DataObj/DataObj.var
Normal file
@@ -0,0 +1,27 @@
|
||||
|
||||
VAR CONSTANT
|
||||
doERR_TOOLONG_MODULNAME : UINT := 20613; (*module name too long (max. 10 characters)*)
|
||||
doERR_CHECKSUM_WARNING : UINT := 20630; (*wrong target memory specified for the "doNO_CS" option*)
|
||||
doERR_MODULNOTFOUND : UINT := 20609; (*data object not found*)
|
||||
doERR_ILLEGALLENGTH : UINT := 20608; (*wrong length specified*)
|
||||
doERR_STARTHANDLER : UINT := 20612; (*error while enabling asynchronous handler (only SG4)*)
|
||||
doERR_ILLPARAMETER : UINT := 20600; (*wrong parameter given (NULL pointer)*)
|
||||
doERR_WRONGOFFSET : UINT := 20607; (*wrong offset specified*)
|
||||
doERR_ILLOBJTYPE : UINT := 20606; (*wrong object type (not data object)*)
|
||||
doERR_ILLMEMTYPE : UINT := 20602; (*wrong target memory specified*)
|
||||
doERR_WRONGTIME : UINT := 20610; (*wrong date in SetDate (DatObjChangeDate)*)
|
||||
doERR_ILLOBJECT : UINT := 20605; (*object not found*)
|
||||
doERR_DUPOBJECT : UINT := 20601; (*object already present*)
|
||||
doERR_BRINSTALL : UINT := 20604; (*error installing data object*)
|
||||
doERR_NOMEMORY : UINT := 20603; (*no memory available for module to be created*)
|
||||
doERR_ILLSTATE : UINT := 20611; (*incorrect state of the data object*)
|
||||
doERR_BURNINGOBJECT : UINT := 20614; (*error while saving the data object in "Flash" memory*)
|
||||
doERR_MODULDELETE_SYSROM : UINT := 20615; (*a module in SYSROM cannot be deleted*)
|
||||
doSYSROM : USINT := 0; (*SYSROM (SYSTEM FLASH)*)
|
||||
doNO_CS : USINT := 1; (*no cyclic checksum monitoring and no checksum monitoring during installation and booting*)
|
||||
doUSRROM : USINT := 2; (*USERROM (USER FLASH)*)
|
||||
doUSRRAM : USINT := 3; (*USERRAM (target memory for pointer handling)*)
|
||||
doMEMCARD : USINT := 4; (*MEMCARD (only for SG3)*)
|
||||
doFIXRAM : USINT := 5; (*FIXRAM (only for SG3)*)
|
||||
doTEMP : USINT := 65; (*Temporary data object (DRAM, only for SG4)*)
|
||||
END_VAR
|
||||
225
Logical/Libraries/DataObj/SG3/DataObj.h
Normal file
225
Logical/Libraries/DataObj/SG3/DataObj.h
Normal file
@@ -0,0 +1,225 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _DATAOBJ_
|
||||
#define _DATAOBJ_
|
||||
#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 doTEMP 65U
|
||||
#define doFIXRAM 5U
|
||||
#define doMEMCARD 4U
|
||||
#define doUSRRAM 3U
|
||||
#define doUSRROM 2U
|
||||
#define doNO_CS 1U
|
||||
#define doSYSROM 0U
|
||||
#define doERR_BURNINGOBJECT 20614U
|
||||
#define doERR_ILLSTATE 20611U
|
||||
#define doERR_NOMEMORY 20603U
|
||||
#define doERR_BRINSTALL 20604U
|
||||
#define doERR_DUPOBJECT 20601U
|
||||
#define doERR_ILLOBJECT 20605U
|
||||
#define doERR_WRONGTIME 20610U
|
||||
#define doERR_ILLMEMTYPE 20602U
|
||||
#define doERR_ILLOBJTYPE 20606U
|
||||
#define doERR_WRONGOFFSET 20607U
|
||||
#define doERR_ILLPARAMETER 20600U
|
||||
#define doERR_STARTHANDLER 20612U
|
||||
#define doERR_ILLEGALLENGTH 20608U
|
||||
#define doERR_MODULNOTFOUND 20609U
|
||||
#define doERR_CHECKSUM_WARNING 20630U
|
||||
#define doERR_TOOLONG_MODULNAME 20613U
|
||||
#else
|
||||
_IEC_CONST unsigned char doTEMP = 65U;
|
||||
_IEC_CONST unsigned char doFIXRAM = 5U;
|
||||
_IEC_CONST unsigned char doMEMCARD = 4U;
|
||||
_IEC_CONST unsigned char doUSRRAM = 3U;
|
||||
_IEC_CONST unsigned char doUSRROM = 2U;
|
||||
_IEC_CONST unsigned char doNO_CS = 1U;
|
||||
_IEC_CONST unsigned char doSYSROM = 0U;
|
||||
_IEC_CONST unsigned short doERR_BURNINGOBJECT = 20614U;
|
||||
_IEC_CONST unsigned short doERR_ILLSTATE = 20611U;
|
||||
_IEC_CONST unsigned short doERR_NOMEMORY = 20603U;
|
||||
_IEC_CONST unsigned short doERR_BRINSTALL = 20604U;
|
||||
_IEC_CONST unsigned short doERR_DUPOBJECT = 20601U;
|
||||
_IEC_CONST unsigned short doERR_ILLOBJECT = 20605U;
|
||||
_IEC_CONST unsigned short doERR_WRONGTIME = 20610U;
|
||||
_IEC_CONST unsigned short doERR_ILLMEMTYPE = 20602U;
|
||||
_IEC_CONST unsigned short doERR_ILLOBJTYPE = 20606U;
|
||||
_IEC_CONST unsigned short doERR_WRONGOFFSET = 20607U;
|
||||
_IEC_CONST unsigned short doERR_ILLPARAMETER = 20600U;
|
||||
_IEC_CONST unsigned short doERR_STARTHANDLER = 20612U;
|
||||
_IEC_CONST unsigned short doERR_ILLEGALLENGTH = 20608U;
|
||||
_IEC_CONST unsigned short doERR_MODULNOTFOUND = 20609U;
|
||||
_IEC_CONST unsigned short doERR_CHECKSUM_WARNING = 20630U;
|
||||
_IEC_CONST unsigned short doERR_TOOLONG_MODULNAME = 20613U;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct DatObjCreate
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned char grp;
|
||||
unsigned long pName;
|
||||
unsigned long len;
|
||||
unsigned char MemType;
|
||||
unsigned long Option;
|
||||
unsigned long pCpyData;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
unsigned long pDatObjMem;
|
||||
/* VAR (analog) */
|
||||
unsigned long i_state;
|
||||
unsigned long i_result;
|
||||
unsigned char i_spare[105];
|
||||
unsigned long i_spare_1;
|
||||
unsigned short i_spare_2;
|
||||
unsigned long i_spare_3;
|
||||
unsigned char i_spare_4;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjCreate_typ;
|
||||
|
||||
typedef struct DatObjWrite
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long Offset;
|
||||
unsigned long pSource;
|
||||
unsigned long len;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjWrite_typ;
|
||||
|
||||
typedef struct DatObjRead
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long Offset;
|
||||
unsigned long pDestination;
|
||||
unsigned long len;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjRead_typ;
|
||||
|
||||
typedef struct DatObjDelete
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
unsigned long i_state;
|
||||
unsigned long i_result;
|
||||
unsigned char i_spare;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjDelete_typ;
|
||||
|
||||
typedef struct DatObjMove
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned char MemType;
|
||||
unsigned long Option;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long identNew;
|
||||
unsigned long pDatObjMem;
|
||||
/* VAR (analog) */
|
||||
unsigned long i_state;
|
||||
unsigned long i_result;
|
||||
unsigned char i_spare[41];
|
||||
unsigned long i_spare_1;
|
||||
unsigned char i_spare_2;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjMove_typ;
|
||||
|
||||
typedef struct DatObjCopy
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long pNameTarget;
|
||||
unsigned char MemTypeTarget;
|
||||
unsigned long OptionTarget;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long identNew;
|
||||
unsigned long pDatObjMemNew;
|
||||
/* VAR (analog) */
|
||||
unsigned long i_state;
|
||||
unsigned long i_result;
|
||||
unsigned char i_spare[41];
|
||||
unsigned long i_spare_1;
|
||||
unsigned char i_spare_2;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjCopy_typ;
|
||||
|
||||
typedef struct DatObjInfo
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pName;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
unsigned long pDatObjMem;
|
||||
unsigned long len;
|
||||
unsigned char MemType;
|
||||
unsigned long Option;
|
||||
plcdt ChangeDate;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjInfo_typ;
|
||||
|
||||
typedef struct DatObjChangeDate
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pName;
|
||||
plcdt SetDate;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjChangeDate_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
void DatObjCreate(struct DatObjCreate* inst);
|
||||
void DatObjWrite(struct DatObjWrite* inst);
|
||||
void DatObjRead(struct DatObjRead* inst);
|
||||
void DatObjDelete(struct DatObjDelete* inst);
|
||||
void DatObjMove(struct DatObjMove* inst);
|
||||
void DatObjCopy(struct DatObjCopy* inst);
|
||||
void DatObjInfo(struct DatObjInfo* inst);
|
||||
void DatObjChangeDate(struct DatObjChangeDate* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _DATAOBJ_ */
|
||||
|
||||
|
||||
250
Logical/Libraries/DataObj/SG4/DataObj.h
Normal file
250
Logical/Libraries/DataObj/SG4/DataObj.h
Normal file
@@ -0,0 +1,250 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _DATAOBJ_
|
||||
#define _DATAOBJ_
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#include <runtime.h>
|
||||
|
||||
#ifndef _BUR_PUBLIC
|
||||
#define _BUR_PUBLIC
|
||||
#endif
|
||||
/* Constants */
|
||||
#ifdef _REPLACE_CONST
|
||||
#define doTEMP 65U
|
||||
#define doFIXRAM 5U
|
||||
#define doMEMCARD 4U
|
||||
#define doUSRRAM 3U
|
||||
#define doUSRROM 2U
|
||||
#define doNO_CS 1U
|
||||
#define doSYSROM 0U
|
||||
#define doERR_MODULDELETE_SYSROM 20615U
|
||||
#define doERR_BURNINGOBJECT 20614U
|
||||
#define doERR_ILLSTATE 20611U
|
||||
#define doERR_NOMEMORY 20603U
|
||||
#define doERR_BRINSTALL 20604U
|
||||
#define doERR_DUPOBJECT 20601U
|
||||
#define doERR_ILLOBJECT 20605U
|
||||
#define doERR_WRONGTIME 20610U
|
||||
#define doERR_ILLMEMTYPE 20602U
|
||||
#define doERR_ILLOBJTYPE 20606U
|
||||
#define doERR_WRONGOFFSET 20607U
|
||||
#define doERR_ILLPARAMETER 20600U
|
||||
#define doERR_STARTHANDLER 20612U
|
||||
#define doERR_ILLEGALLENGTH 20608U
|
||||
#define doERR_MODULNOTFOUND 20609U
|
||||
#define doERR_CHECKSUM_WARNING 20630U
|
||||
#define doERR_TOOLONG_MODULNAME 20613U
|
||||
#else
|
||||
#ifndef _GLOBAL_CONST
|
||||
#define _GLOBAL_CONST _WEAK const
|
||||
#endif
|
||||
_GLOBAL_CONST unsigned char doTEMP;
|
||||
_GLOBAL_CONST unsigned char doFIXRAM;
|
||||
_GLOBAL_CONST unsigned char doMEMCARD;
|
||||
_GLOBAL_CONST unsigned char doUSRRAM;
|
||||
_GLOBAL_CONST unsigned char doUSRROM;
|
||||
_GLOBAL_CONST unsigned char doNO_CS;
|
||||
_GLOBAL_CONST unsigned char doSYSROM;
|
||||
_GLOBAL_CONST unsigned short doERR_MODULDELETE_SYSROM;
|
||||
_GLOBAL_CONST unsigned short doERR_BURNINGOBJECT;
|
||||
_GLOBAL_CONST unsigned short doERR_ILLSTATE;
|
||||
_GLOBAL_CONST unsigned short doERR_NOMEMORY;
|
||||
_GLOBAL_CONST unsigned short doERR_BRINSTALL;
|
||||
_GLOBAL_CONST unsigned short doERR_DUPOBJECT;
|
||||
_GLOBAL_CONST unsigned short doERR_ILLOBJECT;
|
||||
_GLOBAL_CONST unsigned short doERR_WRONGTIME;
|
||||
_GLOBAL_CONST unsigned short doERR_ILLMEMTYPE;
|
||||
_GLOBAL_CONST unsigned short doERR_ILLOBJTYPE;
|
||||
_GLOBAL_CONST unsigned short doERR_WRONGOFFSET;
|
||||
_GLOBAL_CONST unsigned short doERR_ILLPARAMETER;
|
||||
_GLOBAL_CONST unsigned short doERR_STARTHANDLER;
|
||||
_GLOBAL_CONST unsigned short doERR_ILLEGALLENGTH;
|
||||
_GLOBAL_CONST unsigned short doERR_MODULNOTFOUND;
|
||||
_GLOBAL_CONST unsigned short doERR_CHECKSUM_WARNING;
|
||||
_GLOBAL_CONST unsigned short doERR_TOOLONG_MODULNAME;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct DatObjCreate
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned char grp;
|
||||
unsigned long pName;
|
||||
unsigned long len;
|
||||
unsigned char MemType;
|
||||
unsigned long Option;
|
||||
unsigned long pCpyData;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
unsigned long pDatObjMem;
|
||||
/* VAR (analog) */
|
||||
unsigned long i_state;
|
||||
unsigned long i_result;
|
||||
unsigned char i_spare[105];
|
||||
unsigned long i_spare_1;
|
||||
unsigned short i_spare_2;
|
||||
unsigned long i_spare_3;
|
||||
unsigned char i_spare_4;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjCreate_typ;
|
||||
|
||||
typedef struct DatObjWrite
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long Offset;
|
||||
unsigned long pSource;
|
||||
unsigned long len;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjWrite_typ;
|
||||
|
||||
typedef struct DatObjRead
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long Offset;
|
||||
unsigned long pDestination;
|
||||
unsigned long len;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjRead_typ;
|
||||
|
||||
typedef struct DatObjDelete
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
unsigned long i_state;
|
||||
unsigned long i_result;
|
||||
unsigned char i_spare;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjDelete_typ;
|
||||
|
||||
typedef struct DatObjMove
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned char MemType;
|
||||
unsigned long Option;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long identNew;
|
||||
unsigned long pDatObjMem;
|
||||
/* VAR (analog) */
|
||||
unsigned long i_state;
|
||||
unsigned long i_result;
|
||||
unsigned char i_spare[41];
|
||||
unsigned long i_spare_1;
|
||||
unsigned char i_spare_2;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjMove_typ;
|
||||
|
||||
typedef struct DatObjCopy
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long pNameTarget;
|
||||
unsigned char MemTypeTarget;
|
||||
unsigned long OptionTarget;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long identNew;
|
||||
unsigned long pDatObjMemNew;
|
||||
/* VAR (analog) */
|
||||
unsigned long i_state;
|
||||
unsigned long i_result;
|
||||
unsigned char i_spare[41];
|
||||
unsigned long i_spare_1;
|
||||
unsigned char i_spare_2;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjCopy_typ;
|
||||
|
||||
typedef struct DatObjInfo
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pName;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
unsigned long pDatObjMem;
|
||||
unsigned long len;
|
||||
unsigned char MemType;
|
||||
unsigned long Option;
|
||||
plcdt ChangeDate;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjInfo_typ;
|
||||
|
||||
typedef struct DatObjChangeDate
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pName;
|
||||
plcdt SetDate;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjChangeDate_typ;
|
||||
|
||||
typedef struct DatObjAttach
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjAttach_typ;
|
||||
|
||||
typedef struct DatObjDetach
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjDetach_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
_BUR_PUBLIC void DatObjCreate(struct DatObjCreate* inst);
|
||||
_BUR_PUBLIC void DatObjWrite(struct DatObjWrite* inst);
|
||||
_BUR_PUBLIC void DatObjRead(struct DatObjRead* inst);
|
||||
_BUR_PUBLIC void DatObjDelete(struct DatObjDelete* inst);
|
||||
_BUR_PUBLIC void DatObjMove(struct DatObjMove* inst);
|
||||
_BUR_PUBLIC void DatObjCopy(struct DatObjCopy* inst);
|
||||
_BUR_PUBLIC void DatObjInfo(struct DatObjInfo* inst);
|
||||
_BUR_PUBLIC void DatObjChangeDate(struct DatObjChangeDate* inst);
|
||||
_BUR_PUBLIC void DatObjAttach(struct DatObjAttach* inst);
|
||||
_BUR_PUBLIC void DatObjDetach(struct DatObjDetach* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _DATAOBJ_ */
|
||||
|
||||
225
Logical/Libraries/DataObj/SGC/DataObj.h
Normal file
225
Logical/Libraries/DataObj/SGC/DataObj.h
Normal file
@@ -0,0 +1,225 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _DATAOBJ_
|
||||
#define _DATAOBJ_
|
||||
#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 doTEMP 65U
|
||||
#define doFIXRAM 5U
|
||||
#define doMEMCARD 4U
|
||||
#define doUSRRAM 3U
|
||||
#define doUSRROM 2U
|
||||
#define doNO_CS 1U
|
||||
#define doSYSROM 0U
|
||||
#define doERR_BURNINGOBJECT 20614U
|
||||
#define doERR_ILLSTATE 20611U
|
||||
#define doERR_NOMEMORY 20603U
|
||||
#define doERR_BRINSTALL 20604U
|
||||
#define doERR_DUPOBJECT 20601U
|
||||
#define doERR_ILLOBJECT 20605U
|
||||
#define doERR_WRONGTIME 20610U
|
||||
#define doERR_ILLMEMTYPE 20602U
|
||||
#define doERR_ILLOBJTYPE 20606U
|
||||
#define doERR_WRONGOFFSET 20607U
|
||||
#define doERR_ILLPARAMETER 20600U
|
||||
#define doERR_STARTHANDLER 20612U
|
||||
#define doERR_ILLEGALLENGTH 20608U
|
||||
#define doERR_MODULNOTFOUND 20609U
|
||||
#define doERR_CHECKSUM_WARNING 20630U
|
||||
#define doERR_TOOLONG_MODULNAME 20613U
|
||||
#else
|
||||
_IEC_CONST unsigned char doTEMP = 65U;
|
||||
_IEC_CONST unsigned char doFIXRAM = 5U;
|
||||
_IEC_CONST unsigned char doMEMCARD = 4U;
|
||||
_IEC_CONST unsigned char doUSRRAM = 3U;
|
||||
_IEC_CONST unsigned char doUSRROM = 2U;
|
||||
_IEC_CONST unsigned char doNO_CS = 1U;
|
||||
_IEC_CONST unsigned char doSYSROM = 0U;
|
||||
_IEC_CONST unsigned short doERR_BURNINGOBJECT = 20614U;
|
||||
_IEC_CONST unsigned short doERR_ILLSTATE = 20611U;
|
||||
_IEC_CONST unsigned short doERR_NOMEMORY = 20603U;
|
||||
_IEC_CONST unsigned short doERR_BRINSTALL = 20604U;
|
||||
_IEC_CONST unsigned short doERR_DUPOBJECT = 20601U;
|
||||
_IEC_CONST unsigned short doERR_ILLOBJECT = 20605U;
|
||||
_IEC_CONST unsigned short doERR_WRONGTIME = 20610U;
|
||||
_IEC_CONST unsigned short doERR_ILLMEMTYPE = 20602U;
|
||||
_IEC_CONST unsigned short doERR_ILLOBJTYPE = 20606U;
|
||||
_IEC_CONST unsigned short doERR_WRONGOFFSET = 20607U;
|
||||
_IEC_CONST unsigned short doERR_ILLPARAMETER = 20600U;
|
||||
_IEC_CONST unsigned short doERR_STARTHANDLER = 20612U;
|
||||
_IEC_CONST unsigned short doERR_ILLEGALLENGTH = 20608U;
|
||||
_IEC_CONST unsigned short doERR_MODULNOTFOUND = 20609U;
|
||||
_IEC_CONST unsigned short doERR_CHECKSUM_WARNING = 20630U;
|
||||
_IEC_CONST unsigned short doERR_TOOLONG_MODULNAME = 20613U;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct DatObjCreate
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned char grp;
|
||||
unsigned long pName;
|
||||
unsigned long len;
|
||||
unsigned char MemType;
|
||||
unsigned long Option;
|
||||
unsigned long pCpyData;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
unsigned long pDatObjMem;
|
||||
/* VAR (analog) */
|
||||
unsigned long i_state;
|
||||
unsigned long i_result;
|
||||
unsigned char i_spare[105];
|
||||
unsigned long i_spare_1;
|
||||
unsigned short i_spare_2;
|
||||
unsigned long i_spare_3;
|
||||
unsigned char i_spare_4;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjCreate_typ;
|
||||
|
||||
typedef struct DatObjWrite
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long Offset;
|
||||
unsigned long pSource;
|
||||
unsigned long len;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjWrite_typ;
|
||||
|
||||
typedef struct DatObjRead
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long Offset;
|
||||
unsigned long pDestination;
|
||||
unsigned long len;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjRead_typ;
|
||||
|
||||
typedef struct DatObjDelete
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
unsigned long i_state;
|
||||
unsigned long i_result;
|
||||
unsigned char i_spare;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjDelete_typ;
|
||||
|
||||
typedef struct DatObjMove
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned char MemType;
|
||||
unsigned long Option;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long identNew;
|
||||
unsigned long pDatObjMem;
|
||||
/* VAR (analog) */
|
||||
unsigned long i_state;
|
||||
unsigned long i_result;
|
||||
unsigned char i_spare[41];
|
||||
unsigned long i_spare_1;
|
||||
unsigned char i_spare_2;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjMove_typ;
|
||||
|
||||
typedef struct DatObjCopy
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long pNameTarget;
|
||||
unsigned char MemTypeTarget;
|
||||
unsigned long OptionTarget;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long identNew;
|
||||
unsigned long pDatObjMemNew;
|
||||
/* VAR (analog) */
|
||||
unsigned long i_state;
|
||||
unsigned long i_result;
|
||||
unsigned char i_spare[41];
|
||||
unsigned long i_spare_1;
|
||||
unsigned char i_spare_2;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjCopy_typ;
|
||||
|
||||
typedef struct DatObjInfo
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pName;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
unsigned long pDatObjMem;
|
||||
unsigned long len;
|
||||
unsigned char MemType;
|
||||
unsigned long Option;
|
||||
plcdt ChangeDate;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjInfo_typ;
|
||||
|
||||
typedef struct DatObjChangeDate
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long pName;
|
||||
plcdt SetDate;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} DatObjChangeDate_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
void DatObjCreate(struct DatObjCreate* inst);
|
||||
void DatObjWrite(struct DatObjWrite* inst);
|
||||
void DatObjRead(struct DatObjRead* inst);
|
||||
void DatObjDelete(struct DatObjDelete* inst);
|
||||
void DatObjMove(struct DatObjMove* inst);
|
||||
void DatObjCopy(struct DatObjCopy* inst);
|
||||
void DatObjInfo(struct DatObjInfo* inst);
|
||||
void DatObjChangeDate(struct DatObjChangeDate* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _DATAOBJ_ */
|
||||
|
||||
|
||||
12
Logical/Libraries/DataObj/binary.lby
Normal file
12
Logical/Libraries/DataObj/binary.lby
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Library SubType="binary" Description="The DataObj library can be used to dynamically create, dynamically delete and copy data objects, etc. " xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>DataObj.fun</File>
|
||||
<File>DataObj.typ</File>
|
||||
<File>DataObj.var</File>
|
||||
</Files>
|
||||
<Dependencies>
|
||||
<Dependency ObjectName="runtime" />
|
||||
</Dependencies>
|
||||
</Library>
|
||||
15
Logical/Libraries/Package.pkg
Normal file
15
Logical/Libraries/Package.pkg
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="Library" Language="binary" Description="This library contains function interfaces for IEC 61131-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 61131-3 conversion functions.">AsIecCon</Object>
|
||||
<Object Type="Library" Language="binary" Description="The DRV_mbus library provides functions that allow a B&R System to communicate via Modbus communication.">DRV_mbus</Object>
|
||||
<Object Type="Library" Language="binary" Description="The DVFrame library and the frame driver can be used to exchange data with external devices.">dvframe</Object>
|
||||
<Object Type="Library" Language="binary" Description="The DataObj library can be used to dynamically create, dynamically delete and copy data objects, etc. ">DataObj</Object>
|
||||
<Object Type="Library" Language="binary" Description="This library contains standard function blocks and functions for IEC 61131-3.">standard</Object>
|
||||
<Object Type="Library" Language="binary" Description="The AsBrStr Library contains FBKs for memory and character string handling.">AsBrStr</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
130
Logical/Libraries/astime/SG3/astime.h
Normal file
130
Logical/Libraries/astime/SG3/astime.h
Normal file
@@ -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_ */
|
||||
|
||||
|
||||
365
Logical/Libraries/astime/SG4/astime.h
Normal file
365
Logical/Libraries/astime/SG4/astime.h
Normal file
@@ -0,0 +1,365 @@
|
||||
/* 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 _BUR_PUBLIC
|
||||
#define _BUR_PUBLIC
|
||||
#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 timREDUND_INTERFACE 3U
|
||||
#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
|
||||
#ifndef _GLOBAL_CONST
|
||||
#define _GLOBAL_CONST _WEAK const
|
||||
#endif
|
||||
_GLOBAL_CONST unsigned short timERR_AR;
|
||||
_GLOBAL_CONST unsigned short timERR_INVALID_DTSTRUCTURE;
|
||||
_GLOBAL_CONST unsigned short timERR_INVALID_LEN;
|
||||
_GLOBAL_CONST unsigned short timERR_INVALID_PARAMETER;
|
||||
_GLOBAL_CONST unsigned char timREDUND_INTERFACE;
|
||||
_GLOBAL_CONST unsigned char timTIME_SERVER;
|
||||
_GLOBAL_CONST unsigned char timREAL_TIME_CLOCK;
|
||||
_GLOBAL_CONST unsigned char timNO_DST;
|
||||
_GLOBAL_CONST unsigned char timDAYLIGHT_SAVING_TIME;
|
||||
_GLOBAL_CONST unsigned char timNORMAL_TIME;
|
||||
_GLOBAL_CONST signed long TIME_MAX;
|
||||
_GLOBAL_CONST signed long TIME_MIN;
|
||||
_GLOBAL_CONST unsigned long DATE_AND_TIME_MAX;
|
||||
_GLOBAL_CONST unsigned char timEXSETTIME_NO_OPTION;
|
||||
_GLOBAL_CONST unsigned char timEXSETTIME_NO_LOGENTRY;
|
||||
#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 */
|
||||
_BUR_PUBLIC void DTExSetTime(struct DTExSetTime* inst);
|
||||
_BUR_PUBLIC void DTSetTime(struct DTSetTime* inst);
|
||||
_BUR_PUBLIC void DTGetTime(struct DTGetTime* inst);
|
||||
_BUR_PUBLIC void UtcDTGetTime(struct UtcDTGetTime* inst);
|
||||
_BUR_PUBLIC void UtcDTSetTime(struct UtcDTSetTime* inst);
|
||||
_BUR_PUBLIC void UtcDTExSetTime(struct UtcDTExSetTime* inst);
|
||||
_BUR_PUBLIC void DTStructureGetTime(struct DTStructureGetTime* inst);
|
||||
_BUR_PUBLIC void DTStructureSetTime(struct DTStructureSetTime* inst);
|
||||
_BUR_PUBLIC void DTStructureExSetTime(struct DTStructureExSetTime* inst);
|
||||
_BUR_PUBLIC void UtcDTStructureGetTime(struct UtcDTStructureGetTime* inst);
|
||||
_BUR_PUBLIC void UtcDTStructureSetTime(struct UtcDTStructureSetTime* inst);
|
||||
_BUR_PUBLIC void UtcDTStructureExSetTime(struct UtcDTStructureExSetTime* inst);
|
||||
_BUR_PUBLIC void UtcDT_TO_LocalDTStructure(struct UtcDT_TO_LocalDTStructure* inst);
|
||||
_BUR_PUBLIC void LocalDT_TO_UtcDTStructure(struct LocalDT_TO_UtcDTStructure* inst);
|
||||
_BUR_PUBLIC void UtcDTStructure_TO_LocalDT(struct UtcDTStructure_TO_LocalDT* inst);
|
||||
_BUR_PUBLIC void LocalDTStructure_TO_UtcDT(struct LocalDTStructure_TO_UtcDT* inst);
|
||||
_BUR_PUBLIC void TimeDeviceGetInfo(struct TimeDeviceGetInfo* inst);
|
||||
_BUR_PUBLIC void DstGetInfo(struct DstGetInfo* inst);
|
||||
_BUR_PUBLIC void DstGetInfoDT(struct DstGetInfoDT* inst);
|
||||
_BUR_PUBLIC plctime clock_ms(void);
|
||||
_BUR_PUBLIC unsigned long ascTIMEStructure(unsigned long pTIMEStructure, unsigned long pStr, unsigned long len);
|
||||
_BUR_PUBLIC unsigned long ascDTStructure(unsigned long pDTStructure, unsigned long pStr, unsigned long len);
|
||||
_BUR_PUBLIC unsigned long ascTIME(plctime TIME1, unsigned long pStr, unsigned long len);
|
||||
_BUR_PUBLIC unsigned long ascDT(plcdt DT1, unsigned long pStr, unsigned long len);
|
||||
_BUR_PUBLIC plctime TIMEStructure_TO_TIME(unsigned long pTIMEStructure);
|
||||
_BUR_PUBLIC unsigned long TIME_TO_TIMEStructure(plctime TIME1, unsigned long pTIMEStructure);
|
||||
_BUR_PUBLIC plcdt DTStructure_TO_DT(unsigned long pDTStructure);
|
||||
_BUR_PUBLIC unsigned long DT_TO_DTStructure(plcdt DT1, unsigned long pDTStructure);
|
||||
_BUR_PUBLIC unsigned long DiffT(plctime TIME2, plctime TIME1);
|
||||
_BUR_PUBLIC unsigned long DiffDT(plcdt DT2, plcdt DT1);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _ASTIME_ */
|
||||
|
||||
130
Logical/Libraries/astime/SGC/astime.h
Normal file
130
Logical/Libraries/astime/SGC/astime.h
Normal file
@@ -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_ */
|
||||
|
||||
|
||||
333
Logical/Libraries/astime/astime.fun
Normal file
333
Logical/Libraries/astime/astime.fun
Normal file
@@ -0,0 +1,333 @@
|
||||
|
||||
{REDUND_OK} 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
|
||||
|
||||
{REDUND_OK} 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
|
||||
|
||||
{REDUND_OK} 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
|
||||
|
||||
{REDUND_OK} FUNCTION clock_ms : TIME (*provides a continuous millisecond counter in the TIME data type*)
|
||||
END_FUNCTION
|
||||
|
||||
{REDUND_OK} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_OK} 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
|
||||
|
||||
{REDUND_OK} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} 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
|
||||
22
Logical/Libraries/astime/astime.typ
Normal file
22
Logical/Libraries/astime/astime.typ
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
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
|
||||
18
Logical/Libraries/astime/astime.var
Normal file
18
Logical/Libraries/astime/astime.var
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
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;
|
||||
timREDUND_INTERFACE : USINT := 3;
|
||||
timERR_INVALID_PARAMETER : UINT := 33210;
|
||||
timERR_INVALID_LEN : UINT := 33211;
|
||||
timERR_INVALID_DTSTRUCTURE : UINT := 33212;
|
||||
timERR_AR : UINT := 33213;
|
||||
END_VAR
|
||||
12
Logical/Libraries/astime/binary.lby
Normal file
12
Logical/Libraries/astime/binary.lby
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Library SubType="binary" Description="The AsTime Library supports DATE_AND_TIME and TIME data types." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>astime.fun</File>
|
||||
<File>astime.typ</File>
|
||||
<File>astime.var</File>
|
||||
</Files>
|
||||
<Dependencies>
|
||||
<Dependency ObjectName="runtime" />
|
||||
</Dependencies>
|
||||
</Library>
|
||||
227
Logical/Libraries/dvframe/SG3/dvframe.h
Normal file
227
Logical/Libraries/dvframe/SG3/dvframe.h
Normal file
@@ -0,0 +1,227 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _DVFRAME_
|
||||
#define _DVFRAME_
|
||||
#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 ARG_BAUD 0U
|
||||
#define ARG_MISC 16U
|
||||
#define frmERR_OK 0U
|
||||
#define ARG_PVPOLLADR 15U
|
||||
#define frmERR_MAXOPEN 8254U
|
||||
#define frmERR_NOINPUT 60U
|
||||
#define ARG_TXPVPOLLADR 17U
|
||||
#define frmERR_NOBUFFER 8071U
|
||||
#define frmERR_PA_DB_SB 8256U
|
||||
#define MISC_RECEIVE_ALL 2U
|
||||
#define frmERR_NOTOPENED 8251U
|
||||
#define frmERR_INPUTERROR 8079U
|
||||
#define frmERR_NORESOURCES 8258U
|
||||
#define ARG_EVSEND_TASKEVENT 18U
|
||||
#define ARG_EVSEND_TASKIDENT 14U
|
||||
#define frmERR_INVALIDBUFFER 8072U
|
||||
#define frmERR_IOCTL_NOTVALID 8073U
|
||||
#define frmERR_MODEDESCRIPTION 8253U
|
||||
#define frmERR_TRANSMITOVERRUN 8078U
|
||||
#define frmERR_FUB_ENABLE_FALSE 65534U
|
||||
#define frmERR_DEVICEDESCRIPTION 8252U
|
||||
#define frmERR_IOCTL_NOTSUPPORTED 8257U
|
||||
#else
|
||||
_IEC_CONST unsigned long ARG_BAUD = 0U;
|
||||
_IEC_CONST unsigned long ARG_MISC = 16U;
|
||||
_IEC_CONST unsigned short frmERR_OK = 0U;
|
||||
_IEC_CONST unsigned long ARG_PVPOLLADR = 15U;
|
||||
_IEC_CONST unsigned short frmERR_MAXOPEN = 8254U;
|
||||
_IEC_CONST unsigned short frmERR_NOINPUT = 60U;
|
||||
_IEC_CONST unsigned long ARG_TXPVPOLLADR = 17U;
|
||||
_IEC_CONST unsigned short frmERR_NOBUFFER = 8071U;
|
||||
_IEC_CONST unsigned short frmERR_PA_DB_SB = 8256U;
|
||||
_IEC_CONST unsigned long MISC_RECEIVE_ALL = 2U;
|
||||
_IEC_CONST unsigned short frmERR_NOTOPENED = 8251U;
|
||||
_IEC_CONST unsigned short frmERR_INPUTERROR = 8079U;
|
||||
_IEC_CONST unsigned short frmERR_NORESOURCES = 8258U;
|
||||
_IEC_CONST unsigned long ARG_EVSEND_TASKEVENT = 18U;
|
||||
_IEC_CONST unsigned long ARG_EVSEND_TASKIDENT = 14U;
|
||||
_IEC_CONST unsigned short frmERR_INVALIDBUFFER = 8072U;
|
||||
_IEC_CONST unsigned short frmERR_IOCTL_NOTVALID = 8073U;
|
||||
_IEC_CONST unsigned short frmERR_MODEDESCRIPTION = 8253U;
|
||||
_IEC_CONST unsigned short frmERR_TRANSMITOVERRUN = 8078U;
|
||||
_IEC_CONST unsigned short frmERR_FUB_ENABLE_FALSE = 65534U;
|
||||
_IEC_CONST unsigned short frmERR_DEVICEDESCRIPTION = 8252U;
|
||||
_IEC_CONST unsigned short frmERR_IOCTL_NOTSUPPORTED = 8257U;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct XOPENCONFIG
|
||||
{ unsigned short idle;
|
||||
unsigned short delimc;
|
||||
unsigned char delim[2];
|
||||
unsigned short tx_cnt;
|
||||
unsigned short rx_cnt;
|
||||
unsigned short tx_len;
|
||||
unsigned short rx_len;
|
||||
unsigned short argc;
|
||||
unsigned long argv;
|
||||
} XOPENCONFIG;
|
||||
|
||||
typedef struct FRM_mode
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long mode;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_mode_typ;
|
||||
|
||||
typedef struct FRM_ctrl
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned short ioctrl;
|
||||
unsigned long inarg;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long outarg;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[44];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_ctrl_typ;
|
||||
|
||||
typedef struct FRM_robuf
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_robuf_typ;
|
||||
|
||||
typedef struct FRM_gbuf
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_gbuf_typ;
|
||||
|
||||
typedef struct FRM_rbuf
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_rbuf_typ;
|
||||
|
||||
typedef struct FRM_close
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_close_typ;
|
||||
|
||||
typedef struct FRM_write
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_write_typ;
|
||||
|
||||
typedef struct FRM_read
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_read_typ;
|
||||
|
||||
typedef struct FRM_xopen
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long device;
|
||||
unsigned long mode;
|
||||
unsigned long config;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_xopen_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
void FRM_mode(struct FRM_mode* inst);
|
||||
void FRM_ctrl(struct FRM_ctrl* inst);
|
||||
void FRM_robuf(struct FRM_robuf* inst);
|
||||
void FRM_gbuf(struct FRM_gbuf* inst);
|
||||
void FRM_rbuf(struct FRM_rbuf* inst);
|
||||
void FRM_close(struct FRM_close* inst);
|
||||
void FRM_write(struct FRM_write* inst);
|
||||
void FRM_read(struct FRM_read* inst);
|
||||
void FRM_xopen(struct FRM_xopen* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _DVFRAME_ */
|
||||
|
||||
248
Logical/Libraries/dvframe/SG4/dvframe.h
Normal file
248
Logical/Libraries/dvframe/SG4/dvframe.h
Normal file
@@ -0,0 +1,248 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _DVFRAME_
|
||||
#define _DVFRAME_
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#include <runtime.h>
|
||||
|
||||
#ifndef _BUR_PUBLIC
|
||||
#define _BUR_PUBLIC
|
||||
#endif
|
||||
/* Constants */
|
||||
#ifdef _REPLACE_CONST
|
||||
#define ARG_BAUD 0U
|
||||
#define ARG_MISC 16U
|
||||
#define frmERR_OK 0U
|
||||
#define ARG_PVPOLLADR 15U
|
||||
#define frmERR_MAXOPEN 8254U
|
||||
#define frmERR_NOINPUT 60U
|
||||
#define ARG_TXPVPOLLADR 17U
|
||||
#define frmERR_NOBUFFER 8071U
|
||||
#define frmERR_PA_DB_SB 8256U
|
||||
#define MISC_RECEIVE_ALL 2U
|
||||
#define frmERR_NOTOPENED 8251U
|
||||
#define frmERR_INPUTERROR 8079U
|
||||
#define frmERR_NORESOURCES 8258U
|
||||
#define ARG_EVSEND_TASKEVENT 18U
|
||||
#define ARG_EVSEND_TASKIDENT 14U
|
||||
#define frmERR_INIT_IN_PROGRESS 8068U
|
||||
#define frmERR_IF_UNREACHABLE 8067U
|
||||
#define frmERR_INVALIDBUFFER 8072U
|
||||
#define frmERR_IOCTL_NOTVALID 8073U
|
||||
#define frmERR_MODEDESCRIPTION 8253U
|
||||
#define frmERR_TRANSMITOVERRUN 8078U
|
||||
#define frmERR_FUB_ENABLE_FALSE 65534U
|
||||
#define frmERR_DEVICEDESCRIPTION 8252U
|
||||
#define frmERR_IOCTL_NOTSUPPORTED 8257U
|
||||
#else
|
||||
#ifndef _GLOBAL_CONST
|
||||
#define _GLOBAL_CONST _WEAK const
|
||||
#endif
|
||||
_GLOBAL_CONST unsigned long ARG_BAUD;
|
||||
_GLOBAL_CONST unsigned long ARG_MISC;
|
||||
_GLOBAL_CONST unsigned short frmERR_OK;
|
||||
_GLOBAL_CONST unsigned long ARG_PVPOLLADR;
|
||||
_GLOBAL_CONST unsigned short frmERR_MAXOPEN;
|
||||
_GLOBAL_CONST unsigned short frmERR_NOINPUT;
|
||||
_GLOBAL_CONST unsigned long ARG_TXPVPOLLADR;
|
||||
_GLOBAL_CONST unsigned short frmERR_NOBUFFER;
|
||||
_GLOBAL_CONST unsigned short frmERR_PA_DB_SB;
|
||||
_GLOBAL_CONST unsigned long MISC_RECEIVE_ALL;
|
||||
_GLOBAL_CONST unsigned short frmERR_NOTOPENED;
|
||||
_GLOBAL_CONST unsigned short frmERR_INPUTERROR;
|
||||
_GLOBAL_CONST unsigned short frmERR_NORESOURCES;
|
||||
_GLOBAL_CONST unsigned long ARG_EVSEND_TASKEVENT;
|
||||
_GLOBAL_CONST unsigned long ARG_EVSEND_TASKIDENT;
|
||||
_GLOBAL_CONST unsigned short frmERR_INIT_IN_PROGRESS;
|
||||
_GLOBAL_CONST unsigned short frmERR_IF_UNREACHABLE;
|
||||
_GLOBAL_CONST unsigned short frmERR_INVALIDBUFFER;
|
||||
_GLOBAL_CONST unsigned short frmERR_IOCTL_NOTVALID;
|
||||
_GLOBAL_CONST unsigned short frmERR_MODEDESCRIPTION;
|
||||
_GLOBAL_CONST unsigned short frmERR_TRANSMITOVERRUN;
|
||||
_GLOBAL_CONST unsigned short frmERR_FUB_ENABLE_FALSE;
|
||||
_GLOBAL_CONST unsigned short frmERR_DEVICEDESCRIPTION;
|
||||
_GLOBAL_CONST unsigned short frmERR_IOCTL_NOTSUPPORTED;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct XOPENCONFIG
|
||||
{ unsigned short idle;
|
||||
unsigned short delimc;
|
||||
unsigned char delim[2];
|
||||
unsigned short tx_cnt;
|
||||
unsigned short rx_cnt;
|
||||
unsigned short tx_len;
|
||||
unsigned short rx_len;
|
||||
unsigned short argc;
|
||||
unsigned long argv;
|
||||
} XOPENCONFIG;
|
||||
|
||||
typedef struct FRM_mode
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long mode;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_mode_typ;
|
||||
|
||||
typedef struct FRM_ctrl
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned short ioctrl;
|
||||
unsigned long inarg;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long outarg;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[44];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_ctrl_typ;
|
||||
|
||||
typedef struct FRM_robuf
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_robuf_typ;
|
||||
|
||||
typedef struct FRM_gbuf
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_gbuf_typ;
|
||||
|
||||
typedef struct FRM_rbuf
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_rbuf_typ;
|
||||
|
||||
typedef struct FRM_close
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_close_typ;
|
||||
|
||||
typedef struct FRM_write
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_write_typ;
|
||||
|
||||
typedef struct FRM_writeAcknowledged
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_writeAcknowledged_typ;
|
||||
|
||||
typedef struct FRM_read
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_read_typ;
|
||||
|
||||
typedef struct FRM_xopen
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long device;
|
||||
unsigned long mode;
|
||||
unsigned long config;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_xopen_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
_BUR_PUBLIC void FRM_mode(struct FRM_mode* inst);
|
||||
_BUR_PUBLIC void FRM_ctrl(struct FRM_ctrl* inst);
|
||||
_BUR_PUBLIC void FRM_robuf(struct FRM_robuf* inst);
|
||||
_BUR_PUBLIC void FRM_gbuf(struct FRM_gbuf* inst);
|
||||
_BUR_PUBLIC void FRM_rbuf(struct FRM_rbuf* inst);
|
||||
_BUR_PUBLIC void FRM_close(struct FRM_close* inst);
|
||||
_BUR_PUBLIC void FRM_write(struct FRM_write* inst);
|
||||
_BUR_PUBLIC void FRM_writeAcknowledged(struct FRM_writeAcknowledged* inst);
|
||||
_BUR_PUBLIC void FRM_read(struct FRM_read* inst);
|
||||
_BUR_PUBLIC void FRM_xopen(struct FRM_xopen* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _DVFRAME_ */
|
||||
|
||||
227
Logical/Libraries/dvframe/SGC/dvframe.h
Normal file
227
Logical/Libraries/dvframe/SGC/dvframe.h
Normal file
@@ -0,0 +1,227 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _DVFRAME_
|
||||
#define _DVFRAME_
|
||||
#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 ARG_BAUD 0U
|
||||
#define ARG_MISC 16U
|
||||
#define frmERR_OK 0U
|
||||
#define ARG_PVPOLLADR 15U
|
||||
#define frmERR_MAXOPEN 8254U
|
||||
#define frmERR_NOINPUT 60U
|
||||
#define ARG_TXPVPOLLADR 17U
|
||||
#define frmERR_NOBUFFER 8071U
|
||||
#define frmERR_PA_DB_SB 8256U
|
||||
#define MISC_RECEIVE_ALL 2U
|
||||
#define frmERR_NOTOPENED 8251U
|
||||
#define frmERR_INPUTERROR 8079U
|
||||
#define frmERR_NORESOURCES 8258U
|
||||
#define ARG_EVSEND_TASKEVENT 18U
|
||||
#define ARG_EVSEND_TASKIDENT 14U
|
||||
#define frmERR_INVALIDBUFFER 8072U
|
||||
#define frmERR_IOCTL_NOTVALID 8073U
|
||||
#define frmERR_MODEDESCRIPTION 8253U
|
||||
#define frmERR_TRANSMITOVERRUN 8078U
|
||||
#define frmERR_FUB_ENABLE_FALSE 65534U
|
||||
#define frmERR_DEVICEDESCRIPTION 8252U
|
||||
#define frmERR_IOCTL_NOTSUPPORTED 8257U
|
||||
#else
|
||||
_IEC_CONST unsigned long ARG_BAUD = 0U;
|
||||
_IEC_CONST unsigned long ARG_MISC = 16U;
|
||||
_IEC_CONST unsigned short frmERR_OK = 0U;
|
||||
_IEC_CONST unsigned long ARG_PVPOLLADR = 15U;
|
||||
_IEC_CONST unsigned short frmERR_MAXOPEN = 8254U;
|
||||
_IEC_CONST unsigned short frmERR_NOINPUT = 60U;
|
||||
_IEC_CONST unsigned long ARG_TXPVPOLLADR = 17U;
|
||||
_IEC_CONST unsigned short frmERR_NOBUFFER = 8071U;
|
||||
_IEC_CONST unsigned short frmERR_PA_DB_SB = 8256U;
|
||||
_IEC_CONST unsigned long MISC_RECEIVE_ALL = 2U;
|
||||
_IEC_CONST unsigned short frmERR_NOTOPENED = 8251U;
|
||||
_IEC_CONST unsigned short frmERR_INPUTERROR = 8079U;
|
||||
_IEC_CONST unsigned short frmERR_NORESOURCES = 8258U;
|
||||
_IEC_CONST unsigned long ARG_EVSEND_TASKEVENT = 18U;
|
||||
_IEC_CONST unsigned long ARG_EVSEND_TASKIDENT = 14U;
|
||||
_IEC_CONST unsigned short frmERR_INVALIDBUFFER = 8072U;
|
||||
_IEC_CONST unsigned short frmERR_IOCTL_NOTVALID = 8073U;
|
||||
_IEC_CONST unsigned short frmERR_MODEDESCRIPTION = 8253U;
|
||||
_IEC_CONST unsigned short frmERR_TRANSMITOVERRUN = 8078U;
|
||||
_IEC_CONST unsigned short frmERR_FUB_ENABLE_FALSE = 65534U;
|
||||
_IEC_CONST unsigned short frmERR_DEVICEDESCRIPTION = 8252U;
|
||||
_IEC_CONST unsigned short frmERR_IOCTL_NOTSUPPORTED = 8257U;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct XOPENCONFIG
|
||||
{ unsigned short idle;
|
||||
unsigned short delimc;
|
||||
unsigned char delim[2];
|
||||
unsigned short tx_cnt;
|
||||
unsigned short rx_cnt;
|
||||
unsigned short tx_len;
|
||||
unsigned short rx_len;
|
||||
unsigned short argc;
|
||||
unsigned long argv;
|
||||
} XOPENCONFIG;
|
||||
|
||||
typedef struct FRM_mode
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long mode;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_mode_typ;
|
||||
|
||||
typedef struct FRM_ctrl
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned short ioctrl;
|
||||
unsigned long inarg;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long outarg;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[44];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_ctrl_typ;
|
||||
|
||||
typedef struct FRM_robuf
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_robuf_typ;
|
||||
|
||||
typedef struct FRM_gbuf
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_gbuf_typ;
|
||||
|
||||
typedef struct FRM_rbuf
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_rbuf_typ;
|
||||
|
||||
typedef struct FRM_close
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_close_typ;
|
||||
|
||||
typedef struct FRM_write
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_write_typ;
|
||||
|
||||
typedef struct FRM_read
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long ident;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long buffer;
|
||||
unsigned short buflng;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_read_typ;
|
||||
|
||||
typedef struct FRM_xopen
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
unsigned long device;
|
||||
unsigned long mode;
|
||||
unsigned long config;
|
||||
/* VAR_OUTPUT (analog) */
|
||||
unsigned short status;
|
||||
unsigned long ident;
|
||||
/* VAR (analog) */
|
||||
plcstring internal[28];
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit enable;
|
||||
} FRM_xopen_typ;
|
||||
|
||||
|
||||
|
||||
/* Prototyping of functions and function blocks */
|
||||
void FRM_mode(struct FRM_mode* inst);
|
||||
void FRM_ctrl(struct FRM_ctrl* inst);
|
||||
void FRM_robuf(struct FRM_robuf* inst);
|
||||
void FRM_gbuf(struct FRM_gbuf* inst);
|
||||
void FRM_rbuf(struct FRM_rbuf* inst);
|
||||
void FRM_close(struct FRM_close* inst);
|
||||
void FRM_write(struct FRM_write* inst);
|
||||
void FRM_read(struct FRM_read* inst);
|
||||
void FRM_xopen(struct FRM_xopen* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _DVFRAME_ */
|
||||
|
||||
12
Logical/Libraries/dvframe/binary.lby
Normal file
12
Logical/Libraries/dvframe/binary.lby
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Library SubType="binary" Description="The DVFrame library and the frame driver can be used to exchange data with external devices." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>dvframe.fun</File>
|
||||
<File>dvframe.typ</File>
|
||||
<File>dvframe.var</File>
|
||||
</Files>
|
||||
<Dependencies>
|
||||
<Dependency ObjectName="runtime" />
|
||||
</Dependencies>
|
||||
</Library>
|
||||
149
Logical/Libraries/dvframe/dvframe.fun
Normal file
149
Logical/Libraries/dvframe/dvframe.fun
Normal file
@@ -0,0 +1,149 @@
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_mode (*modifies the values for the baud rate and asynchronous parameters*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*driver ID for the interface (see FRM_xopen())*)
|
||||
mode :UDINT; (*address of the string which configures the interface to be used*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
VAR
|
||||
internal :STRING[27]; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_ctrl (*operates the DSR/DTR signals for modem capable interfaces*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*driver ID for the interface (see FRM_xopen())*)
|
||||
ioctrl :UINT; (*control selection*)
|
||||
inarg :UDINT; (*input argument*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
outarg :UDINT; (*output argument*)
|
||||
END_VAR
|
||||
VAR
|
||||
internal :STRING[43]; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_robuf (*releases the send buffer manually*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*driver ID for the interface (see FRM_xopen())*)
|
||||
buffer :UDINT; (*send buffer address*)
|
||||
buflng :UINT; (*send buffer length*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
VAR
|
||||
internal :STRING[27]; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_gbuf (*requests an available send buffer*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*driver ID for the interface (see FRM_xopen())*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
buffer :UDINT; (*send buffer address*)
|
||||
buflng :UINT; (*send buffer length*)
|
||||
END_VAR
|
||||
VAR
|
||||
internal :STRING[27]; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_rbuf (*releases the receive buffer*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*driver ID for the interface (see FRM_xopen())*)
|
||||
buffer :UDINT; (*receive buffer address*)
|
||||
buflng :UINT; (*receive buffer length*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
VAR
|
||||
internal :STRING[27]; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_close (*closes a previously opened serial interface*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*driver ID for the interface (see FRM_xopen())*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
VAR
|
||||
internal :STRING[27]; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_write (*enables the frame driver to send data to the send buffer*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*driver ID for the interface (see FRM_xopen())*)
|
||||
buffer :UDINT; (*send buffer address*)
|
||||
buflng :UINT; (*send buffer length*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
VAR
|
||||
internal :STRING[27]; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_writeAcknowledged (*enables the frame driver to send data to the send buffer*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*driver ID for the interface (see FRM_xopen())*)
|
||||
buffer :UDINT; (*send buffer address*)
|
||||
buflng :UINT; (*send buffer length*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
END_VAR
|
||||
VAR
|
||||
internal :STRING[27]; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_read (*starts the receive process*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
ident :UDINT; (*driver ID for the interface (see FRM_xopen())*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
buffer :UDINT; (*receive buffer address*)
|
||||
buflng :UINT; (*receive buffer length*)
|
||||
END_VAR
|
||||
VAR
|
||||
internal :STRING[27]; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_xopen (*opens a serial interface for frame transfer*)
|
||||
VAR_INPUT
|
||||
enable :BOOL; (*enables execution*)
|
||||
device :UDINT; (*pointer to a string which clearly describes the interface used*)
|
||||
mode :UDINT; (*pointer to the string which configures the interface to be used*)
|
||||
config :UDINT; (*address for a configuration structure can be entered at this point (optional entry)*)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
|
||||
ident :UDINT; (*driver ID for the interface (required for other functions in the DVFrame library)*)
|
||||
END_VAR
|
||||
VAR
|
||||
internal :STRING[27]; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
14
Logical/Libraries/dvframe/dvframe.typ
Normal file
14
Logical/Libraries/dvframe/dvframe.typ
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
TYPE
|
||||
XOPENCONFIG : STRUCT
|
||||
idle : UINT ; (*maximum idle time between characters*)
|
||||
delimc : UINT ; (*activate the frame delimiters, standard value : 0*)
|
||||
delim : ARRAY[0..1] OF USINT ; (*frame delimiters, default value: 0,0*)
|
||||
tx_cnt : UINT ; (*number of send buffers (maximum 8), default value: 2*)
|
||||
rx_cnt : UINT ; (*number of receive buffers (maximum 8), default value: 2*)
|
||||
tx_len : UINT ; (*send buffer length, default value: 256 bytes*)
|
||||
rx_len : UINT ; (*receive buffer length, default value: 256 bytes*)
|
||||
argc : UINT ; (*number of additional arguments in argv, default value: 0*)
|
||||
argv : UDINT ; (*address for a UDINT field with additional arguments, default value: 0*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
27
Logical/Libraries/dvframe/dvframe.var
Normal file
27
Logical/Libraries/dvframe/dvframe.var
Normal file
@@ -0,0 +1,27 @@
|
||||
|
||||
VAR CONSTANT
|
||||
frmERR_IOCTL_NOTSUPPORTED : UINT := 8257; (*command not supported by driver (hardware)*)
|
||||
frmERR_DEVICEDESCRIPTION : UINT := 8252; (*device not found*)
|
||||
frmERR_FUB_ENABLE_FALSE : UINT := 65534;
|
||||
frmERR_TRANSMITOVERRUN : UINT := 8078; (*send buffer waiting queue full*)
|
||||
frmERR_MODEDESCRIPTION : UINT := 8253; (*syntax error in mode parameter string, or mode parameter not supported by the specified device*)
|
||||
frmERR_IOCTL_NOTVALID : UINT := 8073; (*invalid I/O control code*)
|
||||
frmERR_INVALIDBUFFER : UINT := 8072; (*invalid buffer rejected*)
|
||||
frmERR_IF_UNREACHABLE : UINT := 8067; (*device is not available*)
|
||||
frmERR_INIT_IN_PROGRESS : UINT := 8068; (*device is busy with xopen/mode*)
|
||||
ARG_EVSEND_TASKIDENT : UDINT := 14;
|
||||
ARG_EVSEND_TASKEVENT : UDINT := 18;
|
||||
frmERR_NORESOURCES : UINT := 8258; (*required resource not available (memory, OS object, etc.)*)
|
||||
frmERR_INPUTERROR : UINT := 8079; (*frame buffer with defective character*)
|
||||
frmERR_NOTOPENED : UINT := 8251; (*device not open*)
|
||||
MISC_RECEIVE_ALL : UDINT := 2;
|
||||
frmERR_PA_DB_SB : UINT := 8256; (*/PA, /DB, /SB must always be specified together*)
|
||||
frmERR_NOBUFFER : UINT := 8071; (*no buffer available in the send buffer manager*)
|
||||
ARG_TXPVPOLLADR : UDINT := 17;
|
||||
frmERR_NOINPUT : UINT := 60; (*no message received*)
|
||||
frmERR_MAXOPEN : UINT := 8254; (*too many devices opened at once*)
|
||||
ARG_PVPOLLADR : UDINT := 15;
|
||||
frmERR_OK : UINT := 0;
|
||||
ARG_MISC : UDINT := 16;
|
||||
ARG_BAUD : UDINT := 0;
|
||||
END_VAR
|
||||
11
Logical/Libraries/operator/SG3/operator.h
Normal file
11
Logical/Libraries/operator/SG3/operator.h
Normal file
@@ -0,0 +1,11 @@
|
||||
/****************************************************************************/
|
||||
/* */
|
||||
/* operator.h */
|
||||
/* */
|
||||
/* Automation Studio */
|
||||
/* Copyright Bernecker&Rainer 1998-1999 */
|
||||
/* */
|
||||
/****************************************************************************/
|
||||
|
||||
/* This library does not contain C code */
|
||||
|
||||
2
Logical/Libraries/operator/SG4/operator.h
Normal file
2
Logical/Libraries/operator/SG4/operator.h
Normal file
@@ -0,0 +1,2 @@
|
||||
/* This library does not contain C code */
|
||||
|
||||
11
Logical/Libraries/operator/SGC/operator.h
Normal file
11
Logical/Libraries/operator/SGC/operator.h
Normal file
@@ -0,0 +1,11 @@
|
||||
/****************************************************************************/
|
||||
/* */
|
||||
/* operator.h */
|
||||
/* */
|
||||
/* Automation Studio */
|
||||
/* Copyright Bernecker&Rainer 1998-1999 */
|
||||
/* */
|
||||
/****************************************************************************/
|
||||
|
||||
/* This library does not contain C code */
|
||||
|
||||
9
Logical/Libraries/operator/binary.lby
Normal file
9
Logical/Libraries/operator/binary.lby
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Library SubType="binary" Description="This library contains function interfaces for IEC 61131-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>
|
||||
<File>operator.typ</File>
|
||||
<File>operator.var</File>
|
||||
</Files>
|
||||
</Library>
|
||||
224
Logical/Libraries/operator/operator.fun
Normal file
224
Logical/Libraries/operator/operator.fun
Normal file
@@ -0,0 +1,224 @@
|
||||
|
||||
{REDUND_OK} FUNCTION SIZEOF : UDINT (*determines the size of a variable in bytes*)
|
||||
VAR_INPUT
|
||||
in :ANY; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION ADR : UDINT (*determines the address of a data point*)
|
||||
VAR_INPUT
|
||||
in :ANY; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION ADRINST : UDINT (*determines the address of a fub instance*)
|
||||
END_FUNCTION
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} FUNCTION AND : ANY (*makes a bitwise AND relation for 2 or more variables*)
|
||||
VAR_INPUT
|
||||
INx :ANY; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION XOR : ANY (*makes a bitwise XOR relation for 2 or more variables*)
|
||||
VAR_INPUT
|
||||
INx :ANY; (*input values*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION OR : ANY (*makes a bitwise OR relation for 2 or more variables*)
|
||||
VAR_INPUT
|
||||
INx :ANY; (*input values*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION NOT : ANY (*makes a bitwise inversion of variables*)
|
||||
VAR_INPUT
|
||||
IN :ANY; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION ADD : ANY (*adds 2 or more variables*)
|
||||
VAR_INPUT
|
||||
INx :ANY; (*input values*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION MUL : ANY_NUM (*multiplies 2 or more variables*)
|
||||
VAR_INPUT
|
||||
INx :ANY_NUM; (*input values*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} FUNCTION MUX : ANY (*selects a value from several values*)
|
||||
VAR_INPUT
|
||||
K :SINT; (*selection variable*)
|
||||
INx :ANY; (*input values*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} FUNCTION ABS : ANY_NUM (*returns the absolute value of a number*)
|
||||
VAR_INPUT
|
||||
IN :ANY_NUM; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION SQRT : ANY_REAL (*returns the square root of a number*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION LN : ANY_REAL (*returns the result of a natural logarithm*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION LOG : ANY_REAL (*returns the result of a base 10 logarithm*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION EXP : ANY_REAL (*returns the result of a natural exponential function*)
|
||||
VAR_INPUT
|
||||
IN :ANY_REAL; (*input value*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} FUNCTION EXPT : REAL (*raises one variable to the power of another*)
|
||||
VAR_INPUT
|
||||
IN1 :REAL; (*base*)
|
||||
IN2 :ANY_NUM; (*exponent*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} 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
|
||||
4
Logical/Libraries/operator/operator.typ
Normal file
4
Logical/Libraries/operator/operator.typ
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
TYPE
|
||||
|
||||
END_TYPE
|
||||
4
Logical/Libraries/operator/operator.var
Normal file
4
Logical/Libraries/operator/operator.var
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
VAR CONSTANT
|
||||
|
||||
END_VAR
|
||||
80
Logical/Libraries/runtime/SG3/runtime.h
Normal file
80
Logical/Libraries/runtime/SG3/runtime.h
Normal file
@@ -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_ */
|
||||
|
||||
489
Logical/Libraries/runtime/SG4/runtime.h
Normal file
489
Logical/Libraries/runtime/SG4/runtime.h
Normal file
@@ -0,0 +1,489 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef _RUNTIME_
|
||||
#define _RUNTIME_
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#ifndef _BUR_PUBLIC
|
||||
#define _BUR_PUBLIC
|
||||
#endif
|
||||
/* Constants */
|
||||
#ifdef _REPLACE_CONST
|
||||
#define IEC_DATATYPE_LINT 23U
|
||||
#define IEC_DATATYPE_WSTRING 21U
|
||||
#define IEC_DATATYPE_LWORD 20U
|
||||
#define IEC_DATATYPE_DWORD 19U
|
||||
#define IEC_DATATYPE_WORD 18U
|
||||
#define IEC_DATATYPE_BYTE 17U
|
||||
#define IEC_DATATYPE_TIME_OF_DAY 16U
|
||||
#define IEC_DATATYPE_LREAL 14U
|
||||
#define IEC_DATATYPE_DATE 13U
|
||||
#define IEC_DATATYPE_TIME 12U
|
||||
#define IEC_DATATYPE_DATE_AND_TIME 11U
|
||||
#define IEC_DATATYPE_ULINT 10U
|
||||
#define IEC_DATATYPE_STRING 9U
|
||||
#define IEC_DATATYPE_REAL 8U
|
||||
#define IEC_DATATYPE_UDINT 7U
|
||||
#define IEC_DATATYPE_UINT 6U
|
||||
#define IEC_DATATYPE_USINT 5U
|
||||
#define IEC_DATATYPE_DINT 4U
|
||||
#define IEC_DATATYPE_INT 3U
|
||||
#define IEC_DATATYPE_SINT 2U
|
||||
#define IEC_DATATYPE_BOOL 1U
|
||||
#define ERR_FB_NOT_IMPLEMENTED (-1070585592)
|
||||
#define ERR_FUB_REDUNDANT 35688U
|
||||
#define ERR_FUB_BUSY 65535U
|
||||
#define ERR_FUB_ENABLE_FALSE 65534U
|
||||
#define ERR_NOTIMPLEMENTED 9999U
|
||||
#define ERR_OK 0U
|
||||
#else
|
||||
#ifndef _GLOBAL_CONST
|
||||
#define _GLOBAL_CONST _WEAK const
|
||||
#endif
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_LINT;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_WSTRING;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_LWORD;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_DWORD;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_WORD;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_BYTE;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_TIME_OF_DAY;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_LREAL;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_DATE;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_TIME;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_DATE_AND_TIME;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_ULINT;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_STRING;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_REAL;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_UDINT;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_UINT;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_USINT;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_DINT;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_INT;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_SINT;
|
||||
_GLOBAL_CONST unsigned short IEC_DATATYPE_BOOL;
|
||||
_GLOBAL_CONST signed long ERR_FB_NOT_IMPLEMENTED;
|
||||
_GLOBAL_CONST unsigned short ERR_FUB_REDUNDANT;
|
||||
_GLOBAL_CONST unsigned short ERR_FUB_BUSY;
|
||||
_GLOBAL_CONST unsigned short ERR_FUB_ENABLE_FALSE;
|
||||
_GLOBAL_CONST unsigned short ERR_NOTIMPLEMENTED;
|
||||
_GLOBAL_CONST unsigned short ERR_OK;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datatypes and datatypes of function blocks */
|
||||
typedef struct SFCActionControl
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
plctime T;
|
||||
/* VAR (analog) */
|
||||
unsigned char S_FF_SET;
|
||||
unsigned char S_FF_R1;
|
||||
unsigned char S_FF_Q;
|
||||
unsigned char dummy1;
|
||||
plctime L_TMR_PT;
|
||||
plctime L_TMR_ET;
|
||||
plctime L_TMR_STAR;
|
||||
unsigned char L_TMR_IN;
|
||||
unsigned char L_TMR_Q;
|
||||
unsigned char L_TMR_M;
|
||||
unsigned char dummy2;
|
||||
plctime D_TMR_PT;
|
||||
plctime D_TMR_ET;
|
||||
plctime D_TMR_STAR;
|
||||
unsigned char D_TMR_IN;
|
||||
unsigned char D_TMR_Q;
|
||||
unsigned char D_TMR_M;
|
||||
unsigned char dummy3;
|
||||
unsigned char P_TRIG_CLK;
|
||||
unsigned char P_TRIG_Q;
|
||||
unsigned char P_TRIG_M;
|
||||
unsigned char dummy4;
|
||||
plctime SD_TMR_PT;
|
||||
plctime SD_TMR_ET;
|
||||
plctime SD_TMR_STA;
|
||||
unsigned char SD_TMR_IN;
|
||||
unsigned char SD_TMR_Q;
|
||||
unsigned char SD_TMR_M;
|
||||
unsigned char dummy5;
|
||||
unsigned char SD_FF_SET;
|
||||
unsigned char SD_FF_R1;
|
||||
unsigned char SD_FF_Q;
|
||||
unsigned char DS_FF_SET;
|
||||
unsigned char DS_FF_R1;
|
||||
unsigned char DS_FF_Q;
|
||||
plctime DS_TMR_PT;
|
||||
plctime DS_TMR_ET;
|
||||
plctime DS_TMR_STA;
|
||||
unsigned char DS_TMR_IN;
|
||||
unsigned char DS_TMR_Q;
|
||||
unsigned char DS_TMR_M;
|
||||
unsigned char dummy6;
|
||||
unsigned char SL_FF_SET;
|
||||
unsigned char SL_FF_R1;
|
||||
unsigned char SL_FF_Q;
|
||||
unsigned char dummy7;
|
||||
plctime SL_TMR_PT;
|
||||
plctime SL_TMR_ET;
|
||||
plctime SL_TMR_STA;
|
||||
unsigned char SL_TMR_IN;
|
||||
unsigned char SL_TMR_Q;
|
||||
unsigned char SL_TMR_M;
|
||||
unsigned char dummy8;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit N;
|
||||
plcbit R0;
|
||||
plcbit S0;
|
||||
plcbit L;
|
||||
plcbit D;
|
||||
plcbit P;
|
||||
plcbit SD;
|
||||
plcbit DS;
|
||||
plcbit SL;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
} SFCActionControl_typ;
|
||||
|
||||
typedef struct SFCActionType
|
||||
{ plcbit x;
|
||||
plcbit _x;
|
||||
plctime t;
|
||||
plctime _t;
|
||||
struct SFCActionControl AC;
|
||||
} SFCActionType;
|
||||
|
||||
typedef struct SFCAC2
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
plctime T;
|
||||
/* VAR (analog) */
|
||||
unsigned char S_FF_SET;
|
||||
unsigned char S_FF_R1;
|
||||
unsigned char S_FF_Q;
|
||||
plctime L_TMR_PT;
|
||||
plctime L_TMR_ET;
|
||||
plctime L_TMR_STAR;
|
||||
unsigned char L_TMR_IN;
|
||||
unsigned char L_TMR_Q;
|
||||
unsigned char L_TMR_M;
|
||||
plctime D_TMR_PT;
|
||||
plctime D_TMR_ET;
|
||||
plctime D_TMR_STAR;
|
||||
unsigned char D_TMR_IN;
|
||||
unsigned char D_TMR_Q;
|
||||
unsigned char D_TMR_M;
|
||||
plctime SD_TMR_PT;
|
||||
plctime SD_TMR_ET;
|
||||
plctime SD_TMR_STA;
|
||||
unsigned char SD_TMR_IN;
|
||||
unsigned char SD_TMR_Q;
|
||||
unsigned char SD_TMR_M;
|
||||
unsigned char SD_FF_SET;
|
||||
unsigned char SD_FF_R1;
|
||||
unsigned char SD_FF_Q1;
|
||||
unsigned char DS_FF_SET;
|
||||
unsigned char DS_FF_R1;
|
||||
unsigned char DS_FF_Q1;
|
||||
plctime DS_TMR_PT;
|
||||
plctime DS_TMR_ET;
|
||||
plctime DS_TMR_STA;
|
||||
unsigned char DS_TMR_IN;
|
||||
unsigned char DS_TMR_Q;
|
||||
unsigned char DS_TMR_M;
|
||||
unsigned char SL_FF_SET;
|
||||
unsigned char SL_FF_R1;
|
||||
unsigned char SL_FF_Q;
|
||||
plctime SL_TMR_PT;
|
||||
plctime SL_TMR_ET;
|
||||
plctime SL_TMR_STA;
|
||||
unsigned char SL_TMR_IN;
|
||||
unsigned char SL_TMR_Q;
|
||||
unsigned char SL_TMR_M;
|
||||
unsigned char P_TRIG_Q;
|
||||
unsigned char P_TRIG_M;
|
||||
unsigned char Q_TRIG_Q;
|
||||
unsigned char Q_TRIG_M;
|
||||
unsigned char P1_TRIG_Q;
|
||||
unsigned char P1_TRIG_M;
|
||||
unsigned char P0_TRIG_Q;
|
||||
unsigned char P0_TRIG_M;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit N;
|
||||
plcbit R0;
|
||||
plcbit S0;
|
||||
plcbit L;
|
||||
plcbit D;
|
||||
plcbit P;
|
||||
plcbit P1;
|
||||
plcbit P0;
|
||||
plcbit SD;
|
||||
plcbit DS;
|
||||
plcbit SL;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
plcbit A;
|
||||
} SFCAC2_typ;
|
||||
|
||||
typedef struct SFCActionType2
|
||||
{ plcbit x;
|
||||
plcbit _x;
|
||||
struct SFCAC2 AC;
|
||||
} SFCActionType2;
|
||||
|
||||
typedef struct SFCActionCType
|
||||
{ plcbit x;
|
||||
plcbit _x;
|
||||
plcbit force;
|
||||
plcbit _force;
|
||||
plcbit active;
|
||||
plcbit _active;
|
||||
plcbit error;
|
||||
struct SFCActionControl AC;
|
||||
} SFCActionCType;
|
||||
|
||||
typedef struct SFCActionCType2
|
||||
{ plcbit x;
|
||||
plcbit _x;
|
||||
plcbit force;
|
||||
plcbit _force;
|
||||
plcbit active;
|
||||
plcbit _active;
|
||||
plcbit error;
|
||||
struct SFCAC2 AC;
|
||||
} SFCActionCType2;
|
||||
|
||||
typedef struct TimerType
|
||||
{ double ptime;
|
||||
double etime;
|
||||
double start;
|
||||
unsigned char in;
|
||||
unsigned char q;
|
||||
} TimerType;
|
||||
|
||||
typedef struct SFCAC3
|
||||
{
|
||||
/* VAR_INPUT (analog) */
|
||||
double T;
|
||||
double T_ACT;
|
||||
/* VAR (analog) */
|
||||
struct TimerType L_TMR;
|
||||
struct TimerType D_TMR;
|
||||
struct TimerType SD_TMR;
|
||||
struct TimerType DS_TMR;
|
||||
struct TimerType SL_TMR;
|
||||
unsigned char S_FF_Q1;
|
||||
unsigned char SD_FF_Q1;
|
||||
unsigned char DS_FF_Q1;
|
||||
unsigned char SL_FF_Q1;
|
||||
unsigned char P_R_TRIG_Q;
|
||||
unsigned char P_R_TRIG_M;
|
||||
unsigned char Q_F_TRIG_Q;
|
||||
unsigned char Q_F_TRIG_M;
|
||||
unsigned char P1_R_TRIG_Q;
|
||||
unsigned char P1_R_TRIG_M;
|
||||
unsigned char P0_F_TRIG_Q;
|
||||
unsigned char P0_F_TRIG_M;
|
||||
/* VAR_INPUT (digital) */
|
||||
plcbit N;
|
||||
plcbit R0;
|
||||
plcbit S0;
|
||||
plcbit L;
|
||||
plcbit D;
|
||||
plcbit P;
|
||||
plcbit P1;
|
||||
plcbit P0;
|
||||
plcbit SD;
|
||||
plcbit DS;
|
||||
plcbit SL;
|
||||
plcbit PAUSE;
|
||||
/* VAR_OUTPUT (digital) */
|
||||
plcbit Q;
|
||||
plcbit A;
|
||||
} SFCAC3_typ;
|
||||
|
||||
typedef struct SFCActionCType3
|
||||
{ double t;
|
||||
double _t;
|
||||
double tp;
|
||||
plcbit x;
|
||||
plcbit _x;
|
||||
plcbit force;
|
||||
plcbit _force;
|
||||
plcbit active;
|
||||
plcbit _active;
|
||||
plcbit error;
|
||||
struct SFCAC3 AC;
|
||||
} SFCActionCType3;
|
||||
|
||||
typedef struct SFCStepType
|
||||
{ plcbit x;
|
||||
plctime t;
|
||||
plcbit _x;
|
||||
plctime _t;
|
||||
} SFCStepType;
|
||||
|
||||
typedef struct SFCStepCType
|
||||
{ plctime t;
|
||||
plctime _t;
|
||||
unsigned long inactive_actions;
|
||||
unsigned long _inactive_actions;
|
||||
unsigned long error_actions;
|
||||
plcbit x;
|
||||
plcbit _x;
|
||||
plcbit x_activate;
|
||||
plcbit force;
|
||||
plcbit _force;
|
||||
plcbit active;
|
||||
plcbit _active;
|
||||
plcbit error;
|
||||
plcbit tip;
|
||||
plcbit tip_disable_duration;
|
||||
plcbit tip_disable_action;
|
||||
} SFCStepCType;
|
||||
|
||||
typedef struct SFCStepCType3
|
||||
{ double t;
|
||||
double _t;
|
||||
double tp;
|
||||
unsigned long inactive_actions;
|
||||
unsigned long _inactive_actions;
|
||||
unsigned long error_actions;
|
||||
plcbit x;
|
||||
plcbit _x;
|
||||
plcbit x_activate;
|
||||
plcbit force;
|
||||
plcbit _force;
|
||||
plcbit active;
|
||||
plcbit _active;
|
||||
plcbit error;
|
||||
plcbit tip;
|
||||
plcbit tip_disable_duration;
|
||||
plcbit tip_disable_action;
|
||||
} SFCStepCType3;
|
||||
|
||||
typedef struct SFCSimpleStepCType
|
||||
{ plctime t;
|
||||
plctime _t;
|
||||
plcbit x;
|
||||
plcbit _x;
|
||||
plcbit x_activate;
|
||||
plcbit force;
|
||||
plcbit _force;
|
||||
plcbit active;
|
||||
plcbit _active;
|
||||
plcbit error;
|
||||
plcbit tip;
|
||||
plcbit tip_disable_duration;
|
||||
plcbit tip_disable_action;
|
||||
} SFCSimpleStepCType;
|
||||
|
||||
typedef struct SFCSimpleStepCType3
|
||||
{ double t;
|
||||
double _t;
|
||||
double tp;
|
||||
plcbit x;
|
||||
plcbit _x;
|
||||
plcbit x_activate;
|
||||
plcbit force;
|
||||
plcbit _force;
|
||||
plcbit active;
|
||||
plcbit _active;
|
||||
plcbit error;
|
||||
plcbit tip;
|
||||
plcbit tip_disable_duration;
|
||||
plcbit tip_disable_action;
|
||||
} SFCSimpleStepCType3;
|
||||
|
||||
typedef struct SFCTransitionCType
|
||||
{ plcbit force;
|
||||
plcbit _force;
|
||||
plcbit active;
|
||||
plcbit _active;
|
||||
} SFCTransitionCType;
|
||||
|
||||
typedef struct ArFBStateInternalType
|
||||
{ unsigned long ExecuteRef;
|
||||
unsigned long BusyRef;
|
||||
unsigned long DoneRef;
|
||||
unsigned long ErrorRef;
|
||||
unsigned long ActiveRef;
|
||||
unsigned long StatusRef;
|
||||
unsigned long FBCyclic;
|
||||
unsigned long AsyfumaState;
|
||||
unsigned long FBResetOut;
|
||||
unsigned long Argument;
|
||||
unsigned long State;
|
||||
plcbit ExecutePrev;
|
||||
} ArFBStateInternalType;
|
||||
|
||||
typedef struct ArFBAsyFuMaInternalType
|
||||
{ unsigned short State;
|
||||
signed long Result;
|
||||
} ArFBAsyFuMaInternalType;
|
||||
|
||||
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 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 */
|
||||
_BUR_PUBLIC void r_trig(struct r_trig* inst);
|
||||
_BUR_PUBLIC void f_trig(struct f_trig* inst);
|
||||
_BUR_PUBLIC void rf_trig(struct rf_trig* inst);
|
||||
_BUR_PUBLIC void SFCActionControl(struct SFCActionControl* inst);
|
||||
_BUR_PUBLIC void SFCAC2(struct SFCAC2* inst);
|
||||
_BUR_PUBLIC void SFCAC3(struct SFCAC3* inst);
|
||||
_BUR_PUBLIC plctime GetTime(void);
|
||||
_BUR_PUBLIC double RealTan(double x);
|
||||
_BUR_PUBLIC double RealAtan(double x);
|
||||
_BUR_PUBLIC double RealAsin(double x);
|
||||
_BUR_PUBLIC double RealAcos(double x);
|
||||
_BUR_PUBLIC double RealExp(double x);
|
||||
_BUR_PUBLIC double RealLn(double x);
|
||||
_BUR_PUBLIC double RealLog(double x);
|
||||
_BUR_PUBLIC double RealExpt(double x, double y);
|
||||
_BUR_PUBLIC double RealAbs(double x);
|
||||
_BUR_PUBLIC double RealSin(double x);
|
||||
_BUR_PUBLIC double RealCos(double x);
|
||||
_BUR_PUBLIC double RealSqrt(double x);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* _RUNTIME_ */
|
||||
|
||||
80
Logical/Libraries/runtime/SGC/runtime.h
Normal file
80
Logical/Libraries/runtime/SGC/runtime.h
Normal file
@@ -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_ */
|
||||
|
||||
9
Logical/Libraries/runtime/binary.lby
Normal file
9
Logical/Libraries/runtime/binary.lby
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Library SubType="binary" Description="This library contains runtime functions for IEC tasks." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>runtime.fun</File>
|
||||
<File>runtime.typ</File>
|
||||
<File>runtime.var</File>
|
||||
</Files>
|
||||
</Library>
|
||||
282
Logical/Libraries/runtime/runtime.fun
Normal file
282
Logical/Libraries/runtime/runtime.fun
Normal file
@@ -0,0 +1,282 @@
|
||||
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} FUNCTION_BLOCK SFCAC2 (*for internal use only - do not use this function in user programs*)
|
||||
VAR_INPUT
|
||||
N : {REDUND_UNREPLICABLE} BOOL;
|
||||
R0 : {REDUND_UNREPLICABLE} BOOL;
|
||||
S0 : {REDUND_UNREPLICABLE} BOOL;
|
||||
L : {REDUND_UNREPLICABLE} BOOL;
|
||||
D : {REDUND_UNREPLICABLE} BOOL;
|
||||
P : {REDUND_UNREPLICABLE} BOOL;
|
||||
P1 : {REDUND_UNREPLICABLE} BOOL;
|
||||
P0 : {REDUND_UNREPLICABLE} BOOL;
|
||||
SD : {REDUND_UNREPLICABLE} BOOL;
|
||||
DS : {REDUND_UNREPLICABLE} BOOL;
|
||||
SL : {REDUND_UNREPLICABLE} 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
|
||||
{REDUND_OK} FUNCTION RealTan : LREAL
|
||||
VAR_INPUT
|
||||
x :LREAL;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION RealAtan : LREAL
|
||||
VAR_INPUT
|
||||
x :LREAL;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION RealAsin : LREAL
|
||||
VAR_INPUT
|
||||
x :LREAL;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION RealAcos : LREAL
|
||||
VAR_INPUT
|
||||
x :LREAL;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION RealExp : LREAL
|
||||
VAR_INPUT
|
||||
x :LREAL;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION RealLn : LREAL
|
||||
VAR_INPUT
|
||||
x :LREAL;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION RealLog : LREAL
|
||||
VAR_INPUT
|
||||
x :LREAL;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION RealExpt : LREAL
|
||||
VAR_INPUT
|
||||
x :LREAL;
|
||||
y :LREAL;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION RealAbs : LREAL
|
||||
VAR_INPUT
|
||||
x :LREAL;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION RealSin : LREAL
|
||||
VAR_INPUT
|
||||
x :LREAL;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION RealCos : LREAL
|
||||
VAR_INPUT
|
||||
x :LREAL;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION RealSqrt : LREAL
|
||||
VAR_INPUT
|
||||
x :LREAL;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} FUNCTION_BLOCK SFCAC3 (*for internal use only - do not use this function in user programs*)
|
||||
VAR_INPUT
|
||||
N : {REDUND_UNREPLICABLE} BOOL;
|
||||
R0 : {REDUND_UNREPLICABLE} BOOL;
|
||||
S0 : {REDUND_UNREPLICABLE} BOOL;
|
||||
L : {REDUND_UNREPLICABLE} BOOL;
|
||||
D : {REDUND_UNREPLICABLE} BOOL;
|
||||
P : {REDUND_UNREPLICABLE} BOOL;
|
||||
P1 : {REDUND_UNREPLICABLE} BOOL;
|
||||
P0 : {REDUND_UNREPLICABLE} BOOL;
|
||||
SD : {REDUND_UNREPLICABLE} BOOL;
|
||||
DS : {REDUND_UNREPLICABLE} BOOL;
|
||||
SL : {REDUND_UNREPLICABLE} BOOL;
|
||||
T :LREAL;
|
||||
T_ACT : {REDUND_UNREPLICABLE} LREAL;
|
||||
PAUSE : {REDUND_UNREPLICABLE} BOOL;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q : {REDUND_UNREPLICABLE} BOOL;
|
||||
A :BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
L_TMR :TimerType;
|
||||
D_TMR :TimerType;
|
||||
SD_TMR :TimerType;
|
||||
DS_TMR :TimerType;
|
||||
SL_TMR :TimerType;
|
||||
S_FF_Q1 :USINT;
|
||||
SD_FF_Q1 :USINT;
|
||||
DS_FF_Q1 :USINT;
|
||||
SL_FF_Q1 :USINT;
|
||||
P_R_TRIG_Q : {REDUND_UNREPLICABLE} USINT;
|
||||
P_R_TRIG_M :USINT;
|
||||
Q_F_TRIG_Q : {REDUND_UNREPLICABLE} USINT;
|
||||
Q_F_TRIG_M :USINT;
|
||||
P1_R_TRIG_Q : {REDUND_UNREPLICABLE} USINT;
|
||||
P1_R_TRIG_M :USINT;
|
||||
P0_F_TRIG_Q : {REDUND_UNREPLICABLE} USINT;
|
||||
P0_F_TRIG_M :USINT;
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
156
Logical/Libraries/runtime/runtime.typ
Normal file
156
Logical/Libraries/runtime/runtime.typ
Normal file
@@ -0,0 +1,156 @@
|
||||
|
||||
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;
|
||||
error : BOOL;
|
||||
AC : SFCActionControl;
|
||||
END_STRUCT;
|
||||
SFCActionCType2 : STRUCT (*internal use*)
|
||||
x : BOOL;
|
||||
_x : BOOL;
|
||||
force : BOOL;
|
||||
_force : BOOL;
|
||||
active : BOOL;
|
||||
_active : BOOL;
|
||||
error : BOOL;
|
||||
AC : SFCAC2;
|
||||
END_STRUCT;
|
||||
SFCActionCType3 : STRUCT (*internal use*)
|
||||
t : LREAL;
|
||||
_t : LREAL;
|
||||
tp : LREAL;
|
||||
x : BOOL;
|
||||
_x : BOOL;
|
||||
force : BOOL;
|
||||
_force : BOOL;
|
||||
active : BOOL;
|
||||
_active : BOOL;
|
||||
error : BOOL;
|
||||
AC : SFCAC3;
|
||||
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;
|
||||
error_actions : UDINT;
|
||||
x : BOOL;
|
||||
_x : BOOL;
|
||||
x_activate : BOOL;
|
||||
force : BOOL;
|
||||
_force : BOOL;
|
||||
active : BOOL;
|
||||
_active : BOOL;
|
||||
error : BOOL;
|
||||
tip : BOOL;
|
||||
tip_disable_duration: BOOL;
|
||||
tip_disable_action : BOOL;
|
||||
END_STRUCT;
|
||||
SFCStepCType3 : STRUCT (*internal use*)
|
||||
t : LREAL;
|
||||
_t : LREAL;
|
||||
tp : LREAL;
|
||||
inactive_actions : UDINT;
|
||||
_inactive_actions : UDINT;
|
||||
error_actions : UDINT;
|
||||
x : BOOL;
|
||||
_x : BOOL;
|
||||
x_activate : {REDUND_UNREPLICABLE} BOOL;
|
||||
force : BOOL;
|
||||
_force : BOOL;
|
||||
active : BOOL;
|
||||
_active : BOOL;
|
||||
error : BOOL;
|
||||
tip : BOOL;
|
||||
tip_disable_duration : BOOL;
|
||||
tip_disable_action : BOOL;
|
||||
END_STRUCT;
|
||||
SFCSimpleStepCType : STRUCT (*internal use*)
|
||||
t : TIME;
|
||||
_t : TIME;
|
||||
x : BOOL;
|
||||
_x : BOOL;
|
||||
x_activate : BOOL;
|
||||
force : BOOL;
|
||||
_force : BOOL;
|
||||
active : BOOL;
|
||||
_active : BOOL;
|
||||
error : BOOL;
|
||||
tip : BOOL;
|
||||
tip_disable_duration : BOOL;
|
||||
tip_disable_action : BOOL;
|
||||
END_STRUCT;
|
||||
SFCSimpleStepCType3 : STRUCT (*internal use*)
|
||||
t : LREAL;
|
||||
_t : LREAL;
|
||||
tp : LREAL;
|
||||
x : BOOL;
|
||||
_x : BOOL;
|
||||
x_activate : {REDUND_UNREPLICABLE} BOOL;
|
||||
force : BOOL;
|
||||
_force : BOOL;
|
||||
active : BOOL;
|
||||
_active : BOOL;
|
||||
error : BOOL;
|
||||
tip : BOOL;
|
||||
tip_disable_duration : BOOL;
|
||||
tip_disable_action : BOOL;
|
||||
END_STRUCT;
|
||||
SFCTransitionCType : STRUCT (*internal use*)
|
||||
force : BOOL;
|
||||
_force : BOOL;
|
||||
active : BOOL;
|
||||
_active : BOOL;
|
||||
END_STRUCT;
|
||||
TimerType : STRUCT (*internal use*)
|
||||
ptime : LREAL;
|
||||
etime : LREAL;
|
||||
start : LREAL;
|
||||
in : USINT;
|
||||
q : USINT;
|
||||
END_STRUCT;
|
||||
|
||||
ArFBStateInternalType : STRUCT (*fb state machine internal context*)
|
||||
ExecuteRef : UDINT;
|
||||
BusyRef : UDINT;
|
||||
DoneRef : UDINT;
|
||||
ErrorRef : UDINT;
|
||||
ActiveRef : UDINT;
|
||||
StatusRef : UDINT;
|
||||
FBCyclic : UDINT;
|
||||
AsyfumaState : UDINT;
|
||||
FBResetOut : UDINT;
|
||||
Argument : UDINT;
|
||||
State : UDINT;
|
||||
ExecutePrev : BOOL;
|
||||
END_STRUCT;
|
||||
|
||||
ArFBAsyFuMaInternalType : STRUCT (*asynchronous function manager internal context*)
|
||||
State : UINT;
|
||||
Result : DINT;
|
||||
END_STRUCT;
|
||||
|
||||
END_TYPE
|
||||
35
Logical/Libraries/runtime/runtime.var
Normal file
35
Logical/Libraries/runtime/runtime.var
Normal file
@@ -0,0 +1,35 @@
|
||||
|
||||
(*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*)
|
||||
ERR_FUB_REDUNDANT : UINT := 35688; (*This FUB can not be used on the standby CPU*)
|
||||
ERR_FB_NOT_IMPLEMENTED: DINT := -1070585592;(*function or function block not implemented for the target system*)
|
||||
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
|
||||
262
Logical/Libraries/standard/SG3/standard.h
Normal file
262
Logical/Libraries/standard/SG3/standard.h
Normal file
@@ -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_ */
|
||||
|
||||
267
Logical/Libraries/standard/SG4/standard.h
Normal file
267
Logical/Libraries/standard/SG4/standard.h
Normal file
@@ -0,0 +1,267 @@
|
||||
/* Automation Studio generated header file */
|
||||
/* Do not edit ! */
|
||||
|
||||
#ifndef STANDARD_H_
|
||||
#define STANDARD_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <bur/plctypes.h>
|
||||
|
||||
#ifndef _BUR_PUBLIC
|
||||
#define _BUR_PUBLIC
|
||||
#endif
|
||||
|
||||
#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 */
|
||||
_BUR_PUBLIC void TP_10ms(TP_10ms_typ* inst);
|
||||
_BUR_PUBLIC void TOF_10ms(TOF_10ms_typ* inst);
|
||||
_BUR_PUBLIC void TON_10ms(TON_10ms_typ* inst);
|
||||
_BUR_PUBLIC void TP(TP_typ* inst);
|
||||
_BUR_PUBLIC void TOF(TOF_typ* inst);
|
||||
_BUR_PUBLIC void TON(TON_typ* inst);
|
||||
_BUR_PUBLIC void SEMA(SEMA_typ* inst);
|
||||
_BUR_PUBLIC void RS(RS_typ* inst);
|
||||
_BUR_PUBLIC void SR(SR_typ* inst);
|
||||
_BUR_PUBLIC void R_TRIG(R_TRIG_typ* inst);
|
||||
_BUR_PUBLIC void F_TRIG(F_TRIG_typ* inst);
|
||||
_BUR_PUBLIC void CTU(CTU_typ* inst);
|
||||
_BUR_PUBLIC void CTD(CTD_typ* inst);
|
||||
_BUR_PUBLIC void CTUD(CTUD_typ* inst);
|
||||
_BUR_PUBLIC void RF_TRIG(RF_TRIG_typ* inst);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /* STANDARD_H_ */
|
||||
|
||||
262
Logical/Libraries/standard/SGC/standard.h
Normal file
262
Logical/Libraries/standard/SGC/standard.h
Normal file
@@ -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_ */
|
||||
|
||||
9
Logical/Libraries/standard/binary.lby
Normal file
9
Logical/Libraries/standard/binary.lby
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Library SubType="binary" Description="This library contains standard function blocks and functions for IEC 61131-3." xmlns="http://br-automation.co.at/AS/Library">
|
||||
<Files>
|
||||
<File>standard.fun</File>
|
||||
<File>standard.typ</File>
|
||||
<File>standard.var</File>
|
||||
</Files>
|
||||
</Library>
|
||||
253
Logical/Libraries/standard/standard.fun
Normal file
253
Logical/Libraries/standard/standard.fun
Normal file
@@ -0,0 +1,253 @@
|
||||
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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 : {REDUND_UNREPLICABLE} UDINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
{REDUND_OK} 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 : {REDUND_UNREPLICABLE} UDINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
{REDUND_OK} 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 : {REDUND_UNREPLICABLE} UDINT; (*internal variable*)
|
||||
END_VAR
|
||||
END_FUNCTION_BLOCK
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} 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
|
||||
{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION LEN : INT (*calculates the length of a string*)
|
||||
VAR_INPUT
|
||||
IN :STRING[32767]; (*input string*)
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
{REDUND_OK} {REDUND_UNREPLICABLE} 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
|
||||
{REDUND_OK} {REDUND_UNREPLICABLE} 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
|
||||
{REDUND_OK} {REDUND_UNREPLICABLE} 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
|
||||
{REDUND_OK} {REDUND_UNREPLICABLE} 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
|
||||
{REDUND_OK} {REDUND_UNREPLICABLE} 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
|
||||
{REDUND_OK} {REDUND_UNREPLICABLE} 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
|
||||
{REDUND_OK} {REDUND_UNREPLICABLE} 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
|
||||
{REDUND_OK} {REDUND_UNREPLICABLE} 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
|
||||
4
Logical/Libraries/standard/standard.typ
Normal file
4
Logical/Libraries/standard/standard.typ
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
TYPE
|
||||
|
||||
END_TYPE
|
||||
4
Logical/Libraries/standard/standard.var
Normal file
4
Logical/Libraries/standard/standard.var
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
VAR CONSTANT
|
||||
|
||||
END_VAR
|
||||
33
Logical/Linectrl/DMX/ASCtoUDINT.st
Normal file
33
Logical/Linectrl/DMX/ASCtoUDINT.st
Normal file
@@ -0,0 +1,33 @@
|
||||
FUNCTION ASCtoUDINT
|
||||
//Dezimalversion
|
||||
ASCtoUDINT := 0;
|
||||
udNextAdr := udInNextAdr;
|
||||
sStart := 0;
|
||||
sEnd := sInLen;
|
||||
sStep := 1;
|
||||
FOR usi := sStart TO sEnd BY sStep DO
|
||||
brsmemcpy (ADR (usChar), udNextAdr + usi, 1);
|
||||
CASE usChar OF
|
||||
48:
|
||||
ASCtoUDINT := ASCtoUDINT * 10 + 0;
|
||||
49:
|
||||
ASCtoUDINT := ASCtoUDINT * 10 + 1;
|
||||
50:
|
||||
ASCtoUDINT := ASCtoUDINT * 10 + 2;
|
||||
51:
|
||||
ASCtoUDINT := ASCtoUDINT * 10 + 3;
|
||||
52:
|
||||
ASCtoUDINT := ASCtoUDINT * 10 + 4;
|
||||
53:
|
||||
ASCtoUDINT := ASCtoUDINT * 10 + 5;
|
||||
54:
|
||||
ASCtoUDINT := ASCtoUDINT * 10 + 6;
|
||||
55:
|
||||
ASCtoUDINT := ASCtoUDINT * 10 + 7;
|
||||
56:
|
||||
ASCtoUDINT := ASCtoUDINT * 10 + 8;
|
||||
57:
|
||||
ASCtoUDINT := ASCtoUDINT * 10 + 9;
|
||||
END_CASE
|
||||
END_FOR
|
||||
END_FUNCTION
|
||||
13
Logical/Linectrl/DMX/IEC.prg
Normal file
13
Logical/Linectrl/DMX/IEC.prg
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Program SubType="IEC" xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Init code">Init.st</File>
|
||||
<File Description="Implementation code">RS232.st</File>
|
||||
<File Description="Local variables" Private="true">RS232.var</File>
|
||||
<File Description="Local data types" Private="true">RS232.typ</File>
|
||||
<File Description="Local Funntions" Private="true">RS232.fun</File>
|
||||
<File Description="Convert ASCII Value to UDINT (DEZIMAL)">ASCtoUDINT.st</File>
|
||||
<File Description="Local variables" Private="true">IOs.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
1
Logical/Linectrl/DMX/IOs.var
Normal file
1
Logical/Linectrl/DMX/IOs.var
Normal file
@@ -0,0 +1 @@
|
||||
(*//-----------------------------------------------------------------------------------------------------*)
|
||||
11
Logical/Linectrl/DMX/Init.st
Normal file
11
Logical/Linectrl/DMX/Init.st
Normal file
@@ -0,0 +1,11 @@
|
||||
PROGRAM _INIT
|
||||
strDevice := 'IF1';
|
||||
FUBs.FrameXOpen1.device :=ADR (strDevice);
|
||||
FUBs.FrameXOpen1.mode := ADR ('PHY=RS232 /PA=N /DB=8 /SB=1 /BD=57600');
|
||||
|
||||
FUBs.FrameWrite1.enable := 0;
|
||||
FUBs.FrameReleaseBuffer1.enable := 0;
|
||||
FUBs.FrameXOpen1.enable := 0;
|
||||
|
||||
bInit := TRUE;
|
||||
END_PROGRAM
|
||||
15
Logical/Linectrl/DMX/RS232.fun
Normal file
15
Logical/Linectrl/DMX/RS232.fun
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
FUNCTION ASCtoUDINT : UDINT (*Convert ASCII Value to UDINT*)
|
||||
VAR_INPUT
|
||||
udInNextAdr : UDINT; (*Next Pos in ByteStream (No CHECK)*)
|
||||
sInLen : SINT;
|
||||
END_VAR
|
||||
VAR
|
||||
udNextAdr : UDINT;
|
||||
usi : SINT;
|
||||
sStart : SINT;
|
||||
sEnd : SINT;
|
||||
sStep : SINT;
|
||||
usChar : USINT;
|
||||
END_VAR
|
||||
END_FUNCTION
|
||||
122
Logical/Linectrl/DMX/RS232.st
Normal file
122
Logical/Linectrl/DMX/RS232.st
Normal file
@@ -0,0 +1,122 @@
|
||||
(********************************************************************
|
||||
* Program: RS232
|
||||
* File: RS232.st
|
||||
* Author: michi
|
||||
********************************************************************
|
||||
********************************************************************)
|
||||
PROGRAM _CYCLIC
|
||||
|
||||
IF bInit THEN
|
||||
bInit := FALSE;
|
||||
END_IF
|
||||
//Schrittkette
|
||||
CASE enStepRS232 OF
|
||||
//Init
|
||||
//---------------------------
|
||||
enRS232Step_INIT:
|
||||
enStepRS232 := enRS232Step_DEVOPEN;
|
||||
|
||||
//Open Serial Device
|
||||
//---------------------------
|
||||
enRS232Step_DEVOPEN:
|
||||
// initialize open structure */
|
||||
FUBs.FrameXOpen1.config := 0;
|
||||
FUBs.FrameXOpen1.enable := TRUE;
|
||||
|
||||
IF (FUBs.FrameXOpen1.status = frmERR_OK) THEN
|
||||
FUBs.FrameWrite1.ident := FUBs.FrameXOpen1.ident;
|
||||
FUBs.FrameRead1.ident := FUBs.FrameXOpen1.ident;
|
||||
FUBs.FrameReleaseBuffer1.ident := FUBs.FrameXOpen1.ident;
|
||||
FUBs.FrameXOpen1.enable := 0;
|
||||
enStepRS232 := enRS232Step_READY;
|
||||
END_IF
|
||||
|
||||
//READY
|
||||
//---------------------------
|
||||
enRS232Step_READY:
|
||||
FUBs.FrameRead1.enable := TRUE;
|
||||
IF bLEDOut THEN
|
||||
//brsmemset (ADR (strWriteData), 0, SIZEOF (strWriteData));
|
||||
brsstrcpy (ADR (strWriteData), ADR ('CB')); //Command Blackuot LEDs aus
|
||||
FUBs.FrameWrite1.buffer := ADR (strWriteData);
|
||||
FUBs.FrameWrite1.buflng := UDINT_TO_UINT (brsstrlen (ADR (strWriteData)));
|
||||
FUBs.FrameWrite1.enable := TRUE;
|
||||
bLEDOut := FALSE;
|
||||
ELSIF bLEDCmd THEN
|
||||
brsstrcpy (ADR (strWriteData), ADR ('c001')); //ERste LED
|
||||
FOR usi:= 0 TO MAX_CONV_POS - 50 DO //0 wg. MOD
|
||||
usTemp := (usi + gLEDState.usWritePos) MOD MAX_CONV_POS;
|
||||
CASE gLEDState.usSegState[usTemp + 1] OF
|
||||
LED_STATE_NO_PART://Kein Teil
|
||||
brsstrcat (ADR (strWriteData), ADR ('v000v000v000'));
|
||||
LED_STATE_NEW_PART://Neues Teil noch Unbewertet
|
||||
brsstrcat (ADR (strWriteData), ADR ('v000v000v010'));
|
||||
LED_STATE_NOT_INSPECTED://Teil nicht inspiert
|
||||
brsstrcat (ADR (strWriteData), ADR ('v010v010v000'));
|
||||
LED_STATE_PART_NOK://NIO Teil
|
||||
brsstrcat (ADR (strWriteData), ADR ('v010v000v000'));
|
||||
LED_STATE_PART_OK://IO Teil
|
||||
brsstrcat (ADR (strWriteData), ADR ('v000v010v000'));
|
||||
END_CASE
|
||||
END_FOR
|
||||
gLEDState.usSegState[usTemp + 1] := 0;// Letztes Segment l<EFBFBD>schen
|
||||
FUBs.FrameWrite1.buffer := ADR (strWriteData);
|
||||
FUBs.FrameWrite1.buflng := UDINT_TO_UINT (brsstrlen (ADR (strWriteData)));
|
||||
FUBs.FrameWrite1.enable := TRUE;
|
||||
bLEDCmd := FALSE;
|
||||
END_IF
|
||||
|
||||
IF (FUBs.FrameRead1.status = frmERR_OK) THEN
|
||||
pReadBuffer := FUBs.FrameRead1.buffer; // get adress OF read buffer */
|
||||
uiReadBufferLength := FUBs.FrameRead1.buflng; // get length OF read buffer */
|
||||
brsmemset (ADR (strReadData), 0, SIZEOF (strReadData));
|
||||
brsmemcpy (ADR (strReadData), pReadBuffer, uiReadBufferLength); // copy read data into array */
|
||||
// initialize release buffer structure */m
|
||||
FUBs.FrameReleaseBuffer1.enable := TRUE;
|
||||
FUBs.FrameReleaseBuffer1.buffer := pReadBuffer;
|
||||
FUBs.FrameReleaseBuffer1.buflng := uiReadBufferLength;
|
||||
END_IF
|
||||
|
||||
END_CASE
|
||||
|
||||
IF gLEDState.bNextPos OR (VCTestMode.bCommand AND EDGEPOS (gBlinker.bBlink0_1)) THEN
|
||||
gLEDState.usWritePos := (gLEDState.usWritePos -1);
|
||||
IF gLEDState.usWritePos > MAX_CONV_POS THEN
|
||||
gLEDState.usWritePos := MAX_CONV_POS;
|
||||
END_IF
|
||||
IF VCTestMode.bCommand THEN
|
||||
CASE (gLEDState.usWritePos MOD 25) OF
|
||||
0:
|
||||
gLEDState.usSegState[gLEDState.usWritePos] := LED_STATE_NO_PART;
|
||||
1:
|
||||
gLEDState.usSegState[gLEDState.usWritePos] := LED_STATE_NEW_PART;
|
||||
2:
|
||||
gLEDState.usSegState[gLEDState.usWritePos] := LED_STATE_NOT_INSPECTED;
|
||||
3:
|
||||
gLEDState.usSegState[gLEDState.usWritePos] := LED_STATE_PART_OK;
|
||||
4:
|
||||
gLEDState.usSegState[gLEDState.usWritePos] := LED_STATE_PART_NOK;
|
||||
END_CASE
|
||||
END_IF
|
||||
gLEDState.bNextPos := FALSE;
|
||||
bLEDCmd := TRUE;
|
||||
END_IF
|
||||
|
||||
|
||||
//Call FUBs
|
||||
FUBs.FrameWrite1 ();
|
||||
IF FUBs.FrameWrite1.status = 0 THEN
|
||||
FUBs.FrameWrite1.enable := FALSE;
|
||||
END_IF
|
||||
FUBs.FrameRead1 ();
|
||||
FUBs.FrameXOpen1 ();
|
||||
FUBs.FrameReleaseBuffer1 ();
|
||||
IF FUBs.FrameReleaseBuffer1.status = 0 THEN
|
||||
FUBs.FrameReleaseBuffer1.enable := FALSE;
|
||||
END_IF
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
PROGRAM _EXIT
|
||||
|
||||
END_PROGRAM
|
||||
16
Logical/Linectrl/DMX/RS232.typ
Normal file
16
Logical/Linectrl/DMX/RS232.typ
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
TYPE
|
||||
typ_enStepRS232 :
|
||||
( (*Schritte TM*)
|
||||
enRS232Step_INIT, (*Init*)
|
||||
enRS232Step_DEVOPEN, (*Open Device*)
|
||||
enRS232Step_READY (*READ / Write from TS*)
|
||||
);
|
||||
typ_FUBs : STRUCT (*Funktionsblocks*)
|
||||
TOF_Delay : TOF;
|
||||
FrameWrite1 : FRM_write;
|
||||
FrameRead1 : FRM_read;
|
||||
FrameReleaseBuffer1 : {REDUND_UNREPLICABLE} FRM_rbuf;
|
||||
FrameXOpen1 : {REDUND_UNREPLICABLE} FRM_xopen;
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
29
Logical/Linectrl/DMX/RS232.var
Normal file
29
Logical/Linectrl/DMX/RS232.var
Normal file
@@ -0,0 +1,29 @@
|
||||
(*//---------------------------------------------*)
|
||||
(*Konstanten*)
|
||||
(*//---------------------------------------------*)
|
||||
VAR CONSTANT
|
||||
usF : USINT := 70; (*'F'*)
|
||||
usMinus : USINT := 16#2D; (*'-'*)
|
||||
usCR : USINT := 16#0d; (*<CR>*)
|
||||
END_VAR
|
||||
(*//---------------------------------------------*)
|
||||
VAR
|
||||
bInit : BOOL;
|
||||
bLEDOut : BOOL;
|
||||
bLEDCmd : BOOL;
|
||||
usi : USINT;
|
||||
usTemp : USINT;
|
||||
uiReadBufferLength : UINT;
|
||||
pReadBuffer : UDINT;
|
||||
strDevice : STRING[80];
|
||||
strWriteData : {REDUND_UNREPLICABLE} STRING[1850];
|
||||
strReadData : {REDUND_UNREPLICABLE} STRING[1850];
|
||||
VCTestMode : gtyp_VCButton;
|
||||
END_VAR
|
||||
(*//---------------------------------------------*)
|
||||
(*Strukturen*)
|
||||
(*//---------------------------------------------*)
|
||||
VAR
|
||||
enStepRS232 : typ_enStepRS232;
|
||||
FUBs : typ_FUBs;
|
||||
END_VAR
|
||||
121
Logical/Linectrl/Global.typ
Normal file
121
Logical/Linectrl/Global.typ
Normal file
@@ -0,0 +1,121 @@
|
||||
|
||||
TYPE
|
||||
gtyp_RecipeCamSegment : STRUCT (*Beleuchtungsschritt Schrittdauer (Vorlaufzeit - Blitzdauer - Nachlaufzeit)*)
|
||||
udCamMatrix : ARRAY[1..MAX_REC_SEG_SUBSTEP]OF UDINT; (*Bitarray - Kamera zum Triggern*)
|
||||
bFlashLamp : ARRAY[1..MAX_REC_SEG_SUBSTEP]OF UDINT; (*Bitarray - Lampen zum Blitzen*)
|
||||
udFlashtime : ARRAY[1..MAX_REC_SEG_SUBSTEP]OF UDINT; (*Beleuchtungszeit [<5B>s]*)
|
||||
END_STRUCT;
|
||||
gtyp_Recipe : STRUCT (*Rezept*)
|
||||
uiPartID : UINT; (*Bauteil ID (zum Abgleich mit Linie)*)
|
||||
strPartID : STRING[20]; (*Bauteilbezeichnung*)
|
||||
usFillByte : USINT; (*Wg Bytealignment*)
|
||||
udSegmentlength : {REDUND_UNREPLICABLE} UDINT; (*Segmentl<74>nge Band [mm]*)
|
||||
udLeadtimeTriggerCam : UDINT; (*Vorlaufzeit Blitz -> Kameratrigger [<5B>s]*)
|
||||
udPostDelayFlash : UDINT; (*Nachlaufzeit Blitz -> Bevor neuer Substep gestartet wird [<5B>s]*)
|
||||
CamSegment : ARRAY[1..MAX_REC_SEGS]OF gtyp_RecipeCamSegment; (*Beleuchtungssegment - mit MAX_REC_SEG_SUBSTEP Substeps*)
|
||||
END_STRUCT;
|
||||
gtyp_Parameter : STRUCT (*Maschinenparameter*)
|
||||
diIncPerRev : DINT := 65536; (*Inc / Rev - Geber*)
|
||||
usNrOfCams : USINT := 1; (*Anzahl montierter Kameras*)
|
||||
usNrOfLights : USINT := 1; (*Anzahl montierter Lampen*)
|
||||
rPosPerRev : LREAL := 55; (*L<>nge / Umdrehung [mm]*)
|
||||
rOffsetLED : LREAL := 1000.0; (*Offset LED Band*)
|
||||
rOffsetLightbarrier : LREAL := 700; (*Offset Lichtvorhang zur ersten Cam Reihe*)
|
||||
uiLineID : UINT; (*Seriennummer Anlage wg. Spez. Softwareanpassungen*)
|
||||
END_STRUCT;
|
||||
gtyp_LEDState : STRUCT (*LED Status Band*)
|
||||
bNextPos : BOOL; (*Trigger n<>chste Position*)
|
||||
usWritePos : USINT;
|
||||
usSegState : ARRAY[1..MAX_CONV_POS]OF USINT; (*Segmentstatus Segmentl<74>nge 100mm*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
|
||||
(*Schnittstelle Liniensteuerung*)
|
||||
|
||||
TYPE
|
||||
gtyp_LineCtrl : STRUCT (*Interface Liniensteuerung*)
|
||||
ToLineCtrl : gtyp_ToLineCtrl;
|
||||
FromLineCtrl : gtyp_FromLineCtrl;
|
||||
END_STRUCT;
|
||||
gtyp_ToLineCtrl : STRUCT (*Daten an Liniensteuerung*)
|
||||
bLifebeat : BOOL; (*Lifebeat (Toggle bit)*)
|
||||
bReadyToInspect : BOOL; (*Bereit f<>r Inspektion*)
|
||||
bNoInspectionMirror : BOOL; (*Keine Inspektion - Zelle abgew<65>hlt*)
|
||||
bAlarmSum : BOOL; (*Sammelst<73>rung*)
|
||||
Alarms : gtyp_ToLineCtrlAlarms;
|
||||
END_STRUCT;
|
||||
gtyp_FromLineCtrl : STRUCT (*Daten vom Liniensteuerung*)
|
||||
bLifebeat : BOOL; (*Lifebeat*)
|
||||
bAutomaticmode : BOOL; (*Automatikmodus*)
|
||||
bActiveToolchange : BOOL; (*Werkzeugwechsel Aktiv*)
|
||||
bConveyorCycleMode : BOOL; (*Band im Taktbetrieb*)
|
||||
bConveyorContinuosMode : BOOL; (*Bank im Dauerbetrieb*)
|
||||
bConveyorRunning : BOOL; (*Band l<>uft*)
|
||||
bNoInspection : BOOL; (*Zelle abgew<65>hlt*)
|
||||
bAcknowledgeErrors : BOOL; (*St<53>rungen quittieren*)
|
||||
bNewPartPlaced : BOOL; (*Neues Bauteil abgelegt (-> LS aktiv)*)
|
||||
udPartID : UDINT; (*Bauteil ID (zum Abgleich mit Linie)*)
|
||||
strPartID : STRING[20]; (*Bauteilbezeichnung*)
|
||||
END_STRUCT;
|
||||
gtyp_ToLineCtrlAlarms : STRUCT (*Eing<6E>nge Zustands<64>berwachnung*)
|
||||
bPSMain1VoltageAlarm : BOOL; (*24V Haupt-Versorgung 1 Spannung Ok*)
|
||||
bPSMain1Overload : BOOL; (*24V Haupt-Versorgung 1 <20>berlast (>90%)*)
|
||||
bPSMain2VoltageAlarm : BOOL; (*24V Haupt-Versorgung 2 Spannung Ok*)
|
||||
bPSMain2Overload : BOOL; (*24V Haupt-Versorgung 2 <20>berlast (>90%)*)
|
||||
bPSMainFuseSumAlarm : BOOL; (*24V Haupt-Versorgung Verteilung - Alarm (Sammelst<73>rung)*)
|
||||
bPSMainFuseSumOvld : BOOL; (*24V Haupt-Versorgung Verteilung - <20>berlast (Sammelst<73>rung)*)
|
||||
bPSMainFuseInternAlarm : BOOL; (*24V Haupt-Versorgung - Intern / Sensorik Alarm*)
|
||||
bPSMainFuseInternOvld : BOOL; (*24V Haupt-Versorgung - Intern / Sensorik <20>berlast (> 90%)*)
|
||||
bPSMainFuseCamsAlarm : BOOL; (*24V Haupt-Versorgung - Kameras Alarm*)
|
||||
bPSMainFuseCamsOvld : BOOL; (*24V Haupt-Versorgung - Kameras <20>berlast (> 90%)*)
|
||||
bPSMainFuseLight1to5Alarm : BOOL; (*24V Haupt-Versorgung - Beleuchtung 1-5 Alarm*)
|
||||
bPSMainFuseLight1to5Ovld : BOOL; (*24V Haupt-Versorgung - Beleuchtung 1-5 <20>berlast (> 90%)*)
|
||||
bPSMainFuseLight6to10Alarm : BOOL; (*24V Haupt-Versorgung - Beleuchtung 6-10 Alarm*)
|
||||
bPSMainFuseLight6to10Ovld : BOOL; (*24V Haupt-Versorgung - Beleuchtung 6-10 <20>berlast (> 90%)*)
|
||||
bPSMainFuseLEDStripeAlarm : BOOL; (*24V Haupt-Versorgung - LED Streifen Auslaufband Alarm*)
|
||||
bPSMainFuseLEDStripeOvld : BOOL; (*24V Haupt-Versorgung - LED Srreiven Auslaufband <20>berlast (> 90%)*)
|
||||
bBatteryAlarmPLC : BOOL; (*Pufferbattery Steuerung Nicht Vorhanden oder Schwach*)
|
||||
bCoolerTempMin : BOOL; (*Klimager<65>t Temperatur Min*)
|
||||
bCoolerTempMax : BOOL; (*Klimager<65>t Temperatur Max*)
|
||||
bCoolerAntiFreezeTempMin : BOOL; (*Klimager<65>t Temperatur Frostschutz Min*)
|
||||
bCoolerAspirationTempMax : BOOL; (*Klimager<65>t Temperatur Verdampfer Max*)
|
||||
bCoolerPreasureMin : BOOL; (*Klimager<65>t Unterdruck*)
|
||||
bCoolerPreasureMax : BOOL; (*Klimager<65>t <20>berdruck*)
|
||||
bPC1PS1VoltageOk : BOOL; (*PC1 24V Versorgung 1 Spannung Ok*)
|
||||
bPC1PS1Overload : BOOL; (*PC1 24V Haupt-Versorgung 1 <20>berlast (>90%)*)
|
||||
bPC1PS2VoltageOk : BOOL; (*PC1 24V Haupt-Versorgung 2 Spannung Ok*)
|
||||
bPC1PS2Overload : BOOL; (*PC1 24V Haupt-Versorgung 2 <20>berlast (>90%)*)
|
||||
bPC1USVAlarm : BOOL; (*PC1 USV Alarm*)
|
||||
bPC1USVBatteryAlarm : BOOL; (*PC1 USV Batterie Alarm*)
|
||||
bPC1FuseSumAlarm : BOOL; (*PC1 24V Versorgung Verteilung - Alarm (Sammelst<73>rung)*)
|
||||
bPC1FuseSumOvld : BOOL; (*PC1 24V Versorgung Verteilung - <20>berlast (Sammelst<73>rung)*)
|
||||
bPC1FuseSystemAlarm : BOOL; (*PC1 24V Versorgung - System Alarm (Sammelst<73>rung)*)
|
||||
bPC1FuseSystemOvld : BOOL; (*PC1 24V Versorgung - System <20>berlast (Sammelst<73>rung)*)
|
||||
bPC1FuseGPUAlarm : BOOL; (*PC1 24V Versorgung - GPU Alarm (Sammelst<73>rung)*)
|
||||
bPC1FuseGPUOvld : BOOL; (*PC1 24V Versorgung - GPU <20>berlast (Sammelst<73>rung)*)
|
||||
bPC2PS1VoltageOk : BOOL; (*PC2 24V Versorgung 1 Spannung Ok*)
|
||||
bPC2PS1Overload : BOOL; (*PC2 24V Haupt-Versorgung 1 <20>berlast (>90%)*)
|
||||
bPC2PS2VoltageOk : BOOL; (*PC2 24V Haupt-Versorgung 2 Spannung Ok*)
|
||||
bPC2PS2Overload : BOOL; (*PC2 24V Haupt-Versorgung 2 <20>berlast (>90%)*)
|
||||
bPC2USVAlarm : BOOL; (*PC2 USV Alarm*)
|
||||
bPC2USVBatteryAlarm : BOOL; (*PC2 USV Batterie Alarm*)
|
||||
bPC2FuseSumAlarm : BOOL; (*PC2 24V Versorgung Verteilung - Alarm (Sammelst<73>rung)*)
|
||||
bPC2FuseSumOvld : BOOL; (*PC2 24V Versorgung Verteilung - <20>berlast (Sammelst<73>rung)*)
|
||||
bPC2FuseSystemAlarm : BOOL; (*PC2 24V Versorgung - System Alarm (Sammelst<73>rung)*)
|
||||
bPC2FuseSystemOvld : BOOL; (*PC2 24V Versorgung - System <20>berlast (Sammelst<73>rung)*)
|
||||
bPC2FuseGPUAlarm : BOOL; (*PC2 24V Versorgung - GPU Alarm (Sammelst<73>rung)*)
|
||||
bPC2FuseGPUOvld : BOOL; (*PC2 24V Versorgung - GPU <20>berlast (Sammelst<73>rung)*)
|
||||
bPC3PS1VoltageOk : BOOL; (*PC3 24V Versorgung 1 Spannung Ok*)
|
||||
bPC3PS1Overload : BOOL; (*PC3 24V Haupt-Versorgung 1 <20>berlast (>90%)*)
|
||||
bPC3PS2VoltageOk : BOOL; (*PC3 24V Haupt-Versorgung 2 Spannung Ok*)
|
||||
bPC3PS2Overload : BOOL; (*PC3 24V Haupt-Versorgung 2 <20>berlast (>90%)*)
|
||||
bPC3USVAlarm : BOOL; (*PC3 USV Alarm*)
|
||||
bPC3USVBatteryAlarm : BOOL; (*PC3 USV Batterie Alarm*)
|
||||
bPC3FuseSumAlarm : BOOL; (*PC3 24V Versorgung Verteilung - Alarm (Sammelst<73>rung)*)
|
||||
bPC3FuseSumOvld : BOOL; (*PC3 24V Versorgung Verteilung - <20>berlast (Sammelst<73>rung)*)
|
||||
bPC3FuseSystemAlarm : BOOL; (*PC3 24V Versorgung - System Alarm (Sammelst<73>rung)*)
|
||||
bPC3FuseSystemOvld : BOOL; (*PC3 24V Versorgung - System <20>berlast (Sammelst<73>rung)*)
|
||||
bPC3FuseGPUAlarm : BOOL; (*PC3 24V Versorgung - GPU Alarm (Sammelst<73>rung)*)
|
||||
bPC3FuseGPUOvld : BOOL; (*PC3 24V Versorgung - GPU <20>berlast (Sammelst<73>rung)*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
25
Logical/Linectrl/Global.var
Normal file
25
Logical/Linectrl/Global.var
Normal file
@@ -0,0 +1,25 @@
|
||||
VAR
|
||||
gusByte : USINT;
|
||||
gstrTest : STRING[80];
|
||||
gLEDState : gtyp_LEDState; (*Status LED Anzeige I/O*)
|
||||
END_VAR
|
||||
VAR RETAIN
|
||||
gRecipe : gtyp_Recipe; (*Rezept*)
|
||||
gParameter : gtyp_Parameter; (*Anlagenparameter*)
|
||||
END_VAR
|
||||
VAR
|
||||
gLineCtrlInterface : gtyp_LineCtrl; (*Interface mit Liniensteurung*)
|
||||
END_VAR
|
||||
(*Konstanten*)
|
||||
VAR CONSTANT
|
||||
LED_STATE_NO_PART : USINT := 0; (*Status KEIN TEIL*)
|
||||
LED_STATE_NEW_PART : USINT := 1; (*Status Neues TEIL*)
|
||||
LED_STATE_NOT_INSPECTED : USINT := 2; (*Status Teil nicht inspiziert*)
|
||||
LED_STATE_PART_NOK : USINT := 3; (*Status TEIL NIO*)
|
||||
LED_STATE_PART_OK : USINT := 4; (*Status TEIL IO*)
|
||||
MAX_CONV_POS : USINT := 200; (*!!!Anzahl LED Segmente Ein Band hat 50 (Reserve 50 Einplanen*)
|
||||
MAX_CAM : USINT := 30; (*Max Anzahl Kameras*)
|
||||
MAX_LAMP : USINT := 10; (*Max Anzahl Lampen*)
|
||||
MAX_REC_SEGS : USINT := 50; (*Max Anzahl Beleuchtungssegmente im Rezept*)
|
||||
MAX_REC_SEG_SUBSTEP : USINT := 5; (*Max Anzahl Unterschritte in Beleuchtungssegment*)
|
||||
END_VAR
|
||||
268
Logical/Linectrl/LineCtrl/Action.st
Normal file
268
Logical/Linectrl/LineCtrl/Action.st
Normal file
@@ -0,0 +1,268 @@
|
||||
//Zeiten berechnen
|
||||
ACTION DoTimes:
|
||||
IF (Times_Latch.diCamStep <> 0) THEN
|
||||
Times.diCamStep := gdiSystemTime - Times_Latch.diCamStep;
|
||||
ELSE
|
||||
Times.diCamStep := 0;
|
||||
END_IF
|
||||
END_ACTION
|
||||
|
||||
|
||||
//Interface Liniensteuerung
|
||||
ACTION DoLinectrlInterface:
|
||||
//Signale Einlesen
|
||||
//Byte 0
|
||||
gLineCtrlInterface.FromLineCtrl.bLifebeat := usInLineCtrlRaw[0].0;
|
||||
gLineCtrlInterface.FromLineCtrl.bAutomaticmode := usInLineCtrlRaw[0].1;
|
||||
gLineCtrlInterface.FromLineCtrl.bActiveToolchange := usInLineCtrlRaw[0].2;
|
||||
gLineCtrlInterface.FromLineCtrl.bConveyorCycleMode := usInLineCtrlRaw[0].3;
|
||||
gLineCtrlInterface.FromLineCtrl.bConveyorContinuosMode := usInLineCtrlRaw[0].4;
|
||||
gLineCtrlInterface.FromLineCtrl.bConveyorRunning := usInLineCtrlRaw[0].5;
|
||||
gLineCtrlInterface.FromLineCtrl.bNoInspection := usInLineCtrlRaw[0].6;
|
||||
gLineCtrlInterface.FromLineCtrl.bAcknowledgeErrors := usInLineCtrlRaw[0].7;
|
||||
|
||||
//Byte 1
|
||||
gLineCtrlInterface.FromLineCtrl.bNewPartPlaced := usInLineCtrlRaw[1].7;
|
||||
|
||||
//PartID / Parttype
|
||||
//-----------------------------------------------
|
||||
IF (Parameter.uiLineID = LINE_VAL_SG_L8) THEN
|
||||
//Variante Voest Alpine Linie 8
|
||||
//Byte 16-19
|
||||
gLineCtrlInterface.FromLineCtrl.udPartID := USINT_TO_UDINT (usInLineCtrlRaw[19]) +
|
||||
SHL (USINT_TO_UDINT (usInLineCtrlRaw[18]), 8) +
|
||||
SHL (USINT_TO_UDINT (usInLineCtrlRaw[17]), 16) +
|
||||
SHL (USINT_TO_UDINT (usInLineCtrlRaw[16]), 24);
|
||||
ELSIF (Parameter.uiLineID = LINE_VAL_SG_L7a) OR (Parameter.uiLineID = LINE_VAL_SG_L7b) THEN
|
||||
//Variante Voest Alpine Linie 7 a und b
|
||||
//Byte 16-19
|
||||
gLineCtrlInterface.FromLineCtrl.udPartID := USINT_TO_UDINT (usInLineCtrlRaw[17]) +
|
||||
SHL (USINT_TO_UDINT (usInLineCtrlRaw[16]), 8) +
|
||||
SHL (USINT_TO_UDINT (usInLineCtrlRaw[19]), 16) +
|
||||
SHL (USINT_TO_UDINT (usInLineCtrlRaw[18]), 24);
|
||||
ELSIF (Parameter.uiLineID = LINE_VAL_SPS_L1a) OR (Parameter.uiLineID = LINE_VAL_SPS_L1b) THEN
|
||||
//Variante SPS Linie 1 a und b
|
||||
//Byte 10-11
|
||||
gLineCtrlInterface.FromLineCtrl.udPartID := USINT_TO_UDINT (usInLineCtrlRaw[11]) +
|
||||
SHL (USINT_TO_UDINT (usInLineCtrlRaw[10]), 8);
|
||||
END_IF
|
||||
|
||||
|
||||
//Part ID String / Serial
|
||||
//-----------------------------------------------
|
||||
IF (Parameter.uiLineID = LINE_VAL_SPS_L1a) THEN
|
||||
//Variante SPS Linie 1a
|
||||
brsmemcpy (ADR (gLineCtrlInterface.FromLineCtrl.strPartID), ADR (usInLineCtrlRaw[12]), 7); //S7 L<EFBFBD>ngeninfo abschneiden
|
||||
brsmemset (ADR (gLineCtrlInterface.FromLineCtrl.strPartID) + 7, 0, 13);
|
||||
ELSIF (Parameter.uiLineID = LINE_VAL_SPS_L1b) THEN
|
||||
//Variante Linie 1b
|
||||
brsmemcpy (ADR (gLineCtrlInterface.FromLineCtrl.strPartID), ADR (usInLineCtrlRaw[28]), 7); //S7 L<EFBFBD>ngeninfo abschneiden
|
||||
brsmemset (ADR (gLineCtrlInterface.FromLineCtrl.strPartID) + 7, 0, 13);
|
||||
ELSE
|
||||
//Standard
|
||||
brsmemcpy (ADR (gLineCtrlInterface.FromLineCtrl.strPartID), ADR (usInLineCtrlRaw[20]) + 2, 14 -2); //S7 L<EFBFBD>ngeninfo abschneiden
|
||||
brsmemset (ADR (gLineCtrlInterface.FromLineCtrl.strPartID) + 14, 0, 6);
|
||||
END_IF
|
||||
|
||||
|
||||
//Lifebeat spiegeln
|
||||
//-----------------------------------------------
|
||||
gLineCtrlInterface.ToLineCtrl.bLifebeat := gLineCtrlInterface.FromLineCtrl.bLifebeat;
|
||||
|
||||
gLineCtrlInterface.ToLineCtrl.bNoInspectionMirror := gLineCtrlInterface.FromLineCtrl.bNoInspection;
|
||||
|
||||
|
||||
|
||||
//Ausgangsbytes schreiben
|
||||
//===============================================
|
||||
usOuLineCtrlRaw[0].0 := gLineCtrlInterface.ToLineCtrl.bLifebeat;
|
||||
usOuLineCtrlRaw[0].5 := gLineCtrlInterface.ToLineCtrl.bReadyToInspect;
|
||||
usOuLineCtrlRaw[0].6 := gLineCtrlInterface.ToLineCtrl.bNoInspectionMirror;
|
||||
usOuLineCtrlRaw[0].7 := FALSE ; //gLineCtrlInterface.ToLineCtrl.bAlarmSum;
|
||||
|
||||
|
||||
//
|
||||
usOuLineCtrlRaw[1].0 := FALSE;
|
||||
usOuLineCtrlRaw[1].1 := FALSE;
|
||||
usOuLineCtrlRaw[1].2 := FALSE;
|
||||
usOuLineCtrlRaw[1].3 := FALSE;
|
||||
|
||||
|
||||
//Lineinspector Errors
|
||||
IF (Parameter.uiLineID = LINE_VAL_SPS_L1a) OR (Parameter.uiLineID = LINE_VAL_SPS_L1b) THEN
|
||||
//Variante SPS Linie 1a/b
|
||||
usOuLineCtrlRaw[2].0 := LineInspectorInterface.FromLineInspector.bErrorParttype;
|
||||
usOuLineCtrlRaw[2].1 := LineInspectorInterface.FromLineInspector.bErrorConfiguration;
|
||||
usOuLineCtrlRaw[2].2 := LineInspectorInterface.FromLineInspector.bErrorNetwork;
|
||||
usOuLineCtrlRaw[2].3 := LineInspectorInterface.FromLineInspector.bErrorERP;
|
||||
usOuLineCtrlRaw[2].4 := LineInspectorInterface.FromLineInspector.bErrorVirtualConv;
|
||||
usOuLineCtrlRaw[2].5 := LineInspectorInterface.FromLineInspector.bErrorCam;
|
||||
usOuLineCtrlRaw[2].6 := LineInspectorInterface.FromLineInspector.bErrorPC;
|
||||
ELSE
|
||||
//Standard
|
||||
usOuLineCtrlRaw[5].0 := LineInspectorInterface.FromLineInspector.bErrorParttype;
|
||||
usOuLineCtrlRaw[5].1 := LineInspectorInterface.FromLineInspector.bErrorConfiguration;
|
||||
usOuLineCtrlRaw[5].2 := LineInspectorInterface.FromLineInspector.bErrorNetwork;
|
||||
usOuLineCtrlRaw[5].3 := LineInspectorInterface.FromLineInspector.bErrorERP;
|
||||
usOuLineCtrlRaw[5].4 := LineInspectorInterface.FromLineInspector.bErrorVirtualConv;
|
||||
usOuLineCtrlRaw[5].5 := LineInspectorInterface.FromLineInspector.bErrorCam;
|
||||
usOuLineCtrlRaw[5].6 := LineInspectorInterface.FromLineInspector.bErrorPC;
|
||||
END_IF
|
||||
|
||||
//St<EFBFBD>rungen
|
||||
//-----------------------------------------------
|
||||
IF (Parameter.uiLineID = LINE_VAL_SPS_L1a) OR (Parameter.uiLineID = LINE_VAL_SPS_L1b) THEN
|
||||
//Variante SPS Linie 1a/b
|
||||
ELSE
|
||||
//Standard
|
||||
usOuLineCtrlRaw[3].0 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMain1VoltageAlarm;
|
||||
usOuLineCtrlRaw[3].1 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMain1Overload;
|
||||
usOuLineCtrlRaw[3].2 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMain2VoltageAlarm;
|
||||
usOuLineCtrlRaw[3].3 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMain2Overload;
|
||||
usOuLineCtrlRaw[3].4 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMainFuseSumAlarm;
|
||||
usOuLineCtrlRaw[3].5 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMainFuseSumOvld;
|
||||
usOuLineCtrlRaw[3].6 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMainFuseInternAlarm;
|
||||
usOuLineCtrlRaw[3].7 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMainFuseInternOvld;
|
||||
|
||||
usOuLineCtrlRaw[4].0 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMainFuseCamsAlarm;
|
||||
usOuLineCtrlRaw[4].1 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMainFuseCamsOvld;
|
||||
usOuLineCtrlRaw[4].2 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMainFuseLight1to5Alarm;
|
||||
usOuLineCtrlRaw[4].3 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMainFuseLight1to5Ovld;
|
||||
usOuLineCtrlRaw[4].4 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMainFuseLight6to10Alarm;
|
||||
usOuLineCtrlRaw[4].5 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMainFuseLight6to10Ovld;
|
||||
usOuLineCtrlRaw[4].6 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMainFuseLEDStripeAlarm;
|
||||
usOuLineCtrlRaw[4].7 := gLineCtrlInterface.ToLineCtrl.Alarms.bPSMainFuseLEDStripeOvld;
|
||||
|
||||
usOuLineCtrlRaw[5].0 := gLineCtrlInterface.ToLineCtrl.Alarms.bBatteryAlarmPLC;
|
||||
usOuLineCtrlRaw[5].1 := gLineCtrlInterface.ToLineCtrl.Alarms.bCoolerTempMin;
|
||||
usOuLineCtrlRaw[5].2 := gLineCtrlInterface.ToLineCtrl.Alarms.bCoolerTempMax;
|
||||
usOuLineCtrlRaw[5].3 := gLineCtrlInterface.ToLineCtrl.Alarms.bCoolerAntiFreezeTempMin;
|
||||
usOuLineCtrlRaw[5].4 := gLineCtrlInterface.ToLineCtrl.Alarms.bCoolerAspirationTempMax;
|
||||
usOuLineCtrlRaw[5].5 := gLineCtrlInterface.ToLineCtrl.Alarms.bCoolerPreasureMin;
|
||||
usOuLineCtrlRaw[5].6 := gLineCtrlInterface.ToLineCtrl.Alarms.bCoolerPreasureMax;
|
||||
usOuLineCtrlRaw[5].7 := FALSE; //Chiller Flow
|
||||
|
||||
usOuLineCtrlRaw[6].0 := gLineCtrlInterface.ToLineCtrl.Alarms.bPC1PS1VoltageOk;
|
||||
usOuLineCtrlRaw[6].1 := gLineCtrlInterface.ToLineCtrl.Alarms.bPC1PS1Overload;
|
||||
usOuLineCtrlRaw[6].2 := gLineCtrlInterface.ToLineCtrl.Alarms.bPC1PS2VoltageOk;
|
||||
usOuLineCtrlRaw[6].3 := gLineCtrlInterface.ToLineCtrl.Alarms.bPC1PS2Overload;
|
||||
usOuLineCtrlRaw[6].4 := gLineCtrlInterface.ToLineCtrl.Alarms.bPC1USVAlarm;
|
||||
usOuLineCtrlRaw[6].5 := gLineCtrlInterface.ToLineCtrl.Alarms.bPC1USVBatteryAlarm;
|
||||
usOuLineCtrlRaw[6].6 := gLineCtrlInterface.ToLineCtrl.Alarms.bPC1FuseSumAlarm;
|
||||
usOuLineCtrlRaw[6].7 := gLineCtrlInterface.ToLineCtrl.Alarms.bPC1FuseSumOvld;
|
||||
|
||||
usOuLineCtrlRaw[7].0 := gLineCtrlInterface.ToLineCtrl.Alarms.bPC1FuseSystemAlarm;
|
||||
usOuLineCtrlRaw[7].1 := gLineCtrlInterface.ToLineCtrl.Alarms.bPC1FuseSystemOvld;
|
||||
usOuLineCtrlRaw[7].2 := gLineCtrlInterface.ToLineCtrl.Alarms.bPC1FuseGPUAlarm;
|
||||
usOuLineCtrlRaw[7].3 := gLineCtrlInterface.ToLineCtrl.Alarms.bPC1FuseGPUOvld;
|
||||
|
||||
//Fixme weitere PCs
|
||||
END_IF
|
||||
|
||||
//Variante zur<EFBFBD>ckspiegeln
|
||||
//-----------------------------------------------
|
||||
udTemp := UINT_TO_UDINT (gRecipe.uiPartID);
|
||||
IF (Parameter.uiLineID = LINE_VAL_SG_L8) THEN
|
||||
//Variante Voest Alpine Linie 8
|
||||
//Byte 16-19
|
||||
usOuLineCtrlRaw[19] := UDINT_TO_USINT (udTemp);
|
||||
usOuLineCtrlRaw[18] := UDINT_TO_USINT (SHR (udTemp, 8));
|
||||
usOuLineCtrlRaw[17] := UDINT_TO_USINT (SHR (udTemp, 16));
|
||||
usOuLineCtrlRaw[16] := UDINT_TO_USINT (SHR (udTemp, 24));
|
||||
ELSIF (Parameter.uiLineID = LINE_VAL_SG_L7a) OR (Parameter.uiLineID = LINE_VAL_SG_L7b) THEN
|
||||
//Variante Voest Alpine Linie 7 a und b
|
||||
//Byte 16-19
|
||||
usOuLineCtrlRaw[17] := UDINT_TO_USINT (udTemp);
|
||||
usOuLineCtrlRaw[16] := UDINT_TO_USINT (SHR (udTemp, 8));
|
||||
usOuLineCtrlRaw[19] := UDINT_TO_USINT (SHR (udTemp, 16));
|
||||
usOuLineCtrlRaw[18] := UDINT_TO_USINT (SHR (udTemp, 24));
|
||||
ELSIF (Parameter.uiLineID = LINE_VAL_SPS_L1a) OR (Parameter.uiLineID = LINE_VAL_SPS_L1b) THEN
|
||||
//Variante SPS Linie 1 a und b
|
||||
//Byte 10-11
|
||||
usOuLineCtrlRaw[11] := UDINT_TO_USINT (udTemp);
|
||||
usOuLineCtrlRaw[10] := UDINT_TO_USINT (SHR (udTemp, 8));
|
||||
END_IF
|
||||
|
||||
//Part ID String / Serial zur<EFBFBD>ckspiegeln
|
||||
//-----------------------------------------------
|
||||
IF (Parameter.uiLineID = LINE_VAL_SPS_L1a) THEN
|
||||
//Variante SPS Linie 1a
|
||||
brsmemcpy (ADR (usOuLineCtrlRaw[12]), ADR (gLineCtrlInterface.FromLineCtrl.strPartID), 7);
|
||||
ELSIF (Parameter.uiLineID = LINE_VAL_SPS_L1b) THEN
|
||||
//Variante Linie 1b
|
||||
brsmemcpy (ADR (usOuLineCtrlRaw[28]), ADR (gLineCtrlInterface.FromLineCtrl.strPartID), 7);
|
||||
ELSE
|
||||
//Standard keine Spiegelung
|
||||
brsmemcpy (ADR (usOuLineCtrlRaw[20]), ADR (gLineCtrlInterface.FromLineCtrl.strPartID), 14);
|
||||
END_IF
|
||||
|
||||
|
||||
|
||||
END_ACTION
|
||||
|
||||
|
||||
//Interface Lineinspector
|
||||
ACTION DoLineinspectorInterface:
|
||||
//Signale von Lineinspector
|
||||
gLineCtrlInterface.ToLineCtrl.bReadyToInspect := LineInspectorInterface.FromLineInspector.bReadyToInspect;
|
||||
//Signale an Lineinspector
|
||||
LineInspectorInterface.ToLineInspector.bLifebeat := NOT LineInspectorInterface.FromLineInspector.bLifebeat;
|
||||
LineInspectorInterface.ToLineInspector.bPartActive := Status.bPartActive;
|
||||
LineInspectorInterface.ToLineInspector.bNoInspection := gLineCtrlInterface.FromLineCtrl.bNoInspection;
|
||||
LineInspectorInterface.ToLineInspector.bVNCControl := VCButtons.EnableVNCCtrl.bCommand;
|
||||
LineInspectorInterface.ToLineInspector.bVNCSetupmode := VCButtons.EnableSetupmode.bCommand;
|
||||
|
||||
LineInspectorInterface.ToLineInspector.udPartID := gLineCtrlInterface.FromLineCtrl.udPartID;
|
||||
LineInspectorInterface.ToLineInspector.strPartID := gLineCtrlInterface.FromLineCtrl.strPartID;
|
||||
END_ACTION
|
||||
|
||||
//Zeit Funktionsbausteine
|
||||
ACTION DoTimeFUBs:
|
||||
FUBs.TOF_Lightbarrier.IN := bInLightbarrier;
|
||||
FUBs.TOF_Lightbarrier.PT := t#200ms; //FixMe was 400
|
||||
FUBs.TOF_Lightbarrier ();
|
||||
|
||||
FUBs.TON_SetNewPartTest.IN := Status.bModeStartupWithEncoder AND NOT Status.bNewPartActivateLightbarrier AND NOT Status.bPartActive;
|
||||
FUBs.TON_SetNewPartTest.PT := t#150ms;
|
||||
FUBs.TON_SetNewPartTest ();
|
||||
|
||||
|
||||
FUBs.TON_CamOffDelay.IN := NOT VCButtons.ResetCam.bCommand;
|
||||
FUBs.TON_CamOffDelay.PT := t#5s;
|
||||
FUBs.TON_CamOffDelay ();
|
||||
|
||||
VCButtons.ResetCam.usStatus.1 := NOT FUBs.TON_CamOffDelay.Q;
|
||||
|
||||
IF EDGEPOS (VCButtons.ResetCam.bCommand) THEN
|
||||
Status.bDisableCamPowerPulse := TRUE;
|
||||
END_IF
|
||||
|
||||
FUBs.TON_CTRLPSCamOff.IN := Status.bDisableCamPowerPulse;
|
||||
FUBs.TON_CTRLPSCamOff.PT := t#400ms;
|
||||
FUBs.TON_CTRLPSCamOff ();
|
||||
|
||||
IF FUBs.TON_CTRLPSCamOff.Q THEN
|
||||
Status.bDisableCamPowerPulse := FALSE;
|
||||
END_IF
|
||||
|
||||
FUBs.TON_CTRLPSCamWaitRepower.IN := VCButtons.ResetCam.bCommand;
|
||||
FUBs.TON_CTRLPSCamWaitRepower.PT := t#1s;
|
||||
FUBs.TON_CTRLPSCamWaitRepower ();
|
||||
|
||||
IF EDGEPOS (FUBs.TON_CTRLPSCamWaitRepower.Q) THEN
|
||||
Status.bCamPowerOnPulse := TRUE;
|
||||
VCButtons.ResetCam.bCommand := FALSE;
|
||||
END_IF
|
||||
|
||||
FUBs.TON_CTRLPSCamOn.IN := Status.bCamPowerOnPulse;
|
||||
FUBs.TON_CTRLPSCamOn.PT := t#200ms;
|
||||
FUBs.TON_CTRLPSCamOn ();
|
||||
|
||||
|
||||
IF FUBs.TON_CTRLPSCamOn.Q THEN
|
||||
Status.bCamPowerOnPulse := FALSE;
|
||||
END_IF
|
||||
|
||||
bOuCtrlPSCam := Status.bCamPowerOnPulse OR Status.bDisableCamPowerPulse;
|
||||
|
||||
END_ACTION
|
||||
12
Logical/Linectrl/LineCtrl/IEC.prg
Normal file
12
Logical/Linectrl/LineCtrl/IEC.prg
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Program SubType="IEC" xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Init, cyclic, exit code">Main.st</File>
|
||||
<File Description="Aktionen">Action.st</File>
|
||||
<File Description="Local data types" Private="true">Types.typ</File>
|
||||
<File Description="Lokale Variablen" Private="true">Variables.var</File>
|
||||
<File Description="I/Os" Private="true">IOs.var</File>
|
||||
<File Description="LineIDs" Private="true">LinIDs.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
29
Logical/Linectrl/LineCtrl/IOs.var
Normal file
29
Logical/Linectrl/LineCtrl/IOs.var
Normal file
@@ -0,0 +1,29 @@
|
||||
(*//Inputs*)
|
||||
VAR
|
||||
iInConvPos : INT; (*Bandposition Geber*)
|
||||
rInConvPos : REAL; (*Bandposition <20>ber Bus*)
|
||||
rInConvVelocity : REAL;
|
||||
bInLightbarrier : BOOL; (*Lichtchranke Bauteil*)
|
||||
bInLightbarrierNC : BOOL; (*Lichtchranke Bauteil is <20>ffner*)
|
||||
END_VAR
|
||||
(*//Outputs*)
|
||||
VAR
|
||||
bOuFlashLamp : ARRAY[1..MAX_LAMP] OF BOOL; (*Ansteuerung Lampe*)
|
||||
bOuTriggerCam : ARRAY[1..MAX_CAM] OF BOOL; (*Ansteuerung Kamera*)
|
||||
bOuCtrlPSCam : BOOL; (*Schalten Versorgung Cams*)
|
||||
END_VAR
|
||||
(*//BusSignals DP / PN*)
|
||||
VAR
|
||||
usInLineCtrlRaw : ARRAY[0..63] OF USINT;
|
||||
usOuLineCtrlRaw : ARRAY[0..63] OF USINT;
|
||||
END_VAR
|
||||
(*//NetTime (Devel)*)
|
||||
VAR
|
||||
diOuEdgeNettime : DINT;
|
||||
iOuSequence : SINT;
|
||||
iInSequence : SINT;
|
||||
udOuOffset1 : UDINT := 100;
|
||||
udOuOffset2 : UDINT := 1000000;
|
||||
bOuEnableGen01 : BOOL;
|
||||
bTestGen : BOOL;
|
||||
END_VAR
|
||||
7
Logical/Linectrl/LineCtrl/LinIDs.var
Normal file
7
Logical/Linectrl/LineCtrl/LinIDs.var
Normal file
@@ -0,0 +1,7 @@
|
||||
VAR CONSTANT
|
||||
LINE_VAL_SG_L8 : USINT := 1; (*Voest Alpine SGm<47>nd Line 8*)
|
||||
LINE_VAL_SG_L7a : USINT := 2; (*Voest Alpine SGm<47>nd Line 7a*)
|
||||
LINE_VAL_SG_L7b : USINT := 3; (*Voest Alpine SGm<47>nd Line 7b*)
|
||||
LINE_VAL_SPS_L1a : USINT := 4; (*Smart Press Shop Linie 1a*)
|
||||
LINE_VAL_SPS_L1b : USINT := 5; (*Smart Press Shop Linie 1B*)
|
||||
END_VAR
|
||||
432
Logical/Linectrl/LineCtrl/Main.st
Normal file
432
Logical/Linectrl/LineCtrl/Main.st
Normal file
@@ -0,0 +1,432 @@
|
||||
|
||||
PROGRAM _INIT
|
||||
//Werte initialisieren
|
||||
Status.iConvPos := iInConvPos;
|
||||
Status.iConvPosLatch := iInConvPos;
|
||||
Status.iConvPosSimulation := iInConvPos;
|
||||
|
||||
Status.bModeStartupWithEncoder := FALSE;
|
||||
|
||||
Parameter ACCESS ADR (gParameter);
|
||||
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
PROGRAM _CYCLIC
|
||||
//Dynamische Varliablen
|
||||
Parameter ACCESS ADR (gParameter);
|
||||
ParameterAsArray ACCESS ADR (gParameter);
|
||||
|
||||
//Zeiten bereichen
|
||||
DoTimes;
|
||||
DoTimeFUBs;
|
||||
|
||||
|
||||
//Schnitstelle
|
||||
DoLinectrlInterface;
|
||||
DoLineinspectorInterface;
|
||||
|
||||
|
||||
//Wenn Lichtschranke als <EFBFBD>ffner angeschlossen Mapping <EFBFBD>ndern
|
||||
// und Signal invertiert einlesen
|
||||
IF (Parameter.uiLineID = LINE_VAL_SG_L7a) OR (Parameter.uiLineID = LINE_VAL_SG_L7b) THEN
|
||||
bInLightbarrier := NOT bInLightbarrierNC;
|
||||
END_IF
|
||||
|
||||
|
||||
//Inbetriebnamemodus (Mit Geber)
|
||||
Status.bModeStartupWithEncoder := VCButtons.EnableTestMode.bCommand;
|
||||
IF (Status.bModeStartupWithEncoder AND EDGEPOS (FUBs.TON_SetNewPartTest.Q)) OR
|
||||
(NOT Status.bModeStartupWithEncoder AND NOT Status.bPartActive AND bLatchPartFromRobot AND NOT gLineCtrlInterface.FromLineCtrl.bNoInspection) THEN
|
||||
Status.bNewPartActivateLightbarrier := TRUE;
|
||||
bLatchPartFromRobot := FALSE;
|
||||
END_IF
|
||||
|
||||
IF NOT Status.bModeStartupWithEncoder AND EDGEPOS (gLineCtrlInterface.FromLineCtrl.bNewPartPlaced) THEN
|
||||
bLatchPartFromRobot := TRUE;
|
||||
END_IF
|
||||
|
||||
|
||||
//Zyklusz<EFBFBD>hler f<EFBFBD>r Simulaiton
|
||||
Status.usSimulationCycle := (Status.usSimulationCycle + 1) MOD 5;
|
||||
|
||||
//Aktuelle Bandposition ermiteln
|
||||
IF Status.bSimulateConveyor THEN
|
||||
//Simulation
|
||||
IF (Status.usSimulationCycle = 0) THEN
|
||||
Status.iConvPosSimulation := Status.iConvPosSimulation + 1;
|
||||
END_IF
|
||||
Status.iConvPos := Status.iConvPosSimulation;
|
||||
ELSE
|
||||
//Geberposition
|
||||
Status.iConvPos := iInConvPos;
|
||||
Status.iConvPosSimulation := iInConvPos;
|
||||
END_IF
|
||||
|
||||
//Neues Bauteil erkennen
|
||||
IF EDGEPOS (FUBs.TOF_Lightbarrier.Q) AND Status.bNewPartActivateLightbarrier AND NOT Status.bPartActive THEN
|
||||
Status.rPosPart := Status.rConvPos;
|
||||
Status.usSegment := 1;
|
||||
Status.usSubstep := 1;
|
||||
Status.bNewPartActivateLightbarrier := FALSE;
|
||||
Status.bPartActive := TRUE;
|
||||
//Bauteil auf Leuchtband platzieren
|
||||
//Bauteillaenge ermitteln
|
||||
Status.usNrOfSegments := 1;
|
||||
FOR usi := 1 TO MAX_REC_SEGS DO
|
||||
IF (gRecipe.CamSegment[usi].udFlashtime[1] = 0) THEN
|
||||
//Letztes Segment
|
||||
EXIT;
|
||||
ELSE
|
||||
Status.usNrOfSegments := usi;
|
||||
END_IF
|
||||
END_FOR
|
||||
Status.usPartLenLEDSegments := UDINT_TO_USINT (USINT_TO_UDINT (Status.usNrOfSegments) * gRecipe.udSegmentlength / 100);
|
||||
//Schreibposition Band ermittlen
|
||||
//FixMe Offset
|
||||
usTemp := LREAL_TO_USINT (Parameter.rOffsetLED / 100.);
|
||||
FOR usi := 1 TO Status.usNrOfSegments DO
|
||||
IF (gLEDState.usWritePos > (usi + usTemp)) THEN
|
||||
gLEDState.usSegState[gLEDState.usWritePos -usi -usTemp] := LED_STATE_NEW_PART; //Neues Bauteil
|
||||
ELSE
|
||||
gLEDState.usSegState[MAX_CONV_POS - usi -usTemp + gLEDState.usWritePos] := LED_STATE_NEW_PART; //Beues Bauteil
|
||||
END_IF
|
||||
END_FOR
|
||||
END_IF
|
||||
|
||||
//Bauteilerkennung
|
||||
IF EDGEPOS (FUBs.TOF_Lightbarrier.Q) THEN
|
||||
FOR usi := 0 TO 4 DO
|
||||
PartDetector.rPosPartGap[usi] := PartDetector.rPosPartGap[usi + 1];
|
||||
END_FOR;
|
||||
PartDetector.rPosPartStart := Status.rConvPos;
|
||||
PartDetector.rPosPartGap[5] := PartDetector.rPosPartStart - PartDetector.rPosPartEnd;
|
||||
END_IF
|
||||
IF EDGENEG (FUBs.TOF_Lightbarrier.Q) THEN
|
||||
FOR usi := 0 TO 4 DO
|
||||
PartDetector.rPosPartLen[usi] := PartDetector.rPosPartLen[usi + 1];
|
||||
END_FOR;
|
||||
PartDetector.rPosPartEnd := Status.rConvPos;
|
||||
PartDetector.rPosPartLen[5] := PartDetector.rPosPartEnd - PartDetector.rPosPartStart;
|
||||
END_IF
|
||||
|
||||
|
||||
//Neue Position rekennen / berechnen
|
||||
IF (Parameter.uiLineID = LINE_VAL_SPS_L1a) OR (Parameter.uiLineID = LINE_VAL_SPS_L1b) THEN
|
||||
//Bandposition kommt <EFBFBD>ber bus
|
||||
Status.rConvVel := REAL_TO_LREAL (rInConvVelocity);
|
||||
Status.rConvPosLineCtrl := REAL_TO_LREAL (rInConvPos);
|
||||
IF (Status.rConvPosLineCtrl <> Status.rConvPosLineCtrlLatch) THEN
|
||||
lrTemp := Status.rConvPosLineCtrl - Status.rConvPosLineCtrlLatch;
|
||||
Status.rConvPos := Status.rConvPos + lrTemp;
|
||||
Status.bNewConvPos := TRUE;
|
||||
Status.rConvPosLineCtrlLatch := Status.rConvPosLineCtrl;
|
||||
END_IF
|
||||
ELSE
|
||||
//Standard <EFBFBD>ber Geber
|
||||
IF (Status.iConvPos <> Status.iConvPosLatch) THEN
|
||||
IF( (Status.iConvPos - Status.iConvPosLatch) > 0) THEN
|
||||
//Nur Vorw<EFBFBD>rtsbewegung erlauben
|
||||
lrTemp := INT_TO_LREAL (Status.iConvPos - Status.iConvPosLatch) * Parameter.rPosPerRev / DINT_TO_LREAL (Parameter.diIncPerRev);
|
||||
Status.rConvPos := Status.rConvPos + lrTemp;
|
||||
Status.rConvVel := lrTemp / ((gdiSystemTime - Status.diTimeConvPosLatch) * 1000);
|
||||
Status.bNewConvPos := TRUE;
|
||||
END_IF
|
||||
Status.iConvPosLatch := Status.iConvPos;
|
||||
Status.diTimeConvPosLatch := gdiSystemTime;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
//Neue Position erkannt
|
||||
IF Status.bNewConvPos THEN
|
||||
//Neue Positon f<EFBFBD>r LED streifen
|
||||
IF ((Status.rConvPos - Status.rConvPosLatchLED) >= 100.0) THEN
|
||||
Status.rConvPosLatchLED := Status.rConvPos;
|
||||
gLEDState.bNextPos := TRUE;
|
||||
END_IF
|
||||
|
||||
//Segment triggern
|
||||
IF ((Status.rConvPos - Status.rPosPart) > (UDINT_TO_LREAL (gRecipe.udSegmentlength * USINT_TO_UDINT (Status.usSegment)) + Parameter.rOffsetLightbarrier)) AND
|
||||
Status.bPartActive AND NOT Status.bSegmentActive THEN
|
||||
Status.bSegmentActive := TRUE;
|
||||
END_IF
|
||||
|
||||
Status.bNewConvPos := FALSE;
|
||||
END_IF
|
||||
|
||||
|
||||
IF (Status.usSegment < 1) OR (Status.usSegment > MAX_REC_SEGS) THEN
|
||||
Status.usSegment := 1;
|
||||
END_IF
|
||||
|
||||
|
||||
|
||||
//VNC Steuerung aktiv
|
||||
//======================================
|
||||
IF VCButtons.EnableVNCCtrl.bCommand THEN
|
||||
//Kein Trigger mit Encoder
|
||||
Status.bPartActive := FALSE;
|
||||
|
||||
//Ein Segment aus der Visu <EFBFBD>bernehmen
|
||||
//Kamera Definieren
|
||||
lCurrentCamSegment.bFlashLamp[1].0 := VCButtons.SelLamp[1].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].1 := VCButtons.SelLamp[2].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].2 := VCButtons.SelLamp[3].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].3 := VCButtons.SelLamp[4].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].4 := VCButtons.SelLamp[5].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].5 := VCButtons.SelLamp[6].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].6 := VCButtons.SelLamp[7].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].7 := VCButtons.SelLamp[8].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].8 := VCButtons.SelLamp[9].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].9 := VCButtons.SelLamp[10].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].10 := VCButtons.SelLamp[11].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].11 := VCButtons.SelLamp[12].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].12 := VCButtons.SelLamp[13].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].13 := VCButtons.SelLamp[14].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].14 := VCButtons.SelLamp[15].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].15 := VCButtons.SelLamp[16].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].16 := VCButtons.SelLamp[17].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].17 := VCButtons.SelLamp[18].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].18 := VCButtons.SelLamp[19].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].19 := VCButtons.SelLamp[20].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].20 := VCButtons.SelLamp[21].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].21 := VCButtons.SelLamp[22].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].22 := VCButtons.SelLamp[23].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].23 := VCButtons.SelLamp[24].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].24 := VCButtons.SelLamp[25].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].25 := VCButtons.SelLamp[26].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].26 := VCButtons.SelLamp[27].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].27 := VCButtons.SelLamp[28].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].28 := VCButtons.SelLamp[29].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].29 := VCButtons.SelLamp[30].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].30 := VCButtons.SelLamp[31].bCommand;
|
||||
lCurrentCamSegment.bFlashLamp[1].31 := VCButtons.SelLamp[32].bCommand;
|
||||
|
||||
lCurrentCamSegment.udCamMatrix[1].0 := VCButtons.SelCam[1].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].1 := VCButtons.SelCam[2].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].2 := VCButtons.SelCam[3].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].3 := VCButtons.SelCam[4].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].4 := VCButtons.SelCam[5].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].5 := VCButtons.SelCam[6].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].6 := VCButtons.SelCam[7].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].7 := VCButtons.SelCam[8].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].8 := VCButtons.SelCam[9].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].9 := VCButtons.SelCam[10].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].10 := VCButtons.SelCam[11].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].11 := VCButtons.SelCam[12].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].12 := VCButtons.SelCam[13].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].13 := VCButtons.SelCam[14].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].14 := VCButtons.SelCam[15].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].15 := VCButtons.SelCam[16].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].16 := VCButtons.SelCam[17].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].17 := VCButtons.SelCam[18].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].18 := VCButtons.SelCam[19].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].19 := VCButtons.SelCam[20].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].20 := VCButtons.SelCam[21].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].21 := VCButtons.SelCam[22].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].22 := VCButtons.SelCam[23].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].23 := VCButtons.SelCam[24].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].24 := VCButtons.SelCam[25].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].25 := VCButtons.SelCam[26].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].26 := VCButtons.SelCam[27].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].27 := VCButtons.SelCam[28].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].28 := VCButtons.SelCam[29].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].29 := VCButtons.SelCam[30].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].30 := VCButtons.SelCam[31].bCommand;
|
||||
lCurrentCamSegment.udCamMatrix[1].31 := VCButtons.SelCam[32].bCommand;
|
||||
|
||||
//Beleuchtungzeit wird direkt eingegeben <EFBFBD>ber VNC
|
||||
//auf ein Segment / Step beschr<EFBFBD>nken
|
||||
lCurrentCamSegment.udFlashtime[2] := 0;
|
||||
|
||||
//Segment triggern
|
||||
IF EDGEPOS (VCButtons.TriggerSegment.bCommand) THEN
|
||||
Status.bSegmentActive := TRUE;
|
||||
END_IF
|
||||
|
||||
//Visu Anpassen bzw Steuern
|
||||
VCButtons.EnableTestMode.usStatus.0 := TRUE;
|
||||
VCButtons.EnableTestMode.bCommand := FALSE;
|
||||
|
||||
|
||||
VCButtons.udDisableInput.0 := FALSE;
|
||||
VCButtons.udDisableInput.1 := VCButtons.EnableSetupmode.bCommand;
|
||||
|
||||
VCButtons.EnableSetupmode.usStatus.0 := FALSE;
|
||||
|
||||
VCButtons.TriggerSegment.usStatus.0 := FALSE;
|
||||
VCButtons.TriggerSegment.usStatus.1 := VCButtons.EnableSetupmode.bCommand;
|
||||
|
||||
//Lampen
|
||||
FOR usi:=1 TO MAX_LAMP DO
|
||||
VCButtons.LampOn[usi].usStatus.1 := NOT VCButtons.EnableSetupmode.bCommand;
|
||||
IF EDGENEG (VCButtons.EnableSetupmode.bCommand) THEN
|
||||
//Lampen aus bei Deaktivieren des Einrichtbetriebs
|
||||
bOuFlashLamp[usi] := FALSE;
|
||||
VCButtons.LampOn[usi].bCommand := FALSE;
|
||||
ELSE
|
||||
//Lampen selektiv anschalten
|
||||
bOuFlashLamp[usi] := VCButtons.LampOn[usi].bCommand;
|
||||
END_IF
|
||||
END_FOR
|
||||
|
||||
//Kameras
|
||||
FOR usi:=1 TO MAX_CAM DO
|
||||
VCButtons.ContTrgCam[usi].usStatus.1 := NOT VCButtons.EnableSetupmode.bCommand;
|
||||
IF EDGENEG (VCButtons.EnableSetupmode.bCommand) THEN
|
||||
//Cameras aus bei Deaktivieren des Einrichtbetriebs
|
||||
bOuTriggerCam[usi] := FALSE;
|
||||
VCButtons.ContTrgCam[usi].bCommand := FALSE;
|
||||
ELSE
|
||||
//Kamerass selektiv kontinuierlich triggern
|
||||
bOuTriggerCam[usi] := VCButtons.ContTrgCam[usi].bCommand AND gBlinker.bBlink0_1;
|
||||
END_IF
|
||||
END_FOR
|
||||
|
||||
ELSE
|
||||
//VNC Steuerung ist aus Segment aus Rezept <EFBFBD>bernehmen
|
||||
lCurrentCamSegment := gRecipe.CamSegment[Status.usSegment];
|
||||
//Setupmode nur wenn VNC Steuerung aktiv ist
|
||||
VCButtons.EnableSetupmode.bCommand := FALSE;
|
||||
VCButtons.EnableSetupmode.usStatus.0 := TRUE;
|
||||
VCButtons.EnableTestMode.usStatus.0 := FALSE;
|
||||
VCButtons.udDisableInput.0 := TRUE;
|
||||
VCButtons.TriggerSegment.usStatus.0 := TRUE;
|
||||
END_IF
|
||||
|
||||
//VNCCtrl Verlassen
|
||||
IF EDGENEG (VCButtons.EnableVNCCtrl.bCommand) THEN
|
||||
//Lampen deaktivieren
|
||||
FOR usi:=1 TO MAX_LAMP DO
|
||||
bOuFlashLamp[usi] := FALSE;
|
||||
VCButtons.LampOn[usi].bCommand := FALSE;
|
||||
END_FOR
|
||||
|
||||
//Kameras deaktivieren
|
||||
FOR usi:=1 TO MAX_CAM DO
|
||||
bOuTriggerCam[usi] := FALSE;
|
||||
END_FOR
|
||||
END_IF
|
||||
|
||||
//Minimale Blitzzeit erzwingen
|
||||
FOR usi:=1 TO MAX_REC_SEG_SUBSTEP DO
|
||||
IF (lCurrentCamSegment.udFlashtime[usi] > 0) AND (lCurrentCamSegment.udFlashtime[usi] < 1000) THEN
|
||||
lCurrentCamSegment.udFlashtime[usi] := 1000;
|
||||
END_IF
|
||||
END_FOR;
|
||||
|
||||
IF lCurrentCamSegment.udFlashtime[1] = 0 THEN
|
||||
Status.bSegmentActive := FALSE;
|
||||
Status.bPartActive := FALSE;
|
||||
END_IF
|
||||
|
||||
|
||||
|
||||
//Segment aktiv
|
||||
//===================================
|
||||
IF Status.bSegmentActive THEN
|
||||
//Zeit Starten
|
||||
IF (Times_Latch.diCamStep = 0) THEN
|
||||
diDebug := Times_Latch.diCamStep;
|
||||
Times_Latch.diCamStep := gdiSystemTime + 1;
|
||||
END_IF
|
||||
|
||||
//Bei neuem Schrittbeginn Lampen aktivieren
|
||||
IF (Times_Latch.diCamStep <> 0) AND (Times.diCamStep = 0) THEN
|
||||
FOR usi := 1 TO MAX_LAMP DO
|
||||
bOuFlashLamp[usi] := BIT_TST (lCurrentCamSegment.bFlashLamp[Status.usSubstep], usi - 1);
|
||||
END_FOR;
|
||||
END_IF
|
||||
//Nach Vorlaufzeit Cam Triggern
|
||||
IF EDGEPOS (DINT_TO_UDINT (Times.diCamStep) > gRecipe.udLeadtimeTriggerCam) THEN
|
||||
FOR usi := 1 TO MAX_CAM DO
|
||||
bOuTriggerCam[usi] := BIT_TST (lCurrentCamSegment.udCamMatrix[Status.usSubstep], usi - 1);
|
||||
END_FOR;
|
||||
END_IF
|
||||
//Nach Belichtungszeit Kameras und lampen aus
|
||||
IF EDGEPOS (DINT_TO_UDINT (Times.diCamStep) > (gRecipe.udLeadtimeTriggerCam + lCurrentCamSegment.udFlashtime[Status.usSubstep])) THEN
|
||||
FOR usi := 1 TO MAX_LAMP DO
|
||||
bOuFlashLamp[usi] := FALSE;
|
||||
END_FOR;
|
||||
FOR usi := 1 TO MAX_CAM DO
|
||||
bOuTriggerCam[usi] :=FALSE;
|
||||
END_FOR;
|
||||
END_IF
|
||||
//Nach Nachlaufzeit n<EFBFBD>chsten Substep aktivieren
|
||||
IF EDGEPOS (DINT_TO_UDINT (Times.diCamStep) > (gRecipe.udLeadtimeTriggerCam + lCurrentCamSegment.udFlashtime[Status.usSubstep] + gRecipe.udPostDelayFlash)) THEN
|
||||
Status.usSubstep := Status.usSubstep + 1;
|
||||
IF (Status.usSubstep >= MAX_REC_SEG_SUBSTEP) OR (lCurrentCamSegment.udFlashtime[Status.usSubstep] = 0) THEN
|
||||
Status.bSegmentActive := FALSE; //Segment beendet
|
||||
Status.usSegment := Status.usSegment + 1;
|
||||
Status.usSubstep := 1;
|
||||
END_IF
|
||||
Times_Latch.diCamStep := 0; //Neuen Trigger erzwingen
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
|
||||
//Bauteil bewertung
|
||||
IF EDGEPOS (LineInspectorInterface.FromLineInspector.bNotInspected OR
|
||||
LineInspectorInterface.FromLineInspector.bResultNOk OR
|
||||
LineInspectorInterface.FromLineInspector.bResultOk) THEN
|
||||
|
||||
IF LineInspectorInterface.FromLineInspector.bNotInspected THEN
|
||||
usSegState := LED_STATE_NOT_INSPECTED; //Not Inspected
|
||||
ELSIF LineInspectorInterface.FromLineInspector.bResultNOk THEN
|
||||
usSegState := LED_STATE_PART_NOK; //NOK
|
||||
ELSIF LineInspectorInterface.FromLineInspector.bResultOk THEN
|
||||
usSegState := LED_STATE_PART_OK; //OK
|
||||
END_IF
|
||||
|
||||
bFoundPart := FALSE;
|
||||
FOR usi := 80 TO 1 BY -1 DO //Max 8m Band
|
||||
usTemp := (usi + gLEDState.usWritePos) MOD MAX_CONV_POS;
|
||||
IF gLEDState.usSegState[usTemp] = LED_STATE_NEW_PART THEN
|
||||
gLEDState.usSegState[usTemp] := usSegState;
|
||||
bFoundPart := TRUE;
|
||||
ELSIF bFoundPart THEN
|
||||
EXIT;
|
||||
END_IF
|
||||
END_FOR
|
||||
END_IF
|
||||
|
||||
|
||||
|
||||
|
||||
//Visu Enable
|
||||
IF EDGEPOS (VCButtons.EnableVNCCtrl.bCommand) THEN
|
||||
//Visu Anpassen
|
||||
FOR usi:=1 TO 32 DO
|
||||
VCButtons.SelCam[usi].usStatus.0 := (usi > Parameter.usNrOfCams);
|
||||
VCButtons.ContTrgCam[usi].usStatus.0 := (usi > Parameter.usNrOfCams);
|
||||
VCButtons.SelLamp[usi].usStatus.0 := (usi > Parameter.usNrOfLights);
|
||||
VCButtons.LampOn[usi].usStatus.0 := (usi > Parameter.usNrOfLights);
|
||||
END_FOR
|
||||
END_IF
|
||||
|
||||
//Generell wenn Linie nicht in Automatik
|
||||
// VNC Steuerung (Segment einstellen - Handbetrieb freigeben
|
||||
VCButtons.EnableVNCCtrl.usStatus.1 := FALSE;
|
||||
//Testen mit Geber
|
||||
VCButtons.EnableTestMode.usStatus.1 := NOT LineInspectorInterface.FromLineInspector.bEnableSetupmode;
|
||||
|
||||
|
||||
//Testumgebung f<EFBFBD>r Flankengenerator
|
||||
IF bTestGen THEN
|
||||
bOuEnableGen01 := TRUE;
|
||||
diOuEdgeNettime := gdiSystemTime + 4000;
|
||||
iOuSequence := iOuSequence + 1;
|
||||
udOuOffset1;
|
||||
udOuOffset2;
|
||||
bTestGen := FALSE;
|
||||
END_IF
|
||||
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
|
||||
PROGRAM _EXIT
|
||||
(* Insert code here *)
|
||||
|
||||
END_PROGRAM
|
||||
|
||||
92
Logical/Linectrl/LineCtrl/Types.typ
Normal file
92
Logical/Linectrl/LineCtrl/Types.typ
Normal file
@@ -0,0 +1,92 @@
|
||||
|
||||
TYPE
|
||||
typ_Status : STRUCT (*Statis*)
|
||||
bSegmentActive : BOOL; (*Beleuchtungssegment ist aktiv*)
|
||||
bModeStartupWithEncoder : BOOL; (*Bandsimulation *)
|
||||
bSimulateConveyor : BOOL; (*F<>rderband simulieren*)
|
||||
bNewPartActivateLightbarrier : BOOL; (*Neues Bauteil abgelegt - Lichtschranke aktivieren*)
|
||||
bNewConvPos : BOOL;
|
||||
bPartActive : BOOL; (*Bauteil vorhanden*)
|
||||
bDisableCamPowerPulse : BOOL;
|
||||
bCamPowerOnPulse : BOOL;
|
||||
usSegment : USINT; (*Aktuelles Segment*)
|
||||
usSubstep : USINT := 1; (*Aktueller Unterschritt in Beleuchtungssegment*)
|
||||
usNrOfSegments : USINT := 1; (*Anzahl der Beleuchtungssegmente wg. Bauteill<6C>nge*)
|
||||
usPartLenLEDSegments : USINT := 1; (*Anzahl der Beleuchtungssegmente wg. Bauteill<6C>nge*)
|
||||
usSimulationCycle : USINT; (*Zyklusz<73>hler simulation*)
|
||||
iConvPosSimulation : INT; (*Simulierte BandPos [inc]*)
|
||||
iConvPos : INT; (*Aktuelle BandPos [inc] von Geber oder Simulation*)
|
||||
iConvPosLatch : INT; (*Speicher letzte BandPos [inc]*)
|
||||
diTimeConvPosLatch : DINT; (*Zeitstempel letzte BandPos*)
|
||||
rConvVel : LREAL; (*Bandgeschwindigkeit [mm/s]*)
|
||||
rConvPosLineCtrl : LREAL; (*Aktuelle BandPos [mm] <20>ber Bus*)
|
||||
rConvPosLineCtrlLatch : LREAL; (*Aktuelle BandPos [mm] <20>ber Bus speicher*)
|
||||
rConvPos : LREAL; (*Aktuelle BandPos [mm]*)
|
||||
rConvPosLatchLED : LREAL; (*Speicher BandPos [mm] f<>r LED*)
|
||||
rPosPart : LREAL; (*Position aktuelles Bauteil auf Band [mm]*)
|
||||
END_STRUCT;
|
||||
typ_PartDetection : STRUCT (*Bauteilerkennung*)
|
||||
rPosPartStart : LREAL; (*Position aktuelles Bauteil auf Band [mm]*)
|
||||
rPosPartEnd : LREAL; (*Position aktuelles Bauteil auf Band [mm]*)
|
||||
rPosPartLen : ARRAY[0..5]OF LREAL; (*Position aktuelles Bauteil auf Band [mm]*)
|
||||
rPosPartGap : ARRAY[0..5]OF LREAL; (*Position aktuelles Bauteil auf Band [mm]*)
|
||||
END_STRUCT;
|
||||
typ_Times : STRUCT (*Zeiten*)
|
||||
diCamStep : DINT;
|
||||
END_STRUCT;
|
||||
typ_FUBs : STRUCT (*Funktionsbausteine*)
|
||||
TOF_Lightbarrier : TOF;
|
||||
TON_SetNewPartTest : TON;
|
||||
TON_CamOffDelay : {REDUND_UNREPLICABLE} TON;
|
||||
TON_CTRLPSCamWaitRepower : {REDUND_UNREPLICABLE} TON;
|
||||
TON_CTRLPSCamOn : TON;
|
||||
TON_CTRLPSCamOff : TON;
|
||||
END_STRUCT;
|
||||
typ_VCButtons : STRUCT (*Buttons f<>r Visu*)
|
||||
udDisableInput : USINT;
|
||||
EnableVNCCtrl : gtyp_VCButton; (*Steuerung <20>ber VNC Aktivieren*)
|
||||
EnableSetupmode : gtyp_VCButton; (*Einrichtbetrieb*)
|
||||
EnableTestMode : gtyp_VCButton; (*Testmodus Mit Encoder*)
|
||||
TriggerSegment : gtyp_VCButton; (*Segment Triggern*)
|
||||
ResetCam : gtyp_VCButton; (*Kameraversorung deaktivieren*)
|
||||
SelCam : ARRAY[1..32]OF gtyp_VCButton; (*Kamera anw<6E>hlen*)
|
||||
SelLamp : ARRAY[1..32]OF gtyp_VCButton; (*Lampe anw<6E>len*)
|
||||
ContTrgCam : ARRAY[1..32]OF gtyp_VCButton; (*Einrichtbetrieb Kamera Dauertrigger*)
|
||||
LampOn : ARRAY[1..32]OF gtyp_VCButton; (*Einrichtbetrieb Lampe einschalten*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
|
||||
(*Schnittstelle Lineinspector*)
|
||||
|
||||
TYPE
|
||||
typ_LineinspectorInterface : STRUCT (*Interface Lineinspector PC*)
|
||||
ToLineInspector : typ_ToLineInspector;
|
||||
FromLineInspector : typ_FromLineInspector;
|
||||
END_STRUCT;
|
||||
typ_ToLineInspector : STRUCT (*Daten an Lineinspector PC*)
|
||||
udPartID : UDINT; (*Bauteil ID (zum Abgleich mit Linie)*)
|
||||
strPartID : STRING[20]; (*Bauteilbezeichnung*)
|
||||
bLifebeat : BOOL; (*Lifebeat (Toggle bit)*)
|
||||
bLineAutomaticMode : BOOL; (*Automatik Produktionsline aktiv*)
|
||||
bNoInspection : BOOL; (*Keine Inspektion - Zelle abgew<65>hlt*)
|
||||
bPartActive : BOOL; (*Bauteil durch Lichtschranke erkannt*)
|
||||
bVNCControl : BOOL; (*Lokale Bedienung <20>ber VNC*)
|
||||
bVNCSetupmode : BOOL; (*Lokale Bedienung <20>ber VNC - Einrichtbetrieb (Cams Dauertrigger) sonst Einzelsequenz*)
|
||||
END_STRUCT;
|
||||
typ_FromLineInspector : STRUCT (*Daten vom Lineinspector PC*)
|
||||
bLifebeat : BOOL;
|
||||
bEnableSetupmode : BOOL; (*Freigabe f<>r Einrichtbetrieb*)
|
||||
bReadyToInspect : BOOL; (*Bereit f<>r Inspektion*)
|
||||
bErrorSum : BOOL; (*Sammelst<73>rung*)
|
||||
bErrorParttype : BOOL; (*Teilefehler*)
|
||||
bErrorConfiguration : BOOL; (*Konfigfehler*)
|
||||
bErrorNetwork : BOOL; (*Kein Bildupload*)
|
||||
bErrorERP : BOOL; (*Fehler ERP*)
|
||||
bErrorVirtualConv : BOOL; (*Fehler ERP*)
|
||||
bErrorCam : BOOL; (*Fehler Kamera*)
|
||||
bErrorPC : BOOL; (*Fehler PC*)
|
||||
bResultOk : BOOL; (*Pr<50>fergebnis OK*)
|
||||
bResultNOk : BOOL; (*Pr<50>fergebnis NOK*)
|
||||
bNotInspected : BOOL; (*Teil nicht gepr<70>ft*)
|
||||
END_STRUCT;
|
||||
END_TYPE
|
||||
26
Logical/Linectrl/LineCtrl/Variables.var
Normal file
26
Logical/Linectrl/LineCtrl/Variables.var
Normal file
@@ -0,0 +1,26 @@
|
||||
VAR
|
||||
lCurrentCamSegment : {REDUND_UNREPLICABLE} gtyp_RecipeCamSegment; (*Aktuelles Kamerasegment*)
|
||||
bTest : BOOL;
|
||||
bFoundPart : BOOL;
|
||||
bDebug : BOOL;
|
||||
bLatchPartFromRobot : BOOL;
|
||||
usi : USINT; (*Z<>hler*)
|
||||
usTemp : {REDUND_UNREPLICABLE} USINT; (*Z<>hler*)
|
||||
usSegState : {REDUND_UNREPLICABLE} USINT; (*Z<>hler*)
|
||||
diDebug : DINT;
|
||||
udTemp : UDINT;
|
||||
lrTemp : LREAL;
|
||||
LineInspectorInterface : typ_LineinspectorInterface; (*Interface mit Lineinspector*)
|
||||
END_VAR
|
||||
VAR RETAIN
|
||||
Status : typ_Status; (*Status*)
|
||||
END_VAR
|
||||
VAR
|
||||
PartDetector : typ_PartDetection; (*Bauteilerkennung*)
|
||||
Parameter : REFERENCE TO gtyp_Parameter; (*Anlagenparameter*)
|
||||
ParameterAsArray : REFERENCE TO ARRAY[0..40] OF USINT; (*Anlagenparameter*)
|
||||
Times : typ_Times; (*Zeiten*)
|
||||
Times_Latch : typ_Times; (*Speicher Zeiten*)
|
||||
FUBs : typ_FUBs; (*FUBs*)
|
||||
VCButtons : typ_VCButtons; (*Buttons etc. f<>r Visu*)
|
||||
END_VAR
|
||||
11
Logical/Linectrl/Package.pkg
Normal file
11
Logical/Linectrl/Package.pkg
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Package xmlns="http://br-automation.co.at/AS/Package">
|
||||
<Objects>
|
||||
<Object Type="File" Description="Global data types">Global.typ</Object>
|
||||
<Object Type="File" Description="Global variables">Global.var</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Liniensteuerung">LineCtrl</Object>
|
||||
<Object Type="Program" Language="IEC" Description="Rezepte">Recipe</Object>
|
||||
<Object Type="Program" Language="IEC" Description="DMX Ansteuerung LED Leiste">DMX</Object>
|
||||
</Objects>
|
||||
</Package>
|
||||
10
Logical/Linectrl/Recipe/IEC.prg
Normal file
10
Logical/Linectrl/Recipe/IEC.prg
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?AutomationStudio FileVersion="4.9"?>
|
||||
<Program SubType="IEC" xmlns="http://br-automation.co.at/AS/Program">
|
||||
<Files>
|
||||
<File Description="Init, cyclic, exit code">Main.st</File>
|
||||
<File Description="Local data types" Private="true">Types.typ</File>
|
||||
<File Description="Lokale Variablen" Private="true">Variables.var</File>
|
||||
<File Description="I/Os" Private="true">IOs.var</File>
|
||||
</Files>
|
||||
</Program>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user