Konfiguration der TM5/TM7-Module

Allgemeines

Derzeit kann die Standardkonfiguration der TM5-Module nicht vollständige über die SPS-Konfiguration von Logic Builder durchgeführt werden.

Deshalb muss das Programm für die Konfiguration der Halbleiterscheiben (Wafer) verwendet werden.

Die nachstehende Liste enthält die Parameter für die Standardkonfiguration der TM5-Module.

Um die Konfiguration zu erleichtern, wird im Unterverzeichnis ...\Logic Builder\Vx.x.x.x\Demo Projects ein Demoprojekt (PD_Demoproject_TM5NS31WriteParameters_Vx.x.x.x.project) zur Verfügung gestellt.


----------------------------------------------------------------------
FUNCTION FC_TM5WriteConfig : DINT
VAR_INPUT
  i_stLogAddr : ST_LogicalAddress;
  i_usiTM5Address : USINT;
  i_uiRegister : UINT;
  i_dwValue : DWORD;
END_VAR
VAR
  dwIDN : DWORD;
   abyConfigData : ARRAY [0..7] OF BYTE := [16#04,16#01,16#00,16#00,16#00,16#00,16#00,16#00];
END_VAR

----------------------------------------------------------------------
//do not change this code
//15xx.y.20
dwIDN := 1501;  // data block number (parameter set = 0; SP parameter = 0)
dwIDN := dwIDN OR (SHL(20, 16));  // structur element 20
dwIDN := dwIDN OR (SHL(USINT_TO_BYTE(i_usiTM5Address), 24));  // structur instance
abyConfigData[0] := 4;  //Protokoll ID: 4
abyConfigData[1] := 1;  //IO Register Records [1..16]
//register
abyConfigData[2] := WORD_TO_BYTE(UINT_TO_WORD(i_uiRegister));
abyConfigData[3] := WORD_TO_BYTE(SHR(UINT_TO_WORD(i_uiRegister), 8));
// value
abyConfigData[4] := DWORD_TO_BYTE(i_dwValue);
abyConfigData[5] := DWORD_TO_BYTE(SHR(i_dwValue, 8));
abyConfigData[6] := DWORD_TO_BYTE(SHR(i_dwValue, 16));
abyConfigData[7] := DWORD_TO_BYTE(SHR(i_dwValue, 24));
 FC_TM5WriteConfig := FC_SercosWriteServiceData(i_stLogAddr := i_stLogAddr, i_dwIDN := dwIDN, i_wType := 6, i_dwPointerToData := ADR(abyConfigData), i_wMaxDataLen := 8);
// blocking function; typical execution time will not exceed 20ms (depends on number of devices and other service channel traffic e.g. EPAS) adjust cycle time and watch time accordingly

----------------------------------------------------------------------
----------------------------------------------------------------------
PROGRAM SR_ConfigureTM5
VAR
  xInit : BOOL := TRUE;
  diReturnValue : DINT;
  xSetFilter: BOOL;
  dwValueFilterTime : DWORD := 70;
END_VAR
VAR CONSTANT
  c_wRegisterFilterTime : WORD := 18;
END_VAR

----------------------------------------------------------------------
IF xInit THEN
  BC_TM5NS31.OutputsActiveSet := TRUE;  //activate the outputs
  xInit := FALSE;
END_IF
IF xSetFilter THEN
  // TM5SDI6D set Input Filter
  diReturnValue := FC_TM5WriteConfig(
     i_stLogAddr:=BC_TM5NS31.stLogicalAddress,
     i_usiTM5Address := 4,
     i_uiRegister:= c_wRegisterFilterTime,
     i_dwValue:= dwValueFilterTime);
  xSetFilter := FALSE;
END_IF