TLP 2844 YAZICIDAN ÇIKTI ALMAK

Başlatan EGEHAYDAR, 30 Kasım 2012, 20:02:47

EGEHAYDAR

PC deki HYPER TERMINAL den istediğim yazıyı okuyabiliyorum.
Ama prınterdan çıktı alamıyorum.

Hserial_Baud = 9600       
Hserial_RCSTA = %10010000 
Hserial_TXSTA = %00100000
Hserial_Clear = On   

tanımlamam bu şekilde.
yazıcının pdf sinde ise bunlar yazıyor.

Serial (RS-232) Connector
The printer operates as a Data Communication Equipment (DCE) and
normally connects via a standard RS-232 modem cable to a Data Terminal
Equipment (DTE) such as a computer or terminal with a default
configuration of 9600 baud, 8 bit data, 1 stop bit and No parity.

Daha önce tecrübesi olan arkadaşların yardımını bekliyorum.
TOPLUMA FAYDALI OLMAK İSTİYORSAN DOĞRU BİLDİĞİNİ PAYLAŞ.

Ersin

Zebra nın SDK sı var ilk önce onu kurup okumakla başla bence.

EGEHAYDAR

Sayın ERSİN.
SDK yı kurdum.PC ye bağladığımda çıktı alabiliyorum.Onda sorun yok.
Benim sıkıntım.Pıc ile çıktı almak.Bu protokolü yapamadım.
RS232 bağlantısını kitapçıktaki gibi yaptım.fakat sonuç alamadım
TOPLUMA FAYDALI OLMAK İSTİYORSAN DOĞRU BİLDİĞİNİ PAYLAŞ.

EOS

PPLB VE PPLA barkod yazıcı dillerini araştır..Barkod yazıcıların özel komutları var.

EGEHAYDAR

Hala sorunu çözebilmiş değilim.
HSerOut ["DENEME",13,10] gibi komut gönderiyorum.Fakat yazıcıda hiçbir faliyet yok.
Yazıcıdan çıktı alabilmek için nasıl bir komut uygulamam gerekir.
TOPLUMA FAYDALI OLMAK İSTİYORSAN DOĞRU BİLDİĞİNİ PAYLAŞ.

SERRO EFE

Yazıcıdan çıktı alabilmen için öncelikle serial port dinleme programlarından biriyle pc den yazdırırken yazıcıya neler gidiyor yakalaman lazım. Sonra bu yazıcıya gidenleri pic ile nasıl gönderebilirm onu düşünmen lazım.
Alıntı yapılan: EGEHAYDAR - 03 Aralık 2012, 13:51:37
HSerOut ["DENEME",13,10] gibi komut gönderiyorum.Fakat yazıcıda hiçbir faliyet yok.
Göndermiş olduğun komut yazıcı için hiç bir anlam ifade etmiyor. Yazı nereden başlayacak ,hangi fontta yazacak, yazma işlemi bittiğinde kağıdı kesecekmi kesmeyecekmi hangi bilgileri gönderiyorsun hiç birini..

EGEHAYDAR

SERRO EFE dediğin programı indirdim.Printere 12345 yazısını gönderdim.

