Terry,
Very interesting thread. Programming is both an art and a skill. I have had many discussions with my programmer. He will tell me, that there are many ways to program an application. Where it becomes both an art and a skill, is developing the most efficient solution.
When we do programming for a new OEM application, I will usually help to verify the program with my programmer. It is an extremely sweet feeling when an application is completed and works just as the customer wanted...and I'm not even the programmer.
Sort of related.
We got a call from a customer ranting at us that our hardware was defective. Said the controller was working for three weeks without a problem and all of a sudden multiple alarms were tripping. We had been out there once before, made some modifications to our analog board because they were using grounded RTDs, Ground potential ranged from 100 - 250 mV with 400 mV spikes.
So, he rants and raves about our product and that if he has to send someone to fix our problem...he was going to bill us for it.
Sure enough the customer program was missing several compare statements that caused the controller to trip on multiple alarm conditions because it was comparing all these set points with one compare.
We had another customer who was concerned because the program that was developed for him wasn't working properly...it kept resetting the controller. This controller had a special operating system for two high speed counters, that require a specific relay to turn on the input and activate the value in a specific TC register. It turns out that he has wired his two encoders that generate no more than 20 Hz to different outputs, which is acceptable for our inputs, but is still using the relays in the program for something else. In addition, internal relays 1 & 2 are special relays that are used to monitor the condition of the PLC...they are using those relays in the logic of the program. We told them to make certain changes. For the last three days, everything is working better than he could expect.
To the defense of the programmer, he was new to our products. A learning curve with everything....that is the skill part.
In writing this...the skill is knowing what to do with the product you are working with...the art is the program...a creation from someone's idea. Making an idea a reality from a concept is certainly an art.
There are many programmers out there that have the skill to program...but not all of them have the creativity.
And on a final note...there are countless times we will get product back because the customer tells us the controller is bad...and sure enough, it isn't the controller, but something else in their panel.
God Bless,