datamax
Printing to a Datamax Prodigy Label Printer [Archive] - System iNetwork Forums
System iNetwork Forums > Systems Management > Printing > Printing to a Datamax Prodigy Label Printer
PDA
View Full Version : Printing to a Datamax Prodigy Label Printer
anandraj@rogers.com10-11-2006, 07:55 AMHello everyone,
We need to Print plain text onto a Datamax Prodigy Label Printer from our iSeries, could someone please help me out. I need to know how to define the Printer on the iSeries.
We have tried various methods of defining the Printer (we even have a HP Jetdirect available for this) but have had no success. we are currently on V5R3M0.
Although currently we are not very keen to print any barcodes on the label it may change at a later date.
Any and all help (with examples on how to do it) is appreciated.
Regards
Charles
Griffin10-16-2006, 06:32 AMThe first (and best) place to look for details on setting up any foreign (i.e. non-IBM, non-IPDS) printer is on IBM's website. This URL will direct you to the starting point for finding information on your ASCII printer:
http://www-1.ibm.com/support/docview.wss?uid=nas1b44a2cf4ba778d8386256825005364 9f
From this page there is a link to a page of information specific to DATAMAX printers.
Chip Milosch
Scott Klement10-16-2006, 11:25 AMWe run around 40 Datamax Prodigy printers here. There's one at the end of every assembly line to put a label on a case of our product. How you set the printer up depends on how you're interfacing it to the system, and what sort of print codes to intend to print to it.
The Prodigy understands a print language called Datamax Print Langage (DPL) and i5/OS doesn't understand that print language. This means that you'll need to write or buy software that DOES understand DPL.
If you're intending to buy the software, I suggest you ask the software vendor for the best way to set it up so that it's compatible with their software.
If you're intending to write your own software, I suggest creating your own WSCST definition that handles the mapping of the two special unprintable characters that the Prodigy uses (x'01' and x'02') so that your programs can send those special characters. The rest of DPL is text, so that part won't be a problem. But -- I'm getting ahead of myself here.
Please provide more details of what you're trying to accomplish!
anandraj@rogers.com10-17-2006, 06:38 AMThank you Chip.
Hi Scott,
We need to stick-on labels for the shipments that go out of our door. These are very specific to a customer. The label consists of very basic information e.g. Store Number, PO Number, Ship-To Name and Address, Product UPC code to name a few. Although currently we are not interested in printing any Bar Codes on the label, we may Print the PO Number and the UPC Code as a Barcode but that is only if the Customer requests.
Question, Where can I find information on WCSCT definition? Is there a possibility that you could provide me with some actual samples.
Regards
Charles
Scott Klement10-17-2006, 03:40 PMIt doesn't really matter what sort of information is printed on the label. For example, printing the string "1234" works pretty much the same as printing the string "ABCDE". I assume that once you've figured out how to print ANYTHING, you'll be able to adapt it to print anything else, since it only requires changing which letters are sent to the printer.
Given that, I don't understand why you're telling me that you're printing stuff like PO numbers and store numbers. Everything is printed pretty much the same way.
What I really need to know is:
What will you be using for software? Are you buying a package, or writing your own?
How will the printer be connected? Serial? Twinax? Ethernet?
Since the Prodigy (I'm assuming it's the actual Prodigy, not the Prodigy Plus or Max, etc) doesn't support anything but serial, you'll need an adapter of some kind to connect it. Different adapters have different considerations to take into account.
If you're writing your own, will you be doing so in RPG? Java? COBOL? C?
When we first started printing to the datamax prodigy, we used the following adapters from IO corporation:
http://www.iocorp.com/web%20pages/io4440g.htm
These adapters connect to the serial port on the back of the prodigy, and provide a twinax hookup. You can then define your printer as an IBM 5225-4 (or at least that's what we used) on the iSeries.
These adapters have a special capability that lets you send escape sequences as plain text. So you can write &%02&% to the print file, and the I-O 4440S will convert it to x'02' before sending it to the printer. This simplifies sending a hex code because you can send it as human-readable text and not worry about how the operating system will interpret it, and not worry about EBCDIC/ASCII translation. It's all done for you.
TL Ashford's Barcode/400 software understands these I-O 4440S boxes and their escape codes, so if you use their software to design your labels, it'll be compatible. If you choose not to use their software, but instead choose to write your own, you'll write the proper escape codes to the I-O box and let it do the conversion.
On the other hand, people are phasing out twinax, and then you wouldn't want to use those I-O boxes. You can create a WSCST object to handle the escaping of character codes instead... There was a discussion about this a few years ago on Midrange-L
http://archive.midrange.com/midrange-l/200103/msg01532.html
However, even if you don't need the I-O box for the escape code, you still have a problem! Datamax Prodigy printers are SERIAL (RS-232) printers, and therefore would be very difficult to use directly with the iSeries print spooler. AFIAK, printer device descriptions don't allow serial. Plus, RS-232 has a very short distance limitation... you don't want to run a serial cable more than 50 feet or so, so using the serial port on the iSeries is usually not practical.
Since you can't use the serial port, you need SOME WAY of adapting the printer so that it attaches to your system. You could connect it to a PC and have the PC communicate with the iSeries. You could connect it to one of the old 5250 terminals that had serial ports. You could buy an adapter like the I-O ones I mentioned, I suspect that they have ethernet models these days (though, I don't use them myself, so I don't know). Or maybe you can find a way to use your JetDirect adapter (I've never heard of someone using a JetDirect card for a serial device, much less a thermal printer, but maybe it's possible?)
Talking about WSCST at this point is a little premature, first I need to know how the printer is to be attached, and what software you're intending to use.
anandraj@rogers.com10-19-2006, 01:48 PMHi Scott,
To answer your questions first:
1) We will be writing our own application.
2) The printer will be connected through the Serial port to a local PC connecting to the iSeries as a 5250 session.
3) Yes, it is a Datamax Prodigy printer.
4) We will be writing the application in RPG.
All that we will be printing is "text" data (no barcodes) nothing fanciful.
Regards,
Charles
Scott Klement10-19-2006, 05:16 PMHello,
In my opinion the easiest way to do that is to use a WSCST. (The other way is to use *USERASCII files, which works very nicely as well...)
To get started, create a source file (if you don't already have one) to store the WSCST source code:
CRTSRCPF mylib/QTXTSRC
Then, create a source member named PRODIGY in that file that contains the following WSCST source:
:WSCST DEVCLASS=TRANSFORM.
:TRNSFRMTBL.
:SPACE
DATA ='20'X.
:CARRTN
DATA ='0D'X.
:LINEFEED
DATA ='0A'X.
:ASCCPINFO.
:CODEPAGE
CODEPAGE = 437
DATA =''X.
:ASCIICTL
ASCII ='40'X
DATA ='02'X.
:EASCCPINFO.
:EWSCST.
The important bit is the ASCIICTL section. It says that whenever there's an ASCII x'40' character (that's the ASCII code for the @ symbol) it should be replaced with x'02' in the actual output file. This way, I don't have to find a way to hard-code the x'02' in my RPG program and deal with the ASCII/EBCDIC translation. The WSCST takes care of converting @ to x'02'. Of course, it also means that I can't use the @ symbol in my labels, so I guess the door swings both ways!
Use the following commands to compile the WSCST object and assign it to a printer device. (You may have to use CHGDEVPRT to change an existing device, depending on how far you've come on your setup.)
CRTWSCST WSCST(mylib/PRODIGY) SRCFILE(mylib/QTXTSRC) SRCMBR(PRODIGY)
CRTDEVPRT DEVD(PRT01) DEVCLS(*VRT) TYPE(3812) MODEL(1) +
ONLINE(*YES) FONT(012 *NONE) PRTERRMSG(*INFO) +
MSGQ(*LIBL/mymsgq) TRANSFORM(*YES) MFRTYPMDL(*WSCST) +
WSCST(mylib/PRODIGY)
The key is that the printer is TRANSFORM(*YES) to tell the system do do transformation, and that it uses the PRODIGY WSCST object that you created with the CRTWSCST command from the source code, above.
Now that you've done that, you can write an RPG program that writes the Datamax Print Language (DML) to the printer. For example, here's an RPG program that does that:
FQSYSPRT O F 80 PRINTER
D label s 80A dim(20) CTDATA
D x s 10I 0
D LabelData ds
D data 80A
/free
for x = 1 to %elem(label);
LabelData = label(x);
write QSYSPRT LabelData;
endfor;
*inlr = *on;
/end-free
**
@M2280
@O0255
@L
H10
D11
PC
SC
W
Q0001
1542000034701011790
4022000030800719999999999
132200003010105OLIVE LOAF
402200000410071(01)90073608017902(3202)999999(15)9 99999(21)
122200001230091BATCH # 99999
132200000890141999999
122200000930091WGT: LBS.
2e2205003540010C&G0190073608017902320299999915999999219999999999
122200000620091USE BY:
14220000001011199/99/99
E
Obviously, you don't HAVE TO put the label data in a compile-time array. I just did it in this case as a quick demonstration. You could hard-code the data on O-specs if you wanted to, or if you wanted to be more deluxe, you could develop a service program that hid the complexity of the DPL language from the programmer. I just did it this way because it was easier for me to create a quick test program (We don't usually use the WSCST method, so I had to quickly put together a program that works the way it would in your scenario... I even hooked up a printer and tried it... it works, yippee!)
You'll note that I sent @ anywhere that I wanted a x'02' character. I couldn't send x'02' directly because the system would likely reject it as an unprintable character. Also, I'd have to deal with whatever it gets translated to when it goes through ASCII/EBCDIC conversion. So I send @, and let the WSCST translate it.
As for the rest of the stuff in this label format, it's all explained in Chapter 4 of the Prodigy Operator's Manual that came with your printer. The x'02' character is the "attention getter" and is sometimes referred to as $02 in the manual, or STX (STX is the symbolic name for ASCII code x'02').
If you don't have a copy of the operator's manual, it's on the Web at the following link:
http://www.datamaxcorp.com/software/traditional/
This example contains a few different sizes of text as well as a big complicated barcode... I realize that you don't need the barcode right now, but if you ever do, you'll have this as a sample of how to do it. I suggest trying mine to see what it looks like, then comparing the code against the stuff in the book with the label right in front of you so you can go "ohhh... that prints THAT part..." (if that makes any sense).
Good luck
anandraj@rogers.com10-20-2006, 07:06 AMThank you Scott. I am going to try is out today.
It is the first time I am using WSCST. I know the first time is discovery time, probably it will help in the future.
I will post an update one I finish testing this.
Thank you once again.
Regards.
Charles
anandraj@rogers.com10-20-2006, 02:32 PMThank you Scott. I just finished testing the program that you gave and your example works just great. I can now retrofit it to the information that I need to print on the label.
Thank you once again.
Regards
Charles
anandraj@rogers.com10-24-2006, 07:34 AMHello Scott,
I have implemented the solution into our Production system and is works great. Thank you once again.
I have tried to change the Font Type but could not do so, where if I am ask do you change the Font Type.
Regards
Charles
Scott Klement10-25-2006, 10:56 AMDid you look it up in the book that came with the printer (or the link that I provided earlier in this thread)?
For example, consider one line of the label sample I sent you:
132200003010105OLIVE LOAF
In the book under "4.6 Field Definition - Human Readable Fonts" (page 51 of my copy) it says this:
char 1 = flag for rotation (1=0 deg, 2=90 deg, 3=180 deg, 4=270 deg)
char 2 = font.
char 3 = horizontal multiplier (width of char)
char 4 = vertical multiplier (height of char)
5,6,7 = always 0
8-11 = row address (in 1/100th of an inch)
12-15 = column address (in 1/100th of an inch)
16 + = characters to print.
So in my example, above, the number 3 (the second character in the OLIVE LOAF string, above) represents the font. If you look in "Appendix D. Available Fonts and Bar Codes" of the manual, it tells you what font 3 is. It says that it's a 62-character alphanumeric font, uppercase, characters are 27 dots high, 14 dots wide and 2 dots spacing. It also shows what the characters look like when they're printed (Page D-5).
Alan10-26-2006, 11:08 AMThis can be accomplished with a PC tool that uses the Windows driver.
Please review the following links.
http://www.brooksnet.com/as400site-rpmhome
http://www.brooksnet.com/software-case-studies.html#as400
anandraj@rogers.com10-27-2006, 02:32 PMHi Scott,
I had downloaded the manual that you indicated and could not find the exact section that you have pointed out.
I then started looking for any hints that the manual may give based on what you have indicated and finally through a number to trial and error finally managed to get the style I wanted.
Thankyou once again for all the help.
Regards
Charles
Scott Klement10-27-2006, 04:59 PMI just checked, and the info I'm referring to is definitely in the on-line version of the book!
I know there are a lot of different manuals on the page I provided the link to. The book that deals with the Prodigy is the one called the "Prodigy Operators Manual". Here's a direct link to the PDF for the Prodigy Operators Manual:
http://www.datamaxcorp.com/_assets/library/pdf/prodigy_operators_manual_b1.pdf
When the document is opened by Adobe Acrobat, there's a little box at the bottom of the window, near the middle, that says "1 of 144" (referring to the page you're viewing) Blank that box out, and type 59 and it'll take you to the 59th page of the PDF document, which is section 4.6 and shows the different codes that you put in the various positions.
Use the same little "page number" box to jump to page 119 to see the Appendix where they show you what font 3 looks like. You can scroll up and down to see other fonts and what they look like.
anandraj@rogers.com10-30-2006, 11:56 AMHi Scott,
Sorry, probably I misunderstood. I was looking at the DPL Programmers Manual instead of the Operators Manual.
Thank you for all the help.
Regards
Charles
ecujak05-10-2007, 07:15 AMWe run around 40 Datamax Prodigy printers here. There's one at the end of every assembly line to put a label on a case of our product.
We were using Symbol CB-1000 client bridges to print to our Prodigy Max printers. We are migrating to DataMax M class printers using 3Com WL-560 bridges. We don't have any problem printing to the M Class printer over IP.
Our problem is printing to the Prodigy Max using the serial port of the 3Com bridge. Does anyone know a way to configure the 3Com bridge to send the print jobs to the prodigy max through the serial output of the 3Com bridge?
the CB-1000 used lpd but this is not an option with the 3Com bridge. Is the 3Com bridge capable? Does anyone know where to look?
Scott Klement05-10-2007, 05:39 PMI'm pretty sure that the WL-560 is an ordinary workgroup bridge, not a print server. Correct me if I'm wrong.
In other words, it's job is to connect two networks together so that they look like one big network. The connected network is able to pass data from any device to any other device -- that's what networks do. The bridge just helps to enable that network connectivity.
It doesn't let a non-network device communicate over a network. That's the job of a different type of device. Usually a device designed to receive network jobs for a printer is called a "print servier" (not a bridge).
In the past, I've used adapters from both Praim and I-O Corporation. For the Prodigy, I liked the support that I-O offered. You might try contacting them for help:
http://www.iocorp.com
ecujak05-11-2007, 03:21 AMThanks for the help. I figured since the symbol cb-1000 bridge was able to sent print data over its serial port that the 3Com bridge would be able to do the same with its serial port.
The only difference in the configuration of the two is that the cb-1000 was able to use the LPD protocol and the wl-560 was only able to use tcp/ip.
I will check out the io link you gave me.
again, thanks for trying.
разделы
втулка переходный
морозильный ларь
mobihel краска
регестрация пбоюл
rittal
кулер процессор
интеллектуальный электросчетчик
фосфорицирующая краска
адресный база данный
операторский центр
деловой костюм
монитор видеодомофона, монитор, видеодомофон
продать кайт
мультиметры цифровой
пазл
бахила производитель
de luxe 5040.11
лакокраска
5440.16 (крышка)
купить актуатор
гайковерт
купить чейнджер
certification microsoft
профиль salamander
ваттметр
рефконтейнеры
купить элеваторный узел
брэнд
доставка алкогольный
зона ограничение доступ
пазл
свойство краска
мистер бин
покрышка бриджстоун
билет хоккей
валерий билет
стопный пластырь
лечение щитовидный железа
купить чейнджер
электропечь dimplex model elba
герб область
подбор контрацепция
беседка
кассовый машина
kyiv apartaments rent
лечение алкоголизма
fag
цвет камуфлир
бензопила импортный
renu multiplus 355мл
узи сделать
контакт контактор
ароматный мир
дренаж
добрый тепло
рукавица
кс-4361
vps vds
холодильный централь
тонирование стеклопакетов
эмжс
авиатакси
эфирный антенна kaasi
эфирный антенна kaasi
эфирный антенна kaasi
эфирный антенна kaasi
эфирный антенна kaasi
эфирный антенна kaasi
эфирный антенна kaasi
эфирный антенна kaasi
эфирный антенна kaasi
изготовление краска
выборочный лак
вихревой теплогенераторы
поставка тройник
этнический психология
заказать микроавтобус
1000 холодильник
время ярославль
купить ножовка
залог кострома
дешевый холодильник
изделие слойка
экг 4у
кислородный концентратор
интеллектуальный электросчетчик
телефонный анкетирование
акриловый вкладыш
рак кишка
басейны intex
светоотражающий краска
datamax