This commit is contained in:
2026-01-08 11:08:17 +01:00
commit fe882dc444
311 changed files with 511562 additions and 0 deletions

View File

@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.11">
<POU Name="FB_IOL" Id="{8e843d37-b249-4ef7-8507-2564231e131d}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK FB_IOL EXTENDS Peripherie_FB
VAR_INPUT
Port : E_IolPort;
NoComErrorIndex : INT;
bInIgnoreComError : BOOL;
END_VAR
VAR_OUTPUT
bOutComOk : BOOL;
END_VAR
VAR
AmsNetId AT %I* : AMSNETID;
State AT %I* : USINT;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[IF iStationStatus.Soll.Stop THEN
Step := 0;
RETURN;
END_IF
bOutComOk := State = 3;
AlarmSend(iStation, NoComErrorIndex, FALSE, eReportType.Warning, sAvailableResponse.NoResponse, bOutComOk OR bInIgnoreComError);
]]></ST>
</Implementation>
<Method Name="Initialization" Id="{4876bc03-824c-47eb-ac78-b87fd9639833}">
<Declaration><![CDATA[METHOD Initialization : BOOL
VAR_INPUT
iStation : INT;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[PeripherieInitialization(iStation);]]></ST>
</Implementation>
</Method>
<Method Name="Read" Id="{52ce6629-1eaf-4603-a45f-35434588997e}">
<Declaration><![CDATA[METHOD Read : BOOL
VAR_INPUT
Addresss : PVOID;
Length : UINT;
Index : WORD;
Subindex : BYTE;
END_VAR
VAR_INST
fblRead : FB_IolRead;
Step : INT;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[CASE Step OF
0:
fblRead(bExecute := FALSE);
fblRead.sNetId := F_CreateAmsNetId(AmsNetId);
fblRead.nIolPort := Port;
fblRead.pDSTBuf := Addresss;
fblRead.cbBufLen := Length;
fblRead.nIndex := Index;
fblRead.nSubindex := Subindex;
Step := 10;
10:
fblRead(bExecute := TRUE);
IF fblRead.bError THEN
Step := 110;
ELSIF fblRead.bBusy THEN
Step := Step +1;
END_IF
11:
IF fblRead.bError THEN
Step := 110;
ELSIF fblRead.bDone THEN
Step := 20;
END_IF
fblRead(bExecute := FALSE);
20:
Read := TRUE;
Step := 0;
END_CASE]]></ST>
</Implementation>
</Method>
<Method Name="Write" Id="{42582b67-d5a5-40d6-9d4f-faa8812b2f69}">
<Declaration><![CDATA[METHOD Write : BOOL
VAR_INPUT
Addresss : PVOID;
Length : UINT;
Index : WORD;
Subindex : BYTE;
END_VAR
VAR_INST
fblWrite : FB_IolWrite;
Step : INT;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[CASE Step OF
0:
fblWrite(bExecute := FALSE);
fblWrite.sNetId := F_CreateAmsNetId(AmsNetId);
fblWrite.nIolPort := Port;
fblWrite.pSRCBuf := Addresss;
fblWrite.cbBufLen := Length;
fblWrite.nIndex := Index;
fblWrite.nSubindex := Subindex;
Step := 10;
10:
fblWrite(bExecute := TRUE);
IF fblWrite.bError THEN
Step := 110;
ELSIF fblWrite.bBusy THEN
Step := Step +1;
END_IF
11:
IF fblWrite.bError THEN
Step := 110;
ELSIF fblWrite.bDone THEN
Step := 20;
END_IF
fblWrite(bExecute := FALSE);
20:
Write := TRUE;
Step := 0;
END_CASE]]></ST>
</Implementation>
</Method>
</POU>
</TcPlcObject>

View File

@@ -0,0 +1,161 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.11">
<POU Name="StrahlSensor_FB" Id="{b66db517-dc18-43f0-9776-869c3e2c79de}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK StrahlSensor_FB EXTENDS Peripherie_FB
VAR_INPUT
NoComErrorIndex : INT;
rInTargetProgramm : USINT;
rOutCurrentProgramm : USINT;
bInChangeProgramm : BOOL;
bInReadProgramm : BOOL;
bOutSensorOn AT %Q* : BOOL := FALSE;
bOutReadingOk : BOOL;
END_VAR
VAR_OUTPUT
rInPositionZ : LREAL;
rInPositionX : LREAL;
END_VAR
VAR
IO_Link : FB_IOL;
InPositionZ AT %I* : REAL;
InPositionX AT %I* : REAL;
PowerOnIndex : INT;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[IO_Link.bInIgnoreComError := NOT bOutSensorOn;
IO_Link();
IF bInChangeProgramm THEN
IF ChangeParameter(rInTargetProgramm) THEN
bInChangeProgramm := FALSE;
END_IF
END_IF
IF bInReadProgramm THEN
IF ReadProgramm() THEN
bInReadProgramm := FALSE;
END_IF
END_IF
MediaArray[iStation][PowerOnIndex].Input := IO_Link.bOutComOk;
bOutReadingOk := IO_Link.bOutComOk;
IF InPositionZ = InPositionZ THEN
rInPositionZ := InPositionZ;
ELSE
rInPositionZ := 0;
bOutReadingOk := FALSE;
END_IF
IF InPositionX = InPositionX THEN
rInPositionX := InPositionX;
ELSE
rInPositionX := 0;
bOutReadingOk := FALSE;
END_IF]]></ST>
</Implementation>
<Method Name="ChangeParameter" Id="{059536c5-2eb4-4d32-b6b3-7d1b6b2dfb5f}">
<Declaration><![CDATA[METHOD ChangeParameter : BOOL
VAR_INPUT
In : USINT;
END_VAR
VAR_INST
DATA : USINT;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[bOutSensorOn := TRUE;
IF NOT IO_Link.bOutComOk THEN
RETURN;
END_IF
CASE Step OF
0:
IF ReadProgramm() THEN
IF rOutCurrentProgramm = In THEN
ChangeParameter := TRUE;
ELSE
Step := 10;
END_IF
END_IF
10:
IF WriteProgramm(In) THEN
Step := 0;
END_IF
END_CASE]]></ST>
</Implementation>
</Method>
<Method Name="Initialization" Id="{4017ab3d-3bd2-4558-9a12-ca6f3af9e57a}">
<Declaration><![CDATA[METHOD Initialization : BOOL
VAR_INPUT
iStation : INT;
PowerOnIndex : INT;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[PeripherieInitialization(iStation);
IO_Link.Initialization(iStation);
IO_Link.NoComErrorIndex := NoComErrorIndex;
IO_Link.Port := E_IolPort.Port1;
bInReadProgramm := TRUE;
THIS^.PowerOnIndex := PowerOnIndex;
MediaArray[iStation][PowerOnIndex].ServiceName[0] := 'Beam Sensor$NTurn On';
MediaArray[iStation][PowerOnIndex].ServiceName[1] := 'Strahlsensor$NEinschalten';
MediaArray[iStation][PowerOnIndex].bReferenceControl REF= bOutSensorOn;
MediaArray[iStation][PowerOnIndex].InputAvailable := TRUE;]]></ST>
</Implementation>
</Method>
<Method Name="ReadProgramm" Id="{f138b10a-09b4-44c4-be30-883a8db36601}">
<Declaration><![CDATA[METHOD ReadProgramm : BOOL
VAR_INST
Step : INT;
DATA : USINT;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[IF NOT IO_Link.bOutComOk THEN
RETURN;
END_IF
IF IO_Link.Read(ADR(DATA), SIZEOF(DATA), 16#52, 0) THEN
rOutCurrentProgramm := DATA;
ReadProgramm := TRUE;
END_IF]]></ST>
</Implementation>
</Method>
<Method Name="WriteProgramm" Id="{1ac9be80-87f8-434a-b5de-799e8d668a19}">
<Declaration><![CDATA[METHOD WriteProgramm : BOOL
VAR_INPUT
In : USINT;
END_VAR
VAR_INST
DATA : USINT;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[IF NOT IO_Link.bOutComOk THEN
RETURN;
END_IF
DATA := In-1;
IF IO_Link.Write(ADR(DATA), SIZEOF(DATA), 16#3E7, 0) THEN
WriteProgramm := TRUE;
END_IF]]></ST>
</Implementation>
</Method>
</POU>
</TcPlcObject>

File diff suppressed because it is too large Load Diff