62   0.01728045   Design.exe   IRP_MJ_CREATE   VCP0   SUCCESS   Options: Open    
63   0.00000234   Design.exe   IRP_MJ_CLEANUP   VCP0   SUCCESS      
64   0.11509357   Design.exe   IRP_MJ_CLOSE   VCP0   SUCCESS      
65   0.01738842   spoolsv.exe   IRP_MJ_CREATE   VCP0   SUCCESS   Options: OpenIf Sequential    
66   0.00000124   spoolsv.exe   IRP_MJ_SET_INFORMATION   VCP0   SUCCESS   -1204144480   
67   0.00000027   spoolsv.exe   IRP_MJ_SET_INFORMATION   VCP0   SUCCESS   -1204144452   
68   0.00000135   spoolsv.exe   IOCTL_SERIAL_GET_BAUD_RATE   VCP0   SUCCESS      
69   0.00000064   spoolsv.exe   IOCTL_SERIAL_GET_LINE_CONTROL   VCP0   SUCCESS      
70   0.00000052   spoolsv.exe   IOCTL_SERIAL_GET_CHARS   VCP0   SUCCESS      
71   0.00000059   spoolsv.exe   IOCTL_SERIAL_GET_HANDFLOW   VCP0   SUCCESS      
72   0.00000029   spoolsv.exe   IOCTL_SERIAL_GET_TIMEOUTS   VCP0   SUCCESS      
73   0.00000039   spoolsv.exe   IOCTL_SERIAL_GET_BAUD_RATE   VCP0   SUCCESS      
74   0.00000034   spoolsv.exe   IOCTL_SERIAL_GET_LINE_CONTROL   VCP0   SUCCESS      
75   0.00000027   spoolsv.exe   IOCTL_SERIAL_GET_CHARS   VCP0   SUCCESS      
76   0.00000027   spoolsv.exe   IOCTL_SERIAL_GET_HANDFLOW   VCP0   SUCCESS      
77   0.00018530   spoolsv.exe   IOCTL_SERIAL_SET_BAUD_RATE   VCP0   SUCCESS   Rate: 9600   
78   0.00023806   spoolsv.exe   IOCTL_SERIAL_SET_RTS   VCP0   SUCCESS      
79   0.00024285   spoolsv.exe   IOCTL_SERIAL_SET_DTR   VCP0   SUCCESS      
80   0.00023924   spoolsv.exe   IOCTL_SERIAL_SET_LINE_CONTROL   VCP0   SUCCESS   StopBits: 1 Parity: NONE WordLength: 8   
81   0.00000061   spoolsv.exe   IOCTL_SERIAL_SET_CHAR   VCP0   SUCCESS   EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13   
82   0.00022312   spoolsv.exe   IOCTL_SERIAL_SET_HANDFLOW   VCP0   SUCCESS   Shake:80000001 Replace:80000040 XonLimit:2048 XoffLimit:512   
83   0.00000058   spoolsv.exe   IOCTL_SERIAL_SET_TIMEOUTS   VCP0   SUCCESS   RI:200 RM:0 RC:5000 WM:0 WC:30000   
84   0.00000055   spoolsv.exe   IOCTL_SERIAL_GET_TIMEOUTS   VCP0   SUCCESS      
85   0.00000053   spoolsv.exe   IOCTL_SERIAL_SET_TIMEOUTS   VCP0   SUCCESS   RI:-1 RM:0 RC:100 WM:0 WC:30000   
86   0.33170397   spoolsv.exe   IRP_MJ_WRITE   VCP0   SUCCESS   Length 420: 49 38 2C 41 2C 30 30 31 0D 0A 0D 0A 0D 0A 51 32 30 33 2C 30 32    
87   0.10056325   spoolsv.exe   IRP_MJ_READ   VCP0   TIMEOUT   Length 0:    
88   0.00021171   spoolsv.exe   IRP_MJ_WRITE   VCP0   SUCCESS   Length 5: 5E 65 65 0D 0A    
89   0.00000487   spoolsv.exe   IRP_MJ_READ   VCP0   SUCCESS   Length 4: 35 30 0D 0A    
90   0.00000146   spoolsv.exe   IRP_MJ_FLUSH_BUFFERS   VCP0   SUCCESS      
91   0.00000196   spoolsv.exe   IRP_MJ_CLEANUP   VCP0   SUCCESS      
92   0.10344970   spoolsv.exe   IRP_MJ_CLOSE   VCP0   SUCCESS      

böyle bir sayfa yazdırdı.Şimdi benim pıcten yazıcıya 12345 karakterini göndermem için nasıl bir program yazmam lazım.
Şimdiden. teşekkür ederim.
TOPLUMA FAYDALI OLMAK İSTİYORSAN DOĞRU BİLDİĞİNİ PAYLAŞ.

