HMI ekrandan seçim yaptırma hakkında

TKAY

Üye
Katılım
4 Ağu 2007
Mesajlar
169
Puanları
1
Yaş
39
Merhaba arkadaşlar;
Siemens s71200 plc ve beijer hmi ekranım mevcut.
Bu ekranda 15 tane istasyon butonu var. Bu butonlara 1 ile 50 arasında istasyon numarası seçtireceğim.
Ancak aynı istasyon numarasını iki kez seçtirmemem lazım.
Yani 15 tane butona 1 ile 50 arası birbirinden farklı numara seçtirmem lazım.
Bunu nasıl kontrol altında tutabilirim?
 
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
Böyle bir kod işnizi çözer mi?


FOR i := 1 TO 15 DO
Girilen_Numara := HMI_Input; // HMI'dan gelen numara
// Girilen numara daha önce seçilmiş mi?
IF Secilen_Numaralar[Girilen_Numara] = FALSE THEN
// Benzersiz numara, atama yap
Istasyon_Numaralari := Girilen_Numara;
Secilen_Numaralar[Girilen_Numara] := TRUE;
 
Böyle bir kod işnizi çözer mi?


FOR i := 1 TO 15 DO
Girilen_Numara := HMI_Input; // HMI'dan gelen numara
// Girilen numara daha önce seçilmiş mi?
IF Secilen_Numaralar[Girilen_Numara] = FALSE THEN
// Benzersiz numara, atama yap
Istasyon_Numaralari := Girilen_Numara;
Secilen_Numaralar[Girilen_Numara] := TRUE;
girilen numarayı hangi istasyon butonuna yazdıysam o numara o butona atanacak
burada girilen numara değişkeninin daha önce girildiğini nasıl takip etmeliyim çözemedim
 
Tamam şöyle yapılabilir:
Her bir buton için, girilen numaranın "tek"(benzersiz) olup olmadığını kontrol eden bir mantık gerekir:

// Girilen numara 1-50 aralığında mı?
IF (Girilen_Numara >= 1) AND (Girilen_Numara <= 50) THEN
// Girilen numara daha önce seçilmiş mi?
IF Secilen_Numaralar[Girilen_Numara] = FALSE THEN
// Benzersiz numara, atama yap
Istasyon_Numaralari := Girilen_Numara;
Secilen_Numaralar[Girilen_Numara] := TRUE;
ELSE
// Aynı numara seçildi, hata durumu
HMI_Error_Message := 'Numara zaten seçilmiş!';
END_IF
ELSE
// Geçersiz numara, hata durumu
HMI_Error_Message := 'Geçersiz numara!';
END_IF
END_FOR
 
Ayrıca, değerlendirilmesi gereken bir "seneryo" daha var.

Eğer bir butondan numara kaldırıldığında yani, kullanıcı, bir butona atanmış olan numarayı iptal etmek veya değiştirmek istediğinde, o numaranın sistemde tekrar kullanılabilir hale gelmesini sağlamak gerekir.
Bu durumda, eski numaranın sistemde artık kullanılmadığını işaretlemek ve yeni numaranın " tek, benzersiz" olup olmadığını kontrol etmek gerekir.

Bu senaryo için, önceki numaranın kaydedilip silinebilmesi için ilave kod gereklidir.
Birinci aşamanı tamamlanınca yazın.
 

Forum istatistikleri

Konular
128,700
Mesajlar
919,797
Kullanıcılar
450,723
Son üye
xzapotax

Yeni konular

Geri
Üst