Konfiguration der TM5/TM7-Module
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