Initial
This commit is contained in:
130
PLC/2 Spinner/POUs/Peripherie/StrahlSensor/FB_IOL.TcPOU
Normal file
130
PLC/2 Spinner/POUs/Peripherie/StrahlSensor/FB_IOL.TcPOU
Normal 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>
|
||||
161
PLC/2 Spinner/POUs/Peripherie/StrahlSensor/StrahlSensor_FB.TcPOU
Normal file
161
PLC/2 Spinner/POUs/Peripherie/StrahlSensor/StrahlSensor_FB.TcPOU
Normal 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
Reference in New Issue
Block a user