www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Termični tiskalnik TUP400

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Periferija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
msmiha
Član
Član



Pridružen-a: Sob 26 Feb 2005 16:48
Prispevkov: 115
Aktiv.: 0.52
Kraj: Slovenske Konjice

PrispevekObjavljeno: Sre Feb 10, 2010 7:59 pm    Naslov sporočila:  Termični tiskalnik TUP400 Odgovori s citatom

Ne vem točno kam bi tole temo postavil, ker se dotika bolj programiranja, gre pa za periferijo. Skratka, zanima me če se je kdo že ukvarjal z TUP 452ZD proizvajalca Star Micronics. Gre se za termični tiskalnik, ki ima v mojem primeru nameščen RS232 interface. Iz njihove strani sem si potegnil Programmer's manual in se lotil programiranja. Sicer sem se zadeve lotil v Visual C# zaradi lažjega debugiranja, vendar imam namen printer povezati z mikrokontrolerjem, natančneje PICem. Problem je, da nekatere komande ne primejo. Tako mi nikakor ne uspe nastaviti character string formata, (izbiranja pozicije in formata črk) ne deluje pa tudi rezalnik. Tekst, ki ga vnesem se sicer natisne, vendar se poleg njega natisne tudi tekst, ki bi naj nastavil character string forma in tisti, ki bi naj vklopil rezalnik... Dogajanje na serijskem portu sem nadzoroval s serial port monitorjem in ugotovil, da se vsi biti prenašajo tako kot bi se mogli. Sekvenca programa si sledi v naslednjem zaporedju:

1. Clear format
2. Define print area
3. Define character string format
4. Enable Cutter
5. Set character string data
6. Print label

Ima kdo karšen koli predlog kaj bi lahko bilo narobe? Če kdo želi lahko prilepim tudi dele kode.

_________________
Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gregoral
Član
Član



Pridružen-a: Pet 24 Nov 2006 9:42
Prispevkov: 688
Aktiv.: 3.26
Kraj: Ljubljana

PrispevekObjavljeno: Čet Feb 11, 2010 4:47 pm    Naslov sporočila:  TUP 452 Odgovori s citatom

Pozdravljen,
pred leti sem delal z TUP 482 printerjem (širina papirja 80mm, namesto 50mm).
Luštna zadeva z veliko zalogo papirja.

Problem je lahko v tem da so stringi v C# zapisani kot unicode, medtem ko tiskalnik potrebuje ascii znake.

Trenutno imam le spisek ukazov ki so mi bili pomembni:

Clear Format
<ESC> C <LF> <NUL>

Define Print Area
<ESC> D n1234 <LF> <NUL>
primer: <ESC>D1000<LF><NUL>

Print Label
<ESC> I <LF> <NUL>

Set Feed Length after Printing
<ESC> T d n1n2 <LF> <NUL>
primer: <ESC>T+50<LF><NUL>

Define cut position and enable cutter
<ESC> B d n1n2 <LF> <NUL>
primer: <ESC>T+50<LF><NUL>

Define character string format:
<ESC> PC n1n2; x1234, y1234, w, h, c, r1r2, d1d2 <LF> <NUL>
<ESC> PC n1n2; x1234, y1234, w, h, c, r1r2 <LF> <NUL>
w,h = width & height magnification
c = char type (1=small, 2=std, 3=reserved, 4=bold, 5=OCR)
r1 = char rotation, r2 = string rotation
d1d2 = char spacing (00 to 63) (if d1d2 is left out -> EscY setting value is used)

Set memory switch
<ESC> #N, n1234 <LF> <NUL>
primer: <ESC>#1,1050<LF><NUL>

Reset Printer
<ESC> ? <LF> <NUL>

Request status
<EOT>
<SOH><STX>??,??<ETX><EOT><CR><LF>

Select international character set (temporary, until reset)
<ESC> N n1n2 <LF> <NUL>


<NUL>=0x00, <SOH>=0x01, <STX>=0x02, <ETX>=0x03, <EOT>=0x04, <ENQ>=0x05, <LF>=0x0A, <CR>=0x0D, <ESC>=0x1B

Upam da ti to kaj pomaga,
ker je že precej časa od tega ti več trenutno ne morem svetovati.

LP, Gregor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
msmiha
Član
Član



Pridružen-a: Sob 26 Feb 2005 16:48
Prispevkov: 115
Aktiv.: 0.52
Kraj: Slovenske Konjice

