SA0004: Çıkışta çoklu yazma erişimiPermalink

Birden fazla konuma yazılan çıkışları tespit eder

Gerekçe: Bir çıktı kodun farklı yerlerine yazıldığında sürdürülebilirlik azalır. Bu durumda, süreçte gerçekten etkisi olan yazma erişiminin hangisi olduğu belirsizdir. İyi uygulama, çıktı değişkenlerini yardımcı değişkenlerde hesaplamak ve hesaplanan değeri döngünün sonunda bir konuma atamaktır.

Önemliymiş: Yüksek

PLCopen kuralı: CP12

Bir çıktı değişkeni (‎VAR_IN_OUT‎) ‎IF‎ ve ‎CASE‎ deyimlerinin farklı dallarına yazıldığında bir hata verilmez.

Bir pragma bu kuralı devre dışı bırakamaz.

Örnek

VAR_GLOBAL
	g_xVar AT %QX0.0 : BOOL ; 
	g_iTest AT %QW0 : INT ;
END_VAR

PROGRAM PLC_PRG
IF g_iCondition < INT#0 THEN
	g_xVar := TRUE;
	g_iTest := INT#12;
END_IF

CASE g_iCondition OF
	INT#1:
		g_xVar := FALSE;
	INT#2:
		g_iTest := INT#11;
	ELSE
		g_xVar := TRUE;
		g_iTest := INT#9;
END_CASE

--> SA0004: Multiple write access on output '%QX0.0'
--> SA0004: Multiple write access on output '%QW0'