Just my two cents. We had an integrator build us a couple of assembly cells. The corporate decision was to put two new Zebra ZT230's in the cell with it, because they had Ethernet capability. This would end up being a nearly year long headache for me. Even after the Ethernet was configured, and the CompactLogix was sending it the proper ASCII/ZPL code, the printer would decide to lock itself up at random times with a blinking data light. Zebra tech support was no help to us for any of this.
I finally made the decision to go a different route, one that we have used for DataMax printers. We bought a module made by RTA Automation that converted from Ethernet to USB; the 435USB. What used to be 20 rungs of programming has been converted to 3. We now use a few CONCATenate commands to populate a custom length string (350 characters). When the 435USB detects data in the tag, it pulls the ASCII ZPL code and pushes it into the printer. The only downside I have discovered using this method is that we are no longer able to get a status back from the printer. The operators now have to pay a little more attention to the label stock than they did before, but printing is much more reliable.
The ZPL code is kind of a hassle to learn at first, but after a couple of hours of working with it, it isn't too bad. We print a label that includes part numbers, operator codes, time and date built, and a DataMatrix barcode.
My experience after this job, and many others like it prove to me that when I die and go to the burning underneath, my punishment will be an endless string of intermittent problems.