diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index d766a0c..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,41 +0,0 @@ -# This workflow will run build an AS project and save the libraries to a pipeline artifact -trigger: - branches: - include: - - main - tags: - include: - - v* - -jobs: -- job: build_publish_libraries - pool: - name: 'AutomationStudioPool' - steps: - - checkout: self - clean: true - fetchDepth: 0 - fetchTags: true - lfs: true - persistCredentials: true - submodules: recursive - path: "main" - displayName: 'Checkout repository' - - - script: python.exe C:/Tools/AsPython/InstallUpgrades.py $(Build.SourcesDirectory)/upgrades -asp AS411 -r --logLevel DEBUG - displayName: 'Install AS upgrades' - - - script: python.exe C:/Tools/AsPython/CmdLineBuild.py $(Build.SourcesDirectory)/example/AsProject/AsProject.apj -c Intel ARM -bm Rebuild -sim --logLevel DEBUG - displayName: 'Build project' - - - script: python.exe C:/Tools/AsPython/CmdLineExportLib.py $(Build.SourcesDirectory)/example/AsProject/AsProject.apj -dest ./libs -c Intel ARM -wl vartools -l DEBUG -o -bm "None" - displayName: 'Export libraries' - - - task: UniversalPackages@0 - inputs: - command: 'publish' - publishDirectory: '$(Pipeline.Workspace)/main/libs/vartools' - feedsToUsePublish: 'internal' - vstsFeedPublish: '1fa8a184-d390-4c05-8b59-19ab4ca4ef5f/ca506b3f-058b-4008-bf84-27c4d22b5b4c' - vstsFeedPackagePublish: 'vartools' - versionOption: 'patch' diff --git a/example/AsProject/AsProject.apj b/example/AsProject/AsProject.apj index d7f7cfc..bce165c 100644 --- a/example/AsProject/AsProject.apj +++ b/example/AsProject/AsProject.apj @@ -1,10 +1,13 @@ - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/LICENSE b/example/AsProject/LICENSE new file mode 100644 index 0000000..98a27ba --- /dev/null +++ b/example/AsProject/LICENSE @@ -0,0 +1,9 @@ +The MIT License + +Copyright 2023 Loupe + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/example/AsProject/Logical/Global.typ b/example/AsProject/Logical/Global.typ index 5dc40af..ed99443 100644 --- a/example/AsProject/Logical/Global.typ +++ b/example/AsProject/Logical/Global.typ @@ -1,4 +1,4 @@ - -TYPE - -END_TYPE + +TYPE + +END_TYPE diff --git a/example/AsProject/Logical/Global.var b/example/AsProject/Logical/Global.var index 3e8a206..38721c3 100644 --- a/example/AsProject/Logical/Global.var +++ b/example/AsProject/Logical/Global.var @@ -1,8 +1,8 @@ - -VAR - -END_VAR - -VAR CONSTANT - -END_VAR + +VAR + +END_VAR + +VAR CONSTANT + +END_VAR diff --git a/example/AsProject/Logical/Libraries/Loupe/Package.pkg b/example/AsProject/Logical/Libraries/Loupe/Package.pkg index 070859b..1d4c336 100644 --- a/example/AsProject/Logical/Libraries/Loupe/Package.pkg +++ b/example/AsProject/Logical/Libraries/Loupe/Package.pkg @@ -1,7 +1,7 @@ - - - - ..\..\src\Ar\vartools\ANSIC.lby - stringext - - + + + + stringext + ..\..\src\Ar\VarTools\ANSIC.lby + + diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/Binary.lby b/example/AsProject/Logical/Libraries/Loupe/stringext/Binary.lby index ed6026b..5590deb 100644 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/Binary.lby +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/Binary.lby @@ -1,14 +1,13 @@ - - - - StringExt.typ - StringExt.var - StringExt.fun - CHANGELOG.md - - - - - - - + + + + StringExt.typ + StringExt.var + StringExt.fun + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/CHANGELOG.md b/example/AsProject/Logical/Libraries/Loupe/stringext/CHANGELOG.md deleted file mode 100644 index fa3fa68..0000000 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/CHANGELOG.md +++ /dev/null @@ -1,19 +0,0 @@ -0.14.4 - Fix bug in SplitFileName() -0.14.3 - Add support for strptime in GCC6 -0.14.2 - Add stringpTime() and stringfTime() -0.14.1 - Add formatString() -0.14.0 - Critical fix to work with BR library AsIecCon -0.13.0 - Add supporting functions for wstrings *Use v0.14.0 instead* -0.12.1 - Add stringlcpy() and stringlcat() -0.12 - Add GenerateTimestampMS_1() - YYYYMMDD_HHMMSS_SSS -0.11 - Add SplitFileName() -0.10 - Add GenerateTimestampMS() -0.9 - HexStringToDINT -0.8 - Move from AsString to AsBrStr to fix header clashes with stdlib -0.7 - Add appendArrayIndex() -0.6 - Fix bugs in ToUpper() and ToLower() -0.5 - Add Timestamp_TO_DT() -0.4 - Add ToUpper() and ToLower() -0.3 - Add strncat4() -0.2 - Add GenerateTimestamp() -0.1 - First version, includes lstrip(), rstrip(), atoui(), uitoa(), ByteToHexString() diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/stringext.h b/example/AsProject/Logical/Libraries/Loupe/stringext/SG3/StringExt.h similarity index 86% rename from example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/stringext.h rename to example/AsProject/Logical/Libraries/Loupe/stringext/SG3/StringExt.h index 8f03aa9..286285c 100644 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/stringext.h +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/SG3/StringExt.h @@ -1,6 +1,6 @@ /* Automation Studio generated header file */ /* Do not edit ! */ -/* stringext 0.14.4 */ +/* stringext 1.0.0 */ #ifndef _STRINGEXT_ #define _STRINGEXT_ @@ -9,7 +9,7 @@ extern "C" { #endif #ifndef _stringext_VERSION -#define _stringext_VERSION 0.14.4 +#define _stringext_VERSION 1.0.0 #endif #include @@ -18,34 +18,22 @@ extern "C" #define _BUR_PUBLIC #endif #ifdef _SG3 - #include "AsBrStr.h" #include "astime.h" + #include "AsBrStr.h" #include "AsBrWStr.h" #endif #ifdef _SG4 - #include "AsBrStr.h" #include "astime.h" + #include "AsBrStr.h" #include "AsBrWStr.h" #endif #ifdef _SGC - #include "AsBrStr.h" #include "astime.h" + #include "AsBrStr.h" #include "AsBrWStr.h" #endif -/* Constants */ -#ifdef _REPLACE_CONST - #define STREXT_INVALID_CHAR 221U - #define STREXT_MAX_UDINT 4294967295U -#else - _GLOBAL_CONST unsigned char STREXT_INVALID_CHAR; - _GLOBAL_CONST unsigned long STREXT_MAX_UDINT; -#endif - - - - /* Datatypes and datatypes of function blocks */ typedef enum STREXT_ERR_enum { STREXT_ERR_INVALID_INPUT = -1 @@ -85,6 +73,22 @@ _BUR_PUBLIC unsigned char wchar2char(unsigned short wcharacter); _BUR_PUBLIC signed long formatString(plcstring* dest, unsigned long destSize, plcstring* format, struct StrExtArgs_typ* pArgs); _BUR_PUBLIC unsigned long stringfTime(unsigned long dest, unsigned long destSize, unsigned long format, plcdt time); _BUR_PUBLIC plcdt stringpTime(unsigned long src, unsigned long format); +_BUR_PUBLIC unsigned long stringdtoa(double value, plcstring* buffer, unsigned long ndigits, unsigned long bufferSize); +_BUR_PUBLIC unsigned long stringftoa(float value, plcstring* buffer, unsigned long ndigits, unsigned long bufferSize); +_BUR_PUBLIC double stringstrtod(plcstring* value, plcstring** pEnd); +_BUR_PUBLIC float stringstrtof(plcstring* value, plcstring** pEnd); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define STREXT_INVALID_CHAR 221U + #define STREXT_MAX_UDINT 4294967295U +#else + _GLOBAL_CONST unsigned char STREXT_INVALID_CHAR; + _GLOBAL_CONST unsigned long STREXT_MAX_UDINT; +#endif + + #ifdef __cplusplus diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/StringExt.br b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/StringExt.br new file mode 100644 index 0000000..a021a7a Binary files /dev/null and b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/StringExt.br differ diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/libStringExt.a b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/libStringExt.a new file mode 100644 index 0000000..42007b7 Binary files /dev/null and b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/libStringExt.a differ diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/libstringext.a b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/libstringext.a deleted file mode 100644 index 4f2b5ee..0000000 Binary files a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/libstringext.a and /dev/null differ diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/stringext.br b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/stringext.br deleted file mode 100644 index 630e714..0000000 Binary files a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/stringext.br and /dev/null differ diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/StringExt.br b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/StringExt.br new file mode 100644 index 0000000..24cede3 Binary files /dev/null and b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/StringExt.br differ diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/stringext.h b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/StringExt.h similarity index 86% rename from example/AsProject/Logical/Libraries/Loupe/stringext/SG4/stringext.h rename to example/AsProject/Logical/Libraries/Loupe/stringext/SG4/StringExt.h index 8f03aa9..286285c 100644 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/stringext.h +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/StringExt.h @@ -1,6 +1,6 @@ /* Automation Studio generated header file */ /* Do not edit ! */ -/* stringext 0.14.4 */ +/* stringext 1.0.0 */ #ifndef _STRINGEXT_ #define _STRINGEXT_ @@ -9,7 +9,7 @@ extern "C" { #endif #ifndef _stringext_VERSION -#define _stringext_VERSION 0.14.4 +#define _stringext_VERSION 1.0.0 #endif #include @@ -18,34 +18,22 @@ extern "C" #define _BUR_PUBLIC #endif #ifdef _SG3 - #include "AsBrStr.h" #include "astime.h" + #include "AsBrStr.h" #include "AsBrWStr.h" #endif #ifdef _SG4 - #include "AsBrStr.h" #include "astime.h" + #include "AsBrStr.h" #include "AsBrWStr.h" #endif #ifdef _SGC - #include "AsBrStr.h" #include "astime.h" + #include "AsBrStr.h" #include "AsBrWStr.h" #endif -/* Constants */ -#ifdef _REPLACE_CONST - #define STREXT_INVALID_CHAR 221U - #define STREXT_MAX_UDINT 4294967295U -#else - _GLOBAL_CONST unsigned char STREXT_INVALID_CHAR; - _GLOBAL_CONST unsigned long STREXT_MAX_UDINT; -#endif - - - - /* Datatypes and datatypes of function blocks */ typedef enum STREXT_ERR_enum { STREXT_ERR_INVALID_INPUT = -1 @@ -85,6 +73,22 @@ _BUR_PUBLIC unsigned char wchar2char(unsigned short wcharacter); _BUR_PUBLIC signed long formatString(plcstring* dest, unsigned long destSize, plcstring* format, struct StrExtArgs_typ* pArgs); _BUR_PUBLIC unsigned long stringfTime(unsigned long dest, unsigned long destSize, unsigned long format, plcdt time); _BUR_PUBLIC plcdt stringpTime(unsigned long src, unsigned long format); +_BUR_PUBLIC unsigned long stringdtoa(double value, plcstring* buffer, unsigned long ndigits, unsigned long bufferSize); +_BUR_PUBLIC unsigned long stringftoa(float value, plcstring* buffer, unsigned long ndigits, unsigned long bufferSize); +_BUR_PUBLIC double stringstrtod(plcstring* value, plcstring** pEnd); +_BUR_PUBLIC float stringstrtof(plcstring* value, plcstring** pEnd); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define STREXT_INVALID_CHAR 221U + #define STREXT_MAX_UDINT 4294967295U +#else + _GLOBAL_CONST unsigned char STREXT_INVALID_CHAR; + _GLOBAL_CONST unsigned long STREXT_MAX_UDINT; +#endif + + #ifdef __cplusplus diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/libStringExt.a b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/libStringExt.a new file mode 100644 index 0000000..d0ba07f Binary files /dev/null and b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/libStringExt.a differ diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/libstringext.a b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/libstringext.a deleted file mode 100644 index 8efeebf..0000000 Binary files a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/libstringext.a and /dev/null differ diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/stringext.br b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/stringext.br deleted file mode 100644 index d4af276..0000000 Binary files a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/stringext.br and /dev/null differ diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SGC/StringExt.h b/example/AsProject/Logical/Libraries/Loupe/stringext/SGC/StringExt.h new file mode 100644 index 0000000..286285c --- /dev/null +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/SGC/StringExt.h @@ -0,0 +1,98 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ +/* stringext 1.0.0 */ + +#ifndef _STRINGEXT_ +#define _STRINGEXT_ +#ifdef __cplusplus +extern "C" +{ +#endif +#ifndef _stringext_VERSION +#define _stringext_VERSION 1.0.0 +#endif + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +#ifdef _SG3 + #include "astime.h" + #include "AsBrStr.h" + #include "AsBrWStr.h" +#endif +#ifdef _SG4 + #include "astime.h" + #include "AsBrStr.h" + #include "AsBrWStr.h" +#endif +#ifdef _SGC + #include "astime.h" + #include "AsBrStr.h" + #include "AsBrWStr.h" +#endif + + +/* Datatypes and datatypes of function blocks */ +typedef enum STREXT_ERR_enum +{ STREXT_ERR_INVALID_INPUT = -1 +} STREXT_ERR_enum; + +typedef struct StrExtArgs_typ +{ float r[5]; + unsigned long s[5]; + plcbit b[5]; + signed long i[5]; +} StrExtArgs_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC unsigned long lstrip(unsigned long pString, unsigned long pChars); +_BUR_PUBLIC unsigned long rstrip(unsigned long pString, unsigned long pChars); +_BUR_PUBLIC unsigned long atoui(unsigned long pString); +_BUR_PUBLIC unsigned long uitoa(unsigned long Value, unsigned long pString); +_BUR_PUBLIC unsigned long ByteToHexString(unsigned long pByte, unsigned long NumBytes, unsigned long pString); +_BUR_PUBLIC signed long HexStringToDINT(unsigned long pHexStr); +_BUR_PUBLIC unsigned short GenerateTimestampMS_1(unsigned long pDTStructure, unsigned long pTimestamp, unsigned long TimestampLength); +_BUR_PUBLIC unsigned short GenerateTimestampMS(unsigned long pDTStructure, unsigned long pTimestamp, unsigned long TimestampLength); +_BUR_PUBLIC unsigned short GenerateTimestamp(plcdt DT1, unsigned long pTimestamp, unsigned long TimestampLength); +_BUR_PUBLIC unsigned short strncat4(unsigned long pDest, unsigned long pSource1, unsigned long pSource2, unsigned long pSource3, unsigned long pSource4, unsigned long MaxLength); +_BUR_PUBLIC unsigned long ToUpper(unsigned long pString); +_BUR_PUBLIC unsigned long ToLower(unsigned long pString); +_BUR_PUBLIC plcdt Timestamp_TO_DT(unsigned long pDT, unsigned long pTimestamp); +_BUR_PUBLIC unsigned long appendArrayIndex(unsigned long Value, unsigned long pString); +_BUR_PUBLIC unsigned long SplitFileName(unsigned long pFileName, unsigned long pName, unsigned long pExtension); +_BUR_PUBLIC unsigned long stringlcpy(unsigned long pDest, unsigned long pSrc, unsigned long dSize); +_BUR_PUBLIC unsigned long stringlcat(unsigned long pDest, unsigned long pSrc, unsigned long dSize); +_BUR_PUBLIC unsigned long string2wstring(unsigned long pDest, unsigned long pSrc, unsigned long dSize); +_BUR_PUBLIC unsigned long wstring2string(unsigned long pDest, unsigned long pSrc, unsigned long dSize); +_BUR_PUBLIC unsigned short char2wchar(unsigned char character); +_BUR_PUBLIC unsigned char wchar2char(unsigned short wcharacter); +_BUR_PUBLIC signed long formatString(plcstring* dest, unsigned long destSize, plcstring* format, struct StrExtArgs_typ* pArgs); +_BUR_PUBLIC unsigned long stringfTime(unsigned long dest, unsigned long destSize, unsigned long format, plcdt time); +_BUR_PUBLIC plcdt stringpTime(unsigned long src, unsigned long format); +_BUR_PUBLIC unsigned long stringdtoa(double value, plcstring* buffer, unsigned long ndigits, unsigned long bufferSize); +_BUR_PUBLIC unsigned long stringftoa(float value, plcstring* buffer, unsigned long ndigits, unsigned long bufferSize); +_BUR_PUBLIC double stringstrtod(plcstring* value, plcstring** pEnd); +_BUR_PUBLIC float stringstrtof(plcstring* value, plcstring** pEnd); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define STREXT_INVALID_CHAR 221U + #define STREXT_MAX_UDINT 4294967295U +#else + _GLOBAL_CONST unsigned char STREXT_INVALID_CHAR; + _GLOBAL_CONST unsigned long STREXT_MAX_UDINT; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _STRINGEXT_ */ + diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.fun b/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.fun index 2d51dcf..cd16c7f 100644 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.fun +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.fun @@ -1,187 +1,219 @@ -(* - * File: StringExt.fun - * Copyright (c) 2023 Loupe - * https://loupe.team - * - * This file is part of StringExt, licensed under the MIT License. - * - *) - -FUNCTION lstrip : UDINT (*Strips the leading characters from a string*) - VAR_INPUT - pString : UDINT; - pChars : UDINT; - END_VAR -END_FUNCTION - -FUNCTION rstrip : UDINT (*Strips the trailing characters from a string*) - VAR_INPUT - pString : UDINT; - pChars : UDINT; - END_VAR -END_FUNCTION - -FUNCTION atoui : UDINT (*Converts a string to a UDINT value, allowing values greater than the DINT maximum*) - VAR_INPUT - pString : UDINT; - END_VAR -END_FUNCTION - -FUNCTION uitoa : UDINT (*Converts a UDINT to a string, allowing values greater than the DINT maximum*) - VAR_INPUT - Value : UDINT; - pString : UDINT; - END_VAR -END_FUNCTION - -FUNCTION ByteToHexString : UDINT (*Converts bytes to a hex string*) - VAR_INPUT - pByte : UDINT; - NumBytes : UDINT; - pString : UDINT; - END_VAR -END_FUNCTION - -FUNCTION HexStringToDINT : DINT (*Converts a Hex String to a DINT*) (*$GROUP=User,$CAT=User,$GROUPICON=User.png,$CATICON=User.png*) - VAR_INPUT - pHexStr : UDINT; - END_VAR -END_FUNCTION - -FUNCTION GenerateTimestampMS_1 : UINT (*Generate a time stamp string from a DTStructure variable*) - VAR_INPUT - pDTStructure : UDINT; - pTimestamp : UDINT; - TimestampLength : UDINT; - END_VAR -END_FUNCTION - -FUNCTION GenerateTimestampMS : UINT (*Generate a time stamp string from a DTStructure variable*) - VAR_INPUT - pDTStructure : UDINT; - pTimestamp : UDINT; - TimestampLength : UDINT; - END_VAR -END_FUNCTION - -FUNCTION GenerateTimestamp : UINT (*Generate a time stamp string from a DATE_AND_TIME variable*) - VAR_INPUT - DT1 : DATE_AND_TIME; - pTimestamp : UDINT; - TimestampLength : UDINT; - END_VAR -END_FUNCTION - -FUNCTION strncat4 : UINT (*Combine strings pSource1 through pSource4 into pDest, with ' / ' between source strings*) (*$GROUP=User*) - VAR_INPUT - pDest : UDINT; - pSource1 : UDINT; - pSource2 : UDINT; - pSource3 : UDINT; - pSource4 : UDINT; - MaxLength : UDINT; - END_VAR -END_FUNCTION - -FUNCTION ToUpper : UDINT (*Converts a string to upper case*) (*$GROUP=User*) - VAR_INPUT - pString : UDINT; - END_VAR -END_FUNCTION - -FUNCTION ToLower : UDINT (*Converts a string to lower case*) (*$GROUP=User*) - VAR_INPUT - pString : UDINT; - END_VAR -END_FUNCTION - -FUNCTION Timestamp_TO_DT : DATE_AND_TIME - VAR_INPUT - pDT : UDINT; - pTimestamp : UDINT; - END_VAR -END_FUNCTION - -FUNCTION appendArrayIndex : UDINT (*Appends [Value] to string*) (*$GROUP=User,$CAT=User,$GROUPICON=User.png,$CATICON=User.png*) - VAR_INPUT - Value : UDINT; - pString : UDINT; - END_VAR -END_FUNCTION - -FUNCTION SplitFileName : UDINT (*Seperates file extension from file name*) (*$GROUP=User,$CAT=User,$GROUPICON=User.png,$CATICON=User.png*) - VAR_INPUT - pFileName : UDINT; (*Pointer to the string containing file name and extension*) - pName : UDINT; (*Pointer to location to copy file name (optional)*) - pExtension : UDINT; (*Pointer to location to copy extension (optional)*) - END_VAR -END_FUNCTION - -FUNCTION stringlcpy : UDINT (*Copies strings safely*) - VAR_INPUT - pDest : UDINT; - pSrc : UDINT; - dSize : UDINT; - END_VAR -END_FUNCTION - -FUNCTION stringlcat : UDINT (*Concats strings safely*) - VAR_INPUT - pDest : UDINT; - pSrc : UDINT; - dSize : UDINT; - END_VAR -END_FUNCTION - -FUNCTION string2wstring : UDINT (*Converts String to WString*) - VAR_INPUT - pDest : UDINT; (*Pointer to String where contents will be copied*) - pSrc : UDINT; (*Pointer to WString of contents to be converted*) - dSize : UDINT; (*Size of destination String*) - END_VAR -END_FUNCTION - -FUNCTION wstring2string : UDINT (*Converts Wstring to String*) - VAR_INPUT - pDest : UDINT; (*Pointer to WString where contents will be copied*) - pSrc : UDINT; (*Pointer to String of contents to be converted*) - dSize : UDINT; (*Size of destination WString*) - END_VAR -END_FUNCTION - -FUNCTION char2wchar : UINT (*Converts Char to WChar*) - VAR_INPUT - character : USINT; (*Char to be converted*) - END_VAR -END_FUNCTION - -FUNCTION wchar2char : USINT (*Converts WChar to Char*) - VAR_INPUT - wcharacter : UINT; (*WChar to be converted*) - END_VAR -END_FUNCTION - -FUNCTION formatString : DINT (*Safe fromat string similar to sprintf*) - VAR_INPUT - dest : STRING[80]; (*Destination of formatted string*) - destSize : UDINT; (*Size of destination*) - format : STRING[80]; (*String with formatters*) - pArgs : StrExtArgs_typ; (*Pointer to argument structure*) - END_VAR -END_FUNCTION - -FUNCTION stringfTime : UDINT (*Format time to string*) - VAR_INPUT - dest : UDINT; (*Pointer to destination*) - destSize : UDINT; (*Size of destination*) - format : UDINT; (*Format to use*) - time : DATE_AND_TIME; (*Time to format*) - END_VAR -END_FUNCTION - -FUNCTION stringpTime : DATE_AND_TIME (*Parse time string*) - VAR_INPUT - src : UDINT; (*String to parse*) - format : UDINT; (*Assumed format of time string*) - END_VAR -END_FUNCTION +(* + * File: StringExt.fun + * Copyright (c) 2023 Loupe + * https://loupe.team + * + * This file is part of StringExt, licensed under the MIT License. + * + *) + +FUNCTION lstrip : UDINT (*Strips the leading characters from a string*) + VAR_INPUT + pString : UDINT; + pChars : UDINT; + END_VAR +END_FUNCTION + +FUNCTION rstrip : UDINT (*Strips the trailing characters from a string*) + VAR_INPUT + pString : UDINT; + pChars : UDINT; + END_VAR +END_FUNCTION + +FUNCTION atoui : UDINT (*Converts a string to a UDINT value, allowing values greater than the DINT maximum*) + VAR_INPUT + pString : UDINT; + END_VAR +END_FUNCTION + +FUNCTION uitoa : UDINT (*Converts a UDINT to a string, allowing values greater than the DINT maximum*) + VAR_INPUT + Value : UDINT; + pString : UDINT; + END_VAR +END_FUNCTION + +FUNCTION ByteToHexString : UDINT (*Converts bytes to a hex string*) + VAR_INPUT + pByte : UDINT; + NumBytes : UDINT; + pString : UDINT; + END_VAR +END_FUNCTION + +FUNCTION HexStringToDINT : DINT (*Converts a Hex String to a DINT*) (*$GROUP=User,$CAT=User,$GROUPICON=User.png,$CATICON=User.png*) + VAR_INPUT + pHexStr : UDINT; + END_VAR +END_FUNCTION + +FUNCTION GenerateTimestampMS_1 : UINT (*Generate a time stamp string from a DTStructure variable*) + VAR_INPUT + pDTStructure : UDINT; + pTimestamp : UDINT; + TimestampLength : UDINT; + END_VAR +END_FUNCTION + +FUNCTION GenerateTimestampMS : UINT (*Generate a time stamp string from a DTStructure variable*) + VAR_INPUT + pDTStructure : UDINT; + pTimestamp : UDINT; + TimestampLength : UDINT; + END_VAR +END_FUNCTION + +FUNCTION GenerateTimestamp : UINT (*Generate a time stamp string from a DATE_AND_TIME variable*) + VAR_INPUT + DT1 : DATE_AND_TIME; + pTimestamp : UDINT; + TimestampLength : UDINT; + END_VAR +END_FUNCTION + +FUNCTION strncat4 : UINT (*Combine strings pSource1 through pSource4 into pDest, with ' / ' between source strings*) (*$GROUP=User*) + VAR_INPUT + pDest : UDINT; + pSource1 : UDINT; + pSource2 : UDINT; + pSource3 : UDINT; + pSource4 : UDINT; + MaxLength : UDINT; + END_VAR +END_FUNCTION + +FUNCTION ToUpper : UDINT (*Converts a string to upper case*) (*$GROUP=User*) + VAR_INPUT + pString : UDINT; + END_VAR +END_FUNCTION + +FUNCTION ToLower : UDINT (*Converts a string to lower case*) (*$GROUP=User*) + VAR_INPUT + pString : UDINT; + END_VAR +END_FUNCTION + +FUNCTION Timestamp_TO_DT : DATE_AND_TIME + VAR_INPUT + pDT : UDINT; + pTimestamp : UDINT; + END_VAR +END_FUNCTION + +FUNCTION appendArrayIndex : UDINT (*Appends [Value] to string*) (*$GROUP=User,$CAT=User,$GROUPICON=User.png,$CATICON=User.png*) + VAR_INPUT + Value : UDINT; + pString : UDINT; + END_VAR +END_FUNCTION + +FUNCTION SplitFileName : UDINT (*Seperates file extension from file name*) (*$GROUP=User,$CAT=User,$GROUPICON=User.png,$CATICON=User.png*) + VAR_INPUT + pFileName : UDINT; (*Pointer to the string containing file name and extension*) + pName : UDINT; (*Pointer to location to copy file name (optional)*) + pExtension : UDINT; (*Pointer to location to copy extension (optional)*) + END_VAR +END_FUNCTION + +FUNCTION stringlcpy : UDINT (*Copies strings safely*) + VAR_INPUT + pDest : UDINT; + pSrc : UDINT; + dSize : UDINT; + END_VAR +END_FUNCTION + +FUNCTION stringlcat : UDINT (*Concats strings safely*) + VAR_INPUT + pDest : UDINT; + pSrc : UDINT; + dSize : UDINT; + END_VAR +END_FUNCTION + +FUNCTION string2wstring : UDINT (*Converts String to WString*) + VAR_INPUT + pDest : UDINT; (*Pointer to String where contents will be copied*) + pSrc : UDINT; (*Pointer to WString of contents to be converted*) + dSize : UDINT; (*Size of destination String*) + END_VAR +END_FUNCTION + +FUNCTION wstring2string : UDINT (*Converts Wstring to String*) + VAR_INPUT + pDest : UDINT; (*Pointer to WString where contents will be copied*) + pSrc : UDINT; (*Pointer to String of contents to be converted*) + dSize : UDINT; (*Size of destination WString*) + END_VAR +END_FUNCTION + +FUNCTION char2wchar : UINT (*Converts Char to WChar*) + VAR_INPUT + character : USINT; (*Char to be converted*) + END_VAR +END_FUNCTION + +FUNCTION wchar2char : USINT (*Converts WChar to Char*) + VAR_INPUT + wcharacter : UINT; (*WChar to be converted*) + END_VAR +END_FUNCTION + +FUNCTION formatString : DINT (*Safe fromat string similar to sprintf*) + VAR_INPUT + dest : STRING[80]; (*Destination of formatted string*) + destSize : UDINT; (*Size of destination*) + format : STRING[80]; (*String with formatters*) + pArgs : StrExtArgs_typ; (*Pointer to argument structure*) + END_VAR +END_FUNCTION + +FUNCTION stringfTime : UDINT (*Format time to string*) + VAR_INPUT + dest : UDINT; (*Pointer to destination*) + destSize : UDINT; (*Size of destination*) + format : UDINT; (*Format to use*) + time : DATE_AND_TIME; (*Time to format*) + END_VAR +END_FUNCTION + +FUNCTION stringpTime : DATE_AND_TIME (*Parse time string*) + VAR_INPUT + src : UDINT; (*String to parse*) + format : UDINT; (*Assumed format of time string*) + END_VAR +END_FUNCTION + +FUNCTION stringdtoa : UDINT + VAR_INPUT + value : LREAL; + buffer : STRING[80]; + ndigits : UDINT; + bufferSize : UDINT; + END_VAR +END_FUNCTION + +FUNCTION stringftoa : UDINT + VAR_INPUT + value : REAL; + buffer : STRING[80]; + ndigits : UDINT; + bufferSize : UDINT; + END_VAR +END_FUNCTION + +FUNCTION stringstrtod : LREAL + VAR_INPUT + value : STRING[80]; + pEnd : REFERENCE TO STRING[80]; + END_VAR +END_FUNCTION + +FUNCTION stringstrtof : REAL + VAR_INPUT + value : STRING[80]; + pEnd : REFERENCE TO STRING[80]; + END_VAR +END_FUNCTION diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.typ b/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.typ index 05f77da..fb6ee03 100644 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.typ +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.typ @@ -1,21 +1,21 @@ -(* - * File: StringExt.typ - * Copyright (c) 2023 Loupe - * https://loupe.team - * - * This file is part of StringExt, licensed under the MIT License. - * - *) - -TYPE - STREXT_ERR_enum : - ( - STREXT_ERR_INVALID_INPUT := -1 - ); - StrExtArgs_typ : STRUCT (*Arguments for formatter*) - r : ARRAY[0..4]OF REAL; (*Reals*) - s : ARRAY[0..4]OF UDINT; (*Pointers to String*) - b : ARRAY[0..4]OF BOOL; (*Booleans*) - i : ARRAY[0..4]OF DINT; (*Signed Integers*) - END_STRUCT; -END_TYPE +(* + * File: StringExt.typ + * Copyright (c) 2023 Loupe + * https://loupe.team + * + * This file is part of StringExt, licensed under the MIT License. + * + *) + +TYPE + STREXT_ERR_enum : + ( + STREXT_ERR_INVALID_INPUT := -1 + ); + StrExtArgs_typ : STRUCT (*Arguments for formatter*) + r : ARRAY[0..4]OF REAL; (*Reals*) + s : ARRAY[0..4]OF UDINT; (*Pointers to String*) + b : ARRAY[0..4]OF BOOL; (*Booleans*) + i : ARRAY[0..4]OF DINT; (*Signed Integers*) + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.var b/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.var index 6694e5b..b7cf75d 100644 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.var +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.var @@ -1,12 +1,12 @@ -(* - * File: StringExt.var - * Copyright (c) 2023 Loupe - * https://loupe.team - * - * This file is part of StringExt, licensed under the MIT License. - * - *) -VAR CONSTANT - STREXT_INVALID_CHAR : USINT := 221; - STREXT_MAX_UDINT : UDINT := 4294967295; -END_VAR +(* + * File: StringExt.var + * Copyright (c) 2023 Loupe + * https://loupe.team + * + * This file is part of StringExt, licensed under the MIT License. + * + *) +VAR CONSTANT + STREXT_INVALID_CHAR : USINT := 221; + STREXT_MAX_UDINT : UDINT := 4294967295; +END_VAR diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/package.json b/example/AsProject/Logical/Libraries/Loupe/stringext/package.json index cab5b7e..275ab8d 100644 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/package.json +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/package.json @@ -1,7 +1,7 @@ { "name": "@loupeteam/stringext", - "version": "0.14.4", - "description": "Loupe's stringext library for Automation Runtime", + "version": "1.0.0", + "description": "String manipulation functions for B&R Automation Studio (ANSIC library)", "homepage": "https://loupeteam.github.io/LoupeDocs/libraries/stringext.html", "scripts": {}, "keywords": [], @@ -15,4 +15,4 @@ "type": "library" }, "dependencies": {} -} \ No newline at end of file +} diff --git a/example/AsProject/Logical/Libraries/Mapp/Package.pkg b/example/AsProject/Logical/Libraries/Mapp/Package.pkg index 129ebea..eff7009 100644 --- a/example/AsProject/Logical/Libraries/Mapp/Package.pkg +++ b/example/AsProject/Logical/Libraries/Mapp/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Logical/Programs/Package.pkg b/example/AsProject/Logical/Libraries/Motion/Package.pkg similarity index 63% rename from example/AsProject/Logical/Programs/Package.pkg rename to example/AsProject/Logical/Libraries/Motion/Package.pkg index 9f53426..eff7009 100644 --- a/example/AsProject/Logical/Programs/Package.pkg +++ b/example/AsProject/Logical/Libraries/Motion/Package.pkg @@ -1,7 +1,5 @@ - - - - - Default - + + + + \ No newline at end of file diff --git a/example/AsProject/Logical/Libraries/Package.pkg b/example/AsProject/Logical/Libraries/Package.pkg index d9aa8ab..a7f10f2 100644 --- a/example/AsProject/Logical/Libraries/Package.pkg +++ b/example/AsProject/Logical/Libraries/Package.pkg @@ -1,9 +1,10 @@ - - - - - _AS - Loupe - Mapp - + + + + + _AS + Loupe + Mapp + Motion + \ No newline at end of file diff --git a/example/AsProject/Logical/Libraries/_AS/ArEventLog/ArEventLog.fun b/example/AsProject/Logical/Libraries/_AS/ArEventLog/ArEventLog.fun new file mode 100644 index 0000000..19e52da --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/ArEventLog/ArEventLog.fun @@ -0,0 +1,307 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogCreate (*creates an event log module; asynchronous execution *) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Name : STRING[256]; (*name of the event log module*) + Size : UDINT; (*size of the event log module*) + Persistence : USINT; (*persistence type of the log module*) + Info : UDINT; (*format of the additional data*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Busy : BOOL; (*execution running*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + Ident : ArEventLogIdentType; (*ident for the event log module*) + END_VAR + + VAR + Internal : ArEventLogAsyncInternalType;(*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogDelete (*deletes an event log module; asynchronous execution *) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Busy : BOOL; (*execution running*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + END_VAR + + VAR + Internal : ArEventLogAsyncInternalType;(*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogGetIdent (*gets identifier of an event log module*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Name : STRING[256]; (*name of the event log module*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + Ident : ArEventLogIdentType; (*identifier of the event log module*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogWrite (*writes a log entry to an event log module*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + EventID : DINT; (*event id of the log entry*) + OriginRecordID : ArEventLogRecordIDType; (*record id of basic cause of error/warning, or 0*) + ObjectID : STRING[36]; (*object id - string of maximum 35 characters, string length of 0 object id is generated internally*) + AddDataSize : UDINT; (*size of the additional data, or 0 (no additional data)*) + AddDataFormat : USINT; (*format of the additional data*) + AddData : UDINT; (*additional data of the entry given as pointer, or 0 (no additional data)*) + TimeStamp : UDINT; (*external timestamp given as pointer to ArEventLogTimeStampType, or 0 (timestamp is taken internally)*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + RecordID : ArEventLogRecordIDType; (*id of current record*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogGetLatestRecordID (*gets latest record id*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + RecordID : ArEventLogRecordIDType; (*latest record id to read*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogGetPreviousRecordID (*gets previous record id*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + RecordID : ArEventLogRecordIDType; (*current record id*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + PrevRecordID : ArEventLogRecordIDType; (*previous record id to read*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogRead (*reads a log entry from an event log module*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + RecordID : ArEventLogRecordIDType; (*record id to read*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + EventID : DINT; (*event id of the log entry*) + OriginRecordID : ArEventLogRecordIDType; (*record id of basic cause of error/warning, or 0*) + AddDataFormat : USINT; (*format of the additional data*) + AddDataSize : UDINT; (*size of the additional data*) + TimeStamp : ArEventLogTimeStampType; (*timestamp*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogReadDescription (*reads a description of an event id*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + RecordID : ArEventLogRecordIDType; (*record id to read*) + LanguageCode : ArEventLogLanguageCodeType;(*language id of description*) + Qualifier : STRING[250]; (*additional qualifier - reserved for future use*) + TextBuffer : UDINT; (*buffer for description*) + TextBufferSize : UDINT; (*maximum description size*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Busy : BOOL; (*execution running*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + TextSize : UDINT; (*size of description (including 0-termination)*) + END_VAR + + VAR + Internal : ArEventLogAsyncInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogReadErrorNumber (*reads an error number log entry from an event log module*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + RecordID : ArEventLogRecordIDType; (*record id to read*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + ErrorNumber : UDINT; (*error number of the log entry*) + Severity : USINT; (*severity of the log entry*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogReadAddData (*reads the additional data from an event log module*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + RecordID : ArEventLogRecordIDType; (*record id to read*) + AddData : UDINT; (*buffer for additional data given as pointer*) + BytesToRead : UDINT; (*buffer size for additional data*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution status: see help*) + AddDataSize : UDINT; (*size of the additional data*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK ArEventLogReadObjectID (*reads the object id from an event log module*) + VAR_INPUT + Execute : BOOL; (*enables execution*) + Ident : ArEventLogIdentType; (*ident for the event log module to be written*) + RecordID : ArEventLogRecordIDType; (*record id to read*) + END_VAR + + VAR_OUTPUT + Done : BOOL; (*execution done*) + Error : BOOL; (*execution failed*) + StatusID : DINT; (*execution error: see help*) + ObjectID : STRING[36]; (*object id - string of maximum 35 characters*) + END_VAR + + VAR + Internal : ArEventLogInternalType; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION ArEventLogMakeEventID : DINT (*makes an event id*) + VAR_INPUT + Severity : USINT; (*severity code of event id*) + Facility : UINT; (*facility of event id*) + ErrorCode : UINT; (*error code of event id*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION ArEventLogIsError : BOOL (*returns true if event id is an error entry*) + VAR_INPUT + EventID : DINT; (*event id*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION ArEventLogIsWarning : BOOL (*returns true if event id is a warning entry*) + VAR_INPUT + EventID : DINT; (*event id*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION ArEventLogIsInformation : BOOL (*returns true if event id is a information entry*) + VAR_INPUT + EventID : DINT; (*event id*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION ArEventLogIsSuccess : BOOL (*returns true if event id is a success entry*) + VAR_INPUT + EventID : DINT; (*event id*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION ArEventLogIsCustomerArea : BOOL (*returns true if the customer flag of the event id is set*) + VAR_INPUT + EventID : DINT; (*event id*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataInit : BOOL (*returns true on success, false on failure*) + VAR_INPUT + Buffer : UDINT; (*buffer for additional event log data*) + BufferSize : UDINT; (*buffer size*) + Format : USINT; (*format of the additional data*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataUdint : BOOL (*returns true on success, false on failure*) + VAR_INPUT + Buffer : UDINT; (*buffer for additional event data*) + BufferSize : UDINT; (*buffer size*) + Value : UDINT; (*UDINT value*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataDint : BOOL (*returns true on success, false on failure*) + VAR_INPUT + Buffer : UDINT; (*buffer for additional event data*) + BufferSize : UDINT; (*buffer size*) + Value : DINT; (*DINT value*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataString : BOOL (*returns true on success, false on failure*) + VAR_INPUT + Buffer : UDINT; (*buffer for additional event log data*) + BufferSize : UDINT; (*buffer size*) + Value : UDINT; (*STRING value, given as pointer to null terminated string*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ArEventLogAddDataQuantity : BOOL (*returns true on success, false on failure*) + VAR_INPUT + Buffer : UDINT; (*buffer for additional event log data*) + BufferSize : UDINT; (*buffer size*) + Value : LREAL; (*LREAL value*) + UnitID : DINT; (*unit ID, -1 no unit*) + NamespaceURI : UDINT; (*namespace URI given as pointer to null terminated string, null is default namespace (CEFACT)*) + END_VAR +END_FUNCTION diff --git a/example/AsProject/Logical/Libraries/_AS/ArEventLog/ArEventLog.typ b/example/AsProject/Logical/Libraries/_AS/ArEventLog/ArEventLog.typ new file mode 100644 index 0000000..9eb7474 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/ArEventLog/ArEventLog.typ @@ -0,0 +1,20 @@ + + TYPE + ArEventLogIdentType : UDINT; + ArEventLogRecordIDType : UDINT; + ArEventLogLanguageCodeType : STRING[18]; (*String-type for language ID*) + + ArEventLogTimeStampType : STRUCT + sec : UDINT; (*seconds*) + nsec : UDINT; (*nano seconds*) + END_STRUCT; + + ArEventLogAsyncInternalType : STRUCT + FBStateCtx : ArFBStateInternalType; + AsyFuMaCtx : ArFBAsyFuMaInternalType; + END_STRUCT; + + ArEventLogInternalType : STRUCT + FBStateCtx : ArFBStateInternalType; + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/ArEventLog/ArEventLog.var b/example/AsProject/Logical/Libraries/_AS/ArEventLog/ArEventLog.var new file mode 100644 index 0000000..e8a1d5f --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/ArEventLog/ArEventLog.var @@ -0,0 +1,42 @@ + + VAR CONSTANT + arEVENTLOG_ERR_PARAMETER : DINT := -1070586096; (*obsolete - invalid parameters specified*) + arEVENTLOG_ERR_RECORDID_INVALID : DINT := -1070586096; (*no record with the given id exists in the logbook*) + arEVENTLOG_ERR_EXISTING : DINT := -1070586095; (*obsolete- log module already exists*) + arEVENTLOG_ERR_LOGBOOK_EXISTS : DINT := -1070586095; (*a logbook with the given name already exists*) + arEVENTLOG_ERR_INTERNAL : DINT := -1070586094; (*unexpected internal error*) + arEVENTLOG_ERR_NAME_INVALID : DINT := -1070586093; (*the given name is invalid (empty)*) + arEVENTLOG_ERR_SIZE_INVALID : DINT := -1070586092; (*the given size is smaller than the minimum size of a logbook*) + arEVENTLOG_ERR_PERSISTENCE_INVAL : DINT := -1070586091; (*the given persistence level is unknown*) + arEVENTLOG_ERR_IDENT_INVALID : DINT := -1070586090; (*the given ident is invalid (NULL)*) + arEVENTLOG_ERR_IDENT_SYSTEM : DINT := -1070586089; (*access denied, the given ident belongs to a system logbook*) + arEVENTLOG_ERR_EVENTID_INVALID : DINT := -1070586088; (*the given event id is no customer event id*) + arEVENTLOG_ERR_LOGBOOK_NOT_FOUND : DINT := -1070586087; (*a logbook with the given name does not exist*) + arEVENTLOG_ERR_ADDDATA_NULL : DINT := -1070586086; (*the given pointer to the additional data buffer is NULL*) + arEVENTLOG_ERR_NO_ERRORNUMBER : DINT := -1070586085; (*the given record is no error number record*) + arEVENTLOG_ERR_MODULE_EXISTS : DINT := -1070586084; (*another module with the given name already exists*) + arEVENTLOG_ERR_NO_DESCRIPTION : DINT := -1070586083; (*no description was found for the given record id*) + arEVENTLOG_ERR_DESCRIPTION_NULL : DINT := -1070586082; (*the given pointer to the description buffer is NULL*) + arEVENTLOG_ERR_FORMAT_INVALID : DINT := -1070586081; (*the given format for the additional data is unknown*) + + arEVENTLOG_WRN_NO_EVENTID : DINT := -2144327920; (*the given record is no event id record*) + arEVENTLOG_WRN_FORMAT_INVALID : DINT := -2144327919; (*the given format for the additional data is unknown*) + arEVENTLOG_WRN_ADDDATA_NULL : DINT := -2144327918; (*the given pointer to the additional data is NULL*) + + arEVENTLOG_INF_SIZE : DINT := 1076897555; (*specified data size too small*) + + arEVENTLOG_SEVERITY_SUCCESS : USINT := 0; (*severity code success*) + arEVENTLOG_SEVERITY_INFO : USINT := 1; (*severity code informational*) + arEVENTLOG_SEVERITY_WARNING : USINT := 2; (*severity code warning*) + arEVENTLOG_SEVERITY_ERROR : USINT := 3; (*severity code error*) + + arEVENTLOG_PERSISTENCE_VOLATILE : USINT := 0; (*persistence volatile*) + arEVENTLOG_PERSISTENCE_REMANENT : USINT := 1; (*persistence remanent*) + arEVENTLOG_PERSISTENCE_PERSIST : USINT := 2; (*persistence persistent*) + + arEVENTLOG_ADDFORMAT_BINARY : USINT := 0; (*additional data format binary*) + arEVENTLOG_ADDFORMAT_TEXT : USINT := 1; (*additional data format series of null terminated strings*) + arEVENTLOG_ADDFORMAT_CODED : USINT := 2; (*additional data format binary coded data*) + arEVENTLOG_ADDFORMAT_CUST_BASE : USINT := 100; (*additional data format begin of customer area*) + arEVENTLOG_ADDFORMAT_CUST_MAX : USINT := 150; (*additional data format end of customer area*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/ArEventLog/SG4/ArEventLog.h b/example/AsProject/Logical/Libraries/_AS/ArEventLog/SG4/ArEventLog.h new file mode 100644 index 0000000..5dfef7c --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/ArEventLog/SG4/ArEventLog.h @@ -0,0 +1,351 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _AREVENTLOG_ +#define _AREVENTLOG_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef struct ArEventLogTimeStampType +{ unsigned long sec; + unsigned long nsec; +} ArEventLogTimeStampType; + +typedef struct ArEventLogAsyncInternalType +{ struct ArFBStateInternalType FBStateCtx; + struct ArFBAsyFuMaInternalType AsyFuMaCtx; +} ArEventLogAsyncInternalType; + +typedef struct ArEventLogInternalType +{ struct ArFBStateInternalType FBStateCtx; +} ArEventLogInternalType; + +typedef unsigned long ArEventLogIdentType; + +typedef struct ArEventLogCreate +{ + /* VAR_INPUT (analog) */ + plcstring Name[257]; + unsigned long Size; + unsigned char Persistence; + unsigned long Info; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + ArEventLogIdentType Ident; + /* VAR (analog) */ + struct ArEventLogAsyncInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Busy; + plcbit Error; +} ArEventLogCreate_typ; + +typedef struct ArEventLogDelete +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + /* VAR (analog) */ + struct ArEventLogAsyncInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Busy; + plcbit Error; +} ArEventLogDelete_typ; + +typedef struct ArEventLogGetIdent +{ + /* VAR_INPUT (analog) */ + plcstring Name[257]; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + ArEventLogIdentType Ident; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogGetIdent_typ; + +typedef unsigned long ArEventLogRecordIDType; + +typedef struct ArEventLogWrite +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + signed long EventID; + ArEventLogRecordIDType OriginRecordID; + plcstring ObjectID[37]; + unsigned long AddDataSize; + unsigned char AddDataFormat; + unsigned long AddData; + unsigned long TimeStamp; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + ArEventLogRecordIDType RecordID; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogWrite_typ; + +typedef struct ArEventLogGetLatestRecordID +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + ArEventLogRecordIDType RecordID; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogGetLatestRecordID_typ; + +typedef struct ArEventLogGetPreviousRecordID +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + ArEventLogRecordIDType RecordID; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + ArEventLogRecordIDType PrevRecordID; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogGetPreviousRecordID_typ; + +typedef struct ArEventLogRead +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + ArEventLogRecordIDType RecordID; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + signed long EventID; + ArEventLogRecordIDType OriginRecordID; + unsigned char AddDataFormat; + unsigned long AddDataSize; + struct ArEventLogTimeStampType TimeStamp; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogRead_typ; + +typedef plcstring ArEventLogLanguageCodeType[19]; + +typedef struct ArEventLogReadDescription +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + ArEventLogRecordIDType RecordID; + ArEventLogLanguageCodeType LanguageCode; + plcstring Qualifier[251]; + unsigned long TextBuffer; + unsigned long TextBufferSize; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + unsigned long TextSize; + /* VAR (analog) */ + struct ArEventLogAsyncInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Busy; + plcbit Error; +} ArEventLogReadDescription_typ; + +typedef struct ArEventLogReadErrorNumber +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + ArEventLogRecordIDType RecordID; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + unsigned long ErrorNumber; + unsigned char Severity; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogReadErrorNumber_typ; + +typedef struct ArEventLogReadAddData +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + ArEventLogRecordIDType RecordID; + unsigned long AddData; + unsigned long BytesToRead; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + unsigned long AddDataSize; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogReadAddData_typ; + +typedef struct ArEventLogReadObjectID +{ + /* VAR_INPUT (analog) */ + ArEventLogIdentType Ident; + ArEventLogRecordIDType RecordID; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + plcstring ObjectID[37]; + /* VAR (analog) */ + struct ArEventLogInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Execute; + /* VAR_OUTPUT (digital) */ + plcbit Done; + plcbit Error; +} ArEventLogReadObjectID_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void ArEventLogCreate(struct ArEventLogCreate* inst); +_BUR_PUBLIC void ArEventLogDelete(struct ArEventLogDelete* inst); +_BUR_PUBLIC void ArEventLogGetIdent(struct ArEventLogGetIdent* inst); +_BUR_PUBLIC void ArEventLogWrite(struct ArEventLogWrite* inst); +_BUR_PUBLIC void ArEventLogGetLatestRecordID(struct ArEventLogGetLatestRecordID* inst); +_BUR_PUBLIC void ArEventLogGetPreviousRecordID(struct ArEventLogGetPreviousRecordID* inst); +_BUR_PUBLIC void ArEventLogRead(struct ArEventLogRead* inst); +_BUR_PUBLIC void ArEventLogReadDescription(struct ArEventLogReadDescription* inst); +_BUR_PUBLIC void ArEventLogReadErrorNumber(struct ArEventLogReadErrorNumber* inst); +_BUR_PUBLIC void ArEventLogReadAddData(struct ArEventLogReadAddData* inst); +_BUR_PUBLIC void ArEventLogReadObjectID(struct ArEventLogReadObjectID* inst); +_BUR_PUBLIC signed long ArEventLogMakeEventID(unsigned char Severity, unsigned short Facility, unsigned short ErrorCode); +_BUR_PUBLIC plcbit ArEventLogIsError(signed long EventID); +_BUR_PUBLIC plcbit ArEventLogIsWarning(signed long EventID); +_BUR_PUBLIC plcbit ArEventLogIsInformation(signed long EventID); +_BUR_PUBLIC plcbit ArEventLogIsSuccess(signed long EventID); +_BUR_PUBLIC plcbit ArEventLogIsCustomerArea(signed long EventID); +_BUR_PUBLIC plcbit ArEventLogAddDataInit(unsigned long Buffer, unsigned long BufferSize, unsigned char Format); +_BUR_PUBLIC plcbit ArEventLogAddDataUdint(unsigned long Buffer, unsigned long BufferSize, unsigned long Value); +_BUR_PUBLIC plcbit ArEventLogAddDataDint(unsigned long Buffer, unsigned long BufferSize, signed long Value); +_BUR_PUBLIC plcbit ArEventLogAddDataString(unsigned long Buffer, unsigned long BufferSize, unsigned long Value); +_BUR_PUBLIC plcbit ArEventLogAddDataQuantity(unsigned long Buffer, unsigned long BufferSize, double Value, signed long UnitID, unsigned long NamespaceURI); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define arEVENTLOG_ADDFORMAT_CUST_MAX 150U + #define arEVENTLOG_ADDFORMAT_CUST_BASE 100U + #define arEVENTLOG_ADDFORMAT_CODED 2U + #define arEVENTLOG_ADDFORMAT_TEXT 1U + #define arEVENTLOG_ADDFORMAT_BINARY 0U + #define arEVENTLOG_PERSISTENCE_PERSIST 2U + #define arEVENTLOG_PERSISTENCE_REMANENT 1U + #define arEVENTLOG_PERSISTENCE_VOLATILE 0U + #define arEVENTLOG_SEVERITY_ERROR 3U + #define arEVENTLOG_SEVERITY_WARNING 2U + #define arEVENTLOG_SEVERITY_INFO 1U + #define arEVENTLOG_SEVERITY_SUCCESS 0U + #define arEVENTLOG_INF_SIZE 1076897555 + #define arEVENTLOG_WRN_ADDDATA_NULL (-2144327918) + #define arEVENTLOG_WRN_FORMAT_INVALID (-2144327919) + #define arEVENTLOG_WRN_NO_EVENTID (-2144327920) + #define arEVENTLOG_ERR_FORMAT_INVALID (-1070586081) + #define arEVENTLOG_ERR_DESCRIPTION_NULL (-1070586082) + #define arEVENTLOG_ERR_NO_DESCRIPTION (-1070586083) + #define arEVENTLOG_ERR_MODULE_EXISTS (-1070586084) + #define arEVENTLOG_ERR_NO_ERRORNUMBER (-1070586085) + #define arEVENTLOG_ERR_ADDDATA_NULL (-1070586086) + #define arEVENTLOG_ERR_LOGBOOK_NOT_FOUND (-1070586087) + #define arEVENTLOG_ERR_EVENTID_INVALID (-1070586088) + #define arEVENTLOG_ERR_IDENT_SYSTEM (-1070586089) + #define arEVENTLOG_ERR_IDENT_INVALID (-1070586090) + #define arEVENTLOG_ERR_PERSISTENCE_INVAL (-1070586091) + #define arEVENTLOG_ERR_SIZE_INVALID (-1070586092) + #define arEVENTLOG_ERR_NAME_INVALID (-1070586093) + #define arEVENTLOG_ERR_INTERNAL (-1070586094) + #define arEVENTLOG_ERR_LOGBOOK_EXISTS (-1070586095) + #define arEVENTLOG_ERR_EXISTING (-1070586095) + #define arEVENTLOG_ERR_RECORDID_INVALID (-1070586096) + #define arEVENTLOG_ERR_PARAMETER (-1070586096) +#else + _GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_CUST_MAX; + _GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_CUST_BASE; + _GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_CODED; + _GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_TEXT; + _GLOBAL_CONST unsigned char arEVENTLOG_ADDFORMAT_BINARY; + _GLOBAL_CONST unsigned char arEVENTLOG_PERSISTENCE_PERSIST; + _GLOBAL_CONST unsigned char arEVENTLOG_PERSISTENCE_REMANENT; + _GLOBAL_CONST unsigned char arEVENTLOG_PERSISTENCE_VOLATILE; + _GLOBAL_CONST unsigned char arEVENTLOG_SEVERITY_ERROR; + _GLOBAL_CONST unsigned char arEVENTLOG_SEVERITY_WARNING; + _GLOBAL_CONST unsigned char arEVENTLOG_SEVERITY_INFO; + _GLOBAL_CONST unsigned char arEVENTLOG_SEVERITY_SUCCESS; + _GLOBAL_CONST signed long arEVENTLOG_INF_SIZE; + _GLOBAL_CONST signed long arEVENTLOG_WRN_ADDDATA_NULL; + _GLOBAL_CONST signed long arEVENTLOG_WRN_FORMAT_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_WRN_NO_EVENTID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_FORMAT_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_DESCRIPTION_NULL; + _GLOBAL_CONST signed long arEVENTLOG_ERR_NO_DESCRIPTION; + _GLOBAL_CONST signed long arEVENTLOG_ERR_MODULE_EXISTS; + _GLOBAL_CONST signed long arEVENTLOG_ERR_NO_ERRORNUMBER; + _GLOBAL_CONST signed long arEVENTLOG_ERR_ADDDATA_NULL; + _GLOBAL_CONST signed long arEVENTLOG_ERR_LOGBOOK_NOT_FOUND; + _GLOBAL_CONST signed long arEVENTLOG_ERR_EVENTID_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_IDENT_SYSTEM; + _GLOBAL_CONST signed long arEVENTLOG_ERR_IDENT_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_PERSISTENCE_INVAL; + _GLOBAL_CONST signed long arEVENTLOG_ERR_SIZE_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_NAME_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_INTERNAL; + _GLOBAL_CONST signed long arEVENTLOG_ERR_LOGBOOK_EXISTS; + _GLOBAL_CONST signed long arEVENTLOG_ERR_EXISTING; + _GLOBAL_CONST signed long arEVENTLOG_ERR_RECORDID_INVALID; + _GLOBAL_CONST signed long arEVENTLOG_ERR_PARAMETER; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _AREVENTLOG_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/ArEventLog/binary.lby b/example/AsProject/Logical/Libraries/_AS/ArEventLog/binary.lby new file mode 100644 index 0000000..fc19779 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/ArEventLog/binary.lby @@ -0,0 +1,12 @@ + + + + + ArEventLog.fun + ArEventLog.typ + ArEventLog.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsARCfg/AsARCfg.fun b/example/AsProject/Logical/Libraries/_AS/AsARCfg/AsARCfg.fun new file mode 100644 index 0000000..7fd24b3 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsARCfg/AsARCfg.fun @@ -0,0 +1,1436 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetInaNode (*reads the node number from the AR registry for a INA device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + InaNode : USINT; (*INA node number*) + 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 CfgSetInaNode (*enters the node number into the AR registry for INA device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : DINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + InaNode : USINT; (*INA node number*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetIPAddr (*reads IP address from the AR registry for Ethernet device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + pIPAddr : UDINT; (*IP address given as a pointer*) + Len : USINT; (*length of the string (pIPAddr) -> ideally, Len = 16*) + 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 CfgSetIPAddr (*enters IP address into the AR registry for Ethernet device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + pIPAddr : UDINT; (*IP address given as pointer, valid range "1.0.0.1" - "247.255.255.255"*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetSubnetMask (*reads subnet mask from the AR registry for Ethernet device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + pSubnetMask : UDINT; (*subnet mask given as a pointer*) + Len : USINT; (*length of the string (pSubnetMask) -> ideally, Len = 16*) + 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 CfgSetSubnetMask (*enters subnet mask into the AR registry for Ethernet device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + pSubnetMask : UDINT; (*subnet mask given as a pointer, valid range "1.0.0.1" - "255.255.255.254"*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetClusterIPAddr (*reads Cluster IP address from the AR registry for Ethernet device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + pIPAddr : UDINT; (*Cluster IP address given as a pointer*) + pSubnetMask : UDINT; (*Cluster subnet mask given as a pointer*) + LenIp : USINT; (*length of the string (pIPAddr) -> ideally, Len = 16*) + LenSnmk : USINT; (*length of the string (pSubnetMask) -> ideally, Len = 16*) + 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 CfgSetClusterIPAddr (*enters Cluster IP address into the AR registry for Ethernet device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + pIPAddr : UDINT; (*Cluster IP address given as pointer, valid range "1.0.0.1" - "247.255.255.255"*) + pSubnetMask : UDINT; (*Cluster subnet mask given as a pointer, valid range "1.0.0.1" - "255.255.255.254"*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetDefaultGateway (*reads default gateway from AR registry for Ethernet device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + pGateway : UDINT; (*default gateway address given as pointer*) + Len : USINT; (*length of the string (pGateway) -> ideally, Len = 16*) + 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 CfgSetDefaultGateway (*enters default gateway into AR registry for Ethernet device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + pGateway : UDINT; (*default gateway address given as pointer, valid range "1.0.0.1" - "247.255.255.255"*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetBroadcastAddr (*reads broadcast address from AR registry for Ethernet device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + pBroadcastAddr : UDINT; (*broadcast address given as a pointer*) + Len : USINT; (*length of the string (pBroadcastAddr) -> ideally, Len = 16*) + 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 CfgGetEthBaudrate (*reads the baud rate from the AR registry for Ethernet device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + Baudrate : UDINT; (*baud rate, e.g. cfgETHBAUDRATE_AUTO, cfgETHBAUDRATE_10, cfgETHBAUDRATE_10FD ...*) + 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 CfgSetEthBaudrate (*enters the baud rate into the AR registry for Ethernet device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + Baudrate : UDINT; (*Ethernet baud rate, e.g. cfgETHBAUDRATE_AUTO, cfgETHBAUDRATE_10, cfgETHBAUDRATE_10FD ...*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetEthConfigMode (*reads the configuration mode; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + ConfigMode : UDINT; (*configuration mode: cfgCONFIGMODE_MANUALLY, cfgCONFIGMODE_DHCPCLIENT*) + 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 CfgSetEthConfigMode (*modifies the configuration mode for Ethernet device; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + ConfigMode : UDINT; (*configuration mode: cfgCONFIGMODE_MANUALLY, cfgCONFIGMODE_DHCPCLIENT*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetHostName (*reads a host name for a target; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pHostName : UDINT; (*hostname*) + Len : USINT; (*length of the string (HostName)*) + 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 CfgSetHostName (*sets a host name for a target; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pHostName : UDINT; (*hostname*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetHostNameIf (*reads a host name for a interface; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + pHostName : UDINT; (*hostname*) + Len : USINT; (*length of the string (HostName)*) + 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 CfgSetHostNameIf (*sets a host name for a interface; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + pHostName : UDINT; (*hostname*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetMacAddr (*reads the MAC address of an Ethernet device*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*INA device name given as pointer (syntax: SL.SS.IF)*) + pMacAddr : UDINT; (*MAC address (pointer to buffer where the MAC address should be written)*) + Len : USINT; (*length of the MAC address (buffer - pMacAddr) -> normally 6 bytes*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 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 CfgSetFTPServer (*enables/disables the FTP server; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + Option : UDINT; (*options: cfgOPTION_DISABLE, cfgOPTION_ENABLE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 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 CfgGetFTPServerPort (*gets the FTP server port; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + port : UINT; (*FTP server port*) + 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 CfgSetFTPServerPort (*sets the FTP server port; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + port : UINT; (*FTP server port*) + option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 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 CfgGetFTPServerBaseDataPort (*gets the FTP server base data port; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + port : UINT; (*FTP base data port, if using passive FTP*) + 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 CfgSetFTPServerBaseDataPort (*sets the FTP server base data port; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + port : UINT; (*FTP base data port, if using passive FTP*) + option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 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 CfgGetTimeOffset (*returns the configured time offset; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + timeoffset : INT; (*configured time offset*) + 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 CfgSetTimeOffset (*sets a time offset; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + timeoffset : INT; (*configured time offset*) + option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 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 CfgSetNtpServer (*starts or stops the NTP-Server; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*)(**)(*#PAR*) + start : UDINT; (*0 stop server, 1 start server*)(**)(*#PAR*) + option : UDINT; (*Options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*)(**)(*#PAR*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)(**)(*#PAR*) + 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 CfgGetNtpsData (*returns whether the NTP server is active; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*)(**)(*#PAR*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)(**)(*#PAR*) + run : UDINT; (*1 server active, 0 server inactive*)(**)(*#PAR*) + 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 CfgSetNtpClient (*starts or stops the NTP client; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*)(**)(*#PAR*) + start : UDINT; (*0 stop client, 1 start/restart client*)(**)(*#PAR*) + pServerAddress1 : UDINT; (*string with the IP address of the first NTP server*)(**)(*#PAR*) + pServerAddress2 : UDINT; (*string with the IP address of the second NTP server or ""*)(**)(*#PAR*) + pServerAddress3 : UDINT; (*string with the IP address of the third NTP server or ""*)(**)(*#PAR*) + pServerAddress4 : UDINT; (*string with the IP address of the fourth NTP server or ""*)(**)(*#PAR*) + option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*)(**)(*#PAR*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)(**)(*#PAR*) + 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 CfgGetNtpcData (*returns the parameters relevant for the NTP client; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*)(**)(*#PAR*) + pServerAddress1 : UDINT; (*string that contains the server address or server name*)(**)(*#PAR*) + pServerAddress2 : UDINT; (*string that contains the server address or server name*)(**)(*#PAR*) + pServerAddress3 : UDINT; (*string that contains the server address or server name*)(**)(*#PAR*) + pServerAddress4 : UDINT; (*string that contains the server address or server name*)(**)(*#PAR*) + len : USINT; (*length of the strings pServerAddress[x]*)(**)(*#PAR*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*)(**)(*#PAR*) + run : UDINT; (*0 Client inactive, 1 Client active*)(**)(*#PAR*) + syncStatus : UDINT; (*0 client not synchronized, 1 client already synchronized*)(**)(*#PAR*) + 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 CfgGetTimeZone (*function block returns the ID of the currently active timezone; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + END_VAR + + VAR_OUTPUT + timezoneID : UINT; + 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 CfgSetTimeZone (*function block can be used to set the time zone using its ID; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + timezoneID : UINT; + option : UDINT; + 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 CfgGetTimeZoneInfo (*function block returns the time offset between a timezone and GMT during normal time (gmt) and during summer time (gmtDst); asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + timezoneID : UINT; + END_VAR + + VAR_OUTPUT + gmt : INT; + gmtDst : INT; + 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 CfgGetTimeZoneEntry (*function block returns the times when the time switches for a particular timezone in a specified year; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + timezoneID : UINT; + year : UINT; + END_VAR + + VAR_OUTPUT + dateDst : DATE_AND_TIME; + dateNormal : 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 CfgGetDst (*function block returns whether automatic daylight savings time is activated (1) or not (0); asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + END_VAR + + VAR_OUTPUT + dst : BOOL; + 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 CfgSetDst (*function block can be used to enable or disable automatic daylight savings time; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + dst : BOOL; + option : UDINT; + 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 CfgGetCIFSDomain (*cifs - reads domain name from the AR registry; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDomain : UDINT; (*Domainname given as a pointer*) + Len : USINT; (*length of the string (pDomain) -> ideally, Len = 16*) + END_VAR + + VAR_OUTPUT + isWorkgroup : USINT; (*specifies if Workgroup or Domain*) + 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 CfgSetCIFSDomain (*cifs - enters domain into the AR registry; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDomain : UDINT; (*Domainname given as pointer*) + isWorkgroup : USINT; (*specifies if Workgroup or Domain cfgOPTION_NON_WORKGROUP, cfgOPTION_WORKGROUP*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetCIFSDefaultuser (*cifs - reads default user from the AR registry; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDefaultuser : UDINT; (*Default Username given as a pointer*) + lenUser : USINT; (*length of the string (pDefaultuser) -> ideally, Len = 16*) + pDefaultpassword : UDINT; (*Default Password given as a pointer*) + lenPassword : USINT; (*length of the string (pDefaultpassword) -> ideally, Len = 16*) + 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 CfgSetCIFSDefaultuser (*cifs - enters default user into the AR registry; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDefaultuser : UDINT; (*Default Username given as pointer*) + pDefaultpassword : UDINT; (*Default Password given as a pointer*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgSetDhcpServer (*dhcp - starts or stops dhcp server; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + start : UDINT; (*1 = start server; 0 = stop server*) + option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgSetDhcpsData (*dhcp - configures dhcp server; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pInterfaceList : UDINT; (*provided interfaces*) + pLeases : UDINT; (*provided leases*) + numLeases : UDINT; (*number of leases*) + option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetDhcpsData (*dhcp - reads configuration of dhcp server; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pInterfaceList : UDINT; (*provided interfaces*) + len : UDINT; (*length of the string (pInterfaces)*) + pLeases : UDINT; (*provided leases*) + numLeases : UDINT; (*number of leases*) + END_VAR + + VAR_OUTPUT + startMode : UDINT; (*1 = server is working; 0 = server is not working*) + numNeeded : UDINT; (*needed length*) + 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 CfgSetDhcpcOption (*dhcp - sets an option for a dhcp client; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + code : USINT; (*number of the option*) + length : USINT; (*length of the option*) + pValue : UDINT; (*value of the option*) + pDevice : UDINT; (*provided interface*) + option : UDINT; (*reserved*) + 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} FUNCTION_BLOCK CfgSetSdmStatus (*enables/disables data refresh of system diagnostics manager; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + start : UDINT; (*options: cfgOPTION_ENABLE_SDM; cfgOPTION_DISABLE_SDM*) + Option : UDINT; (*reserve*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 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} FUNCTION_BLOCK CfgGetSdmStatus (*returns whether the system diagnostics manager is active; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + run : UDINT; (*status: cfgSTATUS_SDM_ENABLED, cfgSTATUS_SDM_DISABLED*) + 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} FUNCTION CfgClearNV : UINT (*clear non volatile data*) +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgSetSdmColor (*set the system diagnostics manager color scheme; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + red : UDINT; (*red value (0-255)*) + green : UDINT; (*green value (0-255)*) + blue : UDINT; (*blue value (0-255)*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 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 CfgGetSdmColor (*get the system diagnostics manager color scheme; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + red : UDINT; (*red value (0-255)*) + green : UDINT; (*green value (0-255)*) + blue : UDINT; (*blue value (0-255)*) + 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 CfgGetSdmCustomData1 (*sdm - get custom data 1; asynchronous execution *) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*Devicename given as a pointer*) + lenDevice : UDINT; (*length of the string (pDevice) -> ideally, Len = 255*) + pFile : UDINT; (*Filename given as a pointer*) + lenFile : UDINT; (*length of the string (pFile) -> ideally, Len = 255*) + pDatamodule : UDINT; (*Datamodulename given as a pointer*) + lenDatamodule : UDINT; (*length of the string (pDatamodule) -> ideally, Len = 255*) + 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 CfgSetSdmCustomData1 (*sdm - set custom data 1; asynchronous execution *) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*Devicename given as a pointer*) + pFile : UDINT; (*Filename given as a pointer*) + pDatamodule : UDINT; (*Datamodulename given as a pointer*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetSdmCustomData2 (*sdm - get custom data 2; asynchronous execution *) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*Devicename given as a pointer*) + lenDevice : UDINT; (*length of the string (pDevice) -> ideally, Len = 255*) + pFile : UDINT; (*Filename given as a pointer*) + lenFile : UDINT; (*length of the string (pFile) -> ideally, Len = 255*) + pDatamodule : UDINT; (*Datamodulename given as a pointer*) + lenDatamodule : UDINT; (*length of the string (pDatamodule) -> ideally, Len = 255*) + 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 CfgSetSdmCustomData2 (*sdm - set custom data 2; asynchronous execution *) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*Devicename given as a pointer*) + pFile : UDINT; (*Filename given as a pointer*) + pDatamodule : UDINT; (*Datamodulename given as a pointer*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetWebMimeType (*webserver - set mime type; asynchronous execution *) + VAR_INPUT + enable : BOOL; (*enables execution*) + pFileExtension : UDINT; (*Fileextension gives a pointer*) + pMimeType : UDINT; (*MimeType given as a pointer*) + len : UDINT; (*length of the string (pMimeType) -> ideally, Len = 255*) + 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 CfgSetWebMimeType (*webserver - get mime type; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + mode : BOOL; (*cfgWEB_MODE_MIME_DEL(0) or cfgWEB_MODE_MIME_ADD(1)*) + pFileExtension : UDINT; (*Fileextension gives a pointer*) + pMimeType : UDINT; (*MimeType given as a pointer*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetWebServerHttpsConfig (*webserver - get port number and name of configured ssl configuration; asynchronous execution*) + 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*) + sslCfgName : STRING[255]; (*name of SSL configuration*) + port : UINT; (*port number*) + 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 CfgGetWebServerPort (*webserver - get port number; asynchronous execution*) + 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*) + port : UINT; (*port number*) + 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 CfgGetWebServerDevice (*webserver - get webserver root directory; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*Root directory name given as pointer*) + len : UDINT; (*length of the string (pDevice) -> ideally, Len = 255*) + 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 CfgGetWebAspGoform (*webserver - get webserver ASP form; asynchronous execution*) + 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*) + mode : UINT; (*webserver - get webserver ASP form*) + 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 CfgSetWebAspGoform (*webserver - set webserver ASP form; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + mode : UINT; (*webserver - set webserver ASP form*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetWebServerStatus (*webserver - get webserver status; asynchronous execution*) + 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*) + mode : UINT; (*cfgWEB_MODE_DISABLED(0) cfgWEB_MODE_ENABLED(1)*) + 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 CfgSetWebServerStatus (*webserver - set webserver status; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + mode : UINT; (*cfgWEB_MODE_DISABLED(0) cfgWEB_MODE_ENABLED(1)*) + Option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgSetDns (*All-in-one FB to configure and run DNS service with Volatile/Non-Volatile option; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + mode : UINT; (*cfgOPTION_DNS_ON_CONFIG (1) or cfgOPTION_DNS_ON_DHCP (2)*) + pSuffix : UDINT; (*pointer to a string with the DNS suffix*) + pDnsAddr1 : UDINT; (*First DNS Server address given as pointer, valid range "1.0.0.1" - "247.255.255.255"*) + pDnsAddr2 : UDINT; (*Second DNS Server address given as pointer, valid range "1.0.0.1" - "247.255.255.255"*) + pDnsAddr3 : UDINT; (*Third DNS Server address given as pointer, valid range "1.0.0.1" - "247.255.255.255"*) + option : UDINT; (*options: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetDnsMode (*returns whether the DNS service is active and using DHCP; asynchronous execution*) + 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*) + mode : UINT; (*cfgOPTION_DNS_OFF (0) or cfgOPTION_DNS_ON_CONFIG (1) or cfgOPTION_DNS_ON_DHCP (2)*) + 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 CfgSetDnsMode (*Activate or deactivate the DNS service, get server address from configuration or from DHCP; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + mode : UINT; (*cfgOPTION_DNS_ON_CONFIG (1) or cfgOPTION_DNS_ON_DHCP (2)*) + 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 CfgGetDnsSuffix (*Get the DNS suffix / default Domain; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pSuffix : UDINT; (*pointer to a long enough string to contain the Dns suffix*) + Len : USINT; (*length of the string (pSuffix)*) + 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 CfgSetDnsSuffix (*Set the DNS suffix / default Domain; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pSuffix : UDINT; (*pointer to a string with the DNS suffix*) + 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 CfgGetDnsAddress (*Get the configured DNS server address; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDnsAddr1 : UDINT; (*First DNS Server address given as pointer*) + pDnsAddr2 : UDINT; (*Second DNS Server address given as pointer*) + pDnsAddr3 : UDINT; (*Third DNS Server address given as pointer*) + Len1 : USINT; (*length of the string (pDnsAddr1) -> ideally, Len = 16*) + Len2 : USINT; (*length of the string (pDnsAddr2) -> ideally, Len = 16*) + Len3 : USINT; (*length of the string (pDnsAddr3) -> ideally, Len = 16*) + 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 CfgSetDnsAddress (*Set up to three DNS server address; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDnsAddr1 : UDINT; (*First DNS Server address given as pointer, valid range "1.0.0.1" - "247.255.255.255"*) + pDnsAddr2 : UDINT; (*Second DNS Server address given as pointer, valid range "1.0.0.1" - "247.255.255.255"*) + pDnsAddr3 : UDINT; (*Third DNS Server address given as pointer, valid range "1.0.0.1" - "247.255.255.255"*) + 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 CfgRouteAdd (*add a static route; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pIPAddr : UDINT; (*Destination IP address given as pointer*) + pSubnetMask : UDINT; (*Subnetmask given as pointer*) + pGateway : UDINT; (*Gateway given as pointer*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgRouteDelete (*delete a static route; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pIPAddr : UDINT; (*Destination IP address given as pointer*) + pSubnetMask : UDINT; (*Subnetmask given as pointer*) + pGateway : UDINT; (*Gateway given as pointer*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgSetSnmpMode (*Activate or deactivate the SNMP service*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*Devicename given as a pointer*) + mode : UINT; (*SNMP mode to be set: cfgSNMP_MODE_DISABLED, cfgSNMP_MODE_READ_ONLY, cfgSNMP_MODE_READ_WRITE, cfgSNMP_MODE_READ_ONLY_SECURE, cfgSNMP_MODE_READ_WRITE_SECURE *) + option : UDINT; (*persistency properties: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetSnmpMode (*Get current state of SNMP service*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*Devicename given as a pointer*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + mode : UINT; (*currently set SNMP mode: cfgSNMP_MODE_DISABLED, cfgSNMP_MODE_READ_ONLY, cfgSNMP_MODE_READ_WRITE, cfgSNMP_MODE_READ_ONLY_SECURE, cfgSNMP_MODE_READ_WRITE_SECURE*) + 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 CfgSetSnmpCredentials (*Sets credentials for SNMP service*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*device name given as a pointer*) + pUserName : UDINT; (*user name given as pointer*) + pAuthPassphrase : UDINT; (*authentication passphrase given as pointer*) + pPrivPassphrase : UDINT; (*private passphrase given as pointer*) + option : UDINT; (*persistency properties: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgSetNetworkInstallMode (*Activate or deactivate the network installation service*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*Devicename given as a pointer*) + netInstEnable : BOOL; (*network installation enable or disable*) + netInstTimeout : UDINT; (*network installation timeout [seconds] to wait for a response from the DHCP server, if 0 the default timeout (30s) is used*) + option : UDINT; (*persistency properties: cfgOPTION_VOLATILE, cfgOPTION_NON_VOLATILE*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK CfgGetNetworkInstallMode (*Get current status of network installation service*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : UDINT; (*Devicename given as a pointer*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + netInstEnabled : BOOL; (*network installation enabled or disabled*) + netInstTimeout : UDINT; (*network installation timeout [seconds] to wait for a response from the DHCP server*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK diff --git a/example/AsProject/Logical/Libraries/_AS/AsARCfg/AsARCfg.typ b/example/AsProject/Logical/Libraries/_AS/AsARCfg/AsARCfg.typ new file mode 100644 index 0000000..e1b335a --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsARCfg/AsARCfg.typ @@ -0,0 +1,11 @@ + + TYPE + cfgLease_typ : STRUCT (*lease structure*) + name : STRING[8]; (*name of lease (max 8)*) + startAdr : STRING[16]; (*start address of lease*) + stopAdr : STRING[16]; (*stop address of lease*) + subnetMask : STRING[16]; (*subnet mask of lease*) + defaultGateway : STRING[16]; (*default gateway of lease*) + leaseTimeout : DINT; (*-1 for infinite timeout*) + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsARCfg/AsARCfg.var b/example/AsProject/Logical/Libraries/_AS/AsARCfg/AsARCfg.var new file mode 100644 index 0000000..1137dbf --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsARCfg/AsARCfg.var @@ -0,0 +1,96 @@ + +VAR CONSTANT + cfgERR_DEVICE_NOT_EXIST : UINT := 29000; (*device doesn't exist or device not configured*) + cfgERR_DEVICE_INVALID : UINT := 29001; (*FBK "pDevice" parameter invalid (e.g. pDevice = 0)*) + cfgERR_OPTION_INVALID : UINT := 29002; (*FBK "Option" parameter invalid*) + cfgERR_VALUE_INVALID : UINT := 29003; (*invalid FBK parameter, error text depends on the function block*) + cfgERR_SET_NOT_POSSIBLE : UINT := 29004; (*not possible to set the subnet mask (e.g. DHCP client)*) + cfgERR_ARREG : UINT := 29005; (*error in the AR registry*) + cfgERR_INANODE_NOT_SUPPORTED : UINT := 29006; (*INA device does not support INA node numbers (e.g. IF1 = RS232)*) + cfgERR_FTP_SINIT : UINT := 29007; (*initialization error on FTP server*) + cfgERR_FTP_SDOWN : UINT := 29008; (*shutdown error on FTP server*) + cfgERR_PARAM_NOT_SET : UINT := 29009; (*default gateway not defined*) + cfgERR_SYSTEM : UINT := 29013; (*unexpected system error*) + cfgERR_TIMEZONE : UINT := 29014; (*invalid timezone specified*) + cfgERR_YEAR_INVALID : UINT := 29015; (*invalid year specified*) + cfgERR_CIFS_DOMAIN_INVALID : UINT := 29016; (*cifs domain name not defined *) + cfgERR_CIFS_DEFAULTUSER_INVALID : UINT := 29017; (*cifs defaultuser not defined *) + cfgERR_INANODE_NUMBER_SET : UINT := 29018; (*could not set the INA node number*) + cfgERR_CIFS_DEFAULTPW_INVALID : UINT := 29019; (*cifs default password not defined *) + cfgERR_DHCP_SERVER_STARTED : UINT := 29020; (*server is already working*) + cfgERR_INTERFACELIST_BUFFER : UINT := 29021; (*interfacelist buffer to small*) + cfgERR_LEASES_BUFFER : UINT := 29022; (*leases array to small*) + cfgERR_LEASE_EXISTS : UINT := 29023; (*leasename already exists*) + cfgERR_LEASE_TIMEOUT : UINT := 29024; (*invalid lease timeout*) + cfgERR_DHCP_CONFIG : UINT := 29025; (*DHCP server is not configured*) + cfgERR_SDM_FUNCTION_NOT_FOUND : UINT := 29026; (*used arsdm function was not found*) + cfgERR_CLEAR_NV_DATA : UINT := 29027; (*could not clear NV data*) + cfgERR_FUNCTION_NOT_FOUND : UINT := 29028; (*referenced function was not found*) + cfgERR_SDM_DISABLED : UINT := 29029; (*System diagnostics disabled*) + cfgERR_WEBSERV_DISABLED : UINT := 29030; (*Web Server disabled*) + cfgERR_DHCP_NO_DHCP_IP_OBTAINED : UINT := 29031; (*DHCP activated, but no IP obtained*) + cfgERR_NTP_SERVER : UINT := 29032; (*could not start the NTP server*) + cfgERR_NTP_CLIENT : UINT := 29033; (*error starting NTP client*) + cfgERR_ROUTE_TABLE : UINT := 29034; (*error updating network routing table*) + cfgERR_DST : UINT := 29035; (*could not enable or disable automatic daylight saving*) + cfgERR_PORT_INVALID : UINT := 29036; (*FBK "port" parameter invalid*) + + cfgETHBAUDRATE_AUTO : UDINT := 0; (*auto-detect*) + cfgETHBAUDRATE_10 : UDINT := 10; (*10 MBaud, half-duplex*) + cfgETHBAUDRATE_10FD : UDINT := 11; (*10 MBaud, full-duplex*) + cfgETHBAUDRATE_10AUTO : UDINT := 12; (*10 MBaud, auto-duplex*) + cfgETHBAUDRATE_100 : UDINT := 100; (*100 MBaud, half-duplex*) + cfgETHBAUDRATE_100FD : UDINT := 101; (*100 MBaud, full-duplex*) + cfgETHBAUDRATE_100AUTO : UDINT := 102; (*100 MBaud, auto-duplex*) + cfgETHBAUDRATE_1000FD : UDINT := 1001; (*1 GBaud, full-duplex*) + + cfgOPTION_NON_VOLATILE : UDINT := 1; (*permanently sets parameters*) + cfgOPTION_VOLATILE : UDINT := 0; (*temporarily sets parameters*) + + cfgCONFIGMODE_MANUALLY : UDINT := 0; (*manual configuration*) + cfgCONFIGMODE_DHCPCLIENT : UDINT := 1; (*DHCP client*) + + cfgOPTION_DISABLE : UDINT := 0; (*disable*) + cfgOPTION_ENABLE : UDINT := 1; (*enable*) + + cfgOPTION_WORKGROUP : USINT := 1; (*Domain is Workgroup*) + cfgOPTION_NON_WORKGROUP : USINT := 0; (*Domain isn't Workgroup*) + + cfgOPTION_ENABLE_SDM : USINT := 1; (*enable sdm*) + cfgOPTION_DISABLE_SDM : USINT := 2; (*disable sdm*) + + cfgSTATUS_SDM_ENABLED : USINT := 1; (*sdm is enabled*) + cfgSTATUS_SDM_DISABLED : USINT := 2; (*sdm is disabled*) + + cfgWEB_MODE_GOFORM_DISABLE : UINT := 0; (*Webserver Goform disabled*) + cfgWEB_MODE_GOFORM_ENABLE : UINT := 1; (*Webserver Goform enabled*) + cfgWEB_MODE_GOFORM_NO_WRITE : UINT := 2; (*Webserver Goform readonly*) + + cfgWEB_MODE_MIME_DEL : UINT := 0; (*Webserver delete MimeType*) + cfgWEB_MODE_MIME_ADD : UINT := 1; (*Webserver set MimeType*) + + cfgWEB_MODE_DISABLED : UINT := 0; (*Webserver disabled*) + cfgWEB_MODE_ENABLED : UINT := 1; (*Webserver enabled*) + + cfgOPTION_DNS_OFF : USINT := 0; (*disable DNS service*) + cfgOPTION_DNS_ON_CONFIG : USINT := 1; (*DNS service using the server address as configured*) + cfgOPTION_DNS_ON_DHCP : USINT := 2; (*Get the DNS address from the DHCP server*) + + cfgNTP_START : UINT := 1; (*start NTP server/client*) + cfgNTP_STOP : UINT := 0; (*stop NTP server/client*) + cfgSTATUS_NTP_ACTIVE : UINT := 1; (*NTP server/client active*) + cfgSTATUS_NTP_INACTIVE : UINT := 0; (*NTP server/client inactive*) + + cfgSDM_COLOR_DEFAULT : UDINT := 2147483648; (*sdm default color*) + + cfgDHCP_OPTION_VENDOR_CLASS_ID : USINT := 60; (*DHCP option vendor class identifier*) + cfgDHCP_OPTION_CLIENT_ID : USINT := 61; (*DHCP option client identifier*) + + cfgSNMP_MODE_DISABLED : UINT := 0; (*SNMP disabled*) + cfgSNMP_MODE_READ_ONLY : UINT := 1; (*SNMP read only*) + cfgSNMP_MODE_READ_WRITE : UINT := 2; (*SNMP read/write*) + cfgSNMP_MODE_READ_ONLY_SECURE : UINT := 3; (*secure SNMP read only*) + cfgSNMP_MODE_READ_WRITE_SECURE : UINT := 4; (*secure SNMP read/write*) + + cfgTIMEOUT_WAITFOREVER : UDINT := 16#FFFFFFFF; (*ARNB DHCP server response timeout wait forever*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsARCfg/SG3/AsARCfg.h b/example/AsProject/Logical/Libraries/_AS/AsARCfg/SG3/AsARCfg.h new file mode 100644 index 0000000..08f621d --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsARCfg/SG3/AsARCfg.h @@ -0,0 +1,204 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASARCFG_ +#define _ASARCFG_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define cfgSTATUS_SDM_DISABLED 2U + #define cfgSTATUS_SDM_ENABLED 1U + #define cfgOPTION_DISABLE_SDM 2U + #define cfgOPTION_ENABLE_SDM 1U + #define cfgOPTION_NON_WORKGROUP 0U + #define cfgOPTION_WORKGROUP 1U + #define cfgOPTION_ENABLE 1U + #define cfgOPTION_DISABLE 0U + #define cfgCONFIGMODE_DHCPCLIENT 1U + #define cfgCONFIGMODE_MANUALLY 0U + #define cfgOPTION_VOLATILE 0U + #define cfgOPTION_NON_VOLATILE 1U + #define cfgETHBAUDRATE_1000FD 1001U + #define cfgETHBAUDRATE_100FD 101U + #define cfgETHBAUDRATE_100 100U + #define cfgETHBAUDRATE_10FD 11U + #define cfgETHBAUDRATE_10 10U + #define cfgETHBAUDRATE_AUTO 0U + #define cfgERR_CLEAR_NV_DATA 29027U + #define cfgERR_SDM_FUNCTION_NOT_FOUND 29026U + #define cfgERR_LEASE_TIMEOUT 29024U + #define cfgERR_LEASE_EXISTS 29023U + #define cfgERR_LEASES_BUFFER 29022U + #define cfgERR_INTERFACELIST_BUFFER 29021U + #define cfgERR_DHCP_SERVER_STARTED 29020U + #define cfgERR_CIFS_DEFAULTPW_INVALID 29019U + #define cfgERR_INANODE_NUMBER_SET 29018U + #define cfgERR_CIFS_DEFAULTUSER_INVALID 29017U + #define cfgERR_CIFS_DOMAIN_INVALID 29016U + #define cfgERR_YEAR_INVALID 29015U + #define cfgERR_TIMEZONE 29014U + #define cfgERR_SYSTEM 29013U + #define cfgERR_SNTP_INTERVAL 29012U + #define cfgERR_SNTP_CLIENT 29011U + #define cfgERR_SNTP_SERVER 29010U + #define cfgERR_PARAM_NOT_SET 29009U + #define cfgERR_FTP_SDOWN 29008U + #define cfgERR_FTP_SINIT 29007U + #define cfgERR_INANODE_NOT_SUPPORTED 29006U + #define cfgERR_ARREG 29005U + #define cfgERR_SET_NOT_POSSIBLE 29004U + #define cfgERR_VALUE_INVALID 29003U + #define cfgERR_OPTION_INVALID 29002U + #define cfgERR_DEVICE_INVALID 29001U + #define cfgERR_DEVICE_NOT_EXIST 29000U +#else + _IEC_CONST unsigned char cfgSTATUS_SDM_DISABLED = 2U; + _IEC_CONST unsigned char cfgSTATUS_SDM_ENABLED = 1U; + _IEC_CONST unsigned char cfgOPTION_DISABLE_SDM = 2U; + _IEC_CONST unsigned char cfgOPTION_ENABLE_SDM = 1U; + _IEC_CONST unsigned char cfgOPTION_NON_WORKGROUP = 0U; + _IEC_CONST unsigned char cfgOPTION_WORKGROUP = 1U; + _IEC_CONST unsigned long cfgOPTION_ENABLE = 1U; + _IEC_CONST unsigned long cfgOPTION_DISABLE = 0U; + _IEC_CONST unsigned long cfgCONFIGMODE_DHCPCLIENT = 1U; + _IEC_CONST unsigned long cfgCONFIGMODE_MANUALLY = 0U; + _IEC_CONST unsigned long cfgOPTION_VOLATILE = 0U; + _IEC_CONST unsigned long cfgOPTION_NON_VOLATILE = 1U; + _IEC_CONST unsigned long cfgETHBAUDRATE_1000FD = 1001U; + _IEC_CONST unsigned long cfgETHBAUDRATE_100FD = 101U; + _IEC_CONST unsigned long cfgETHBAUDRATE_100 = 100U; + _IEC_CONST unsigned long cfgETHBAUDRATE_10FD = 11U; + _IEC_CONST unsigned long cfgETHBAUDRATE_10 = 10U; + _IEC_CONST unsigned long cfgETHBAUDRATE_AUTO = 0U; + _IEC_CONST unsigned short cfgERR_CLEAR_NV_DATA = 29027U; + _IEC_CONST unsigned short cfgERR_SDM_FUNCTION_NOT_FOUND = 29026U; + _IEC_CONST unsigned short cfgERR_LEASE_TIMEOUT = 29024U; + _IEC_CONST unsigned short cfgERR_LEASE_EXISTS = 29023U; + _IEC_CONST unsigned short cfgERR_LEASES_BUFFER = 29022U; + _IEC_CONST unsigned short cfgERR_INTERFACELIST_BUFFER = 29021U; + _IEC_CONST unsigned short cfgERR_DHCP_SERVER_STARTED = 29020U; + _IEC_CONST unsigned short cfgERR_CIFS_DEFAULTPW_INVALID = 29019U; + _IEC_CONST unsigned short cfgERR_INANODE_NUMBER_SET = 29018U; + _IEC_CONST unsigned short cfgERR_CIFS_DEFAULTUSER_INVALID = 29017U; + _IEC_CONST unsigned short cfgERR_CIFS_DOMAIN_INVALID = 29016U; + _IEC_CONST unsigned short cfgERR_YEAR_INVALID = 29015U; + _IEC_CONST unsigned short cfgERR_TIMEZONE = 29014U; + _IEC_CONST unsigned short cfgERR_SYSTEM = 29013U; + _IEC_CONST unsigned short cfgERR_SNTP_INTERVAL = 29012U; + _IEC_CONST unsigned short cfgERR_SNTP_CLIENT = 29011U; + _IEC_CONST unsigned short cfgERR_SNTP_SERVER = 29010U; + _IEC_CONST unsigned short cfgERR_PARAM_NOT_SET = 29009U; + _IEC_CONST unsigned short cfgERR_FTP_SDOWN = 29008U; + _IEC_CONST unsigned short cfgERR_FTP_SINIT = 29007U; + _IEC_CONST unsigned short cfgERR_INANODE_NOT_SUPPORTED = 29006U; + _IEC_CONST unsigned short cfgERR_ARREG = 29005U; + _IEC_CONST unsigned short cfgERR_SET_NOT_POSSIBLE = 29004U; + _IEC_CONST unsigned short cfgERR_VALUE_INVALID = 29003U; + _IEC_CONST unsigned short cfgERR_OPTION_INVALID = 29002U; + _IEC_CONST unsigned short cfgERR_DEVICE_INVALID = 29001U; + _IEC_CONST unsigned short cfgERR_DEVICE_NOT_EXIST = 29000U; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct cfgLease_typ +{ plcstring name[9]; + plcstring startAdr[17]; + plcstring stopAdr[17]; + plcstring subnetMask[17]; + plcstring defaultGateway[17]; + signed long leaseTimeout; +} cfgLease_typ; + +typedef struct CfgGetInaNode +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char InaNode; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetInaNode_typ; + +typedef struct CfgGetIPAddr +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pIPAddr; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetIPAddr_typ; + +typedef struct CfgGetSubnetMask +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pSubnetMask; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetSubnetMask_typ; + +typedef struct CfgGetMacAddr +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pMacAddr; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetMacAddr_typ; + + + +/* Prototyping of functions and function blocks */ +void CfgGetInaNode(struct CfgGetInaNode* inst); +void CfgGetIPAddr(struct CfgGetIPAddr* inst); +void CfgGetSubnetMask(struct CfgGetSubnetMask* inst); +void CfgGetMacAddr(struct CfgGetMacAddr* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASARCFG_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsARCfg/SG4/AsARCfg.h b/example/AsProject/Logical/Libraries/_AS/AsARCfg/SG4/AsARCfg.h new file mode 100644 index 0000000..d76db8b --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsARCfg/SG4/AsARCfg.h @@ -0,0 +1,1471 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASARCFG_ +#define _ASARCFG_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef struct cfgLease_typ +{ plcstring name[9]; + plcstring startAdr[17]; + plcstring stopAdr[17]; + plcstring subnetMask[17]; + plcstring defaultGateway[17]; + signed long leaseTimeout; +} cfgLease_typ; + +typedef struct CfgGetInaNode +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char InaNode; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetInaNode_typ; + +typedef struct CfgSetInaNode +{ + /* VAR_INPUT (analog) */ + signed long pDevice; + unsigned char InaNode; + 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; +} CfgSetInaNode_typ; + +typedef struct CfgGetIPAddr +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pIPAddr; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetIPAddr_typ; + +typedef struct CfgSetIPAddr +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pIPAddr; + unsigned long Option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgSetIPAddr_typ; + +typedef struct CfgGetSubnetMask +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pSubnetMask; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetSubnetMask_typ; + +typedef struct CfgSetSubnetMask +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pSubnetMask; + unsigned long Option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgSetSubnetMask_typ; + +typedef struct CfgGetClusterIPAddr +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pIPAddr; + unsigned long pSubnetMask; + unsigned char LenIp; + unsigned char LenSnmk; + /* 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; +} CfgGetClusterIPAddr_typ; + +typedef struct CfgSetClusterIPAddr +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pIPAddr; + unsigned long pSubnetMask; + unsigned long Option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgSetClusterIPAddr_typ; + +typedef struct CfgGetDefaultGateway +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pGateway; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetDefaultGateway_typ; + +typedef struct CfgSetDefaultGateway +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pGateway; + unsigned long Option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgSetDefaultGateway_typ; + +typedef struct CfgGetBroadcastAddr +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pBroadcastAddr; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetBroadcastAddr_typ; + +typedef struct CfgGetEthBaudrate +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long Baudrate; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetEthBaudrate_typ; + +typedef struct CfgSetEthBaudrate +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long Baudrate; + 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; +} CfgSetEthBaudrate_typ; + +typedef struct CfgGetEthConfigMode +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long ConfigMode; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetEthConfigMode_typ; + +typedef struct CfgSetEthConfigMode +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long ConfigMode; + 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; +} CfgSetEthConfigMode_typ; + +typedef struct CfgGetHostName +{ + /* VAR_INPUT (analog) */ + unsigned long pHostName; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetHostName_typ; + +typedef struct CfgSetHostName +{ + /* VAR_INPUT (analog) */ + unsigned long pHostName; + 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; +} CfgSetHostName_typ; + +typedef struct CfgGetHostNameIf +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pHostName; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetHostNameIf_typ; + +typedef struct CfgSetHostNameIf +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pHostName; + 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; +} CfgSetHostNameIf_typ; + +typedef struct CfgGetMacAddr +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pMacAddr; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetMacAddr_typ; + +typedef struct CfgSetFTPServer +{ + /* VAR_INPUT (analog) */ + 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; +} CfgSetFTPServer_typ; + +typedef struct CfgGetFTPServerPort +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short port; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetFTPServerPort_typ; + +typedef struct CfgSetFTPServerPort +{ + /* VAR_INPUT (analog) */ + unsigned short port; + 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; +} CfgSetFTPServerPort_typ; + +typedef struct CfgGetFTPServerBaseDataPort +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short port; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetFTPServerBaseDataPort_typ; + +typedef struct CfgSetFTPServerBaseDataPort +{ + /* VAR_INPUT (analog) */ + unsigned short port; + 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; +} CfgSetFTPServerBaseDataPort_typ; + +typedef struct CfgGetTimeOffset +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + signed short timeoffset; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetTimeOffset_typ; + +typedef struct CfgSetTimeOffset +{ + /* VAR_INPUT (analog) */ + signed short timeoffset; + 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; +} CfgSetTimeOffset_typ; + +typedef struct CfgSetNtpServer +{ + /* VAR_INPUT (analog) */ + unsigned long start; + 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; +} CfgSetNtpServer_typ; + +typedef struct CfgGetNtpsData +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long run; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetNtpsData_typ; + +typedef struct CfgSetNtpClient +{ + /* VAR_INPUT (analog) */ + unsigned long start; + unsigned long pServerAddress1; + unsigned long pServerAddress2; + unsigned long pServerAddress3; + unsigned long pServerAddress4; + 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; +} CfgSetNtpClient_typ; + +typedef struct CfgGetNtpcData +{ + /* VAR_INPUT (analog) */ + unsigned long pServerAddress1; + unsigned long pServerAddress2; + unsigned long pServerAddress3; + unsigned long pServerAddress4; + unsigned char len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long run; + unsigned long syncStatus; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetNtpcData_typ; + +typedef struct CfgGetTimeZone +{ + /* VAR_OUTPUT (analog) */ + unsigned short timezoneID; + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetTimeZone_typ; + +typedef struct CfgSetTimeZone +{ + /* VAR_INPUT (analog) */ + unsigned short timezoneID; + 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; +} CfgSetTimeZone_typ; + +typedef struct CfgGetTimeZoneInfo +{ + /* VAR_INPUT (analog) */ + unsigned short timezoneID; + /* VAR_OUTPUT (analog) */ + signed short gmt; + signed short gmtDst; + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetTimeZoneInfo_typ; + +typedef struct CfgGetTimeZoneEntry +{ + /* VAR_INPUT (analog) */ + unsigned short timezoneID; + unsigned short year; + /* VAR_OUTPUT (analog) */ + plcdt dateDst; + plcdt dateNormal; + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetTimeZoneEntry_typ; + +typedef struct CfgGetDst +{ + /* 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; + /* VAR_OUTPUT (digital) */ + plcbit dst; +} CfgGetDst_typ; + +typedef struct CfgSetDst +{ + /* VAR_INPUT (analog) */ + 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; + plcbit dst; +} CfgSetDst_typ; + +typedef struct CfgGetCIFSDomain +{ + /* VAR_INPUT (analog) */ + unsigned long pDomain; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned char isWorkgroup; + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetCIFSDomain_typ; + +typedef struct CfgSetCIFSDomain +{ + /* VAR_INPUT (analog) */ + unsigned long pDomain; + unsigned char isWorkgroup; + 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; +} CfgSetCIFSDomain_typ; + +typedef struct CfgGetCIFSDefaultuser +{ + /* VAR_INPUT (analog) */ + unsigned long pDefaultuser; + unsigned char lenUser; + unsigned long pDefaultpassword; + unsigned char lenPassword; + /* 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; +} CfgGetCIFSDefaultuser_typ; + +typedef struct CfgSetCIFSDefaultuser +{ + /* VAR_INPUT (analog) */ + unsigned long pDefaultuser; + unsigned long pDefaultpassword; + 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; +} CfgSetCIFSDefaultuser_typ; + +typedef struct CfgSetDhcpServer +{ + /* VAR_INPUT (analog) */ + unsigned long start; + 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; +} CfgSetDhcpServer_typ; + +typedef struct CfgSetDhcpsData +{ + /* VAR_INPUT (analog) */ + unsigned long pInterfaceList; + unsigned long pLeases; + unsigned long numLeases; + 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; +} CfgSetDhcpsData_typ; + +typedef struct CfgGetDhcpsData +{ + /* VAR_INPUT (analog) */ + unsigned long pInterfaceList; + unsigned long len; + unsigned long pLeases; + unsigned long numLeases; + /* VAR_OUTPUT (analog) */ + unsigned long startMode; + unsigned long numNeeded; + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetDhcpsData_typ; + +typedef struct CfgSetDhcpcOption +{ + /* VAR_INPUT (analog) */ + unsigned char code; + unsigned char length; + unsigned long pValue; + unsigned long pDevice; + 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; +} CfgSetDhcpcOption_typ; + +typedef struct CfgSetSdmStatus +{ + /* VAR_INPUT (analog) */ + unsigned long start; + 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; +} CfgSetSdmStatus_typ; + +typedef struct CfgGetSdmStatus +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long run; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetSdmStatus_typ; + +typedef struct CfgSetSdmColor +{ + /* VAR_INPUT (analog) */ + unsigned long red; + unsigned long green; + unsigned long blue; + 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; +} CfgSetSdmColor_typ; + +typedef struct CfgGetSdmColor +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long red; + unsigned long green; + unsigned long blue; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetSdmColor_typ; + +typedef struct CfgGetSdmCustomData1 +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long lenDevice; + unsigned long pFile; + unsigned long lenFile; + unsigned long pDatamodule; + unsigned long lenDatamodule; + /* 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; +} CfgGetSdmCustomData1_typ; + +typedef struct CfgSetSdmCustomData1 +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pFile; + unsigned long pDatamodule; + 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; +} CfgSetSdmCustomData1_typ; + +typedef struct CfgGetSdmCustomData2 +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long lenDevice; + unsigned long pFile; + unsigned long lenFile; + unsigned long pDatamodule; + unsigned long lenDatamodule; + /* 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; +} CfgGetSdmCustomData2_typ; + +typedef struct CfgSetSdmCustomData2 +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pFile; + unsigned long pDatamodule; + 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; +} CfgSetSdmCustomData2_typ; + +typedef struct CfgGetWebMimeType +{ + /* VAR_INPUT (analog) */ + unsigned long pFileExtension; + unsigned long pMimeType; + 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; +} CfgGetWebMimeType_typ; + +typedef struct CfgSetWebMimeType +{ + /* VAR_INPUT (analog) */ + unsigned long pFileExtension; + unsigned long pMimeType; + 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; + plcbit mode; +} CfgSetWebMimeType_typ; + +typedef struct CfgGetWebServerHttpsConfig +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + plcstring sslCfgName[256]; + unsigned short port; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetWebServerHttpsConfig_typ; + +typedef struct CfgGetWebServerPort +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short port; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetWebServerPort_typ; + +typedef struct CfgGetWebServerDevice +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + 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; +} CfgGetWebServerDevice_typ; + +typedef struct CfgGetWebAspGoform +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short mode; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetWebAspGoform_typ; + +typedef struct CfgSetWebAspGoform +{ + /* VAR_INPUT (analog) */ + unsigned short mode; + 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; +} CfgSetWebAspGoform_typ; + +typedef struct CfgGetWebServerStatus +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short mode; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetWebServerStatus_typ; + +typedef struct CfgSetWebServerStatus +{ + /* VAR_INPUT (analog) */ + unsigned short mode; + 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; +} CfgSetWebServerStatus_typ; + +typedef struct CfgSetDns +{ + /* VAR_INPUT (analog) */ + unsigned short mode; + unsigned long pSuffix; + unsigned long pDnsAddr1; + unsigned long pDnsAddr2; + unsigned long pDnsAddr3; + 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; +} CfgSetDns_typ; + +typedef struct CfgGetDnsMode +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short mode; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetDnsMode_typ; + +typedef struct CfgSetDnsMode +{ + /* VAR_INPUT (analog) */ + unsigned short mode; + /* 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; +} CfgSetDnsMode_typ; + +typedef struct CfgGetDnsSuffix +{ + /* VAR_INPUT (analog) */ + unsigned long pSuffix; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetDnsSuffix_typ; + +typedef struct CfgSetDnsSuffix +{ + /* VAR_INPUT (analog) */ + unsigned long pSuffix; + /* 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; +} CfgSetDnsSuffix_typ; + +typedef struct CfgGetDnsAddress +{ + /* VAR_INPUT (analog) */ + unsigned long pDnsAddr1; + unsigned long pDnsAddr2; + unsigned long pDnsAddr3; + unsigned char Len1; + unsigned char Len2; + unsigned char Len3; + /* 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; +} CfgGetDnsAddress_typ; + +typedef struct CfgSetDnsAddress +{ + /* VAR_INPUT (analog) */ + unsigned long pDnsAddr1; + unsigned long pDnsAddr2; + unsigned long pDnsAddr3; + /* 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; +} CfgSetDnsAddress_typ; + +typedef struct CfgRouteAdd +{ + /* VAR_INPUT (analog) */ + unsigned long pIPAddr; + unsigned long pSubnetMask; + unsigned long pGateway; + /* 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; +} CfgRouteAdd_typ; + +typedef struct CfgRouteDelete +{ + /* VAR_INPUT (analog) */ + unsigned long pIPAddr; + unsigned long pSubnetMask; + unsigned long pGateway; + /* 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; +} CfgRouteDelete_typ; + +typedef struct CfgSetSnmpMode +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned short mode; + 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; +} CfgSetSnmpMode_typ; + +typedef struct CfgGetSnmpMode +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short mode; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetSnmpMode_typ; + +typedef struct CfgSetSnmpCredentials +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pUserName; + unsigned long pAuthPassphrase; + unsigned long pPrivPassphrase; + 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; +} CfgSetSnmpCredentials_typ; + +typedef struct CfgSetNetworkInstallMode +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long netInstTimeout; + 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; + plcbit netInstEnable; +} CfgSetNetworkInstallMode_typ; + +typedef struct CfgGetNetworkInstallMode +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long netInstTimeout; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; + /* VAR_OUTPUT (digital) */ + plcbit netInstEnabled; +} CfgGetNetworkInstallMode_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void CfgGetInaNode(struct CfgGetInaNode* inst); +_BUR_PUBLIC void CfgSetInaNode(struct CfgSetInaNode* inst); +_BUR_PUBLIC void CfgGetIPAddr(struct CfgGetIPAddr* inst); +_BUR_PUBLIC void CfgSetIPAddr(struct CfgSetIPAddr* inst); +_BUR_PUBLIC void CfgGetSubnetMask(struct CfgGetSubnetMask* inst); +_BUR_PUBLIC void CfgSetSubnetMask(struct CfgSetSubnetMask* inst); +_BUR_PUBLIC void CfgGetClusterIPAddr(struct CfgGetClusterIPAddr* inst); +_BUR_PUBLIC void CfgSetClusterIPAddr(struct CfgSetClusterIPAddr* inst); +_BUR_PUBLIC void CfgGetDefaultGateway(struct CfgGetDefaultGateway* inst); +_BUR_PUBLIC void CfgSetDefaultGateway(struct CfgSetDefaultGateway* inst); +_BUR_PUBLIC void CfgGetBroadcastAddr(struct CfgGetBroadcastAddr* inst); +_BUR_PUBLIC void CfgGetEthBaudrate(struct CfgGetEthBaudrate* inst); +_BUR_PUBLIC void CfgSetEthBaudrate(struct CfgSetEthBaudrate* inst); +_BUR_PUBLIC void CfgGetEthConfigMode(struct CfgGetEthConfigMode* inst); +_BUR_PUBLIC void CfgSetEthConfigMode(struct CfgSetEthConfigMode* inst); +_BUR_PUBLIC void CfgGetHostName(struct CfgGetHostName* inst); +_BUR_PUBLIC void CfgSetHostName(struct CfgSetHostName* inst); +_BUR_PUBLIC void CfgGetHostNameIf(struct CfgGetHostNameIf* inst); +_BUR_PUBLIC void CfgSetHostNameIf(struct CfgSetHostNameIf* inst); +_BUR_PUBLIC void CfgGetMacAddr(struct CfgGetMacAddr* inst); +_BUR_PUBLIC void CfgSetFTPServer(struct CfgSetFTPServer* inst); +_BUR_PUBLIC void CfgGetFTPServerPort(struct CfgGetFTPServerPort* inst); +_BUR_PUBLIC void CfgSetFTPServerPort(struct CfgSetFTPServerPort* inst); +_BUR_PUBLIC void CfgGetFTPServerBaseDataPort(struct CfgGetFTPServerBaseDataPort* inst); +_BUR_PUBLIC void CfgSetFTPServerBaseDataPort(struct CfgSetFTPServerBaseDataPort* inst); +_BUR_PUBLIC void CfgGetTimeOffset(struct CfgGetTimeOffset* inst); +_BUR_PUBLIC void CfgSetTimeOffset(struct CfgSetTimeOffset* inst); +_BUR_PUBLIC void CfgSetNtpServer(struct CfgSetNtpServer* inst); +_BUR_PUBLIC void CfgGetNtpsData(struct CfgGetNtpsData* inst); +_BUR_PUBLIC void CfgSetNtpClient(struct CfgSetNtpClient* inst); +_BUR_PUBLIC void CfgGetNtpcData(struct CfgGetNtpcData* inst); +_BUR_PUBLIC void CfgGetTimeZone(struct CfgGetTimeZone* inst); +_BUR_PUBLIC void CfgSetTimeZone(struct CfgSetTimeZone* inst); +_BUR_PUBLIC void CfgGetTimeZoneInfo(struct CfgGetTimeZoneInfo* inst); +_BUR_PUBLIC void CfgGetTimeZoneEntry(struct CfgGetTimeZoneEntry* inst); +_BUR_PUBLIC void CfgGetDst(struct CfgGetDst* inst); +_BUR_PUBLIC void CfgSetDst(struct CfgSetDst* inst); +_BUR_PUBLIC void CfgGetCIFSDomain(struct CfgGetCIFSDomain* inst); +_BUR_PUBLIC void CfgSetCIFSDomain(struct CfgSetCIFSDomain* inst); +_BUR_PUBLIC void CfgGetCIFSDefaultuser(struct CfgGetCIFSDefaultuser* inst); +_BUR_PUBLIC void CfgSetCIFSDefaultuser(struct CfgSetCIFSDefaultuser* inst); +_BUR_PUBLIC void CfgSetDhcpServer(struct CfgSetDhcpServer* inst); +_BUR_PUBLIC void CfgSetDhcpsData(struct CfgSetDhcpsData* inst); +_BUR_PUBLIC void CfgGetDhcpsData(struct CfgGetDhcpsData* inst); +_BUR_PUBLIC void CfgSetDhcpcOption(struct CfgSetDhcpcOption* inst); +_BUR_PUBLIC void CfgSetSdmStatus(struct CfgSetSdmStatus* inst); +_BUR_PUBLIC void CfgGetSdmStatus(struct CfgGetSdmStatus* inst); +_BUR_PUBLIC void CfgSetSdmColor(struct CfgSetSdmColor* inst); +_BUR_PUBLIC void CfgGetSdmColor(struct CfgGetSdmColor* inst); +_BUR_PUBLIC void CfgGetSdmCustomData1(struct CfgGetSdmCustomData1* inst); +_BUR_PUBLIC void CfgSetSdmCustomData1(struct CfgSetSdmCustomData1* inst); +_BUR_PUBLIC void CfgGetSdmCustomData2(struct CfgGetSdmCustomData2* inst); +_BUR_PUBLIC void CfgSetSdmCustomData2(struct CfgSetSdmCustomData2* inst); +_BUR_PUBLIC void CfgGetWebMimeType(struct CfgGetWebMimeType* inst); +_BUR_PUBLIC void CfgSetWebMimeType(struct CfgSetWebMimeType* inst); +_BUR_PUBLIC void CfgGetWebServerHttpsConfig(struct CfgGetWebServerHttpsConfig* inst); +_BUR_PUBLIC void CfgGetWebServerPort(struct CfgGetWebServerPort* inst); +_BUR_PUBLIC void CfgGetWebServerDevice(struct CfgGetWebServerDevice* inst); +_BUR_PUBLIC void CfgGetWebAspGoform(struct CfgGetWebAspGoform* inst); +_BUR_PUBLIC void CfgSetWebAspGoform(struct CfgSetWebAspGoform* inst); +_BUR_PUBLIC void CfgGetWebServerStatus(struct CfgGetWebServerStatus* inst); +_BUR_PUBLIC void CfgSetWebServerStatus(struct CfgSetWebServerStatus* inst); +_BUR_PUBLIC void CfgSetDns(struct CfgSetDns* inst); +_BUR_PUBLIC void CfgGetDnsMode(struct CfgGetDnsMode* inst); +_BUR_PUBLIC void CfgSetDnsMode(struct CfgSetDnsMode* inst); +_BUR_PUBLIC void CfgGetDnsSuffix(struct CfgGetDnsSuffix* inst); +_BUR_PUBLIC void CfgSetDnsSuffix(struct CfgSetDnsSuffix* inst); +_BUR_PUBLIC void CfgGetDnsAddress(struct CfgGetDnsAddress* inst); +_BUR_PUBLIC void CfgSetDnsAddress(struct CfgSetDnsAddress* inst); +_BUR_PUBLIC void CfgRouteAdd(struct CfgRouteAdd* inst); +_BUR_PUBLIC void CfgRouteDelete(struct CfgRouteDelete* inst); +_BUR_PUBLIC void CfgSetSnmpMode(struct CfgSetSnmpMode* inst); +_BUR_PUBLIC void CfgGetSnmpMode(struct CfgGetSnmpMode* inst); +_BUR_PUBLIC void CfgSetSnmpCredentials(struct CfgSetSnmpCredentials* inst); +_BUR_PUBLIC void CfgSetNetworkInstallMode(struct CfgSetNetworkInstallMode* inst); +_BUR_PUBLIC void CfgGetNetworkInstallMode(struct CfgGetNetworkInstallMode* inst); +_BUR_PUBLIC unsigned short CfgClearNV(void); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define cfgTIMEOUT_WAITFOREVER 4294967295U + #define cfgSNMP_MODE_READ_WRITE_SECURE 4U + #define cfgSNMP_MODE_READ_ONLY_SECURE 3U + #define cfgSNMP_MODE_READ_WRITE 2U + #define cfgSNMP_MODE_READ_ONLY 1U + #define cfgSNMP_MODE_DISABLED 0U + #define cfgDHCP_OPTION_CLIENT_ID 61U + #define cfgDHCP_OPTION_VENDOR_CLASS_ID 60U + #define cfgSDM_COLOR_DEFAULT 2147483648U + #define cfgSTATUS_NTP_INACTIVE 0U + #define cfgSTATUS_NTP_ACTIVE 1U + #define cfgNTP_STOP 0U + #define cfgNTP_START 1U + #define cfgOPTION_DNS_ON_DHCP 2U + #define cfgOPTION_DNS_ON_CONFIG 1U + #define cfgOPTION_DNS_OFF 0U + #define cfgWEB_MODE_ENABLED 1U + #define cfgWEB_MODE_DISABLED 0U + #define cfgWEB_MODE_MIME_ADD 1U + #define cfgWEB_MODE_MIME_DEL 0U + #define cfgWEB_MODE_GOFORM_NO_WRITE 2U + #define cfgWEB_MODE_GOFORM_ENABLE 1U + #define cfgWEB_MODE_GOFORM_DISABLE 0U + #define cfgSTATUS_SDM_DISABLED 2U + #define cfgSTATUS_SDM_ENABLED 1U + #define cfgOPTION_DISABLE_SDM 2U + #define cfgOPTION_ENABLE_SDM 1U + #define cfgOPTION_NON_WORKGROUP 0U + #define cfgOPTION_WORKGROUP 1U + #define cfgOPTION_ENABLE 1U + #define cfgOPTION_DISABLE 0U + #define cfgCONFIGMODE_DHCPCLIENT 1U + #define cfgCONFIGMODE_MANUALLY 0U + #define cfgOPTION_VOLATILE 0U + #define cfgOPTION_NON_VOLATILE 1U + #define cfgETHBAUDRATE_1000FD 1001U + #define cfgETHBAUDRATE_100AUTO 102U + #define cfgETHBAUDRATE_100FD 101U + #define cfgETHBAUDRATE_100 100U + #define cfgETHBAUDRATE_10AUTO 12U + #define cfgETHBAUDRATE_10FD 11U + #define cfgETHBAUDRATE_10 10U + #define cfgETHBAUDRATE_AUTO 0U + #define cfgERR_PORT_INVALID 29036U + #define cfgERR_DST 29035U + #define cfgERR_ROUTE_TABLE 29034U + #define cfgERR_NTP_CLIENT 29033U + #define cfgERR_NTP_SERVER 29032U + #define cfgERR_DHCP_NO_DHCP_IP_OBTAINED 29031U + #define cfgERR_WEBSERV_DISABLED 29030U + #define cfgERR_SDM_DISABLED 29029U + #define cfgERR_FUNCTION_NOT_FOUND 29028U + #define cfgERR_CLEAR_NV_DATA 29027U + #define cfgERR_SDM_FUNCTION_NOT_FOUND 29026U + #define cfgERR_DHCP_CONFIG 29025U + #define cfgERR_LEASE_TIMEOUT 29024U + #define cfgERR_LEASE_EXISTS 29023U + #define cfgERR_LEASES_BUFFER 29022U + #define cfgERR_INTERFACELIST_BUFFER 29021U + #define cfgERR_DHCP_SERVER_STARTED 29020U + #define cfgERR_CIFS_DEFAULTPW_INVALID 29019U + #define cfgERR_INANODE_NUMBER_SET 29018U + #define cfgERR_CIFS_DEFAULTUSER_INVALID 29017U + #define cfgERR_CIFS_DOMAIN_INVALID 29016U + #define cfgERR_YEAR_INVALID 29015U + #define cfgERR_TIMEZONE 29014U + #define cfgERR_SYSTEM 29013U + #define cfgERR_PARAM_NOT_SET 29009U + #define cfgERR_FTP_SDOWN 29008U + #define cfgERR_FTP_SINIT 29007U + #define cfgERR_INANODE_NOT_SUPPORTED 29006U + #define cfgERR_ARREG 29005U + #define cfgERR_SET_NOT_POSSIBLE 29004U + #define cfgERR_VALUE_INVALID 29003U + #define cfgERR_OPTION_INVALID 29002U + #define cfgERR_DEVICE_INVALID 29001U + #define cfgERR_DEVICE_NOT_EXIST 29000U +#else + _GLOBAL_CONST unsigned long cfgTIMEOUT_WAITFOREVER; + _GLOBAL_CONST unsigned short cfgSNMP_MODE_READ_WRITE_SECURE; + _GLOBAL_CONST unsigned short cfgSNMP_MODE_READ_ONLY_SECURE; + _GLOBAL_CONST unsigned short cfgSNMP_MODE_READ_WRITE; + _GLOBAL_CONST unsigned short cfgSNMP_MODE_READ_ONLY; + _GLOBAL_CONST unsigned short cfgSNMP_MODE_DISABLED; + _GLOBAL_CONST unsigned char cfgDHCP_OPTION_CLIENT_ID; + _GLOBAL_CONST unsigned char cfgDHCP_OPTION_VENDOR_CLASS_ID; + _GLOBAL_CONST unsigned long cfgSDM_COLOR_DEFAULT; + _GLOBAL_CONST unsigned short cfgSTATUS_NTP_INACTIVE; + _GLOBAL_CONST unsigned short cfgSTATUS_NTP_ACTIVE; + _GLOBAL_CONST unsigned short cfgNTP_STOP; + _GLOBAL_CONST unsigned short cfgNTP_START; + _GLOBAL_CONST unsigned char cfgOPTION_DNS_ON_DHCP; + _GLOBAL_CONST unsigned char cfgOPTION_DNS_ON_CONFIG; + _GLOBAL_CONST unsigned char cfgOPTION_DNS_OFF; + _GLOBAL_CONST unsigned short cfgWEB_MODE_ENABLED; + _GLOBAL_CONST unsigned short cfgWEB_MODE_DISABLED; + _GLOBAL_CONST unsigned short cfgWEB_MODE_MIME_ADD; + _GLOBAL_CONST unsigned short cfgWEB_MODE_MIME_DEL; + _GLOBAL_CONST unsigned short cfgWEB_MODE_GOFORM_NO_WRITE; + _GLOBAL_CONST unsigned short cfgWEB_MODE_GOFORM_ENABLE; + _GLOBAL_CONST unsigned short cfgWEB_MODE_GOFORM_DISABLE; + _GLOBAL_CONST unsigned char cfgSTATUS_SDM_DISABLED; + _GLOBAL_CONST unsigned char cfgSTATUS_SDM_ENABLED; + _GLOBAL_CONST unsigned char cfgOPTION_DISABLE_SDM; + _GLOBAL_CONST unsigned char cfgOPTION_ENABLE_SDM; + _GLOBAL_CONST unsigned char cfgOPTION_NON_WORKGROUP; + _GLOBAL_CONST unsigned char cfgOPTION_WORKGROUP; + _GLOBAL_CONST unsigned long cfgOPTION_ENABLE; + _GLOBAL_CONST unsigned long cfgOPTION_DISABLE; + _GLOBAL_CONST unsigned long cfgCONFIGMODE_DHCPCLIENT; + _GLOBAL_CONST unsigned long cfgCONFIGMODE_MANUALLY; + _GLOBAL_CONST unsigned long cfgOPTION_VOLATILE; + _GLOBAL_CONST unsigned long cfgOPTION_NON_VOLATILE; + _GLOBAL_CONST unsigned long cfgETHBAUDRATE_1000FD; + _GLOBAL_CONST unsigned long cfgETHBAUDRATE_100AUTO; + _GLOBAL_CONST unsigned long cfgETHBAUDRATE_100FD; + _GLOBAL_CONST unsigned long cfgETHBAUDRATE_100; + _GLOBAL_CONST unsigned long cfgETHBAUDRATE_10AUTO; + _GLOBAL_CONST unsigned long cfgETHBAUDRATE_10FD; + _GLOBAL_CONST unsigned long cfgETHBAUDRATE_10; + _GLOBAL_CONST unsigned long cfgETHBAUDRATE_AUTO; + _GLOBAL_CONST unsigned short cfgERR_PORT_INVALID; + _GLOBAL_CONST unsigned short cfgERR_DST; + _GLOBAL_CONST unsigned short cfgERR_ROUTE_TABLE; + _GLOBAL_CONST unsigned short cfgERR_NTP_CLIENT; + _GLOBAL_CONST unsigned short cfgERR_NTP_SERVER; + _GLOBAL_CONST unsigned short cfgERR_DHCP_NO_DHCP_IP_OBTAINED; + _GLOBAL_CONST unsigned short cfgERR_WEBSERV_DISABLED; + _GLOBAL_CONST unsigned short cfgERR_SDM_DISABLED; + _GLOBAL_CONST unsigned short cfgERR_FUNCTION_NOT_FOUND; + _GLOBAL_CONST unsigned short cfgERR_CLEAR_NV_DATA; + _GLOBAL_CONST unsigned short cfgERR_SDM_FUNCTION_NOT_FOUND; + _GLOBAL_CONST unsigned short cfgERR_DHCP_CONFIG; + _GLOBAL_CONST unsigned short cfgERR_LEASE_TIMEOUT; + _GLOBAL_CONST unsigned short cfgERR_LEASE_EXISTS; + _GLOBAL_CONST unsigned short cfgERR_LEASES_BUFFER; + _GLOBAL_CONST unsigned short cfgERR_INTERFACELIST_BUFFER; + _GLOBAL_CONST unsigned short cfgERR_DHCP_SERVER_STARTED; + _GLOBAL_CONST unsigned short cfgERR_CIFS_DEFAULTPW_INVALID; + _GLOBAL_CONST unsigned short cfgERR_INANODE_NUMBER_SET; + _GLOBAL_CONST unsigned short cfgERR_CIFS_DEFAULTUSER_INVALID; + _GLOBAL_CONST unsigned short cfgERR_CIFS_DOMAIN_INVALID; + _GLOBAL_CONST unsigned short cfgERR_YEAR_INVALID; + _GLOBAL_CONST unsigned short cfgERR_TIMEZONE; + _GLOBAL_CONST unsigned short cfgERR_SYSTEM; + _GLOBAL_CONST unsigned short cfgERR_PARAM_NOT_SET; + _GLOBAL_CONST unsigned short cfgERR_FTP_SDOWN; + _GLOBAL_CONST unsigned short cfgERR_FTP_SINIT; + _GLOBAL_CONST unsigned short cfgERR_INANODE_NOT_SUPPORTED; + _GLOBAL_CONST unsigned short cfgERR_ARREG; + _GLOBAL_CONST unsigned short cfgERR_SET_NOT_POSSIBLE; + _GLOBAL_CONST unsigned short cfgERR_VALUE_INVALID; + _GLOBAL_CONST unsigned short cfgERR_OPTION_INVALID; + _GLOBAL_CONST unsigned short cfgERR_DEVICE_INVALID; + _GLOBAL_CONST unsigned short cfgERR_DEVICE_NOT_EXIST; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASARCFG_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsARCfg/SGC/AsARCfg.h b/example/AsProject/Logical/Libraries/_AS/AsARCfg/SGC/AsARCfg.h new file mode 100644 index 0000000..a2d6d4d --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsARCfg/SGC/AsARCfg.h @@ -0,0 +1,272 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASARCFG_ +#define _ASARCFG_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define cfgSTATUS_SDM_DISABLED 2U + #define cfgSTATUS_SDM_ENABLED 1U + #define cfgOPTION_DISABLE_SDM 2U + #define cfgOPTION_ENABLE_SDM 1U + #define cfgOPTION_NON_WORKGROUP 0U + #define cfgOPTION_WORKGROUP 1U + #define cfgOPTION_ENABLE 1U + #define cfgOPTION_DISABLE 0U + #define cfgCONFIGMODE_DHCPCLIENT 1U + #define cfgCONFIGMODE_MANUALLY 0U + #define cfgOPTION_VOLATILE 0U + #define cfgOPTION_NON_VOLATILE 1U + #define cfgETHBAUDRATE_1000FD 1001U + #define cfgETHBAUDRATE_100FD 101U + #define cfgETHBAUDRATE_100 100U + #define cfgETHBAUDRATE_10FD 11U + #define cfgETHBAUDRATE_10 10U + #define cfgETHBAUDRATE_AUTO 0U + #define cfgERR_CLEAR_NV_DATA 29027U + #define cfgERR_SDM_FUNCTION_NOT_FOUND 29026U + #define cfgERR_LEASE_TIMEOUT 29024U + #define cfgERR_LEASE_EXISTS 29023U + #define cfgERR_LEASES_BUFFER 29022U + #define cfgERR_INTERFACELIST_BUFFER 29021U + #define cfgERR_DHCP_SERVER_STARTED 29020U + #define cfgERR_CIFS_DEFAULTPW_INVALID 29019U + #define cfgERR_INANODE_NUMBER_SET 29018U + #define cfgERR_CIFS_DEFAULTUSER_INVALID 29017U + #define cfgERR_CIFS_DOMAIN_INVALID 29016U + #define cfgERR_YEAR_INVALID 29015U + #define cfgERR_TIMEZONE 29014U + #define cfgERR_SYSTEM 29013U + #define cfgERR_SNTP_INTERVAL 29012U + #define cfgERR_SNTP_CLIENT 29011U + #define cfgERR_SNTP_SERVER 29010U + #define cfgERR_PARAM_NOT_SET 29009U + #define cfgERR_FTP_SDOWN 29008U + #define cfgERR_FTP_SINIT 29007U + #define cfgERR_INANODE_NOT_SUPPORTED 29006U + #define cfgERR_ARREG 29005U + #define cfgERR_SET_NOT_POSSIBLE 29004U + #define cfgERR_VALUE_INVALID 29003U + #define cfgERR_OPTION_INVALID 29002U + #define cfgERR_DEVICE_INVALID 29001U + #define cfgERR_DEVICE_NOT_EXIST 29000U +#else + _IEC_CONST unsigned char cfgSTATUS_SDM_DISABLED = 2U; + _IEC_CONST unsigned char cfgSTATUS_SDM_ENABLED = 1U; + _IEC_CONST unsigned char cfgOPTION_DISABLE_SDM = 2U; + _IEC_CONST unsigned char cfgOPTION_ENABLE_SDM = 1U; + _IEC_CONST unsigned char cfgOPTION_NON_WORKGROUP = 0U; + _IEC_CONST unsigned char cfgOPTION_WORKGROUP = 1U; + _IEC_CONST unsigned long cfgOPTION_ENABLE = 1U; + _IEC_CONST unsigned long cfgOPTION_DISABLE = 0U; + _IEC_CONST unsigned long cfgCONFIGMODE_DHCPCLIENT = 1U; + _IEC_CONST unsigned long cfgCONFIGMODE_MANUALLY = 0U; + _IEC_CONST unsigned long cfgOPTION_VOLATILE = 0U; + _IEC_CONST unsigned long cfgOPTION_NON_VOLATILE = 1U; + _IEC_CONST unsigned long cfgETHBAUDRATE_1000FD = 1001U; + _IEC_CONST unsigned long cfgETHBAUDRATE_100FD = 101U; + _IEC_CONST unsigned long cfgETHBAUDRATE_100 = 100U; + _IEC_CONST unsigned long cfgETHBAUDRATE_10FD = 11U; + _IEC_CONST unsigned long cfgETHBAUDRATE_10 = 10U; + _IEC_CONST unsigned long cfgETHBAUDRATE_AUTO = 0U; + _IEC_CONST unsigned short cfgERR_CLEAR_NV_DATA = 29027U; + _IEC_CONST unsigned short cfgERR_SDM_FUNCTION_NOT_FOUND = 29026U; + _IEC_CONST unsigned short cfgERR_LEASE_TIMEOUT = 29024U; + _IEC_CONST unsigned short cfgERR_LEASE_EXISTS = 29023U; + _IEC_CONST unsigned short cfgERR_LEASES_BUFFER = 29022U; + _IEC_CONST unsigned short cfgERR_INTERFACELIST_BUFFER = 29021U; + _IEC_CONST unsigned short cfgERR_DHCP_SERVER_STARTED = 29020U; + _IEC_CONST unsigned short cfgERR_CIFS_DEFAULTPW_INVALID = 29019U; + _IEC_CONST unsigned short cfgERR_INANODE_NUMBER_SET = 29018U; + _IEC_CONST unsigned short cfgERR_CIFS_DEFAULTUSER_INVALID = 29017U; + _IEC_CONST unsigned short cfgERR_CIFS_DOMAIN_INVALID = 29016U; + _IEC_CONST unsigned short cfgERR_YEAR_INVALID = 29015U; + _IEC_CONST unsigned short cfgERR_TIMEZONE = 29014U; + _IEC_CONST unsigned short cfgERR_SYSTEM = 29013U; + _IEC_CONST unsigned short cfgERR_SNTP_INTERVAL = 29012U; + _IEC_CONST unsigned short cfgERR_SNTP_CLIENT = 29011U; + _IEC_CONST unsigned short cfgERR_SNTP_SERVER = 29010U; + _IEC_CONST unsigned short cfgERR_PARAM_NOT_SET = 29009U; + _IEC_CONST unsigned short cfgERR_FTP_SDOWN = 29008U; + _IEC_CONST unsigned short cfgERR_FTP_SINIT = 29007U; + _IEC_CONST unsigned short cfgERR_INANODE_NOT_SUPPORTED = 29006U; + _IEC_CONST unsigned short cfgERR_ARREG = 29005U; + _IEC_CONST unsigned short cfgERR_SET_NOT_POSSIBLE = 29004U; + _IEC_CONST unsigned short cfgERR_VALUE_INVALID = 29003U; + _IEC_CONST unsigned short cfgERR_OPTION_INVALID = 29002U; + _IEC_CONST unsigned short cfgERR_DEVICE_INVALID = 29001U; + _IEC_CONST unsigned short cfgERR_DEVICE_NOT_EXIST = 29000U; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct cfgLease_typ +{ plcstring name[9]; + plcstring startAdr[17]; + plcstring stopAdr[17]; + plcstring subnetMask[17]; + plcstring defaultGateway[17]; + signed long leaseTimeout; +} cfgLease_typ; + +typedef struct CfgGetInaNode +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char InaNode; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetInaNode_typ; + +typedef struct CfgGetIPAddr +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pIPAddr; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetIPAddr_typ; + +typedef struct CfgSetIPAddr +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pIPAddr; + unsigned long Option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgSetIPAddr_typ; + +typedef struct CfgGetSubnetMask +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pSubnetMask; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetSubnetMask_typ; + +typedef struct CfgSetSubnetMask +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pSubnetMask; + unsigned long Option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgSetSubnetMask_typ; + +typedef struct CfgGetDefaultGateway +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pGateway; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetDefaultGateway_typ; + +typedef struct CfgSetDefaultGateway +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pGateway; + unsigned long Option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgSetDefaultGateway_typ; + +typedef struct CfgGetMacAddr +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pMacAddr; + unsigned char Len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} CfgGetMacAddr_typ; + + + +/* Prototyping of functions and function blocks */ +void CfgGetInaNode(struct CfgGetInaNode* inst); +void CfgGetIPAddr(struct CfgGetIPAddr* inst); +void CfgSetIPAddr(struct CfgSetIPAddr* inst); +void CfgGetSubnetMask(struct CfgGetSubnetMask* inst); +void CfgSetSubnetMask(struct CfgSetSubnetMask* inst); +void CfgGetDefaultGateway(struct CfgGetDefaultGateway* inst); +void CfgSetDefaultGateway(struct CfgSetDefaultGateway* inst); +void CfgGetMacAddr(struct CfgGetMacAddr* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASARCFG_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsARCfg/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsARCfg/binary.lby new file mode 100644 index 0000000..e296426 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsARCfg/binary.lby @@ -0,0 +1,12 @@ + + + + + AsARCfg.fun + AsARCfg.typ + AsARCfg.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsArProf/AsArProf.fun b/example/AsProject/Logical/Libraries/_AS/AsArProf/AsArProf.fun new file mode 100644 index 0000000..33e52f2 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsArProf/AsArProf.fun @@ -0,0 +1,195 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK LogInstall (*installs a (logging) definition; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pVersion : {REDUND_UNREPLICABLE} UDINT; (*pointer to the definition verison, null if actual version should be used*) + pDefinition : {REDUND_UNREPLICABLE} UDINT; (*pointer to the profiler definition structure*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*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 LogDeInstall (*uninstalls a definition (profiling); asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + option : UDINT; (*reserved for future use*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*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 LogStateGet (*returns the current state of the AR profiler; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + logstate : USINT; (*ar profiler state*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK LogArchCreate (*archives a data object; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDevice : {REDUND_UNREPLICABLE} UDINT; (*device name given as a pointer, null for module archives*) + pName : {REDUND_UNREPLICABLE} UDINT; (*pointer to the archive name*) + option : UDINT; (*archive option (module or file archive)*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*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 LogArchDelete (*deletes an archived data object; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pName : {REDUND_UNREPLICABLE} UDINT; (*pointer to the name of module archive name to delete*) + option : UDINT; (*reserved for future use*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*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 LogArchCopy (*copy a archived data objects; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pModuleName : {REDUND_UNREPLICABLE} UDINT; (*pointer to the name of the module*) + pDevice : {REDUND_UNREPLICABLE} UDINT; (*pointer to the file device*) + pFileName : {REDUND_UNREPLICABLE} UDINT; (*pointer to the name of the pd-file*) + option : UDINT; (*options*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*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 LogArchInfo (*collects info of archived data objects; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pInfo : {REDUND_UNREPLICABLE} UDINT; (*pointer to the info structure field*) + maxEntries : UDINT; (*number of info entries provided*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + entries : UDINT; (*number of found data objects*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK LogStart (*starts an installed logging*) + VAR_INPUT + enable : BOOL; (*enables execution*) + 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 LogStop (*stops logging; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*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 LogEvent (*enters a user log event*) + VAR_INPUT + enable : BOOL; (*enables execution*) + objIdent : UDINT; (*identifier of the object (0-0xFFFFFFFF)*) + userEvent : UDINT; (*event ident (0-profUSER_EVENT_MAX)*) + pAddData : {REDUND_UNREPLICABLE} UDINT; (*pointer to the additional data*) + addDataLen : UDINT; (*length of additional data*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK LogIdleShow (*shows the idle time; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + measurementPeriod : UDINT; (*milliseconds in range (100 - 60000)*) + measurementLevel : UDINT; (*priority level in range (1 - 189)*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + totalTime : UDINT; (*total time of the measurement in microseconds*) + idleTime : UDINT; (*idle time during the measurement in microseconds*) + idleRate : UDINT; (*idle time during the measurement in percent*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION CpuGetNumberOfCores : UDINT (*get the number of cores of the CPU*) +END_FUNCTION + +{REDUND_OK} FUNCTION CpuGetLoadByCore : UDINT (*get the load of one CPU core. Range: 0..100*) + VAR_INPUT + core :UDINT; (*the number of the core, starting from 0 *) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION CpuIsCoreReserved : BOOL (*returns true when the core is reserved, and thus can only be used for specific IO tasks*) + VAR_INPUT + core :UDINT; (*the number of the core, starting from 0 *) + END_VAR +END_FUNCTION diff --git a/example/AsProject/Logical/Libraries/_AS/AsArProf/AsArProf.typ b/example/AsProject/Logical/Libraries/_AS/AsArProf/AsArProf.typ new file mode 100644 index 0000000..fbdf485 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsArProf/AsArProf.typ @@ -0,0 +1,24 @@ + +TYPE + PROFILER_DEFINITION : STRUCT (*profiler definition structure*) + logGroup : UDINT; (*profiling groups*) + logMode : UDINT; (*profiling mode*) + archMode : UDINT; (*archive mode*) + memTypeDef : UDINT; (*memory type for definition module*) + memTypeDat : UDINT; (*memory type for data module*) + bufferSize : UDINT; (*size of log buffer*) + backupLevel : UDINT; (*backup level*) + addDataSize : UDINT; (*max. size of additional data*) + addOsTskCnt : UDINT; (*space for additional os task information*) + libFctCnt : UDINT; (*number of library function names pointed by pLibFunctions*) + pLibFunctions : UDINT; (*pointer to the series of library function names*) + pArchDevice : UDINT; (*pointer to the archive file device name*) + END_STRUCT; + + PROFILER_MODINFO : STRUCT (*module info structure*) + name : STRING[63]; (*module name*) + length : UDINT; (*module length*) + cTime : DATE_AND_TIME; (*time of creation*) + mTime : DATE_AND_TIME; (*time of last modification*) + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsArProf/AsArProf.var b/example/AsProject/Logical/Libraries/_AS/AsArProf/AsArProf.var new file mode 100644 index 0000000..d24e2d2 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsArProf/AsArProf.var @@ -0,0 +1,84 @@ + +VAR CONSTANT + profIDLE_MEAS_LEVEL_1 : UDINT := 1; (*idle measurement level 1*) + profIDLE_MEAS_LEVEL_2 : UDINT := 50; (*idle measurement level 2*) + profIDLE_MEAS_LEVEL_3 : UDINT := 189; (*idle measurement level 3*) + profIDLE_MEAS_PERIOD_MAX : UDINT := 60000; (*idle measurement max. time period*) + profIDLE_MEAS_PERIOD_MIN : UDINT := 100; (*idle measurement min. time period*) + + profUSER_EVENT_MAX : UDINT := 16777215; (*max. user event ident*) + profUSER_EVENT_START : UDINT := 0; (*user event ident start*) + profUSER_EVENT_STOP : UDINT := 1; (*user event ident stop*) + + profARCHMOD_OPT_ERROR : UDINT := 16#00000001; (*archive mode after error*) + profARCHMOD_OPT_FILE : UDINT := 16#00000002; (*archive mode to file*) + profARCHMOD_OPT_STOP : UDINT := 16#00000004; (*archive mode after stop*) + profARCHMOD_OPT_NODEL : UDINT := 16#00000008; (*archive no delete*) + + profLOGGRP_TASK_SWITCH : UDINT := 16#00000001; (*log group os task switch*) + profLOGGRP_IRQ_HANDLER : UDINT := 16#00000002; (*log group interrupt handler*) + profLOGGRP_TC_TASK : UDINT := 16#00000004; (*log group cyclic task*) + profLOGGRP_LIB_FUNC : UDINT := 16#00000008; (*log group library functions*) + profLOGGRP_OS_TASK : UDINT := 16#00020000; (*log group os task creation / deletion*) + profLOGGRP_SYSTEM_EXC : UDINT := 16#00040000; (*log group system exception*) + profLOGGRP_PROCESSOR_EXC : UDINT := 16#00080000; (*log group processor exception*) + profLOGGRP_LOGGER : UDINT := 16#00100000; (*log group ar logger*) + profLOGGRP_SYSEVENT : UDINT := 16#00200000; (*log group system event*) + profLOGGRP_NMIEVENT : UDINT := 16#00400000; (*log group nmi event*) + profLOGGRP_TASKCLASS_INITUP : UDINT := 16#08000000; (*log group init up's*) + profLOGGRP_TASKCLASS_EXITUP : UDINT := 16#10000000; (*log group exit up's*) + profLOGGRP_TASKCLASS_EXC : UDINT := 16#20000000; (*log group exception taskclass*) + profLOGGRP_TASKCLASS_CYCLIC : UDINT := 16#40000000; (*log group cyclic taskclass*) + profLOGGRP_USEREVENT : UDINT := 16#80000000; (*log group user events*) + + profLOGGRP_USER : UDINT := 16#8000000C; (*log group collection*) + profLOGGRP_SYSTEM : UDINT := 16#00120003; (*log group collection*) + profLOGGRP_EXCP : UDINT := 16#000C0000; (*log group collection*) + profLOGGRP_TC : UDINT := 16#78000000; (*log group collection*) + profLOGGRP_ALL : UDINT := 16#F87E000F; (*log group collection*) + + profLOGMOD_UNTILFULL : UDINT := 16#00000000; (*log mode until buffer full*) + profLOGMOD_CONTINUOUS : UDINT := 16#00000001; (*log mode continuous*) + profLOGMOD_GETSTACK : UDINT := 16#00000002; (*log mode get stack only*) + profLOGMOD_NOAUTOSTART : UDINT := 16#00000004; (*log mode no automatic start*) + profLOGMOD_STARTUPINST : UDINT := 16#00000008; (*log mode installation during startup*) + + profMEMTYPE_DRAM : UDINT := 16#00000041; (*memory type dram*) + profMEMTYPE_USERROM : UDINT := 16#00000002; (*memory type userrom*) + profMEMTYPE_USERRAM : UDINT := 16#00000003; (*memory type userram*) + + profBKPLEVEL_EXCEPTION : UDINT := 0; (*backup level exception*) + profBKPLEVEL_SHUTDOWN : UDINT := 1; (*backup level shutdown*) + + profSTATE_INACTIVE : USINT := 2; (*state inactive*) + profSTATE_ACTIVE : USINT := 3; (*state active*) + profSTATE_STOPPED : USINT := 4; (*state stopped*) + profSTATE_RUNNING : USINT := 5; (*state running*) + profSTATE_READY : USINT := 6; (*state ready*) + profSTATE_R2R : USINT := 8; (*state ready to run*) + profSTATE_R2R_MAN : USINT := 9; (*state ready to run manually*) + + profERR_INACTIVE : UINT := 31000; (*error inactive*) + profERR_RUNNING : UINT := 31001; (*error running*) + profERR_NOTRUNNING : UINT := 31002; (*error not runnning*) + profERR_NOTR2R : UINT := 31003; (*error not ready to run*) + profERR_NOMEMORY : UINT := 31004; (*error no memory*) + profERR_CYCGETTAB : UINT := 31005; (*error get cyclic task information*) + profERR_SETUPBUFFER : UINT := 31006; (*error setup log buffer*) + profERR_DEFMODCREATE : UINT := 31007; (*error create definition module*) + profERR_DEFMODREAD : UINT := 31008; (*error read from definition module*) + profERR_DATMODINSTALL : UINT := 31009; (*error install data module*) + profERR_NODATMOD : UINT := 31010; (*error no data module*) + profERR_ARCHEXIST : UINT := 31011; (*error archive already exists*) + profERR_ARCHCREATE : UINT := 31012; (*error create archive*) + profERR_ARCHDELETE : UINT := 31013; (*error delete archive*) + profERR_DATMODSIZE : UINT := 31014; (*error data module memory (size/type)*) + profERR_START : UINT := 31015; (*error start profiling (rtk)*) + profERR_STOP : UINT := 31016; (*error stop profiling (rtk)*) + profERR_DATMODREAD : UINT := 31017; (*error read from data module*) + profERR_NOTCYCCTX : UINT := 31018; (*error called outside of cyclic context*) + profERR_DATMODINVALID : UINT := 31019; (*error invalid data module*) + profERR_VERSION_NOT_SUPPORTED : UINT := 31020; (*error version not supported*) + + profERR_PARAMETER : UINT := 31050; (*error fub parameter*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsArProf/SG3/AsArProf.h b/example/AsProject/Logical/Libraries/_AS/AsArProf/SG3/AsArProf.h new file mode 100644 index 0000000..a7ceb47 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsArProf/SG3/AsArProf.h @@ -0,0 +1,235 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASARPROF_ +#define _ASARPROF_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define profERR_PARAMETER 31050U + #define profERR_DATMODINVALID 31019U + #define profERR_NOTCYCCTX 31018U + #define profERR_DATMODREAD 31017U + #define profERR_STOP 31016U + #define profERR_START 31015U + #define profERR_DATMODSIZE 31014U + #define profERR_ARCHDELETE 31013U + #define profERR_ARCHCREATE 31012U + #define profERR_ARCHEXIST 31011U + #define profERR_NODATMOD 31010U + #define profERR_DATMODINSTALL 31009U + #define profERR_DEFMODREAD 31008U + #define profERR_DEFMODCREATE 31007U + #define profERR_SETUPBUFFER 31006U + #define profERR_CYCGETTAB 31005U + #define profERR_NOMEMORY 31004U + #define profERR_NOTR2R 31003U + #define profERR_NOTRUNNING 31002U + #define profERR_RUNNING 31001U + #define profERR_INACTIVE 31000U + #define profSTATE_R2R_MAN 9U + #define profSTATE_R2R 8U + #define profSTATE_READY 6U + #define profSTATE_RUNNING 5U + #define profSTATE_STOPPED 4U + #define profSTATE_ACTIVE 3U + #define profSTATE_INACTIVE 2U + #define profBKPLEVEL_SHUTDOWN 1U + #define profBKPLEVEL_EXCEPTION 0U + #define profMEMTYPE_USERRAM 3U + #define profMEMTYPE_USERROM 2U + #define profMEMTYPE_DRAM 65U + #define profLOGMOD_STARTUPINST 8U + #define profLOGMOD_NOAUTOSTART 4U + #define profLOGMOD_GETSTACK 2U + #define profLOGMOD_CONTINUOUS 1U + #define profLOGMOD_UNTILFULL 0U + #define profLOGGRP_ALL 4169007119U + #define profLOGGRP_TC 2013265920U + #define profLOGGRP_EXCP 786432U + #define profLOGGRP_SYSTEM 1179651U + #define profLOGGRP_USER 2147483660U + #define profLOGGRP_USEREVENT 2147483648U + #define profLOGGRP_TASKCLASS_CYCLIC 1073741824U + #define profLOGGRP_TASKCLASS_EXC 536870912U + #define profLOGGRP_TASKCLASS_EXITUP 268435456U + #define profLOGGRP_TASKCLASS_INITUP 134217728U + #define profLOGGRP_NMIEVENT 4194304U + #define profLOGGRP_SYSEVENT 2097152U + #define profLOGGRP_LOGGER 1048576U + #define profLOGGRP_PROCESSOR_EXC 524288U + #define profLOGGRP_SYSTEM_EXC 262144U + #define profLOGGRP_OS_TASK 131072U + #define profLOGGRP_LIB_FUNC 8U + #define profLOGGRP_TC_TASK 4U + #define profLOGGRP_IRQ_HANDLER 2U + #define profLOGGRP_TASK_SWITCH 1U + #define profARCHMOD_OPT_NODEL 8U + #define profARCHMOD_OPT_STOP 4U + #define profARCHMOD_OPT_FILE 2U + #define profARCHMOD_OPT_ERROR 1U + #define profUSER_EVENT_STOP 1U + #define profUSER_EVENT_START 0U + #define profUSER_EVENT_MAX 16777215U + #define profIDLE_MEAS_PERIOD_MIN 100U + #define profIDLE_MEAS_PERIOD_MAX 60000U + #define profIDLE_MEAS_LEVEL_3 189U + #define profIDLE_MEAS_LEVEL_2 50U + #define profIDLE_MEAS_LEVEL_1 1U +#else + _IEC_CONST unsigned short profERR_PARAMETER = 31050U; + _IEC_CONST unsigned short profERR_DATMODINVALID = 31019U; + _IEC_CONST unsigned short profERR_NOTCYCCTX = 31018U; + _IEC_CONST unsigned short profERR_DATMODREAD = 31017U; + _IEC_CONST unsigned short profERR_STOP = 31016U; + _IEC_CONST unsigned short profERR_START = 31015U; + _IEC_CONST unsigned short profERR_DATMODSIZE = 31014U; + _IEC_CONST unsigned short profERR_ARCHDELETE = 31013U; + _IEC_CONST unsigned short profERR_ARCHCREATE = 31012U; + _IEC_CONST unsigned short profERR_ARCHEXIST = 31011U; + _IEC_CONST unsigned short profERR_NODATMOD = 31010U; + _IEC_CONST unsigned short profERR_DATMODINSTALL = 31009U; + _IEC_CONST unsigned short profERR_DEFMODREAD = 31008U; + _IEC_CONST unsigned short profERR_DEFMODCREATE = 31007U; + _IEC_CONST unsigned short profERR_SETUPBUFFER = 31006U; + _IEC_CONST unsigned short profERR_CYCGETTAB = 31005U; + _IEC_CONST unsigned short profERR_NOMEMORY = 31004U; + _IEC_CONST unsigned short profERR_NOTR2R = 31003U; + _IEC_CONST unsigned short profERR_NOTRUNNING = 31002U; + _IEC_CONST unsigned short profERR_RUNNING = 31001U; + _IEC_CONST unsigned short profERR_INACTIVE = 31000U; + _IEC_CONST unsigned char profSTATE_R2R_MAN = 9U; + _IEC_CONST unsigned char profSTATE_R2R = 8U; + _IEC_CONST unsigned char profSTATE_READY = 6U; + _IEC_CONST unsigned char profSTATE_RUNNING = 5U; + _IEC_CONST unsigned char profSTATE_STOPPED = 4U; + _IEC_CONST unsigned char profSTATE_ACTIVE = 3U; + _IEC_CONST unsigned char profSTATE_INACTIVE = 2U; + _IEC_CONST unsigned long profBKPLEVEL_SHUTDOWN = 1U; + _IEC_CONST unsigned long profBKPLEVEL_EXCEPTION = 0U; + _IEC_CONST unsigned long profMEMTYPE_USERRAM = 3U; + _IEC_CONST unsigned long profMEMTYPE_USERROM = 2U; + _IEC_CONST unsigned long profMEMTYPE_DRAM = 65U; + _IEC_CONST unsigned long profLOGMOD_STARTUPINST = 8U; + _IEC_CONST unsigned long profLOGMOD_NOAUTOSTART = 4U; + _IEC_CONST unsigned long profLOGMOD_GETSTACK = 2U; + _IEC_CONST unsigned long profLOGMOD_CONTINUOUS = 1U; + _IEC_CONST unsigned long profLOGMOD_UNTILFULL = 0U; + _IEC_CONST unsigned long profLOGGRP_ALL = 4169007119U; + _IEC_CONST unsigned long profLOGGRP_TC = 2013265920U; + _IEC_CONST unsigned long profLOGGRP_EXCP = 786432U; + _IEC_CONST unsigned long profLOGGRP_SYSTEM = 1179651U; + _IEC_CONST unsigned long profLOGGRP_USER = 2147483660U; + _IEC_CONST unsigned long profLOGGRP_USEREVENT = 2147483648U; + _IEC_CONST unsigned long profLOGGRP_TASKCLASS_CYCLIC = 1073741824U; + _IEC_CONST unsigned long profLOGGRP_TASKCLASS_EXC = 536870912U; + _IEC_CONST unsigned long profLOGGRP_TASKCLASS_EXITUP = 268435456U; + _IEC_CONST unsigned long profLOGGRP_TASKCLASS_INITUP = 134217728U; + _IEC_CONST unsigned long profLOGGRP_NMIEVENT = 4194304U; + _IEC_CONST unsigned long profLOGGRP_SYSEVENT = 2097152U; + _IEC_CONST unsigned long profLOGGRP_LOGGER = 1048576U; + _IEC_CONST unsigned long profLOGGRP_PROCESSOR_EXC = 524288U; + _IEC_CONST unsigned long profLOGGRP_SYSTEM_EXC = 262144U; + _IEC_CONST unsigned long profLOGGRP_OS_TASK = 131072U; + _IEC_CONST unsigned long profLOGGRP_LIB_FUNC = 8U; + _IEC_CONST unsigned long profLOGGRP_TC_TASK = 4U; + _IEC_CONST unsigned long profLOGGRP_IRQ_HANDLER = 2U; + _IEC_CONST unsigned long profLOGGRP_TASK_SWITCH = 1U; + _IEC_CONST unsigned long profARCHMOD_OPT_NODEL = 8U; + _IEC_CONST unsigned long profARCHMOD_OPT_STOP = 4U; + _IEC_CONST unsigned long profARCHMOD_OPT_FILE = 2U; + _IEC_CONST unsigned long profARCHMOD_OPT_ERROR = 1U; + _IEC_CONST unsigned long profUSER_EVENT_STOP = 1U; + _IEC_CONST unsigned long profUSER_EVENT_START = 0U; + _IEC_CONST unsigned long profUSER_EVENT_MAX = 16777215U; + _IEC_CONST unsigned long profIDLE_MEAS_PERIOD_MIN = 100U; + _IEC_CONST unsigned long profIDLE_MEAS_PERIOD_MAX = 60000U; + _IEC_CONST unsigned long profIDLE_MEAS_LEVEL_3 = 189U; + _IEC_CONST unsigned long profIDLE_MEAS_LEVEL_2 = 50U; + _IEC_CONST unsigned long profIDLE_MEAS_LEVEL_1 = 1U; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct PROFILER_DEFINITION +{ unsigned long logGroup; + unsigned long logMode; + unsigned long archMode; + unsigned long memTypeDef; + unsigned long memTypeDat; + unsigned long bufferSize; + unsigned long backupLevel; + unsigned long addDataSize; + unsigned long addOsTskCnt; + unsigned long libFctCnt; + unsigned long pLibFunctions; + unsigned long pArchDevice; +} PROFILER_DEFINITION; + +typedef struct PROFILER_MODINFO +{ plcstring name[64]; + unsigned long length; + plcdt cTime; + plcdt mTime; +} PROFILER_MODINFO; + +typedef struct LogStart +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogStart_typ; + +typedef struct LogStop +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogStop_typ; + +typedef struct LogEvent +{ + /* VAR_INPUT (analog) */ + unsigned long objIdent; + unsigned long userEvent; + unsigned long pAddData; + unsigned long addDataLen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogEvent_typ; + + + +/* Prototyping of functions and function blocks */ +void LogStart(struct LogStart* inst); +void LogStop(struct LogStop* inst); +void LogEvent(struct LogEvent* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASARPROF_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsArProf/SG4/AsArProf.h b/example/AsProject/Logical/Libraries/_AS/AsArProf/SG4/AsArProf.h new file mode 100644 index 0000000..918c98f --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsArProf/SG4/AsArProf.h @@ -0,0 +1,362 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASARPROF_ +#define _ASARPROF_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef struct PROFILER_DEFINITION +{ unsigned long logGroup; + unsigned long logMode; + unsigned long archMode; + unsigned long memTypeDef; + unsigned long memTypeDat; + unsigned long bufferSize; + unsigned long backupLevel; + unsigned long addDataSize; + unsigned long addOsTskCnt; + unsigned long libFctCnt; + unsigned long pLibFunctions; + unsigned long pArchDevice; +} PROFILER_DEFINITION; + +typedef struct PROFILER_MODINFO +{ plcstring name[64]; + unsigned long length; + plcdt cTime; + plcdt mTime; +} PROFILER_MODINFO; + +typedef struct LogInstall +{ + /* VAR_INPUT (analog) */ + unsigned long pVersion; + unsigned long pDefinition; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogInstall_typ; + +typedef struct LogDeInstall +{ + /* VAR_INPUT (analog) */ + unsigned long option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogDeInstall_typ; + +typedef struct LogStateGet +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char logstate; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogStateGet_typ; + +typedef struct LogArchCreate +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pName; + unsigned long option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogArchCreate_typ; + +typedef struct LogArchDelete +{ + /* VAR_INPUT (analog) */ + unsigned long pName; + unsigned long option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogArchDelete_typ; + +typedef struct LogArchCopy +{ + /* VAR_INPUT (analog) */ + unsigned long pModuleName; + unsigned long pDevice; + unsigned long pFileName; + unsigned long option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogArchCopy_typ; + +typedef struct LogArchInfo +{ + /* VAR_INPUT (analog) */ + unsigned long pInfo; + unsigned long maxEntries; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long entries; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogArchInfo_typ; + +typedef struct LogStart +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogStart_typ; + +typedef struct LogStop +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogStop_typ; + +typedef struct LogEvent +{ + /* VAR_INPUT (analog) */ + unsigned long objIdent; + unsigned long userEvent; + unsigned long pAddData; + unsigned long addDataLen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogEvent_typ; + +typedef struct LogIdleShow +{ + /* VAR_INPUT (analog) */ + unsigned long measurementPeriod; + unsigned long measurementLevel; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long totalTime; + unsigned long idleTime; + unsigned long idleRate; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogIdleShow_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void LogInstall(struct LogInstall* inst); +_BUR_PUBLIC void LogDeInstall(struct LogDeInstall* inst); +_BUR_PUBLIC void LogStateGet(struct LogStateGet* inst); +_BUR_PUBLIC void LogArchCreate(struct LogArchCreate* inst); +_BUR_PUBLIC void LogArchDelete(struct LogArchDelete* inst); +_BUR_PUBLIC void LogArchCopy(struct LogArchCopy* inst); +_BUR_PUBLIC void LogArchInfo(struct LogArchInfo* inst); +_BUR_PUBLIC void LogStart(struct LogStart* inst); +_BUR_PUBLIC void LogStop(struct LogStop* inst); +_BUR_PUBLIC void LogEvent(struct LogEvent* inst); +_BUR_PUBLIC void LogIdleShow(struct LogIdleShow* inst); +_BUR_PUBLIC unsigned long CpuGetNumberOfCores(void); +_BUR_PUBLIC unsigned long CpuGetLoadByCore(unsigned long core); +_BUR_PUBLIC plcbit CpuIsCoreReserved(unsigned long core); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define profERR_PARAMETER 31050U + #define profERR_VERSION_NOT_SUPPORTED 31020U + #define profERR_DATMODINVALID 31019U + #define profERR_NOTCYCCTX 31018U + #define profERR_DATMODREAD 31017U + #define profERR_STOP 31016U + #define profERR_START 31015U + #define profERR_DATMODSIZE 31014U + #define profERR_ARCHDELETE 31013U + #define profERR_ARCHCREATE 31012U + #define profERR_ARCHEXIST 31011U + #define profERR_NODATMOD 31010U + #define profERR_DATMODINSTALL 31009U + #define profERR_DEFMODREAD 31008U + #define profERR_DEFMODCREATE 31007U + #define profERR_SETUPBUFFER 31006U + #define profERR_CYCGETTAB 31005U + #define profERR_NOMEMORY 31004U + #define profERR_NOTR2R 31003U + #define profERR_NOTRUNNING 31002U + #define profERR_RUNNING 31001U + #define profERR_INACTIVE 31000U + #define profSTATE_R2R_MAN 9U + #define profSTATE_R2R 8U + #define profSTATE_READY 6U + #define profSTATE_RUNNING 5U + #define profSTATE_STOPPED 4U + #define profSTATE_ACTIVE 3U + #define profSTATE_INACTIVE 2U + #define profBKPLEVEL_SHUTDOWN 1U + #define profBKPLEVEL_EXCEPTION 0U + #define profMEMTYPE_USERRAM 3U + #define profMEMTYPE_USERROM 2U + #define profMEMTYPE_DRAM 65U + #define profLOGMOD_STARTUPINST 8U + #define profLOGMOD_NOAUTOSTART 4U + #define profLOGMOD_GETSTACK 2U + #define profLOGMOD_CONTINUOUS 1U + #define profLOGMOD_UNTILFULL 0U + #define profLOGGRP_ALL 4169007119U + #define profLOGGRP_TC 2013265920U + #define profLOGGRP_EXCP 786432U + #define profLOGGRP_SYSTEM 1179651U + #define profLOGGRP_USER 2147483660U + #define profLOGGRP_USEREVENT 2147483648U + #define profLOGGRP_TASKCLASS_CYCLIC 1073741824U + #define profLOGGRP_TASKCLASS_EXC 536870912U + #define profLOGGRP_TASKCLASS_EXITUP 268435456U + #define profLOGGRP_TASKCLASS_INITUP 134217728U + #define profLOGGRP_NMIEVENT 4194304U + #define profLOGGRP_SYSEVENT 2097152U + #define profLOGGRP_LOGGER 1048576U + #define profLOGGRP_PROCESSOR_EXC 524288U + #define profLOGGRP_SYSTEM_EXC 262144U + #define profLOGGRP_OS_TASK 131072U + #define profLOGGRP_LIB_FUNC 8U + #define profLOGGRP_TC_TASK 4U + #define profLOGGRP_IRQ_HANDLER 2U + #define profLOGGRP_TASK_SWITCH 1U + #define profARCHMOD_OPT_NODEL 8U + #define profARCHMOD_OPT_STOP 4U + #define profARCHMOD_OPT_FILE 2U + #define profARCHMOD_OPT_ERROR 1U + #define profUSER_EVENT_STOP 1U + #define profUSER_EVENT_START 0U + #define profUSER_EVENT_MAX 16777215U + #define profIDLE_MEAS_PERIOD_MIN 100U + #define profIDLE_MEAS_PERIOD_MAX 60000U + #define profIDLE_MEAS_LEVEL_3 189U + #define profIDLE_MEAS_LEVEL_2 50U + #define profIDLE_MEAS_LEVEL_1 1U +#else + _GLOBAL_CONST unsigned short profERR_PARAMETER; + _GLOBAL_CONST unsigned short profERR_VERSION_NOT_SUPPORTED; + _GLOBAL_CONST unsigned short profERR_DATMODINVALID; + _GLOBAL_CONST unsigned short profERR_NOTCYCCTX; + _GLOBAL_CONST unsigned short profERR_DATMODREAD; + _GLOBAL_CONST unsigned short profERR_STOP; + _GLOBAL_CONST unsigned short profERR_START; + _GLOBAL_CONST unsigned short profERR_DATMODSIZE; + _GLOBAL_CONST unsigned short profERR_ARCHDELETE; + _GLOBAL_CONST unsigned short profERR_ARCHCREATE; + _GLOBAL_CONST unsigned short profERR_ARCHEXIST; + _GLOBAL_CONST unsigned short profERR_NODATMOD; + _GLOBAL_CONST unsigned short profERR_DATMODINSTALL; + _GLOBAL_CONST unsigned short profERR_DEFMODREAD; + _GLOBAL_CONST unsigned short profERR_DEFMODCREATE; + _GLOBAL_CONST unsigned short profERR_SETUPBUFFER; + _GLOBAL_CONST unsigned short profERR_CYCGETTAB; + _GLOBAL_CONST unsigned short profERR_NOMEMORY; + _GLOBAL_CONST unsigned short profERR_NOTR2R; + _GLOBAL_CONST unsigned short profERR_NOTRUNNING; + _GLOBAL_CONST unsigned short profERR_RUNNING; + _GLOBAL_CONST unsigned short profERR_INACTIVE; + _GLOBAL_CONST unsigned char profSTATE_R2R_MAN; + _GLOBAL_CONST unsigned char profSTATE_R2R; + _GLOBAL_CONST unsigned char profSTATE_READY; + _GLOBAL_CONST unsigned char profSTATE_RUNNING; + _GLOBAL_CONST unsigned char profSTATE_STOPPED; + _GLOBAL_CONST unsigned char profSTATE_ACTIVE; + _GLOBAL_CONST unsigned char profSTATE_INACTIVE; + _GLOBAL_CONST unsigned long profBKPLEVEL_SHUTDOWN; + _GLOBAL_CONST unsigned long profBKPLEVEL_EXCEPTION; + _GLOBAL_CONST unsigned long profMEMTYPE_USERRAM; + _GLOBAL_CONST unsigned long profMEMTYPE_USERROM; + _GLOBAL_CONST unsigned long profMEMTYPE_DRAM; + _GLOBAL_CONST unsigned long profLOGMOD_STARTUPINST; + _GLOBAL_CONST unsigned long profLOGMOD_NOAUTOSTART; + _GLOBAL_CONST unsigned long profLOGMOD_GETSTACK; + _GLOBAL_CONST unsigned long profLOGMOD_CONTINUOUS; + _GLOBAL_CONST unsigned long profLOGMOD_UNTILFULL; + _GLOBAL_CONST unsigned long profLOGGRP_ALL; + _GLOBAL_CONST unsigned long profLOGGRP_TC; + _GLOBAL_CONST unsigned long profLOGGRP_EXCP; + _GLOBAL_CONST unsigned long profLOGGRP_SYSTEM; + _GLOBAL_CONST unsigned long profLOGGRP_USER; + _GLOBAL_CONST unsigned long profLOGGRP_USEREVENT; + _GLOBAL_CONST unsigned long profLOGGRP_TASKCLASS_CYCLIC; + _GLOBAL_CONST unsigned long profLOGGRP_TASKCLASS_EXC; + _GLOBAL_CONST unsigned long profLOGGRP_TASKCLASS_EXITUP; + _GLOBAL_CONST unsigned long profLOGGRP_TASKCLASS_INITUP; + _GLOBAL_CONST unsigned long profLOGGRP_NMIEVENT; + _GLOBAL_CONST unsigned long profLOGGRP_SYSEVENT; + _GLOBAL_CONST unsigned long profLOGGRP_LOGGER; + _GLOBAL_CONST unsigned long profLOGGRP_PROCESSOR_EXC; + _GLOBAL_CONST unsigned long profLOGGRP_SYSTEM_EXC; + _GLOBAL_CONST unsigned long profLOGGRP_OS_TASK; + _GLOBAL_CONST unsigned long profLOGGRP_LIB_FUNC; + _GLOBAL_CONST unsigned long profLOGGRP_TC_TASK; + _GLOBAL_CONST unsigned long profLOGGRP_IRQ_HANDLER; + _GLOBAL_CONST unsigned long profLOGGRP_TASK_SWITCH; + _GLOBAL_CONST unsigned long profARCHMOD_OPT_NODEL; + _GLOBAL_CONST unsigned long profARCHMOD_OPT_STOP; + _GLOBAL_CONST unsigned long profARCHMOD_OPT_FILE; + _GLOBAL_CONST unsigned long profARCHMOD_OPT_ERROR; + _GLOBAL_CONST unsigned long profUSER_EVENT_STOP; + _GLOBAL_CONST unsigned long profUSER_EVENT_START; + _GLOBAL_CONST unsigned long profUSER_EVENT_MAX; + _GLOBAL_CONST unsigned long profIDLE_MEAS_PERIOD_MIN; + _GLOBAL_CONST unsigned long profIDLE_MEAS_PERIOD_MAX; + _GLOBAL_CONST unsigned long profIDLE_MEAS_LEVEL_3; + _GLOBAL_CONST unsigned long profIDLE_MEAS_LEVEL_2; + _GLOBAL_CONST unsigned long profIDLE_MEAS_LEVEL_1; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASARPROF_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsArProf/SGC/AsArProf.h b/example/AsProject/Logical/Libraries/_AS/AsArProf/SGC/AsArProf.h new file mode 100644 index 0000000..c58dfe9 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsArProf/SGC/AsArProf.h @@ -0,0 +1,308 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASARPROF_ +#define _ASARPROF_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define profERR_PARAMETER 31050U + #define profERR_DATMODINVALID 31019U + #define profERR_NOTCYCCTX 31018U + #define profERR_DATMODREAD 31017U + #define profERR_STOP 31016U + #define profERR_START 31015U + #define profERR_DATMODSIZE 31014U + #define profERR_ARCHDELETE 31013U + #define profERR_ARCHCREATE 31012U + #define profERR_ARCHEXIST 31011U + #define profERR_NODATMOD 31010U + #define profERR_DATMODINSTALL 31009U + #define profERR_DEFMODREAD 31008U + #define profERR_DEFMODCREATE 31007U + #define profERR_SETUPBUFFER 31006U + #define profERR_CYCGETTAB 31005U + #define profERR_NOMEMORY 31004U + #define profERR_NOTR2R 31003U + #define profERR_NOTRUNNING 31002U + #define profERR_RUNNING 31001U + #define profERR_INACTIVE 31000U + #define profSTATE_R2R_MAN 9U + #define profSTATE_R2R 8U + #define profSTATE_READY 6U + #define profSTATE_RUNNING 5U + #define profSTATE_STOPPED 4U + #define profSTATE_ACTIVE 3U + #define profSTATE_INACTIVE 2U + #define profBKPLEVEL_SHUTDOWN 1U + #define profBKPLEVEL_EXCEPTION 0U + #define profMEMTYPE_USERRAM 3U + #define profMEMTYPE_USERROM 2U + #define profMEMTYPE_DRAM 65U + #define profLOGMOD_STARTUPINST 8U + #define profLOGMOD_NOAUTOSTART 4U + #define profLOGMOD_GETSTACK 2U + #define profLOGMOD_CONTINUOUS 1U + #define profLOGMOD_UNTILFULL 0U + #define profLOGGRP_ALL 4169007119U + #define profLOGGRP_TC 2013265920U + #define profLOGGRP_EXCP 786432U + #define profLOGGRP_SYSTEM 1179651U + #define profLOGGRP_USER 2147483660U + #define profLOGGRP_USEREVENT 2147483648U + #define profLOGGRP_TASKCLASS_CYCLIC 1073741824U + #define profLOGGRP_TASKCLASS_EXC 536870912U + #define profLOGGRP_TASKCLASS_EXITUP 268435456U + #define profLOGGRP_TASKCLASS_INITUP 134217728U + #define profLOGGRP_NMIEVENT 4194304U + #define profLOGGRP_SYSEVENT 2097152U + #define profLOGGRP_LOGGER 1048576U + #define profLOGGRP_PROCESSOR_EXC 524288U + #define profLOGGRP_SYSTEM_EXC 262144U + #define profLOGGRP_OS_TASK 131072U + #define profLOGGRP_LIB_FUNC 8U + #define profLOGGRP_TC_TASK 4U + #define profLOGGRP_IRQ_HANDLER 2U + #define profLOGGRP_TASK_SWITCH 1U + #define profARCHMOD_OPT_NODEL 8U + #define profARCHMOD_OPT_STOP 4U + #define profARCHMOD_OPT_FILE 2U + #define profARCHMOD_OPT_ERROR 1U + #define profUSER_EVENT_STOP 1U + #define profUSER_EVENT_START 0U + #define profUSER_EVENT_MAX 16777215U + #define profIDLE_MEAS_PERIOD_MIN 100U + #define profIDLE_MEAS_PERIOD_MAX 60000U + #define profIDLE_MEAS_LEVEL_3 189U + #define profIDLE_MEAS_LEVEL_2 50U + #define profIDLE_MEAS_LEVEL_1 1U +#else + _IEC_CONST unsigned short profERR_PARAMETER = 31050U; + _IEC_CONST unsigned short profERR_DATMODINVALID = 31019U; + _IEC_CONST unsigned short profERR_NOTCYCCTX = 31018U; + _IEC_CONST unsigned short profERR_DATMODREAD = 31017U; + _IEC_CONST unsigned short profERR_STOP = 31016U; + _IEC_CONST unsigned short profERR_START = 31015U; + _IEC_CONST unsigned short profERR_DATMODSIZE = 31014U; + _IEC_CONST unsigned short profERR_ARCHDELETE = 31013U; + _IEC_CONST unsigned short profERR_ARCHCREATE = 31012U; + _IEC_CONST unsigned short profERR_ARCHEXIST = 31011U; + _IEC_CONST unsigned short profERR_NODATMOD = 31010U; + _IEC_CONST unsigned short profERR_DATMODINSTALL = 31009U; + _IEC_CONST unsigned short profERR_DEFMODREAD = 31008U; + _IEC_CONST unsigned short profERR_DEFMODCREATE = 31007U; + _IEC_CONST unsigned short profERR_SETUPBUFFER = 31006U; + _IEC_CONST unsigned short profERR_CYCGETTAB = 31005U; + _IEC_CONST unsigned short profERR_NOMEMORY = 31004U; + _IEC_CONST unsigned short profERR_NOTR2R = 31003U; + _IEC_CONST unsigned short profERR_NOTRUNNING = 31002U; + _IEC_CONST unsigned short profERR_RUNNING = 31001U; + _IEC_CONST unsigned short profERR_INACTIVE = 31000U; + _IEC_CONST unsigned char profSTATE_R2R_MAN = 9U; + _IEC_CONST unsigned char profSTATE_R2R = 8U; + _IEC_CONST unsigned char profSTATE_READY = 6U; + _IEC_CONST unsigned char profSTATE_RUNNING = 5U; + _IEC_CONST unsigned char profSTATE_STOPPED = 4U; + _IEC_CONST unsigned char profSTATE_ACTIVE = 3U; + _IEC_CONST unsigned char profSTATE_INACTIVE = 2U; + _IEC_CONST unsigned long profBKPLEVEL_SHUTDOWN = 1U; + _IEC_CONST unsigned long profBKPLEVEL_EXCEPTION = 0U; + _IEC_CONST unsigned long profMEMTYPE_USERRAM = 3U; + _IEC_CONST unsigned long profMEMTYPE_USERROM = 2U; + _IEC_CONST unsigned long profMEMTYPE_DRAM = 65U; + _IEC_CONST unsigned long profLOGMOD_STARTUPINST = 8U; + _IEC_CONST unsigned long profLOGMOD_NOAUTOSTART = 4U; + _IEC_CONST unsigned long profLOGMOD_GETSTACK = 2U; + _IEC_CONST unsigned long profLOGMOD_CONTINUOUS = 1U; + _IEC_CONST unsigned long profLOGMOD_UNTILFULL = 0U; + _IEC_CONST unsigned long profLOGGRP_ALL = 4169007119U; + _IEC_CONST unsigned long profLOGGRP_TC = 2013265920U; + _IEC_CONST unsigned long profLOGGRP_EXCP = 786432U; + _IEC_CONST unsigned long profLOGGRP_SYSTEM = 1179651U; + _IEC_CONST unsigned long profLOGGRP_USER = 2147483660U; + _IEC_CONST unsigned long profLOGGRP_USEREVENT = 2147483648U; + _IEC_CONST unsigned long profLOGGRP_TASKCLASS_CYCLIC = 1073741824U; + _IEC_CONST unsigned long profLOGGRP_TASKCLASS_EXC = 536870912U; + _IEC_CONST unsigned long profLOGGRP_TASKCLASS_EXITUP = 268435456U; + _IEC_CONST unsigned long profLOGGRP_TASKCLASS_INITUP = 134217728U; + _IEC_CONST unsigned long profLOGGRP_NMIEVENT = 4194304U; + _IEC_CONST unsigned long profLOGGRP_SYSEVENT = 2097152U; + _IEC_CONST unsigned long profLOGGRP_LOGGER = 1048576U; + _IEC_CONST unsigned long profLOGGRP_PROCESSOR_EXC = 524288U; + _IEC_CONST unsigned long profLOGGRP_SYSTEM_EXC = 262144U; + _IEC_CONST unsigned long profLOGGRP_OS_TASK = 131072U; + _IEC_CONST unsigned long profLOGGRP_LIB_FUNC = 8U; + _IEC_CONST unsigned long profLOGGRP_TC_TASK = 4U; + _IEC_CONST unsigned long profLOGGRP_IRQ_HANDLER = 2U; + _IEC_CONST unsigned long profLOGGRP_TASK_SWITCH = 1U; + _IEC_CONST unsigned long profARCHMOD_OPT_NODEL = 8U; + _IEC_CONST unsigned long profARCHMOD_OPT_STOP = 4U; + _IEC_CONST unsigned long profARCHMOD_OPT_FILE = 2U; + _IEC_CONST unsigned long profARCHMOD_OPT_ERROR = 1U; + _IEC_CONST unsigned long profUSER_EVENT_STOP = 1U; + _IEC_CONST unsigned long profUSER_EVENT_START = 0U; + _IEC_CONST unsigned long profUSER_EVENT_MAX = 16777215U; + _IEC_CONST unsigned long profIDLE_MEAS_PERIOD_MIN = 100U; + _IEC_CONST unsigned long profIDLE_MEAS_PERIOD_MAX = 60000U; + _IEC_CONST unsigned long profIDLE_MEAS_LEVEL_3 = 189U; + _IEC_CONST unsigned long profIDLE_MEAS_LEVEL_2 = 50U; + _IEC_CONST unsigned long profIDLE_MEAS_LEVEL_1 = 1U; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct PROFILER_DEFINITION +{ unsigned long logGroup; + unsigned long logMode; + unsigned long archMode; + unsigned long memTypeDef; + unsigned long memTypeDat; + unsigned long bufferSize; + unsigned long backupLevel; + unsigned long addDataSize; + unsigned long addOsTskCnt; + unsigned long libFctCnt; + unsigned long pLibFunctions; + unsigned long pArchDevice; +} PROFILER_DEFINITION; + +typedef struct PROFILER_MODINFO +{ plcstring name[64]; + unsigned long length; + plcdt cTime; + plcdt mTime; +} PROFILER_MODINFO; + +typedef struct LogInstall +{ + /* VAR_INPUT (analog) */ + unsigned long pVersion; + unsigned long pDefinition; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogInstall_typ; + +typedef struct LogDeInstall +{ + /* VAR_INPUT (analog) */ + unsigned long option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogDeInstall_typ; + +typedef struct LogStateGet +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char logstate; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogStateGet_typ; + +typedef struct LogArchCreate +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + unsigned long pName; + unsigned long option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogArchCreate_typ; + +typedef struct LogArchDelete +{ + /* VAR_INPUT (analog) */ + unsigned long pName; + unsigned long option; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogArchDelete_typ; + +typedef struct LogStart +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogStart_typ; + +typedef struct LogStop +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogStop_typ; + +typedef struct LogEvent +{ + /* VAR_INPUT (analog) */ + unsigned long objIdent; + unsigned long userEvent; + unsigned long pAddData; + unsigned long addDataLen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} LogEvent_typ; + + + +/* Prototyping of functions and function blocks */ +void LogInstall(struct LogInstall* inst); +void LogDeInstall(struct LogDeInstall* inst); +void LogStateGet(struct LogStateGet* inst); +void LogArchCreate(struct LogArchCreate* inst); +void LogArchDelete(struct LogArchDelete* inst); +void LogStart(struct LogStart* inst); +void LogStop(struct LogStop* inst); +void LogEvent(struct LogEvent* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASARPROF_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsArProf/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsArProf/binary.lby new file mode 100644 index 0000000..8b05418 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsArProf/binary.lby @@ -0,0 +1,12 @@ + + + + + AsArProf.fun + AsArProf.typ + AsArProf.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrMath/AsBrMath.fun b/example/AsProject/Logical/Libraries/_AS/AsBrMath/AsBrMath.fun new file mode 100644 index 0000000..ab2328f --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsBrMath/AsBrMath.fun @@ -0,0 +1,72 @@ + +{REDUND_OK} FUNCTION brmatan2 : REAL (*calculates the arc tangent of y/x*) + VAR_INPUT + y :REAL; (*y*) + x :REAL; (*x*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION brmceil : REAL (*calculates the smallest integer value which is greater than or equal to the input value*) + VAR_INPUT + x :REAL; (*input value*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION brmcosh : REAL (*calculates the hyperbolic cosine of x*) + VAR_INPUT + x :REAL; (*input value*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION brmfloor : REAL (*calculates the largest integer value which is less than or equal to the input value*) + VAR_INPUT + x :REAL; (*input value*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION brmfmod : REAL (*calculates the remainder of the division x/y*) + VAR_INPUT + x :REAL; (*numerator*) + y :REAL; (*denominator*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION brmfrexp : REAL (*calculates the mantissa and the exponent of a floating point number*) + VAR_INPUT + x :REAL; (*input value*) + pExp :UDINT; (*address of the exponent (address of DINT) (base 2)*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION brmldexp : REAL (*calculates a floating point number from mantissa x and exponent exp*) + VAR_INPUT + x :REAL; (*mantissa*) + exp_val :DINT; (*exponent (base 2)*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION brmmodf : REAL (*separates a floating point number into an integer and decimal part*) + VAR_INPUT + x :REAL; (*input value*) + plp :UDINT; (*address of the integer part (address of a REAL value)*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION brmpow : REAL (*calculates x raised to the power of y*) + VAR_INPUT + x :REAL; (*base*) + y :REAL; (*exponent*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION brmsinh : REAL (*calculates the hyperbolic sine of x*) + VAR_INPUT + x :REAL; (*input value*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION brmtanh : REAL (*calculates the hyperbolic tangent of x*) + VAR_INPUT + x :REAL; (*input value*) + END_VAR +END_FUNCTION diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrMath/AsBrMath.typ b/example/AsProject/Logical/Libraries/_AS/AsBrMath/AsBrMath.typ new file mode 100644 index 0000000..9d796e3 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsBrMath/AsBrMath.typ @@ -0,0 +1,4 @@ + +TYPE + +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrMath/AsBrMath.var b/example/AsProject/Logical/Libraries/_AS/AsBrMath/AsBrMath.var new file mode 100644 index 0000000..0a002e7 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsBrMath/AsBrMath.var @@ -0,0 +1,25 @@ + +VAR CONSTANT + brm2_SQRTPI : REAL := 1.12838; (*2/(square root from PI)*) + brmSQRT1_2 : REAL := 0.707107; (*square root from 1/2*) + brmSQRTPI : REAL := 1.77245; (*square root from PI*) + brmLOG2_E : REAL := 0.693147; (*log with the base 2 from E*) + brmLOG10E : REAL := 0.434294; (*log with the base 10 from E*) + brmIVLN10 : REAL := 0.434294; (*1/(ln from 10)*) + brmINVLN2 : REAL := 1.4427; (*1/(ln from 2)*) + brmTWOPI : REAL := 6.28319; (*2 PI*) + brmSQRT3 : REAL := 1.73205; (*square root from 3*) + brmSQRT2 : REAL := 1.41421; (*square root from 2*) + brmLOG2E : REAL := 1.4427; (*log with the base 2 from E*) + brmLN2LO : REAL := 1.90821e-010; (*log with the base 2 from LOW*) + brmLN2HI : REAL := 0.693147; (*log with the base 2 from HIGH*) + brm3PI_4 : REAL := 2.35619; (*3/4 PI*) + brmPI_4 : REAL := 0.785398; (*PI/4*) + brmPI_2 : REAL := 1.5708; (*PI/2*) + brmLN10 : REAL := 2.30259; (*ln from 10*) + brm2_PI : REAL := 0.63662; (*2/PI*) + brm1_PI : REAL := 0.31831; (*1/PI*) + brmLN2 : REAL := 0.693147; (*ln from 2*) + brmPI : REAL := 3.14159; (*PI*) + brmE : REAL := 2.71828; (*E*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrMath/SG3/AsBrMath.h b/example/AsProject/Logical/Libraries/_AS/AsBrMath/SG3/AsBrMath.h new file mode 100644 index 0000000..eb92586 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsBrMath/SG3/AsBrMath.h @@ -0,0 +1,90 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASBRMATH_ +#define _ASBRMATH_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define brm2_SQRTPI 1.12838 + #define brmSQRT1_2 0.707107 + #define brmSQRTPI 1.77245 + #define brmLOG2_E 0.693147 + #define brmLOG10E 0.434294 + #define brmIVLN10 0.434294 + #define brmINVLN2 1.4427 + #define brmTWOPI 6.28319 + #define brmSQRT3 1.73205 + #define brmSQRT2 1.41421 + #define brmLOG2E 1.4427 + #define brmLN2LO 1.90821e-010 + #define brmLN2HI 0.693147 + #define brm3PI_4 2.35619 + #define brmPI_4 0.785398 + #define brmPI_2 1.5708 + #define brmLN10 2.30259 + #define brm2_PI 0.63662 + #define brm1_PI 0.31831 + #define brmLN2 0.693147 + #define brmPI 3.14159 + #define brmE 2.71828 +#else + _IEC_CONST float brm2_SQRTPI = 1.12838; + _IEC_CONST float brmSQRT1_2 = 0.707107; + _IEC_CONST float brmSQRTPI = 1.77245; + _IEC_CONST float brmLOG2_E = 0.693147; + _IEC_CONST float brmLOG10E = 0.434294; + _IEC_CONST float brmIVLN10 = 0.434294; + _IEC_CONST float brmINVLN2 = 1.4427; + _IEC_CONST float brmTWOPI = 6.28319; + _IEC_CONST float brmSQRT3 = 1.73205; + _IEC_CONST float brmSQRT2 = 1.41421; + _IEC_CONST float brmLOG2E = 1.4427; + _IEC_CONST float brmLN2LO = 1.90821e-010; + _IEC_CONST float brmLN2HI = 0.693147; + _IEC_CONST float brm3PI_4 = 2.35619; + _IEC_CONST float brmPI_4 = 0.785398; + _IEC_CONST float brmPI_2 = 1.5708; + _IEC_CONST float brmLN10 = 2.30259; + _IEC_CONST float brm2_PI = 0.63662; + _IEC_CONST float brm1_PI = 0.31831; + _IEC_CONST float brmLN2 = 0.693147; + _IEC_CONST float brmPI = 3.14159; + _IEC_CONST float brmE = 2.71828; +#endif + + + + + + + +/* Prototyping of functions and function blocks */ +float brmatan2(float y, float x); +float brmceil(float x); +float brmcosh(float x); +float brmfloor(float x); +float brmfmod(float x, float y); +float brmfrexp(float x, unsigned long pExp); +float brmldexp(float x, signed long exp_val); +float brmmodf(float x, unsigned long plp); +float brmpow(float x, float y); +float brmsinh(float x); +float brmtanh(float x); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASBRMATH_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrMath/SG4/AsBrMath.h b/example/AsProject/Logical/Libraries/_AS/AsBrMath/SG4/AsBrMath.h new file mode 100644 index 0000000..bf95730 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsBrMath/SG4/AsBrMath.h @@ -0,0 +1,89 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASBRMATH_ +#define _ASBRMATH_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC float brmatan2(float y, float x); +_BUR_PUBLIC float brmceil(float x); +_BUR_PUBLIC float brmcosh(float x); +_BUR_PUBLIC float brmfloor(float x); +_BUR_PUBLIC float brmfmod(float x, float y); +_BUR_PUBLIC float brmfrexp(float x, unsigned long pExp); +_BUR_PUBLIC float brmldexp(float x, signed long exp_val); +_BUR_PUBLIC float brmmodf(float x, unsigned long plp); +_BUR_PUBLIC float brmpow(float x, float y); +_BUR_PUBLIC float brmsinh(float x); +_BUR_PUBLIC float brmtanh(float x); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define brmE 2.71828f + #define brmPI 3.14159f + #define brmLN2 0.693147f + #define brm1_PI 0.31831f + #define brm2_PI 0.63662f + #define brmLN10 2.30259f + #define brmPI_2 1.5708f + #define brmPI_4 0.785398f + #define brm3PI_4 2.35619f + #define brmLN2HI 0.693147f + #define brmLN2LO 1.90821e-10f + #define brmLOG2E 1.4427f + #define brmSQRT2 1.41421f + #define brmSQRT3 1.73205f + #define brmTWOPI 6.28319f + #define brmINVLN2 1.4427f + #define brmIVLN10 0.434294f + #define brmLOG10E 0.434294f + #define brmLOG2_E 0.693147f + #define brmSQRTPI 1.77245f + #define brmSQRT1_2 0.707107f + #define brm2_SQRTPI 1.12838f +#else + _GLOBAL_CONST float brmE; + _GLOBAL_CONST float brmPI; + _GLOBAL_CONST float brmLN2; + _GLOBAL_CONST float brm1_PI; + _GLOBAL_CONST float brm2_PI; + _GLOBAL_CONST float brmLN10; + _GLOBAL_CONST float brmPI_2; + _GLOBAL_CONST float brmPI_4; + _GLOBAL_CONST float brm3PI_4; + _GLOBAL_CONST float brmLN2HI; + _GLOBAL_CONST float brmLN2LO; + _GLOBAL_CONST float brmLOG2E; + _GLOBAL_CONST float brmSQRT2; + _GLOBAL_CONST float brmSQRT3; + _GLOBAL_CONST float brmTWOPI; + _GLOBAL_CONST float brmINVLN2; + _GLOBAL_CONST float brmIVLN10; + _GLOBAL_CONST float brmLOG10E; + _GLOBAL_CONST float brmLOG2_E; + _GLOBAL_CONST float brmSQRTPI; + _GLOBAL_CONST float brmSQRT1_2; + _GLOBAL_CONST float brm2_SQRTPI; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASBRMATH_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrMath/SGC/AsBrMath.h b/example/AsProject/Logical/Libraries/_AS/AsBrMath/SGC/AsBrMath.h new file mode 100644 index 0000000..eb92586 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsBrMath/SGC/AsBrMath.h @@ -0,0 +1,90 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASBRMATH_ +#define _ASBRMATH_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define brm2_SQRTPI 1.12838 + #define brmSQRT1_2 0.707107 + #define brmSQRTPI 1.77245 + #define brmLOG2_E 0.693147 + #define brmLOG10E 0.434294 + #define brmIVLN10 0.434294 + #define brmINVLN2 1.4427 + #define brmTWOPI 6.28319 + #define brmSQRT3 1.73205 + #define brmSQRT2 1.41421 + #define brmLOG2E 1.4427 + #define brmLN2LO 1.90821e-010 + #define brmLN2HI 0.693147 + #define brm3PI_4 2.35619 + #define brmPI_4 0.785398 + #define brmPI_2 1.5708 + #define brmLN10 2.30259 + #define brm2_PI 0.63662 + #define brm1_PI 0.31831 + #define brmLN2 0.693147 + #define brmPI 3.14159 + #define brmE 2.71828 +#else + _IEC_CONST float brm2_SQRTPI = 1.12838; + _IEC_CONST float brmSQRT1_2 = 0.707107; + _IEC_CONST float brmSQRTPI = 1.77245; + _IEC_CONST float brmLOG2_E = 0.693147; + _IEC_CONST float brmLOG10E = 0.434294; + _IEC_CONST float brmIVLN10 = 0.434294; + _IEC_CONST float brmINVLN2 = 1.4427; + _IEC_CONST float brmTWOPI = 6.28319; + _IEC_CONST float brmSQRT3 = 1.73205; + _IEC_CONST float brmSQRT2 = 1.41421; + _IEC_CONST float brmLOG2E = 1.4427; + _IEC_CONST float brmLN2LO = 1.90821e-010; + _IEC_CONST float brmLN2HI = 0.693147; + _IEC_CONST float brm3PI_4 = 2.35619; + _IEC_CONST float brmPI_4 = 0.785398; + _IEC_CONST float brmPI_2 = 1.5708; + _IEC_CONST float brmLN10 = 2.30259; + _IEC_CONST float brm2_PI = 0.63662; + _IEC_CONST float brm1_PI = 0.31831; + _IEC_CONST float brmLN2 = 0.693147; + _IEC_CONST float brmPI = 3.14159; + _IEC_CONST float brmE = 2.71828; +#endif + + + + + + + +/* Prototyping of functions and function blocks */ +float brmatan2(float y, float x); +float brmceil(float x); +float brmcosh(float x); +float brmfloor(float x); +float brmfmod(float x, float y); +float brmfrexp(float x, unsigned long pExp); +float brmldexp(float x, signed long exp_val); +float brmmodf(float x, unsigned long plp); +float brmpow(float x, float y); +float brmsinh(float x); +float brmtanh(float x); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASBRMATH_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrMath/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsBrMath/binary.lby new file mode 100644 index 0000000..6ef56b0 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsBrMath/binary.lby @@ -0,0 +1,9 @@ + + + + + AsBrMath.fun + AsBrMath.typ + AsBrMath.var + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrStr/AsBrStr.fun b/example/AsProject/Logical/Libraries/_AS/AsBrStr/AsBrStr.fun index 87ba979..7adc6cb 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrStr/AsBrStr.fun +++ b/example/AsProject/Logical/Libraries/_AS/AsBrStr/AsBrStr.fun @@ -1,80 +1,80 @@ - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsftoa : UINT (*converts a REAL value into a character string*) - VAR_INPUT - value :REAL; (*REAL (FLOAT) value to be converted into a character string*) - pString :UDINT; (*pointer to the destination character string*) - END_VAR -END_FUNCTION -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatof : REAL (*converts a character string into a REAL (FLOAT) value*) - VAR_INPUT - pString :UDINT; (*pointer to the character string to be converted*) - END_VAR -END_FUNCTION -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatod : LREAL (*converts a character string into a LREAL (DOUBLE) value*) - VAR_INPUT - pString :UDINT; (*pointer to the character string to be converted*) - END_VAR -END_FUNCTION -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsitoa : UINT (*converts a DINT value into a character string*) - VAR_INPUT - value :DINT; (*numerical value to be converted into a string*) - pString :UDINT; (*pointer to the destination character string*) - END_VAR -END_FUNCTION -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatoi : DINT (*converts a character string into a DINT value*) - VAR_INPUT - pString :UDINT; (*pointer to the character string to be converted*) - END_VAR -END_FUNCTION -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemset : UDINT (*fills the memory area with specific values*) - VAR_INPUT - pDest :UDINT; (*pointer to the destination memory*) - value :USINT; (*initialization value*) - length :UDINT; (*number of bytes to be initialized*) - END_VAR -END_FUNCTION -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemcpy : UDINT (*copies the memory area*) - VAR_INPUT - pDest :UDINT; (*pointer to the destination memory*) - pSrc :UDINT; (*pointer to the data to be copied*) - length :UDINT; (*size of bytes to be copied*) - END_VAR -END_FUNCTION -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemmove : UDINT (*copies the memory area (even if the memory areas overlap)*) - VAR_INPUT - pDest :UDINT; (*pointer to the destination memory*) - pSrc :UDINT; (*pointer to the data to be copied*) - length :UDINT; (*size of bytes to be copied*) - END_VAR -END_FUNCTION -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemcmp : DINT (*compares memory areas*) - VAR_INPUT - pMem1 :UDINT; (*pointer to the memory area 1*) - pMem2 :UDINT; (*pointer to the memory area 2*) - length :UDINT; (*size of bytes to be checked*) - END_VAR -END_FUNCTION -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcat : UDINT (*attaches character strings to one another*) - VAR_INPUT - pDest :UDINT; (*pointer to the destination character string*) - pSrc :UDINT; (*pointer to the source character string*) - END_VAR -END_FUNCTION -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrlen : UDINT (*provides the length of a character string*) - VAR_INPUT - pString :UDINT; (*pointer to the source character string*) - END_VAR -END_FUNCTION -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcpy : UDINT (*copies one character string into another*) - VAR_INPUT - pDest :UDINT; (*pointer to the destination character string*) - pSrc :UDINT; (*pointer to the source character string*) - END_VAR -END_FUNCTION -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcmp : DINT (*compares two character strings*) - VAR_INPUT - pString1 :UDINT; (*pointer to the first character string*) - pString2 :UDINT; (*pointer to the second character string*) - END_VAR -END_FUNCTION - + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsftoa : UINT (*converts a REAL value into a character string*) + VAR_INPUT + value :REAL; (*REAL (FLOAT) value to be converted into a character string*) + pString :UDINT; (*pointer to the destination character string*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatof : REAL (*converts a character string into a REAL (FLOAT) value*) + VAR_INPUT + pString :UDINT; (*pointer to the character string to be converted*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatod : LREAL (*converts a character string into a LREAL (DOUBLE) value*) + VAR_INPUT + pString :UDINT; (*pointer to the character string to be converted*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsitoa : UINT (*converts a DINT value into a character string*) + VAR_INPUT + value :DINT; (*numerical value to be converted into a string*) + pString :UDINT; (*pointer to the destination character string*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatoi : DINT (*converts a character string into a DINT value*) + VAR_INPUT + pString :UDINT; (*pointer to the character string to be converted*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemset : UDINT (*fills the memory area with specific values*) + VAR_INPUT + pDest :UDINT; (*pointer to the destination memory*) + value :USINT; (*initialization value*) + length :UDINT; (*number of bytes to be initialized*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemcpy : UDINT (*copies the memory area*) + VAR_INPUT + pDest :UDINT; (*pointer to the destination memory*) + pSrc :UDINT; (*pointer to the data to be copied*) + length :UDINT; (*size of bytes to be copied*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemmove : UDINT (*copies the memory area (even if the memory areas overlap)*) + VAR_INPUT + pDest :UDINT; (*pointer to the destination memory*) + pSrc :UDINT; (*pointer to the data to be copied*) + length :UDINT; (*size of bytes to be copied*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemcmp : DINT (*compares memory areas*) + VAR_INPUT + pMem1 :UDINT; (*pointer to the memory area 1*) + pMem2 :UDINT; (*pointer to the memory area 2*) + length :UDINT; (*size of bytes to be checked*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcat : UDINT (*attaches character strings to one another*) + VAR_INPUT + pDest :UDINT; (*pointer to the destination character string*) + pSrc :UDINT; (*pointer to the source character string*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrlen : UDINT (*provides the length of a character string*) + VAR_INPUT + pString :UDINT; (*pointer to the source character string*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcpy : UDINT (*copies one character string into another*) + VAR_INPUT + pDest :UDINT; (*pointer to the destination character string*) + pSrc :UDINT; (*pointer to the source character string*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcmp : DINT (*compares two character strings*) + VAR_INPUT + pString1 :UDINT; (*pointer to the first character string*) + pString2 :UDINT; (*pointer to the second character string*) + END_VAR +END_FUNCTION + diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrStr/AsBrStr.typ b/example/AsProject/Logical/Libraries/_AS/AsBrStr/AsBrStr.typ index 1657f43..9d796e3 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrStr/AsBrStr.typ +++ b/example/AsProject/Logical/Libraries/_AS/AsBrStr/AsBrStr.typ @@ -1,4 +1,4 @@ - -TYPE - -END_TYPE + +TYPE + +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrStr/AsBrStr.var b/example/AsProject/Logical/Libraries/_AS/AsBrStr/AsBrStr.var index 30b816c..9a0277a 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrStr/AsBrStr.var +++ b/example/AsProject/Logical/Libraries/_AS/AsBrStr/AsBrStr.var @@ -1,4 +1,4 @@ - -VAR CONSTANT - -END_VAR + +VAR CONSTANT + +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrStr/SG3/AsBrStr.h b/example/AsProject/Logical/Libraries/_AS/AsBrStr/SG3/AsBrStr.h index 3f4c4bc..e23b4f8 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrStr/SG3/AsBrStr.h +++ b/example/AsProject/Logical/Libraries/_AS/AsBrStr/SG3/AsBrStr.h @@ -1,39 +1,39 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef _ASBRSTR_ -#define _ASBRSTR_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include - -#ifndef _IEC_CONST -#define _IEC_CONST _WEAK const -#endif - - - - -/* Prototyping of functions and function blocks */ -unsigned short brsftoa(float value, unsigned long pString); -float brsatof(unsigned long pString); -unsigned short brsitoa(signed long value, unsigned long pString); -signed long brsatoi(unsigned long pString); -unsigned long brsmemset(unsigned long pDest, unsigned char value, unsigned long length); -unsigned long brsmemcpy(unsigned long pDest, unsigned long pSrc, unsigned long length); -unsigned long brsmemmove(unsigned long pDest, unsigned long pSrc, unsigned long length); -signed long brsmemcmp(unsigned long pMem1, unsigned long pMem2, unsigned long length); -unsigned long brsstrcat(unsigned long pDest, unsigned long pSrc); -unsigned long brsstrlen(unsigned long pString); -unsigned long brsstrcpy(unsigned long pDest, unsigned long pSrc); -signed long brsstrcmp(unsigned long pString1, unsigned long pString2); - - -#ifdef __cplusplus -}; -#endif -#endif /* _ASBRSTR_ */ - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASBRSTR_ +#define _ASBRSTR_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + + + + +/* Prototyping of functions and function blocks */ +unsigned short brsftoa(float value, unsigned long pString); +float brsatof(unsigned long pString); +unsigned short brsitoa(signed long value, unsigned long pString); +signed long brsatoi(unsigned long pString); +unsigned long brsmemset(unsigned long pDest, unsigned char value, unsigned long length); +unsigned long brsmemcpy(unsigned long pDest, unsigned long pSrc, unsigned long length); +unsigned long brsmemmove(unsigned long pDest, unsigned long pSrc, unsigned long length); +signed long brsmemcmp(unsigned long pMem1, unsigned long pMem2, unsigned long length); +unsigned long brsstrcat(unsigned long pDest, unsigned long pSrc); +unsigned long brsstrlen(unsigned long pString); +unsigned long brsstrcpy(unsigned long pDest, unsigned long pSrc); +signed long brsstrcmp(unsigned long pString1, unsigned long pString2); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASBRSTR_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrStr/SG4/AsBrStr.h b/example/AsProject/Logical/Libraries/_AS/AsBrStr/SG4/AsBrStr.h index daa7324..540cbb5 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrStr/SG4/AsBrStr.h +++ b/example/AsProject/Logical/Libraries/_AS/AsBrStr/SG4/AsBrStr.h @@ -1,39 +1,39 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef _ASBRSTR_ -#define _ASBRSTR_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include - -#ifndef _BUR_PUBLIC -#define _BUR_PUBLIC -#endif - - - -/* Prototyping of functions and function blocks */ -_BUR_PUBLIC unsigned short brsftoa(float value, unsigned long pString); -_BUR_PUBLIC float brsatof(unsigned long pString); -_BUR_PUBLIC double brsatod(unsigned long pString); -_BUR_PUBLIC unsigned short brsitoa(signed long value, unsigned long pString); -_BUR_PUBLIC signed long brsatoi(unsigned long pString); -_BUR_PUBLIC unsigned long brsmemset(unsigned long pDest, unsigned char value, unsigned long length); -_BUR_PUBLIC unsigned long brsmemcpy(unsigned long pDest, unsigned long pSrc, unsigned long length); -_BUR_PUBLIC unsigned long brsmemmove(unsigned long pDest, unsigned long pSrc, unsigned long length); -_BUR_PUBLIC signed long brsmemcmp(unsigned long pMem1, unsigned long pMem2, unsigned long length); -_BUR_PUBLIC unsigned long brsstrcat(unsigned long pDest, unsigned long pSrc); -_BUR_PUBLIC unsigned long brsstrlen(unsigned long pString); -_BUR_PUBLIC unsigned long brsstrcpy(unsigned long pDest, unsigned long pSrc); -_BUR_PUBLIC signed long brsstrcmp(unsigned long pString1, unsigned long pString2); - - -#ifdef __cplusplus -}; -#endif -#endif /* _ASBRSTR_ */ - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASBRSTR_ +#define _ASBRSTR_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC unsigned short brsftoa(float value, unsigned long pString); +_BUR_PUBLIC float brsatof(unsigned long pString); +_BUR_PUBLIC double brsatod(unsigned long pString); +_BUR_PUBLIC unsigned short brsitoa(signed long value, unsigned long pString); +_BUR_PUBLIC signed long brsatoi(unsigned long pString); +_BUR_PUBLIC unsigned long brsmemset(unsigned long pDest, unsigned char value, unsigned long length); +_BUR_PUBLIC unsigned long brsmemcpy(unsigned long pDest, unsigned long pSrc, unsigned long length); +_BUR_PUBLIC unsigned long brsmemmove(unsigned long pDest, unsigned long pSrc, unsigned long length); +_BUR_PUBLIC signed long brsmemcmp(unsigned long pMem1, unsigned long pMem2, unsigned long length); +_BUR_PUBLIC unsigned long brsstrcat(unsigned long pDest, unsigned long pSrc); +_BUR_PUBLIC unsigned long brsstrlen(unsigned long pString); +_BUR_PUBLIC unsigned long brsstrcpy(unsigned long pDest, unsigned long pSrc); +_BUR_PUBLIC signed long brsstrcmp(unsigned long pString1, unsigned long pString2); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASBRSTR_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrStr/SGC/AsBrStr.h b/example/AsProject/Logical/Libraries/_AS/AsBrStr/SGC/AsBrStr.h index 3f4c4bc..e23b4f8 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrStr/SGC/AsBrStr.h +++ b/example/AsProject/Logical/Libraries/_AS/AsBrStr/SGC/AsBrStr.h @@ -1,39 +1,39 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef _ASBRSTR_ -#define _ASBRSTR_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include - -#ifndef _IEC_CONST -#define _IEC_CONST _WEAK const -#endif - - - - -/* Prototyping of functions and function blocks */ -unsigned short brsftoa(float value, unsigned long pString); -float brsatof(unsigned long pString); -unsigned short brsitoa(signed long value, unsigned long pString); -signed long brsatoi(unsigned long pString); -unsigned long brsmemset(unsigned long pDest, unsigned char value, unsigned long length); -unsigned long brsmemcpy(unsigned long pDest, unsigned long pSrc, unsigned long length); -unsigned long brsmemmove(unsigned long pDest, unsigned long pSrc, unsigned long length); -signed long brsmemcmp(unsigned long pMem1, unsigned long pMem2, unsigned long length); -unsigned long brsstrcat(unsigned long pDest, unsigned long pSrc); -unsigned long brsstrlen(unsigned long pString); -unsigned long brsstrcpy(unsigned long pDest, unsigned long pSrc); -signed long brsstrcmp(unsigned long pString1, unsigned long pString2); - - -#ifdef __cplusplus -}; -#endif -#endif /* _ASBRSTR_ */ - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASBRSTR_ +#define _ASBRSTR_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + + + + +/* Prototyping of functions and function blocks */ +unsigned short brsftoa(float value, unsigned long pString); +float brsatof(unsigned long pString); +unsigned short brsitoa(signed long value, unsigned long pString); +signed long brsatoi(unsigned long pString); +unsigned long brsmemset(unsigned long pDest, unsigned char value, unsigned long length); +unsigned long brsmemcpy(unsigned long pDest, unsigned long pSrc, unsigned long length); +unsigned long brsmemmove(unsigned long pDest, unsigned long pSrc, unsigned long length); +signed long brsmemcmp(unsigned long pMem1, unsigned long pMem2, unsigned long length); +unsigned long brsstrcat(unsigned long pDest, unsigned long pSrc); +unsigned long brsstrlen(unsigned long pString); +unsigned long brsstrcpy(unsigned long pDest, unsigned long pSrc); +signed long brsstrcmp(unsigned long pString1, unsigned long pString2); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASBRSTR_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrStr/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsBrStr/binary.lby index 1da1d38..2090ed1 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrStr/binary.lby +++ b/example/AsProject/Logical/Libraries/_AS/AsBrStr/binary.lby @@ -1,9 +1,9 @@ - - - + + + AsBrStr.fun AsBrStr.typ AsBrStr.var - \ No newline at end of file + diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.fun b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.fun index 8de4cc5..6a2a8f3 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.fun +++ b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.fun @@ -1,71 +1,71 @@ - -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsconv : UDINT (*converts one string to a different format*) - VAR_INPUT - pDestination :REFERENCE TO USINT; (*string to be appended to, given as a pointer*) - pSource :REFERENCE TO USINT; (*string to be appended, given as a pointer*) - level :USINT; (*brwU8toUC (= 0) if converting from U8 to UC; brwUCtoU8 (= 1) if converting from UC to U8*) - END_VAR -END_FUNCTION -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsncpy : UDINT (*copies a maximum of n characters from the pSource WC string to the pDestination address*) - VAR_INPUT - pDestination :REFERENCE TO UINT; (*pointer to the target memory for the string*) - pSource :REFERENCE TO UINT; (*string to be copied, given as a pointer*) - n :UDINT; (*max. number of characters to be copied*) - END_VAR -END_FUNCTION -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsncat : UDINT (*appends a maximum of n characters from the pSource string to the pDestination string*) - VAR_INPUT - pDestination :REFERENCE TO UINT; (*string to be appended to, given as a pointer*) - pSource :REFERENCE TO UINT; (*string to be appended, given as a pointer*) - n :UDINT; (*maximum number of characters to be added from pSource to pDestination*) - END_VAR -END_FUNCTION -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcscat : UDINT (*connects two WC strings to each other (concatenation)*) - VAR_INPUT - pDestination :REFERENCE TO UINT; (*string to be appended to, given as a pointer*) - pSource :REFERENCE TO UINT; (*string to be appended, given as a pointer*) - END_VAR -END_FUNCTION -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcscmp : DINT (*compares two 16-bit character strings*) - VAR_INPUT - pUcstr1 :REFERENCE TO UINT; (*first string, given as a pointer*) - pUcstr2 :REFERENCE TO UINT; (*second string, given as a pointer*) - END_VAR -END_FUNCTION -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcslen : UDINT (*determines the length of a WC string*) - VAR_INPUT - pwcString :REFERENCE TO UINT; (*string whose length should be determined, given as a pointer*) - END_VAR -END_FUNCTION -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsset : UDINT (*appends the pSource string to the pDestination string*) - VAR_INPUT - pDestination :REFERENCE TO UINT; (*string being written, given as a pointer*) - len :UDINT; (*number of characters to be written*) - symbol :UINT; (*character used to overwrite*) - END_VAR -END_FUNCTION -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsncmp : DINT (*compares two 16-bit strings*) - VAR_INPUT - pwcString1 :REFERENCE TO UINT; (*first string given as a pointer*) - pwcString2 :REFERENCE TO UINT; (*second string given as a pointer*) - n :UDINT; (*max. number of characters from pUcstr1 to be compared with pUcstr2*) - END_VAR -END_FUNCTION -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcscpy : UDINT (*copies a WC string*) - VAR_INPUT - pDestination :REFERENCE TO UINT; (*pointer to the target memory for the string*) - pSource :REFERENCE TO UINT; (*string to be copied, given as a pointer*) - END_VAR -END_FUNCTION -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsrchr : UDINT (*searches for the last occurrence of a certain character in a WC string*) - VAR_INPUT - pDestination :REFERENCE TO UINT; (*character string being searched, given as a pointer*) - symbol :UINT; (*character being looked for*) - END_VAR -END_FUNCTION -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcschr : UDINT (*searches for the first occurrence of a certain character*) - VAR_INPUT - pDestination :REFERENCE TO UINT; (*string given as a pointer*) - symbol :UINT; (*character being looked for*) - END_VAR -END_FUNCTION + +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsconv : UDINT (*converts one string to a different format*) + VAR_INPUT + pDestination :REFERENCE TO USINT; (*string to be appended to, given as a pointer*) + pSource :REFERENCE TO USINT; (*string to be appended, given as a pointer*) + level :USINT; (*brwU8toUC (= 0) if converting from U8 to UC; brwUCtoU8 (= 1) if converting from UC to U8*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsncpy : UDINT (*copies a maximum of n characters from the pSource WC string to the pDestination address*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*pointer to the target memory for the string*) + pSource :REFERENCE TO UINT; (*string to be copied, given as a pointer*) + n :UDINT; (*max. number of characters to be copied*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsncat : UDINT (*appends a maximum of n characters from the pSource string to the pDestination string*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*string to be appended to, given as a pointer*) + pSource :REFERENCE TO UINT; (*string to be appended, given as a pointer*) + n :UDINT; (*maximum number of characters to be added from pSource to pDestination*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcscat : UDINT (*connects two WC strings to each other (concatenation)*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*string to be appended to, given as a pointer*) + pSource :REFERENCE TO UINT; (*string to be appended, given as a pointer*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcscmp : DINT (*compares two 16-bit character strings*) + VAR_INPUT + pUcstr1 :REFERENCE TO UINT; (*first string, given as a pointer*) + pUcstr2 :REFERENCE TO UINT; (*second string, given as a pointer*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcslen : UDINT (*determines the length of a WC string*) + VAR_INPUT + pwcString :REFERENCE TO UINT; (*string whose length should be determined, given as a pointer*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsset : UDINT (*appends the pSource string to the pDestination string*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*string being written, given as a pointer*) + len :UDINT; (*number of characters to be written*) + symbol :UINT; (*character used to overwrite*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsncmp : DINT (*compares two 16-bit strings*) + VAR_INPUT + pwcString1 :REFERENCE TO UINT; (*first string given as a pointer*) + pwcString2 :REFERENCE TO UINT; (*second string given as a pointer*) + n :UDINT; (*max. number of characters from pUcstr1 to be compared with pUcstr2*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcscpy : UDINT (*copies a WC string*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*pointer to the target memory for the string*) + pSource :REFERENCE TO UINT; (*string to be copied, given as a pointer*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsrchr : UDINT (*searches for the last occurrence of a certain character in a WC string*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*character string being searched, given as a pointer*) + symbol :UINT; (*character being looked for*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcschr : UDINT (*searches for the first occurrence of a certain character*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*string given as a pointer*) + symbol :UINT; (*character being looked for*) + END_VAR +END_FUNCTION diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.typ b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.typ index 1657f43..9d796e3 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.typ +++ b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.typ @@ -1,4 +1,4 @@ - -TYPE - -END_TYPE + +TYPE + +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.var b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.var index 7af0668..d364228 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.var +++ b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.var @@ -1,5 +1,5 @@ - -VAR CONSTANT - brwUCtoU8 : USINT := 1; (*instructs the wcsconv function to convert a WC character string into an ANSI string*) - brwU8toUC : USINT := 0; (*instructs the wcsconv function to convert an ANSI character string into a WC string*) -END_VAR + +VAR CONSTANT + brwUCtoU8 : USINT := 1; (*instructs the wcsconv function to convert a WC character string into an ANSI string*) + brwU8toUC : USINT := 0; (*instructs the wcsconv function to convert an ANSI character string into a WC string*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/SG3/AsBrWStr.h b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/SG3/AsBrWStr.h index 456b6dd..f495249 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/SG3/AsBrWStr.h +++ b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/SG3/AsBrWStr.h @@ -1,50 +1,50 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef _ASBRWSTR_ -#define _ASBRWSTR_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include - -#ifndef _IEC_CONST -#define _IEC_CONST _WEAK const -#endif - -/* Constants */ -#ifdef _REPLACE_CONST - #define brwUCtoU8 1U - #define brwU8toUC 0U -#else - _IEC_CONST unsigned char brwUCtoU8 = 1U; - _IEC_CONST unsigned char brwU8toUC = 0U; -#endif - - - - - - - -/* Prototyping of functions and function blocks */ -unsigned long brwcsconv(unsigned char* pDestination, unsigned char* pSource, unsigned char level); -unsigned long brwcsncpy(unsigned short* pDestination, unsigned short* pSource, unsigned long n); -unsigned long brwcsncat(unsigned short* pDestination, unsigned short* pSource, unsigned long n); -unsigned long brwcscat(unsigned short* pDestination, unsigned short* pSource); -signed long brwcscmp(unsigned short* pUcstr1, unsigned short* pUcstr2); -unsigned long brwcslen(unsigned short* pwcString); -unsigned long brwcsset(unsigned short* pDestination, unsigned long len, unsigned short symbol); -signed long brwcsncmp(unsigned short* pwcString1, unsigned short* pwcString2, unsigned long n); -unsigned long brwcscpy(unsigned short* pDestination, unsigned short* pSource); -unsigned long brwcsrchr(unsigned short* pDestination, unsigned short symbol); -unsigned long brwcschr(unsigned short* pDestination, unsigned short symbol); - - -#ifdef __cplusplus -}; -#endif -#endif /* _ASBRWSTR_ */ - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASBRWSTR_ +#define _ASBRWSTR_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define brwUCtoU8 1U + #define brwU8toUC 0U +#else + _IEC_CONST unsigned char brwUCtoU8 = 1U; + _IEC_CONST unsigned char brwU8toUC = 0U; +#endif + + + + + + + +/* Prototyping of functions and function blocks */ +unsigned long brwcsconv(unsigned char* pDestination, unsigned char* pSource, unsigned char level); +unsigned long brwcsncpy(unsigned short* pDestination, unsigned short* pSource, unsigned long n); +unsigned long brwcsncat(unsigned short* pDestination, unsigned short* pSource, unsigned long n); +unsigned long brwcscat(unsigned short* pDestination, unsigned short* pSource); +signed long brwcscmp(unsigned short* pUcstr1, unsigned short* pUcstr2); +unsigned long brwcslen(unsigned short* pwcString); +unsigned long brwcsset(unsigned short* pDestination, unsigned long len, unsigned short symbol); +signed long brwcsncmp(unsigned short* pwcString1, unsigned short* pwcString2, unsigned long n); +unsigned long brwcscpy(unsigned short* pDestination, unsigned short* pSource); +unsigned long brwcsrchr(unsigned short* pDestination, unsigned short symbol); +unsigned long brwcschr(unsigned short* pDestination, unsigned short symbol); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASBRWSTR_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/SG4/AsBrWStr.h b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/SG4/AsBrWStr.h index 590a6cf..de8088f 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/SG4/AsBrWStr.h +++ b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/SG4/AsBrWStr.h @@ -1,52 +1,49 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef _ASBRWSTR_ -#define _ASBRWSTR_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include - -#ifndef _BUR_PUBLIC -#define _BUR_PUBLIC -#endif -/* Constants */ -#ifdef _REPLACE_CONST - #define brwU8toUC 0U - #define brwUCtoU8 1U -#else - #ifndef _GLOBAL_CONST - #define _GLOBAL_CONST _WEAK const - #endif - _GLOBAL_CONST unsigned char brwU8toUC; - _GLOBAL_CONST unsigned char brwUCtoU8; -#endif - - - - - - - -/* Prototyping of functions and function blocks */ -_BUR_PUBLIC unsigned long brwcsconv(unsigned char* pDestination, unsigned char* pSource, unsigned char level); -_BUR_PUBLIC unsigned long brwcsncpy(unsigned short* pDestination, unsigned short* pSource, unsigned long n); -_BUR_PUBLIC unsigned long brwcsncat(unsigned short* pDestination, unsigned short* pSource, unsigned long n); -_BUR_PUBLIC unsigned long brwcscat(unsigned short* pDestination, unsigned short* pSource); -_BUR_PUBLIC signed long brwcscmp(unsigned short* pUcstr1, unsigned short* pUcstr2); -_BUR_PUBLIC unsigned long brwcslen(unsigned short* pwcString); -_BUR_PUBLIC unsigned long brwcsset(unsigned short* pDestination, unsigned long len, unsigned short symbol); -_BUR_PUBLIC signed long brwcsncmp(unsigned short* pwcString1, unsigned short* pwcString2, unsigned long n); -_BUR_PUBLIC unsigned long brwcscpy(unsigned short* pDestination, unsigned short* pSource); -_BUR_PUBLIC unsigned long brwcsrchr(unsigned short* pDestination, unsigned short symbol); -_BUR_PUBLIC unsigned long brwcschr(unsigned short* pDestination, unsigned short symbol); - - -#ifdef __cplusplus -}; -#endif -#endif /* _ASBRWSTR_ */ - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASBRWSTR_ +#define _ASBRWSTR_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC unsigned long brwcsconv(unsigned char* pDestination, unsigned char* pSource, unsigned char level); +_BUR_PUBLIC unsigned long brwcsncpy(unsigned short* pDestination, unsigned short* pSource, unsigned long n); +_BUR_PUBLIC unsigned long brwcsncat(unsigned short* pDestination, unsigned short* pSource, unsigned long n); +_BUR_PUBLIC unsigned long brwcscat(unsigned short* pDestination, unsigned short* pSource); +_BUR_PUBLIC signed long brwcscmp(unsigned short* pUcstr1, unsigned short* pUcstr2); +_BUR_PUBLIC unsigned long brwcslen(unsigned short* pwcString); +_BUR_PUBLIC unsigned long brwcsset(unsigned short* pDestination, unsigned long len, unsigned short symbol); +_BUR_PUBLIC signed long brwcsncmp(unsigned short* pwcString1, unsigned short* pwcString2, unsigned long n); +_BUR_PUBLIC unsigned long brwcscpy(unsigned short* pDestination, unsigned short* pSource); +_BUR_PUBLIC unsigned long brwcsrchr(unsigned short* pDestination, unsigned short symbol); +_BUR_PUBLIC unsigned long brwcschr(unsigned short* pDestination, unsigned short symbol); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define brwU8toUC 0U + #define brwUCtoU8 1U +#else + _GLOBAL_CONST unsigned char brwU8toUC; + _GLOBAL_CONST unsigned char brwUCtoU8; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASBRWSTR_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/SGC/AsBrWStr.h b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/SGC/AsBrWStr.h index 456b6dd..f495249 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/SGC/AsBrWStr.h +++ b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/SGC/AsBrWStr.h @@ -1,50 +1,50 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef _ASBRWSTR_ -#define _ASBRWSTR_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include - -#ifndef _IEC_CONST -#define _IEC_CONST _WEAK const -#endif - -/* Constants */ -#ifdef _REPLACE_CONST - #define brwUCtoU8 1U - #define brwU8toUC 0U -#else - _IEC_CONST unsigned char brwUCtoU8 = 1U; - _IEC_CONST unsigned char brwU8toUC = 0U; -#endif - - - - - - - -/* Prototyping of functions and function blocks */ -unsigned long brwcsconv(unsigned char* pDestination, unsigned char* pSource, unsigned char level); -unsigned long brwcsncpy(unsigned short* pDestination, unsigned short* pSource, unsigned long n); -unsigned long brwcsncat(unsigned short* pDestination, unsigned short* pSource, unsigned long n); -unsigned long brwcscat(unsigned short* pDestination, unsigned short* pSource); -signed long brwcscmp(unsigned short* pUcstr1, unsigned short* pUcstr2); -unsigned long brwcslen(unsigned short* pwcString); -unsigned long brwcsset(unsigned short* pDestination, unsigned long len, unsigned short symbol); -signed long brwcsncmp(unsigned short* pwcString1, unsigned short* pwcString2, unsigned long n); -unsigned long brwcscpy(unsigned short* pDestination, unsigned short* pSource); -unsigned long brwcsrchr(unsigned short* pDestination, unsigned short symbol); -unsigned long brwcschr(unsigned short* pDestination, unsigned short symbol); - - -#ifdef __cplusplus -}; -#endif -#endif /* _ASBRWSTR_ */ - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASBRWSTR_ +#define _ASBRWSTR_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define brwUCtoU8 1U + #define brwU8toUC 0U +#else + _IEC_CONST unsigned char brwUCtoU8 = 1U; + _IEC_CONST unsigned char brwU8toUC = 0U; +#endif + + + + + + + +/* Prototyping of functions and function blocks */ +unsigned long brwcsconv(unsigned char* pDestination, unsigned char* pSource, unsigned char level); +unsigned long brwcsncpy(unsigned short* pDestination, unsigned short* pSource, unsigned long n); +unsigned long brwcsncat(unsigned short* pDestination, unsigned short* pSource, unsigned long n); +unsigned long brwcscat(unsigned short* pDestination, unsigned short* pSource); +signed long brwcscmp(unsigned short* pUcstr1, unsigned short* pUcstr2); +unsigned long brwcslen(unsigned short* pwcString); +unsigned long brwcsset(unsigned short* pDestination, unsigned long len, unsigned short symbol); +signed long brwcsncmp(unsigned short* pwcString1, unsigned short* pwcString2, unsigned long n); +unsigned long brwcscpy(unsigned short* pDestination, unsigned short* pSource); +unsigned long brwcsrchr(unsigned short* pDestination, unsigned short symbol); +unsigned long brwcschr(unsigned short* pDestination, unsigned short symbol); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASBRWSTR_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/binary.lby index 2e2754a..de98f4d 100644 --- a/example/AsProject/Logical/Libraries/_AS/AsBrWStr/binary.lby +++ b/example/AsProject/Logical/Libraries/_AS/AsBrWStr/binary.lby @@ -1,9 +1,9 @@ - - - + + + AsBrWStr.fun AsBrWStr.typ AsBrWStr.var - \ No newline at end of file + diff --git a/example/AsProject/Logical/Libraries/_AS/AsEPL/AsEPL.fun b/example/AsProject/Logical/Libraries/_AS/AsEPL/AsEPL.fun new file mode 100644 index 0000000..3b84500 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsEPL/AsEPL.fun @@ -0,0 +1,83 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK EplSDORead (*reads node's object entries when using an SDO transfer*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDevice :REFERENCE TO STRING[80]; (*device name given as a pointer, e.g., "SL.SS.IF"*) + node :USINT; (*address of the node to be read (1-255 or 0 for local OD)*) + index :UINT; (*number of the index entry to be read*) + subindex :USINT; (*number of the subindex entry to be read*) + pData :UDINT; (*pointer to the buffer for read data*) + datalen :UDINT; (*maximum length of the data to be read*) + END_VAR + + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + errorinfo :UDINT; (*SDO Abort Code, e.g., EPL_ERR_SDO_PROTOCOL_TIMEOUT, EPL_ERR_SDO_COMMAND_ID_INVALID, ..*) + readlen :UDINT; (*length of the entry read*) + END_VAR + + VAR + intern :EPL_I_TYPE; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK EplSDOWrite (*writes a node's object entries when using an SDO transfer*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDevice :REFERENCE TO STRING[80]; (*device name given as a pointer, e.g., "SL.SS.IF"*) + node :USINT; (*address of the node to be written (1-255 or 0 for local OD)*) + index :UINT; (*number of the index entry to be written*) + subindex :USINT; (*number of the subindex entry to be written*) + pData :UDINT; (*pointer to the data to be written*) + datalen :UDINT; (*length of the data to be written*) + END_VAR + + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + errorinfo :UDINT; (*SDO abort code, e.g., EPL_ERR_SDO_PROTOCOL_TIMEOUT, EPL_ERR_SDO_COMMAND_ID_INVALID, ..*) + END_VAR + + VAR + intern :EPL_I_TYPE; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK EplGetLocalNodeID (*queries the local node address of the PLC*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDevice :REFERENCE TO STRING[80]; (*device name given as a pointer, e.g., "SL.SS.IF"*) + END_VAR + + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + nodeid :USINT; (*local node number of the PLC*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK EplCreateObject (*creates a object at the given index/subindex*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDevice :REFERENCE TO STRING[80]; (*device name given as a pointer, e.g., "SL.SS.IF"*) + index :UINT; (*index of object*) + subindex:USINT; (*subindex of object*) + datalen :UDINT; (*length of the object in octets*) + 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 EplDeleteObject (*creates a object at the given index/subindex*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDevice :REFERENCE TO STRING[80]; (*device name given as a pointer, e.g., "SL.SS.IF"*) + index :UINT; (*index of object*) + subindex:USINT; (*subindex of object*) + END_VAR + + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR +END_FUNCTION_BLOCK + diff --git a/example/AsProject/Logical/Libraries/_AS/AsEPL/AsEPL.typ b/example/AsProject/Logical/Libraries/_AS/AsEPL/AsEPL.typ new file mode 100644 index 0000000..dcfc635 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsEPL/AsEPL.typ @@ -0,0 +1,16 @@ + +TYPE + EPL_I_TYPE : STRUCT (*internal use*) + init : UDINT ; + hdl : UDINT ; + st : UDINT ; + errInfo : UDINT ; + size : UDINT ; + bus : USINT ; + sl : USINT ; + ss : USINT ; + if_ : USINT ; + nd : USINT ; + tid : UDINT ; + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsEPL/AsEPL.var b/example/AsProject/Logical/Libraries/_AS/AsEPL/AsEPL.var new file mode 100644 index 0000000..42ae559 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsEPL/AsEPL.var @@ -0,0 +1,15 @@ + +VAR CONSTANT + ERR_ASEPL_BASE : UINT := 31340; (*base error number*) + ERR_ASEPL_WRONG_DEVICE : UINT := 31341; (*specified device not a POWERLINK interface*) + ERR_ASEPL_MN_ONLY : UINT := 31342; (*function can only be executed on an MN (managing node)*) + ERR_ASEPL_CN_ONLY : UINT := 31343; (*function can only be executed on a CN (controlled node)*) + ERR_ASEPL_ACCESS_FAILED : UINT := 31344; (*read or write access failed*) + ERR_ASEPL_PARAM_OUTOFRANGE : UINT := 31345; (*one or more parameters out of range*) + ERR_ASEPL_INDEX_EXISTS : UINT := 31346; (*index already exists*) + ERR_ASEPL_SUBINDEX_EXISTS : UINT := 31347; (*subindex already exists*) + ERR_ASEPL_INDEX_DOESNOTEXIST : UINT := 31348; (*index does not exist*) + ERR_ASEPL_SUBINDEX_DOESNOTEXIST : UINT := 31349; (*subindex does not exists*) + ERR_ASEPL_NILPOINTER : UINT := 31392; (*nil pointer supplied*) + ERR_ASEPL_NOT_IMPLEMENTED : UINT := 31399; (*error code for non-implemented functionality*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsEPL/SG4/AsEPL.h b/example/AsProject/Logical/Libraries/_AS/AsEPL/SG4/AsEPL.h new file mode 100644 index 0000000..9508119 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsEPL/SG4/AsEPL.h @@ -0,0 +1,152 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASEPL_ +#define _ASEPL_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef struct EPL_I_TYPE +{ unsigned long init; + unsigned long hdl; + unsigned long st; + unsigned long errInfo; + unsigned long size; + unsigned char bus; + unsigned char sl; + unsigned char ss; + unsigned char if_; + unsigned char nd; + unsigned long tid; +} EPL_I_TYPE; + +typedef struct EplSDORead +{ + /* VAR_INPUT (analog) */ + plcstring *pDevice; + unsigned char node; + unsigned short index; + unsigned char subindex; + unsigned long pData; + unsigned long datalen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long errorinfo; + unsigned long readlen; + /* VAR (analog) */ + struct EPL_I_TYPE intern; + /* VAR_INPUT (digital) */ + plcbit enable; +} EplSDORead_typ; + +typedef struct EplSDOWrite +{ + /* VAR_INPUT (analog) */ + plcstring *pDevice; + unsigned char node; + unsigned short index; + unsigned char subindex; + unsigned long pData; + unsigned long datalen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long errorinfo; + /* VAR (analog) */ + struct EPL_I_TYPE intern; + /* VAR_INPUT (digital) */ + plcbit enable; +} EplSDOWrite_typ; + +typedef struct EplGetLocalNodeID +{ + /* VAR_INPUT (analog) */ + plcstring *pDevice; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char nodeid; + /* VAR_INPUT (digital) */ + plcbit enable; +} EplGetLocalNodeID_typ; + +typedef struct EplCreateObject +{ + /* VAR_INPUT (analog) */ + plcstring *pDevice; + unsigned short index; + unsigned char subindex; + unsigned long datalen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} EplCreateObject_typ; + +typedef struct EplDeleteObject +{ + /* VAR_INPUT (analog) */ + plcstring *pDevice; + unsigned short index; + unsigned char subindex; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} EplDeleteObject_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void EplSDORead(struct EplSDORead* inst); +_BUR_PUBLIC void EplSDOWrite(struct EplSDOWrite* inst); +_BUR_PUBLIC void EplGetLocalNodeID(struct EplGetLocalNodeID* inst); +_BUR_PUBLIC void EplCreateObject(struct EplCreateObject* inst); +_BUR_PUBLIC void EplDeleteObject(struct EplDeleteObject* inst); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define ERR_ASEPL_NOT_IMPLEMENTED 31399U + #define ERR_ASEPL_NILPOINTER 31392U + #define ERR_ASEPL_SUBINDEX_DOESNOTEXIST 31349U + #define ERR_ASEPL_INDEX_DOESNOTEXIST 31348U + #define ERR_ASEPL_SUBINDEX_EXISTS 31347U + #define ERR_ASEPL_INDEX_EXISTS 31346U + #define ERR_ASEPL_PARAM_OUTOFRANGE 31345U + #define ERR_ASEPL_ACCESS_FAILED 31344U + #define ERR_ASEPL_CN_ONLY 31343U + #define ERR_ASEPL_MN_ONLY 31342U + #define ERR_ASEPL_WRONG_DEVICE 31341U + #define ERR_ASEPL_BASE 31340U +#else + _GLOBAL_CONST unsigned short ERR_ASEPL_NOT_IMPLEMENTED; + _GLOBAL_CONST unsigned short ERR_ASEPL_NILPOINTER; + _GLOBAL_CONST unsigned short ERR_ASEPL_SUBINDEX_DOESNOTEXIST; + _GLOBAL_CONST unsigned short ERR_ASEPL_INDEX_DOESNOTEXIST; + _GLOBAL_CONST unsigned short ERR_ASEPL_SUBINDEX_EXISTS; + _GLOBAL_CONST unsigned short ERR_ASEPL_INDEX_EXISTS; + _GLOBAL_CONST unsigned short ERR_ASEPL_PARAM_OUTOFRANGE; + _GLOBAL_CONST unsigned short ERR_ASEPL_ACCESS_FAILED; + _GLOBAL_CONST unsigned short ERR_ASEPL_CN_ONLY; + _GLOBAL_CONST unsigned short ERR_ASEPL_MN_ONLY; + _GLOBAL_CONST unsigned short ERR_ASEPL_WRONG_DEVICE; + _GLOBAL_CONST unsigned short ERR_ASEPL_BASE; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASEPL_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsEPL/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsEPL/binary.lby new file mode 100644 index 0000000..04c1a79 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsEPL/binary.lby @@ -0,0 +1,12 @@ + + + + + AsEPL.fun + AsEPL.typ + AsEPL.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsGuard/AsGuard.fun b/example/AsProject/Logical/Libraries/_AS/AsGuard/AsGuard.fun new file mode 100644 index 0000000..4905359 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsGuard/AsGuard.fun @@ -0,0 +1,240 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardRegisterLicense (*registers a license for guarding*) + VAR_INPUT + enable : BOOL; (*enables execution*) + firmCode : UDINT; (*firm code of the license*) + productCode : UDINT; (*product code of the license*) + orderNumber : STRING[255]; (*order number of the license*) + description : STRING[255]; (*license description*) + registerType : DWORD; (*register license always or only if license is available*) + reaction : DWORD; (*reaction in case of missing license*) + 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 license*) + END_VAR + VAR + _statemachine : UINT; (*internal variable*) + _result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardCheckLicense (*checks the status of a license*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier of the license*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + availableLicenses: UDINT; (*available licenses*) + neededLicenses : UDINT; (*needed licenses*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardDeregisterLicense (*deregisters a license from guarding*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier of the license*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR + VAR + _statemachine : UINT; (*internal variable*) + _result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardGetContext (*reads the context data of the specified dongle*) + VAR_INPUT + enable : BOOL; (*enables execution*) + boxMask : UINT; (*box mask of the dongle*) + serNo : UDINT; (*serial number of the dongle*) + firmCode : UDINT; (*firm code*) + maxContextDataCount : UDINT; (*maximum size of the buffer for the context data*) + pContextData : UDINT; (*pointer to the buffer for the context data*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + contextDataCount : UDINT; (*current size of context data, in case of error the required size of context data*) + END_VAR + VAR + _statemachine : UINT; (*internal variable*) + _result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardUpdateLicenses (*programs a dongle with the licenses specified in the license data buffer*) + VAR_INPUT + enable : BOOL; (*enables execution*) + licenseDataCount: UDINT; (*license data size*) + pLicenseData : UDINT; (*license data*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + _statemachine : UINT; (*internal variable*) + _result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardGetDongles (*gets dongle with the licenses specified in the license files*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDongleInfos : REFERENCE TO dongleInfo_t; (*buffer to store the dongle information*) + dongleInfoSize : UDINT; (*size of the array "pDongleInfos"*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + neededSize : UDINT; (*used or needed array size*) + END_VAR + VAR + _statemachine : UINT; (*internal variable*) + _result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardReadOperatingTime(*reads operating time*) + VAR_INPUT + enable : BOOL; (*enables execution*) + boxMask : UINT; (*box mask of the dongle*) + serNo : UDINT; (*serial number of the dongle*) + counterType : UDINT; (*type of the counter*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + operatingTime : UDINT; (*operating time*) + END_VAR + VAR + _statemachine : UINT; (*internal variable*) + _result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardStartCustomOpTimeCounter(*starts customer operating time counter*) + VAR_INPUT + enable : BOOL; (*enables execution*) + boxMask : UINT; (*box mask of the dongle*) + serNo : UDINT; (*serial number of the dongle*) + counterType : UDINT; (*type of the counter*) + cfgUpdateSeconds: UDINT; (*seconds until next counter update*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + ident : UDINT; (*ident*) + END_VAR + VAR + _statemachine : UINT; (*internal variable*) + _result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardStopCustomOpTimeCounter(*stops customer operating time counter*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*ident*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + _statemachine : UINT; (*internal variable*) + _result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardReadData (*reads user data*) + VAR_INPUT + enable : BOOL; (*enables execution*) + boxMask : UINT; (*box mask of the dongle*) + serNo : UDINT; (*serial number of the dongle*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + userData : ARRAY [0..241] OF USINT; (*buffer to store the user data*) + usedSize : UDINT; (*used array size*) + END_VAR + VAR + _statemachine : UINT; (*internal variable*) + _result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardWriteData (*writes user data*) + VAR_INPUT + enable : BOOL; (*enables execution*) + boxMask : UINT; (*box mask of the dongle*) + serNo : UDINT; (*serial number of the dongle*) + userData : ARRAY [0..241] OF USINT; (*user data*) + userDataLen : UDINT; (*used buffer size*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + _statemachine : UINT; (*internal variable*) + _result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardGetStatus (*gets the license status of the target*) + VAR_INPUT + enable : BOOL; (*enables execution*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, guardERR_LICENSE_STATUS_UNKNOWN, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + licenseOk : BOOL; (*current license status ok?*) + reactionStatus : DWORD; (*reaction status*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardGetLicenses (*gets the available licenses on the target*) + VAR_INPUT + enable : BOOL; (*enables execution*) + maxNumLicenses : UDINT; (*maximal number of licenses in buffer*) + pLicenses : UDINT; (*buffer for licenses (ARRAY of licenseInfo_t)*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + numLicenses : UDINT; (*number of licenses on target*) + END_VAR + VAR + _statemachine : UINT; (*internal variable*) + _result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardGetDongleLicenses (*gets the available licenses of a specified dongle on the target*) + VAR_INPUT + enable : BOOL; (*enables execution*) + boxMask : UINT; (*box mask of the dongle*) + serNo : UDINT; (*serial number of the dongle*) + maxNumLicenses : UDINT; (*maximal number of licenses in buffer*) + pLicenses : UDINT; (*buffer for licenses (ARRAY of licenseInfo_t)*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + numLicenses : UDINT; (*number of licenses on target*) + END_VAR + VAR + _statemachine : UINT; (*internal variable*) + _result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK guardGetNeededLicenses (*gets the needed licenses*) + VAR_INPUT + enable : BOOL; (*enables execution*) + maxNumNeededLicenses : UDINT; (*maximal number of needed licenses in buffer*) + pNeededLicenses : UDINT; (*buffer for needed licenses (ARRAY of neededLicenseInfo_t)*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + numNeededLicenses : UDINT; (*number of needed licenses on target*) + END_VAR + VAR + _statemachine : UINT; (*internal variable*) + _result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK diff --git a/example/AsProject/Logical/Libraries/_AS/AsGuard/AsGuard.typ b/example/AsProject/Logical/Libraries/_AS/AsGuard/AsGuard.typ new file mode 100644 index 0000000..61344f4 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsGuard/AsGuard.typ @@ -0,0 +1,27 @@ + +TYPE + dongleInfo_t : STRUCT (*information of a B&R dongle*) + boxMask :UINT; (*boxmask*) + serNo :UDINT; (*serial number*) + majorFirmwareVersion :USINT; (*major firmware version*) + minorFirmwareVersion :USINT; (*minor firmware version*) + END_STRUCT; + + licenseInfo_t : STRUCT (*license details*) + firmCode : UDINT; (*firm code of the license*) + productCode : UDINT; (*product code of the license*) + count : UDINT; (*number of available licenses*) + orderNumber : STRING[255]; (*order number of the license*) + description : STRING[255]; (*license description*) + END_STRUCT; + + neededLicenseInfo_t : STRUCT (*details of a needed license*) + firmCode : UDINT; (*firm code of the license*) + productCode : UDINT; (*product code of the license*) + neededCount : UDINT; (*needed number of licenses*) + count : UDINT; (*number of available licenses*) + reaction : DWORD; (*reaction in case of missing license*) + orderNumber : STRING[255]; (*order number of the license*) + description : STRING[255]; (*license description*) + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsGuard/AsGuard.var b/example/AsProject/Logical/Libraries/_AS/AsGuard/AsGuard.var new file mode 100644 index 0000000..86575e1 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsGuard/AsGuard.var @@ -0,0 +1,40 @@ + +(* error area 37300 - 37349 for AsGuard reserved *) + +VAR CONSTANT + guardERR_NULLPOINTER : UINT := 37300; (*null pointer specified*) + guardERR_GENERAL : UINT := 37301; (*general license error*) + guardERR_BUFFERSIZE : UINT := 37302; (*buffer too small*) + guardERR_MEMORY : UINT := 37303; (*memory error*) + guardERR_NOT_STARTED : UINT := 37304; (*license manager not started*) + guardERR_ACCESS : UINT := 37305; (*license access error*) + guardERR_VIOLATION : UINT := 37306; (*license violation*) + guardERR_SERVICE_VIOLATION : UINT := 37307; (*service mode because of license violation*) + guardERR_CREATE_UPDATE_CONTEXT : UINT := 37308; (*error creating update context*) + guardERR_CREATE_CONTEXT_FILE : UINT := 37309; (*error creating update context file*) + guardERR_EXECUTE_UPDATE : UINT := 37310; (*error executing license update*) + guardERR_FILE_NOT_FOUND : UINT := 37311; (*file not found*) + guardERR_LIC_NOT_INITIALIZED : UINT := 37312; (*license not initialized*) + guardERR_TASK : UINT := 37313; + guardERR_DONGLE_NOT_FOUND : UINT := 37314; (*specified dongle not found*) + guardERR_CONTEXT_SIZE : UINT := 37315; (*wrong context size*) + guardERR_INVALID_PARAM : UINT := 37316; (*invalid parameter specified*) + guardERR_UNAVAILABLE : UINT := 37317; (*function unavailable*) + guardERR_DATA_SIZE : UINT := 37321; (*data size invalid*) + guardERR_LICENSE_STATUS_UNKNOWN : UINT := 37322; (*license status currently unknown*) + guardERR_ALREADY_STARTED : UINT := 37323; (*customer operating time counter already started*) + + guardBR_FIRMCODE : UDINT := 101652; (*B&R firmcode*) + + guardLIC_REACT_NONE : DWORD := 16#00; (*no reaction*) + guardLIC_REACT_LOGBOOK : DWORD := 16#01; (*in case of license violation write a message into logbook*) + guardLIC_REACT_BLINK_CPU_LED : DWORD := 16#02; (*in case of license violation blink User LED*) + guardLIC_REACT_BOOT_SERVICE : DWORD := 16#04; (*in case of license violation during bootup start PLC in service mode*) + guardLIC_REACT_SERVICE : DWORD := 16#08; (*in case of license violation restart PLC in service mode *) + + guardREGISTER_ALWAYS : DWORD := 1; (*register license always*) + guardREGISTER_IF_AVAILABLE : DWORD := 2; (*register license only if available*) + + guardGENERAL_OP_TIME_COUNTER : UDINT := 1; (*general operating time counter*) + guardCUSTOMER_OP_TIME_COUNTER : UDINT := 2; (*customer operating time counter*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsGuard/SG4/AsGuard.h b/example/AsProject/Logical/Libraries/_AS/AsGuard/SG4/AsGuard.h new file mode 100644 index 0000000..e638e6f --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsGuard/SG4/AsGuard.h @@ -0,0 +1,365 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASGUARD_ +#define _ASGUARD_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef struct dongleInfo_t +{ unsigned short boxMask; + unsigned long serNo; + unsigned char majorFirmwareVersion; + unsigned char minorFirmwareVersion; +} dongleInfo_t; + +typedef struct licenseInfo_t +{ unsigned long firmCode; + unsigned long productCode; + unsigned long count; + plcstring orderNumber[256]; + plcstring description[256]; +} licenseInfo_t; + +typedef struct neededLicenseInfo_t +{ unsigned long firmCode; + unsigned long productCode; + unsigned long neededCount; + unsigned long count; + plcdword reaction; + plcstring orderNumber[256]; + plcstring description[256]; +} neededLicenseInfo_t; + +typedef struct guardRegisterLicense +{ + /* VAR_INPUT (analog) */ + unsigned long firmCode; + unsigned long productCode; + plcstring orderNumber[256]; + plcstring description[256]; + plcdword registerType; + plcdword reaction; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long ident; + /* VAR (analog) */ + unsigned short _statemachine; + unsigned short _result; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardRegisterLicense_typ; + +typedef struct guardCheckLicense +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long availableLicenses; + unsigned long neededLicenses; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardCheckLicense_typ; + +typedef struct guardDeregisterLicense +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short _statemachine; + unsigned short _result; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardDeregisterLicense_typ; + +typedef struct guardGetContext +{ + /* VAR_INPUT (analog) */ + unsigned short boxMask; + unsigned long serNo; + unsigned long firmCode; + unsigned long maxContextDataCount; + unsigned long pContextData; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long contextDataCount; + /* VAR (analog) */ + unsigned short _statemachine; + unsigned short _result; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardGetContext_typ; + +typedef struct guardUpdateLicenses +{ + /* VAR_INPUT (analog) */ + unsigned long licenseDataCount; + unsigned long pLicenseData; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short _statemachine; + unsigned short _result; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardUpdateLicenses_typ; + +typedef struct guardGetDongles +{ + /* VAR_INPUT (analog) */ + struct dongleInfo_t* pDongleInfos; + unsigned long dongleInfoSize; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long neededSize; + /* VAR (analog) */ + unsigned short _statemachine; + unsigned short _result; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardGetDongles_typ; + +typedef struct guardReadOperatingTime +{ + /* VAR_INPUT (analog) */ + unsigned short boxMask; + unsigned long serNo; + unsigned long counterType; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long operatingTime; + /* VAR (analog) */ + unsigned short _statemachine; + unsigned short _result; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardReadOperatingTime_typ; + +typedef struct guardStartCustomOpTimeCounter +{ + /* VAR_INPUT (analog) */ + unsigned short boxMask; + unsigned long serNo; + unsigned long counterType; + unsigned long cfgUpdateSeconds; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long ident; + /* VAR (analog) */ + unsigned short _statemachine; + unsigned short _result; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardStartCustomOpTimeCounter_typ; + +typedef struct guardStopCustomOpTimeCounter +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short _statemachine; + unsigned short _result; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardStopCustomOpTimeCounter_typ; + +typedef struct guardReadData +{ + /* VAR_INPUT (analog) */ + unsigned short boxMask; + unsigned long serNo; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char userData[242]; + unsigned long usedSize; + /* VAR (analog) */ + unsigned short _statemachine; + unsigned short _result; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardReadData_typ; + +typedef struct guardWriteData +{ + /* VAR_INPUT (analog) */ + unsigned short boxMask; + unsigned long serNo; + unsigned char userData[242]; + unsigned long userDataLen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short _statemachine; + unsigned short _result; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardWriteData_typ; + +typedef struct guardGetStatus +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + plcdword reactionStatus; + /* VAR_INPUT (digital) */ + plcbit enable; + /* VAR_OUTPUT (digital) */ + plcbit licenseOk; +} guardGetStatus_typ; + +typedef struct guardGetLicenses +{ + /* VAR_INPUT (analog) */ + unsigned long maxNumLicenses; + unsigned long pLicenses; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long numLicenses; + /* VAR (analog) */ + unsigned short _statemachine; + unsigned short _result; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardGetLicenses_typ; + +typedef struct guardGetDongleLicenses +{ + /* VAR_INPUT (analog) */ + unsigned short boxMask; + unsigned long serNo; + unsigned long maxNumLicenses; + unsigned long pLicenses; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long numLicenses; + /* VAR (analog) */ + unsigned short _statemachine; + unsigned short _result; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardGetDongleLicenses_typ; + +typedef struct guardGetNeededLicenses +{ + /* VAR_INPUT (analog) */ + unsigned long maxNumNeededLicenses; + unsigned long pNeededLicenses; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long numNeededLicenses; + /* VAR (analog) */ + unsigned short _statemachine; + unsigned short _result; + /* VAR_INPUT (digital) */ + plcbit enable; +} guardGetNeededLicenses_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void guardRegisterLicense(struct guardRegisterLicense* inst); +_BUR_PUBLIC void guardCheckLicense(struct guardCheckLicense* inst); +_BUR_PUBLIC void guardDeregisterLicense(struct guardDeregisterLicense* inst); +_BUR_PUBLIC void guardGetContext(struct guardGetContext* inst); +_BUR_PUBLIC void guardUpdateLicenses(struct guardUpdateLicenses* inst); +_BUR_PUBLIC void guardGetDongles(struct guardGetDongles* inst); +_BUR_PUBLIC void guardReadOperatingTime(struct guardReadOperatingTime* inst); +_BUR_PUBLIC void guardStartCustomOpTimeCounter(struct guardStartCustomOpTimeCounter* inst); +_BUR_PUBLIC void guardStopCustomOpTimeCounter(struct guardStopCustomOpTimeCounter* inst); +_BUR_PUBLIC void guardReadData(struct guardReadData* inst); +_BUR_PUBLIC void guardWriteData(struct guardWriteData* inst); +_BUR_PUBLIC void guardGetStatus(struct guardGetStatus* inst); +_BUR_PUBLIC void guardGetLicenses(struct guardGetLicenses* inst); +_BUR_PUBLIC void guardGetDongleLicenses(struct guardGetDongleLicenses* inst); +_BUR_PUBLIC void guardGetNeededLicenses(struct guardGetNeededLicenses* inst); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define guardCUSTOMER_OP_TIME_COUNTER 2U + #define guardGENERAL_OP_TIME_COUNTER 1U + #define guardREGISTER_IF_AVAILABLE 2U + #define guardREGISTER_ALWAYS 1U + #define guardLIC_REACT_SERVICE 8U + #define guardLIC_REACT_BOOT_SERVICE 4U + #define guardLIC_REACT_BLINK_CPU_LED 2U + #define guardLIC_REACT_LOGBOOK 1U + #define guardLIC_REACT_NONE 0U + #define guardBR_FIRMCODE 101652U + #define guardERR_ALREADY_STARTED 37323U + #define guardERR_LICENSE_STATUS_UNKNOWN 37322U + #define guardERR_DATA_SIZE 37321U + #define guardERR_UNAVAILABLE 37317U + #define guardERR_INVALID_PARAM 37316U + #define guardERR_CONTEXT_SIZE 37315U + #define guardERR_DONGLE_NOT_FOUND 37314U + #define guardERR_TASK 37313U + #define guardERR_LIC_NOT_INITIALIZED 37312U + #define guardERR_FILE_NOT_FOUND 37311U + #define guardERR_EXECUTE_UPDATE 37310U + #define guardERR_CREATE_CONTEXT_FILE 37309U + #define guardERR_CREATE_UPDATE_CONTEXT 37308U + #define guardERR_SERVICE_VIOLATION 37307U + #define guardERR_VIOLATION 37306U + #define guardERR_ACCESS 37305U + #define guardERR_NOT_STARTED 37304U + #define guardERR_MEMORY 37303U + #define guardERR_BUFFERSIZE 37302U + #define guardERR_GENERAL 37301U + #define guardERR_NULLPOINTER 37300U +#else + _GLOBAL_CONST unsigned long guardCUSTOMER_OP_TIME_COUNTER; + _GLOBAL_CONST unsigned long guardGENERAL_OP_TIME_COUNTER; + _GLOBAL_CONST plcdword guardREGISTER_IF_AVAILABLE; + _GLOBAL_CONST plcdword guardREGISTER_ALWAYS; + _GLOBAL_CONST plcdword guardLIC_REACT_SERVICE; + _GLOBAL_CONST plcdword guardLIC_REACT_BOOT_SERVICE; + _GLOBAL_CONST plcdword guardLIC_REACT_BLINK_CPU_LED; + _GLOBAL_CONST plcdword guardLIC_REACT_LOGBOOK; + _GLOBAL_CONST plcdword guardLIC_REACT_NONE; + _GLOBAL_CONST unsigned long guardBR_FIRMCODE; + _GLOBAL_CONST unsigned short guardERR_ALREADY_STARTED; + _GLOBAL_CONST unsigned short guardERR_LICENSE_STATUS_UNKNOWN; + _GLOBAL_CONST unsigned short guardERR_DATA_SIZE; + _GLOBAL_CONST unsigned short guardERR_UNAVAILABLE; + _GLOBAL_CONST unsigned short guardERR_INVALID_PARAM; + _GLOBAL_CONST unsigned short guardERR_CONTEXT_SIZE; + _GLOBAL_CONST unsigned short guardERR_DONGLE_NOT_FOUND; + _GLOBAL_CONST unsigned short guardERR_TASK; + _GLOBAL_CONST unsigned short guardERR_LIC_NOT_INITIALIZED; + _GLOBAL_CONST unsigned short guardERR_FILE_NOT_FOUND; + _GLOBAL_CONST unsigned short guardERR_EXECUTE_UPDATE; + _GLOBAL_CONST unsigned short guardERR_CREATE_CONTEXT_FILE; + _GLOBAL_CONST unsigned short guardERR_CREATE_UPDATE_CONTEXT; + _GLOBAL_CONST unsigned short guardERR_SERVICE_VIOLATION; + _GLOBAL_CONST unsigned short guardERR_VIOLATION; + _GLOBAL_CONST unsigned short guardERR_ACCESS; + _GLOBAL_CONST unsigned short guardERR_NOT_STARTED; + _GLOBAL_CONST unsigned short guardERR_MEMORY; + _GLOBAL_CONST unsigned short guardERR_BUFFERSIZE; + _GLOBAL_CONST unsigned short guardERR_GENERAL; + _GLOBAL_CONST unsigned short guardERR_NULLPOINTER; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASGUARD_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsGuard/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsGuard/binary.lby new file mode 100644 index 0000000..39006ac --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsGuard/binary.lby @@ -0,0 +1,12 @@ + + + + + AsGuard.fun + AsGuard.typ + AsGuard.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsHttp/AsHttp.fun b/example/AsProject/Logical/Libraries/_AS/AsHttp/AsHttp.fun new file mode 100644 index 0000000..c5be106 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsHttp/AsHttp.fun @@ -0,0 +1,390 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpService (*offers a webservice ; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution, registers webservice; asynchronous execution*) + send : BOOL; (*on positive edge response will be sent*) + abort : BOOL; (*request handling aborts on positive edge*) + option : UDINT; (*options such as service type, protocol version (HTTP/1.0 , HTTP/1.1), see httpOPTIONS_XXX*) + pServiceName : UDINT; (*ressource name of webservice, see httpOPTION_SERVICE_TYPE_XXX*) + pUri : UDINT; (*URI buffer string given as a pointer, an URI may look like "hello.cgi?name=myName"*) + uriSize : UDINT; (*size of uri data puffer*) + pRequestHeader : UDINT; (*pointer to httpRequestHeader_t, optional*) + pRequestData : UDINT; (*request data puffer string given as a pointer*) + requestDataSize : UDINT; (*size of request data buffer*) + pResponseHeader : UDINT; (*pointer to httpResponseHeader_t, optional*) + pResponseData : UDINT; (*response data string given as a pointer*) + responseDataLen : UDINT; (*length of response data*) + pStatistics : UDINT; (*pointer to httpStatistics_t, optional*) + pStruct : UDINT; (*reserve*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY,0xXXXX = see help*) + method : UINT; (*method of incoming request, see httpMETHOD_XXX*) + requestDataLen : UDINT; (*length of request data*) + phase : UINT; (*current phase of request response handling of the webservice, see httpPHASE_XXX*) + END_VAR + VAR + _i_state : UDINT; (*internal variable*) + _i_result : UINT; (*internal variable*) + _ident : UDINT; (*internal variable*) + _oldEnable : UDINT; (*internal variable*) + _oldAbort : UDINT; (*internal variable*) + _oldSend : UDINT; (*internal variable*) + _state : UDINT; (*internal variable*) + _internal : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpClient (*sends and recieves HTTP messages (web requests); asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution; asynchronous execution*) + send : BOOL; (*sends request data on positive edge*) + abort : BOOL; (*disconnects and resets client state on positive edge*) + option : UDINT; (*options, e.g protocol version (HTTP1.0 / 1.1)*) + pHost : UDINT; (*host name or ip of server to connect to given as a pointer*) + hostPort : UINT; (*port number of server to connect to*) + method : UDINT; (*request method see httpMETHOD_XXX*) + pUri : UDINT; (*request uri given as a pointer, e.g. "/index.html" or "/hello.cgi?name=myName"*) + pRequestHeader : UDINT; (*pointer to httpRequestHeader_t, optional*) + pRequestData : UDINT; (*pointer to request data, typically string data*) + requestDataLen : UDINT; (*length of request data*) + pResponseHeader : UDINT; (*pointer to httpResponseHeader_t, optional*) + pResponseData : UDINT; (*pointer to response data buffer, typically string data*) + responseDataSize : UDINT; (*size of response data buffer*) + pStatistics : UDINT; (*pointer to httpStatistics_t, optional*) + pStruct : UDINT; (*reserve*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, +0xXXXX = see help*) + tcpStatus : UINT; (*status of the tcp connection*) + httpStatus : UINT; (*status code of response, e.g. 200 for "OK", 404 for "Not Found"*) + responseDataLen : UDINT; (*length of response (bytes)*) + phase : UINT; (*current phase of request response handling of the webservice, see httpPHASE_XXX*) + END_VAR + VAR + _i_state : UDINT; (*internal variable*) + _i_result : UINT; (*internal variable*) + _ident : UDINT; (*internal variable*) + _oldEnable : UDINT; (*internal variable*) + _oldAbort : UDINT; (*internal variable*) + _oldSend : UDINT; (*internal variable*) + _state : UDINT; (*internal variable*) + _internal : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpsService (*offers a webservice over HTTPs; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution, registers webservice; asynchronous execution*) + send : BOOL; (*on positive edge response will be sent*) + abort : BOOL; (*request handling aborts on positive edge*) + option : UDINT; (*options such as service type, protocol version (HTTP/1.0 , HTTP/1.1), see httpOPTIONS_XXX*) + pServiceName : UDINT; (*ressource name of webservice, see httpOPTION_SERVICE_TYPE_XXX*) + pUri : UDINT; (*URI buffer string given as a pointer, an URI may look like "hello.cgi?name=myName"*) + uriSize : UDINT; (*size of uri data puffer*) + pRequestHeader : UDINT; (*pointer to httpRequestHeader_t, optional*) + pRequestData : UDINT; (*request data puffer string given as a pointer*) + requestDataSize : UDINT; (*size of request data buffer*) + pResponseHeader : UDINT; (*pointer to httpResponseHeader_t, optional*) + pResponseData : UDINT; (*response data string given as a pointer*) + responseDataLen : UDINT; (*length of response data*) + pStatistics : UDINT; (*pointer to httpStatistics_t, optional*) + pStruct : UDINT; (*reserve*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY,0xXXXX = see help*) + method : UINT; (*method of incoming request, see httpMETHOD_XXX*) + requestDataLen : UDINT; (*length of request data*) + phase : UINT; (*current phase of request response handling of the webservice, see httpPHASE_XXX*) + END_VAR + VAR + _i_state : UDINT; (*internal variable*) + _i_result : UINT; (*internal variable*) + _ident : UDINT; (*internal variable*) + _oldEnable : UDINT; (*internal variable*) + _oldAbort : UDINT; (*internal variable*) + _oldSend : UDINT; (*internal variable*) + _state : UDINT; (*internal variable*) + _internal : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpsClient (*sends and recieves HTTPs messages (web requests); asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution; asynchronous execution*) + send : BOOL; (*sends request data on positive edge*) + abort : BOOL; (*disconnects and resets client state on positive edge*) + option : UDINT; (*options, e.g protocol version (HTTP1.0 / 1.1)*) + sslCfgIdent : UDINT; (*identifier of the SSL configuration*) + pHost : UDINT; (*host name or ip of server to connect to given as a pointer*) + hostPort : UINT; (*port number of server to connect to*) + method : UDINT; (*request method see httpMETHOD_XXX*) + pUri : UDINT; (*request uri given as a pointer, e.g. "/index.html" or "/hello.cgi?name=myName"*) + pRequestHeader : UDINT; (*pointer to httpRequestHeader_t, optional*) + pRequestData : UDINT; (*pointer to request data, typically string data*) + requestDataLen : UDINT; (*length of request data*) + pResponseHeader : UDINT; (*pointer to httpResponseHeader_t, optional*) + pResponseData : UDINT; (*pointer to response data buffer, typically string data*) + responseDataSize : UDINT; (*size of response data buffer*) + pStatistics : UDINT; (*pointer to httpStatistics_t, optional*) + pStruct : UDINT; (*reserve*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, +0xXXXX = see help*) + tcpStatus : UINT; (*status of the ssl connection (tcp and ssl)*) + httpStatus : UINT; (*status code of response, e.g. 200 for "OK", 404 for "Not Found"*) + responseDataLen : UDINT; (*length of response (bytes)*) + phase : UINT; (*current phase of request response handling of the webservice, see httpPHASE_XXX*) + END_VAR + VAR + _i_state : UDINT; (*internal variable*) + _i_result : UINT; (*internal variable*) + _ident : UDINT; (*internal variable*) + _oldEnable : UDINT; (*internal variable*) + _oldAbort : UDINT; (*internal variable*) + _oldSend : UDINT; (*internal variable*) + _state : UDINT; (*internal variable*) + _internal : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpsClientMcs (*sends and recieves HTTPs messages using MCS (web requests); asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution; asynchronous execution*) + send : BOOL; (*sends request data on positive edge*) + abort : BOOL; (*disconnects and resets client state on positive edge*) + option : UDINT; (*options, e.g protocol version (HTTP1.0 / 1.1)*) + mcsStore : AsHttpMcsType; (*Managed Certificate Store Struct*) + pHost : UDINT; (*host name or ip of server to connect to given as a pointer*) + hostPort : UINT; (*port number of server to connect to*) + method : UDINT; (*request method see httpMETHOD_XXX*) + pUri : UDINT; (*request uri given as a pointer, e.g. "/index.html" or "/hello.cgi?name=myName"*) + pRequestHeader : UDINT; (*pointer to httpRequestHeader_t, optional*) + pRequestData : UDINT; (*pointer to request data, typically string data*) + requestDataLen : UDINT; (*length of request data*) + pResponseHeader : UDINT; (*pointer to httpResponseHeader_t, optional*) + pResponseData : UDINT; (*pointer to response data buffer, typically string data*) + responseDataSize : UDINT; (*size of response data buffer*) + pStatistics : UDINT; (*pointer to httpStatistics_t, optional*) + pStruct : UDINT; (*reserve*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, +0xXXXX = see help*) + tcpStatus : UINT; (*status of the tls connection (tcp and tls)*) + httpStatus : UINT; (*status code of response, e.g. 200 for "OK", 404 for "Not Found"*) + responseDataLen : UDINT; (*length of response (bytes)*) + phase : UINT; (*current phase of request response handling of the webservice, see httpPHASE_XXX*) + END_VAR + VAR + _i_state : UDINT; (*internal variable*) + _i_result : UINT; (*internal variable*) + _ident : UDINT; (*internal variable*) + _oldEnable : UDINT; (*internal variable*) + _oldAbort : UDINT; (*internal variable*) + _oldSend : UDINT; (*internal variable*) + _state : UDINT; (*internal variable*) + _internal : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpUtf8ToString (*converts a UTF8 string in string with respect to given code page mapping*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pSrc : UDINT; (*input string (UTF8 encoded), given as a pointer*) + pDest : UDINT; (*destination buffer*) + destSize : UDINT; (*size of destination buffer*) + pMappingTable : UDINT; (*pointer to WSTRING[255], mapping table for code page, see help*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + destLen : UDINT; (*string length of the string*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpStringToUtf8 (*converts a string in UTF8 string with respect to given code page mapping*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pSrc : UDINT; (*input string, given as a pointer*) + pDest : UDINT; (*destination buffer*) + destSize : UDINT; (*size of destination buffer*) + pMappingTable : UDINT; (*pointer to WSTRING[255], mapping table for code page, see help*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + destLen : UDINT; (*string length of the UTF8 string*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpUtf8ToWString (*converts a UTF8 encoded string in wide character string*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pSrc : UDINT; (*input string, given as a pointer*) + pDest : UDINT; (*destination buffer*) + destSize : UDINT; (*size of destination buffer*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + destLen : UDINT; (*wide character string length*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpWStringToUtf8 (*converts a wide character string in UTF8 string*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pSrc : UDINT; (*input string, given as a pointer*) + pDest : UDINT; (*destination buffer*) + destSize : UDINT; (*size of destination buffer*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + destLen : UDINT; (*string length of the UTF8 encoded string*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpDecodeBase64 (*decodes base64 encoded string in binary data or string*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pSrc : UDINT; (*encoded string, given as a pointer*) + srcLen : UDINT; (*length of encoded string*) + pDest : UDINT; (*destination buffer, given as a pointer*) + destSize : UDINT; (*size of destination buffer*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + destLen : UDINT; (*length of decoded data*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpEncodeBase64 (*encodes binary data or a string in a base64 encoded string*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pSrc : UDINT; (*input data, given as a pointer*) + srcLen : UDINT; (*length of input data*) + pDest : UDINT; (*destination buffer, given as a pointer*) + destSize : UDINT; (*size of destination buffer*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + destLen : UDINT; (*length of encoded string*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpEncodeUrl (*encodes special chars in the given string according the URL encoding*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pSrc : UDINT; (*input string, given as a pointer*) + pDest : UDINT; (*destination buffer, given as a pointer*) + destSize : UDINT; (*size of destination buffer*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + destLen : UDINT; (*length of encoded string*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpDecodeUrl (*decodes an URL encoded string*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pSrc : UDINT; (*input string, given as a pointer*) + pDest : UDINT; (*destination buffer, given as a pointer*) + destSize : UDINT; (*size of destination buffer*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + destLen : UDINT; (*length of decoded string*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpGetParamUrl (*retrieves the string value of the given parameter.*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pSrc : UDINT; (*input string, given as a pointer*) + pParam : UDINT; (*search string given as a pointer*) + pValue : UDINT; (*value string buffer given as a pointer*) + valueSize : UDINT; (*size of value buffer*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + valueLen : UDINT; (*length of value string*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpSetParamUrl (*adds a parameter and its value with respect to URL encoding*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pParam : UDINT; (*name string given as a pointer*) + pValue : UDINT; (*value string buffer given as a pointer*) + pDest : UDINT; (*resulting string buffer given as pointer*) + destSize : UDINT; (*size of destination buffer*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + destLen : UDINT; (*length of resulted string*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpSetBoundary (*adds the boundary information to the HTTP message header*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pStruct : UDINT; (*pointer to the header structure (httpRequestHeader_t or httpResponseHeader_t)*) + pBoundary : UDINT; (*boundary string given as a pointer. A boundary has no more than 70 chars and is unambiguous*) + 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 httpGetBoundary (*retrieves the boundary value of the given header structure*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pStruct : UDINT; (*pointer to the header structure (httpRequestHeader_t or httpResponseHeader_t)*) + pBoundary : UDINT; (*boundary string buffer given as a pointer*) + boundarySize : UDINT; (*size of boundary buffer, preferrably slighly more than 70 bytes*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + boundaryLen : UDINT; (*length of the retrieved boundary if any*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpSetMultipartMessage (*sets respectivly appends a multipart message*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pDest : UDINT; (*destination buffer string given as a pointer*) + destSize : UDINT; (*size of destination buffer*) + pBoundary : UDINT; (*boundary string to seperate multipart message given as a pointer*) + pMessageHeader : UDINT; (*header string given as a pointer, contains header for multipart message, if any*) + pMessageData : UDINT; (*message body given as a pointer, contains data for multipart message*) + messageDataLen : UDINT; (*length of message data*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR + VAR + _messageLen : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK httpGetMultipartMessage (*gets next multipart message information on each call*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pSrc : UDINT; (*source string given as a pointer, contains one or more multipart messages*) + pBoundary : UDINT; (*boundary string given as a pointer, seperator of the multipart messages*) + pMessageHeader : UDINT; (*string buffer for a optional message header given as a pointer*) + messageHeaderSize : UDINT; (*size of message header buffer*) + pMessageData : UDINT; (*string buffer for message data given as a pointer*) + messageDataSize : UDINT; (*size of message data buffer*) + END_VAR + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + messageHeaderLen : UDINT; (*length of current header, if any*) + messageDataLen : UDINT; (*length of current data*) + messageLen : UDINT; (*offset to current message ending*) + END_VAR + VAR + _internal : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK diff --git a/example/AsProject/Logical/Libraries/_AS/AsHttp/AsHttp.typ b/example/AsProject/Logical/Libraries/_AS/AsHttp/AsHttp.typ new file mode 100644 index 0000000..f9f1235 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsHttp/AsHttp.typ @@ -0,0 +1,51 @@ + +TYPE + httpResponseHeader_t : STRUCT (*response header structure*) + protocol : STRING[20]; (*HTTP/1.0 or HTTP/1.1*) + status : STRING[280]; (*HTTP status line e.g. "200 OK" , "404 Not Found"*) + contentType : STRING[100]; (*MIME type specifying message body, e.g. "text/html"*) + contentLength : UDINT; (*length of message data, should be equal to responseDataLen, optional input*) + connection : STRING[80]; (*valid tokens are "Close" or "Keep-Alive", default is "Close"*) + keepAlive : STRING[80]; (*e.g. "timeout=5, max=100", optional*) + userLine : ARRAY[0..7]OF httpHeaderLine_t; (*userspecific headerlines, optional*) + rawHeader : httpRawHeader_t; (*interface to add / get formatted headers, optional*) + END_STRUCT; + httpRequestHeader_t : STRUCT (*request header structure*) + protocol : STRING[20]; (*protocol version e.g. "HTTP/1.0" or "HTTP/1.1", optional input*) + host : STRING[280]; (*host name or ip address of the server and port number if <> 80, optional input*) + contentType : STRING[100]; (*MIME type specifying message body, e.g. "text/html", optional input*) + contentLength : UDINT; (*length of message data, should be equal to requestDataLen, optional input*) + connection : STRING[80]; (*valid tokens are "Close" or "Keep-Alive", default is "Close", optional input*) + keepAlive : STRING[80]; (*e.g. "timeout=5, max=100", optional input*) + userLine : ARRAY[0..7]OF httpHeaderLine_t; (*userspecific headerlines, optional*) + rawHeader : httpRawHeader_t; (*interface to add / get formatted headers, optional*) + END_STRUCT; + httpHeaderLine_t : STRUCT (*structure containing information of one header line*) + name : STRING[50]; (*header field name, e.g. "User-Agent" to get / set the user-agent header entry*) + value : STRING[80]; (*header field value, e.g. "B&R Client"*) + END_STRUCT; + httpRawHeader_t : STRUCT (*buffer handling structure for raw (formatted) headers*) + pData : UDINT; (*pointer to data buffer, where the header is copied*) + dataSize : UDINT; (*max. length of data buffer in bytes*) + dataLen : UDINT; (*length of the header bytes copied out*) + END_STRUCT; + httpStatistics_t : STRUCT (*informational structure*) + requestCounter : UDINT; (*counts requests*) + timeOfLastRequest : DATE_AND_TIME; (*timestamp of last request*) + responseCounter : UDINT; (*counts responses*) + timeOfLastResponse : DATE_AND_TIME; (*timestamp of last response*) + errorCounter : UDINT; (*counts errors, e.g. connection errors, aborts *) + lastError : UDINT; (*error number, if any*) + END_STRUCT; + + AsHttpCipherVersionEnum : + ( + asHTTP_TLS_1_3 := 2 (*TLS 1.3*) (**) (*#PAR*) + ); + + AsHttpMcsType : STRUCT + name : STRING[255]; (*Managed Certificate Store name*) + tlsVersion : AsHttpCipherVersionEnum; (*TLS version*) + trustListValidation : BOOL; (*Enables/disables trust list validation*) + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsHttp/AsHttp.var b/example/AsProject/Logical/Libraries/_AS/AsHttp/AsHttp.var new file mode 100644 index 0000000..6e35e9c --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsHttp/AsHttp.var @@ -0,0 +1,38 @@ +VAR CONSTANT + httpERR_BUFFER_SIZE : UINT := 35550; (*buffer is too small*) + httpERR_DATA_SIZE : UINT := 35551; (*data buffer is too small*) + httpERR_HEADER_SIZE_RAW : UINT := 35552; (*raw header size buffer is too small or raw header is too long*) + httpERR_HEADER_SIZE_USERLINE : UINT := 35553; (*any of requested user line is too long for the structure*) + httpERR_INVALID_PARAM : UINT := 35554; (*check parameters. At least one of needed ones is zero*) + httpERR_NO_DATA : UINT := 35555; (*no data retrieved*) + httpERR_METHOD_UNSUPPORTED : UINT := 35556; (*method not supported, supported methods are PUT, POST, GET, DELETE*) + httpERR_SERVICE_NO_WEBSERVER : UINT := 35557; (*webserver is disabled or not installed, webservice will not be available*) + httpERR_SERVICE_LINK_FAILED : UINT := 35558; (*webservice could not be registered, check registration*) + httpERR_CLIENT_ERR_SOCKET_CREATE : UINT := 35559; (*could not create a new socket. Try again later*) + httpERR_CLIENT_NO_MORE_IDENTS : UINT := 35560; (*too many httpClients enabled, disable unused instances*) + httpERR_CLIENT_TCP_CONN_CLOSED : UINT := 35561; (*informational, no error: Connection closed. Possible reasons: HTTP/1.0, use of "Connection: close" header, Keep-Alive timeout*) + httpERR_CLIENT_TCP_CONN_FAILED : UINT := 35562; (*could not connect to given server. Check network parameters and server aviability*) + httpERR_CLIENT_TCP_INVALID_HOST : UINT := 35563; (*could not resolve name or IP-address of server, check pHost*) + httpERR_CLIENT_TCP_DISCONNECTED : UINT := 35564; (*lost connection unexpectedly*) + httpERR_NOT_FOUND : UINT := 35565; (*source string didn't contain parameter*) + httpERR_ILLEGAL_CHARACTERS : UINT := 35566; (*source contains characters, that couldn't be transformd*) + httpERR_SSL_HANDSHAKE_FAILED : UINT := 35567; (*client handshake failed*) + httpERR_INVALID_SSL_CONFIG : UINT := 35568; (*Could not open ssl configuration*) + httpERR_INVALID_MCS_CONFIG : UINT := 35569; (*invalid MCS configuration given*) + httpERR_SYSTEM : UINT := 35579; (*general error, see help*) + httpMETHOD_GET : UINT := 1; (*request method GET, additional request parameters are part of the URL*) + httpMETHOD_POST : UINT := 2; (*request method POST, request contains a message body*) + httpMETHOD_PUT : UINT := 3; (*request method PUT, request contains a message body*) + httpMETHOD_DELETE : UINT := 4; (*request method DELETE, additional request parameters are part of the URL*) + httpOPTION_HTTP_10 : UINT := 0; (*use HTTP/1.0 as protocol type*) + httpOPTION_HTTP_11 : UINT := 1; (*use HTTP/1.1 as protocol type*) + httpOPTION_SERVICE_TYPE_ROOT : UINT := 4; (*Type of service: root path, e.g. "/basePath", handles requests inside this virtual folder*) + httpOPTION_SERVICE_TYPE_NAME : UINT := 2; (*Type of service: name, e.g. "hello.cgi", handles requests ending with this name*) + httpOPTION_SERVICE_TYPE_EXT : UINT := 6; (*Type of service: file extension, e.g. "*.abc" handles requests with file extension ".abc"*) + httpOPTION_SERVICE_TYPE_LEAF : UINT := 8; (*Type of service: relative path, e.g. "cgi-bin" handles requests in virtual subfolders called "cgi-bin"*) + httpPHASE_NOT_CONNECTED : UINT := 0; (*not connected*) + httpPHASE_SENDING : UINT := 1; (*sending a HTTP message*) + httpPHASE_RECEIVING : UINT := 2; (*receiving a HTTP message*) + httpPHASE_RECEIVED : UINT := 3; (*HTTP message received *) + httpPHASE_WAITING : UINT := 4; (*idle state*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsHttp/SG4/AsHttp.h b/example/AsProject/Logical/Libraries/_AS/AsHttp/SG4/AsHttp.h new file mode 100644 index 0000000..931b25a --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsHttp/SG4/AsHttp.h @@ -0,0 +1,559 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASHTTP_ +#define _ASHTTP_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef enum AsHttpCipherVersionEnum +{ asHTTP_TLS_1_3 = 2 +} AsHttpCipherVersionEnum; + +typedef struct httpHeaderLine_t +{ plcstring name[51]; + plcstring value[81]; +} httpHeaderLine_t; + +typedef struct httpRawHeader_t +{ unsigned long pData; + unsigned long dataSize; + unsigned long dataLen; +} httpRawHeader_t; + +typedef struct httpResponseHeader_t +{ plcstring protocol[21]; + plcstring status[281]; + plcstring contentType[101]; + unsigned long contentLength; + plcstring connection[81]; + plcstring keepAlive[81]; + struct httpHeaderLine_t userLine[8]; + struct httpRawHeader_t rawHeader; +} httpResponseHeader_t; + +typedef struct httpRequestHeader_t +{ plcstring protocol[21]; + plcstring host[281]; + plcstring contentType[101]; + unsigned long contentLength; + plcstring connection[81]; + plcstring keepAlive[81]; + struct httpHeaderLine_t userLine[8]; + struct httpRawHeader_t rawHeader; +} httpRequestHeader_t; + +typedef struct httpStatistics_t +{ unsigned long requestCounter; + plcdt timeOfLastRequest; + unsigned long responseCounter; + plcdt timeOfLastResponse; + unsigned long errorCounter; + unsigned long lastError; +} httpStatistics_t; + +typedef struct AsHttpMcsType +{ plcstring name[256]; + enum AsHttpCipherVersionEnum tlsVersion; + plcbit trustListValidation; +} AsHttpMcsType; + +typedef struct httpService +{ + /* VAR_INPUT (analog) */ + unsigned long option; + unsigned long pServiceName; + unsigned long pUri; + unsigned long uriSize; + unsigned long pRequestHeader; + unsigned long pRequestData; + unsigned long requestDataSize; + unsigned long pResponseHeader; + unsigned long pResponseData; + unsigned long responseDataLen; + unsigned long pStatistics; + unsigned long pStruct; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short method; + unsigned long requestDataLen; + unsigned short phase; + /* VAR (analog) */ + unsigned long _i_state; + unsigned short _i_result; + unsigned long _ident; + unsigned long _oldEnable; + unsigned long _oldAbort; + unsigned long _oldSend; + unsigned long _state; + unsigned long _internal; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit send; + plcbit abort; +} httpService_typ; + +typedef struct httpClient +{ + /* VAR_INPUT (analog) */ + unsigned long option; + unsigned long pHost; + unsigned short hostPort; + unsigned long method; + unsigned long pUri; + unsigned long pRequestHeader; + unsigned long pRequestData; + unsigned long requestDataLen; + unsigned long pResponseHeader; + unsigned long pResponseData; + unsigned long responseDataSize; + unsigned long pStatistics; + unsigned long pStruct; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short tcpStatus; + unsigned short httpStatus; + unsigned long responseDataLen; + unsigned short phase; + /* VAR (analog) */ + unsigned long _i_state; + unsigned short _i_result; + unsigned long _ident; + unsigned long _oldEnable; + unsigned long _oldAbort; + unsigned long _oldSend; + unsigned long _state; + unsigned long _internal; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit send; + plcbit abort; +} httpClient_typ; + +typedef struct httpsService +{ + /* VAR_INPUT (analog) */ + unsigned long option; + unsigned long pServiceName; + unsigned long pUri; + unsigned long uriSize; + unsigned long pRequestHeader; + unsigned long pRequestData; + unsigned long requestDataSize; + unsigned long pResponseHeader; + unsigned long pResponseData; + unsigned long responseDataLen; + unsigned long pStatistics; + unsigned long pStruct; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short method; + unsigned long requestDataLen; + unsigned short phase; + /* VAR (analog) */ + unsigned long _i_state; + unsigned short _i_result; + unsigned long _ident; + unsigned long _oldEnable; + unsigned long _oldAbort; + unsigned long _oldSend; + unsigned long _state; + unsigned long _internal; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit send; + plcbit abort; +} httpsService_typ; + +typedef struct httpsClient +{ + /* VAR_INPUT (analog) */ + unsigned long option; + unsigned long sslCfgIdent; + unsigned long pHost; + unsigned short hostPort; + unsigned long method; + unsigned long pUri; + unsigned long pRequestHeader; + unsigned long pRequestData; + unsigned long requestDataLen; + unsigned long pResponseHeader; + unsigned long pResponseData; + unsigned long responseDataSize; + unsigned long pStatistics; + unsigned long pStruct; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short tcpStatus; + unsigned short httpStatus; + unsigned long responseDataLen; + unsigned short phase; + /* VAR (analog) */ + unsigned long _i_state; + unsigned short _i_result; + unsigned long _ident; + unsigned long _oldEnable; + unsigned long _oldAbort; + unsigned long _oldSend; + unsigned long _state; + unsigned long _internal; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit send; + plcbit abort; +} httpsClient_typ; + +typedef struct httpsClientMcs +{ + /* VAR_INPUT (analog) */ + unsigned long option; + struct AsHttpMcsType mcsStore; + unsigned long pHost; + unsigned short hostPort; + unsigned long method; + unsigned long pUri; + unsigned long pRequestHeader; + unsigned long pRequestData; + unsigned long requestDataLen; + unsigned long pResponseHeader; + unsigned long pResponseData; + unsigned long responseDataSize; + unsigned long pStatistics; + unsigned long pStruct; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short tcpStatus; + unsigned short httpStatus; + unsigned long responseDataLen; + unsigned short phase; + /* VAR (analog) */ + unsigned long _i_state; + unsigned short _i_result; + unsigned long _ident; + unsigned long _oldEnable; + unsigned long _oldAbort; + unsigned long _oldSend; + unsigned long _state; + unsigned long _internal; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit send; + plcbit abort; +} httpsClientMcs_typ; + +typedef struct httpUtf8ToString +{ + /* VAR_INPUT (analog) */ + unsigned long pSrc; + unsigned long pDest; + unsigned long destSize; + unsigned long pMappingTable; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long destLen; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpUtf8ToString_typ; + +typedef struct httpStringToUtf8 +{ + /* VAR_INPUT (analog) */ + unsigned long pSrc; + unsigned long pDest; + unsigned long destSize; + unsigned long pMappingTable; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long destLen; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpStringToUtf8_typ; + +typedef struct httpUtf8ToWString +{ + /* VAR_INPUT (analog) */ + unsigned long pSrc; + unsigned long pDest; + unsigned long destSize; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long destLen; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpUtf8ToWString_typ; + +typedef struct httpWStringToUtf8 +{ + /* VAR_INPUT (analog) */ + unsigned long pSrc; + unsigned long pDest; + unsigned long destSize; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long destLen; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpWStringToUtf8_typ; + +typedef struct httpDecodeBase64 +{ + /* VAR_INPUT (analog) */ + unsigned long pSrc; + unsigned long srcLen; + unsigned long pDest; + unsigned long destSize; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long destLen; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpDecodeBase64_typ; + +typedef struct httpEncodeBase64 +{ + /* VAR_INPUT (analog) */ + unsigned long pSrc; + unsigned long srcLen; + unsigned long pDest; + unsigned long destSize; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long destLen; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpEncodeBase64_typ; + +typedef struct httpEncodeUrl +{ + /* VAR_INPUT (analog) */ + unsigned long pSrc; + unsigned long pDest; + unsigned long destSize; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long destLen; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpEncodeUrl_typ; + +typedef struct httpDecodeUrl +{ + /* VAR_INPUT (analog) */ + unsigned long pSrc; + unsigned long pDest; + unsigned long destSize; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long destLen; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpDecodeUrl_typ; + +typedef struct httpGetParamUrl +{ + /* VAR_INPUT (analog) */ + unsigned long pSrc; + unsigned long pParam; + unsigned long pValue; + unsigned long valueSize; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long valueLen; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpGetParamUrl_typ; + +typedef struct httpSetParamUrl +{ + /* VAR_INPUT (analog) */ + unsigned long pParam; + unsigned long pValue; + unsigned long pDest; + unsigned long destSize; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long destLen; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpSetParamUrl_typ; + +typedef struct httpSetBoundary +{ + /* VAR_INPUT (analog) */ + unsigned long pStruct; + unsigned long pBoundary; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpSetBoundary_typ; + +typedef struct httpGetBoundary +{ + /* VAR_INPUT (analog) */ + unsigned long pStruct; + unsigned long pBoundary; + unsigned long boundarySize; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long boundaryLen; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpGetBoundary_typ; + +typedef struct httpSetMultipartMessage +{ + /* VAR_INPUT (analog) */ + unsigned long pDest; + unsigned long destSize; + unsigned long pBoundary; + unsigned long pMessageHeader; + unsigned long pMessageData; + unsigned long messageDataLen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned long _messageLen; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpSetMultipartMessage_typ; + +typedef struct httpGetMultipartMessage +{ + /* VAR_INPUT (analog) */ + unsigned long pSrc; + unsigned long pBoundary; + unsigned long pMessageHeader; + unsigned long messageHeaderSize; + unsigned long pMessageData; + unsigned long messageDataSize; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long messageHeaderLen; + unsigned long messageDataLen; + unsigned long messageLen; + /* VAR (analog) */ + unsigned long _internal; + /* VAR_INPUT (digital) */ + plcbit enable; +} httpGetMultipartMessage_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void httpService(struct httpService* inst); +_BUR_PUBLIC void httpClient(struct httpClient* inst); +_BUR_PUBLIC void httpsService(struct httpsService* inst); +_BUR_PUBLIC void httpsClient(struct httpsClient* inst); +_BUR_PUBLIC void httpsClientMcs(struct httpsClientMcs* inst); +_BUR_PUBLIC void httpUtf8ToString(struct httpUtf8ToString* inst); +_BUR_PUBLIC void httpStringToUtf8(struct httpStringToUtf8* inst); +_BUR_PUBLIC void httpUtf8ToWString(struct httpUtf8ToWString* inst); +_BUR_PUBLIC void httpWStringToUtf8(struct httpWStringToUtf8* inst); +_BUR_PUBLIC void httpDecodeBase64(struct httpDecodeBase64* inst); +_BUR_PUBLIC void httpEncodeBase64(struct httpEncodeBase64* inst); +_BUR_PUBLIC void httpEncodeUrl(struct httpEncodeUrl* inst); +_BUR_PUBLIC void httpDecodeUrl(struct httpDecodeUrl* inst); +_BUR_PUBLIC void httpGetParamUrl(struct httpGetParamUrl* inst); +_BUR_PUBLIC void httpSetParamUrl(struct httpSetParamUrl* inst); +_BUR_PUBLIC void httpSetBoundary(struct httpSetBoundary* inst); +_BUR_PUBLIC void httpGetBoundary(struct httpGetBoundary* inst); +_BUR_PUBLIC void httpSetMultipartMessage(struct httpSetMultipartMessage* inst); +_BUR_PUBLIC void httpGetMultipartMessage(struct httpGetMultipartMessage* inst); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define httpPHASE_WAITING 4U + #define httpPHASE_RECEIVED 3U + #define httpPHASE_RECEIVING 2U + #define httpPHASE_SENDING 1U + #define httpPHASE_NOT_CONNECTED 0U + #define httpOPTION_SERVICE_TYPE_LEAF 8U + #define httpOPTION_SERVICE_TYPE_EXT 6U + #define httpOPTION_SERVICE_TYPE_NAME 2U + #define httpOPTION_SERVICE_TYPE_ROOT 4U + #define httpOPTION_HTTP_11 1U + #define httpOPTION_HTTP_10 0U + #define httpMETHOD_DELETE 4U + #define httpMETHOD_PUT 3U + #define httpMETHOD_POST 2U + #define httpMETHOD_GET 1U + #define httpERR_SYSTEM 35579U + #define httpERR_INVALID_MCS_CONFIG 35569U + #define httpERR_INVALID_SSL_CONFIG 35568U + #define httpERR_SSL_HANDSHAKE_FAILED 35567U + #define httpERR_ILLEGAL_CHARACTERS 35566U + #define httpERR_NOT_FOUND 35565U + #define httpERR_CLIENT_TCP_DISCONNECTED 35564U + #define httpERR_CLIENT_TCP_INVALID_HOST 35563U + #define httpERR_CLIENT_TCP_CONN_FAILED 35562U + #define httpERR_CLIENT_TCP_CONN_CLOSED 35561U + #define httpERR_CLIENT_NO_MORE_IDENTS 35560U + #define httpERR_CLIENT_ERR_SOCKET_CREATE 35559U + #define httpERR_SERVICE_LINK_FAILED 35558U + #define httpERR_SERVICE_NO_WEBSERVER 35557U + #define httpERR_METHOD_UNSUPPORTED 35556U + #define httpERR_NO_DATA 35555U + #define httpERR_INVALID_PARAM 35554U + #define httpERR_HEADER_SIZE_USERLINE 35553U + #define httpERR_HEADER_SIZE_RAW 35552U + #define httpERR_DATA_SIZE 35551U + #define httpERR_BUFFER_SIZE 35550U +#else + _GLOBAL_CONST unsigned short httpPHASE_WAITING; + _GLOBAL_CONST unsigned short httpPHASE_RECEIVED; + _GLOBAL_CONST unsigned short httpPHASE_RECEIVING; + _GLOBAL_CONST unsigned short httpPHASE_SENDING; + _GLOBAL_CONST unsigned short httpPHASE_NOT_CONNECTED; + _GLOBAL_CONST unsigned short httpOPTION_SERVICE_TYPE_LEAF; + _GLOBAL_CONST unsigned short httpOPTION_SERVICE_TYPE_EXT; + _GLOBAL_CONST unsigned short httpOPTION_SERVICE_TYPE_NAME; + _GLOBAL_CONST unsigned short httpOPTION_SERVICE_TYPE_ROOT; + _GLOBAL_CONST unsigned short httpOPTION_HTTP_11; + _GLOBAL_CONST unsigned short httpOPTION_HTTP_10; + _GLOBAL_CONST unsigned short httpMETHOD_DELETE; + _GLOBAL_CONST unsigned short httpMETHOD_PUT; + _GLOBAL_CONST unsigned short httpMETHOD_POST; + _GLOBAL_CONST unsigned short httpMETHOD_GET; + _GLOBAL_CONST unsigned short httpERR_SYSTEM; + _GLOBAL_CONST unsigned short httpERR_INVALID_MCS_CONFIG; + _GLOBAL_CONST unsigned short httpERR_INVALID_SSL_CONFIG; + _GLOBAL_CONST unsigned short httpERR_SSL_HANDSHAKE_FAILED; + _GLOBAL_CONST unsigned short httpERR_ILLEGAL_CHARACTERS; + _GLOBAL_CONST unsigned short httpERR_NOT_FOUND; + _GLOBAL_CONST unsigned short httpERR_CLIENT_TCP_DISCONNECTED; + _GLOBAL_CONST unsigned short httpERR_CLIENT_TCP_INVALID_HOST; + _GLOBAL_CONST unsigned short httpERR_CLIENT_TCP_CONN_FAILED; + _GLOBAL_CONST unsigned short httpERR_CLIENT_TCP_CONN_CLOSED; + _GLOBAL_CONST unsigned short httpERR_CLIENT_NO_MORE_IDENTS; + _GLOBAL_CONST unsigned short httpERR_CLIENT_ERR_SOCKET_CREATE; + _GLOBAL_CONST unsigned short httpERR_SERVICE_LINK_FAILED; + _GLOBAL_CONST unsigned short httpERR_SERVICE_NO_WEBSERVER; + _GLOBAL_CONST unsigned short httpERR_METHOD_UNSUPPORTED; + _GLOBAL_CONST unsigned short httpERR_NO_DATA; + _GLOBAL_CONST unsigned short httpERR_INVALID_PARAM; + _GLOBAL_CONST unsigned short httpERR_HEADER_SIZE_USERLINE; + _GLOBAL_CONST unsigned short httpERR_HEADER_SIZE_RAW; + _GLOBAL_CONST unsigned short httpERR_DATA_SIZE; + _GLOBAL_CONST unsigned short httpERR_BUFFER_SIZE; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASHTTP_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsHttp/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsHttp/binary.lby new file mode 100644 index 0000000..1e7c1a3 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsHttp/binary.lby @@ -0,0 +1,12 @@ + + + + + AsHttp.fun + AsHttp.typ + AsHttp.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsIO/AsIO.fun b/example/AsProject/Logical/Libraries/_AS/AsIO/AsIO.fun new file mode 100644 index 0000000..ff8696b --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIO/AsIO.fun @@ -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 + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsIO/AsIO.typ b/example/AsProject/Logical/Libraries/_AS/AsIO/AsIO.typ new file mode 100644 index 0000000..fbd30fd --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIO/AsIO.typ @@ -0,0 +1,4 @@ + +TYPE + +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsIO/AsIO.var b/example/AsProject/Logical/Libraries/_AS/AsIO/AsIO.var new file mode 100644 index 0000000..3ed493b --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIO/AsIO.var @@ -0,0 +1,23 @@ + +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; (*bit 0 is always set*) + asio_P_ACT_FLAG : USINT := 2; (*bit 1 = 1 data source active, bit1 = 0 data source inactive*) + asio_F_ACT_FLAG : USINT := 4; (*bit 2 = 1 force active, bit2 = 0 force inactive*) + asio_UNRES_LINK_FLAG : USINT := 8; (*AsPVInfo: bit 3 = 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*) + + asio_UNRES_FLAG : UDINT := 256; (*AsIOFListDP: Search for missing I/O or missing PV connections*) + asio_IO_INPUT_OR_OUTPUT_FLAG : UDINT := 512; (*AsIOFListDP: If set, search for an I/O data point(input or output). If not set, search for a PV-PV mapping.*) + asio_DIAGNOSTICS_DATAPOINT_FLAG : UDINT := 1024; (*AsIOFListDP: If set, search for internal diagnostics data points*) +END_VAR + diff --git a/example/AsProject/Logical/Libraries/_AS/AsIO/SG4/AsIO.h b/example/AsProject/Logical/Libraries/_AS/AsIO/SG4/AsIO.h new file mode 100644 index 0000000..6bc64f3 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIO/SG4/AsIO.h @@ -0,0 +1,204 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASIO_ +#define _ASIO_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#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); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define asio_DIAGNOSTICS_DATAPOINT_FLAG 1024U + #define asio_IO_INPUT_OR_OUTPUT_FLAG 512U + #define asio_UNRES_FLAG 256U + #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 + _GLOBAL_CONST unsigned long asio_DIAGNOSTICS_DATAPOINT_FLAG; + _GLOBAL_CONST unsigned long asio_IO_INPUT_OR_OUTPUT_FLAG; + _GLOBAL_CONST unsigned long asio_UNRES_FLAG; + _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 + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASIO_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsIO/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsIO/binary.lby new file mode 100644 index 0000000..6dcc0a2 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIO/binary.lby @@ -0,0 +1,12 @@ + + + + + AsIO.fun + AsIO.typ + AsIO.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsIOAcc/AsIOAcc.fun b/example/AsProject/Logical/Libraries/_AS/AsIOAcc/AsIOAcc.fun new file mode 100644 index 0000000..673f478 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIOAcc/AsIOAcc.fun @@ -0,0 +1,31 @@ + +{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 + diff --git a/example/AsProject/Logical/Libraries/_AS/AsIOAcc/AsIOAcc.typ b/example/AsProject/Logical/Libraries/_AS/AsIOAcc/AsIOAcc.typ new file mode 100644 index 0000000..fd5f509 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIOAcc/AsIOAcc.typ @@ -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 diff --git a/example/AsProject/Logical/Libraries/_AS/AsIOAcc/AsIOAcc.var b/example/AsProject/Logical/Libraries/_AS/AsIOAcc/AsIOAcc.var new file mode 100644 index 0000000..94d97dc --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIOAcc/AsIOAcc.var @@ -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 diff --git a/example/AsProject/Logical/Libraries/_AS/AsIOAcc/SG4/AsIOAcc.h b/example/AsProject/Logical/Libraries/_AS/AsIOAcc/SG4/AsIOAcc.h new file mode 100644 index 0000000..9cb82d6 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIOAcc/SG4/AsIOAcc.h @@ -0,0 +1,93 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASIOACC_ +#define _ASIOACC_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#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; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void AsIOAccRead(struct AsIOAccRead* inst); +_BUR_PUBLIC void AsIOAccWrite(struct AsIOAccWrite* inst); + + +/* 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 + _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 + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASIOACC_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsIOAcc/SGC/AsIOAcc.h b/example/AsProject/Logical/Libraries/_AS/AsIOAcc/SGC/AsIOAcc.h new file mode 100644 index 0000000..b8fe6ca --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIOAcc/SGC/AsIOAcc.h @@ -0,0 +1,101 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASIOACC_ +#define _ASIOACC_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#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_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsIOAcc/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsIOAcc/binary.lby new file mode 100644 index 0000000..ad93c6d --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIOAcc/binary.lby @@ -0,0 +1,12 @@ + + + + + AsIOAcc.fun + AsIOAcc.typ + AsIOAcc.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsIODiag/AsIODiag.fun b/example/AsProject/Logical/Libraries/_AS/AsIODiag/AsIODiag.fun new file mode 100644 index 0000000..7ff2b91 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIODiag/AsIODiag.fun @@ -0,0 +1,75 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DiagCreateInfo (*collects information about the currently configured and/or inserted hardware modules; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + infoKind : UDINT; (*type of information to be generated, e.g. asdiagPLUGGED, asdiagCONFIGURED, ..*) + END_VAR + + VAR + StateMan : UINT; (*internal variable*) + ErrMan : UINT; (*internal variable*) + Init : UDINT; (*internal variable*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + ident : UDINT; (*identifier of the generated information*) + nrEntries : UDINT; (*number of generated information entries*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DiagDisposeInfo (*frees up the resources taken up by DiagCreateInfo(); asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier of the information to be freed up*) + END_VAR + + VAR + StateMan : UINT; (*internal variable*) + ErrMan : UINT; (*internal variable*) + Init : UDINT; (*internal variable*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DiagGetNumInfo (*queries the numeric value of a specified information entry*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from DiagCreateInfo()*) + index : UDINT; (*index of the entry [0..nrEntries-1]*) + infoCode : UDINT; (*code of the desired information, e.g. asdiagMODUL_STATE, asdiagPLUGGED_MODNO, ..*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + value : UDINT; (*numeric value*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DiagGetStrInfo (*queries the string value of a specified information entry*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from DiagCreateInfo()*) + index : UDINT; (*index of the entry [0..nrEntries-1]*) + infoCode : UDINT; (*code of the desired information*) + pBuffer : UDINT; (*pointer to the return buffer*) + bufferLen : UDINT; (*size of the return buffer*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + stringLen: UDINT; (*string length of the original data*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION DiagCpuIsSimulated : BOOL (*queries if CPU is simulated *) + +END_FUNCTION + +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION DiagCpuIsARsim : BOOL (*queries if CPU is ARsim *) + +END_FUNCTION + diff --git a/example/AsProject/Logical/Libraries/_AS/AsIODiag/AsIODiag.typ b/example/AsProject/Logical/Libraries/_AS/AsIODiag/AsIODiag.typ new file mode 100644 index 0000000..753cd31 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIODiag/AsIODiag.typ @@ -0,0 +1,3 @@ + +TYPE +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsIODiag/AsIODiag.var b/example/AsProject/Logical/Libraries/_AS/AsIODiag/AsIODiag.var new file mode 100644 index 0000000..7781636 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIODiag/AsIODiag.var @@ -0,0 +1,47 @@ + +VAR CONSTANT + + asdiagERR_NOMEM : UINT := 30801; (*not enough memory to process the information*) + asdiagERR_IDENT : UINT := 30802; (*invalid ID*) + asdiagERR_INDEX : UINT := 30803; (*index out of range [0..nrEntries-1]*) + asdiagERR_INFOCODE : UINT := 30804; (*unknown infoCode parameter*) + asdiagERR_INFOKIND : UINT := 30805; (*unknown infoKind parameter*) + +(* infoCode GetNumInfo *) + asdiagMODUL_STATE : UDINT := 1; (*module state: 0x01 Module configured only, 0x02 Module inserted only, ..*) + asdiagPLUGGED_MODNO : UDINT := 2; (*module code of inserted module*) + asdiagCONFIG_MODNO : UDINT := 3; (*module code of configured module*) + asdiagPLUGGED_FAMILY : UDINT := 4; (*family code of the inserted module*) + asdiagCONFIG_FAMILY : UDINT := 5; (*family code of the configured module*) + asdiagPLUGGED_USETYPE: UDINT := 6; (*use type of the inserted module*) + asdiagCONFIG_USETYPE : UDINT := 7; (*use type of the configured module*) + asdiagSERIAL_NUMBER : UDINT := 8; (*serial number of inserted module*) + +(* infoCode GetStrInfo *) + asdiagPATH : UDINT := 1001; (*path of the module (e.g. "SL6.IF2.ST3.SL6.SS4"); the CPU path is "$root"*) + asdiagPLUGGED_MODULE : UDINT := 1002; (*model number of the inserted module*) + asdiagCONFIG_MODULE : UDINT := 1003; (*model number of the configured module*) + asdiagPLUGGED_BUS : UDINT := 1004; (*bus system of the inserted module*) + asdiagCONFIG_BUS : UDINT := 1005; (*bus system of the configured module*) + asdiagHARDWARE_MODULE_NAME : UDINT := 1006; (*hardware module name*) + asdiagHARDWARE_DEVICE_TAG : UDINT := 1007; (*hardware device tag*) + +(* infoKind *) + asdiagPLUGGED : UDINT := 1; (*information about inserted modules*) + asdiagCONFIGURED : UDINT := 2; (*information about configured modules*) + asdiagALL : UDINT := 3; (*information about inserted and configured modules*) + +(* family code of the inserted module. from obsolete FB HWInfo(), BRSystem library *) + br2010 : USINT := 0; (*series recognition*) + br2005 : USINT := 1; (*series recognition*) + br2003 : USINT := 2; (*series recognition*) + brLOGIGSCANNER : USINT := 3; (*series recognition*) + brAUTOMATION_RUNTIME : USINT := 4; (*series recognition*) + brPOWERPANEL : USINT := 5; (*series recognition*) + brPANEL : USINT := 6; (*series recognition*) + brADDON : USINT := 7; (*series recognition*) + brC300 : USINT := 8; (*series recognition*) + brC200 : USINT := 9; (*series recognition*) + brX2X : USINT := 10; (*series recognition*) + brNO_FAMILY : USINT := 255; (*series recognition*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsIODiag/SG4/AsIODiag.h b/example/AsProject/Logical/Libraries/_AS/AsIODiag/SG4/AsIODiag.h new file mode 100644 index 0000000..b935e45 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIODiag/SG4/AsIODiag.h @@ -0,0 +1,170 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASIODIAG_ +#define _ASIODIAG_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef struct DiagCreateInfo +{ + /* VAR_INPUT (analog) */ + unsigned long infoKind; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long ident; + unsigned long nrEntries; + /* VAR (analog) */ + unsigned short StateMan; + unsigned short ErrMan; + unsigned long Init; + /* VAR_INPUT (digital) */ + plcbit enable; +} DiagCreateInfo_typ; + +typedef struct DiagDisposeInfo +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short StateMan; + unsigned short ErrMan; + unsigned long Init; + /* VAR_INPUT (digital) */ + plcbit enable; +} DiagDisposeInfo_typ; + +typedef struct DiagGetNumInfo +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long index; + unsigned long infoCode; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long value; + /* VAR_INPUT (digital) */ + plcbit enable; +} DiagGetNumInfo_typ; + +typedef struct DiagGetStrInfo +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long index; + unsigned long infoCode; + unsigned long pBuffer; + unsigned long bufferLen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long stringLen; + /* VAR_INPUT (digital) */ + plcbit enable; +} DiagGetStrInfo_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void DiagCreateInfo(struct DiagCreateInfo* inst); +_BUR_PUBLIC void DiagDisposeInfo(struct DiagDisposeInfo* inst); +_BUR_PUBLIC void DiagGetNumInfo(struct DiagGetNumInfo* inst); +_BUR_PUBLIC void DiagGetStrInfo(struct DiagGetStrInfo* inst); +_BUR_PUBLIC plcbit DiagCpuIsSimulated(void); +_BUR_PUBLIC plcbit DiagCpuIsARsim(void); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define brNO_FAMILY 255U + #define brX2X 10U + #define brC200 9U + #define brC300 8U + #define brADDON 7U + #define brPANEL 6U + #define brPOWERPANEL 5U + #define brAUTOMATION_RUNTIME 4U + #define brLOGIGSCANNER 3U + #define br2003 2U + #define br2005 1U + #define br2010 0U + #define asdiagALL 3U + #define asdiagCONFIGURED 2U + #define asdiagPLUGGED 1U + #define asdiagHARDWARE_DEVICE_TAG 1007U + #define asdiagHARDWARE_MODULE_NAME 1006U + #define asdiagCONFIG_BUS 1005U + #define asdiagPLUGGED_BUS 1004U + #define asdiagCONFIG_MODULE 1003U + #define asdiagPLUGGED_MODULE 1002U + #define asdiagPATH 1001U + #define asdiagSERIAL_NUMBER 8U + #define asdiagCONFIG_USETYPE 7U + #define asdiagPLUGGED_USETYPE 6U + #define asdiagCONFIG_FAMILY 5U + #define asdiagPLUGGED_FAMILY 4U + #define asdiagCONFIG_MODNO 3U + #define asdiagPLUGGED_MODNO 2U + #define asdiagMODUL_STATE 1U + #define asdiagERR_INFOKIND 30805U + #define asdiagERR_INFOCODE 30804U + #define asdiagERR_INDEX 30803U + #define asdiagERR_IDENT 30802U + #define asdiagERR_NOMEM 30801U +#else + _GLOBAL_CONST unsigned char brNO_FAMILY; + _GLOBAL_CONST unsigned char brX2X; + _GLOBAL_CONST unsigned char brC200; + _GLOBAL_CONST unsigned char brC300; + _GLOBAL_CONST unsigned char brADDON; + _GLOBAL_CONST unsigned char brPANEL; + _GLOBAL_CONST unsigned char brPOWERPANEL; + _GLOBAL_CONST unsigned char brAUTOMATION_RUNTIME; + _GLOBAL_CONST unsigned char brLOGIGSCANNER; + _GLOBAL_CONST unsigned char br2003; + _GLOBAL_CONST unsigned char br2005; + _GLOBAL_CONST unsigned char br2010; + _GLOBAL_CONST unsigned long asdiagALL; + _GLOBAL_CONST unsigned long asdiagCONFIGURED; + _GLOBAL_CONST unsigned long asdiagPLUGGED; + _GLOBAL_CONST unsigned long asdiagHARDWARE_DEVICE_TAG; + _GLOBAL_CONST unsigned long asdiagHARDWARE_MODULE_NAME; + _GLOBAL_CONST unsigned long asdiagCONFIG_BUS; + _GLOBAL_CONST unsigned long asdiagPLUGGED_BUS; + _GLOBAL_CONST unsigned long asdiagCONFIG_MODULE; + _GLOBAL_CONST unsigned long asdiagPLUGGED_MODULE; + _GLOBAL_CONST unsigned long asdiagPATH; + _GLOBAL_CONST unsigned long asdiagSERIAL_NUMBER; + _GLOBAL_CONST unsigned long asdiagCONFIG_USETYPE; + _GLOBAL_CONST unsigned long asdiagPLUGGED_USETYPE; + _GLOBAL_CONST unsigned long asdiagCONFIG_FAMILY; + _GLOBAL_CONST unsigned long asdiagPLUGGED_FAMILY; + _GLOBAL_CONST unsigned long asdiagCONFIG_MODNO; + _GLOBAL_CONST unsigned long asdiagPLUGGED_MODNO; + _GLOBAL_CONST unsigned long asdiagMODUL_STATE; + _GLOBAL_CONST unsigned short asdiagERR_INFOKIND; + _GLOBAL_CONST unsigned short asdiagERR_INFOCODE; + _GLOBAL_CONST unsigned short asdiagERR_INDEX; + _GLOBAL_CONST unsigned short asdiagERR_IDENT; + _GLOBAL_CONST unsigned short asdiagERR_NOMEM; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASIODIAG_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsIODiag/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsIODiag/binary.lby new file mode 100644 index 0000000..b18a822 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIODiag/binary.lby @@ -0,0 +1,12 @@ + + + + + AsIODiag.fun + AsIODiag.typ + AsIODiag.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsIOTime/AsIOTime.fun b/example/AsProject/Logical/Libraries/_AS/AsIOTime/AsIOTime.fun new file mode 100644 index 0000000..ebffa14 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIOTime/AsIOTime.fun @@ -0,0 +1,6 @@ + +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION AsIOTimeStamp : DINT (* Get current SystemTime stamp in microseconds *) +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION AsIOTimeCyclicStart : DINT (* Get SystemTime at start of cyclic ressource *) +END_FUNCTION diff --git a/example/AsProject/Logical/Libraries/_AS/AsIOTime/AsIOTime.typ b/example/AsProject/Logical/Libraries/_AS/AsIOTime/AsIOTime.typ new file mode 100644 index 0000000..fbd30fd --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIOTime/AsIOTime.typ @@ -0,0 +1,4 @@ + +TYPE + +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsIOTime/AsIOTime.var b/example/AsProject/Logical/Libraries/_AS/AsIOTime/AsIOTime.var new file mode 100644 index 0000000..def8c87 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIOTime/AsIOTime.var @@ -0,0 +1,4 @@ + +VAR CONSTANT + +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsIOTime/SG4/AsIOTime.h b/example/AsProject/Logical/Libraries/_AS/AsIOTime/SG4/AsIOTime.h new file mode 100644 index 0000000..4a92bd1 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIOTime/SG4/AsIOTime.h @@ -0,0 +1,28 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASIOTIME_ +#define _ASIOTIME_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC signed long AsIOTimeStamp(void); +_BUR_PUBLIC signed long AsIOTimeCyclicStart(void); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASIOTIME_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsIOTime/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsIOTime/binary.lby new file mode 100644 index 0000000..8c04ee1 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsIOTime/binary.lby @@ -0,0 +1,9 @@ + + + + + AsIOTime.fun + AsIOTime.typ + AsIOTime.var + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsMem/AsMem.fun b/example/AsProject/Logical/Libraries/_AS/AsMem/AsMem.fun new file mode 100644 index 0000000..cf8e829 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsMem/AsMem.fun @@ -0,0 +1,81 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsMemPartCreate (*creates a memory partition with lenght "len"*) + VAR_INPUT + enable :BOOL; (*enables execution*) + len :UDINT; (*size of the memory partition*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + ident :UDINT; (*identifier of the memory partition*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsMemPartDestroy (*deletes a memory partition*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*identifier of the memory partition*) + 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 AsMemPartAlloc (*allocates a memory block from the specified memory partition*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*identifier of the memory partition*) + len :UDINT; (*size of the memory block to be allocated*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + mem :UDINT; (*pointer to the allocated memory block*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsMemPartAllocClear (*allocates a memory block from the specified memory partition*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*identifier of the memory partition*) + len :UDINT; (*size of the memory block to be allocated*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + mem :UDINT; (*pointer to the allocated memory block*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsMemPartRealloc (*changes an allocated memory block or allocate a new memory block with the modified size*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*identifier of the memory partition*) + memOld :UDINT; (*pointer to an already allocated memory block*) + len :UDINT; (*size of the memory block to be allocated*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + mem :UDINT; (*pointer to the allocated memory block*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK AsMemPartFree (*frees up an allocated memory block*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*identifier of the memory partition*) + mem :UDINT; (*pointer to the memory block to be freed up*) + 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 AsMemPartInfo (*gives information about free momory of the selected memory partition*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*identifier of the memory partition*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + numBytesFree :UDINT; (*free memory*) + maxBlockSizeFree :UDINT; (*largest free memory block*) + END_VAR +END_FUNCTION_BLOCK diff --git a/example/AsProject/Logical/Libraries/_AS/AsMem/AsMem.typ b/example/AsProject/Logical/Libraries/_AS/AsMem/AsMem.typ new file mode 100644 index 0000000..fbd30fd --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsMem/AsMem.typ @@ -0,0 +1,4 @@ + +TYPE + +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsMem/AsMem.var b/example/AsProject/Logical/Libraries/_AS/AsMem/AsMem.var new file mode 100644 index 0000000..95d74e6 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsMem/AsMem.var @@ -0,0 +1,8 @@ + +VAR CONSTANT + asmemERR_DESTROY : UINT := 30501; (*cannot free up memory partition*) + asmemERR_CREATE : UINT := 30500; (*cannot create memory partition*) + asmemERR_NOMEM : UINT := 30502; (*cannot allocate memory block with requested size*) + asmemERR_INFO : UINT := 30504; (*information about free memory can not be detected*) + asmemERR_FREE : UINT := 30503; (*cannot free up memory block*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsMem/SG4/AsMem.h b/example/AsProject/Logical/Libraries/_AS/AsMem/SG4/AsMem.h new file mode 100644 index 0000000..5bac6ae --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsMem/SG4/AsMem.h @@ -0,0 +1,134 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASMEM_ +#define _ASMEM_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef struct AsMemPartCreate +{ + /* VAR_INPUT (analog) */ + unsigned long len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long ident; + /* VAR_INPUT (digital) */ + plcbit enable; +} AsMemPartCreate_typ; + +typedef struct AsMemPartDestroy +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} AsMemPartDestroy_typ; + +typedef struct AsMemPartAlloc +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long mem; + /* VAR_INPUT (digital) */ + plcbit enable; +} AsMemPartAlloc_typ; + +typedef struct AsMemPartAllocClear +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long mem; + /* VAR_INPUT (digital) */ + plcbit enable; +} AsMemPartAllocClear_typ; + +typedef struct AsMemPartRealloc +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long memOld; + unsigned long len; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long mem; + /* VAR_INPUT (digital) */ + plcbit enable; +} AsMemPartRealloc_typ; + +typedef struct AsMemPartFree +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long mem; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} AsMemPartFree_typ; + +typedef struct AsMemPartInfo +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long numBytesFree; + unsigned long maxBlockSizeFree; + /* VAR_INPUT (digital) */ + plcbit enable; +} AsMemPartInfo_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void AsMemPartCreate(struct AsMemPartCreate* inst); +_BUR_PUBLIC void AsMemPartDestroy(struct AsMemPartDestroy* inst); +_BUR_PUBLIC void AsMemPartAlloc(struct AsMemPartAlloc* inst); +_BUR_PUBLIC void AsMemPartAllocClear(struct AsMemPartAllocClear* inst); +_BUR_PUBLIC void AsMemPartRealloc(struct AsMemPartRealloc* inst); +_BUR_PUBLIC void AsMemPartFree(struct AsMemPartFree* inst); +_BUR_PUBLIC void AsMemPartInfo(struct AsMemPartInfo* inst); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define asmemERR_FREE 30503U + #define asmemERR_INFO 30504U + #define asmemERR_NOMEM 30502U + #define asmemERR_CREATE 30500U + #define asmemERR_DESTROY 30501U +#else + _GLOBAL_CONST unsigned short asmemERR_FREE; + _GLOBAL_CONST unsigned short asmemERR_INFO; + _GLOBAL_CONST unsigned short asmemERR_NOMEM; + _GLOBAL_CONST unsigned short asmemERR_CREATE; + _GLOBAL_CONST unsigned short asmemERR_DESTROY; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASMEM_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsMem/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsMem/binary.lby new file mode 100644 index 0000000..fe009fe --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsMem/binary.lby @@ -0,0 +1,12 @@ + + + + + AsMem.fun + AsMem.typ + AsMem.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsSem/AsSem.fun b/example/AsProject/Logical/Libraries/_AS/AsSem/AsSem.fun new file mode 100644 index 0000000..f850586 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsSem/AsSem.fun @@ -0,0 +1,62 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK SemCreate (*create semaphore; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + initCount : UDINT; (*initial value*) + maxCount : UDINT; (*maximum value*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + ident : UDINT; (*semaphore ident*) + 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 SemDelete (*delete semaphore; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*semaphore ident*) + 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 SemGetInfo (*get semaphore info*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*semaphore ident*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: 0xXXXX = see help*) + maxCount : UDINT; (*maximum value*) + curCount : UDINT; (*current value*) + END_VAR + +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION SemAcquire : UINT (*acquire semaphore*) + VAR_INPUT + ident :UDINT; (*semaphore ident*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION SemRelease : UINT (*release semaphore*) + VAR_INPUT + ident :UDINT; (*semaphore ident*) + END_VAR +END_FUNCTION diff --git a/example/AsProject/Logical/Libraries/_AS/AsSem/AsSem.typ b/example/AsProject/Logical/Libraries/_AS/AsSem/AsSem.typ new file mode 100644 index 0000000..fbd30fd --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsSem/AsSem.typ @@ -0,0 +1,4 @@ + +TYPE + +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsSem/AsSem.var b/example/AsProject/Logical/Libraries/_AS/AsSem/AsSem.var new file mode 100644 index 0000000..ac65bf0 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsSem/AsSem.var @@ -0,0 +1,8 @@ + +VAR CONSTANT + semERR_CREATE : UINT := 33320; (*create semaphore error*) + semERR_DELETE : UINT := 33321; (*delete semaphore error*) + semERR_NOT_EXIST : UINT := 33322; (*invalid semaphore ident, check parameter*) + semERR_NOT_FREE : UINT := 33323; (*semaphore already acquired*) + semERR_ALREADY_FREE : UINT := 33324; (*semaphore not acquired*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsSem/SG3/AsSem.h b/example/AsProject/Logical/Libraries/_AS/AsSem/SG3/AsSem.h new file mode 100644 index 0000000..95dc5da --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsSem/SG3/AsSem.h @@ -0,0 +1,95 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASSEM_ +#define _ASSEM_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define semERR_CREATE 33320U + #define semERR_DELETE 33321U + #define semERR_NOT_EXIST 33322U + #define semERR_NOT_FREE 33323U + #define semERR_ALREADY_FREE 33324U +#else + _IEC_CONST unsigned short semERR_CREATE = 33320U; + _IEC_CONST unsigned short semERR_DELETE = 33321U; + _IEC_CONST unsigned short semERR_NOT_EXIST = 33322U; + _IEC_CONST unsigned short semERR_NOT_FREE = 33323U; + _IEC_CONST unsigned short semERR_ALREADY_FREE = 33324U; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct SemCreate +{ + /* VAR_INPUT (analog) */ + unsigned long initCount; + unsigned long maxCount; + /* 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; +} SemCreate_typ; + +typedef struct SemDelete +{ + /* 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; +} SemDelete_typ; + +typedef struct SemGetInfo +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long maxCount; + unsigned long curCount; + /* VAR_INPUT (digital) */ + plcbit enable; +} SemGetInfo_typ; + + + +/* Prototyping of functions and function blocks */ +void SemCreate(struct SemCreate* inst); +void SemDelete(struct SemDelete* inst); +void SemGetInfo(struct SemGetInfo* inst); +unsigned short SemAcquire(unsigned long ident); +unsigned short SemRelease(unsigned long ident); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASSEM_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsSem/SG4/AsSem.h b/example/AsProject/Logical/Libraries/_AS/AsSem/SG4/AsSem.h new file mode 100644 index 0000000..7890f05 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsSem/SG4/AsSem.h @@ -0,0 +1,93 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASSEM_ +#define _ASSEM_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef struct SemCreate +{ + /* VAR_INPUT (analog) */ + unsigned long initCount; + unsigned long maxCount; + /* 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; +} SemCreate_typ; + +typedef struct SemDelete +{ + /* 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; +} SemDelete_typ; + +typedef struct SemGetInfo +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long maxCount; + unsigned long curCount; + /* VAR_INPUT (digital) */ + plcbit enable; +} SemGetInfo_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void SemCreate(struct SemCreate* inst); +_BUR_PUBLIC void SemDelete(struct SemDelete* inst); +_BUR_PUBLIC void SemGetInfo(struct SemGetInfo* inst); +_BUR_PUBLIC unsigned short SemAcquire(unsigned long ident); +_BUR_PUBLIC unsigned short SemRelease(unsigned long ident); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define semERR_ALREADY_FREE 33324U + #define semERR_NOT_FREE 33323U + #define semERR_NOT_EXIST 33322U + #define semERR_DELETE 33321U + #define semERR_CREATE 33320U +#else + _GLOBAL_CONST unsigned short semERR_ALREADY_FREE; + _GLOBAL_CONST unsigned short semERR_NOT_FREE; + _GLOBAL_CONST unsigned short semERR_NOT_EXIST; + _GLOBAL_CONST unsigned short semERR_DELETE; + _GLOBAL_CONST unsigned short semERR_CREATE; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASSEM_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsSem/SGC/AsSem.h b/example/AsProject/Logical/Libraries/_AS/AsSem/SGC/AsSem.h new file mode 100644 index 0000000..95dc5da --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsSem/SGC/AsSem.h @@ -0,0 +1,95 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASSEM_ +#define _ASSEM_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define semERR_CREATE 33320U + #define semERR_DELETE 33321U + #define semERR_NOT_EXIST 33322U + #define semERR_NOT_FREE 33323U + #define semERR_ALREADY_FREE 33324U +#else + _IEC_CONST unsigned short semERR_CREATE = 33320U; + _IEC_CONST unsigned short semERR_DELETE = 33321U; + _IEC_CONST unsigned short semERR_NOT_EXIST = 33322U; + _IEC_CONST unsigned short semERR_NOT_FREE = 33323U; + _IEC_CONST unsigned short semERR_ALREADY_FREE = 33324U; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct SemCreate +{ + /* VAR_INPUT (analog) */ + unsigned long initCount; + unsigned long maxCount; + /* 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; +} SemCreate_typ; + +typedef struct SemDelete +{ + /* 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; +} SemDelete_typ; + +typedef struct SemGetInfo +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long maxCount; + unsigned long curCount; + /* VAR_INPUT (digital) */ + plcbit enable; +} SemGetInfo_typ; + + + +/* Prototyping of functions and function blocks */ +void SemCreate(struct SemCreate* inst); +void SemDelete(struct SemDelete* inst); +void SemGetInfo(struct SemGetInfo* inst); +unsigned short SemAcquire(unsigned long ident); +unsigned short SemRelease(unsigned long ident); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASSEM_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsSem/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsSem/binary.lby new file mode 100644 index 0000000..28f912c --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsSem/binary.lby @@ -0,0 +1,12 @@ + + + + + AsSem.fun + AsSem.typ + AsSem.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsTCP/AsTCP.fun b/example/AsProject/Logical/Libraries/_AS/AsTCP/AsTCP.fun new file mode 100644 index 0000000..f21b7ab --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsTCP/AsTCP.fun @@ -0,0 +1,183 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK TcpOpen (*opens a TCP socket; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pIfAddr : UDINT; (*pointer to the interface address*) + port : UINT; (*port number of the socket*) + options : UDINT; (*options that can be set during opening*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + ident : UDINT; (*identifier for use with TcpServer, TcpClient, TcpSend, TcpRecv, TcpClose and TcpIoctl*) + 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 TcpOpenSsl (*opens a TCP socket using SSL; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pIfAddr : UDINT; (*pointer to the interface address*) + port : UINT; (*port number of the socket*) + sslCfgIdent : UDINT; (*identifier of the SSL configuration*) + options : UDINT; (*options that can be set during opening*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + ident : UDINT; (*identifier for use with TcpServer, TcpClient, TcpSend, TcpRecv, TcpClose and TcpIoctl*) + 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 TcpOpenMcs (*opens a TCP socket using MCS; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pIfAddr : UDINT; (*pointer to the interface address*) + port : UINT; (*port number of the socket*) + mcsStore : AsTcpMcsType; (*Managed Certificate Store Struct*) + options : UDINT; (*options that can be set during opening*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + ident : UDINT; (*identifier for use with TcpServer, TcpClient, TcpSend, TcpRecv, TcpClose and TcpIoctl*) + 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 TcpServer (*starts a TCP server; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from TcpOpen()*) + backlog : UDINT; (*number of connections to queue*) + pIpAddr : UDINT; (*pointer where to store the ip address of the connected client*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + identclnt : UDINT; (*identifier for use with fub TcpClose, TcpSend, and TcpRecv*) + portclnt : UINT; (*port number of connected client*) + 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 TcpClient (*establishs a connection to a TCP server; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from TcpOpen()*) + pServer : UDINT; (*pointer to the ip address of server to connect to*) + portserv : UINT; (*port number of server to connect to*) + 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 TcpClose (*closes a TCP socket and frees up all required resources; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from TcpOpen()*) + how : UDINT; (*shutdown behavior*) + 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 TcpSend (*sends data (byte stream); asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from TcpOpen()*) + pData : UDINT; (*pointer to the data to be sent*) + datalen : UDINT; (*length of byte stream*) + flags : UDINT; (*send flags (e.g. "out of band" data)*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + sentlen : UDINT; (*number of actually sent bytes*) + 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 TcpRecv (*receives TCP byte stream; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from TcpOpen()*) + pData : UDINT; (*pointer to the buffer where to store byte stream data*) + datamax : UDINT; (*max. length of data in bytes*) + flags : UDINT; (*receive flags*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + recvlen : UDINT; (*length of the bytes received*) + 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 TcpIoctl (*changes or retrieves settings; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from TcpOpen()*) + ioctl : UDINT; (*I/O control code*) + pData : UDINT; (*pointer to the I/O control data buffer*) + datalen : UDINT; (*lentgh of I/O control input data*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + outlen : UDINT; (*output data length*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK diff --git a/example/AsProject/Logical/Libraries/_AS/AsTCP/AsTCP.typ b/example/AsProject/Logical/Libraries/_AS/AsTCP/AsTCP.typ new file mode 100644 index 0000000..c0e8a6e --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsTCP/AsTCP.typ @@ -0,0 +1,23 @@ + +TYPE + tcpLINGER_typ : STRUCT (*linger*) + lOnOff : UDINT; (*linger on/off*) + lLinger : UDINT; (*linger time (seconds)*) + END_STRUCT; + + tcpSO_ADDRESS_typ : STRUCT (*socket address*) + pPort : UDINT; (*pointer where to store the portnumber*) + pIpAddr : UDINT; (*pointer where to store the socket ip address*) + END_STRUCT; + + AsTcpCipherVersionEnum : + ( + asTCP_TLS_1_3 := 2 (*TLS 1.3*) (**) (*#PAR*) + ); + + AsTcpMcsType : STRUCT + name : STRING[255]; (*Managed Certificate Store name*) + tlsVersion : AsTcpCipherVersionEnum; (*TLS version*) + trustListValidation : BOOL; (*Enables/disables trust list validation*) + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsTCP/AsTCP.var b/example/AsProject/Logical/Libraries/_AS/AsTCP/AsTCP.var new file mode 100644 index 0000000..2c712ac --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsTCP/AsTCP.var @@ -0,0 +1,63 @@ + +VAR CONSTANT + tcpERR_INVALID_IDENT : UINT := 32600; (*invalid ident*) + tcpERR_NOMORE_IDENTS : UINT := 32601; (*no more idents*) + tcpERR_ALREADY_EXIST : UINT := 32602; (*socket already exists*) + tcpERR_PARAMETER : UINT := 32603; (*invalid parameter, check parameter*) + tcpERR_INVALID_IOCTL : UINT := 32604; (*io control not supported*) + tcpERR_NO_DATA : UINT := 32605; (*no data to receive*) + tcpERR_SENTLEN : UINT := 32606; (*length sent error, call again*) + tcpERR_WOULDBLOCK : UINT := 32607; (*would block, call again*) + tcpERR_INVALID : UINT := 32608; (*invalid argument*) + tcpERR_NOT_CONNECTED : UINT := 32609; (*socket is not connected*) + tcpERR_ALREADY_CONNECTED : UINT := 32610; (*connected has been already established*) + tcpERR_NO_OOBDATA : UINT := 32611; (*no out of band data*) + tcpERR_INTERFACE : UINT := 32612; (*illegal interface*) + tcpERR_NOCLIENT : UINT := 32613; (*client not yet connected*) + + tcpERR_SOCKET_CREATE : UINT := 32650; (*create socket failed*) + tcpERR_SOCKET_BIND : UINT := 32651; (*bind socket failed*) + tcpERR_SOCKET_LISTEN : UINT := 32652; (*listen socket failed*) + tcpERR_SOCKET_ACCEPT : UINT := 32653; (*accept socket failed*) + + tcpERR_INVALID_MCS_CONFIG : UINT := 32696; (*invalid MCS configuration given*) + tcpERR_INVALID_SSL_CONFIG : UINT := 32697; (*invalid SSL configuration given*) + tcpERR_SSL_HANDSHAKE_FAILED : UINT := 32698; (*SSL handshake failed*) + + tcpERR_SYSTEM : UINT := 32699; (*system error*) + + tcpSO_LINGER_SET : UDINT := 1001; (*set option linger*) + tcpSO_LINGER_GET : UDINT := 1002; (*get option linger*) + tcpSO_KEEPALIVE_SET : UDINT := 1003; (*set option keep alive*) + tcpSO_KEEPALIVE_GET : UDINT := 1004; (*get option keep alive*) + tcpSO_SNDBUF_SET : UDINT := 1005; (*set option send buffer*) + tcpSO_SNDBUF_GET : UDINT := 1006; (*get option send buffer*) + tcpSO_RCVBUF_SET : UDINT := 1007; (*set option receive buffer*) + tcpSO_RCVBUF_GET : UDINT := 1008; (*get option receive buffer*) + tcpSO_OOBINLINE_SET : UDINT := 1009; (*set option out of band data inline*) + tcpSO_OOBINLINE_GET : UDINT := 1010; (*get option out of band data inline*) + tcpSO_ADDRESS_GET : UDINT := 1011; (*get socket address*) + tcpSO_NOWAITING_SET : UDINT := 1012; (*set option no waiting until client connects*) + tcpSO_NOWAITING_GET : UDINT := 1013; (*get option no waiting until client connects*) + tcpTCP_NODELAY_SET : UDINT := 2001; (*set option tcp no delay*) + tcpTCP_NODELAY_GET : UDINT := 2002; (*get option tcp no delay*) + tcpTCP_KEEPCNT_SET : UDINT := 2003; (*set option tcp keep count*) + tcpTCP_KEEPCNT_GET : UDINT := 2004; (*get option tcp keep count*) + tcpTCP_KEEPIDLE_SET : UDINT := 2005; (*set option tcp keep idle*) + tcpTCP_KEEPIDLE_GET : UDINT := 2006; (*get option tcp keep idle*) + tcpTCP_KEEPINTVL_SET : UDINT := 2007; (*set option tcp keep intervall*) + tcpTCP_KEEPINTVL_GET : UDINT := 2008; (*get option tcp keep intervall*) + tcpID_LIST_GET : UDINT := 3001; (*get ident list*) + tcpID_MAX_GET : UDINT := 3002; (*get max ident count*) + + tcpMSG_OOB : UDINT := 1; (*out of band message*) + tcpMSG_PEEK : UDINT := 2; (*don't remove data from socket (receive)*) + tcpMSG_DONTROUTE : UDINT := 4; (*message don't route (send)*) + + tcpOPT_REUSEADDR : UDINT := 1; (*option reuse address*) + + tcpSHUT_RD : UDINT := 1; (*shutdown read channel*) + tcpSHUT_WR : UDINT := 2; (*shutdown write channel*) + + tcpINVALID_IDENT : UDINT := 0; (*invalid ident*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsTCP/SG3/AsTCP.h b/example/AsProject/Logical/Libraries/_AS/AsTCP/SG3/AsTCP.h new file mode 100644 index 0000000..3216582 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsTCP/SG3/AsTCP.h @@ -0,0 +1,261 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASTCP_ +#define _ASTCP_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define tcpINVALID_IDENT 0U + #define tcpSHUT_WR 2U + #define tcpSHUT_RD 1U + #define tcpOPT_REUSEADDR 1U + #define tcpMSG_DONTROUTE 4U + #define tcpMSG_PEEK 2U + #define tcpMSG_OOB 1U + #define tcpID_MAX_GET 3002U + #define tcpID_LIST_GET 3001U + #define tcpTCP_NODELAY_GET 2002U + #define tcpTCP_NODELAY_SET 2001U + #define tcpSO_NOWAITING_GET 1013U + #define tcpSO_NOWAITING_SET 1012U + #define tcpSO_ADDRESS_GET 1011U + #define tcpSO_OOBINLINE_GET 1010U + #define tcpSO_OOBINLINE_SET 1009U + #define tcpSO_RCVBUF_GET 1008U + #define tcpSO_RCVBUF_SET 1007U + #define tcpSO_SNDBUF_GET 1006U + #define tcpSO_SNDBUF_SET 1005U + #define tcpSO_KEEPALIVE_GET 1004U + #define tcpSO_KEEPALIVE_SET 1003U + #define tcpSO_LINGER_GET 1002U + #define tcpSO_LINGER_SET 1001U + #define tcpERR_SYSTEM 32699U + #define tcpERR_SOCKET_ACCEPT 32653U + #define tcpERR_SOCKET_LISTEN 32652U + #define tcpERR_SOCKET_BIND 32651U + #define tcpERR_SOCKET_CREATE 32650U + #define tcpERR_NOCLIENT 32613U + #define tcpERR_INTERFACE 32612U + #define tcpERR_NO_OOBDATA 32611U + #define tcpERR_ALREADY_CONNECTED 32610U + #define tcpERR_NOT_CONNECTED 32609U + #define tcpERR_INVALID 32608U + #define tcpERR_WOULDBLOCK 32607U + #define tcpERR_SENTLEN 32606U + #define tcpERR_NO_DATA 32605U + #define tcpERR_INVALID_IOCTL 32604U + #define tcpERR_PARAMETER 32603U + #define tcpERR_ALREADY_EXIST 32602U + #define tcpERR_NOMORE_IDENTS 32601U + #define tcpERR_INVALID_IDENT 32600U +#else + _IEC_CONST unsigned long tcpINVALID_IDENT = 0U; + _IEC_CONST unsigned long tcpSHUT_WR = 2U; + _IEC_CONST unsigned long tcpSHUT_RD = 1U; + _IEC_CONST unsigned long tcpOPT_REUSEADDR = 1U; + _IEC_CONST unsigned long tcpMSG_DONTROUTE = 4U; + _IEC_CONST unsigned long tcpMSG_PEEK = 2U; + _IEC_CONST unsigned long tcpMSG_OOB = 1U; + _IEC_CONST unsigned long tcpID_MAX_GET = 3002U; + _IEC_CONST unsigned long tcpID_LIST_GET = 3001U; + _IEC_CONST unsigned long tcpTCP_NODELAY_GET = 2002U; + _IEC_CONST unsigned long tcpTCP_NODELAY_SET = 2001U; + _IEC_CONST unsigned long tcpSO_NOWAITING_GET = 1013U; + _IEC_CONST unsigned long tcpSO_NOWAITING_SET = 1012U; + _IEC_CONST unsigned long tcpSO_ADDRESS_GET = 1011U; + _IEC_CONST unsigned long tcpSO_OOBINLINE_GET = 1010U; + _IEC_CONST unsigned long tcpSO_OOBINLINE_SET = 1009U; + _IEC_CONST unsigned long tcpSO_RCVBUF_GET = 1008U; + _IEC_CONST unsigned long tcpSO_RCVBUF_SET = 1007U; + _IEC_CONST unsigned long tcpSO_SNDBUF_GET = 1006U; + _IEC_CONST unsigned long tcpSO_SNDBUF_SET = 1005U; + _IEC_CONST unsigned long tcpSO_KEEPALIVE_GET = 1004U; + _IEC_CONST unsigned long tcpSO_KEEPALIVE_SET = 1003U; + _IEC_CONST unsigned long tcpSO_LINGER_GET = 1002U; + _IEC_CONST unsigned long tcpSO_LINGER_SET = 1001U; + _IEC_CONST unsigned short tcpERR_SYSTEM = 32699U; + _IEC_CONST unsigned short tcpERR_SOCKET_ACCEPT = 32653U; + _IEC_CONST unsigned short tcpERR_SOCKET_LISTEN = 32652U; + _IEC_CONST unsigned short tcpERR_SOCKET_BIND = 32651U; + _IEC_CONST unsigned short tcpERR_SOCKET_CREATE = 32650U; + _IEC_CONST unsigned short tcpERR_NOCLIENT = 32613U; + _IEC_CONST unsigned short tcpERR_INTERFACE = 32612U; + _IEC_CONST unsigned short tcpERR_NO_OOBDATA = 32611U; + _IEC_CONST unsigned short tcpERR_ALREADY_CONNECTED = 32610U; + _IEC_CONST unsigned short tcpERR_NOT_CONNECTED = 32609U; + _IEC_CONST unsigned short tcpERR_INVALID = 32608U; + _IEC_CONST unsigned short tcpERR_WOULDBLOCK = 32607U; + _IEC_CONST unsigned short tcpERR_SENTLEN = 32606U; + _IEC_CONST unsigned short tcpERR_NO_DATA = 32605U; + _IEC_CONST unsigned short tcpERR_INVALID_IOCTL = 32604U; + _IEC_CONST unsigned short tcpERR_PARAMETER = 32603U; + _IEC_CONST unsigned short tcpERR_ALREADY_EXIST = 32602U; + _IEC_CONST unsigned short tcpERR_NOMORE_IDENTS = 32601U; + _IEC_CONST unsigned short tcpERR_INVALID_IDENT = 32600U; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct tcpLINGER_typ +{ unsigned long lOnOff; + unsigned long lLinger; +} tcpLINGER_typ; + +typedef struct tcpSO_ADDRESS_typ +{ unsigned long pPort; + unsigned long pIpAddr; +} tcpSO_ADDRESS_typ; + +typedef struct TcpOpen +{ + /* VAR_INPUT (analog) */ + unsigned long pIfAddr; + unsigned short port; + unsigned long options; + /* 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; +} TcpOpen_typ; + +typedef struct TcpServer +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long backlog; + unsigned long pIpAddr; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long identclnt; + unsigned short portclnt; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpServer_typ; + +typedef struct TcpClient +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pServer; + unsigned short portserv; + /* 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; +} TcpClient_typ; + +typedef struct TcpClose +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long how; + /* 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; +} TcpClose_typ; + +typedef struct TcpSend +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pData; + unsigned long datalen; + unsigned long flags; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long sentlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpSend_typ; + +typedef struct TcpRecv +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pData; + unsigned long datamax; + unsigned long flags; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long recvlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpRecv_typ; + +typedef struct TcpIoctl +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long ioctl; + unsigned long pData; + unsigned long datalen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long outlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpIoctl_typ; + + + +/* Prototyping of functions and function blocks */ +void TcpOpen(struct TcpOpen* inst); +void TcpServer(struct TcpServer* inst); +void TcpClient(struct TcpClient* inst); +void TcpClose(struct TcpClose* inst); +void TcpSend(struct TcpSend* inst); +void TcpRecv(struct TcpRecv* inst); +void TcpIoctl(struct TcpIoctl* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASTCP_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsTCP/SG4/AsTCP.h b/example/AsProject/Logical/Libraries/_AS/AsTCP/SG4/AsTCP.h new file mode 100644 index 0000000..d4edc61 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsTCP/SG4/AsTCP.h @@ -0,0 +1,325 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASTCP_ +#define _ASTCP_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef enum AsTcpCipherVersionEnum +{ asTCP_TLS_1_3 = 2 +} AsTcpCipherVersionEnum; + +typedef struct tcpLINGER_typ +{ unsigned long lOnOff; + unsigned long lLinger; +} tcpLINGER_typ; + +typedef struct tcpSO_ADDRESS_typ +{ unsigned long pPort; + unsigned long pIpAddr; +} tcpSO_ADDRESS_typ; + +typedef struct AsTcpMcsType +{ plcstring name[256]; + enum AsTcpCipherVersionEnum tlsVersion; + plcbit trustListValidation; +} AsTcpMcsType; + +typedef struct TcpOpen +{ + /* VAR_INPUT (analog) */ + unsigned long pIfAddr; + unsigned short port; + unsigned long options; + /* 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; +} TcpOpen_typ; + +typedef struct TcpOpenSsl +{ + /* VAR_INPUT (analog) */ + unsigned long pIfAddr; + unsigned short port; + unsigned long sslCfgIdent; + unsigned long options; + /* 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; +} TcpOpenSsl_typ; + +typedef struct TcpOpenMcs +{ + /* VAR_INPUT (analog) */ + unsigned long pIfAddr; + unsigned short port; + struct AsTcpMcsType mcsStore; + unsigned long options; + /* 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; +} TcpOpenMcs_typ; + +typedef struct TcpServer +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long backlog; + unsigned long pIpAddr; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long identclnt; + unsigned short portclnt; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpServer_typ; + +typedef struct TcpClient +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pServer; + unsigned short portserv; + /* 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; +} TcpClient_typ; + +typedef struct TcpClose +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long how; + /* 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; +} TcpClose_typ; + +typedef struct TcpSend +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pData; + unsigned long datalen; + unsigned long flags; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long sentlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpSend_typ; + +typedef struct TcpRecv +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pData; + unsigned long datamax; + unsigned long flags; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long recvlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpRecv_typ; + +typedef struct TcpIoctl +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long ioctl; + unsigned long pData; + unsigned long datalen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long outlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpIoctl_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void TcpOpen(struct TcpOpen* inst); +_BUR_PUBLIC void TcpOpenSsl(struct TcpOpenSsl* inst); +_BUR_PUBLIC void TcpOpenMcs(struct TcpOpenMcs* inst); +_BUR_PUBLIC void TcpServer(struct TcpServer* inst); +_BUR_PUBLIC void TcpClient(struct TcpClient* inst); +_BUR_PUBLIC void TcpClose(struct TcpClose* inst); +_BUR_PUBLIC void TcpSend(struct TcpSend* inst); +_BUR_PUBLIC void TcpRecv(struct TcpRecv* inst); +_BUR_PUBLIC void TcpIoctl(struct TcpIoctl* inst); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define tcpINVALID_IDENT 0U + #define tcpSHUT_WR 2U + #define tcpSHUT_RD 1U + #define tcpOPT_REUSEADDR 1U + #define tcpMSG_DONTROUTE 4U + #define tcpMSG_PEEK 2U + #define tcpMSG_OOB 1U + #define tcpID_MAX_GET 3002U + #define tcpID_LIST_GET 3001U + #define tcpTCP_KEEPINTVL_GET 2008U + #define tcpTCP_KEEPINTVL_SET 2007U + #define tcpTCP_KEEPIDLE_GET 2006U + #define tcpTCP_KEEPIDLE_SET 2005U + #define tcpTCP_KEEPCNT_GET 2004U + #define tcpTCP_KEEPCNT_SET 2003U + #define tcpTCP_NODELAY_GET 2002U + #define tcpTCP_NODELAY_SET 2001U + #define tcpSO_NOWAITING_GET 1013U + #define tcpSO_NOWAITING_SET 1012U + #define tcpSO_ADDRESS_GET 1011U + #define tcpSO_OOBINLINE_GET 1010U + #define tcpSO_OOBINLINE_SET 1009U + #define tcpSO_RCVBUF_GET 1008U + #define tcpSO_RCVBUF_SET 1007U + #define tcpSO_SNDBUF_GET 1006U + #define tcpSO_SNDBUF_SET 1005U + #define tcpSO_KEEPALIVE_GET 1004U + #define tcpSO_KEEPALIVE_SET 1003U + #define tcpSO_LINGER_GET 1002U + #define tcpSO_LINGER_SET 1001U + #define tcpERR_SYSTEM 32699U + #define tcpERR_SSL_HANDSHAKE_FAILED 32698U + #define tcpERR_INVALID_SSL_CONFIG 32697U + #define tcpERR_INVALID_MCS_CONFIG 32696U + #define tcpERR_SOCKET_ACCEPT 32653U + #define tcpERR_SOCKET_LISTEN 32652U + #define tcpERR_SOCKET_BIND 32651U + #define tcpERR_SOCKET_CREATE 32650U + #define tcpERR_NOCLIENT 32613U + #define tcpERR_INTERFACE 32612U + #define tcpERR_NO_OOBDATA 32611U + #define tcpERR_ALREADY_CONNECTED 32610U + #define tcpERR_NOT_CONNECTED 32609U + #define tcpERR_INVALID 32608U + #define tcpERR_WOULDBLOCK 32607U + #define tcpERR_SENTLEN 32606U + #define tcpERR_NO_DATA 32605U + #define tcpERR_INVALID_IOCTL 32604U + #define tcpERR_PARAMETER 32603U + #define tcpERR_ALREADY_EXIST 32602U + #define tcpERR_NOMORE_IDENTS 32601U + #define tcpERR_INVALID_IDENT 32600U +#else + _GLOBAL_CONST unsigned long tcpINVALID_IDENT; + _GLOBAL_CONST unsigned long tcpSHUT_WR; + _GLOBAL_CONST unsigned long tcpSHUT_RD; + _GLOBAL_CONST unsigned long tcpOPT_REUSEADDR; + _GLOBAL_CONST unsigned long tcpMSG_DONTROUTE; + _GLOBAL_CONST unsigned long tcpMSG_PEEK; + _GLOBAL_CONST unsigned long tcpMSG_OOB; + _GLOBAL_CONST unsigned long tcpID_MAX_GET; + _GLOBAL_CONST unsigned long tcpID_LIST_GET; + _GLOBAL_CONST unsigned long tcpTCP_KEEPINTVL_GET; + _GLOBAL_CONST unsigned long tcpTCP_KEEPINTVL_SET; + _GLOBAL_CONST unsigned long tcpTCP_KEEPIDLE_GET; + _GLOBAL_CONST unsigned long tcpTCP_KEEPIDLE_SET; + _GLOBAL_CONST unsigned long tcpTCP_KEEPCNT_GET; + _GLOBAL_CONST unsigned long tcpTCP_KEEPCNT_SET; + _GLOBAL_CONST unsigned long tcpTCP_NODELAY_GET; + _GLOBAL_CONST unsigned long tcpTCP_NODELAY_SET; + _GLOBAL_CONST unsigned long tcpSO_NOWAITING_GET; + _GLOBAL_CONST unsigned long tcpSO_NOWAITING_SET; + _GLOBAL_CONST unsigned long tcpSO_ADDRESS_GET; + _GLOBAL_CONST unsigned long tcpSO_OOBINLINE_GET; + _GLOBAL_CONST unsigned long tcpSO_OOBINLINE_SET; + _GLOBAL_CONST unsigned long tcpSO_RCVBUF_GET; + _GLOBAL_CONST unsigned long tcpSO_RCVBUF_SET; + _GLOBAL_CONST unsigned long tcpSO_SNDBUF_GET; + _GLOBAL_CONST unsigned long tcpSO_SNDBUF_SET; + _GLOBAL_CONST unsigned long tcpSO_KEEPALIVE_GET; + _GLOBAL_CONST unsigned long tcpSO_KEEPALIVE_SET; + _GLOBAL_CONST unsigned long tcpSO_LINGER_GET; + _GLOBAL_CONST unsigned long tcpSO_LINGER_SET; + _GLOBAL_CONST unsigned short tcpERR_SYSTEM; + _GLOBAL_CONST unsigned short tcpERR_SSL_HANDSHAKE_FAILED; + _GLOBAL_CONST unsigned short tcpERR_INVALID_SSL_CONFIG; + _GLOBAL_CONST unsigned short tcpERR_INVALID_MCS_CONFIG; + _GLOBAL_CONST unsigned short tcpERR_SOCKET_ACCEPT; + _GLOBAL_CONST unsigned short tcpERR_SOCKET_LISTEN; + _GLOBAL_CONST unsigned short tcpERR_SOCKET_BIND; + _GLOBAL_CONST unsigned short tcpERR_SOCKET_CREATE; + _GLOBAL_CONST unsigned short tcpERR_NOCLIENT; + _GLOBAL_CONST unsigned short tcpERR_INTERFACE; + _GLOBAL_CONST unsigned short tcpERR_NO_OOBDATA; + _GLOBAL_CONST unsigned short tcpERR_ALREADY_CONNECTED; + _GLOBAL_CONST unsigned short tcpERR_NOT_CONNECTED; + _GLOBAL_CONST unsigned short tcpERR_INVALID; + _GLOBAL_CONST unsigned short tcpERR_WOULDBLOCK; + _GLOBAL_CONST unsigned short tcpERR_SENTLEN; + _GLOBAL_CONST unsigned short tcpERR_NO_DATA; + _GLOBAL_CONST unsigned short tcpERR_INVALID_IOCTL; + _GLOBAL_CONST unsigned short tcpERR_PARAMETER; + _GLOBAL_CONST unsigned short tcpERR_ALREADY_EXIST; + _GLOBAL_CONST unsigned short tcpERR_NOMORE_IDENTS; + _GLOBAL_CONST unsigned short tcpERR_INVALID_IDENT; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASTCP_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsTCP/SGC/AsTCP.h b/example/AsProject/Logical/Libraries/_AS/AsTCP/SGC/AsTCP.h new file mode 100644 index 0000000..3216582 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsTCP/SGC/AsTCP.h @@ -0,0 +1,261 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASTCP_ +#define _ASTCP_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define tcpINVALID_IDENT 0U + #define tcpSHUT_WR 2U + #define tcpSHUT_RD 1U + #define tcpOPT_REUSEADDR 1U + #define tcpMSG_DONTROUTE 4U + #define tcpMSG_PEEK 2U + #define tcpMSG_OOB 1U + #define tcpID_MAX_GET 3002U + #define tcpID_LIST_GET 3001U + #define tcpTCP_NODELAY_GET 2002U + #define tcpTCP_NODELAY_SET 2001U + #define tcpSO_NOWAITING_GET 1013U + #define tcpSO_NOWAITING_SET 1012U + #define tcpSO_ADDRESS_GET 1011U + #define tcpSO_OOBINLINE_GET 1010U + #define tcpSO_OOBINLINE_SET 1009U + #define tcpSO_RCVBUF_GET 1008U + #define tcpSO_RCVBUF_SET 1007U + #define tcpSO_SNDBUF_GET 1006U + #define tcpSO_SNDBUF_SET 1005U + #define tcpSO_KEEPALIVE_GET 1004U + #define tcpSO_KEEPALIVE_SET 1003U + #define tcpSO_LINGER_GET 1002U + #define tcpSO_LINGER_SET 1001U + #define tcpERR_SYSTEM 32699U + #define tcpERR_SOCKET_ACCEPT 32653U + #define tcpERR_SOCKET_LISTEN 32652U + #define tcpERR_SOCKET_BIND 32651U + #define tcpERR_SOCKET_CREATE 32650U + #define tcpERR_NOCLIENT 32613U + #define tcpERR_INTERFACE 32612U + #define tcpERR_NO_OOBDATA 32611U + #define tcpERR_ALREADY_CONNECTED 32610U + #define tcpERR_NOT_CONNECTED 32609U + #define tcpERR_INVALID 32608U + #define tcpERR_WOULDBLOCK 32607U + #define tcpERR_SENTLEN 32606U + #define tcpERR_NO_DATA 32605U + #define tcpERR_INVALID_IOCTL 32604U + #define tcpERR_PARAMETER 32603U + #define tcpERR_ALREADY_EXIST 32602U + #define tcpERR_NOMORE_IDENTS 32601U + #define tcpERR_INVALID_IDENT 32600U +#else + _IEC_CONST unsigned long tcpINVALID_IDENT = 0U; + _IEC_CONST unsigned long tcpSHUT_WR = 2U; + _IEC_CONST unsigned long tcpSHUT_RD = 1U; + _IEC_CONST unsigned long tcpOPT_REUSEADDR = 1U; + _IEC_CONST unsigned long tcpMSG_DONTROUTE = 4U; + _IEC_CONST unsigned long tcpMSG_PEEK = 2U; + _IEC_CONST unsigned long tcpMSG_OOB = 1U; + _IEC_CONST unsigned long tcpID_MAX_GET = 3002U; + _IEC_CONST unsigned long tcpID_LIST_GET = 3001U; + _IEC_CONST unsigned long tcpTCP_NODELAY_GET = 2002U; + _IEC_CONST unsigned long tcpTCP_NODELAY_SET = 2001U; + _IEC_CONST unsigned long tcpSO_NOWAITING_GET = 1013U; + _IEC_CONST unsigned long tcpSO_NOWAITING_SET = 1012U; + _IEC_CONST unsigned long tcpSO_ADDRESS_GET = 1011U; + _IEC_CONST unsigned long tcpSO_OOBINLINE_GET = 1010U; + _IEC_CONST unsigned long tcpSO_OOBINLINE_SET = 1009U; + _IEC_CONST unsigned long tcpSO_RCVBUF_GET = 1008U; + _IEC_CONST unsigned long tcpSO_RCVBUF_SET = 1007U; + _IEC_CONST unsigned long tcpSO_SNDBUF_GET = 1006U; + _IEC_CONST unsigned long tcpSO_SNDBUF_SET = 1005U; + _IEC_CONST unsigned long tcpSO_KEEPALIVE_GET = 1004U; + _IEC_CONST unsigned long tcpSO_KEEPALIVE_SET = 1003U; + _IEC_CONST unsigned long tcpSO_LINGER_GET = 1002U; + _IEC_CONST unsigned long tcpSO_LINGER_SET = 1001U; + _IEC_CONST unsigned short tcpERR_SYSTEM = 32699U; + _IEC_CONST unsigned short tcpERR_SOCKET_ACCEPT = 32653U; + _IEC_CONST unsigned short tcpERR_SOCKET_LISTEN = 32652U; + _IEC_CONST unsigned short tcpERR_SOCKET_BIND = 32651U; + _IEC_CONST unsigned short tcpERR_SOCKET_CREATE = 32650U; + _IEC_CONST unsigned short tcpERR_NOCLIENT = 32613U; + _IEC_CONST unsigned short tcpERR_INTERFACE = 32612U; + _IEC_CONST unsigned short tcpERR_NO_OOBDATA = 32611U; + _IEC_CONST unsigned short tcpERR_ALREADY_CONNECTED = 32610U; + _IEC_CONST unsigned short tcpERR_NOT_CONNECTED = 32609U; + _IEC_CONST unsigned short tcpERR_INVALID = 32608U; + _IEC_CONST unsigned short tcpERR_WOULDBLOCK = 32607U; + _IEC_CONST unsigned short tcpERR_SENTLEN = 32606U; + _IEC_CONST unsigned short tcpERR_NO_DATA = 32605U; + _IEC_CONST unsigned short tcpERR_INVALID_IOCTL = 32604U; + _IEC_CONST unsigned short tcpERR_PARAMETER = 32603U; + _IEC_CONST unsigned short tcpERR_ALREADY_EXIST = 32602U; + _IEC_CONST unsigned short tcpERR_NOMORE_IDENTS = 32601U; + _IEC_CONST unsigned short tcpERR_INVALID_IDENT = 32600U; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct tcpLINGER_typ +{ unsigned long lOnOff; + unsigned long lLinger; +} tcpLINGER_typ; + +typedef struct tcpSO_ADDRESS_typ +{ unsigned long pPort; + unsigned long pIpAddr; +} tcpSO_ADDRESS_typ; + +typedef struct TcpOpen +{ + /* VAR_INPUT (analog) */ + unsigned long pIfAddr; + unsigned short port; + unsigned long options; + /* 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; +} TcpOpen_typ; + +typedef struct TcpServer +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long backlog; + unsigned long pIpAddr; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long identclnt; + unsigned short portclnt; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpServer_typ; + +typedef struct TcpClient +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pServer; + unsigned short portserv; + /* 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; +} TcpClient_typ; + +typedef struct TcpClose +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long how; + /* 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; +} TcpClose_typ; + +typedef struct TcpSend +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pData; + unsigned long datalen; + unsigned long flags; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long sentlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpSend_typ; + +typedef struct TcpRecv +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pData; + unsigned long datamax; + unsigned long flags; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long recvlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpRecv_typ; + +typedef struct TcpIoctl +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long ioctl; + unsigned long pData; + unsigned long datalen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long outlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} TcpIoctl_typ; + + + +/* Prototyping of functions and function blocks */ +void TcpOpen(struct TcpOpen* inst); +void TcpServer(struct TcpServer* inst); +void TcpClient(struct TcpClient* inst); +void TcpClose(struct TcpClose* inst); +void TcpSend(struct TcpSend* inst); +void TcpRecv(struct TcpRecv* inst); +void TcpIoctl(struct TcpIoctl* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASTCP_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsTCP/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsTCP/binary.lby new file mode 100644 index 0000000..47b43b1 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsTCP/binary.lby @@ -0,0 +1,12 @@ + + + + + AsTCP.fun + AsTCP.typ + AsTCP.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsUDP/AsUDP.fun b/example/AsProject/Logical/Libraries/_AS/AsUDP/AsUDP.fun new file mode 100644 index 0000000..4c32546 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsUDP/AsUDP.fun @@ -0,0 +1,140 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK UdpOpen (*opens a UDP port; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pIfAddr : UDINT; (*pointer to the IP address of the ethernet interface where the UDP socket should be connected*) + port : UINT; (*port number that the UDP socket should connect to*) + options : UDINT; (*options that can be set during opening, e.g., udpOPT_REUSEADDR*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + ident : UDINT; (*identifier used for all other UDP FBKs as an input parameter*) + 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 UdpClose (*closes a UDP port and frees up all required resources; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from UdpOpen*) + 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 UdpConnect (*connects a UDP port to an opposite station; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from UdpOpen*) + pHost : UDINT; (*pointer to the ip address of the receiver*) + port : UINT; (*port number of the receiver*) + 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 UdpDisconnect (*connects a UDP port and the opposite station; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from UdpOpen*) + 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 UdpSend (*sends udp datagrams; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from UdpOpen*) + pHost : UDINT; (*pointer to the ip address or name of the receiver*) + port : UINT; (*port number of the receiver*) + pData : UDINT; (*pointer to the send datagram*) + datalen : UDINT; (*length of send datagram*) + flags : UDINT; (*send flags*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + sentlen : UDINT; (*number of bytes sent*) + 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 UdpRecv (*receives udp datagrams; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from UdpOpen*) + pData : UDINT; (*pointer to the buffer where to store received datagram*) + datamax : UDINT; (*buffer size (max. length of received datagram)*) + flags : UDINT; (*receive flags*) + pIpAddr : UDINT; (*pointer where to store the ip address of the sender*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + recvlen : UDINT; (*lentgh of received datagram*) + port : UINT; (*port number of transmitter*) + 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 UdpIoctl (*changes or retrieves settings; asynchronous execution*) + VAR_INPUT + enable : BOOL; (*enables execution*) + ident : UDINT; (*identifier returned from UdpOpen*) + ioctl : UDINT; (*io control code*) + pData : UDINT; (*pointer to the input/output data buffer*) + datalen : UDINT; (*lentgh of io control input data*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + outlen : UDINT; (*length of the input data or maximum length of the output data*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK diff --git a/example/AsProject/Logical/Libraries/_AS/AsUDP/AsUDP.typ b/example/AsProject/Logical/Libraries/_AS/AsUDP/AsUDP.typ new file mode 100644 index 0000000..0adf40b --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsUDP/AsUDP.typ @@ -0,0 +1,12 @@ + +TYPE + udpIP_MREQ_typ : STRUCT (*multicast*) + pMcastAddr : UDINT; (*pointer to the multicast address*) + pIfAddr : UDINT; (*pointer to the interface address*) + END_STRUCT; + + udpSO_ADDRESS_typ : STRUCT (*socket address*) + pPort : UDINT; (*pointer where to store the portnumber*) + pIpAddr : UDINT; (*pointer where to store the socket ip address*) + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsUDP/AsUDP.var b/example/AsProject/Logical/Libraries/_AS/AsUDP/AsUDP.var new file mode 100644 index 0000000..d99c1df --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsUDP/AsUDP.var @@ -0,0 +1,59 @@ + +VAR CONSTANT + udpERR_INVALID_IDENT : UINT := 32500; (*invalid ident*) + udpERR_NOMORE_IDENTS : UINT := 32501; (*no more idents*) + udpERR_ALREADY_EXIST : UINT := 32502; (*socket already exists*) + udpERR_PARAMETER : UINT := 32503; (*invalid parameter, check parameter*) + udpERR_INVALID_IOCTL : UINT := 32504; (*io control not supported*) + udpERR_NO_DATA : UINT := 32505; (*no data to receive*) + udpERR_SENTLEN : UINT := 32506; (*send failed*) + udpERR_WOULDBLOCK : UINT := 32507; (*would block, call again*) + udpERR_CONNREFUSED : UINT := 32508; (*connection refused*) + udpERR_ACCESS : UINT := 32509; (*send broadcast failed (broadcast option not set)*) + udpERR_UNREACHABLE : UINT := 32510; (*network/host is unreachable*) + udpERR_INTERFACE : UINT := 32511; (*illegal inetrafce*) + udpERR_FIREWALL : UINT := 32512; (*blocked by firewall*) + + udpERR_SOCKET_CREATE : UINT := 32550; (*create socket failed*) + udpERR_SOCKET_BIND : UINT := 32551; (*bind socket failed*) + udpERR_SOCKET_CONNECT : UINT := 32552; (*connect socket failed*) + + udpERR_SYSTEM : UINT := 32599; (*system error*) + + udpSO_BROADCAST_SET : UDINT := 1001; (*set option broadcast (true/false)*) + udpSO_BROADCAST_GET : UDINT := 1002; (*get option broadcast*) + udpSO_SNDBUF_SET : UDINT := 1003; (*set option send buffer*) + udpSO_SNDBUF_GET : UDINT := 1004; (*get option send buffer*) + udpSO_RCVBUF_SET : UDINT := 1005; (*set option receive buffer*) + udpSO_RCVBUF_GET : UDINT := 1006; (*get option receive buffer*) + udpSO_ADDRESS_GET : UDINT := 1007; (*get socket address*) + udpSO_BINDTODEVICE : UDINT := 1008; (*bind socket to device*) + udpIP_ADD_MEMBERSHIP : UDINT := 2001; (*add multicast group*) + udpIP_DROP_MEMBERSHIP : UDINT := 2002; (*leave multicast group*) + udpIP_MULTICAST_IF_SET : UDINT := 2003; (*set interface for outgoing multicats*) + udpIP_MULTICAST_IF_GET : UDINT := 2004; (*get interface for outgoing multicats*) + udpIP_MULTICAST_TTL_SET : UDINT := 2005; (*set time to life for outgoing multicats*) + udpIP_MULTICAST_TTL_GET : UDINT := 2006; (*get time to life for outgoing multicats*) + udpIP_MULTICAST_LOOP_SET : UDINT := 2007; (*set wether or not loopback multicats*) + udpIP_MULTICAST_LOOP_GET : UDINT := 2008; (*get loopback multicats*) + udpIP_TOS_SET : UDINT := 2009; (*set type of service field for outgoing packets*) + udpIP_TOS_GET : UDINT := 2010; (*get type of service field for outgoing packets*) + udpIP_TTL_SET : UDINT := 2011; (*set time to live field for outgoing packets*) + udpIP_TTL_GET : UDINT := 2012; (*get time to live field for outgoing packets*) + udpID_LIST_GET : UDINT := 3001; (*get ident list*) + udpID_MAX_GET : UDINT := 3002; (*get max ident count*) + + udpMSG_PEEK : UDINT := 1; (*don't remove data from socket (receive)*) + udpMSG_DONTROUTE : UDINT := 2; (*message don't route (send)*) + + udpOPT_REUSEADDR : UDINT := 1; (*option reuse address*) + udpOPT_REUSEPORT : UDINT := 2; (*option reuse port*) + udpOPT_BROADCAST : UDINT := 4; (*option enable broadcast*) + + udpIP_TOS_LOWDELAY : UDINT := 16; (*type of service priority low delay*) + udpIP_TOS_THROUGHPUT : UDINT := 8; (*type of service priority throughput*) + udpIP_TOS_RELIABILITY : UDINT := 4; (*type of service priority reliability*) + udpIP_TOS_MINCOST : UDINT := 2; (*type of service priority mincost*) + + udpINVALID_IDENT : UDINT := 0; (*invlaid ident*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsUDP/SG3/AsUDP.h b/example/AsProject/Logical/Libraries/_AS/AsUDP/SG3/AsUDP.h new file mode 100644 index 0000000..1ec5e7f --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsUDP/SG3/AsUDP.h @@ -0,0 +1,268 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASUDP_ +#define _ASUDP_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define udpINVALID_IDENT 0U + #define udpIP_TOS_MINCOST 2U + #define udpIP_TOS_RELIABILITY 4U + #define udpIP_TOS_THROUGHPUT 8U + #define udpIP_TOS_LOWDELAY 16U + #define udpOPT_BROADCAST 4U + #define udpOPT_REUSEPORT 2U + #define udpOPT_REUSEADDR 1U + #define udpMSG_DONTROUTE 2U + #define udpMSG_PEEK 1U + #define udpID_MAX_GET 3002U + #define udpID_LIST_GET 3001U + #define udpIP_TTL_GET 2012U + #define udpIP_TTL_SET 2011U + #define udpIP_TOS_GET 2010U + #define udpIP_TOS_SET 2009U + #define udpIP_MULTICAST_LOOP_GET 2008U + #define udpIP_MULTICAST_LOOP_SET 2007U + #define udpIP_MULTICAST_TTL_GET 2006U + #define udpIP_MULTICAST_TTL_SET 2005U + #define udpIP_MULTICAST_IF_GET 2004U + #define udpIP_MULTICAST_IF_SET 2003U + #define udpIP_DROP_MEMBERSHIP 2002U + #define udpIP_ADD_MEMBERSHIP 2001U + #define udpSO_ADDRESS_GET 1007U + #define udpSO_RCVBUF_GET 1006U + #define udpSO_RCVBUF_SET 1005U + #define udpSO_SNDBUF_GET 1004U + #define udpSO_SNDBUF_SET 1003U + #define udpSO_BROADCAST_GET 1002U + #define udpSO_BROADCAST_SET 1001U + #define udpERR_SYSTEM 32599U + #define udpERR_SOCKET_CONNECT 32552U + #define udpERR_SOCKET_BIND 32551U + #define udpERR_SOCKET_CREATE 32550U + #define udpERR_INTERFACE 32511U + #define udpERR_UNREACHABLE 32510U + #define udpERR_ACCESS 32509U + #define udpERR_CONNREFUSED 32508U + #define udpERR_WOULDBLOCK 32507U + #define udpERR_SENTLEN 32506U + #define udpERR_NO_DATA 32505U + #define udpERR_INVALID_IOCTL 32504U + #define udpERR_PARAMETER 32503U + #define udpERR_ALREADY_EXIST 32502U + #define udpERR_NOMORE_IDENTS 32501U + #define udpERR_INVALID_IDENT 32500U +#else + _IEC_CONST unsigned long udpINVALID_IDENT = 0U; + _IEC_CONST unsigned long udpIP_TOS_MINCOST = 2U; + _IEC_CONST unsigned long udpIP_TOS_RELIABILITY = 4U; + _IEC_CONST unsigned long udpIP_TOS_THROUGHPUT = 8U; + _IEC_CONST unsigned long udpIP_TOS_LOWDELAY = 16U; + _IEC_CONST unsigned long udpOPT_BROADCAST = 4U; + _IEC_CONST unsigned long udpOPT_REUSEPORT = 2U; + _IEC_CONST unsigned long udpOPT_REUSEADDR = 1U; + _IEC_CONST unsigned long udpMSG_DONTROUTE = 2U; + _IEC_CONST unsigned long udpMSG_PEEK = 1U; + _IEC_CONST unsigned long udpID_MAX_GET = 3002U; + _IEC_CONST unsigned long udpID_LIST_GET = 3001U; + _IEC_CONST unsigned long udpIP_TTL_GET = 2012U; + _IEC_CONST unsigned long udpIP_TTL_SET = 2011U; + _IEC_CONST unsigned long udpIP_TOS_GET = 2010U; + _IEC_CONST unsigned long udpIP_TOS_SET = 2009U; + _IEC_CONST unsigned long udpIP_MULTICAST_LOOP_GET = 2008U; + _IEC_CONST unsigned long udpIP_MULTICAST_LOOP_SET = 2007U; + _IEC_CONST unsigned long udpIP_MULTICAST_TTL_GET = 2006U; + _IEC_CONST unsigned long udpIP_MULTICAST_TTL_SET = 2005U; + _IEC_CONST unsigned long udpIP_MULTICAST_IF_GET = 2004U; + _IEC_CONST unsigned long udpIP_MULTICAST_IF_SET = 2003U; + _IEC_CONST unsigned long udpIP_DROP_MEMBERSHIP = 2002U; + _IEC_CONST unsigned long udpIP_ADD_MEMBERSHIP = 2001U; + _IEC_CONST unsigned long udpSO_ADDRESS_GET = 1007U; + _IEC_CONST unsigned long udpSO_RCVBUF_GET = 1006U; + _IEC_CONST unsigned long udpSO_RCVBUF_SET = 1005U; + _IEC_CONST unsigned long udpSO_SNDBUF_GET = 1004U; + _IEC_CONST unsigned long udpSO_SNDBUF_SET = 1003U; + _IEC_CONST unsigned long udpSO_BROADCAST_GET = 1002U; + _IEC_CONST unsigned long udpSO_BROADCAST_SET = 1001U; + _IEC_CONST unsigned short udpERR_SYSTEM = 32599U; + _IEC_CONST unsigned short udpERR_SOCKET_CONNECT = 32552U; + _IEC_CONST unsigned short udpERR_SOCKET_BIND = 32551U; + _IEC_CONST unsigned short udpERR_SOCKET_CREATE = 32550U; + _IEC_CONST unsigned short udpERR_INTERFACE = 32511U; + _IEC_CONST unsigned short udpERR_UNREACHABLE = 32510U; + _IEC_CONST unsigned short udpERR_ACCESS = 32509U; + _IEC_CONST unsigned short udpERR_CONNREFUSED = 32508U; + _IEC_CONST unsigned short udpERR_WOULDBLOCK = 32507U; + _IEC_CONST unsigned short udpERR_SENTLEN = 32506U; + _IEC_CONST unsigned short udpERR_NO_DATA = 32505U; + _IEC_CONST unsigned short udpERR_INVALID_IOCTL = 32504U; + _IEC_CONST unsigned short udpERR_PARAMETER = 32503U; + _IEC_CONST unsigned short udpERR_ALREADY_EXIST = 32502U; + _IEC_CONST unsigned short udpERR_NOMORE_IDENTS = 32501U; + _IEC_CONST unsigned short udpERR_INVALID_IDENT = 32500U; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct udpIP_MREQ_typ +{ unsigned long pMcastAddr; + unsigned long pIfAddr; +} udpIP_MREQ_typ; + +typedef struct udpSO_ADDRESS_typ +{ unsigned long pPort; + unsigned long pIpAddr; +} udpSO_ADDRESS_typ; + +typedef struct UdpOpen +{ + /* VAR_INPUT (analog) */ + unsigned long pIfAddr; + unsigned short port; + unsigned long options; + /* 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; +} UdpOpen_typ; + +typedef struct UdpClose +{ + /* 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; +} UdpClose_typ; + +typedef struct UdpConnect +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pHost; + unsigned short port; + /* 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; +} UdpConnect_typ; + +typedef struct UdpDisconnect +{ + /* 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; +} UdpDisconnect_typ; + +typedef struct UdpSend +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pHost; + unsigned short port; + unsigned long pData; + unsigned long datalen; + unsigned long flags; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long sentlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} UdpSend_typ; + +typedef struct UdpRecv +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pData; + unsigned long datamax; + unsigned long flags; + unsigned long pIpAddr; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long recvlen; + unsigned short port; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} UdpRecv_typ; + +typedef struct UdpIoctl +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long ioctl; + unsigned long pData; + unsigned long datalen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long outlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} UdpIoctl_typ; + + + +/* Prototyping of functions and function blocks */ +void UdpOpen(struct UdpOpen* inst); +void UdpClose(struct UdpClose* inst); +void UdpConnect(struct UdpConnect* inst); +void UdpDisconnect(struct UdpDisconnect* inst); +void UdpSend(struct UdpSend* inst); +void UdpRecv(struct UdpRecv* inst); +void UdpIoctl(struct UdpIoctl* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASUDP_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsUDP/SG4/AsUDP.h b/example/AsProject/Logical/Libraries/_AS/AsUDP/SG4/AsUDP.h new file mode 100644 index 0000000..e93de11 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsUDP/SG4/AsUDP.h @@ -0,0 +1,270 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASUDP_ +#define _ASUDP_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef struct udpIP_MREQ_typ +{ unsigned long pMcastAddr; + unsigned long pIfAddr; +} udpIP_MREQ_typ; + +typedef struct udpSO_ADDRESS_typ +{ unsigned long pPort; + unsigned long pIpAddr; +} udpSO_ADDRESS_typ; + +typedef struct UdpOpen +{ + /* VAR_INPUT (analog) */ + unsigned long pIfAddr; + unsigned short port; + unsigned long options; + /* 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; +} UdpOpen_typ; + +typedef struct UdpClose +{ + /* 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; +} UdpClose_typ; + +typedef struct UdpConnect +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pHost; + unsigned short port; + /* 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; +} UdpConnect_typ; + +typedef struct UdpDisconnect +{ + /* 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; +} UdpDisconnect_typ; + +typedef struct UdpSend +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pHost; + unsigned short port; + unsigned long pData; + unsigned long datalen; + unsigned long flags; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long sentlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} UdpSend_typ; + +typedef struct UdpRecv +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pData; + unsigned long datamax; + unsigned long flags; + unsigned long pIpAddr; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long recvlen; + unsigned short port; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} UdpRecv_typ; + +typedef struct UdpIoctl +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long ioctl; + unsigned long pData; + unsigned long datalen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long outlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} UdpIoctl_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void UdpOpen(struct UdpOpen* inst); +_BUR_PUBLIC void UdpClose(struct UdpClose* inst); +_BUR_PUBLIC void UdpConnect(struct UdpConnect* inst); +_BUR_PUBLIC void UdpDisconnect(struct UdpDisconnect* inst); +_BUR_PUBLIC void UdpSend(struct UdpSend* inst); +_BUR_PUBLIC void UdpRecv(struct UdpRecv* inst); +_BUR_PUBLIC void UdpIoctl(struct UdpIoctl* inst); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define udpINVALID_IDENT 0U + #define udpIP_TOS_MINCOST 2U + #define udpIP_TOS_RELIABILITY 4U + #define udpIP_TOS_THROUGHPUT 8U + #define udpIP_TOS_LOWDELAY 16U + #define udpOPT_BROADCAST 4U + #define udpOPT_REUSEPORT 2U + #define udpOPT_REUSEADDR 1U + #define udpMSG_DONTROUTE 2U + #define udpMSG_PEEK 1U + #define udpID_MAX_GET 3002U + #define udpID_LIST_GET 3001U + #define udpIP_TTL_GET 2012U + #define udpIP_TTL_SET 2011U + #define udpIP_TOS_GET 2010U + #define udpIP_TOS_SET 2009U + #define udpIP_MULTICAST_LOOP_GET 2008U + #define udpIP_MULTICAST_LOOP_SET 2007U + #define udpIP_MULTICAST_TTL_GET 2006U + #define udpIP_MULTICAST_TTL_SET 2005U + #define udpIP_MULTICAST_IF_GET 2004U + #define udpIP_MULTICAST_IF_SET 2003U + #define udpIP_DROP_MEMBERSHIP 2002U + #define udpIP_ADD_MEMBERSHIP 2001U + #define udpSO_BINDTODEVICE 1008U + #define udpSO_ADDRESS_GET 1007U + #define udpSO_RCVBUF_GET 1006U + #define udpSO_RCVBUF_SET 1005U + #define udpSO_SNDBUF_GET 1004U + #define udpSO_SNDBUF_SET 1003U + #define udpSO_BROADCAST_GET 1002U + #define udpSO_BROADCAST_SET 1001U + #define udpERR_SYSTEM 32599U + #define udpERR_SOCKET_CONNECT 32552U + #define udpERR_SOCKET_BIND 32551U + #define udpERR_SOCKET_CREATE 32550U + #define udpERR_FIREWALL 32512U + #define udpERR_INTERFACE 32511U + #define udpERR_UNREACHABLE 32510U + #define udpERR_ACCESS 32509U + #define udpERR_CONNREFUSED 32508U + #define udpERR_WOULDBLOCK 32507U + #define udpERR_SENTLEN 32506U + #define udpERR_NO_DATA 32505U + #define udpERR_INVALID_IOCTL 32504U + #define udpERR_PARAMETER 32503U + #define udpERR_ALREADY_EXIST 32502U + #define udpERR_NOMORE_IDENTS 32501U + #define udpERR_INVALID_IDENT 32500U +#else + _GLOBAL_CONST unsigned long udpINVALID_IDENT; + _GLOBAL_CONST unsigned long udpIP_TOS_MINCOST; + _GLOBAL_CONST unsigned long udpIP_TOS_RELIABILITY; + _GLOBAL_CONST unsigned long udpIP_TOS_THROUGHPUT; + _GLOBAL_CONST unsigned long udpIP_TOS_LOWDELAY; + _GLOBAL_CONST unsigned long udpOPT_BROADCAST; + _GLOBAL_CONST unsigned long udpOPT_REUSEPORT; + _GLOBAL_CONST unsigned long udpOPT_REUSEADDR; + _GLOBAL_CONST unsigned long udpMSG_DONTROUTE; + _GLOBAL_CONST unsigned long udpMSG_PEEK; + _GLOBAL_CONST unsigned long udpID_MAX_GET; + _GLOBAL_CONST unsigned long udpID_LIST_GET; + _GLOBAL_CONST unsigned long udpIP_TTL_GET; + _GLOBAL_CONST unsigned long udpIP_TTL_SET; + _GLOBAL_CONST unsigned long udpIP_TOS_GET; + _GLOBAL_CONST unsigned long udpIP_TOS_SET; + _GLOBAL_CONST unsigned long udpIP_MULTICAST_LOOP_GET; + _GLOBAL_CONST unsigned long udpIP_MULTICAST_LOOP_SET; + _GLOBAL_CONST unsigned long udpIP_MULTICAST_TTL_GET; + _GLOBAL_CONST unsigned long udpIP_MULTICAST_TTL_SET; + _GLOBAL_CONST unsigned long udpIP_MULTICAST_IF_GET; + _GLOBAL_CONST unsigned long udpIP_MULTICAST_IF_SET; + _GLOBAL_CONST unsigned long udpIP_DROP_MEMBERSHIP; + _GLOBAL_CONST unsigned long udpIP_ADD_MEMBERSHIP; + _GLOBAL_CONST unsigned long udpSO_BINDTODEVICE; + _GLOBAL_CONST unsigned long udpSO_ADDRESS_GET; + _GLOBAL_CONST unsigned long udpSO_RCVBUF_GET; + _GLOBAL_CONST unsigned long udpSO_RCVBUF_SET; + _GLOBAL_CONST unsigned long udpSO_SNDBUF_GET; + _GLOBAL_CONST unsigned long udpSO_SNDBUF_SET; + _GLOBAL_CONST unsigned long udpSO_BROADCAST_GET; + _GLOBAL_CONST unsigned long udpSO_BROADCAST_SET; + _GLOBAL_CONST unsigned short udpERR_SYSTEM; + _GLOBAL_CONST unsigned short udpERR_SOCKET_CONNECT; + _GLOBAL_CONST unsigned short udpERR_SOCKET_BIND; + _GLOBAL_CONST unsigned short udpERR_SOCKET_CREATE; + _GLOBAL_CONST unsigned short udpERR_FIREWALL; + _GLOBAL_CONST unsigned short udpERR_INTERFACE; + _GLOBAL_CONST unsigned short udpERR_UNREACHABLE; + _GLOBAL_CONST unsigned short udpERR_ACCESS; + _GLOBAL_CONST unsigned short udpERR_CONNREFUSED; + _GLOBAL_CONST unsigned short udpERR_WOULDBLOCK; + _GLOBAL_CONST unsigned short udpERR_SENTLEN; + _GLOBAL_CONST unsigned short udpERR_NO_DATA; + _GLOBAL_CONST unsigned short udpERR_INVALID_IOCTL; + _GLOBAL_CONST unsigned short udpERR_PARAMETER; + _GLOBAL_CONST unsigned short udpERR_ALREADY_EXIST; + _GLOBAL_CONST unsigned short udpERR_NOMORE_IDENTS; + _GLOBAL_CONST unsigned short udpERR_INVALID_IDENT; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASUDP_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsUDP/SGC/AsUDP.h b/example/AsProject/Logical/Libraries/_AS/AsUDP/SGC/AsUDP.h new file mode 100644 index 0000000..1ec5e7f --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsUDP/SGC/AsUDP.h @@ -0,0 +1,268 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASUDP_ +#define _ASUDP_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define udpINVALID_IDENT 0U + #define udpIP_TOS_MINCOST 2U + #define udpIP_TOS_RELIABILITY 4U + #define udpIP_TOS_THROUGHPUT 8U + #define udpIP_TOS_LOWDELAY 16U + #define udpOPT_BROADCAST 4U + #define udpOPT_REUSEPORT 2U + #define udpOPT_REUSEADDR 1U + #define udpMSG_DONTROUTE 2U + #define udpMSG_PEEK 1U + #define udpID_MAX_GET 3002U + #define udpID_LIST_GET 3001U + #define udpIP_TTL_GET 2012U + #define udpIP_TTL_SET 2011U + #define udpIP_TOS_GET 2010U + #define udpIP_TOS_SET 2009U + #define udpIP_MULTICAST_LOOP_GET 2008U + #define udpIP_MULTICAST_LOOP_SET 2007U + #define udpIP_MULTICAST_TTL_GET 2006U + #define udpIP_MULTICAST_TTL_SET 2005U + #define udpIP_MULTICAST_IF_GET 2004U + #define udpIP_MULTICAST_IF_SET 2003U + #define udpIP_DROP_MEMBERSHIP 2002U + #define udpIP_ADD_MEMBERSHIP 2001U + #define udpSO_ADDRESS_GET 1007U + #define udpSO_RCVBUF_GET 1006U + #define udpSO_RCVBUF_SET 1005U + #define udpSO_SNDBUF_GET 1004U + #define udpSO_SNDBUF_SET 1003U + #define udpSO_BROADCAST_GET 1002U + #define udpSO_BROADCAST_SET 1001U + #define udpERR_SYSTEM 32599U + #define udpERR_SOCKET_CONNECT 32552U + #define udpERR_SOCKET_BIND 32551U + #define udpERR_SOCKET_CREATE 32550U + #define udpERR_INTERFACE 32511U + #define udpERR_UNREACHABLE 32510U + #define udpERR_ACCESS 32509U + #define udpERR_CONNREFUSED 32508U + #define udpERR_WOULDBLOCK 32507U + #define udpERR_SENTLEN 32506U + #define udpERR_NO_DATA 32505U + #define udpERR_INVALID_IOCTL 32504U + #define udpERR_PARAMETER 32503U + #define udpERR_ALREADY_EXIST 32502U + #define udpERR_NOMORE_IDENTS 32501U + #define udpERR_INVALID_IDENT 32500U +#else + _IEC_CONST unsigned long udpINVALID_IDENT = 0U; + _IEC_CONST unsigned long udpIP_TOS_MINCOST = 2U; + _IEC_CONST unsigned long udpIP_TOS_RELIABILITY = 4U; + _IEC_CONST unsigned long udpIP_TOS_THROUGHPUT = 8U; + _IEC_CONST unsigned long udpIP_TOS_LOWDELAY = 16U; + _IEC_CONST unsigned long udpOPT_BROADCAST = 4U; + _IEC_CONST unsigned long udpOPT_REUSEPORT = 2U; + _IEC_CONST unsigned long udpOPT_REUSEADDR = 1U; + _IEC_CONST unsigned long udpMSG_DONTROUTE = 2U; + _IEC_CONST unsigned long udpMSG_PEEK = 1U; + _IEC_CONST unsigned long udpID_MAX_GET = 3002U; + _IEC_CONST unsigned long udpID_LIST_GET = 3001U; + _IEC_CONST unsigned long udpIP_TTL_GET = 2012U; + _IEC_CONST unsigned long udpIP_TTL_SET = 2011U; + _IEC_CONST unsigned long udpIP_TOS_GET = 2010U; + _IEC_CONST unsigned long udpIP_TOS_SET = 2009U; + _IEC_CONST unsigned long udpIP_MULTICAST_LOOP_GET = 2008U; + _IEC_CONST unsigned long udpIP_MULTICAST_LOOP_SET = 2007U; + _IEC_CONST unsigned long udpIP_MULTICAST_TTL_GET = 2006U; + _IEC_CONST unsigned long udpIP_MULTICAST_TTL_SET = 2005U; + _IEC_CONST unsigned long udpIP_MULTICAST_IF_GET = 2004U; + _IEC_CONST unsigned long udpIP_MULTICAST_IF_SET = 2003U; + _IEC_CONST unsigned long udpIP_DROP_MEMBERSHIP = 2002U; + _IEC_CONST unsigned long udpIP_ADD_MEMBERSHIP = 2001U; + _IEC_CONST unsigned long udpSO_ADDRESS_GET = 1007U; + _IEC_CONST unsigned long udpSO_RCVBUF_GET = 1006U; + _IEC_CONST unsigned long udpSO_RCVBUF_SET = 1005U; + _IEC_CONST unsigned long udpSO_SNDBUF_GET = 1004U; + _IEC_CONST unsigned long udpSO_SNDBUF_SET = 1003U; + _IEC_CONST unsigned long udpSO_BROADCAST_GET = 1002U; + _IEC_CONST unsigned long udpSO_BROADCAST_SET = 1001U; + _IEC_CONST unsigned short udpERR_SYSTEM = 32599U; + _IEC_CONST unsigned short udpERR_SOCKET_CONNECT = 32552U; + _IEC_CONST unsigned short udpERR_SOCKET_BIND = 32551U; + _IEC_CONST unsigned short udpERR_SOCKET_CREATE = 32550U; + _IEC_CONST unsigned short udpERR_INTERFACE = 32511U; + _IEC_CONST unsigned short udpERR_UNREACHABLE = 32510U; + _IEC_CONST unsigned short udpERR_ACCESS = 32509U; + _IEC_CONST unsigned short udpERR_CONNREFUSED = 32508U; + _IEC_CONST unsigned short udpERR_WOULDBLOCK = 32507U; + _IEC_CONST unsigned short udpERR_SENTLEN = 32506U; + _IEC_CONST unsigned short udpERR_NO_DATA = 32505U; + _IEC_CONST unsigned short udpERR_INVALID_IOCTL = 32504U; + _IEC_CONST unsigned short udpERR_PARAMETER = 32503U; + _IEC_CONST unsigned short udpERR_ALREADY_EXIST = 32502U; + _IEC_CONST unsigned short udpERR_NOMORE_IDENTS = 32501U; + _IEC_CONST unsigned short udpERR_INVALID_IDENT = 32500U; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct udpIP_MREQ_typ +{ unsigned long pMcastAddr; + unsigned long pIfAddr; +} udpIP_MREQ_typ; + +typedef struct udpSO_ADDRESS_typ +{ unsigned long pPort; + unsigned long pIpAddr; +} udpSO_ADDRESS_typ; + +typedef struct UdpOpen +{ + /* VAR_INPUT (analog) */ + unsigned long pIfAddr; + unsigned short port; + unsigned long options; + /* 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; +} UdpOpen_typ; + +typedef struct UdpClose +{ + /* 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; +} UdpClose_typ; + +typedef struct UdpConnect +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pHost; + unsigned short port; + /* 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; +} UdpConnect_typ; + +typedef struct UdpDisconnect +{ + /* 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; +} UdpDisconnect_typ; + +typedef struct UdpSend +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pHost; + unsigned short port; + unsigned long pData; + unsigned long datalen; + unsigned long flags; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long sentlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} UdpSend_typ; + +typedef struct UdpRecv +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long pData; + unsigned long datamax; + unsigned long flags; + unsigned long pIpAddr; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long recvlen; + unsigned short port; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} UdpRecv_typ; + +typedef struct UdpIoctl +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long ioctl; + unsigned long pData; + unsigned long datalen; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long outlen; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} UdpIoctl_typ; + + + +/* Prototyping of functions and function blocks */ +void UdpOpen(struct UdpOpen* inst); +void UdpClose(struct UdpClose* inst); +void UdpConnect(struct UdpConnect* inst); +void UdpDisconnect(struct UdpDisconnect* inst); +void UdpSend(struct UdpSend* inst); +void UdpRecv(struct UdpRecv* inst); +void UdpIoctl(struct UdpIoctl* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASUDP_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsUDP/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsUDP/binary.lby new file mode 100644 index 0000000..4cd9413 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsUDP/binary.lby @@ -0,0 +1,12 @@ + + + + + AsUDP.fun + AsUDP.typ + AsUDP.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsUSB/AsUSB.fun b/example/AsProject/Logical/Libraries/_AS/AsUSB/AsUSB.fun new file mode 100644 index 0000000..90587ac --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsUSB/AsUSB.fun @@ -0,0 +1,75 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK UsbNodeListGet (* get USB node list *) + VAR_INPUT + enable : BOOL; (* fub enable *) + pBuffer : UDINT; (* pointer to input buffer *) + bufferSize : UDINT; (* max length of input buffer *) + filterInterfaceClass : UINT; (* filter for interface class *) + filterInterfaceSubClass : UINT; (* filter for interface subclass *) + END_VAR + VAR_OUTPUT + status : UINT; (* status *) + allNodes : UDINT; (* all usb nodes on target *) + listNodes : UDINT; (* usb nodes in the list *) + attachDetachCount:UDINT; (* attach/deatch actions *) + 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 UsbNodeGet (* get USB node description *) + VAR_INPUT + enable : BOOL; (* fub enable *) + nodeId : UDINT; (* unique node identifier of USBNodeListGet *) + pBuffer : UDINT; (* pointer to input buffer *) + bufferSize : UDINT; (* max length of input buffer *) + END_VAR + VAR_OUTPUT + status : UINT; (* status *) + 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 UsbDescriptorGet (* get USB node descriptor *) + VAR_INPUT + enable : BOOL; (* fub enable *) + nodeId : UDINT; (* unique node identifier of USBNodeListGet *) + requestType : USINT; (* reqeust type *) + descriptorType : USINT; (* descriptor type *) + descriptorIndex : USINT; (* descriptor index *) + languageId : UINT; (* language unicode *) + pBuffer : UDINT; (* pointer to input buffer *) + bufferSize : UINT; (* max length of input buffer *) + END_VAR + VAR_OUTPUT + status : UINT; (* status *) + actSize : UINT; (* length of received data *) + 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 UsbMsDeviceReady (* get USB mass storage device ready status *) + VAR_INPUT + enable : BOOL; (* fub enable *) + pIfName : UDINT; (* pointer to string of ifName of input buffer of USBNodeGet *) + END_VAR + VAR_OUTPUT + status : UINT; (* status *) + ready : BOOL; (* device ready status true/false *) + END_VAR + VAR + i_state : UINT; (* internal variable *) + i_result : UINT; (* internal variable *) + i_tmp : UDINT; (* internal variable *) + END_VAR +END_FUNCTION_BLOCK + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsUSB/AsUSB.typ b/example/AsProject/Logical/Libraries/_AS/AsUSB/AsUSB.typ new file mode 100644 index 0000000..1413570 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsUSB/AsUSB.typ @@ -0,0 +1,79 @@ + +TYPE + usbNode_typ : STRUCT (* statistics *) + interfaceClass : UINT; (* interface class of USB device *) + interfaceSubClass : UINT; (* interface subclass of USB device *) + interfaceProtocol : UINT; (* interface protocol of USB device *) + vendorId : UINT; (* device Vendor ID *) + productId : UINT; (* device Product ID *) + bcdDevice : UINT; (* USB device release version binary coded decimal *) + ifName : STRING[127]; (* USB interface name *) + END_STRUCT; +END_TYPE + +TYPE + usbDeviceDescr_typ : STRUCT (* statistics *) + length : USINT; (* bLength *) + descriptorType : USINT; (* bDescriptorType *) + bcdUsb : UINT; (* bcdUSB - USB release in BCD *) + deviceClass : USINT; (* bDeviceClass *) + deviceSubClass : USINT; (* bDeviceSubClass *) + deviceProtocol : USINT; (* bDeviceProtocol *) + maxPacketSize0 : USINT; (* bMaxPacketSize0 *) + vendor : UINT; (* idVendor *) + product : UINT; (* idProduct *) + bcdDevice : UINT; (* bcdDevice - dev release in BCD *) + manufacturerIndex : USINT; (* iManufacturer *) + productIndex : USINT; (* iProduct *) + serialNumberIndex : USINT; (* iSerialNumber *) + numConfigurations : USINT; (* bNumConfigurations *) + END_STRUCT; +END_TYPE + +TYPE + usbConfigDescr_typ : STRUCT (* statistics *) + bLength : USINT; (* Size of this descriptor in bytes *) + bDescriptorType : USINT; (* CONFIGURATION Descriptor Type *) + wTotalLength : UINT; (* Configuration data length *) + bNumInterfaces : USINT; (* Number of interfaces supported *) + bConfigurationValue : USINT; (* SetConfiguration() function argument *) + iConfiguration : USINT; (* Configuration string descriptor *) + bmAttributes : USINT; (* Bitmap configuration characteristics *) + MaxPower : USINT; (* Max pwr consumption (mA) of operational device on bus *) + END_STRUCT; +END_TYPE + +TYPE + usbStringDescr_typ : STRUCT (* statistics *) + length : USINT; (* bLength *) + descriptorType : USINT; (* bDescriptorType *) + string : STRING[1]; (* bString - variable len *) + END_STRUCT; +END_TYPE + +TYPE + usbInterfaceDescr_typ : STRUCT (* statistics *) + bLength : USINT; (* Size of this descriptor in bytes *) + bDescriptorType : USINT; (* Interface Descriptor Type *) + bInterfaceNumber : USINT; (* Zero-based interface number *) + bAlternateSetting : USINT; (* Alternate setting for interface *) + bNumEndpoints : USINT; (* Num of endpoints (excluding endpoint zero) *) + bInterfaceClass : USINT; (* Class code of this interface *) + bInterfaceSubClass : USINT; (* Subclass code of this interface *) + bInterfaceProtocol : USINT; (* Interface protocol code *) + iInterface : USINT; (* Interface string descriptor *) + END_STRUCT; +END_TYPE + +TYPE + usbEndpointDescr_typ : STRUCT (* statistics *) + bLength : USINT; (* Descriptor length in bytes *) + bDescriptorType : USINT; (* Endpoint Descriptor type *) + bEndpointAddress : USINT; (* Endpoint address on the USB device *) + bmAttributes : USINT; (* Endpoint transfer, sych & usage types attr *) + wMaxPacketSize : UINT; (* Endpoint max packet size *) + bInterval : USINT; (* Polling interval for endpoint data xfer *) + END_STRUCT; +END_TYPE + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsUSB/AsUSB.var b/example/AsProject/Logical/Libraries/_AS/AsUSB/AsUSB.var new file mode 100644 index 0000000..cd9a918 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsUSB/AsUSB.var @@ -0,0 +1,37 @@ + +VAR CONSTANT + asusb_CLASS_CDC : USINT := 2; (* USB Communications and CDC Control class code *) + asusb_CLASS_HID : USINT := 3; (* USB Human Interface Interfaces class code *) + asusb_CLASS_PRINTER : USINT := 7; (* USB Printer class code *) + asusb_CLASS_MASS_STORAGE : USINT := 8; (* USB Mass storage class code *) + asusb_CLASS_HUB : USINT := 9; (* USB Hub class code *) + asusb_CLASS_VENDOR_SPECIFIC : USINT := 255; (* USB Vendor specific *) + + asusb_SUBCLASS_PRINTER : USINT := 1; (* USB PRINTER subclass code *) + asusb_SUBCLASS_HID_BOOT : USINT := 1; (* USB HID Boot *) + asusb_SUBCLASS_UFI_COMMAND_SET : USINT := 4; (* USB UFI command set *) + asusb_SUBCLASS_SCSI_COMMAND_SET : USINT := 6; (* SCSI command set definition *) + + asusb_DEVICENAMELENGTH : USINT := 128; + + asusb_USB_RT_DEVICE : USINT := 0; (* Request type for device *) + asusb_USB_RT_INTERFACE : USINT := 1; (* Request type for interface *) + asusb_USB_RT_ENDPOINT : USINT := 2; (* Request type for endpoint *) + + asusb_USB_RT_STANDARD : USINT := 0; (* Request type standard *) + asusb_USB_RT_CLASS : USINT := 32; (* Request type class-specific *) + asusb_USB_RT_VENDOR : USINT := 64; (* Request type vendor-specific *) + + asusb_USB_DESCR_DEVICE : USINT := 1; (* Specifies the DEVICE descriptor *) + asusb_USB_DESCR_CONFIG : USINT := 2; (* Specifies the CONFIGURATION descriptor *) + asusb_USB_DESCR_STRING : USINT := 3; (* Specifies a STRING descriptor *) + asusb_USB_DESCR_INTERFACE : USINT := 4; (* Specifies an INTERFACE descriptor *) + asusb_USB_DESCR_ENDPOINT : USINT := 5; (* Specifies an ENDPOINT descriptor *) + + asusb_USB_UNICODE_ENGLISH : UINT := 1033; (* languageId unicode english *) + + asusbERR_USB_NOTFOUND : UINT := 32900; (* No USB device found *) + asusbERR_BUFSIZE : UINT := 32901; (* Buffer is too small to fit requested data *) + asusbERR_NULLPOINTER : UINT := 32902; (* Null pointer value is passed as input parameter *) + +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsUSB/SG4/AsUSB.h b/example/AsProject/Logical/Libraries/_AS/AsUSB/SG4/AsUSB.h new file mode 100644 index 0000000..0124ade --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsUSB/SG4/AsUSB.h @@ -0,0 +1,230 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASUSB_ +#define _ASUSB_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef struct usbNode_typ +{ unsigned short interfaceClass; + unsigned short interfaceSubClass; + unsigned short interfaceProtocol; + unsigned short vendorId; + unsigned short productId; + unsigned short bcdDevice; + plcstring ifName[128]; +} usbNode_typ; + +typedef struct usbDeviceDescr_typ +{ unsigned char length; + unsigned char descriptorType; + unsigned short bcdUsb; + unsigned char deviceClass; + unsigned char deviceSubClass; + unsigned char deviceProtocol; + unsigned char maxPacketSize0; + unsigned short vendor; + unsigned short product; + unsigned short bcdDevice; + unsigned char manufacturerIndex; + unsigned char productIndex; + unsigned char serialNumberIndex; + unsigned char numConfigurations; +} usbDeviceDescr_typ; + +typedef struct usbConfigDescr_typ +{ unsigned char bLength; + unsigned char bDescriptorType; + unsigned short wTotalLength; + unsigned char bNumInterfaces; + unsigned char bConfigurationValue; + unsigned char iConfiguration; + unsigned char bmAttributes; + unsigned char MaxPower; +} usbConfigDescr_typ; + +typedef struct usbStringDescr_typ +{ unsigned char length; + unsigned char descriptorType; + plcstring string[2]; +} usbStringDescr_typ; + +typedef struct usbInterfaceDescr_typ +{ unsigned char bLength; + unsigned char bDescriptorType; + unsigned char bInterfaceNumber; + unsigned char bAlternateSetting; + unsigned char bNumEndpoints; + unsigned char bInterfaceClass; + unsigned char bInterfaceSubClass; + unsigned char bInterfaceProtocol; + unsigned char iInterface; +} usbInterfaceDescr_typ; + +typedef struct usbEndpointDescr_typ +{ unsigned char bLength; + unsigned char bDescriptorType; + unsigned char bEndpointAddress; + unsigned char bmAttributes; + unsigned short wMaxPacketSize; + unsigned char bInterval; +} usbEndpointDescr_typ; + +typedef struct UsbNodeListGet +{ + /* VAR_INPUT (analog) */ + unsigned long pBuffer; + unsigned long bufferSize; + unsigned short filterInterfaceClass; + unsigned short filterInterfaceSubClass; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long allNodes; + unsigned long listNodes; + unsigned long attachDetachCount; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} UsbNodeListGet_typ; + +typedef struct UsbNodeGet +{ + /* VAR_INPUT (analog) */ + unsigned long nodeId; + unsigned long pBuffer; + unsigned long bufferSize; + /* 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; +} UsbNodeGet_typ; + +typedef struct UsbDescriptorGet +{ + /* VAR_INPUT (analog) */ + unsigned long nodeId; + unsigned char requestType; + unsigned char descriptorType; + unsigned char descriptorIndex; + unsigned short languageId; + unsigned long pBuffer; + unsigned short bufferSize; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short actSize; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} UsbDescriptorGet_typ; + +typedef struct UsbMsDeviceReady +{ + /* VAR_INPUT (analog) */ + unsigned long pIfName; + /* 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; + /* VAR_OUTPUT (digital) */ + plcbit ready; +} UsbMsDeviceReady_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void UsbNodeListGet(struct UsbNodeListGet* inst); +_BUR_PUBLIC void UsbNodeGet(struct UsbNodeGet* inst); +_BUR_PUBLIC void UsbDescriptorGet(struct UsbDescriptorGet* inst); +_BUR_PUBLIC void UsbMsDeviceReady(struct UsbMsDeviceReady* inst); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define asusbERR_NULLPOINTER 32902U + #define asusbERR_BUFSIZE 32901U + #define asusbERR_USB_NOTFOUND 32900U + #define asusb_USB_UNICODE_ENGLISH 1033U + #define asusb_USB_DESCR_ENDPOINT 5U + #define asusb_USB_DESCR_INTERFACE 4U + #define asusb_USB_DESCR_STRING 3U + #define asusb_USB_DESCR_CONFIG 2U + #define asusb_USB_DESCR_DEVICE 1U + #define asusb_USB_RT_VENDOR 64U + #define asusb_USB_RT_CLASS 32U + #define asusb_USB_RT_STANDARD 0U + #define asusb_USB_RT_ENDPOINT 2U + #define asusb_USB_RT_INTERFACE 1U + #define asusb_USB_RT_DEVICE 0U + #define asusb_DEVICENAMELENGTH 128U + #define asusb_SUBCLASS_SCSI_COMMAND_SET 6U + #define asusb_SUBCLASS_UFI_COMMAND_SET 4U + #define asusb_SUBCLASS_HID_BOOT 1U + #define asusb_SUBCLASS_PRINTER 1U + #define asusb_CLASS_VENDOR_SPECIFIC 255U + #define asusb_CLASS_HUB 9U + #define asusb_CLASS_MASS_STORAGE 8U + #define asusb_CLASS_PRINTER 7U + #define asusb_CLASS_HID 3U + #define asusb_CLASS_CDC 2U +#else + _GLOBAL_CONST unsigned short asusbERR_NULLPOINTER; + _GLOBAL_CONST unsigned short asusbERR_BUFSIZE; + _GLOBAL_CONST unsigned short asusbERR_USB_NOTFOUND; + _GLOBAL_CONST unsigned short asusb_USB_UNICODE_ENGLISH; + _GLOBAL_CONST unsigned char asusb_USB_DESCR_ENDPOINT; + _GLOBAL_CONST unsigned char asusb_USB_DESCR_INTERFACE; + _GLOBAL_CONST unsigned char asusb_USB_DESCR_STRING; + _GLOBAL_CONST unsigned char asusb_USB_DESCR_CONFIG; + _GLOBAL_CONST unsigned char asusb_USB_DESCR_DEVICE; + _GLOBAL_CONST unsigned char asusb_USB_RT_VENDOR; + _GLOBAL_CONST unsigned char asusb_USB_RT_CLASS; + _GLOBAL_CONST unsigned char asusb_USB_RT_STANDARD; + _GLOBAL_CONST unsigned char asusb_USB_RT_ENDPOINT; + _GLOBAL_CONST unsigned char asusb_USB_RT_INTERFACE; + _GLOBAL_CONST unsigned char asusb_USB_RT_DEVICE; + _GLOBAL_CONST unsigned char asusb_DEVICENAMELENGTH; + _GLOBAL_CONST unsigned char asusb_SUBCLASS_SCSI_COMMAND_SET; + _GLOBAL_CONST unsigned char asusb_SUBCLASS_UFI_COMMAND_SET; + _GLOBAL_CONST unsigned char asusb_SUBCLASS_HID_BOOT; + _GLOBAL_CONST unsigned char asusb_SUBCLASS_PRINTER; + _GLOBAL_CONST unsigned char asusb_CLASS_VENDOR_SPECIFIC; + _GLOBAL_CONST unsigned char asusb_CLASS_HUB; + _GLOBAL_CONST unsigned char asusb_CLASS_MASS_STORAGE; + _GLOBAL_CONST unsigned char asusb_CLASS_PRINTER; + _GLOBAL_CONST unsigned char asusb_CLASS_HID; + _GLOBAL_CONST unsigned char asusb_CLASS_CDC; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASUSB_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsUSB/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsUSB/binary.lby new file mode 100644 index 0000000..6b62de5 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsUSB/binary.lby @@ -0,0 +1,12 @@ + + + + + AsUSB.fun + AsUSB.typ + AsUSB.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsXml/AsXml.fun b/example/AsProject/Logical/Libraries/_AS/AsXml/AsXml.fun new file mode 100644 index 0000000..305328e --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsXml/AsXml.fun @@ -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 diff --git a/example/AsProject/Logical/Libraries/_AS/AsXml/AsXml.typ b/example/AsProject/Logical/Libraries/_AS/AsXml/AsXml.typ new file mode 100644 index 0000000..9d796e3 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsXml/AsXml.typ @@ -0,0 +1,4 @@ + +TYPE + +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsXml/AsXml.var b/example/AsProject/Logical/Libraries/_AS/AsXml/AsXml.var new file mode 100644 index 0000000..e968e1b --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsXml/AsXml.var @@ -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 diff --git a/example/AsProject/Logical/Libraries/_AS/AsXml/SG4/AsXml.h b/example/AsProject/Logical/Libraries/_AS/AsXml/SG4/AsXml.h new file mode 100644 index 0000000..3d1ff31 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsXml/SG4/AsXml.h @@ -0,0 +1,348 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASXML_ +#define _ASXML_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#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); + + +/* 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 + _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 + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASXML_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsXml/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsXml/binary.lby new file mode 100644 index 0000000..65fcf2c --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsXml/binary.lby @@ -0,0 +1,12 @@ + + + + + AsXml.fun + AsXml.typ + AsXml.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/AsZip/AsZip.fun b/example/AsProject/Logical/Libraries/_AS/AsZip/AsZip.fun new file mode 100644 index 0000000..212ce5c --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsZip/AsZip.fun @@ -0,0 +1,40 @@ + +{REDUND_ERROR} FUNCTION_BLOCK zipArchive (*Creates an archive (.tar, .gz or .tar.gz)*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pArchiveDevice : UDINT; (*device name of the archive file given as a pointer*) + pArchiveFile : UDINT; (*file name of the archive file given as a pointer*) + pSrcDevice : UDINT; (*device name of the source file or folder given as a pointer*) + pSrcFile : UDINT; (*source folder or file given as a pointer*) + pOptions : UDINT; (*additional options given as pointer*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_ERROR} FUNCTION_BLOCK zipExtract (*Extracts an archive (.tar, .gz or .tar.gz)*) + VAR_INPUT + enable : BOOL; (*enables execution*) + pArchiveDevice : UDINT; (*device name of the archive given as a pointer*) + pArchiveFile : UDINT; (*file name of the archive given as a pointer*) + pOutDevice : UDINT; (*device name of the destination folder of the files to extract given as pointer*) + pOutFolder : UDINT; (*destination folder name of the files to extract given as pointer*) + pOptions : UDINT; (*additional options given as pointer*) + END_VAR + + VAR_OUTPUT + status : UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK diff --git a/example/AsProject/Logical/Libraries/_AS/AsZip/AsZip.typ b/example/AsProject/Logical/Libraries/_AS/AsZip/AsZip.typ new file mode 100644 index 0000000..fbd30fd --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsZip/AsZip.typ @@ -0,0 +1,4 @@ + +TYPE + +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/AsZip/AsZip.var b/example/AsProject/Logical/Libraries/_AS/AsZip/AsZip.var new file mode 100644 index 0000000..db839a7 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsZip/AsZip.var @@ -0,0 +1,10 @@ + +VAR CONSTANT + zipERR_NULLPOINTER : UINT := 38060; (*null pointer given*) + zipERR_INVALID_DEVICE : UINT := 38061; (*device doesn't exist or device not configured*) + zipERR_UNSUPPORTED_EXTENSION : UINT := 38062; (*unsupported extension*) + zipERR_INTERNAL_ERROR : UINT := 38063; (*internal error*) + zipERR_SPACE : UINT := 38064; (*device is out of space*) + zipERR_FILE_NOT_FOUND : UINT := 38065; (*file not found*) + zipERR_FILE_WRITE_ERROR : UINT := 38066; (*could not write extracted file*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/AsZip/SG4/AsZip.h b/example/AsProject/Logical/Libraries/_AS/AsZip/SG4/AsZip.h new file mode 100644 index 0000000..c8bd46c --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsZip/SG4/AsZip.h @@ -0,0 +1,86 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASZIP_ +#define _ASZIP_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef struct zipArchive +{ + /* VAR_INPUT (analog) */ + unsigned long pArchiveDevice; + unsigned long pArchiveFile; + unsigned long pSrcDevice; + unsigned long pSrcFile; + unsigned long pOptions; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} zipArchive_typ; + +typedef struct zipExtract +{ + /* VAR_INPUT (analog) */ + unsigned long pArchiveDevice; + unsigned long pArchiveFile; + unsigned long pOutDevice; + unsigned long pOutFolder; + unsigned long pOptions; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + /* VAR_INPUT (digital) */ + plcbit enable; +} zipExtract_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void zipArchive(struct zipArchive* inst); +_BUR_PUBLIC void zipExtract(struct zipExtract* inst); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define zipERR_FILE_WRITE_ERROR 38066U + #define zipERR_FILE_NOT_FOUND 38065U + #define zipERR_SPACE 38064U + #define zipERR_INTERNAL_ERROR 38063U + #define zipERR_UNSUPPORTED_EXTENSION 38062U + #define zipERR_INVALID_DEVICE 38061U + #define zipERR_NULLPOINTER 38060U +#else + _GLOBAL_CONST unsigned short zipERR_FILE_WRITE_ERROR; + _GLOBAL_CONST unsigned short zipERR_FILE_NOT_FOUND; + _GLOBAL_CONST unsigned short zipERR_SPACE; + _GLOBAL_CONST unsigned short zipERR_INTERNAL_ERROR; + _GLOBAL_CONST unsigned short zipERR_UNSUPPORTED_EXTENSION; + _GLOBAL_CONST unsigned short zipERR_INVALID_DEVICE; + _GLOBAL_CONST unsigned short zipERR_NULLPOINTER; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASZIP_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/AsZip/binary.lby b/example/AsProject/Logical/Libraries/_AS/AsZip/binary.lby new file mode 100644 index 0000000..13c8a7c --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/AsZip/binary.lby @@ -0,0 +1,12 @@ + + + + + AsZip.fun + AsZip.typ + AsZip.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/DataObj/DataObj.fun b/example/AsProject/Logical/Libraries/_AS/DataObj/DataObj.fun new file mode 100644 index 0000000..d0b653d --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/DataObj/DataObj.fun @@ -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 diff --git a/example/AsProject/Logical/Libraries/_AS/DataObj/DataObj.typ b/example/AsProject/Logical/Libraries/_AS/DataObj/DataObj.typ new file mode 100644 index 0000000..283e2d2 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/DataObj/DataObj.typ @@ -0,0 +1,14 @@ + +TYPE + +END_TYPE + + + + + + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/DataObj/DataObj.var b/example/AsProject/Logical/Libraries/_AS/DataObj/DataObj.var new file mode 100644 index 0000000..fba41f8 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/DataObj/DataObj.var @@ -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 diff --git a/example/AsProject/Logical/Libraries/_AS/DataObj/SG3/DataObj.h b/example/AsProject/Logical/Libraries/_AS/DataObj/SG3/DataObj.h new file mode 100644 index 0000000..5ca80f3 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/DataObj/SG3/DataObj.h @@ -0,0 +1,225 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _DATAOBJ_ +#define _DATAOBJ_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#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_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/DataObj/SG4/DataObj.h b/example/AsProject/Logical/Libraries/_AS/DataObj/SG4/DataObj.h new file mode 100644 index 0000000..8e4fd5a --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/DataObj/SG4/DataObj.h @@ -0,0 +1,247 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _DATAOBJ_ +#define _DATAOBJ_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#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); + + +/* 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 + _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 + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _DATAOBJ_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/DataObj/SGC/DataObj.h b/example/AsProject/Logical/Libraries/_AS/DataObj/SGC/DataObj.h new file mode 100644 index 0000000..5ca80f3 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/DataObj/SGC/DataObj.h @@ -0,0 +1,225 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _DATAOBJ_ +#define _DATAOBJ_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#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_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/DataObj/binary.lby b/example/AsProject/Logical/Libraries/_AS/DataObj/binary.lby new file mode 100644 index 0000000..a39dae4 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/DataObj/binary.lby @@ -0,0 +1,12 @@ + + + + + DataObj.fun + DataObj.typ + DataObj.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/FileIO/FileIO.fun b/example/AsProject/Logical/Libraries/_AS/FileIO/FileIO.fun new file mode 100644 index 0000000..21b1d7b --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/FileIO/FileIO.fun @@ -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 diff --git a/example/AsProject/Logical/Libraries/_AS/FileIO/FileIO.typ b/example/AsProject/Logical/Libraries/_AS/FileIO/FileIO.typ new file mode 100644 index 0000000..5fa26eb --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/FileIO/FileIO.typ @@ -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 diff --git a/example/AsProject/Logical/Libraries/_AS/FileIO/FileIO.var b/example/AsProject/Logical/Libraries/_AS/FileIO/FileIO.var new file mode 100644 index 0000000..8b251f1 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/FileIO/FileIO.var @@ -0,0 +1,86 @@ + +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 file 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_NETIO_PARAMETERS : UINT := 20736; (*error invalid parameters to establish a connection*) + fiERR_NETIO_INIT : UINT := 20737; (*error network file system initialization failed*) + + 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 diff --git a/example/AsProject/Logical/Libraries/_AS/FileIO/SG4/FileIO.h b/example/AsProject/Logical/Libraries/_AS/FileIO/SG4/FileIO.h new file mode 100644 index 0000000..b4bb045 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/FileIO/SG4/FileIO.h @@ -0,0 +1,709 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _FILEIO_ +#define _FILEIO_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#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); + + +/* 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_NETIO_INIT 20737U + #define fiERR_NETIO_PARAMETERS 20736U + #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 + _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_NETIO_INIT; + _GLOBAL_CONST unsigned short fiERR_NETIO_PARAMETERS; + _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 + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _FILEIO_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/FileIO/binary.lby b/example/AsProject/Logical/Libraries/_AS/FileIO/binary.lby new file mode 100644 index 0000000..755ebf2 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/FileIO/binary.lby @@ -0,0 +1,12 @@ + + + + + FileIO.fun + FileIO.typ + FileIO.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/LoopConR/Binary.lby b/example/AsProject/Logical/Libraries/_AS/LoopConR/Binary.lby new file mode 100644 index 0000000..fc24af3 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/LoopConR/Binary.lby @@ -0,0 +1,13 @@ + + + + + LoopConR.var + LoopConR.typ + LoopConR.fun + + + + + + \ No newline at end of file diff --git a/example/AsProject/Logical/Libraries/_AS/LoopConR/LoopConR.fun b/example/AsProject/Logical/Libraries/_AS/LoopConR/LoopConR.fun new file mode 100644 index 0000000..3e0e77a --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/LoopConR/LoopConR.fun @@ -0,0 +1,798 @@ + +{REDUND_OK} FUNCTION_BLOCK LCRPID (* PID controller. *) + VAR_INPUT + enable : BOOL; + ident : {REDUND_UNREPLICABLE} UDINT; + W : REAL; + X : REAL; + Y_max : REAL; + Y_min : REAL; + A : REAL; + Y_man : REAL; + Y_fbk : REAL; + hold_I : BOOL; + mode : USINT; + END_VAR + VAR_OUTPUT + status : UINT; + e : REAL; + Y : REAL; + Yp : REAL; + Yi : REAL; + Yd : REAL; + END_VAR + VAR + Set_Yi : BOOL; + Yi_set : REAL; + force_Yi : BOOL; + Yi_min : REAL; + Yi_max : REAL; + joltFreeDoneLowerLim : BOOL; + joltFreeDoneUpperLim : BOOL; + Yi_minInternal : REAL; + Yi_maxInternal : REAL; + Tv_Tf_old : REAL; + enable_old : BOOL; + e_old : REAL; + deadband_state : UINT; + sysinfo_inst : {REDUND_UNREPLICABLE} SysInfo; + scal_inst : LCRScal; + store1 : {REDUND_UNREPLICABLE} UDINT; + store2 : {REDUND_UNREPLICABLE} UDINT; + timeCnt : {REDUND_UNREPLICABLE} UDINT; + musecs_old : {REDUND_UNREPLICABLE} UINT; + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK LCRScal (* Scaling of REAL signals. *) + VAR_INPUT + x : REAL; + x1 : REAL; + y1 : REAL; + x2 : REAL; + y2 : REAL; + END_VAR + VAR_OUTPUT + y : REAL; + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK LCRCurveByPoints (* y=f(x) function using coordinates. *) + VAR_INPUT + x : REAL; + NoOfPoints : UINT; + ptr_table : REFERENCE TO lcrCurveByPoints_TabEntry_type; + END_VAR + VAR_OUTPUT + status : UINT; + y : REAL; + END_VAR + VAR + i_tab : INT; + iterations : UINT; + scal1 : LCRScal; + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK LCRPIDpara (* Manual configuration of the PID controller. *) + VAR_INPUT + enable : BOOL; + enter : BOOL; + WX_max : REAL; + WX_min : REAL; + invert : BOOL; + deadband : REAL; + deadband_mode : USINT; + dY_max : REAL; + Kp : REAL; + Tn : REAL; + Tv : REAL; + Tf : REAL; + Kw : REAL; + Kfbk : REAL; + fbk_mode : USINT; + d_mode : USINT; + END_VAR + VAR_OUTPUT + status : UINT; + ident : {REDUND_UNREPLICABLE} UDINT; + END_VAR + VAR + internal_data : lcrpid_internal_typ; + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK LCRContinServo (* Control of a continuous servo drive without position feedback. *) + VAR_INPUT + enable : BOOL; + x : REAL; + max_value : REAL; + min_value : REAL; + t_impulse : REAL; + t_change_up : REAL; + t_change_down : REAL; + ref : BOOL; + END_VAR + VAR_OUTPUT + status : UINT; + up : BOOL; + down : BOOL; + hysteresis_up : REAL; + hysteresis_down : REAL; + refOk : BOOL; + END_VAR + VAR + enable_old : BOOL; + counter_state : UINT; + bootkey_old : {REDUND_UNREPLICABLE} UDINT; + systicks_old : {REDUND_UNREPLICABLE} UDINT; + musecs_old : {REDUND_UNREPLICABLE} UINT; + ref_old : BOOL; + t_cnt_1 : DINT; + t_cnt_2 : DINT; + y_dbl_1 : DINT; + y_dbl_2 : DINT; + sysInfo_inst : {REDUND_UNREPLICABLE} SysInfo; + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK LCRPT1 (* First-order delay element, see LCRPT1e(). *) + VAR_INPUT + enable : BOOL; + x : REAL; + t : REAL; + y_set : REAL; + set : BOOL; + END_VAR + VAR_OUTPUT + status : UINT; + y : REAL; + END_VAR + VAR + counter_state : UINT; + bootkey_old : {REDUND_UNREPLICABLE} UDINT; + systicks_old : {REDUND_UNREPLICABLE} UDINT; + musecs_old : {REDUND_UNREPLICABLE} UINT; + y_dbl_1 : DINT; + y_dbl_2 : DINT; + sysinfo_inst : {REDUND_UNREPLICABLE} SysInfo; + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK LCRRamp (* Ramp generator. *) + VAR_INPUT + enable : BOOL; + x : REAL; + dy_up : REAL; + dy_down : REAL; + y_max : REAL; + y_min : REAL; + y_set : REAL; + set : BOOL; + END_VAR + VAR_OUTPUT + status : UINT; + y : REAL; + x_reached : BOOL; + max_limit : BOOL; + min_limit : BOOL; + END_VAR + VAR + y_dbl_1 : DINT; + y_dbl_2 : DINT; + timestore1 : UDINT; + timestore2 : UDINT; + getDtForceOff : UDINT; + sysinfo_inst : {REDUND_UNREPLICABLE} SysInfo; + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK LCRIntegrate (* Integrator with limits and set value. *) + VAR_INPUT + enable : BOOL; + x : REAL; + tn : REAL; + y_max : REAL; + y_min : REAL; + y_set : REAL; + set : BOOL; + END_VAR + VAR_OUTPUT + status : UINT; + y : REAL; + max_limit : BOOL; + min_limit : BOOL; + END_VAR + VAR + counter_state : UINT; + bootkey_old : {REDUND_UNREPLICABLE} UDINT; + systicks_old : {REDUND_UNREPLICABLE} UDINT; + musecs_old : {REDUND_UNREPLICABLE} UINT; + y_dbl_1 : DINT; + y_dbl_2 : DINT; + sysinfo_inst : {REDUND_UNREPLICABLE} SysInfo; + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK LCRLimit (* Limiter with overrun indicators. *) + VAR_INPUT + in : REAL; + max_value : DINT; + min_value : DINT; + END_VAR + VAR_OUTPUT + status : UINT; + out : DINT; + max_limit : BOOL; + min_limit : BOOL; + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK LCRLimScal (* Scaling and limiting of REAL signals. *) + VAR_INPUT + x : REAL; + x1 : REAL; + y1 : REAL; + x2 : REAL; + y2 : REAL; + END_VAR + VAR_OUTPUT + y : REAL; + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK LCRPWM (* Pulse width modulator (can also be used as pulse frequency modulator). *) + VAR_INPUT + enable : BOOL; + x : REAL; + max_value : REAL; + min_value : REAL; + t_min_pulse : REAL; + t_period : REAL; + END_VAR + VAR_OUTPUT + status : UINT; + pulse : BOOL; + t_on : REAL; + t_off : REAL; + END_VAR + VAR + cnt_terron_1 : DINT; + cnt_terron_2 : DINT; + cnt_terroff_1 : DINT; + cnt_terroff_2 : DINT; + cnt_t_pulse_1 : DINT; + cnt_t_pulse_2 : DINT; + store1 : UDINT; + store2 : UDINT; + timeCnt : UDINT; + sysinfo_inst : SysInfo; + corr : BOOL; + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK LCRMovAvgFlt (* Floating average value filter. *) + VAR_INPUT + enable : BOOL; + x : REAL; + base : UINT; + END_VAR + VAR_OUTPUT + status : UINT; + y : REAL; + END_VAR + VAR + sum_old_dbl_1 : DINT; + sum_old_dbl_2 : DINT; + p_xold : {REDUND_UNREPLICABLE} UDINT; + i_xold : UINT; + base_old : {REDUND_UNREPLICABLE} UINT; + enable_old : {REDUND_UNREPLICABLE} BOOL; + bootkey_old : {REDUND_UNREPLICABLE} UDINT; + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK LCRTimeBasedOnOff (* 3-position step output, see LCRContinServo(). *) + VAR_INPUT + enable : BOOL; + x : REAL; + max_value : REAL; + min_value : REAL; + timpulse : REAL; + tchange_up : REAL; + tchange_down : REAL; + ref : BOOL; + END_VAR + VAR_OUTPUT + status : UINT; + up : BOOL; + down : BOOL; + hysteresis_up : REAL; + hysteresis_down : REAL; + refOk : BOOL; + END_VAR + VAR + enable_old : BOOL; + counter_state : UINT; + bootkey_old : UDINT; + systicks_old : UDINT; + musecs_old : UINT; + ref_old : BOOL; + t_cnt_1 : DINT; + t_cnt_2 : DINT; + y_dbl_1 : DINT; + y_dbl_2 : DINT; + sysInfo_inst : SysInfo; + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK LCRDifferentiate (* Differentiator with filter. *) + VAR_INPUT + enable : BOOL; + x : REAL; + tv : REAL; + tf : REAL; + END_VAR + VAR_OUTPUT + status : UINT; + y : REAL; + END_VAR + VAR + store1 : {REDUND_UNREPLICABLE} UDINT; + store2 : {REDUND_UNREPLICABLE} UDINT; + timeCnt : {REDUND_UNREPLICABLE} UDINT; + counter_state : UINT; + bootkey_old : {REDUND_UNREPLICABLE} UDINT; + systicks_old : {REDUND_UNREPLICABLE} UDINT; + musecs_old : {REDUND_UNREPLICABLE} UINT; + sysinfo_inst : {REDUND_UNREPLICABLE} SysInfo; + a11 : DINT; + a12 : DINT; + a21 : DINT; + a22 : DINT; + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK LCRSlimPID (* PID controller with integrated tuning. *) + VAR_INPUT + enable : BOOL; + W : REAL; + X : REAL; + request : UDINT; + pPar : REFERENCE TO lcrslimpid_par_typ; + END_VAR + VAR_OUTPUT + e : REAL; + Y : REAL; + status : UINT; + addInfo : UINT; + END_VAR + VAR + MovAvgFlt_inst : LCRMovAvgFlt; + PIDTune_inst : LCRPIDTune; + PID_inst : LCRPID; + enable_old : BOOL; + requ_old : UDINT; + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK LCRPIDTune (* Automatically determines the control parameters for an LCRPID() instance with different methods. *) + VAR_INPUT + enable : BOOL; + Y_min : REAL; + Y_max : REAL; + Y0 : REAL; + Y1 : REAL; + okToStep : BOOL; + X0 : REAL; + X_min : REAL; + X_max : REAL; + P_manualAdjust : INT; + I_manualAdjust : INT; + D_manualAdjust : INT; + request : UDINT; + pAddPar : REFERENCE TO lcrpid_tune_addpar_typ; + pOptions_osc : REFERENCE TO lcrpid_tune_osc_options_typ; + pOptions_step : REFERENCE TO lcrpid_tune_step_options_typ; + END_VAR + VAR_OUTPUT + status : UINT; + addInfo : UINT; + ident : UDINT; + state : UINT; + rdyToStep : BOOL; + END_VAR + VAR + t_autotune : REAL; + status_tmp : UINT; + counter_state : UINT; + bootkey_old : UDINT; + systicks_old : UDINT; + musecs_old : UINT; + curveDown : BOOL; + e : REAL; + e_minAmp : REAL; + e_old_up : REAL; + e_old_down : REAL; + curveUp : BOOL; + e_old : REAL; + sysinfo_inst : SysInfo; + MovAvgFlt_inst : LCRMovAvgFlt; + old : lcrpid_old_typ; + processPar : lcrpid_procPar_typ; + internal_data : lcrpid_internal_typ; + addPar : lcrpid_tune_addpar_typ; + oscillation : lcrpid_tune_osc_typ; + stepresponse : lcrpid_tune_step_typ; + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK LCRPFM (* Pulse frequency modulator. *) + VAR_INPUT + enable : BOOL; + x : REAL; + max_value : REAL; + min_value : REAL; + t_pulse : REAL; + t_pause : REAL; + END_VAR + VAR_OUTPUT + status : UINT; + pulse : BOOL; + END_VAR + VAR + area : REAL; + area_c : REAL; + range : REAL; + last : REAL; + tpls : REAL; + enable_old : BOOL; + counter_state : UINT; + bootkey_old : UDINT; + systicks_old : UDINT; + musecs_old : UINT; + sysinfo_inst : SysInfo; + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK LCRSimModExt (* Thermal simulation model of an extruder with heating zones and cooling circulation. *) + VAR_INPUT + enable : BOOL; + Tt_h : DINT; + Tt_c : DINT; + k_h : REAL; + k_c : REAL; + PT2_T1 : REAL; + PT2_T2 : REAL; + Temp_amb : REAL; + Temp_c : REAL; + Alpha_h : REAL; + Alpha_c : REAL; + END_VAR + VAR_OUTPUT + y : REAL; + status : UINT; + END_VAR + VAR + Tt_heat : LCRTt; + Tt_cool : LCRTt; + k_h_intern : REAL; + k_c_intern : REAL; + PT2 : LCRPT2; + y_c : REAL; + y_end : REAL; + y_h : REAL; + Bootkey : UDINT; + enable_old : BOOL; + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK LCRTt (* Delay time. *) + VAR_INPUT + enable : BOOL; + Tt : DINT; + x : REAL; + y_set : REAL; + set : BOOL; + END_VAR + VAR_OUTPUT + y : REAL; + status : UINT; + END_VAR + VAR + Ts : DINT; + Tt_Max : DINT; + pRingBuf : {REDUND_UNREPLICABLE} REFERENCE TO REAL; + pBuf_OutIn : {REDUND_UNREPLICABLE} REFERENCE TO REAL; + set_old : USINT; + Set_y : USINT; + enable_old : {REDUND_UNREPLICABLE} BOOL; + Bootkey : {REDUND_UNREPLICABLE} UDINT; + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK LCRPT2 (* Second-order delay element. *) + VAR_INPUT + enable : BOOL; + V : REAL; + T1 : REAL; + T2 : REAL; + x : REAL; + y_set : REAL; + set : USINT; + END_VAR + VAR_OUTPUT + y : REAL; + status : UINT; + END_VAR + VAR + x1_dbl_1 : UDINT; + x1_dbl_2 : UDINT; + x2_dbl_1 : UDINT; + x2_dbl_2 : UDINT; + Ts : DINT; + Ts_dbl_1 : UDINT; + Ts_dbl_2 : UDINT; + set_old : USINT; + Set_y : USINT; + Bootkey : {REDUND_UNREPLICABLE} UDINT; + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK LCRPT1e (* First-order delay element. *) + VAR_INPUT + enable : BOOL; + V : REAL; + T1 : REAL; + x : REAL; + y_set : REAL; + set : USINT; + END_VAR + VAR_OUTPUT + y : REAL; + status : UINT; + END_VAR + VAR + x1_dbl_1 : UDINT; + x1_dbl_2 : UDINT; + Ts : DINT; + Ts_dbl_1 : UDINT; + Ts_dbl_2 : UDINT; + set_old : USINT; + Set_y : USINT; + Bootkey : {REDUND_UNREPLICABLE} UDINT; + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK LCRDblActPID (* PID controller with two outputs for two opposing manipulated variables and integrated tuning. *) + VAR_INPUT + enable : BOOL; + W : REAL; + X : REAL; + Y_man : REAL; + hold_I : BOOL; + mode : USINT; + okToStep : BOOL; + pPar1 : REFERENCE TO lcrdblpid_par_typ; + pPar2 : REFERENCE TO lcrdblpid_par_typ; + pAddPar : REFERENCE TO lcrpid_tune_addpar_typ; + pOpt : REFERENCE TO lcrdblpid_tune_typ; + END_VAR + VAR_OUTPUT + e : REAL; + Y1 : REAL; + Y2 : REAL; + status : UINT; + tuneState : USINT; + rdyToStep : BOOL; + END_VAR + VAR + enable_old : BOOL; + pid : LCRPID; + tune : LCRPIDTune; + sysinfo_inst : SysInfo; + gradient : REAL; + Y_avg : REAL; + tcnt_1 : UDINT; + tcnt_2 : UDINT; + Tmeas : REAL; + y_lim_old : REAL; + p_fact : REAL; + bootkey_old : UDINT; + systicks_old : UDINT; + musecs_old : UINT; + use_par : USINT; + meas : USINT; + mode_old : USINT; + tune_step : USINT; + tune_grad : USINT; + tune_2nd : USINT; + invert : USINT; + counter_state : USINT; + mode_int : USINT; + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK LCRMinMax (* Smallest and largest peak value. *) + VAR_INPUT + reset : BOOL; + in : REAL; + END_VAR + VAR_OUTPUT + out_min : REAL; + out_max : REAL; + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK LCRTempPID (* PID controller especially for temperature systems. *) + VAR_INPUT + enable : BOOL; + Temp_set : REAL; + Temp : REAL; + Y_man : REAL; + mode : UDINT; + update : BOOL; + pSettings : REFERENCE TO lcrtemp_set_typ; + END_VAR + VAR_OUTPUT + y_heat : REAL; + y_cool : REAL; + status : UINT; + END_VAR + VAR + pid : LCRPID; + pid_para : LCRPIDpara; + Temp_set_delay : REAL; + Temp_set_int : REAL; + TempSetOld : REAL; + delayCnt : REAL; + delayFlag : BOOL; + enable_old : BOOL; + stateOld : SINT; + state : SINT; + a : REAL; + sysinfo_inst : SysInfo; + para_check_done : USINT; + internal_para : lcrtemp_pid_internal_typ; + dbl_dt : REAL; + tAlt : REAL; + altTime : REAL; + tKnick : REAL; + fAlt : REAL; + altActive : BOOL; + a_alt : REAL; + a_e : REAL; + a_internal : REAL; + err_flag : BOOL; + Temp_set_int_old1 : REAL; + Temp_set_int_old2 : REAL; + Temp_set_int_old3 : REAL; + mode_old : UDINT; + timestore1 : UDINT; + timestore2 : UDINT; + yManInternal : REAL; + timeCnt : UDINT; + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK LCRTempTune (* Precision tuning process especially for temperature systems. *) + VAR_INPUT + enable : BOOL; + start : BOOL; + Temp_set : REAL; + Temp : REAL; + okToHeat : BOOL; + okToFree : BOOL; + okToFreeEnd : BOOL; + okToCool : BOOL; + okToCoolEnd : BOOL; + pSettings : REFERENCE TO lcrtemp_set_typ; + END_VAR + VAR_OUTPUT + y_heat : REAL; + y_cool : REAL; + rdyToHeat : BOOL; + rdyToFree : BOOL; + rdyToFreeEnd : BOOL; + rdyToCool : BOOL; + rdyToCoolEnd : BOOL; + done : BOOL; + busy : BOOL; + status : UINT; + END_VAR + VAR + enable_old : BOOL; + pid : LCRPID; + pid_para : LCRPIDpara; + DT2 : LCRDifferentiate; + pt2 : LCRPT2o; + Temp_flt : REAL; + step : UINT; + t : REAL; + Temp_start : REAL; + mem00 : REAL; + cnt02 : REAL; + cnt33 : REAL; + cnt20 : REAL; + pem01 : REAL; + pem33 : REAL; + pem10 : REAL; + pem02 : REAL; + pem44 : REAL; + pem20 : REAL; + tol01 : REAL; + tol10 : REAL; + tol02 : REAL; + tol20 : REAL; + tol22 : REAL; + Temp_old : REAL; + delta_Temp : REAL; + tcnt_1 : UDINT; + tcnt_2 : UDINT; + tcnt_dT_1 : UDINT; + tcnt_dT_2 : UDINT; + sysinfo_inst : SysInfo; + Temp_set_internal : REAL; + timecounter : REAL; + internal_para : lcrtemp_tune_internal_typ; + dbl_dt : REAL; + call_counter : UDINT; + store1 : UDINT; + store2 : UDINT; + timeCnt : UDINT; + timer2 : REAL; + waitCounter : UINT; + Y_heat_tune_intern : REAL; + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK LCRPT2o (* Oscillating 2nd order delay element. *) + VAR_INPUT + enable : BOOL; + V : REAL; + D : REAL; + Tf : REAL; + u : REAL; + Set_y : USINT; + y_set : REAL; + END_VAR + VAR_OUTPUT + y : REAL; + status : UINT; + END_VAR + VAR + Internal : lcrpt2o_Internal_typ; + END_VAR +END_FUNCTION_BLOCK + +FUNCTION_BLOCK LCRSchedulePWM (* Pulse width modulator for n inputs with a specified power limitation. *) + VAR_INPUT + enable : BOOL; + Pmax : REAL; + n : UINT; + pPar : UDINT; + min_value : REAL; + max_value : REAL; + t_min_pulse : REAL; + t_period : REAL; + END_VAR + VAR_OUTPUT + status : UINT; + END_VAR + VAR + sysinfo_inst : SysInfo; + store1 : UDINT; + store2 : UDINT; + timeCnt : UDINT; + numberUnits : UINT; + limFact : UINT; + enable_old : BOOL; + cmd_delay : BOOL; + err_flag : BOOL; + limAll : BOOL; + Pact : REAL; + Pman : REAL; + intern0 : ARRAY[0..5] OF REAL; + in : REFERENCE TO lcrschedule_par_typ; + END_VAR +END_FUNCTION_BLOCK diff --git a/example/AsProject/Logical/Libraries/_AS/LoopConR/LoopConR.typ b/example/AsProject/Logical/Libraries/_AS/LoopConR/LoopConR.typ new file mode 100644 index 0000000..4811469 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/LoopConR/LoopConR.typ @@ -0,0 +1,400 @@ + +TYPE + lcrCurveByPoints_TabEntry_type : STRUCT + x : REAL; + y : REAL; + END_STRUCT; + lcrdblpid_par_typ : STRUCT + Y_max : REAL; + Y_min : REAL; + K_fact : INT; + Kp : REAL; + Tn : REAL; + Tv : REAL; + END_STRUCT; + lcrdblpid_tune_typ : STRUCT + P1_manualAdjust : INT; + I1_manualAdjust : INT; + D1_manualAdjust : INT; + P2_manualAdjust : INT; + I2_manualAdjust : INT; + D2_manualAdjust : INT; + X_min : REAL; + X_max : REAL; + X0 : REAL; + de_min : REAL; + Y0 : REAL; + Y1step : REAL; + Y2step : REAL; + tuneY1_opt : UDINT; + tuneY2_opt : UDINT; + tune_first : USINT; + hyst : REAL; + measDelta : REAL; + osc_opt : lcrpid_tune_osc_options_typ; + step_opt : lcrpid_tune_step_options_typ; + END_STRUCT; + lcrpid_internal_typ : {REDUND_REPLICABLE} STRUCT + size : UINT; + valid : BOOL; + WX_max : REAL; + WX_min : REAL; + invert : BOOL; + deadband : REAL; + deadband_mode : USINT; + dY_max : REAL; + Kp : REAL; + Kp_Tn : REAL; + Tv_Tf : REAL; + Tf_reciproc : REAL; + Kw : REAL; + Kfbk_Kp : REAL; + Kfbk_Kp_max : REAL; + fbk_mode : USINT; + d_mode : USINT; + force_mode : USINT; + Y_force : REAL; + W : REAL; + X : REAL; + pid_init : USINT; + Yp1 : DINT; + Yp2 : DINT; + dYi1 : DINT; + dYi2 : DINT; + Yi1 : DINT; + Yi2 : DINT; + dt_Tf : REAL; + a11 : DINT; + a12 : DINT; + a21 : DINT; + a22 : DINT; + Yd1 : DINT; + Yd2 : DINT; + Ytotal1 : DINT; + Ytotal2 : DINT; + Ylim1 : DINT; + Ylim2 : DINT; + Y1 : DINT; + Y2 : DINT; + deltaY_fbk : REAL; + e_fbk : REAL; + END_STRUCT; + lcrpid_old_typ : STRUCT + processPar : lcrpid_procPar_typ; + P_manualAdjust : INT; + I_manualAdjust : INT; + D_manualAdjust : INT; + Y_min : REAL; + Y_max : REAL; + dY_max : REAL; + Tf_Tv : REAL; + Kw : REAL; + Kfbk : REAL; + deadband : REAL; + W : REAL; + request : UDINT; + fbk_mode : USINT; + d_mode : USINT; + invert : BOOL; + enable : BOOL; + END_STRUCT; + lcrpid_osc_per_typ : STRUCT + max : lcrpid_osc_val_typ; + min : lcrpid_osc_val_typ; + END_STRUCT; + lcrpid_osc_val_typ : STRUCT + X : REAL; + t : REAL; + END_STRUCT; + lcrpid_procPar_typ : STRUCT + size : UINT; + valid : BOOL; + stepResp_valid : BOOL; + stepResp_v : REAL; + stepResp_t_u : REAL; + stepResp_t_g : REAL; + osc_valid : BOOL; + osc_amplitudeRatio : REAL; + osc_tPeriod : REAL; + force_params : BOOL; + Kp : REAL; + Kp_tune : REAL; + Tn : REAL; + Tn_tune : REAL; + Tv : REAL; + Tv_tune : REAL; + END_STRUCT; + lcrpid_tune_addpar_typ : STRUCT + t_max_tune : REAL; + WX_min : REAL; + WX_max : REAL; + dY_max : REAL; + Tf_Tv : REAL; + Kw : REAL; + Kfbk : REAL; + fbk_mode : USINT; + d_mode : USINT; + deadband : REAL; + deadband_mode : USINT; + invert : BOOL; + END_STRUCT; + lcrpid_tune_osc_options_typ : STRUCT + osc_minAmplitude : REAL; + Q_min : REAL; + END_STRUCT; + lcrpid_tune_osc_typ : STRUCT + options : lcrpid_tune_osc_options_typ; + oscPhase : UINT; + dir : SINT; + enHi : BOOL; + enLo : BOOL; + Y_hi : REAL; + Y_lo : REAL; + i_maxPeriod : UINT; + i_period : UINT; + X_ampl : REAL; + X_avg : REAL; + X_min_avg : REAL; + X_max_avg : REAL; + Y_avg : REAL; + deltaY : REAL; + t_Ylohi : ARRAY[0..4] OF REAL; + t_Yhilo : ARRAY[0..4] OF REAL; + Q_act : REAL; + a_wx : REAL; + amplitudeRatio : REAL; + Ku : REAL; + tPeriod : REAL; + period : ARRAY[0..4] OF lcrpid_osc_per_typ; + END_STRUCT; + lcrpid_tune_step_options_typ : STRUCT + eqDeltaX : REAL; + eqDeltaWX : REAL; + eqDeltat : REAL; + evalDeltaX : REAL; + evalNfilter : UINT; + exitNotMaxdXCount : UINT; + exitdXRatio : REAL; + END_STRUCT; + lcrpid_tune_step_typ : STRUCT + options : lcrpid_tune_step_options_typ; + Y0 : REAL; + Y1 : REAL; + t_jump : REAL; + W : REAL; + X0 : REAL; + Xmax : REAL; + Xmin : REAL; + Xfiltered : REAL; + deltaXok : BOOL; + deltaWXok : BOOL; + eqTime : REAL; + dir : SINT; + deltaX : REAL; + X1 : REAL; + t1 : REAL; + t1set : BOOL; + dX_dt : REAL; + dX_dt_max : REAL; + XmaxGrad : REAL; + maxX1 : REAL; + maxX2 : REAL; + maxt1 : REAL; + maxt2 : REAL; + tmaxGrad : REAL; + gainFactor : REAL; + deadTime : REAL; + riseTime : REAL; + notMaxCount : UINT; + gradientRatio : REAL; + END_STRUCT; + lcrpt2o_Internal_typ : STRUCT + Ts : DINT; + Ts_dbl_1 : UDINT; + Ts_dbl_2 : UDINT; + V_old : REAL; + D_old : REAL; + Tf_old : REAL; + Set_y_old : USINT; + Set_y_2 : USINT; + x1_dbl_1 : UDINT; + x1_dbl_2 : UDINT; + x2_dbl_1 : UDINT; + x2_dbl_2 : UDINT; + Sqrt_D_1_dbl_1 : UDINT; + Sqrt_D_1_dbl_2 : UDINT; + Ts_Tf_dbl_1 : UDINT; + Ts_Tf_dbl_2 : UDINT; + Exp_D_Ts_Tf_dbl_1 : UDINT; + Exp_D_Ts_Tf_dbl_2 : UDINT; + a0_dbl_1 : UDINT; + a0_dbl_2 : UDINT; + a1_dbl_1 : UDINT; + a1_dbl_2 : UDINT; + b0_dbl_1 : UDINT; + b0_dbl_2 : UDINT; + b1_dbl_1 : UDINT; + b1_dbl_2 : UDINT; + Bootkey : {REDUND_UNREPLICABLE} UDINT; + END_STRUCT; + lcrschedule_add_typ : STRUCT + periodTime : REAL; + onTime : REAL; + t_on_intern : REAL; + bcOnTime : REAL; + sortIndex : UINT; + fbkPWM : LCRPWM; + flagDelay : BOOL; + END_STRUCT; + lcrschedule_par_typ : STRUCT + P : REAL; + X : REAL; + pulse : BOOL; + Pout : REAL; + lim : BOOL; + Internal : lcrschedule_add_typ; + END_STRUCT; + lcrslimpid_par_typ : STRUCT + Y_max : REAL; + Y_min : REAL; + Kp : REAL; + Tn : REAL; + Tv : REAL; + Kfbk : REAL; + END_STRUCT; + lcrtemp_add_typ : STRUCT + mem01 : REAL; + mem02 : REAL; + mem10 : REAL; + mem20 : REAL; + exp_mem : REAL; + cnt01 : REAL; + cnt02 : REAL; + cnt10 : REAL; + cnt20 : REAL; + cnt03 : REAL; + cnt30 : REAL; + cnt00 : REAL; + t_ignore_dT_heat : REAL; + t_ignore_dT_free : REAL; + t_ignore_dT_cool : REAL; + yMin : REAL; + yMax : REAL; + reserved3 : UDINT; + reserved4 : UDINT; + reserved5 : BOOL; + reserved6 : BOOL; + END_STRUCT; + lcrtemp_pid_internal_typ : STRUCT + enable_cooling : BOOL; + disable_heating : BOOL; + hyst : REAL; + delay : REAL; + Kw : REAL; + Kfbk : REAL; + Kp_h : REAL; + Tn_h : REAL; + Tv_h : REAL; + Kp_c : REAL; + Tn_c : REAL; + Tv_c : REAL; + dynGeneral : REAL; + dynHeat : REAL; + dynCool : REAL; + mem01 : REAL; + mem02 : REAL; + mem10 : REAL; + mem20 : REAL; + exp_mem : REAL; + yMin : REAL; + yMax : REAL; + END_STRUCT; + lcrtemp_pid_opt_typ : STRUCT + Kp_h : REAL; + Tn_h : REAL; + Tv_h : REAL; + Tf_h : REAL; + Kp_c : REAL; + Tn_c : REAL; + Tv_c : REAL; + Tf_c : REAL; + dynGeneral : REAL; + dynHeat : REAL; + dynCool : REAL; + END_STRUCT; + lcrtemp_pid_set_typ : STRUCT + hyst : REAL; + hyst_mode : USINT; + delay : REAL; + Kw : REAL; + Kfbk : REAL; + END_STRUCT; + lcrtemp_set_typ : STRUCT + enable_cooling : BOOL; + disable_heating : BOOL; + PIDpara : lcrtemp_pid_opt_typ; + TuneSet : lcrtemp_tune_set_typ; + PIDSet : lcrtemp_pid_set_typ; + Internal : lcrtemp_add_typ; + END_STRUCT; + lcrtemp_tune_internal_typ : STRUCT + cool_tuning : BOOL; + disable_heating : BOOL; + mode : UDINT; + Temp_amb : REAL; + dRatio_heat : REAL; + cnt_tp_heat : REAL; + delta_T_heat : REAL; + dT_min_heat : REAL; + dRatio_free : REAL; + cnt_tp_free : REAL; + delta_T_free : REAL; + dT_min_free : REAL; + dRatio_cool : REAL; + cnt_tp_cool : REAL; + delta_T_cool : REAL; + dT_min_cool : REAL; + delta_T_sync_heat : REAL; + delta_dT_sync_heat : REAL; + cnt_wait_heat : REAL; + delta_T_sync_free : REAL; + delta_dT_sync_free : REAL; + cnt_wait_free : REAL; + delta_T_sync_cool : REAL; + delta_dT_sync_cool : REAL; + cnt_wait_cool : REAL; + filter_base_T : REAL; + t_ignore_dT_heat : REAL; + t_ignore_dT_free : REAL; + t_ignore_dT_cool : REAL; + delta_T_sync_stop : REAL; + END_STRUCT; + lcrtemp_tune_set_typ : STRUCT + mode : UDINT; + Temp_amb : REAL; + dRatio_heat : REAL; + cnt_tp_heat : REAL; + delta_T_heat : REAL; + dT_min_heat : REAL; + dRatio_free : REAL; + cnt_tp_free : REAL; + delta_T_free : REAL; + dT_min_free : REAL; + dRatio_cool : REAL; + cnt_tp_cool : REAL; + delta_T_cool : REAL; + dT_min_cool : REAL; + delta_T_sync_heat : REAL; + delta_dT_sync_heat : REAL; + cnt_wait_heat : REAL; + delta_T_sync_free : REAL; + delta_dT_sync_free : REAL; + cnt_wait_free : REAL; + delta_T_sync_cool : REAL; + delta_dT_sync_cool : REAL; + cnt_wait_cool : REAL; + filter_base_T : REAL; + delta_T_sync_stop : REAL; + Y_heat_tune : REAL; + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/LoopConR/LoopConR.var b/example/AsProject/Logical/Libraries/_AS/LoopConR/LoopConR.var new file mode 100644 index 0000000..172031a --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/LoopConR/LoopConR.var @@ -0,0 +1,192 @@ +VAR CONSTANT + LCRPID_DEADBAND_MODE_ZERO : USINT := 0; + LCRTEMP_HEAT : USINT := 0; + LCRPID_MODE_OFF : USINT := 0; + LCRPID_TUNE_STATE_READY : UINT := 0; + LCRSLIMPID_REQU_OFF : UDINT := 0; + LCRTEMP_PT1 : USINT := 0; + LCRTEMPTune_MODE_DEF : UDINT := 0; + LCRDBLPID_TSTATE_OFF : USINT := 0; + LCRPID_TUNE_REQU_OFF : UDINT := 0; + LCRTEMPTune_MODE_EXP : UDINT := 1; + LCRPID_MODE_AUTO : USINT := 1; + LCRPID_D_MODE_X : USINT := 1; + LCRPID_DEADBAND_MODE_STANDARD : USINT := 1; + LCRPID_FBK_MODE_INTERN : USINT := 1; + LCRDBLPID_TSTATE_Y1 : USINT := 1; + LCRPID_TUNE_REQU_OSCILLATE : UDINT := 1; + LCRTEMPPID_MODE_AUTO : UDINT := 1; + LCRTEMP_HYST_MODE_JOLTFREE : USINT := 1; + LCRTEMP_PT2 : USINT := 1; + LCRTEMP_COOL : USINT := 1; + LCRSLIMPID_REQU_OSCILLATE : UDINT := 1; + LCRPID_DEADBAND_MODE_STANDARD_I : USINT := 2; + LCRTEMPPID_MODE_MAN : UDINT := 2; + LCRDBLPID_TSTATE_Y2 : USINT := 2; + LCRPID_D_MODE_E : USINT := 2; + LCRSLIMPID_REQU_STEPRESPONSE : UDINT := 2; + LCRPID_MODE_MAN : USINT := 2; + LCRPID_FBK_MODE_EXTERN : USINT := 2; + LCRPID_TUNE_REQU_STEPRESPONSE : UDINT := 2; + LCRPID_MODE_OPEN : USINT := 3; + LCRDBLPID_TSTATE_FINISHED : USINT := 3; + LCRSLIMPID_REQU_READ_PARAS : UDINT := 3; + LCRPID_FBK_MODE_EXT_SELECTOR : USINT := 3; + LCRDBLPID_TSTATE_ERROR : USINT := 4; + LCRPID_FBK_MODE_LIMIT_YI : USINT := 4; + LCRPID_MODE_CLOSE : USINT := 4; + LCRSLIMPID_REQU_WRITE_PARAS : UDINT := 4; + LCRTEMP_STEP_WAIT : UINT := 5; + LCRPID_MODE_FREEZE : USINT := 5; + LCRPID_FBK_MODE_SET_YI : USINT := 5; + LCRDBLPID_MODE_TUNE_4 : USINT := 6; + LCRDBLPID_MODE_TUNE_6 : USINT := 7; + LCRDBLPID_MODE_TUNE_Y1 : USINT := 8; + LCRDBLPID_MODE_TUNE_Y2 : USINT := 9; + LCRPID_TUNE_REQU_DIR_POS : UDINT := 10; + LCRPID_TUNE_STATE_OSCILLATE : UINT := 10; + LCRSLIMPID_REQU_DIR_POS : UDINT := 10; + LCRTEMP_STEP_WAIT_HEAT : UINT := 10; + LCRPID_TUNE_STATE_OSC_SEQ_CNTL : UINT := 11; + LCRPID_TUNE_STATE_OSC_PERFORM_1 : UINT := 12; + LCRPID_TUNE_STATE_OSC_PERFORM_2 : UINT := 13; + LCRPID_TUNE_STATE_OSC_CNTLPAR : UINT := 19; + LCRPID_TUNE_REQU_DIR_NEG : UDINT := 20; + LCRPID_TUNE_STATE_STEP_WAITEQ1 : UINT := 20; + LCRTEMP_STEP_START_HEAT : UINT := 20; + LCRSLIMPID_REQU_DIR_NEG : UDINT := 20; + LCRPID_TUNE_STATE_STEP_MAXGRAD : UINT := 21; + LCRPID_TUNE_STATE_STEP_WAITEQ2 : UINT := 22; + LCRTEMP_STEP_HEAT : UINT := 30; + LCRTEMP_STEP_PID_FREE : UINT := 40; + LCRPID_TUNE_STATE_CALC_PARA : UINT := 45; + LCRPID_TUNE_STATE_RESET_CNTL : UINT := 49; + LCRPID_TUNE_STATE_FINISHED : UINT := 50; + LCRTEMP_STEP_WAIT_FREE : UINT := 50; + LCRTEMP_STEP_START_FREE : UINT := 60; + LCRTEMP_STEP_FREE : UINT := 70; + LCRTEMP_STEP_PID : UINT := 80; + LCRTEMP_STEP_PID_COOL : UINT := 90; + LCRSLIMPID_REQU_PID : UDINT := 100; + LCRPID_TUNE_REQU_PID : UDINT := 100; + LCRTEMP_STEP_WAIT_COOL : UINT := 100; + LCRPID_MODE_MAN_JOLTFREE : USINT := 102; + LCRPID_MODE_OPEN_JOLTFREE : USINT := 103; + LCRPID_MODE_CLOSE_JOLTFREE : USINT := 104; + LCRPID_MODE_FREEZE_JOLTFREE : USINT := 105; + LCRTEMP_STEP_WAIT_COOLONLY : UINT := 105; + LCRTEMP_STEP_START_COOL : UINT := 110; + LCRPID_TUNE_ADDINFO_OSC_PERIOD : UINT := 111; + LCRTEMP_STEP_COOL : UINT := 120; + LCRTEMP_STEP_PID_DONE_COOLONLY : UINT := 122; + LCRTEMP_STEP_PID_DONE : UINT := 125; + LCRTEMP_STEP_DONE : UINT := 130; + LCRPID_TUNE_REQU_PI : UDINT := 200; + LCRSLIMPID_REQU_PI : UDINT := 200; + LCRPID_TUNE_REQU_P : UDINT := 300; + LCRSLIMPID_REQU_P : UDINT := 300; + LCRSLIMPID_REQU_CHR_DIST_AP : UDINT := 1000; + LCRPID_TUNE_REQU_CHR_DIST_AP : UDINT := 1000; + LCRSLIMPID_REQU_CHR_DIST_OS : UDINT := 2000; + LCRPID_TUNE_REQU_CHR_DIST_OS : UDINT := 2000; + LCRSLIMPID_REQU_ZN_DIST : UDINT := 3000; + LCRPID_TUNE_REQU_ZN_DIST : UDINT := 3000; + LCRPID_TUNE_REQU_CHR_REF_AP : UDINT := 4000; + LCRSLIMPID_REQU_CHR_REF_AP : UDINT := 4000; + LCRPID_TUNE_REQU_CHR_REF_OS : UDINT := 5000; + LCRSLIMPID_REQU_CHR_REF_OS : UDINT := 5000; + LCRPID_TUNE_REQU_OSC_1 : UDINT := 10000; + LCRSLIMPID_REQU_OSC_1 : UDINT := 10000; + LCR_WARN_LCRPID_I_MAXLIMIT : UINT := 12001; + LCR_WARN_LCRPID_I_MINLIMIT : UINT := 12002; + LCR_WARN_LCRPID_YFBK_LIMIT : UINT := 12003; + LCR_WARN_LCRPIDTune_CYCLETIME : UINT := 12004; + LCR_WARN_LCRPT12_T1_ZERO : UINT := 12005; + LCR_WARN_Tx_DT : UINT := 12007; + LCR_WARN_LCRPID_A_LIMIT : UINT := 12008; + LCR_WARN_LCRPID_YMAN_LIMIT : UINT := 12009; + LCR_WARN_LCRPT12_T1_TS : UINT := 12010; + LCR_WARN_LCRPT12_T1_INT : UINT := 12011; + LCR_WARN_LCRPT12_T2_ZERO : UINT := 12012; + LCR_WARN_LCRPT12_T2_TS : UINT := 12013; + LCR_WARN_LCRPT12_T2_INT : UINT := 12014; + LCR_WARN_LCRTT_TT_ZERO : UINT := 12015; + LCR_WARN_LCRTT_TT_TS : UINT := 12016; + LCR_WARN_LCRTT_TT_INT : UINT := 12017; + LCR_WARN_LCRTT_MEM : UINT := 12018; + LCR_WARN_LCRDBLPID_TUNE_CHANGE : UINT := 12019; + LCR_WARN_LCRTEMPTune_HEAT_TP : UINT := 12021; + LCR_WARN_LCRTEMPTune_WR_PARA : UINT := 12022; + LCR_WARN_LCRTEMPTune_WR_BASE : UINT := 12023; + LCR_WARN_LCRTEMPPID_WR_PARA : UINT := 12024; + LCR_ERR_LCRPID_PAR_KFBK : UINT := 12025; + LCR_ERROR : UINT := 12025; + LCR_ERR_LCRPID_PAR_KP : UINT := 12026; + LCR_ERR_LCRPID_PAR_KW : UINT := 12027; + LCR_ERR_LCRPID_PAR_TF : UINT := 12028; + LCR_ERR_LCRPID_PAR_TN : UINT := 12029; + LCR_ERR_LCRPID_PAR_TV : UINT := 12030; + LCR_ERR_LCRPT1_T : UINT := 12031; + LCR_ERR_LCRPWM_TMINPULSE : UINT := 12032; + LCR_ERR_LCRPWM_TPULSE : UINT := 12033; + LCR_ERR_LCRPWM_TPERIOD : UINT := 12033; + LCR_ERR_LCRRamp_DYUP_DYDOWN : UINT := 12034; + LCR_ERR_LCRContinServo_TCHANGE : UINT := 12035; + LCR_ERR_LCRContinServo_TIMPULSE : UINT := 12036; + LCR_ERR_MAXMIN : UINT := 12037; + LCR_ERR_LCRPIDTune_ABORT : UINT := 12038; + LCR_ERR_LCRPIDTune_PARAMETER : UINT := 12039; + LCR_ERR_LCRPIDTune_TIMEOUT : UINT := 12040; + LCR_ERR_LCRPIDTune_W_CHANGED : UINT := 12041; + LCR_ERR_LCRPID_PAR_DEADBAND_MODE : UINT := 12042; + LCR_ERR_LCRPID_PAR_WX_MAXMIN : UINT := 12043; + LCR_ERR_LCRPID_PAR_DEADBAND : UINT := 12044; + LCR_ERR_LCRCurveByPoints_TABLE : UINT := 12045; + LCR_ERR_LCRPT12_T1_NEG : UINT := 12046; + LCR_ERR_LCRPT12_T2_NEG : UINT := 12047; + LCR_ERR_LCRTT_TT_NEG : UINT := 12048; + LCRSLIMPID_REQU_OSC_2 : UDINT := 20000; + LCRPID_TUNE_REQU_OSC_2 : UDINT := 20000; + LCRSLIMPID_REQU_OSC_3 : UDINT := 30000; + LCRPID_TUNE_REQU_OSC_3 : UDINT := 30000; + LCR_ERR_LCRIntegrate_TN : UINT := 31550; + LCR_ERR_LCRMovAvgFlt_BASE : UINT := 31551; + LCR_ERR_LCRPID_IDENT : UINT := 31552; + LCR_ERR_LCRPID_MODE : UINT := 31553; + LCR_ERR_LCRPID_PARADAT : UINT := 31554; + LCR_ERR_LCRPID_PAR_DMODE : UINT := 31556; + LCR_ERR_LCRPID_PAR_DYMAX : UINT := 31557; + LCR_ERR_LCRPID_PAR_FBKMODE : UINT := 31558; + LCR_ERR_LCRPIDTune_INVALID_REQU : UINT := 31559; + LCR_ERR_LCRPIDTune_CONTROL_VAR : UINT := 31560; + LCR_ERR_LCRDBLPID_WX_LOW : UINT := 31561; + LCR_ERR_LCRDBLPID_DX_DT : UINT := 31562; + LCR_ERR_POINTER : UINT := 31563; + LCR_ERR_LCRPIDTune_MAXMIN : UINT := 31564; + LCR_ERR_LCRTEMPTune_WR_PTR : UINT := 31566; + LCR_ERR_LCRTEMPTune_WR_TSET : UINT := 31567; + LCR_ERR_LCRTEMPPID_WR_PARA : UINT := 31567; + LCR_ERR_LCRTEMPPID_WR_PTR : UINT := 31568; + LCR_ERR_LCRTEMPPID_ILLEGALMODE : UINT := 31569; + LCR_ERR_LCRTEMPTune_TASKTIME_0 : UINT := 31570; + LCR_ERR_LCRTEMPPID_TKNICK : UINT := 31571; + LCR_ERR_LCRTEMPPID_NO_TALT : UINT := 31572; + LCR_ERR_SCHEDULE_P : UINT := 31573; + LCR_ERR_SCHEDULE_N : UINT := 31574; + LCR_WARN_LCRTEMPTune_DT_HIGH : UINT := 33100; + LCR_WARN_LCRTEMPTune_ASYNC : UINT := 33101; + LCR_WARN_PT2O_TF_TS : UINT := 33102; + LCR_ERR_LCRTEMPTune_INVALID_MODE : UINT := 33150; + LCR_ERR_LCRTEMPPID_INVALID_MODE : UINT := 33151; + LCR_ERR_LCRTEMPTune_DT_IGNORED : UINT := 33152; + LCR_ERR_PT2O_D_NEG : UINT := 33153; + LCR_ERR_PT2O_TF_NEG_ZERO : UINT := 33154; + LCR_ERR_DISABLED : UINT := 65534; + LCRTEMP_STEP_ERROR : UINT := 65535; + LCRSLIMPID_REQU_PER_3 : UDINT := 300000; + LCRPID_TUNE_REQU_PER_3 : UDINT := 300000; + LCRPID_TUNE_REQU_PER_4 : UDINT := 400000; + LCRSLIMPID_REQU_PER_4 : UDINT := 400000; + LCRSLIMPID_REQU_PER_5 : UDINT := 500000; + LCRPID_TUNE_REQU_PER_5 : UDINT := 500000; +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/Arm/LoopConR.br b/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/Arm/LoopConR.br new file mode 100644 index 0000000..a6bc319 Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/Arm/LoopConR.br differ diff --git a/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/Arm/libLoopConR.a b/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/Arm/libLoopConR.a new file mode 100644 index 0000000..50b0406 Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/Arm/libLoopConR.a differ diff --git a/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/LoopConR.br b/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/LoopConR.br new file mode 100644 index 0000000..a1a99aa Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/LoopConR.br differ diff --git a/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/LoopConR.h b/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/LoopConR.h new file mode 100644 index 0000000..fb5c987 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/LoopConR.h @@ -0,0 +1,1675 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ +/* LoopConR 6.0.0 */ + +#ifndef _LOOPCONR_ +#define _LOOPCONR_ +#ifdef __cplusplus +extern "C" +{ +#endif +#ifndef _LoopConR_VERSION +#define _LoopConR_VERSION 6.0.0 +#endif + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +#ifdef _SG3 + #include "sys_lib.h" + #include "brsystem.h" +#endif +#ifdef _SG4 + #include "sys_lib.h" + #include "brsystem.h" +#endif +#ifdef _SGC + #include "sys_lib.h" + #include "brsystem.h" +#endif + + +/* Datatypes and datatypes of function blocks */ +typedef struct lcrCurveByPoints_TabEntry_type +{ float x; + float y; +} lcrCurveByPoints_TabEntry_type; + +typedef struct lcrdblpid_par_typ +{ float Y_max; + float Y_min; + signed short K_fact; + float Kp; + float Tn; + float Tv; +} lcrdblpid_par_typ; + +typedef struct lcrpid_tune_osc_options_typ +{ float osc_minAmplitude; + float Q_min; +} lcrpid_tune_osc_options_typ; + +typedef struct lcrpid_tune_step_options_typ +{ float eqDeltaX; + float eqDeltaWX; + float eqDeltat; + float evalDeltaX; + unsigned short evalNfilter; + unsigned short exitNotMaxdXCount; + float exitdXRatio; +} lcrpid_tune_step_options_typ; + +typedef struct lcrdblpid_tune_typ +{ signed short P1_manualAdjust; + signed short I1_manualAdjust; + signed short D1_manualAdjust; + signed short P2_manualAdjust; + signed short I2_manualAdjust; + signed short D2_manualAdjust; + float X_min; + float X_max; + float X0; + float de_min; + float Y0; + float Y1step; + float Y2step; + unsigned long tuneY1_opt; + unsigned long tuneY2_opt; + unsigned char tune_first; + float hyst; + float measDelta; + struct lcrpid_tune_osc_options_typ osc_opt; + struct lcrpid_tune_step_options_typ step_opt; +} lcrdblpid_tune_typ; + +typedef struct lcrpid_internal_typ +{ unsigned short size; + plcbit valid; + float WX_max; + float WX_min; + plcbit invert; + float deadband; + unsigned char deadband_mode; + float dY_max; + float Kp; + float Kp_Tn; + float Tv_Tf; + float Tf_reciproc; + float Kw; + float Kfbk_Kp; + float Kfbk_Kp_max; + unsigned char fbk_mode; + unsigned char d_mode; + unsigned char force_mode; + float Y_force; + float W; + float X; + unsigned char pid_init; + signed long Yp1; + signed long Yp2; + signed long dYi1; + signed long dYi2; + signed long Yi1; + signed long Yi2; + float dt_Tf; + signed long a11; + signed long a12; + signed long a21; + signed long a22; + signed long Yd1; + signed long Yd2; + signed long Ytotal1; + signed long Ytotal2; + signed long Ylim1; + signed long Ylim2; + signed long Y1; + signed long Y2; + float deltaY_fbk; + float e_fbk; +} lcrpid_internal_typ; + +typedef struct lcrpid_procPar_typ +{ unsigned short size; + plcbit valid; + plcbit stepResp_valid; + float stepResp_v; + float stepResp_t_u; + float stepResp_t_g; + plcbit osc_valid; + float osc_amplitudeRatio; + float osc_tPeriod; + plcbit force_params; + float Kp; + float Kp_tune; + float Tn; + float Tn_tune; + float Tv; + float Tv_tune; +} lcrpid_procPar_typ; + +typedef struct lcrpid_old_typ +{ struct lcrpid_procPar_typ processPar; + signed short P_manualAdjust; + signed short I_manualAdjust; + signed short D_manualAdjust; + float Y_min; + float Y_max; + float dY_max; + float Tf_Tv; + float Kw; + float Kfbk; + float deadband; + float W; + unsigned long request; + unsigned char fbk_mode; + unsigned char d_mode; + plcbit invert; + plcbit enable; +} lcrpid_old_typ; + +typedef struct lcrpid_osc_val_typ +{ float X; + float t; +} lcrpid_osc_val_typ; + +typedef struct lcrpid_osc_per_typ +{ struct lcrpid_osc_val_typ max; + struct lcrpid_osc_val_typ min; +} lcrpid_osc_per_typ; + +typedef struct lcrpid_tune_addpar_typ +{ float t_max_tune; + float WX_min; + float WX_max; + float dY_max; + float Tf_Tv; + float Kw; + float Kfbk; + unsigned char fbk_mode; + unsigned char d_mode; + float deadband; + unsigned char deadband_mode; + plcbit invert; +} lcrpid_tune_addpar_typ; + +typedef struct lcrpid_tune_osc_typ +{ struct lcrpid_tune_osc_options_typ options; + unsigned short oscPhase; + signed char dir; + plcbit enHi; + plcbit enLo; + float Y_hi; + float Y_lo; + unsigned short i_maxPeriod; + unsigned short i_period; + float X_ampl; + float X_avg; + float X_min_avg; + float X_max_avg; + float Y_avg; + float deltaY; + float t_Ylohi[5]; + float t_Yhilo[5]; + float Q_act; + float a_wx; + float amplitudeRatio; + float Ku; + float tPeriod; + struct lcrpid_osc_per_typ period[5]; +} lcrpid_tune_osc_typ; + +typedef struct lcrpid_tune_step_typ +{ struct lcrpid_tune_step_options_typ options; + float Y0; + float Y1; + float t_jump; + float W; + float X0; + float Xmax; + float Xmin; + float Xfiltered; + plcbit deltaXok; + plcbit deltaWXok; + float eqTime; + signed char dir; + float deltaX; + float X1; + float t1; + plcbit t1set; + float dX_dt; + float dX_dt_max; + float XmaxGrad; + float maxX1; + float maxX2; + float maxt1; + float maxt2; + float tmaxGrad; + float gainFactor; + float deadTime; + float riseTime; + unsigned short notMaxCount; + float gradientRatio; +} lcrpid_tune_step_typ; + +typedef struct lcrpt2o_Internal_typ +{ signed long Ts; + unsigned long Ts_dbl_1; + unsigned long Ts_dbl_2; + float V_old; + float D_old; + float Tf_old; + unsigned char Set_y_old; + unsigned char Set_y_2; + unsigned long x1_dbl_1; + unsigned long x1_dbl_2; + unsigned long x2_dbl_1; + unsigned long x2_dbl_2; + unsigned long Sqrt_D_1_dbl_1; + unsigned long Sqrt_D_1_dbl_2; + unsigned long Ts_Tf_dbl_1; + unsigned long Ts_Tf_dbl_2; + unsigned long Exp_D_Ts_Tf_dbl_1; + unsigned long Exp_D_Ts_Tf_dbl_2; + unsigned long a0_dbl_1; + unsigned long a0_dbl_2; + unsigned long a1_dbl_1; + unsigned long a1_dbl_2; + unsigned long b0_dbl_1; + unsigned long b0_dbl_2; + unsigned long b1_dbl_1; + unsigned long b1_dbl_2; + unsigned long Bootkey; +} lcrpt2o_Internal_typ; + +typedef struct LCRPWM +{ + /* VAR_INPUT (analog) */ + float x; + float max_value; + float min_value; + float t_min_pulse; + float t_period; + /* VAR_OUTPUT (analog) */ + unsigned short status; + float t_on; + float t_off; + /* VAR (analog) */ + signed long cnt_terron_1; + signed long cnt_terron_2; + signed long cnt_terroff_1; + signed long cnt_terroff_2; + signed long cnt_t_pulse_1; + signed long cnt_t_pulse_2; + unsigned long store1; + unsigned long store2; + unsigned long timeCnt; + struct SysInfo sysinfo_inst; + /* VAR_INPUT (digital) */ + plcbit enable; + /* VAR_OUTPUT (digital) */ + plcbit pulse; + /* VAR (digital) */ + plcbit corr; +} LCRPWM_typ; + +typedef struct lcrschedule_add_typ +{ float periodTime; + float onTime; + float t_on_intern; + float bcOnTime; + unsigned short sortIndex; + struct LCRPWM fbkPWM; + plcbit flagDelay; +} lcrschedule_add_typ; + +typedef struct lcrschedule_par_typ +{ float P; + float X; + plcbit pulse; + float Pout; + plcbit lim; + struct lcrschedule_add_typ Internal; +} lcrschedule_par_typ; + +typedef struct lcrslimpid_par_typ +{ float Y_max; + float Y_min; + float Kp; + float Tn; + float Tv; + float Kfbk; +} lcrslimpid_par_typ; + +typedef struct lcrtemp_add_typ +{ float mem01; + float mem02; + float mem10; + float mem20; + float exp_mem; + float cnt01; + float cnt02; + float cnt10; + float cnt20; + float cnt03; + float cnt30; + float cnt00; + float t_ignore_dT_heat; + float t_ignore_dT_free; + float t_ignore_dT_cool; + float yMin; + float yMax; + unsigned long reserved3; + unsigned long reserved4; + plcbit reserved5; + plcbit reserved6; +} lcrtemp_add_typ; + +typedef struct lcrtemp_pid_internal_typ +{ plcbit enable_cooling; + plcbit disable_heating; + float hyst; + float delay; + float Kw; + float Kfbk; + float Kp_h; + float Tn_h; + float Tv_h; + float Kp_c; + float Tn_c; + float Tv_c; + float dynGeneral; + float dynHeat; + float dynCool; + float mem01; + float mem02; + float mem10; + float mem20; + float exp_mem; + float yMin; + float yMax; +} lcrtemp_pid_internal_typ; + +typedef struct lcrtemp_pid_opt_typ +{ float Kp_h; + float Tn_h; + float Tv_h; + float Tf_h; + float Kp_c; + float Tn_c; + float Tv_c; + float Tf_c; + float dynGeneral; + float dynHeat; + float dynCool; +} lcrtemp_pid_opt_typ; + +typedef struct lcrtemp_pid_set_typ +{ float hyst; + unsigned char hyst_mode; + float delay; + float Kw; + float Kfbk; +} lcrtemp_pid_set_typ; + +typedef struct lcrtemp_tune_set_typ +{ unsigned long mode; + float Temp_amb; + float dRatio_heat; + float cnt_tp_heat; + float delta_T_heat; + float dT_min_heat; + float dRatio_free; + float cnt_tp_free; + float delta_T_free; + float dT_min_free; + float dRatio_cool; + float cnt_tp_cool; + float delta_T_cool; + float dT_min_cool; + float delta_T_sync_heat; + float delta_dT_sync_heat; + float cnt_wait_heat; + float delta_T_sync_free; + float delta_dT_sync_free; + float cnt_wait_free; + float delta_T_sync_cool; + float delta_dT_sync_cool; + float cnt_wait_cool; + float filter_base_T; + float delta_T_sync_stop; + float Y_heat_tune; +} lcrtemp_tune_set_typ; + +typedef struct lcrtemp_set_typ +{ plcbit enable_cooling; + plcbit disable_heating; + struct lcrtemp_pid_opt_typ PIDpara; + struct lcrtemp_tune_set_typ TuneSet; + struct lcrtemp_pid_set_typ PIDSet; + struct lcrtemp_add_typ Internal; +} lcrtemp_set_typ; + +typedef struct lcrtemp_tune_internal_typ +{ plcbit cool_tuning; + plcbit disable_heating; + unsigned long mode; + float Temp_amb; + float dRatio_heat; + float cnt_tp_heat; + float delta_T_heat; + float dT_min_heat; + float dRatio_free; + float cnt_tp_free; + float delta_T_free; + float dT_min_free; + float dRatio_cool; + float cnt_tp_cool; + float delta_T_cool; + float dT_min_cool; + float delta_T_sync_heat; + float delta_dT_sync_heat; + float cnt_wait_heat; + float delta_T_sync_free; + float delta_dT_sync_free; + float cnt_wait_free; + float delta_T_sync_cool; + float delta_dT_sync_cool; + float cnt_wait_cool; + float filter_base_T; + float t_ignore_dT_heat; + float t_ignore_dT_free; + float t_ignore_dT_cool; + float delta_T_sync_stop; +} lcrtemp_tune_internal_typ; + +typedef struct LCRScal +{ + /* VAR_INPUT (analog) */ + float x; + float x1; + float y1; + float x2; + float y2; + /* VAR_OUTPUT (analog) */ + float y; +} LCRScal_typ; + +typedef struct LCRPID +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + float W; + float X; + float Y_max; + float Y_min; + float A; + float Y_man; + float Y_fbk; + unsigned char mode; + /* VAR_OUTPUT (analog) */ + unsigned short status; + float e; + float Y; + float Yp; + float Yi; + float Yd; + /* VAR (analog) */ + float Yi_set; + float Yi_min; + float Yi_max; + float Yi_minInternal; + float Yi_maxInternal; + float Tv_Tf_old; + float e_old; + unsigned short deadband_state; + struct SysInfo sysinfo_inst; + struct LCRScal scal_inst; + unsigned long store1; + unsigned long store2; + unsigned long timeCnt; + unsigned short musecs_old; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit hold_I; + /* VAR (digital) */ + plcbit Set_Yi; + plcbit force_Yi; + plcbit joltFreeDoneLowerLim; + plcbit joltFreeDoneUpperLim; + plcbit enable_old; +} LCRPID_typ; + +typedef struct LCRCurveByPoints +{ + /* VAR_INPUT (analog) */ + float x; + unsigned short NoOfPoints; + struct lcrCurveByPoints_TabEntry_type* ptr_table; + /* VAR_OUTPUT (analog) */ + unsigned short status; + float y; + /* VAR (analog) */ + signed short i_tab; + unsigned short iterations; + struct LCRScal scal1; +} LCRCurveByPoints_typ; + +typedef struct LCRPIDpara +{ + /* VAR_INPUT (analog) */ + float WX_max; + float WX_min; + float deadband; + unsigned char deadband_mode; + float dY_max; + float Kp; + float Tn; + float Tv; + float Tf; + float Kw; + float Kfbk; + unsigned char fbk_mode; + unsigned char d_mode; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long ident; + /* VAR (analog) */ + struct lcrpid_internal_typ internal_data; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit enter; + plcbit invert; +} LCRPIDpara_typ; + +typedef struct LCRContinServo +{ + /* VAR_INPUT (analog) */ + float x; + float max_value; + float min_value; + float t_impulse; + float t_change_up; + float t_change_down; + /* VAR_OUTPUT (analog) */ + unsigned short status; + float hysteresis_up; + float hysteresis_down; + /* VAR (analog) */ + unsigned short counter_state; + unsigned long bootkey_old; + unsigned long systicks_old; + unsigned short musecs_old; + signed long t_cnt_1; + signed long t_cnt_2; + signed long y_dbl_1; + signed long y_dbl_2; + struct SysInfo sysInfo_inst; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit ref; + /* VAR_OUTPUT (digital) */ + plcbit up; + plcbit down; + plcbit refOk; + /* VAR (digital) */ + plcbit enable_old; + plcbit ref_old; +} LCRContinServo_typ; + +typedef struct LCRPT1 +{ + /* VAR_INPUT (analog) */ + float x; + float t; + float y_set; + /* VAR_OUTPUT (analog) */ + unsigned short status; + float y; + /* VAR (analog) */ + unsigned short counter_state; + unsigned long bootkey_old; + unsigned long systicks_old; + unsigned short musecs_old; + signed long y_dbl_1; + signed long y_dbl_2; + struct SysInfo sysinfo_inst; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit set; +} LCRPT1_typ; + +typedef struct LCRRamp +{ + /* VAR_INPUT (analog) */ + float x; + float dy_up; + float dy_down; + float y_max; + float y_min; + float y_set; + /* VAR_OUTPUT (analog) */ + unsigned short status; + float y; + /* VAR (analog) */ + signed long y_dbl_1; + signed long y_dbl_2; + unsigned long timestore1; + unsigned long timestore2; + unsigned long getDtForceOff; + struct SysInfo sysinfo_inst; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit set; + /* VAR_OUTPUT (digital) */ + plcbit x_reached; + plcbit max_limit; + plcbit min_limit; +} LCRRamp_typ; + +typedef struct LCRIntegrate +{ + /* VAR_INPUT (analog) */ + float x; + float tn; + float y_max; + float y_min; + float y_set; + /* VAR_OUTPUT (analog) */ + unsigned short status; + float y; + /* VAR (analog) */ + unsigned short counter_state; + unsigned long bootkey_old; + unsigned long systicks_old; + unsigned short musecs_old; + signed long y_dbl_1; + signed long y_dbl_2; + struct SysInfo sysinfo_inst; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit set; + /* VAR_OUTPUT (digital) */ + plcbit max_limit; + plcbit min_limit; +} LCRIntegrate_typ; + +typedef struct LCRLimit +{ + /* VAR_INPUT (analog) */ + float in; + signed long max_value; + signed long min_value; + /* VAR_OUTPUT (analog) */ + unsigned short status; + signed long out; + /* VAR_OUTPUT (digital) */ + plcbit max_limit; + plcbit min_limit; +} LCRLimit_typ; + +typedef struct LCRLimScal +{ + /* VAR_INPUT (analog) */ + float x; + float x1; + float y1; + float x2; + float y2; + /* VAR_OUTPUT (analog) */ + float y; +} LCRLimScal_typ; + +typedef struct LCRMovAvgFlt +{ + /* VAR_INPUT (analog) */ + float x; + unsigned short base; + /* VAR_OUTPUT (analog) */ + unsigned short status; + float y; + /* VAR (analog) */ + signed long sum_old_dbl_1; + signed long sum_old_dbl_2; + unsigned long p_xold; + unsigned short i_xold; + unsigned short base_old; + unsigned long bootkey_old; + /* VAR_INPUT (digital) */ + plcbit enable; + /* VAR (digital) */ + plcbit enable_old; +} LCRMovAvgFlt_typ; + +typedef struct LCRTimeBasedOnOff +{ + /* VAR_INPUT (analog) */ + float x; + float max_value; + float min_value; + float timpulse; + float tchange_up; + float tchange_down; + /* VAR_OUTPUT (analog) */ + unsigned short status; + float hysteresis_up; + float hysteresis_down; + /* VAR (analog) */ + unsigned short counter_state; + unsigned long bootkey_old; + unsigned long systicks_old; + unsigned short musecs_old; + signed long t_cnt_1; + signed long t_cnt_2; + signed long y_dbl_1; + signed long y_dbl_2; + struct SysInfo sysInfo_inst; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit ref; + /* VAR_OUTPUT (digital) */ + plcbit up; + plcbit down; + plcbit refOk; + /* VAR (digital) */ + plcbit enable_old; + plcbit ref_old; +} LCRTimeBasedOnOff_typ; + +typedef struct LCRDifferentiate +{ + /* VAR_INPUT (analog) */ + float x; + float tv; + float tf; + /* VAR_OUTPUT (analog) */ + unsigned short status; + float y; + /* VAR (analog) */ + unsigned long store1; + unsigned long store2; + unsigned long timeCnt; + unsigned short counter_state; + unsigned long bootkey_old; + unsigned long systicks_old; + unsigned short musecs_old; + struct SysInfo sysinfo_inst; + signed long a11; + signed long a12; + signed long a21; + signed long a22; + /* VAR_INPUT (digital) */ + plcbit enable; +} LCRDifferentiate_typ; + +typedef struct LCRPIDTune +{ + /* VAR_INPUT (analog) */ + float Y_min; + float Y_max; + float Y0; + float Y1; + float X0; + float X_min; + float X_max; + signed short P_manualAdjust; + signed short I_manualAdjust; + signed short D_manualAdjust; + unsigned long request; + struct lcrpid_tune_addpar_typ* pAddPar; + struct lcrpid_tune_osc_options_typ* pOptions_osc; + struct lcrpid_tune_step_options_typ* pOptions_step; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned short addInfo; + unsigned long ident; + unsigned short state; + /* VAR (analog) */ + float t_autotune; + unsigned short status_tmp; + unsigned short counter_state; + unsigned long bootkey_old; + unsigned long systicks_old; + unsigned short musecs_old; + float e; + float e_minAmp; + float e_old_up; + float e_old_down; + float e_old; + struct SysInfo sysinfo_inst; + struct LCRMovAvgFlt MovAvgFlt_inst; + struct lcrpid_old_typ old; + struct lcrpid_procPar_typ processPar; + struct lcrpid_internal_typ internal_data; + struct lcrpid_tune_addpar_typ addPar; + struct lcrpid_tune_osc_typ oscillation; + struct lcrpid_tune_step_typ stepresponse; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit okToStep; + /* VAR_OUTPUT (digital) */ + plcbit rdyToStep; + /* VAR (digital) */ + plcbit curveDown; + plcbit curveUp; +} LCRPIDTune_typ; + +typedef struct LCRSlimPID +{ + /* VAR_INPUT (analog) */ + float W; + float X; + unsigned long request; + struct lcrslimpid_par_typ* pPar; + /* VAR_OUTPUT (analog) */ + float e; + float Y; + unsigned short status; + unsigned short addInfo; + /* VAR (analog) */ + struct LCRMovAvgFlt MovAvgFlt_inst; + struct LCRPIDTune PIDTune_inst; + struct LCRPID PID_inst; + unsigned long requ_old; + /* VAR_INPUT (digital) */ + plcbit enable; + /* VAR (digital) */ + plcbit enable_old; +} LCRSlimPID_typ; + +typedef struct LCRPFM +{ + /* VAR_INPUT (analog) */ + float x; + float max_value; + float min_value; + float t_pulse; + float t_pause; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + float area; + float area_c; + float range; + float last; + float tpls; + unsigned short counter_state; + unsigned long bootkey_old; + unsigned long systicks_old; + unsigned short musecs_old; + struct SysInfo sysinfo_inst; + /* VAR_INPUT (digital) */ + plcbit enable; + /* VAR_OUTPUT (digital) */ + plcbit pulse; + /* VAR (digital) */ + plcbit enable_old; +} LCRPFM_typ; + +typedef struct LCRTt +{ + /* VAR_INPUT (analog) */ + signed long Tt; + float x; + float y_set; + /* VAR_OUTPUT (analog) */ + float y; + unsigned short status; + /* VAR (analog) */ + signed long Ts; + signed long Tt_Max; + float* pRingBuf; + float* pBuf_OutIn; + unsigned char set_old; + unsigned char Set_y; + unsigned long Bootkey; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit set; + /* VAR (digital) */ + plcbit enable_old; +} LCRTt_typ; + +typedef struct LCRPT2 +{ + /* VAR_INPUT (analog) */ + float V; + float T1; + float T2; + float x; + float y_set; + unsigned char set; + /* VAR_OUTPUT (analog) */ + float y; + unsigned short status; + /* VAR (analog) */ + unsigned long x1_dbl_1; + unsigned long x1_dbl_2; + unsigned long x2_dbl_1; + unsigned long x2_dbl_2; + signed long Ts; + unsigned long Ts_dbl_1; + unsigned long Ts_dbl_2; + unsigned char set_old; + unsigned char Set_y; + unsigned long Bootkey; + /* VAR_INPUT (digital) */ + plcbit enable; +} LCRPT2_typ; + +typedef struct LCRSimModExt +{ + /* VAR_INPUT (analog) */ + signed long Tt_h; + signed long Tt_c; + float k_h; + float k_c; + float PT2_T1; + float PT2_T2; + float Temp_amb; + float Temp_c; + float Alpha_h; + float Alpha_c; + /* VAR_OUTPUT (analog) */ + float y; + unsigned short status; + /* VAR (analog) */ + struct LCRTt Tt_heat; + struct LCRTt Tt_cool; + float k_h_intern; + float k_c_intern; + struct LCRPT2 PT2; + float y_c; + float y_end; + float y_h; + unsigned long Bootkey; + /* VAR_INPUT (digital) */ + plcbit enable; + /* VAR (digital) */ + plcbit enable_old; +} LCRSimModExt_typ; + +typedef struct LCRPT1e +{ + /* VAR_INPUT (analog) */ + float V; + float T1; + float x; + float y_set; + unsigned char set; + /* VAR_OUTPUT (analog) */ + float y; + unsigned short status; + /* VAR (analog) */ + unsigned long x1_dbl_1; + unsigned long x1_dbl_2; + signed long Ts; + unsigned long Ts_dbl_1; + unsigned long Ts_dbl_2; + unsigned char set_old; + unsigned char Set_y; + unsigned long Bootkey; + /* VAR_INPUT (digital) */ + plcbit enable; +} LCRPT1e_typ; + +typedef struct LCRDblActPID +{ + /* VAR_INPUT (analog) */ + float W; + float X; + float Y_man; + unsigned char mode; + struct lcrdblpid_par_typ* pPar1; + struct lcrdblpid_par_typ* pPar2; + struct lcrpid_tune_addpar_typ* pAddPar; + struct lcrdblpid_tune_typ* pOpt; + /* VAR_OUTPUT (analog) */ + float e; + float Y1; + float Y2; + unsigned short status; + unsigned char tuneState; + /* VAR (analog) */ + struct LCRPID pid; + struct LCRPIDTune tune; + struct SysInfo sysinfo_inst; + float gradient; + float Y_avg; + unsigned long tcnt_1; + unsigned long tcnt_2; + float Tmeas; + float y_lim_old; + float p_fact; + unsigned long bootkey_old; + unsigned long systicks_old; + unsigned short musecs_old; + unsigned char use_par; + unsigned char meas; + unsigned char mode_old; + unsigned char tune_step; + unsigned char tune_grad; + unsigned char tune_2nd; + unsigned char invert; + unsigned char counter_state; + unsigned char mode_int; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit hold_I; + plcbit okToStep; + /* VAR_OUTPUT (digital) */ + plcbit rdyToStep; + /* VAR (digital) */ + plcbit enable_old; +} LCRDblActPID_typ; + +typedef struct LCRMinMax +{ + /* VAR_INPUT (analog) */ + float in; + /* VAR_OUTPUT (analog) */ + float out_min; + float out_max; + /* VAR_INPUT (digital) */ + plcbit reset; +} LCRMinMax_typ; + +typedef struct LCRTempPID +{ + /* VAR_INPUT (analog) */ + float Temp_set; + float Temp; + float Y_man; + unsigned long mode; + struct lcrtemp_set_typ* pSettings; + /* VAR_OUTPUT (analog) */ + float y_heat; + float y_cool; + unsigned short status; + /* VAR (analog) */ + struct LCRPID pid; + struct LCRPIDpara pid_para; + float Temp_set_delay; + float Temp_set_int; + float TempSetOld; + float delayCnt; + signed char stateOld; + signed char state; + float a; + struct SysInfo sysinfo_inst; + unsigned char para_check_done; + struct lcrtemp_pid_internal_typ internal_para; + float dbl_dt; + float tAlt; + float altTime; + float tKnick; + float fAlt; + float a_alt; + float a_e; + float a_internal; + float Temp_set_int_old1; + float Temp_set_int_old2; + float Temp_set_int_old3; + unsigned long mode_old; + unsigned long timestore1; + unsigned long timestore2; + float yManInternal; + unsigned long timeCnt; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit update; + /* VAR (digital) */ + plcbit delayFlag; + plcbit enable_old; + plcbit altActive; + plcbit err_flag; +} LCRTempPID_typ; + +typedef struct LCRPT2o +{ + /* VAR_INPUT (analog) */ + float V; + float D; + float Tf; + float u; + unsigned char Set_y; + float y_set; + /* VAR_OUTPUT (analog) */ + float y; + unsigned short status; + /* VAR (analog) */ + struct lcrpt2o_Internal_typ Internal; + /* VAR_INPUT (digital) */ + plcbit enable; +} LCRPT2o_typ; + +typedef struct LCRTempTune +{ + /* VAR_INPUT (analog) */ + float Temp_set; + float Temp; + struct lcrtemp_set_typ* pSettings; + /* VAR_OUTPUT (analog) */ + float y_heat; + float y_cool; + unsigned short status; + /* VAR (analog) */ + struct LCRPID pid; + struct LCRPIDpara pid_para; + struct LCRDifferentiate DT2; + struct LCRPT2o pt2; + float Temp_flt; + unsigned short step; + float t; + float Temp_start; + float mem00; + float cnt02; + float cnt33; + float cnt20; + float pem01; + float pem33; + float pem10; + float pem02; + float pem44; + float pem20; + float tol01; + float tol10; + float tol02; + float tol20; + float tol22; + float Temp_old; + float delta_Temp; + unsigned long tcnt_1; + unsigned long tcnt_2; + unsigned long tcnt_dT_1; + unsigned long tcnt_dT_2; + struct SysInfo sysinfo_inst; + float Temp_set_internal; + float timecounter; + struct lcrtemp_tune_internal_typ internal_para; + float dbl_dt; + unsigned long call_counter; + unsigned long store1; + unsigned long store2; + unsigned long timeCnt; + float timer2; + unsigned short waitCounter; + float Y_heat_tune_intern; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit start; + plcbit okToHeat; + plcbit okToFree; + plcbit okToFreeEnd; + plcbit okToCool; + plcbit okToCoolEnd; + /* VAR_OUTPUT (digital) */ + plcbit rdyToHeat; + plcbit rdyToFree; + plcbit rdyToFreeEnd; + plcbit rdyToCool; + plcbit rdyToCoolEnd; + plcbit done; + plcbit busy; + /* VAR (digital) */ + plcbit enable_old; +} LCRTempTune_typ; + +typedef struct LCRSchedulePWM +{ + /* VAR_INPUT (analog) */ + float Pmax; + unsigned short n; + unsigned long pPar; + float min_value; + float max_value; + float t_min_pulse; + float t_period; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + struct SysInfo sysinfo_inst; + unsigned long store1; + unsigned long store2; + unsigned long timeCnt; + unsigned short numberUnits; + unsigned short limFact; + float Pact; + float Pman; + float intern0[6]; + struct lcrschedule_par_typ* in; + /* VAR_INPUT (digital) */ + plcbit enable; + /* VAR (digital) */ + plcbit enable_old; + plcbit cmd_delay; + plcbit err_flag; + plcbit limAll; +} LCRSchedulePWM_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void LCRPID(struct LCRPID* inst); +_BUR_PUBLIC void LCRScal(struct LCRScal* inst); +_BUR_PUBLIC void LCRCurveByPoints(struct LCRCurveByPoints* inst); +_BUR_PUBLIC void LCRPIDpara(struct LCRPIDpara* inst); +_BUR_PUBLIC void LCRContinServo(struct LCRContinServo* inst); +_BUR_PUBLIC void LCRPT1(struct LCRPT1* inst); +_BUR_PUBLIC void LCRRamp(struct LCRRamp* inst); +_BUR_PUBLIC void LCRIntegrate(struct LCRIntegrate* inst); +_BUR_PUBLIC void LCRLimit(struct LCRLimit* inst); +_BUR_PUBLIC void LCRLimScal(struct LCRLimScal* inst); +_BUR_PUBLIC void LCRPWM(struct LCRPWM* inst); +_BUR_PUBLIC void LCRMovAvgFlt(struct LCRMovAvgFlt* inst); +_BUR_PUBLIC void LCRTimeBasedOnOff(struct LCRTimeBasedOnOff* inst); +_BUR_PUBLIC void LCRDifferentiate(struct LCRDifferentiate* inst); +_BUR_PUBLIC void LCRSlimPID(struct LCRSlimPID* inst); +_BUR_PUBLIC void LCRPIDTune(struct LCRPIDTune* inst); +_BUR_PUBLIC void LCRPFM(struct LCRPFM* inst); +_BUR_PUBLIC void LCRSimModExt(struct LCRSimModExt* inst); +_BUR_PUBLIC void LCRTt(struct LCRTt* inst); +_BUR_PUBLIC void LCRPT2(struct LCRPT2* inst); +_BUR_PUBLIC void LCRPT1e(struct LCRPT1e* inst); +_BUR_PUBLIC void LCRDblActPID(struct LCRDblActPID* inst); +_BUR_PUBLIC void LCRMinMax(struct LCRMinMax* inst); +_BUR_PUBLIC void LCRTempPID(struct LCRTempPID* inst); +_BUR_PUBLIC void LCRTempTune(struct LCRTempTune* inst); +_BUR_PUBLIC void LCRPT2o(struct LCRPT2o* inst); +_BUR_PUBLIC void LCRSchedulePWM(struct LCRSchedulePWM* inst); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define LCRPID_TUNE_REQU_PER_5 500000U + #define LCRSLIMPID_REQU_PER_5 500000U + #define LCRSLIMPID_REQU_PER_4 400000U + #define LCRPID_TUNE_REQU_PER_4 400000U + #define LCRPID_TUNE_REQU_PER_3 300000U + #define LCRSLIMPID_REQU_PER_3 300000U + #define LCRTEMP_STEP_ERROR 65535U + #define LCR_ERR_DISABLED 65534U + #define LCR_ERR_PT2O_TF_NEG_ZERO 33154U + #define LCR_ERR_PT2O_D_NEG 33153U + #define LCR_ERR_LCRTEMPTune_DT_IGNORED 33152U + #define LCR_ERR_LCRTEMPPID_INVALID_MODE 33151U + #define LCR_ERR_LCRTEMPTune_INVALID_MODE 33150U + #define LCR_WARN_PT2O_TF_TS 33102U + #define LCR_WARN_LCRTEMPTune_ASYNC 33101U + #define LCR_WARN_LCRTEMPTune_DT_HIGH 33100U + #define LCR_ERR_SCHEDULE_N 31574U + #define LCR_ERR_SCHEDULE_P 31573U + #define LCR_ERR_LCRTEMPPID_NO_TALT 31572U + #define LCR_ERR_LCRTEMPPID_TKNICK 31571U + #define LCR_ERR_LCRTEMPTune_TASKTIME_0 31570U + #define LCR_ERR_LCRTEMPPID_ILLEGALMODE 31569U + #define LCR_ERR_LCRTEMPPID_WR_PTR 31568U + #define LCR_ERR_LCRTEMPPID_WR_PARA 31567U + #define LCR_ERR_LCRTEMPTune_WR_TSET 31567U + #define LCR_ERR_LCRTEMPTune_WR_PTR 31566U + #define LCR_ERR_LCRPIDTune_MAXMIN 31564U + #define LCR_ERR_POINTER 31563U + #define LCR_ERR_LCRDBLPID_DX_DT 31562U + #define LCR_ERR_LCRDBLPID_WX_LOW 31561U + #define LCR_ERR_LCRPIDTune_CONTROL_VAR 31560U + #define LCR_ERR_LCRPIDTune_INVALID_REQU 31559U + #define LCR_ERR_LCRPID_PAR_FBKMODE 31558U + #define LCR_ERR_LCRPID_PAR_DYMAX 31557U + #define LCR_ERR_LCRPID_PAR_DMODE 31556U + #define LCR_ERR_LCRPID_PARADAT 31554U + #define LCR_ERR_LCRPID_MODE 31553U + #define LCR_ERR_LCRPID_IDENT 31552U + #define LCR_ERR_LCRMovAvgFlt_BASE 31551U + #define LCR_ERR_LCRIntegrate_TN 31550U + #define LCRPID_TUNE_REQU_OSC_3 30000U + #define LCRSLIMPID_REQU_OSC_3 30000U + #define LCRPID_TUNE_REQU_OSC_2 20000U + #define LCRSLIMPID_REQU_OSC_2 20000U + #define LCR_ERR_LCRTT_TT_NEG 12048U + #define LCR_ERR_LCRPT12_T2_NEG 12047U + #define LCR_ERR_LCRPT12_T1_NEG 12046U + #define LCR_ERR_LCRCurveByPoints_TABLE 12045U + #define LCR_ERR_LCRPID_PAR_DEADBAND 12044U + #define LCR_ERR_LCRPID_PAR_WX_MAXMIN 12043U + #define LCR_ERR_LCRPID_PAR_DEADBAND_MODE 12042U + #define LCR_ERR_LCRPIDTune_W_CHANGED 12041U + #define LCR_ERR_LCRPIDTune_TIMEOUT 12040U + #define LCR_ERR_LCRPIDTune_PARAMETER 12039U + #define LCR_ERR_LCRPIDTune_ABORT 12038U + #define LCR_ERR_MAXMIN 12037U + #define LCR_ERR_LCRContinServo_TIMPULSE 12036U + #define LCR_ERR_LCRContinServo_TCHANGE 12035U + #define LCR_ERR_LCRRamp_DYUP_DYDOWN 12034U + #define LCR_ERR_LCRPWM_TPERIOD 12033U + #define LCR_ERR_LCRPWM_TPULSE 12033U + #define LCR_ERR_LCRPWM_TMINPULSE 12032U + #define LCR_ERR_LCRPT1_T 12031U + #define LCR_ERR_LCRPID_PAR_TV 12030U + #define LCR_ERR_LCRPID_PAR_TN 12029U + #define LCR_ERR_LCRPID_PAR_TF 12028U + #define LCR_ERR_LCRPID_PAR_KW 12027U + #define LCR_ERR_LCRPID_PAR_KP 12026U + #define LCR_ERROR 12025U + #define LCR_ERR_LCRPID_PAR_KFBK 12025U + #define LCR_WARN_LCRTEMPPID_WR_PARA 12024U + #define LCR_WARN_LCRTEMPTune_WR_BASE 12023U + #define LCR_WARN_LCRTEMPTune_WR_PARA 12022U + #define LCR_WARN_LCRTEMPTune_HEAT_TP 12021U + #define LCR_WARN_LCRDBLPID_TUNE_CHANGE 12019U + #define LCR_WARN_LCRTT_MEM 12018U + #define LCR_WARN_LCRTT_TT_INT 12017U + #define LCR_WARN_LCRTT_TT_TS 12016U + #define LCR_WARN_LCRTT_TT_ZERO 12015U + #define LCR_WARN_LCRPT12_T2_INT 12014U + #define LCR_WARN_LCRPT12_T2_TS 12013U + #define LCR_WARN_LCRPT12_T2_ZERO 12012U + #define LCR_WARN_LCRPT12_T1_INT 12011U + #define LCR_WARN_LCRPT12_T1_TS 12010U + #define LCR_WARN_LCRPID_YMAN_LIMIT 12009U + #define LCR_WARN_LCRPID_A_LIMIT 12008U + #define LCR_WARN_Tx_DT 12007U + #define LCR_WARN_LCRPT12_T1_ZERO 12005U + #define LCR_WARN_LCRPIDTune_CYCLETIME 12004U + #define LCR_WARN_LCRPID_YFBK_LIMIT 12003U + #define LCR_WARN_LCRPID_I_MINLIMIT 12002U + #define LCR_WARN_LCRPID_I_MAXLIMIT 12001U + #define LCRSLIMPID_REQU_OSC_1 10000U + #define LCRPID_TUNE_REQU_OSC_1 10000U + #define LCRSLIMPID_REQU_CHR_REF_OS 5000U + #define LCRPID_TUNE_REQU_CHR_REF_OS 5000U + #define LCRSLIMPID_REQU_CHR_REF_AP 4000U + #define LCRPID_TUNE_REQU_CHR_REF_AP 4000U + #define LCRPID_TUNE_REQU_ZN_DIST 3000U + #define LCRSLIMPID_REQU_ZN_DIST 3000U + #define LCRPID_TUNE_REQU_CHR_DIST_OS 2000U + #define LCRSLIMPID_REQU_CHR_DIST_OS 2000U + #define LCRPID_TUNE_REQU_CHR_DIST_AP 1000U + #define LCRSLIMPID_REQU_CHR_DIST_AP 1000U + #define LCRSLIMPID_REQU_P 300U + #define LCRPID_TUNE_REQU_P 300U + #define LCRSLIMPID_REQU_PI 200U + #define LCRPID_TUNE_REQU_PI 200U + #define LCRTEMP_STEP_DONE 130U + #define LCRTEMP_STEP_PID_DONE 125U + #define LCRTEMP_STEP_PID_DONE_COOLONLY 122U + #define LCRTEMP_STEP_COOL 120U + #define LCRPID_TUNE_ADDINFO_OSC_PERIOD 111U + #define LCRTEMP_STEP_START_COOL 110U + #define LCRTEMP_STEP_WAIT_COOLONLY 105U + #define LCRPID_MODE_FREEZE_JOLTFREE 105U + #define LCRPID_MODE_CLOSE_JOLTFREE 104U + #define LCRPID_MODE_OPEN_JOLTFREE 103U + #define LCRPID_MODE_MAN_JOLTFREE 102U + #define LCRTEMP_STEP_WAIT_COOL 100U + #define LCRPID_TUNE_REQU_PID 100U + #define LCRSLIMPID_REQU_PID 100U + #define LCRTEMP_STEP_PID_COOL 90U + #define LCRTEMP_STEP_PID 80U + #define LCRTEMP_STEP_FREE 70U + #define LCRTEMP_STEP_START_FREE 60U + #define LCRTEMP_STEP_WAIT_FREE 50U + #define LCRPID_TUNE_STATE_FINISHED 50U + #define LCRPID_TUNE_STATE_RESET_CNTL 49U + #define LCRPID_TUNE_STATE_CALC_PARA 45U + #define LCRTEMP_STEP_PID_FREE 40U + #define LCRTEMP_STEP_HEAT 30U + #define LCRPID_TUNE_STATE_STEP_WAITEQ2 22U + #define LCRPID_TUNE_STATE_STEP_MAXGRAD 21U + #define LCRSLIMPID_REQU_DIR_NEG 20U + #define LCRTEMP_STEP_START_HEAT 20U + #define LCRPID_TUNE_STATE_STEP_WAITEQ1 20U + #define LCRPID_TUNE_REQU_DIR_NEG 20U + #define LCRPID_TUNE_STATE_OSC_CNTLPAR 19U + #define LCRPID_TUNE_STATE_OSC_PERFORM_2 13U + #define LCRPID_TUNE_STATE_OSC_PERFORM_1 12U + #define LCRPID_TUNE_STATE_OSC_SEQ_CNTL 11U + #define LCRTEMP_STEP_WAIT_HEAT 10U + #define LCRSLIMPID_REQU_DIR_POS 10U + #define LCRPID_TUNE_STATE_OSCILLATE 10U + #define LCRPID_TUNE_REQU_DIR_POS 10U + #define LCRDBLPID_MODE_TUNE_Y2 9U + #define LCRDBLPID_MODE_TUNE_Y1 8U + #define LCRDBLPID_MODE_TUNE_6 7U + #define LCRDBLPID_MODE_TUNE_4 6U + #define LCRPID_FBK_MODE_SET_YI 5U + #define LCRPID_MODE_FREEZE 5U + #define LCRTEMP_STEP_WAIT 5U + #define LCRSLIMPID_REQU_WRITE_PARAS 4U + #define LCRPID_MODE_CLOSE 4U + #define LCRPID_FBK_MODE_LIMIT_YI 4U + #define LCRDBLPID_TSTATE_ERROR 4U + #define LCRPID_FBK_MODE_EXT_SELECTOR 3U + #define LCRSLIMPID_REQU_READ_PARAS 3U + #define LCRDBLPID_TSTATE_FINISHED 3U + #define LCRPID_MODE_OPEN 3U + #define LCRPID_TUNE_REQU_STEPRESPONSE 2U + #define LCRPID_FBK_MODE_EXTERN 2U + #define LCRPID_MODE_MAN 2U + #define LCRSLIMPID_REQU_STEPRESPONSE 2U + #define LCRPID_D_MODE_E 2U + #define LCRDBLPID_TSTATE_Y2 2U + #define LCRTEMPPID_MODE_MAN 2U + #define LCRPID_DEADBAND_MODE_STANDARD_I 2U + #define LCRSLIMPID_REQU_OSCILLATE 1U + #define LCRTEMP_COOL 1U + #define LCRTEMP_PT2 1U + #define LCRTEMP_HYST_MODE_JOLTFREE 1U + #define LCRTEMPPID_MODE_AUTO 1U + #define LCRPID_TUNE_REQU_OSCILLATE 1U + #define LCRDBLPID_TSTATE_Y1 1U + #define LCRPID_FBK_MODE_INTERN 1U + #define LCRPID_DEADBAND_MODE_STANDARD 1U + #define LCRPID_D_MODE_X 1U + #define LCRPID_MODE_AUTO 1U + #define LCRTEMPTune_MODE_EXP 1U + #define LCRPID_TUNE_REQU_OFF 0U + #define LCRDBLPID_TSTATE_OFF 0U + #define LCRTEMPTune_MODE_DEF 0U + #define LCRTEMP_PT1 0U + #define LCRSLIMPID_REQU_OFF 0U + #define LCRPID_TUNE_STATE_READY 0U + #define LCRPID_MODE_OFF 0U + #define LCRTEMP_HEAT 0U + #define LCRPID_DEADBAND_MODE_ZERO 0U +#else + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_PER_5; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_PER_5; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_PER_4; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_PER_4; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_PER_3; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_PER_3; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_ERROR; + _GLOBAL_CONST unsigned short LCR_ERR_DISABLED; + _GLOBAL_CONST unsigned short LCR_ERR_PT2O_TF_NEG_ZERO; + _GLOBAL_CONST unsigned short LCR_ERR_PT2O_D_NEG; + _GLOBAL_CONST unsigned short LCR_ERR_LCRTEMPTune_DT_IGNORED; + _GLOBAL_CONST unsigned short LCR_ERR_LCRTEMPPID_INVALID_MODE; + _GLOBAL_CONST unsigned short LCR_ERR_LCRTEMPTune_INVALID_MODE; + _GLOBAL_CONST unsigned short LCR_WARN_PT2O_TF_TS; + _GLOBAL_CONST unsigned short LCR_WARN_LCRTEMPTune_ASYNC; + _GLOBAL_CONST unsigned short LCR_WARN_LCRTEMPTune_DT_HIGH; + _GLOBAL_CONST unsigned short LCR_ERR_SCHEDULE_N; + _GLOBAL_CONST unsigned short LCR_ERR_SCHEDULE_P; + _GLOBAL_CONST unsigned short LCR_ERR_LCRTEMPPID_NO_TALT; + _GLOBAL_CONST unsigned short LCR_ERR_LCRTEMPPID_TKNICK; + _GLOBAL_CONST unsigned short LCR_ERR_LCRTEMPTune_TASKTIME_0; + _GLOBAL_CONST unsigned short LCR_ERR_LCRTEMPPID_ILLEGALMODE; + _GLOBAL_CONST unsigned short LCR_ERR_LCRTEMPPID_WR_PTR; + _GLOBAL_CONST unsigned short LCR_ERR_LCRTEMPPID_WR_PARA; + _GLOBAL_CONST unsigned short LCR_ERR_LCRTEMPTune_WR_TSET; + _GLOBAL_CONST unsigned short LCR_ERR_LCRTEMPTune_WR_PTR; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPIDTune_MAXMIN; + _GLOBAL_CONST unsigned short LCR_ERR_POINTER; + _GLOBAL_CONST unsigned short LCR_ERR_LCRDBLPID_DX_DT; + _GLOBAL_CONST unsigned short LCR_ERR_LCRDBLPID_WX_LOW; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPIDTune_CONTROL_VAR; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPIDTune_INVALID_REQU; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_PAR_FBKMODE; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_PAR_DYMAX; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_PAR_DMODE; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_PARADAT; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_MODE; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_IDENT; + _GLOBAL_CONST unsigned short LCR_ERR_LCRMovAvgFlt_BASE; + _GLOBAL_CONST unsigned short LCR_ERR_LCRIntegrate_TN; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_OSC_3; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_OSC_3; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_OSC_2; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_OSC_2; + _GLOBAL_CONST unsigned short LCR_ERR_LCRTT_TT_NEG; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPT12_T2_NEG; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPT12_T1_NEG; + _GLOBAL_CONST unsigned short LCR_ERR_LCRCurveByPoints_TABLE; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_PAR_DEADBAND; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_PAR_WX_MAXMIN; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_PAR_DEADBAND_MODE; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPIDTune_W_CHANGED; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPIDTune_TIMEOUT; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPIDTune_PARAMETER; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPIDTune_ABORT; + _GLOBAL_CONST unsigned short LCR_ERR_MAXMIN; + _GLOBAL_CONST unsigned short LCR_ERR_LCRContinServo_TIMPULSE; + _GLOBAL_CONST unsigned short LCR_ERR_LCRContinServo_TCHANGE; + _GLOBAL_CONST unsigned short LCR_ERR_LCRRamp_DYUP_DYDOWN; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPWM_TPERIOD; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPWM_TPULSE; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPWM_TMINPULSE; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPT1_T; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_PAR_TV; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_PAR_TN; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_PAR_TF; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_PAR_KW; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_PAR_KP; + _GLOBAL_CONST unsigned short LCR_ERROR; + _GLOBAL_CONST unsigned short LCR_ERR_LCRPID_PAR_KFBK; + _GLOBAL_CONST unsigned short LCR_WARN_LCRTEMPPID_WR_PARA; + _GLOBAL_CONST unsigned short LCR_WARN_LCRTEMPTune_WR_BASE; + _GLOBAL_CONST unsigned short LCR_WARN_LCRTEMPTune_WR_PARA; + _GLOBAL_CONST unsigned short LCR_WARN_LCRTEMPTune_HEAT_TP; + _GLOBAL_CONST unsigned short LCR_WARN_LCRDBLPID_TUNE_CHANGE; + _GLOBAL_CONST unsigned short LCR_WARN_LCRTT_MEM; + _GLOBAL_CONST unsigned short LCR_WARN_LCRTT_TT_INT; + _GLOBAL_CONST unsigned short LCR_WARN_LCRTT_TT_TS; + _GLOBAL_CONST unsigned short LCR_WARN_LCRTT_TT_ZERO; + _GLOBAL_CONST unsigned short LCR_WARN_LCRPT12_T2_INT; + _GLOBAL_CONST unsigned short LCR_WARN_LCRPT12_T2_TS; + _GLOBAL_CONST unsigned short LCR_WARN_LCRPT12_T2_ZERO; + _GLOBAL_CONST unsigned short LCR_WARN_LCRPT12_T1_INT; + _GLOBAL_CONST unsigned short LCR_WARN_LCRPT12_T1_TS; + _GLOBAL_CONST unsigned short LCR_WARN_LCRPID_YMAN_LIMIT; + _GLOBAL_CONST unsigned short LCR_WARN_LCRPID_A_LIMIT; + _GLOBAL_CONST unsigned short LCR_WARN_Tx_DT; + _GLOBAL_CONST unsigned short LCR_WARN_LCRPT12_T1_ZERO; + _GLOBAL_CONST unsigned short LCR_WARN_LCRPIDTune_CYCLETIME; + _GLOBAL_CONST unsigned short LCR_WARN_LCRPID_YFBK_LIMIT; + _GLOBAL_CONST unsigned short LCR_WARN_LCRPID_I_MINLIMIT; + _GLOBAL_CONST unsigned short LCR_WARN_LCRPID_I_MAXLIMIT; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_OSC_1; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_OSC_1; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_CHR_REF_OS; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_CHR_REF_OS; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_CHR_REF_AP; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_CHR_REF_AP; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_ZN_DIST; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_ZN_DIST; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_CHR_DIST_OS; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_CHR_DIST_OS; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_CHR_DIST_AP; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_CHR_DIST_AP; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_P; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_P; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_PI; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_PI; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_DONE; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_PID_DONE; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_PID_DONE_COOLONLY; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_COOL; + _GLOBAL_CONST unsigned short LCRPID_TUNE_ADDINFO_OSC_PERIOD; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_START_COOL; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_WAIT_COOLONLY; + _GLOBAL_CONST unsigned char LCRPID_MODE_FREEZE_JOLTFREE; + _GLOBAL_CONST unsigned char LCRPID_MODE_CLOSE_JOLTFREE; + _GLOBAL_CONST unsigned char LCRPID_MODE_OPEN_JOLTFREE; + _GLOBAL_CONST unsigned char LCRPID_MODE_MAN_JOLTFREE; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_WAIT_COOL; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_PID; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_PID; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_PID_COOL; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_PID; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_FREE; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_START_FREE; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_WAIT_FREE; + _GLOBAL_CONST unsigned short LCRPID_TUNE_STATE_FINISHED; + _GLOBAL_CONST unsigned short LCRPID_TUNE_STATE_RESET_CNTL; + _GLOBAL_CONST unsigned short LCRPID_TUNE_STATE_CALC_PARA; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_PID_FREE; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_HEAT; + _GLOBAL_CONST unsigned short LCRPID_TUNE_STATE_STEP_WAITEQ2; + _GLOBAL_CONST unsigned short LCRPID_TUNE_STATE_STEP_MAXGRAD; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_DIR_NEG; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_START_HEAT; + _GLOBAL_CONST unsigned short LCRPID_TUNE_STATE_STEP_WAITEQ1; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_DIR_NEG; + _GLOBAL_CONST unsigned short LCRPID_TUNE_STATE_OSC_CNTLPAR; + _GLOBAL_CONST unsigned short LCRPID_TUNE_STATE_OSC_PERFORM_2; + _GLOBAL_CONST unsigned short LCRPID_TUNE_STATE_OSC_PERFORM_1; + _GLOBAL_CONST unsigned short LCRPID_TUNE_STATE_OSC_SEQ_CNTL; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_WAIT_HEAT; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_DIR_POS; + _GLOBAL_CONST unsigned short LCRPID_TUNE_STATE_OSCILLATE; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_DIR_POS; + _GLOBAL_CONST unsigned char LCRDBLPID_MODE_TUNE_Y2; + _GLOBAL_CONST unsigned char LCRDBLPID_MODE_TUNE_Y1; + _GLOBAL_CONST unsigned char LCRDBLPID_MODE_TUNE_6; + _GLOBAL_CONST unsigned char LCRDBLPID_MODE_TUNE_4; + _GLOBAL_CONST unsigned char LCRPID_FBK_MODE_SET_YI; + _GLOBAL_CONST unsigned char LCRPID_MODE_FREEZE; + _GLOBAL_CONST unsigned short LCRTEMP_STEP_WAIT; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_WRITE_PARAS; + _GLOBAL_CONST unsigned char LCRPID_MODE_CLOSE; + _GLOBAL_CONST unsigned char LCRPID_FBK_MODE_LIMIT_YI; + _GLOBAL_CONST unsigned char LCRDBLPID_TSTATE_ERROR; + _GLOBAL_CONST unsigned char LCRPID_FBK_MODE_EXT_SELECTOR; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_READ_PARAS; + _GLOBAL_CONST unsigned char LCRDBLPID_TSTATE_FINISHED; + _GLOBAL_CONST unsigned char LCRPID_MODE_OPEN; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_STEPRESPONSE; + _GLOBAL_CONST unsigned char LCRPID_FBK_MODE_EXTERN; + _GLOBAL_CONST unsigned char LCRPID_MODE_MAN; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_STEPRESPONSE; + _GLOBAL_CONST unsigned char LCRPID_D_MODE_E; + _GLOBAL_CONST unsigned char LCRDBLPID_TSTATE_Y2; + _GLOBAL_CONST unsigned long LCRTEMPPID_MODE_MAN; + _GLOBAL_CONST unsigned char LCRPID_DEADBAND_MODE_STANDARD_I; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_OSCILLATE; + _GLOBAL_CONST unsigned char LCRTEMP_COOL; + _GLOBAL_CONST unsigned char LCRTEMP_PT2; + _GLOBAL_CONST unsigned char LCRTEMP_HYST_MODE_JOLTFREE; + _GLOBAL_CONST unsigned long LCRTEMPPID_MODE_AUTO; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_OSCILLATE; + _GLOBAL_CONST unsigned char LCRDBLPID_TSTATE_Y1; + _GLOBAL_CONST unsigned char LCRPID_FBK_MODE_INTERN; + _GLOBAL_CONST unsigned char LCRPID_DEADBAND_MODE_STANDARD; + _GLOBAL_CONST unsigned char LCRPID_D_MODE_X; + _GLOBAL_CONST unsigned char LCRPID_MODE_AUTO; + _GLOBAL_CONST unsigned long LCRTEMPTune_MODE_EXP; + _GLOBAL_CONST unsigned long LCRPID_TUNE_REQU_OFF; + _GLOBAL_CONST unsigned char LCRDBLPID_TSTATE_OFF; + _GLOBAL_CONST unsigned long LCRTEMPTune_MODE_DEF; + _GLOBAL_CONST unsigned char LCRTEMP_PT1; + _GLOBAL_CONST unsigned long LCRSLIMPID_REQU_OFF; + _GLOBAL_CONST unsigned short LCRPID_TUNE_STATE_READY; + _GLOBAL_CONST unsigned char LCRPID_MODE_OFF; + _GLOBAL_CONST unsigned char LCRTEMP_HEAT; + _GLOBAL_CONST unsigned char LCRPID_DEADBAND_MODE_ZERO; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _LOOPCONR_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/libLoopConR.a b/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/libLoopConR.a new file mode 100644 index 0000000..953c709 Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/LoopConR/SG4/libLoopConR.a differ diff --git a/example/AsProject/Logical/Libraries/_AS/MTBasics/Binary.lby b/example/AsProject/Logical/Libraries/_AS/MTBasics/Binary.lby new file mode 100644 index 0000000..685f24f --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTBasics/Binary.lby @@ -0,0 +1,14 @@ + + + + + MTBasics.fun + MTBasics.typ + MTBasics.var + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Logical/Libraries/_AS/MTBasics/MTBasics.fun b/example/AsProject/Logical/Libraries/_AS/MTBasics/MTBasics.fun new file mode 100644 index 0000000..0cca77e --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTBasics/MTBasics.fun @@ -0,0 +1,369 @@ + +{REDUND_OK} FUNCTION_BLOCK MTBasicsDT1 (*First-order derivative action element.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + Gain : REAL; (*Gain factor.*) + TimeConstant : REAL; (*Time constant. Unit: [s]. Valid value range: TimeConstant >= 0.*) + Update : BOOL; (*Updates the parameters listed above on a rising edge.*) + In : REAL; (*Input value.*) + END_VAR + VAR_OUTPUT + Busy : BOOL; (*Function block is busy.*) + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + UpdateDone : BOOL; (*Update is done.*) + Out : REAL; (*Output value.*) + SystemReference : {REDUND_UNREPLICABLE} UDINT; (*System reference.*) + END_VAR + VAR + Internal : MTBasicsDT1InternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK MTBasicsDT2 (*Second-order derivative action element.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + Gain : REAL; (*Gain factor.*) + TimeConstant1 : REAL; (*Time constant. Unit: [s]. Valid value range: TimeConstant1 >= 0.*) + TimeConstant2 : REAL; (*Time constant. Unit: [s]. Valid value range: TimeConstant2 >= 0.*) + Update : BOOL; (*Updates the parameters listed above on a rising edge.*) + In : REAL; (*Input value.*) + END_VAR + VAR_OUTPUT + Busy : BOOL; (*Function block is busy.*) + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + UpdateDone : BOOL; (*Update is done.*) + Out : REAL; (*Output value.*) + SystemReference : {REDUND_UNREPLICABLE} UDINT; (*System reference.*) + END_VAR + VAR + Internal : MTBasicsDT2InternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK MTBasicsIntegrator (*Integrator.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + Gain : REAL; (*Gain factor. Valid value range: Gain >= 0.*) + Update : BOOL; (*Updates the parameters listed above on a rising edge.*) + In : REAL; (*Input value.*) + OutPresetValue : REAL; (*Preset value for Out output.*) + SetOut : BOOL; (*Sets Out to OutPresetValue on rising edge.*) + HoldOut : BOOL; (*Freezes the function block.*) + END_VAR + VAR_OUTPUT + Busy : BOOL; (*Function block is busy.*) + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + UpdateDone : BOOL; (*Update is done.*) + Out : REAL; (*Output value.*) + SystemReference : {REDUND_UNREPLICABLE} UDINT; (*System reference.*) + END_VAR + VAR + Internal : MTBasicsIntegratorInternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK MTBasicsLevelController (*Level controller.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + Parameter : MTBasicsLevelCtrlParType; (*3-step controller parameters.*) + Update : BOOL; (*Updates the parameters listed above on a rising edge.*) + In : REAL; (*Input value.*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + UpdateDone : BOOL; (*Update is done.*) + Out : REAL; (*Output value.*) + END_VAR + VAR + Internal : MTBasicsLevelCtrlInternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK MTBasicsLimiter (*Limiter.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + MinOut : REAL; (*Lower output variable limit. Valid value range: MinOut < MaxOut.*) + MaxOut : REAL; (*Upper output variable limit. Valid value range: MaxOut > MinOut.*) + MaxPosSlewRate : REAL; (*Maximum output variable ramp for ramp-up. Unit: [1/s]. Valid value range: MaxPosSlewRate >= 0.*) + MaxNegSlewRate : REAL; (*Maximum output variable ramp for the ramp-down. Unit: [1/s]. Valid value range: MaxNegSlewRate >= 0.*) + Update : BOOL; (*Updates the parameters listed above on a rising edge.*) + In : REAL; (*Input value.*) + OutPresetValue : REAL; (*Preset value for Out output.*) + SetOut : BOOL; (*Sets Out to OutPresetValue on rising edge.*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + UpdateDone : BOOL; (*Update is done.*) + Out : REAL; (*Output value.*) + END_VAR + VAR + Internal : MTBasicsLimiterInternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK MTBasicsOscillationTuning (*Oscillation tuning for PID.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + SetValue : REAL; (*Reference variable (setpoint).*) + MinOut : REAL; (*Lower manipulated variable limit. Valid value range: MinOut < MaxOut.*) + MaxOut : REAL; (*Upper manipulated variable limit. Valid value range: MaxOut > MinOut.*) + Invert : BOOL; (*Inverts the direction of the controller.*) + Update : BOOL; (*Updates the parameters listed above on a rising edge.*) + ActValue : REAL; (*Actual measured value.*) + Start : BOOL; (*Starts the tuning (on positive edge).*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + UpdateDone : BOOL; (*Update is done.*) + Out : REAL; (*Output value (manipulated variable). Value range: MinOut <= Out <= MaxOut.*) + TuningActive : BOOL; (*Tuning is active.*) + TuningDone : BOOL; (*Tuning completed.*) + Quality : REAL; (*Quality of the oscillation tuning. Unit: [%]. Value range: 0 (low) ... 100 (high).*) + PIDParameters : MTPIDParametersType; (*PID parameters.*) + END_VAR + VAR + Internal : MTBasicsOscTuningInternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK MTBasicsPFM (*Pulse frequency modulator.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + PulseWidth : REAL; (*Pulse width at the output. Unit: [s]. Valid value range: PulseWidth >= task cycle time.*) + MinPause : REAL; (*Minimum pause between the pulses at the output. Unit: [s]. Valid value range: MinPause >= task cycle time.*) + Update : BOOL; (*Updates the parameters listed above on a rising edge.*) + DutyCycle : REAL; (*Input value.*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + UpdateDone : BOOL; (*Update is done.*) + Out : BOOL; (*Output value.*) + END_VAR + VAR + Internal : MTBasicsPFMInternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK MTBasicsPID (*PID controller.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + PIDParameters : MTPIDParametersType; (*PID parameters.*) + MinOut : REAL; (*Lower manipulated variable limit (lower modulation limit of the subsequent actuator).*) + MaxOut : REAL; (*Upper manipulated variable limit (upper modulation limit of the subsequent actuator).*) + Invert : BOOL; (*Reverses the effective direction of the controller.*) + Update : BOOL; (*Updates the parameters listed above on a rising edge.*) + SetValue : REAL; (*Set value (reference variable).*) + ActValue : REAL; (*Actual value (controlled variable).*) + IntegrationPartPresetValue : REAL; (*Preset value for the integral component IntegrationPart.*) + SetIntegrationPart : BOOL; (*A positive edge on SetIntegrationPart sets the integral component IntegrationPart of the PID controller to IntegrationPartPresetValue.*) + HoldOut : BOOL; (*Freezes the function block.*) + TrackingValue : REAL; (*Manipulated variable for manual mode.*) + EnableTracking : BOOL; (*Enables manual mode.*) + HoldIntegration : MTPIDIntegrationEnum; (*The integral component is kept depending on the direction.*) + END_VAR + VAR_OUTPUT + Busy : BOOL; (*Function block is busy.*) + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + UpdateDone : BOOL; (*Update is done.*) + Out : REAL; (*Controller output. Value range: MinOut <= Out <= MaxOut.*) + ControlError : REAL; (*Control error.*) + ProportionalPart : REAL; (*Proportional component.*) + IntegrationPart : REAL; (*Integral component.*) + DerivativePart : REAL; (*Derivative component.*) + TrackingActive : BOOL; (*Tracking is active.*) + IntegrationStatus : MTPIDIntegrationEnum; (*Information about the current state of the integral component.*) + SystemReference : {REDUND_UNREPLICABLE} UDINT; (*System reference.*) + END_VAR + VAR + Internal : MTBasicsPIDInternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK MTBasicsPT1 (*First-order delay element.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + Gain : REAL; (*Gain factor.*) + TimeConstant : REAL; (*Time constant. Unit: [s]. Valid value range: TimeConstant >= 0.*) + Update : BOOL; (*Updates the parameters listed above on a rising edge.*) + In : REAL; (*Input value.*) + OutPresetValue : REAL; (*Preset value for Out output.*) + SetOut : BOOL; (*Sets Out to OutPresetValue on rising edge.*) + END_VAR + VAR_OUTPUT + Busy : BOOL; (*Function block is busy.*) + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + UpdateDone : BOOL; (*Update is done.*) + Out : REAL; (*Output value.*) + SystemReference : {REDUND_UNREPLICABLE} UDINT; (*System reference.*) + END_VAR + VAR + Internal : MTBasicsPT1InternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK MTBasicsPT2 (*Second-order delay element.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + Gain : REAL; (*Gain.*) + TimeConstant1 : REAL; (*Time constant. Unit: [s]. Valid value range: TimeConstant1 >= 0.*) + TimeConstant2 : REAL; (*Time constant. Unit: [s]. Valid value range: TimeConstant2 >= 0.*) + Update : BOOL; (*Updates the parameters listed above on a rising edge.*) + In : REAL; (*Input value.*) + OutPresetValue : REAL; (*Preset value for Out output.*) + SetOut : BOOL; (*Sets Out to OutPresetValue on rising edge.*) + END_VAR + VAR_OUTPUT + Busy : BOOL; (*Function block is busy.*) + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + UpdateDone : BOOL; (*Update is done.*) + Out : REAL; (*Output value.*) + SystemReference : {REDUND_UNREPLICABLE} UDINT; (*System reference.*) + END_VAR + VAR + Internal : MTBasicsPT2InternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK MTBasicsPWM (*Pulse width modulator.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + Mode : MTBasicsPWMModeEnum; (*Pulse mode.*) + MinPulseWidth : REAL; (*Minimum duration of the output actuator pulses and pauses. Unit: [s]. Valid value range: MinPulseWidth < Period.*) + Period : REAL; (*Period for the output actuator pulses. Unit: [s]. Valid value range: Period > task cycle time.*) + Update : BOOL; (*Updates the parameters listed above on a rising edge.*) + DutyCycle : REAL; (*Input value. Unit: [%]. Valid value range: 0 <= DutyCycle <= 100.*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + UpdateDone : BOOL; (*Update is done.*) + Out : BOOL; (*Output value.*) + END_VAR + VAR + Internal : MTBasicsPWMInternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} FUNCTION_BLOCK MTBasicsPWMSchedule (*Multiple pulse width modulator.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + Period : REAL; (*Period for the output actuator pulses. Unit: [s]. Permitted range of values: Period > Task cycle time.*) + MinPulseWidth : REAL; (*Minimum duration of the pulses. Unit: [s]. Permitted range of values: Task cycle time <= MinPulseWidth < Period.*) + MinPause : REAL; (*Minimum duration of the pauses. Unit: [s]. Permitted range of values: Task cycle time <= MinPause < Period.*) + Mode : MTBasicsPWMScheduleModeEnum; (*Pulse mode.*) + Update : BOOL; (*Updates the parameters listed above on a rising edge.*) + NumberOfInputs : UINT; (*Number of input signals. Permitted range of values: 0 < NumberOfInputs <= 500.*) + DutyCycle : {REDUND_UNREPLICABLE} UDINT; (*Address of an array of data type REAL with the duty cycles. Unit of the values of the array: [%]. Permitted range of values for the values of the assigned array: 0 <= DutyCycle[i] <= 100.*) + ZonePower : {REDUND_UNREPLICABLE} UDINT; (*Address of an array of data type REAL with the power of the zones. Unit of the values of the array: [kW]. Permitted range of values for the values of the assigned array: ZonePower[i] > 0.*) + MaxAveragePower : REAL; (*Maximum allowed average power of all zones per period. Unit: [kW]. Permitted range of values: MaxAveragePower > 0.*) + EnablePowerLimitation : BOOL; (*The power limitation is active as long as this input is set.*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + UpdateDone : BOOL; (*Update is done.*) + PulseWave : {REDUND_UNREPLICABLE} UDINT; (*Address of an array of data type BOOL with the pulses.*) + LimitedDutyCycle : {REDUND_UNREPLICABLE} UDINT; (*Address of an array of data type REAL with the limited duty cycles. Unit of the values of the array: [%].*) + OutputPower : REAL; (*Average power of all zones per period. Unit: [kW].*) + RequiredPower : REAL; (*Required power of all zones per period. Unit: [kW].*) + PowerLimitationActive : BOOL; (*The power limitation is active.*) + InLimitation : BOOL; (*The power of each zone is limited.*) + END_VAR + VAR + Internal : MTBasicsPWMScheduleInternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK MTBasicsStepTuning (*Step tuning for PID.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + SystemSettlingTime : REAL; (*System settling time.*) + MaxTuningTime : REAL; (*Maximum tuning time*) + MinActValue : REAL; (*Minimum value of the controlled variable.*) + MaxActValue : REAL; (*Maximum value of the controlled variable.*) + Update : BOOL; (*Updates the parameters listed above on a rising edge.*) + ActValue : REAL; (*Actual measured value.*) + StepHeight : REAL; (*Height of step to be applied.*) + Start : BOOL; (*Starts the tuning (on positive edge).*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + UpdateDone : BOOL; (*Update is done.*) + Out : REAL; (*Output value (manipulated variable). Value range: MinOut <= Out <= MaxOut.*) + TuningActive : BOOL; (*Tuning is active.*) + TuningDone : BOOL; (*Tuning completed.*) + PIDParameters : MTPIDParametersType; (*PID parameters.*) + Quality : REAL; (*Quality of the step tuning. Unit: [%]. Value range: 0 (low) ... 100 (high).*) + TuningState : MTBasicsStepTuningStateEnum; (*Current state of the tuning procedure.*) + END_VAR + VAR + Internal : MTBasicsStepTuningInternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} FUNCTION_BLOCK MTBasicsTimeDelay (*Delay element.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enables/Disables the function block.*) + DelayTime : REAL; (*Delay time. Unit: [s]. Valid value range: 0 <= DelayTime <= "10000 task cycle time".*) + In : REAL; (*Input value.*) + InitialValue : REAL; (*Initial value for Out output.*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Indicates an error.*) + StatusID : DINT; (*Status information.*) + Out : REAL; (*Output value.*) + END_VAR + VAR + Internal : MTBasicsTimeDelayInternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK MTBasicsTransferFcn (*This function block implements a general continuous transfer function G(s). Optional it is possible to implement a discrete transfer function G(z) with DiscreteSampleTime > 0.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enable function block.*) (* *) (*#PAR#*) + Numerator : ARRAY[0..5] OF REAL; (*Coefficients of numerator [b0, b1, b2, ... bn].*) (* *) (*#PAR#*) + Denominator : ARRAY[0..5] OF REAL; (*Coefficients of denominator [a0, a1, a2, ... an].*) (* *) (*#PAR#*) + Mode : MTBasicsTransferFcnModeEnum; (*Mode for transfer function: mtBASICS_CONTINUOUS_TRANSFER_FCN ... continuous transfer fcn; mtBASICS_DISCRETE_TRANSFER_FCN ... discrete transfer function.*) (* *) (*#PAR#OPT#*) + Update : BOOL; (*Parameters update trigger.*) (* *) (*#PAR#*) + In : REAL; (*Input variable.*) (* *) (*#CYC#*) + OutPresetValue : REAL; (*Preset value for Out.*) (* *) (*#CMD#OPT#*) + SetOut : BOOL; (*Sets Out to OutPresetValue on rising edge.*) (* *) (*#CMD#OPT#*) + END_VAR + VAR_OUTPUT + Busy : BOOL; (*Function block is working.*) (* *) (*#PAR#*) + Active : BOOL; (*Function block is active.*) (* *) (*#PAR#*) + Error : BOOL; (*Indicates an error.*) (* *) (*#PAR#*) + StatusID : DINT; (*Status information.*) (* *) (*#PAR#*) + UpdateDone : BOOL; (*Update is sucessful.*) (* *) (*#PAR#*) + Out : REAL; (*Output variable.*) (* *) (*#CYC#*) + SystemReference : {REDUND_UNREPLICABLE} UDINT; (*System reference.*) (* *) (*#CMD#OPT#*) + END_VAR + VAR + Internal : MTBasicsTransferFcnInternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK diff --git a/example/AsProject/Logical/Libraries/_AS/MTBasics/MTBasics.typ b/example/AsProject/Logical/Libraries/_AS/MTBasics/MTBasics.typ new file mode 100644 index 0000000..a346f92 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTBasics/MTBasics.typ @@ -0,0 +1,380 @@ + +TYPE + MTBasicsDT1InternalType : STRUCT (*Internal variables of function block MTBasicsDT1.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : BOOL; (*Data for internal use.*) + Gain : REAL; (*Data for internal use.*) + TimeConstant : REAL; (*Data for internal use.*) + Numerator : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + Denominator : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + BVector : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + AVector : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + XVector : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + PresetOK : BOOL; (*Data for internal use.*) + PresetCoefficients : LREAL; (*Data for internal use.*) + InOld : REAL; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + EnableDone : BOOL; (*Data for internal use.*) + DisabledBusy : BOOL; (*Data for internal use.*) + CounterOld : UDINT; (*Data for internal use.*) + SysRefParaNew : BOOL; (*Data for internal use.*) + SystemReference : MTTransferFcnType; (*Data for internal use.*) + END_STRUCT; + MTBasicsDT2InternalType : STRUCT (*Internal variables of function block MTBasicsDT2.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : BOOL; (*Data for internal use.*) + Gain : REAL; (*Data for internal use.*) + TimeConstant1 : REAL; (*Data for internal use.*) + TimeConstant2 : REAL; (*Data for internal use.*) + Numerator : ARRAY[0..2]OF LREAL; (*Data for internal use.*) + Denominator : ARRAY[0..2]OF LREAL; (*Data for internal use.*) + BVector : ARRAY[0..2]OF LREAL; (*Data for internal use.*) + AVector : ARRAY[0..2]OF LREAL; (*Data for internal use.*) + XVector : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + PresetOK : BOOL; (*Data for internal use.*) + PresetCoefficients : LREAL; (*Data for internal use.*) + InOld : REAL; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + EnableDone : BOOL; (*Data for internal use.*) + DisabledBusy : BOOL; (*Data for internal use.*) + CounterOld : UDINT; (*Data for internal use.*) + SysRefParaNew : BOOL; (*Data for internal use.*) + SystemReference : MTTransferFcnType; (*Data for internal use.*) + END_STRUCT; + MTBasicsIntegratorInternalType : STRUCT (*Internal variables of function block MTBasicsIntegrator.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : BOOL; (*Data for internal use.*) + Gain : REAL; (*Data for internal use.*) + BVector : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + AVector : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + XVector : LREAL; (*Data for internal use.*) + OutPresetValue : REAL; (*Data for internal use.*) + SetOutOld : BOOL; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + EnableDone : BOOL; (*Data for internal use.*) + DisabledBusy : BOOL; (*Data for internal use.*) + CounterOld : UDINT; (*Data for internal use.*) + SysRefParaNew : BOOL; (*Data for internal use.*) + SystemReference : MTTransferFcnType; (*Data for internal use.*) + END_STRUCT; + MTBasicsLevelCtrlInternalType : STRUCT (*Internal variables of function block MTBasicsLevelController.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : BOOL; (*Data for internal use.*) + Parameter : MTBasicsLevelCtrlParType; (*Data for internal use.*) + State : USINT; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + END_STRUCT; + MTBasicsLevelCtrlParType : STRUCT (*Level controller parameters.*) + OutputValue1 : REAL; (*1st Output value.*) + OutputValue2 : REAL; (*2nd Output value.*) + OutputValue3 : REAL; (*3rd Output value.*) + ThresholdLevel1 : REAL; (*Threshold level from OutputValue2 to OutputValue1.*) + ThresholdLevel2 : REAL; (*Threshold level from OutputValue1 to OutputValue2.*) + ThresholdLevel3 : REAL; (*Threshold level from OutputValue3 to OutputValue2.*) + ThresholdLevel4 : REAL; (*Threshold level from OutputValue2 to OutputValue3.*) + END_STRUCT; + MTBasicsLimiterInternalType : STRUCT (*Internal variables of function block MTBasicsLimiter.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : BOOL; (*Data for internal use.*) + MaxOut : REAL; (*Data for internal use.*) + MinOut : REAL; (*Data for internal use.*) + MaxPosSlewRate : REAL; (*Data for internal use.*) + MaxNegSlewRate : REAL; (*Data for internal use.*) + Out : REAL; (*Data for internal use.*) + OutOld : REAL; (*Data for internal use.*) + UpperOutLimit : REAL; (*Data for internal use.*) + LowerOutLimit : REAL; (*Data for internal use.*) + SetOutOld : BOOL; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + END_STRUCT; + MTBasicsOscTuningInternalType : STRUCT (*Internal variables of function block MTBasicsOscillationTuning.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : BOOL; (*Data for internal use.*) + State : USINT; (*State of tuning.*) + CriticalGain : REAL; (*Critical gain.*) + OscillationPeriod : REAL; (*Period of oscillation.*) + NumberOfOscillations : USINT; (*Number of osscilations.*) + NumberOfPhases : USINT; (*Number of current tuning phase.*) + MaxRelayOut : REAL; (*Lower limit for output during tuning.*) + MinRelayOut : REAL; (*Upper limit for output during tuning.*) + SetValue : REAL; (*Data for internal use.*) + AverageOutValue : REAL; (*Data for internal use.*) + MaxActValueTime : ARRAY[0..3]OF REAL; (*Data for internal use.*) + MinActValueTime : ARRAY[0..3]OF REAL; (*Data for internal use.*) + MaxActValue : ARRAY[0..3]OF REAL; (*Data for internal use.*) + MinActValue : ARRAY[0..3]OF REAL; (*Data for internal use.*) + TuningTime : REAL; (*Data for internal use.*) + StartingActValue : REAL; (*Data for internal use.*) + ControlError : REAL; (*Data for internal use.*) + ActValueAverageAmplitude : REAL; (*Data for internal use.*) + AverageActValue : REAL; (*Data for internal use.*) + AverageMaxActValue : REAL; (*Data for internal use.*) + AverageMinActValue : REAL; (*Data for internal use.*) + AmplitudeRatio : REAL; (*Data for internal use.*) + DeltaOut : REAL; (*Data for internal use.*) + EffectiveDirection : SINT; (*Data for internal use.*) + StartOld : BOOL; (*Data for internal use.*) + MinOscillationAmplitude : REAL; (*Data for internal use.*) + MinOut : REAL; (*Data for internal use.*) + MaxOut : REAL; (*Data for internal use.*) + TemporaryQuality : REAL; (*Data for internal use.*) + TemporaryDerivativeTime : REAL; (*Data for internal use.*) + TemporaryIntegrationTime : REAL; (*Data for internal use.*) + TemporaryGain : REAL; (*Data for internal use.*) + Update : BOOL; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + AverageOutValueSum : REAL; (*Data for internal use.*) + AverageTime : LREAL; (*Data for internal use.*) + END_STRUCT; + MTBasicsPFMInternalType : STRUCT (*Internal variables of function block MTBasicsPFM.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : BOOL; (*Data for internal use.*) + PulseWidth : REAL; (*Data for internal use.*) + In : REAL; (*Data for internal use.*) + OnTime : REAL; (*Data for internal use.*) + OffTime : REAL; (*Data for internal use.*) + PeriodCounter : REAL; (*Data for internal use.*) + MinPause : REAL; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + END_STRUCT; + MTBasicsPIDInternalType : STRUCT (*Internal variables of function block MTBasicsPID.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : BOOL; (*Data for internal use.*) + PIDParameters : MTPIDParametersType; (*Data for internal use.*) + MinOut : REAL; (*Data for internal use.*) + MaxOut : REAL; (*Data for internal use.*) + Invert : BOOL; (*Data for internal use.*) + ControlError : REAL; (*Data for internal use.*) + ControlErrorOld : REAL; (*Data for internal use.*) + Out : REAL; (*Data for internal use.*) + HoldIntegration : MTPIDIntegrationEnum; (*Data for internal use.*) + IntegrationPartPresetValue : REAL; (*Data for internal use.*) + SetIntegrationPart : BOOL; (*Data for internal use.*) + SetIntegrationPartOld : BOOL; (*Data for internal use.*) + EnableTrackingOld : BOOL; (*Data for internal use.*) + PID_StatusID : DINT; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + EnableDone : BOOL; (*Data for internal use.*) + DisabledBusy : BOOL; (*Data for internal use.*) + CounterOld : UDINT; (*Data for internal use.*) + SysRefParaNew : BOOL; (*Data for internal use.*) + SystemReference : MTTransferFcnType; (*Data for internal use.*) + PIDParametersLREAL : MTBasicsPIDParametersType; (*Data for internal use.*) + PIDOutput : LREAL; (*Data for internal use.*) + ProportionalPart : LREAL; (*Data for internal use.*) + IntegrationPart : LREAL; (*Data for internal use.*) + DerivativePart : LREAL; (*Data for internal use.*) + END_STRUCT; + MTBasicsPT1InternalType : STRUCT (*Internal variables of function block MTBasicsPT1.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : BOOL; (*Data for internal use.*) + Gain : REAL; (*Data for internal use.*) + TimeConstant : REAL; (*Data for internal use.*) + Numerator : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + Denominator : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + BVector : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + AVector : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + XVector : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + OutPresetValue : REAL; (*Data for internal use.*) + PresetCoefficients : LREAL; (*Data for internal use.*) + PresetOK : BOOL; (*Data for internal use.*) + SetOutOld : BOOL; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + EnableDone : BOOL; (*Data for internal use.*) + DisabledBusy : BOOL; (*Data for internal use.*) + CounterOld : UDINT; (*Data for internal use.*) + SysRefParaNew : BOOL; (*Data for internal use.*) + SystemReference : MTTransferFcnType; (*Data for internal use.*) + END_STRUCT; + MTBasicsPT2InternalType : STRUCT (*Internal variables of function block MTBasicsPT2.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : BOOL; (*Data for internal use.*) + Gain : REAL; (*Data for internal use.*) + TimeConstant1 : REAL; (*Data for internal use.*) + TimeConstant2 : REAL; (*Data for internal use.*) + Numerator : ARRAY[0..2]OF LREAL; (*Data for internal use.*) + Denominator : ARRAY[0..2]OF LREAL; (*Data for internal use.*) + BVector : ARRAY[0..2]OF LREAL; (*Data for internal use.*) + AVector : ARRAY[0..2]OF LREAL; (*Data for internal use.*) + XVector : ARRAY[0..1]OF LREAL; (*Data for internal use.*) + OutPresetValue : REAL; (*Data for internal use.*) + PresetCoefficients : LREAL; (*Data for internal use.*) + PresetOK : BOOL; (*Data for internal use.*) + SetOutOld : BOOL; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + EnableDone : BOOL; (*Data for internal use.*) + DisabledBusy : BOOL; (*Data for internal use.*) + CounterOld : UDINT; (*Data for internal use.*) + SysRefParaNew : BOOL; (*Data for internal use.*) + SystemReference : MTTransferFcnType; (*Data for internal use.*) + END_STRUCT; + MTBasicsPWMInternalType : STRUCT (*Internal variables of function block MTBasicsPWM.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : BOOL; (*Data for internal use.*) + Mode : MTBasicsPWMModeEnum; (*Data for internal use.*) + MinPulseWidth : REAL; (*Data for internal use.*) + Period : REAL; (*Data for internal use.*) + In : REAL; (*Data for internal use.*) + OnTime : REAL; (*Data for internal use.*) + OffTime : REAL; (*Data for internal use.*) + PeriodCounter : REAL; (*Data for internal use.*) + OnTimeCounter : REAL; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + END_STRUCT; + MTBasicsPWMModeEnum : + ( (*Pulse mode.*) + mtBASICS_PULSE_BEGINNING := 0, (*Pulse at the beginning of a period.*) + mtBASICS_PULSE_MIDDLE := 1 (*Pulse in the middle of a period.*) + ); + MTBasicsPWMScheduleBufferPtrType : STRUCT (*Buffer pointers of the PWMSchedule.*) + OnTime1 : REAL; (*Data for internal use.*) + OnTime2 : REAL; (*Data for internal use.*) + OffTime1 : REAL; (*Data for internal use.*) + OffTime2 : REAL; (*Data for internal use.*) + END_STRUCT; + MTBasicsPWMScheduleBufferType : STRUCT (*Buffer parameters of the PWMSchedule.*) + ActIndex : UINT; (*Data for internal use.*) + NrOfBufferElements : UINT; (*Data for internal use.*) + TimePar : REFERENCE TO MTBasicsPWMScheduleBufferPtrType; (*Data for internal use.*) + DutyCycle : REFERENCE TO REAL; (*Data for internal use.*) + ZonePower : REFERENCE TO REAL; (*Data for internal use.*) + Out : REFERENCE TO BOOL; (*Data for internal use.*) + END_STRUCT; + MTBasicsPWMScheduleInternalType : STRUCT (*Internal variables of function block MTBasicsPWM.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + Period : REAL; (*Data for internal use.*) + MinPulseWidth : REAL; (*Data for internal use.*) + MinPause : REAL; (*Data for internal use.*) + MaxAveragePower : REAL; (*Data for internal use.*) + FreeDutyCycle : REAL; (*Data for internal use.*) + PeriodCounter : REAL; (*Data for internal use.*) + OutputPower : REAL; (*Data for internal use.*) + RequiredPower : REAL; (*Data for internal use.*) + LimitationFactor : REAL; (*Data for internal use.*) + EnablePowerLimitationOld : {REDUND_UNREPLICABLE} BOOL; (*Data for internal use.*) + EnableOld : {REDUND_UNREPLICABLE} BOOL; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableParametersValid : BOOL; (*Data for internal use.*) + PowerParValid : BOOL; (*Data for internal use.*) + ParametersValid : BOOL; (*Data for internal use.*) + Mode : MTBasicsPWMScheduleModeEnum; (*Data for internal use.*) + Buffer : MTBasicsPWMScheduleBufferType; (*Data for internal use.*) + END_STRUCT; + MTBasicsPWMScheduleModeEnum : + ( (*PWMSchedule mode.*) + mtBASICS_SHIFT_PULSE := 0, (*Shifts the entire pulse within a period.*) + mtBASICS_SPLIT_PULSE := 1 (*Splits up the pulse within a period.*) + ); + MTBasicsStepTuningBufElemType : STRUCT (*Buffer element of MTBasicsStepTuning.*) + TimeIndex : UDINT; (*Data for internal use.*) + In : LREAL; (*Data for internal use.*) + IntIn : LREAL; (*Data for internal use.*) + IntTimeIn : LREAL; (*Data for internal use.*) + IntTime2In : LREAL; (*Data for internal use.*) + Int2In : LREAL; (*Data for internal use.*) + Int3In : LREAL; (*Data for internal use.*) + TSum : LREAL; (*Data for internal use.*) + dTSum : LREAL; (*Data for internal use.*) + d2TSum : LREAL; (*Data for internal use.*) + dyACD : LREAL; (*Data for internal use.*) + d2yACD : LREAL; (*Data for internal use.*) + d3yACD : LREAL; (*Data for internal use.*) + DiffIn : LREAL; (*Data for internal use.*) + Diff2In : LREAL; (*Data for internal use.*) + END_STRUCT; + MTBasicsStepTuningInternalType : STRUCT (*Internal variables of function block MTBasicsStepTuning.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : BOOL; (*Data for internal use.*) + MinActValue : REAL; (*Data for internal use.*) + MaxActValue : REAL; (*Data for internal use.*) + MaxTuningTime : REAL; (*Data for internal use.*) + StepHeight : REAL; (*Data for internal use.*) + State : MTBasicsStepTuningStateEnum; (*Data for internal use.*) + TuningTime : REAL; (*Data for internal use.*) + Area : REAL; (*Data for internal use.*) + StartActValue : REAL; (*Data for internal use.*) + SumTime : REAL; (*Data for internal use.*) + PlantGain : REAL; (*Data for internal use.*) + LQError : REAL; (*Data for internal use.*) + LQOutput : ARRAY[0..1]OF REAL; (*Data for internal use.*) + LQParameterVector : ARRAY[0..2]OF REAL; (*Data for internal use.*) + ActValueOld : REAL; (*Data for internal use.*) + SystemSettlingTime : REAL; (*Data for internal use.*) + SettlingIndex : UINT; (*Data for internal use.*) + NumberOfSettlingValues : UINT; (*Data for internal use.*) + NoiseDeadBand : REAL; (*Data for internal use.*) + StartOld : BOOL; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + Slope : REAL; (*Data for internal use.*) + END_STRUCT; + MTBasicsStepTuningStateEnum : + ( (*Tuning state.*) + mtBASICS_STATE_READY := 1, (*The function block waits for a rising edge of Start.*) + mtBASICS_STATE_SETTLING := 2, (*It is checked, if the system is in an idle state.*) + mtBASICS_STATE_STEP := 3, (*The output Out is set to the value StepHeight.*) + mtBASICS_STATE_CALCULATE_PID := 4 (*PID parameters are calculated.*) + ); + MTBasicsTimeDelayFcnParaType : STRUCT (*Internal variables for time delay function parameters.*) + DelayCounter : UDINT; (*Data for internal use.*) + ActBufferIndex : UDINT; (*Data for internal use.*) + ActBufferElements : UDINT; (*Data for internal use.*) + OldBufferElements : UDINT; (*Data for internal use.*) + DelayTimeAct : REAL; (*Data for internal use.*) + BufferPointer : REFERENCE TO REAL; (*Data for internal use.*) + END_STRUCT; + MTBasicsTimeDelayInternalType : STRUCT (*Internal variables of function block MTBasicsTimeDelay.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + DelayTime : REAL; (*Data for internal use.*) + ParametersValid : BOOL; (*Data for internal use.*) + InitialValue : REAL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + TimeDelayFcnPara : {REDUND_UNREPLICABLE} MTBasicsTimeDelayFcnParaType; (*Data for internal use.*) + END_STRUCT; + MTBasicsTransferFcnModeEnum : + ( (*Transfer function mode.*) + mtBASICS_CONTINUOUS_TRANSFER_FCN := 0, (*Continuous transfer function.*) + mtBASICS_DISCRETE_TRANSFER_FCN := 1 (*Discrete transfer function. Sample time = cycle time.*) + ); + MTBasicsTransferFcnInternalType : STRUCT (*Internal variables of function block MTBasicsTransferFcn.*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + EnableDone : BOOL; (*Data for internal use.*) + DisabledBusy : USINT; (*Data for internal use.*) + ParametersValid : BOOL; (*Data for internal use.*) + Numerator : ARRAY[0..5]OF LREAL; (*Data for internal use.*) + Denominator : ARRAY[0..5]OF LREAL; (*Data for internal use.*) + Mode : MTBasicsTransferFcnModeEnum; (*Data for internal use.*) + SysRefParaNew : BOOL; (*Data for internal use.*) + CounterOld : UDINT; (*Data for internal use.*) + Order : USINT; (*Data for internal use.*) + PresetOK : BOOL; (*Data for internal use.*) + PresetCoefficients : LREAL; (*Data for internal use.*) + BVector : ARRAY[0..5]OF LREAL; (*Data for internal use.*) + AVector : ARRAY[0..5]OF LREAL; (*Data for internal use.*) + XVector : ARRAY[0..4]OF LREAL; (*Data for internal use.*) + OutPresetValue : REAL; (*Data for internal use.*) + SetOut : BOOL; (*Data for internal use.*) + SetOutOld : BOOL; (*Data for internal use.*) + nTmp : USINT; (*Data for internal use.*) + SystemReference : MTTransferFcnType; (*Data for internal use.*) + END_STRUCT; + MTBasicsPIDParametersType : STRUCT (*PID parameters type.*) + Gain : LREAL; (*Proportional gain. Permitted range of values: Gain> 0.*) + IntegrationTime : LREAL; (*Integral action time of the integral component. Unit: [s]. Permitted range of values: IntegrationTime = 0s or IntegrationTime >= task cycle time*) + DerivativeTime : LREAL; (*Derivative time (derivative action time) of the derivative component. Unit: [s]. Permitted range of values: DerivativeTime >= 0s.*) + FilterTime : LREAL; (*Filter time constant of the derivative component. Unit: [s]. Permitted range of values: FilterTime >= 0s.*) + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/MTBasics/MTBasics.var b/example/AsProject/Logical/Libraries/_AS/MTBasics/MTBasics.var new file mode 100644 index 0000000..f66bb71 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTBasics/MTBasics.var @@ -0,0 +1,66 @@ +(*Error*) +VAR CONSTANT + mtBCD_ERR_TIME_CONSTANT1_INVALID : DINT := -1058012139; (*Chosen first time constant is invalid.*) + mtBCD_ERR_TIME_CONSTANT2_INVALID : DINT := -1058012138; (*Chosen second time constant is invalid.*) + mtBCD_ERR_THRESHOLD_NOT_DEFINED : DINT := -1058012137; (*Chosen values for the threshold levels are invalid.*) + mtBCD_ERR_THRESHOLD_INVALID : DINT := -1058012136; (*One of the values for the threshold levels is invalid.*) + mtBCD_ERR_OUT_VALUE_NOT_DEFINED : DINT := -1058012135; (*Chosen output values are invalid.*) + mtBCD_ERR_OUTPUT_LIMIT_INVALID : DINT := -1058012134; (*Chosen limitations for output are invalid.*) + mtBCD_ERR_MAX_POS_SLEW_RATE_NEG : DINT := -1058012133; (*Chosen slew rate for positive direction is invalid.*) + mtBCD_ERR_MAX_NEG_SLEW_RATE_NEG : DINT := -1058012132; (*Chosen slew rate for negative direction is invalid.*) + mtBCD_ERR_PULSE_WIDTH_LOW : DINT := -1058012131; (*Chosen pulse width is too low.*) + mtBCD_ERR_MIN_PAUSE_LOW : DINT := -1058012130; (*The selected minimum pause duration is too low.*) + mtBCD_ERR_MIN_PULSE_HIGH : DINT := -1058012124; (*The selected minimum pulse duration is too high.*) + mtBCD_ERR_MIN_PULSE_LOW : DINT := -1058012123; (*The selected minimum pulse duration is too low.*) + mtBCD_ERR_PERIOD_LOW : DINT := -1058012122; (*The selected period duration is too low.*) + mtBCD_ERR_NUMBER_OF_INPUTS : DINT := -1058012121; (*The selected number of inputs is invalid.*) + mtBCD_ERR_SAMPLING_INVALID : DINT := -1058012118; (*The period of the generated oscillation is invalid. *) + mtBCD_ERR_SETTLING_TIME_INVALID : DINT := -1058012117; (*Chosen duration, in which the settling of the system is detected, is invalid.*) + mtBCD_ERR_TUNING_TIME_INVALID : DINT := -1058012116; (*Chosen maximum tuning time is invalid.*) + mtBCD_ERR_ACT_VALUE_NOT_STABLE : DINT := -1058012115; (*The system is not in a settled operating point.*) + mtBCD_ERR_RANGE_INVALID : DINT := -1058012114; (*Chosen limitations for the input are invalid.*) + mtBCD_ERR_TUNING_INVALID : DINT := -1058012113; (*Tuning was not successful.*) + mtBCD_ERR_MIN_PAUSE_HIGH : DINT := -1058012112; (*The selected minimum pause duration is too high.*) + mtBCD_ERR_MODE_INVALID : DINT := -1058012111; (*The selected mode is invalid.*) + mtBCD_ERR_NULL_PTR : DINT := -1058012110; (*Null pointer passed to the input.*) + mtBCD_ERR_DENOM_COEFF_INVALID : DINT := -1058012109; (*Error: Denominator coefficient Denominator[Order] is 0.*) + mtBCD_ERR_TF_ORDER_NOT_MINIMAL : DINT := -1058012108; (*Error: Order of transfer function not minimal.*) + mtBCD_ERR_NON_REALIZABLE_TF : DINT := -1058012106; (*Error: The transfer function is not realizable.*) +END_VAR +(*Warning*) +VAR CONSTANT + mtBCD_WRN_TIME_CONSTANT1_INVALID : DINT := -2131753963; (*Chosen first time constant is invalid.*) + mtBCD_WRN_TIME_CONSTANT2_INVALID : DINT := -2131753962; (*Chosen second time constant is invalid.*) + mtBCD_WRN_THRESHOLD_NOT_DEFINED : DINT := -2131753961; (*Chosen values for the threshold levels are invalid.*) + mtBCD_WRN_THRESHOLD_INVALID : DINT := -2131753960; (*One of the values for the threshold levels is invalid.*) + mtBCD_WRN_OUT_VALUE_NOT_DEFINED : DINT := -2131753959; (*Chosen output values are invalid.*) + mtBCD_WRN_OUTPUT_LIMIT_INVALID : DINT := -2131753958; (*Chosen limitations for output are invalid.*) + mtBCD_WRN_MAX_POS_SLEW_RATE_NEG : DINT := -2131753957; (*Chosen slew rate for positive direction is invalid.*) + mtBCD_WRN_MAX_NEG_SLEW_RATE_NEG : DINT := -2131753956; (*Chosen slew rate for negative direction is invalid.*) + mtBCD_WRN_PULSE_WIDTH_LOW : DINT := -2131753955; (*Chosen pulse width is too low.*) + mtBCD_WRN_MIN_PAUSE_LOW : DINT := -2131753954; (*The selected minimum pause duration is too low.*) + mtBCD_WRN_GAIN_ZERO : DINT := -2131753953; (*Chosen gain is zero.*) + mtBCD_WRN_MAX_AVG_POWER_INVALID : DINT := -2131753952; (*The selected maximum allowed average power is invalid.*) + mtBCD_WRN_ZONE_POWER_INVALID : DINT := -2131753951; (*The selected power of a zone is invalid.*) + mtBCD_WRN_NULL_PTR : DINT := -2131753950; (*Null pointer passed to the input.*) + mtBCD_WRN_FILTER_TIME_LOW : DINT := -2131753948; (*Chosen filter time is invalid.*) + mtBCD_WRN_MIN_PULSE_HIGH : DINT := -2131753946; (*The selected minimum pulse duration is too high.*) + mtBCD_WRN_MIN_PULSE_LOW : DINT := -2131753945; (*The selected minimum pulse duration is too low.*) + mtBCD_WRN_PERIOD_LOW : DINT := -2131753944; (*The selected period duration is too low.*) + mtBCD_WRN_SETTLING_TIME_INVALID : DINT := -2131753941; (*Chosen duration, in which the settling of the system is detected, is invalid.*) + mtBCD_WRN_TUNING_TIME_INVALID : DINT := -2131753940; (*Chosen maximum tuning time is invalid.*) + mtBCD_WRN_STEP_HEIGHT_INVALID : DINT := -2131753939; (*Chosen step height is zero.*) + mtBCD_WRN_RANGE_INVALID : DINT := -2131753938; (*Chosen limitations for the input are invalid.*) + mtBCD_WRN_MIN_PAUSE_HIGH : DINT := -2131753937; (*The selected minimum pause duration is too high.*) + mtBCD_WRN_MODE_INVALID : DINT := -2131753936; (*The selected mode is invalid.*) + mtBCD_WRN_DENOM_COEFF_INVALID : DINT := -2131753933; (*Warning: Denominator coefficients are zero. Retaining the last valid configuration.*) + mtBCD_WRN_TF_ORDER_NOT_MINIMAL : DINT := -2131753932; (*Warning: Order is not minimal. Retaining the last valid configuration.*) + mtBCD_WRN_TF_PRESET_INVALID : DINT := -2131753931; (*Warning: The preset output value is invalid.*) + mtBCD_WRN_NON_REALIZABLE_TF : DINT := -2131753930; (*Warning: The transfer function is not realizable.*) +END_VAR +(*Information*) +VAR CONSTANT + mtBCD_INF_TIME_CONSTANT1_ZERO : DINT := 1089471509; (*Operating as P element or PT1 / DT1 element since TimeConstant1 = 0.*) + mtBCD_INF_TIME_CONSTANT2_ZERO : DINT := 1089471510; (*Operating as P element or PT1 / DT1 element since TimeConstant2 = 0.*) + mtBCD_INF_TUNING_ABORTED_BY_USER : DINT := 1089471511; (*Tuning aborted by user.*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/ARM/MTBasics.br b/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/ARM/MTBasics.br new file mode 100644 index 0000000..553055b Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/ARM/MTBasics.br differ diff --git a/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/ARM/libMTBasics.a b/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/ARM/libMTBasics.a new file mode 100644 index 0000000..36f0a5c Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/ARM/libMTBasics.a differ diff --git a/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/IA32/MTBasics.br b/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/IA32/MTBasics.br new file mode 100644 index 0000000..81b611b Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/IA32/MTBasics.br differ diff --git a/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/IA32/libMTBasics.a b/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/IA32/libMTBasics.a new file mode 100644 index 0000000..77c1f15 Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/IA32/libMTBasics.a differ diff --git a/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/MTBasics.h b/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/MTBasics.h new file mode 100644 index 0000000..fcb825f --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTBasics/SG4/MTBasics.h @@ -0,0 +1,954 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ +/* MTBasics 6.4.0 */ + +#ifndef _MTBASICS_ +#define _MTBASICS_ +#ifdef __cplusplus +extern "C" +{ +#endif +#ifndef _MTBasics_VERSION +#define _MTBasics_VERSION 6.4.0 +#endif + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +#ifdef _SG3 + #include "MTTypes.h" + #include "sys_lib.h" + #include "brsystem.h" +#endif + +#ifdef _SG4 + #include "MTTypes.h" + #include "sys_lib.h" + #include "brsystem.h" +#endif + +#ifdef _SGC + #include "MTTypes.h" + #include "sys_lib.h" + #include "brsystem.h" +#endif + + + +/* Datatypes and datatypes of function blocks */ +typedef enum MTBasicsPWMModeEnum +{ mtBASICS_PULSE_BEGINNING = 0, + mtBASICS_PULSE_MIDDLE = 1 +} MTBasicsPWMModeEnum; + +typedef enum MTBasicsPWMScheduleModeEnum +{ mtBASICS_SHIFT_PULSE = 0, + mtBASICS_SPLIT_PULSE = 1 +} MTBasicsPWMScheduleModeEnum; + +typedef enum MTBasicsStepTuningStateEnum +{ mtBASICS_STATE_READY = 1, + mtBASICS_STATE_SETTLING = 2, + mtBASICS_STATE_STEP = 3, + mtBASICS_STATE_CALCULATE_PID = 4 +} MTBasicsStepTuningStateEnum; + +typedef enum MTBasicsTransferFcnModeEnum +{ mtBASICS_CONTINUOUS_TRANSFER_FCN = 0, + mtBASICS_DISCRETE_TRANSFER_FCN = 1 +} MTBasicsTransferFcnModeEnum; + +typedef struct MTBasicsDT1InternalType +{ float CycleTime; + plcbit ParametersValid; + float Gain; + float TimeConstant; + double Numerator[2]; + double Denominator[2]; + double BVector[2]; + double AVector[2]; + double XVector[2]; + plcbit PresetOK; + double PresetCoefficients; + float InOld; + plcbit UpdateOld; + plcbit EnableOld; + plcbit EnableDone; + plcbit DisabledBusy; + unsigned long CounterOld; + plcbit SysRefParaNew; + struct MTTransferFcnType SystemReference; +} MTBasicsDT1InternalType; + +typedef struct MTBasicsDT2InternalType +{ float CycleTime; + plcbit ParametersValid; + float Gain; + float TimeConstant1; + float TimeConstant2; + double Numerator[3]; + double Denominator[3]; + double BVector[3]; + double AVector[3]; + double XVector[2]; + plcbit PresetOK; + double PresetCoefficients; + float InOld; + plcbit UpdateOld; + plcbit EnableOld; + plcbit EnableDone; + plcbit DisabledBusy; + unsigned long CounterOld; + plcbit SysRefParaNew; + struct MTTransferFcnType SystemReference; +} MTBasicsDT2InternalType; + +typedef struct MTBasicsIntegratorInternalType +{ float CycleTime; + plcbit ParametersValid; + float Gain; + double BVector[2]; + double AVector[2]; + double XVector; + float OutPresetValue; + plcbit SetOutOld; + plcbit UpdateOld; + plcbit EnableOld; + plcbit EnableDone; + plcbit DisabledBusy; + unsigned long CounterOld; + plcbit SysRefParaNew; + struct MTTransferFcnType SystemReference; +} MTBasicsIntegratorInternalType; + +typedef struct MTBasicsLevelCtrlParType +{ float OutputValue1; + float OutputValue2; + float OutputValue3; + float ThresholdLevel1; + float ThresholdLevel2; + float ThresholdLevel3; + float ThresholdLevel4; +} MTBasicsLevelCtrlParType; + +typedef struct MTBasicsLevelCtrlInternalType +{ float CycleTime; + plcbit ParametersValid; + struct MTBasicsLevelCtrlParType Parameter; + unsigned char State; + plcbit UpdateOld; + plcbit EnableOld; +} MTBasicsLevelCtrlInternalType; + +typedef struct MTBasicsLimiterInternalType +{ float CycleTime; + plcbit ParametersValid; + float MaxOut; + float MinOut; + float MaxPosSlewRate; + float MaxNegSlewRate; + float Out; + float OutOld; + float UpperOutLimit; + float LowerOutLimit; + plcbit SetOutOld; + plcbit UpdateOld; + plcbit EnableOld; +} MTBasicsLimiterInternalType; + +typedef struct MTBasicsOscTuningInternalType +{ float CycleTime; + plcbit ParametersValid; + unsigned char State; + float CriticalGain; + float OscillationPeriod; + unsigned char NumberOfOscillations; + unsigned char NumberOfPhases; + float MaxRelayOut; + float MinRelayOut; + float SetValue; + float AverageOutValue; + float MaxActValueTime[4]; + float MinActValueTime[4]; + float MaxActValue[4]; + float MinActValue[4]; + float TuningTime; + float StartingActValue; + float ControlError; + float ActValueAverageAmplitude; + float AverageActValue; + float AverageMaxActValue; + float AverageMinActValue; + float AmplitudeRatio; + float DeltaOut; + signed char EffectiveDirection; + plcbit StartOld; + float MinOscillationAmplitude; + float MinOut; + float MaxOut; + float TemporaryQuality; + float TemporaryDerivativeTime; + float TemporaryIntegrationTime; + float TemporaryGain; + plcbit Update; + plcbit UpdateOld; + plcbit EnableOld; + float AverageOutValueSum; + double AverageTime; +} MTBasicsOscTuningInternalType; + +typedef struct MTBasicsPFMInternalType +{ float CycleTime; + plcbit ParametersValid; + float PulseWidth; + float In; + float OnTime; + float OffTime; + float PeriodCounter; + float MinPause; + plcbit UpdateOld; + plcbit EnableOld; +} MTBasicsPFMInternalType; + +typedef struct MTBasicsPIDParametersType +{ double Gain; + double IntegrationTime; + double DerivativeTime; + double FilterTime; +} MTBasicsPIDParametersType; + +typedef struct MTBasicsPIDInternalType +{ float CycleTime; + plcbit ParametersValid; + struct MTPIDParametersType PIDParameters; + float MinOut; + float MaxOut; + plcbit Invert; + float ControlError; + float ControlErrorOld; + float Out; + MTPIDIntegrationEnum HoldIntegration; + float IntegrationPartPresetValue; + plcbit SetIntegrationPart; + plcbit SetIntegrationPartOld; + plcbit EnableTrackingOld; + signed long PID_StatusID; + plcbit UpdateOld; + plcbit EnableOld; + plcbit EnableDone; + plcbit DisabledBusy; + unsigned long CounterOld; + plcbit SysRefParaNew; + struct MTTransferFcnType SystemReference; + struct MTBasicsPIDParametersType PIDParametersLREAL; + double PIDOutput; + double ProportionalPart; + double IntegrationPart; + double DerivativePart; +} MTBasicsPIDInternalType; + +typedef struct MTBasicsPT1InternalType +{ float CycleTime; + plcbit ParametersValid; + float Gain; + float TimeConstant; + double Numerator[2]; + double Denominator[2]; + double BVector[2]; + double AVector[2]; + double XVector[2]; + float OutPresetValue; + double PresetCoefficients; + plcbit PresetOK; + plcbit SetOutOld; + plcbit UpdateOld; + plcbit EnableOld; + plcbit EnableDone; + plcbit DisabledBusy; + unsigned long CounterOld; + plcbit SysRefParaNew; + struct MTTransferFcnType SystemReference; +} MTBasicsPT1InternalType; + +typedef struct MTBasicsPT2InternalType +{ float CycleTime; + plcbit ParametersValid; + float Gain; + float TimeConstant1; + float TimeConstant2; + double Numerator[3]; + double Denominator[3]; + double BVector[3]; + double AVector[3]; + double XVector[2]; + float OutPresetValue; + double PresetCoefficients; + plcbit PresetOK; + plcbit SetOutOld; + plcbit UpdateOld; + plcbit EnableOld; + plcbit EnableDone; + plcbit DisabledBusy; + unsigned long CounterOld; + plcbit SysRefParaNew; + struct MTTransferFcnType SystemReference; +} MTBasicsPT2InternalType; + +typedef struct MTBasicsPWMInternalType +{ float CycleTime; + plcbit ParametersValid; + enum MTBasicsPWMModeEnum Mode; + float MinPulseWidth; + float Period; + float In; + float OnTime; + float OffTime; + float PeriodCounter; + float OnTimeCounter; + plcbit UpdateOld; + plcbit EnableOld; +} MTBasicsPWMInternalType; + +typedef struct MTBasicsPWMScheduleBufferPtrType +{ float OnTime1; + float OnTime2; + float OffTime1; + float OffTime2; +} MTBasicsPWMScheduleBufferPtrType; + +typedef struct MTBasicsPWMScheduleBufferType +{ unsigned short ActIndex; + unsigned short NrOfBufferElements; + struct MTBasicsPWMScheduleBufferPtrType* TimePar; + float* DutyCycle; + float* ZonePower; + plcbit* Out; +} MTBasicsPWMScheduleBufferType; + +typedef struct MTBasicsPWMScheduleInternalType +{ float CycleTime; + float Period; + float MinPulseWidth; + float MinPause; + float MaxAveragePower; + float FreeDutyCycle; + float PeriodCounter; + float OutputPower; + float RequiredPower; + float LimitationFactor; + plcbit EnablePowerLimitationOld; + plcbit EnableOld; + plcbit UpdateOld; + plcbit EnableParametersValid; + plcbit PowerParValid; + plcbit ParametersValid; + enum MTBasicsPWMScheduleModeEnum Mode; + struct MTBasicsPWMScheduleBufferType Buffer; +} MTBasicsPWMScheduleInternalType; + +typedef struct MTBasicsStepTuningBufElemType +{ unsigned long TimeIndex; + double In; + double IntIn; + double IntTimeIn; + double IntTime2In; + double Int2In; + double Int3In; + double TSum; + double dTSum; + double d2TSum; + double dyACD; + double d2yACD; + double d3yACD; + double DiffIn; + double Diff2In; +} MTBasicsStepTuningBufElemType; + +typedef struct MTBasicsStepTuningInternalType +{ float CycleTime; + plcbit ParametersValid; + float MinActValue; + float MaxActValue; + float MaxTuningTime; + float StepHeight; + enum MTBasicsStepTuningStateEnum State; + float TuningTime; + float Area; + float StartActValue; + float SumTime; + float PlantGain; + float LQError; + float LQOutput[2]; + float LQParameterVector[3]; + float ActValueOld; + float SystemSettlingTime; + unsigned short SettlingIndex; + unsigned short NumberOfSettlingValues; + float NoiseDeadBand; + plcbit StartOld; + plcbit UpdateOld; + plcbit EnableOld; + float Slope; +} MTBasicsStepTuningInternalType; + +typedef struct MTBasicsTimeDelayFcnParaType +{ unsigned long DelayCounter; + unsigned long ActBufferIndex; + unsigned long ActBufferElements; + unsigned long OldBufferElements; + float DelayTimeAct; + float* BufferPointer; +} MTBasicsTimeDelayFcnParaType; + +typedef struct MTBasicsTimeDelayInternalType +{ float CycleTime; + float DelayTime; + plcbit ParametersValid; + float InitialValue; + plcbit EnableOld; + struct MTBasicsTimeDelayFcnParaType TimeDelayFcnPara; +} MTBasicsTimeDelayInternalType; + +typedef struct MTBasicsTransferFcnInternalType +{ float CycleTime; + plcbit UpdateOld; + plcbit EnableOld; + plcbit EnableDone; + unsigned char DisabledBusy; + plcbit ParametersValid; + double Numerator[6]; + double Denominator[6]; + enum MTBasicsTransferFcnModeEnum Mode; + plcbit SysRefParaNew; + unsigned long CounterOld; + unsigned char Order; + plcbit PresetOK; + double PresetCoefficients; + double BVector[6]; + double AVector[6]; + double XVector[5]; + float OutPresetValue; + plcbit SetOut; + plcbit SetOutOld; + unsigned char nTmp; + struct MTTransferFcnType SystemReference; +} MTBasicsTransferFcnInternalType; + +typedef struct MTBasicsDT1 +{ + /* VAR_INPUT (analog) */ + float Gain; + float TimeConstant; + float In; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + unsigned long SystemReference; + /* VAR (analog) */ + struct MTBasicsDT1InternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + /* VAR_OUTPUT (digital) */ + plcbit Busy; + plcbit Active; + plcbit Error; + plcbit UpdateDone; +} MTBasicsDT1_typ; + +typedef struct MTBasicsDT2 +{ + /* VAR_INPUT (analog) */ + float Gain; + float TimeConstant1; + float TimeConstant2; + float In; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + unsigned long SystemReference; + /* VAR (analog) */ + struct MTBasicsDT2InternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + /* VAR_OUTPUT (digital) */ + plcbit Busy; + plcbit Active; + plcbit Error; + plcbit UpdateDone; +} MTBasicsDT2_typ; + +typedef struct MTBasicsIntegrator +{ + /* VAR_INPUT (analog) */ + float Gain; + float In; + float OutPresetValue; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + unsigned long SystemReference; + /* VAR (analog) */ + struct MTBasicsIntegratorInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + plcbit SetOut; + plcbit HoldOut; + /* VAR_OUTPUT (digital) */ + plcbit Busy; + plcbit Active; + plcbit Error; + plcbit UpdateDone; +} MTBasicsIntegrator_typ; + +typedef struct MTBasicsLevelController +{ + /* VAR_INPUT (analog) */ + struct MTBasicsLevelCtrlParType Parameter; + float In; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + /* VAR (analog) */ + struct MTBasicsLevelCtrlInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; + plcbit UpdateDone; +} MTBasicsLevelController_typ; + +typedef struct MTBasicsLimiter +{ + /* VAR_INPUT (analog) */ + float MinOut; + float MaxOut; + float MaxPosSlewRate; + float MaxNegSlewRate; + float In; + float OutPresetValue; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + /* VAR (analog) */ + struct MTBasicsLimiterInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + plcbit SetOut; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; + plcbit UpdateDone; +} MTBasicsLimiter_typ; + +typedef struct MTBasicsOscillationTuning +{ + /* VAR_INPUT (analog) */ + float SetValue; + float MinOut; + float MaxOut; + float ActValue; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + float Quality; + struct MTPIDParametersType PIDParameters; + /* VAR (analog) */ + struct MTBasicsOscTuningInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Invert; + plcbit Update; + plcbit Start; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; + plcbit UpdateDone; + plcbit TuningActive; + plcbit TuningDone; +} MTBasicsOscillationTuning_typ; + +typedef struct MTBasicsPFM +{ + /* VAR_INPUT (analog) */ + float PulseWidth; + float MinPause; + float DutyCycle; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + /* VAR (analog) */ + struct MTBasicsPFMInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; + plcbit UpdateDone; + plcbit Out; +} MTBasicsPFM_typ; + +typedef struct MTBasicsPID +{ + /* VAR_INPUT (analog) */ + struct MTPIDParametersType PIDParameters; + float MinOut; + float MaxOut; + float SetValue; + float ActValue; + float IntegrationPartPresetValue; + float TrackingValue; + MTPIDIntegrationEnum HoldIntegration; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + float ControlError; + float ProportionalPart; + float IntegrationPart; + float DerivativePart; + MTPIDIntegrationEnum IntegrationStatus; + unsigned long SystemReference; + /* VAR (analog) */ + struct MTBasicsPIDInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Invert; + plcbit Update; + plcbit SetIntegrationPart; + plcbit HoldOut; + plcbit EnableTracking; + /* VAR_OUTPUT (digital) */ + plcbit Busy; + plcbit Active; + plcbit Error; + plcbit UpdateDone; + plcbit TrackingActive; +} MTBasicsPID_typ; + +typedef struct MTBasicsPT1 +{ + /* VAR_INPUT (analog) */ + float Gain; + float TimeConstant; + float In; + float OutPresetValue; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + unsigned long SystemReference; + /* VAR (analog) */ + struct MTBasicsPT1InternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + plcbit SetOut; + /* VAR_OUTPUT (digital) */ + plcbit Busy; + plcbit Active; + plcbit Error; + plcbit UpdateDone; +} MTBasicsPT1_typ; + +typedef struct MTBasicsPT2 +{ + /* VAR_INPUT (analog) */ + float Gain; + float TimeConstant1; + float TimeConstant2; + float In; + float OutPresetValue; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + unsigned long SystemReference; + /* VAR (analog) */ + struct MTBasicsPT2InternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + plcbit SetOut; + /* VAR_OUTPUT (digital) */ + plcbit Busy; + plcbit Active; + plcbit Error; + plcbit UpdateDone; +} MTBasicsPT2_typ; + +typedef struct MTBasicsPWM +{ + /* VAR_INPUT (analog) */ + enum MTBasicsPWMModeEnum Mode; + float MinPulseWidth; + float Period; + float DutyCycle; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + /* VAR (analog) */ + struct MTBasicsPWMInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; + plcbit UpdateDone; + plcbit Out; +} MTBasicsPWM_typ; + +typedef struct MTBasicsPWMSchedule +{ + /* VAR_INPUT (analog) */ + float Period; + float MinPulseWidth; + float MinPause; + enum MTBasicsPWMScheduleModeEnum Mode; + unsigned short NumberOfInputs; + unsigned long DutyCycle; + unsigned long ZonePower; + float MaxAveragePower; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + unsigned long PulseWave; + unsigned long LimitedDutyCycle; + float OutputPower; + float RequiredPower; + /* VAR (analog) */ + struct MTBasicsPWMScheduleInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + plcbit EnablePowerLimitation; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; + plcbit UpdateDone; + plcbit PowerLimitationActive; + plcbit InLimitation; +} MTBasicsPWMSchedule_typ; + +typedef struct MTBasicsStepTuning +{ + /* VAR_INPUT (analog) */ + float SystemSettlingTime; + float MaxTuningTime; + float MinActValue; + float MaxActValue; + float ActValue; + float StepHeight; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + struct MTPIDParametersType PIDParameters; + float Quality; + enum MTBasicsStepTuningStateEnum TuningState; + /* VAR (analog) */ + struct MTBasicsStepTuningInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + plcbit Start; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; + plcbit UpdateDone; + plcbit TuningActive; + plcbit TuningDone; +} MTBasicsStepTuning_typ; + +typedef struct MTBasicsTimeDelay +{ + /* VAR_INPUT (analog) */ + float DelayTime; + float In; + float InitialValue; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + /* VAR (analog) */ + struct MTBasicsTimeDelayInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; +} MTBasicsTimeDelay_typ; + +typedef struct MTBasicsTransferFcn +{ + /* VAR_INPUT (analog) */ + float Numerator[6]; + float Denominator[6]; + enum MTBasicsTransferFcnModeEnum Mode; + float In; + float OutPresetValue; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + unsigned long SystemReference; + /* VAR (analog) */ + struct MTBasicsTransferFcnInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + plcbit SetOut; + /* VAR_OUTPUT (digital) */ + plcbit Busy; + plcbit Active; + plcbit Error; + plcbit UpdateDone; +} MTBasicsTransferFcn_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void MTBasicsDT1(struct MTBasicsDT1* inst); +_BUR_PUBLIC void MTBasicsDT2(struct MTBasicsDT2* inst); +_BUR_PUBLIC void MTBasicsIntegrator(struct MTBasicsIntegrator* inst); +_BUR_PUBLIC void MTBasicsLevelController(struct MTBasicsLevelController* inst); +_BUR_PUBLIC void MTBasicsLimiter(struct MTBasicsLimiter* inst); +_BUR_PUBLIC void MTBasicsOscillationTuning(struct MTBasicsOscillationTuning* inst); +_BUR_PUBLIC void MTBasicsPFM(struct MTBasicsPFM* inst); +_BUR_PUBLIC void MTBasicsPID(struct MTBasicsPID* inst); +_BUR_PUBLIC void MTBasicsPT1(struct MTBasicsPT1* inst); +_BUR_PUBLIC void MTBasicsPT2(struct MTBasicsPT2* inst); +_BUR_PUBLIC void MTBasicsPWM(struct MTBasicsPWM* inst); +_BUR_PUBLIC void MTBasicsPWMSchedule(struct MTBasicsPWMSchedule* inst); +_BUR_PUBLIC void MTBasicsStepTuning(struct MTBasicsStepTuning* inst); +_BUR_PUBLIC void MTBasicsTimeDelay(struct MTBasicsTimeDelay* inst); +_BUR_PUBLIC void MTBasicsTransferFcn(struct MTBasicsTransferFcn* inst); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define mtBCD_INF_TUNING_ABORTED_BY_USER 1089471511 + #define mtBCD_INF_TIME_CONSTANT2_ZERO 1089471510 + #define mtBCD_INF_TIME_CONSTANT1_ZERO 1089471509 + #define mtBCD_WRN_NON_REALIZABLE_TF (-2131753930) + #define mtBCD_WRN_TF_PRESET_INVALID (-2131753931) + #define mtBCD_WRN_TF_ORDER_NOT_MINIMAL (-2131753932) + #define mtBCD_WRN_DENOM_COEFF_INVALID (-2131753933) + #define mtBCD_WRN_MODE_INVALID (-2131753936) + #define mtBCD_WRN_MIN_PAUSE_HIGH (-2131753937) + #define mtBCD_WRN_RANGE_INVALID (-2131753938) + #define mtBCD_WRN_STEP_HEIGHT_INVALID (-2131753939) + #define mtBCD_WRN_TUNING_TIME_INVALID (-2131753940) + #define mtBCD_WRN_SETTLING_TIME_INVALID (-2131753941) + #define mtBCD_WRN_PERIOD_LOW (-2131753944) + #define mtBCD_WRN_MIN_PULSE_LOW (-2131753945) + #define mtBCD_WRN_MIN_PULSE_HIGH (-2131753946) + #define mtBCD_WRN_FILTER_TIME_LOW (-2131753948) + #define mtBCD_WRN_NULL_PTR (-2131753950) + #define mtBCD_WRN_ZONE_POWER_INVALID (-2131753951) + #define mtBCD_WRN_MAX_AVG_POWER_INVALID (-2131753952) + #define mtBCD_WRN_GAIN_ZERO (-2131753953) + #define mtBCD_WRN_MIN_PAUSE_LOW (-2131753954) + #define mtBCD_WRN_PULSE_WIDTH_LOW (-2131753955) + #define mtBCD_WRN_MAX_NEG_SLEW_RATE_NEG (-2131753956) + #define mtBCD_WRN_MAX_POS_SLEW_RATE_NEG (-2131753957) + #define mtBCD_WRN_OUTPUT_LIMIT_INVALID (-2131753958) + #define mtBCD_WRN_OUT_VALUE_NOT_DEFINED (-2131753959) + #define mtBCD_WRN_THRESHOLD_INVALID (-2131753960) + #define mtBCD_WRN_THRESHOLD_NOT_DEFINED (-2131753961) + #define mtBCD_WRN_TIME_CONSTANT2_INVALID (-2131753962) + #define mtBCD_WRN_TIME_CONSTANT1_INVALID (-2131753963) + #define mtBCD_ERR_NON_REALIZABLE_TF (-1058012106) + #define mtBCD_ERR_TF_ORDER_NOT_MINIMAL (-1058012108) + #define mtBCD_ERR_DENOM_COEFF_INVALID (-1058012109) + #define mtBCD_ERR_NULL_PTR (-1058012110) + #define mtBCD_ERR_MODE_INVALID (-1058012111) + #define mtBCD_ERR_MIN_PAUSE_HIGH (-1058012112) + #define mtBCD_ERR_TUNING_INVALID (-1058012113) + #define mtBCD_ERR_RANGE_INVALID (-1058012114) + #define mtBCD_ERR_ACT_VALUE_NOT_STABLE (-1058012115) + #define mtBCD_ERR_TUNING_TIME_INVALID (-1058012116) + #define mtBCD_ERR_SETTLING_TIME_INVALID (-1058012117) + #define mtBCD_ERR_SAMPLING_INVALID (-1058012118) + #define mtBCD_ERR_NUMBER_OF_INPUTS (-1058012121) + #define mtBCD_ERR_PERIOD_LOW (-1058012122) + #define mtBCD_ERR_MIN_PULSE_LOW (-1058012123) + #define mtBCD_ERR_MIN_PULSE_HIGH (-1058012124) + #define mtBCD_ERR_MIN_PAUSE_LOW (-1058012130) + #define mtBCD_ERR_PULSE_WIDTH_LOW (-1058012131) + #define mtBCD_ERR_MAX_NEG_SLEW_RATE_NEG (-1058012132) + #define mtBCD_ERR_MAX_POS_SLEW_RATE_NEG (-1058012133) + #define mtBCD_ERR_OUTPUT_LIMIT_INVALID (-1058012134) + #define mtBCD_ERR_OUT_VALUE_NOT_DEFINED (-1058012135) + #define mtBCD_ERR_THRESHOLD_INVALID (-1058012136) + #define mtBCD_ERR_THRESHOLD_NOT_DEFINED (-1058012137) + #define mtBCD_ERR_TIME_CONSTANT2_INVALID (-1058012138) + #define mtBCD_ERR_TIME_CONSTANT1_INVALID (-1058012139) +#else + _GLOBAL_CONST signed long mtBCD_INF_TUNING_ABORTED_BY_USER; + _GLOBAL_CONST signed long mtBCD_INF_TIME_CONSTANT2_ZERO; + _GLOBAL_CONST signed long mtBCD_INF_TIME_CONSTANT1_ZERO; + _GLOBAL_CONST signed long mtBCD_WRN_NON_REALIZABLE_TF; + _GLOBAL_CONST signed long mtBCD_WRN_TF_PRESET_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_TF_ORDER_NOT_MINIMAL; + _GLOBAL_CONST signed long mtBCD_WRN_DENOM_COEFF_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_MODE_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_MIN_PAUSE_HIGH; + _GLOBAL_CONST signed long mtBCD_WRN_RANGE_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_STEP_HEIGHT_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_TUNING_TIME_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_SETTLING_TIME_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_PERIOD_LOW; + _GLOBAL_CONST signed long mtBCD_WRN_MIN_PULSE_LOW; + _GLOBAL_CONST signed long mtBCD_WRN_MIN_PULSE_HIGH; + _GLOBAL_CONST signed long mtBCD_WRN_FILTER_TIME_LOW; + _GLOBAL_CONST signed long mtBCD_WRN_NULL_PTR; + _GLOBAL_CONST signed long mtBCD_WRN_ZONE_POWER_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_MAX_AVG_POWER_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_GAIN_ZERO; + _GLOBAL_CONST signed long mtBCD_WRN_MIN_PAUSE_LOW; + _GLOBAL_CONST signed long mtBCD_WRN_PULSE_WIDTH_LOW; + _GLOBAL_CONST signed long mtBCD_WRN_MAX_NEG_SLEW_RATE_NEG; + _GLOBAL_CONST signed long mtBCD_WRN_MAX_POS_SLEW_RATE_NEG; + _GLOBAL_CONST signed long mtBCD_WRN_OUTPUT_LIMIT_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_OUT_VALUE_NOT_DEFINED; + _GLOBAL_CONST signed long mtBCD_WRN_THRESHOLD_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_THRESHOLD_NOT_DEFINED; + _GLOBAL_CONST signed long mtBCD_WRN_TIME_CONSTANT2_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_TIME_CONSTANT1_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_NON_REALIZABLE_TF; + _GLOBAL_CONST signed long mtBCD_ERR_TF_ORDER_NOT_MINIMAL; + _GLOBAL_CONST signed long mtBCD_ERR_DENOM_COEFF_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_NULL_PTR; + _GLOBAL_CONST signed long mtBCD_ERR_MODE_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_MIN_PAUSE_HIGH; + _GLOBAL_CONST signed long mtBCD_ERR_TUNING_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_RANGE_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_ACT_VALUE_NOT_STABLE; + _GLOBAL_CONST signed long mtBCD_ERR_TUNING_TIME_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_SETTLING_TIME_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_SAMPLING_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_NUMBER_OF_INPUTS; + _GLOBAL_CONST signed long mtBCD_ERR_PERIOD_LOW; + _GLOBAL_CONST signed long mtBCD_ERR_MIN_PULSE_LOW; + _GLOBAL_CONST signed long mtBCD_ERR_MIN_PULSE_HIGH; + _GLOBAL_CONST signed long mtBCD_ERR_MIN_PAUSE_LOW; + _GLOBAL_CONST signed long mtBCD_ERR_PULSE_WIDTH_LOW; + _GLOBAL_CONST signed long mtBCD_ERR_MAX_NEG_SLEW_RATE_NEG; + _GLOBAL_CONST signed long mtBCD_ERR_MAX_POS_SLEW_RATE_NEG; + _GLOBAL_CONST signed long mtBCD_ERR_OUTPUT_LIMIT_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_OUT_VALUE_NOT_DEFINED; + _GLOBAL_CONST signed long mtBCD_ERR_THRESHOLD_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_THRESHOLD_NOT_DEFINED; + _GLOBAL_CONST signed long mtBCD_ERR_TIME_CONSTANT2_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_TIME_CONSTANT1_INVALID; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _MTBASICS_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/MTLookUp/Binary.lby b/example/AsProject/Logical/Libraries/_AS/MTLookUp/Binary.lby new file mode 100644 index 0000000..dc0cce4 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTLookUp/Binary.lby @@ -0,0 +1,13 @@ + + + + + MTLookUp.fun + MTLookUp.typ + MTLookUp.var + + + + + + \ No newline at end of file diff --git a/example/AsProject/Logical/Libraries/_AS/MTLookUp/MTLookUp.fun b/example/AsProject/Logical/Libraries/_AS/MTLookUp/MTLookUp.fun new file mode 100644 index 0000000..217ba0f --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTLookUp/MTLookUp.fun @@ -0,0 +1,46 @@ + +{REDUND_OK} FUNCTION_BLOCK MTLookUpTable (*Lookup table.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enable function block.*) + NodeVectorX : ARRAY[0..49] OF REAL; (*Lookup table points on the X-Axis*) + FcnValues : ARRAY[0..49] OF REAL; (*Lookup table points on the Y-Axis*) + NumberOfNodes : USINT; (*Number of nodes from the node vector that are used to define the point-to-point linear function 'f(x)'. Valid value range: NumberOfNodes >= 0.*) + Update : BOOL; (*Changes to NumberOfNodes, Invert and the node vector listed above only go into effect at the positive edge of Update.*) + Mode : MTLookUpModeEnum; (*Mode to calculate the function values if the X-axis values lies byond the range of defined nodes.*) + InX : REAL; (*Abscissa value of 'f(x)' or 'f-1(x)'. Valid value range: X1 <= x <= Xn or Y1 <= x <= Yn.*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Error occured.*) + StatusID : DINT; (*Function block status information.*) + UpdateDone : BOOL; (*Update done.*) + Out : REAL; (*Ordinate value of 'f(x)' or 'f-1(x)'.*) + END_VAR + VAR + Internal : MTLookUpTableInternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} FUNCTION_BLOCK MTLookUpTable2D (*2D lookup table.*) (* $GROUP=mapp Control,$CAT=Control Tools,$GROUPICON=Icon_mapp.png,$CATICON=Icon_MpControlTools.png *) + VAR_INPUT + Enable : BOOL; (*Enable function block.*) + NodeVectorX : ARRAY[0..19] OF REAL; (*Lookup table points on the X-Axis*) + NodeVectorY : ARRAY[0..19] OF REAL; (*Lookup table points on the Y-Axis*) + FcnValues : ARRAY[0..19,0..19] OF REAL; (*Lookup table points on the Z-Axis*) + NumberOfNodesX : USINT; (*Number of nodes from the node vector that are used to define the 2D-function 'f(x,y)'. Valid value range: 21 > NumberOfNodesX > 1.*) + NumberOfNodesY : USINT; (*Number of nodes from the node vector that are used to define the 2D-function 'f(x,y)'. Valid value range: 21 > NumberOfNodesY > 1.*) + Update : BOOL; (*Changes to NumberOfNodesX, NumberOfNodesY and the node vector listed above only go into effect at the positive edge of Update.*) + InX : REAL; (*x-coordinate of 'f(x,y)'. Valid value range: X1 <= x <= Xj.*) + InY : REAL; (*y-coordinate of 'f(x,y)'. Valid value range: Y1 <= y <= Yk.*) + END_VAR + VAR_OUTPUT + Active : BOOL; (*Function block is active.*) + Error : BOOL; (*Error occured.*) + StatusID : DINT; (*Function block status information.*) + UpdateDone : BOOL; (*Update done.*) + Out : REAL; (*z-coordinate of 'z=f(x,y)'.*) + END_VAR + VAR + Internal : MTLookUpTable2DInternalType; (*Data for internal use.*) + END_VAR +END_FUNCTION_BLOCK diff --git a/example/AsProject/Logical/Libraries/_AS/MTLookUp/MTLookUp.typ b/example/AsProject/Logical/Libraries/_AS/MTLookUp/MTLookUp.typ new file mode 100644 index 0000000..6fe6fef --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTLookUp/MTLookUp.typ @@ -0,0 +1,47 @@ + +TYPE + MTLookUpTable2DInternalType : STRUCT (*Internal variables of function block MTLookUpTable2D().*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : {REDUND_UNREPLICABLE} BOOL; (*Data for internal use.*) + NumberOfNodesX : {REDUND_UNREPLICABLE} USINT; (*Data for internal use.*) + NumberOfNodesY : {REDUND_UNREPLICABLE} USINT; (*Data for internal use.*) + CoordinateOrderX : SINT; (*Data for internal use.*) + CoordinateOrderY : SINT; (*Data for internal use.*) + InX : REAL; (*Data for internal use.*) + InY : REAL; (*Data for internal use.*) + DisModeX : SINT; (*Data for internal use.*) + DisModeY : SINT; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : {REDUND_UNREPLICABLE} BOOL; (*Data for internal use.*) + Nodes : REFERENCE TO MTLookUpInternalNode2DType; (*Data for internal use.*) + END_STRUCT; + MTLookUpInternalNode2DType : STRUCT (*Internal variables of a linearization node*) + XValues : REAL; + YValues : REAL; + FcnValues : REAL; + k : ARRAY[0..1]OF REAL; + END_STRUCT; + MTLookUpInternalNodeType : STRUCT (*Internal variables of a linearization node*) + XValues : REAL; + FcnValues : REAL; + k : REAL; + d : REAL; + END_STRUCT; + MTLookUpTableInternalType : STRUCT (*Internal variables of function block MTLookUpTable().*) + CycleTime : REAL; (*Task cycle time. Unit: [s].*) + ParametersValid : BOOL; (*Data for internal use.*) + NumberOfNodes : USINT; (*Data for internal use.*) + CoordinateOrder : SINT; (*Data for internal use.*) + InX : REAL; (*Data for internal use.*) + DisMode : SINT; (*Data for internal use.*) + UpdateOld : BOOL; (*Data for internal use.*) + EnableOld : BOOL; (*Data for internal use.*) + Nodes : ARRAY[0..49]OF MTLookUpInternalNodeType; (*Data for internal use.*) + Mode : MTLookUpModeEnum; (*Data for internal use.*) + END_STRUCT; + MTLookUpModeEnum : + ( + mtLOOKUP_CONSTANT_END_VALUE := 0, (*Auerhalb des Sttzstellenbereichs werden die Randwerte konstant gehalten.*) + mtLOOKUP_LINEAR_EXTRAPOLATION := 1 (*Auerhalb des Sttzstellenbereichs wird anhand der beiden linken oder beiden rechten Randwerte linear extrapoliert.*) + ); +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/MTLookUp/MTLookUp.var b/example/AsProject/Logical/Libraries/_AS/MTLookUp/MTLookUp.var new file mode 100644 index 0000000..526be4b --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTLookUp/MTLookUp.var @@ -0,0 +1,20 @@ +(*Error*) +VAR CONSTANT + mtBCD_ERR_NODES_INVALID : DINT := -1058012184; (*Invalid number of nodes.*) + mtBCD_ERR_XVAL_NOT_SORTED : DINT := -1058012183; (*The values of the NodeVectorX are not sorted in ascending or descending order.*) + mtBCD_ERR_YVAL_NOT_SORTED : DINT := -1058012182; (*The values of the NodeVectorY are not sorted in ascending or descending order.*) + mtBCD_ERR_NODES_X_INVALID : DINT := -1058012181; (*Invalid number of nodes in X-direction.*) + mtBCD_ERR_NODES_Y_INVALID : DINT := -1058012180; (*Invalid number of nodes in Y-direction.*) + mtBCD_ERR_LOOKUP_MODE_INVALID : DINT := -1058012179; (*Invalid mode.*) + mtBCD_ERR_LOOKUP_MEM_ALLOC : DINT := -1058012178; (*An error occurred during memory allocation.*) +END_VAR +(*Warning*) +VAR CONSTANT + mtBCD_WRN_NODES_INVALID : DINT := -2131754008; (*Invalid number of nodes.*) + mtBCD_WRN_XVAL_NOT_SORTED : DINT := -2131754007; (*The values of the NodeVectorX are not sorted in ascending or descending order.*) + mtBCD_WRN_YVAL_NOT_SORTED : DINT := -2131754006; (*The values of the NodeVectorY are not sorted in ascending or descending order.*) + mtBCD_WRN_NODES_X_INVALID : DINT := -2131754005; (*Invalid number of nodes in X-direction.*) + mtBCD_WRN_NODES_Y_INVALID : DINT := -2131754004; (*Invalid number of nodes in Y-direction.*) + mtBCD_WRN_LOOKUP_MODE_INVALID : DINT := -2131754003; (*Invalid mode.*) + mtBCD_WRN_LOOKUP_MEM_ALLOC : DINT := -2131754002; (*An error occurred during memory allocation.*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/ARM/MTLookUp.br b/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/ARM/MTLookUp.br new file mode 100644 index 0000000..c3a620c Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/ARM/MTLookUp.br differ diff --git a/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/ARM/libMTLookUp.a b/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/ARM/libMTLookUp.a new file mode 100644 index 0000000..ce8560a Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/ARM/libMTLookUp.a differ diff --git a/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/IA32/MTLookUp.br b/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/IA32/MTLookUp.br new file mode 100644 index 0000000..821c9be Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/IA32/MTLookUp.br differ diff --git a/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/IA32/libMTLookUp.a b/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/IA32/libMTLookUp.a new file mode 100644 index 0000000..e602bb4 Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/IA32/libMTLookUp.a differ diff --git a/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/MTLookUp.h b/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/MTLookUp.h new file mode 100644 index 0000000..539d22b --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTLookUp/SG4/MTLookUp.h @@ -0,0 +1,179 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ +/* MTLookUp 6.4.0 */ + +#ifndef _MTLOOKUP_ +#define _MTLOOKUP_ +#ifdef __cplusplus +extern "C" +{ +#endif +#ifndef _MTLookUp_VERSION +#define _MTLookUp_VERSION 6.4.0 +#endif + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +#ifdef _SG3 + #include "sys_lib.h" + #include "brsystem.h" +#endif + +#ifdef _SG4 + #include "sys_lib.h" + #include "brsystem.h" +#endif + +#ifdef _SGC + #include "sys_lib.h" + #include "brsystem.h" +#endif + + + +/* Datatypes and datatypes of function blocks */ +typedef enum MTLookUpModeEnum +{ mtLOOKUP_CONSTANT_END_VALUE = 0, + mtLOOKUP_LINEAR_EXTRAPOLATION = 1 +} MTLookUpModeEnum; + +typedef struct MTLookUpTable2DInternalType +{ float CycleTime; + plcbit ParametersValid; + unsigned char NumberOfNodesX; + unsigned char NumberOfNodesY; + signed char CoordinateOrderX; + signed char CoordinateOrderY; + float InX; + float InY; + signed char DisModeX; + signed char DisModeY; + plcbit UpdateOld; + plcbit EnableOld; + struct MTLookUpInternalNode2DType* Nodes; +} MTLookUpTable2DInternalType; + +typedef struct MTLookUpInternalNode2DType +{ float XValues; + float YValues; + float FcnValues; + float k[2]; +} MTLookUpInternalNode2DType; + +typedef struct MTLookUpInternalNodeType +{ float XValues; + float FcnValues; + float k; + float d; +} MTLookUpInternalNodeType; + +typedef struct MTLookUpTableInternalType +{ float CycleTime; + plcbit ParametersValid; + unsigned char NumberOfNodes; + signed char CoordinateOrder; + float InX; + signed char DisMode; + plcbit UpdateOld; + plcbit EnableOld; + struct MTLookUpInternalNodeType Nodes[50]; + enum MTLookUpModeEnum Mode; +} MTLookUpTableInternalType; + +typedef struct MTLookUpTable +{ + /* VAR_INPUT (analog) */ + float NodeVectorX[50]; + float FcnValues[50]; + unsigned char NumberOfNodes; + enum MTLookUpModeEnum Mode; + float InX; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + /* VAR (analog) */ + struct MTLookUpTableInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; + plcbit UpdateDone; +} MTLookUpTable_typ; + +typedef struct MTLookUpTable2D +{ + /* VAR_INPUT (analog) */ + float NodeVectorX[20]; + float NodeVectorY[20]; + float FcnValues[20][20]; + unsigned char NumberOfNodesX; + unsigned char NumberOfNodesY; + float InX; + float InY; + /* VAR_OUTPUT (analog) */ + signed long StatusID; + float Out; + /* VAR (analog) */ + struct MTLookUpTable2DInternalType Internal; + /* VAR_INPUT (digital) */ + plcbit Enable; + plcbit Update; + /* VAR_OUTPUT (digital) */ + plcbit Active; + plcbit Error; + plcbit UpdateDone; +} MTLookUpTable2D_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void MTLookUpTable(struct MTLookUpTable* inst); +_BUR_PUBLIC void MTLookUpTable2D(struct MTLookUpTable2D* inst); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define mtBCD_WRN_LOOKUP_MEM_ALLOC (-2131754002) + #define mtBCD_WRN_LOOKUP_MODE_INVALID (-2131754003) + #define mtBCD_WRN_NODES_Y_INVALID (-2131754004) + #define mtBCD_WRN_NODES_X_INVALID (-2131754005) + #define mtBCD_WRN_YVAL_NOT_SORTED (-2131754006) + #define mtBCD_WRN_XVAL_NOT_SORTED (-2131754007) + #define mtBCD_WRN_NODES_INVALID (-2131754008) + #define mtBCD_ERR_LOOKUP_MEM_ALLOC (-1058012178) + #define mtBCD_ERR_LOOKUP_MODE_INVALID (-1058012179) + #define mtBCD_ERR_NODES_Y_INVALID (-1058012180) + #define mtBCD_ERR_NODES_X_INVALID (-1058012181) + #define mtBCD_ERR_YVAL_NOT_SORTED (-1058012182) + #define mtBCD_ERR_XVAL_NOT_SORTED (-1058012183) + #define mtBCD_ERR_NODES_INVALID (-1058012184) +#else + _GLOBAL_CONST signed long mtBCD_WRN_LOOKUP_MEM_ALLOC; + _GLOBAL_CONST signed long mtBCD_WRN_LOOKUP_MODE_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_NODES_Y_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_NODES_X_INVALID; + _GLOBAL_CONST signed long mtBCD_WRN_YVAL_NOT_SORTED; + _GLOBAL_CONST signed long mtBCD_WRN_XVAL_NOT_SORTED; + _GLOBAL_CONST signed long mtBCD_WRN_NODES_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_LOOKUP_MEM_ALLOC; + _GLOBAL_CONST signed long mtBCD_ERR_LOOKUP_MODE_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_NODES_Y_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_NODES_X_INVALID; + _GLOBAL_CONST signed long mtBCD_ERR_YVAL_NOT_SORTED; + _GLOBAL_CONST signed long mtBCD_ERR_XVAL_NOT_SORTED; + _GLOBAL_CONST signed long mtBCD_ERR_NODES_INVALID; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _MTLOOKUP_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/MTTypes/MTTypes.typ b/example/AsProject/Logical/Libraries/_AS/MTTypes/MTTypes.typ new file mode 100644 index 0000000..5cc4859 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTTypes/MTTypes.typ @@ -0,0 +1,63 @@ + +TYPE + MTBodeType : STRUCT (*Bode diagram data.*) + FrequencyVector : ARRAY[0..160]OF REAL; (*Frequency vector. Unit: [Hz].*) + MagnitudeVector : ARRAY[0..160]OF REAL; (*Magnitude vector. Unit: [dB].*) + PhaseVector : ARRAY[0..160]OF REAL; (*Phase vector. Unit: [].*) + MinFrequency : REAL; (*Minimum frequency shown on the Bode plot. Unit: [Hz].*) + MaxFrequency : REAL; (*Maximum frequency shown on the Bode plot. Unit: [Hz].*) + MinMagnitude : REAL; (*Minimum magnitude shown on the Bode plot. Unit: [dB].*) + MaxMagnitude : REAL; (*Maximum magnitude shown on the Bode plot. Unit: [dB].*) + MinPhase : REAL; (*Minimum phase shown on the Bode plot. Unit: [].*) + MaxPhase : REAL; (*Maximum phase shown on the Bode plot. Unit: [].*) + END_STRUCT; + MTCommType : STRUCT (*Datatype for internal use.*) + ID : DINT; (*Datatype for internal use.*) + Valid : BOOL; (*Datatype for internal use.*) + Counter : UDINT; (*Datatype for internal use.*) + END_STRUCT; + MTFrequencyResponseType : STRUCT (*Datatype for internal use.*) + Communication : MTCommType; (*Datatype for internal use.*) + Frequency : ARRAY[0..160]OF REAL; (*Datatype for internal use.*) + Magnitude : ARRAY[0..160]OF REAL; (*Datatype for internal use.*) + Phase : ARRAY[0..160]OF REAL; (*Datatype for internal use.*) + MinFrequency : REAL; (*Datatype for internal use.*) + MaxFrequency : REAL; (*Datatype for internal use.*) + MinMagnitude : REAL; (*Datatype for internal use.*) + MaxMagnitude : REAL; (*Datatype for internal use.*) + MinPhase : REAL; (*Datatype for internal use.*) + MaxPhase : REAL; (*Datatype for internal use.*) + CheckID : DINT := -20583; (*Datatype for internal use.*) + END_STRUCT; + MTPIDIntegrationEnum : + ( (*PID integration enumeration.*) + mtINTEGRATION_FREE := 0, (*PID integration part can increase or decrease.*) + mtHOLD_INTEGRATION_POSITIVE := +1, (*The output has reached its maximum allowed value and the integration has stopped.*) + mtHOLD_INTEGRATION_NEGATIVE := -1 (*The output has reached its minimum allowed value and the integration has stopped.*) + ); + MTPIDParametersType : STRUCT (*PID parameters type.*) + Gain : REAL; (*Proportional gain. Permitted range of values: Gain> 0.*) + IntegrationTime : REAL; (*Integral action time of the integral component. Unit: [s]. Permitted range of values: IntegrationTime = 0s or IntegrationTime >= task cycle time*) + DerivativeTime : REAL; (*Derivative time (derivative action time) of the derivative component. Unit: [s]. Permitted range of values: DerivativeTime >= 0s.*) + FilterTime : REAL; (*Filter time constant of the derivative component. Unit: [s]. Permitted range of values: FilterTime >= 0s.*) + END_STRUCT; + MTStateSpaceType : STRUCT (*Datatype for internal use.*) + Communication : MTCommType; (*Datatype for internal use.*) + A : REFERENCE TO LREAL; (*Datatype for internal use.*) + B : REFERENCE TO LREAL; (*Datatype for internal use.*) + C : REFERENCE TO LREAL; (*Datatype for internal use.*) + D : REFERENCE TO LREAL; (*Datatype for internal use.*) + NbStates : USINT; (*Datatype for internal use.*) + NbInputs : USINT; (*Datatype for internal use.*) + NbOutputs : USINT; (*Datatype for internal use.*) + SampleTime : REAL; (*Datatype for internal use.*) + CheckID : DINT := -52417; (*Datatype for internal use.*) + END_STRUCT; + MTTransferFcnType : STRUCT (*Datatype for internal use.*) + Communication : MTCommType; (*Datatype for internal use.*) + Numerator : ARRAY[0..5]OF REAL; (*Datatype for internal use.*) + Denominator : ARRAY[0..5]OF REAL; (*Datatype for internal use.*) + SampleTime : REAL; (*Datatype for internal use.*) + CheckID : DINT := -45012; (*Datatype for internal use.*) + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/MTTypes/MTTypes.var b/example/AsProject/Logical/Libraries/_AS/MTTypes/MTTypes.var new file mode 100644 index 0000000..28b78fe --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTTypes/MTTypes.var @@ -0,0 +1,25 @@ +(*Errors: General*) +VAR CONSTANT + mtGNR_ERR_MEM_ALLOC_FAILED : DINT := -1058013181; (*Error during memory assignment.*) + mtGNR_ERR_SAMPLE_TIME_INVALID : DINT := -1058013180; (*Sample time is invalid.*) + mtGNR_ERR_GAIN_NEGATIVE : DINT := -1058013179; (*The selected gain is negative.*) + mtGNR_ERR_INTEGRATION_TIME_NEG : DINT := -1058013178; (*The selected integration time is negative.*) + mtGNR_ERR_DERIVATIVE_TIME_NEG : DINT := -1058013177; (*The selected derivative time is negative.*) + mtGNR_ERR_FILTER_TIME_NEGATIVE : DINT := -1058013176; (*The selected filter time is negative.*) + mtGNR_ERR_DELAY_TIME_NEGATIVE : DINT := -1058013175; (*The selected delay time is negative.*) + mtGNR_ERR_DELAY_TIME_HIGH : DINT := -1058013174; (*The selected delay time is too high.*) + mtGNR_ERR_OUTPUT_LIMIT_INVALID : DINT := -1058013173; (*The limits selected for the output are invalid.*) + mtGNR_ERR_DELAY_TIME_TOO_HIGH : DINT := -1058013172; (*The selected delay time is too high.*) +END_VAR +(*Warnings:General*) +VAR CONSTANT + mtGNR_WRN_OTHER_FB_USES_SYSREF : DINT := -2131755007; (*Another function block uses the data in this SystemReference.*) + mtGNR_WRN_MEM_ALLOC_FAILED : DINT := -2131755006; (*Error during memory assignment.*) + mtGNR_WRN_GAIN_NEGATIVE : DINT := -2131755005; (*The selected gain is negative.*) + mtGNR_WRN_INTEGRATION_TIME_NEG : DINT := -2131755004; (*The selected integration time is negative.*) + mtGNR_WRN_DERIVATIVE_TIME_NEG : DINT := -2131755003; (*The selected derivative time is negative.*) + mtGNR_WRN_FILTER_TIME_NEGATIVE : DINT := -2131755002; (*The selected filter time is negative.*) + mtGNR_WRN_OUTPUT_LIMIT_INVALID : DINT := -2131755001; (*The limits selected for the output are invalid.*) + mtGNR_WRN_DELAY_TIME_NEGATIVE : DINT := -2131755000; (*The selected delay time is negative.*) + mtGNR_WRN_DELAY_TIME_TOO_HIGH : DINT := -2131754999; (*The selected delay time is too high.*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/ARM/MTTypes.br b/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/ARM/MTTypes.br new file mode 100644 index 0000000..171af41 Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/ARM/MTTypes.br differ diff --git a/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/ARM/libMTTypes.a b/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/ARM/libMTTypes.a new file mode 100644 index 0000000..5b3916f Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/ARM/libMTTypes.a differ diff --git a/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/IA32/MTTypes.br b/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/IA32/MTTypes.br new file mode 100644 index 0000000..d47de1e Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/IA32/MTTypes.br differ diff --git a/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/IA32/libMTTypes.a b/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/IA32/libMTTypes.a new file mode 100644 index 0000000..ef9f990 Binary files /dev/null and b/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/IA32/libMTTypes.a differ diff --git a/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/MTTypes.h b/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/MTTypes.h new file mode 100644 index 0000000..57c849a --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTTypes/SG4/MTTypes.h @@ -0,0 +1,142 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ +/* MTTypes 6.0.0 */ + +#ifndef _MTTYPES_ +#define _MTTYPES_ +#ifdef __cplusplus +extern "C" +{ +#endif +#ifndef _MTTypes_VERSION +#define _MTTypes_VERSION 6.0.0 +#endif + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef enum MTPIDIntegrationEnum +{ mtINTEGRATION_FREE = 0, + mtHOLD_INTEGRATION_POSITIVE = 1, + mtHOLD_INTEGRATION_NEGATIVE = -1 +} MTPIDIntegrationEnum; + +typedef struct MTBodeType +{ float FrequencyVector[161]; + float MagnitudeVector[161]; + float PhaseVector[161]; + float MinFrequency; + float MaxFrequency; + float MinMagnitude; + float MaxMagnitude; + float MinPhase; + float MaxPhase; +} MTBodeType; + +typedef struct MTCommType +{ signed long ID; + plcbit Valid; + unsigned long Counter; +} MTCommType; + +typedef struct MTFrequencyResponseType +{ struct MTCommType Communication; + float Frequency[161]; + float Magnitude[161]; + float Phase[161]; + float MinFrequency; + float MaxFrequency; + float MinMagnitude; + float MaxMagnitude; + float MinPhase; + float MaxPhase; + signed long CheckID; +} MTFrequencyResponseType; + +typedef struct MTPIDParametersType +{ float Gain; + float IntegrationTime; + float DerivativeTime; + float FilterTime; +} MTPIDParametersType; + +typedef struct MTStateSpaceType +{ struct MTCommType Communication; + double* A; + double* B; + double* C; + double* D; + unsigned char NbStates; + unsigned char NbInputs; + unsigned char NbOutputs; + float SampleTime; + signed long CheckID; +} MTStateSpaceType; + +typedef struct MTTransferFcnType +{ struct MTCommType Communication; + float Numerator[6]; + float Denominator[6]; + float SampleTime; + signed long CheckID; +} MTTransferFcnType; + + + + + + +/* Constants */ +#ifdef _REPLACE_CONST + #define mtGNR_WRN_DELAY_TIME_TOO_HIGH (-2131754999) + #define mtGNR_WRN_DELAY_TIME_NEGATIVE (-2131755000) + #define mtGNR_WRN_OUTPUT_LIMIT_INVALID (-2131755001) + #define mtGNR_WRN_FILTER_TIME_NEGATIVE (-2131755002) + #define mtGNR_WRN_DERIVATIVE_TIME_NEG (-2131755003) + #define mtGNR_WRN_INTEGRATION_TIME_NEG (-2131755004) + #define mtGNR_WRN_GAIN_NEGATIVE (-2131755005) + #define mtGNR_WRN_MEM_ALLOC_FAILED (-2131755006) + #define mtGNR_WRN_OTHER_FB_USES_SYSREF (-2131755007) + #define mtGNR_ERR_DELAY_TIME_TOO_HIGH (-1058013172) + #define mtGNR_ERR_OUTPUT_LIMIT_INVALID (-1058013173) + #define mtGNR_ERR_DELAY_TIME_HIGH (-1058013174) + #define mtGNR_ERR_DELAY_TIME_NEGATIVE (-1058013175) + #define mtGNR_ERR_FILTER_TIME_NEGATIVE (-1058013176) + #define mtGNR_ERR_DERIVATIVE_TIME_NEG (-1058013177) + #define mtGNR_ERR_INTEGRATION_TIME_NEG (-1058013178) + #define mtGNR_ERR_GAIN_NEGATIVE (-1058013179) + #define mtGNR_ERR_SAMPLE_TIME_INVALID (-1058013180) + #define mtGNR_ERR_MEM_ALLOC_FAILED (-1058013181) +#else + _GLOBAL_CONST signed long mtGNR_WRN_DELAY_TIME_TOO_HIGH; + _GLOBAL_CONST signed long mtGNR_WRN_DELAY_TIME_NEGATIVE; + _GLOBAL_CONST signed long mtGNR_WRN_OUTPUT_LIMIT_INVALID; + _GLOBAL_CONST signed long mtGNR_WRN_FILTER_TIME_NEGATIVE; + _GLOBAL_CONST signed long mtGNR_WRN_DERIVATIVE_TIME_NEG; + _GLOBAL_CONST signed long mtGNR_WRN_INTEGRATION_TIME_NEG; + _GLOBAL_CONST signed long mtGNR_WRN_GAIN_NEGATIVE; + _GLOBAL_CONST signed long mtGNR_WRN_MEM_ALLOC_FAILED; + _GLOBAL_CONST signed long mtGNR_WRN_OTHER_FB_USES_SYSREF; + _GLOBAL_CONST signed long mtGNR_ERR_DELAY_TIME_TOO_HIGH; + _GLOBAL_CONST signed long mtGNR_ERR_OUTPUT_LIMIT_INVALID; + _GLOBAL_CONST signed long mtGNR_ERR_DELAY_TIME_HIGH; + _GLOBAL_CONST signed long mtGNR_ERR_DELAY_TIME_NEGATIVE; + _GLOBAL_CONST signed long mtGNR_ERR_FILTER_TIME_NEGATIVE; + _GLOBAL_CONST signed long mtGNR_ERR_DERIVATIVE_TIME_NEG; + _GLOBAL_CONST signed long mtGNR_ERR_INTEGRATION_TIME_NEG; + _GLOBAL_CONST signed long mtGNR_ERR_GAIN_NEGATIVE; + _GLOBAL_CONST signed long mtGNR_ERR_SAMPLE_TIME_INVALID; + _GLOBAL_CONST signed long mtGNR_ERR_MEM_ALLOC_FAILED; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _MTTYPES_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/MTTypes/binary.lby b/example/AsProject/Logical/Libraries/_AS/MTTypes/binary.lby new file mode 100644 index 0000000..dec6486 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/MTTypes/binary.lby @@ -0,0 +1,8 @@ + + + + + MTTypes.typ + MTTypes.var + + \ No newline at end of file diff --git a/example/AsProject/Logical/Libraries/_AS/Package.pkg b/example/AsProject/Logical/Libraries/_AS/Package.pkg index 4d5f042..799806d 100644 --- a/example/AsProject/Logical/Libraries/_AS/Package.pkg +++ b/example/AsProject/Logical/Libraries/_AS/Package.pkg @@ -1,13 +1,39 @@ - - - - - AsBrStr - AsBrWStr - astime - operator - runtime - standard - sys_lib - + + + + + ArEventLog + AsARCfg + AsArProf + AsBrMath + AsBrStr + AsEPL + AsGuard + AsHttp + AsIO + AsIOAcc + AsIODiag + AsIOTime + AsMem + AsSem + astime + AsTCP + AsUDP + AsUSB + AsXml + AsZip + brsystem + DataObj + dvframe + FileIO + operator + runtime + standard + sys_lib + AsBrWStr + MTTypes + MTBasics + LoopConR + MTLookUp + \ No newline at end of file diff --git a/example/AsProject/Logical/Libraries/_AS/astime/SG3/astime.h b/example/AsProject/Logical/Libraries/_AS/astime/SG3/astime.h index b0c328a..afd9fd1 100644 --- a/example/AsProject/Logical/Libraries/_AS/astime/SG3/astime.h +++ b/example/AsProject/Logical/Libraries/_AS/astime/SG3/astime.h @@ -1,130 +1,130 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef _ASTIME_ -#define _ASTIME_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include - -#include - -#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_ */ - - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASTIME_ +#define _ASTIME_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#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_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/astime/SG4/astime.h b/example/AsProject/Logical/Libraries/_AS/astime/SG4/astime.h index d99f9bc..cba5941 100644 --- a/example/AsProject/Logical/Libraries/_AS/astime/SG4/astime.h +++ b/example/AsProject/Logical/Libraries/_AS/astime/SG4/astime.h @@ -1,365 +1,362 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef _ASTIME_ -#define _ASTIME_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include - -#include - -#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_ */ - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASTIME_ +#define _ASTIME_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#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); + + +/* 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 + _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 + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _ASTIME_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/astime/SGC/astime.h b/example/AsProject/Logical/Libraries/_AS/astime/SGC/astime.h index b0c328a..afd9fd1 100644 --- a/example/AsProject/Logical/Libraries/_AS/astime/SGC/astime.h +++ b/example/AsProject/Logical/Libraries/_AS/astime/SGC/astime.h @@ -1,130 +1,130 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef _ASTIME_ -#define _ASTIME_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include - -#include - -#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_ */ - - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _ASTIME_ +#define _ASTIME_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#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_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/astime/astime.fun b/example/AsProject/Logical/Libraries/_AS/astime/astime.fun index 23a6cf6..6abb927 100644 --- a/example/AsProject/Logical/Libraries/_AS/astime/astime.fun +++ b/example/AsProject/Logical/Libraries/_AS/astime/astime.fun @@ -1,333 +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 + +{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 diff --git a/example/AsProject/Logical/Libraries/_AS/astime/astime.typ b/example/AsProject/Logical/Libraries/_AS/astime/astime.typ index 3609d6e..18c2ab8 100644 --- a/example/AsProject/Logical/Libraries/_AS/astime/astime.typ +++ b/example/AsProject/Logical/Libraries/_AS/astime/astime.typ @@ -1,22 +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 + +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 diff --git a/example/AsProject/Logical/Libraries/_AS/astime/astime.var b/example/AsProject/Logical/Libraries/_AS/astime/astime.var index 70e0c26..870e37c 100644 --- a/example/AsProject/Logical/Libraries/_AS/astime/astime.var +++ b/example/AsProject/Logical/Libraries/_AS/astime/astime.var @@ -1,18 +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 + +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 diff --git a/example/AsProject/Logical/Libraries/_AS/astime/binary.lby b/example/AsProject/Logical/Libraries/_AS/astime/binary.lby index d4b0b7f..4ce250f 100644 --- a/example/AsProject/Logical/Libraries/_AS/astime/binary.lby +++ b/example/AsProject/Logical/Libraries/_AS/astime/binary.lby @@ -1,6 +1,6 @@ - - - + + + astime.fun astime.typ @@ -9,4 +9,4 @@ - \ No newline at end of file + diff --git a/example/AsProject/Logical/Libraries/_AS/brsystem/SG3/brsystem.h b/example/AsProject/Logical/Libraries/_AS/brsystem/SG3/brsystem.h new file mode 100644 index 0000000..c76d4d4 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/brsystem/SG3/brsystem.h @@ -0,0 +1,271 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _BRSYSTEM_ +#define _BRSYSTEM_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define brX2X 10U + #define brPP 255U + #define brCPU 1U + #define brKEY 8U + #define brDRAM 0U + #define br2003 2U + #define br2005 1U + #define br2010 0U + #define brC200 9U + #define brC300 8U + #define brADDON 7U + #define brPANEL 6U + #define brGLOBAL_REMANENT_PV 5U + #define brLOCAL_REMANENT_PV 4U + #define brUSRROM 3U + #define brSYSROM 2U + #define brUSRRAM 1U + #define brACOPOS 7U + #define brCAN_IO 5U + #define brBASE_IO 3U + #define brPRODUCT 0U + #define brETHER_IO 6U + #define brNO_FAMILY 255U + #define brREMOTE_IO 4U + #define brBATTERY_OK 1U + #define brPOWERPANEL 5U + #define brBATTERY_LOW 0U + #define brLOGICSCANNER 3U + #define brPLUGIN_MODULE 10U + #define brSYSTEM_MODULE 2U + #define brBATTERY_NOTEST 2U + #define TARGET_BIG_ENDIAN 2U + #define brBATTERY_MISSING 3U + #define INIT_REASON_UNKNOWN (-1) + #define INIT_REASON_DOWNLOAD 3 + #define TARGET_LITTLE_ENDIAN 1U + #define brAUTOMATION_RUNTIME 4U + #define brERR_INVALID_DEVICE 27250U + #define INIT_REASON_COLDSTART 2 + #define INIT_REASON_WARMSTART 1 + #define brSYSCONF_SET_VOLATILE 0 + #define brERR_INVALID_PARAMETER 27251U + #define brSYSCONF_SET_NON_VOLATILE 1 +#else + _IEC_CONST unsigned char brX2X = 10U; + _IEC_CONST unsigned char brPP = 255U; + _IEC_CONST unsigned char brCPU = 1U; + _IEC_CONST unsigned char brKEY = 8U; + _IEC_CONST unsigned long brDRAM = 0U; + _IEC_CONST unsigned char br2003 = 2U; + _IEC_CONST unsigned char br2005 = 1U; + _IEC_CONST unsigned char br2010 = 0U; + _IEC_CONST unsigned char brC200 = 9U; + _IEC_CONST unsigned char brC300 = 8U; + _IEC_CONST unsigned char brADDON = 7U; + _IEC_CONST unsigned char brPANEL = 6U; + _IEC_CONST unsigned long brGLOBAL_REMANENT_PV = 5U; + _IEC_CONST unsigned long brLOCAL_REMANENT_PV = 4U; + _IEC_CONST unsigned long brUSRROM = 3U; + _IEC_CONST unsigned long brSYSROM = 2U; + _IEC_CONST unsigned long brUSRRAM = 1U; + _IEC_CONST unsigned char brACOPOS = 7U; + _IEC_CONST unsigned char brCAN_IO = 5U; + _IEC_CONST unsigned char brBASE_IO = 3U; + _IEC_CONST unsigned char brPRODUCT = 0U; + _IEC_CONST unsigned char brETHER_IO = 6U; + _IEC_CONST unsigned char brNO_FAMILY = 255U; + _IEC_CONST unsigned char brREMOTE_IO = 4U; + _IEC_CONST unsigned char brBATTERY_OK = 1U; + _IEC_CONST unsigned char brPOWERPANEL = 5U; + _IEC_CONST unsigned char brBATTERY_LOW = 0U; + _IEC_CONST unsigned char brLOGICSCANNER = 3U; + _IEC_CONST unsigned char brPLUGIN_MODULE = 10U; + _IEC_CONST unsigned char brSYSTEM_MODULE = 2U; + _IEC_CONST unsigned char brBATTERY_NOTEST = 2U; + _IEC_CONST unsigned char TARGET_BIG_ENDIAN = 2U; + _IEC_CONST unsigned char brBATTERY_MISSING = 3U; + _IEC_CONST signed char INIT_REASON_UNKNOWN = -1; + _IEC_CONST signed char INIT_REASON_DOWNLOAD = 3; + _IEC_CONST unsigned char TARGET_LITTLE_ENDIAN = 1U; + _IEC_CONST unsigned char brAUTOMATION_RUNTIME = 4U; + _IEC_CONST unsigned short brERR_INVALID_DEVICE = 27250U; + _IEC_CONST signed char INIT_REASON_COLDSTART = 2; + _IEC_CONST signed char INIT_REASON_WARMSTART = 1; + _IEC_CONST plcbit brSYSCONF_SET_VOLATILE = 0; + _IEC_CONST unsigned short brERR_INVALID_PARAMETER = 27251U; + _IEC_CONST plcbit brSYSCONF_SET_NON_VOLATILE = 1; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct MEMInfo +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long FreeUSR_Ram; + unsigned long FreeSYSTEM; + unsigned long FreeUSR_Prom; + unsigned long FreeSYS_Prom; + unsigned long FreeFIX_Ram; + unsigned long FreeTMP_Ram; + unsigned long FreeMEMCARD; + /* VAR_INPUT (digital) */ + plcbit enable; +} MEMInfo_typ; + +typedef struct SysInfo +{ + /* VAR_OUTPUT (analog) */ + unsigned char init_reason; + unsigned char init_count; + unsigned long tick_count; + unsigned long version; + /* VAR_INPUT (digital) */ + plcbit enable; +} SysInfo_typ; + +typedef struct RTInfo +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long cycle_time; + signed char init_reason; + signed char task_class; + /* VAR_INPUT (digital) */ + plcbit enable; +} RTInfo_typ; + +typedef struct TARGETInfo +{ + /* VAR_INPUT (analog) */ + unsigned long pOSVersion; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char DataFormat; + /* VAR_INPUT (digital) */ + plcbit enable; +} TARGETInfo_typ; + +typedef struct HWInfo +{ + /* VAR_INPUT (analog) */ + unsigned long pName; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char family; + unsigned char usetype; + unsigned long module_typ; + unsigned char master_no; + unsigned char slave_no; + unsigned char module_adr; + unsigned char slot_no; + /* VAR (analog) */ + unsigned long next_vw_p; + unsigned long last_modul_p; + unsigned long next_entry_p; + unsigned char next_entry_ix; + unsigned char next_slot_ix; + unsigned char last_rio_master; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit first; +} HWInfo_typ; + +typedef struct BatteryInfo +{ + /* VAR_INPUT (analog) */ + unsigned long pDevice; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char state; + /* VAR_INPUT (digital) */ + plcbit enable; +} BatteryInfo_typ; + +typedef struct EXCInfo +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long task_class; + unsigned long task_ident; + /* VAR_INPUT (digital) */ + plcbit enable; +} EXCInfo_typ; + +typedef struct ZYKVLenable +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit mode; +} ZYKVLenable_typ; + +typedef struct PMemGet +{ + /* VAR_INPUT (analog) */ + unsigned long offset; + unsigned long len; + unsigned long adress; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} PMemGet_typ; + +typedef struct PMemPut +{ + /* VAR_INPUT (analog) */ + unsigned long offset; + unsigned long len; + unsigned long adress; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} PMemPut_typ; + +typedef struct PMemSize +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long size; + /* VAR_INPUT (digital) */ + plcbit enable; +} PMemSize_typ; + + + +/* Prototyping of functions and function blocks */ +void MEMInfo(struct MEMInfo* inst); +void SysInfo(struct SysInfo* inst); +void RTInfo(struct RTInfo* inst); +void TARGETInfo(struct TARGETInfo* inst); +void HWInfo(struct HWInfo* inst); +void BatteryInfo(struct BatteryInfo* inst); +void EXCInfo(struct EXCInfo* inst); +void ZYKVLenable(struct ZYKVLenable* inst); +void PMemGet(struct PMemGet* inst); +void PMemPut(struct PMemPut* inst); +void PMemSize(struct PMemSize* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _BRSYSTEM_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/brsystem/SG4/brsystem.h b/example/AsProject/Logical/Libraries/_AS/brsystem/SG4/brsystem.h new file mode 100644 index 0000000..e7acb77 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/brsystem/SG4/brsystem.h @@ -0,0 +1,128 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _BRSYSTEM_ +#define _BRSYSTEM_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef struct MEMxInfo +{ + /* VAR_INPUT (analog) */ + unsigned long mem_typ; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long MemSize; + unsigned long FreeMemSize; + unsigned long BiggestFreeBlockSize; + /* VAR (analog) */ + unsigned short i_state; + unsigned short i_result; + unsigned long i_tmp; + /* VAR_INPUT (digital) */ + plcbit enable; +} MEMxInfo_typ; + +typedef struct SysInfo +{ + /* VAR_OUTPUT (analog) */ + unsigned char init_reason; + unsigned char init_count; + unsigned long tick_count; + unsigned long version; + /* VAR_INPUT (digital) */ + plcbit enable; +} SysInfo_typ; + +typedef struct RTInfo +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long cycle_time; + signed char init_reason; + signed char task_class; + /* VAR_INPUT (digital) */ + plcbit enable; +} RTInfo_typ; + +typedef struct TARGETInfo +{ + /* VAR_INPUT (analog) */ + unsigned long pOSVersion; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char DataFormat; + /* VAR_INPUT (digital) */ + plcbit enable; +} TARGETInfo_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void MEMxInfo(struct MEMxInfo* inst); +_BUR_PUBLIC void SysInfo(struct SysInfo* inst); +_BUR_PUBLIC void RTInfo(struct RTInfo* inst); +_BUR_PUBLIC void TARGETInfo(struct TARGETInfo* inst); +_BUR_PUBLIC unsigned long RTTolerance(void); +_BUR_PUBLIC plcbit RTCyclic(void); +_BUR_PUBLIC plcbit RTInit(void); +_BUR_PUBLIC plcbit RTExit(void); +_BUR_PUBLIC unsigned long OSVersionMajor(void); +_BUR_PUBLIC unsigned long OSVersionMinor(void); +_BUR_PUBLIC unsigned long OSVersionPatch(void); +_BUR_PUBLIC unsigned long OSVersionBuild(void); +_BUR_PUBLIC unsigned long RTCycleTime(signed char task_class); +_BUR_PUBLIC unsigned long RTCylceTime(signed char task_class); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define brERR_NON_CYCLIC_CONTEXT 27252U + #define brERR_INVALID_PARAMETER 27251U + #define brGLOBAL_REMANENT_PV 5U + #define brLOCAL_REMANENT_PV 4U + #define brUSRROM 3U + #define brSYSROM 2U + #define brUSRRAM 1U + #define brDRAM 0U + #define TARGET_BIG_ENDIAN 2U + #define TARGET_LITTLE_ENDIAN 1U + #define INIT_REASON_UNKNOWN (-1) + #define INIT_REASON_DOWNLOAD 3 + #define INIT_REASON_COLDSTART 2 + #define INIT_REASON_WARMSTART 1 +#else + _GLOBAL_CONST unsigned short brERR_NON_CYCLIC_CONTEXT; + _GLOBAL_CONST unsigned short brERR_INVALID_PARAMETER; + _GLOBAL_CONST unsigned long brGLOBAL_REMANENT_PV; + _GLOBAL_CONST unsigned long brLOCAL_REMANENT_PV; + _GLOBAL_CONST unsigned long brUSRROM; + _GLOBAL_CONST unsigned long brSYSROM; + _GLOBAL_CONST unsigned long brUSRRAM; + _GLOBAL_CONST unsigned long brDRAM; + _GLOBAL_CONST unsigned char TARGET_BIG_ENDIAN; + _GLOBAL_CONST unsigned char TARGET_LITTLE_ENDIAN; + _GLOBAL_CONST signed char INIT_REASON_UNKNOWN; + _GLOBAL_CONST signed char INIT_REASON_DOWNLOAD; + _GLOBAL_CONST signed char INIT_REASON_COLDSTART; + _GLOBAL_CONST signed char INIT_REASON_WARMSTART; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _BRSYSTEM_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/brsystem/SGC/brsystem.h b/example/AsProject/Logical/Libraries/_AS/brsystem/SGC/brsystem.h new file mode 100644 index 0000000..b524c9f --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/brsystem/SGC/brsystem.h @@ -0,0 +1,238 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _BRSYSTEM_ +#define _BRSYSTEM_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define brX2X 10U + #define brPP 255U + #define brCPU 1U + #define brKEY 8U + #define brDRAM 0U + #define br2003 2U + #define br2005 1U + #define br2010 0U + #define brC200 9U + #define brC300 8U + #define brADDON 7U + #define brPANEL 6U + #define brGLOBAL_REMANENT_PV 5U + #define brLOCAL_REMANENT_PV 4U + #define brUSRROM 3U + #define brSYSROM 2U + #define brUSRRAM 1U + #define brACOPOS 7U + #define brCAN_IO 5U + #define brBASE_IO 3U + #define brPRODUCT 0U + #define brETHER_IO 6U + #define brNO_FAMILY 255U + #define brREMOTE_IO 4U + #define brBATTERY_OK 1U + #define brPOWERPANEL 5U + #define brBATTERY_LOW 0U + #define brLOGICSCANNER 3U + #define brPLUGIN_MODULE 10U + #define brSYSTEM_MODULE 2U + #define brBATTERY_NOTEST 2U + #define TARGET_BIG_ENDIAN 2U + #define brBATTERY_MISSING 3U + #define INIT_REASON_UNKNOWN (-1) + #define INIT_REASON_DOWNLOAD 3 + #define TARGET_LITTLE_ENDIAN 1U + #define brAUTOMATION_RUNTIME 4U + #define brERR_INVALID_DEVICE 27250U + #define INIT_REASON_COLDSTART 2 + #define INIT_REASON_WARMSTART 1 + #define brSYSCONF_SET_VOLATILE 0 + #define brERR_INVALID_PARAMETER 27251U + #define brSYSCONF_SET_NON_VOLATILE 1 +#else + _IEC_CONST unsigned char brX2X = 10U; + _IEC_CONST unsigned char brPP = 255U; + _IEC_CONST unsigned char brCPU = 1U; + _IEC_CONST unsigned char brKEY = 8U; + _IEC_CONST unsigned long brDRAM = 0U; + _IEC_CONST unsigned char br2003 = 2U; + _IEC_CONST unsigned char br2005 = 1U; + _IEC_CONST unsigned char br2010 = 0U; + _IEC_CONST unsigned char brC200 = 9U; + _IEC_CONST unsigned char brC300 = 8U; + _IEC_CONST unsigned char brADDON = 7U; + _IEC_CONST unsigned char brPANEL = 6U; + _IEC_CONST unsigned long brGLOBAL_REMANENT_PV = 5U; + _IEC_CONST unsigned long brLOCAL_REMANENT_PV = 4U; + _IEC_CONST unsigned long brUSRROM = 3U; + _IEC_CONST unsigned long brSYSROM = 2U; + _IEC_CONST unsigned long brUSRRAM = 1U; + _IEC_CONST unsigned char brACOPOS = 7U; + _IEC_CONST unsigned char brCAN_IO = 5U; + _IEC_CONST unsigned char brBASE_IO = 3U; + _IEC_CONST unsigned char brPRODUCT = 0U; + _IEC_CONST unsigned char brETHER_IO = 6U; + _IEC_CONST unsigned char brNO_FAMILY = 255U; + _IEC_CONST unsigned char brREMOTE_IO = 4U; + _IEC_CONST unsigned char brBATTERY_OK = 1U; + _IEC_CONST unsigned char brPOWERPANEL = 5U; + _IEC_CONST unsigned char brBATTERY_LOW = 0U; + _IEC_CONST unsigned char brLOGICSCANNER = 3U; + _IEC_CONST unsigned char brPLUGIN_MODULE = 10U; + _IEC_CONST unsigned char brSYSTEM_MODULE = 2U; + _IEC_CONST unsigned char brBATTERY_NOTEST = 2U; + _IEC_CONST unsigned char TARGET_BIG_ENDIAN = 2U; + _IEC_CONST unsigned char brBATTERY_MISSING = 3U; + _IEC_CONST signed char INIT_REASON_UNKNOWN = -1; + _IEC_CONST signed char INIT_REASON_DOWNLOAD = 3; + _IEC_CONST unsigned char TARGET_LITTLE_ENDIAN = 1U; + _IEC_CONST unsigned char brAUTOMATION_RUNTIME = 4U; + _IEC_CONST unsigned short brERR_INVALID_DEVICE = 27250U; + _IEC_CONST signed char INIT_REASON_COLDSTART = 2; + _IEC_CONST signed char INIT_REASON_WARMSTART = 1; + _IEC_CONST plcbit brSYSCONF_SET_VOLATILE = 0; + _IEC_CONST unsigned short brERR_INVALID_PARAMETER = 27251U; + _IEC_CONST plcbit brSYSCONF_SET_NON_VOLATILE = 1; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct MEMInfo +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long FreeUSR_Ram; + unsigned long FreeSYSTEM; + unsigned long FreeUSR_Prom; + unsigned long FreeSYS_Prom; + unsigned long FreeFIX_Ram; + unsigned long FreeTMP_Ram; + unsigned long FreeMEMCARD; + /* VAR_INPUT (digital) */ + plcbit enable; +} MEMInfo_typ; + +typedef struct SysInfo +{ + /* VAR_OUTPUT (analog) */ + unsigned char init_reason; + unsigned char init_count; + unsigned long tick_count; + unsigned long version; + /* VAR_INPUT (digital) */ + plcbit enable; +} SysInfo_typ; + +typedef struct RTInfo +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long cycle_time; + signed char init_reason; + signed char task_class; + /* VAR_INPUT (digital) */ + plcbit enable; +} RTInfo_typ; + +typedef struct TARGETInfo +{ + /* VAR_INPUT (analog) */ + unsigned long pOSVersion; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char DataFormat; + /* VAR_INPUT (digital) */ + plcbit enable; +} TARGETInfo_typ; + +typedef struct HWInfo +{ + /* VAR_INPUT (analog) */ + unsigned long pName; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char family; + unsigned char usetype; + unsigned long module_typ; + unsigned char master_no; + unsigned char slave_no; + unsigned char module_adr; + unsigned char slot_no; + /* VAR (analog) */ + unsigned long next_vw_p; + unsigned long last_modul_p; + unsigned long next_entry_p; + unsigned char next_entry_ix; + unsigned char next_slot_ix; + unsigned char last_rio_master; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit first; +} HWInfo_typ; + +typedef struct PMemGet +{ + /* VAR_INPUT (analog) */ + unsigned long offset; + unsigned long len; + unsigned long adress; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} PMemGet_typ; + +typedef struct PMemPut +{ + /* VAR_INPUT (analog) */ + unsigned long offset; + unsigned long len; + unsigned long adress; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR_INPUT (digital) */ + plcbit enable; +} PMemPut_typ; + +typedef struct PMemSize +{ + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long size; + /* VAR_INPUT (digital) */ + plcbit enable; +} PMemSize_typ; + + + +/* Prototyping of functions and function blocks */ +void MEMInfo(struct MEMInfo* inst); +void SysInfo(struct SysInfo* inst); +void RTInfo(struct RTInfo* inst); +void TARGETInfo(struct TARGETInfo* inst); +void HWInfo(struct HWInfo* inst); +void PMemGet(struct PMemGet* inst); +void PMemPut(struct PMemPut* inst); +void PMemSize(struct PMemSize* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _BRSYSTEM_ */ + + diff --git a/example/AsProject/Logical/Libraries/_AS/brsystem/binary.lby b/example/AsProject/Logical/Libraries/_AS/brsystem/binary.lby new file mode 100644 index 0000000..6a1c0f2 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/brsystem/binary.lby @@ -0,0 +1,12 @@ + + + + + brsystem.fun + brsystem.typ + brsystem.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/brsystem/brsystem.fun b/example/AsProject/Logical/Libraries/_AS/brsystem/brsystem.fun new file mode 100644 index 0000000..7a92bd0 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/brsystem/brsystem.fun @@ -0,0 +1,90 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK MEMxInfo (*returns information about the memory areas available in the system; asynchronous execution*) + VAR_INPUT + enable :BOOL; (*enables execution*) + mem_typ :UDINT; (*memory type: brDRAM, brUSRRAM, brSYSROM, brUSRROM*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + MemSize :UDINT; (*total memory size in bytes*) + FreeMemSize :UDINT; (*size of available memory in bytes*) + BiggestFreeBlockSize :UDINT; (*size of the largest available block in memory in bytes*) + 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 SysInfo (*returns information about the target system*) + VAR_INPUT + enable :BOOL; (*enables execution*) + END_VAR + VAR_OUTPUT + init_reason :USINT; (*reason for initialization*) + init_count :USINT; (*not used, always 0*) + tick_count :UDINT; (*tick count*) + version :UDINT; (*not used, always 0*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK RTInfo (*returns runtime information about the program*) + VAR_INPUT + enable :BOOL; (*enables execution*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + cycle_time :UDINT; (*cycle time in microsec*) + init_reason :SINT; (*reason for initialization*) + task_class :SINT; (*task class (#1 - #8)*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK TARGETInfo (*returns information about the target system used*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pOSVersion :UDINT; (*not used*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + DataFormat :USINT; (*wether "big endian" or "little endian" ("TARGET_BIG_ENDIAN"/"TARGET_LITTLE_ENDIAN")*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION RTTolerance : UDINT (*returns the tolerance [microsec] of the programs task class*) +END_FUNCTION + +{REDUND_OK} FUNCTION RTCyclic : BOOL (*returns true, if function is called in the cyclic part of the program, false otherwise*) +END_FUNCTION + +{REDUND_OK} FUNCTION RTInit : BOOL (*returns true, if function is called in the init part of the program, false otherwise*) +END_FUNCTION + +{REDUND_OK} FUNCTION RTExit : BOOL (*returns true, if function is called in the exit part of the program, false otherwise*) +END_FUNCTION + +{REDUND_OK} FUNCTION OSVersionMajor : UDINT (*returns the major number of the operating system version*) +END_FUNCTION + +{REDUND_OK} FUNCTION OSVersionMinor : UDINT (*returns the minor number of the operating system version*) +END_FUNCTION + +{REDUND_OK} FUNCTION OSVersionPatch : UDINT (*returns the patch number of the operating system version*) +END_FUNCTION + +{REDUND_OK} FUNCTION OSVersionBuild : UDINT (*returns the build number of the operating system version*) +END_FUNCTION + +{REDUND_OK} FUNCTION RTCycleTime : UDINT (*returns the cycle time [microsec] of the task class*) + VAR_INPUT + task_class : SINT; (*task class (#1 - #8)*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION RTCylceTime : UDINT (*OBSOLETE (only for compatibility reasons) - use RTCycleTime*) + VAR_INPUT + task_class : SINT; (*task class (#1 - #8)*) + END_VAR +END_FUNCTION + \ No newline at end of file diff --git a/example/AsProject/Logical/Libraries/_AS/brsystem/brsystem.typ b/example/AsProject/Logical/Libraries/_AS/brsystem/brsystem.typ new file mode 100644 index 0000000..fbd30fd --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/brsystem/brsystem.typ @@ -0,0 +1,4 @@ + +TYPE + +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/brsystem/brsystem.var b/example/AsProject/Logical/Libraries/_AS/brsystem/brsystem.var new file mode 100644 index 0000000..357bbe0 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/brsystem/brsystem.var @@ -0,0 +1,17 @@ + +VAR CONSTANT + INIT_REASON_WARMSTART : SINT := 1; (*warm restart boot information*) + INIT_REASON_COLDSTART : SINT := 2; (*cold restart boot information*) + INIT_REASON_DOWNLOAD : SINT := 3; (*download boot information*) + INIT_REASON_UNKNOWN : SINT := -1; (*unknown boot information*) + TARGET_LITTLE_ENDIAN : USINT := 1; (*formatSpec*) + TARGET_BIG_ENDIAN : USINT := 2; (*formatSpec*) + brDRAM : UDINT := 0; (*DRAM memory type*) + brUSRRAM : UDINT := 1; (*USRRAM memory type*) + brSYSROM : UDINT := 2; (*SYSROM memory type*) + brUSRROM : UDINT := 3; (*USRROM memory type*) + brLOCAL_REMANENT_PV : UDINT := 4; (*local REMMEM memory type*) + brGLOBAL_REMANENT_PV : UDINT := 5; (*global REMMEM memory type*) + brERR_INVALID_PARAMETER : UINT := 27251; (*invalid parameter transferred*) + brERR_NON_CYCLIC_CONTEXT : UINT := 27252; (*non-cyclic context call*) +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/dvframe/SG3/dvframe.h b/example/AsProject/Logical/Libraries/_AS/dvframe/SG3/dvframe.h new file mode 100644 index 0000000..9c57db4 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/dvframe/SG3/dvframe.h @@ -0,0 +1,227 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _DVFRAME_ +#define _DVFRAME_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define ARG_BAUD 0U + #define ARG_MISC 16U + #define frmERR_OK 0U + #define ARG_PVPOLLADR 15U + #define frmERR_MAXOPEN 8254U + #define frmERR_NOINPUT 60U + #define ARG_TXPVPOLLADR 17U + #define frmERR_NOBUFFER 8071U + #define frmERR_PA_DB_SB 8256U + #define MISC_RECEIVE_ALL 2U + #define frmERR_NOTOPENED 8251U + #define frmERR_INPUTERROR 8079U + #define frmERR_NORESOURCES 8258U + #define ARG_EVSEND_TASKEVENT 18U + #define ARG_EVSEND_TASKIDENT 14U + #define frmERR_INVALIDBUFFER 8072U + #define frmERR_IOCTL_NOTVALID 8073U + #define frmERR_MODEDESCRIPTION 8253U + #define frmERR_TRANSMITOVERRUN 8078U + #define frmERR_FUB_ENABLE_FALSE 65534U + #define frmERR_DEVICEDESCRIPTION 8252U + #define frmERR_IOCTL_NOTSUPPORTED 8257U +#else + _IEC_CONST unsigned long ARG_BAUD = 0U; + _IEC_CONST unsigned long ARG_MISC = 16U; + _IEC_CONST unsigned short frmERR_OK = 0U; + _IEC_CONST unsigned long ARG_PVPOLLADR = 15U; + _IEC_CONST unsigned short frmERR_MAXOPEN = 8254U; + _IEC_CONST unsigned short frmERR_NOINPUT = 60U; + _IEC_CONST unsigned long ARG_TXPVPOLLADR = 17U; + _IEC_CONST unsigned short frmERR_NOBUFFER = 8071U; + _IEC_CONST unsigned short frmERR_PA_DB_SB = 8256U; + _IEC_CONST unsigned long MISC_RECEIVE_ALL = 2U; + _IEC_CONST unsigned short frmERR_NOTOPENED = 8251U; + _IEC_CONST unsigned short frmERR_INPUTERROR = 8079U; + _IEC_CONST unsigned short frmERR_NORESOURCES = 8258U; + _IEC_CONST unsigned long ARG_EVSEND_TASKEVENT = 18U; + _IEC_CONST unsigned long ARG_EVSEND_TASKIDENT = 14U; + _IEC_CONST unsigned short frmERR_INVALIDBUFFER = 8072U; + _IEC_CONST unsigned short frmERR_IOCTL_NOTVALID = 8073U; + _IEC_CONST unsigned short frmERR_MODEDESCRIPTION = 8253U; + _IEC_CONST unsigned short frmERR_TRANSMITOVERRUN = 8078U; + _IEC_CONST unsigned short frmERR_FUB_ENABLE_FALSE = 65534U; + _IEC_CONST unsigned short frmERR_DEVICEDESCRIPTION = 8252U; + _IEC_CONST unsigned short frmERR_IOCTL_NOTSUPPORTED = 8257U; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct XOPENCONFIG +{ unsigned short idle; + unsigned short delimc; + unsigned char delim[2]; + unsigned short tx_cnt; + unsigned short rx_cnt; + unsigned short tx_len; + unsigned short rx_len; + unsigned short argc; + unsigned long argv; +} XOPENCONFIG; + +typedef struct FRM_mode +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long mode; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_mode_typ; + +typedef struct FRM_ctrl +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned short ioctrl; + unsigned long inarg; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long outarg; + /* VAR (analog) */ + plcstring internal[44]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_ctrl_typ; + +typedef struct FRM_robuf +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long buffer; + unsigned short buflng; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_robuf_typ; + +typedef struct FRM_gbuf +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long buffer; + unsigned short buflng; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_gbuf_typ; + +typedef struct FRM_rbuf +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long buffer; + unsigned short buflng; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_rbuf_typ; + +typedef struct FRM_close +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_close_typ; + +typedef struct FRM_write +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long buffer; + unsigned short buflng; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_write_typ; + +typedef struct FRM_read +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long buffer; + unsigned short buflng; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_read_typ; + +typedef struct FRM_xopen +{ + /* VAR_INPUT (analog) */ + unsigned long device; + unsigned long mode; + unsigned long config; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long ident; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_xopen_typ; + + + +/* Prototyping of functions and function blocks */ +void FRM_mode(struct FRM_mode* inst); +void FRM_ctrl(struct FRM_ctrl* inst); +void FRM_robuf(struct FRM_robuf* inst); +void FRM_gbuf(struct FRM_gbuf* inst); +void FRM_rbuf(struct FRM_rbuf* inst); +void FRM_close(struct FRM_close* inst); +void FRM_write(struct FRM_write* inst); +void FRM_read(struct FRM_read* inst); +void FRM_xopen(struct FRM_xopen* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _DVFRAME_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/dvframe/SG4/dvframe.h b/example/AsProject/Logical/Libraries/_AS/dvframe/SG4/dvframe.h new file mode 100644 index 0000000..2073348 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/dvframe/SG4/dvframe.h @@ -0,0 +1,245 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _DVFRAME_ +#define _DVFRAME_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif +/* Datatypes and datatypes of function blocks */ +typedef struct XOPENCONFIG +{ unsigned short idle; + unsigned short delimc; + unsigned char delim[2]; + unsigned short tx_cnt; + unsigned short rx_cnt; + unsigned short tx_len; + unsigned short rx_len; + unsigned short argc; + unsigned long argv; +} XOPENCONFIG; + +typedef struct FRM_mode +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long mode; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_mode_typ; + +typedef struct FRM_ctrl +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned short ioctrl; + unsigned long inarg; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long outarg; + /* VAR (analog) */ + plcstring internal[44]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_ctrl_typ; + +typedef struct FRM_robuf +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long buffer; + unsigned short buflng; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_robuf_typ; + +typedef struct FRM_gbuf +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long buffer; + unsigned short buflng; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_gbuf_typ; + +typedef struct FRM_rbuf +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long buffer; + unsigned short buflng; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_rbuf_typ; + +typedef struct FRM_close +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_close_typ; + +typedef struct FRM_write +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long buffer; + unsigned short buflng; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_write_typ; + +typedef struct FRM_writeAcknowledged +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long buffer; + unsigned short buflng; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_writeAcknowledged_typ; + +typedef struct FRM_read +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long buffer; + unsigned short buflng; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_read_typ; + +typedef struct FRM_xopen +{ + /* VAR_INPUT (analog) */ + unsigned long device; + unsigned long mode; + unsigned long config; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long ident; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_xopen_typ; + + + +/* Prototyping of functions and function blocks */ +_BUR_PUBLIC void FRM_mode(struct FRM_mode* inst); +_BUR_PUBLIC void FRM_ctrl(struct FRM_ctrl* inst); +_BUR_PUBLIC void FRM_robuf(struct FRM_robuf* inst); +_BUR_PUBLIC void FRM_gbuf(struct FRM_gbuf* inst); +_BUR_PUBLIC void FRM_rbuf(struct FRM_rbuf* inst); +_BUR_PUBLIC void FRM_close(struct FRM_close* inst); +_BUR_PUBLIC void FRM_write(struct FRM_write* inst); +_BUR_PUBLIC void FRM_writeAcknowledged(struct FRM_writeAcknowledged* inst); +_BUR_PUBLIC void FRM_read(struct FRM_read* inst); +_BUR_PUBLIC void FRM_xopen(struct FRM_xopen* inst); + + +/* Constants */ +#ifdef _REPLACE_CONST + #define ARG_BAUD 0U + #define ARG_MISC 16U + #define frmERR_OK 0U + #define ARG_PVPOLLADR 15U + #define frmERR_MAXOPEN 8254U + #define frmERR_NOINPUT 60U + #define ARG_TXPVPOLLADR 17U + #define frmERR_NOBUFFER 8071U + #define frmERR_PA_DB_SB 8256U + #define MISC_RECEIVE_ALL 2U + #define frmERR_NOTOPENED 8251U + #define frmERR_INPUTERROR 8079U + #define frmERR_NORESOURCES 8258U + #define ARG_EVSEND_TASKEVENT 18U + #define ARG_EVSEND_TASKIDENT 14U + #define frmERR_INIT_IN_PROGRESS 8068U + #define frmERR_IF_UNREACHABLE 8067U + #define frmERR_INVALIDBUFFER 8072U + #define frmERR_IOCTL_NOTVALID 8073U + #define frmERR_MODEDESCRIPTION 8253U + #define frmERR_TRANSMITOVERRUN 8078U + #define frmERR_FUB_ENABLE_FALSE 65534U + #define frmERR_DEVICEDESCRIPTION 8252U + #define frmERR_IOCTL_NOTSUPPORTED 8257U +#else + _GLOBAL_CONST unsigned long ARG_BAUD; + _GLOBAL_CONST unsigned long ARG_MISC; + _GLOBAL_CONST unsigned short frmERR_OK; + _GLOBAL_CONST unsigned long ARG_PVPOLLADR; + _GLOBAL_CONST unsigned short frmERR_MAXOPEN; + _GLOBAL_CONST unsigned short frmERR_NOINPUT; + _GLOBAL_CONST unsigned long ARG_TXPVPOLLADR; + _GLOBAL_CONST unsigned short frmERR_NOBUFFER; + _GLOBAL_CONST unsigned short frmERR_PA_DB_SB; + _GLOBAL_CONST unsigned long MISC_RECEIVE_ALL; + _GLOBAL_CONST unsigned short frmERR_NOTOPENED; + _GLOBAL_CONST unsigned short frmERR_INPUTERROR; + _GLOBAL_CONST unsigned short frmERR_NORESOURCES; + _GLOBAL_CONST unsigned long ARG_EVSEND_TASKEVENT; + _GLOBAL_CONST unsigned long ARG_EVSEND_TASKIDENT; + _GLOBAL_CONST unsigned short frmERR_INIT_IN_PROGRESS; + _GLOBAL_CONST unsigned short frmERR_IF_UNREACHABLE; + _GLOBAL_CONST unsigned short frmERR_INVALIDBUFFER; + _GLOBAL_CONST unsigned short frmERR_IOCTL_NOTVALID; + _GLOBAL_CONST unsigned short frmERR_MODEDESCRIPTION; + _GLOBAL_CONST unsigned short frmERR_TRANSMITOVERRUN; + _GLOBAL_CONST unsigned short frmERR_FUB_ENABLE_FALSE; + _GLOBAL_CONST unsigned short frmERR_DEVICEDESCRIPTION; + _GLOBAL_CONST unsigned short frmERR_IOCTL_NOTSUPPORTED; +#endif + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _DVFRAME_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/dvframe/SGC/dvframe.h b/example/AsProject/Logical/Libraries/_AS/dvframe/SGC/dvframe.h new file mode 100644 index 0000000..9c57db4 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/dvframe/SGC/dvframe.h @@ -0,0 +1,227 @@ +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _DVFRAME_ +#define _DVFRAME_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#ifndef _IEC_CONST +#define _IEC_CONST _WEAK const +#endif + +/* Constants */ +#ifdef _REPLACE_CONST + #define ARG_BAUD 0U + #define ARG_MISC 16U + #define frmERR_OK 0U + #define ARG_PVPOLLADR 15U + #define frmERR_MAXOPEN 8254U + #define frmERR_NOINPUT 60U + #define ARG_TXPVPOLLADR 17U + #define frmERR_NOBUFFER 8071U + #define frmERR_PA_DB_SB 8256U + #define MISC_RECEIVE_ALL 2U + #define frmERR_NOTOPENED 8251U + #define frmERR_INPUTERROR 8079U + #define frmERR_NORESOURCES 8258U + #define ARG_EVSEND_TASKEVENT 18U + #define ARG_EVSEND_TASKIDENT 14U + #define frmERR_INVALIDBUFFER 8072U + #define frmERR_IOCTL_NOTVALID 8073U + #define frmERR_MODEDESCRIPTION 8253U + #define frmERR_TRANSMITOVERRUN 8078U + #define frmERR_FUB_ENABLE_FALSE 65534U + #define frmERR_DEVICEDESCRIPTION 8252U + #define frmERR_IOCTL_NOTSUPPORTED 8257U +#else + _IEC_CONST unsigned long ARG_BAUD = 0U; + _IEC_CONST unsigned long ARG_MISC = 16U; + _IEC_CONST unsigned short frmERR_OK = 0U; + _IEC_CONST unsigned long ARG_PVPOLLADR = 15U; + _IEC_CONST unsigned short frmERR_MAXOPEN = 8254U; + _IEC_CONST unsigned short frmERR_NOINPUT = 60U; + _IEC_CONST unsigned long ARG_TXPVPOLLADR = 17U; + _IEC_CONST unsigned short frmERR_NOBUFFER = 8071U; + _IEC_CONST unsigned short frmERR_PA_DB_SB = 8256U; + _IEC_CONST unsigned long MISC_RECEIVE_ALL = 2U; + _IEC_CONST unsigned short frmERR_NOTOPENED = 8251U; + _IEC_CONST unsigned short frmERR_INPUTERROR = 8079U; + _IEC_CONST unsigned short frmERR_NORESOURCES = 8258U; + _IEC_CONST unsigned long ARG_EVSEND_TASKEVENT = 18U; + _IEC_CONST unsigned long ARG_EVSEND_TASKIDENT = 14U; + _IEC_CONST unsigned short frmERR_INVALIDBUFFER = 8072U; + _IEC_CONST unsigned short frmERR_IOCTL_NOTVALID = 8073U; + _IEC_CONST unsigned short frmERR_MODEDESCRIPTION = 8253U; + _IEC_CONST unsigned short frmERR_TRANSMITOVERRUN = 8078U; + _IEC_CONST unsigned short frmERR_FUB_ENABLE_FALSE = 65534U; + _IEC_CONST unsigned short frmERR_DEVICEDESCRIPTION = 8252U; + _IEC_CONST unsigned short frmERR_IOCTL_NOTSUPPORTED = 8257U; +#endif + + + + +/* Datatypes and datatypes of function blocks */ +typedef struct XOPENCONFIG +{ unsigned short idle; + unsigned short delimc; + unsigned char delim[2]; + unsigned short tx_cnt; + unsigned short rx_cnt; + unsigned short tx_len; + unsigned short rx_len; + unsigned short argc; + unsigned long argv; +} XOPENCONFIG; + +typedef struct FRM_mode +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long mode; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_mode_typ; + +typedef struct FRM_ctrl +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned short ioctrl; + unsigned long inarg; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long outarg; + /* VAR (analog) */ + plcstring internal[44]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_ctrl_typ; + +typedef struct FRM_robuf +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long buffer; + unsigned short buflng; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_robuf_typ; + +typedef struct FRM_gbuf +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long buffer; + unsigned short buflng; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_gbuf_typ; + +typedef struct FRM_rbuf +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long buffer; + unsigned short buflng; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_rbuf_typ; + +typedef struct FRM_close +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_close_typ; + +typedef struct FRM_write +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + unsigned long buffer; + unsigned short buflng; + /* VAR_OUTPUT (analog) */ + unsigned short status; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_write_typ; + +typedef struct FRM_read +{ + /* VAR_INPUT (analog) */ + unsigned long ident; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long buffer; + unsigned short buflng; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_read_typ; + +typedef struct FRM_xopen +{ + /* VAR_INPUT (analog) */ + unsigned long device; + unsigned long mode; + unsigned long config; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long ident; + /* VAR (analog) */ + plcstring internal[28]; + /* VAR_INPUT (digital) */ + plcbit enable; +} FRM_xopen_typ; + + + +/* Prototyping of functions and function blocks */ +void FRM_mode(struct FRM_mode* inst); +void FRM_ctrl(struct FRM_ctrl* inst); +void FRM_robuf(struct FRM_robuf* inst); +void FRM_gbuf(struct FRM_gbuf* inst); +void FRM_rbuf(struct FRM_rbuf* inst); +void FRM_close(struct FRM_close* inst); +void FRM_write(struct FRM_write* inst); +void FRM_read(struct FRM_read* inst); +void FRM_xopen(struct FRM_xopen* inst); + + +#ifdef __cplusplus +}; +#endif +#endif /* _DVFRAME_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/dvframe/binary.lby b/example/AsProject/Logical/Libraries/_AS/dvframe/binary.lby new file mode 100644 index 0000000..680988e --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/dvframe/binary.lby @@ -0,0 +1,12 @@ + + + + + dvframe.fun + dvframe.typ + dvframe.var + + + + + diff --git a/example/AsProject/Logical/Libraries/_AS/dvframe/dvframe.fun b/example/AsProject/Logical/Libraries/_AS/dvframe/dvframe.fun new file mode 100644 index 0000000..ee6d0ca --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/dvframe/dvframe.fun @@ -0,0 +1,149 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_mode (*modifies the values for the baud rate and asynchronous parameters*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*driver ID for the interface (see FRM_xopen())*) + mode :UDINT; (*address of the string which configures the interface to be used*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR + VAR + internal :STRING[27]; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_ctrl (*operates the DSR/DTR signals for modem capable interfaces*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*driver ID for the interface (see FRM_xopen())*) + ioctrl :UINT; (*control selection*) + inarg :UDINT; (*input argument*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + outarg :UDINT; (*output argument*) + END_VAR + VAR + internal :STRING[43]; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_robuf (*releases the send buffer manually*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*driver ID for the interface (see FRM_xopen())*) + buffer :UDINT; (*send buffer address*) + buflng :UINT; (*send buffer length*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR + VAR + internal :STRING[27]; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_gbuf (*requests an available send buffer*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*driver ID for the interface (see FRM_xopen())*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + buffer :UDINT; (*send buffer address*) + buflng :UINT; (*send buffer length*) + END_VAR + VAR + internal :STRING[27]; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_rbuf (*releases the receive buffer*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*driver ID for the interface (see FRM_xopen())*) + buffer :UDINT; (*receive buffer address*) + buflng :UINT; (*receive buffer length*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR + VAR + internal :STRING[27]; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_close (*closes a previously opened serial interface*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*driver ID for the interface (see FRM_xopen())*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR + VAR + internal :STRING[27]; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_write (*enables the frame driver to send data to the send buffer*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*driver ID for the interface (see FRM_xopen())*) + buffer :UDINT; (*send buffer address*) + buflng :UINT; (*send buffer length*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR + VAR + internal :STRING[27]; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_writeAcknowledged (*enables the frame driver to send data to the send buffer*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*driver ID for the interface (see FRM_xopen())*) + buffer :UDINT; (*send buffer address*) + buflng :UINT; (*send buffer length*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR + VAR + internal :STRING[27]; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_read (*starts the receive process*) + VAR_INPUT + enable :BOOL; (*enables execution*) + ident :UDINT; (*driver ID for the interface (see FRM_xopen())*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + buffer :UDINT; (*receive buffer address*) + buflng :UINT; (*receive buffer length*) + END_VAR + VAR + internal :STRING[27]; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK FRM_xopen (*opens a serial interface for frame transfer*) + VAR_INPUT + enable :BOOL; (*enables execution*) + device :UDINT; (*pointer to a string which clearly describes the interface used*) + mode :UDINT; (*pointer to the string which configures the interface to be used*) + config :UDINT; (*address for a configuration structure can be entered at this point (optional entry)*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + ident :UDINT; (*driver ID for the interface (required for other functions in the DVFrame library)*) + END_VAR + VAR + internal :STRING[27]; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK diff --git a/example/AsProject/Logical/Libraries/_AS/dvframe/dvframe.typ b/example/AsProject/Logical/Libraries/_AS/dvframe/dvframe.typ new file mode 100644 index 0000000..4af816c --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/dvframe/dvframe.typ @@ -0,0 +1,14 @@ + +TYPE + XOPENCONFIG : STRUCT + idle : UINT ; (*maximum idle time between characters*) + delimc : UINT ; (*activate the frame delimiters, standard value : 0*) + delim : ARRAY[0..1] OF USINT ; (*frame delimiters, default value: 0,0*) + tx_cnt : UINT ; (*number of send buffers (maximum 8), default value: 2*) + rx_cnt : UINT ; (*number of receive buffers (maximum 8), default value: 2*) + tx_len : UINT ; (*send buffer length, default value: 256 bytes*) + rx_len : UINT ; (*receive buffer length, default value: 256 bytes*) + argc : UINT ; (*number of additional arguments in argv, default value: 0*) + argv : UDINT ; (*address for a UDINT field with additional arguments, default value: 0*) + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/dvframe/dvframe.var b/example/AsProject/Logical/Libraries/_AS/dvframe/dvframe.var new file mode 100644 index 0000000..8eee141 --- /dev/null +++ b/example/AsProject/Logical/Libraries/_AS/dvframe/dvframe.var @@ -0,0 +1,27 @@ + +VAR CONSTANT + frmERR_IOCTL_NOTSUPPORTED : UINT := 8257; (*command not supported by driver (hardware)*) + frmERR_DEVICEDESCRIPTION : UINT := 8252; (*device not found*) + frmERR_FUB_ENABLE_FALSE : UINT := 65534; + frmERR_TRANSMITOVERRUN : UINT := 8078; (*send buffer waiting queue full*) + frmERR_MODEDESCRIPTION : UINT := 8253; (*syntax error in mode parameter string, or mode parameter not supported by the specified device*) + frmERR_IOCTL_NOTVALID : UINT := 8073; (*invalid I/O control code*) + frmERR_INVALIDBUFFER : UINT := 8072; (*invalid buffer rejected*) + frmERR_IF_UNREACHABLE : UINT := 8067; (*device is not available*) + frmERR_INIT_IN_PROGRESS : UINT := 8068; (*device is busy with xopen/mode*) + ARG_EVSEND_TASKIDENT : UDINT := 14; + ARG_EVSEND_TASKEVENT : UDINT := 18; + frmERR_NORESOURCES : UINT := 8258; (*required resource not available (memory, OS object, etc.)*) + frmERR_INPUTERROR : UINT := 8079; (*frame buffer with defective character*) + frmERR_NOTOPENED : UINT := 8251; (*device not open*) + MISC_RECEIVE_ALL : UDINT := 2; + frmERR_PA_DB_SB : UINT := 8256; (*/PA, /DB, /SB must always be specified together*) + frmERR_NOBUFFER : UINT := 8071; (*no buffer available in the send buffer manager*) + ARG_TXPVPOLLADR : UDINT := 17; + frmERR_NOINPUT : UINT := 60; (*no message received*) + frmERR_MAXOPEN : UINT := 8254; (*too many devices opened at once*) + ARG_PVPOLLADR : UDINT := 15; + frmERR_OK : UINT := 0; + ARG_MISC : UDINT := 16; + ARG_BAUD : UDINT := 0; +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/operator/SG3/operator.h b/example/AsProject/Logical/Libraries/_AS/operator/SG3/operator.h index 574193c..90f2f39 100644 --- a/example/AsProject/Logical/Libraries/_AS/operator/SG3/operator.h +++ b/example/AsProject/Logical/Libraries/_AS/operator/SG3/operator.h @@ -1,11 +1,11 @@ -/****************************************************************************/ -/* */ -/* operator.h */ -/* */ -/* Automation Studio */ -/* Copyright Bernecker&Rainer 1998-1999 */ -/* */ -/****************************************************************************/ - -/* This library does not contain C code */ - +/****************************************************************************/ +/* */ +/* operator.h */ +/* */ +/* Automation Studio */ +/* Copyright Bernecker&Rainer 1998-1999 */ +/* */ +/****************************************************************************/ + +/* This library does not contain C code */ + diff --git a/example/AsProject/Logical/Libraries/_AS/operator/SG4/operator.h b/example/AsProject/Logical/Libraries/_AS/operator/SG4/operator.h index f5be455..a4f177b 100644 --- a/example/AsProject/Logical/Libraries/_AS/operator/SG4/operator.h +++ b/example/AsProject/Logical/Libraries/_AS/operator/SG4/operator.h @@ -1,2 +1,2 @@ -/* This library does not contain C code */ - +/* This library does not contain C code */ + diff --git a/example/AsProject/Logical/Libraries/_AS/operator/SGC/operator.h b/example/AsProject/Logical/Libraries/_AS/operator/SGC/operator.h index 574193c..90f2f39 100644 --- a/example/AsProject/Logical/Libraries/_AS/operator/SGC/operator.h +++ b/example/AsProject/Logical/Libraries/_AS/operator/SGC/operator.h @@ -1,11 +1,11 @@ -/****************************************************************************/ -/* */ -/* operator.h */ -/* */ -/* Automation Studio */ -/* Copyright Bernecker&Rainer 1998-1999 */ -/* */ -/****************************************************************************/ - -/* This library does not contain C code */ - +/****************************************************************************/ +/* */ +/* operator.h */ +/* */ +/* Automation Studio */ +/* Copyright Bernecker&Rainer 1998-1999 */ +/* */ +/****************************************************************************/ + +/* This library does not contain C code */ + diff --git a/example/AsProject/Logical/Libraries/_AS/operator/binary.lby b/example/AsProject/Logical/Libraries/_AS/operator/binary.lby index 5e0fb13..2f1a9ab 100644 --- a/example/AsProject/Logical/Libraries/_AS/operator/binary.lby +++ b/example/AsProject/Logical/Libraries/_AS/operator/binary.lby @@ -1,9 +1,9 @@ - - - + + + operator.fun operator.typ operator.var - \ No newline at end of file + diff --git a/example/AsProject/Logical/Libraries/_AS/operator/operator.fun b/example/AsProject/Logical/Libraries/_AS/operator/operator.fun index 8959fdb..4627cd8 100644 --- a/example/AsProject/Logical/Libraries/_AS/operator/operator.fun +++ b/example/AsProject/Logical/Libraries/_AS/operator/operator.fun @@ -1,224 +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 + +{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 diff --git a/example/AsProject/Logical/Libraries/_AS/operator/operator.typ b/example/AsProject/Logical/Libraries/_AS/operator/operator.typ index 22bfc94..fbd30fd 100644 --- a/example/AsProject/Logical/Libraries/_AS/operator/operator.typ +++ b/example/AsProject/Logical/Libraries/_AS/operator/operator.typ @@ -1,4 +1,4 @@ - -TYPE - -END_TYPE + +TYPE + +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/operator/operator.var b/example/AsProject/Logical/Libraries/_AS/operator/operator.var index f0dbbce..def8c87 100644 --- a/example/AsProject/Logical/Libraries/_AS/operator/operator.var +++ b/example/AsProject/Logical/Libraries/_AS/operator/operator.var @@ -1,4 +1,4 @@ - -VAR CONSTANT - -END_VAR + +VAR CONSTANT + +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/runtime/SG3/runtime.h b/example/AsProject/Logical/Libraries/_AS/runtime/SG3/runtime.h index 360394e..42d93ec 100644 --- a/example/AsProject/Logical/Libraries/_AS/runtime/SG3/runtime.h +++ b/example/AsProject/Logical/Libraries/_AS/runtime/SG3/runtime.h @@ -1,80 +1,80 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef _RUNTIME_ -#define _RUNTIME_ -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#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_ */ - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _RUNTIME_ +#define _RUNTIME_ +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#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_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/runtime/SG4/runtime.h b/example/AsProject/Logical/Libraries/_AS/runtime/SG4/runtime.h index e844c89..8ff44c4 100644 --- a/example/AsProject/Logical/Libraries/_AS/runtime/SG4/runtime.h +++ b/example/AsProject/Logical/Libraries/_AS/runtime/SG4/runtime.h @@ -1,489 +1,486 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef _RUNTIME_ -#define _RUNTIME_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include - -#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_ */ - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _RUNTIME_ +#define _RUNTIME_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#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); + + +/* 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 + _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 + + + + +#ifdef __cplusplus +}; +#endif +#endif /* _RUNTIME_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/runtime/SGC/runtime.h b/example/AsProject/Logical/Libraries/_AS/runtime/SGC/runtime.h index 360394e..42d93ec 100644 --- a/example/AsProject/Logical/Libraries/_AS/runtime/SGC/runtime.h +++ b/example/AsProject/Logical/Libraries/_AS/runtime/SGC/runtime.h @@ -1,80 +1,80 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef _RUNTIME_ -#define _RUNTIME_ -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#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_ */ - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _RUNTIME_ +#define _RUNTIME_ +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#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_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/runtime/binary.lby b/example/AsProject/Logical/Libraries/_AS/runtime/binary.lby index 2800d28..92ad626 100644 --- a/example/AsProject/Logical/Libraries/_AS/runtime/binary.lby +++ b/example/AsProject/Logical/Libraries/_AS/runtime/binary.lby @@ -1,9 +1,9 @@ - - - + + + runtime.fun runtime.typ runtime.var - \ No newline at end of file + diff --git a/example/AsProject/Logical/Libraries/_AS/runtime/runtime.fun b/example/AsProject/Logical/Libraries/_AS/runtime/runtime.fun index 4d2564d..00c8456 100644 --- a/example/AsProject/Logical/Libraries/_AS/runtime/runtime.fun +++ b/example/AsProject/Logical/Libraries/_AS/runtime/runtime.fun @@ -1,282 +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 + +{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 diff --git a/example/AsProject/Logical/Libraries/_AS/runtime/runtime.typ b/example/AsProject/Logical/Libraries/_AS/runtime/runtime.typ index 4bf1514..e87d6ac 100644 --- a/example/AsProject/Logical/Libraries/_AS/runtime/runtime.typ +++ b/example/AsProject/Logical/Libraries/_AS/runtime/runtime.typ @@ -1,156 +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 + +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 diff --git a/example/AsProject/Logical/Libraries/_AS/runtime/runtime.var b/example/AsProject/Logical/Libraries/_AS/runtime/runtime.var index c955341..9fbe5b6 100644 --- a/example/AsProject/Logical/Libraries/_AS/runtime/runtime.var +++ b/example/AsProject/Logical/Libraries/_AS/runtime/runtime.var @@ -1,35 +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 + + (*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 diff --git a/example/AsProject/Logical/Libraries/_AS/standard/SG3/standard.h b/example/AsProject/Logical/Libraries/_AS/standard/SG3/standard.h index e7ff840..5291eb7 100644 --- a/example/AsProject/Logical/Libraries/_AS/standard/SG3/standard.h +++ b/example/AsProject/Logical/Libraries/_AS/standard/SG3/standard.h @@ -1,262 +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 - -#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_ */ - +/* Automation Studio Generated Header File, Format Version 1.00 */ +/* do not change */ +#ifndef STANDARD_H_ +#define STANDARD_H_ +#ifdef __cplusplus +extern "C" { +#endif + + +#include + +#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_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/standard/SG4/standard.h b/example/AsProject/Logical/Libraries/_AS/standard/SG4/standard.h index 74c82af..33b856a 100644 --- a/example/AsProject/Logical/Libraries/_AS/standard/SG4/standard.h +++ b/example/AsProject/Logical/Libraries/_AS/standard/SG4/standard.h @@ -1,267 +1,267 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef STANDARD_H_ -#define STANDARD_H_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include - -#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_ */ - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef STANDARD_H_ +#define STANDARD_H_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#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_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/standard/SGC/standard.h b/example/AsProject/Logical/Libraries/_AS/standard/SGC/standard.h index e7ff840..5291eb7 100644 --- a/example/AsProject/Logical/Libraries/_AS/standard/SGC/standard.h +++ b/example/AsProject/Logical/Libraries/_AS/standard/SGC/standard.h @@ -1,262 +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 - -#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_ */ - +/* Automation Studio Generated Header File, Format Version 1.00 */ +/* do not change */ +#ifndef STANDARD_H_ +#define STANDARD_H_ +#ifdef __cplusplus +extern "C" { +#endif + + +#include + +#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_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/standard/binary.lby b/example/AsProject/Logical/Libraries/_AS/standard/binary.lby index 94e33a8..69d58cf 100644 --- a/example/AsProject/Logical/Libraries/_AS/standard/binary.lby +++ b/example/AsProject/Logical/Libraries/_AS/standard/binary.lby @@ -1,9 +1,9 @@ - - - + + + standard.fun standard.typ standard.var - \ No newline at end of file + diff --git a/example/AsProject/Logical/Libraries/_AS/standard/standard.fun b/example/AsProject/Logical/Libraries/_AS/standard/standard.fun index 142b6b0..37d9807 100644 --- a/example/AsProject/Logical/Libraries/_AS/standard/standard.fun +++ b/example/AsProject/Logical/Libraries/_AS/standard/standard.fun @@ -1,253 +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 + +{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 diff --git a/example/AsProject/Logical/Libraries/_AS/standard/standard.typ b/example/AsProject/Logical/Libraries/_AS/standard/standard.typ index 22bfc94..fbd30fd 100644 --- a/example/AsProject/Logical/Libraries/_AS/standard/standard.typ +++ b/example/AsProject/Logical/Libraries/_AS/standard/standard.typ @@ -1,4 +1,4 @@ - -TYPE - -END_TYPE + +TYPE + +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/standard/standard.var b/example/AsProject/Logical/Libraries/_AS/standard/standard.var index f0dbbce..def8c87 100644 --- a/example/AsProject/Logical/Libraries/_AS/standard/standard.var +++ b/example/AsProject/Logical/Libraries/_AS/standard/standard.var @@ -1,4 +1,4 @@ - -VAR CONSTANT - -END_VAR + +VAR CONSTANT + +END_VAR diff --git a/example/AsProject/Logical/Libraries/_AS/sys_lib/SG3/sys_lib.h b/example/AsProject/Logical/Libraries/_AS/sys_lib/SG3/sys_lib.h index 039504c..e6c97d2 100644 --- a/example/AsProject/Logical/Libraries/_AS/sys_lib/SG3/sys_lib.h +++ b/example/AsProject/Logical/Libraries/_AS/sys_lib/SG3/sys_lib.h @@ -1,684 +1,684 @@ -/****************************************************************************/ -/* */ -/* sys_lib.h */ -/* Declarations and Prototypes for libsys_lib.a */ -/* */ -/* Automation Studio */ -/* Copyright Bernecker&Rainer 1998 */ -/* */ -/****************************************************************************/ - -#ifndef _SYS_LIB_H_ -#define _SYS_LIB_H_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include - -#include - -#define TMP_MODE 0x8000 /* temporary suspend/resume for */ - /* PLC and user task */ - -/* Error codes of the BURTRAP/SYS_LIB services */ - -#define ERR_BUR_WRROW 2061 /* illegal row */ -#define ERR_BUR_WRCOL 2062 /* illegal column */ -#define ERR_BUR_WR_CHAR 2063 /* invalid ASCII character */ -#define ERR_BUR_NORTC 2073 /* RTC not existing or uninitialized */ - -#define ERR_BUR_MO_NOTFOUND 3019 /* module not found */ -#define ERR_BUR_NOMEM 3030 /* out of memory */ -#define ERR_BUR_MEMVWBUSY 3035 /* memory management busy */ -#define ERR_BUR_ILLPTR 3104 /* illegal data pointer in MEM_free */ - -#define ERR_BUR_PSOS_BASE 3300 /* base number of pSOS errors */ - -#define ERR_BUR_ILLTKNR 3300 /* illegal task-class number */ -#define ERR_BUR_WROFFSET 3301 /* illegal offset */ -#define ERR_BUR_ILLSTATE 3302 /* illegal state of object */ -#define ERR_BUR_NOMSG 3303 /* no message sent/received */ -#define ERR_BUR_DUPOBJ 3305 /* object exists */ -#define ERR_BUR_TIMEOUT 3304 /* timeout error */ -#define ERR_BUR_EXISTS 3306 /* entry exists */ -#define ERR_BUR_LCOUNT 3307 /* Linkcnt <> 0 in AVT_cancel () */ -#define ERR_BUR_BURNING 3308 /* error burning module */ -#define ERR_BUR_INVALIDMBX 3309 /* invalid mailbox */ - -#define ERR_BUR_ILLBPTR 3310 /* invalid base pointer */ -#define ERR_BUR_ILLTYP 3311 /* invalid I/O type */ -#define ERR_BUR_ILLEXT 3312 /* invalid ext. bit */ -#define ERR_BUR_ILLVER 3313 /* invalid version */ - /* e.g. BURTRAP V1.10 to SPSSW V1.05 */ -#define ERR_BUR_ILLLEN 3314 /* invalid data length */ -#define ERR_BUR_MAX_LCOUNT 3315 /* AVT_attach: LCOUNT > 127 */ -#define ERR_BUR_AVT_FREE 3316 /* AVT_release:LCOUNT = 0 */ -#define ERR_BUR_ILLPAR 3317 /* illegal parameter */ -#define ERR_BUR_INSTALL 3318 /* error install datamodule */ -#define ERR_BUR_WRONG_MODTYP 3319 /* wrong Moduletype */ - - -#define ERR_BUR_OBJDEL 3320 /* object already deleted */ -#define ERR_BUR_ILLOBJ 3324 /* object does not exist */ -#define ERR_BUR_ILLOBJTYP 3328 /* invalid object type */ -#define ERR_BUR_NOENTRY 3332 /* no entry */ -#define ERR_BUR_TOOLONG_PVNAME 3333 /* too long PV name */ -#define ERR_BUR_ILLIDENT 3336 /* illegal ident */ -#define ERR_BUR_NOSMBUF 3560 /* no more semaphore buffers */ -#define ERR_BUR_NOSM 3564 /* semaphore not available */ -#define ERR_BUR_SMDEL 3568 /* semaphore deleted */ -#define ERR_BUR_NOTIME 3584 /* time not available */ -#define ERR_BUR_ILLDATE 3588 /* date : out of range */ -#define ERR_BUR_ILLTIME 3592 /* time : out of range */ -#define ERR_BUR_ILLTICKS 3596 /* ticks : out of range */ - -#define ERR_BUR_MEM_ALLOC 3600 /* not enough continuous memory */ -#define ERR_BUR_TMP_ALLOC 3601 /* not enough continuous memory */ -#define ERR_BUR_MEM_FREE 3700 /* invalid pointer/length */ -#define ERR_BUR_TMP_FREE 3701 /* invalid pointer/length */ - -/* State for object PLC task */ -#define Z_ST_created 1 -#define Z_ST_running 2 -#define Z_ST_blocked 3 -#define Z_ST_exist 0x00 -#define Z_ST_installed 0x82 -#define Z_ST_PVinstalled 0x83 -#define Z_ST_IOinstalled 0x84 -#define Z_ST_IOdeinstalled 0x85 -#define Z_ST_PVdeinstalled 0x86 -#define Z_ST_delete 0x87 -#define Z_ST_stdebug 0x88 -#define Z_ST_tmp_suspended 0x90 - -/* PV data types */ -#define PB_DT_STRUCT 0 /* structure */ -#define PB_DT_BOOL 1 /* boolean */ -#define PB_DT_INT8 2 /* integer8 */ -#define PB_DT_INT16 3 /* integer16 */ -#define PB_DT_INT32 4 /* integer32 */ -#define PB_DT_BYTE 5 /* unsigned integer8 */ -#define PB_DT_WORD 6 /* unsigned integer16 */ -#define PB_DT_LONG 7 /* unsigned integer32 */ -#define PB_DT_FLOAT 8 /* floating point */ -#define PB_DT_VIS 9 /* visible string*/ -#define PB_DT_OCTET 10 /* octet string */ -#define PB_DT_DATE 11 /* date */ -#define PB_DT_TIME 12 /* time of day */ -#define PB_DT_DIFF 13 /* time difference */ -#define PB_DT_BIT 14 /* bit string */ -#define PB_DT_ARRAY 15 /* array */ - -/* memory types */ -#define SYS_RAM 1 /* RAM */ -#define USER_ROM1 2 /* EPROM */ -#define FIX_RAM 5 /* fixed RAM */ - -typedef struct RTCtime_typ { - /* 1. UDINT */ - UINT year; /* year, starting with zero */ - USINT month; /* month: 1 - 12 */ - USINT day; /* day: 1 - 31 */ - /* 2. UDINT */ - USINT reserve; - USINT hour; /* hour: 0 - 23 */ - USINT minute; /* minute: 0 - 59 */ - USINT second; /* second: 0 - 59 */ - /* 3. UDINT */ - UINT millisec; /* millisecond: 0 - 999 */ - UINT microsec; /* microsecond: 0 - 999 */ - } RTCtime_typ; - -/* structure for SYSxinfo */ -typedef struct SYSxinfo_typ { - char aws_name[6]; - char aws_type[2]; - UDINT cpu_info; - UINT ma_globl_len; - UINT md_globl_len; - UDINT os_len; - UDINT user_len; - UDINT tmp_len; - UDINT eprom_len; - UDINT fix_ram_len; - } SYSxinfo_typ; - -/* structure for MO_list */ -typedef struct MO_List_typ { - char name[14]; /* name of the module (ASCII) */ - USINT grp; /* groups */ - USINT type; /* module type */ - USINT state; /* state of the module */ - USINT reserve; - UDINT adress; /* physical address of the module */ - UDINT memtype; /* memory type (0=OTP,1=RAM,2=EPROM,3=FLASH */ - } MO_List_typ; /* 5=FIXRAM) */ - -/* structure for MO_info */ -typedef struct MO_info -{ - /* VAR_INPUT (analog) */ - unsigned long pName; - unsigned char grp; - /* VAR_OUTPUT (analog) */ - unsigned short status; - unsigned char type; - unsigned char state; - unsigned long memType; - unsigned long address; - unsigned long size; - unsigned char version[10]; - struct RTCtime_typ date; - /* VAR_INPUT (digital) */ - plcbit enable; -} MO_info_typ; - -/* structure for PV_list */ -typedef struct PV_List_typ { - char name[14]; /* name of the PV (ASCII) */ - USINT tcnr; /* PV task class */ - USINT grp; /* PV group */ - UDINT ident; /* PV identifier */ - UDINT adress; /* physical address of the PV */ - } PV_List_typ; - -/* structue for PV_xlist */ -typedef struct PV_xList_typ { - - char name[33]; /* name of PV (ASCII) */ - USINT data_typ; /* data type of PV */ - UDINT data_len; /* data length of PV */ - UDINT dimension; /* dimension of PV */ - UDINT adress; /* physical address of PV */ - }PV_xList_typ; - -/* structure for ERR_read */ -typedef struct ERR_typ { - UINT err_nr; /* error number */ - UDINT err_info; /* additional information */ - char t_name[5]; /* name of the running task */ - USINT err_type; /* error type (1=fatal, 2=warning, 3=info) */ - UINT err_year; /* time of the error in RTC format */ - USINT err_month; - USINT err_day; - USINT err_reserve; - USINT err_hour; - USINT err_minute; - USINT err_second; - UINT err_millisec; - UINT err_microsec; - } ERR_typ; - -/* structure for ERR_xread */ -typedef struct ERR_xtyp { - UINT err_nr; /* error number */ - UDINT err_info; /* additional information */ - char t_name[5]; /* name of the running task */ - USINT err_type; /* error type (1=Fatal, 2=Warning, 3=Info) */ - UINT err_year; /* time of the error in RTC format */ - USINT err_month; - USINT err_day; - USINT err_reserve; - USINT err_hour; - USINT err_minute; - USINT err_second; - UINT err_millisec; - UINT err_microsec; - USINT err_string[34]; /* 32 byte string with 0 termination */ - } ERR_xtyp; - -/* structure for MO_ver */ -typedef struct MoVerStruc_typ { - USINT version[10]; /* Version of the BR Module */ - UINT year; - USINT month; - USINT day; - USINT reserve; - USINT hour; - USINT minute; - USINT second; - } MoVerStruc_typ; - -/* structure for the FUB Bit2Byte */ -typedef struct Bit2Byte { - /* non boolean input parameter */ - UDINT bitadr; - UINT length; - /* non boolean output parameter*/ - UDINT byteadr; - /* non boolean static local */ - USINT byte_00; - USINT byte_01; - USINT byte_02; - USINT byte_03; - USINT byte_04; - USINT byte_05; - USINT byte_06; - USINT byte_07; - USINT byte_08; - USINT byte_09; - USINT byte_10; - USINT byte_11; - USINT byte_12; - USINT byte_13; - USINT byte_14; - USINT byte_15; - /* boolean input parameter */ - /* boolean output parameter */ - /* boolean static local */ - BOOL bmem000; - BOOL bmem001; - BOOL bmem002; - BOOL bmem003; - BOOL bmem004; - BOOL bmem005; - BOOL bmem006; - BOOL bmem007; - BOOL bmem008; - BOOL bmem009; - BOOL bmem010; - BOOL bmem011; - BOOL bmem012; - BOOL bmem013; - BOOL bmem014; - BOOL bmem015; - BOOL bmem016; - BOOL bmem017; - BOOL bmem018; - BOOL bmem019; - BOOL bmem020; - BOOL bmem021; - BOOL bmem022; - BOOL bmem023; - BOOL bmem024; - BOOL bmem025; - BOOL bmem026; - BOOL bmem027; - BOOL bmem028; - BOOL bmem029; - BOOL bmem030; - BOOL bmem031; - BOOL bmem032; - BOOL bmem033; - BOOL bmem034; - BOOL bmem035; - BOOL bmem036; - BOOL bmem037; - BOOL bmem038; - BOOL bmem039; - BOOL bmem040; - BOOL bmem041; - BOOL bmem042; - BOOL bmem043; - BOOL bmem044; - BOOL bmem045; - BOOL bmem046; - BOOL bmem047; - BOOL bmem048; - BOOL bmem049; - BOOL bmem050; - BOOL bmem051; - BOOL bmem052; - BOOL bmem053; - BOOL bmem054; - BOOL bmem055; - BOOL bmem056; - BOOL bmem057; - BOOL bmem058; - BOOL bmem059; - BOOL bmem060; - BOOL bmem061; - BOOL bmem062; - BOOL bmem063; - BOOL bmem064; - BOOL bmem065; - BOOL bmem066; - BOOL bmem067; - BOOL bmem068; - BOOL bmem069; - BOOL bmem070; - BOOL bmem071; - BOOL bmem072; - BOOL bmem073; - BOOL bmem074; - BOOL bmem075; - BOOL bmem076; - BOOL bmem077; - BOOL bmem078; - BOOL bmem079; - BOOL bmem080; - BOOL bmem081; - BOOL bmem082; - BOOL bmem083; - BOOL bmem084; - BOOL bmem085; - BOOL bmem086; - BOOL bmem087; - BOOL bmem088; - BOOL bmem089; - BOOL bmem090; - BOOL bmem091; - BOOL bmem092; - BOOL bmem093; - BOOL bmem094; - BOOL bmem095; - BOOL bmem096; - BOOL bmem097; - BOOL bmem098; - BOOL bmem099; - BOOL bmem100; - BOOL bmem101; - BOOL bmem102; - BOOL bmem103; - BOOL bmem104; - BOOL bmem105; - BOOL bmem106; - BOOL bmem107; - BOOL bmem108; - BOOL bmem109; - BOOL bmem110; - BOOL bmem111; - BOOL bmem112; - BOOL bmem113; - BOOL bmem114; - BOOL bmem115; - BOOL bmem116; - BOOL bmem117; - BOOL bmem118; - BOOL bmem119; - BOOL bmem120; - BOOL bmem121; - BOOL bmem122; - BOOL bmem123; - BOOL bmem124; - BOOL bmem125; - BOOL bmem126; - BOOL bmem127; - BOOL bmem128; - BOOL bmem129; - BOOL bmem130; - BOOL bmem131; - BOOL bmem132; - BOOL bmem133; - BOOL bmem134; - BOOL bmem135; - BOOL bmem136; - BOOL bmem137; - BOOL bmem138; - BOOL bmem139; - } Bit2Byte_typ; - -/* structure for the FUB Byte2Bit */ -typedef struct Byte2Bit { - /* non boolean input parameter */ - UDINT byteadr; - UINT length; - /* non boolean output parameter*/ - UDINT bitadr; - /* non boolean static local */ - /* boolean input parameter */ - /* boolean output parameter */ - /* boolean static local */ - BOOL bmem000; - BOOL bmem001; - BOOL bmem002; - BOOL bmem003; - BOOL bmem004; - BOOL bmem005; - BOOL bmem006; - BOOL bmem007; - BOOL bmem008; - BOOL bmem009; - BOOL bmem010; - BOOL bmem011; - BOOL bmem012; - BOOL bmem013; - BOOL bmem014; - BOOL bmem015; - BOOL bmem016; - BOOL bmem017; - BOOL bmem018; - BOOL bmem019; - BOOL bmem020; - BOOL bmem021; - BOOL bmem022; - BOOL bmem023; - BOOL bmem024; - BOOL bmem025; - BOOL bmem026; - BOOL bmem027; - BOOL bmem028; - BOOL bmem029; - BOOL bmem030; - BOOL bmem031; - BOOL bmem032; - BOOL bmem033; - BOOL bmem034; - BOOL bmem035; - BOOL bmem036; - BOOL bmem037; - BOOL bmem038; - BOOL bmem039; - BOOL bmem040; - BOOL bmem041; - BOOL bmem042; - BOOL bmem043; - BOOL bmem044; - BOOL bmem045; - BOOL bmem046; - BOOL bmem047; - BOOL bmem048; - BOOL bmem049; - BOOL bmem050; - BOOL bmem051; - BOOL bmem052; - BOOL bmem053; - BOOL bmem054; - BOOL bmem055; - BOOL bmem056; - BOOL bmem057; - BOOL bmem058; - BOOL bmem059; - BOOL bmem060; - BOOL bmem061; - BOOL bmem062; - BOOL bmem063; - BOOL bmem064; - BOOL bmem065; - BOOL bmem066; - BOOL bmem067; - BOOL bmem068; - BOOL bmem069; - BOOL bmem070; - BOOL bmem071; - BOOL bmem072; - BOOL bmem073; - BOOL bmem074; - BOOL bmem075; - BOOL bmem076; - BOOL bmem077; - BOOL bmem078; - BOOL bmem079; - BOOL bmem080; - BOOL bmem081; - BOOL bmem082; - BOOL bmem083; - BOOL bmem084; - BOOL bmem085; - BOOL bmem086; - BOOL bmem087; - BOOL bmem088; - BOOL bmem089; - BOOL bmem090; - BOOL bmem091; - BOOL bmem092; - BOOL bmem093; - BOOL bmem094; - BOOL bmem095; - BOOL bmem096; - BOOL bmem097; - BOOL bmem098; - BOOL bmem099; - BOOL bmem100; - BOOL bmem101; - BOOL bmem102; - BOOL bmem103; - BOOL bmem104; - BOOL bmem105; - BOOL bmem106; - BOOL bmem107; - BOOL bmem108; - BOOL bmem109; - BOOL bmem110; - BOOL bmem111; - BOOL bmem112; - BOOL bmem113; - BOOL bmem114; - BOOL bmem115; - BOOL bmem116; - BOOL bmem117; - BOOL bmem118; - BOOL bmem119; - BOOL bmem120; - BOOL bmem121; - BOOL bmem122; - BOOL bmem123; - BOOL bmem124; - BOOL bmem125; - BOOL bmem126; - BOOL bmem127; - BOOL bmem128; - BOOL bmem129; - BOOL bmem130; - BOOL bmem131; - BOOL bmem132; - BOOL bmem133; - BOOL bmem134; - BOOL bmem135; - BOOL bmem136; - BOOL bmem137; - BOOL bmem138; - BOOL bmem139; - } Byte2Bit_typ; - -/***************/ -/* Prototyping */ -/***************/ - -UINT PV_ident (char *pv_name_p, USINT pv_tcnr, USINT pv_grpnr, - UDINT *pv_ident); -UINT PV_setval (UDINT pv_ident, UDINT value); -UINT PV_getval (UDINT pv_ident, UDINT *value); -UINT PV_getadr (char *pv_name_p, USINT pv_tcnr, USINT pv_grpnr, - UDINT *pv_adresse); -UINT PV_xgetadr (char *pv_name, UDINT *pv_adresse, UDINT *data_len); -UINT PV_xsetval (UDINT pv_ident, UINT subindex, void *data_p, - USINT data_len); -UINT PV_xgetval (UDINT pv_ident, UINT subindex, void *data_p, - USINT data_len); -UINT PV_info (UDINT pv_ident, UDINT *data_type, UDINT *data_len, - UINT *dimension); -UINT PV_list (UINT prev_index, UINT *index, PV_List_typ *pvl_p); -UINT PV_xlist (UINT prev_index, UINT *index, PV_xList_typ *pvl_p); -UINT PV_item (char *pv_name, UINT index, char *itemname); -UINT PV_ninfo (char *pv_name, UDINT *data_typ_p, UDINT *data_len_p, - UINT *dimension_p); - - - -UINT SYS_info (UDINT *sg_init_cnt, UDINT *sg_initdescr, UDINT *sg_tickcnt, - UDINT *sg_version, UDINT *sg_ov_version); -UINT SYSxinfo (SYSxinfo_typ *sx_p); -UINT SYSreset (BOOL enable, USINT mode); -USINT SYS_battery (void); - -UINT MO_list (UINT prev_index, UINT *index, MO_List_typ *mol_p); -void MO_info (struct MO_info* pInst); -UINT KEY_enadis (BOOL mode); -UINT KEY_read (USINT keys[4]); - -UINT FORCE_info (USINT tcnr, BOOL *force); - -UINT ST_ident (char *st_name_p, USINT st_grp, UDINT *st_ident); -UINT ST_suspend (UDINT st_ident); -UINT ST_resume (UDINT st_ident); -UINT ST_tmp_suspend (UDINT st_ident); -UINT ST_tmp_resume (UDINT st_ident); -UINT ST_allsuspend (void); -UINT ST_info (UDINT st_ident, USINT *state, SINT *tcnr); -UINT ST_name (UDINT st_ident, char *st_name_p, USINT *st_grp); - -UINT UT_ident (char *ut_name_p, USINT ut_grp, USINT ut_proc, char *ut_sps_p,UDINT *ut_ident); -UINT UT_suspend (UDINT ut_ident); -UINT UT_resume (UDINT ut_ident); -UINT UT_sleep (UDINT tickcount); -UINT UT_sendmsg (UDINT ut_ident, void *msg, UDINT msglng, UDINT flags); -UINT UT_recmsg (UDINT *ut_ident, void **msg, UDINT *msglng, UDINT flags); -UINT UT_freemsg (UDINT msglng, void *msg); -UINT UT_exit (UDINT exitinfo); - - -UINT AVT_create (char *name_p, USINT grupid, UDINT av_info, UDINT *av_ident); -UINT AVT_cancel (UDINT av_ident); -UINT AVT_ident (char *name_p, USINT grupid, UDINT *av_ident); -UINT AVT_attach (UDINT av_ident, UDINT *av_info); -UINT AVT_release (UDINT av_ident); -UINT AVT_info (UDINT av_ident, USINT *av_linkcount); - -UINT MEM_alloc (UDINT memlng, void **memptr); -UINT MEM_free (UDINT memlng, void *memptr); -UINT TMP_alloc (UDINT memlng, void **memptr); -UINT TMP_free (UDINT memlng, void *memptr); - -UINT RTC_gettime (RTCtime_typ *rtctime); -UINT RTC_settime (RTCtime_typ *rtctime); -UINT SW_gettime (RTCtime_typ *rtctime); -UINT SW_settime (RTCtime_typ *rtctime); -UINT TIM_musec (void); -UINT TIM_ticks (void); - -UINT SM_create (char *sm_name, USINT sm_count, UDINT *sm_ident); -UINT SM_ident (char *sm_name, UDINT *sm_ident); -UINT SM_delete (UDINT sm_ident); -UINT SM_attach (UDINT sm_ident, UDINT timeout, UDINT flags); -UINT SM_release (UDINT sm_ident); - -UINT ERR_warning (UINT errornr, UDINT errorinfo); -UINT ERR_fatal (UINT errornr, UDINT errorinfo); -UINT ERR_read (UINT entry_nr, ERR_typ *err_p); -UINT ERRxwarning (UINT errornr, UDINT errorinfo, char* errorstring); -UINT ERRxread (UINT entry_nr, ERR_xtyp *err_p); -UINT ERRxfatal (UINT errornr, UDINT errorinfo, char* errorstring); - -UINT DIS_str (UDINT row, UDINT col, char *string); -UINT DIS_chr (UDINT row, UDINT col, char character); -UINT DIS_clr (void); - -UINT DA_create (char *name_p, USINT grp, UINT spooladr, UDINT data_len, - void *data_p, void **mo_data_p, UDINT *mo_ident); -UINT DA_write (UDINT mo_ident, void *data_p,UDINT data_len, - UDINT mo_data_offset); -UINT DA_read (UDINT mo_ident, void *data_p,UDINT data_len, - UDINT mo_data_offset); -UINT DA_ident (char *name_p, USINT grp, UDINT *mo_ident); -UINT DA_delete (UDINT mo_ident); -UINT DA_burn (UDINT mo_ident); -UINT DA_fix (UDINT mo_ident); -UINT DA_info (UDINT mo_ident, void **moduldata_adr, UDINT *moduldata_lng, - USINT *memorytype); -UINT DA_copy (UDINT mo_ident, char *new_name, USINT mem_typ, UDINT *da_ident, - UDINT *daten_p, UDINT *daten_len); -UINT DA_store (UDINT mo_ident, USINT mem_typ, UDINT* daten_p, UDINT* daten_len); - -UINT MO_ver (STRING *pName, USINT grp, MoVerStruc_typ* pMoVerStruc); - -void Bit2Byte (Bit2Byte_typ* Bit2Byte_ptr); -void Byte2Bit (Byte2Bit_typ* Byte2Bit_ptr); - -#ifdef __cplusplus -}; -#endif -#endif /* _SYS_LIB_H_ */ - +/****************************************************************************/ +/* */ +/* sys_lib.h */ +/* Declarations and Prototypes for libsys_lib.a */ +/* */ +/* Automation Studio */ +/* Copyright Bernecker&Rainer 1998 */ +/* */ +/****************************************************************************/ + +#ifndef _SYS_LIB_H_ +#define _SYS_LIB_H_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#define TMP_MODE 0x8000 /* temporary suspend/resume for */ + /* PLC and user task */ + +/* Error codes of the BURTRAP/SYS_LIB services */ + +#define ERR_BUR_WRROW 2061 /* illegal row */ +#define ERR_BUR_WRCOL 2062 /* illegal column */ +#define ERR_BUR_WR_CHAR 2063 /* invalid ASCII character */ +#define ERR_BUR_NORTC 2073 /* RTC not existing or uninitialized */ + +#define ERR_BUR_MO_NOTFOUND 3019 /* module not found */ +#define ERR_BUR_NOMEM 3030 /* out of memory */ +#define ERR_BUR_MEMVWBUSY 3035 /* memory management busy */ +#define ERR_BUR_ILLPTR 3104 /* illegal data pointer in MEM_free */ + +#define ERR_BUR_PSOS_BASE 3300 /* base number of pSOS errors */ + +#define ERR_BUR_ILLTKNR 3300 /* illegal task-class number */ +#define ERR_BUR_WROFFSET 3301 /* illegal offset */ +#define ERR_BUR_ILLSTATE 3302 /* illegal state of object */ +#define ERR_BUR_NOMSG 3303 /* no message sent/received */ +#define ERR_BUR_DUPOBJ 3305 /* object exists */ +#define ERR_BUR_TIMEOUT 3304 /* timeout error */ +#define ERR_BUR_EXISTS 3306 /* entry exists */ +#define ERR_BUR_LCOUNT 3307 /* Linkcnt <> 0 in AVT_cancel () */ +#define ERR_BUR_BURNING 3308 /* error burning module */ +#define ERR_BUR_INVALIDMBX 3309 /* invalid mailbox */ + +#define ERR_BUR_ILLBPTR 3310 /* invalid base pointer */ +#define ERR_BUR_ILLTYP 3311 /* invalid I/O type */ +#define ERR_BUR_ILLEXT 3312 /* invalid ext. bit */ +#define ERR_BUR_ILLVER 3313 /* invalid version */ + /* e.g. BURTRAP V1.10 to SPSSW V1.05 */ +#define ERR_BUR_ILLLEN 3314 /* invalid data length */ +#define ERR_BUR_MAX_LCOUNT 3315 /* AVT_attach: LCOUNT > 127 */ +#define ERR_BUR_AVT_FREE 3316 /* AVT_release:LCOUNT = 0 */ +#define ERR_BUR_ILLPAR 3317 /* illegal parameter */ +#define ERR_BUR_INSTALL 3318 /* error install datamodule */ +#define ERR_BUR_WRONG_MODTYP 3319 /* wrong Moduletype */ + + +#define ERR_BUR_OBJDEL 3320 /* object already deleted */ +#define ERR_BUR_ILLOBJ 3324 /* object does not exist */ +#define ERR_BUR_ILLOBJTYP 3328 /* invalid object type */ +#define ERR_BUR_NOENTRY 3332 /* no entry */ +#define ERR_BUR_TOOLONG_PVNAME 3333 /* too long PV name */ +#define ERR_BUR_ILLIDENT 3336 /* illegal ident */ +#define ERR_BUR_NOSMBUF 3560 /* no more semaphore buffers */ +#define ERR_BUR_NOSM 3564 /* semaphore not available */ +#define ERR_BUR_SMDEL 3568 /* semaphore deleted */ +#define ERR_BUR_NOTIME 3584 /* time not available */ +#define ERR_BUR_ILLDATE 3588 /* date : out of range */ +#define ERR_BUR_ILLTIME 3592 /* time : out of range */ +#define ERR_BUR_ILLTICKS 3596 /* ticks : out of range */ + +#define ERR_BUR_MEM_ALLOC 3600 /* not enough continuous memory */ +#define ERR_BUR_TMP_ALLOC 3601 /* not enough continuous memory */ +#define ERR_BUR_MEM_FREE 3700 /* invalid pointer/length */ +#define ERR_BUR_TMP_FREE 3701 /* invalid pointer/length */ + +/* State for object PLC task */ +#define Z_ST_created 1 +#define Z_ST_running 2 +#define Z_ST_blocked 3 +#define Z_ST_exist 0x00 +#define Z_ST_installed 0x82 +#define Z_ST_PVinstalled 0x83 +#define Z_ST_IOinstalled 0x84 +#define Z_ST_IOdeinstalled 0x85 +#define Z_ST_PVdeinstalled 0x86 +#define Z_ST_delete 0x87 +#define Z_ST_stdebug 0x88 +#define Z_ST_tmp_suspended 0x90 + +/* PV data types */ +#define PB_DT_STRUCT 0 /* structure */ +#define PB_DT_BOOL 1 /* boolean */ +#define PB_DT_INT8 2 /* integer8 */ +#define PB_DT_INT16 3 /* integer16 */ +#define PB_DT_INT32 4 /* integer32 */ +#define PB_DT_BYTE 5 /* unsigned integer8 */ +#define PB_DT_WORD 6 /* unsigned integer16 */ +#define PB_DT_LONG 7 /* unsigned integer32 */ +#define PB_DT_FLOAT 8 /* floating point */ +#define PB_DT_VIS 9 /* visible string*/ +#define PB_DT_OCTET 10 /* octet string */ +#define PB_DT_DATE 11 /* date */ +#define PB_DT_TIME 12 /* time of day */ +#define PB_DT_DIFF 13 /* time difference */ +#define PB_DT_BIT 14 /* bit string */ +#define PB_DT_ARRAY 15 /* array */ + +/* memory types */ +#define SYS_RAM 1 /* RAM */ +#define USER_ROM1 2 /* EPROM */ +#define FIX_RAM 5 /* fixed RAM */ + +typedef struct RTCtime_typ { + /* 1. UDINT */ + UINT year; /* year, starting with zero */ + USINT month; /* month: 1 - 12 */ + USINT day; /* day: 1 - 31 */ + /* 2. UDINT */ + USINT reserve; + USINT hour; /* hour: 0 - 23 */ + USINT minute; /* minute: 0 - 59 */ + USINT second; /* second: 0 - 59 */ + /* 3. UDINT */ + UINT millisec; /* millisecond: 0 - 999 */ + UINT microsec; /* microsecond: 0 - 999 */ + } RTCtime_typ; + +/* structure for SYSxinfo */ +typedef struct SYSxinfo_typ { + char aws_name[6]; + char aws_type[2]; + UDINT cpu_info; + UINT ma_globl_len; + UINT md_globl_len; + UDINT os_len; + UDINT user_len; + UDINT tmp_len; + UDINT eprom_len; + UDINT fix_ram_len; + } SYSxinfo_typ; + +/* structure for MO_list */ +typedef struct MO_List_typ { + char name[14]; /* name of the module (ASCII) */ + USINT grp; /* groups */ + USINT type; /* module type */ + USINT state; /* state of the module */ + USINT reserve; + UDINT adress; /* physical address of the module */ + UDINT memtype; /* memory type (0=OTP,1=RAM,2=EPROM,3=FLASH */ + } MO_List_typ; /* 5=FIXRAM) */ + +/* structure for MO_info */ +typedef struct MO_info +{ + /* VAR_INPUT (analog) */ + unsigned long pName; + unsigned char grp; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char type; + unsigned char state; + unsigned long memType; + unsigned long address; + unsigned long size; + unsigned char version[10]; + struct RTCtime_typ date; + /* VAR_INPUT (digital) */ + plcbit enable; +} MO_info_typ; + +/* structure for PV_list */ +typedef struct PV_List_typ { + char name[14]; /* name of the PV (ASCII) */ + USINT tcnr; /* PV task class */ + USINT grp; /* PV group */ + UDINT ident; /* PV identifier */ + UDINT adress; /* physical address of the PV */ + } PV_List_typ; + +/* structue for PV_xlist */ +typedef struct PV_xList_typ { + + char name[33]; /* name of PV (ASCII) */ + USINT data_typ; /* data type of PV */ + UDINT data_len; /* data length of PV */ + UDINT dimension; /* dimension of PV */ + UDINT adress; /* physical address of PV */ + }PV_xList_typ; + +/* structure for ERR_read */ +typedef struct ERR_typ { + UINT err_nr; /* error number */ + UDINT err_info; /* additional information */ + char t_name[5]; /* name of the running task */ + USINT err_type; /* error type (1=fatal, 2=warning, 3=info) */ + UINT err_year; /* time of the error in RTC format */ + USINT err_month; + USINT err_day; + USINT err_reserve; + USINT err_hour; + USINT err_minute; + USINT err_second; + UINT err_millisec; + UINT err_microsec; + } ERR_typ; + +/* structure for ERR_xread */ +typedef struct ERR_xtyp { + UINT err_nr; /* error number */ + UDINT err_info; /* additional information */ + char t_name[5]; /* name of the running task */ + USINT err_type; /* error type (1=Fatal, 2=Warning, 3=Info) */ + UINT err_year; /* time of the error in RTC format */ + USINT err_month; + USINT err_day; + USINT err_reserve; + USINT err_hour; + USINT err_minute; + USINT err_second; + UINT err_millisec; + UINT err_microsec; + USINT err_string[34]; /* 32 byte string with 0 termination */ + } ERR_xtyp; + +/* structure for MO_ver */ +typedef struct MoVerStruc_typ { + USINT version[10]; /* Version of the BR Module */ + UINT year; + USINT month; + USINT day; + USINT reserve; + USINT hour; + USINT minute; + USINT second; + } MoVerStruc_typ; + +/* structure for the FUB Bit2Byte */ +typedef struct Bit2Byte { + /* non boolean input parameter */ + UDINT bitadr; + UINT length; + /* non boolean output parameter*/ + UDINT byteadr; + /* non boolean static local */ + USINT byte_00; + USINT byte_01; + USINT byte_02; + USINT byte_03; + USINT byte_04; + USINT byte_05; + USINT byte_06; + USINT byte_07; + USINT byte_08; + USINT byte_09; + USINT byte_10; + USINT byte_11; + USINT byte_12; + USINT byte_13; + USINT byte_14; + USINT byte_15; + /* boolean input parameter */ + /* boolean output parameter */ + /* boolean static local */ + BOOL bmem000; + BOOL bmem001; + BOOL bmem002; + BOOL bmem003; + BOOL bmem004; + BOOL bmem005; + BOOL bmem006; + BOOL bmem007; + BOOL bmem008; + BOOL bmem009; + BOOL bmem010; + BOOL bmem011; + BOOL bmem012; + BOOL bmem013; + BOOL bmem014; + BOOL bmem015; + BOOL bmem016; + BOOL bmem017; + BOOL bmem018; + BOOL bmem019; + BOOL bmem020; + BOOL bmem021; + BOOL bmem022; + BOOL bmem023; + BOOL bmem024; + BOOL bmem025; + BOOL bmem026; + BOOL bmem027; + BOOL bmem028; + BOOL bmem029; + BOOL bmem030; + BOOL bmem031; + BOOL bmem032; + BOOL bmem033; + BOOL bmem034; + BOOL bmem035; + BOOL bmem036; + BOOL bmem037; + BOOL bmem038; + BOOL bmem039; + BOOL bmem040; + BOOL bmem041; + BOOL bmem042; + BOOL bmem043; + BOOL bmem044; + BOOL bmem045; + BOOL bmem046; + BOOL bmem047; + BOOL bmem048; + BOOL bmem049; + BOOL bmem050; + BOOL bmem051; + BOOL bmem052; + BOOL bmem053; + BOOL bmem054; + BOOL bmem055; + BOOL bmem056; + BOOL bmem057; + BOOL bmem058; + BOOL bmem059; + BOOL bmem060; + BOOL bmem061; + BOOL bmem062; + BOOL bmem063; + BOOL bmem064; + BOOL bmem065; + BOOL bmem066; + BOOL bmem067; + BOOL bmem068; + BOOL bmem069; + BOOL bmem070; + BOOL bmem071; + BOOL bmem072; + BOOL bmem073; + BOOL bmem074; + BOOL bmem075; + BOOL bmem076; + BOOL bmem077; + BOOL bmem078; + BOOL bmem079; + BOOL bmem080; + BOOL bmem081; + BOOL bmem082; + BOOL bmem083; + BOOL bmem084; + BOOL bmem085; + BOOL bmem086; + BOOL bmem087; + BOOL bmem088; + BOOL bmem089; + BOOL bmem090; + BOOL bmem091; + BOOL bmem092; + BOOL bmem093; + BOOL bmem094; + BOOL bmem095; + BOOL bmem096; + BOOL bmem097; + BOOL bmem098; + BOOL bmem099; + BOOL bmem100; + BOOL bmem101; + BOOL bmem102; + BOOL bmem103; + BOOL bmem104; + BOOL bmem105; + BOOL bmem106; + BOOL bmem107; + BOOL bmem108; + BOOL bmem109; + BOOL bmem110; + BOOL bmem111; + BOOL bmem112; + BOOL bmem113; + BOOL bmem114; + BOOL bmem115; + BOOL bmem116; + BOOL bmem117; + BOOL bmem118; + BOOL bmem119; + BOOL bmem120; + BOOL bmem121; + BOOL bmem122; + BOOL bmem123; + BOOL bmem124; + BOOL bmem125; + BOOL bmem126; + BOOL bmem127; + BOOL bmem128; + BOOL bmem129; + BOOL bmem130; + BOOL bmem131; + BOOL bmem132; + BOOL bmem133; + BOOL bmem134; + BOOL bmem135; + BOOL bmem136; + BOOL bmem137; + BOOL bmem138; + BOOL bmem139; + } Bit2Byte_typ; + +/* structure for the FUB Byte2Bit */ +typedef struct Byte2Bit { + /* non boolean input parameter */ + UDINT byteadr; + UINT length; + /* non boolean output parameter*/ + UDINT bitadr; + /* non boolean static local */ + /* boolean input parameter */ + /* boolean output parameter */ + /* boolean static local */ + BOOL bmem000; + BOOL bmem001; + BOOL bmem002; + BOOL bmem003; + BOOL bmem004; + BOOL bmem005; + BOOL bmem006; + BOOL bmem007; + BOOL bmem008; + BOOL bmem009; + BOOL bmem010; + BOOL bmem011; + BOOL bmem012; + BOOL bmem013; + BOOL bmem014; + BOOL bmem015; + BOOL bmem016; + BOOL bmem017; + BOOL bmem018; + BOOL bmem019; + BOOL bmem020; + BOOL bmem021; + BOOL bmem022; + BOOL bmem023; + BOOL bmem024; + BOOL bmem025; + BOOL bmem026; + BOOL bmem027; + BOOL bmem028; + BOOL bmem029; + BOOL bmem030; + BOOL bmem031; + BOOL bmem032; + BOOL bmem033; + BOOL bmem034; + BOOL bmem035; + BOOL bmem036; + BOOL bmem037; + BOOL bmem038; + BOOL bmem039; + BOOL bmem040; + BOOL bmem041; + BOOL bmem042; + BOOL bmem043; + BOOL bmem044; + BOOL bmem045; + BOOL bmem046; + BOOL bmem047; + BOOL bmem048; + BOOL bmem049; + BOOL bmem050; + BOOL bmem051; + BOOL bmem052; + BOOL bmem053; + BOOL bmem054; + BOOL bmem055; + BOOL bmem056; + BOOL bmem057; + BOOL bmem058; + BOOL bmem059; + BOOL bmem060; + BOOL bmem061; + BOOL bmem062; + BOOL bmem063; + BOOL bmem064; + BOOL bmem065; + BOOL bmem066; + BOOL bmem067; + BOOL bmem068; + BOOL bmem069; + BOOL bmem070; + BOOL bmem071; + BOOL bmem072; + BOOL bmem073; + BOOL bmem074; + BOOL bmem075; + BOOL bmem076; + BOOL bmem077; + BOOL bmem078; + BOOL bmem079; + BOOL bmem080; + BOOL bmem081; + BOOL bmem082; + BOOL bmem083; + BOOL bmem084; + BOOL bmem085; + BOOL bmem086; + BOOL bmem087; + BOOL bmem088; + BOOL bmem089; + BOOL bmem090; + BOOL bmem091; + BOOL bmem092; + BOOL bmem093; + BOOL bmem094; + BOOL bmem095; + BOOL bmem096; + BOOL bmem097; + BOOL bmem098; + BOOL bmem099; + BOOL bmem100; + BOOL bmem101; + BOOL bmem102; + BOOL bmem103; + BOOL bmem104; + BOOL bmem105; + BOOL bmem106; + BOOL bmem107; + BOOL bmem108; + BOOL bmem109; + BOOL bmem110; + BOOL bmem111; + BOOL bmem112; + BOOL bmem113; + BOOL bmem114; + BOOL bmem115; + BOOL bmem116; + BOOL bmem117; + BOOL bmem118; + BOOL bmem119; + BOOL bmem120; + BOOL bmem121; + BOOL bmem122; + BOOL bmem123; + BOOL bmem124; + BOOL bmem125; + BOOL bmem126; + BOOL bmem127; + BOOL bmem128; + BOOL bmem129; + BOOL bmem130; + BOOL bmem131; + BOOL bmem132; + BOOL bmem133; + BOOL bmem134; + BOOL bmem135; + BOOL bmem136; + BOOL bmem137; + BOOL bmem138; + BOOL bmem139; + } Byte2Bit_typ; + +/***************/ +/* Prototyping */ +/***************/ + +UINT PV_ident (char *pv_name_p, USINT pv_tcnr, USINT pv_grpnr, + UDINT *pv_ident); +UINT PV_setval (UDINT pv_ident, UDINT value); +UINT PV_getval (UDINT pv_ident, UDINT *value); +UINT PV_getadr (char *pv_name_p, USINT pv_tcnr, USINT pv_grpnr, + UDINT *pv_adresse); +UINT PV_xgetadr (char *pv_name, UDINT *pv_adresse, UDINT *data_len); +UINT PV_xsetval (UDINT pv_ident, UINT subindex, void *data_p, + USINT data_len); +UINT PV_xgetval (UDINT pv_ident, UINT subindex, void *data_p, + USINT data_len); +UINT PV_info (UDINT pv_ident, UDINT *data_type, UDINT *data_len, + UINT *dimension); +UINT PV_list (UINT prev_index, UINT *index, PV_List_typ *pvl_p); +UINT PV_xlist (UINT prev_index, UINT *index, PV_xList_typ *pvl_p); +UINT PV_item (char *pv_name, UINT index, char *itemname); +UINT PV_ninfo (char *pv_name, UDINT *data_typ_p, UDINT *data_len_p, + UINT *dimension_p); + + + +UINT SYS_info (UDINT *sg_init_cnt, UDINT *sg_initdescr, UDINT *sg_tickcnt, + UDINT *sg_version, UDINT *sg_ov_version); +UINT SYSxinfo (SYSxinfo_typ *sx_p); +UINT SYSreset (BOOL enable, USINT mode); +USINT SYS_battery (void); + +UINT MO_list (UINT prev_index, UINT *index, MO_List_typ *mol_p); +void MO_info (struct MO_info* pInst); +UINT KEY_enadis (BOOL mode); +UINT KEY_read (USINT keys[4]); + +UINT FORCE_info (USINT tcnr, BOOL *force); + +UINT ST_ident (char *st_name_p, USINT st_grp, UDINT *st_ident); +UINT ST_suspend (UDINT st_ident); +UINT ST_resume (UDINT st_ident); +UINT ST_tmp_suspend (UDINT st_ident); +UINT ST_tmp_resume (UDINT st_ident); +UINT ST_allsuspend (void); +UINT ST_info (UDINT st_ident, USINT *state, SINT *tcnr); +UINT ST_name (UDINT st_ident, char *st_name_p, USINT *st_grp); + +UINT UT_ident (char *ut_name_p, USINT ut_grp, USINT ut_proc, char *ut_sps_p,UDINT *ut_ident); +UINT UT_suspend (UDINT ut_ident); +UINT UT_resume (UDINT ut_ident); +UINT UT_sleep (UDINT tickcount); +UINT UT_sendmsg (UDINT ut_ident, void *msg, UDINT msglng, UDINT flags); +UINT UT_recmsg (UDINT *ut_ident, void **msg, UDINT *msglng, UDINT flags); +UINT UT_freemsg (UDINT msglng, void *msg); +UINT UT_exit (UDINT exitinfo); + + +UINT AVT_create (char *name_p, USINT grupid, UDINT av_info, UDINT *av_ident); +UINT AVT_cancel (UDINT av_ident); +UINT AVT_ident (char *name_p, USINT grupid, UDINT *av_ident); +UINT AVT_attach (UDINT av_ident, UDINT *av_info); +UINT AVT_release (UDINT av_ident); +UINT AVT_info (UDINT av_ident, USINT *av_linkcount); + +UINT MEM_alloc (UDINT memlng, void **memptr); +UINT MEM_free (UDINT memlng, void *memptr); +UINT TMP_alloc (UDINT memlng, void **memptr); +UINT TMP_free (UDINT memlng, void *memptr); + +UINT RTC_gettime (RTCtime_typ *rtctime); +UINT RTC_settime (RTCtime_typ *rtctime); +UINT SW_gettime (RTCtime_typ *rtctime); +UINT SW_settime (RTCtime_typ *rtctime); +UINT TIM_musec (void); +UINT TIM_ticks (void); + +UINT SM_create (char *sm_name, USINT sm_count, UDINT *sm_ident); +UINT SM_ident (char *sm_name, UDINT *sm_ident); +UINT SM_delete (UDINT sm_ident); +UINT SM_attach (UDINT sm_ident, UDINT timeout, UDINT flags); +UINT SM_release (UDINT sm_ident); + +UINT ERR_warning (UINT errornr, UDINT errorinfo); +UINT ERR_fatal (UINT errornr, UDINT errorinfo); +UINT ERR_read (UINT entry_nr, ERR_typ *err_p); +UINT ERRxwarning (UINT errornr, UDINT errorinfo, char* errorstring); +UINT ERRxread (UINT entry_nr, ERR_xtyp *err_p); +UINT ERRxfatal (UINT errornr, UDINT errorinfo, char* errorstring); + +UINT DIS_str (UDINT row, UDINT col, char *string); +UINT DIS_chr (UDINT row, UDINT col, char character); +UINT DIS_clr (void); + +UINT DA_create (char *name_p, USINT grp, UINT spooladr, UDINT data_len, + void *data_p, void **mo_data_p, UDINT *mo_ident); +UINT DA_write (UDINT mo_ident, void *data_p,UDINT data_len, + UDINT mo_data_offset); +UINT DA_read (UDINT mo_ident, void *data_p,UDINT data_len, + UDINT mo_data_offset); +UINT DA_ident (char *name_p, USINT grp, UDINT *mo_ident); +UINT DA_delete (UDINT mo_ident); +UINT DA_burn (UDINT mo_ident); +UINT DA_fix (UDINT mo_ident); +UINT DA_info (UDINT mo_ident, void **moduldata_adr, UDINT *moduldata_lng, + USINT *memorytype); +UINT DA_copy (UDINT mo_ident, char *new_name, USINT mem_typ, UDINT *da_ident, + UDINT *daten_p, UDINT *daten_len); +UINT DA_store (UDINT mo_ident, USINT mem_typ, UDINT* daten_p, UDINT* daten_len); + +UINT MO_ver (STRING *pName, USINT grp, MoVerStruc_typ* pMoVerStruc); + +void Bit2Byte (Bit2Byte_typ* Bit2Byte_ptr); +void Byte2Bit (Byte2Bit_typ* Byte2Bit_ptr); + +#ifdef __cplusplus +}; +#endif +#endif /* _SYS_LIB_H_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/sys_lib/SG4/sys_lib.h b/example/AsProject/Logical/Libraries/_AS/sys_lib/SG4/sys_lib.h index da46f3b..cfa9161 100644 --- a/example/AsProject/Logical/Libraries/_AS/sys_lib/SG4/sys_lib.h +++ b/example/AsProject/Logical/Libraries/_AS/sys_lib/SG4/sys_lib.h @@ -1,730 +1,551 @@ -/* Automation Studio generated header file */ -/* Do not edit ! */ - -#ifndef _SYS_LIB_H_ -#define _SYS_LIB_H_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include -#include - -#ifndef _BUR_PUBLIC -#define _BUR_PUBLIC -#endif - -#define TMP_MODE 0x8000 /* temporary suspend/resume for */ - /* PLC and user task */ - -/* Error codes of the BURTRAP/SYS_LIB services */ - -#define ERR_BUR_WRROW 2061 /* illegal row */ -#define ERR_BUR_WRCOL 2062 /* illegal column */ -#define ERR_BUR_WR_CHAR 2063 /* invalid ASCII character */ -#define ERR_BUR_NORTC 2073 /* RTC not existing or uninitialized */ - -#define ERR_BUR_MO_NOTFOUND 3019 /* module not found */ -#define ERR_BUR_NOMEM 3030 /* out of memory */ -#define ERR_BUR_MEMVWBUSY 3035 /* memory management busy */ -#define ERR_BUR_ILLPTR 3104 /* illegal data pointer in MEM_free */ - -#define ERR_BUR_PSOS_BASE 3300 /* base number of pSOS errors */ - -#define ERR_BUR_ILLTKNR 3300 /* illegal task-class number */ -#define ERR_BUR_WROFFSET 3301 /* illegal offset */ -#define ERR_BUR_ILLSTATE 3302 /* illegal state of object */ -#define ERR_BUR_NOMSG 3303 /* no message sent/received */ -#define ERR_BUR_DUPOBJ 3305 /* object exists */ -#define ERR_BUR_TIMEOUT 3304 /* timeout error */ -#define ERR_BUR_EXISTS 3306 /* entry exists */ -#define ERR_BUR_LCOUNT 3307 /* Linkcnt <> 0 in AVT_cancel () */ -#define ERR_BUR_BURNING 3308 /* error burning module */ -#define ERR_BUR_INVALIDMBX 3309 /* invalid mailbox */ - -#define ERR_BUR_ILLBPTR 3310 /* invalid base pointer */ -#define ERR_BUR_ILLTYP 3311 /* invalid I/O type */ -#define ERR_BUR_ILLEXT 3312 /* invalid ext. bit */ -#define ERR_BUR_ILLVER 3313 /* invalid version */ - /* e.g. BURTRAP V1.10 to SPSSW V1.05 */ -#define ERR_BUR_ILLLEN 3314 /* invalid data length */ -#define ERR_BUR_MAX_LCOUNT 3315 /* AVT_attach: LCOUNT > 127 */ -#define ERR_BUR_AVT_FREE 3316 /* AVT_release:LCOUNT = 0 */ -#define ERR_BUR_ILLPAR 3317 /* illegal parameter */ -#define ERR_BUR_INSTALL 3318 /* error install datamodule */ -#define ERR_BUR_WRONG_MODTYP 3319 /* wrong Moduletype */ - -#define ERR_BUR_OBJDEL 3320 /* object already deleted */ -#define ERR_BUR_ILLOBJ 3324 /* object does not exist */ -#define ERR_BUR_ILLOBJTYP 3328 /* invalid object type */ -#define ERR_BUR_NOENTRY 3332 /* no entry */ -#define ERR_BUR_TOOLONG_PVNAME 3333 /* too long PV name */ -#define ERR_BUR_ILLIDENT 3336 /* illegal ident */ -#define ERR_BUR_NOSMBUF 3560 /* no more semaphore buffers */ -#define ERR_BUR_NOSM 3564 /* semaphore not available */ -#define ERR_BUR_SMDEL 3568 /* semaphore deleted */ -#define ERR_BUR_NOTIME 3584 /* time not available */ -#define ERR_BUR_ILLDATE 3588 /* date : out of range */ -#define ERR_BUR_ILLTIME 3592 /* time : out of range */ -#define ERR_BUR_ILLTICKS 3596 /* ticks : out of range */ - -#define ERR_BUR_MEM_ALLOC 3600 /* not enough continuous memory */ -#define ERR_BUR_TMP_ALLOC 3601 /* not enough continuous memory */ -#define ERR_BUR_MEM_FREE 3700 /* invalid pointer/length */ -#define ERR_BUR_TMP_FREE 3701 /* invalid pointer/length */ - -/* State for object PLC task */ -#define Z_ST_created 1 -#define Z_ST_running 2 -#define Z_ST_blocked 3 -#define Z_ST_exist 0x00 -#define Z_ST_installed 0x82 -#define Z_ST_PVinstalled 0x83 -#define Z_ST_IOinstalled 0x84 -#define Z_ST_IOdeinstalled 0x85 -#define Z_ST_PVdeinstalled 0x86 -#define Z_ST_delete 0x87 -#define Z_ST_stdebug 0x88 -#define Z_ST_tmp_suspended 0x90 - -/* PV data types - obsolete */ -#define PB_DT_STRUCT 0 /* structure */ -#define PB_DT_BOOL 1 /* boolean */ -#define PB_DT_INT8 2 /* integer8 */ -#define PB_DT_INT16 3 /* integer16 */ -#define PB_DT_INT32 4 /* integer32 */ -#define PB_DT_BYTE 5 /* unsigned integer8 */ -#define PB_DT_WORD 6 /* unsigned integer16 */ -#define PB_DT_LONG 7 /* unsigned integer32 */ -#define PB_DT_FLOAT 8 /* floating point */ -#define PB_DT_VIS 9 /* visible string */ -#define PB_DT_OCTET 10 /* octet string */ -#define PB_DT_DATE 11 /* date */ -#define PB_DT_TIME 12 /* time of day */ -#define PB_DT_DIFF 13 /* time difference */ -#define PB_DT_BIT 14 /* bit string */ -#define PB_DT_ARRAY 15 /* array */ - -/* elementary data types */ -#define SYSLIB_IEC_TYPE_USER_DEFINED 0 /* User-defined data type */ -#define SYSLIB_IEC_TYPE_USER_DEFINED_2 15 /* User-defined data type (legacy: array of structs) */ -#define SYSLIB_IEC_TYPE_BOOL 1 /* 8 Bit containing a boolean value FALSE=0 or TRUE=1 */ -#define SYSLIB_IEC_TYPE_SINT 2 /* 8 Bit signed integer */ -#define SYSLIB_IEC_TYPE_INT 3 /* 16 Bit signed integer */ -#define SYSLIB_IEC_TYPE_DINT 4 /* 32 Bit signed integer */ -#define SYSLIB_IEC_TYPE_USINT 5 /* 8 Bit unsigned integer */ -#define SYSLIB_IEC_TYPE_UINT 6 /* 16 Bit unsigned integer */ -#define SYSLIB_IEC_TYPE_UDINT 7 /* 32 Bit unsigned integer */ -#define SYSLIB_IEC_TYPE_REAL 8 /* 32 Bit floating point number */ -#define SYSLIB_IEC_TYPE_STRING 9 /* Variable-length single-byte character string */ -#define SYSLIB_IEC_TYPE_DATE_AND_TIME 11 /* 32 Bit of Date in Seconds since 01.01.1970 00:00:00 */ -#define SYSLIB_IEC_TYPE_TIME 12 /* 32 Bit of Time in ms */ -#define SYSLIB_IEC_TYPE_DATE 13 /* 32 Bit of Date (only) */ -#define SYSLIB_IEC_TYPE_LREAL 14 /* 64 Bit floating point number */ -#define SYSLIB_IEC_TYPE_TIME_OF_DAY 16 /* 32 Bit Time of day (only) */ -#define SYSLIB_IEC_TYPE_BYTE 17 /* Bit string of length 8 */ -#define SYSLIB_IEC_TYPE_WORD 18 /* Bit string of length 16 */ -#define SYSLIB_IEC_TYPE_DWORD 19 /* Bit string of length 32 */ -#define SYSLIB_IEC_TYPE_WSTRING 21 /* Variable-length double-byte character string */ - -/* memory types */ -#define SYS_RAM 1 /* RAM */ -#define USER_ROM1 2 /* EPROM */ -#define FIX_RAM 5 /* fixed RAM */ - -/* shutdown / reboot types */ -#define SYSLIB_WARMSTART 0x01 /*WARMSTART(with restart)*/ -#define SYSLIB_COLDSTART 0x02 /*COLDSTART(with restart)*/ -#define SYSLIB_WARMSTART_NO_REBOOT 0x11 /*WARMSTART(no restart, only shutdown)*/ -#define SYSLIB_COLDSTART_NO_REBOOT 0x12 /*COLDSTART(no restart, only shutdown)*/ -#define SYSLIB_DIAGNOSTICS 0x20 /*DIAGNOSTICS(with restart)*/ -#define SYSLIB_SERVICE 0x40 /*SERVICE(with restart) */ - -typedef struct RTCtime_typ { - /* 1. UDINT */ - UINT year; /* year, starting with zero */ - USINT month; /* month: 1 - 12 */ - USINT day; /* day: 1 - 31 */ - /* 2. UDINT */ - USINT reserve; - USINT hour; /* hour: 0 - 23 */ - USINT minute; /* minute: 0 - 59 */ - USINT second; /* second: 0 - 59 */ - /* 3. UDINT */ - UINT millisec; /* millisecond: 0 - 999 */ - UINT microsec; /* microsecond: 0 - 999 */ - } RTCtime_typ; - -/* structure for SYSxinfo */ -typedef struct SYSxinfo_typ { - char aws_name[6]; - char aws_type[2]; - UDINT cpu_info; - UINT ma_globl_len; - UINT md_globl_len; - UDINT os_len; - UDINT user_len; - UDINT tmp_len; - UDINT eprom_len; - UDINT fix_ram_len; - } SYSxinfo_typ; - -/* structure for MO_list */ -typedef struct MO_List_typ { - char name[14]; /* name of the module (ASCII) */ - USINT grp; /* groups */ - USINT type; /* module type */ - USINT state; /* state of the module */ - USINT reserve; - UDINT adress; /* physical address of the module */ - UDINT memtype; /* memory type (0=OTP,1=RAM,2=EPROM,3=FLASH */ - } MO_List_typ; /* 5=FIXRAM) */ - -/* structure for slMoList */ -typedef struct slMoList { - /* VAR_INPUT (analog) */ - unsigned long pMoName; - unsigned long sizeMoName; - unsigned long pAppMoName; - unsigned long sizeAppMoName; - /* VAR_OUTPUT (analog) */ - unsigned short status; - unsigned long moSize; - unsigned char moType; - unsigned char memType; - /* VAR (analog) */ - unsigned long i_hMo; - /* VAR_INPUT (digital) */ - plcbit enable; - plcbit first; - plcbit filter; -} slMoList_typ; - -/* structure for MO_info */ -typedef struct MO_info -{ - /* VAR_INPUT (analog) */ - unsigned long pName; - unsigned char grp; - /* VAR_OUTPUT (analog) */ - unsigned short status; - unsigned char type; - unsigned char state; - unsigned long memType; - unsigned long address; - unsigned long size; - unsigned char version[10]; - struct RTCtime_typ date; - /* VAR_INPUT (digital) */ - plcbit enable; -} MO_info_typ; - -/* structure for PV_list */ -typedef struct PV_List_typ { - char name[14]; /* name of the PV (ASCII) */ - USINT tcnr; /* PV task class */ - USINT grp; /* PV group */ - UDINT ident; /* PV identifier */ - UDINT adress; /* physical address of the PV */ - } PV_List_typ; - -/* structue for PV_xlist */ -typedef struct PV_xList_typ { - - char name[33]; /* name of PV (ASCII) */ - USINT data_typ; /* data type of PV */ - UDINT data_len; /* data length of PV */ - UDINT dimension; /* dimension of PV */ - UDINT adress; /* physical address of PV */ - }PV_xList_typ; - -/* structure for ERR_read */ -typedef struct ERR_typ { - UINT err_nr; /* error number */ - UDINT err_info; /* additional information */ - char t_name[5]; /* name of the running task */ - USINT err_type; /* error type (1=fatal, 2=warning, 3=info) */ - UINT err_year; /* time of the error in RTC format */ - USINT err_month; - USINT err_day; - USINT err_reserve; - USINT err_hour; - USINT err_minute; - USINT err_second; - UINT err_millisec; - UINT err_microsec; - } ERR_typ; - -/* structure for ERR_xread */ -typedef struct ERR_xtyp { - UINT err_nr; /* error number */ - UDINT err_info; /* additional information */ - char t_name[5]; /* name of the running task */ - USINT err_type; /* error type (1=Fatal, 2=Warning, 3=Info) */ - UINT err_year; /* time of the error in RTC format */ - USINT err_month; - USINT err_day; - USINT err_reserve; - USINT err_hour; - USINT err_minute; - USINT err_second; - UINT err_millisec; - UINT err_microsec; - USINT err_string[34]; /* 32 byte string with 0 termination */ - } ERR_xtyp; - -/* structure for MO_ver */ -typedef struct MoVerStruc_typ { - USINT version[10]; /* Version of the BR Module */ - UINT year; - USINT month; - USINT day; - USINT reserve; - USINT hour; - USINT minute; - USINT second; - } MoVerStruc_typ; - -/* structure for the FUB Bit2Byte */ -typedef struct Bit2Byte { - /* non boolean input parameter */ - UDINT bitadr; - UINT length; - /* non boolean output parameter*/ - UDINT byteadr; - /* non boolean static local */ - USINT byte_00; - USINT byte_01; - USINT byte_02; - USINT byte_03; - USINT byte_04; - USINT byte_05; - USINT byte_06; - USINT byte_07; - USINT byte_08; - USINT byte_09; - USINT byte_10; - USINT byte_11; - USINT byte_12; - USINT byte_13; - USINT byte_14; - USINT byte_15; - /* boolean input parameter */ - /* boolean output parameter */ - /* boolean static local */ - BOOL bmem000; - BOOL bmem001; - BOOL bmem002; - BOOL bmem003; - BOOL bmem004; - BOOL bmem005; - BOOL bmem006; - BOOL bmem007; - BOOL bmem008; - BOOL bmem009; - BOOL bmem010; - BOOL bmem011; - BOOL bmem012; - BOOL bmem013; - BOOL bmem014; - BOOL bmem015; - BOOL bmem016; - BOOL bmem017; - BOOL bmem018; - BOOL bmem019; - BOOL bmem020; - BOOL bmem021; - BOOL bmem022; - BOOL bmem023; - BOOL bmem024; - BOOL bmem025; - BOOL bmem026; - BOOL bmem027; - BOOL bmem028; - BOOL bmem029; - BOOL bmem030; - BOOL bmem031; - BOOL bmem032; - BOOL bmem033; - BOOL bmem034; - BOOL bmem035; - BOOL bmem036; - BOOL bmem037; - BOOL bmem038; - BOOL bmem039; - BOOL bmem040; - BOOL bmem041; - BOOL bmem042; - BOOL bmem043; - BOOL bmem044; - BOOL bmem045; - BOOL bmem046; - BOOL bmem047; - BOOL bmem048; - BOOL bmem049; - BOOL bmem050; - BOOL bmem051; - BOOL bmem052; - BOOL bmem053; - BOOL bmem054; - BOOL bmem055; - BOOL bmem056; - BOOL bmem057; - BOOL bmem058; - BOOL bmem059; - BOOL bmem060; - BOOL bmem061; - BOOL bmem062; - BOOL bmem063; - BOOL bmem064; - BOOL bmem065; - BOOL bmem066; - BOOL bmem067; - BOOL bmem068; - BOOL bmem069; - BOOL bmem070; - BOOL bmem071; - BOOL bmem072; - BOOL bmem073; - BOOL bmem074; - BOOL bmem075; - BOOL bmem076; - BOOL bmem077; - BOOL bmem078; - BOOL bmem079; - BOOL bmem080; - BOOL bmem081; - BOOL bmem082; - BOOL bmem083; - BOOL bmem084; - BOOL bmem085; - BOOL bmem086; - BOOL bmem087; - BOOL bmem088; - BOOL bmem089; - BOOL bmem090; - BOOL bmem091; - BOOL bmem092; - BOOL bmem093; - BOOL bmem094; - BOOL bmem095; - BOOL bmem096; - BOOL bmem097; - BOOL bmem098; - BOOL bmem099; - BOOL bmem100; - BOOL bmem101; - BOOL bmem102; - BOOL bmem103; - BOOL bmem104; - BOOL bmem105; - BOOL bmem106; - BOOL bmem107; - BOOL bmem108; - BOOL bmem109; - BOOL bmem110; - BOOL bmem111; - BOOL bmem112; - BOOL bmem113; - BOOL bmem114; - BOOL bmem115; - BOOL bmem116; - BOOL bmem117; - BOOL bmem118; - BOOL bmem119; - BOOL bmem120; - BOOL bmem121; - BOOL bmem122; - BOOL bmem123; - BOOL bmem124; - BOOL bmem125; - BOOL bmem126; - BOOL bmem127; - BOOL bmem128; - BOOL bmem129; - BOOL bmem130; - BOOL bmem131; - BOOL bmem132; - BOOL bmem133; - BOOL bmem134; - BOOL bmem135; - BOOL bmem136; - BOOL bmem137; - BOOL bmem138; - BOOL bmem139; - } Bit2Byte_typ; - -/* structure for the FUB Byte2Bit */ -typedef struct Byte2Bit { - /* non boolean input parameter */ - UDINT byteadr; - UINT length; - /* non boolean output parameter*/ - UDINT bitadr; - /* non boolean static local */ - /* boolean input parameter */ - /* boolean output parameter */ - /* boolean static local */ - BOOL bmem000; - BOOL bmem001; - BOOL bmem002; - BOOL bmem003; - BOOL bmem004; - BOOL bmem005; - BOOL bmem006; - BOOL bmem007; - BOOL bmem008; - BOOL bmem009; - BOOL bmem010; - BOOL bmem011; - BOOL bmem012; - BOOL bmem013; - BOOL bmem014; - BOOL bmem015; - BOOL bmem016; - BOOL bmem017; - BOOL bmem018; - BOOL bmem019; - BOOL bmem020; - BOOL bmem021; - BOOL bmem022; - BOOL bmem023; - BOOL bmem024; - BOOL bmem025; - BOOL bmem026; - BOOL bmem027; - BOOL bmem028; - BOOL bmem029; - BOOL bmem030; - BOOL bmem031; - BOOL bmem032; - BOOL bmem033; - BOOL bmem034; - BOOL bmem035; - BOOL bmem036; - BOOL bmem037; - BOOL bmem038; - BOOL bmem039; - BOOL bmem040; - BOOL bmem041; - BOOL bmem042; - BOOL bmem043; - BOOL bmem044; - BOOL bmem045; - BOOL bmem046; - BOOL bmem047; - BOOL bmem048; - BOOL bmem049; - BOOL bmem050; - BOOL bmem051; - BOOL bmem052; - BOOL bmem053; - BOOL bmem054; - BOOL bmem055; - BOOL bmem056; - BOOL bmem057; - BOOL bmem058; - BOOL bmem059; - BOOL bmem060; - BOOL bmem061; - BOOL bmem062; - BOOL bmem063; - BOOL bmem064; - BOOL bmem065; - BOOL bmem066; - BOOL bmem067; - BOOL bmem068; - BOOL bmem069; - BOOL bmem070; - BOOL bmem071; - BOOL bmem072; - BOOL bmem073; - BOOL bmem074; - BOOL bmem075; - BOOL bmem076; - BOOL bmem077; - BOOL bmem078; - BOOL bmem079; - BOOL bmem080; - BOOL bmem081; - BOOL bmem082; - BOOL bmem083; - BOOL bmem084; - BOOL bmem085; - BOOL bmem086; - BOOL bmem087; - BOOL bmem088; - BOOL bmem089; - BOOL bmem090; - BOOL bmem091; - BOOL bmem092; - BOOL bmem093; - BOOL bmem094; - BOOL bmem095; - BOOL bmem096; - BOOL bmem097; - BOOL bmem098; - BOOL bmem099; - BOOL bmem100; - BOOL bmem101; - BOOL bmem102; - BOOL bmem103; - BOOL bmem104; - BOOL bmem105; - BOOL bmem106; - BOOL bmem107; - BOOL bmem108; - BOOL bmem109; - BOOL bmem110; - BOOL bmem111; - BOOL bmem112; - BOOL bmem113; - BOOL bmem114; - BOOL bmem115; - BOOL bmem116; - BOOL bmem117; - BOOL bmem118; - BOOL bmem119; - BOOL bmem120; - BOOL bmem121; - BOOL bmem122; - BOOL bmem123; - BOOL bmem124; - BOOL bmem125; - BOOL bmem126; - BOOL bmem127; - BOOL bmem128; - BOOL bmem129; - BOOL bmem130; - BOOL bmem131; - BOOL bmem132; - BOOL bmem133; - BOOL bmem134; - BOOL bmem135; - BOOL bmem136; - BOOL bmem137; - BOOL bmem138; - BOOL bmem139; - } Byte2Bit_typ; - -/***************/ -/* Prototyping of functions and function blocks */ -_BUR_PUBLIC UINT PV_ident (char *pv_name_p, USINT pv_tcnr, USINT pv_grpnr, - UDINT *pv_ident); -_BUR_PUBLIC UINT PV_setval (UDINT pv_ident, UDINT value); -_BUR_PUBLIC UINT PV_getval (UDINT pv_ident, UDINT *value); -_BUR_PUBLIC UINT PV_getadr (char *pv_name_p, USINT pv_tcnr, USINT pv_grpnr, - UDINT *pv_adresse); -_BUR_PUBLIC UINT PV_xgetadr (char *pv_name, UDINT *pv_adresse, UDINT *data_len); -_BUR_PUBLIC UINT PV_xsetval (UDINT pv_ident, UINT subindex, void *data_p, - USINT data_len); -_BUR_PUBLIC UINT PV_xgetval (UDINT pv_ident, UINT subindex, void *data_p, - USINT data_len); -_BUR_PUBLIC UINT PV_info (UDINT pv_ident, UDINT *data_type, UDINT *data_len, - UINT *dimension); -_BUR_PUBLIC UINT PV_list (UINT prev_index, UINT *index, PV_List_typ *pvl_p); -_BUR_PUBLIC UINT PV_xlist (UINT prev_index, UINT *index, PV_xList_typ *pvl_p); -_BUR_PUBLIC UINT PV_item (char *pv_name, UINT index, char *itemname); -_BUR_PUBLIC UINT PV_ninfo (char *pv_name, UDINT *data_typ_p, UDINT *data_len_p, - UINT *dimension_p); - - - -_BUR_PUBLIC UINT SYS_info (UDINT *sg_init_cnt, UDINT *sg_initdescr, UDINT *sg_tickcnt, - UDINT *sg_version, UDINT *sg_ov_version); -_BUR_PUBLIC UINT SYSxinfo (SYSxinfo_typ *sx_p); -_BUR_PUBLIC UINT SYSreset (BOOL enable, USINT mode); -_BUR_PUBLIC USINT SYS_battery (void); - -_BUR_PUBLIC UINT MO_list (UINT prev_index, UINT *index, MO_List_typ *mol_p); -_BUR_PUBLIC void MO_info (struct MO_info* pInst); -_BUR_PUBLIC void slMoList (slMoList_typ * pInst); - -_BUR_PUBLIC UINT KEY_enadis (BOOL mode); -_BUR_PUBLIC UINT KEY_read (USINT keys[4]); - -_BUR_PUBLIC UINT FORCE_info (USINT tcnr, BOOL *force); - -_BUR_PUBLIC UINT ST_ident (char *st_name_p, USINT st_grp, UDINT *st_ident); -_BUR_PUBLIC UINT ST_suspend (UDINT st_ident); -_BUR_PUBLIC UINT ST_resume (UDINT st_ident); -_BUR_PUBLIC UINT ST_tmp_suspend (UDINT st_ident); -_BUR_PUBLIC UINT ST_tmp_resume (UDINT st_ident); -_BUR_PUBLIC UINT ST_allsuspend (void); -_BUR_PUBLIC UINT ST_info (UDINT st_ident, USINT *state, SINT *tcnr); -_BUR_PUBLIC UINT ST_name (UDINT st_ident, char *st_name_p, USINT *st_grp); - -_BUR_PUBLIC UINT UT_ident (char *ut_name_p, USINT ut_grp, USINT ut_proc, char *ut_sps_p,UDINT *ut_ident); -_BUR_PUBLIC UINT UT_suspend (UDINT ut_ident); -_BUR_PUBLIC UINT UT_resume (UDINT ut_ident); -_BUR_PUBLIC UINT UT_sleep (UDINT tickcount); -_BUR_PUBLIC UINT UT_sendmsg (UDINT ut_ident, void *msg, UDINT msglng, UDINT flags); -_BUR_PUBLIC UINT UT_recmsg (UDINT *ut_ident, void **msg, UDINT *msglng, UDINT flags); -_BUR_PUBLIC UINT UT_freemsg (UDINT msglng, void *msg); -_BUR_PUBLIC UINT UT_exit (UDINT exitinfo); - - -_BUR_PUBLIC UINT AVT_create (char *name_p, USINT grupid, UDINT av_info, UDINT *av_ident); -_BUR_PUBLIC UINT AVT_cancel (UDINT av_ident); -_BUR_PUBLIC UINT AVT_ident (char *name_p, USINT grupid, UDINT *av_ident); -_BUR_PUBLIC UINT AVT_attach (UDINT av_ident, UDINT *av_info); -_BUR_PUBLIC UINT AVT_release (UDINT av_ident); -_BUR_PUBLIC UINT AVT_info (UDINT av_ident, USINT *av_linkcount); - -_BUR_PUBLIC UINT MEM_alloc (UDINT memlng, void **memptr); -_BUR_PUBLIC UINT MEM_free (UDINT memlng, void *memptr); -_BUR_PUBLIC UINT TMP_alloc (UDINT memlng, void **memptr); -_BUR_PUBLIC UINT TMP_free (UDINT memlng, void *memptr); - -_BUR_PUBLIC UINT RTC_gettime (RTCtime_typ *rtctime); -_BUR_PUBLIC UINT RTC_settime (RTCtime_typ *rtctime); -_BUR_PUBLIC UINT SW_gettime (RTCtime_typ *rtctime); -_BUR_PUBLIC UINT SW_settime (RTCtime_typ *rtctime); -_BUR_PUBLIC UINT TIM_musec (void); -_BUR_PUBLIC UINT TIM_ticks (void); - -_BUR_PUBLIC UINT SM_create (char *sm_name, USINT sm_count, UDINT *sm_ident); -_BUR_PUBLIC UINT SM_ident (char *sm_name, UDINT *sm_ident); -_BUR_PUBLIC UINT SM_delete (UDINT sm_ident); -_BUR_PUBLIC UINT SM_attach (UDINT sm_ident, UDINT timeout, UDINT flags); -_BUR_PUBLIC UINT SM_release (UDINT sm_ident); - -_BUR_PUBLIC UINT ERR_warning (UINT errornr, UDINT errorinfo); -_BUR_PUBLIC UINT ERR_fatal (UINT errornr, UDINT errorinfo); -_BUR_PUBLIC UINT ERR_read (UINT entry_nr, ERR_typ *err_p); -_BUR_PUBLIC UINT ERRxwarning (UINT errornr, UDINT errorinfo, char* errorstring); -_BUR_PUBLIC UINT ERRxread (UINT entry_nr, ERR_xtyp *err_p); -_BUR_PUBLIC UINT ERRxfatal (UINT errornr, UDINT errorinfo, char* errorstring); - -_BUR_PUBLIC UINT DIS_str (UDINT row, UDINT col, char *string); -_BUR_PUBLIC UINT DIS_chr (UDINT row, UDINT col, char character); -_BUR_PUBLIC UINT DIS_clr (void); - -_BUR_PUBLIC UINT DA_create (char *name_p, USINT grp, UINT spooladr, UDINT data_len, - void *data_p, void **mo_data_p, UDINT *mo_ident); -_BUR_PUBLIC UINT DA_write (UDINT mo_ident, void *data_p,UDINT data_len, - UDINT mo_data_offset); -_BUR_PUBLIC UINT DA_read (UDINT mo_ident, void *data_p,UDINT data_len, - UDINT mo_data_offset); -_BUR_PUBLIC UINT DA_ident (char *name_p, USINT grp, UDINT *mo_ident); -_BUR_PUBLIC UINT DA_delete (UDINT mo_ident); -_BUR_PUBLIC UINT DA_burn (UDINT mo_ident); -_BUR_PUBLIC UINT DA_fix (UDINT mo_ident); -_BUR_PUBLIC UINT DA_info (UDINT mo_ident, void **moduldata_adr, UDINT *moduldata_lng, - USINT *memorytype); -_BUR_PUBLIC UINT DA_copy (UDINT mo_ident, char *new_name, USINT mem_typ, UDINT *da_ident, - UDINT *daten_p, UDINT *daten_len); -_BUR_PUBLIC UINT DA_store (UDINT mo_ident, USINT mem_typ, UDINT* daten_p, UDINT* daten_len); - -_BUR_PUBLIC UINT MO_ver (STRING *pName, USINT grp, MoVerStruc_typ* pMoVerStruc); - -_BUR_PUBLIC void Bit2Byte (Bit2Byte_typ* Bit2Byte_ptr); -_BUR_PUBLIC void Byte2Bit (Byte2Bit_typ* Byte2Bit_ptr); - -#ifdef __cplusplus -}; -#endif -#endif /* _SYS_LIB_H_ */ - - +/* Automation Studio generated header file */ +/* Do not edit ! */ + +#ifndef _SYS_LIB_H_ +#define _SYS_LIB_H_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include +#include + +#ifndef _BUR_PUBLIC +#define _BUR_PUBLIC +#endif + +/* Error codes of the BURTRAP/SYS_LIB services */ +#define ERR_BUR_MO_NOTFOUND 3019 /* module not found */ +#define ERR_BUR_ILLSTATE 3302 /* illegal state of object */ +#define ERR_BUR_ILLTYP 3311 /* SYSreset - invalid input value for mode */ +#define ERR_BUR_ILLPAR 3317 /* illegal parameter */ +#define ERR_BUR_ILLOBJ 3324 /* object does not exist */ +#define ERR_BUR_NOENTRY 3332 /* no entry */ +#define ERR_BUR_TOOLONG_PVNAME 3333 /* too long PV name */ +#define ERR_BUR_ILLIDENT 3336 /* illegal ident */ +#define ERR_BUR_NOTIME 3584 /* time not available */ +#define ERR_BUR_TMP_ALLOC 3601 /* not enough continuous memory */ +#define ERR_BUR_TMP_FREE 3701 /* invalid pointer/length */ +#define ERR_EXC_NIL_POINTER 9133 /* null pointer */ +#define ERR_BUR_PVNAME 14700 /* Invalid name syntax */ +#define ERR_BUR_WRONG_ARRAY 14702 /* Invalid array syntax */ +#define ERR_BUR_WRONG_ELEM 14703 /* Invalid element syntax */ +#define ERR_BUR_WRONG_COMP 14704 /* Invalid component separator */ +#define ERR_BUR_NOTFOUND 14710 /* PV not found */ +#define ERR_BUR_ZEROLNG 14712 /* PV size is zero (plausibility check) */ +#define ERR_BUR_NODETAIL 14713 /* No type description (plausibility check) */ +#define ERR_BUR_AIXTOOBIG 14714 /* Array index too big */ +#define ERR_BUR_WRONG_SDSR 14715 /* Invalid address (plausibility check) */ +#define ERR_BUR_BUFLNG 14716 /* Name buffer too small */ +#define ERR_BUR_WRONG_INDEX 14717 /* Access via index/subindex is not supported */ + +/* State for object PLC task */ +#define Z_ST_created 1 +#define Z_ST_running 2 +#define Z_ST_blocked 3 +#define Z_ST_exist 0x00 +#define Z_ST_installed 0x82 +#define Z_ST_PVinstalled 0x83 +#define Z_ST_IOinstalled 0x84 +#define Z_ST_IOdeinstalled 0x85 +#define Z_ST_PVdeinstalled 0x86 +#define Z_ST_delete 0x87 +#define Z_ST_stdebug 0x88 +#define Z_ST_tmp_suspended 0x90 + +/* elementary data types */ +#define SYSLIB_IEC_TYPE_USER_DEFINED 0 /* User-defined data type */ +#define SYSLIB_IEC_TYPE_USER_DEFINED_2 15 /* User-defined data type (legacy: array of structs) */ +#define SYSLIB_IEC_TYPE_BOOL 1 /* 8 Bit containing a boolean value FALSE=0 or TRUE=1 */ +#define SYSLIB_IEC_TYPE_SINT 2 /* 8 Bit signed integer */ +#define SYSLIB_IEC_TYPE_INT 3 /* 16 Bit signed integer */ +#define SYSLIB_IEC_TYPE_DINT 4 /* 32 Bit signed integer */ +#define SYSLIB_IEC_TYPE_USINT 5 /* 8 Bit unsigned integer */ +#define SYSLIB_IEC_TYPE_UINT 6 /* 16 Bit unsigned integer */ +#define SYSLIB_IEC_TYPE_UDINT 7 /* 32 Bit unsigned integer */ +#define SYSLIB_IEC_TYPE_REAL 8 /* 32 Bit floating point number */ +#define SYSLIB_IEC_TYPE_STRING 9 /* Variable-length single-byte character string */ +#define SYSLIB_IEC_TYPE_DATE_AND_TIME 11 /* 32 Bit of Date in Seconds since 01.01.1970 00:00:00 */ +#define SYSLIB_IEC_TYPE_TIME 12 /* 32 Bit of Time in ms */ +#define SYSLIB_IEC_TYPE_DATE 13 /* 32 Bit of Date (only) */ +#define SYSLIB_IEC_TYPE_LREAL 14 /* 64 Bit floating point number */ +#define SYSLIB_IEC_TYPE_TIME_OF_DAY 16 /* 32 Bit Time of day (only) */ +#define SYSLIB_IEC_TYPE_BYTE 17 /* Bit string of length 8 */ +#define SYSLIB_IEC_TYPE_WORD 18 /* Bit string of length 16 */ +#define SYSLIB_IEC_TYPE_DWORD 19 /* Bit string of length 32 */ +#define SYSLIB_IEC_TYPE_WSTRING 21 /* Variable-length double-byte character string */ + +/* shutdown / reboot types */ +#define SYSLIB_WARMSTART 0x01 /*WARMSTART(with restart)*/ +#define SYSLIB_COLDSTART 0x02 /*COLDSTART(with restart)*/ +#define SYSLIB_WARMSTART_NO_REBOOT 0x11 /*WARMSTART(no restart, only shutdown)*/ +#define SYSLIB_COLDSTART_NO_REBOOT 0x12 /*COLDSTART(no restart, only shutdown)*/ +#define SYSLIB_DIAGNOSTICS 0x20 /*DIAGNOSTICS(with restart)*/ +#define SYSLIB_SERVICE 0x40 /*SERVICE(with restart) */ + + typedef struct RTCtime_typ + { + /* 1. UDINT */ + UINT year; /* year, starting with zero */ + USINT month; /* month: 1 - 12 */ + USINT day; /* day: 1 - 31 */ + /* 2. UDINT */ + USINT reserve; + USINT hour; /* hour: 0 - 23 */ + USINT minute; /* minute: 0 - 59 */ + USINT second; /* second: 0 - 59 */ + /* 3. UDINT */ + UINT millisec; /* millisecond: 0 - 999 */ + UINT microsec; /* microsecond: 0 - 999 */ + } RTCtime_typ; + + /* structure for MO_list */ + typedef struct MO_List_typ + { + char name[14]; /* name of the module (ASCII) */ + USINT grp; /* groups */ + USINT type; /* module type */ + USINT state; /* state of the module */ + USINT reserve; + UDINT adress; /* physical address of the module */ + UDINT memtype; /* memory type (0=OTP,1=RAM,2=EPROM,3=FLASH */ + } MO_List_typ; /* 5=FIXRAM) */ + + /* structure for slMoList */ + typedef struct slMoList + { + /* VAR_INPUT (analog) */ + unsigned long pMoName; + unsigned long sizeMoName; + unsigned long pAppMoName; + unsigned long sizeAppMoName; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned long moSize; + unsigned char moType; + unsigned char memType; + /* VAR (analog) */ + unsigned long i_hMo; + /* VAR_INPUT (digital) */ + plcbit enable; + plcbit first; + plcbit filter; + } slMoList_typ; + + /* structure for MO_info */ + typedef struct MO_info + { + /* VAR_INPUT (analog) */ + unsigned long pName; + unsigned char grp; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char type; + unsigned char state; + unsigned long memType; + unsigned long address; + unsigned long size; + unsigned char version[10]; + struct RTCtime_typ date; + /* VAR_INPUT (digital) */ + plcbit enable; + } MO_info_typ; + + /* structue for PV_xlist */ + typedef struct PV_xList_typ + { + + char name[33]; /* name of PV (ASCII) */ + USINT data_typ; /* data type of PV */ + UDINT data_len; /* data length of PV */ + UDINT dimension; /* dimension of PV */ + UDINT adress; /* physical address of PV */ + } PV_xList_typ; + + /* structure for MO_ver */ + typedef struct MoVerStruc_typ + { + USINT version[10]; /* Version of the BR Module */ + UINT year; + USINT month; + USINT day; + USINT reserve; + USINT hour; + USINT minute; + USINT second; + } MoVerStruc_typ; + + /* structure for the FUB Bit2Byte */ + typedef struct Bit2Byte + { + /* non boolean input parameter */ + UDINT bitadr; + UINT length; + /* non boolean output parameter*/ + UDINT byteadr; + /* non boolean static local */ + USINT byte_00; + USINT byte_01; + USINT byte_02; + USINT byte_03; + USINT byte_04; + USINT byte_05; + USINT byte_06; + USINT byte_07; + USINT byte_08; + USINT byte_09; + USINT byte_10; + USINT byte_11; + USINT byte_12; + USINT byte_13; + USINT byte_14; + USINT byte_15; + /* boolean input parameter */ + /* boolean output parameter */ + /* boolean static local */ + BOOL bmem000; + BOOL bmem001; + BOOL bmem002; + BOOL bmem003; + BOOL bmem004; + BOOL bmem005; + BOOL bmem006; + BOOL bmem007; + BOOL bmem008; + BOOL bmem009; + BOOL bmem010; + BOOL bmem011; + BOOL bmem012; + BOOL bmem013; + BOOL bmem014; + BOOL bmem015; + BOOL bmem016; + BOOL bmem017; + BOOL bmem018; + BOOL bmem019; + BOOL bmem020; + BOOL bmem021; + BOOL bmem022; + BOOL bmem023; + BOOL bmem024; + BOOL bmem025; + BOOL bmem026; + BOOL bmem027; + BOOL bmem028; + BOOL bmem029; + BOOL bmem030; + BOOL bmem031; + BOOL bmem032; + BOOL bmem033; + BOOL bmem034; + BOOL bmem035; + BOOL bmem036; + BOOL bmem037; + BOOL bmem038; + BOOL bmem039; + BOOL bmem040; + BOOL bmem041; + BOOL bmem042; + BOOL bmem043; + BOOL bmem044; + BOOL bmem045; + BOOL bmem046; + BOOL bmem047; + BOOL bmem048; + BOOL bmem049; + BOOL bmem050; + BOOL bmem051; + BOOL bmem052; + BOOL bmem053; + BOOL bmem054; + BOOL bmem055; + BOOL bmem056; + BOOL bmem057; + BOOL bmem058; + BOOL bmem059; + BOOL bmem060; + BOOL bmem061; + BOOL bmem062; + BOOL bmem063; + BOOL bmem064; + BOOL bmem065; + BOOL bmem066; + BOOL bmem067; + BOOL bmem068; + BOOL bmem069; + BOOL bmem070; + BOOL bmem071; + BOOL bmem072; + BOOL bmem073; + BOOL bmem074; + BOOL bmem075; + BOOL bmem076; + BOOL bmem077; + BOOL bmem078; + BOOL bmem079; + BOOL bmem080; + BOOL bmem081; + BOOL bmem082; + BOOL bmem083; + BOOL bmem084; + BOOL bmem085; + BOOL bmem086; + BOOL bmem087; + BOOL bmem088; + BOOL bmem089; + BOOL bmem090; + BOOL bmem091; + BOOL bmem092; + BOOL bmem093; + BOOL bmem094; + BOOL bmem095; + BOOL bmem096; + BOOL bmem097; + BOOL bmem098; + BOOL bmem099; + BOOL bmem100; + BOOL bmem101; + BOOL bmem102; + BOOL bmem103; + BOOL bmem104; + BOOL bmem105; + BOOL bmem106; + BOOL bmem107; + BOOL bmem108; + BOOL bmem109; + BOOL bmem110; + BOOL bmem111; + BOOL bmem112; + BOOL bmem113; + BOOL bmem114; + BOOL bmem115; + BOOL bmem116; + BOOL bmem117; + BOOL bmem118; + BOOL bmem119; + BOOL bmem120; + BOOL bmem121; + BOOL bmem122; + BOOL bmem123; + BOOL bmem124; + BOOL bmem125; + BOOL bmem126; + BOOL bmem127; + BOOL bmem128; + BOOL bmem129; + BOOL bmem130; + BOOL bmem131; + BOOL bmem132; + BOOL bmem133; + BOOL bmem134; + BOOL bmem135; + BOOL bmem136; + BOOL bmem137; + BOOL bmem138; + BOOL bmem139; + } Bit2Byte_typ; + + /* structure for the FUB Byte2Bit */ + typedef struct Byte2Bit + { + /* non boolean input parameter */ + UDINT byteadr; + UINT length; + /* non boolean output parameter*/ + UDINT bitadr; + /* non boolean static local */ + /* boolean input parameter */ + /* boolean output parameter */ + /* boolean static local */ + BOOL bmem000; + BOOL bmem001; + BOOL bmem002; + BOOL bmem003; + BOOL bmem004; + BOOL bmem005; + BOOL bmem006; + BOOL bmem007; + BOOL bmem008; + BOOL bmem009; + BOOL bmem010; + BOOL bmem011; + BOOL bmem012; + BOOL bmem013; + BOOL bmem014; + BOOL bmem015; + BOOL bmem016; + BOOL bmem017; + BOOL bmem018; + BOOL bmem019; + BOOL bmem020; + BOOL bmem021; + BOOL bmem022; + BOOL bmem023; + BOOL bmem024; + BOOL bmem025; + BOOL bmem026; + BOOL bmem027; + BOOL bmem028; + BOOL bmem029; + BOOL bmem030; + BOOL bmem031; + BOOL bmem032; + BOOL bmem033; + BOOL bmem034; + BOOL bmem035; + BOOL bmem036; + BOOL bmem037; + BOOL bmem038; + BOOL bmem039; + BOOL bmem040; + BOOL bmem041; + BOOL bmem042; + BOOL bmem043; + BOOL bmem044; + BOOL bmem045; + BOOL bmem046; + BOOL bmem047; + BOOL bmem048; + BOOL bmem049; + BOOL bmem050; + BOOL bmem051; + BOOL bmem052; + BOOL bmem053; + BOOL bmem054; + BOOL bmem055; + BOOL bmem056; + BOOL bmem057; + BOOL bmem058; + BOOL bmem059; + BOOL bmem060; + BOOL bmem061; + BOOL bmem062; + BOOL bmem063; + BOOL bmem064; + BOOL bmem065; + BOOL bmem066; + BOOL bmem067; + BOOL bmem068; + BOOL bmem069; + BOOL bmem070; + BOOL bmem071; + BOOL bmem072; + BOOL bmem073; + BOOL bmem074; + BOOL bmem075; + BOOL bmem076; + BOOL bmem077; + BOOL bmem078; + BOOL bmem079; + BOOL bmem080; + BOOL bmem081; + BOOL bmem082; + BOOL bmem083; + BOOL bmem084; + BOOL bmem085; + BOOL bmem086; + BOOL bmem087; + BOOL bmem088; + BOOL bmem089; + BOOL bmem090; + BOOL bmem091; + BOOL bmem092; + BOOL bmem093; + BOOL bmem094; + BOOL bmem095; + BOOL bmem096; + BOOL bmem097; + BOOL bmem098; + BOOL bmem099; + BOOL bmem100; + BOOL bmem101; + BOOL bmem102; + BOOL bmem103; + BOOL bmem104; + BOOL bmem105; + BOOL bmem106; + BOOL bmem107; + BOOL bmem108; + BOOL bmem109; + BOOL bmem110; + BOOL bmem111; + BOOL bmem112; + BOOL bmem113; + BOOL bmem114; + BOOL bmem115; + BOOL bmem116; + BOOL bmem117; + BOOL bmem118; + BOOL bmem119; + BOOL bmem120; + BOOL bmem121; + BOOL bmem122; + BOOL bmem123; + BOOL bmem124; + BOOL bmem125; + BOOL bmem126; + BOOL bmem127; + BOOL bmem128; + BOOL bmem129; + BOOL bmem130; + BOOL bmem131; + BOOL bmem132; + BOOL bmem133; + BOOL bmem134; + BOOL bmem135; + BOOL bmem136; + BOOL bmem137; + BOOL bmem138; + BOOL bmem139; + } Byte2Bit_typ; + + /***************/ + /* Prototyping of functions and function blocks */ + _BUR_PUBLIC UINT PV_xgetadr(char *pv_name, UDINT *pv_adresse, UDINT *data_len); + _BUR_PUBLIC UINT PV_lkaddr(void *pv_address, char *pv_name_buf, UDINT pv_name_buf_size); + _BUR_PUBLIC UINT PV_xlist(UINT prev_index, UINT *index, PV_xList_typ *pvl_p); + _BUR_PUBLIC UINT PV_item(char *pv_name, UINT index, char *itemname); + _BUR_PUBLIC UINT PV_ninfo(char *pv_name, UDINT *data_typ_p, UDINT *data_len_p, + UINT *dimension_p); + + _BUR_PUBLIC UINT SYSreset(BOOL enable, USINT mode); + + _BUR_PUBLIC UINT MO_list(UINT prev_index, UINT *index, MO_List_typ *mol_p); + _BUR_PUBLIC void MO_info(struct MO_info *pInst); + _BUR_PUBLIC void slMoList(slMoList_typ *pInst); + + _BUR_PUBLIC UINT ST_ident(char *st_name_p, USINT st_grp, UDINT *st_ident); + _BUR_PUBLIC UINT ST_tmp_suspend(UDINT st_ident); + _BUR_PUBLIC UINT ST_tmp_resume(UDINT st_ident); + _BUR_PUBLIC UINT ST_allsuspend(void); + _BUR_PUBLIC UINT ST_info(UDINT st_ident, USINT *state, SINT *tcnr); + _BUR_PUBLIC UINT ST_name(UDINT st_ident, char *st_name_p, USINT *st_grp); + + _BUR_PUBLIC UINT TMP_alloc(UDINT memlng, void **memptr); + _BUR_PUBLIC UINT TMP_free(UDINT memlng, void *memptr); + + _BUR_PUBLIC UINT RTC_gettime(RTCtime_typ *rtctime); + _BUR_PUBLIC UINT RTC_settime(RTCtime_typ *rtctime); + _BUR_PUBLIC UINT TIM_musec(void); + _BUR_PUBLIC UINT TIM_ticks(void); + + _BUR_PUBLIC UINT ERR_warning(UINT errornr, UDINT errorinfo); + _BUR_PUBLIC UINT ERR_fatal(UINT errornr, UDINT errorinfo); + _BUR_PUBLIC UINT ERRxwarning(UINT errornr, UDINT errorinfo, char *errorstring); + _BUR_PUBLIC UINT ERRxfatal(UINT errornr, UDINT errorinfo, char *errorstring); + + _BUR_PUBLIC UINT MO_ver(STRING *pName, USINT grp, MoVerStruc_typ *pMoVerStruc); + + _BUR_PUBLIC unsigned long MO_versionMajor(STRING *pName); + _BUR_PUBLIC unsigned long MO_versionMinor(STRING *pName); + _BUR_PUBLIC unsigned long MO_versionPatch(STRING *pName); + _BUR_PUBLIC unsigned long MO_versionBuild(STRING *pName); + + _BUR_PUBLIC void Bit2Byte(Bit2Byte_typ *Bit2Byte_ptr); + _BUR_PUBLIC void Byte2Bit(Byte2Bit_typ *Byte2Bit_ptr); + +#ifdef __cplusplus +}; +#endif +#endif /* _SYS_LIB_H_ */ diff --git a/example/AsProject/Logical/Libraries/_AS/sys_lib/SGC/sys_lib.h b/example/AsProject/Logical/Libraries/_AS/sys_lib/SGC/sys_lib.h index 039504c..e6c97d2 100644 --- a/example/AsProject/Logical/Libraries/_AS/sys_lib/SGC/sys_lib.h +++ b/example/AsProject/Logical/Libraries/_AS/sys_lib/SGC/sys_lib.h @@ -1,684 +1,684 @@ -/****************************************************************************/ -/* */ -/* sys_lib.h */ -/* Declarations and Prototypes for libsys_lib.a */ -/* */ -/* Automation Studio */ -/* Copyright Bernecker&Rainer 1998 */ -/* */ -/****************************************************************************/ - -#ifndef _SYS_LIB_H_ -#define _SYS_LIB_H_ -#ifdef __cplusplus -extern "C" -{ -#endif - -#include - -#include - -#define TMP_MODE 0x8000 /* temporary suspend/resume for */ - /* PLC and user task */ - -/* Error codes of the BURTRAP/SYS_LIB services */ - -#define ERR_BUR_WRROW 2061 /* illegal row */ -#define ERR_BUR_WRCOL 2062 /* illegal column */ -#define ERR_BUR_WR_CHAR 2063 /* invalid ASCII character */ -#define ERR_BUR_NORTC 2073 /* RTC not existing or uninitialized */ - -#define ERR_BUR_MO_NOTFOUND 3019 /* module not found */ -#define ERR_BUR_NOMEM 3030 /* out of memory */ -#define ERR_BUR_MEMVWBUSY 3035 /* memory management busy */ -#define ERR_BUR_ILLPTR 3104 /* illegal data pointer in MEM_free */ - -#define ERR_BUR_PSOS_BASE 3300 /* base number of pSOS errors */ - -#define ERR_BUR_ILLTKNR 3300 /* illegal task-class number */ -#define ERR_BUR_WROFFSET 3301 /* illegal offset */ -#define ERR_BUR_ILLSTATE 3302 /* illegal state of object */ -#define ERR_BUR_NOMSG 3303 /* no message sent/received */ -#define ERR_BUR_DUPOBJ 3305 /* object exists */ -#define ERR_BUR_TIMEOUT 3304 /* timeout error */ -#define ERR_BUR_EXISTS 3306 /* entry exists */ -#define ERR_BUR_LCOUNT 3307 /* Linkcnt <> 0 in AVT_cancel () */ -#define ERR_BUR_BURNING 3308 /* error burning module */ -#define ERR_BUR_INVALIDMBX 3309 /* invalid mailbox */ - -#define ERR_BUR_ILLBPTR 3310 /* invalid base pointer */ -#define ERR_BUR_ILLTYP 3311 /* invalid I/O type */ -#define ERR_BUR_ILLEXT 3312 /* invalid ext. bit */ -#define ERR_BUR_ILLVER 3313 /* invalid version */ - /* e.g. BURTRAP V1.10 to SPSSW V1.05 */ -#define ERR_BUR_ILLLEN 3314 /* invalid data length */ -#define ERR_BUR_MAX_LCOUNT 3315 /* AVT_attach: LCOUNT > 127 */ -#define ERR_BUR_AVT_FREE 3316 /* AVT_release:LCOUNT = 0 */ -#define ERR_BUR_ILLPAR 3317 /* illegal parameter */ -#define ERR_BUR_INSTALL 3318 /* error install datamodule */ -#define ERR_BUR_WRONG_MODTYP 3319 /* wrong Moduletype */ - - -#define ERR_BUR_OBJDEL 3320 /* object already deleted */ -#define ERR_BUR_ILLOBJ 3324 /* object does not exist */ -#define ERR_BUR_ILLOBJTYP 3328 /* invalid object type */ -#define ERR_BUR_NOENTRY 3332 /* no entry */ -#define ERR_BUR_TOOLONG_PVNAME 3333 /* too long PV name */ -#define ERR_BUR_ILLIDENT 3336 /* illegal ident */ -#define ERR_BUR_NOSMBUF 3560 /* no more semaphore buffers */ -#define ERR_BUR_NOSM 3564 /* semaphore not available */ -#define ERR_BUR_SMDEL 3568 /* semaphore deleted */ -#define ERR_BUR_NOTIME 3584 /* time not available */ -#define ERR_BUR_ILLDATE 3588 /* date : out of range */ -#define ERR_BUR_ILLTIME 3592 /* time : out of range */ -#define ERR_BUR_ILLTICKS 3596 /* ticks : out of range */ - -#define ERR_BUR_MEM_ALLOC 3600 /* not enough continuous memory */ -#define ERR_BUR_TMP_ALLOC 3601 /* not enough continuous memory */ -#define ERR_BUR_MEM_FREE 3700 /* invalid pointer/length */ -#define ERR_BUR_TMP_FREE 3701 /* invalid pointer/length */ - -/* State for object PLC task */ -#define Z_ST_created 1 -#define Z_ST_running 2 -#define Z_ST_blocked 3 -#define Z_ST_exist 0x00 -#define Z_ST_installed 0x82 -#define Z_ST_PVinstalled 0x83 -#define Z_ST_IOinstalled 0x84 -#define Z_ST_IOdeinstalled 0x85 -#define Z_ST_PVdeinstalled 0x86 -#define Z_ST_delete 0x87 -#define Z_ST_stdebug 0x88 -#define Z_ST_tmp_suspended 0x90 - -/* PV data types */ -#define PB_DT_STRUCT 0 /* structure */ -#define PB_DT_BOOL 1 /* boolean */ -#define PB_DT_INT8 2 /* integer8 */ -#define PB_DT_INT16 3 /* integer16 */ -#define PB_DT_INT32 4 /* integer32 */ -#define PB_DT_BYTE 5 /* unsigned integer8 */ -#define PB_DT_WORD 6 /* unsigned integer16 */ -#define PB_DT_LONG 7 /* unsigned integer32 */ -#define PB_DT_FLOAT 8 /* floating point */ -#define PB_DT_VIS 9 /* visible string*/ -#define PB_DT_OCTET 10 /* octet string */ -#define PB_DT_DATE 11 /* date */ -#define PB_DT_TIME 12 /* time of day */ -#define PB_DT_DIFF 13 /* time difference */ -#define PB_DT_BIT 14 /* bit string */ -#define PB_DT_ARRAY 15 /* array */ - -/* memory types */ -#define SYS_RAM 1 /* RAM */ -#define USER_ROM1 2 /* EPROM */ -#define FIX_RAM 5 /* fixed RAM */ - -typedef struct RTCtime_typ { - /* 1. UDINT */ - UINT year; /* year, starting with zero */ - USINT month; /* month: 1 - 12 */ - USINT day; /* day: 1 - 31 */ - /* 2. UDINT */ - USINT reserve; - USINT hour; /* hour: 0 - 23 */ - USINT minute; /* minute: 0 - 59 */ - USINT second; /* second: 0 - 59 */ - /* 3. UDINT */ - UINT millisec; /* millisecond: 0 - 999 */ - UINT microsec; /* microsecond: 0 - 999 */ - } RTCtime_typ; - -/* structure for SYSxinfo */ -typedef struct SYSxinfo_typ { - char aws_name[6]; - char aws_type[2]; - UDINT cpu_info; - UINT ma_globl_len; - UINT md_globl_len; - UDINT os_len; - UDINT user_len; - UDINT tmp_len; - UDINT eprom_len; - UDINT fix_ram_len; - } SYSxinfo_typ; - -/* structure for MO_list */ -typedef struct MO_List_typ { - char name[14]; /* name of the module (ASCII) */ - USINT grp; /* groups */ - USINT type; /* module type */ - USINT state; /* state of the module */ - USINT reserve; - UDINT adress; /* physical address of the module */ - UDINT memtype; /* memory type (0=OTP,1=RAM,2=EPROM,3=FLASH */ - } MO_List_typ; /* 5=FIXRAM) */ - -/* structure for MO_info */ -typedef struct MO_info -{ - /* VAR_INPUT (analog) */ - unsigned long pName; - unsigned char grp; - /* VAR_OUTPUT (analog) */ - unsigned short status; - unsigned char type; - unsigned char state; - unsigned long memType; - unsigned long address; - unsigned long size; - unsigned char version[10]; - struct RTCtime_typ date; - /* VAR_INPUT (digital) */ - plcbit enable; -} MO_info_typ; - -/* structure for PV_list */ -typedef struct PV_List_typ { - char name[14]; /* name of the PV (ASCII) */ - USINT tcnr; /* PV task class */ - USINT grp; /* PV group */ - UDINT ident; /* PV identifier */ - UDINT adress; /* physical address of the PV */ - } PV_List_typ; - -/* structue for PV_xlist */ -typedef struct PV_xList_typ { - - char name[33]; /* name of PV (ASCII) */ - USINT data_typ; /* data type of PV */ - UDINT data_len; /* data length of PV */ - UDINT dimension; /* dimension of PV */ - UDINT adress; /* physical address of PV */ - }PV_xList_typ; - -/* structure for ERR_read */ -typedef struct ERR_typ { - UINT err_nr; /* error number */ - UDINT err_info; /* additional information */ - char t_name[5]; /* name of the running task */ - USINT err_type; /* error type (1=fatal, 2=warning, 3=info) */ - UINT err_year; /* time of the error in RTC format */ - USINT err_month; - USINT err_day; - USINT err_reserve; - USINT err_hour; - USINT err_minute; - USINT err_second; - UINT err_millisec; - UINT err_microsec; - } ERR_typ; - -/* structure for ERR_xread */ -typedef struct ERR_xtyp { - UINT err_nr; /* error number */ - UDINT err_info; /* additional information */ - char t_name[5]; /* name of the running task */ - USINT err_type; /* error type (1=Fatal, 2=Warning, 3=Info) */ - UINT err_year; /* time of the error in RTC format */ - USINT err_month; - USINT err_day; - USINT err_reserve; - USINT err_hour; - USINT err_minute; - USINT err_second; - UINT err_millisec; - UINT err_microsec; - USINT err_string[34]; /* 32 byte string with 0 termination */ - } ERR_xtyp; - -/* structure for MO_ver */ -typedef struct MoVerStruc_typ { - USINT version[10]; /* Version of the BR Module */ - UINT year; - USINT month; - USINT day; - USINT reserve; - USINT hour; - USINT minute; - USINT second; - } MoVerStruc_typ; - -/* structure for the FUB Bit2Byte */ -typedef struct Bit2Byte { - /* non boolean input parameter */ - UDINT bitadr; - UINT length; - /* non boolean output parameter*/ - UDINT byteadr; - /* non boolean static local */ - USINT byte_00; - USINT byte_01; - USINT byte_02; - USINT byte_03; - USINT byte_04; - USINT byte_05; - USINT byte_06; - USINT byte_07; - USINT byte_08; - USINT byte_09; - USINT byte_10; - USINT byte_11; - USINT byte_12; - USINT byte_13; - USINT byte_14; - USINT byte_15; - /* boolean input parameter */ - /* boolean output parameter */ - /* boolean static local */ - BOOL bmem000; - BOOL bmem001; - BOOL bmem002; - BOOL bmem003; - BOOL bmem004; - BOOL bmem005; - BOOL bmem006; - BOOL bmem007; - BOOL bmem008; - BOOL bmem009; - BOOL bmem010; - BOOL bmem011; - BOOL bmem012; - BOOL bmem013; - BOOL bmem014; - BOOL bmem015; - BOOL bmem016; - BOOL bmem017; - BOOL bmem018; - BOOL bmem019; - BOOL bmem020; - BOOL bmem021; - BOOL bmem022; - BOOL bmem023; - BOOL bmem024; - BOOL bmem025; - BOOL bmem026; - BOOL bmem027; - BOOL bmem028; - BOOL bmem029; - BOOL bmem030; - BOOL bmem031; - BOOL bmem032; - BOOL bmem033; - BOOL bmem034; - BOOL bmem035; - BOOL bmem036; - BOOL bmem037; - BOOL bmem038; - BOOL bmem039; - BOOL bmem040; - BOOL bmem041; - BOOL bmem042; - BOOL bmem043; - BOOL bmem044; - BOOL bmem045; - BOOL bmem046; - BOOL bmem047; - BOOL bmem048; - BOOL bmem049; - BOOL bmem050; - BOOL bmem051; - BOOL bmem052; - BOOL bmem053; - BOOL bmem054; - BOOL bmem055; - BOOL bmem056; - BOOL bmem057; - BOOL bmem058; - BOOL bmem059; - BOOL bmem060; - BOOL bmem061; - BOOL bmem062; - BOOL bmem063; - BOOL bmem064; - BOOL bmem065; - BOOL bmem066; - BOOL bmem067; - BOOL bmem068; - BOOL bmem069; - BOOL bmem070; - BOOL bmem071; - BOOL bmem072; - BOOL bmem073; - BOOL bmem074; - BOOL bmem075; - BOOL bmem076; - BOOL bmem077; - BOOL bmem078; - BOOL bmem079; - BOOL bmem080; - BOOL bmem081; - BOOL bmem082; - BOOL bmem083; - BOOL bmem084; - BOOL bmem085; - BOOL bmem086; - BOOL bmem087; - BOOL bmem088; - BOOL bmem089; - BOOL bmem090; - BOOL bmem091; - BOOL bmem092; - BOOL bmem093; - BOOL bmem094; - BOOL bmem095; - BOOL bmem096; - BOOL bmem097; - BOOL bmem098; - BOOL bmem099; - BOOL bmem100; - BOOL bmem101; - BOOL bmem102; - BOOL bmem103; - BOOL bmem104; - BOOL bmem105; - BOOL bmem106; - BOOL bmem107; - BOOL bmem108; - BOOL bmem109; - BOOL bmem110; - BOOL bmem111; - BOOL bmem112; - BOOL bmem113; - BOOL bmem114; - BOOL bmem115; - BOOL bmem116; - BOOL bmem117; - BOOL bmem118; - BOOL bmem119; - BOOL bmem120; - BOOL bmem121; - BOOL bmem122; - BOOL bmem123; - BOOL bmem124; - BOOL bmem125; - BOOL bmem126; - BOOL bmem127; - BOOL bmem128; - BOOL bmem129; - BOOL bmem130; - BOOL bmem131; - BOOL bmem132; - BOOL bmem133; - BOOL bmem134; - BOOL bmem135; - BOOL bmem136; - BOOL bmem137; - BOOL bmem138; - BOOL bmem139; - } Bit2Byte_typ; - -/* structure for the FUB Byte2Bit */ -typedef struct Byte2Bit { - /* non boolean input parameter */ - UDINT byteadr; - UINT length; - /* non boolean output parameter*/ - UDINT bitadr; - /* non boolean static local */ - /* boolean input parameter */ - /* boolean output parameter */ - /* boolean static local */ - BOOL bmem000; - BOOL bmem001; - BOOL bmem002; - BOOL bmem003; - BOOL bmem004; - BOOL bmem005; - BOOL bmem006; - BOOL bmem007; - BOOL bmem008; - BOOL bmem009; - BOOL bmem010; - BOOL bmem011; - BOOL bmem012; - BOOL bmem013; - BOOL bmem014; - BOOL bmem015; - BOOL bmem016; - BOOL bmem017; - BOOL bmem018; - BOOL bmem019; - BOOL bmem020; - BOOL bmem021; - BOOL bmem022; - BOOL bmem023; - BOOL bmem024; - BOOL bmem025; - BOOL bmem026; - BOOL bmem027; - BOOL bmem028; - BOOL bmem029; - BOOL bmem030; - BOOL bmem031; - BOOL bmem032; - BOOL bmem033; - BOOL bmem034; - BOOL bmem035; - BOOL bmem036; - BOOL bmem037; - BOOL bmem038; - BOOL bmem039; - BOOL bmem040; - BOOL bmem041; - BOOL bmem042; - BOOL bmem043; - BOOL bmem044; - BOOL bmem045; - BOOL bmem046; - BOOL bmem047; - BOOL bmem048; - BOOL bmem049; - BOOL bmem050; - BOOL bmem051; - BOOL bmem052; - BOOL bmem053; - BOOL bmem054; - BOOL bmem055; - BOOL bmem056; - BOOL bmem057; - BOOL bmem058; - BOOL bmem059; - BOOL bmem060; - BOOL bmem061; - BOOL bmem062; - BOOL bmem063; - BOOL bmem064; - BOOL bmem065; - BOOL bmem066; - BOOL bmem067; - BOOL bmem068; - BOOL bmem069; - BOOL bmem070; - BOOL bmem071; - BOOL bmem072; - BOOL bmem073; - BOOL bmem074; - BOOL bmem075; - BOOL bmem076; - BOOL bmem077; - BOOL bmem078; - BOOL bmem079; - BOOL bmem080; - BOOL bmem081; - BOOL bmem082; - BOOL bmem083; - BOOL bmem084; - BOOL bmem085; - BOOL bmem086; - BOOL bmem087; - BOOL bmem088; - BOOL bmem089; - BOOL bmem090; - BOOL bmem091; - BOOL bmem092; - BOOL bmem093; - BOOL bmem094; - BOOL bmem095; - BOOL bmem096; - BOOL bmem097; - BOOL bmem098; - BOOL bmem099; - BOOL bmem100; - BOOL bmem101; - BOOL bmem102; - BOOL bmem103; - BOOL bmem104; - BOOL bmem105; - BOOL bmem106; - BOOL bmem107; - BOOL bmem108; - BOOL bmem109; - BOOL bmem110; - BOOL bmem111; - BOOL bmem112; - BOOL bmem113; - BOOL bmem114; - BOOL bmem115; - BOOL bmem116; - BOOL bmem117; - BOOL bmem118; - BOOL bmem119; - BOOL bmem120; - BOOL bmem121; - BOOL bmem122; - BOOL bmem123; - BOOL bmem124; - BOOL bmem125; - BOOL bmem126; - BOOL bmem127; - BOOL bmem128; - BOOL bmem129; - BOOL bmem130; - BOOL bmem131; - BOOL bmem132; - BOOL bmem133; - BOOL bmem134; - BOOL bmem135; - BOOL bmem136; - BOOL bmem137; - BOOL bmem138; - BOOL bmem139; - } Byte2Bit_typ; - -/***************/ -/* Prototyping */ -/***************/ - -UINT PV_ident (char *pv_name_p, USINT pv_tcnr, USINT pv_grpnr, - UDINT *pv_ident); -UINT PV_setval (UDINT pv_ident, UDINT value); -UINT PV_getval (UDINT pv_ident, UDINT *value); -UINT PV_getadr (char *pv_name_p, USINT pv_tcnr, USINT pv_grpnr, - UDINT *pv_adresse); -UINT PV_xgetadr (char *pv_name, UDINT *pv_adresse, UDINT *data_len); -UINT PV_xsetval (UDINT pv_ident, UINT subindex, void *data_p, - USINT data_len); -UINT PV_xgetval (UDINT pv_ident, UINT subindex, void *data_p, - USINT data_len); -UINT PV_info (UDINT pv_ident, UDINT *data_type, UDINT *data_len, - UINT *dimension); -UINT PV_list (UINT prev_index, UINT *index, PV_List_typ *pvl_p); -UINT PV_xlist (UINT prev_index, UINT *index, PV_xList_typ *pvl_p); -UINT PV_item (char *pv_name, UINT index, char *itemname); -UINT PV_ninfo (char *pv_name, UDINT *data_typ_p, UDINT *data_len_p, - UINT *dimension_p); - - - -UINT SYS_info (UDINT *sg_init_cnt, UDINT *sg_initdescr, UDINT *sg_tickcnt, - UDINT *sg_version, UDINT *sg_ov_version); -UINT SYSxinfo (SYSxinfo_typ *sx_p); -UINT SYSreset (BOOL enable, USINT mode); -USINT SYS_battery (void); - -UINT MO_list (UINT prev_index, UINT *index, MO_List_typ *mol_p); -void MO_info (struct MO_info* pInst); -UINT KEY_enadis (BOOL mode); -UINT KEY_read (USINT keys[4]); - -UINT FORCE_info (USINT tcnr, BOOL *force); - -UINT ST_ident (char *st_name_p, USINT st_grp, UDINT *st_ident); -UINT ST_suspend (UDINT st_ident); -UINT ST_resume (UDINT st_ident); -UINT ST_tmp_suspend (UDINT st_ident); -UINT ST_tmp_resume (UDINT st_ident); -UINT ST_allsuspend (void); -UINT ST_info (UDINT st_ident, USINT *state, SINT *tcnr); -UINT ST_name (UDINT st_ident, char *st_name_p, USINT *st_grp); - -UINT UT_ident (char *ut_name_p, USINT ut_grp, USINT ut_proc, char *ut_sps_p,UDINT *ut_ident); -UINT UT_suspend (UDINT ut_ident); -UINT UT_resume (UDINT ut_ident); -UINT UT_sleep (UDINT tickcount); -UINT UT_sendmsg (UDINT ut_ident, void *msg, UDINT msglng, UDINT flags); -UINT UT_recmsg (UDINT *ut_ident, void **msg, UDINT *msglng, UDINT flags); -UINT UT_freemsg (UDINT msglng, void *msg); -UINT UT_exit (UDINT exitinfo); - - -UINT AVT_create (char *name_p, USINT grupid, UDINT av_info, UDINT *av_ident); -UINT AVT_cancel (UDINT av_ident); -UINT AVT_ident (char *name_p, USINT grupid, UDINT *av_ident); -UINT AVT_attach (UDINT av_ident, UDINT *av_info); -UINT AVT_release (UDINT av_ident); -UINT AVT_info (UDINT av_ident, USINT *av_linkcount); - -UINT MEM_alloc (UDINT memlng, void **memptr); -UINT MEM_free (UDINT memlng, void *memptr); -UINT TMP_alloc (UDINT memlng, void **memptr); -UINT TMP_free (UDINT memlng, void *memptr); - -UINT RTC_gettime (RTCtime_typ *rtctime); -UINT RTC_settime (RTCtime_typ *rtctime); -UINT SW_gettime (RTCtime_typ *rtctime); -UINT SW_settime (RTCtime_typ *rtctime); -UINT TIM_musec (void); -UINT TIM_ticks (void); - -UINT SM_create (char *sm_name, USINT sm_count, UDINT *sm_ident); -UINT SM_ident (char *sm_name, UDINT *sm_ident); -UINT SM_delete (UDINT sm_ident); -UINT SM_attach (UDINT sm_ident, UDINT timeout, UDINT flags); -UINT SM_release (UDINT sm_ident); - -UINT ERR_warning (UINT errornr, UDINT errorinfo); -UINT ERR_fatal (UINT errornr, UDINT errorinfo); -UINT ERR_read (UINT entry_nr, ERR_typ *err_p); -UINT ERRxwarning (UINT errornr, UDINT errorinfo, char* errorstring); -UINT ERRxread (UINT entry_nr, ERR_xtyp *err_p); -UINT ERRxfatal (UINT errornr, UDINT errorinfo, char* errorstring); - -UINT DIS_str (UDINT row, UDINT col, char *string); -UINT DIS_chr (UDINT row, UDINT col, char character); -UINT DIS_clr (void); - -UINT DA_create (char *name_p, USINT grp, UINT spooladr, UDINT data_len, - void *data_p, void **mo_data_p, UDINT *mo_ident); -UINT DA_write (UDINT mo_ident, void *data_p,UDINT data_len, - UDINT mo_data_offset); -UINT DA_read (UDINT mo_ident, void *data_p,UDINT data_len, - UDINT mo_data_offset); -UINT DA_ident (char *name_p, USINT grp, UDINT *mo_ident); -UINT DA_delete (UDINT mo_ident); -UINT DA_burn (UDINT mo_ident); -UINT DA_fix (UDINT mo_ident); -UINT DA_info (UDINT mo_ident, void **moduldata_adr, UDINT *moduldata_lng, - USINT *memorytype); -UINT DA_copy (UDINT mo_ident, char *new_name, USINT mem_typ, UDINT *da_ident, - UDINT *daten_p, UDINT *daten_len); -UINT DA_store (UDINT mo_ident, USINT mem_typ, UDINT* daten_p, UDINT* daten_len); - -UINT MO_ver (STRING *pName, USINT grp, MoVerStruc_typ* pMoVerStruc); - -void Bit2Byte (Bit2Byte_typ* Bit2Byte_ptr); -void Byte2Bit (Byte2Bit_typ* Byte2Bit_ptr); - -#ifdef __cplusplus -}; -#endif -#endif /* _SYS_LIB_H_ */ - +/****************************************************************************/ +/* */ +/* sys_lib.h */ +/* Declarations and Prototypes for libsys_lib.a */ +/* */ +/* Automation Studio */ +/* Copyright Bernecker&Rainer 1998 */ +/* */ +/****************************************************************************/ + +#ifndef _SYS_LIB_H_ +#define _SYS_LIB_H_ +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + +#include + +#define TMP_MODE 0x8000 /* temporary suspend/resume for */ + /* PLC and user task */ + +/* Error codes of the BURTRAP/SYS_LIB services */ + +#define ERR_BUR_WRROW 2061 /* illegal row */ +#define ERR_BUR_WRCOL 2062 /* illegal column */ +#define ERR_BUR_WR_CHAR 2063 /* invalid ASCII character */ +#define ERR_BUR_NORTC 2073 /* RTC not existing or uninitialized */ + +#define ERR_BUR_MO_NOTFOUND 3019 /* module not found */ +#define ERR_BUR_NOMEM 3030 /* out of memory */ +#define ERR_BUR_MEMVWBUSY 3035 /* memory management busy */ +#define ERR_BUR_ILLPTR 3104 /* illegal data pointer in MEM_free */ + +#define ERR_BUR_PSOS_BASE 3300 /* base number of pSOS errors */ + +#define ERR_BUR_ILLTKNR 3300 /* illegal task-class number */ +#define ERR_BUR_WROFFSET 3301 /* illegal offset */ +#define ERR_BUR_ILLSTATE 3302 /* illegal state of object */ +#define ERR_BUR_NOMSG 3303 /* no message sent/received */ +#define ERR_BUR_DUPOBJ 3305 /* object exists */ +#define ERR_BUR_TIMEOUT 3304 /* timeout error */ +#define ERR_BUR_EXISTS 3306 /* entry exists */ +#define ERR_BUR_LCOUNT 3307 /* Linkcnt <> 0 in AVT_cancel () */ +#define ERR_BUR_BURNING 3308 /* error burning module */ +#define ERR_BUR_INVALIDMBX 3309 /* invalid mailbox */ + +#define ERR_BUR_ILLBPTR 3310 /* invalid base pointer */ +#define ERR_BUR_ILLTYP 3311 /* invalid I/O type */ +#define ERR_BUR_ILLEXT 3312 /* invalid ext. bit */ +#define ERR_BUR_ILLVER 3313 /* invalid version */ + /* e.g. BURTRAP V1.10 to SPSSW V1.05 */ +#define ERR_BUR_ILLLEN 3314 /* invalid data length */ +#define ERR_BUR_MAX_LCOUNT 3315 /* AVT_attach: LCOUNT > 127 */ +#define ERR_BUR_AVT_FREE 3316 /* AVT_release:LCOUNT = 0 */ +#define ERR_BUR_ILLPAR 3317 /* illegal parameter */ +#define ERR_BUR_INSTALL 3318 /* error install datamodule */ +#define ERR_BUR_WRONG_MODTYP 3319 /* wrong Moduletype */ + + +#define ERR_BUR_OBJDEL 3320 /* object already deleted */ +#define ERR_BUR_ILLOBJ 3324 /* object does not exist */ +#define ERR_BUR_ILLOBJTYP 3328 /* invalid object type */ +#define ERR_BUR_NOENTRY 3332 /* no entry */ +#define ERR_BUR_TOOLONG_PVNAME 3333 /* too long PV name */ +#define ERR_BUR_ILLIDENT 3336 /* illegal ident */ +#define ERR_BUR_NOSMBUF 3560 /* no more semaphore buffers */ +#define ERR_BUR_NOSM 3564 /* semaphore not available */ +#define ERR_BUR_SMDEL 3568 /* semaphore deleted */ +#define ERR_BUR_NOTIME 3584 /* time not available */ +#define ERR_BUR_ILLDATE 3588 /* date : out of range */ +#define ERR_BUR_ILLTIME 3592 /* time : out of range */ +#define ERR_BUR_ILLTICKS 3596 /* ticks : out of range */ + +#define ERR_BUR_MEM_ALLOC 3600 /* not enough continuous memory */ +#define ERR_BUR_TMP_ALLOC 3601 /* not enough continuous memory */ +#define ERR_BUR_MEM_FREE 3700 /* invalid pointer/length */ +#define ERR_BUR_TMP_FREE 3701 /* invalid pointer/length */ + +/* State for object PLC task */ +#define Z_ST_created 1 +#define Z_ST_running 2 +#define Z_ST_blocked 3 +#define Z_ST_exist 0x00 +#define Z_ST_installed 0x82 +#define Z_ST_PVinstalled 0x83 +#define Z_ST_IOinstalled 0x84 +#define Z_ST_IOdeinstalled 0x85 +#define Z_ST_PVdeinstalled 0x86 +#define Z_ST_delete 0x87 +#define Z_ST_stdebug 0x88 +#define Z_ST_tmp_suspended 0x90 + +/* PV data types */ +#define PB_DT_STRUCT 0 /* structure */ +#define PB_DT_BOOL 1 /* boolean */ +#define PB_DT_INT8 2 /* integer8 */ +#define PB_DT_INT16 3 /* integer16 */ +#define PB_DT_INT32 4 /* integer32 */ +#define PB_DT_BYTE 5 /* unsigned integer8 */ +#define PB_DT_WORD 6 /* unsigned integer16 */ +#define PB_DT_LONG 7 /* unsigned integer32 */ +#define PB_DT_FLOAT 8 /* floating point */ +#define PB_DT_VIS 9 /* visible string*/ +#define PB_DT_OCTET 10 /* octet string */ +#define PB_DT_DATE 11 /* date */ +#define PB_DT_TIME 12 /* time of day */ +#define PB_DT_DIFF 13 /* time difference */ +#define PB_DT_BIT 14 /* bit string */ +#define PB_DT_ARRAY 15 /* array */ + +/* memory types */ +#define SYS_RAM 1 /* RAM */ +#define USER_ROM1 2 /* EPROM */ +#define FIX_RAM 5 /* fixed RAM */ + +typedef struct RTCtime_typ { + /* 1. UDINT */ + UINT year; /* year, starting with zero */ + USINT month; /* month: 1 - 12 */ + USINT day; /* day: 1 - 31 */ + /* 2. UDINT */ + USINT reserve; + USINT hour; /* hour: 0 - 23 */ + USINT minute; /* minute: 0 - 59 */ + USINT second; /* second: 0 - 59 */ + /* 3. UDINT */ + UINT millisec; /* millisecond: 0 - 999 */ + UINT microsec; /* microsecond: 0 - 999 */ + } RTCtime_typ; + +/* structure for SYSxinfo */ +typedef struct SYSxinfo_typ { + char aws_name[6]; + char aws_type[2]; + UDINT cpu_info; + UINT ma_globl_len; + UINT md_globl_len; + UDINT os_len; + UDINT user_len; + UDINT tmp_len; + UDINT eprom_len; + UDINT fix_ram_len; + } SYSxinfo_typ; + +/* structure for MO_list */ +typedef struct MO_List_typ { + char name[14]; /* name of the module (ASCII) */ + USINT grp; /* groups */ + USINT type; /* module type */ + USINT state; /* state of the module */ + USINT reserve; + UDINT adress; /* physical address of the module */ + UDINT memtype; /* memory type (0=OTP,1=RAM,2=EPROM,3=FLASH */ + } MO_List_typ; /* 5=FIXRAM) */ + +/* structure for MO_info */ +typedef struct MO_info +{ + /* VAR_INPUT (analog) */ + unsigned long pName; + unsigned char grp; + /* VAR_OUTPUT (analog) */ + unsigned short status; + unsigned char type; + unsigned char state; + unsigned long memType; + unsigned long address; + unsigned long size; + unsigned char version[10]; + struct RTCtime_typ date; + /* VAR_INPUT (digital) */ + plcbit enable; +} MO_info_typ; + +/* structure for PV_list */ +typedef struct PV_List_typ { + char name[14]; /* name of the PV (ASCII) */ + USINT tcnr; /* PV task class */ + USINT grp; /* PV group */ + UDINT ident; /* PV identifier */ + UDINT adress; /* physical address of the PV */ + } PV_List_typ; + +/* structue for PV_xlist */ +typedef struct PV_xList_typ { + + char name[33]; /* name of PV (ASCII) */ + USINT data_typ; /* data type of PV */ + UDINT data_len; /* data length of PV */ + UDINT dimension; /* dimension of PV */ + UDINT adress; /* physical address of PV */ + }PV_xList_typ; + +/* structure for ERR_read */ +typedef struct ERR_typ { + UINT err_nr; /* error number */ + UDINT err_info; /* additional information */ + char t_name[5]; /* name of the running task */ + USINT err_type; /* error type (1=fatal, 2=warning, 3=info) */ + UINT err_year; /* time of the error in RTC format */ + USINT err_month; + USINT err_day; + USINT err_reserve; + USINT err_hour; + USINT err_minute; + USINT err_second; + UINT err_millisec; + UINT err_microsec; + } ERR_typ; + +/* structure for ERR_xread */ +typedef struct ERR_xtyp { + UINT err_nr; /* error number */ + UDINT err_info; /* additional information */ + char t_name[5]; /* name of the running task */ + USINT err_type; /* error type (1=Fatal, 2=Warning, 3=Info) */ + UINT err_year; /* time of the error in RTC format */ + USINT err_month; + USINT err_day; + USINT err_reserve; + USINT err_hour; + USINT err_minute; + USINT err_second; + UINT err_millisec; + UINT err_microsec; + USINT err_string[34]; /* 32 byte string with 0 termination */ + } ERR_xtyp; + +/* structure for MO_ver */ +typedef struct MoVerStruc_typ { + USINT version[10]; /* Version of the BR Module */ + UINT year; + USINT month; + USINT day; + USINT reserve; + USINT hour; + USINT minute; + USINT second; + } MoVerStruc_typ; + +/* structure for the FUB Bit2Byte */ +typedef struct Bit2Byte { + /* non boolean input parameter */ + UDINT bitadr; + UINT length; + /* non boolean output parameter*/ + UDINT byteadr; + /* non boolean static local */ + USINT byte_00; + USINT byte_01; + USINT byte_02; + USINT byte_03; + USINT byte_04; + USINT byte_05; + USINT byte_06; + USINT byte_07; + USINT byte_08; + USINT byte_09; + USINT byte_10; + USINT byte_11; + USINT byte_12; + USINT byte_13; + USINT byte_14; + USINT byte_15; + /* boolean input parameter */ + /* boolean output parameter */ + /* boolean static local */ + BOOL bmem000; + BOOL bmem001; + BOOL bmem002; + BOOL bmem003; + BOOL bmem004; + BOOL bmem005; + BOOL bmem006; + BOOL bmem007; + BOOL bmem008; + BOOL bmem009; + BOOL bmem010; + BOOL bmem011; + BOOL bmem012; + BOOL bmem013; + BOOL bmem014; + BOOL bmem015; + BOOL bmem016; + BOOL bmem017; + BOOL bmem018; + BOOL bmem019; + BOOL bmem020; + BOOL bmem021; + BOOL bmem022; + BOOL bmem023; + BOOL bmem024; + BOOL bmem025; + BOOL bmem026; + BOOL bmem027; + BOOL bmem028; + BOOL bmem029; + BOOL bmem030; + BOOL bmem031; + BOOL bmem032; + BOOL bmem033; + BOOL bmem034; + BOOL bmem035; + BOOL bmem036; + BOOL bmem037; + BOOL bmem038; + BOOL bmem039; + BOOL bmem040; + BOOL bmem041; + BOOL bmem042; + BOOL bmem043; + BOOL bmem044; + BOOL bmem045; + BOOL bmem046; + BOOL bmem047; + BOOL bmem048; + BOOL bmem049; + BOOL bmem050; + BOOL bmem051; + BOOL bmem052; + BOOL bmem053; + BOOL bmem054; + BOOL bmem055; + BOOL bmem056; + BOOL bmem057; + BOOL bmem058; + BOOL bmem059; + BOOL bmem060; + BOOL bmem061; + BOOL bmem062; + BOOL bmem063; + BOOL bmem064; + BOOL bmem065; + BOOL bmem066; + BOOL bmem067; + BOOL bmem068; + BOOL bmem069; + BOOL bmem070; + BOOL bmem071; + BOOL bmem072; + BOOL bmem073; + BOOL bmem074; + BOOL bmem075; + BOOL bmem076; + BOOL bmem077; + BOOL bmem078; + BOOL bmem079; + BOOL bmem080; + BOOL bmem081; + BOOL bmem082; + BOOL bmem083; + BOOL bmem084; + BOOL bmem085; + BOOL bmem086; + BOOL bmem087; + BOOL bmem088; + BOOL bmem089; + BOOL bmem090; + BOOL bmem091; + BOOL bmem092; + BOOL bmem093; + BOOL bmem094; + BOOL bmem095; + BOOL bmem096; + BOOL bmem097; + BOOL bmem098; + BOOL bmem099; + BOOL bmem100; + BOOL bmem101; + BOOL bmem102; + BOOL bmem103; + BOOL bmem104; + BOOL bmem105; + BOOL bmem106; + BOOL bmem107; + BOOL bmem108; + BOOL bmem109; + BOOL bmem110; + BOOL bmem111; + BOOL bmem112; + BOOL bmem113; + BOOL bmem114; + BOOL bmem115; + BOOL bmem116; + BOOL bmem117; + BOOL bmem118; + BOOL bmem119; + BOOL bmem120; + BOOL bmem121; + BOOL bmem122; + BOOL bmem123; + BOOL bmem124; + BOOL bmem125; + BOOL bmem126; + BOOL bmem127; + BOOL bmem128; + BOOL bmem129; + BOOL bmem130; + BOOL bmem131; + BOOL bmem132; + BOOL bmem133; + BOOL bmem134; + BOOL bmem135; + BOOL bmem136; + BOOL bmem137; + BOOL bmem138; + BOOL bmem139; + } Bit2Byte_typ; + +/* structure for the FUB Byte2Bit */ +typedef struct Byte2Bit { + /* non boolean input parameter */ + UDINT byteadr; + UINT length; + /* non boolean output parameter*/ + UDINT bitadr; + /* non boolean static local */ + /* boolean input parameter */ + /* boolean output parameter */ + /* boolean static local */ + BOOL bmem000; + BOOL bmem001; + BOOL bmem002; + BOOL bmem003; + BOOL bmem004; + BOOL bmem005; + BOOL bmem006; + BOOL bmem007; + BOOL bmem008; + BOOL bmem009; + BOOL bmem010; + BOOL bmem011; + BOOL bmem012; + BOOL bmem013; + BOOL bmem014; + BOOL bmem015; + BOOL bmem016; + BOOL bmem017; + BOOL bmem018; + BOOL bmem019; + BOOL bmem020; + BOOL bmem021; + BOOL bmem022; + BOOL bmem023; + BOOL bmem024; + BOOL bmem025; + BOOL bmem026; + BOOL bmem027; + BOOL bmem028; + BOOL bmem029; + BOOL bmem030; + BOOL bmem031; + BOOL bmem032; + BOOL bmem033; + BOOL bmem034; + BOOL bmem035; + BOOL bmem036; + BOOL bmem037; + BOOL bmem038; + BOOL bmem039; + BOOL bmem040; + BOOL bmem041; + BOOL bmem042; + BOOL bmem043; + BOOL bmem044; + BOOL bmem045; + BOOL bmem046; + BOOL bmem047; + BOOL bmem048; + BOOL bmem049; + BOOL bmem050; + BOOL bmem051; + BOOL bmem052; + BOOL bmem053; + BOOL bmem054; + BOOL bmem055; + BOOL bmem056; + BOOL bmem057; + BOOL bmem058; + BOOL bmem059; + BOOL bmem060; + BOOL bmem061; + BOOL bmem062; + BOOL bmem063; + BOOL bmem064; + BOOL bmem065; + BOOL bmem066; + BOOL bmem067; + BOOL bmem068; + BOOL bmem069; + BOOL bmem070; + BOOL bmem071; + BOOL bmem072; + BOOL bmem073; + BOOL bmem074; + BOOL bmem075; + BOOL bmem076; + BOOL bmem077; + BOOL bmem078; + BOOL bmem079; + BOOL bmem080; + BOOL bmem081; + BOOL bmem082; + BOOL bmem083; + BOOL bmem084; + BOOL bmem085; + BOOL bmem086; + BOOL bmem087; + BOOL bmem088; + BOOL bmem089; + BOOL bmem090; + BOOL bmem091; + BOOL bmem092; + BOOL bmem093; + BOOL bmem094; + BOOL bmem095; + BOOL bmem096; + BOOL bmem097; + BOOL bmem098; + BOOL bmem099; + BOOL bmem100; + BOOL bmem101; + BOOL bmem102; + BOOL bmem103; + BOOL bmem104; + BOOL bmem105; + BOOL bmem106; + BOOL bmem107; + BOOL bmem108; + BOOL bmem109; + BOOL bmem110; + BOOL bmem111; + BOOL bmem112; + BOOL bmem113; + BOOL bmem114; + BOOL bmem115; + BOOL bmem116; + BOOL bmem117; + BOOL bmem118; + BOOL bmem119; + BOOL bmem120; + BOOL bmem121; + BOOL bmem122; + BOOL bmem123; + BOOL bmem124; + BOOL bmem125; + BOOL bmem126; + BOOL bmem127; + BOOL bmem128; + BOOL bmem129; + BOOL bmem130; + BOOL bmem131; + BOOL bmem132; + BOOL bmem133; + BOOL bmem134; + BOOL bmem135; + BOOL bmem136; + BOOL bmem137; + BOOL bmem138; + BOOL bmem139; + } Byte2Bit_typ; + +/***************/ +/* Prototyping */ +/***************/ + +UINT PV_ident (char *pv_name_p, USINT pv_tcnr, USINT pv_grpnr, + UDINT *pv_ident); +UINT PV_setval (UDINT pv_ident, UDINT value); +UINT PV_getval (UDINT pv_ident, UDINT *value); +UINT PV_getadr (char *pv_name_p, USINT pv_tcnr, USINT pv_grpnr, + UDINT *pv_adresse); +UINT PV_xgetadr (char *pv_name, UDINT *pv_adresse, UDINT *data_len); +UINT PV_xsetval (UDINT pv_ident, UINT subindex, void *data_p, + USINT data_len); +UINT PV_xgetval (UDINT pv_ident, UINT subindex, void *data_p, + USINT data_len); +UINT PV_info (UDINT pv_ident, UDINT *data_type, UDINT *data_len, + UINT *dimension); +UINT PV_list (UINT prev_index, UINT *index, PV_List_typ *pvl_p); +UINT PV_xlist (UINT prev_index, UINT *index, PV_xList_typ *pvl_p); +UINT PV_item (char *pv_name, UINT index, char *itemname); +UINT PV_ninfo (char *pv_name, UDINT *data_typ_p, UDINT *data_len_p, + UINT *dimension_p); + + + +UINT SYS_info (UDINT *sg_init_cnt, UDINT *sg_initdescr, UDINT *sg_tickcnt, + UDINT *sg_version, UDINT *sg_ov_version); +UINT SYSxinfo (SYSxinfo_typ *sx_p); +UINT SYSreset (BOOL enable, USINT mode); +USINT SYS_battery (void); + +UINT MO_list (UINT prev_index, UINT *index, MO_List_typ *mol_p); +void MO_info (struct MO_info* pInst); +UINT KEY_enadis (BOOL mode); +UINT KEY_read (USINT keys[4]); + +UINT FORCE_info (USINT tcnr, BOOL *force); + +UINT ST_ident (char *st_name_p, USINT st_grp, UDINT *st_ident); +UINT ST_suspend (UDINT st_ident); +UINT ST_resume (UDINT st_ident); +UINT ST_tmp_suspend (UDINT st_ident); +UINT ST_tmp_resume (UDINT st_ident); +UINT ST_allsuspend (void); +UINT ST_info (UDINT st_ident, USINT *state, SINT *tcnr); +UINT ST_name (UDINT st_ident, char *st_name_p, USINT *st_grp); + +UINT UT_ident (char *ut_name_p, USINT ut_grp, USINT ut_proc, char *ut_sps_p,UDINT *ut_ident); +UINT UT_suspend (UDINT ut_ident); +UINT UT_resume (UDINT ut_ident); +UINT UT_sleep (UDINT tickcount); +UINT UT_sendmsg (UDINT ut_ident, void *msg, UDINT msglng, UDINT flags); +UINT UT_recmsg (UDINT *ut_ident, void **msg, UDINT *msglng, UDINT flags); +UINT UT_freemsg (UDINT msglng, void *msg); +UINT UT_exit (UDINT exitinfo); + + +UINT AVT_create (char *name_p, USINT grupid, UDINT av_info, UDINT *av_ident); +UINT AVT_cancel (UDINT av_ident); +UINT AVT_ident (char *name_p, USINT grupid, UDINT *av_ident); +UINT AVT_attach (UDINT av_ident, UDINT *av_info); +UINT AVT_release (UDINT av_ident); +UINT AVT_info (UDINT av_ident, USINT *av_linkcount); + +UINT MEM_alloc (UDINT memlng, void **memptr); +UINT MEM_free (UDINT memlng, void *memptr); +UINT TMP_alloc (UDINT memlng, void **memptr); +UINT TMP_free (UDINT memlng, void *memptr); + +UINT RTC_gettime (RTCtime_typ *rtctime); +UINT RTC_settime (RTCtime_typ *rtctime); +UINT SW_gettime (RTCtime_typ *rtctime); +UINT SW_settime (RTCtime_typ *rtctime); +UINT TIM_musec (void); +UINT TIM_ticks (void); + +UINT SM_create (char *sm_name, USINT sm_count, UDINT *sm_ident); +UINT SM_ident (char *sm_name, UDINT *sm_ident); +UINT SM_delete (UDINT sm_ident); +UINT SM_attach (UDINT sm_ident, UDINT timeout, UDINT flags); +UINT SM_release (UDINT sm_ident); + +UINT ERR_warning (UINT errornr, UDINT errorinfo); +UINT ERR_fatal (UINT errornr, UDINT errorinfo); +UINT ERR_read (UINT entry_nr, ERR_typ *err_p); +UINT ERRxwarning (UINT errornr, UDINT errorinfo, char* errorstring); +UINT ERRxread (UINT entry_nr, ERR_xtyp *err_p); +UINT ERRxfatal (UINT errornr, UDINT errorinfo, char* errorstring); + +UINT DIS_str (UDINT row, UDINT col, char *string); +UINT DIS_chr (UDINT row, UDINT col, char character); +UINT DIS_clr (void); + +UINT DA_create (char *name_p, USINT grp, UINT spooladr, UDINT data_len, + void *data_p, void **mo_data_p, UDINT *mo_ident); +UINT DA_write (UDINT mo_ident, void *data_p,UDINT data_len, + UDINT mo_data_offset); +UINT DA_read (UDINT mo_ident, void *data_p,UDINT data_len, + UDINT mo_data_offset); +UINT DA_ident (char *name_p, USINT grp, UDINT *mo_ident); +UINT DA_delete (UDINT mo_ident); +UINT DA_burn (UDINT mo_ident); +UINT DA_fix (UDINT mo_ident); +UINT DA_info (UDINT mo_ident, void **moduldata_adr, UDINT *moduldata_lng, + USINT *memorytype); +UINT DA_copy (UDINT mo_ident, char *new_name, USINT mem_typ, UDINT *da_ident, + UDINT *daten_p, UDINT *daten_len); +UINT DA_store (UDINT mo_ident, USINT mem_typ, UDINT* daten_p, UDINT* daten_len); + +UINT MO_ver (STRING *pName, USINT grp, MoVerStruc_typ* pMoVerStruc); + +void Bit2Byte (Bit2Byte_typ* Bit2Byte_ptr); +void Byte2Bit (Byte2Bit_typ* Byte2Bit_ptr); + +#ifdef __cplusplus +}; +#endif +#endif /* _SYS_LIB_H_ */ + diff --git a/example/AsProject/Logical/Libraries/_AS/sys_lib/binary.lby b/example/AsProject/Logical/Libraries/_AS/sys_lib/binary.lby index 8360c7b..5714324 100644 --- a/example/AsProject/Logical/Libraries/_AS/sys_lib/binary.lby +++ b/example/AsProject/Logical/Libraries/_AS/sys_lib/binary.lby @@ -1,6 +1,6 @@ - - - + + + sys_lib.fun sys_lib.typ @@ -9,4 +9,4 @@ - \ No newline at end of file + diff --git a/example/AsProject/Logical/Libraries/_AS/sys_lib/sys_lib.fun b/example/AsProject/Logical/Libraries/_AS/sys_lib/sys_lib.fun index 4111403..a06234d 100644 --- a/example/AsProject/Logical/Libraries/_AS/sys_lib/sys_lib.fun +++ b/example/AsProject/Logical/Libraries/_AS/sys_lib/sys_lib.fun @@ -1,655 +1,283 @@ - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK Byte2Bit (*converts a byte array into a bit array*) - VAR_INPUT - byteadr :UDINT; (*byte array address*) - length :UINT; (*byte array length (1 through 16)*) - END_VAR - VAR_OUTPUT - bitadr :UDINT; (*bit array address*) - END_VAR - VAR - bmem000 :BOOL; (*internal variable*) - static_val :ARRAY[0..138] OF USINT; (*internal variable*) - END_VAR -END_FUNCTION_BLOCK - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK Bit2Byte (*converts a bit array into a byte array where every bit of data corresponds to an element in the bit array*) - VAR_INPUT - bitadr :UDINT; (*BIT array address*) - length :UINT; (*BIT array length (1 through 128)*) - END_VAR - VAR_OUTPUT - byteadr :UDINT; (*BYTE array address*) - END_VAR - VAR - byte_00 :USINT; (*internal variable*) - byte_01 :USINT; (*internal variable*) - byte_02 :USINT; (*internal variable*) - byte_03 :USINT; (*internal variable*) - byte_04 :USINT; (*internal variable*) - byte_05 :USINT; (*internal variable*) - byte_06 :USINT; (*internal variable*) - byte_07 :USINT; (*internal variable*) - byte_08 :USINT; (*internal variable*) - byte_09 :USINT; (*internal variable*) - byte_10 :USINT; (*internal variable*) - byte_11 :USINT; (*internal variable*) - byte_12 :USINT; (*internal variable*) - byte_13 :USINT; (*internal variable*) - byte_14 :USINT; (*internal variable*) - byte_15 :USINT; (*internal variable*) - bmem000 :BOOL; (*internal variable*) - static_val :ARRAY[0..138] OF USINT; (*internal variable*) - END_VAR -END_FUNCTION_BLOCK - -{REDUND_ERROR} FUNCTION KEY_read : UINT (*reads the status of the keys on the CPU*) - VAR_INPUT - keys :UDINT; (*array variable for storing key states*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION KEY_enadis : UINT (*disables key handling by the operating system (operating mode 0)*) - VAR_INPUT - mode :BOOL; (*operating mode: 0 ... key handling by the operating system, 1 ... key handling by an application program*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION DA_fix : UINT (*transfers a data object to the FIXRAM*) - VAR_INPUT - mo_ident :UDINT; (*ID number from DA_create() or DA_ident()*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION DA_info : UINT (*provides information about the data object*) - VAR_INPUT - mo_ident :UDINT; (*ID number from DA_create() or DA_ident()*) - moduldata_adr :UDINT; (*data address in the data object*) - moduldata_len :UDINT; (*pointer to length of the data (in bytes)*) - memorytype :UDINT; (*pointer to memory type*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION DA_copy : UINT (*copies a data object into the specified memory (RAM, User ROM, MEMCARD or FIXRAM) under the name new_name*) - VAR_INPUT - mo_ident :UDINT; (*ID number from DA_create() or DA_ident()*) - new_name :UDINT; (*pointer to name of the new data object*) - mem_typ :USINT; (*memory type, e.g. 1...RAM, 2...User ROM, ..*) - da_ident :UDINT; (*pointer to ID number of the copied data object*) - daten_p :UDINT; (*data address in the new data object*) - daten_len :UDINT; (*pointer to data length in the new data object (in bytes)*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION DA_store : UINT (*saves a data object in the specified memory (RAM, UserROM, MEMCARD or FIXRAM)*) - VAR_INPUT - mo_ident :UDINT; (*ID number from DA_create() or DA_ident()*) - mem_typ :USINT; (*memory type, e.g. 1...RAM, 2...User ROM, ..*) - daten_p :UDINT; (*data address in the new data object*) - daten_len :UDINT; (*pointer to data length in the new data object (in bytes)*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION DA_burn : UINT (*transfers a data object to UserROM*) - VAR_INPUT - mo_ident :UDINT; (*ID number from DA_create() or DA_ident()*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION DA_delete : UINT (*deletes a data object from the memory (RAM, User ROM, MEMCARD or FIXRAM)*) - VAR_INPUT - mo_ident :UDINT; (*ID number from DA_create() or DA_ident()*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION DA_ident : UINT (*provides the ID number of an existing data object*) - VAR_INPUT - name_p :UDINT; (*pointer to name of the data object*) - grp :USINT; (*group number (standard = 0)*) - mo_ident :UDINT; (*pointer to ID number of the data object*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION DA_read : UINT (*reads data from a module in the RAM or FIXRAM*) - VAR_INPUT - mo_ident :UDINT; (*ID number from DA_create() or DA_ident()*) - data_p :UDINT; (*pointer to data range*) - data_len :UDINT; (*length of the data (in bytes)*) - mo_data_offset :UDINT; (*offset in the data area of the module*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION DA_write : UINT (*writes data to a data object in RAM or FIXRAM*) - VAR_INPUT - mo_ident :UDINT; (*ID number from DA_create() or DA_ident()*) - data_p :UDINT; (*pointer to data range*) - data_len :UDINT; (*length of the data (in bytes)*) - mo_data_offset :UDINT; (*offset in the data area of the module*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION DA_create : UINT (*generates a data object with corresponding parameter in the RAM*) - VAR_INPUT - name_p :UDINT; (*pointer to name of the data object*) - grp :USINT; (*group Number (standard = 0)*) - spooladr :UINT; (*spool address (standard = 0)*) - data_len :UDINT; (*length of the data (in bytes)*) - data_p :UDINT; (*pointer to data which is written in the data object*) - mo_data_p :UDINT; (*data address in the data object*) - mo_ident :UDINT; (*pointer to ID number of the data object*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION DIS_clr : UINT (*clears the CPU status display (B&R 2010 system only)*) - VAR_INPUT - dummy_input :USINT; (*required for operation in ladder diagram*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION DIS_chr : UINT (*writes a ASCII character to the CPU status display*) - VAR_INPUT - row :UDINT; (*row number (0 or 1) where the ASCII character is to be output*) - col :UDINT; (*column number (0 through 7) where the ASCII character is to be output*) - character :SINT; (*ASCII character that is to be output on the status display*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION DIS_str : UINT (*writes a character string to the CPU status display*) - VAR_INPUT - row :UDINT; (*row number (0 or 1) where the string is to be output*) - col :UDINT; (*column number (0 through 7) from where the string is to be output*) - string :UDINT; (*pointer to string (ending in zero) that is to be output on the status display*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION ERRxfatal : UINT (*makes an log book entry in the error log book*) - VAR_INPUT - errornr :UINT; (*error number, which is entered in the error log book*) - errorinfo :UDINT; (*optional additional information (error details)*) - errorstring :UDINT; (*pointer to string, ending in zero (32 characters maximum)*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ERR_read : UINT (*reads an entry from the error log book and writes the information in a structure (ERR_typ_struct)*) - VAR_INPUT - entry_nr :UINT; (*number of the log book entry that is to be read*) - ERR_typ_struct :UDINT; (*pointer to structure in which information about the log book entry is written*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ERRxread : UINT (*reads an entry from the error log book and writes the information in a structure (ERR_typ_struct)*) - VAR_INPUT - entry_nr :UINT; (*number of the log book entry that is to be read*) - ERR_xtyp_struct :UDINT; (*pointer to structure in which information about the log book entry is written*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ERR_fatal : UINT (*makes an entry (log book entry) in the error log book*) - VAR_INPUT - errornr :UINT; (*error number, which is entered in the error log book*) - errorinfo :UDINT; (*optional additional information (error details)*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ERR_warning : UINT (*makes an entry (log book entry) in the error log book*) - VAR_INPUT - errornr :UINT; (*error number, which is entered in the error log book*) - errorinfo :UDINT; (*optional additional information (error details)*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ERRxwarning : UINT (*makes an entry (log book entry) in the error log book*) - VAR_INPUT - errornr :UINT; (*error number, which is entered in the error log book*) - errorinfo :UDINT; (*optional additional information (error details)*) - errorstring :UDINT; (*string ending in zero (32 characters maximum)*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION SM_release : UINT (*releases the semaphore with the specified ID number*) - VAR_INPUT - sm_ident :UDINT; (*semaphore ID number from SM_create() or SM_ident()*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION SM_attach : UINT (*requests the use of a semaphore*) - VAR_INPUT - sm_ident :UDINT; (*semaphore ID number from SM_create() or SM_ident()*) - timeout :UDINT; (*timeout time in units of 10 ms (0 = unlimited timeout time)*) - flags :UDINT; (*0 ... wait for timeout time to elapse, 1 ... do not wait for timeout time to elapse*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION SM_delete : UINT (*deletes the semaphore with the specified ID number*) - VAR_INPUT - sm_ident :UDINT; (*semaphore ID number from SM_create() or SM_ident()*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION SM_ident : UINT (*provides the ID number of an existing semaphore*) - VAR_INPUT - sm_name :UDINT; (*pointer to semaphore name*) - sm_ident :UDINT; (*pointer to ID number of the semaphore*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION SM_create : UINT (*generates a semaphore using the specified parameter and provides the ID number of the semaphore*) - VAR_INPUT - sm_name :UDINT; (*semaphore name, given as a string*) - sm_count :USINT; (*number of permitted instances of simultaneous access using the semaphore*) - sm_ident :UDINT; (*ID number of the semaphore*) - END_VAR -END_FUNCTION - -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION TIM_ticks : UINT (*provides the number of ticks (1 tick = 10 ms) in the current second*) -(* The dummy_input parameter is obsolete. - VAR_INPUT - dummy_input :USINT; required for operation in ladder diagram - END_VAR *) -END_FUNCTION - -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION TIM_musec : UINT (*provides the (approximate) number of microseconds in the current tick (1 tick = 10 ms)*) -(* The dummy_input parameter is obsolete. - VAR_INPUT - dummy_input :USINT; required for operation in ladder diagram - END_VAR *) -END_FUNCTION - -{REDUND_ERROR} FUNCTION SW_settime : UINT (*sets the software clock to the desired time (RTCtime_struct structure)*) - VAR_INPUT - RTCtime_struct :UDINT; (*pointer to the structure which contains the time and date*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION SW_gettime : UINT (*reads the time and date from the software clock and writes this information in a RTCtime_struct structure*) - VAR_INPUT - RTCtime_struct :UDINT; (*pointer to the structure where the time and date are stored*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION RTC_settime : UINT (*sets the real-time clock to the desired time (RTCtime_struct structure)*) - VAR_INPUT - RTCtime_struct :UDINT; (*pointer to the structure which contains the time and date*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION RTC_gettime : UINT (*reads time and date from the real-time clock and writes this information in a RTCtime_struct structure*) - VAR_INPUT - RTCtime_struct :UDINT; (*pointer to the structure where the time and date are stored*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION TMP_free : UINT (*releases a memory area, which has been allocated using TMP_alloc()*) - VAR_INPUT - memlng :UDINT; (*size of the memory area to be released in bytes*) - memptr :UDINT; (*address for the memory area to be released*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION TMP_alloc : UINT (*allocates memory in the temporary memory area (system RAM only)*) - VAR_INPUT - memlng :UDINT; (*size of the allocated memory area in bytes*) - memptr :UDINT; (*pointer to requested memory area*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION MEM_free : UINT (*releases a memory area, which has been allocated using MEM_alloc()*) - VAR_INPUT - memlng :UDINT; (*size of the memory area to be released in bytes*) - memptr :UDINT; (*address for the memory area to be released*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION MEM_alloc : UINT (*allocates memory in the user memory area (user RAM only)*) - VAR_INPUT - memlng :UDINT; (*size of the allocated memory area in bytes*) - memptr :UDINT; (*pointer to requested memory area*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION AVT_info : UINT (*determines how many links there are to the AVT entry with the specified AVT ID number*) - VAR_INPUT - av_ident :UDINT; (*AVT ID number from AVT_create() or AVT_ident()*) - av_linkcount :UDINT; (*link count (number of access to this AVT entry)*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION AVT_release : UINT (*releases the AVT entry with the specified AVT ID number*) - VAR_INPUT - av_ident :UDINT; (*AVT ID number from AVT_create() or AVT_ident()*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION AVT_attach : UINT (*attachs information to an AVT entry*) - VAR_INPUT - av_ident :UDINT; (*AVT ID number from AVT_create() or AVT_ident()*) - av_info :UDINT; (*pointer to AVT info (e.g.: data address)*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION AVT_ident : UINT (*provides the AVT ID number for an existing AVT entry*) - VAR_INPUT - av_name :UDINT; (*pointer to name of AVT entry*) - av_grp :USINT; (*group number (standard = 0)*) - av_ident :UDINT; (*pointer to AVT ident number*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION AVT_cancel : UINT (*deletes the entry with the specified AVT ID number from the AVT*) - VAR_INPUT - av_ident :UDINT; (*AVT ID number from AVT_create() or AVT_ident()*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION AVT_create : UINT (*generates an AVT entry with the specified name and provides an ID number*) - VAR_INPUT - av_name :UDINT; (*pointer to name of AVT entry*) - av_grp :USINT; (*group number (standard = 0)*) - av_info :UDINT; (*AVT info (e.g.: data address)*) - av_ident :UDINT; (*pointer to AVT ident number*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION UT_sleep : UINT (*stops the idle time object for a set period of time*) - VAR_INPUT - tickcount :UDINT; (*number of ticks (1 tick = 10 ms) for which an idle time object is stopped*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION UT_exit : UINT (*exits an idle time object*) - VAR_INPUT - exitinfo :UDINT; (*exit information (standard = 0)*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION UT_freemsg : UINT (*releases the memory which was taken up by a received message*) - VAR_INPUT - msglng :UDINT; (*size of the memory to be released (in bytes)*) - msg :UDINT; (*pointer to memory to be released*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION UT_recmsg : UINT (*receives a message sent using the UT_sendmsg() function*) - VAR_INPUT - ut_ident :UDINT; (*pointer to ID number of the object to which the message was sent*) - msg :UDINT; (*address at which the received message should be saved*) - msglng :UDINT; (*pointer to length of the received data in bytes*) - flags :UDINT; (*Bit 1 = 1: do not wait for UT_sendmsg()*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION UT_sendmsg : UINT (*sends a message to another object (including cyclic objects)*) - VAR_INPUT - ut_ident :UDINT; (*ID number of the object to which the message is to be sent (from UT_ident())*) - msg :UDINT; (*pointer to message to be sent*) - msglng :UDINT; (*length of the message to be sent (in bytes)*) - flags :UDINT; (*Bit 1 = 1: do not wait for UT_recmsg()*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION UT_resume : UINT (*restarts a stopped idle time object*) - VAR_INPUT - ut_ident :UDINT; (*ID number from UT_ident()*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION UT_suspend : UINT (*stops the idle time object with the specified ID number*) - VAR_INPUT - ut_ident :UDINT; (*ID number from UT_ident()*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION UT_ident : UINT (*provides the ID number of an idle time object*) - VAR_INPUT - ut_name :UDINT; (*pointer to name of the idle time object*) - ut_grp :USINT; (*group number (standard = 0)*) - ut_proc :USINT; (*processor number (standard: 0 = current processor)*) - ut_sps_p :UDINT; (*pointer to name of the target system*) - ut_ident :UDINT; (*pointer to ID number of the idle time object*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ST_name : UINT (*provides the name and group number for the object with the relevant ID number*) - VAR_INPUT - st_ident :UDINT; (*ID number for the object from ST_ident() (0 = the object itself)*) - st_name_p :UDINT; (*pointer to name of the object*) - st_grp :UDINT; (*pointer to group number for the object (standard = 0)*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ST_info : UINT (*provides information about the object with the relevant ID number*) - VAR_INPUT - st_ident :UDINT; (*ID number for the object from ST_ident() (0 = the object itself)*) - state :UDINT; (*pointer to status of the object: 1 ... Object installed, 2 ... Object running, ..*) - tknr :UDINT; (*pointer to resource information: 1 through 8 ... Cyclic resource, -8 ... Exception resource, ..*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ST_allsuspend : UINT (*suspends all cyclic software objects*) - VAR_INPUT - dummy_input :USINT; (*required for operation in ladder diagram*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ST_tmp_resume : UINT (*activates a previously stopped (cyclic) software object*) - VAR_INPUT - st_ident :UDINT; (*ID number for the software object from ST_ident()*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ST_tmp_suspend : UINT (*suspends a cyclic object temporarily*) - VAR_INPUT - st_ident :UDINT; (*ID number for the object from ST_ident() (0 = object suspends itself)*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION ST_resume : UINT (*activates a previously stopped (cyclic) software object*) - VAR_INPUT - st_ident :UDINT; (*ID number for the software object from ST_ident()*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION ST_suspend : UINT (*suspends a cyclic object permanently*) - VAR_INPUT - st_ident :UDINT; (*ID number for the object from ST_ident()(0 = object suspends itself)*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ST_ident : UINT (*provides the ID number for a software object*) - VAR_INPUT - st_name :UDINT; (*pointer to name of the software object*) - st_grp :USINT; (*group number for the object (standard = 0)*) - st_ident :UDINT; (*pointer to ID number of the object*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION FORCE_info : UINT (*determines whether or not a variable is forced in the objects of the specified resource (tk_nr)*) - VAR_INPUT - tknr :USINT; (*resource that is to be checked: 1 through 4 ... cyclic resource, -9 ... Interrupt resource, ..*) - force :UDINT; (*given as a pointer: 1 ... force function is active, 0 ... force function is inactive*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION MO_ver : UINT (*reads the version and the date of a B&R module*) - VAR_INPUT - pName :UDINT; (*pointer to name of the B&R module*) - grp :USINT; (*group number for the object (standard = 0)*) - pMoVerStruc :UDINT; (*pointer to the structure where the module version of the located B&R module is stored*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION MO_list : UINT (*browses all the B&R modules on the target system*) - VAR_INPUT - prev_index :UINT; (*index of the B&R module where the search is being started*) - index :UDINT; (*pointer to index of the found B&R module*) - MO_List_struct :UDINT; (*pointer to structure where the module information is stored*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK MO_info (*reads information of a B&R module on the target system*) - VAR_INPUT - enable :BOOL; (*enables execution*) - pName :UDINT; (*pointer to name of the B&R module*) - grp :USINT; (*group number for the object (standard = 0)*) - END_VAR - VAR_OUTPUT - status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) - type :USINT; (*B&R module type*) - state :USINT; (*B&R module status*) - memType :UDINT; (*memory of the B&R module*) - address :UDINT; (*physical address of the B&R module*) - size :UDINT; (*size of the B&R module*) - version :ARRAY[0..9] OF USINT; (*B&R module version*) - date :RTCtime_typ; (*B&R module date*) - END_VAR -END_FUNCTION_BLOCK - -{REDUND_ERROR} FUNCTION SYS_battery : USINT (*indicates the status of the standard/rechargeable battery in the CPU and the battery in the APM*) - VAR_INPUT - dummy_input :USINT; (*required for operation in ladder diagram*) - END_VAR -END_FUNCTION - -{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION SYSreset : UINT (*initiates a boot procedure on the target system in the specified mode (WARM or COLD START)*) - VAR_INPUT - enable :BOOL; (*enables execution*) - mode :USINT; (*boot mode: 0x01 .. WARM START (with Restart), 0x02 .. COLD START (with Restart), ..*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION SYSxinfo : UINT (*reads the additional system information and writes this information into a SYSxinfo_struct structure*) - VAR_INPUT - SYSxinfo_struct :UDINT; (*pointer to structure where the additional system information is stored, given as a pointer*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION SYS_info : UINT (*provides information about the system*) - VAR_INPUT - init_count :UDINT; (*pointer to number of previously executed warm restarts*) - init_descr :UDINT; (*pointer to mode of last start-up: 1 ... WARM RESTART, 2 ... COLD RESTART, ..*) - tick_count :UDINT; (*pointer to tick counter*) - version :UDINT; (*pointer to operating system version number*) - ov_version :UDINT; (*pointer to object directory version number*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION PV_xlist : UINT (*browse all the variables*) - VAR_INPUT - prev_index :UINT; (*index of the PV where the search is being started*) - index :UDINT; (*pointer to index of the located PV*) - PV_xList_struct :UDINT; (*pointer to structure which contains PV information about the located PV*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION PV_ninfo : UINT (*reads data from a process variable of a complex data type (array or structure variable)*) - VAR_INPUT - pv_name :UDINT; (*pointer to name of the process variable*) - data_typ_p :UDINT; (*pointer to data type of the PV*) - data_len_p :UDINT; (*pointer to length of the PV in bytes*) - dimension_p :UDINT; (*pointer to number of array or structure elements*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION PV_item : UINT (*determines the names of structure elements*) - VAR_INPUT - pv_name :UDINT; (*pointer to name of the process variable*) - index :UINT; (*structure element index*) - itemname :UDINT; (*pointer to name of the structure element*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION PV_ident : UINT (*provides the ID number of a process variable (PV)*) - VAR_INPUT - pv_name :UDINT; (*pointer to name of the process variable*) - pv_tknr :USINT; (*process variable resource*) - pv_grp :USINT; (*group number *) - pv_ident :UDINT; (*pointer to PV ID number*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION PV_list : UINT (*browses all variables*) - VAR_INPUT - prev_index :UINT; (*index of the PV where the search is being started*) - index :UDINT; (*pointer to index of the located PV*) - PVList_struct :UDINT; (*pointer to structure which contains PV information about the located PV*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION PV_info : UINT (*reads data from a process variable of a complex data type (array or structure variable)*) - VAR_INPUT - pv_ident :UDINT; (*ID number of the process variable from PV_ident()*) - data_typ :UDINT; (*pointer to data type of the PV*) - data_len :UDINT; (*pointer to length of the PV in bytes*) - dimension :UDINT; (*pointer to number of array or structure elements*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION PV_xgetval : UINT (*reads data from a process variable of a complex data type (array or structure variable)*) - VAR_INPUT - pv_ident :UDINT; (*ID number of the process variable from PV_ident()*) - subindex :UINT; (*element index: 0 ... Entire array/structure, 1 ... 1st element of the array/structure, ..*) - data_p :UDINT; (*pointer to data read*) - data_len :USINT; (*length of the data to be read in bytes*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION PV_xsetval : UINT (*sets a particular value for a process variable of a complex data type (array variable or structure variable)*) - VAR_INPUT - pv_ident :UDINT; (*ID number of the process variable from PV_ident()*) - subindex :UINT; (*element index: 0 ... Entire array/structure, 1 ... 1st element of the array/structure, ..*) - data_p :UDINT; (*pointer to data assigned to the PV*) - data_len :USINT; (*length of the data in bytes*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION PV_xgetadr : UINT (*provides the address and length of a variable*) - VAR_INPUT - pv_name_p :UDINT; (*pointer to name of the process variable*) - pv_adresse :UDINT; (*PV address for dynamic access*) - data_len :UDINT; (*pointer to length of the process variable in bytes*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION PV_getadr : UINT (*provides the address of a process variable*) - VAR_INPUT - pv_name_p :UDINT; (*pointer to name of the process variable*) - pv_tknr :USINT; (*process variable resource: 1 ... Cyclic #1, timer #1-4, 2 ... Cyclic resource cyclic #2, ..*) - pv_grpnr :USINT; (*group number (standard = 0)*) - pv_adresse :UDINT; (*PV address for dynamic access*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION PV_getval : UINT (*reads the value of a process variable*) - VAR_INPUT - pv_ident :UDINT; (*ID number of the process variable from PV_ident()*) - value :UDINT; (*pointer to determined value of the PV*) - END_VAR -END_FUNCTION - -{REDUND_ERROR} FUNCTION PV_setval : UINT (*sets a particular value for a process variable*) - VAR_INPUT - pv_ident :UDINT; (*ID number of the process variable from PV_ident()*) - value :UDINT; (*value assigned to the PV*) - END_VAR -END_FUNCTION - -{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK slMoList (*browses the B&R modules on the target system*) - VAR_INPUT - enable :BOOL; (*enables execution*) - first :BOOL; (*starting point for browsing*) - filter :BOOL; (*filter for browsing in own application module*) - pMoName :UDINT; (*name of the B&R module given as a pointer*) - sizeMoName :UDINT; (*length of the string (pMoName) -> ideally, sizeMoName = 11*) - pAppMoName :UDINT; (*name of the application module given as a pointer*) - sizeAppMoName :UDINT; (*length of the string (pAppMoName) -> ideally, sizeAppMoName = 21*) - END_VAR - VAR_OUTPUT - status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) - moSize :UDINT; (*size of the B&R module*) - moType :USINT; (*type of the B&R module*) - memType :USINT; (*memory type of the B&R module*) - END_VAR - VAR - i_hMo :UDINT; (*internal variable*) - END_VAR -END_FUNCTION_BLOCK +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK Byte2Bit (*converts a byte array into a bit array*) + VAR_INPUT + byteadr :UDINT; (*byte array address*) + length :UINT; (*byte array length (1 through 16)*) + END_VAR + VAR_OUTPUT + bitadr :UDINT; (*bit array address*) + END_VAR + VAR + bmem000 :BOOL; (*internal variable*) + static_val :ARRAY[0..138] OF USINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK Bit2Byte (*converts a bit array into a byte array where every bit of data corresponds to an element in the bit array*) + VAR_INPUT + bitadr :UDINT; (*BIT array address*) + length :UINT; (*BIT array length (1 through 128)*) + END_VAR + VAR_OUTPUT + byteadr :UDINT; (*BYTE array address*) + END_VAR + VAR + byte_00 :USINT; (*internal variable*) + byte_01 :USINT; (*internal variable*) + byte_02 :USINT; (*internal variable*) + byte_03 :USINT; (*internal variable*) + byte_04 :USINT; (*internal variable*) + byte_05 :USINT; (*internal variable*) + byte_06 :USINT; (*internal variable*) + byte_07 :USINT; (*internal variable*) + byte_08 :USINT; (*internal variable*) + byte_09 :USINT; (*internal variable*) + byte_10 :USINT; (*internal variable*) + byte_11 :USINT; (*internal variable*) + byte_12 :USINT; (*internal variable*) + byte_13 :USINT; (*internal variable*) + byte_14 :USINT; (*internal variable*) + byte_15 :USINT; (*internal variable*) + bmem000 :BOOL; (*internal variable*) + static_val :ARRAY[0..138] OF USINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_ERROR} FUNCTION ERRxfatal : UINT (*makes an log book entry in the error log book*) + VAR_INPUT + errornr :UINT; (*error number, which is entered in the error log book*) + errorinfo :UDINT; (*optional additional information (error details)*) + errorstring :UDINT; (*pointer to string, ending in zero (32 characters maximum)*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ERR_fatal : UINT (*makes an entry (log book entry) in the error log book*) + VAR_INPUT + errornr :UINT; (*error number, which is entered in the error log book*) + errorinfo :UDINT; (*optional additional information (error details)*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ERR_warning : UINT (*makes an entry (log book entry) in the error log book*) + VAR_INPUT + errornr :UINT; (*error number, which is entered in the error log book*) + errorinfo :UDINT; (*optional additional information (error details)*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ERRxwarning : UINT (*makes an entry (log book entry) in the error log book*) + VAR_INPUT + errornr :UINT; (*error number, which is entered in the error log book*) + errorinfo :UDINT; (*optional additional information (error details)*) + errorstring :UDINT; (*string ending in zero (32 characters maximum)*) + END_VAR +END_FUNCTION + +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION TIM_ticks : UINT (*provides the number of ticks (1 tick = 10 ms) in the current second*) +(* The dummy_input parameter is obsolete. + VAR_INPUT + dummy_input :USINT; required for operation in ladder diagram + END_VAR *) +END_FUNCTION + +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION TIM_musec : UINT (*provides the (approximate) number of microseconds in the current tick (1 tick = 10 ms)*) +(* The dummy_input parameter is obsolete. + VAR_INPUT + dummy_input :USINT; required for operation in ladder diagram + END_VAR *) +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION RTC_settime : UINT (*sets the real-time clock to the desired time (RTCtime_struct structure)*) + VAR_INPUT + RTCtime_struct :UDINT; (*pointer to the structure which contains the time and date*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION RTC_gettime : UINT (*reads time and date from the real-time clock and writes this information in a RTCtime_struct structure*) + VAR_INPUT + RTCtime_struct :UDINT; (*pointer to the structure where the time and date are stored*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION TMP_free : UINT (*releases a memory area, which has been allocated using TMP_alloc()*) + VAR_INPUT + memlng :UDINT; (*size of the memory area to be released in bytes*) + memptr :UDINT; (*address for the memory area to be released*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION TMP_alloc : UINT (*allocates memory in the temporary memory area (system RAM only)*) + VAR_INPUT + memlng :UDINT; (*size of the allocated memory area in bytes*) + memptr :UDINT; (*pointer to requested memory area*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ST_name : UINT (*provides the name and group number for the object with the relevant ID number*) + VAR_INPUT + st_ident :UDINT; (*ID number for the object from ST_ident() (0 = the object itself)*) + st_name_p :UDINT; (*pointer to name of the object*) + st_grp :UDINT; (*pointer to group number for the object (standard = 0)*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ST_info : UINT (*provides information about the object with the relevant ID number*) + VAR_INPUT + st_ident :UDINT; (*ID number for the object from ST_ident() (0 = the object itself)*) + state :UDINT; (*pointer to status of the object: 1 ... Object installed, 2 ... Object running, ..*) + tknr :UDINT; (*pointer to resource information: 1 through 8 ... Cyclic resource, -8 ... Exception resource, ..*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ST_allsuspend : UINT (*suspends all cyclic software objects*) + VAR_INPUT + dummy_input :USINT; (*required for operation in ladder diagram*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ST_tmp_resume : UINT (*activates a previously stopped (cyclic) software object*) + VAR_INPUT + st_ident :UDINT; (*ID number for the software object from ST_ident()*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ST_tmp_suspend : UINT (*suspends a cyclic object temporarily*) + VAR_INPUT + st_ident :UDINT; (*ID number for the object from ST_ident() (0 = object suspends itself)*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ST_ident : UINT (*provides the ID number for a software object*) + VAR_INPUT + st_name :UDINT; (*pointer to name of the software object*) + st_grp :USINT; (*group number for the object (standard = 0)*) + st_ident :UDINT; (*pointer to ID number of the object*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION MO_ver : UINT (*reads the version and the date of a B&R module*) + VAR_INPUT + pName :UDINT; (*pointer to name of the B&R module*) + grp :USINT; (*group number for the object (standard = 0)*) + pMoVerStruc :UDINT; (*pointer to the structure where the module version of the located B&R module is stored*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION MO_list : UINT (*browses all the B&R modules on the target system*) + VAR_INPUT + prev_index :UINT; (*index of the B&R module where the search is being started*) + index :UDINT; (*pointer to index of the found B&R module*) + MO_List_struct :UDINT; (*pointer to structure where the module information is stored*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK MO_info (*reads information of a B&R module on the target system*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pName :UDINT; (*pointer to name of the B&R module*) + grp :USINT; (*group number for the object (standard = 0)*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + type :USINT; (*B&R module type*) + state :USINT; (*B&R module status*) + memType :UDINT; (*memory of the B&R module*) + address :UDINT; (*physical address of the B&R module*) + size :UDINT; (*size of the B&R module*) + version :ARRAY[0..9] OF USINT; (*B&R module version*) + date :RTCtime_typ; (*B&R module date*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION MO_versionMajor : UDINT (*returns the major number of a B&R module, returns zero on error*) + VAR_INPUT + pName :UDINT; (*pointer to name of the B&R module*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION MO_versionMinor : UDINT (*returns the minor number of a B&R module, returns zero on error*) + VAR_INPUT + pName :UDINT; (*pointer to name of the B&R module*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION MO_versionPatch : UDINT (*returns the patch number of a B&R module, returns zero on error*) + VAR_INPUT + pName :UDINT; (*pointer to name of the B&R module*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION MO_versionBuild : UDINT (*returns the build number of a B&R module, returns zero on error*) + VAR_INPUT + pName :UDINT; (*pointer to name of the B&R module*) + END_VAR +END_FUNCTION + + +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION SYSreset : UINT (*initiates a boot procedure on the target system in the specified mode (WARM or COLD START)*) + VAR_INPUT + enable :BOOL; (*enables execution*) + mode :USINT; (*boot mode: 0x01 .. WARM START (with Restart), 0x02 .. COLD START (with Restart), ..*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION PV_xlist : UINT (*browse all the variables*) + VAR_INPUT + prev_index :UINT; (*index of the PV where the search is being started*) + index :UDINT; (*pointer to index of the located PV*) + PV_xList_struct :UDINT; (*pointer to structure which contains PV information about the located PV*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION PV_ninfo : UINT (*reads data from a process variable of a complex data type (array or structure variable)*) + VAR_INPUT + pv_name :UDINT; (*pointer to name of the process variable*) + data_typ_p :UDINT; (*pointer to data type of the PV*) + data_len_p :UDINT; (*pointer to length of the PV in bytes*) + dimension_p :UDINT; (*pointer to number of array or structure elements*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION PV_item : UINT (*determines the names of structure elements*) + VAR_INPUT + pv_name :UDINT; (*pointer to name of the process variable*) + index :UINT; (*structure element index*) + itemname :UDINT; (*pointer to name of the structure element*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION PV_xgetadr : UINT (*provides the address and length of a variable*) + VAR_INPUT + pv_name_p :UDINT; (*pointer to name of the process variable*) + pv_adresse :UDINT; (*PV address for dynamic access*) + data_len :UDINT; (*pointer to length of the process variable in bytes*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION PV_lkaddr : UINT (*looks for a process varaible name for the specified address*) + VAR_INPUT + pv_address :UDINT; (*PV address to look for*) + pv_name_buf :UDINT; (*pointer to name buffer for the name of the process variable*) + pv_name_buf_size :UDINT; (*size of name buffer in bytes*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK slMoList (*browses the B&R modules on the target system*) + VAR_INPUT + enable :BOOL; (*enables execution*) + first :BOOL; (*starting point for browsing*) + filter :BOOL; (*filter for browsing in own application module*) + pMoName :UDINT; (*name of the B&R module given as a pointer*) + sizeMoName :UDINT; (*length of the string (pMoName) -> ideally, sizeMoName = 11*) + pAppMoName :UDINT; (*name of the application module given as a pointer*) + sizeAppMoName :UDINT; (*length of the string (pAppMoName) -> ideally, sizeAppMoName = 21*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + moSize :UDINT; (*size of the B&R module*) + moType :USINT; (*type of the B&R module*) + memType :USINT; (*memory type of the B&R module*) + END_VAR + VAR + i_hMo :UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK diff --git a/example/AsProject/Logical/Libraries/_AS/sys_lib/sys_lib.typ b/example/AsProject/Logical/Libraries/_AS/sys_lib/sys_lib.typ index 7dc0ff1..ebb1fc4 100644 --- a/example/AsProject/Logical/Libraries/_AS/sys_lib/sys_lib.typ +++ b/example/AsProject/Logical/Libraries/_AS/sys_lib/sys_lib.typ @@ -1,90 +1,39 @@ - -TYPE - MoVerStruc_typ : STRUCT - version : ARRAY[0..9] OF USINT ; - year : UINT ; - month : USINT ; - day : USINT ; - reserve : USINT ; - hour : USINT ; - minute : USINT ; - second : USINT ; - END_STRUCT; - ERR_xtyp : STRUCT - err_nr : UINT ; - err_info : UDINT ; - t_name : ARRAY[0..4] OF SINT ; - err_type : USINT ; - err_year : UINT ; - err_month : USINT ; - err_day : USINT ; - err_reserve : USINT ; - err_hour : USINT ; - err_minute : USINT ; - err_second : USINT ; - err_millisec : UINT ; - err_microsec : UINT ; - err_string : ARRAY[0..33] OF USINT ; - END_STRUCT; - ERR_typ : STRUCT - err_nr : UINT ; - err_info : UDINT ; - t_name : ARRAY[0..4] OF SINT ; - err_type : USINT ; - err_year : UINT ; - err_month : USINT ; - err_day : USINT ; - err_reserve : USINT ; - err_hour : USINT ; - err_minute : USINT ; - err_second : USINT ; - err_millisec : UINT ; - err_microsec : UINT ; - END_STRUCT; - PV_xList_typ : STRUCT - name : ARRAY[0..32] OF SINT ; (*name of the process variable*) - data_typ : USINT ; (*PV data type (see PV_info())*) - data_len : UDINT ; (*length of the PV in bytes*) - dimension : UDINT ; (*number of array elements*) - adress : UDINT ; (*physical address of the PV (for dynamic access)*) - END_STRUCT; - PV_List_typ : STRUCT - name : ARRAY[0..13] OF SINT ; (*name of the PV*) - tcnr : USINT ; (*PV resource*) - grp : USINT ; (*group number of the PV (standard = 0)*) - ident : UDINT ; (*PV ID number*) - adress : UDINT ; (*physical address of the PV (for dynamic access)*) - END_STRUCT; - MO_List_typ : STRUCT - name : ARRAY[0..13] OF SINT ; - grp : USINT ; - type : USINT ; - state : USINT ; - reserve : USINT ; - adress : UDINT ; - memtype : UDINT ; - END_STRUCT; - SYSxinfo_typ : STRUCT - aws_name : ARRAY[0..5] OF SINT ; - aws_type : ARRAY[0..1] OF SINT ; - cpu_info : UDINT ; - ma_globl_len : UINT ; - md_globl_len : UINT ; - os_len : UDINT ; - user_len : UDINT ; - tmp_len : UDINT ; - eprom_len : UDINT ; - fix_ram_len : UDINT ; - END_STRUCT; - RTCtime_typ : STRUCT - year : UINT ; - month : USINT ; - day : USINT ; - reserve : USINT ; - hour : USINT ; - minute : USINT ; - second : USINT ; - millisec : UINT ; - microsec : UINT ; - END_STRUCT; -END_TYPE +TYPE + MoVerStruc_typ : STRUCT + version : ARRAY[0..9] OF USINT ; + year : UINT ; + month : USINT ; + day : USINT ; + reserve : USINT ; + hour : USINT ; + minute : USINT ; + second : USINT ; + END_STRUCT; + PV_xList_typ : STRUCT + name : ARRAY[0..32] OF SINT ; (*name of the process variable*) + data_typ : USINT ; (*PV data type (see PV_info())*) + data_len : UDINT ; (*length of the PV in bytes*) + dimension : UDINT ; (*number of array elements*) + adress : UDINT ; (*physical address of the PV (for dynamic access)*) + END_STRUCT; + MO_List_typ : STRUCT + name : ARRAY[0..13] OF SINT ; + grp : USINT ; + type : USINT ; + state : USINT ; + reserve : USINT ; + adress : UDINT ; + memtype : UDINT ; + END_STRUCT; + RTCtime_typ : STRUCT + year : UINT ; + month : USINT ; + day : USINT ; + reserve : USINT ; + hour : USINT ; + minute : USINT ; + second : USINT ; + millisec : UINT ; + microsec : UINT ; + END_STRUCT; +END_TYPE diff --git a/example/AsProject/Logical/Libraries/_AS/sys_lib/sys_lib.var b/example/AsProject/Logical/Libraries/_AS/sys_lib/sys_lib.var index 625d11b..9604ea3 100644 --- a/example/AsProject/Logical/Libraries/_AS/sys_lib/sys_lib.var +++ b/example/AsProject/Logical/Libraries/_AS/sys_lib/sys_lib.var @@ -1,131 +1,77 @@ - -(*error codes of the SYS_LIB services*) -VAR CONSTANT - ERR_BUR_WRROW : UINT := 2061; (*illegal row*) - ERR_BUR_WRCOL : UINT := 2062; (*illegal column*) - ERR_BUR_WR_CHAR : UINT := 2063; (*invalid ASCII character*) - ERR_BUR_NORTC : UINT := 2073; (*RTC not existing or uninitialized*) - - ERR_BUR_MO_NOTFOUND : UINT := 3019; (*module not found*) - ERR_BUR_NOMEM : UINT := 3030; (*out of memory*) - ERR_BUR_MEMVWBUSY : UINT := 3035; (*memory management busy*) - ERR_BUR_ILLPTR : UINT := 3104; (*illegal data pointer in MEM_free*) - - ERR_BUR_ILLTKNR : UINT := 3300; (*illegal task-class number*) - ERR_BUR_WROFFSET : UINT := 3301; (*illegal offset*) - ERR_BUR_ILLSTATE : UINT := 3302; (*illegal state of object*) - ERR_BUR_NOMSG : UINT := 3303; (*no message sent/received*) - ERR_BUR_DUPOBJ : UINT := 3305; (*object exists*) - ERR_BUR_TIMEOUT : UINT := 3304; (*timeout error*) - ERR_BUR_EXISTS : UINT := 3306; (*entry exists*) - ERR_BUR_LCOUNT : UINT := 3307; (*Linkcnt <> 0 in AVT_cancel ()*) - ERR_BUR_BURNING : UINT := 3308; (*error burning module*) - ERR_BUR_INVALIDMBX : UINT := 3309; (*invalid mailbox*) - - ERR_BUR_ILLBPTR : UINT := 3310; (*invalid base pointer*) - ERR_BUR_ILLTYP : UINT := 3311; (*invalid I/O type*) - ERR_BUR_ILLEXT : UINT := 3312; (*invalid ext. bit*) - ERR_BUR_ILLVER : UINT := 3313; (*invalid version, e.g. BURTRAP V1.10 to SPSSW V1.05*) - ERR_BUR_ILLLEN : UINT := 3314; (*invalid data length*) - ERR_BUR_MAX_LCOUNT : UINT := 3315; (*AVT_attach: LCOUNT > 127*) - ERR_BUR_AVT_FREE : UINT := 3316; (*AVT_release:LCOUNT = 0*) - ERR_BUR_ILLPAR : UINT := 3317; (*illegal parameter*) - ERR_BUR_INSTALL : UINT := 3318; (*error install datamodule*) - ERR_BUR_WRONG_MODTYP : UINT := 3319; (*wrong module type*) - - ERR_BUR_OBJDEL : UINT := 3320; (*object already deleted*) - ERR_BUR_ILLOBJ : UINT := 3324; (*object does not exist*) - ERR_BUR_ILLOBJTYP : UINT := 3328; (*invalid object type*) - ERR_BUR_NOENTRY : UINT := 3332; (*no entry*) - ERR_BUR_TOOLONG_PVNAME : UINT := 3333; (*too long PV name*) - ERR_BUR_ILLIDENT : UINT := 3336; (*illegal ident*) - ERR_BUR_NOSMBUF : UINT := 3560; (*no more semaphore buffers*) - ERR_BUR_NOSM : UINT := 3564; (*semaphore not available*) - ERR_BUR_SMDEL : UINT := 3568; (*semaphore deleted*) - ERR_BUR_NOTIME : UINT := 3584; (*time not available*) - ERR_BUR_ILLDATE : UINT := 3588; (*date : out of range*) - ERR_BUR_ILLTIME : UINT := 3592; (*time : out of range*) - ERR_BUR_ILLTICKS : UINT := 3596; (*ticks : out of range*) - - ERR_BUR_MEM_ALLOC : UINT := 3600; (*not enough continuous memory*) - ERR_BUR_TMP_ALLOC : UINT := 3601; (*not enough continuous memory*) - ERR_BUR_MEM_FREE : UINT := 3700; (*invalid pointer/length*) - ERR_BUR_TMP_FREE : UINT := 3701; (*invalid pointer/length*) - END_VAR - -(*state for object PLC task*) -VAR CONSTANT - Z_ST_created : UINT := 1; (*object installed*) - Z_ST_running : UINT := 2; (*object running*) - Z_ST_blocked : UINT := 3; (*object stopped*) - Z_ST_exist : UINT := 16#00; (*object exists*) - Z_ST_installed : UINT := 16#82; (*temporary status during installation*) - Z_ST_PVinstalled : UINT := 16#83; (*temporary status during installation*) - Z_ST_IOinstalled : UINT := 16#84; (*temporary status during installation*) - Z_ST_IOdeinstalled : UINT := 16#85; (*temporary status during installation*) - Z_ST_PVdeinstalled : UINT := 16#86; (*temporary status during installation*) - Z_ST_delete : UINT := 16#87; (*temporary status during installation*) - Z_ST_stdebug : UINT := 16#88; (*temporary status during installation*) - Z_ST_tmp_suspended : UINT := 16#90; (*object temporarily stopped*) -END_VAR - -(*OBSOLETE PV data types*) -VAR CONSTANT - PB_DT_STRUCT : UINT := 0; (*OBSOLETE*) - PB_DT_BOOL : UINT := 1; (*OBSOLETE*) - PB_DT_INT8 : UINT := 2; (*OBSOLETE*) - PB_DT_INT16 : UINT := 3; (*OBSOLETE*) - PB_DT_INT32 : UINT := 4; (*OBSOLETE*) - PB_DT_BYTE : UINT := 5; (*OBSOLETE*) - PB_DT_WORD : UINT := 6; (*OBSOLETE*) - PB_DT_LONG : UINT := 7; (*OBSOLETE*) - PB_DT_FLOAT : UINT := 8; (*OBSOLETE*) - PB_DT_VIS : UINT := 9; (*OBSOLETE*) - PB_DT_OCTET : UINT := 10; (*OBSOLETE*) - PB_DT_DATE : UINT := 11; (*OBSOLETE*) - PB_DT_TIME : UINT := 12; (*OBSOLETE*) - PB_DT_DIFF : UINT := 13; (*OBSOLETE*) - PB_DT_BIT : UINT := 14; (*OBSOLETE*) - PB_DT_ARRAY : UINT := 15; (*OBSOLETE*) -END_VAR - -(*elementary data types*) -VAR CONSTANT - SYSLIB_IEC_TYPE_USER_DEFINED : USINT := 0; (*User-defined data type*) - SYSLIB_IEC_TYPE_USER_DEFINED_2 : USINT := 15; (*User-defined data type (legacy: array of structs)*) - SYSLIB_IEC_TYPE_BOOL : USINT := 1; (*8 Bit containing a boolean value FALSE=0 or TRUE=1*) - SYSLIB_IEC_TYPE_SINT : USINT := 2; (*8 Bit signed integer*) - SYSLIB_IEC_TYPE_INT : USINT := 3; (*16 Bit signed integer*) - SYSLIB_IEC_TYPE_DINT : USINT := 4; (*32 Bit signed integer*) - SYSLIB_IEC_TYPE_USINT : USINT := 5; (*8 Bit unsigned integer*) - SYSLIB_IEC_TYPE_UINT : USINT := 6; (*16 Bit unsigned integer*) - SYSLIB_IEC_TYPE_UDINT : USINT := 7; (*32 Bit unsigned integer*) - SYSLIB_IEC_TYPE_REAL : USINT := 8; (*32 Bit floating point number*) - SYSLIB_IEC_TYPE_STRING : USINT := 9; (*Variable-length single-byte character string*) - SYSLIB_IEC_TYPE_DATE_AND_TIME : USINT := 11; (*32 Bit of Date in Seconds since 01.01.1970 00:00:00*) - SYSLIB_IEC_TYPE_TIME : USINT := 12; (*32 Bit of Time in ms*) - SYSLIB_IEC_TYPE_DATE : USINT := 13; (*32 Bit of Date (only)*) - SYSLIB_IEC_TYPE_LREAL : USINT := 14; (*64 Bit floating point number*) - SYSLIB_IEC_TYPE_TIME_OF_DAY : USINT := 16; (*32 Bit Time of day (only)*) - SYSLIB_IEC_TYPE_BYTE : USINT := 17; (*Bit string of length 8*) - SYSLIB_IEC_TYPE_WORD : USINT := 18; (*Bit string of length 16*) - SYSLIB_IEC_TYPE_DWORD : USINT := 19; (*Bit string of length 32*) - SYSLIB_IEC_TYPE_WSTRING : USINT := 21; (*Variable-length double-byte character string*) -END_VAR - -(*memory types*) -VAR CONSTANT - SYS_RAM : UINT := 1; (*RAM*) - USER_ROM1 : UINT := 2; (*EPROM*) - FIX_RAM : UINT := 5; (*fixed RAM*) -END_VAR - -(*shutdown/reboot types*) -VAR CONSTANT - SYSLIB_WARMSTART : USINT := 16#01; (*WARMSTART (with restart)*) - SYSLIB_COLDSTART : USINT := 16#02; (*COLDSTART (with restart)*) - SYSLIB_WARMSTART_NO_REBOOT : USINT := 16#11; (*WARMSTART (no restart, only shutdown)*) - SYSLIB_COLDSTART_NO_REBOOT : USINT := 16#12; (*COLDSTART (no restart, only shutdown)*) - SYSLIB_DIAGNOSTICS : USINT := 16#20; (*DIAGNOSTICS (with restart)*) - SYSLIB_SERVICE : USINT := 16#40; (*SERVICE (with restart) *) + +(*error codes of the SYS_LIB services*) +VAR CONSTANT + ERR_BUR_MO_NOTFOUND : UINT := 3019; (*module not found*) + ERR_BUR_ILLSTATE : UINT := 3302; (*illegal state of object*) + ERR_BUR_ILLTYP : UINT := 3311; (*SYSreset - invalid input value for mode*) + ERR_BUR_ILLPAR : UINT := 3317; (*illegal parameter*) + ERR_BUR_ILLOBJ : UINT := 3324; (*object does not exist*) + ERR_BUR_NOENTRY : UINT := 3332; (*no entry*) + ERR_BUR_TOOLONG_PVNAME : UINT := 3333; (*too long PV name*) + ERR_BUR_ILLIDENT : UINT := 3336; (*illegal ident*) + ERR_BUR_NOTIME : UINT := 3584; (*time not available*) + ERR_BUR_TMP_ALLOC : UINT := 3601; (*not enough continuous memory*) + ERR_BUR_TMP_FREE : UINT := 3701; (*invalid pointer/length*) + ERR_EXC_NIL_POINTER : UINT := 9133; (*null pointer*) + ERR_BUR_PVNAME : UINT := 14700; (*Invalid name syntax*) + ERR_BUR_WRONG_ARRAY : UINT := 14702; (*Invalid array syntax*) + ERR_BUR_WRONG_ELEM : UINT := 14703; (*Invalid element syntax*) + ERR_BUR_WRONG_COMP : UINT := 14704; (*Invalid component separator*) + ERR_BUR_NOTFOUND : UINT := 14710; (*PV not found*) + ERR_BUR_ZEROLNG : UINT := 14712; (*PV size is zero (plausibility check)*) + ERR_BUR_NODETAIL : UINT := 14713; (*No type description (plausibility check)*) + ERR_BUR_AIXTOOBIG : UINT := 14714; (*Array index too big*) + ERR_BUR_WRONG_SDSR : UINT := 14715; (*Invalid address (plausibility check)*) + ERR_BUR_BUFLNG : UINT := 14716; (*Name buffer too small*) + ERR_BUR_WRONG_INDEX : UINT := 14717; (*Access via index/subindex is not supported*) +END_VAR + +(*state for object PLC task*) +VAR CONSTANT + Z_ST_created : UINT := 1; (*object installed*) + Z_ST_running : UINT := 2; (*object running*) + Z_ST_blocked : UINT := 3; (*object stopped*) + Z_ST_exist : UINT := 16#00; (*object exists*) + Z_ST_installed : UINT := 16#82; (*temporary status during installation*) + Z_ST_PVinstalled : UINT := 16#83; (*temporary status during installation*) + Z_ST_IOinstalled : UINT := 16#84; (*temporary status during installation*) + Z_ST_IOdeinstalled : UINT := 16#85; (*temporary status during installation*) + Z_ST_PVdeinstalled : UINT := 16#86; (*temporary status during installation*) + Z_ST_delete : UINT := 16#87; (*temporary status during installation*) + Z_ST_stdebug : UINT := 16#88; (*temporary status during installation*) + Z_ST_tmp_suspended : UINT := 16#90; (*object temporarily stopped*) +END_VAR + +(*elementary data types*) +VAR CONSTANT + SYSLIB_IEC_TYPE_USER_DEFINED : USINT := 0; (*User-defined data type*) + SYSLIB_IEC_TYPE_USER_DEFINED_2 : USINT := 15; (*User-defined data type (legacy: array of structs)*) + SYSLIB_IEC_TYPE_BOOL : USINT := 1; (*8 Bit containing a boolean value FALSE=0 or TRUE=1*) + SYSLIB_IEC_TYPE_SINT : USINT := 2; (*8 Bit signed integer*) + SYSLIB_IEC_TYPE_INT : USINT := 3; (*16 Bit signed integer*) + SYSLIB_IEC_TYPE_DINT : USINT := 4; (*32 Bit signed integer*) + SYSLIB_IEC_TYPE_USINT : USINT := 5; (*8 Bit unsigned integer*) + SYSLIB_IEC_TYPE_UINT : USINT := 6; (*16 Bit unsigned integer*) + SYSLIB_IEC_TYPE_UDINT : USINT := 7; (*32 Bit unsigned integer*) + SYSLIB_IEC_TYPE_REAL : USINT := 8; (*32 Bit floating point number*) + SYSLIB_IEC_TYPE_STRING : USINT := 9; (*Variable-length single-byte character string*) + SYSLIB_IEC_TYPE_DATE_AND_TIME : USINT := 11; (*32 Bit of Date in Seconds since 01.01.1970 00:00:00*) + SYSLIB_IEC_TYPE_TIME : USINT := 12; (*32 Bit of Time in ms*) + SYSLIB_IEC_TYPE_DATE : USINT := 13; (*32 Bit of Date (only)*) + SYSLIB_IEC_TYPE_LREAL : USINT := 14; (*64 Bit floating point number*) + SYSLIB_IEC_TYPE_TIME_OF_DAY : USINT := 16; (*32 Bit Time of day (only)*) + SYSLIB_IEC_TYPE_BYTE : USINT := 17; (*Bit string of length 8*) + SYSLIB_IEC_TYPE_WORD : USINT := 18; (*Bit string of length 16*) + SYSLIB_IEC_TYPE_DWORD : USINT := 19; (*Bit string of length 32*) + SYSLIB_IEC_TYPE_WSTRING : USINT := 21; (*Variable-length double-byte character string*) +END_VAR + +(*shutdown/reboot types*) +VAR CONSTANT + SYSLIB_WARMSTART : USINT := 16#01; (*WARMSTART (with restart)*) + SYSLIB_COLDSTART : USINT := 16#02; (*COLDSTART (with restart)*) + SYSLIB_WARMSTART_NO_REBOOT : USINT := 16#11; (*WARMSTART (no restart, only shutdown)*) + SYSLIB_COLDSTART_NO_REBOOT : USINT := 16#12; (*COLDSTART (no restart, only shutdown)*) + SYSLIB_DIAGNOSTICS : USINT := 16#20; (*DIAGNOSTICS (with restart)*) + SYSLIB_SERVICE : USINT := 16#40; (*SERVICE (with restart) *) END_VAR \ No newline at end of file diff --git a/example/AsProject/Logical/Package.pkg b/example/AsProject/Logical/Package.pkg index 7a1c7ee..03aa539 100644 --- a/example/AsProject/Logical/Package.pkg +++ b/example/AsProject/Logical/Package.pkg @@ -1,10 +1,9 @@ - - - - - Global.typ - Global.var - Libraries - Programs - + + + + + Global.typ + Global.var + Libraries + \ No newline at end of file diff --git a/example/AsProject/Logical/Programs/Default/ANSIC.prg b/example/AsProject/Logical/Programs/Default/ANSIC.prg deleted file mode 100644 index 30934ba..0000000 --- a/example/AsProject/Logical/Programs/Default/ANSIC.prg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - Main.c - Types.typ - Variables.var - - \ No newline at end of file diff --git a/example/AsProject/Logical/Programs/Default/Main.c b/example/AsProject/Logical/Programs/Default/Main.c deleted file mode 100644 index a413ed8..0000000 --- a/example/AsProject/Logical/Programs/Default/Main.c +++ /dev/null @@ -1,22 +0,0 @@ - -#include - -#ifdef _DEFAULT_INCLUDES - #include -#endif - -void _INIT ProgramInit(void) -{ - -} - -void _CYCLIC ProgramCyclic(void) -{ - varGetValue(&var); -} - -void _EXIT ProgramExit(void) -{ - -} - diff --git a/example/AsProject/Logical/Programs/Default/Types.typ b/example/AsProject/Logical/Programs/Default/Types.typ deleted file mode 100644 index 5dc40af..0000000 --- a/example/AsProject/Logical/Programs/Default/Types.typ +++ /dev/null @@ -1,4 +0,0 @@ - -TYPE - -END_TYPE diff --git a/example/AsProject/Logical/Programs/Default/Variables.var b/example/AsProject/Logical/Programs/Default/Variables.var deleted file mode 100644 index c4cf13a..0000000 --- a/example/AsProject/Logical/Programs/Default/Variables.var +++ /dev/null @@ -1,3 +0,0 @@ -VAR - var : varVariable_typ; -END_VAR diff --git a/example/AsProject/Physical/ARM/Config.pkg b/example/AsProject/Physical/ARM/Config.pkg index 2f67f96..e3645a1 100644 --- a/example/AsProject/Physical/ARM/Config.pkg +++ b/example/AsProject/Physical/ARM/Config.pkg @@ -1,11 +1,11 @@ - - - - - Hardware.hw - Hardware.hwl - X20CP0410 - Hardware.jpg - - + + + + + Hardware.hw + Hardware.hwl + X20CP0484 + Hardware.jpg + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/Hardware.hw b/example/AsProject/Physical/ARM/Hardware.hw index 912869a..a818f9a 100644 --- a/example/AsProject/Physical/ARM/Hardware.hw +++ b/example/AsProject/Physical/ARM/Hardware.hw @@ -1,30 +1,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/Hardware.hwl b/example/AsProject/Physical/ARM/Hardware.hwl index 6c94f55..cb75ea3 100644 --- a/example/AsProject/Physical/ARM/Hardware.hwl +++ b/example/AsProject/Physical/ARM/Hardware.hwl @@ -1,15 +1,15 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/Hardware.jpg b/example/AsProject/Physical/ARM/Hardware.jpg index 12bc267..5f124a3 100644 Binary files a/example/AsProject/Physical/ARM/Hardware.jpg and b/example/AsProject/Physical/ARM/Hardware.jpg differ diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/Role.role b/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/Role.role deleted file mode 100644 index a4ef7ad..0000000 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/Role.role +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/User.user b/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/User.user deleted file mode 100644 index 593efe2..0000000 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/User.user +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/Cpu.sw b/example/AsProject/Physical/ARM/X20CP0410/Cpu.sw deleted file mode 100644 index e94949d..0000000 --- a/example/AsProject/Physical/ARM/X20CP0410/Cpu.sw +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg index 973c732..9363df8 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg index 683b25c..00fafab 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg index 66601a5..08ec7c9 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg similarity index 97% rename from example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg index 08d5735..efef69b 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg @@ -1,8 +1,8 @@ - - - - - Certificates - PrivateKeys - + + + + + Certificates + PrivateKeys + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg index b03ca4c..ddb0308 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/Package.pkg index 3748db4..4d7e624 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/Package.pkg @@ -1,10 +1,10 @@ - - - - - OwnCertificates - ThirdPartyCertificates - CertificateRevocationLists - CertificateSigningRequests - + + + + + OwnCertificates + ThirdPartyCertificates + CertificateRevocationLists + CertificateSigningRequests + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg index 7ea4734..b876406 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg @@ -1,7 +1,7 @@ - - - - - SoftwareCertificates - + + + + + SoftwareCertificates + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg index 0c531bc..bdd06b4 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/Firewall/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/Firewall/Package.pkg similarity index 97% rename from example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/Firewall/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/Firewall/Package.pkg index 591a078..4cb948d 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/Firewall/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/Firewall/Package.pkg @@ -1,7 +1,7 @@ - - - - - Rules.firewallRules - + + + + + Rules.firewallRules + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/Firewall/Rules.firewallRules b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/Firewall/Rules.firewallRules similarity index 96% rename from example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/Firewall/Rules.firewallRules rename to example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/Firewall/Rules.firewallRules index 8748b19..343fee7 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/Firewall/Rules.firewallRules +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/Firewall/Rules.firewallRules @@ -1,6 +1,6 @@ - - - - - - + + + + + + diff --git a/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/ManagedCertificateStores/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/ManagedCertificateStores/Package.pkg new file mode 100644 index 0000000..3f3fdb3 --- /dev/null +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/ManagedCertificateStores/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/Package.pkg similarity index 86% rename from example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/Package.pkg index d88458a..afc6684 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/Package.pkg @@ -1,10 +1,11 @@ - - - - - UserRoleSystem - CertificateStore - TransportLayerSecurity - Firewall - + + + + + UserRoleSystem + CertificateStore + ManagedCertificateStores + TransportLayerSecurity + Firewall + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/TransportLayerSecurity/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/TransportLayerSecurity/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/TransportLayerSecurity/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/TransportLayerSecurity/Package.pkg index 58a4ff8..449924b 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/TransportLayerSecurity/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/TransportLayerSecurity/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/UserRoleSystem/BRRole.brrole b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/UserRoleSystem/BRRole.brrole new file mode 100644 index 0000000..7b4e1f3 --- /dev/null +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/UserRoleSystem/BRRole.brrole @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/UserRoleSystem/Package.pkg similarity index 58% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/UserRoleSystem/Package.pkg index 995e73b..1571099 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/AccessAndSecurity/UserRoleSystem/Package.pkg @@ -1,8 +1,7 @@ - - - - - Role.role - User.user - + + + + + BRRole.brrole + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0484/Connectivity/OpcUaCs/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/Connectivity/OpcUaCs/Package.pkg new file mode 100644 index 0000000..1d9efe8 --- /dev/null +++ b/example/AsProject/Physical/ARM/X20CP0484/Connectivity/OpcUaCs/Package.pkg @@ -0,0 +1,8 @@ + + + + + UaCsConfig.uacfg + UaDvConfig.uadcfg + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0484/Connectivity/OpcUaCs/UaCsConfig.uacfg b/example/AsProject/Physical/ARM/X20CP0484/Connectivity/OpcUaCs/UaCsConfig.uacfg new file mode 100644 index 0000000..a70a9f3 --- /dev/null +++ b/example/AsProject/Physical/ARM/X20CP0484/Connectivity/OpcUaCs/UaCsConfig.uacfg @@ -0,0 +1,5 @@ + + + + + diff --git a/example/AsProject/Physical/ARM/X20CP0484/Connectivity/OpcUaCs/UaDvConfig.uadcfg b/example/AsProject/Physical/ARM/X20CP0484/Connectivity/OpcUaCs/UaDvConfig.uadcfg new file mode 100644 index 0000000..6f48e39 --- /dev/null +++ b/example/AsProject/Physical/ARM/X20CP0484/Connectivity/OpcUaCs/UaDvConfig.uadcfg @@ -0,0 +1,5 @@ + + + + + diff --git a/example/AsProject/Physical/ARM/X20CP0484/Connectivity/OpcUaFx/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/Connectivity/OpcUaFx/Package.pkg new file mode 100644 index 0000000..7bd1f6a --- /dev/null +++ b/example/AsProject/Physical/ARM/X20CP0484/Connectivity/OpcUaFx/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/Connectivity/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/Connectivity/Package.pkg similarity index 57% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/Connectivity/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/Connectivity/Package.pkg index 0fba9be..91f96f2 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/Connectivity/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/Connectivity/Package.pkg @@ -1,7 +1,8 @@ - - - - - OpcUA - + + + + + OpcUaCs + OpcUaFx + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/Cpu.per b/example/AsProject/Physical/ARM/X20CP0484/Cpu.per similarity index 56% rename from example/AsProject/Physical/ARM/X20CP0410/Cpu.per rename to example/AsProject/Physical/ARM/X20CP0484/Cpu.per index 14f5eae..b759501 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/Cpu.per +++ b/example/AsProject/Physical/ARM/X20CP0484/Cpu.per @@ -1,4 +1,4 @@ - -VAR_CONFIG - -END_VAR + +VAR_CONFIG + +END_VAR \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/Cpu.pkg b/example/AsProject/Physical/ARM/X20CP0484/Cpu.pkg similarity index 82% rename from example/AsProject/Physical/ARM/X20CP0410/Cpu.pkg rename to example/AsProject/Physical/ARM/X20CP0484/Cpu.pkg index 4c20ee7..06eabee 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/Cpu.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/Cpu.pkg @@ -1,28 +1,28 @@ - - - - - Cpu.sw - Cpu.per - IoMap.iom - PvMap.vvm - Connectivity - TextSystem - UnitSystem - AccessAndSecurity - mappControl - mappMotion - mappServices - mappSafety - mappView - mappVision - mappCockpit - - - - - - - - + + + + + Cpu.sw + Cpu.per + IoMap.iom + PvMap.vvm + Connectivity + TextSystem + UnitSystem + AccessAndSecurity + mappControl + mappMotion + mapp6D + mappServices + mappSafety + mappView + mappVision + mappCockpit + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0484/Cpu.sw b/example/AsProject/Physical/ARM/X20CP0484/Cpu.sw new file mode 100644 index 0000000..e5b3ea2 --- /dev/null +++ b/example/AsProject/Physical/ARM/X20CP0484/Cpu.sw @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/IoMap.iom b/example/AsProject/Physical/ARM/X20CP0484/IoMap.iom similarity index 56% rename from example/AsProject/Physical/ARM/X20CP0410/IoMap.iom rename to example/AsProject/Physical/ARM/X20CP0484/IoMap.iom index 14f5eae..b759501 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/IoMap.iom +++ b/example/AsProject/Physical/ARM/X20CP0484/IoMap.iom @@ -1,4 +1,4 @@ - -VAR_CONFIG - -END_VAR + +VAR_CONFIG + +END_VAR \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/PvMap.vvm b/example/AsProject/Physical/ARM/X20CP0484/PvMap.vvm similarity index 56% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/PvMap.vvm rename to example/AsProject/Physical/ARM/X20CP0484/PvMap.vvm index 14f5eae..b759501 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/PvMap.vvm +++ b/example/AsProject/Physical/ARM/X20CP0484/PvMap.vvm @@ -1,4 +1,4 @@ - -VAR_CONFIG - -END_VAR + +VAR_CONFIG + +END_VAR \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/TextSystem/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/TextSystem/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/TextSystem/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/TextSystem/Package.pkg index 24b827e..dd7c6b1 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/TextSystem/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/TextSystem/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/UnitSystem/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/UnitSystem/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/UnitSystem/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/UnitSystem/Package.pkg index f45ab49..45b4152 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/UnitSystem/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/UnitSystem/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/Connectivity/OpcUA/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/mapp6D/Package.pkg similarity index 51% rename from example/AsProject/Physical/ARM/X20CP0410/Connectivity/OpcUA/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/mapp6D/Package.pkg index 2f38cef..20dfef0 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/Connectivity/OpcUA/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/mapp6D/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/mappCockpit/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/mappCockpit/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/mappCockpit/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/mappCockpit/Package.pkg index f031b15..0f11c21 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/mappCockpit/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/mappCockpit/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/mappControl/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/mappControl/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/mappControl/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/mappControl/Package.pkg index e5d9739..e3fbee1 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/mappControl/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/mappControl/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/mappMotion/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/mappMotion/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/mappMotion/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/mappMotion/Package.pkg index 0d34e88..831a082 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/mappMotion/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/mappMotion/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/mappSafety/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/mappSafety/Package.pkg similarity index 97% rename from example/AsProject/Physical/ARM/X20CP0410/mappSafety/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/mappSafety/Package.pkg index 5ba4780..95bf8e5 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/mappSafety/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/mappSafety/Package.pkg @@ -1,8 +1,8 @@ - - - - - SafeApplication - SafeCommissioning - + + + + + SafeApplication + SafeCommissioning + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/mappSafety/SafeApplication/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/mappSafety/SafeApplication/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/mappSafety/SafeApplication/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/mappSafety/SafeApplication/Package.pkg index 9efcef1..ca88e15 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/mappSafety/SafeApplication/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/mappSafety/SafeApplication/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/mappSafety/SafeCommissioning/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/mappSafety/SafeCommissioning/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/mappSafety/SafeCommissioning/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/mappSafety/SafeCommissioning/Package.pkg index d23129f..9f18b6e 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/mappSafety/SafeCommissioning/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/mappSafety/SafeCommissioning/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/mappServices/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/mappServices/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/mappServices/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/mappServices/Package.pkg index bdbbebd..38a3243 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/mappServices/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/mappServices/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/mappView/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/mappView/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/mappView/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/mappView/Package.pkg index 2900995..a04af4d 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/mappView/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/mappView/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/mappVision/Package.pkg b/example/AsProject/Physical/ARM/X20CP0484/mappVision/Package.pkg similarity index 98% rename from example/AsProject/Physical/ARM/X20CP0410/mappVision/Package.pkg rename to example/AsProject/Physical/ARM/X20CP0484/mappVision/Package.pkg index 7c77cf1..ca258c4 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/mappVision/Package.pkg +++ b/example/AsProject/Physical/ARM/X20CP0484/mappVision/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg index 10e1bab..3b33dd5 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg index 1c929de..1128617 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg index fbb044b..668b34e 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg similarity index 97% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg index af9e8e4..9651409 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg @@ -1,8 +1,8 @@ - - - - - Certificates - PrivateKeys - + + + + + Certificates + PrivateKeys + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg index 6a55aa2..b9901d3 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/Package.pkg index a2b3a11..e7ef5a9 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/Package.pkg @@ -1,10 +1,10 @@ - - - - - OwnCertificates - ThirdPartyCertificates - CertificateRevocationLists - CertificateSigningRequests - + + + + + OwnCertificates + ThirdPartyCertificates + CertificateRevocationLists + CertificateSigningRequests + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg index 11603db..3d4bfa7 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg @@ -1,7 +1,7 @@ - - - - - SoftwareCertificates - + + + + + SoftwareCertificates + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg index c53e656..5ff0597 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Firewall/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/Firewall/Package.pkg similarity index 97% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Firewall/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/Firewall/Package.pkg index 0d836d3..ffb7249 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Firewall/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/Firewall/Package.pkg @@ -1,7 +1,7 @@ - - - - - Rules.firewallRules - + + + + + Rules.firewallRules + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Firewall/Rules.firewallRules b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/Firewall/Rules.firewallRules similarity index 96% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Firewall/Rules.firewallRules rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/Firewall/Rules.firewallRules index add65ef..7a6a9f8 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Firewall/Rules.firewallRules +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/Firewall/Rules.firewallRules @@ -1,5 +1,5 @@ - - - - - + + + + + diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/Package.pkg index 2648337..207d3a1 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/Package.pkg @@ -1,10 +1,10 @@ - - - - - UserRoleSystem - CertificateStore - TransportLayerSecurity - Firewall - + + + + + UserRoleSystem + CertificateStore + TransportLayerSecurity + Firewall + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/TransportLayerSecurity/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/TransportLayerSecurity/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/TransportLayerSecurity/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/TransportLayerSecurity/Package.pkg index f820e78..0894d1f 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/TransportLayerSecurity/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/TransportLayerSecurity/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/UserRoleSystem/BRRole.brrole b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/UserRoleSystem/BRRole.brrole new file mode 100644 index 0000000..7b4e1f3 --- /dev/null +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/UserRoleSystem/BRRole.brrole @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/UserRoleSystem/Package.pkg similarity index 84% rename from example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/UserRoleSystem/Package.pkg index 92d5082..4b1f11c 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/UserRoleSystem/Package.pkg @@ -1,8 +1,9 @@ - - - - - Role.role - User.user - + + + + + Role.role + User.user + BRRole.brrole + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/Role.role b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/UserRoleSystem/Role.role similarity index 96% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/Role.role rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/UserRoleSystem/Role.role index 39281ec..214a421 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/Role.role +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/UserRoleSystem/Role.role @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/User.user b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/UserRoleSystem/User.user similarity index 97% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/User.user rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/UserRoleSystem/User.user index a6b973c..5ac27fd 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/User.user +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/AccessAndSecurity/UserRoleSystem/User.user @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Connectivity/OpcUaCs/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Connectivity/OpcUaCs/Package.pkg new file mode 100644 index 0000000..1d9efe8 --- /dev/null +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Connectivity/OpcUaCs/Package.pkg @@ -0,0 +1,8 @@ + + + + + UaCsConfig.uacfg + UaDvConfig.uadcfg + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Connectivity/OpcUaCs/UaCsConfig.uacfg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Connectivity/OpcUaCs/UaCsConfig.uacfg new file mode 100644 index 0000000..a70a9f3 --- /dev/null +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Connectivity/OpcUaCs/UaCsConfig.uacfg @@ -0,0 +1,5 @@ + + + + + diff --git a/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Connectivity/OpcUaCs/UaDvConfig.uadcfg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Connectivity/OpcUaCs/UaDvConfig.uadcfg new file mode 100644 index 0000000..6f48e39 --- /dev/null +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Connectivity/OpcUaCs/UaDvConfig.uadcfg @@ -0,0 +1,5 @@ + + + + + diff --git a/example/AsProject/Physical/ARM/X20CP0410/Connectivity/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Connectivity/Package.pkg similarity index 81% rename from example/AsProject/Physical/ARM/X20CP0410/Connectivity/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/Connectivity/Package.pkg index fec6e02..ffb4e2c 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/Connectivity/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Connectivity/Package.pkg @@ -1,7 +1,7 @@ - - - - - OpcUA - + + + + + OpcUaCs + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/Cpu.per b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Cpu.per similarity index 84% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/Cpu.per rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/Cpu.per index 14f5eae..11a7d02 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/Cpu.per +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Cpu.per @@ -1,4 +1,4 @@ - -VAR_CONFIG - -END_VAR + +VAR_CONFIG + +END_VAR diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/Cpu.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Cpu.pkg similarity index 80% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/Cpu.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/Cpu.pkg index 95084a3..f1c7cc1 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/Cpu.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Cpu.pkg @@ -1,27 +1,26 @@ - - - - - Cpu.sw - Cpu.per - IoMap.iom - PvMap.vvm - Connectivity - TextSystem - UnitSystem - AccessAndSecurity - mappControl - mappMotion - mappServices - mappView - mappVision - mappCockpit - - - - - - - - + + + + + Cpu.sw + Cpu.per + IoMap.iom + PvMap.vvm + Connectivity + TextSystem + UnitSystem + AccessAndSecurity + mappControl + mappMotion + mappServices + mappView + mappVision + mappCockpit + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Cpu.sw b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Cpu.sw new file mode 100644 index 0000000..22e210f --- /dev/null +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/Cpu.sw @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/IoMap.iom b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/IoMap.iom similarity index 84% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/IoMap.iom rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/IoMap.iom index 14f5eae..11a7d02 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/IoMap.iom +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/IoMap.iom @@ -1,4 +1,4 @@ - -VAR_CONFIG - -END_VAR + +VAR_CONFIG + +END_VAR diff --git a/example/AsProject/Physical/ARM/X20CP0410/PvMap.vvm b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/PvMap.vvm similarity index 84% rename from example/AsProject/Physical/ARM/X20CP0410/PvMap.vvm rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/PvMap.vvm index 14f5eae..11a7d02 100644 --- a/example/AsProject/Physical/ARM/X20CP0410/PvMap.vvm +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/PvMap.vvm @@ -1,4 +1,4 @@ - -VAR_CONFIG - -END_VAR + +VAR_CONFIG + +END_VAR diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/TextSystem/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/TextSystem/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/TextSystem/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/TextSystem/Package.pkg index 321c2b6..fe9563d 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/TextSystem/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/TextSystem/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/UnitSystem/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/UnitSystem/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/UnitSystem/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/UnitSystem/Package.pkg index dbd64ad..1ef84cd 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/UnitSystem/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/UnitSystem/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/mappCockpit/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappCockpit/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/mappCockpit/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappCockpit/Package.pkg index 35a14eb..3af5ea9 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/mappCockpit/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappCockpit/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/mappControl/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappControl/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/mappControl/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappControl/Package.pkg index 9dbadad..5baea6a 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/mappControl/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappControl/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/mappMotion/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappMotion/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/mappMotion/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappMotion/Package.pkg index ecc31c8..37dbabc 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/mappMotion/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappMotion/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/mappServices/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappServices/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/mappServices/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappServices/Package.pkg index 3d375fc..969fb69 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/mappServices/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappServices/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/mappView/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappView/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/mappView/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappView/Package.pkg index 480d4d9..6963776 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/mappView/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappView/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/mappVision/Package.pkg b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappVision/Package.pkg similarity index 98% rename from example/AsProject/Physical/Intel/5PC900_TS17_04/mappVision/Package.pkg rename to example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappVision/Package.pkg index 62837d9..83c9fc4 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/mappVision/Package.pkg +++ b/example/AsProject/Physical/Intel/5APC4100_TGL1_000/mappVision/Package.pkg @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/Connectivity/OpcUA/Package.pkg b/example/AsProject/Physical/Intel/5PC900_TS17_04/Connectivity/OpcUA/Package.pkg deleted file mode 100644 index 86b9f38..0000000 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/Connectivity/OpcUA/Package.pkg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/Cpu.sw b/example/AsProject/Physical/Intel/5PC900_TS17_04/Cpu.sw deleted file mode 100644 index 0c3d838..0000000 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/Cpu.sw +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/Config.pkg b/example/AsProject/Physical/Intel/Config.pkg index 97f3cc1..e467a81 100644 --- a/example/AsProject/Physical/Intel/Config.pkg +++ b/example/AsProject/Physical/Intel/Config.pkg @@ -1,11 +1,11 @@ - - - - - Hardware.hw - Hardware.hwl - 5PC900_TS17_04 - Hardware.jpg - - + + + + + Hardware.hw + Hardware.hwl + 5APC4100_TGL1_000 + Hardware.jpg + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/Hardware.hw b/example/AsProject/Physical/Intel/Hardware.hw index 8d15153..fd2eaa4 100644 --- a/example/AsProject/Physical/Intel/Hardware.hw +++ b/example/AsProject/Physical/Intel/Hardware.hw @@ -1,68 +1,79 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/Hardware.hwl b/example/AsProject/Physical/Intel/Hardware.hwl index fa5970d..32bb0c4 100644 --- a/example/AsProject/Physical/Intel/Hardware.hwl +++ b/example/AsProject/Physical/Intel/Hardware.hwl @@ -1,13 +1,13 @@ - - - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Physical.pkg b/example/AsProject/Physical/Physical.pkg index 351df13..213c1f5 100644 --- a/example/AsProject/Physical/Physical.pkg +++ b/example/AsProject/Physical/Physical.pkg @@ -1,8 +1,8 @@ - - - - - Intel - ARM - + + + + + Intel + ARM + \ No newline at end of file diff --git a/example/AsProject/README.md b/example/AsProject/README.md index a26d5f0..51c6479 100644 --- a/example/AsProject/README.md +++ b/example/AsProject/README.md @@ -1,3 +1,15 @@ -# ASStarter (Build me up) - -ASStarter is a minimal Automation studio project used by the Buttercup framework to automatically create starter projects. \ No newline at end of file +# Info +Project is provided by Loupe +https://loupe.team +info@loupe.team +1-800-240-7042 + +# Description +StarterAsProject is a minimal starter Automation Studio project used to bootstrap new application from a known starting point. It is used by LPM when creating new projects. + +# Installation +To install the project using the Loupe Package Manager (LPM), in an empty directory run `lpm init`, and when prompted confirm with yes. Alternately, you can run `lpm install starterasproject`. For more information about LPM, see https://loupeteam.github.io/LoupeDocs/tools/lpm.html + +## Licensing + +This project is licensed under the [MIT License](LICENSE). \ No newline at end of file diff --git a/example/AsProject/package-lock.json b/example/AsProject/package-lock.json new file mode 100644 index 0000000..d2d3020 --- /dev/null +++ b/example/AsProject/package-lock.json @@ -0,0 +1,29 @@ +{ + "name": "asproject", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "asproject", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@loupeteam/librarybuilderproject": "^1.0.0", + "@loupeteam/stringext": "^1.0.0" + } + }, + "node_modules/@loupeteam/librarybuilderproject": { + "version": "1.0.0", + "resolved": "https://npm.pkg.github.com/download/@loupeteam/librarybuilderproject/1.0.0/490a3be5cd5d3181321dc294b1bb63dfc34cc2fe", + "integrity": "sha512-32SACveSvlZkHXv/CHkw7JhEnUNV24ZmWnrYui6tJb0DS7xc9/fFq5j47ibBLhIZTaXqCqIKP7EzBSj77HG+HQ==", + "license": "MIT" + }, + "node_modules/@loupeteam/stringext": { + "version": "1.0.0", + "resolved": "https://npm.pkg.github.com/download/@loupeteam/stringext/1.0.0/9da05bfa435b70b88d57f6a3abe7e1b03d1ac9f4", + "integrity": "sha512-CkwWziPxGwLisndcMunmR7DLdX1tvrt1hxHVn9ZYqJ8L6defPZr/ZWutpT+qhQJgoQnt5n+N48M1gbv6WclTHg==", + "license": "MIT" + } + } +} diff --git a/example/AsProject/package.json b/example/AsProject/package.json index 9e1dd7c..782aa45 100644 --- a/example/AsProject/package.json +++ b/example/AsProject/package.json @@ -1,22 +1,16 @@ { - "name": "@loupeteam/librarybuilderproject", - "version": "0.2.0", - "description": "LibraryBuilderProject is a minimal Automation studio project used to build libraries for Intel and ARM configurations", - "repository": { - "type": "git", - "url": "git+https://github.com/loupeteam/StarterAsProject.git" - }, - "author": "Loupe", - "license": "MIT", - "lpmConfig": { - "deploymentConfigs": [ - "Intel", - "ARM" - ], - "gitClient": "GitExtensions" - }, - "dependencies": { - "@loupeteam/librarybuilderproject": "^0.3.0", - "@loupeteam/vartools": "^0.11.4" - } + "name": "asproject", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "@loupeteam/librarybuilderproject": "^1.0.0", + "@loupeteam/stringext": "^1.0.0" + } } diff --git a/src/Ar/VarTools/ANSIC.lby b/src/Ar/VarTools/ANSIC.lby index dd243f7..889cdf5 100644 --- a/src/Ar/VarTools/ANSIC.lby +++ b/src/Ar/VarTools/ANSIC.lby @@ -1,29 +1,29 @@ - - - - - VarTools.typ - VarTools.var - VarTools.fun - varGetInfo.c - varGetValue.c - varGetValueReal.c - varGetValueLreal.c - varSetValue.c - varPopulateMemberNames.c - varGetVariableList.c - varVariableWatch.c - variableBrowser.c - varRefresh.c - varToolsInternal.h - varGetAllVars.c - varGetAllVarsInternal.h - varGetAllVarsInternal.c - - - - - - - + + + + + VarTools.typ + VarTools.var + VarTools.fun + varGetInfo.c + varGetValue.c + varGetValueReal.c + varGetValueLreal.c + varSetValue.c + varPopulateMemberNames.c + varGetVariableList.c + varVariableWatch.c + variableBrowser.c + varRefresh.c + varToolsInternal.h + varGetAllVars.c + varGetAllVarsInternal.h + varGetAllVarsInternal.c + + + + + + + \ No newline at end of file diff --git a/src/Ar/VarTools/CHANGELOG.md b/src/Ar/VarTools/CHANGELOG.md index 9344fdf..7ba3cf2 100644 --- a/src/Ar/VarTools/CHANGELOG.md +++ b/src/Ar/VarTools/CHANGELOG.md @@ -1,3 +1,4 @@ +1.0.0 - Update to AS6 0.11.4 - Update StringExt dependency 0.11.3 - Increase maximum size of variable list from 50 to 100 0.11.2 - populate variable values will populate ._ with just the parent name