SERRO EFE

#7
Bu çıktıyı hangi programla aldınız bilmiyorum ama pek anlaşılır veriler gelmiyor.Ben eltima kullanıyorum. Eltima nın sanal seri port oluşturan programını kurun. Oradan bir seri port çifti oluşturun. Protonun serial terminal programından oluşan sanal seriportun 1 ini seçin sonra yazıcı port ayarlarından oluşan 2. portu seçin ve yazdırın. protonun terminal ekranında daha anlaşılabilir bi çıktı almanız lazım. Ben bu şekilde 3 farklı marka yazıcının mcu ile kontrolünü yaptım.
Muhtemelen
83   0.00000058   spoolsv.exe   IOCTL_SERIAL_SET_TIMEOUTS   VCP0   SUCCESS   RI:200 RM:0 RC:5000 WM:0 WC:30000   
84   0.00000055   spoolsv.exe   IOCTL_SERIAL_GET_TIMEOUTS   VCP0   SUCCESS     
85   0.00000053   spoolsv.exe   IOCTL_SERIAL_SET_TIMEOUTS   VCP0   SUCCESS   RI:-1 RM:0 RC:100 WM:0 WC:30000   
86   0.33170397   spoolsv.exe   IRP_MJ_WRITE   VCP0   SUCCESS   Length 420: 49 38 2C 41 2C 30 30 31 0D 0A 0D 0A 0D 0A 51 32 30 33 2C 30 32   
87   0.10056325   spoolsv.exe   IRP_MJ_READ   VCP0   TIMEOUT   Length 0:   
88   0.00021171   spoolsv.exe   IRP_MJ_WRITE   VCP0   SUCCESS   Length 5: 5E 65 65 0D 0A   
89   0.00000487   spoolsv.exe   IRP_MJ_READ   VCP0   SUCCESS   Length 4: 35 30 0D 0A   
90   0.00000146   spoolsv.exe   IRP_MJ_FLUSH_BUFFERS   VCP0   SUCCESS     
91   0.00000196   spoolsv.exe   IRP_MJ_CLEANUP   VCP0   SUCCESS     
92   0.10344970   spoolsv.exe   IRP_MJ_CLOSE   VCP0   SUCCESS   
satırlarında gönderdiğiniz veri..

EGEHAYDAR

Sayın SERRO EFE sizin dediğiniz uygulamayı beceremedim.
Önceki cevabımda PORTMON programını kullandım.Yazdır dediğimde sari portttan yaklaşık 0,1 sn .içinde 30 satırlık veri gidiyor.
Bu veriler yukarda açıkladığım gibi.
Siz sonuç aldığınızı yazmışsınız.Acaba örnek bir kodla açıklayabilirmisiniz.
TOPLUMA FAYDALI OLMAK İSTİYORSAN DOĞRU BİLDİĞİNİ PAYLAŞ.

SERRO EFE

#9
Burada sizin yazıcınız için bi örnek veremem daha önce o marka ile çalışmadım hiç. Ama argox yazıcılar için "ppla" formatında şu kodları kullanarak çıktı almıştım.
Buf2 = Str(ksay)

Buf1(1) = "151100001870008text1"
Buf1(4) = "112200000800009NO    = " + Buf2

Print "n"
Print "M0592"
Print "KI70"
Print "O0220"
Print "V0"
Print "f220"
Print "SE"
Print "c0237"
Print "D"
Print "L"                                                   'üst boşluk
Print "D11"
Print "PE"
Print "A2"

Print Buf1(1)
Print "1X1100001410011L185001"
Print Buf1(3)
Print Buf1(4)
'Print Buf1(5)
Print "Q0001"
Print "E"

Ama sizin bi işinize yaramaz. Siz dediğim programla seri çıktı alamadınızmı. Yanlış yaptığınız birşeyler vardır.


