In our previous article we discussed the hardware details of Allen-Bradley’s first programmable controller, the PDQ-II. Now in today’s article we’ll take a detailed look at the program side, including programming options and procedures, as well as what mnemonics (aka instructions) were available for use in PDQ-II programs.
PDQ-II programs were stored in the system's on-board memory, which was expandable from 1K (1024 8-Bit words) to 4K (4096 8-Bit words) by means of up to four 1K Memory Modules installed in the system’s Memory Chassis.
The program’s themselves supported standard Boolean Functions as well as Counting, Timing, Shift Registers and Retentive memory. And the PDQ-II was fast for it's time with an average scan time of 3 to 5 ms per 1024 words.
Now before we jump into how to program the PDQ-II, it's important to note that programming back in the late 60's and early 70's was accomplished without the use of a Personal Computer, as they would not come to market until the mid to late 70's, and the IBM PC (grandfather of all Microsoft/Intel based PCs) wouldn't come out until the summer of 1981.
So to program a device like the PDQ-II back in the late 60s and erarly 70s, you typically have two choices: You could either use a specifically designed Programming Device (aka a Programmer,) or use software written for a Mainframe Computer.
Option 1: The PDQ-II's Manual Programming Panel (MPP)
The first step to programming a PDQ-II with its MPP would be to convert your machine control logic (often in the form of Relay Ladder Diagrams) into the PDQ-II Mnemonic equivalents using its Basic Instruction Set of 12 mnemonics list below:
- EØN – Energize Output Non-holding
- DØN – De-energize Output Non-holding
- XIC – eXamine Input Closed (also works as XTC)
- XIØ – eXamine Input Open (also works as XTØ)
- XØE – eXamine Output Energized (also works as XTE)
- XØD – eXamine Output De-energized (also works as XTD)
- BBX – Begin Branch eXamine
- BLC – Branch List Complete
- HLT – Halt (Stop Memory Cycle)
- NØP – No OPeration
- TMR – TiMer Start
- JMA- JuMp Absolute
Note: Some of the mnemonics listed above will be immediately recognizable to long time users of A-B programmable controllers, including the XIC (eXamine If Closed,) XIØ (eXamine If Open,) and the NØP (No OPeration.)
Once you've created your program on paper, you'd then use the MPP to load each instruction into the PDQ-II's memory one at a time by (1) pressing the Instruction Push Button, (2) Setting the IO Address, and (3) pressing the Load Memory Push Button.
In addition to loading your program into the PDQ-II's memory, you could also use the MPP to Verify Memory, Modify Memory, and Monitor the Status of Inputs and Outputs. You could even create a Paper Tape of the current program by way of the optional Tape Reader/Punch.
Option 2: Computer Aided Programming
When it came to programming the PDQ-II from a “Computer,” it was nothing like in the 80’s and early 90's when IBM Compatible Personal Computers running DOS were used with PLC Programming Software like ICOM's A.I. Series, or Allen-Bradley's 6200 and APS Software.
But if you did have a Computer to aid you in programming your PDQ-II, you would unlock the use of PDQ-II's Extended Instruction Set (in additional to the Basic Instructions) listed below:
- EØH – Energize Output Holding
- DØH – De-energize Output Holding
- SSA – Sequence Step Activate
- SSD – Sequence Step De-activate
- JMM – JuMp and Mark
- TIS – Transfer Input Status
- TØS – Transfer Output Status
- TRN – TRansfer Number
- XTC – eXamine Timer Closed (use XIC on MPP)
- XTØ – eXamine Timer Open (use XIØ on MPP)
- XTE – eXamine Timer Energized (use XØE on MPP)
- XTD – eXamine Timer De-energized (use XØD on MPP)
To start programming the PDQ-II using a computer, just like with the Manual Programming Panel you first needed to convert your existing machine control code (typically documented in Relay Ladder Diagrams) into the PDQ-II Mnemonic equivalents:
Once this is done, you'd then need to type your program in on a standard 8-channel Teletype-Writer. Once completed, you'd then dial your company Computer with the PDQ-II Translation Software loaded, and feed your PDQ-II program into it.
The Computer would then output a Punched Tape of your program in the PDQ-II's Machine Language.
To transfer the Punched Tape program into the Memory of your PDQ-II, you'd typically remove the Memory Chassis from your PDQ-II and insert it into the (optional) Memory Loader device.
Then you'd run through the procedure to transfer the Computer generated Punched Tape into the Memory of your PDQ-II, after which you reinstall the Memory Chassis into your PDQ-II Logic Package chassis.
While the above procedure may seem tedious, on the bright side A-B actually made the PDQ-II Programming Software available free to customers.
Since the email standard (SMTP) wouldn’t premiere on ARPANET until 1983, and the Internet wouldn't go public until 1991, customers would actually request a copy of the PDQ-II Software by writing and mailing a physical letter to Allen-Bradley (this also allowed users to avoid the exorbitant cost of long distance phone calls of the time.)
In return, Allen-Bradley would mail the user back the program they requested on either Punch Cards or Perforated Tape used to load the translation program into the company’s Computer.
Editors Note: Looking back, I’m very thankful Floppy Disks were a thing by the time I started using PLCs in 1990!
During my research into the software I also found mention of multiple software packages, including one that would allow a Computer to either Monitor the status of the PDQ-II’s inputs and outputs, or actually take over complete control of the system (Skynet anyone? – Ed.)
Unfortunately I wasn't unable to find any further information as to how this was done and what connections were used. But if you have any PDQ-II information you’d like to share, or experience using it, I’d love to hear them! Just use the comment area below this article to post them or the contact link on the top of the page to get in touch.
Sponsor and Advertise: Get your product or service in front of our 75K followers while also supporting independent automation journalism by sponsoring or advertising with us! Learn more in our Media Guide here, or contact us using this form.