Allen-Bradley Basic Module “C” Programming?


Thread Starter

Andrew Snowdon

I have a requirement to program an Allen-Bradley basic module in "C" programming language but am struggling to find any information on how to compile the written program into machine code in a "ready to use format". Under normal conditions the basic module compiles the program when needed but this costs time when running. Therefore I need the addressing list for the Basic Module of the various commands (calls and push) internally on the card to enable my program to be fully compiled into machine code. Can anyone shed any light?

I am aware of this tool that will help.
IAR System Embedded Work Bench
It compiles ANSI C into a Hex file for downloading to a A-B 1746-BAS or a 1771-BAS.

George at A-B
The AB Basic module (1746-BAS) uses an 8051 processor. I have done this in the past, and there is a C compiler designed specifically for this processor produced by (I think) a company called IAR, or something like that. The company which actually designed the module also sells a C toolkit optimized for the Basic module. If you need further details let me know.

Andrew Snowdon

I am aleady aware of the IAR compiler / OLDI toolkit solution but these are not longer available (the versions do not match and OLDI are not planning to update their toolkit to the latest IAR compiler).

I already have an old version of the IAR compiler, but to use that on its own I need to know the entry points of the hardware interface routines. e.g. read a character from the serial port, exchange words with the PLC etc.

If anyone knows these, please tell !

Michael Griffin

I recalled discussing this subject on this list before. I had a look in my old e-mail messages and saw we talked about it in June of 1996. Online
Development Inc. had a C toolkit for use with AB basic modules. I don't know if they still sell it, but you can contact them at:

You appear to be concerned about the execution speed of your program. You might as an alternative consider trying to carefully optimise
the basic program. I have been able to speed up basic module programs by a factor of 3 to 8 times by simply re-writing them. I can elaborate on these optimisation techniques if you are interested.

Michael Griffin
London, Ont. Canada
[email protected]