Programming class

elvis_931

Member
Join Date
Oct 2011
Location
TN
Posts
2
I have a scenario:
If my boss was to come to me and say "We need you to develope and write a program from scratch for "X" machine." I am capable of troubleshooting logic fairly well, but cannot write/develope logic very well. Can anyone direct me to a training class that would be best for this type of PLC logic developement/programmimg training. Preferably not an on-line class. Thanks
 
to write a program is only half the issue.
You can fault trace - which is excellent.
you need to have an understanding of the mechanical design also.
the training suggestions of Traffic lights, elevators, etc. are a good start.
because You know how they work - now program them to work.
the designing of a machine does not differ that much.
1. start
2.move A out
3.move B up
4.return both back
5.stop
once you understand how to sequence something it is not hard.
 
Yes I understand that. I need training on how to design and develope the logic in a structured method. Also to actually write the logic.
 
Check the Technical Schools in your area for PLC Courses. However, I would imagine you wouldn't get to how to write a PLC Program until the more advanced courses, if at all.

Stu....
 
If you can trace faults.its excellent then i think you dont need any external trainig only for how to develop in plc programming.only go through the plc software u used,refer the manual then u can easily develop logics.

Regards.
Mansvinrocks
 
Everyone has their own style. Every style has strong points and weaknesses. There is no absolute right or wrong way to do something. There are only efficient and inefficient ways of doing something. The creativity part is what I love about programming.

Now, all of that being said, lacking experience in development, you should expect problems. How complex is the machine/process? What are the safety concerns and do you understand them? How patient is your boss? Will they give you enough time to complete the project to your satisfaction?

I would get the answer to those questions first. Then copy someone’s style that you can readily follow and understand making modifications along the way. As you go you will discover what works well and what does not specific to the application at hand. You will develop your own style and approach. You will make mistakes, that’s a given. I have started in one direction spending hours going down a particular path only to reach a point of discovery that it will not work efficiently and be forced to start all over. It happens. Be patient and have the confidence to see it through as well as the humility to ask for help when needed.

Hope this helps, good luck.
 
Tweeker gives some excellent insight and advice here. Some other things I like to emphasize to those first starting out is.

1) Don't just start out writing code first. Write out your sequence. Draw charts and diagrams of how it should work.
2) Whatever "style" you choose, try to keep it consistent throughout the entire program.
3) The part of the program for correct operation of the machine is the easy part. The hard part is what happens when things don't happen correctly. Faults/Alarms, recoveries, diagnostics, etc. These are what sets apart a good program from a bad one. At every step (and I mean every step) in your program you need to evaluate what should happen if something doesn't happen "as expected".
4) Try to break everything up into well defined subroutines that have a clear objective. Try and keep these subroutines as isolated as possible.
5) You didn't mention what software you will likely use. Try to develop a consistent naming convention whether it be tags or symbols. Get in the habit of commenting your code. I will often write the comments in prior to even writing the code based on my sequence lists or flow charts.
6) Have "modes" in mind prior to coding. Give thought to how you will switch things over from Auto to Manual. This can get tricky and messy if you don't work it out well. I always keep one single subroutine for all my physcial (and fieldbus)
outputs. This is a good place to put break up your modes. Consider using a whole separate set of bits for Manual than you have for Auto operation.

Like Tweeker mentions, as you progress you will get a better feel for what techniques work better in what situations. You will develope a "toolbox" so to speak of methods. This is all a result of experience, keeping an open mind, developing a deep understanding of what is happening inside the controller, and studying other peoples code to pick new tricks.

You will find traing on how to use the IDE, and the basics of very rudimentary applications, but the reset will have to come from you.
 
Tweeker gives some excellent insight and advice here. Some other things I like to emphasize to those first starting out is.

