Plc asal sayı belirleyen program

ReIoaded

Üye
Katılım
9 Eyl 2019
Mesajlar
5
Puanları
1
Yaş
26
0 dan 100e sayan ve arasındakileri belirleyen bir program ladderlarla yazılabilir mi? Nasıl yapabilirim yardımcı olur msuunuz
*Arasındaki asal sayıları belirleyen
 
Moderatör tarafında düzenlendi:
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.
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
counter , matematiksel komutlar ile bu programı yazabilirsin. 2 tane hmi 'a girilecek değer gönder . sonrasında o değerleri counter a at. alt limitte saymaya başlasın üst limittede programı sonlandırsın gelen asalları da word'e atarsan sorun çözülür sanırım. akşama yapmaya çalışayım, yaparsan nasıl yaptığımı anlatırım ama projeyi sen yapacaksın projeyi atmam :D
 
Kod:
PROGRAM PLC_PRG
VAR
    sayac, sayi: INT;
    sonuc:ARRAY[0..100] OF  INT;
END_VAR

Kod:
    FOR sayac:=0 TO (sayi-1) DO
        IF sayac >1 THEN
            IF sayac = 2 OR sayac = 3 OR sayac = 5  THEN
                sonuc[sayac] := sayac;
            ELSE
                IF (sayac MOD 2) = 0 OR (sayac MOD 3) = 0 OR (sayac MOD 10) = 5   THEN
                    ;
                ELSE
                    sonuc[sayac] := sayac;
                END_IF;
            END_IF;
        END_IF;
    END_FOR;
 
Son düzenleme:
Kod:
IF HesaplamaBasla THEN   (* HesaplamaBasla(bool) komutuyla hesaplamaya baslanır *)

    FOR i:=0 TO 100 DO   (* Daha önce hesaplama varsa tüm Array içi önce sıfırlanır *)
        sonuc[i]  := 0;
    END_FOR

    HesaplamaOK    := FALSE;
    HesaplamaBasla := FALSE;
    j := 0;

    FOR sayac:=0 TO (sayi-1) DO  (* sayi degeri 100'e ayarlanmalı, hesaplamaya başlamadan önce *)
        IF sayac >1 THEN    (* Asal sayılar aranır *)
            IF sayac = 2 OR sayac = 3 OR sayac=5 THEN
                sonuc[j] := sayac;  (* 2,3 ve 5 sayıları aşağıdaki formulden bağımsız zaten asaldır *)
                j := j +1;
            ELSE
               (* Sayı>5 durumunda 2,3 veya 5 e bölünüyorsa Array içine yazılmaz! *)
                IF (sayac MOD 2) = 0 OR (sayac MOD 3) = 0 OR   (sayac MOD 10) = 5   THEN
                    ;
                ELSE
                    sonuc[j] := sayac;
                    j := j +1;
                END_IF;
            END_IF;
        END_IF;
    END_FOR;

    HesaplamaOK := TRUE;
END_IF  (* HesaplamaBasla komutu if sonu *)
 
Son düzenleme:

Forum istatistikleri

Konular
127,959
Mesajlar
913,914
Kullanıcılar
449,606
Son üye
rasit.

Yeni konular

Geri
Üst