PrispevekObjavljeno: Čet Feb 11, 2010 6:50 pm    Naslov sporočila:   Odgovori s citatom

Hvala za pomoč, vendar napaka ni v kodiranju, ker ASCII znake pretvorim v hexadecimalno kodo že v samem prevajalnku. Moja funkcija zgleda nekako takole:
Koda:

        void set_char_str(byte[] n, byte[] a)
        {
            //1B 52 43 n1n2 3B a1a2.…an 0A 00
            byte[] tx_data = new byte[8+a.Length];
            int a_dolz;
            int i = 0;
            a_dolz = a.Length;
            tx_data[0] = 0x1B;
            tx_data[1] = 0x52;
            tx_data[2] = 0x43;
            for (i = 3; i < 5; i++)
            {
              tx_data[i] = n[i-3];
            }
            tx_data[5] = 0x3B;
            for (i = 6; i < (a_dolz+6); i++)
            {
              tx_data[i] = a[i-6];
            }
            tx_data[i] = 0x0A;
            i++;
            tx_data[i] = 0x00;
            i++;
            serialPort1.Write(tx_data, 0, i);
        }


Študiral sem da bi mogoče znal biti problem, ker pošiljam sproti podatke na RS232. Bom probal vse skupaj zbrat v eno veliko polje in potem vse na enkrat poslat. Drugje več ne vidim v čem bi lahko bila težava.

_________________
Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
msmiha
Član
Član



Pridružen-a: Sob 26 Feb 2005 16:48
Prispevkov: 115
Aktiv.: 0.52
Kraj: Slovenske Konjice

PrispevekObjavljeno: Pet Feb 12, 2010 11:27 am    Naslov sporočila:   Odgovori s citatom

Sem ugotovil v katerem grmu tiči zajec. Memory switch sem imel nastavljen na LINE MODE, med tem ko sem jaz poskušal printat v PAGE MODE.... Brick wall
_________________
Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
sodrgerg
Član
Član



Pridružen-a: Čet 20 Avg 2009 14:16
Prispevkov: 61
Aktiv.: 0.34
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jun 14, 2013 1:51 pm    Naslov sporočila:  TUP - 400 Odgovori s citatom

Tudi jaz imam isti problem, natisne samo text. Tudi komande natisne kot text!? Poskušal sem v line modu in v page modu.
Uporabljam razvojno ploščo od Mikroelektronike z pic 16F877A in MicroBasicPro.

Program pa zgleda nekako tako:

Koda:


If PORTD.0 = 1  Then
    PORTC.5 = 1

UART1_Write(ESC)
UART1_Write(14)            ' dvvojni font po visini
UART1_Write(14)            ' dvojni font po sirini

UART1_Write_Text("TEXT 1")
UART1_Write(LF)                      ' Line Feed
UART1_Write(NUL)

UART1_Write(ESC)            '
UART1_Write(20)            '
UART1_Write(20)            'reset font hight width

UART1_Write_Text("TEXT 2")
  UART1_Write(LF)
  UART1_Write(LF)                   ' Line Feed

UART1_Write(NUL)
 UART1_Write(13)



'************************************************************
'bar code

UART1_Write(ESC)
UART1_Write(NAR)

UART1_Write_Text("b;1,1,1,A,ABC12345678")         'bar code

UART1_Write(30)
UART1_Write(LF)
UART1_Write(NUL)

'************************************************************

 ' **********************************************************
  UART1_Write(ESC)                          'NOZ
  UART1_Write(100)                          'NOZ
  UART1_Write(48)                            'NOZ
 ' ***********************************************************
  DELAY_MS(1000)
   
    else
      PORTC.5 = 0
 end if



Natisne samo Text 1 in Text 2 brez barcode.

Hvala za kakršen koli nasvet.

_________________
To, kar vemo, je kapljica; to, česar ne vemo, je morje.(Isaac Newton)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
sodrgerg
Član
Član



Pridružen-a: Čet 20 Avg 2009 14:16
Prispevkov: 61
Aktiv.: 0.34
Kraj: Ljubljana

PrispevekObjavljeno: Sob Jun 15, 2013 8:46 am    Naslov sporočila:   Odgovori s citatom

Ja tistih narekovajev in vejc ni v komandi, pol pa dela...
_________________
To, kar vemo, je kapljica; to, česar ne vemo, je morje.(Isaac Newton)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Periferija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group