Eylemlerde, yöntemlerde ve fonksiyon bloklarının özelliklerinde özyinelemeli çağrıları algılar. Ayrıca sanal işlev çağrılarından ve arayüz çağrılarından kaynaklanan olası özyinelemeleri de tespit eder.
Gerekçe: Özyinelemeler deterministik olmayan davranışlara yol açar ve bu nedenle bir hata kaynağıdır.
Önemliymiş: Orta
PLCopen kuralı: CP13
Örnek
Aşağıdaki yöntem Call FB_Test fonksiyon bloğuna atanmıştır:
FUNCTION_BLOCK FB_Test VAR bParameter: BOOL; END_VAR METHOD Call : BOOL VAR_INPUT END_VAR Call := THIS^.Call(); //SA0160
PLC_PRG programı FB_Test adresini çağırır:
PROGRAM PLC_PRG VAR fbTest : FB_Test; bValue : BOOL; END_VAR bValue := fbTest.bParameter; fbTest.Call(); --> SA0160: Recursive call detected: 'PLC_PRG -> FB_Test.Call -> FB_Test.Call
Ayrıca bakınız