Bir temel fonksiyon bloğundan türetilen bir fonksiyon bloğu tarafından üzerine yazılan
bir temel fonksiyon bloğunun FB_Init metodundaki metot çağrılarını tespit eder
Gerekçe: Bu durumlarda, üzerine yazılan yöntemlerdeki değişkenler temel FB'de başlatılmamış olabilir.
Önemliymiş: Yüksek
Örnek
FB_A işlev bloğu FB_Init ve Meth_MyInit yöntemlerini içerir. FB_Init, başlatma için Meth_MyInit adresini çağırır. FB_B fonksiyon bloğu FB_A adresinden türetilmiştir. PLC_PRG adresi FB_B adresini çağırır ve bu nedenle mbMyDintB değişkenini başlatılmadan önce kullanır. FB_B.Meth_MyInit adresi FB_A.Meth_MyInit adresinin üzerine yazar.
FUNCTION_BLOCK FB_A VAR mbMyDintA : DINT; END_VAR FUNCTION_BLOCK FB_B EXTENDS FB_A VAR mbMyDintB : DINT; END_VAR METHOD FB_Init : BOOL VAR_INPUT bInitRetains:BOOL; bInCopyCode:BOOL; END_VAR VAR diDummy:DINT; // SA0106 END_VAR mbMyDintA := 123; diDummy := Meth_MyInit(); METHOD Meth_MyInit : DINT VAR_INPUT END_VAR mbMyDintB := 123; // access to member of FB_B PROGRAM PLC_PRG VAR g_BInst : FB_B; xVar : BOOL; END_VAR xVar := g_BInst.fb_init(TRUE, TRUE); //this instruction causes the following order of initializations: //FB_A.fb_init //FB_B.Meth_MyInit // SA0106 //FB_B.fb_init //FB_B.Meth_MyInit --> SA0106: Virtual method call 'Meth_MyInit' in FB_INIT
Ayrıca bakınız