Final Backup

This commit is contained in:
2020-04-03 11:20:12 +02:00
parent ee985d76b5
commit 69892fb064
1357 changed files with 100569 additions and 0 deletions

10
BM_Check_01.apj Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version="4.4.7.144 SP"?>
<Project Version="1.00.0" Edition="Standard" EditionComment="Standard" xmlns="http://br-automation.co.at/AS/Project">
<Communication />
<ANSIC DefaultIncludes="true" />
<IEC ExtendedConstants="true" IecExtendedComments="true" KeywordsAsStructureMembers="false" NamingConventions="true" Pointers="true" Preprocessor="false" />
<Motion RestartAcoposParameter="true" RestartInitParameter="true" />
<Project StoreRuntimeInProject="true" />
<Variables DefaultInitValue="0" DefaultRetain="false" DefaultVolatile="true" />
</Project>

7
LastUser.set Normal file
View File

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

164
Logical/AsIO/AsIO.fun Normal file
View File

@@ -0,0 +1,164 @@
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIODPStatus (*determines the state and current value of an I/O data point; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDatapoint : UDINT; (*I/O data point name given as a pointer*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
unused : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
flags : USINT; (*information about the state of the data point*)
datatype : USINT; (*data type of the data point according to the profibus standard*)
value : UDINT; (*value of the data point*)
forceValue : UDINT; (*force value of the data point*)
defaultValue : UDINT; (*default value of the data point*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIOSetForceValue (*sets the value of an I/O data point's "force" status; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDatapoint : UDINT; (*I/O data point name given as a pointer*)
value : UDINT; (*force value*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
unused : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIOEnableForcing (*enables the "force" status of an I/O data point; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDatapoint : UDINT; (*I/O data point name given as a pointer*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
unused : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIODisableForcing (*disables the "force" status of an I/O data point; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDatapoint : UDINT; (*I/O data point name given as a pointer*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
unused : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIOGlobalDisableForcing (*disables the "force" status of all I/O data points; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
unused : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIOFListDP (*determines filtered I/O data points; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
flagsValue : UDINT; (*value of flags filter*)
flagsMask : UDINT; (*mask of flags filter*)
pFilterString : UDINT; (*filterstring given as a pointer*)
pLastDatapoint : UDINT; (*old data point name given as a pointer*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
unused : UDINT; (*internal variable*)
buffer : ARRAY[0..255] OF USINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
pDatapoint : UDINT; (*data point name given as a pointer*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIOListDP (*determines the existing I/O data points; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pLastDatapoint : UDINT; (*old data point name given as a pointer*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
unused : UDINT; (*internal variable*)
buffer : ARRAY[0..127] OF USINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
pDatapoint : UDINT; (*data point name given as a pointer*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIOPVInfo (*collects data about PV's that are linked with a data point; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDatapoint : UDINT; (*I/O data point name given as a pointer*)
index : UDINT; (*index of the searched PV*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
bufferA : ARRAY[0..127] OF USINT; (*internal variable*)
bufferB : ARRAY[0..127] OF USINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
pPvName : UDINT; (*PV names given as pointer, 0 if there is no PV linked with the specified index*)
pPvContext : UDINT; (*context names (given as a pointer) that are used to map this PV*)
flags : USINT; (*additional information*)
END_VAR
END_FUNCTION_BLOCK

4
Logical/AsIO/AsIO.typ Normal file
View File

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

20
Logical/AsIO/AsIO.var Normal file
View File

@@ -0,0 +1,20 @@
VAR CONSTANT
asioERR_INTERNAL : UINT := 30150; (*internal error*)
asioERR_NOSUCH_DP : UINT := 30151; (*data point with specified name not found*)
asio_VALID_FLAG : USINT := 1; (*bit0 is always set*)
asio_P_ACT_FLAG : USINT := 2; (*bit1 = 1 data source active, bit1 = 0 data source inactive*)
asio_F_ACT_FLAG : USINT := 4; (*bit2 = 1 force active, bit2 = 0 force inactive*)
asio_UNRES_LINK_FLAG : USINT := 8; (*AsPVInfo: bit3=0 the PV link is established , AsIODPStatus: bit3=0 all PV links are established*)
asio_IO_INPUT_FLAG : USINT := 16; (*the data point is an I/O input channel*)
asio_IO_OUTPUT_FLAG : USINT := 32; (*the data point is an I/O output channel*)
asio_IO_SIMULATION_FLAG : USINT := 64; (*the data point is simulated*)
asio_UNRES_IO_FLAG : USINT :=128; (*IO-Link unresolved*)
asio_TYPE_MISMATCH : USINT := 16; (*AsPVInfo:Type Mismatch*)
asio_PV_NOT_FOUND : USINT := 32; (*AsPVInfo:PV not found*)
asio_INVERTED_FLAG : USINT := 64; (*AsPVInfo:the PV link is inverted*)
END_VAR

12
Logical/AsIO/Binary.lby Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.4.7.144 SP?>
<Library Description="The AsIO library makes it possible to determine the states and values of a data point and carry out forcing operations." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsIO.fun</File>
<File>AsIO.typ</File>
<File>AsIO.var</File>
</Files>
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>

201
Logical/AsIO/SG4/AsIO.h Normal file
View File

@@ -0,0 +1,201 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASIO_
#define _ASIO_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#include <runtime.h>
#ifndef _BUR_PUBLIC
#define _BUR_PUBLIC
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define asio_INVERTED_FLAG 64U
#define asio_PV_NOT_FOUND 32U
#define asio_TYPE_MISMATCH 16U
#define asio_UNRES_IO_FLAG 128U
#define asio_IO_SIMULATION_FLAG 64U
#define asio_IO_OUTPUT_FLAG 32U
#define asio_IO_INPUT_FLAG 16U
#define asio_UNRES_LINK_FLAG 8U
#define asio_F_ACT_FLAG 4U
#define asio_P_ACT_FLAG 2U
#define asio_VALID_FLAG 1U
#define asioERR_NOSUCH_DP 30151U
#define asioERR_INTERNAL 30150U
#else
#ifndef _GLOBAL_CONST
#define _GLOBAL_CONST _WEAK const
#endif
_GLOBAL_CONST unsigned char asio_INVERTED_FLAG;
_GLOBAL_CONST unsigned char asio_PV_NOT_FOUND;
_GLOBAL_CONST unsigned char asio_TYPE_MISMATCH;
_GLOBAL_CONST unsigned char asio_UNRES_IO_FLAG;
_GLOBAL_CONST unsigned char asio_IO_SIMULATION_FLAG;
_GLOBAL_CONST unsigned char asio_IO_OUTPUT_FLAG;
_GLOBAL_CONST unsigned char asio_IO_INPUT_FLAG;
_GLOBAL_CONST unsigned char asio_UNRES_LINK_FLAG;
_GLOBAL_CONST unsigned char asio_F_ACT_FLAG;
_GLOBAL_CONST unsigned char asio_P_ACT_FLAG;
_GLOBAL_CONST unsigned char asio_VALID_FLAG;
_GLOBAL_CONST unsigned short asioERR_NOSUCH_DP;
_GLOBAL_CONST unsigned short asioERR_INTERNAL;
#endif
/* Datatypes and datatypes of function blocks */
typedef struct AsIODPStatus
{
/* VAR_INPUT (analog) */
unsigned long pDatapoint;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned char flags;
unsigned char datatype;
unsigned long value;
unsigned long forceValue;
unsigned long defaultValue;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long unused;
/* VAR_INPUT (digital) */
plcbit enable;
} AsIODPStatus_typ;
typedef struct AsIOSetForceValue
{
/* VAR_INPUT (analog) */
unsigned long pDatapoint;
unsigned long value;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long unused;
/* VAR_INPUT (digital) */
plcbit enable;
} AsIOSetForceValue_typ;
typedef struct AsIOEnableForcing
{
/* VAR_INPUT (analog) */
unsigned long pDatapoint;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long unused;
/* VAR_INPUT (digital) */
plcbit enable;
} AsIOEnableForcing_typ;
typedef struct AsIODisableForcing
{
/* VAR_INPUT (analog) */
unsigned long pDatapoint;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long unused;
/* VAR_INPUT (digital) */
plcbit enable;
} AsIODisableForcing_typ;
typedef struct AsIOGlobalDisableForcing
{
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long unused;
/* VAR_INPUT (digital) */
plcbit enable;
} AsIOGlobalDisableForcing_typ;
typedef struct AsIOFListDP
{
/* VAR_INPUT (analog) */
unsigned long flagsValue;
unsigned long flagsMask;
unsigned long pFilterString;
unsigned long pLastDatapoint;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long pDatapoint;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long unused;
unsigned char buffer[256];
/* VAR_INPUT (digital) */
plcbit enable;
} AsIOFListDP_typ;
typedef struct AsIOListDP
{
/* VAR_INPUT (analog) */
unsigned long pLastDatapoint;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long pDatapoint;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long unused;
unsigned char buffer[128];
/* VAR_INPUT (digital) */
plcbit enable;
} AsIOListDP_typ;
typedef struct AsIOPVInfo
{
/* VAR_INPUT (analog) */
unsigned long pDatapoint;
unsigned long index;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long pPvName;
unsigned long pPvContext;
unsigned char flags;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned char bufferA[128];
unsigned char bufferB[128];
/* VAR_INPUT (digital) */
plcbit enable;
} AsIOPVInfo_typ;
/* Prototyping of functions and function blocks */
_BUR_PUBLIC void AsIODPStatus(struct AsIODPStatus* inst);
_BUR_PUBLIC void AsIOSetForceValue(struct AsIOSetForceValue* inst);
_BUR_PUBLIC void AsIOEnableForcing(struct AsIOEnableForcing* inst);
_BUR_PUBLIC void AsIODisableForcing(struct AsIODisableForcing* inst);
_BUR_PUBLIC void AsIOGlobalDisableForcing(struct AsIOGlobalDisableForcing* inst);
_BUR_PUBLIC void AsIOFListDP(struct AsIOFListDP* inst);
_BUR_PUBLIC void AsIOListDP(struct AsIOListDP* inst);
_BUR_PUBLIC void AsIOPVInfo(struct AsIOPVInfo* inst);
#ifdef __cplusplus
};
#endif
#endif /* _ASIO_ */

View File

@@ -0,0 +1,70 @@
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIOAccRead (*reads noncyclical register (only inputs); asynchronous execution*)
VAR_INPUT
enable :BOOL; (*enables execution*)
pDeviceName :UDINT; (*device name given as a pointer*)
pChannelName :UDINT; (*pointer to the channel name*)
END_VAR
VAR_OUTPUT
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
value :UDINT; (*value read*)
END_VAR
VAR
intern :IOAC_I_TYPE; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIOAccWrite (*writes noncyclical register (ONLY outputs); asynchronous execution*)
VAR_INPUT
enable :BOOL; (*enables execution*)
pDeviceName :UDINT; (*device name given as a pointer*)
pChannelName :UDINT; (*pointer to the channel name*)
value :UDINT; (*value to be written*)
END_VAR
VAR_OUTPUT
status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
VAR
intern :IOAC_I_TYPE; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIOAccReadReg (*reads noncyclical register (SGC only); asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
nodeNr : USINT; (*node number of x2x module*)
registerNr : UINT; (*register number*)
size : USINT; (*register size*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
value : UDINT; (*regsiter value*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsIOAccWriteReg (*writes noncyclical register (SGC only); asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
nodeNr : USINT; (*node number of x2x module*)
registerNr : UINT; (*register number*)
size : USINT; (*register size*)
value : UDINT; (*new register value*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK

View File

@@ -0,0 +1,15 @@
TYPE
IOAC_I_TYPE : STRUCT (*internal use*)
StateMan : UINT ;
ErrMan : UINT ;
Init : UDINT ;
Taskhandle : UDINT ;
Semaphore : UDINT ;
Requestsize : UDINT ;
Answersize : UDINT ;
pAccessObj : UDINT ;
Offset : UDINT ;
flags : UDINT ;
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,10 @@
VAR CONSTANT
ioacERR_INTERNAL : UINT := 30190; (*internal error*)
ioacERR_DEVICE : UINT := 30191; (*I/O module does not exist*)
ioacERR_CHANNEL : UINT := 30192; (*incorrect channel name specified*)
ioacERR_TIMEOUT : UINT := 30193; (*timeout reached*)
ioacERR_NOTSUPPORTED : UINT := 30194; (*not supported*)
ioacERR_PARAMETER : UINT := 30195; (*invalid parameter*)
ioacERR_ACCESS : UINT := 30196; (*access error*)
END_VAR

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.4.7.144 SP?>
<Library Description="This library provides read and write access to non-cyclic I/O data points." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsIOAcc.fun</File>
<File>AsIOAcc.typ</File>
<File>AsIOAcc.var</File>
</Files>
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>

View File

@@ -0,0 +1,132 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASIOACC_
#define _ASIOACC_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#include <runtime.h>
#ifndef _BUR_PUBLIC
#define _BUR_PUBLIC
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define ioacERR_ACCESS 30196U
#define ioacERR_PARAMETER 30195U
#define ioacERR_NOTSUPPORTED 30194U
#define ioacERR_TIMEOUT 30193U
#define ioacERR_CHANNEL 30192U
#define ioacERR_DEVICE 30191U
#define ioacERR_INTERNAL 30190U
#else
#ifndef _GLOBAL_CONST
#define _GLOBAL_CONST _WEAK const
#endif
_GLOBAL_CONST unsigned short ioacERR_ACCESS;
_GLOBAL_CONST unsigned short ioacERR_PARAMETER;
_GLOBAL_CONST unsigned short ioacERR_NOTSUPPORTED;
_GLOBAL_CONST unsigned short ioacERR_TIMEOUT;
_GLOBAL_CONST unsigned short ioacERR_CHANNEL;
_GLOBAL_CONST unsigned short ioacERR_DEVICE;
_GLOBAL_CONST unsigned short ioacERR_INTERNAL;
#endif
/* Datatypes and datatypes of function blocks */
typedef struct IOAC_I_TYPE
{ unsigned short StateMan;
unsigned short ErrMan;
unsigned long Init;
unsigned long Taskhandle;
unsigned long Semaphore;
unsigned long Requestsize;
unsigned long Answersize;
unsigned long pAccessObj;
unsigned long Offset;
unsigned long flags;
} IOAC_I_TYPE;
typedef struct AsIOAccRead
{
/* VAR_INPUT (analog) */
unsigned long pDeviceName;
unsigned long pChannelName;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long value;
/* VAR (analog) */
struct IOAC_I_TYPE intern;
/* VAR_INPUT (digital) */
plcbit enable;
} AsIOAccRead_typ;
typedef struct AsIOAccWrite
{
/* VAR_INPUT (analog) */
unsigned long pDeviceName;
unsigned long pChannelName;
unsigned long value;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
struct IOAC_I_TYPE intern;
/* VAR_INPUT (digital) */
plcbit enable;
} AsIOAccWrite_typ;
typedef struct AsIOAccReadReg
{
/* VAR_INPUT (analog) */
unsigned char nodeNr;
unsigned short registerNr;
unsigned char size;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long value;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} AsIOAccReadReg_typ;
typedef struct AsIOAccWriteReg
{
/* VAR_INPUT (analog) */
unsigned char nodeNr;
unsigned short registerNr;
unsigned char size;
unsigned long value;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} AsIOAccWriteReg_typ;
/* Prototyping of functions and function blocks */
_BUR_PUBLIC void AsIOAccRead(struct AsIOAccRead* inst);
_BUR_PUBLIC void AsIOAccWrite(struct AsIOAccWrite* inst);
_BUR_PUBLIC void AsIOAccReadReg(struct AsIOAccReadReg* inst);
_BUR_PUBLIC void AsIOAccWriteReg(struct AsIOAccWriteReg* inst);
#ifdef __cplusplus
};
#endif
#endif /* _ASIOACC_ */

View File

@@ -0,0 +1,101 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASIOACC_
#define _ASIOACC_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#include <runtime.h>
#ifndef _IEC_CONST
#define _IEC_CONST _WEAK const
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define ioacERR_ACCESS 30196U
#define ioacERR_PARAMETER 30195U
#define ioacERR_NOTSUPPORTED 30194U
#define ioacERR_TIMEOUT 30193U
#define ioacERR_CHANNEL 30192U
#define ioacERR_DEVICE 30191U
#define ioacERR_INTERNAL 30190U
#else
_IEC_CONST unsigned short ioacERR_ACCESS = 30196U;
_IEC_CONST unsigned short ioacERR_PARAMETER = 30195U;
_IEC_CONST unsigned short ioacERR_NOTSUPPORTED = 30194U;
_IEC_CONST unsigned short ioacERR_TIMEOUT = 30193U;
_IEC_CONST unsigned short ioacERR_CHANNEL = 30192U;
_IEC_CONST unsigned short ioacERR_DEVICE = 30191U;
_IEC_CONST unsigned short ioacERR_INTERNAL = 30190U;
#endif
/* Datatypes and datatypes of function blocks */
typedef struct IOAC_I_TYPE
{ unsigned short StateMan;
unsigned short ErrMan;
unsigned long Init;
unsigned long Taskhandle;
unsigned long Semaphore;
unsigned long Requestsize;
unsigned long Answersize;
unsigned long pAccessObj;
unsigned long Offset;
unsigned long flags;
} IOAC_I_TYPE;
typedef struct AsIOAccReadReg
{
/* VAR_INPUT (analog) */
unsigned char nodeNr;
unsigned short registerNr;
unsigned char size;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long value;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} AsIOAccReadReg_typ;
typedef struct AsIOAccWriteReg
{
/* VAR_INPUT (analog) */
unsigned char nodeNr;
unsigned short registerNr;
unsigned char size;
unsigned long value;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} AsIOAccWriteReg_typ;
/* Prototyping of functions and function blocks */
void AsIOAccReadReg(struct AsIOAccReadReg* inst);
void AsIOAccWriteReg(struct AsIOAccWriteReg* inst);
#ifdef __cplusplus
};
#endif
#endif /* _ASIOACC_ */

View File

@@ -0,0 +1,6 @@
FUNCTION FC_Scale_MPPAOu : INT (*MPPA 6bar Druck Sollwert skalieren*)
VAR_INPUT
lrInPreasure : LREAL;
END_VAR
END_FUNCTION

View File

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

View File

@@ -0,0 +1,5 @@
FUNCTION FC_Scale_MPPAOu
//10.0 bar
FC_Scale_MPPAOu := LREAL_TO_INT ( lrInPreasure /10.0 * 65535.0 /2.0);
END_FUNCTION

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.4.7.144 SP?>
<Library xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File Description="Exported data types">Types.typ</File>
<File Description="Exported constants">Constants.var</File>
<File Description="Exported functions and function blocks">Common.fun</File>
<File Description="MPPA 10bar Druck Ausgangswert skalieren">FC_Scale_MPPAOu.st</File>
</Files>
</Library>

View File

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

View File

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

13
Logical/Global.typ Normal file
View File

@@ -0,0 +1,13 @@
TYPE
gtypAlarm : {REDUND_UNREPLICABLE} STRUCT (* *) (* *) (*3*)
Alarm : {REDUND_UNREPLICABLE} ARRAY[0..127]OF BOOL; (* *) (* *) (*4*)
Ack : {REDUND_UNREPLICABLE} ARRAY[0..127]OF BOOL; (* *) (* *) (*5*)
Bypass : {REDUND_UNREPLICABLE} ARRAY[0..127]OF BOOL; (* *) (* *) (*6*)
END_STRUCT;
gtyp_VCButton : STRUCT (*VC - Button*)
usStatus : USINT; (*Anzeige / Bedienstatus*)
bCompletion : BOOL; (*Fertigstellung Eingabe*)
bCommand : BOOL; (*Befehlstatus*)
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,74 @@
VAR
gMachineAlarms : gtypAlarm; (*Maschinenalarme*)
END_VAR
(*Constants*)
VAR CONSTANT
VC_HIDE_BITPOS : USINT := 0;
VC_LOCK_BITPOS : USINT := 1;
END_VAR
(*================================================================================================================*)
(*CPU (PWLnk Node 240)*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
udSerialNr : UDINT; (*Seriennummer*)
guiTemperatureCPU : UINT; (*CPU Temperatur*)
guiTemperatureENV : UINT; (*Umgebungstemperatur*)
gdiSystemTime : DINT;
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF6.ST1 - SLX811*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbIF6ST1ModuleOk : BOOL;
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*Signals to Safe PLC*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSPLCOuResetSafety : BOOL; (*Quittierung Sicherheit (Nothalt / Schutzt<7A>r)*)
gbSPLCOuResetEDMError : BOOL; (*Quittierung R<>cklesefehler*)
gbSPLCOuMachineOn : BOOL; (*Anlage Ein*)
gbSPLCOuRefeedSTO : BOOL; (*R<>ckf<6B>hrkreis STO*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*Signals from Safe PLC*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSPLCInSafetyOk : BOOL; (*Safety PLC E-Stop ist Ok*)
gbSPLCInEDMError : BOOL; (*R<>ckf<6B>hrkreis fehler*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*Inputs from SLX*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbSInEStopPanel : BOOL; (*Sicherer Eingang 01/02 Equivalent - Nothalt Schaltschrank*)
gbSInDoorLeft : BOOL; (*Sicherer Eingang 03/04 Equivalent - Schutzt<7A>r Links*)
gbSInDoorRight : BOOL; (*Sicherer Eingang 05/06 Equivalent - Schutzt<7A>r Rechts*)
gbSInRoofTop : BOOL; (*Sicherer Eingang 07/08 Equivalent - Schutzabdeckung Dach*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF6.ST2 - SO4110*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbIF6ST2ModuleOk : BOOL;
gbSOuEnableTurntable : BOOL; (*Sicherer Ausgang 01 - STO Drehantrieb*)
gbSOuOpenValveIn : BOOL; (*Sicherer Ausgang 02 - Ventil Druckeingang <20>ffnen*)
gbSOuCloseValveOu : BOOL; (*Sicherer Ausgang 02 - Ventil Druckentlastung schlie<69>en*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF6.ST3 - A02622*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbIF6ST3ModuleOk : BOOL;
giOuPreasure : INT; (*Ausgangsdruck*)
END_VAR
(*----------------------------------------------------------------------------------------------------------------*)
(*IF6.ST4 - DM9324*)
(*----------------------------------------------------------------------------------------------------------------*)
VAR
gbIF6ST4ModuleOk : BOOL;
gbInPreasureOk : BOOL;
END_VAR
(*//R<>ckf<6B>hrkreis direkt auf SLX gemappt*)
(*----------------------------------------------------------------------------------------------------------------*)
(*----------------------------------------------------------------------------------------------------------------*)

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View 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_ */

View 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_ */

View 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_ */

View File

@@ -0,0 +1,303 @@
{REDUND_ERROR} FUNCTION_BLOCK safeRemoteControl (*Remote Control Function Block*)
VAR_INPUT
SafeLOGICID : UINT; (*SafeLOGIC ID*)
Execute : BOOL; (*execution*)
pCommandData : UDINT; (*pointer to command data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
SafeLOGICStatus : RemoteControlStatusTypeV1; (*SafeLOGIC status*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
i_handle : UDINT; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_ERROR} FUNCTION_BLOCK safeRemoteControl_V2 (*Remote Control Function Block*)
VAR_INPUT
SafeLOGICID : UINT; (*SafeLOGIC ID*)
Execute : BOOL; (*execution*)
pCommandData : UDINT; (*pointer to command data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
SafeLOGICStatus : RemoteControlStatusTypeV2; (*SafeLOGIC status*)
END_VAR
VAR
Internal : AsSafetyInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_ERROR} FUNCTION_BLOCK safeDownloadApplication (*Download Application Function Block*)
VAR_INPUT
SafeLOGICID : UINT; (*SafeLOGIC ID*)
Execute : BOOL; (*execution*)
pCommandData : UDINT; (*pointer to command data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
UnlockRequired : BOOL; (*unlock required*)
ApplicationCRC : UDINT; (*application CRC*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
i_handle : UDINT; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_ERROR} FUNCTION_BLOCK safeDownloadApplication_V2 (*Download Application Function Block*)
VAR_INPUT
SafeLOGICID : UINT; (*SafeLOGIC ID*)
Execute : BOOL; (*execution*)
pCommandData : UDINT; (*pointer to command data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
UnlockRequired : BOOL; (*unlock required*)
ApplicationCRC : UDINT; (*application CRC*)
END_VAR
VAR
Internal : AsSafetyInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_ERROR} FUNCTION_BLOCK safeDownloadData (*Download Data Function Block*)
VAR_INPUT
SafeLOGICID : UINT; (*SafeLOGIC ID*)
Execute : BOOL; (*execution*)
Type : UINT; (*type of data: safeDATA_TYPE_MAOP, safeDATA_TYPE_EXTMAOP,... *)
pCommandData : UDINT; (*pointer to command data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
UnlockRequired : BOOL; (*unlock required*)
Timestamp : UDINT; (*timestamp from data*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
i_handle : UDINT; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_ERROR} FUNCTION_BLOCK safeDownloadData_V2 (*Download Data Function Block*)
VAR_INPUT
SafeLOGICID : UINT; (*SafeLOGIC ID*)
Execute : BOOL; (*execution*)
Type : UINT; (*type of data: safeDATA_TYPE_MAOP, safeDATA_TYPE_EXTMAOP,... *)
pCommandData : UDINT; (*pointer to command data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
UnlockRequired : BOOL; (*unlock required*)
Timestamp : UDINT; (*timestamp from data*)
END_VAR
VAR
Internal : AsSafetyInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_ERROR} FUNCTION_BLOCK safeConfigurationOnTarget (*Configuration On Target Function Block*)
VAR_INPUT
SafeLOGICID : UINT; (*SafeLOGIC ID*)
Execute : BOOL; (*execution*)
Type : UINT; (*type of data: safeDATA_TYPE_MAOP, safeDATA_TYPE_EXTMAOP,...*)
pCommandData : UDINT; (*pointer to command data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
Timestamp : UDINT; (*timestamp of data*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
i_handle : UDINT; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_ERROR} FUNCTION_BLOCK safeConfigurationOnTarget_V2 (*Configuration On Target Function Block*)
VAR_INPUT
SafeLOGICID : UINT; (*SafeLOGIC ID*)
Execute : BOOL; (*execution*)
Type : UINT; (*type of data: safeDATA_TYPE_MAOP, safeDATA_TYPE_EXTMAOP,...*)
pCommandData : UDINT; (*pointer to command data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
Timestamp : UDINT; (*timestamp of data*)
END_VAR
VAR
Internal : AsSafetyInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_ERROR} FUNCTION safeLibraryVersion : UINT (*returns the actual library version*)
END_FUNCTION
{REDUND_ERROR} FUNCTION_BLOCK safeDownloadFile (*Download File Function Block*)
VAR_INPUT
SafeLOGICID : UINT; (*SafeLOGIC ID*)
Execute : BOOL; (*execution*)
pCommandData : UDINT; (*pointer to command data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
UnlockRequired : BOOL; (*unlock required*)
Timestamp : UDINT; (*timestamp from data*)
END_VAR
VAR
Internal : AsSafetyInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_ERROR} FUNCTION_BLOCK safeCheckTable (*Check Table Function Block*)
VAR_INPUT
Execute : BOOL; (*execution*)
InstNr : USINT; (*instance number*)
pUser : UDINT; (*user name*)
Timestamp : UDINT; (*timestamp*)
TableType : USINT; (*table type*)
EntryCnt : UDINT; (*number of entries*)
pTableHeader : UDINT; (*table header input*)
pTableData : UDINT; (*table data input*)
pTableHeaderOut : UDINT; (*table header output buffer*)
pTableDataOut : UDINT; (*table data output buffer*)
pFileDataOut : UDINT; (*file data output buffer*)
AckData : USINT; (*1 .. acknowledge table data, 2 .. NOT acknowledge table data, abort FUB*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
CheckErrorCode : UDINT; (*table check error code*)
CheckErrorLine : UDINT; (*table check error line*)
CheckErrorColumn : UDINT; (*table check error column*)
pCrcOut : UDINT; (*returns pointer to CRC data*)
CrcCntOut : UDINT; (*returns number of CRCs*)
END_VAR
VAR
i_step : UINT; (*internal*)
i_tmp : UDINT; (*internal*)
i_clean : BOOL; (*internal*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_ERROR} FUNCTION_BLOCK safeFileInfo (*File Info Function Block*)
VAR_INPUT
SafeLOGICID : UINT; (*SafeLOGIC ID*)
Execute : BOOL; (*execution*)
Type : UINT; (*type of data: safeDATA_TYPE_MAOP, safeDATA_TYPE_EXTMAOP,...*)
pCommandData : UDINT; (*pointer to command data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
VAR
Internal : AsSafetyInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_ERROR} FUNCTION safeGetTableLength : UDINT (*Function returns size of table data*)
VAR_INPUT
TableType : USINT; (*table type*)
EntryCnt : UDINT; (*number of entries*)
pTableHeader : UDINT; (*pointer to table header*)
END_VAR
END_FUNCTION
{REDUND_ERROR} FUNCTION_BLOCK safeGetDataLength (*Function Block returns size of download file*)
VAR_INPUT
Execute : BOOL; (*execution*)
Type : UINT; (*type of data: safeDATA_TYPE_MAOP, safeDATA_TYPE_EXTMAOP,... *)
pCommandData : UDINT; (*pointer to command data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
Length : UDINT; (*calculated length of download file*)
END_VAR
VAR
Internal : AsSafetyInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_ERROR} FUNCTION_BLOCK safeCreateData (*Create Data Function Block*)
VAR_INPUT
SafeLOGICID : UINT; (*SafeLOGIC ID*)
Execute : BOOL; (*execution*)
Type : UINT; (*type of data: safeDATA_TYPE_MAOP, safeDATA_TYPE_EXTMAOP,... *)
pCommandData : UDINT; (*pointer to command data*)
FileDataOutLen : UDINT; (*size of buffer for file data*)
pFileDataOut : UDINT; (*pointer to memory buffer for file data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
UnlockRequired : BOOL; (*unlock required*)
Timestamp : UDINT; (*timestamp from data*)
END_VAR
VAR
Internal : AsSafetyInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_ERROR} FUNCTION_BLOCK safeLogicInfo (*Remote Control Function Block*)
VAR_INPUT
SafeLOGICID : UINT; (*SafeLOGIC ID*)
Execute : BOOL; (*execution*)
Type : UINT; (*type of data: safeINFO_TYPE_PWD_INFO, safeINFO_TYPE_PWD_CHK, safeINFO_TYPE_UDID_INFO*)
pCommandData : UDINT; (*pointer to command data*)
END_VAR
VAR_OUTPUT
Done : BOOL; (*execution done*)
Busy : BOOL; (*execution busy*)
Error : BOOL; (*execution error*)
StatusID : UINT; (*execution status: ERR_OK, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
VAR
Internal : AsSafetyInternalType; (*internal variable*)
END_VAR
END_FUNCTION_BLOCK

View File

@@ -0,0 +1,568 @@
TYPE
FileReferenceType : STRUCT (*file reference*)
Device : STRING[80]; (*pointer to the device name*)
File : STRING[80]; (*pointer to the file name*)
END_STRUCT;
AsSafetyInternalType : STRUCT (*internal data type*)
Clean : BOOL;
State : UINT;
Result : UINT;
Tmp : UDINT;
pThis : UDINT;
pFcn : UDINT;
END_STRUCT;
SourceLocalDataTypeV1 : STRUCT (*local data source type*)
pFileData : UDINT; (*pointer to data buffer*)
FileLength : UDINT; (*data length*)
END_STRUCT;
SourceLocalFileTypeV1 : STRUCT (*local file source*)
SourceFile : FileReferenceType; (*path to local file*)
END_STRUCT;
DataSourceTypeV1 : STRUCT (*source data type*)
Type : UINT; (*0 .. file upload from safeLOGIC, 1 .. local data buffer, 2 .. local file*)
LocalData : SourceLocalDataTypeV1; (*arguments for local data*)
LocalFile : SourceLocalFileTypeV1; (*arguments for local file*)
END_STRUCT;
InfoCmdPwdInfoTypeV1 : STRUCT (*password info data from SafeLOGIC command structure*)
Version : UINT; (*used version*)
PasswordSet : BOOL; (*0 .. no password set, 1 .. password is set*)
END_STRUCT;
InfoCmdPwdChkTypeV1 : STRUCT (*password check data from SafeLOGIC command structure*)
Version : UINT; (*used version*)
Password : STRING[16]; (*password for check*)
PasswordEqual : BOOL; (*0 .. no password set, 1 .. password is set*)
END_STRUCT;
ConfigurationAddParaTypeV2 : STRUCT (*additional parameter data from SafeLOGIC*)
SADR : UINT; (*safety address*)
ID : USINT; (*id*)
pParaData : UDINT; (*pointer to additional parameter data*)
Length : UDINT; (*size of parameter buffer*)
LengthOut : UDINT; (*length of parameter*)
CRC : UDINT; (*CRC*)
Timestamp : UDINT; (*timestamp*)
END_STRUCT;
ConfigurationAddParaTypeV1 : STRUCT (*additional parameter data from SafeLOGIC*)
SADR : UINT; (*safety address*)
ID : USINT; (*id*)
pParaData : UDINT; (*pointer to additional parameter data*)
Length : UDINT; (*size of parameter buffer*)
CRC : UDINT; (*CRC*)
Timestamp : UDINT; (*timestamp*)
END_STRUCT;
ConfigurationBitOptionsTypeV1 : STRUCT (*bit machine options*)
BitData : ARRAY[0..63]OF USINT; (*bit array*)
END_STRUCT;
ConfigurationCmdAddParaTypeV2 : STRUCT (*additional parameter data from SafeLOGIC command structure*)
Version : UINT; (*input data: used version*)
Password : STRING[16]; (*input data: password*)
pParaDataOutput : UDINT; (*input data: pointer to list of type ConfigurationAddParaTypeV2*)
NumberParaSetsOutput : UINT; (*input data: number of available entries in pParaDataOutput*)
NumberParaSetsOutputOut : UINT; (*return value: number of returned entries*)
pBackupFile : UDINT; (*input data: 0 .. no backup, otherwise pointer to struct of type FileReferenceType *)
pXmlOutputFile : UDINT; (*input data: 0 .. don't create XML output data, otherwise pointer to struct of type FileReferenceType*)
END_STRUCT;
ConfigurationCmdAddParaTypeV1 : STRUCT (*additional parameter data from SafeLOGIC command structure*)
Version : UINT; (*input data: used version*)
Password : STRING[16]; (*input data: password*)
pParaDataOutput : UDINT; (*return value: pointer to list of type ConfigurationAddParaTypeV1*)
NumberParaSetsOutput : UINT; (*return value: number of returned entries*)
END_STRUCT;
ConfigurationCmdExtMaOpTypeV2 : STRUCT (*extended machine options from SafeLOGIC command structure*)
Version : UINT; (*input data: safeVERSION_R110*)
Password : STRING[16]; (*input data: password*)
pIntDataOutput : UDINT; (*input data: pointer to list of type ConfigurationIntOptionsTypeV1*)
NumberIntOutput : UINT; (*input data: number of available entries in INT buffer*)
NumberIntOutputOut : UINT; (*return value: number of returned INT data entries*)
pUintDataOutput : UDINT; (*input data: pointer to list of type ConfigurationUintOptionsTypeV1*)
NumberUintOutput : UINT; (*input data: number of available entries in UINT buffer*)
NumberUintOutputOut : UINT; (*return value: number of returned UINT data entries*)
pDintDataOutput : UDINT; (*input data: pointer to list of type ConfigurationDintOptionsTypeV1*)
NumberDintOutput : UINT; (*input data: number of available DINT data entries*)
NumberDintOutputOut : UINT; (*return value: number of returned DINT data entries*)
pUdintDataOutput : UDINT; (*input data: pointer to list of type ConfigurationUdintOptionsTypeV1*)
NumberUdintOutput : UINT; (*input data: number of available UDINT data entries*)
NumberUdintOutputOut : UINT; (*return value: number of returned UDINT data entries*)
pBackupFile : UDINT; (*input data: 0 .. no backup, otherwise pointer to struct of type FileReferenceType *)
pXmlOutputFile : UDINT; (*input data: 0 .. don't create XML output data, otherwise pointer to struct of type FileReferenceType*)
END_STRUCT;
ConfigurationCmdExtMaOpTypeV1 : STRUCT (*extended machine options from SafeLOGIC command structure*)
Version : UINT; (*input data: safeVERSION_R107*)
Password : STRING[16]; (*input data: password*)
pIntDataOutput : UDINT; (*return value: pointer to list of type ConfigurationIntOptionsTypeV1*)
NumberIntOutput : UINT; (*return value: number of returned INT data entries*)
pUintDataOutput : UDINT; (*return value: pointer to list of type ConfigurationUintOptionsTypeV1*)
NumberUintOutput : UINT; (*return value: number of returned UINT data entries*)
pDintDataOutput : UDINT; (*return value: pointer to list of type ConfigurationDintOptionsTypeV1*)
NumberDintOutput : UINT; (*return value: number of returned DINT data entries*)
pUdintDataOutput : UDINT; (*return value: pointer to list of type ConfigurationUdintOptionsTypeV1*)
NumberUdintOutput : UINT; (*return value: number of returned UDINT data entries*)
END_STRUCT;
ConfigurationCmdMaOpTypeV2 : STRUCT (*machine options from SafeLOGIC command structure Version 2*)
Version : UINT; (*input data: safeVERSION_R110*)
Password : STRING[16]; (*input data: password*)
pDeviceListOutput : UDINT; (*input data: pointer to device list buffer of type ConfigurationDeviceTypeV1*)
NumberDevicesOutput : UINT; (*input data: number of available device entries in devices list buffer*)
NumberDevicesOutputOut : UINT; (*return value: number of returned device entries*)
pMachineOptionsOutput : UDINT; (*input data: pointer to bit machine options of type ConfigurationBitOptionsTypeV1*)
pModuleFlagsOutput : UDINT; (*input data: pointer to module flags of type ConfigurationModuleFlagsTypeV1*)
pBackupFile : UDINT; (*input data: 0 .. no backup, otherwise pointer to struct of type FileReferenceType *)
pXmlOutputFile : UDINT; (*input data: 0 .. don't create XML output data, otherwise pointer to struct of type FileReferenceType*)
END_STRUCT;
ConfigurationCmdMaOpTypeV1 : STRUCT (*machine options from SafeLOGIC command structure Version 1*)
Version : UINT; (*input data: safeVERSION_R107*)
Password : STRING[16]; (*input data: password*)
pDeviceListOutput : UDINT; (*return value: pointer to device list of type ConfigurationDeviceTypeV1*)
NumberDevicesOutput : UINT; (*return value: number of returned entries*)
pMachineOptionsOutput : UDINT; (*return value: pointer to bit machine options of type ConfigurationBitOptionsTypeV1*)
pModuleFlagsOutput : UDINT; (*return value: pointer to module flags of type ConfigurationModuleFlagsTypeV1*)
END_STRUCT;
ConfigurationCmdTableTypeV2 : STRUCT (*table data from SafeLOGIC command structure*)
Version : UINT; (*input data: safeVERSION_R110*)
Password : STRING[16]; (*input data: password*)
pTableDataOutput : UDINT; (*input data: pointer to list of type ConfigurationTableTypeV1*)
NumberTablesOutput : UINT; (*input data: number of available entries in pTableDataOutput*)
NumberTablesOutputOut : UINT; (*return value: number of returned table entries*)
pBackupFile : UDINT; (*input data: 0 .. no backup, otherwise pointer to struct of type FileReferenceType *)
pXmlOutputFile : UDINT; (*input data: 0 .. don't create XML output data, otherwise pointer to struct of type FileReferenceType*)
END_STRUCT;
ConfigurationCmdTableTypeV1 : STRUCT (*table data from SafeLOGIC command structure*)
Version : UINT; (*input data: safeVERSION_R107*)
Password : STRING[16]; (*input data: password*)
pTableDataOutput : UDINT; (*return value: pointer to list of type ConfigurationTableTypeV1*)
NumberTablesOutput : UINT; (*return value: number of returned table entries*)
END_STRUCT;
FileInfoCmdTypeV1 : STRUCT (*file info command structure*)
Version : UINT; (*used version*)
DataSource : DataSourceTypeV1; (*data source*)
Timestamp : UDINT; (*timestamp*)
pCrcs : UDINT; (*buffer for CRCs*)
NumberOfCrcs : UINT; (*size of CRC buffer*)
NumberOfCrcsOut : UINT; (*number of CRCs*)
END_STRUCT;
ConfigurationDeviceTypeV1 : STRUCT (*safety device from SafeLOGIC*)
SADR : UINT; (*safety address*)
UDID : ARRAY[0..5]OF USINT; (*UDID*)
END_STRUCT;
ConfigurationDintOptionsTypeV1 : STRUCT (*DINT machine options*)
ID : UINT; (*id*)
Value : DINT; (*value*)
END_STRUCT;
ConfigurationIntOptionsTypeV1 : STRUCT (*INT machine options*)
ID : UINT; (*id*)
Value : INT; (*value*)
END_STRUCT;
ConfigurationModuleFlagsTypeV1 : STRUCT (*module flags*)
Optional : ARRAY[0..127]OF USINT; (*optional*)
Startup : ARRAY[0..127]OF USINT; (*startup*)
NotPresent : ARRAY[0..127]OF USINT; (*not present*)
END_STRUCT;
ConfigurationTableTypeV2 : STRUCT (*table data for command struct V1*)
ID : UINT; (*table id*)
Type : USINT; (*table type*)
NumberOfCRCs : UINT; (*input data: number of available entries in pCRCData*)
NumberOfCRCsOut : UINT; (*return value: number of returned CRC entries*)
pCRCData : UDINT; (*input data: pointer to table CRC buffer*)
END_STRUCT;
ConfigurationTableTypeV1 : STRUCT (*table data for command struct V2*)
ID : UINT; (*table id*)
Type : USINT; (*table type*)
NumberOfCRCs : UINT; (*return value: number of returned CRCs*)
pCRCData : UDINT; (*return value: pointer to table CRC buffer*)
END_STRUCT;
ConfigurationUdintOptionsTypeV1 : STRUCT (*UDINT machine options*)
ID : UINT; (*id*)
Value : UDINT; (*value*)
END_STRUCT;
ConfigurationUintOptionsTypeV1 : STRUCT (*UINT machine options*)
ID : UINT; (*id*)
Value : UINT; (*value*)
END_STRUCT;
DownloadAcknExtMaOpTypeV1 : STRUCT (*acknowledge extended machine options structure*)
AcknIntOptions : ARRAY[0..63]OF BOOL; (*acknowledge INT*)
AcknUintOptions : ARRAY[0..63]OF BOOL; (*acknowledge UINT*)
AcknDintOptions : ARRAY[0..63]OF BOOL; (*acknowledge DINT*)
AcknUdintOptions : ARRAY[0..63]OF BOOL; (*acknowledge UDINT*)
END_STRUCT;
DownloadAcknMaOpTypeV1 : STRUCT (*acknowledge bit machine options structure*)
AcknBitOptions : ARRAY[0..63]OF USINT; (*acknowledge bit*)
END_STRUCT;
DownloadAcknAddParaTypeV1 : STRUCT (*acknowledge bit additional parameter*)
AcknBitAddPara : ARRAY[0..63]OF USINT; (*acknowledge bit*)
END_STRUCT;
DownloadCmdAddParaTypeV2 : STRUCT (*additional paramater command structure*)
Version : UINT; (*input data: used version*)
Password : STRING[16]; (*input data: password*)
UDID_Low : UDINT; (*input data: UDID low*)
UDID_High : UINT; (*input data: UDID high*)
Unlock : USINT; (*input data: unlock data*)
pParaListInput : UDINT; (*input data: pointer to additional parameter input data list of type DownloadAddParaTypeV1*)
NumberParaSetsInput : UINT; (*input data: number of input parameter entries in pParaListInput*)
pParaDataOutput : UDINT; (*input data: pointer to list of type ConfigurationAddParaTypeV2*)
NumberParaSetsOutput : UINT; (*input data: number of available entries in pParaDataOutput*)
NumberParaSetsOutputOut : UINT; (*return value: number of returned entries*)
pBackupFile : UDINT; (*input data: 0 .. no backup, otherwise pointer to struct of type FileReferenceType *)
pXmlOutputFile : UDINT; (*input data: 0 .. don't create XML output data, otherwise pointer to struct of type FileReferenceType*)
END_STRUCT;
DownloadCmdAddParaTypeV1 : STRUCT (*additional paramater command structure*)
Version : UINT; (*input data: used version*)
Password : STRING[16]; (*input data: password*)
UDID_Low : UDINT; (*input data: UDID low*)
UDID_High : UINT; (*input data: UDID high*)
Unlock : USINT; (*input data: unlock data*)
pParaListInput : UDINT; (*input data: pointer to additional parameter input data list of type DownloadAddParaTypeV1*)
NumberParaSetsInput : UINT; (*input data: number of input parameter entries in pParaListInput*)
pParaDataOutput : UDINT; (*return value: pointer to list of type ConfigurationAddParaTypeV1*)
NumberParaSetsOutput : UINT; (*return value: number of returned entries*)
END_STRUCT;
DownloadCmdApplicationTypeV1 : STRUCT (*application command structure*)
Version : UINT; (*used version*)
Password : STRING[16]; (*password*)
UDID_Low : UDINT; (*UDID low*)
UDID_High : UINT; (*UDID high*)
ApplicationID : UINT; (*application id*)
Device : STRING[80]; (*device for file*)
File : STRING[80]; (*file name*)
Unlock : USINT; (*unlock application*)
END_STRUCT;
DownloadCmdExtMaOpTypeV2 : STRUCT (*extended machine options command structure*)
Version : UINT; (*input data: safeVERSION_R110*)
Password : STRING[16]; (*input data: password*)
UDID_Low : UDINT; (*input data: UDID low*)
UDID_High : UINT; (*input data: UDID high*)
Unlock : USINT; (*input data: unlock data*)
pIntDataInput : UDINT; (*input data: pointer to INT input data list from type ConfigurationIntOptionsTypeV1*)
NumberIntInput : UINT; (*input data: number of INT input entries in pIntDataInput*)
pUintDataInput : UDINT; (*input data: pointer to UINT input data list from type ConfigurationUintOptionsTypeV1*)
NumberUintInput : UINT; (*input data: number of UINT input entries in pUintDataInput*)
pDintDataInput : UDINT; (*input data: pointer to DINT input data list from type ConfigurationDintOptionsTypeV1*)
NumberDintInput : UINT; (*input data: number of DINT input entries in pDintDataInput*)
pUdintDataInput : UDINT; (*input data: pointer to UDINT input data list from type ConfigurationUdintOptionsTypeV1*)
NumberUdintInput : UINT; (*input data: number of UDINT input entries in pUdintDataInput*)
pAcknMachineOptions : UDINT; (*input data: pointer to acknowledge information of type DownloadAcknMaOpTypeV1*)
pIntDataOutput : UDINT; (*input data: pointer to list of type ConfigurationIntOptionsTypeV1*)
NumberIntOutput : UINT; (*input data: number of available entries in INT buffer*)
NumberIntOutputOut : UINT; (*return value: number of returned INT data entries*)
pUintDataOutput : UDINT; (*input data: pointer to list of type ConfigurationUintOptionsTypeV1*)
NumberUintOutput : UINT; (*input data: number of available entries in UINT buffer*)
NumberUintOutputOut : UINT; (*return value: number of returned UINT data entries*)
pDintDataOutput : UDINT; (*input data: pointer to list of type ConfigurationDintOptionsTypeV1*)
NumberDintOutput : UINT; (*input data: number of available DINT data entries*)
NumberDintOutputOut : UINT; (*return value: number of returned DINT data entries*)
pUdintDataOutput : UDINT; (*input data: pointer to list of type ConfigurationUdintOptionsTypeV1*)
NumberUdintOutput : UINT; (*input data: number of available UDINT data entries*)
NumberUdintOutputOut : UINT; (*number of UDINT channels from SafeLOGIC*)
pBackupFile : UDINT; (*input data: 0 .. no backup, otherwise pointer to struct of type FileReferenceType *)
pXmlOutputFile : UDINT; (*input data: 0 .. don't create XML output data, otherwise pointer to struct of type FileReferenceType*)
END_STRUCT;
DownloadCmdExtMaOpTypeV1 : STRUCT (*return value: number of returned UDINT data entries*)
Version : UINT; (*input data: safeVERSION_R107*)
Password : STRING[16]; (*input data: password*)
UDID_Low : UDINT; (*input data: UDID low*)
UDID_High : UINT; (*input data: UDID high*)
Unlock : USINT; (*input data: unlock data*)
pIntDataInput : UDINT; (*input data: pointer to INT input data list from type ConfigurationIntOptionsTypeV1*)
NumberIntInput : UINT; (*input data: number of INT input entries in pIntDataInput*)
pUintDataInput : UDINT; (*input data: pointer to UINT input data list from type ConfigurationUintOptionsTypeV1*)
NumberUintInput : UINT; (*input data: number of UINT input entries in pUintDataInput*)
pDintDataInput : UDINT; (*input data: pointer to DINT input data list from type ConfigurationDintOptionsTypeV1*)
NumberDintInput : UINT; (*input data: number of DINT input entries in pDintDataInput*)
pUdintDataInput : UDINT; (*input data: pointer to UDINT input data list from type ConfigurationUdintOptionsTypeV1*)
NumberUdintInput : UINT; (*input data: number of UDINT input entries in pUdintDataInput*)
pAcknMachineOptions : UDINT; (*input data: pointer to acknowledge information of type DownloadAcknMaOpTypeV1*)
pIntDataOutput : UDINT; (*return value: pointer to list of type ConfigurationIntOptionsTypeV1*)
NumberIntOutput : UINT; (*return value: number of returned INT data entries*)
pUintDataOutput : UDINT; (*return value: pointer to list of type ConfigurationUintOptionsTypeV1*)
NumberUintOutput : UINT; (*return value: number of returned UINT data entries*)
pDintDataOutput : UDINT; (*return value: pointer to list of type ConfigurationDintOptionsTypeV1*)
NumberDintOutput : UINT; (*return value: number of returned DINT data entries*)
pUdintDataOutput : UDINT; (*return value: pointer to list of type ConfigurationUdintOptionsTypeV1*)
NumberUdintOutput : UINT; (*return value: number of returned UDINT data entries*)
END_STRUCT;
DownloadCmdMaOpTypeV2 : STRUCT (*machine options command structure*)
Version : UINT; (*input data: safeVERSION_R110*)
Password : STRING[16]; (*input data: password*)
UDID_Low : UDINT; (*input data: UDID low from SafeLOGIC*)
UDID_High : UINT; (*input data: UDID high from SafeLOGIC*)
Unlock : USINT; (*input data: unlock data*)
pDeviceListInput : UDINT; (*input data: pointer to input device list of type DownloadDeviceTypeV1*)
NumberDevicesInput : UINT; (*input data: number of input devices*)
pMachineOptionsInput : UDINT; (*input data: pointer to input bit machine options of type ConfigurationBitOptionsTypeV1*)
pModuleFlagsInput : UDINT; (*input data: pointer to input module flags of type ConfigurationModuleFlagsTypeV1*)
pAcknMachineOptions : UDINT; (*input data: pointer to acknowledge information of type DownloadAcknMaOpTypeV1*)
pDeviceListOutput : UDINT; (*input data: pointer to device list buffer of type ConfigurationDeviceTypeV1*)
NumberDevicesOutput : UINT; (*input data: number of available device entries in devices list buffer*)
NumberDevicesOutputOut : UINT; (*return value: number of returned device entries*)
pMachineOptionsOutput : UDINT; (*input data: pointer to bit machine options of type ConfigurationBitOptionsTypeV1*)
pModuleFlagsOutput : UDINT; (*input data: pointer to module flags of type ConfigurationModuleFlagsTypeV1*)
pBackupFile : UDINT; (*input data: 0 .. no backup, otherwise pointer to struct of type FileReferenceType *)
pXmlOutputFile : UDINT; (*input data: 0 .. don't create XML output data, otherwise pointer to struct of type FileReferenceType*)
END_STRUCT;
DownloadCmdMaOpTypeV1 : STRUCT (*machine options command structure*)
Version : UINT; (*input data: safeVERSION_R107*)
Password : STRING[16]; (*input data: password*)
UDID_Low : UDINT; (*input data: UDID low from SafeLOGIC*)
UDID_High : UINT; (*input data: UDID high from SafeLOGIC*)
Unlock : USINT; (*input data: unlock data*)
pDeviceListInput : UDINT; (*input data: pointer to input device list of type DownloadDeviceTypeV1*)
NumberDevicesInput : UINT; (*input data: number of input devices*)
pMachineOptionsInput : UDINT; (*input data: pointer to input bit machine options of type ConfigurationBitOptionsTypeV1*)
pModuleFlagsInput : UDINT; (*input data: pointer to input module flags of type ConfigurationModuleFlagsTypeV1*)
pAcknMachineOptions : UDINT; (*input data: pointer to acknowledge information of type DownloadAcknMaOpTypeV1*)
pDeviceListOutput : UDINT; (*return value: pointer to device list of type ConfigurationDeviceTypeV1*)
NumberDevicesOutput : UINT; (*return value: number of returned entries*)
pMachineOptionsOutput : UDINT; (*return value: pointer to bit machine options of type ConfigurationBitOptionsTypeV1*)
pModuleFlagsOutput : UDINT; (*return value: pointer to module flags of type ConfigurationModuleFlagsTypeV1*)
END_STRUCT;
DownloadCmdTableTypeV2 : STRUCT (*table command structure*)
Version : UINT; (*input data: safeVERSION_R110*)
Password : STRING[16]; (*input data: password*)
UDID_Low : UDINT; (*input data: UDID low*)
UDID_High : UINT; (*input data: UDID high*)
Unlock : USINT; (*input data: unlock data*)
pTableDataInput : UDINT; (*input data: pointer to input table data list of type DownloadTableTypeV2*)
NumberTablesInput : UINT; (*input data: number of input entries in pTableDataInput*)
pTableDataOutput : UDINT; (*input data: pointer to list of type ConfigurationTableTypeV1*)
NumberTablesOutput : UINT; (*input data: number of available entries in pTableDataOutput*)
NumberTablesOutputOut : UINT; (*return value: number of returned table entries*)
pBackupFile : UDINT; (*input data: 0 .. no backup, otherwise pointer to struct of type FileReferenceType *)
pXmlOutputFile : UDINT; (*input data: 0 .. don't create XML output data, otherwise pointer to struct of type FileReferenceType*)
END_STRUCT;
DownloadCmdTableTypeV1 : STRUCT (*table command structure*)
Version : UINT; (*input data: safeVERSION_R107*)
Password : STRING[16]; (*input data: password*)
UDID_Low : UDINT; (*input data: UDID low*)
UDID_High : UINT; (*input data: UDID high*)
Unlock : USINT; (*input data: unlock data*)
pTableDataInput : UDINT; (*input data: pointer to input table data list of type DownloadTableTypeV1*)
NumberTablesInput : UINT; (*input data: number of input entries in pTableDataInput*)
pTableDataOutput : UDINT; (*return value: pointer to list of type ConfigurationTableTypeV1*)
NumberTablesOutput : UINT; (*return value: number of returned table entries*)
END_STRUCT;
DownloadCmdFileTypeV1 : STRUCT (*file command structure*)
Version : UINT; (*used version*)
Password : STRING[16]; (*password*)
UDID_Low : UDINT; (*UDID low*)
UDID_High : UINT; (*UDID high*)
Unlock : USINT; (*unlock data*)
DataSource : DataSourceTypeV1; (*local data or local file available, file upload from safeLOGIC not available*)
pCrcs : UDINT; (*pointer to CRC data buffer*)
NumberOfCrcs : UINT; (*size of CRC data Buffer*)
NumberOfCrcsOut : UINT; (*number of CRCs*)
END_STRUCT;
DownloadAddParaTypeV1 : STRUCT (*additional parameter data*)
SADR : UINT; (*safety address*)
ID : USINT; (*id*)
pParaData : UDINT; (*pointer to additional parameter data*)
Length : UDINT; (*length*)
pAcknAddPara : UDINT; (*pointer to acknowledge information*)
END_STRUCT;
DownloadDeviceTypeV1 : STRUCT (*safety device*)
SADR : UINT; (*safety address*)
UDID_Low : UDINT; (*UDID low*)
UDID_High : UINT; (*UDID high*)
END_STRUCT;
DownloadTableTypeV1 : STRUCT (*table data*)
Device : STRING[80]; (*device for file*)
File : STRING[80]; (*file name*)
END_STRUCT;
DownloadTableTypeV2 : STRUCT (*table data*)
Type : UINT; (*safeTABLE_FILE_TYPE .. use Device / File, safeTABLE_DATA_TYPE .. use pData / DataLen*)
Device : STRING[80]; (*device for file*)
File : STRING[80]; (*file name*)
pData : UDINT; (*pointer to table data *)
DataLen : UDINT; (*length of table data*)
END_STRUCT;
RemoteControlCmdTypeV1 : STRUCT (*remote control command structure*)
Version : UINT; (*used version*)
Command : UINT; (*command*)
Number : UINT; (*actual number*)
Data : UINT; (*data*)
Password : STRING[16]; (*password*)
NewPassword : STRING[16]; (*new password*)
END_STRUCT;
RemoteControlStatusTypeV1 : STRUCT (*remote control status from SafeLOGIC*)
Command : UINT; (*last received command*)
Number : UINT; (*running number of last received command*)
Status : UINT; (*status of command*)
State : UINT; (*state of the last ENTER command*)
EnterData : UINT; (*last received ENTER command that was correct executed*)
EnterNumber : UINT; (*running number of the last received ENTER command*)
EnterExecuteStatus : UINT; (*state of the last received ENTER command*)
SafeOSState : USINT; (*status of the safety application*)
SafeKEYChanged : USINT; (*SafeKEY has been exchanged*)
LedTestActive : USINT; (*LED test active*)
Scanning : USINT; (*module scan active*)
openSAFETYstate : USINT; (*status of openSAFETY stack*)
FailSafe : USINT; (*Fail-Safe status*)
NumberOfMissingModules : UINT; (*number of missing modules*)
NumberOfUDIDMismatches : UINT; (*number of mismatched modules*)
NumberOfDifferentFirmware : UINT; (*number of modules with different firmware*)
SADR : ARRAY[0..100]OF UINT; (*safety address array*)
MissingModules : ARRAY[0..15]OF USINT; (*missing modules array*)
UDIDMismatches : ARRAY[0..15]OF USINT; (*udid mismatch array*)
DifferentFirmware : ARRAY[0..15]OF USINT; (*different firmware array*)
END_STRUCT;
RemoteControlStatusTypeV2 : STRUCT (*remote control status from SafeLOGIC*)
Command : UINT; (*last received command*)
Number : UINT; (*running number of last received command*)
Status : UINT; (*status of command*)
State : UINT; (*state of the last ENTER command*)
EnterData : UINT; (*last received ENTER command that was correct executed*)
EnterNumber : UINT; (*running number of the last received ENTER command*)
EnterExecuteStatus : UINT; (*state of the last received ENTER command*)
SafeOSState : USINT; (*status of the safety application*)
SafeKEYChanged : USINT; (*SafeKEY has been exchanged*)
LedTestActive : USINT; (*LED test active*)
Scanning : USINT; (*module scan active*)
openSAFETYstate : USINT; (*status of openSAFETY stack*)
FailSafe : USINT; (*Fail-Safe status*)
NumberOfMissingModules : UINT; (*number of missing modules*)
NumberOfUDIDMismatches : UINT; (*number of mismatched modules*)
NumberOfDifferentFirmware : UINT; (*number of modules with different firmware*)
SADR : ARRAY[0..299]OF UINT; (*safety address array*)
MissingModules : ARRAY[0..39]OF USINT; (*missing modules array*)
UDIDMismatches : ARRAY[0..39]OF USINT; (*udid mismatch array*)
DifferentFirmware : ARRAY[0..39]OF USINT; (*different firmware array*)
NumberOfConfiguredModules : UINT; (*number of configured modules*)
SetupModeActive : USINT; (*setup mode active*)
ProjectPresent : USINT; (*project present*)
PasswordSet : USINT; (*password set*)
IsSL81xx : USINT; (*SCM is part of SL81xx*)
IsSCMar : USINT; (*SCM is part of SCMar*)
SetupModeSupported : USINT; (*setup mode is supported*)
END_STRUCT;
TableHeaderATypeV1 : STRUCT (*header struct for table type A version 1*)
xTol : DINT;
yTol : DINT;
END_STRUCT;
TableEntryATypeV1 : STRUCT (*entry struct for table type A version 1*)
xVal : DINT;
yVal : DINT;
resVal : USINT;
END_STRUCT;
TableEntryBTypeV1 : STRUCT (*entry struct for table type B version 1*)
xVal : DINT;
yVal : DINT;
zVal : DINT;
resVal : DINT;
END_STRUCT;
TableEntryCTypeV1 : STRUCT (*entry struct for table type C version 1*)
Zone : UINT;
Position : UINT;
Dimension : UINT;
END_STRUCT;
TableHeaderDTypeV1 : STRUCT (*header struct for table type A version 1*)
Surveillance : BYTE;
END_STRUCT;
TableEntryDTypeV1 : STRUCT (*entry struct for table type D version 1*)
Object : UINT;
Type : UINT;
MinimumBeam : UINT;
MaximumBeam : UINT;
Dimension : UINT;
DimensionTolerance : UINT;
END_STRUCT;
TableHeaderETypeV1 : STRUCT (*header struct for table type E version 1*)
xDim : INT;
yDim : INT;
END_STRUCT;
TableEntryETypeV1 : STRUCT (*entry struct for table type D version 1*)
Entry : DINT;
END_STRUCT;
TableEntrySTypeV1 : STRUCT (*entry struct for table type S version 1*)
LinkTargetObjectID : DINT;
LinkTargetAxisType : DINT;
LinkSourceObjectID : DINT;
LinkSourceAxisType : DINT;
LinkFactorNum : DINT;
LinkFactorDenom : DINT;
END_STRUCT;
TableHeaderTTypeV1 : STRUCT (*header struct for table type T version 1*)
NumberOfActiveAxes : DINT; (*number of active axes*)
END_STRUCT;
TableEntryTTypeV1 : STRUCT (*entry struct for table type T version 1*)
KinObjID : DINT;
KinObjType : DINT;
KinObjTransX : DINT;
KinObjTransY : DINT;
KinObjTransZ : DINT;
KinObjRotAngle1 : DINT;
KinObjRotAngle2 : DINT;
KinObjRotAngle3 : DINT;
KinObjRotaryAxisDecRamp : DINT;
KinObjRotaryAxisMaxAcc : DINT;
KinObjLinearAxisDecRamp : DINT;
KinObjLinearAxisMaxAcc : DINT;
END_STRUCT;
TableHeaderTTypeV2 : STRUCT (*header struct for table type T version 2*)
NumberOfTableObjects : UINT;
VersionNumber : UINT;
NumberOfActiveAxes : DINT;
END_STRUCT;
TableEntryTTypeV2 : STRUCT (*entry struct for table type T version 2*)
KinObjID : DINT;
KinObjType : DINT;
KinObjTransX : DINT;
KinObjTransY : DINT;
KinObjTransZ : DINT;
KinObjRotAngle1 : DINT;
KinObjRotAngle2 : DINT;
KinObjRotAngle3 : DINT;
KinObjRotaryAxisDecRamp : DINT;
KinObjRotaryAxisMaxAcc : DINT;
KinObjLinearAxisDecRamp : DINT;
KinObjLinearAxisMaxAcc : DINT;
KinObjActivateWireFrameModel : DINT;
KinObjDistanceToBndElements : DINT;
END_STRUCT;
TableHeaderTTypeV3 : STRUCT (*header struct for table type T version 3*)
NumberOfTableObjects : UINT;
VersionNumber : UINT;
NumberOfActiveAxes : DINT;
END_STRUCT;
TableEntryTTypeV3 : STRUCT (*entry struct for table type T version 3*)
KinObjID : DINT;
KinObjType : DINT;
KinObjTransX : DINT;
KinObjTransY : DINT;
KinObjTransZ : DINT;
KinObjRotAngle1 : DINT;
KinObjRotAngle2 : DINT;
KinObjRotAngle3 : DINT;
KinObjRotaryAxisDecRamp : DINT;
KinObjRotaryAxisMaxAcc : DINT;
KinObjLinearAxisDecRamp : DINT;
KinObjLinearAxisMaxAcc : DINT;
KinObjActivateWireFrameModel : DINT;
KinObjDistanceToBndElements : DINT;
END_STRUCT;
TableEntryUTypeV1 : STRUCT (*entry struct for table type U version 1*)
SpaceID : DINT;
SpaceType : DINT;
SpaceTransX : DINT;
SpaceTransY : DINT;
SpaceTransZ : DINT;
SpaceRotAngle1 : DINT;
SpaceRotAngle2 : DINT;
SpaceRotAngle3 : DINT;
SpaceDimensionX : DINT;
SpaceDimensionY : DINT;
SpaceDimensionZ : DINT;
END_STRUCT;
TableEntryVTypeV1 : STRUCT (*entry struct for table type V version 1*)
SpaceID : DINT;
SpaceType : DINT;
KinObjID : DINT;
KinObjJointAxisType : DINT;
SpaceMaxLimit : DINT;
SpaceMinLimit : DINT;
END_STRUCT;
TableEntryWTypeV1 : STRUCT (* entry struct for table type W version 1*)
OrientID : DINT;
OrientType : DINT;
OrientTransX_RotAngle1 : DINT;
OrientTransY_RotAngle2 : DINT;
OrientTransZ_RotAngle3 : DINT;
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,87 @@
VAR CONSTANT
safeVERSION_R107 : UINT := 16#107; (*safety release version - 1.7*)
safeVERSION_R110 : UINT := 16#110; (*safety release version - 1.10*)
safeDATA_TYPE_MAOP : UINT := 16#100; (*download type for machine options *)
safeDATA_TYPE_EXTMAOP : UINT := 16#200; (*download type for extended machine options *)
safeDATA_TYPE_TABLE : UINT := 16#300; (*download type for table objects *)
safeDATA_TYPE_ADDPARA : UINT := 16#400; (*download type for additional parameter*)
safeDATA_TYPE_APPLICATION : UINT := 16#1200; (*type for restore*)
safeINFO_TYPE_PWD_INFO : UINT := 1; (*SL info type for password info*)
safeINFO_TYPE_PWD_CHK : UINT := 2; (*SL info type for password check*)
safeTABLE_FILE_TYPE : UINT := 16#0000; (*reference to table file*)
safeTABLE_DATA_TYPE : UINT := 16#0001; (*pointer to table data*)
safeSRC_TYPE_UPLOAD_FILE : UINT := 0; (*file upload from SafeLOGIC*)
safeSRC_TYPE_LOCAL_DATA : UINT := 1; (*local data from memory buffer*)
safeSRC_TYPE_LOCAL_FILE : UINT := 2; (*local data from file*)
safeCMD_ENTER : UINT := 16#100; (*enter command*)
safeCMD_STATUS : UINT := 16#200; (*status command*)
safeCMD_STATUS_SL : UINT := 16#0000; (*read back status*)
safeCMD_N_UDID_ACKN : UINT := 16#20; (*acknowledge N modules*)
safeCMD_4_UDID_ACKN : UINT := 16#30; (*acknowledge 4 modules*)
safeCMD_3_UDID_ACKN : UINT := 16#40; (*acknowledge 3 modules*)
safeCMD_2_UDID_ACKN : UINT := 16#50; (*acknowledge 2 modules*)
safeCMD_1_UDID_ACKN : UINT := 16#60; (*acknowledge 1 module*)
safeCMD_FW_ACKN : UINT := 16#100; (*acknowledge firmware*)
safeCMD_SK_XCHG : UINT := 16#200; (*acknowledge SafeKEY*)
safeCMD_TEST : UINT := 16#1000; (*LED test*)
safeCMD_SCAN : UINT := 16#2000; (*scan*)
safeCMD_SK_PW : UINT := 16#5000; (*change password*)
safeCMD_SK_FORMAT : UINT := 16#6000; (*format SafeKEY*)
safeCMD_RESET : UINT := 16#7000; (*reset SafeLOGIC*)
safeCMD_CLEAR_DATA : UINT := 16#8000; (*clear additonal downloaded data*)
safeCMD_SETUP_MODE_ACT : UINT := 16#9000; (*activate setup mode*)
safeCMD_SETUP_MODE_DEACT : UINT := 16#9100; (*deactivate setup mode*)
safeCMD_VERSION_INFO : UINT := 16#F000; (*remote version info*)
safeRET_NO_TIMESTAMP : UDINT := 16#FFFFFFFF; (*no timestamp available*)
safeERR_VERSION : UINT := 36100; (*error wrong version for command structure*)
safeERR_PW_LENGTH : UINT := 36101; (*error wrong password length*)
safeERR_UDID : UINT := 36102; (*error no UDID*)
safeERR_ALLOC_MEM : UINT := 36103; (*error allocating memory*)
safeERR_INTERNAL_ERROR : UINT := 36104; (*internal error*)
safeERR_TIMEOUT : UINT := 36105; (*error connection timeout*)
safeERR_RC_CMD : UINT := 36106; (*error wrong command*)
safeERR_RC_ENTER_DATA : UINT := 36107; (*error wrong data for ENTER command*)
safeERR_RC_ENTER_PW : UINT := 36108; (*error no password for command*)
safeERR_RC_ENTER_SK_PW : UINT := 36109; (*error no new password for command*)
safeERR_RC_STATUS_DATA : UINT := 36110; (*error wrong data for STATUS command*)
safeERR_RC_DATA_LENGTH : UINT := 36111; (*error worng length for status data*)
safeERR_DL_NO_PASSWORD : UINT := 36112; (*error no password for download*)
safeERR_DL_PROTOCOL : UINT := 36113; (*error protocol version for download*)
safeERR_DL_FILE_OPEN : UINT := 36114; (*error file open*)
safeERR_DL_FILE_INVALID : UINT := 36115; (*error file invalid*)
safeERR_DL_FILE_TOO_BIG : UINT := 36116; (*error file too big*)
safeERR_DL_WRITE : UINT := 36117; (*error write*)
safeERR_DL_STREAM : UINT := 36118; (*error stream*)
safeERR_DL_CHECKSUM : UINT := 36119; (*error checksum*)
safeERR_DL_UDID : UINT := 36120; (*error UDID doesn't match*)
safeERR_DL_WRONG_FILE_SIZE : UINT := 36121; (*error wrong file size*)
safeERR_DL_NO_RIGHTS_TO_WRITE : UINT := 36122; (*error wrong password*)
safeERR_DL_UNLOCK_FILE_INFO : UINT := 36123; (*error file info*)
safeERR_DL_UNLOCK_READ : UINT := 36124; (*error unlock read*)
safeERR_DL_UNLOCK_WRITE : UINT := 36125; (*error unlock write*)
safeERR_DL_STATIC_UNLOCK : UINT := 36126; (*error static unlock*)
safeERR_DL_COMPARE_FAILED : UINT := 36127; (*error data compare failed*)
safeERR_DLDATA_TYPE_ERR : UINT := 36128; (*error data type for download*)
safeERR_DLDATA_ERR_DATA : UINT := 36129; (*error data for download*)
safeERR_COT_TYPE_ERR : UINT := 36130; (*error data type for upload*)
safeERR_COT_READING_FILE : UINT := 36131; (*error reading file*)
safeERR_BUFFER_NULL : UINT := 36132; (*required input buffer is NULL*)
safeERR_BUFFER_TOO_SMALL : UINT := 36133; (*required input buffer is too small*)
safeERR_FILE_EMPTY : UINT := 36134; (*file is empty or does not exist on SL/SLX*)
safeERR_FI_TYPE_ERR : UINT := 36135; (*error data type for getting file info*)
safeERR_SLINFO_TYPE_ERR : UINT := 36136; (*error data type for SL info*)
safeERR_SLINFO_RET_ERR : UINT := 36137; (*remote command returns error*)
safeERR_COT_PWD_ERR : UINT := 36138; (*wrong password for configuration on target command*)
safeERR_TC_INV_TABTYPE : UINT := 36180; (*invalid table type*)
safeERR_TC_INV_INST : UINT := 36181; (*invalid table instance*)
safeERR_TC_INV_INPUT_PTR : UINT := 36182; (*invalid input pointer*)
safeERR_TC_INV_TAB_LEN : UINT := 36183; (*invalid table length*)
safeERR_TC_INV_USER : UINT := 36184; (*invalid user name*)
safeERR_TC_TYPE_CPY_FCT : UINT := 36185; (*no copy function for table type*)
safeWRN_TC_WAIT_FOR_ACK : UINT := 36191; (*wait for acknowledge of tables*)
safeERR_TC_CHECK_FAILED : UINT := 36186; (*table check failed*)
safeERR_TC_EXTRACT_FAILED : UINT := 36187; (*extraction of output table data failed*)
safeERR_TC_LOCK_FAILED : UINT := 36188; (*table lock failed*)
safeERR_TC_ACK_SET : UINT := 36189; (*AckData is already set*)
safeERR_TC_INVALID_STEP : UINT := 36190; (*invalid step in table check*)
END_VAR

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.4.7.144 SP?>
<Library Description="The AsSafety library provides function blocks for the safety system." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsSafety.fun</File>
<File>AsSafety.typ</File>
<File>AsSafety.var</File>
</Files>
<Dependencies>
<Dependency ObjectName="standard" />
<Dependency ObjectName="FileIO" />
<Dependency ObjectName="astime" />
<Dependency ObjectName="DataObj" />
<Dependency ObjectName="AsXml" />
</Dependencies>
</Library>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,264 @@
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlCreateMemoryReader (*creates an xml memory reader*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pXmlMemory : UDINT; (*pointer to the XML data*)
memorySize : UDINT; (*size of the XML data*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
ident : UDINT; (*identifier*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlCloseMemoryReader (*closes the xml memory reader*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlReadNextNode (*reads the next XML node*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
forceRead : BOOL; (*reads next Node even if last node could not be read successfully*)
skipSubtree : BOOL; (*avoids XML nodes in the subtree*)
pName : UDINT; (*pointer to buffer for the XML node name*)
nameSize : UDINT; (*size of the buffer for the XML node name*)
pValue : UDINT; (*pointer to buffer for the XML node value*)
valueSize : UDINT; (*size of the buffer for the XML node value*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
nodeType : UDINT; (*type of the XML node*)
depth : UDINT; (*depth of the XML node*)
isEmpty : BOOL; (*empty XML node?*)
attributeCount : UDINT; (*number of attributes*)
neededNameSize : UDINT; (*needed name buffer size*)
neededValueSize : UDINT; (*needed value buffer size*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlReadAttributeNr (*reads the next attribute of the XML node*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
index : UDINT; (*index of the attribute to read*)
pName : UDINT; (*pointer to buffer for the attribute name*)
nameSize : UDINT; (*size of the buffer for the XML attribute name*)
pValue : UDINT; (*pointer to buffer for the attribute value*)
valueSize : UDINT; (*size of the buffer for the XML attribute value*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
neededNameSize : UDINT; (*needed name buffer size*)
neededValueSize : UDINT; (*needed value buffer size*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlCreateMemoryWriter (*creates an xml memory writer*)
VAR_INPUT
enable : BOOL; (*enables execution*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
ident : UDINT; (*identifier*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlGetMemoryInfo (*gets the pointer to and the size of the created XML data*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)
pXmlData : UDINT; (*pointer to the created XML data*)
xmlDataSize : UDINT; (*size of the created XML data*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlCloseMemoryWriter (*closes the xml memory writer and releases the allocated memory*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlWriteStartDocument (*writes the version and the encoding of the document*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
pVersion : UDINT; (*pointer to the version*)
pEncoding : UDINT; (*pointer to the encoding*)
pStandalone : UDINT; (*pointer to the standalone text*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlWriteStartDocEnc (*writes the version and the encoding of the document and sets the input encoding*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
pVersion : UDINT; (*pointer to the version*)
pInputEncoding : UDINT; (*pointer to the input encoding e.g. "ISO-8859-1"*)
pOutputEncoding : UDINT; (*pointer to the output encoding e.g. "UTF-8"*)
pStandalone : UDINT; (*pointer to the standalone text*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlWriteEndDocument (*finishes the document*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlWriteStartElement (*starts a new XML element*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
pName : UDINT; (*pointer to the XML element name*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlWriteAttribute (*adds an attribute to the current XML element*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
pName : UDINT; (*pointer to the XML attribute name*)
pValue : UDINT; (*pointer to the XML attribute value*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlWriteElementText (*writes an XML element text*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
pText : UDINT; (*pointer to the element text*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlWriteElementTextEx (*writes an XML element text*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
pText : UDINT; (*pointer to the element text*)
textLen : UDINT; (*length of the element text*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlWriteEndElement (*closes the current XML element*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlWriteComment (*writes an XML comment*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
pText : UDINT; (*pointer to the comment text*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlWriteCommentEx (*writes an XML comment*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
pText : UDINT; (*pointer to the comment text*)
textLen : UDINT; (*length of the comment text*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlWriteCData (*writes an XML CDATA Section*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
pCData : UDINT; (*pointer to the CDATA data*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlWriteCDataEx (*writes an XML CDATA Section*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
pCData : UDINT; (*pointer to the CDATA*)
cdataLen : UDINT; (*length of the CDATA*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK xmlWritePI (*writes an XML process instruction*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier*)
pTarget : UDINT; (*pointer to the process instruction*)
pValue : UDINT; (*pointer to the pi value*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK

View File

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

View File

@@ -0,0 +1,29 @@
VAR CONSTANT
xmlERR_MEMORY : UINT := 33810; (*memory error*)
xmlERR_INVALID_PARAMETER : UINT := 33811; (*wrong parameter or nullpointer given*)
xmlERR_GENERAL : UINT := 33812; (*general XML error*)
xmlERR_NO_FURTHER_XML_NODE : UINT := 33813; (*no further XML node available*)
xmlERR_NAME_BUFFER_TOO_SMALL: UINT := 33814; (*buffer for name too small*)
xmlERR_VALUE_BUFFER_TOO_SMALL: UINT := 33815; (*buffer for value too small*)
xmlERR_INVALID_ATTRIBUTE_INDEX: UINT := 33816; (*invalid attribute index*)
xmlERR_NO_ATTRIBUTES : UINT := 33817; (*no attribute available*)
xmlERR_XML_DATA_INVALID : UINT := 33818; (*xml data is invalid*)
xmlERR_INVALID_IDENT : UINT := 33819; (*error identifier invalid*)
xmlERR_NO_ELEMENT_OPEN : UINT := 33820; (*no open XML element where to put the attribute*)
xmlERR_INVALID_POSITION : UINT := 33821; (*invalid position for this node*)
xmlERR_CONVERT : UINT := 33822; (*error during converting text*)
xmlERR_CONVERT_TEXT : UINT := 33823; (*error converting text*)
xmlERR_UNSUPPORTED_ENCODING : UINT := 33824; (*unsupported encoding*)
xmlERR_DOCUMENT_NOT_OPEN : UINT := 33825; (*XML document not open*)
xmlNODE_TYPE_ELEMENT : UINT := 1; (*XML element node*)
xmlNODE_TYPE_TEXT : UINT := 3; (*XML element text*)
xmlNODE_TYPE_CDATA : UINT := 4; (*XML CDATA section*)
xmlNODE_TYPE_PI : UINT := 7; (*XML process instruction node*)
xmlNODE_TYPE_COMMENT : UINT := 8; (*XML comment*)
xmlNODE_TYPE_WHITESPACE : UINT := 13; (*XML white space*)
xmlNODE_TYPE_SIGN_WHITESPACE: UINT := 14; (*XML significant white space*)
xmlNODE_TYPE_ENDELEMENT : UINT := 15; (*XML end element node*)
END_VAR

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.4.7.144 SP?>
<Library Description="The AsXml library supports reading and writing of XML files." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>AsXml.fun</File>
<File>AsXml.typ</File>
<File>AsXml.var</File>
</Files>
</Library>

View File

@@ -0,0 +1,349 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _ASXML_
#define _ASXML_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#ifndef _BUR_PUBLIC
#define _BUR_PUBLIC
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define xmlNODE_TYPE_ENDELEMENT 15U
#define xmlNODE_TYPE_SIGN_WHITESPACE 14U
#define xmlNODE_TYPE_WHITESPACE 13U
#define xmlNODE_TYPE_COMMENT 8U
#define xmlNODE_TYPE_PI 7U
#define xmlNODE_TYPE_CDATA 4U
#define xmlNODE_TYPE_TEXT 3U
#define xmlNODE_TYPE_ELEMENT 1U
#define xmlERR_DOCUMENT_NOT_OPEN 33825U
#define xmlERR_UNSUPPORTED_ENCODING 33824U
#define xmlERR_CONVERT_TEXT 33823U
#define xmlERR_CONVERT 33822U
#define xmlERR_INVALID_POSITION 33821U
#define xmlERR_NO_ELEMENT_OPEN 33820U
#define xmlERR_INVALID_IDENT 33819U
#define xmlERR_XML_DATA_INVALID 33818U
#define xmlERR_NO_ATTRIBUTES 33817U
#define xmlERR_INVALID_ATTRIBUTE_INDEX 33816U
#define xmlERR_VALUE_BUFFER_TOO_SMALL 33815U
#define xmlERR_NAME_BUFFER_TOO_SMALL 33814U
#define xmlERR_NO_FURTHER_XML_NODE 33813U
#define xmlERR_GENERAL 33812U
#define xmlERR_INVALID_PARAMETER 33811U
#define xmlERR_MEMORY 33810U
#else
#ifndef _GLOBAL_CONST
#define _GLOBAL_CONST _WEAK const
#endif
_GLOBAL_CONST unsigned short xmlNODE_TYPE_ENDELEMENT;
_GLOBAL_CONST unsigned short xmlNODE_TYPE_SIGN_WHITESPACE;
_GLOBAL_CONST unsigned short xmlNODE_TYPE_WHITESPACE;
_GLOBAL_CONST unsigned short xmlNODE_TYPE_COMMENT;
_GLOBAL_CONST unsigned short xmlNODE_TYPE_PI;
_GLOBAL_CONST unsigned short xmlNODE_TYPE_CDATA;
_GLOBAL_CONST unsigned short xmlNODE_TYPE_TEXT;
_GLOBAL_CONST unsigned short xmlNODE_TYPE_ELEMENT;
_GLOBAL_CONST unsigned short xmlERR_DOCUMENT_NOT_OPEN;
_GLOBAL_CONST unsigned short xmlERR_UNSUPPORTED_ENCODING;
_GLOBAL_CONST unsigned short xmlERR_CONVERT_TEXT;
_GLOBAL_CONST unsigned short xmlERR_CONVERT;
_GLOBAL_CONST unsigned short xmlERR_INVALID_POSITION;
_GLOBAL_CONST unsigned short xmlERR_NO_ELEMENT_OPEN;
_GLOBAL_CONST unsigned short xmlERR_INVALID_IDENT;
_GLOBAL_CONST unsigned short xmlERR_XML_DATA_INVALID;
_GLOBAL_CONST unsigned short xmlERR_NO_ATTRIBUTES;
_GLOBAL_CONST unsigned short xmlERR_INVALID_ATTRIBUTE_INDEX;
_GLOBAL_CONST unsigned short xmlERR_VALUE_BUFFER_TOO_SMALL;
_GLOBAL_CONST unsigned short xmlERR_NAME_BUFFER_TOO_SMALL;
_GLOBAL_CONST unsigned short xmlERR_NO_FURTHER_XML_NODE;
_GLOBAL_CONST unsigned short xmlERR_GENERAL;
_GLOBAL_CONST unsigned short xmlERR_INVALID_PARAMETER;
_GLOBAL_CONST unsigned short xmlERR_MEMORY;
#endif
/* Datatypes and datatypes of function blocks */
typedef struct xmlCreateMemoryReader
{
/* VAR_INPUT (analog) */
unsigned long pXmlMemory;
unsigned long memorySize;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long ident;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlCreateMemoryReader_typ;
typedef struct xmlCloseMemoryReader
{
/* VAR_INPUT (analog) */
unsigned long ident;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlCloseMemoryReader_typ;
typedef struct xmlReadNextNode
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long pName;
unsigned long nameSize;
unsigned long pValue;
unsigned long valueSize;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long nodeType;
unsigned long depth;
unsigned long attributeCount;
unsigned long neededNameSize;
unsigned long neededValueSize;
/* VAR_INPUT (digital) */
plcbit enable;
plcbit forceRead;
plcbit skipSubtree;
/* VAR_OUTPUT (digital) */
plcbit isEmpty;
} xmlReadNextNode_typ;
typedef struct xmlReadAttributeNr
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long index;
unsigned long pName;
unsigned long nameSize;
unsigned long pValue;
unsigned long valueSize;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long neededNameSize;
unsigned long neededValueSize;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlReadAttributeNr_typ;
typedef struct xmlCreateMemoryWriter
{
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long ident;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlCreateMemoryWriter_typ;
typedef struct xmlGetMemoryInfo
{
/* VAR_INPUT (analog) */
unsigned long ident;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long pXmlData;
unsigned long xmlDataSize;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlGetMemoryInfo_typ;
typedef struct xmlCloseMemoryWriter
{
/* VAR_INPUT (analog) */
unsigned long ident;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlCloseMemoryWriter_typ;
typedef struct xmlWriteStartDocument
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long pVersion;
unsigned long pEncoding;
unsigned long pStandalone;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlWriteStartDocument_typ;
typedef struct xmlWriteStartDocEnc
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long pVersion;
unsigned long pInputEncoding;
unsigned long pOutputEncoding;
unsigned long pStandalone;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlWriteStartDocEnc_typ;
typedef struct xmlWriteEndDocument
{
/* VAR_INPUT (analog) */
unsigned long ident;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlWriteEndDocument_typ;
typedef struct xmlWriteStartElement
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long pName;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlWriteStartElement_typ;
typedef struct xmlWriteAttribute
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long pName;
unsigned long pValue;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlWriteAttribute_typ;
typedef struct xmlWriteElementText
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long pText;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlWriteElementText_typ;
typedef struct xmlWriteElementTextEx
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long pText;
unsigned long textLen;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlWriteElementTextEx_typ;
typedef struct xmlWriteEndElement
{
/* VAR_INPUT (analog) */
unsigned long ident;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlWriteEndElement_typ;
typedef struct xmlWriteComment
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long pText;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlWriteComment_typ;
typedef struct xmlWriteCommentEx
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long pText;
unsigned long textLen;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlWriteCommentEx_typ;
typedef struct xmlWriteCData
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long pCData;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlWriteCData_typ;
typedef struct xmlWriteCDataEx
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long pCData;
unsigned long cdataLen;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlWriteCDataEx_typ;
typedef struct xmlWritePI
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long pTarget;
unsigned long pValue;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR_INPUT (digital) */
plcbit enable;
} xmlWritePI_typ;
/* Prototyping of functions and function blocks */
_BUR_PUBLIC void xmlCreateMemoryReader(struct xmlCreateMemoryReader* inst);
_BUR_PUBLIC void xmlCloseMemoryReader(struct xmlCloseMemoryReader* inst);
_BUR_PUBLIC void xmlReadNextNode(struct xmlReadNextNode* inst);
_BUR_PUBLIC void xmlReadAttributeNr(struct xmlReadAttributeNr* inst);
_BUR_PUBLIC void xmlCreateMemoryWriter(struct xmlCreateMemoryWriter* inst);
_BUR_PUBLIC void xmlGetMemoryInfo(struct xmlGetMemoryInfo* inst);
_BUR_PUBLIC void xmlCloseMemoryWriter(struct xmlCloseMemoryWriter* inst);
_BUR_PUBLIC void xmlWriteStartDocument(struct xmlWriteStartDocument* inst);
_BUR_PUBLIC void xmlWriteStartDocEnc(struct xmlWriteStartDocEnc* inst);
_BUR_PUBLIC void xmlWriteEndDocument(struct xmlWriteEndDocument* inst);
_BUR_PUBLIC void xmlWriteStartElement(struct xmlWriteStartElement* inst);
_BUR_PUBLIC void xmlWriteAttribute(struct xmlWriteAttribute* inst);
_BUR_PUBLIC void xmlWriteElementText(struct xmlWriteElementText* inst);
_BUR_PUBLIC void xmlWriteElementTextEx(struct xmlWriteElementTextEx* inst);
_BUR_PUBLIC void xmlWriteEndElement(struct xmlWriteEndElement* inst);
_BUR_PUBLIC void xmlWriteComment(struct xmlWriteComment* inst);
_BUR_PUBLIC void xmlWriteCommentEx(struct xmlWriteCommentEx* inst);
_BUR_PUBLIC void xmlWriteCData(struct xmlWriteCData* inst);
_BUR_PUBLIC void xmlWriteCDataEx(struct xmlWriteCDataEx* inst);
_BUR_PUBLIC void xmlWritePI(struct xmlWritePI* inst);
#ifdef __cplusplus
};
#endif
#endif /* _ASXML_ */

View File

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

View 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

View File

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

View 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

View 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_ */

View 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_ */

View 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_ */

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.4.7.144 SP?>
<Library Description="The FileIO library provides function blocks for file handling." xmlns="http://br-automation.co.at/AS/Library">
<Files>
<File>FileIO.fun</File>
<File>FileIO.typ</File>
<File>FileIO.var</File>
</Files>
<Dependencies>
<Dependency ObjectName="runtime" />
</Dependencies>
</Library>

View File

@@ -0,0 +1,561 @@
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FileCreate (*creates a file; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pFile : UDINT; (*pointer to the file name*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
ident : UDINT; (*identifier of the created file*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FileOpen (*opens a file; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pFile : UDINT; (*pointer to the file name*)
mode : USINT; (*access mode (FILE_R, FILE_W, FILE_RW)*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
ident : UDINT; (*identifier of the created file*)
filelen : UDINT; (*file length*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FileClose (*closes an open file; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier of the created file*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FileRead (*reads from an open file; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier of the created file*)
offset : UDINT; (*offset*)
pDest : UDINT; (*pointer to the read buffer*)
len : UDINT; (*length of bytes to read*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FileReadEx (*reads from an open file and returns the number of actually read bytes; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier of the created file*)
offset : UDINT; (*offset*)
pDest : UDINT; (*pointer to the read buffer*)
len : UDINT; (*number of bytes to read*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
bytesread : UDINT; (*number of bytes read*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FileWrite (*writes to a file; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier of the created file*)
offset : UDINT; (*offset*)
pSrc : UDINT; (*pointer to the write buffer*)
len : UDINT; (*number of bytes to write*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FileWriteEx (*writes to a file; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier of the created file*)
offset : UDINT; (*offset*)
pSrc : UDINT; (*pointer to the write buffer*)
len : UDINT; (*number of bytes to write*)
option : UDINT; (*options*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FileRename (*renames files; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pName : UDINT; (*pointer to the file name*)
pNewName : UDINT; (*pointer to the new file name*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FileCopy (*copies a file; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pSrcDev : UDINT; (*pointer to the source file device name*)
pSrc : UDINT; (*pointer to the existing file name*)
pDestDev : UDINT; (*pointer to the destination file device name*)
pDest : UDINT; (*pointer to the copy file name*)
option : USINT; (*copy option*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FileDelete (*deletes a file; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pName : UDINT; (*pointer to the file name*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FileInfo (*gets information about a file; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pName : UDINT; (*file name given as pointer*)
pInfo : UDINT; (*file information (fiFILE_INFO) structure given as pointer*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FileTruncate (*truncates a file's length; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pName : UDINT; (*file name given as pointer*)
newLength : UDINT; (*new length*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DirCreate (*creates a directory; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pName : UDINT; (*pointer to the directory name*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DirOpen (*opens a directory; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pName : UDINT; (*pointer to the directory name*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
ident : UDINT; (*identifier of the directory*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DirClose (*closes a directory; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier of the directory*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DirRead (*reads the individual file names in a directory; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pPath : UDINT; (*pointer to the path string*)
entry : UDINT; (*specifies which entry should be read*)
option : USINT; (*specifies whether directory names or filenames should be read*)
pData : UDINT; (*pointer to the memory area where the information is copied*)
data_len : UDINT; (*length of the provided data area*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DirReadEx (*reads the individual file or directory names in a directory; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
ident : UDINT; (*identifier of the directory*)
pData : UDINT; (*pointer to the memory area where the information is copied*)
data_len : UDINT; (*length of the available data area*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DirInfo (*gets information about a directory; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pPath : UDINT; (*pointer to the path (directory name)*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
dirnum : UDINT; (*number of subdirectories in this directory*)
filenum : UDINT; (*number of files in this directory*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DirRename (*renames directories; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pName : UDINT; (*pointer to the directory name*)
pNewName : UDINT; (*pointer to the new directory name*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DirCopy (*copies a directory*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pSrcDev : UDINT; (*pointer to the source file device name*)
pSrcDir : UDINT; (*pointer to the source directory name*)
pDestDev : UDINT; (*pointer to the destination file device name*)
pDestDir : UDINT; (*pointer to the destination directory name*)
option : USINT; (*copy option*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
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 DirDelete (*deletes a directory; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pName : UDINT; (*pointer to the directory name*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DirDeleteEx (*deletes a directory (all files and subdirectories); asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pName : UDINT; (*pointer to the directory name*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK SetAttributes (*sets attributes; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pPath : UDINT; (*pointer to the path name (file or directory)*)
attributes : USINT; (*attributes*)
option : USINT; (*set options*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK GetAttributes (*reads attributes; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pPath : UDINT; (*pointer to the path name (file or directory)*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
attributes : USINT; (*attributes*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DevMemInfo (*determines a file device's memory information; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
freemem : UDINT; (*available disk space*)
memsize : UDINT; (*total disk space*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DevLink (*creates the file device; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*new device name given as a pointer*)
pParam : UDINT; (*pointer to the link parameter*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
handle : UDINT; (*file device handle*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DevUnlink (*unlinks the device; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
handle : UDINT; (*file device handle*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK GetVolumeLabel (*reads volume label; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
pLabel : UDINT; (*buffer for volume label given as pointer*)
labelMax : UDINT; (*size of buffer for volume label*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
labelLen : UDINT; (*length of volume label*)
END_VAR
END_FUNCTION_BLOCK
{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK GetVolumeSerialNo (*reads volume serial nummer; asynchronous execution*)
VAR_INPUT
enable : BOOL; (*enables execution*)
pDevice : UDINT; (*device name given as a pointer*)
END_VAR
VAR
i_state : UINT; (*internal variable*)
i_result : UINT; (*internal variable*)
i_tmp : UDINT; (*internal variable*)
END_VAR
VAR_OUTPUT
status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*)
serialNo : UDINT; (*volume serialNo*)
END_VAR
END_FUNCTION_BLOCK
FUNCTION FileIoGetSysError : UINT (*reads system errors*)
END_FUNCTION

View File

@@ -0,0 +1,24 @@
TYPE
fiDIR_READ_DATA : STRUCT (*directory read structure*)
Filename : ARRAY[0..259] OF USINT; (*file name*)
Date : DATE_AND_TIME; (*date and time*)
Filelength : UDINT; (*file length*)
END_STRUCT;
fiDIR_READ_EX_DATA : STRUCT (*directory read extended structure*)
Filename : ARRAY[0..259] OF USINT; (*file name*)
Date : DATE_AND_TIME; (*date and time*)
Filelength : UDINT; (*file length*)
Mode : UINT; (*mode*)
END_STRUCT;
fiFILE_INFO : STRUCT (*file information structure*)
size : UDINT; (*size of file [bytes]*)
linkCnt : UDINT; (*link count*)
accTime : DATE_AND_TIME; (*time of last access*)
modTime : DATE_AND_TIME; (*time of last data modification*)
chgTime : DATE_AND_TIME; (*time of last file status change*)
reserved : ARRAY[0..20] OF UDINT; (*reserved for future use*)
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,84 @@
VAR CONSTANT
fiATTR_ARCHIVE : USINT := 32; (*attribute archive*)
fiATTR_DIRECTORY : USINT := 16; (*attribute directory*)
fiATTR_HIDDEN : USINT := 2; (*attribute hidden*)
fiATTR_RDONLY : USINT := 1; (*attribute read only*)
fiATTR_SYSTEM : USINT := 4; (*attribute system*)
fiATTR_VOL_LABEL : USINT := 8; (*attribute volume label*)
fiRECURSIVE : USINT := 1; (*option recursive*)
fiOVERWRITE : USINT := 2; (*option overwrite*)
fiREAD_ONLY : USINT := 0; (*access mode read only*)
fiWRITE_ONLY : USINT := 1; (*access mode write only*)
fiREAD_WRITE : USINT := 2; (*access mode read and write*)
fiFILE : USINT := 0; (*directory read files only*)
fiDIRECTORY : USINT := 1; (*directory read directories only*)
fiBOTH : USINT := 2; (*directory read files and directories*)
fiTruncate : UDINT := 1; (*truncate file*)
fiERR_INVALID_PATH : UINT := 20700; (*error invalid path*)
fiERR_DATA_SIZE : UINT := 20701; (*error data size*)
fiERR_NO_MORE_ENTRIES : UINT := 20702; (*error no more entries*)
fiERR_NOT_SUPPORTED : UINT := 20703; (*error not supported*)
fiERR_INVALID_TYP : UINT := 20704; (*error invalid type*)
fiERR_EXIST : UINT := 20705; (*error exist*)
fiERR_ACCESS : UINT := 20706; (*error access*)
fiERR_MODE : UINT := 20707; (*error mode*)
fiERR_FILE_NOT_FOUND : UINT := 20708; (*error file not found*)
fiERR_FILE_DEVICE : UINT := 20709; (*error file device*)
fiERR_SPACE : UINT := 20710; (*error space*)
fiERR_SEEK : UINT := 20711; (*error seek*)
fiERR_FILE : UINT := 20712; (*error file*)
fiERR_LESS_VIRTUAL_MEMORY : UINT := 20713; (*error less virtual memory*)
fiERR_COM_FILE_OPEN : UINT := 20714; (*error file open*)
fiERR_COM_FILE_CLOSE : UINT := 20715; (*error file close*)
fiERR_COM_FILE_READ : UINT := 20716; (*error file read*)
fiERR_COM_FILE_WRITE : UINT := 20717; (*error file write*)
fiERR_COM_FILE_IOCTL : UINT := 20718; (*error fiel ioctl*)
fiERR_DATA : UINT := 20719; (*error data*)
fiERR_ASYNC_MANAGER : UINT := 20720; (*error asynchron manager*)
fiERR_FILE_NOT_OPENED : UINT := 20721; (*error file not opened*)
fiERR_INVALID_DIRECTORY : UINT := 20722; (*error invalid directory*)
fiERR_DIR_NOT_EXIST : UINT := 20723; (*error directory not exists*)
fiERR_DIR_NOT_EMPTY : UINT := 20724; (*error directory not empty*)
fiERR_DIR_ALREADY_EXIST : UINT := 20725; (*error directory already exists*)
fiERR_DETMEMINFO : UINT := 20726; (*error dedect memory info*)
fiERR_NOT_ENOUGH_FREEMEM : UINT := 20727; (*error not enough free memory*)
fiERR_DIR_INVALID_HANDLE : UINT := 20728; (*error invalid directory handle*)
fiERR_PARAMETER : UINT := 20729; (*error parameter*)
fiERR_DEVICE_ALREADY_EXIST : UINT := 20730; (*error device already exists*)
fiERR_DEVICE_INVALID_HANDLE : UINT := 20731; (*error invalid device handle*)
fiERR_NETIO_IP_UNEQUAL : UINT := 20732; (*ungleiche IP bei identischem Hostnamen - IP-overwrite nicht gesetzt*)
fiERR_NETIO_PORT : UINT := 20733; (*error port not supported*)
fiERR_NETIO_USER : UINT := 20734; (*error user or password*)
fiERR_INVALID_NBYTES : UINT := 20735; (*error invalid number of bytes*)
fiERR_INIT : UINT := 20796; (*error init*)
fiERR_DEVICE_DRIVER : UINT := 20797; (*error device driver*)
fiERR_DEVICE_MANAGER : UINT := 20798; (*error device manager*)
fiERR_SYSTEM : UINT := 20799; (*error system*)
ATTR_ARCHIVE : USINT := 32; (*obsolete*)
ATTR_DIRECTORY : USINT := 16; (*obsolete*)
ATTR_HIDDEN : USINT := 2; (*obsolete*)
ATTR_RDONLY : USINT := 1; (*obsolete*)
ATTR_SYSTEM : USINT := 4; (*obsolete*)
ATTR_VOL_LABEL : USINT := 8; (*obsolete*)
DIR_OW : USINT := 1; (*obsolete*)
FILE_ALL : USINT := 2; (*obsolete*)
FILE_DIR : USINT := 1; (*obsolete*)
FILE_FILE : USINT := 0; (*obsolete*)
FILE_ONCE : USINT := 0; (*obsolete*)
FILE_DETMEM : USINT := 1; (*obsolete*)
FILE_OW_DETMEM : USINT := 2; (*obsolete*)
FILE_OW_ONCE : USINT := 3; (*obsolete*)
FILE_R : USINT := 0; (*obsolete*)
FILE_W : USINT := 1; (*obsolete*)
FILE_RW : USINT := 2; (*obsolete*)
SET_RECURSIVE : USINT := 1; (*obsolete*)
END_VAR

View File

@@ -0,0 +1,708 @@
/* Automation Studio generated header file */
/* Do not edit ! */
#ifndef _FILEIO_
#define _FILEIO_
#ifdef __cplusplus
extern "C"
{
#endif
#include <bur/plctypes.h>
#include <runtime.h>
#ifndef _BUR_PUBLIC
#define _BUR_PUBLIC
#endif
/* Constants */
#ifdef _REPLACE_CONST
#define SET_RECURSIVE 1U
#define FILE_RW 2U
#define FILE_W 1U
#define FILE_R 0U
#define FILE_OW_ONCE 3U
#define FILE_OW_DETMEM 2U
#define FILE_DETMEM 1U
#define FILE_ONCE 0U
#define FILE_FILE 0U
#define FILE_DIR 1U
#define FILE_ALL 2U
#define DIR_OW 1U
#define ATTR_VOL_LABEL 8U
#define ATTR_SYSTEM 4U
#define ATTR_RDONLY 1U
#define ATTR_HIDDEN 2U
#define ATTR_DIRECTORY 16U
#define ATTR_ARCHIVE 32U
#define fiERR_SYSTEM 20799U
#define fiERR_DEVICE_MANAGER 20798U
#define fiERR_DEVICE_DRIVER 20797U
#define fiERR_INIT 20796U
#define fiERR_INVALID_NBYTES 20735U
#define fiERR_NETIO_USER 20734U
#define fiERR_NETIO_PORT 20733U
#define fiERR_NETIO_IP_UNEQUAL 20732U
#define fiERR_DEVICE_INVALID_HANDLE 20731U
#define fiERR_DEVICE_ALREADY_EXIST 20730U
#define fiERR_PARAMETER 20729U
#define fiERR_DIR_INVALID_HANDLE 20728U
#define fiERR_NOT_ENOUGH_FREEMEM 20727U
#define fiERR_DETMEMINFO 20726U
#define fiERR_DIR_ALREADY_EXIST 20725U
#define fiERR_DIR_NOT_EMPTY 20724U
#define fiERR_DIR_NOT_EXIST 20723U
#define fiERR_INVALID_DIRECTORY 20722U
#define fiERR_FILE_NOT_OPENED 20721U
#define fiERR_ASYNC_MANAGER 20720U
#define fiERR_DATA 20719U
#define fiERR_COM_FILE_IOCTL 20718U
#define fiERR_COM_FILE_WRITE 20717U
#define fiERR_COM_FILE_READ 20716U
#define fiERR_COM_FILE_CLOSE 20715U
#define fiERR_COM_FILE_OPEN 20714U
#define fiERR_LESS_VIRTUAL_MEMORY 20713U
#define fiERR_FILE 20712U
#define fiERR_SEEK 20711U
#define fiERR_SPACE 20710U
#define fiERR_FILE_DEVICE 20709U
#define fiERR_FILE_NOT_FOUND 20708U
#define fiERR_MODE 20707U
#define fiERR_ACCESS 20706U
#define fiERR_EXIST 20705U
#define fiERR_INVALID_TYP 20704U
#define fiERR_NOT_SUPPORTED 20703U
#define fiERR_NO_MORE_ENTRIES 20702U
#define fiERR_DATA_SIZE 20701U
#define fiERR_INVALID_PATH 20700U
#define fiTruncate 1U
#define fiBOTH 2U
#define fiDIRECTORY 1U
#define fiFILE 0U
#define fiREAD_WRITE 2U
#define fiWRITE_ONLY 1U
#define fiREAD_ONLY 0U
#define fiOVERWRITE 2U
#define fiRECURSIVE 1U
#define fiATTR_VOL_LABEL 8U
#define fiATTR_SYSTEM 4U
#define fiATTR_RDONLY 1U
#define fiATTR_HIDDEN 2U
#define fiATTR_DIRECTORY 16U
#define fiATTR_ARCHIVE 32U
#else
#ifndef _GLOBAL_CONST
#define _GLOBAL_CONST _WEAK const
#endif
_GLOBAL_CONST unsigned char SET_RECURSIVE;
_GLOBAL_CONST unsigned char FILE_RW;
_GLOBAL_CONST unsigned char FILE_W;
_GLOBAL_CONST unsigned char FILE_R;
_GLOBAL_CONST unsigned char FILE_OW_ONCE;
_GLOBAL_CONST unsigned char FILE_OW_DETMEM;
_GLOBAL_CONST unsigned char FILE_DETMEM;
_GLOBAL_CONST unsigned char FILE_ONCE;
_GLOBAL_CONST unsigned char FILE_FILE;
_GLOBAL_CONST unsigned char FILE_DIR;
_GLOBAL_CONST unsigned char FILE_ALL;
_GLOBAL_CONST unsigned char DIR_OW;
_GLOBAL_CONST unsigned char ATTR_VOL_LABEL;
_GLOBAL_CONST unsigned char ATTR_SYSTEM;
_GLOBAL_CONST unsigned char ATTR_RDONLY;
_GLOBAL_CONST unsigned char ATTR_HIDDEN;
_GLOBAL_CONST unsigned char ATTR_DIRECTORY;
_GLOBAL_CONST unsigned char ATTR_ARCHIVE;
_GLOBAL_CONST unsigned short fiERR_SYSTEM;
_GLOBAL_CONST unsigned short fiERR_DEVICE_MANAGER;
_GLOBAL_CONST unsigned short fiERR_DEVICE_DRIVER;
_GLOBAL_CONST unsigned short fiERR_INIT;
_GLOBAL_CONST unsigned short fiERR_INVALID_NBYTES;
_GLOBAL_CONST unsigned short fiERR_NETIO_USER;
_GLOBAL_CONST unsigned short fiERR_NETIO_PORT;
_GLOBAL_CONST unsigned short fiERR_NETIO_IP_UNEQUAL;
_GLOBAL_CONST unsigned short fiERR_DEVICE_INVALID_HANDLE;
_GLOBAL_CONST unsigned short fiERR_DEVICE_ALREADY_EXIST;
_GLOBAL_CONST unsigned short fiERR_PARAMETER;
_GLOBAL_CONST unsigned short fiERR_DIR_INVALID_HANDLE;
_GLOBAL_CONST unsigned short fiERR_NOT_ENOUGH_FREEMEM;
_GLOBAL_CONST unsigned short fiERR_DETMEMINFO;
_GLOBAL_CONST unsigned short fiERR_DIR_ALREADY_EXIST;
_GLOBAL_CONST unsigned short fiERR_DIR_NOT_EMPTY;
_GLOBAL_CONST unsigned short fiERR_DIR_NOT_EXIST;
_GLOBAL_CONST unsigned short fiERR_INVALID_DIRECTORY;
_GLOBAL_CONST unsigned short fiERR_FILE_NOT_OPENED;
_GLOBAL_CONST unsigned short fiERR_ASYNC_MANAGER;
_GLOBAL_CONST unsigned short fiERR_DATA;
_GLOBAL_CONST unsigned short fiERR_COM_FILE_IOCTL;
_GLOBAL_CONST unsigned short fiERR_COM_FILE_WRITE;
_GLOBAL_CONST unsigned short fiERR_COM_FILE_READ;
_GLOBAL_CONST unsigned short fiERR_COM_FILE_CLOSE;
_GLOBAL_CONST unsigned short fiERR_COM_FILE_OPEN;
_GLOBAL_CONST unsigned short fiERR_LESS_VIRTUAL_MEMORY;
_GLOBAL_CONST unsigned short fiERR_FILE;
_GLOBAL_CONST unsigned short fiERR_SEEK;
_GLOBAL_CONST unsigned short fiERR_SPACE;
_GLOBAL_CONST unsigned short fiERR_FILE_DEVICE;
_GLOBAL_CONST unsigned short fiERR_FILE_NOT_FOUND;
_GLOBAL_CONST unsigned short fiERR_MODE;
_GLOBAL_CONST unsigned short fiERR_ACCESS;
_GLOBAL_CONST unsigned short fiERR_EXIST;
_GLOBAL_CONST unsigned short fiERR_INVALID_TYP;
_GLOBAL_CONST unsigned short fiERR_NOT_SUPPORTED;
_GLOBAL_CONST unsigned short fiERR_NO_MORE_ENTRIES;
_GLOBAL_CONST unsigned short fiERR_DATA_SIZE;
_GLOBAL_CONST unsigned short fiERR_INVALID_PATH;
_GLOBAL_CONST unsigned long fiTruncate;
_GLOBAL_CONST unsigned char fiBOTH;
_GLOBAL_CONST unsigned char fiDIRECTORY;
_GLOBAL_CONST unsigned char fiFILE;
_GLOBAL_CONST unsigned char fiREAD_WRITE;
_GLOBAL_CONST unsigned char fiWRITE_ONLY;
_GLOBAL_CONST unsigned char fiREAD_ONLY;
_GLOBAL_CONST unsigned char fiOVERWRITE;
_GLOBAL_CONST unsigned char fiRECURSIVE;
_GLOBAL_CONST unsigned char fiATTR_VOL_LABEL;
_GLOBAL_CONST unsigned char fiATTR_SYSTEM;
_GLOBAL_CONST unsigned char fiATTR_RDONLY;
_GLOBAL_CONST unsigned char fiATTR_HIDDEN;
_GLOBAL_CONST unsigned char fiATTR_DIRECTORY;
_GLOBAL_CONST unsigned char fiATTR_ARCHIVE;
#endif
/* Datatypes and datatypes of function blocks */
typedef struct fiDIR_READ_DATA
{ unsigned char Filename[260];
plcdt Date;
unsigned long Filelength;
} fiDIR_READ_DATA;
typedef struct fiDIR_READ_EX_DATA
{ unsigned char Filename[260];
plcdt Date;
unsigned long Filelength;
unsigned short Mode;
} fiDIR_READ_EX_DATA;
typedef struct fiFILE_INFO
{ unsigned long size;
unsigned long linkCnt;
plcdt accTime;
plcdt modTime;
plcdt chgTime;
unsigned long reserved[21];
} fiFILE_INFO;
typedef struct FileCreate
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pFile;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long ident;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} FileCreate_typ;
typedef struct FileOpen
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pFile;
unsigned char mode;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long ident;
unsigned long filelen;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} FileOpen_typ;
typedef struct FileClose
{
/* VAR_INPUT (analog) */
unsigned long ident;
/* 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;
} FileClose_typ;
typedef struct FileRead
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long offset;
unsigned long pDest;
unsigned long len;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} FileRead_typ;
typedef struct FileReadEx
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long offset;
unsigned long pDest;
unsigned long len;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long bytesread;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} FileReadEx_typ;
typedef struct FileWrite
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long offset;
unsigned long pSrc;
unsigned long len;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} FileWrite_typ;
typedef struct FileWriteEx
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long offset;
unsigned long pSrc;
unsigned long len;
unsigned long option;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} FileWriteEx_typ;
typedef struct FileRename
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pName;
unsigned long pNewName;
/* 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;
} FileRename_typ;
typedef struct FileCopy
{
/* VAR_INPUT (analog) */
unsigned long pSrcDev;
unsigned long pSrc;
unsigned long pDestDev;
unsigned long pDest;
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;
} FileCopy_typ;
typedef struct FileDelete
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pName;
/* 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;
} FileDelete_typ;
typedef struct FileInfo
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pName;
unsigned long pInfo;
/* 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;
} FileInfo_typ;
typedef struct FileTruncate
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pName;
unsigned long newLength;
/* 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;
} FileTruncate_typ;
typedef struct DirCreate
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pName;
/* 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;
} DirCreate_typ;
typedef struct DirOpen
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pName;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long ident;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} DirOpen_typ;
typedef struct DirClose
{
/* VAR_INPUT (analog) */
unsigned long ident;
/* 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;
} DirClose_typ;
typedef struct DirRead
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pPath;
unsigned long entry;
unsigned char option;
unsigned long pData;
unsigned long data_len;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} DirRead_typ;
typedef struct DirReadEx
{
/* VAR_INPUT (analog) */
unsigned long ident;
unsigned long pData;
unsigned long data_len;
/* VAR_OUTPUT (analog) */
unsigned short status;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} DirReadEx_typ;
typedef struct DirInfo
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pPath;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long dirnum;
unsigned long filenum;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} DirInfo_typ;
typedef struct DirRename
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pName;
unsigned long pNewName;
/* 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;
} DirRename_typ;
typedef struct DirCopy
{
/* VAR_INPUT (analog) */
unsigned long pSrcDev;
unsigned long pSrcDir;
unsigned long pDestDev;
unsigned long pDestDir;
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;
} DirCopy_typ;
typedef struct DirDelete
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pName;
/* 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;
} DirDelete_typ;
typedef struct DirDeleteEx
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pName;
/* 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;
} DirDeleteEx_typ;
typedef struct SetAttributes
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pPath;
unsigned char attributes;
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;
} SetAttributes_typ;
typedef struct GetAttributes
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pPath;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned char attributes;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} GetAttributes_typ;
typedef struct DevMemInfo
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long freemem;
unsigned long memsize;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} DevMemInfo_typ;
typedef struct DevLink
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pParam;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long handle;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} DevLink_typ;
typedef struct DevUnlink
{
/* VAR_INPUT (analog) */
unsigned long handle;
/* 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;
} DevUnlink_typ;
typedef struct GetVolumeLabel
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
unsigned long pLabel;
unsigned long labelMax;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long labelLen;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} GetVolumeLabel_typ;
typedef struct GetVolumeSerialNo
{
/* VAR_INPUT (analog) */
unsigned long pDevice;
/* VAR_OUTPUT (analog) */
unsigned short status;
unsigned long serialNo;
/* VAR (analog) */
unsigned short i_state;
unsigned short i_result;
unsigned long i_tmp;
/* VAR_INPUT (digital) */
plcbit enable;
} GetVolumeSerialNo_typ;
/* Prototyping of functions and function blocks */
_BUR_PUBLIC void FileCreate(struct FileCreate* inst);
_BUR_PUBLIC void FileOpen(struct FileOpen* inst);
_BUR_PUBLIC void FileClose(struct FileClose* inst);
_BUR_PUBLIC void FileRead(struct FileRead* inst);
_BUR_PUBLIC void FileReadEx(struct FileReadEx* inst);
_BUR_PUBLIC void FileWrite(struct FileWrite* inst);
_BUR_PUBLIC void FileWriteEx(struct FileWriteEx* inst);
_BUR_PUBLIC void FileRename(struct FileRename* inst);
_BUR_PUBLIC void FileCopy(struct FileCopy* inst);
_BUR_PUBLIC void FileDelete(struct FileDelete* inst);
_BUR_PUBLIC void FileInfo(struct FileInfo* inst);
_BUR_PUBLIC void FileTruncate(struct FileTruncate* inst);
_BUR_PUBLIC void DirCreate(struct DirCreate* inst);
_BUR_PUBLIC void DirOpen(struct DirOpen* inst);
_BUR_PUBLIC void DirClose(struct DirClose* inst);
_BUR_PUBLIC void DirRead(struct DirRead* inst);
_BUR_PUBLIC void DirReadEx(struct DirReadEx* inst);
_BUR_PUBLIC void DirInfo(struct DirInfo* inst);
_BUR_PUBLIC void DirRename(struct DirRename* inst);
_BUR_PUBLIC void DirCopy(struct DirCopy* inst);
_BUR_PUBLIC void DirDelete(struct DirDelete* inst);
_BUR_PUBLIC void DirDeleteEx(struct DirDeleteEx* inst);
_BUR_PUBLIC void SetAttributes(struct SetAttributes* inst);
_BUR_PUBLIC void GetAttributes(struct GetAttributes* inst);
_BUR_PUBLIC void DevMemInfo(struct DevMemInfo* inst);
_BUR_PUBLIC void DevLink(struct DevLink* inst);
_BUR_PUBLIC void DevUnlink(struct DevUnlink* inst);
_BUR_PUBLIC void GetVolumeLabel(struct GetVolumeLabel* inst);
_BUR_PUBLIC void GetVolumeSerialNo(struct GetVolumeSerialNo* inst);
_BUR_PUBLIC unsigned short FileIoGetSysError(void);
#ifdef __cplusplus
};
#endif
#endif /* _FILEIO_ */

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.4.7.144 SP?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="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 AsSafety library provides function blocks for the safety system.">AsSafety</Object>
<Object Type="Library" Language="Binary" Description="The FileIO library provides function blocks for file handling.">FileIO</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="The AsXml library supports reading and writing of XML files.">AsXml</Object>
<Object Type="Library" Language="Binary" Description="This library contains standard function blocks and functions for IEC 61131-3.">standard</Object>
</Objects>
</Package>

View File

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

View 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_ */

View 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_ */

View 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_ */

View 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

View 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

View 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

View File

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

View File

@@ -0,0 +1,11 @@
/****************************************************************************/
/* */
/* operator.h */
/* */
/* Automation Studio */
/* Copyright Bernecker&Rainer 1998-1999 */
/* */
/****************************************************************************/
/* This library does not contain C code */

View File

@@ -0,0 +1,2 @@
/* This library does not contain C code */

View File

@@ -0,0 +1,11 @@
/****************************************************************************/
/* */
/* operator.h */
/* */
/* Automation Studio */
/* Copyright Bernecker&Rainer 1998-1999 */
/* */
/****************************************************************************/
/* This library does not contain C code */

View 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

View File

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

View File

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

View File

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

View 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_ */

View 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_ */

View 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_ */

View 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

View 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

View 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

View File

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

View 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_ */

View 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_ */

View 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_ */

View 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

View File

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

View File

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

View File

@@ -0,0 +1,186 @@
PROGRAM _CYCLIC
//Dummy aufruf wg. Compiler
gbSPLCOuRefeedSTO;
//Status Safety SPS Auslesen
FUBs_AsIOAccRead.enable := TRUE;
FUBs_AsIOAccRead.pDeviceName := ADR ('IF6.ST1');
FUBs_AsIOAccRead.pChannelName := ADR ('SLXbootState');
FUBs_AsIOAccRead ();
//SPS Safe = 54
//Layer verstecken
IF FUBs_AsIOAccRead.status = 0 THEN
usLayerSLX.0 := (FUBs_AsIOAccRead.value = 54);
END_IF
//Puls f<EFBFBD>r Tasten erzeugen
TON_KeyPulse.IN := bKeyPulse;
TON_KeyPulse.PT := t#400ms;
TON_KeyPulse ();
IF TON_KeyPulse.Q THEN
bKeyPulse := FALSE;
ELSE
bKeyPulse := TRUE;
END_IF
//Drucksensor auswerten
TON_WaitAirOk.IN := bProcessActive;
TON_WaitAirOk.PT := t#2s;
TON_WaitAirOk ();
//Acopos Werte einlesen
ACPIn.ETAD.b00_ReadyToStart := ACPIn.uiETAD.0;
ACPIn.ETAD.b01_Starting := ACPIn.uiETAD.1;
ACPIn.ETAD.b02_Operating := ACPIn.uiETAD.2;
ACPIn.ETAD.b03_Error := ACPIn.uiETAD.3;
ACPIn.ETAD.b04_SupplyOk := ACPIn.uiETAD.4;
ACPIn.ETAD.b05_FastStop := ACPIn.uiETAD.5;
ACPIn.ETAD.b06_StartNotPossible := ACPIn.uiETAD.6;
ACPIn.ETAD.b07_Alarm := ACPIn.uiETAD.7;
ACPIn.ETAD.b09_ExtCtrl := ACPIn.uiETAD.9;
ACPIn.ETAD.b10_SetpointReached := ACPIn.uiETAD.10;
ACPIn.ETAD.b11_LimitActive := ACPIn.uiETAD.11;
ACPIn.ETAD.b14_StopBySTOP_BTN := ACPIn.uiETAD.14;
ACPIn.ETAD.b15_RtnDir := ACPIn.uiETAD.15;
//VC Einblenden
VC_Ctrl.ResetSafety.usStatus.0 := gbSPLCInSafetyOk OR NOT (gbSInEStopPanel AND gbSInDoorLeft AND gbSInDoorRight AND gbSInRoofTop);
VC_Ctrl.ResetEDMError.usStatus.0 := NOT gbSPLCInEDMError;
VC_Ctrl.ResetFC.usStatus.0 := NOT ACPIn.ETAD.b03_Error;
VC_Ctrl.StartProcess.usStatus.0 := bProcessActive OR NOT gbSPLCInSafetyOk;
VC_Ctrl.StopProcess.usStatus.0 := NOT bProcessActive;
VC_Ctrl.IncPreasure.usStatus.0 := NOT bProcessActive;
VC_Ctrl.IncPreasure.usStatus.1 := (lrPreasure > 9.9);
VC_Ctrl.IncPreasure1.usStatus.0 := NOT bProcessActive;
VC_Ctrl.IncPreasure1.usStatus.1 := (lrPreasure > 9.0);
VC_Ctrl.DecPreasure.usStatus.0 := NOT bProcessActive;
VC_Ctrl.DecPreasure.usStatus.1 := (lrPreasure < 0.1);
VC_Ctrl.DecPreasure1.usStatus.0 := NOT bProcessActive;
VC_Ctrl.DecPreasure1.usStatus.1 := (lrPreasure < 1.0);
VC_Ctrl.IncRpm.usStatus.0 := NOT bProcessActive OR NOT VC_Ctrl.EnableMotor.bCommand;
VC_Ctrl.DecRpm.usStatus.0 := NOT bProcessActive OR NOT VC_Ctrl.EnableMotor.bCommand;
VC_Ctrl.EnableMotor.usStatus.0 := NOT bProcessActive;
VC_Ctrl.MotorDir.usStatus.0 := NOT bProcessActive;
//Prozess starten
IF EDGEPOS (VC_Ctrl.StartProcess.bCommand) THEN
bProcessActive := TRUE;
END_IF
IF NOT gbSPLCInSafetyOk OR EDGEPOS (VC_Ctrl.StopProcess.bCommand) THEN
bProcessActive := FALSE;
END_IF
//Druck /Geschwindigkeit einstellen
IF bProcessActive THEN
IF EDGEPOS (VC_Ctrl.IncPreasure.bCommand) THEN
lrPreasure := lrPreasure + 0.1;
END_IF
IF EDGEPOS (VC_Ctrl.IncPreasure1.bCommand) THEN
lrPreasure := lrPreasure + 1.0;
END_IF
IF EDGEPOS (VC_Ctrl.DecPreasure.bCommand) THEN
lrPreasure := lrPreasure - 0.1;
END_IF
IF EDGEPOS (VC_Ctrl.DecPreasure1.bCommand) THEN
lrPreasure := lrPreasure - 1.0;
END_IF
IF EDGEPOS (VC_Ctrl.IncRpm.bCommand) THEN
iSpeed := iSpeed + 10;
ELSIF VC_Ctrl.IncRpm.bCommand AND TON_KeyPulse.Q THEN
iSpeed := iSpeed + 10;
END_IF
IF EDGEPOS (VC_Ctrl.DecRpm.bCommand) THEN
iSpeed := iSpeed - 10;
ELSIF VC_Ctrl.DecRpm.bCommand AND TON_KeyPulse.Q THEN
iSpeed := iSpeed - 10;
END_IF
END_IF
IF NOT bProcessActive THEN
VC_Ctrl.EnableMotor.bCommand := FALSE;
END_IF
//Umrichter Signale ansteuern
//Versorgung Ok
ACPOu.CMMD.b01_ACOk2 := ACPIn.ETAD.b04_SupplyOk AND gbSPLCInSafetyOk;
ACPOu.CMMD.b02_FastStop := ACPIn.ETAD.b04_SupplyOk AND gbSPLCInSafetyOk;
ACPOu.CMMD.b00_ACOk := ACPIn.ETAD.b00_ReadyToStart;
ACPOu.CMMD.b03_Run := ACPIn.ETAD.b01_Starting AND bProcessActive AND VC_Ctrl.EnableMotor.bCommand;
ACPOu.CMMD.b07_Reset_Error := VC_Ctrl.ResetFC.bCommand;
ACPOu.CMMD.b11_RtnDir := VC_Ctrl.MotorDir.bCommand;
//Druck r<EFBFBD>cksetzen
IF NOT bProcessActive OR (TON_WaitAirOk.Q AND NOT gbInPreasureOk) THEN
lrPreasure := 0.0;
END_IF
//Druck begrenzen
IF (lrPreasure < 0.0) THEN
lrPreasure := 0.0;
END_IF
IF (lrPreasure > 10.0) THEN
lrPreasure := 10.0;
END_IF
//Geschwindigkeit begrenzen
IF (iSpeed < 50) THEN
iSpeed := 50;
END_IF
IF (iSpeed > 210) THEN
iSpeed := 210;
END_IF
//Signale an SPLC
gbSPLCOuResetSafety := VC_Ctrl.ResetSafety.bCommand;
gbSPLCOuResetEDMError := VC_Ctrl.ResetEDMError.bCommand;
gbSOuCloseValveOu := bProcessActive;
gbSOuOpenValveIn := bProcessActive;
gbSOuEnableTurntable := gbSPLCInSafetyOk;
gbSPLCOuMachineOn := TRUE;
//Druck ausgeben
giOuPreasure := FC_Scale_MPPAOu (lrPreasure);
//ACP Werte ausgeben
ACPOu.uiCMMD.0 := ACPOu.CMMD.b00_ACOk;
ACPOu.uiCMMD.1 := ACPOu.CMMD.b01_ACOk2;
ACPOu.uiCMMD.2 := ACPOu.CMMD.b02_FastStop;
ACPOu.uiCMMD.3 := ACPOu.CMMD.b03_Run;
ACPOu.uiCMMD.7 := ACPOu.CMMD.b07_Reset_Error;
ACPOu.uiCMMD.8 := ACPOu.CMMD.b08_Halt;
ACPOu.uiCMMD.11 := ACPOu.CMMD.b11_RtnDir;
ACPOu.iLFRD := iSpeed * 1304 / 100;
//Alarme
gMachineAlarms.Alarm[0] := NOT gbSInEStopPanel;
gMachineAlarms.Alarm[1] := NOT gbSInDoorLeft;
gMachineAlarms.Alarm[2] := NOT gbSInDoorRight;
gMachineAlarms.Alarm[3] := NOT gbSInRoofTop;
gMachineAlarms.Alarm[4] := gbSInEStopPanel AND gbSInDoorLeft AND gbSInDoorRight AND gbSInRoofTop AND NOT gbSPLCInSafetyOk;
gMachineAlarms.Alarm[5] := gbSPLCInEDMError;
gMachineAlarms.Alarm[6] := NOT ACPIn.ETAD.b04_SupplyOk;
gMachineAlarms.Alarm[7] := ACPIn.ETAD.b03_Error;
gMachineAlarms.Alarm[8] := TON_WaitAirOk.Q AND NOT gbInPreasureOk;
END_PROGRAM

View File

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

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.4.7.144 SP?>
<Program xmlns="http://br-automation.co.at/AS/Program">
<Files>
<File Description="Cyclic code">Cyclic.st</File>
<File Description="Init code">Init.st</File>
<File Description="Exit code">Exit.st</File>
<File Description="Local data types" Private="true">Types.typ</File>
<File Description="Local variables" Private="true">Variables.var</File>
</Files>
</Program>

View File

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

View File

@@ -0,0 +1,52 @@
TYPE
typ_VCCtrl : STRUCT
ResetSafety : gtyp_VCButton;
ResetEDMError : gtyp_VCButton;
ResetFC : gtyp_VCButton;
StartProcess : gtyp_VCButton;
EnableMotor : gtyp_VCButton;
StopProcess : gtyp_VCButton;
IncPreasure : gtyp_VCButton;
IncPreasure1 : gtyp_VCButton;
DecPreasure : gtyp_VCButton;
DecPreasure1 : gtyp_VCButton;
IncRpm : gtyp_VCButton;
DecRpm : gtyp_VCButton;
MotorDir : gtyp_VCButton;
END_STRUCT;
typ_ACP_ETAD : STRUCT
b00_ReadyToStart : BOOL;
b01_Starting : BOOL;
b02_Operating : BOOL;
b03_Error : BOOL;
b04_SupplyOk : BOOL;
b05_FastStop : BOOL;
b06_StartNotPossible : BOOL;
b07_Alarm : BOOL;
b09_ExtCtrl : BOOL;
b10_SetpointReached : BOOL;
b11_LimitActive : BOOL;
b14_StopBySTOP_BTN : BOOL;
b15_RtnDir : BOOL;
END_STRUCT;
typ_ACP_Ou : STRUCT
iLFRD : INT; (*Setpoint Speed*)
CMMD : typ_ACP_CMMD;
uiCMMD : UINT; (*control Word*)
END_STRUCT;
typ_ACP_CMMD : STRUCT
b00_ACOk : BOOL;
b01_ACOk2 : BOOL;
b02_FastStop : BOOL;
b03_Run : BOOL;
b07_Reset_Error : BOOL;
b08_Halt : BOOL;
b11_RtnDir : BOOL;
END_STRUCT;
typ_ACP_In : STRUCT
ETAD : typ_ACP_ETAD;
uiETAD : UINT; (*status word*)
iRFRD : INT; (*Current Speed rpm*)
END_STRUCT;
END_TYPE

View File

@@ -0,0 +1,24 @@
(*Insert your comment here.*)
VAR
bKeyPulse : BOOL;
END_VAR
VAR RETAIN
bProcessActive : BOOL;
END_VAR
VAR
iSpeed : INT;
usLayerSLX : USINT;
END_VAR
VAR RETAIN
lrPreasure : LREAL; (*Sollwert Druck*)
END_VAR
(*Strukturen*)
VAR
VC_Ctrl : typ_VCCtrl;
ACPIn : typ_ACP_In;
ACPOu : typ_ACP_Ou;
TON_KeyPulse : TON;
TON_WaitAirOk : TON;
FUBs_AsIOAccRead : AsIOAccRead;
END_VAR
(*Insert your comment here.*)

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=4.4.7.144 SP?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="Program" Language="IEC">Mach_Ctrl</Object>
<Object Type="DataObject" Language="Vc" Description="480x640 (VGA)">Visu</Object>
</Objects>
</Package>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.4.7.144 SP"?>
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="AlarmAcknowledgeState">
<Property Name="Description" Value="Bitmap group for acknowledge state of an alarm"/>
<Property Name="Index" Value="151"/>
<Property Name="Translate" Value="False"/>
<BitmapLayer LanguageId="neutral">
<BitmapRef ID="22" Value="Source[local].Bitmap[Alarm_Quit]"/>
<BitmapRef ID="23" Value="Source[local].Bitmap[Alarm_NotQuit]"/>
<BitmapRef ID="24" Value="Source[local].Bitmap[Alarm_ResetAcknowledge]"/>
<BitmapRef ID="36" Value="Source[local].Bitmap[Alarm_AcknowledgeReset]"/>
</BitmapLayer>
<IndexMap>
<Index ID="22" Value="0"/>
<Index ID="23" Value="1"/>
<Index ID="24" Value="2"/>
<Index ID="36" Value="3"/>
</IndexMap>
</BitmapGroup>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.4.7.144 SP"?>
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="AlarmBypassState">
<Property Name="Description" Value="Bitmap group for bypass state of an alarm"/>
<Property Name="Index" Value="152"/>
<Property Name="Translate" Value="False"/>
<BitmapLayer LanguageId="neutral">
<BitmapRef ID="305" Value="Source[local].Bitmap[Alarm_BypassOFF]"/>
<BitmapRef ID="306" Value="Source[local].Bitmap[Alarm_BypassON]"/>
</BitmapLayer>
<IndexMap>
<Index ID="305" Value="0"/>
<Index ID="306" Value="1"/>
</IndexMap>
</BitmapGroup>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.4.7.144 SP"?>
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="AlarmEvent">
<Property Name="Description" Value="Bitmap group for the event of an alarm"/>
<Property Name="Index" Value="153"/>
<Property Name="Translate" Value="False"/>
<BitmapLayer LanguageId="neutral">
<BitmapRef ID="280" Value="Source[local].Bitmap[Alarm_Triggered]"/>
<BitmapRef ID="281" Value="Source[local].Bitmap[Alarm_BypassOFF]"/>
<BitmapRef ID="282" Value="Source[local].Bitmap[Alarm_BypassON]"/>
<BitmapRef ID="283" Value="Source[local].Bitmap[Alarm_Reset]"/>
<BitmapRef ID="284" Value="Source[local].Bitmap[Alarm_ResetAcknowledge]"/>
<BitmapRef ID="285" Value="Source[local].Bitmap[Alarm_AcknowledgeReset]"/>
</BitmapLayer>
<IndexMap>
<Index ID="280" Value="0"/>
<Index ID="281" Value="3"/>
<Index ID="282" Value="2"/>
<Index ID="283" Value="1"/>
<Index ID="284" Value="4"/>
<Index ID="285" Value="5"/>
</IndexMap>
</BitmapGroup>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.4.7.144 SP"?>
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="AlarmState">
<Property Name="Description" Value="Bitmap group for alarm state"/>
<Property Name="Index" Value="150"/>
<Property Name="Translate" Value="False"/>
<BitmapLayer LanguageId="neutral">
<BitmapRef ID="297" Value="Source[local].Bitmap[Alarm_Inactive]"/>
<BitmapRef ID="298" Value="Source[local].Bitmap[Alarm_Active]"/>
</BitmapLayer>
<IndexMap>
<Index ID="297" Value="0"/>
<Index ID="298" Value="1"/>
</IndexMap>
</BitmapGroup>

View File

@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.4.7.144 SP"?>
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Borders">
<Property Name="Description" Value="Bitmap group for borders"/>
<Property Name="Index" Value="3"/>
<Property Name="Translate" Value="False"/>
<BitmapLayer LanguageId="neutral">
<BitmapRef ID="894" Value="Source[local].Bitmap[button_default]"/>
<BitmapRef ID="895" Value="Source[local].Bitmap[button_default_pressed]"/>
<BitmapRef ID="896" Value="Source[local].Bitmap[button_global_area]"/>
<BitmapRef ID="897" Value="Source[local].Bitmap[button_global_area_pressed]"/>
<BitmapRef ID="898" Value="Source[local].Bitmap[checkbox_small_gray]"/>
<BitmapRef ID="899" Value="None"/>
<BitmapRef ID="900" Value="Source[local].Bitmap[button_control]"/>
<BitmapRef ID="901" Value="Source[local].Bitmap[button_control_pressed]"/>
<BitmapRef ID="902" Value="None"/>
<BitmapRef ID="903" Value="None"/>
<BitmapRef ID="904" Value="Source[local].Bitmap[button_radio_selected]"/>
<BitmapRef ID="905" Value="Source[local].Bitmap[button_radio]"/>
<BitmapRef ID="906" Value="Source[local].Bitmap[checkbox_small_checked]"/>
<BitmapRef ID="907" Value="Source[local].Bitmap[checkbox_small]"/>
<BitmapRef ID="908" Value="Source[local].Bitmap[button_scroll_right]"/>
<BitmapRef ID="909" Value="Source[local].Bitmap[button_scroll_right_pressed]"/>
<BitmapRef ID="910" Value="Source[local].Bitmap[button_scroll_left]"/>
<BitmapRef ID="911" Value="Source[local].Bitmap[button_scroll_left_pressed]"/>
<BitmapRef ID="912" Value="Source[local].Bitmap[button_scroll_up]"/>
<BitmapRef ID="913" Value="Source[local].Bitmap[button_scroll_up_pressed]"/>
<BitmapRef ID="914" Value="Source[local].Bitmap[button_scroll_down]"/>
<BitmapRef ID="915" Value="Source[local].Bitmap[button_scroll_down_pressed]"/>
<BitmapRef ID="916" Value="Source[local].Bitmap[button_scroll_up_multi]"/>
<BitmapRef ID="917" Value="Source[local].Bitmap[button_scroll_up_multi_pressed]"/>
<BitmapRef ID="918" Value="Source[local].Bitmap[button_scroll_down_multi]"/>
<BitmapRef ID="919" Value="Source[local].Bitmap[button_scroll_down_multi_pressed]"/>
<BitmapRef ID="920" Value="None"/>
<BitmapRef ID="921" Value="Source[local].Bitmap[frame_header]"/>
<BitmapRef ID="922" Value="Source[local].Bitmap[button_off]"/>
<BitmapRef ID="923" Value="Source[local].Bitmap[button_on]"/>
<BitmapRef ID="924" Value="Source[local].Bitmap[button_ready]"/>
<BitmapRef ID="925" Value="Source[local].Bitmap[InputBorder]"/>
<BitmapRef ID="926" Value="Source[local].Bitmap[button_error]"/>
<BitmapRef ID="927" Value="Source[local].Bitmap[OutputBorder]"/>
<BitmapRef ID="931" Value="Source[local].Bitmap[ProgressBorder]"/>
<BitmapRef ID="932" Value="None"/>
<BitmapRef ID="933" Value="Source[local].Bitmap[button_global_area]"/>
<BitmapRef ID="934" Value="None"/>
<BitmapRef ID="935" Value="Source[local].Bitmap[button_increase]"/>
<BitmapRef ID="936" Value="Source[local].Bitmap[button_increase_pressed]"/>
<BitmapRef ID="937" Value="Source[local].Bitmap[button_decrease]"/>
<BitmapRef ID="938" Value="Source[local].Bitmap[button_decrease_pressed]"/>
<BitmapRef ID="992" Value="Source[local].Bitmap[LabelBoarder]"/>
<BitmapRef ID="993" Value="Source[local].Bitmap[GroupControl]"/>
</BitmapLayer>
<IndexMap>
<Index ID="894" Value="1"/>
<Index ID="895" Value="2"/>
<Index ID="896" Value="3"/>
<Index ID="897" Value="4"/>
<Index ID="898" Value="11"/>
<Index ID="899" Value="14"/>
<Index ID="900" Value="7"/>
<Index ID="901" Value="8"/>
<Index ID="902" Value="9"/>
<Index ID="903" Value="10"/>
<Index ID="904" Value="6"/>
<Index ID="905" Value="5"/>
<Index ID="906" Value="13"/>
<Index ID="907" Value="12"/>
<Index ID="908" Value="15"/>
<Index ID="909" Value="16"/>
<Index ID="910" Value="17"/>
<Index ID="911" Value="18"/>
<Index ID="912" Value="19"/>
<Index ID="913" Value="20"/>
<Index ID="914" Value="21"/>
<Index ID="915" Value="22"/>
<Index ID="916" Value="23"/>
<Index ID="917" Value="24"/>
<Index ID="918" Value="25"/>
<Index ID="919" Value="26"/>
<Index ID="920" Value="27"/>
<Index ID="921" Value="28"/>
<Index ID="922" Value="29"/>
<Index ID="923" Value="30"/>
<Index ID="924" Value="31"/>
<Index ID="925" Value="33"/>
<Index ID="926" Value="32"/>
<Index ID="927" Value="34"/>
<Index ID="931" Value="38"/>
<Index ID="932" Value="39"/>
<Index ID="933" Value="40"/>
<Index ID="934" Value="41"/>
<Index ID="935" Value="45"/>
<Index ID="936" Value="44"/>
<Index ID="937" Value="42"/>
<Index ID="938" Value="43"/>
<Index ID="992" Value="35"/>
<Index ID="993" Value="36"/>
</IndexMap>
</BitmapGroup>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.4.7.144 SP"?>
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="GlobalArea">
<Property Name="Description" Value="Bitmap group for global area elements"/>
<Property Name="Index" Value="4"/>
<Property Name="Translate" Value="False"/>
<BitmapLayer LanguageId="neutral">
<BitmapRef ID="954" Value="None"/>
</BitmapLayer>
<IndexMap>
<Index ID="954" Value="0"/>
</IndexMap>
</BitmapGroup>

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.4.7.144 SP"?>
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="Pads">
<Property Name="Description" Value="Bitmap group for input pads"/>
<Property Name="Index" Value="1"/>
<Property Name="Translate" Value="False"/>
<BitmapLayer LanguageId="neutral">
<BitmapRef ID="3" Value="Source[local].Bitmap[Key_Numpad]"/>
<BitmapRef ID="10" Value="Source[local].Bitmap[Key_Numpad_pressed]"/>
<BitmapRef ID="763" Value="Source[local].Bitmap[Key_AlphaPad_lowerPressed]"/>
<BitmapRef ID="764" Value="Source[local].Bitmap[Key_AlphaPad_upperPressed]"/>
<BitmapRef ID="765" Value="Source[local].Bitmap[Key_AlphaPad_numericPressed]"/>
<BitmapRef ID="766" Value="Source[local].Bitmap[Key_AlphaPad_numeric2Pressed]"/>
<BitmapRef ID="767" Value="Source[local].Bitmap[Key_ListPadVer]"/>
<BitmapRef ID="768" Value="Source[local].Bitmap[Key_ListPadVer_pressed]"/>
<BitmapRef ID="968" Value="Source[local].Bitmap[Key_AlphaPad_lower]"/>
<BitmapRef ID="969" Value="Source[local].Bitmap[Key_AlphaPad_upper]"/>
<BitmapRef ID="973" Value="Source[local].Bitmap[Key_AlphaPad_numeric]"/>
<BitmapRef ID="974" Value="Source[local].Bitmap[Key_AlphaPad_numeric2]"/>
<BitmapRef ID="978" Value="Source[local].Bitmap[Key_ListPadHor]"/>
<BitmapRef ID="979" Value="Source[local].Bitmap[Key_ListPadHor_pressed]"/>
<BitmapRef ID="983" Value="Source[local].Bitmap[Key_ListPadHor_pressed]"/>
<BitmapRef ID="984" Value="None"/>
<BitmapRef ID="985" Value="None"/>
<BitmapRef ID="986" Value="None"/>
<BitmapRef ID="987" Value="None"/>
<BitmapRef ID="988" Value="None"/>
<BitmapRef ID="989" Value="None"/>
<BitmapRef ID="990" Value="None"/>
<BitmapRef ID="991" Value="None"/>
</BitmapLayer>
<IndexMap>
<Index ID="3" Value="0"/>
<Index ID="10" Value="1"/>
<Index ID="763" Value="6"/>
<Index ID="764" Value="7"/>
<Index ID="765" Value="8"/>
<Index ID="766" Value="9"/>
<Index ID="767" Value="10"/>
<Index ID="768" Value="11"/>
<Index ID="968" Value="2"/>
<Index ID="969" Value="3"/>
<Index ID="973" Value="4"/>
<Index ID="974" Value="5"/>
<Index ID="978" Value="12"/>
<Index ID="979" Value="13"/>
<Index ID="983" Value="14"/>
<Index ID="984" Value="15"/>
<Index ID="985" Value="16"/>
<Index ID="986" Value="17"/>
<Index ID="987" Value="18"/>
<Index ID="988" Value="19"/>
<Index ID="989" Value="20"/>
<Index ID="990" Value="21"/>
<Index ID="991" Value="22"/>
</IndexMap>
</BitmapGroup>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="4.4.7.144 SP"?>
<BitmapGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="msgBox">
<Property Name="Description" Value="Bitmaps for Message Box"/>
<Property Name="Index" Value="0"/>
<Property Name="Translate" Value="False"/>
<BitmapLayer LanguageId="neutral">
<BitmapRef ID="769" Value="Source[local].Bitmap[information]"/>
<BitmapRef ID="770" Value="Source[local].Bitmap[warning]"/>
<BitmapRef ID="771" Value="Source[local].Bitmap[alarm]"/>
</BitmapLayer>
<IndexMap>
<Index ID="769" Value="0"/>
<Index ID="770" Value="1"/>
<Index ID="771" Value="2"/>
</IndexMap>
</BitmapGroup>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="3.0.90.7"?>
<Bitmap xmlns="http://br-automation.co.at/AS/VC/Project" Name="Alarm_AcknowledgeReset">
<Property Name="Description" Value="icon for alarm first acknowledged then resetted"/>
<Property Name="File" Value="Alarm_AcknowledgeReset.png"/>
<Property Name="FillAreaColor" Value="0"/>
<Property Name="FillAreaColor32" Value="0"/>
<Property Name="FillAreaDatapoint" Value="0"/>
<Property Name="FillAreaLeft" Value="0"/>
<Property Name="FillAreaTop" Value="0"/>
<Property Name="FillAreas" Value="0"/>
<Property Name="Index" Value="509"/>
<Property Name="TargetFormat" Value="Png32Bit"/>
</Bitmap>

Binary file not shown.

After

Width:  |  Height:  |  Size: 917 B

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="3.0.90.18"?>
<Bitmap xmlns="http://br-automation.co.at/AS/VC/Project" Name="Alarm_Active">
<Property Name="Description" Value="icon for active alarm"/>
<Property Name="File" Value="Alarm_Active.png"/>
<Property Name="FillAreaColor" Value="0"/>
<Property Name="FillAreaColor32" Value="0"/>
<Property Name="FillAreaDatapoint" Value="0"/>
<Property Name="FillAreaLeft" Value="0"/>
<Property Name="FillAreaTop" Value="0"/>
<Property Name="FillAreas" Value="0"/>
<Property Name="Index" Value="500"/>
<Property Name="TargetFormat" Value="Png32Bit"/>
</Bitmap>

Binary file not shown.

After

Width:  |  Height:  |  Size: 775 B

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="3.0.90.18"?>
<Bitmap xmlns="http://br-automation.co.at/AS/VC/Project" Name="Alarm_BypassOFF">
<Property Name="Description" Value="icon for bypass off"/>
<Property Name="File" Value="Alarm_BypassOFF.png"/>
<Property Name="FillAreaColor" Value="0"/>
<Property Name="FillAreaColor32" Value="0"/>
<Property Name="FillAreaDatapoint" Value="0"/>
<Property Name="FillAreaLeft" Value="0"/>
<Property Name="FillAreaTop" Value="0"/>
<Property Name="FillAreas" Value="0"/>
<Property Name="Index" Value="506"/>
<Property Name="TargetFormat" Value="Png32Bit"/>
</Bitmap>

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