Q160,019
q831
rN
S1
D7
ZT
JB
OD
R335,0
N
GW104,104,6,48,ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿÿÿÿÿÿÿÿ¿
A152,24,2,2,1,1,N,"ZD:01.01.10"
A152,48,2,2,1,1,N,"QC:235-167"
A152,72,2,2,1,1,N,"01.06.2010"
A152,96,2,2,1,1,N,"03L131051BH"
P1
üstteki kodları yazıcıya göndermeyi denermisiniz.
http://www.mavis.com.tr/blog/?p=412
linkte detayları verilmiş.

EGEHAYDAR

Ben işin mantığını kavrayabilmiş değilim.Bir kavrayabilsen gerisi çorap söküğü gibi gelecek.
Hep print komutu kullanmışsınız.Bu komut lcd ekrana yazdırma komutu değilmi.
Ben HSEROUT komutunu kullanıyordum.Yoksa yanlışmı yapıyorum.
TOPLUMA FAYDALI OLMAK İSTİYORSAN DOĞRU BİLDİĞİNİ PAYLAŞ.

SERRO EFE

Siz  o komutlara takılmayın.
Q160,019
q831
rN
S1
D7
ZT
JB
OD
R335,0
N
GW104,104,6,48,ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿÿÿÿÿÿÿÿ¿
A152,24,2,2,1,1,N,"ZD:01.01.10"
A152,48,2,2,1,1,N,"QC:235-167"
A152,72,2,2,1,1,N,"01.06.2010"
A152,96,2,2,1,1,N,"03L131051BH"
P1

bu kodları yazıcıya gönderin. Ve verdiğim linkte nasıl çalışır yeterince mantığını anlatmışlar. Bence iyice inceleyin sonuca varacaksınız.
http://www.mavis.com.tr/prog/tools/PPLA&PPLB.pdf buradada komutların ne işe yaradığı var.

EGEHAYDAR

Bu şekildemi olacak.

HSerOut["Q160",019 ]
HSerOut["q831"]
HSerOut["rN"]
HSerOut["S1"]
HSerOut["D7"]
HSerOut["ZT"]
HSerOut["JB"]
HSerOut["OD"]
HSerOut["R335",0]
HSerOut["N" ]
HSerOut["GW104",104,6,48,"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿÿÿÿÿÿÿÿ¿" ]
HSerOut["A152",24,2,2,1,1,"N","ZD:01.01.10" ]
HSerOut["A152",48,2,2,1,1,"N","QC:235-167"]
HSerOut["A152",72,2,2,1,1,"N","01.06.2010" ]
HSerOut["A152",96,2,2,1,1,"N","03L131051BH"]
HSerOut["P1"]
TOPLUMA FAYDALI OLMAK İSTİYORSAN DOĞRU BİLDİĞİNİ PAYLAŞ.

EGEHAYDAR

Arkadaşlar sorunu hala çözemedim.
Araştırmalarıma göre bu kodlar etiketin ebatları,yazının fontu ve büyüklügü,
yazının etiketin neresine yazılacağına dair talimatlar içeriyor.
Benim tahminime göre bu komutlardan önce yazıcının bilgi almaya hazır hale getirilmesi gerekiyor.
İşte bana bu kodlar lazım.Bu konuda daha önce tecrübesi olmuş arkadaşlar
yardımcı olabilirlermi?
TOPLUMA FAYDALI OLMAK İSTİYORSAN DOĞRU BİLDİĞİNİ PAYLAŞ.

ilhan_mkp

hocam ben uzun zaman önce aynı yazıcı ile bir uygulama yaptım.
yazıcıyı aldığım firma yazıcının dahili hafızasına sabitleri eklemişti
daha sonrasında 2 ayrı noktada değişkenyazdırıyordum
veriyi gönderip 13 10 gönderince diğer değişkene kendi geçiyordu.
çok ayrıntılı bir cdsi vardi bende nette varmı bakayım