Register Problemi Yardım

Katılım
24 Şub 2010
Mesajlar
95
Puanları
1
arkadaşlar bir konveyör uygulaması yapıyorum. uygulama da konveyörden geçen malzemelerin cinsini registır kaydırarak bılıyorum. burada anlamadığım tek şey kayan regıstırların aynı zamanda bir rotaların olması. başlangıç da rotası olan regıstırlarda problem yok ama rotası olamayan regıstırlarda problem yaşıyorum. rotası 0 ise rota yok demek sistem akarken (konveyör) rotası sıfır olan ya da degişmesi gereken regıstırı nasıl degıştırabılırım. yardımlarınız için teşekkürler.

palet sayısı 250 tane
 
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
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.
Malzeme cins adet sayısı(palet sayısı kastediliyor sanırım) ve rota sayısı nedir. Soruyu tam anlamamakla beraber çözüm yolu olarak FIFO kullanılabilir. Eğer doğru anlamışsam malzeme cinsini ve rotasını başlangıçta Data değişkenlerine kodlayabilirsiniz. Örneğin;

Data=XYABC= XY rota kodu, ABC malzeme cinsi
10125=10ncu rota , 125nci cins malzeme
12050=12nci rota, 50nci cins malzeme

Yukarıdaki kodlu data kayıtlarını herbir yeni girişte REAL bir registere aşağıdaki mantıkla kaydebilirsin sonra her datayı okudugunda yukarıdaki kodu çözmen gerek.
...
DB3.Data[4]:= DB3.Data[3];
DB3.Data[3]:= DB3.Data[2];
DB3.Data[2]:= DB3.Data[1];
DB3.Data[1]:= in_new_DATA;
 
rota sayısı palet sayısı 250 o asla degışmıyor. yanı ilk paletıd verıyoruz(barkod bılgısını yani) sonra rota bilgisini rotası verılmışse gıdıp işlem görüyor. verilmemişse konveyörde ring yapıp duruyor. eger rotası verilir ise oda işleme gidiyor


yada palet ıd herzaman verilmesi gerekiyor ama rota sonradan da verilebilir.

konveyorde kayan sadece paletıd olucak. rota heryerde verılebılecek.veri tabanından herzaman paletıd gelmek zorunda. daha sonra şöyle bir bilgi geliyor. şu kodlu paletıd nın rotası şu diye. burada anlamadığım nokta ben register da kaydırdıgım paletıd nasıl rotasıyal eşleştireceğim.
örnek PALETID :20( herzaman giriş de verilmesi gerekiyor.)
YENI ROTA BILGISI :3


 
Son düzenleme:
FUNCTION_BLOCK FB9
KNOW_HOW_PROTECT
AUTHOR:UGUR
NAME:REGISTER1
VAR_INPUT
FLASOR:BOOL;
START:BOOL;
STOP:BOOL;
SWITCH:BOOL;
PALET_ID:BYTE;
ROTA:BYTE;
RESET:BOOL;
ARIZA:BOOL;
SEN1:BOOL;
SEN2:BOOL;
SEN3:BOOL;
SEN4:BOOL;
SEN5:BOOL;
SEN6:BOOL;
SEN7:BOOL;
SEN8:BOOL;
SEN9:BOOL;
SEN10:BOOL;
SEN11:BOOL;
SEN12:BOOL;
SEN13:BOOL;
SEN14:BOOL;
SEN15:BOOL;
SEN16:BOOL;
SEN17:BOOL;
SEN18:BOOL;
SEN19:BOOL;
SEN20:BOOL;
SEN21:BOOL;
SEN22:BOOL;
SEN23:BOOL;
SEN24:BOOL;
SEN25:BOOL;
SEN26:BOOL;
SEN27:BOOL;
SEN28:BOOL;
SEN29:BOOL;
TRANSFER_OLDUNMU1:BOOL;
TRANSFER_OLDUNMU2:BOOL;
TRANSFER_OLDUNMU3:BOOL;
TRANSFER_OLDUNMU4:BOOL;
TRANSFER_OLDUNMU5:BOOL;
TRANSFER_OLDUNMU6:BOOL;
TRANSFER_OLDUNMU7:BOOL;
TRANSFER_OLDUNMU8:BOOL;
TRANSFER_OLDUNMU9:BOOL;
TRANSFER_OLDUNMU10:BOOL;
TRANSFER_OLDUNMU11:BOOL;
TRANSFER_OLDUNMU12:BOOL;
TRANSFER_OLDUNMU13:BOOL;
TRANSFER_OLDUNMU14:BOOL;
TRANSFER_OLDUNMU15:BOOL;
TRANSFER_OLDUNMU16:BOOL;
TRANSFER_OLDUNMU17:BOOL;
TRANSFER_OLDUNMU18:BOOL;
TRANSFER_OLDUNMU19:BOOL;
TRANSFER_OLDUNMU20:BOOL;
TRANSFER_OLDUNMU21:BOOL;
TRANSFER_OLDUNMU22:BOOL;
TRANSFER_OLDUNMU23:BOOL;
TRANSFER_OLDUNMU24:BOOL;
TRANSFER_OLDUNMU25:BOOL;
TRANSFER_OLDUNMU26:BOOL;
TRANSFER_OLDUNMU27:BOOL;
TRANSFER_OLDUNMU28:BOOL;
TRANSFER_OLDUNMU29:BOOL;




