Greg McMillan Forum Moderator 36 Posts
Re: Which Programming Language Should I Learn For Process Control?30 June 2009 at 1:29pm
From the standpoint of a process engineer, VB is the correct language to know. Many operator interfaces and tools in control products offer Visual Basic for Application(VBA) as an interface for writing custom functionality and scripts. Thus, having a good understanding of VB is of value.
If your intention was to work for a company that produced a DCS, like Emerson, then the majority of the programming is C, C++ and even C#. Very little VB code is used at this level.
Editor's Note: Expert Greg McMillan deferred to colleague Randy Reiss, a CDI Process and Industrial contractor at Emerson, to answer this question.
According to expert Cecil Smith:
The most common programming languages encountered in process control are Basic and C, or some variation thereof.
But when pursuing the subject, the most important aspect is the "art of programming". The objective is to write well-organized code, not "spaghetti code". This usually comes under the heading of structured programming. The C language provides the appropriate features, and specifically deemphasizes the GOTO statement (it is available, but should be rarely if ever used).
Another topic one should master is object-oriented programming, the principal language being C++. This language is not commonly available at the application level in process control. However, the fundamental concepts can be incorporated into the logic for programs written in any language.
The "art of programming" is common to all programming languages. However, most programming manuals focus on the language itself, with limited if any guidance on organizing a program. In a sense, programming is translating logic into statements a machine can parse. This is largely mechanics, and if one can do this in one language, learning the next is relatively easy. The intellectual component is developing the logic for the program. Most computer science students encounter this in their introductory courses.