ASCII

I’ve been around the Industrial Automation industry for a fair amount of time now. Just today, I opened one of the old filing cabinets in our storage room and found oodles of old projects. Some of the stuff was older than my first Oldsmobile (that’s three or maybe four cars ago).

Looking through the projects I realized how many of those old projects had to do with moving ASCII data around. In those days, ASCII was pretty much all we had. That was way before all the fancy protocols. Long before Profibus and DeviceNet and long before Ethernet. Heck, some of those projects were before I had even heard of Modbus.

In those days, our work focused on moving that ASCII data into PLCs over RS232 and RS485 data channels. We worked with old Allen-Bradley modules like the 2760-RB and the 1746-BAS modules. They were temperamental beasts but solid. It wasn’t elegant or easy but they got the job done.

Now it’s 2014 and you know what, ASCII still lives. It’s the basis for XML so it’s a key component of the Internet. But beyond that there are still thousands of automation devices that spit out ASCII messages. Most of these are old devices based on now archaic 8-bit processors. And it’s likely they are going to be around for a while. These things have been in production forever and they still work so there’s little incentive to redesign them.

But in today’s automation architecture, ASCII doesn’t fit very well. RS232 connections are limited to 50 feet while RS485 is limited to only 1000 feet so proximity is an issue. But more than that, you need a serial port to receive the data. Serial ports are an endangered species now days. PC makers eliminated them from PCs to save cost a number of years ago. PLC manufacturers killed them off too for the same reason. The metals in the connector and space requirements were just too costly.

So, lots of automation engineers that need to move ASCII data into PLCs or onto industrial networks are left in a bind. They still have barcode readers, meters, scales and other devices generating ASCII data that they want to send to a PLC but now they have no serial port to send that data to.

Well, I opened the door to our Engineering department the other day, always good to air it out once in a while, and I learned that we had the perfect device for this. Control Engineers and Systems Engineers can now get a device that moves ASCII data into PLCs and onto Ethernet networks like EtherNet/IP, Modbus TCP and Profinet IO. Besides that, it can move data onto DeviceNet and Profibus and Modbus networks.

That’s all fine but there were two features that got me really excited. One, we can support multiple physical layers. The ASCII data can come from TCP, Serial RS232 or RS485 or even USB. Yes, you can now move data from USB into a Rockwell PLC. Very cool, I thought until they told me they added another feature.

What’s that I said? Then they told me that they have the capability to not just move the ASCII message into a PLC or onto a network but also move selected pieces of data.They told me that you can select a portion of the message, like two characters of a barcode or the third value of a comma delimited string, and convert that selected data. You could take the two characters of the barcode and convert it to a numeric index. You could extract the gross weight (third entry) from a message like this:

A500,401.3,525.6,679,P

And convert that to a floating point and store in the PLC data table. That’s going to really help out a lot of control Engineers that need to get a nasty interface job done.

“Well Done” I said as I closed the door so they can focus on the next series of enhancements.