End of year contest

Steve Bailey

Lifetime Supporting Member + Moderator
Join Date
Apr 2002
Location
The boondocks of Western Massachusetts USA
Posts
8,533
In the spirit of the Bad Hemingway and Faux Faulkner competions, I'd like to announce the first annual Bad Ladder competition. The idea is to create the most egregious example of obscure, misleading, downright ugly ladder logic you can think of. It can be an attempt to make a single rung do the work of an entire program. It can be something that renders a simple concept excruciatingly non-obvious. It can use analog instructions to perform a discrete task or vice-versa. It can break every rule of civilized programming, but still manage to work as specified.

The rules are simple:

1. Relay ladder logic only

2. The program must work. It must perform the task specified.

3. It must use instructions found in the majority of PLCs and be runnable on at least three PLC platforms from different vendors with no more edits than required to meet addressing and/or naming standards.
Judging criteria is totally subjective and entirely up to the discretion of the judges.

For this year's contest I nominate as judges, myself, BobB (the old pfhaart), Pierre, Bernie Carlton, and Terry Woods. This year's winner gets to nominate next year's judges.
 
I am honored and humbled by Steve's nomination as a judge for this prestigious contest though my area of expertise would be AutomationDirect, SLC and Micrologix. If this actually generates entries in other than these platforms please feel free to ask to have me disqualified for that entry.

So in essence a Rube Goldberg of ladder logic.
 
Have you guys been looking at the logic in my plant that I have to keep running?

Merry Christmas
 
I am wondering what uniquely qualifies me as a judge for this contest? Bad code? Certainly was some terrible code when I was learning.

Thanks Steve.
:eek:
 
BobB,

I don't know when they were here at my plant but they have to have been looking at some of the logic crawing among the cobwebs of this organization. I'll have a hard time picking out the most *090^^% example.

Wyo_Knott
 
Last edited:
Steve i might have to dust off my proficy software. I have done some things with the array move that baffles the best engineers.
It must use instructions found in the majority of PLCs
Perhaps not but we can use jumps/lable and indirect right? What about UDT's and such.
 
Last edited:
2. The program must work. It must perform the task specified.

I dont see any task specified...............not that I would be high on the solution list, but with the task declared, I would at least know what it was I wasn't so good at.
 
I propose a particular function, the toggle.

We get so many requests here from people who don't perform even a simple search that it would be great to point to a particularly horrendous solution depending on their platform.

In case others did not understand my 'Rube Goldberg' reference in an earlier post he was an American cartoonist who proposed incredibly complex machines to perform very simple operations often including filling buckets of water and rolling bowling balls.
 
I propose a particular function, the toggle.

We get so many requests here from people who don't perform even a simple search that it would be great to point to a particularly horrendous solution depending on their platform.

In case others did not understand my 'Rube Goldberg' reference in an earlier post he was an American cartoonist who proposed incredibly complex machines to perform very simple operations often including filling buckets of water and rolling bowling balls.

Yeah I have seen Mr. Goldbergs work , frequently used in reference to government.

So are you proposing a bit of programing that further complicates the issue to a ridiculous degree in order to promote humor at the expense of the uninitiated?

I regret that I do have the time to join you on your quest, but I look forward to reading the results and struggling to decypher the solution in an attempt to better understand the "machine".
 
Hi all,

Here is my entry for the contest. It is written for an AD 430 processor with a 16 point output card with a starting address of Y0. It would also work on other 400 series processors and 300 series processors. It should run on a 200 series processor; however, the 16 point output cards for the 200 series do not have the proper LED configuration for the program to work properly. This program should also be able to be adapted to an AB SLC 500 series processor, as the 16 point output modules have a very similar configuration as the AD 400 series cards.

I don't actually have the hardware here to test this program, so I am hoping someone can run this for me. If someone does test this, DO NOT have anything actually attached to the output card! Pull the terminal strip.

Extra points to anyone who can figure out what this program does without running it. It is small enough to be opened in the demo software for AD PLCs.

Brian

Edit: This was put together before bernie made his suggestion. This program does include a normal toggle, but it is used as a frequency divider. I don't know whether that counts. :)
 
Last edited:
I was willing to include any examples, but if limiting this year's contest to the toggle (aka flip-flop) function results in more responses, I'm all for it.

As a self-nominated judge, I'm not eligible for the grand prize, but here's a modest contribution to help stimulate the creative juices.


Pushbutton _____ _____ ______
--]P[-----| ADD |----------| > |--------| MOVE |
| | | | | |
R1 -| |- R1 R1-| | 0 -| |- R1
| | | | |______|
1 -|_____| 1-|_____|
_____ Out
----------| EQ |-------( )-
R1 -| |
| |
1 -|_____|

 
Last edited:
If this does progress into an actual contest I propose, at least for the first few years, to nominate the simple requests placed here. The 'toggle' seemed the simplest but possibly followed by 'traffic-light', 'elevator/lift' and 'garage-entry-gate'.
 
Hi there
Enclosed is my entry for Toggle.

M100.0 is Always Off
I0.0 is Push Button
Q0.0 is Output

Instruction used:
1)MOVE.
2)Integer to Double integer converter.
3)Compare Double integer.
4)Rotate left double word.
5)Rotate right double word.

c3.jpg
 

Similar Topics

Our punch press has a SLC500 with HELM weight module (HM-604-WM) for tonnage monitoring. The operator enters the weight range on the HMI, which is...
Replies
9
Views
139
I am converting a SLC 500 to a Compact Logix. I plan on using a Compact Logix 5380 with conversion Kit. The problem is that the analog input cards...
Replies
1
Views
114
Hello. I am working in FTVSE v8. I have many trends set up some of them work others do not. The ones that don't work show the foot print of the...
Replies
1
Views
111
I'm trying to build my Classic Step 7 programming skills this weekend. I get stuck on little things that are not covered in YouTube tutorials. I'm...
Replies
7
Views
248
can the slc500 5/05 send a email and text over Ethernet ?
Replies
3
Views
147
Back
Top Bottom