yakamoz_84
Üye
Şöyle diyeyim sistem birinci havuzu doldururken iki üç dört ve beş bitti biri doldurdu hangi hatta gidecekher havuzun bitmesi zaten farklı zamanlarda olacak sende bu zamanları en azından saniye cinsinden karşılaştırabilirsin.
Şöyle diyeyim sistem birinci havuzu doldururken iki üç dört ve beş bitti biri doldurdu hangi hatta gidecekher havuzun bitmesi zaten farklı zamanlarda olacak sende bu zamanları en azından saniye cinsinden karşılaştırabilirsin.
IF BosHavuzAlgilandi AND (ReadDataIndex < 4) THEN
(*Bos Havuz Numaralari her "BosHavuzAlgilandi"(BOOL) bilgisi gelince, Data[ Index ] ARRAY olarak kaydedilir *)
Data[4] := Data[3];
Data[3] := Data[2];
Data[2] := Data[1];
Data[1] := Data[0];
Data[0] := inBosHavuzNo; (* inBosHavuzNo := 1,2,3,4,5 olabilir *)
BosHavuzAlgilandi := FALSE;
ReadDataIndex := ReadDataIndex +1;
END_IF
(* Havuz dolunca "SiradakiBosHavuz"(BOOL) istegi program dışında TRUE yapilir *)
IF SiradakiBosHavuz AND (ReadDataIndex > 0) THEN
SiradakiBosHavuz := FALSE;
ReadDataIndex := ReadDataIndex - 1;
outDoldurulacakHavuzNo := Data[ReadDataIndex ];
END_IF
Çok zamanınızı alacak belki ama bu yazılımı açıklayabilir misiniz satır satır ?PHP:IF BosHavuzAlgilandi AND (ReadDataIndex < 4) THEN (*Bos Havuz Numaralari her "BosHavuzAlgilandi"(BOOL) bilgisi gelince, Data[ Index ] ARRAY olarak kaydedilir *) Data[4] := Data[3]; Data[3] := Data[2]; Data[2] := Data[1]; Data[1] := Data[0]; Data[0] := inBosHavuzNo; (* inBosHavuzNo := 1,2,3,4,5 olabilir *) BosHavuzAlgilandi := FALSE; ReadDataIndex := ReadDataIndex +1; END_IF (* Herhangi bir havuz dolunca "SiradakiBosHavuz"(BOOL) istegi program dışında TRUE yapilir *) IF SiradakiBosHavuz AND (ReadDataIndex > 0) THEN SiradakiBosHavuz := FALSE; ReadDataIndex := ReadDataIndex - 1; outDoldurulacakHavuzNo := Data[ReadDataIndex ]; END_IF
IF BosHavuzAlgilandi THEN
BosHavuzAlgilandi := FALSE;
IF (WriteIndex < N) THEN (* N Tane veri için bellek *)
(*Bos Havuz Numaralari her "BosHavuzAlgilandi" bilgisi gelince, Data[ Index ] ARRAY olarak kaydedilir *)
Data[WriteIndex] := inBosHavuzNo; (* inBosHavuzNo := 1,2,3,4,5 olabilir *)
WriteIndex := WriteIndex +1;
END_IF
END_IF
(* Herhangi bir havuz dolunca "SiradakiBosHavuz" istegi TRUE yapilir *)
IF SiradakiBosHavuz THEN
SiradakiBosHavuz := FALSE;
IF (WriteIndex <> ReadIndex) THEN
outDoldurulacakHavuzNo := Data[ReadIndex ];
ReadIndex := ReadIndex +1;
END_IF
END_IF
IF WriteIndex = ReadIndex THEN // Tampon bellek (Buffer Sıfırlanır)
WriteIndex := 0;
ReadIndex := 0;
FOR i:=0 TO N DO
DATA [i] := 0;
END_FOR;
END_IF
VAR (* Degisken Tanımlamaları*)
DATA : ARRAY[0..N] OF INT;
inBosHavuzNo,outDoldurulacakHavuzNo :INT;
BosHavuzAlgilandi,SiradakiBosHavuz :BOOL;
ReadIndex,WriteIndex : UINT;
BufferSize:UINT;
i :INT;
END_VAR
VAR CONSTANT
N:INT := 5; (* Dataların tutulacağı buffer array alanı sayısı *)
END_VAR
valla hocam videoyu izledim yazdıklarınızı anlamaya çalıştım ancak hiç bir şey anlamadım. bunu anlatacak türkçe bir kaynak varsa paylaşırsanız sevinirimPHP:IF BosHavuzAlgilandi THEN BosHavuzAlgilandi := FALSE; IF (WriteIndex < N) THEN (* N Tane veri için bellek *) (*Bos Havuz Numaralari her "BosHavuzAlgilandi" bilgisi gelince, Data[ Index ] ARRAY olarak kaydedilir *) Data[WriteIndex] := inBosHavuzNo; (* inBosHavuzNo := 1,2,3,4,5 olabilir *) WriteIndex := WriteIndex +1; END_IF END_IF (* Herhangi bir havuz dolunca "SiradakiBosHavuz" istegi TRUE yapilir *) IF SiradakiBosHavuz THEN SiradakiBosHavuz := FALSE; IF (WriteIndex <> ReadIndex) THEN outDoldurulacakHavuzNo := Data[ReadIndex ]; ReadIndex := ReadIndex +1; END_IF END_IF IF WriteIndex = ReadIndex THEN // Tampon bellek (Buffer Sıfırlanır) WriteIndex := 0; ReadIndex := 0; FOR i:=0 TO N DO DATA [i] := 0; END_FOR; END_IF
PHP:VAR (* Degisken Tanımlamaları*) DATA : ARRAY[0..N] OF INT; inBosHavuzNo,outDoldurulacakHavuzNo :INT; BosHavuzAlgilandi,SiradakiBosHavuz :BOOL; ReadIndex,WriteIndex : UINT; BufferSize:UINT; i :INT; END_VAR VAR CONSTANT N:INT := 5; (* Dataların tutulacağı buffer array alanı sayısı *) END_VAR
Merhaba,Merhaba, sorununuzun çözümü FIFO, ancak daha önce bu sistemi ladder ile yazmıştım ( ST ile çok daha rahat oluşturabilirsiniz ). Mail adresini iletin programı bulabilirsem size göndereyim.