END_VAR
VAR_OUTPUT
PALET_IDC:BYTE;
ROTAC:BYTE;




TRANSFER_OLDUM1:BOOL;
TRANSFER_OLDUM2:BOOL;
TRANSFER_OLDUM3:BOOL;
TRANSFER_OLDUM4:BOOL;
TRANSFER_OLDUM5:BOOL;
TRANSFER_OLDUM6:BOOL;
TRANSFER_OLDUM7:BOOL;
TRANSFER_OLDUM8:BOOL;
TRANSFER_OLDUM9:BOOL;
TRANSFER_OLDUM10:BOOL;
TRANSFER_OLDUM11:BOOL;
TRANSFER_OLDUM12:BOOL;
TRANSFER_OLDUM13:BOOL;
TRANSFER_OLDUM14:BOOL;
TRANSFER_OLDUM15:BOOL;
TRANSFER_OLDUM16:BOOL;
TRANSFER_OLDUM17:BOOL;
TRANSFER_OLDUM18:BOOL;
TRANSFER_OLDUM19:BOOL;
TRANSFER_OLDUM20:BOOL;
TRANSFER_OLDUM21:BOOL;
TRANSFER_OLDUM22:BOOL;
TRANSFER_OLDUM23:BOOL;
TRANSFER_OLDUM24:BOOL;
TRANSFER_OLDUM25:BOOL;
TRANSFER_OLDUM26:BOOL;
TRANSFER_OLDUM27:BOOL;
TRANSFER_OLDUM28:BOOL;
TRANSFER_OLDUM29:BOOL;
END_VAR
VAR
R1:BYTE;
R2:BYTE;
R3:BYTE;
R4:BYTE;
R5:BYTE;
R6:BYTE;
R7:BYTE;
R8:BYTE;
R9:BYTE;
R10:BYTE;
R11:BYTE;
R12:BYTE;
R13:BYTE;
R14:BYTE;
R15:BYTE;
R16:BYTE;
R17:BYTE;
R18:BYTE;
R19:BYTE;
R20:BYTE;
R21:BYTE;
R22:BYTE;
R23:BYTE;
R24:BYTE;
R25:BYTE;
R26:BYTE;
R27:BYTE;
R28:BYTE;
R29:BYTE;
R30:BYTE;
R31:BYTE;
R32:BYTE;
R33:BYTE;
R34:BYTE;
R35:BYTE;
R36:BYTE;
R37:BYTE;
R38:BYTE;
R39:BYTE;
R40:BYTE;
R41:BYTE;
R42:BYTE;
R43:BYTE;
R44:BYTE;
R45:BYTE;
R46:BYTE;
R47:BYTE;
R48:BYTE;
R49:BYTE;
R50:BYTE;
R51:BYTE;
R52:BYTE;
R53:BYTE;
R54:BYTE;
R55:BYTE;
R56:BYTE;
R57:BYTE;
R58:BYTE;
R59:BYTE;
R60:BYTE;
YRD_START:BOOL;
YRD_STOP:BOOL;
ZAMAN:INT;
END_VAR
BEGIN
IF START=1 THEN
YRD_START:=1;
YRD_STOP:=0;
END_IF;


