Atama

bsfrot

Usta Üye
Katılım
14 Ara 2010
Mesajlar
535
Puanları
164
Merhabalar

PLC programı içerisinde DB35.DBD730 dan DB35.DBD930 a kadar olan wordlerin aynı anda değerini değiştirebileceğim en kısa yazılım nasıl olur? Fikirlerinizi bekliyorum...Kısa bir yol komutu varmı?
 
VAR
say:CTU;
dizi1:ARRAY [0..10] OF REAL;
indis1:WORD;
blink:fbBLINK;
analog1:WORD;

BEGIN
blink(in:=TRUE,onPT:=T#1MS,ofPT:=T#1MS);
say(cu:=blink.out,reset:=say.Q,pv:=10);
indis1:=say.Cv;
dizi1[indis1]:=bsfrotundegeri;

yalnız burada array kısmını 0 ile 10 değil DB35.DBD730 ile DB35.DBD930 yapman lazım
 
bu da fbBLINK içeriği

FUNCTION_BLOCK fbBLINK
VAR_INPUT
in:BOOL;
onPT:TIME;
ofPT:TIME;
END_VAR

VAR_OUTPUT
out:BOOL;
END_VAR

VAR_TEMP
in1:BOOL;
END_VAR

VAR
T1:TON;
T2:TON;
END_VAR



BEGIN
IF in AND NOT T2.Q THEN
in1:=1;
ELSE
in1:=0;
END_IF

T1(IN:=in1,PT:=ofPT);
T2(IN:=T1.Q,PT:=onPT);

IF T1.Q THEN
out:=1;
ELSE
out:=0;
END_IF
 
bir çözüm daha var ama biraz daha karışık
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…