diff --git a/.github/workflows/build-export-publish.yml b/.github/workflows/build-export-publish.yml index d4eae47..631dfd0 100644 --- a/.github/workflows/build-export-publish.yml +++ b/.github/workflows/build-export-publish.yml @@ -86,23 +86,36 @@ jobs: output: ${{ env.EXPORT_DIR }} as-install: ${{ steps.find-as.outputs.install-path }} - # Inject the release version into package.json and publish + # The export action writes to {output}/{library}/V{version}/. Capture + # that path so downstream steps can write package.json into it and run + # `npm publish` from there. + - name: Locate exported version directory + id: export-dir + shell: pwsh + run: | + $path = Get-ChildItem "$env:EXPORT_DIR/$env:LIBRARY" -Directory | + Select-Object -First 1 -ExpandProperty FullName + if (-not $path) { + Write-Error "No exported version directory found under $env:EXPORT_DIR/$env:LIBRARY" + exit 1 + } + Write-Host "Exported version directory: $path" + "path=$path" | Out-File -Append -Encoding utf8 -FilePath $env:GITHUB_OUTPUT + + - name: Generate package.json + uses: loupeteam/br-actions/prepare-lpm-package@v1 + with: + library-dir: ${{ env.LIBRARY_DIR }} + output-dir: ${{ steps.export-dir.outputs.path }} + version: ${{ steps.version.outputs.version }} + - name: Publish to GitHub Packages shell: pwsh env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - # Locate the exported version directory (e.g. export/StringExt/V0.16.0/) - $versionDir = Get-ChildItem "$env:EXPORT_DIR/$env:LIBRARY" -Directory | - Select-Object -First 1 -ExpandProperty FullName - - # Read the package.json template from source, update version, write to export - $pkg = Get-Content "$env:LIBRARY_DIR/package.json" | ConvertFrom-Json - $pkg.version = "${{ steps.version.outputs.version }}" - $pkg | ConvertTo-Json -Depth 10 | Set-Content (Join-Path $versionDir "package.json") - Write-Host "Publishing @loupeteam/$($env:LIBRARY.ToLower())@${{ steps.version.outputs.version }}" - Push-Location $versionDir + Push-Location "${{ steps.export-dir.outputs.path }}" npm publish Pop-Location diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bdaf528..e5eaa64 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,6 +11,23 @@ on: options: - Build - Rebuild + # Build on PRs targeting any branch. + # + # SECURITY NOTE: this uses the standard `pull_request` trigger, which checks + # out the PR head but runs with read-only token and no access to secrets when + # the PR comes from a fork. Combined with the repo setting + # Settings → Actions → General → + # "Require approval for all outside collaborators" + # (or "Require approval for first-time contributors"), this means workflows + # from external contributors will not run on a self-hosted runner until a + # maintainer reviews the PR and clicks "Approve and run". + # Do NOT switch this to `pull_request_target` — that runs in the context of + # the base branch with full permissions and would expose the runner. + pull_request: + paths-ignore: + - '**/*.md' + - 'docs/**' + - 'LICENSE' jobs: build: diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index a3bb079..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,11 +0,0 @@ - -library "jenkinsLibrary@develop" - -buildPublishPipeline( - slackChannel: "sandbox-github", - asProjectRepo: "stringext", - asProjectVersion: "main", - asProjectPath: "example/AsProject", - skipLpmInstall: true, - packagesToPublish: ['src/Ar/stringext'] -) diff --git a/example/As6Project/AsProject.apj b/example/As6Project/AsProject.apj new file mode 100644 index 0000000..4658f96 --- /dev/null +++ b/example/As6Project/AsProject.apj @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Logical/Global.typ b/example/As6Project/Logical/Global.typ new file mode 100644 index 0000000..5dc40af --- /dev/null +++ b/example/As6Project/Logical/Global.typ @@ -0,0 +1,4 @@ + +TYPE + +END_TYPE diff --git a/example/As6Project/Logical/Global.var b/example/As6Project/Logical/Global.var new file mode 100644 index 0000000..3e8a206 --- /dev/null +++ b/example/As6Project/Logical/Global.var @@ -0,0 +1,8 @@ + +VAR + +END_VAR + +VAR CONSTANT + +END_VAR diff --git a/example/As6Project/Logical/Libraries/Loupe/Package.pkg b/example/As6Project/Logical/Libraries/Loupe/Package.pkg new file mode 100644 index 0000000..21115c3 --- /dev/null +++ b/example/As6Project/Logical/Libraries/Loupe/Package.pkg @@ -0,0 +1,7 @@ + + + + + ..\..\src\Ar\stringext\ANSIC.lby + + \ No newline at end of file diff --git a/example/As6Project/Logical/Libraries/Package.pkg b/example/As6Project/Logical/Libraries/Package.pkg new file mode 100644 index 0000000..1668338 --- /dev/null +++ b/example/As6Project/Logical/Libraries/Package.pkg @@ -0,0 +1,8 @@ + + + + + _AS + Loupe + + \ No newline at end of file diff --git a/example/As6Project/Logical/Libraries/_AS/AsBrStr/AsBrStr.fun b/example/As6Project/Logical/Libraries/_AS/AsBrStr/AsBrStr.fun new file mode 100644 index 0000000..87ba979 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrStr/AsBrStr.fun @@ -0,0 +1,80 @@ + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsftoa : UINT (*converts a REAL value into a character string*) + VAR_INPUT + value :REAL; (*REAL (FLOAT) value to be converted into a character string*) + pString :UDINT; (*pointer to the destination character string*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatof : REAL (*converts a character string into a REAL (FLOAT) value*) + VAR_INPUT + pString :UDINT; (*pointer to the character string to be converted*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatod : LREAL (*converts a character string into a LREAL (DOUBLE) value*) + VAR_INPUT + pString :UDINT; (*pointer to the character string to be converted*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsitoa : UINT (*converts a DINT value into a character string*) + VAR_INPUT + value :DINT; (*numerical value to be converted into a string*) + pString :UDINT; (*pointer to the destination character string*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsatoi : DINT (*converts a character string into a DINT value*) + VAR_INPUT + pString :UDINT; (*pointer to the character string to be converted*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemset : UDINT (*fills the memory area with specific values*) + VAR_INPUT + pDest :UDINT; (*pointer to the destination memory*) + value :USINT; (*initialization value*) + length :UDINT; (*number of bytes to be initialized*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemcpy : UDINT (*copies the memory area*) + VAR_INPUT + pDest :UDINT; (*pointer to the destination memory*) + pSrc :UDINT; (*pointer to the data to be copied*) + length :UDINT; (*size of bytes to be copied*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemmove : UDINT (*copies the memory area (even if the memory areas overlap)*) + VAR_INPUT + pDest :UDINT; (*pointer to the destination memory*) + pSrc :UDINT; (*pointer to the data to be copied*) + length :UDINT; (*size of bytes to be copied*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsmemcmp : DINT (*compares memory areas*) + VAR_INPUT + pMem1 :UDINT; (*pointer to the memory area 1*) + pMem2 :UDINT; (*pointer to the memory area 2*) + length :UDINT; (*size of bytes to be checked*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcat : UDINT (*attaches character strings to one another*) + VAR_INPUT + pDest :UDINT; (*pointer to the destination character string*) + pSrc :UDINT; (*pointer to the source character string*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrlen : UDINT (*provides the length of a character string*) + VAR_INPUT + pString :UDINT; (*pointer to the source character string*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcpy : UDINT (*copies one character string into another*) + VAR_INPUT + pDest :UDINT; (*pointer to the destination character string*) + pSrc :UDINT; (*pointer to the source character string*) + END_VAR +END_FUNCTION +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION brsstrcmp : DINT (*compares two character strings*) + VAR_INPUT + pString1 :UDINT; (*pointer to the first character string*) + pString2 :UDINT; (*pointer to the second character string*) + END_VAR +END_FUNCTION + diff --git a/example/As6Project/Logical/Libraries/_AS/AsBrStr/AsBrStr.typ b/example/As6Project/Logical/Libraries/_AS/AsBrStr/AsBrStr.typ new file mode 100644 index 0000000..1657f43 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrStr/AsBrStr.typ @@ -0,0 +1,4 @@ + +TYPE + +END_TYPE diff --git a/example/As6Project/Logical/Libraries/_AS/AsBrStr/AsBrStr.var b/example/As6Project/Logical/Libraries/_AS/AsBrStr/AsBrStr.var new file mode 100644 index 0000000..30b816c --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrStr/AsBrStr.var @@ -0,0 +1,4 @@ + +VAR CONSTANT + +END_VAR diff --git a/example/As6Project/Logical/Libraries/_AS/AsBrStr/SG3/AsBrStr.h b/example/As6Project/Logical/Libraries/_AS/AsBrStr/SG3/AsBrStr.h new file mode 100644 index 0000000..3f4c4bc --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrStr/SG3/AsBrStr.h @@ -0,0 +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_ */ + diff --git a/example/As6Project/Logical/Libraries/_AS/AsBrStr/SG4/AsBrStr.h b/example/As6Project/Logical/Libraries/_AS/AsBrStr/SG4/AsBrStr.h new file mode 100644 index 0000000..daa7324 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrStr/SG4/AsBrStr.h @@ -0,0 +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_ */ + diff --git a/example/As6Project/Logical/Libraries/_AS/AsBrStr/SGC/AsBrStr.h b/example/As6Project/Logical/Libraries/_AS/AsBrStr/SGC/AsBrStr.h new file mode 100644 index 0000000..3f4c4bc --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrStr/SGC/AsBrStr.h @@ -0,0 +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_ */ + diff --git a/example/As6Project/Logical/Libraries/_AS/AsBrStr/binary.lby b/example/As6Project/Logical/Libraries/_AS/AsBrStr/binary.lby new file mode 100644 index 0000000..2090ed1 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrStr/binary.lby @@ -0,0 +1,9 @@ + + + + + AsBrStr.fun + AsBrStr.typ + AsBrStr.var + + diff --git a/example/As6Project/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.fun b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.fun new file mode 100644 index 0000000..8de4cc5 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.fun @@ -0,0 +1,71 @@ + +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsconv : UDINT (*converts one string to a different format*) + VAR_INPUT + pDestination :REFERENCE TO USINT; (*string to be appended to, given as a pointer*) + pSource :REFERENCE TO USINT; (*string to be appended, given as a pointer*) + level :USINT; (*brwU8toUC (= 0) if converting from U8 to UC; brwUCtoU8 (= 1) if converting from UC to U8*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsncpy : UDINT (*copies a maximum of n characters from the pSource WC string to the pDestination address*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*pointer to the target memory for the string*) + pSource :REFERENCE TO UINT; (*string to be copied, given as a pointer*) + n :UDINT; (*max. number of characters to be copied*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsncat : UDINT (*appends a maximum of n characters from the pSource string to the pDestination string*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*string to be appended to, given as a pointer*) + pSource :REFERENCE TO UINT; (*string to be appended, given as a pointer*) + n :UDINT; (*maximum number of characters to be added from pSource to pDestination*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcscat : UDINT (*connects two WC strings to each other (concatenation)*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*string to be appended to, given as a pointer*) + pSource :REFERENCE TO UINT; (*string to be appended, given as a pointer*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcscmp : DINT (*compares two 16-bit character strings*) + VAR_INPUT + pUcstr1 :REFERENCE TO UINT; (*first string, given as a pointer*) + pUcstr2 :REFERENCE TO UINT; (*second string, given as a pointer*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcslen : UDINT (*determines the length of a WC string*) + VAR_INPUT + pwcString :REFERENCE TO UINT; (*string whose length should be determined, given as a pointer*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsset : UDINT (*appends the pSource string to the pDestination string*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*string being written, given as a pointer*) + len :UDINT; (*number of characters to be written*) + symbol :UINT; (*character used to overwrite*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsncmp : DINT (*compares two 16-bit strings*) + VAR_INPUT + pwcString1 :REFERENCE TO UINT; (*first string given as a pointer*) + pwcString2 :REFERENCE TO UINT; (*second string given as a pointer*) + n :UDINT; (*max. number of characters from pUcstr1 to be compared with pUcstr2*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcscpy : UDINT (*copies a WC string*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*pointer to the target memory for the string*) + pSource :REFERENCE TO UINT; (*string to be copied, given as a pointer*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcsrchr : UDINT (*searches for the last occurrence of a certain character in a WC string*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*character string being searched, given as a pointer*) + symbol :UINT; (*character being looked for*) + END_VAR +END_FUNCTION +{REDUND_OK} {REDUND_UNREPLICABLE} FUNCTION brwcschr : UDINT (*searches for the first occurrence of a certain character*) + VAR_INPUT + pDestination :REFERENCE TO UINT; (*string given as a pointer*) + symbol :UINT; (*character being looked for*) + END_VAR +END_FUNCTION diff --git a/example/As6Project/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.typ b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.typ new file mode 100644 index 0000000..1657f43 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.typ @@ -0,0 +1,4 @@ + +TYPE + +END_TYPE diff --git a/example/As6Project/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.var b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.var new file mode 100644 index 0000000..7af0668 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/AsBrWStr.var @@ -0,0 +1,5 @@ + +VAR CONSTANT + brwUCtoU8 : USINT := 1; (*instructs the wcsconv function to convert a WC character string into an ANSI string*) + brwU8toUC : USINT := 0; (*instructs the wcsconv function to convert an ANSI character string into a WC string*) +END_VAR diff --git a/example/As6Project/Logical/Libraries/_AS/AsBrWStr/SG3/AsBrWStr.h b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/SG3/AsBrWStr.h new file mode 100644 index 0000000..456b6dd --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/SG3/AsBrWStr.h @@ -0,0 +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_ */ + diff --git a/example/As6Project/Logical/Libraries/_AS/AsBrWStr/SG4/AsBrWStr.h b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/SG4/AsBrWStr.h new file mode 100644 index 0000000..c05a10d --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/SG4/AsBrWStr.h @@ -0,0 +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 + + + +/* 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/As6Project/Logical/Libraries/_AS/AsBrWStr/SGC/AsBrWStr.h b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/SGC/AsBrWStr.h new file mode 100644 index 0000000..456b6dd --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/SGC/AsBrWStr.h @@ -0,0 +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_ */ + diff --git a/example/As6Project/Logical/Libraries/_AS/AsBrWStr/binary.lby b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/binary.lby new file mode 100644 index 0000000..de98f4d --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/AsBrWStr/binary.lby @@ -0,0 +1,9 @@ + + + + + AsBrWStr.fun + AsBrWStr.typ + AsBrWStr.var + + diff --git a/example/As6Project/Logical/Libraries/_AS/Package.pkg b/example/As6Project/Logical/Libraries/_AS/Package.pkg new file mode 100644 index 0000000..4f748b7 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/Package.pkg @@ -0,0 +1,10 @@ + + + + + astime + runtime + AsBrStr + AsBrWStr + + \ No newline at end of file diff --git a/example/As6Project/Logical/Libraries/_AS/astime/SG3/astime.h b/example/As6Project/Logical/Libraries/_AS/astime/SG3/astime.h new file mode 100644 index 0000000..b0c328a --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/astime/SG3/astime.h @@ -0,0 +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_ */ + + diff --git a/example/As6Project/Logical/Libraries/_AS/astime/SG4/astime.h b/example/As6Project/Logical/Libraries/_AS/astime/SG4/astime.h new file mode 100644 index 0000000..ffa4415 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/astime/SG4/astime.h @@ -0,0 +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 +/* 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/As6Project/Logical/Libraries/_AS/astime/SGC/astime.h b/example/As6Project/Logical/Libraries/_AS/astime/SGC/astime.h new file mode 100644 index 0000000..b0c328a --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/astime/SGC/astime.h @@ -0,0 +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_ */ + + diff --git a/example/As6Project/Logical/Libraries/_AS/astime/astime.fun b/example/As6Project/Logical/Libraries/_AS/astime/astime.fun new file mode 100644 index 0000000..23a6cf6 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/astime/astime.fun @@ -0,0 +1,333 @@ + +{REDUND_OK} FUNCTION_BLOCK DTExSetTime (*sets the current time using the DATE_AND_TIME data type*) + VAR_INPUT + enable :BOOL; (*enables execution*) + DT1 :DATE_AND_TIME; (*date and time to be written*) + Option :USINT; (*additional option: timEXSETTIME_NO_OPTION, timEXSETTIME_NO_LOGENTRY*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK DTSetTime (*sets current time in DATE_AND_TIME data type*) + VAR_INPUT + enable :BOOL; (*enables execution*) + DT1 :DATE_AND_TIME; (*date and time to be written*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION_BLOCK DTGetTime (*reads the current time in the DATE_AND_TIME data type*) + VAR_INPUT + enable :BOOL; (*enables execution*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + DT1 :DATE_AND_TIME; (*date and time read*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_OK} FUNCTION clock_ms : TIME (*provides a continuous millisecond counter in the TIME data type*) +END_FUNCTION + +{REDUND_OK} FUNCTION_BLOCK UtcDTGetTime (*reads the current UTC-time in the DATE_AND_TIME data type*) + VAR_INPUT + enable :BOOL; (*enables execution*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + DT1 :DATE_AND_TIME; (*UTC date and time read*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK UtcDTSetTime (*sets current UTC-time in DATE_AND_TIME data type*) + VAR_INPUT + enable :BOOL; (*enables execution*) + DT1 :DATE_AND_TIME; (*UTC date and time to be written*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK UtcDTExSetTime (*sets current UTC-time in DATE_AND_TIME data type*) + VAR_INPUT + enable :BOOL; (*enables execution*) + DT1 :DATE_AND_TIME; (*UTC date and time to be written*) + Option :USINT; (*additional option: timEXSETTIME_NO_OPTION, timEXSETTIME_NO_LOGENTRY*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DTStructureGetTime (*reads the current time in the calendar structure*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDTStructure :UDINT; (*address of the calendar structure*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DTStructureSetTime (*sets current time in calendar structure*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDTStructure :UDINT; (*address of the calendar structure*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DTStructureExSetTime (*sets current time in calendar structure*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDTStructure :UDINT; (*address of the calendar structure*) + Option :USINT; (*additional option: timEXSETTIME_NO_OPTION, timEXSETTIME_NO_LOGENTRY*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK UtcDTStructureGetTime (*reads the UTC time in the calendar structure*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDTStructure :UDINT; (*address of the calendar structure*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, 0xXXXX = see help*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK UtcDTStructureSetTime (*sets UTC time in calendar structure*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDTStructure :UDINT; (*address of the calendar structure*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK UtcDTStructureExSetTime (*sets UTC time in calendar structure*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDTStructure :UDINT; (*address of the calendar structure*) + Option :USINT; (*additional option: timEXSETTIME_NO_OPTION, timEXSETTIME_NO_LOGENTRY*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK UtcDT_TO_LocalDTStructure (*sets current UTC-time in DATE_AND_TIME data type*) + VAR_INPUT + enable :BOOL; (*enables execution*) + DT1 :DATE_AND_TIME; (*UTC date and time*) + pDTStructure :UDINT; (*address of the calendar structure*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK LocalDT_TO_UtcDTStructure (*sets current UTC-time in DATE_AND_TIME data type*) + VAR_INPUT + enable :BOOL; (*enables execution*) + DT1 :DATE_AND_TIME; (*Local date and time*) + pDTStructure :UDINT; (*address of the calendar structure*) + END_VAR + VAR_OUTPUT + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK UtcDTStructure_TO_LocalDT (*sets current UTC-time in DATE_AND_TIME data type*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDTStructure :UDINT; (*address of the calendar structure*) + END_VAR + VAR_OUTPUT + DT1 :DATE_AND_TIME; (*Local date and time*) + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK LocalDTStructure_TO_UtcDT (*sets current UTC-time in DATE_AND_TIME data type*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDTStructure :UDINT; (*address of the calendar structure*) + END_VAR + VAR_OUTPUT + DT1 :DATE_AND_TIME; (*UTC date and time*) + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + i_state : UINT; (*internal variable*) + i_result : UINT; (*internal variable*) + i_tmp : UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ascTIMEStructure : UDINT (*converts a "time" structure to a character string in the format "15:14:13\0"*) + VAR_INPUT + pTIMEStructure :UDINT; (*address of the time structure*) + pStr :UDINT; (*address of the character field*) + len :UDINT; (*length of the character field *) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ascDTStructure : UDINT (*converts a "date" structure to a character string in the format "Sun Jan 3 15:14:13 1988\0"*) + VAR_INPUT + pDTStructure :UDINT; (*address of the calendar structure *) + pStr :UDINT; (*address of the character field*) + len :UDINT; (*length of the character field*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ascTIME : UDINT (*converts the TIME data type to a character string in the format "15:14:13\0"*) + VAR_INPUT + TIME1 :TIME; (*time*) + pStr :UDINT; (*address of the character field*) + len :UDINT; (*length of the character field*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION ascDT : UDINT (*converts the DATE_AND_TIME data type to character string in the format "Sun Jan 3 15:14:13 1988\0"*) + VAR_INPUT + DT1 :DATE_AND_TIME; (*date and time*) + pStr :UDINT; (*address of the character field*) + len :UDINT; (*length of the character field*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION TIMEStructure_TO_TIME : TIME (*converts a "time" structure to the TIME data type*) + VAR_INPUT + pTIMEStructure :UDINT; (*address of the time structure*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION TIME_TO_TIMEStructure : UDINT (*converts the TIME data type to a "time" structure*) + VAR_INPUT + TIME1 :TIME; (*time*) + pTIMEStructure :UDINT; (*address of the calendar structure*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION DTStructure_TO_DT : DATE_AND_TIME (*converts a "date" structure to the DATE_AND_TIME data type*) + VAR_INPUT + pDTStructure :UDINT; (*address of the calendar structure*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION DT_TO_DTStructure : UDINT (*converts the DATE_AND_TIME data type to a "date" structure*) + VAR_INPUT + DT1 :DATE_AND_TIME; (*date and time*) + pDTStructure :UDINT; (*address of the calendar structure*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION DiffT : UDINT (*shows the difference between two times (TIME data type) expressed in milliseconds*) + VAR_INPUT + TIME2 :TIME; (*time 2*) + TIME1 :TIME; (*time 1*) + END_VAR +END_FUNCTION + +{REDUND_OK} FUNCTION DiffDT : UDINT (*shows the difference between two times (DATE_AND_TIME data type) expressed in seconds*) + VAR_INPUT + DT2 :DATE_AND_TIME; (*date and time 2*) + DT1 :DATE_AND_TIME; (*date and time 1*) + END_VAR +END_FUNCTION + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK TimeDeviceGetInfo (*read information about time device*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pServer :UDINT; (*Pointer to string*) + len :USINT; (*length of pServer*) + END_VAR + VAR_OUTPUT + timeDevice :USINT; (*sntpREAL_TIME_CLOCK or sntpTIME_SERVER*) + avgDeviation :REAL; (*average deviation between software time and time device*) + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + i_state :UINT; (*internal variable*) + i_result :UINT; (*internal variable*) + i_tmp :UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DstGetInfo (*read information about time device*) + VAR_INPUT + enable :BOOL; (*enables execution*) + pDTStructure :UDINT; (*Pointer to DTStructure*) + END_VAR + VAR_OUTPUT + dstState :USINT; (*timDAYLIGHT_SAVING_TIME, timNORMAL_TIME or timNO_DST*) + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + i_state :UINT; (*internal variable*) + i_result :UINT; (*internal variable*) + i_tmp :UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK + +{REDUND_CONTEXT} {REDUND_UNREPLICABLE} FUNCTION_BLOCK DstGetInfoDT (*read information about time device*) + VAR_INPUT + enable :BOOL; (*enables execution*) + DT1 :DATE_AND_TIME; (*date and time in UTC*) + END_VAR + VAR_OUTPUT + dstState :USINT; (*timDAYLIGHT_SAVING_TIME, timNORMAL_TIME or timNO_DST*) + status :UINT; (*execution status: ERR_OK, ERR_FUB_ENABLE_FALSE, ERR_FUB_BUSY, 0xXXXX = see help*) + END_VAR + VAR + i_state :UINT; (*internal variable*) + i_result :UINT; (*internal variable*) + i_tmp :UDINT; (*internal variable*) + END_VAR +END_FUNCTION_BLOCK diff --git a/example/As6Project/Logical/Libraries/_AS/astime/astime.typ b/example/As6Project/Logical/Libraries/_AS/astime/astime.typ new file mode 100644 index 0000000..3609d6e --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/astime/astime.typ @@ -0,0 +1,22 @@ + +TYPE + TIMEStructure : STRUCT (*time structure*) + day : SINT ; (*day (1-31)*) + hour : USINT ; (*hours (0-23)*) + minute : USINT ; (*minutes (0-59)*) + second : USINT ; (*seconds (0-59)*) + millisec : UINT ; (*milliseconds (0-999)*) + microsec : UINT ; (*microseconds (0-999)*) + END_STRUCT; + DTStructure : STRUCT (*date structure*) + year : UINT ; (*year*) + month : USINT ; (*month (1-12)*) + day : USINT ; (*day (1-31)*) + wday : USINT ; (*day of the week (0-6), e.g. 0 = Sunday, 6 = Saturday*) + hour : USINT ; (*hours (0-23)*) + minute : USINT ; (*minutes (0-59)*) + second : USINT ; (*seconds (0-59)*) + millisec : UINT ; (*milliseconds (0-999)*) + microsec : UINT ; (*microseconds (0-999)*) + END_STRUCT; +END_TYPE diff --git a/example/As6Project/Logical/Libraries/_AS/astime/astime.var b/example/As6Project/Logical/Libraries/_AS/astime/astime.var new file mode 100644 index 0000000..70e0c26 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/astime/astime.var @@ -0,0 +1,18 @@ + +VAR CONSTANT + timEXSETTIME_NO_LOGENTRY : USINT := 1; + timEXSETTIME_NO_OPTION : USINT := 0; + DATE_AND_TIME_MAX : UDINT := 4102444799; + TIME_MIN : DINT := -2073600000; + TIME_MAX : DINT := 2073600000; + timNORMAL_TIME : USINT := 1; + timDAYLIGHT_SAVING_TIME : USINT := 2; + timNO_DST : USINT := 3; + timREAL_TIME_CLOCK : USINT := 1; + timTIME_SERVER : USINT := 2; + timREDUND_INTERFACE : USINT := 3; + timERR_INVALID_PARAMETER : UINT := 33210; + timERR_INVALID_LEN : UINT := 33211; + timERR_INVALID_DTSTRUCTURE : UINT := 33212; + timERR_AR : UINT := 33213; +END_VAR diff --git a/example/As6Project/Logical/Libraries/_AS/astime/binary.lby b/example/As6Project/Logical/Libraries/_AS/astime/binary.lby new file mode 100644 index 0000000..4ce250f --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/astime/binary.lby @@ -0,0 +1,12 @@ + + + + + astime.fun + astime.typ + astime.var + + + + + diff --git a/example/As6Project/Logical/Libraries/_AS/runtime/SG3/runtime.h b/example/As6Project/Logical/Libraries/_AS/runtime/SG3/runtime.h new file mode 100644 index 0000000..360394e --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/runtime/SG3/runtime.h @@ -0,0 +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_ */ + diff --git a/example/As6Project/Logical/Libraries/_AS/runtime/SG4/runtime.h b/example/As6Project/Logical/Libraries/_AS/runtime/SG4/runtime.h new file mode 100644 index 0000000..fa683ca --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/runtime/SG4/runtime.h @@ -0,0 +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 +/* 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/As6Project/Logical/Libraries/_AS/runtime/SGC/runtime.h b/example/As6Project/Logical/Libraries/_AS/runtime/SGC/runtime.h new file mode 100644 index 0000000..360394e --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/runtime/SGC/runtime.h @@ -0,0 +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_ */ + diff --git a/example/As6Project/Logical/Libraries/_AS/runtime/binary.lby b/example/As6Project/Logical/Libraries/_AS/runtime/binary.lby new file mode 100644 index 0000000..92ad626 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/runtime/binary.lby @@ -0,0 +1,9 @@ + + + + + runtime.fun + runtime.typ + runtime.var + + diff --git a/example/As6Project/Logical/Libraries/_AS/runtime/runtime.fun b/example/As6Project/Logical/Libraries/_AS/runtime/runtime.fun new file mode 100644 index 0000000..4d2564d --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/runtime/runtime.fun @@ -0,0 +1,282 @@ + +{REDUND_OK} FUNCTION_BLOCK r_trig (*for internal use only - do not use this function in user programs*) + VAR_INPUT + CLK :BOOL; + END_VAR + VAR_OUTPUT + Q :BOOL; + END_VAR + VAR + M :BOOL; + END_VAR +END_FUNCTION_BLOCK +{REDUND_OK} FUNCTION_BLOCK f_trig (*for internal use only - do not use this function in user programs*) + VAR_INPUT + CLK :BOOL; + END_VAR + VAR_OUTPUT + Q :BOOL; + END_VAR + VAR + M :BOOL; + END_VAR +END_FUNCTION_BLOCK +{REDUND_OK} FUNCTION_BLOCK rf_trig (*for internal use only - do not use this function in user programs*) + VAR_INPUT + CLK :BOOL; + END_VAR + VAR_OUTPUT + Q :BOOL; + END_VAR + VAR + M :BOOL; + END_VAR +END_FUNCTION_BLOCK +FUNCTION GetTime : TIME (*for internal use only - do not use this function in user programs*) +END_FUNCTION +{REDUND_OK} FUNCTION_BLOCK SFCActionControl (*for internal use only - do not use this function in user programs*) + VAR_INPUT + N :BOOL; + R0 :BOOL; + S0 :BOOL; + L :BOOL; + D :BOOL; + P :BOOL; + SD :BOOL; + DS :BOOL; + SL :BOOL; + T :TIME; + END_VAR + VAR_OUTPUT + Q :BOOL; + END_VAR + VAR + S_FF_SET :USINT; + S_FF_R1 :USINT; + S_FF_Q :USINT; + dummy1 :USINT; + L_TMR_PT :TIME; + L_TMR_ET :TIME; + L_TMR_STAR :TIME; + L_TMR_IN :USINT; + L_TMR_Q :USINT; + L_TMR_M :USINT; + dummy2 :USINT; + D_TMR_PT :TIME; + D_TMR_ET :TIME; + D_TMR_STAR :TIME; + D_TMR_IN :USINT; + D_TMR_Q :USINT; + D_TMR_M :USINT; + dummy3 :USINT; + P_TRIG_CLK :USINT; + P_TRIG_Q :USINT; + P_TRIG_M :USINT; + dummy4 :USINT; + SD_TMR_PT :TIME; + SD_TMR_ET :TIME; + SD_TMR_STA :TIME; + SD_TMR_IN :USINT; + SD_TMR_Q :USINT; + SD_TMR_M :USINT; + dummy5 :USINT; + SD_FF_SET :USINT; + SD_FF_R1 :USINT; + SD_FF_Q :USINT; + DS_FF_SET :USINT; + DS_FF_R1 :USINT; + DS_FF_Q :USINT; + DS_TMR_PT :TIME; + DS_TMR_ET :TIME; + DS_TMR_STA :TIME; + DS_TMR_IN :USINT; + DS_TMR_Q :USINT; + DS_TMR_M :USINT; + dummy6 :USINT; + SL_FF_SET :USINT; + SL_FF_R1 :USINT; + SL_FF_Q :USINT; + dummy7 :USINT; + SL_TMR_PT :TIME; + SL_TMR_ET :TIME; + SL_TMR_STA :TIME; + SL_TMR_IN :USINT; + SL_TMR_Q :USINT; + SL_TMR_M :USINT; + dummy8 :USINT; + END_VAR +END_FUNCTION_BLOCK +{REDUND_OK} FUNCTION_BLOCK SFCAC2 (*for internal use only - do not use this function in user programs*) + VAR_INPUT + N : {REDUND_UNREPLICABLE} BOOL; + R0 : {REDUND_UNREPLICABLE} BOOL; + S0 : {REDUND_UNREPLICABLE} BOOL; + L : {REDUND_UNREPLICABLE} BOOL; + D : {REDUND_UNREPLICABLE} BOOL; + P : {REDUND_UNREPLICABLE} BOOL; + P1 : {REDUND_UNREPLICABLE} BOOL; + P0 : {REDUND_UNREPLICABLE} BOOL; + SD : {REDUND_UNREPLICABLE} BOOL; + DS : {REDUND_UNREPLICABLE} BOOL; + SL : {REDUND_UNREPLICABLE} BOOL; + T :TIME; + END_VAR + VAR_OUTPUT + Q :BOOL; + A :BOOL; + END_VAR + VAR + S_FF_SET :USINT; + S_FF_R1 :USINT; + S_FF_Q :USINT; + L_TMR_PT :TIME; + L_TMR_ET :TIME; + L_TMR_STAR :TIME; + L_TMR_IN :USINT; + L_TMR_Q :USINT; + L_TMR_M :USINT; + D_TMR_PT :TIME; + D_TMR_ET :TIME; + D_TMR_STAR :TIME; + D_TMR_IN :USINT; + D_TMR_Q :USINT; + D_TMR_M :USINT; + SD_TMR_PT :TIME; + SD_TMR_ET :TIME; + SD_TMR_STA :TIME; + SD_TMR_IN :USINT; + SD_TMR_Q :USINT; + SD_TMR_M :USINT; + SD_FF_SET :USINT; + SD_FF_R1 :USINT; + SD_FF_Q1 :USINT; + DS_FF_SET :USINT; + DS_FF_R1 :USINT; + DS_FF_Q1 :USINT; + DS_TMR_PT :TIME; + DS_TMR_ET :TIME; + DS_TMR_STA :TIME; + DS_TMR_IN :USINT; + DS_TMR_Q :USINT; + DS_TMR_M :USINT; + SL_FF_SET :USINT; + SL_FF_R1 :USINT; + SL_FF_Q :USINT; + SL_TMR_PT :TIME; + SL_TMR_ET :TIME; + SL_TMR_STA :TIME; + SL_TMR_IN :USINT; + SL_TMR_Q :USINT; + SL_TMR_M :USINT; + P_TRIG_Q :USINT; + P_TRIG_M :USINT; + Q_TRIG_Q :USINT; + Q_TRIG_M :USINT; + P1_TRIG_Q :USINT; + P1_TRIG_M :USINT; + P0_TRIG_Q :USINT; + P0_TRIG_M :USINT; + END_VAR +END_FUNCTION_BLOCK +{REDUND_OK} FUNCTION RealTan : LREAL + VAR_INPUT + x :LREAL; + END_VAR +END_FUNCTION +{REDUND_OK} FUNCTION RealAtan : LREAL + VAR_INPUT + x :LREAL; + END_VAR +END_FUNCTION +{REDUND_OK} FUNCTION RealAsin : LREAL + VAR_INPUT + x :LREAL; + END_VAR +END_FUNCTION +{REDUND_OK} FUNCTION RealAcos : LREAL + VAR_INPUT + x :LREAL; + END_VAR +END_FUNCTION +{REDUND_OK} FUNCTION RealExp : LREAL + VAR_INPUT + x :LREAL; + END_VAR +END_FUNCTION +{REDUND_OK} FUNCTION RealLn : LREAL + VAR_INPUT + x :LREAL; + END_VAR +END_FUNCTION +{REDUND_OK} FUNCTION RealLog : LREAL + VAR_INPUT + x :LREAL; + END_VAR +END_FUNCTION +{REDUND_OK} FUNCTION RealExpt : LREAL + VAR_INPUT + x :LREAL; + y :LREAL; + END_VAR +END_FUNCTION +{REDUND_OK} FUNCTION RealAbs : LREAL + VAR_INPUT + x :LREAL; + END_VAR +END_FUNCTION +{REDUND_OK} FUNCTION RealSin : LREAL + VAR_INPUT + x :LREAL; + END_VAR +END_FUNCTION +{REDUND_OK} FUNCTION RealCos : LREAL + VAR_INPUT + x :LREAL; + END_VAR +END_FUNCTION +{REDUND_OK} FUNCTION RealSqrt : LREAL + VAR_INPUT + x :LREAL; + END_VAR +END_FUNCTION +{REDUND_OK} FUNCTION_BLOCK SFCAC3 (*for internal use only - do not use this function in user programs*) + VAR_INPUT + N : {REDUND_UNREPLICABLE} BOOL; + R0 : {REDUND_UNREPLICABLE} BOOL; + S0 : {REDUND_UNREPLICABLE} BOOL; + L : {REDUND_UNREPLICABLE} BOOL; + D : {REDUND_UNREPLICABLE} BOOL; + P : {REDUND_UNREPLICABLE} BOOL; + P1 : {REDUND_UNREPLICABLE} BOOL; + P0 : {REDUND_UNREPLICABLE} BOOL; + SD : {REDUND_UNREPLICABLE} BOOL; + DS : {REDUND_UNREPLICABLE} BOOL; + SL : {REDUND_UNREPLICABLE} BOOL; + T :LREAL; + T_ACT : {REDUND_UNREPLICABLE} LREAL; + PAUSE : {REDUND_UNREPLICABLE} BOOL; + END_VAR + VAR_OUTPUT + Q : {REDUND_UNREPLICABLE} BOOL; + A :BOOL; + END_VAR + VAR + L_TMR :TimerType; + D_TMR :TimerType; + SD_TMR :TimerType; + DS_TMR :TimerType; + SL_TMR :TimerType; + S_FF_Q1 :USINT; + SD_FF_Q1 :USINT; + DS_FF_Q1 :USINT; + SL_FF_Q1 :USINT; + P_R_TRIG_Q : {REDUND_UNREPLICABLE} USINT; + P_R_TRIG_M :USINT; + Q_F_TRIG_Q : {REDUND_UNREPLICABLE} USINT; + Q_F_TRIG_M :USINT; + P1_R_TRIG_Q : {REDUND_UNREPLICABLE} USINT; + P1_R_TRIG_M :USINT; + P0_F_TRIG_Q : {REDUND_UNREPLICABLE} USINT; + P0_F_TRIG_M :USINT; + END_VAR +END_FUNCTION_BLOCK diff --git a/example/As6Project/Logical/Libraries/_AS/runtime/runtime.typ b/example/As6Project/Logical/Libraries/_AS/runtime/runtime.typ new file mode 100644 index 0000000..4bf1514 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/runtime/runtime.typ @@ -0,0 +1,156 @@ + +TYPE + SFCActionType : STRUCT (*internal use*) + x : BOOL; + _x : BOOL; + t : TIME; + _t : TIME; + AC : SFCActionControl; + END_STRUCT; + SFCActionType2 : STRUCT (*internal use*) + x : BOOL; + _x : BOOL; + AC : SFCAC2; + END_STRUCT; + SFCActionCType : STRUCT (*internal use*) + x : BOOL; + _x : BOOL; + force : BOOL; + _force : BOOL; + active : BOOL; + _active : BOOL; + error : BOOL; + AC : SFCActionControl; + END_STRUCT; + SFCActionCType2 : STRUCT (*internal use*) + x : BOOL; + _x : BOOL; + force : BOOL; + _force : BOOL; + active : BOOL; + _active : BOOL; + error : BOOL; + AC : SFCAC2; + END_STRUCT; + SFCActionCType3 : STRUCT (*internal use*) + t : LREAL; + _t : LREAL; + tp : LREAL; + x : BOOL; + _x : BOOL; + force : BOOL; + _force : BOOL; + active : BOOL; + _active : BOOL; + error : BOOL; + AC : SFCAC3; + END_STRUCT; + SFCStepType : STRUCT (*internal use*) + x : BOOL; + t : TIME; + _x : BOOL; + _t : TIME; + END_STRUCT; + SFCStepCType : STRUCT (*internal use*) + t : TIME; + _t : TIME; + inactive_actions : UDINT; + _inactive_actions : UDINT; + error_actions : UDINT; + x : BOOL; + _x : BOOL; + x_activate : BOOL; + force : BOOL; + _force : BOOL; + active : BOOL; + _active : BOOL; + error : BOOL; + tip : BOOL; + tip_disable_duration: BOOL; + tip_disable_action : BOOL; + END_STRUCT; + SFCStepCType3 : STRUCT (*internal use*) + t : LREAL; + _t : LREAL; + tp : LREAL; + inactive_actions : UDINT; + _inactive_actions : UDINT; + error_actions : UDINT; + x : BOOL; + _x : BOOL; + x_activate : {REDUND_UNREPLICABLE} BOOL; + force : BOOL; + _force : BOOL; + active : BOOL; + _active : BOOL; + error : BOOL; + tip : BOOL; + tip_disable_duration : BOOL; + tip_disable_action : BOOL; + END_STRUCT; + SFCSimpleStepCType : STRUCT (*internal use*) + t : TIME; + _t : TIME; + x : BOOL; + _x : BOOL; + x_activate : BOOL; + force : BOOL; + _force : BOOL; + active : BOOL; + _active : BOOL; + error : BOOL; + tip : BOOL; + tip_disable_duration : BOOL; + tip_disable_action : BOOL; + END_STRUCT; + SFCSimpleStepCType3 : STRUCT (*internal use*) + t : LREAL; + _t : LREAL; + tp : LREAL; + x : BOOL; + _x : BOOL; + x_activate : {REDUND_UNREPLICABLE} BOOL; + force : BOOL; + _force : BOOL; + active : BOOL; + _active : BOOL; + error : BOOL; + tip : BOOL; + tip_disable_duration : BOOL; + tip_disable_action : BOOL; + END_STRUCT; + SFCTransitionCType : STRUCT (*internal use*) + force : BOOL; + _force : BOOL; + active : BOOL; + _active : BOOL; + END_STRUCT; + TimerType : STRUCT (*internal use*) + ptime : LREAL; + etime : LREAL; + start : LREAL; + in : USINT; + q : USINT; + END_STRUCT; + + ArFBStateInternalType : STRUCT (*fb state machine internal context*) + ExecuteRef : UDINT; + BusyRef : UDINT; + DoneRef : UDINT; + ErrorRef : UDINT; + ActiveRef : UDINT; + StatusRef : UDINT; + FBCyclic : UDINT; + AsyfumaState : UDINT; + FBResetOut : UDINT; + Argument : UDINT; + State : UDINT; + ExecutePrev : BOOL; + END_STRUCT; + + ArFBAsyFuMaInternalType : STRUCT (*asynchronous function manager internal context*) + State : UINT; + Result : DINT; + END_STRUCT; + +END_TYPE diff --git a/example/As6Project/Logical/Libraries/_AS/runtime/runtime.var b/example/As6Project/Logical/Libraries/_AS/runtime/runtime.var new file mode 100644 index 0000000..c955341 --- /dev/null +++ b/example/As6Project/Logical/Libraries/_AS/runtime/runtime.var @@ -0,0 +1,35 @@ + + (*Common Functionblock Status*) +VAR CONSTANT + ERR_OK : UINT := 0; (*no error*) + ERR_NOTIMPLEMENTED : UINT := 9999; (*function or function block not implemented*) + ERR_FUB_ENABLE_FALSE : UINT := 16#FFFE; (*function block parameter "enable" is FALSE*) + ERR_FUB_BUSY : UINT := 16#FFFF; (*function block still working*) + ERR_FUB_REDUNDANT : UINT := 35688; (*This FUB can not be used on the standby CPU*) + ERR_FB_NOT_IMPLEMENTED: DINT := -1070585592;(*function or function block not implemented for the target system*) +END_VAR + +(*IEC 61131-3 Datatypes*) +VAR CONSTANT + IEC_DATATYPE_BOOL : UINT := 1; (*8 Bit containing a boolean value FALSE=0 or TRUE=1*) + IEC_DATATYPE_SINT : UINT := 2; (*8 Bit signed integer*) + IEC_DATATYPE_INT : UINT := 3; (*16 Bit signed integer*) + IEC_DATATYPE_DINT : UINT := 4; (*32 Bit signed integer*) + IEC_DATATYPE_USINT : UINT := 5; (*8 Bit unsigned integer*) + IEC_DATATYPE_UINT : UINT := 6; (*16 Bit unsigned integer*) + IEC_DATATYPE_UDINT : UINT := 7; (*32 Bit unsigned integer*) + IEC_DATATYPE_REAL : UINT := 8; (*32 Bit floating point number*) + IEC_DATATYPE_STRING : UINT := 9; (*Variable-length single-byte character string*) + IEC_DATATYPE_ULINT : UINT := 10; (*64 Bit unsigned integer*) + IEC_DATATYPE_DATE_AND_TIME : UINT := 11; (*32 Bit of Date in Seconds since 01.01.1970 00:00:00*) + IEC_DATATYPE_TIME : UINT := 12; (*32 Bit of Time in ms*) + IEC_DATATYPE_DATE : UINT := 13; (*32 Bit of Date (only)*) + IEC_DATATYPE_LREAL : UINT := 14; (*64 Bit floating point number*) + IEC_DATATYPE_TIME_OF_DAY: UINT := 16; (*32 Bit Time of day (only)*) + IEC_DATATYPE_BYTE : UINT := 17; (*Bit string of length 8*) + IEC_DATATYPE_WORD : UINT := 18; (*Bit string of length 16*) + IEC_DATATYPE_DWORD : UINT := 19; (*Bit string of length 32*) + IEC_DATATYPE_LWORD : UINT := 20; (*Bit string of length 64*) + IEC_DATATYPE_WSTRING : UINT := 21; (*Variable-length double-byte character string*) + IEC_DATATYPE_LINT : UINT := 23; (*64 Bit signed integer*) +END_VAR diff --git a/example/As6Project/Logical/Package.pkg b/example/As6Project/Logical/Package.pkg new file mode 100644 index 0000000..7a1c7ee --- /dev/null +++ b/example/As6Project/Logical/Package.pkg @@ -0,0 +1,10 @@ + + + + + Global.typ + Global.var + Libraries + Programs + + \ No newline at end of file diff --git a/example/As6Project/Logical/Programs/Default/ANSIC.prg b/example/As6Project/Logical/Programs/Default/ANSIC.prg new file mode 100644 index 0000000..30934ba --- /dev/null +++ b/example/As6Project/Logical/Programs/Default/ANSIC.prg @@ -0,0 +1,9 @@ + + + + + Main.c + Types.typ + Variables.var + + \ No newline at end of file diff --git a/example/As6Project/Logical/Programs/Default/Main.c b/example/As6Project/Logical/Programs/Default/Main.c new file mode 100644 index 0000000..0f4fb8b --- /dev/null +++ b/example/As6Project/Logical/Programs/Default/Main.c @@ -0,0 +1,37 @@ + +#include + +#ifdef _DEFAULT_INCLUDES + #include +#endif + +#include "string.h" +#include + +void _INIT ProgramInit(void) +{ +} + + +void _CYCLIC ProgramCyclic(void) +{ + if(calldtoa) { + calldtoa = 0; + + pString = stringdtoa(val, (char*)buffer, ndigits, sizeof(buffer)); + if(pString) { + len = strlen((char*)pString); + strcpy((char*)string, (char*)pString); + } + + } + + + +} + +void _EXIT ProgramExit(void) +{ + +} + diff --git a/example/As6Project/Logical/Programs/Default/Types.typ b/example/As6Project/Logical/Programs/Default/Types.typ new file mode 100644 index 0000000..5dc40af --- /dev/null +++ b/example/As6Project/Logical/Programs/Default/Types.typ @@ -0,0 +1,4 @@ + +TYPE + +END_TYPE diff --git a/example/As6Project/Logical/Programs/Default/Variables.var b/example/As6Project/Logical/Programs/Default/Variables.var new file mode 100644 index 0000000..b203071 --- /dev/null +++ b/example/As6Project/Logical/Programs/Default/Variables.var @@ -0,0 +1,9 @@ +VAR + ndigits : UDINT; + val : LREAL; + calldtoa : BOOL; + len : UDINT; + string : ARRAY[0..3] OF STRING[80]; + buffer : ARRAY[0..3] OF STRING[80]; + pString : UDINT; +END_VAR diff --git a/example/As6Project/Logical/Programs/Package.pkg b/example/As6Project/Logical/Programs/Package.pkg new file mode 100644 index 0000000..9f53426 --- /dev/null +++ b/example/As6Project/Logical/Programs/Package.pkg @@ -0,0 +1,7 @@ + + + + + Default + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/Config.pkg b/example/As6Project/Physical/ARM/Config.pkg new file mode 100644 index 0000000..2f67f96 --- /dev/null +++ b/example/As6Project/Physical/ARM/Config.pkg @@ -0,0 +1,11 @@ + + + + + Hardware.hw + Hardware.hwl + X20CP0410 + Hardware.jpg + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/Hardware.hw b/example/As6Project/Physical/ARM/Hardware.hw new file mode 100644 index 0000000..3892886 --- /dev/null +++ b/example/As6Project/Physical/ARM/Hardware.hw @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/Hardware.hwl b/example/As6Project/Physical/ARM/Hardware.hwl new file mode 100644 index 0000000..6c94f55 --- /dev/null +++ b/example/As6Project/Physical/ARM/Hardware.hwl @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/Hardware.jpg b/example/As6Project/Physical/ARM/Hardware.jpg new file mode 100644 index 0000000..12bc267 Binary files /dev/null and b/example/As6Project/Physical/ARM/Hardware.jpg differ diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg new file mode 100644 index 0000000..973c732 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg new file mode 100644 index 0000000..683b25c --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg new file mode 100644 index 0000000..66601a5 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg new file mode 100644 index 0000000..08d5735 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg @@ -0,0 +1,8 @@ + + + + + Certificates + PrivateKeys + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg new file mode 100644 index 0000000..b03ca4c --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/Package.pkg new file mode 100644 index 0000000..3748db4 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/Package.pkg @@ -0,0 +1,10 @@ + + + + + OwnCertificates + ThirdPartyCertificates + CertificateRevocationLists + CertificateSigningRequests + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg new file mode 100644 index 0000000..7ea4734 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg @@ -0,0 +1,7 @@ + + + + + SoftwareCertificates + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg new file mode 100644 index 0000000..0c531bc --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/Firewall/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/Firewall/Package.pkg new file mode 100644 index 0000000..591a078 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/Firewall/Package.pkg @@ -0,0 +1,7 @@ + + + + + Rules.firewallRules + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/Firewall/Rules.firewallRules b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/Firewall/Rules.firewallRules new file mode 100644 index 0000000..8748b19 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/Firewall/Rules.firewallRules @@ -0,0 +1,6 @@ + + + + + + diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/Package.pkg new file mode 100644 index 0000000..d88458a --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/Package.pkg @@ -0,0 +1,10 @@ + + + + + UserRoleSystem + CertificateStore + TransportLayerSecurity + Firewall + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/TransportLayerSecurity/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/TransportLayerSecurity/Package.pkg new file mode 100644 index 0000000..58a4ff8 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/TransportLayerSecurity/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/BRRole.brrole b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/BRRole.brrole new file mode 100644 index 0000000..6795c17 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/BRRole.brrole @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/Package.pkg new file mode 100644 index 0000000..9dd97ab --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/Package.pkg @@ -0,0 +1,9 @@ + + + + + Role.role + User.user + BRRole.brrole + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/Role.role b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/Role.role new file mode 100644 index 0000000..a4ef7ad --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/Role.role @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/User.user b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/User.user new file mode 100644 index 0000000..593efe2 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/AccessAndSecurity/UserRoleSystem/User.user @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/Connectivity/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/Connectivity/Package.pkg new file mode 100644 index 0000000..bfea000 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/Connectivity/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/Cpu.per b/example/As6Project/Physical/ARM/X20CP0410/Cpu.per new file mode 100644 index 0000000..14f5eae --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/Cpu.per @@ -0,0 +1,4 @@ + +VAR_CONFIG + +END_VAR diff --git a/example/As6Project/Physical/ARM/X20CP0410/Cpu.pkg b/example/As6Project/Physical/ARM/X20CP0410/Cpu.pkg new file mode 100644 index 0000000..28d3d1d --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/Cpu.pkg @@ -0,0 +1,28 @@ + + + + + Cpu.sw + Cpu.per + IoMap.iom + PvMap.vvm + Connectivity + TextSystem + UnitSystem + AccessAndSecurity + mappControl + mappMotion + mappServices + mappSafety + mappView + mappVision + mappCockpit + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/Cpu.sw b/example/As6Project/Physical/ARM/X20CP0410/Cpu.sw new file mode 100644 index 0000000..0b9d0dd --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/Cpu.sw @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/IoMap.iom b/example/As6Project/Physical/ARM/X20CP0410/IoMap.iom new file mode 100644 index 0000000..14f5eae --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/IoMap.iom @@ -0,0 +1,4 @@ + +VAR_CONFIG + +END_VAR diff --git a/example/As6Project/Physical/ARM/X20CP0410/PvMap.vvm b/example/As6Project/Physical/ARM/X20CP0410/PvMap.vvm new file mode 100644 index 0000000..14f5eae --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/PvMap.vvm @@ -0,0 +1,4 @@ + +VAR_CONFIG + +END_VAR diff --git a/example/As6Project/Physical/ARM/X20CP0410/TextSystem/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/TextSystem/Package.pkg new file mode 100644 index 0000000..24b827e --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/TextSystem/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/UnitSystem/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/UnitSystem/Package.pkg new file mode 100644 index 0000000..f45ab49 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/UnitSystem/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/mappCockpit/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/mappCockpit/Package.pkg new file mode 100644 index 0000000..f031b15 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/mappCockpit/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/mappControl/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/mappControl/Package.pkg new file mode 100644 index 0000000..e5d9739 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/mappControl/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/mappMotion/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/mappMotion/Package.pkg new file mode 100644 index 0000000..0d34e88 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/mappMotion/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/mappSafety/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/mappSafety/Package.pkg new file mode 100644 index 0000000..5ba4780 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/mappSafety/Package.pkg @@ -0,0 +1,8 @@ + + + + + SafeApplication + SafeCommissioning + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/mappSafety/SafeApplication/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/mappSafety/SafeApplication/Package.pkg new file mode 100644 index 0000000..9efcef1 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/mappSafety/SafeApplication/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/mappSafety/SafeCommissioning/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/mappSafety/SafeCommissioning/Package.pkg new file mode 100644 index 0000000..d23129f --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/mappSafety/SafeCommissioning/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/mappServices/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/mappServices/Package.pkg new file mode 100644 index 0000000..bdbbebd --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/mappServices/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/mappView/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/mappView/Package.pkg new file mode 100644 index 0000000..2900995 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/mappView/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/ARM/X20CP0410/mappVision/Package.pkg b/example/As6Project/Physical/ARM/X20CP0410/mappVision/Package.pkg new file mode 100644 index 0000000..7c77cf1 --- /dev/null +++ b/example/As6Project/Physical/ARM/X20CP0410/mappVision/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg new file mode 100644 index 0000000..10e1bab --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg new file mode 100644 index 0000000..1c929de --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg new file mode 100644 index 0000000..fbb044b --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg new file mode 100644 index 0000000..af9e8e4 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg @@ -0,0 +1,8 @@ + + + + + Certificates + PrivateKeys + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg new file mode 100644 index 0000000..6a55aa2 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/Package.pkg new file mode 100644 index 0000000..a2b3a11 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/Package.pkg @@ -0,0 +1,10 @@ + + + + + OwnCertificates + ThirdPartyCertificates + CertificateRevocationLists + CertificateSigningRequests + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg new file mode 100644 index 0000000..11603db --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg @@ -0,0 +1,7 @@ + + + + + SoftwareCertificates + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg new file mode 100644 index 0000000..c53e656 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Firewall/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Firewall/Package.pkg new file mode 100644 index 0000000..0d836d3 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Firewall/Package.pkg @@ -0,0 +1,7 @@ + + + + + Rules.firewallRules + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Firewall/Rules.firewallRules b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Firewall/Rules.firewallRules new file mode 100644 index 0000000..add65ef --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Firewall/Rules.firewallRules @@ -0,0 +1,5 @@ + + + + + diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Package.pkg new file mode 100644 index 0000000..2648337 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/Package.pkg @@ -0,0 +1,10 @@ + + + + + UserRoleSystem + CertificateStore + TransportLayerSecurity + Firewall + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/TransportLayerSecurity/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/TransportLayerSecurity/Package.pkg new file mode 100644 index 0000000..f820e78 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/TransportLayerSecurity/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/BRRole.brrole b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/BRRole.brrole new file mode 100644 index 0000000..6795c17 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/BRRole.brrole @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/Package.pkg new file mode 100644 index 0000000..9dd97ab --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/Package.pkg @@ -0,0 +1,9 @@ + + + + + Role.role + User.user + BRRole.brrole + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/Role.role b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/Role.role new file mode 100644 index 0000000..39281ec --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/Role.role @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/User.user b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/User.user new file mode 100644 index 0000000..a6b973c --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/AccessAndSecurity/UserRoleSystem/User.user @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/Connectivity/OpcUaCs/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/Connectivity/OpcUaCs/Package.pkg new file mode 100644 index 0000000..c43b450 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/Connectivity/OpcUaCs/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/Connectivity/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/Connectivity/Package.pkg new file mode 100644 index 0000000..666b638 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/Connectivity/Package.pkg @@ -0,0 +1,7 @@ + + + + + OpcUaCs + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/Cpu.per b/example/As6Project/Physical/Intel/5PC900_TS17_04/Cpu.per new file mode 100644 index 0000000..14f5eae --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/Cpu.per @@ -0,0 +1,4 @@ + +VAR_CONFIG + +END_VAR diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/Cpu.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/Cpu.pkg new file mode 100644 index 0000000..31a52f2 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/Cpu.pkg @@ -0,0 +1,27 @@ + + + + + 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/As6Project/Physical/Intel/5PC900_TS17_04/Cpu.sw b/example/As6Project/Physical/Intel/5PC900_TS17_04/Cpu.sw new file mode 100644 index 0000000..8c13688 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/Cpu.sw @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/IoMap.iom b/example/As6Project/Physical/Intel/5PC900_TS17_04/IoMap.iom new file mode 100644 index 0000000..14f5eae --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/IoMap.iom @@ -0,0 +1,4 @@ + +VAR_CONFIG + +END_VAR diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/PvMap.vvm b/example/As6Project/Physical/Intel/5PC900_TS17_04/PvMap.vvm new file mode 100644 index 0000000..14f5eae --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/PvMap.vvm @@ -0,0 +1,4 @@ + +VAR_CONFIG + +END_VAR diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/TextSystem/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/TextSystem/Package.pkg new file mode 100644 index 0000000..321c2b6 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/TextSystem/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/UnitSystem/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/UnitSystem/Package.pkg new file mode 100644 index 0000000..dbd64ad --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/UnitSystem/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/mappCockpit/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/mappCockpit/Package.pkg new file mode 100644 index 0000000..35a14eb --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/mappCockpit/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/mappControl/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/mappControl/Package.pkg new file mode 100644 index 0000000..9dbadad --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/mappControl/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/mappMotion/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/mappMotion/Package.pkg new file mode 100644 index 0000000..ecc31c8 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/mappMotion/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/mappServices/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/mappServices/Package.pkg new file mode 100644 index 0000000..3d375fc --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/mappServices/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/mappView/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/mappView/Package.pkg new file mode 100644 index 0000000..480d4d9 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/mappView/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/5PC900_TS17_04/mappVision/Package.pkg b/example/As6Project/Physical/Intel/5PC900_TS17_04/mappVision/Package.pkg new file mode 100644 index 0000000..62837d9 --- /dev/null +++ b/example/As6Project/Physical/Intel/5PC900_TS17_04/mappVision/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/Config.pkg b/example/As6Project/Physical/Intel/Config.pkg new file mode 100644 index 0000000..97f3cc1 --- /dev/null +++ b/example/As6Project/Physical/Intel/Config.pkg @@ -0,0 +1,11 @@ + + + + + Hardware.hw + Hardware.hwl + 5PC900_TS17_04 + Hardware.jpg + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/Hardware.hw b/example/As6Project/Physical/Intel/Hardware.hw new file mode 100644 index 0000000..f6f4d37 --- /dev/null +++ b/example/As6Project/Physical/Intel/Hardware.hw @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/Hardware.hwl b/example/As6Project/Physical/Intel/Hardware.hwl new file mode 100644 index 0000000..fa5970d --- /dev/null +++ b/example/As6Project/Physical/Intel/Hardware.hwl @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/As6Project/Physical/Intel/Hardware.jpg b/example/As6Project/Physical/Intel/Hardware.jpg new file mode 100644 index 0000000..5ae7e40 Binary files /dev/null and b/example/As6Project/Physical/Intel/Hardware.jpg differ diff --git a/example/As6Project/Physical/Physical.pkg b/example/As6Project/Physical/Physical.pkg new file mode 100644 index 0000000..351df13 --- /dev/null +++ b/example/As6Project/Physical/Physical.pkg @@ -0,0 +1,8 @@ + + + + + Intel + ARM + + \ No newline at end of file diff --git a/example/As6Project/README.md b/example/As6Project/README.md new file mode 100644 index 0000000..a26d5f0 --- /dev/null +++ b/example/As6Project/README.md @@ -0,0 +1,3 @@ +# 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 diff --git a/example/As6Project/package-lock.json b/example/As6Project/package-lock.json new file mode 100644 index 0000000..49e47e4 --- /dev/null +++ b/example/As6Project/package-lock.json @@ -0,0 +1,29 @@ +{ + "name": "@loupeteam/librarybuilderproject", + "version": "0.2.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@loupeteam/librarybuilderproject", + "version": "0.2.0", + "license": "MIT", + "dependencies": { + "@loupeteam/librarybuilderproject": "^0.3.0", + "@loupeteam/stringext": "^0.14.4" + } + }, + "node_modules/@loupeteam/librarybuilderproject": { + "version": "0.3.0", + "resolved": "https://npm.pkg.github.com/download/@loupeteam/librarybuilderproject/0.3.0/9c3c1fc98350439d618573f3b465d94e3ae1e000", + "integrity": "sha512-kUOwhpPoqQ1DikLGFBH3c8+nsb28ayX2IpQRC0UaEg34cV4GrRoI0FvkSovc3tgrGohpyvxFPRy5C6TM5wj7JA==", + "license": "MIT" + }, + "node_modules/@loupeteam/stringext": { + "version": "0.14.4", + "resolved": "https://npm.pkg.github.com/download/@loupeteam/stringext/0.14.4/94cecc972c68673d69c605dba4b7904618e24cfc", + "integrity": "sha512-IhMDGSyclNrv5mYs+kyqN5OHLQrSsktZFvULrWgwr3lg0/Bl+xiO6EvehLWRbZNWZUGWFeaYhBSevv73tIZqow==", + "license": "Loupe Software License Agreement" + } + } +} diff --git a/example/As6Project/package.json b/example/As6Project/package.json new file mode 100644 index 0000000..4ef4aec --- /dev/null +++ b/example/As6Project/package.json @@ -0,0 +1,22 @@ +{ + "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/stringext": "^0.14.4" + } +} diff --git a/example/AsProject/AsProject.apj b/example/AsProject/AsProject.apj index ec5b008..37df849 100644 --- a/example/AsProject/AsProject.apj +++ b/example/AsProject/AsProject.apj @@ -7,7 +7,4 @@ - - - \ No newline at end of file diff --git a/example/AsProject/Physical/Intel/5PC900_TS17_04/Cpu.pkg b/example/AsProject/Physical/Intel/5PC900_TS17_04/Cpu.pkg index a6e3a52..bb60475 100644 --- a/example/AsProject/Physical/Intel/5PC900_TS17_04/Cpu.pkg +++ b/example/AsProject/Physical/Intel/5PC900_TS17_04/Cpu.pkg @@ -22,6 +22,6 @@ - + \ No newline at end of file diff --git a/src/Ar/StringExt/ANSIC.lby b/src/Ar/StringExt/ANSIC.lby index 6a3bc28..b1f05b0 100644 --- a/src/Ar/StringExt/ANSIC.lby +++ b/src/Ar/StringExt/ANSIC.lby @@ -1,6 +1,6 @@  - + StringExt.typ StringExt.var @@ -25,8 +25,7 @@ FormatString.c time.cpp stringdtoa.c - heap_redirect.c - tlsf.h + bur_heap_size.c internal.h internal.c gdtoa diff --git a/src/Ar/StringExt/bur_heap_size.c b/src/Ar/StringExt/bur_heap_size.c new file mode 100644 index 0000000..8661755 --- /dev/null +++ b/src/Ar/StringExt/bur_heap_size.c @@ -0,0 +1,13 @@ +#include +#ifdef __cplusplus +extern "C" +{ +#endif + + #include "StringExt.h" + +#ifdef __cplusplus +}; +#endif + +unsigned long bur_heap_size = 0xFFFF; // Set heap size to maximum possible value (65535) to allow for dynamic memory allocation in the StringExt library. \ No newline at end of file diff --git a/src/Ar/StringExt/gdtoa/arith.h b/src/Ar/StringExt/gdtoa/arith.h index f229979..1a235be 100644 --- a/src/Ar/StringExt/gdtoa/arith.h +++ b/src/Ar/StringExt/gdtoa/arith.h @@ -6,7 +6,6 @@ #ifndef ARITH_H_INCLUDED #define ARITH_H_INCLUDED -#include "../tlsf.h" #include "../internal.h" #define IEEE_8087 @@ -24,8 +23,6 @@ #define MULTIPLE_THREADS -#define ACQUIRE_DTOA_LOCK(n) lockSelect(n) -#define FREE_DTOA_LOCK(n) freeSelect(n) // We likely want to use tlsf here but I dont see how as we can define FREE currently // Will the heap_redirect take care of this for us ? diff --git a/src/Ar/StringExt/gdtoa/misc.c b/src/Ar/StringExt/gdtoa/misc.c index b3ce7c9..2926a9c 100644 --- a/src/Ar/StringExt/gdtoa/misc.c +++ b/src/Ar/StringExt/gdtoa/misc.c @@ -54,7 +54,6 @@ Balloc unsigned int len; #endif - ACQUIRE_DTOA_LOCK(0); if ( (rv = freelist[k]) !=0) { freelist[k] = rv->next; } @@ -75,7 +74,6 @@ Balloc rv->k = k; rv->maxwds = x; } - FREE_DTOA_LOCK(0); rv->sign = rv->wds = 0; return rv; } @@ -89,10 +87,8 @@ Bfree #endif { if (v) { - ACQUIRE_DTOA_LOCK(0); v->next = freelist[v->k]; freelist[v->k] = v; - FREE_DTOA_LOCK(0); } } @@ -383,12 +379,10 @@ pow5mult if ((p5 = p5s) == 0) { /* first time */ #ifdef MULTIPLE_THREADS - ACQUIRE_DTOA_LOCK(1); if (!(p5 = p5s)) { p5 = p5s = i2b(625); p5->next = 0; } - FREE_DTOA_LOCK(1); #else p5 = p5s = i2b(625); p5->next = 0; @@ -404,12 +398,10 @@ pow5mult break; if ((p51 = p5->next) == 0) { #ifdef MULTIPLE_THREADS - ACQUIRE_DTOA_LOCK(1); if (!(p51 = p5->next)) { p51 = p5->next = mult(p5,p5); p51->next = 0; } - FREE_DTOA_LOCK(1); #else p51 = p5->next = mult(p5,p5); p51->next = 0; diff --git a/src/Ar/StringExt/heap_redirect.c b/src/Ar/StringExt/heap_redirect.c deleted file mode 100644 index 7f32616..0000000 --- a/src/Ar/StringExt/heap_redirect.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * File: heap_redirect.c - * Copyright (c) 2023 Loupe - * https://loupe.team - * - * This file is part of Chopper, licensed under the MIT License. - * - */ - -#include -#include "tlsf.h" - -//Redirect memory allocation calls: -struct _reent; -#define REENT struct _reent * _r __attribute__((__unused__)) - -void * malloc(size_t size) { return tlsf_malloc(size); } -void free(void* ptr) { tlsf_free(ptr); } -void * realloc(void* ptr, size_t size) { return tlsf_realloc(ptr, size); } -void * calloc(size_t items, size_t size) { return tlsf_calloc(items, size); } - -#ifndef __CYGWIN__ -void * _malloc_r(REENT, size_t size) { return tlsf_malloc(size); } -void _free_r(REENT, void* ptr) { tlsf_free(ptr); } -void * _realloc_r(REENT, void* ptr, size_t size) { return tlsf_realloc(ptr, size); } -void * _calloc_r(REENT, size_t items, size_t size) { return tlsf_calloc(items, size); } -#endif - -int const _force_tlfs_malloc = (int) malloc; - -__attribute__((weak,visibility("hidden"))) size_t bur_heap_size = 0; /* variable 'bur_heap_size' as dummy */ \ No newline at end of file diff --git a/src/Ar/StringExt/internal.c b/src/Ar/StringExt/internal.c index 136db29..a46a507 100644 --- a/src/Ar/StringExt/internal.c +++ b/src/Ar/StringExt/internal.c @@ -5,42 +5,16 @@ extern "C" { #endif -#include "includes/rtkBase.h" #ifdef __cplusplus }; #endif -// semaphores cause cycle time violations -//#define USE_SEMAPHORE - -#ifdef USE_SEMAPHORE -#include "includes/rtkSemaphore.h" - -static __thread RTK_SEM_H criticalSection[2] = {0}; - -#define CREATE(name, max, section) RtkCreateSemaphore(name, max, section) -#define ACQUIRE(section, wait) RtkAcquireSemaphore(section, wait) -#define RELEASE(section) RtkReleaseSemaphore(section) - -#else // if USE_SEMAPHORE -#include "includes/rtkCriticalSection.h" - -static __thread RTK_CRIT_SEC_H criticalSection[2] = {0}; - -#define CREATE(name, max, section) RtkCreateCriticalSection(name, section) -#define ACQUIRE(section, wait) RtkEnterCriticalSection(section) -#define RELEASE(section) RtkLeaveCriticalSection(section) -#endif // if USE_SEMAPHORE void lockSelect(n) { - if(n > (sizeof(criticalSection)/sizeof(criticalSection[0]) - 1)) return; - if(!criticalSection[n]) CREATE(0, 1, &criticalSection[n]); - RTK_ERROR err = ACQUIRE(criticalSection[n], 500L); + return; } void freeSelect(n) { - if(n > (sizeof(criticalSection)/sizeof(criticalSection[0]) - 1)) return; - if(!criticalSection[n]) return; - RTK_ERROR err = RELEASE(criticalSection[n]); + return; } diff --git a/src/Ar/StringExt/package.json b/src/Ar/StringExt/package.json new file mode 100644 index 0000000..11f373a --- /dev/null +++ b/src/Ar/StringExt/package.json @@ -0,0 +1,18 @@ +{ + "name": "@loupeteam/stringext", + "version": "0.0.0", + "description": "String manipulation functions for B&R Automation Studio (ANSIC library)", + "homepage": "https://loupeteam.github.io/LoupeDocs/libraries/stringext.html", + "scripts": {}, + "keywords": [], + "author": "Loupe", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/loupeteam/stringext" + }, + "lpm": { + "type": "library" + }, + "dependencies": {} +} \ No newline at end of file diff --git a/src/Ar/StringExt/time.cpp b/src/Ar/StringExt/time.cpp index 0b59533..2da4973 100644 --- a/src/Ar/StringExt/time.cpp +++ b/src/Ar/StringExt/time.cpp @@ -19,20 +19,29 @@ #include "string.h" +//TODO: These time functions don't seem to be supported in AS6 +// 1. Figure out if we can use them +// 2. Check if AS4 somehow, since they seem to at least build there +#ifndef __arm__ #define __XSI_VISIBLE 1 +#endif #include "time.h" unsigned long stringfTime(unsigned long dest, unsigned long destSize, unsigned long format, DATE_AND_TIME time) { if(!dest || !destSize || !format) return 0; // Return if null pointers or if destSize is 0 tm t = {}; +#ifndef __arm__ gmtime_r((time_t*)&time, &t); +#endif return strftime((char*)dest, destSize, (char*)format, &t); } DATE_AND_TIME stringpTime(unsigned long src, unsigned long format) { if(!src || !format) return 0; // Return if null pointers tm t = {}; +#ifndef __arm__ strptime((char*)src, (char*)format, &t); +#endif return mktime(&t); } diff --git a/src/Ar/StringExt/tlsf.h b/src/Ar/StringExt/tlsf.h deleted file mode 100644 index 40326e8..0000000 --- a/src/Ar/StringExt/tlsf.h +++ /dev/null @@ -1,105 +0,0 @@ -/** @file - ******************************************************************************* - ** - ** @brief - ** Two Levels Segregate Fit memory allocator (TLSF) - ** Written by Miguel Masmano Tello - ** - ** This code is released using a dual license strategy: GPL/LGPL - ** - ******************************************************************************* - ** $Header: https://brateggevsvn1.br-automation.co.at/svn/motion_gmc/trunk/GMC/Core/sys/tlsf.h 2314 2013-11-26 09:33:41Z eisenmannm $ - ******************************************************************************* - ** - ** @remark - ** This file is part of the common AR C++ System environment. - ** - ** @copyright - ** - ** Bernecker + Rainer Industrie-Elektronik Ges.m.b.H. - ** - ** @date 2012-06-21 File has been adopted by Markus Eisenmann - ** - ******************************************************************************/ - -#ifndef _ARSYS_TLSF_H_INCLUDED_ -#define _ARSYS_TLSF_H_INCLUDED_ - -#ifndef _SIZE_T_DEFINED -#include -#endif - -#ifdef __cplusplus -extern "C" -{ -#endif - -/** @cond COMPILER_SPECIFICS */ -#ifndef DECLSPEC_NOTHROW -#if defined(__GNUC__) && ((__GNUC__ > 3) || \ - ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3))) -#define DECLSPEC_NOTHROW __attribute__((__nothrow__)) -#elif (_MSC_VER >= 1200) && defined(__cplusplus) -#define DECLSPEC_NOTHROW __declspec(nothrow) -#else -#define DECLSPEC_NOTHROW -#endif -#endif - -#if defined(__ELF__) && (__GNUC__ >= 4) -#pragma GCC visibility push(hidden) -#define BURTLSF_DLLAPI __attribute__((visibility("default"), __nothrow__)) -#else -#if defined(_WIN32) || defined(__WINDOWS__) || defined(__MINGW32__) || defined(__CYGWIN__) -#if defined(_ARSVCREG_EXPORT) || defined(BURTLSF_EXPORTS) -#define BURTLSF_DLLAPI __declspec(dllexport) DECLSPEC_NOTHROW -#else -#define BURTLSF_DLLAPI __declspec(dllimport) DECLSPEC_NOTHROW -#endif -#else /* not Windows */ -#define BURTLSF_DLLAPI extern DECLSPEC_NOTHROW -#endif /* end Windows */ -#endif - /** @endcond */ - - DECLSPEC_NOTHROW size_t _tlsf_init_memory_pool(size_t mem_pool_size, void *mem_pool); - DECLSPEC_NOTHROW size_t _tlsf_add_new_area(void *area, size_t area_size, void *mem_pool); -#if !defined(NDEBUG) && (defined(DEBUG) || defined(_DEBUG)) - DECLSPEC_NOTHROW size_t _tlsf_get_used_size(void *mem_pool); - DECLSPEC_NOTHROW size_t _tlsf_get_max_size(void *mem_pool); -#endif - DECLSPEC_NOTHROW void _tlsf_destroy_memory_pool(void *mem_pool); - DECLSPEC_NOTHROW void *_tlsf_malloc_ex(size_t size, void *mem_pool); - DECLSPEC_NOTHROW void *_tlsf_free_ex(void *ptr, void *mem_pool); - DECLSPEC_NOTHROW void *_tlsf_realloc_ex(void *ptr, size_t new_size, void *mem_pool); - DECLSPEC_NOTHROW void *_tlsf_calloc_ex(size_t nelem, size_t elem_size, void *mem_pool); - -#if defined(__ELF__) && (__GNUC__ >= 4) -#pragma GCC visibility pop -#endif - - /*lint -esym(526, tlsf_*) prevent warning about undefined functions*/ - /*exos BURTLSF_DLLAPI*/ void *tlsf_malloc(size_t size); - /*exos BURTLSF_DLLAPI*/ void tlsf_free(void *ptr); - /*exos BURTLSF_DLLAPI*/ void *tlsf_realloc(void *ptr, size_t size); - /*exos BURTLSF_DLLAPI*/ void *tlsf_calloc(size_t nelem, size_t elem_size); - - /** @cond HIDDEN_INTERNALS */ - extern int const _force_tlfs_malloc; /*link symbol to force use of TLSF*/ - -#if defined(_ENFORCE_TLFS_REDIRECT) && !(defined(_CODECHECK_PASS) || defined(_CODEPARSE_PASS) || defined(__CDT_PARSER__) || defined(_lint) || defined(__DOXYGEN) || defined(_doxygen)) -#if (__GNUC__ >= 3) && !defined(WIN32) - __extension__ void *malloc(size_t) __asm__("tlsf_malloc"); - __extension__ void free(void *) __asm__("tlsf_free"); - __extension__ void *realloc(void *, size_t) __asm__("tlsf_realloc"); - __extension__ void *calloc(size_t, size_t) __asm__("tlsf_calloc"); -#else -#error "Forcing TSLF-redirection of DSA not supported!" -#endif -#endif - /** @endcond */ - -#ifdef __cplusplus -} // extern "C" -#endif -#endif /*_ARSYS_TLSF_H_INCLUDED_*/ \ No newline at end of file