IF STOP= 1 THEN
YRD_STOP:=1;
YRD_START:=0;
END_IF;
IF YRD_START=1 AND SEN1=1 THEN
TRANSFER_OLDUM1:=1;
END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU1=1 AND SEN2=1 THEN
TRANSFER_OLDUM2:=1;
TRANSFER_OLDUM1:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU2=1 AND SEN3=1 THEN
TRANSFER_OLDUM3:=1;
TRANSFER_OLDUM2:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU3=1 AND SEN4=1 THEN
TRANSFER_OLDUM4:=1;
TRANSFER_OLDUM3:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU4=1 AND SEN5=1 THEN
TRANSFER_OLDUM5:=1;
TRANSFER_OLDUM4:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU5=1 AND SEN6=1 THEN
TRANSFER_OLDUM6:=1;
TRANSFER_OLDUM5:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU6=1 AND SEN7=1 THEN
TRANSFER_OLDUM7:=1;
TRANSFER_OLDUM6:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU7=1 AND SEN8=1 THEN
TRANSFER_OLDUM8:=1;
TRANSFER_OLDUM7:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU8=1 AND SEN9=1 THEN
TRANSFER_OLDUM9:=1;
TRANSFER_OLDUM8:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU9=1 AND SEN10=1 THEN
TRANSFER_OLDUM10:=1;
TRANSFER_OLDUM9:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU10=1 AND SEN11=1 THEN
TRANSFER_OLDUM11:=1;
TRANSFER_OLDUM10:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU11=1 AND SEN12=1 THEN
TRANSFER_OLDUM12:=1;
TRANSFER_OLDUM11:=0;
END_IF;

IF YRD_START=1 AND TRANSFER_OLDUNMU12=1 AND SEN13=1 THEN
TRANSFER_OLDUM13:=1;
TRANSFER_OLDUM12:=0;
END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU13=1 AND SEN14=1 THEN
TRANSFER_OLDUM14:=1;
TRANSFER_OLDUM13:=0;
END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU14=1 AND SEN15=1 THEN
TRANSFER_OLDUM15:=1;
TRANSFER_OLDUM14:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU15=1 AND SEN16=1 THEN
TRANSFER_OLDUM16:=1;
TRANSFER_OLDUM15:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU16=1 AND SEN17=1 THEN
TRANSFER_OLDUM17:=1;
TRANSFER_OLDUM16:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU17=1 AND SEN18=1 THEN
TRANSFER_OLDUM18:=1;
TRANSFER_OLDUM17:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU18=1 AND SEN19=1 THEN
TRANSFER_OLDUM19:=1;
TRANSFER_OLDUM18:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU19=1 AND SEN20=1 THEN
TRANSFER_OLDUM20:=1;
TRANSFER_OLDUM19:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU20=1 AND SEN21=1 THEN
TRANSFER_OLDUM21:=1;
TRANSFER_OLDUM20:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU21=1 AND SEN22=1 THEN
TRANSFER_OLDUM22:=1;
TRANSFER_OLDUM21:=0;

END_IF;

IF YRD_START=1 AND TRANSFER_OLDUNMU22=1 AND SEN23=1 THEN
TRANSFER_OLDUM23:=1;
TRANSFER_OLDUM22:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU23=1 AND SEN24=1 THEN
TRANSFER_OLDUM24:=1;
TRANSFER_OLDUM23:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU24=1 AND SEN25=1 THEN
TRANSFER_OLDUM25:=1;
TRANSFER_OLDUM24:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU25=1 AND SEN26=1 THEN
TRANSFER_OLDUM26:=1;
TRANSFER_OLDUM25:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU26=1 AND SEN27=1 THEN
TRANSFER_OLDUM27:=1;
TRANSFER_OLDUM26:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU27=1 AND SEN28=1 THEN
TRANSFER_OLDUM28:=1;
TRANSFER_OLDUM27:=0;

END_IF;
IF YRD_START=1 AND TRANSFER_OLDUNMU28=1 AND SEN29=1 THEN
TRANSFER_OLDUM28:=1;
TRANSFER_OLDUM27:=0;

END_IF;


IF YRD_START=1 AND TRANSFER_OLDUNMU28=1 AND FLASOR=1 THEN
ZAMAN:=ZAMAN+1;

END_IF;

IF YRD_START=1 AND ZAMAN>=2 THEN
TRANSFER_OLDUM28:=0;
ZAMAN:=0;

END_IF;


IF SWITCH=1 AND YRD_START=1 THEN

