BaseSystemLib hinzugefügt

This commit is contained in:
2026-06-29 16:28:48 +02:00
parent a51a0c6fd1
commit 14a1c5172d
168 changed files with 6797 additions and 0 deletions
@@ -0,0 +1,8 @@
LibraryType:
Guid: 7462bbc8-2811-4b0d-bdf1-031a6aa286ee
LibraryVersion:
VersionNumber: 0.0.6
Author: e.yueksel
IsDefault: true
Comment:
de-DE: Inkonsistenz bereinigen
@@ -0,0 +1,9 @@
DocumentHash:
- FileName: FC_ParseCheckForEnd.scl
Hash: 9/ZVb2UiTOhclEguONKnCzWJfK1tn9Z9sOJsqztg35M=
LibraryMetaFileHash: l4eOdmK051pj+qL8jJiaNVxTNzEGtoXFkqzf7GlEhpQ=
LibraryVersion:
Guid: c0b69439-324f-4624-bfa7-02fc724e52f7
DependsOn:
- TypeName: UDT_TelegramDefinition
VersionNumber: 0.0.5
@@ -0,0 +1,44 @@
FUNCTION "FC_ParseCheckForEnd" : Bool
TITLE = FC_ParseCheckForEnd
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : 'e.yueksel'
FAMILY : Parser
VERSION : 0.1
//Diese Baustein überprüft neue Telegramme auf Endekennung entsprechend der Telegrammdefinition.
VAR_INPUT
bInNewData : Byte; // The byte we compare to the end marker
arInBuffer : Array[*] of Byte; // The buffer (Array of bytes) we are currently parsing
nInBufferLen : DInt; // Length of the buffer
stInTelegramDefinition : "UDT_TelegramDefinition"; // The definition of the telegram (Parameters)
END_VAR
VAR_TEMP
j : DInt; // Loop variable
END_VAR
BEGIN
IF (#stInTelegramDefinition.nEndMarkerLen > 0) THEN
IF (#bInNewData = #stInTelegramDefinition.sEndMarker[#stInTelegramDefinition.nEndMarkerLen] AND
#nInBufferLen >= UDINT_TO_DINT(#stInTelegramDefinition.nStartMarkerLen + #stInTelegramDefinition.nEndMarkerLen)) THEN
FOR #j := 0 TO UDINT_TO_DINT(#stInTelegramDefinition.nEndMarkerLen - 1) DO
IF (#arInBuffer[#nInBufferLen - 1 - #j] <> #stInTelegramDefinition.sEndMarker[UDINT_TO_DINT(#stInTelegramDefinition.nEndMarkerLen) - #j]) THEN
#FC_ParseCheckForEnd := FALSE;
RETURN;
END_IF;
END_FOR;
IF (#stInTelegramDefinition.nLength > 0) THEN
#FC_ParseCheckForEnd := (#nInBufferLen = UDINT_TO_DINT(#stInTelegramDefinition.nLength));
ELSE
#FC_ParseCheckForEnd := TRUE;
END_IF;
ELSE
#FC_ParseCheckForEnd := FALSE;
END_IF;
ELSE
#FC_ParseCheckForEnd := (#nInBufferLen = UDINT_TO_DINT(#stInTelegramDefinition.nLength));
END_IF;
END_FUNCTION
@@ -0,0 +1,8 @@
LibraryType:
Guid: 9058dc9e-b9e7-4405-8e1d-e48b9273bd5f
LibraryVersion:
VersionNumber: 0.0.6
Author: e.yueksel
IsDefault: true
Comment:
de-DE: Inkonsistenz bereinigen
@@ -0,0 +1,9 @@
DocumentHash:
- FileName: FC_ParseCheckForStart.scl
Hash: 9k9Nch0mhI2FlPOZygpnN+PfrnpwH9iV2hqhIx8frpQ=
LibraryMetaFileHash: RvU2tTT+yCMb2ZwWGKDCVMASSZnGv/yIPXb59NkUwLY=
LibraryVersion:
Guid: 592d2c58-e2fc-4ba6-a0b2-d15ffd39706c
DependsOn:
- TypeName: UDT_TelegramDefinition
VersionNumber: 0.0.5
@@ -0,0 +1,39 @@
FUNCTION "FC_ParseCheckForStart" : Bool
TITLE = FC_ParseCheckForStart
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : 'e.yueksel'
FAMILY : Parser
VERSION : 0.1
//Diese Baustein überprüft neue Telegramme auf Anfangskennung entsprechend der Telegrammdefinition.
VAR_INPUT
bInNewData : Byte; // The byte we compare to the Start marker
arInBuffer : Array[*] of Byte; // The buffer (Array of bytes) we are parsing
nInBufferLen : DInt; // Length of the buffer
stInTelegramDefinition : "UDT_TelegramDefinition"; // The definition of the telegram (Parameters)
END_VAR
VAR_TEMP
j : DInt; // Loop variable
END_VAR
BEGIN
IF (#stInTelegramDefinition.nStartMarkerLen > 0) THEN
IF (#bInNewData = #stInTelegramDefinition.sStartMarker[#stInTelegramDefinition.nStartMarkerLen] AND
(#nInBufferLen >= UDINT_TO_DINT(#stInTelegramDefinition.nStartMarkerLen))) THEN
FOR #j := 0 TO UDINT_TO_DINT(#stInTelegramDefinition.nStartMarkerLen - 1) DO
IF (#arInBuffer[#nInBufferLen -1 - #j] <> #stInTelegramDefinition.sStartMarker[UDINT_TO_DINT(#stInTelegramDefinition.nStartMarkerLen)-#j]) THEN
#FC_ParseCheckForStart := FALSE;
RETURN;
END_IF;
END_FOR;
#FC_ParseCheckForStart := TRUE;
ELSE
#FC_ParseCheckForStart := FALSE;
END_IF;
ELSE
#FC_ParseCheckForStart := FALSE; // In case there is no start pattern specified, the parser state machine recognizes the telegram start itself regarding to its state.
END_IF;
END_FUNCTION