micrologix 1000 check comms function


Thread Starter

Albert Pittman

I am working on a small project for a company that uses Esteem radio modems. They have a repeater site which locks up periodically. The current solution is to place a micrologix 1000 at the site, and check its comms. That is a very simple task for such an expensive piece of equipment. I have other solutions to the problem, but I would like to keep as much of their current configuration the same as possible. I would like to replace the unit with a BASIC stamp from parallax, but I do not know what the PLC sends to the modem in order to check its comms. Since I run a very small business, I dont have a micrologix or the software for it at my own computer. If anyone could give me a hand at finding out what the plc sends out to the modem, it would be apreciated. I'll take anything i can get, string form, hex form... whatever.

>> I would like to replace the [MicroLogix 1000] with a BASIC stamp fromparallax, but I do not
>> know what the PLC sends to the modem in order to check its comms.


If you can build and debug a STAMP-based DF1 emulator for under $250, you clearly already own the tools to program, debug, and build microcontroller systems, so really your investment in tools is just someplace else.

Probably what your customer is doing is hooking up RSLinx Lite software with it's DF1 protocol RS-232 full-duplex driver and letting it do the
"RSWho" function. RSLinx sends an inquiry to the end device asking about it's identity, then asking the name of it's program. You'll have to
emulate both of these responses as well as the DF1 error checking.

They're likely not doing the RSLinx function of pinging the heck out of every baud rate and error check and parity variation until they get a
response; typically a modem is going to be set for a particular data rate.

To make things easier, get the DF1 Protocol manual, Publication 1770-6.5.16 from www.theautomationbookstore.com. Spend $30 for the hardback or download it for free in Adobe PDF format.

I hooked up an intercept between a MicroLogix 1000 at 9600 baud, 8/N/1 data format, CRC error checking (the defaults for MicroLogix) and RSWho's browse function and observed the following (where obvious strings are in ASCII,
hex codes are "0xNN" and control codes are in brackets):

RSLinx: <&lt;LE>&lt;STX>&lt;SOH>&lt;NUL>&lt;ACK>&lt;NUL>&lt;ETX> 0x70
&lt;ETX>&lt;DLE>&lt;ETX>0x80 0xC4

MicroLogix: &lt;DLE>&lt;ACK>&lt;DLE>&lt;STX>&lt;NUL>&lt;SOH> 0x46 &lt;NUL>&lt;ETX> 0x70 &lt;NUL>
0xEE 0x34 0x58 0x60 1761 Micro
&lt;NUL>&lt;NUL> 0xA6 &lt;NUL> 0x45 0xDB &lt;DLE>&lt;DLE> 0xFC &lt;DLE>&lt;ETX> 0x4D

RSLinx: &lt;DLE>&lt;ACK>

a short pause

RSLinx: &lt;DLE>&lt;STX>&lt;SOH>&lt;NUL>&lt;SI>&lt;NUL>&lt;EOT> 0x40 0xA1
&lt;DLE>&lt;DLE>&lt;NUL>&lt;NUL>&lt;NUL>&lt;DLE>&lt;ETX>&lt;NAK> 0x77

MicroLogix: &lt;DLE>&lt;ACK>&lt;DLE>&lt;STX>&lt;NUL>&lt;SOH> 0x4F &lt;NUL>&lt;EOT>@SPUTTER
&lt;NUL>&lt;NUL>&lt;NUL>&lt;NUL>&lt;NUL>&lt;NUL>&lt;NUL>&lt;NUL>&lt;NUL>&lt;DLE>&lt;ETX> 0x3C 0x3A

And so on. I can't decode DF1 by hand so that's your project. I know some of this is CRC error checking (i.e. after the &lt;DLE> &lt;ETX> message
frame terminator) but I don't know the rest.

Good luck,

Ken Roach
A-B Seattle
[email protected]