IF delay5.Q THEN delay5(IN:=FALSE); out_Pos5_MPT1 := TRUE; getTime(cpuCntLoDW=>startPos5lo_MPT1,cpuCntHiDW=>startPos5high_MPT1); (*Zeitstempel für die Ermittlung der Dauer*) pos5_state_PGT1 := 10; END_IF; (*Sobalddas Shuttle in Position 6, wird die Dauer für den Positionswechsel ermittelt*) IF in_Pos6_MPT1 THEN getTime(cpuCntLoDW=>stopPos6lo_MPT1,cpuCntHiDW=>stopPos6high_MPT1); (*Zeitstempel für die Ermittlung der Dauer*) startPos5loDW_MPT1:=UDINT_TO_DWORD(startPos5lo_MPT1); (*Typenkonvertierung*) startPos5highDW_MPT1:=UDINT_TO_DWORD(startPos5high_MPT1); (*Typenkonvertierung*) stopPos6loDW_MPT1:=UDINT_TO_DWORD(stopPos6lo_MPT1); (*Typenkonvertierung*) stopPos6highDW_MPT1:=UDINT_TO_DWORD(stopPos6high_MPT1); (*Typenkonvertierung*) (*Berechnung der Dauer in Nanosekunden*) DauerPW5_MPT1 := UINT64_TO_LREAL( UInt64Sub64( ULARGE_INTEGER(stopPos6highDW_MPT1, stopPos6loDW_MPT1), ULARGE_INTEGER(startPos5highDW_MPT1, startPos5loDW_MPT1))); (*Umrechnung in Millisekunden und globaler Variable zuordnen*) g_DauerPW5_MPT1 := LREAL_TO_INT(DauerPW5_MPT1*0.0001);