Inbetriebnahme
20:
IF(nSTATE_WRITE_COE = 0) THEN
// Scaling gain done within CoE for the device
bScaleGainStart := FALSE;
bScaleGainDone := TRUE;
nSTATE_SCALE_GAIN := 0; // Set initial state
END_IF
END_CASE
END_IF
IF (nSTATE_WRITE_COE > 0) THEN
IF bWriteToCoEEnable THEN
CASE nSTATE_WRITE_COE OF
10:
// Prepare CoE write access
fb_coe_write(
sNetId:= userNetId,
nSlaveAddr:= nUserSlaveAddr,
nIndex:= nCoEIndexScaler,
bExecute:= FALSE,
tTimeout:= T#1S
);
nSTATE_WRITE_COE := nSTATE_WRITE_COE + 10;
20:
// Write nDINT_Value to CoE Index "Scaler":
fb_coe_write(
nSubIndex:= nSubIndex,
pSrcBuf:= ADR(nDINT_Value),
cbBufLen:= SIZEOF(nDINT_Value),
bExecute:= TRUE
);
nSTATE_WRITE_COE := nSTATE_WRITE_COE + 10;
30:
fb_coe_write();
IF NOT fb_coe_write.bBusy THEN
nSTATE_WRITE_COE := 0;
END_IF
END_CASE
ELSE
nSTATE_WRITE_COE := 0;
END_IF
END_IF
IF(fb_coe_write.bError) AND NOT bError THEN
bError := TRUE;
nADSErrId := fb_coe_write.nErrId;
// CoE write acccess error occured: reset all
nSTATE_WRITE_COE := nMainCal_State := 0;
bScaleOffsetDone := bScaleOffsetStart := FALSE;
bScaleGainDone := bScaleGainStart := FALSE;
END_IF
94
Version: 1.2
EPP3504-0023