1) Don't just start out writing code first. Write out your sequence. Draw charts and diagrams of how it should work.
2) Whatever "style" you choose, try to keep it consistent throughout the entire program.
3) The part of the program for correct operation of the machine is the easy part. The hard part is what happens when things don't happen correctly. Faults/Alarms, recoveries, diagnostics, etc. These are what sets apart a good program from a bad one. At every step (and I mean every step) in your program you need to evaluate what should happen if something doesn't happen "as expected".
4) Try to break everything up into well defined subroutines that have a clear objective. Try and keep these subroutines as isolated as possible.
5) You didn't mention what software you will likely use. Try to develop a consistent naming convention whether it be tags or symbols. Get in the habit of commenting your code. I will often write the comments in prior to even writing the code based on my sequence lists or flow charts.
6) Have "modes" in mind prior to coding. Give thought to how you will switch things over from Auto to Manual. This can get tricky and messy if you don't work it out well. I always keep one single subroutine for all my physcial (and fieldbus)
outputs. This is a good place to put break up your modes. Consider using a whole separate set of bits for Manual than you have for Auto operation.

Like Tweeker mentions, as you progress you will get a better feel for what techniques work better in what situations. You will develope a "toolbox" so to speak of methods. This is all a result of experience, keeping an open mind, developing a deep understanding of what is happening inside the controller, and studying other peoples code to pick new tricks.

You will find traing on how to use the IDE, and the basics of very rudimentary applications, but the reset will have to come from you.
More excellent points Damian! Also thanks for the props.
 
First, you need to have User Defined Requirements.
You must need to know what the user is requesting.

Then, you should always create a Control Philosophy.
This is the document that you will develop your design and programming from.


If you don't have these two items, then you are just taking swipes at what is actually necessary.
 
Excellent points everyone! I specially liked DamianInRochester's breakdown.

Two other things to keep in mind:
1. Do a full inventory of your control systems. Open every control panel and write down the manufacturer and model of all your PLCs and remote IO. Also note the Control Panel name or number. Create a network infrastructure or topology layout. What you want to do is identify all the players in the game and what language they speak, and how do they talk to each other, Do this BEFORE you start anything! This will help you choose what classes to take (Allen Bradley, Siemens, Automation Direct, GE, etc) and it will be more beneficial for you and your company.

2. Think "Object Oriented" when developing a project. But as Damian pointed out.. STAY consistent! Just like you took inventory of the control system, take inventory of all the devices (instruments, sensors, motors, drives, etc.) that interface with the controller. List them all in an excel spread sheet. Separate them into Inputs and Outputs (analog and digital). This is how you create an IO List/Table.

Read a few programming books on your spare time, nothing extreme, just easy books that will help you give form to your data structures. It will be important to start thinking in a parent/child, object/element and device/property mindset.

Just my 2 cents.. Hope it helps!

-Julio Velasco
 
I can do onsite custom classes TN isn't that far. Like everybody has said understand the process.

Peter once said a good program is 50% fault detection or fault logic. It will tell you when something is wrong.
I have used that method more than once and when startup time comes it makes things way to easy. We find that the switches are NO instead of NC. Cylinders A&B ports are backwards, the valves are powered close instead of open. Little things like that make life a bear so the more the system will yell you the better off you are.
 
I agree with digita7voic3 point. You need to know what equipment that you have and go from there. But, if you just need basic class that goes over the basics then JeffKiper way will work
 

Similar Topics

I have an IMC S Class 4100-234-RL 4-axis motion controller. The unit powers up, it passes the diagnostics and the System OK light comes on solid...
Replies
10
Views
8,972
Dear all, I have fx2n plc on my hand but I don't have the programming cable sc-09 and it would not be easy for me to get one. I need the cable...
Replies
3
Views
117
Hi all, i am the new controls guy at the plant and i have inherited a pc from the previous controls guy with Siemens tia portal version 16 and 17...
Replies
20
Views
888
I need to pull the program off of an old 90-30 so I can convert it to Allen Bradley. This is my first time messing with GE and I don't have the...
Replies
2
Views
84
New to vfds. I put in parameters. IP, but I get ethernet flashing and link solid. What did I do wrong?
Replies
9
Views
474
Back
Top Bottom