R29:=R28;
R28:=R27;
R27:=R26;
R26:=R25;
R25:=R24;
R24:=R23;
R23:=R22;
R22:=R21;
R21:=R20;
R20:=R19;
R19:=R18;
R18:=R17;
R17:=R16;
R16:=R15;
R15:=R14;
R14:=R13;
R13:=R12;
R12:=R11;
R11:=R10;
R10:=R9;
R9:=R8;
R8:=R7;
R7:=R6;
R6:=R5;
R5:=R4;
R4:=R3;
R3:=R2;
R2:=R1;
R1:=PALET_ID;
END_IF;


IF SWITCH=1 AND YRD_START=1 THEN

R59:=R58;
R58:=R57;
R57:=R56;
R56:=R55;
R55:=R54;
R54:=R53;
R53:=R52;
R52:=R51;
R51:=R50;
R50:=R49;
R19:=R18;
R48:=R47;
R47:=R46;
R46:=R45;
R45:=R44;
R44:=R43;
R43:=R42;
R42:=R41;
R41:=R40;
R40:=R39;
R39:=R38;
R38:=R37;
R37:=R36;
R36:=R35;
R35:=R34;
R34:=R33;
R33:=R32;
R32:=R31;
R31:=ROTA;
END_IF;


IF
SWITCH=0 THEN
PALET_IDC:=R29;
ROTAC:=R59;
END_IF;
IF ARIZA=1 THEN
R2:=0;
R1:=0;
END_IF;
IF reset=1 THEN
R30:=0;
R29:=0;
R28:=0;
R27:=0;
R26:=0;
R25:=0;
R24:=0;
R23:=0;
R22:=0;
R21:=0;
R20:=0;
R19:=0;
R18:=0;
R17:=0;
R16:=0;
R15:=0;
R14:=0;
R13:=0;
R12:=0;
R11:=0;
R10:=0;
R9:=0;
R8:=0;
R7:=0;
R6:=0;
R5:=0;
R4:=0;
R3:=0;
R2:=0;
R1:=0;
R60:=0;
R59:=0;
R58:=0;
R57:=0;
R56:=0;
R55:=0;
R54:=0;
R53:=0;
R52:=0;
R51:=0;
R50:=0;
R49:=0;
R48:=0;
R47:=0;
R46:=0;
R45:=0;
R44:=0;
R43:=0;
R42:=0;
R41:=0;
R40:=0;
R39:=0;
R38:=0;
R37:=0;
R36:=0;
R35:=0;
R34:=0;
R33:=0;
R32:=0;
R31:=0;
TRANSFER_OLDUM1:=0;
TRANSFER_OLDUM2:=0;
TRANSFER_OLDUM3:=0;
TRANSFER_OLDUM4:=0;
TRANSFER_OLDUM5:=0;
TRANSFER_OLDUM6:=0;
TRANSFER_OLDUM7:=0;
TRANSFER_OLDUM8:=0;
TRANSFER_OLDUM9:=0;
TRANSFER_OLDUM10:=0;
TRANSFER_OLDUM11:=0;
TRANSFER_OLDUM12:=0;
TRANSFER_OLDUM13:=0;
TRANSFER_OLDUM14:=0;
TRANSFER_OLDUM15:=0;
TRANSFER_OLDUM16:=0;
TRANSFER_OLDUM17:=0;
TRANSFER_OLDUM18:=0;
TRANSFER_OLDUM19:=0;
TRANSFER_OLDUM20:=0;
TRANSFER_OLDUM21:=0;
TRANSFER_OLDUM22:=0;
TRANSFER_OLDUM23:=0;
TRANSFER_OLDUM24:=0;
TRANSFER_OLDUM25:=0;
TRANSFER_OLDUM26:=0;
TRANSFER_OLDUM27:=0;
TRANSFER_OLDUM28:=0;
TRANSFER_OLDUM29:=0;
ZAMAN:=0;
END_IF;
END_FUNCTION_BLOCK

R31 DEN BAŞLAYAN REGISTERLAR ROTA BILGISI İÇİN YAPMIŞTIM. AMA SONRA ROTA OLAYI DEĞİŞİNCE İPTAL ETMEK ZORUNDA KALDIM. TEK DERDİM PALETID KAYARKEN ROTANIN DA VERILEBILMESİ
 

Forum istatistikleri

Konular
128,350
Mesajlar
916,913
Kullanıcılar
450,201
Son üye
fredyss1

Yeni konular

Geri
Üst