AÇIKEL
Üye
- Katılım
- 21 Ağu 2007
- Mesajlar
- 49
- Puanları
- 1
- Yaş
- 39
Merhabalar,
Anladığım kadarıyla yapmak istediğin sey;
Operator Panelinden Reçete numarasını seçeceksin.
Operator panelinde recete oluşturacaksın.
Operator panelinden Receteyi bir tampon DB'ye yazacaksın.
Kullanmak istediğin Receteyi seçip Reçete yaz dediğinde istediğin bir DB'ye Reçeteyi aktaracaksın.
Bunu yapabilen SCL kodları;
FUNCTION_BLOCK FB10
TITLE = 'recete'
VAR_INPUT
Recete_no:INT;//Recete Numarasi Belirlenir
Recete_Adimi:INT;//Recetenin Kac Adimdan Olusacagi Belirlenir
Recete_Kaydet:BOOL;//Recete Tampon_DB'ye yazilir
Recete_Yaz:BOOL;//Receteyi Out_DB'ye yazar
END_VAR
VAR
n:INT;
x:INT;
Adim:INT;
END_VAR
BEGIN
IF Recete_Adimi=0 THEN
Adim:=2;
ELSE
Adim:=Recete_Adimi;
END_IF;
IF Recete_Kaydet THEN
FOR n:=0 TO Adim-2 BY 2 DO
DB3.DW[(Recete_no*Adim)+n]:=DB2.DW[n];
END_FOR;
END_IF;
IF Recete_Yaz THEN
FOR x:=0 TO Adim-2 BY 2 DO
DB4.DW[x]:=DB3.Dw[(Recete_no*Adim)+x];
END_FOR;
END_IF;
END_FUNCTION_BLOCK
Projede MW20 ile reçete numarasını seçiyorsun.
Operator panelinden DB2'ye reçeteni yazabilirsin.
DB3 Tampon DB'dir.
M22.0 1 olduğunda;
MW20 ile belirlediğin adres ve reçete adımına göre tampon DB'ye yazılır.
DB4 Output DB'dir.
M22.1 1 olduğunda MW20 ile belirlediğin reçete numarası Output DB'ye yazılır.
Kolay Gelsin
Verdiğiniz bilgi için çok teşekkürler ama ben SCL dilini bilmiyorum bunun lader veya STL kodlarını yazabilirmisiniz. Birde tomapon DB diye adlandırdığını DB tam olarak ne yapıyor Hafıza kısmımı yoksa hafızadan reçete numarasına göre gerekli bilgileri aktardığım kısım mı?
Teşekkürler...