merhaba;
IF'ten başlarsak belirlediğin bir koşula göre işlem yapıyorsun:
örneğin;
IF reg1 > 5 THEN (reg1 sinyali/değeri 5ten büyükse)
Set do1; (do1 çıkışını setle)
Set do2; (do2 çıkışını setle/ yani çıkış ver)
ENDIF (İF döngüsünün sonu, alt satırdan devam eder)
farklı bir kullanımı da;
IF reg1 > 5 THEN (yine reg1 değeri 5ten büyükse)
Set do1;
Set do2; (do1 ve do2 çıkışlarını setle / "1" yap)
ELSE (reg1 5ten büyük değilse)
Reset do1;
Reset do2; (do1 ve do2 çıkışlarını resetle / "0" yap)
ENDIF
COMPACT IF:
normal if komutu gibi tek satırda kullanılıyor. şart oluştuysa komut işleniyor.
örneğin;
IF counter > 10 Set do1; (counter değeri "10"dan büyükse do1 çıkışını "1" yap)
RETURN:
Bir rutinin yürütülmesini bitirmek için kullanılır. Rutin bir işlevse, işlev değeri de döndürülür.
örneğin;
errormessage; (errormessage diye bir alt rutinin var.)
Set do1; (do1i setledin)
...
PROC errormessage()
IF di1=1 THEN (di1 değerin "1"e eşitse endif ile devam ediyor, değilse "1" olana kadar kendi --
RETURN; -- içinde dönüyor ve flexpendant ekranına TPWrite komutu ile "error" yazıyor)
ENDIF
TPWrite "Error";
ENDPROC
PROCCALL;
normal bir rutin içinde hareket ederken, bu komut alt rutin çağırır. çağırılan rutin bittikten sonra kaldığı yerden devam eder (debug sekmesi altındaki buton ismi böyle ama, program altında kullandığında sadece "PROC rutine" olarak yazar. rutine burda örnek isim sadece.
SET-RESET:
bir sinyali setlemek demek çıkışı "1" yapmak, resetlemek ise "0" yapmak demektir.
örneğin;
set do1; (do1 led dersek, led yanar)
reset do1; (yanan led söner, zaten yanmıyorsa değişiklik olmaz.)
WAITDI - WAITDO:
dijital input veya outputun sinyal durumunu bekler.
örneğin;
waitDI di1=1; (di1 sinyalinin "1" olmasını bekler)
waitDI di1=0; (di1 sinyalinin "0" olmasını bekler. şart sağlandığında alt satıra geçer)
waitDO do1=1; (bu komutta aynı şekilde do sinyalinin durumuna bakar. "1" ise devam eder. )
WAITTIME:
belirlenen süre kadar bekler.
örneğin;
WAITTIME 5; (5sn bekle)
WAITTIME 0,2; (0,2sn bekle, sonra alt satıra geçer.)
WAITUNTIL:
istenen sinyali belli bir süre gelip gelmediğini kontrol edebilirsin. WAITDI den farkı;
WAITDI di1=1; (di1 sinyali "1" olur olmaz alt satıra geçer ve işlemeye devam eder.)
WAITUNTIL di1=1 \ maxtime =: 10; (di1 sinyalinin 10sn boyunca 1 olmasını bekler.)
diye biliyorum ama işin doğrusu bu ikisini bende tam olarak anlayamıyorum
yanıltmış olmayayım yani bu konuda..
WHILE:
şart oluşana döngü tekrarlanır. örneğin;
WHILE reg1 < reg2 DO (reg1 değeri reg2 değerinden küçük olduğu sürece döngü tekrarlanır.)
...
reg1 := reg1 + 1; (her döngüde reg1 değeri 1 arttırılır ve tekrar reg1 değerine yazılır.)
ENDWHILE (eğer döngü sonunda reg1 değeri reg2 değerine eşitlenirse veya geçerse alt satıra -- -- geçerek devam eder)
umarım yeterli olmuştur, yardımcı olabildiysem ne mutlu bana redskymuscular