Aşağıda temel bir örnek proje kullanarak, bir statik analizi yapılandırmak ve çalıştırmak için en önemli adımları ve seçenekleri bulacaksınız.
Gereksinimler: CODESYS Static Analysis yüklü.
Örnek proje
Örnek projeyi çoğaltmak istiyorsanız, standart bir proje oluşturun ve POU'ları cihaz ağacında uygulamanın altına yerleştirin. Ardından lokal CODESYS Control Win V3 adresinize bağlantı için iletişim ayarlarını yapılandırın.
FUNCTION_BLOCK fb1
VAR_INPUT
iVar_fb1in1 : INT;
ivar_fb1in2 : INT;
rVar_fb1in3 : REAL;
END_VAR
VAR_OUTPUT
iVar_fb1out:INT;
END_VAR
VAR
P_fSampleProperty : INT;
rVar : REAL;
PRO : BOOL;
END_VAR
iVar_fb1out:=iVar_fb1in1 + 1;
FUNCTION_BLOCK fb2
VAR_INPUT
iVar_fb2in:INT;
END_VAR
VAR_OUTPUT
iVar_fb2out:INT;
END_VAR
VAR
END_VAR
PROGRAM PLC_PRG
VAR
fb1_inst: fb1;
fb2_inst: fb2;
END_VAR
fb1_inst(iVar_fb1in1 := 99);
fb2_inst(iVar_fb2in := 22);
fb2_inst(iVar_fb2in := 1);
Kurallara uygunluğun kontrol edilmesi
-
«Build Static Analysis Settings» adresini tıklayın. «Rules» sekmesine geçin.
Tüm olası kural kontrollerini içeren bir liste görüntülenir. Bunlar topikal kategoriye göre bir ağaç yapısında düzenlenmiştir. Kural numarası parantez içinde eklenir (örneğin, «Kullanılmayan değişkenler (33)» kategorisinde «Kullanılmayan nesneler»).
-
İlk satırın onay kutusuna birkaç kez tıklayın («Rules» düğümü).
Tıklandığında etkinleştirme durumu değiştirilir. Tüm ağaçtaki onay kutularında kırmızı veya turuncu onay işareti vardır veya hiç onay işareti yoktur.
-
Bu şekilde, kırmızı onay işareti olan tüm girişleri etkinleştirin. Bu, CODESYS Static Analysis adresinin tespit edilen tüm kural ihlallerini hata olarak bildirmesi gerektiği anlamına gelir.
-
«Build Static Analysis Run Static Analysis» adresini tıklayın.
Hatalar mesaj görünümünde raporlanır. Mesaj metinleri
ile etiketlenir ve "SA<kural numarası>" hata numarası ile başlar. -
İlk mesaja çift tıklayın
SA0033: Unused variables 'iVar_fb2out'.Odak,
fb2fonksiyon bloğunun bildirim kısmına gider ve ilgili değişken seçilir. Değişken bildirilmiş ancak kullanılmamıştır. Bu, Kural 33'te kontrol edilir («Kullanılmayan değişkenler»). Kodda, ilgili konumların altı dalgalı bir çizgi ile çizilmiştir. -
Analizin otomatik olarak yürütülmesini test etmek için «Build Static Analysis Settings» öğesine tıklayın. «Ayarlar» sekmesinde, «Statik analizi otomatik olarak gerçekleştir» seçeneğini belirleyin. İletişim kutusundan çıkmak için «OK» öğesine tıklayın.
-
«Online Giriş» adresini tıklayın.
Bir iletişim istemi derleme hatalarının mevcut olduğunu gösterir. Kod analizi tarafından bildirilen hatalar mesaj görünümünde tekrar görüntülenir.
-
«Build Static Analysis Settings» adresini tıklayın. «Kurallar» sekmesine geçin. Şimdi iletişim kutusundaki tüm kuralları temizleyin. «Kullanılmayan Nesneler» kategorisinde, bir uyarı bildirmek için Kural SA0035'i («Kullanılmayan girdi değişkenleri (35)») turuncu renkli bir onay işaretiyle açıkça etkinleştirin. Kural metni için araç ipucuna bakın: «Bu kural aşağıdaki PLCopen kurallarına karşılık gelir: CP24»). İletişim kutusundan çıkmak için «OK» öğesine tıklayın.
Proje ayarlarında «OK» öğesine tıklayın.
-
«Build Generate Code» adresini tıklayın.
Analiz otomatik olarak gerçekleştirilir. Mesaj görünümünde iki hata rapor edilir:
§ SA0035: Unused input variable 'iVar_fb1in2ve§ SA0035: Unused input variable 'iVar_fb1in3. -
Mesaja çift tıklayın ve beyanı yorumlayın veya kaldırın. Kod analizini tekrar gerçekleştirin.
Hiçbir hata mesajı görüntülenmez.
Tanımlanmış adlandırma kurallarına uygunluğun kontrol edilmesi
-
«Build Static Analysis Settings» adresini tıklayın. «Naming Conventions» sekmesine tıklayın.
Değişkenlerin ve program bloklarının genişletilebilir kategorilerine bölünmüş bir ağaç yapısında bir tablo görürsünüz.
-
«Değişkenler için Önekler» - «Türler için Önekler» kategorisini genişletin ve «Önek» sütununda
Iiçin «INT (14)» belirtin.«Prefixes for POUs» - «Prefixes for POU Type» kategorisini genişletin: «Önek»sütununda, «PROGRAM (122)» için
progve «FONKSİYONBLOK (103)» içinfbadreslerini belirtin. -
«Önekten sonraki ilk karakter büyük harf olmalıdır» seçeneğini seçin. Diğer tüm seçenekleri temizleyin.
-
«Build Static Analysis Run Static Analysis» adresini tıklayın.
Hata mesajları:
-
NC0102: Invalid name 'PLC_PRG': Expect prefix 'prog'çünkü PLC_PRG gerekli ön eke sahip değildir -
First character after prefix should be uppercase: 'ivar_fb1in2'çünküivar_fb1in2 : INT;infb1 -
NC0014: Invalid variable name P_fSampleProperty: Expect prefix 'i'çünkü bu tamsayı değişkeni gerekli ön eke sahip değildir
-
Yasak sembolleri kontrol etme
-
«Build Static Analysis Settings» adresini tıklayın. «Yasak Semboller» sekmesine tıklayın.
Bir satır editörü, kodda kullanılmaması gereken karakter dizilerinin belirtilmesine olanak tanır.
-
Örnek olarak, boş satıra çift tıklayın ve
PROgeçersiz karakter dizesini doğrudan yazın. Bir sonraki boş satıra çift tıklayın ve giriş yardımını açmak için
adresine tıklayın. «Standart Tipler» adresinden «GERÇEK» adresini seçin. İletişim kutusundan çıkmak için «OK» öğesine tıklayın. -
«Build Static Analysis Run Static Analysis» adresini tıklayın.
Hata mesajları
Forbidden symbol 'REAL'veForbidden symbol 'PRO'mesaj görünümünde görüntülenir. İlgili kod satırına atlamak için mesaj metnine çift tıklayın.
Metriklerin görüntülenmesi
CODESYS Static Analysis kod üzerinde seçilen testleri gerçekleştirir ve sonuçları bir görünümde görüntüleyebilirsiniz.
-
«Build Static Analysis Settings» adresini tıklayın. «Metrics» sekmesine tıklayın.
CODESYS Static Analysis 'un koda uyguladığı metrikler bir tabloda listelenmiştir.
-
Bu örnek için «Girdi sayısı değişkenleri» metriğini etkinleştirin ve izin verilen değer aralığını belirtin: alt sınır
1ve üst sınır2. Bazı ölçümleri daha etkinleştirin, örneğin «Kod boyutu» ve «Çağrı sayısı». -
«Build Static Analysis View Standard Metrics» adresini tıklayın.
Görünüm, örnek programın her «Program birimi» için bir satır içeren bir tablo içerir. Etkinleştirilen her metrik için ölçülen değerleri gösteren bir sütun bulunmaktadır. Ayarlarda tanımlanan değer aralığının dışında kalan değerler kırmızıyla vurgulanır. Bu özel örnekte, bu en azından «PLC_PRG/Inputs» alanıdır çünkü bu POU'daki giriş değişkenlerinin sayısı
2tanımlı üst sınırından fazladır.
Ayrıca bakınız
Ayrıca bakınız