My Little Factory – Innovate

The week before last I talked about how I make some of the mechanical things for My Little Factory. A quick update on that: I have managed to make some progress on fabricating the escapements for the indexing conveyor, but I may have to turn some of the more delicate parts over to a machine shop. I have a prototype that works, but if I want it to be consistent and precise over all three of them I will need to leave it to the pros.

This week’s topic concerns some of the electronics and prototyping I want to do that honestly falls outside of the typical industrial arena. I took some liberties with the picture above; the “Innovate” sign is a bit up and to the right of the blue storage bins, but I wanted to get my workbench into the picture.

This area is where I do my prototyping and board-level stuff. As you can see there are lots of storage areas, an oscilloscope and function generator, soldering station, and a small library of electronics resources.

One of the things I am working on is converting the small millivolt-level load cell signals to a 0-10v input that can be used by a PLC. As I mentioned in my signal conditioning post a few weeks ago, this is done with summing boards and amplifiers, which are pretty standard methods in industry, but the equipment I have found online isn’t really suitable for a miniature factory. I am having cobble some things up and am revisiting some of my old Electrical Engineering and technician methods to fit everything in the way I want it.

A bit of history on how I ended up with this innovation area in the first place. As some of you may know, Radio Shack has fallen on hard times in recent years. I had heard they were bankrupt several years ago, but several stores had stayed open in my area of Tennessee, including one at a mall in Nashville. It turns out they were bought by Sprint. A couple of years ago I walked in to check it out and noticed a lot of “maker” stuff related to the popular STEM programs kids are getting involved in in school. There were various Arduino related gadgets along with the typical electronic components you usually find in their bins; pretty overpriced compared to the things you can find online. I bought some of it anyway, hoping to get around to playing with it in the future; this was before I moved my office to this bigger facility closer to home. I’m afraid it languished in my garage until the past few months.

Anyway, the last time I went to that mall there was a big sign on the door: Store Closing! Everything must Go! Long story short, I bought a LOT of their stuff, including some of their component bins. Then I went to all of the other local Radio Shacks and did the same thing.

I’ve also mentioned the Tibbo and Raspberry Pi components I’ve been interested in. These small board controllers remind me of some of the projects I did in college, but processors have come a long way since then. Electrical Engineering students were required to build circuits using the HC6811C chip, using LEDs and discrete components to build simple control circuits and illustrate the use of low-level programming languages like Assembly. Now with the Industrial Internet of Things (IIOT) these controllers are finding their way into applications everywhere. This opened the door for me to produce customized classes for people interested in prototyping and inventing.

It is difficult to make a lot of progress in this area until I have finished the industrial part of my classes, but I will soon be breadboarding some sensor circuits for demonstration purposes, and as I complete some of these microprojects they in turn will be making their way into more class materials. Until then, this area of my facility will be a fun place to try out some of the ideas I have had in the low voltage world. If you have been working with Arduino, Raspberry Pi or any circuit board level electronics projects, leave a comment!

Next week, stay tuned for an update on the Industrial side of My Little Factory with “Automate”

Posted in My Little Factory, Product Development Tagged with: , , , , , , , , , , ,

My Little Factory – Fabricate

A couple of weeks ago I started a series called “My Little Factory”, describing a system I am building for training purposes. I plan on updating the progress on this project monthly, but today’s topic is also related.

As those who follow this blog know, I have been involved in custom machine building for over twenty years. Even though I am nominally a “controls guy”, I have had to learn how to make mechanical things work and sometimes fabricate different items. From about 2002-2006 I did a lot of mechanical design for my own company, primarily using AutoCAD and drawing in 2D. Below is a collage of some of the tools in my old shop in Knoxville.

Now if I was the guy who had to make the thing I designed I wouldn’t have to draw as much detail, but if my machinist or an outside machine shop was making parts, everything had to be planned out very carefully. Dimensioning and spelling things out in great detail was very important.

The picture at the top of this post is most of what I have to work with now. My facility is primarily for training, and I am the only one here, so I have set up what I need to put together my project. I have to use the space that I have judiciously, and making things is not the main focus of my company.

I do have some tools at home also; recognize the toolbox? That is one of the few things I have left over from my old shop. The mill is much smaller than my old one, but it is still useful for making small widgets. I thought about bringing it to my shop, but it is pretty heavy and quite messy. Chips would get everywhere. I only live about 5 minutes from my shop though (~2 miles), so it’s not that big of a deal to go home if I need to make something. By the way, the table in front of the tool chest is actually a table saw with a board on top. It’s another messy thing that takes up a lot of space, so it’s better to leave that one in the garage also.

So what kind of things do I need to fabricate? Well, lately I’ve had to work with a lot of plastic.

If you look at the picture from my first “little factory” post, you’ll notice the plastic tanks on the left side; this is for my process control side of the project. Working with plastic is tricky. You have to go slow and use the right tools, such as plastic bits. It can also be very tricky fixturing small pieces while you are working with them. See the little blocks with the plastic fittings in them? I broke three of them because I didn’t have a good clean way to hold them in the mill. It’s hard to see from the picture, but the setup on the mill in my garage is what I used.  I also didn’t have a plastic bit for the hole that I needed to thread, so I used a wood bit.  I did finally manage to get them bored and threaded, but it took a lot longer than a pro would have.

The blocks are attached using a plastic cement that is applied with a needle, kind of like a syringe. The only reason the blocks have to be there at all is that the thin tank material wouldn’t hold a thread. The purpose of the boxes is to hold the tank on the three load cells in the picture. The screw holes are where the load cells are attached, and the square/rectangular holes in the boxes are to allow the blocks to extend through the surface. A 1/4″ hose then brings the water outside to the valves and pumps. I figured it would be easier to call the tanks “red tank, blue tank and yellow tank” rather than tank 1, 2 or three.

My Little Factory 7 May 2017

As you can see I’ve got all of the control panels mounted to the wall. Not everything is wired yet, but the Allen-Bradley and Siemens are both powered up and have the start of a program in them. The Beckhoff is against the back wall, I haven’t done anything with it yet. My wooden drive panel actually turned out ok.

It takes a lot of the same tools to make a little factory as it does to make a big one. Of course I don’t need millwrights to move things and since I am doing all of the work I don’t have to draw things in as much detail.

The next things I have to fabricate are the escapements for the little balls. This involves a whole lot of drilling and tapping aluminum as well as a bit of milling at home. I also have to go to Los Angeles week after next to teach a ControlLogix class, so I may not have them all done in time for my May update on this blog.

So why the word “Fabricate” over the tools? I’ve actually put a bunch of text over different areas of my shop, you’ll get to see more of that in my next post, “Innovate”. Of course the factory area has the word “Automate” over it. I even though about putting the word “Educate” in the training area, but that is probably too much. I even thought of a couple of words I could put over the bathroom, but I think not…

Posted in Machine Assembly and Fabrication, My Little Factory, Plastics

Sensors 102: Signal Conditioning

Today’s post is about what goes on between an actual detection device and the input of a control system.

In many control applications you don’t need to think about what goes on inside of a device. The signal is converted inside of the device to whatever your control system needs. Fortunately most industrial systems have standardized on certain voltage or current signals; 24vdc or 120vac for digital, 0-10vdc or 4-20mA for analog. In most cases the actual detecting element inside of the sensor is a low voltage device that requires somewhere from 1.5-5vdc, but for commonly used, mass produced devices all of the conversion happens inside of the sensor. You simply have to provide one of the standard industrial voltages mentioned previously and connect it to your input.

When I was in engineering school we built small digital circuits on bread boards using LEDs, resistors, transistors, bridge circuits, photodetectors and sometimes IC chips. Mechanical mockups of physical systems were made of cardboard, balsa wood or whatever a poor student could get their hands on. In general, everything was done at the 5-12 volt level and the signal didn’t have to travel very far.

With larger systems signals can’t be distributed at such low levels. Devices are often far away from the control enclosure, though communications-based distributed I/O blocks have all but eliminated the necessity of using 120vac signals. Still, it is certainly not realistic to transmit TTL (Transistor-Transistor Logic) signals from a sensor to the control cabinet.

But what happens when you have to convert a signal yourself? Well, there are a variety of commercially available devices that take in a signal of one type and convert or amplify it into a signal of a different type. Probably the simplest method of doing this with a digital signal is to use a relay. Relays are available with 5vdc, 12vdc, 24vdc, 120vac and even higher coils. Even with such a simple device, care must be taken not to corrupt the signal by introducing noise into the system. It wouldn’t do to tie-wrap your 5vdc wires to your motor cables or 480v supply!

Analog converters are available to convert 4-20mA to 0-10v and vice-versa, mV/V signals to standard analog, and various other special purpose of the problems that can occur is that shown at the top of this post. Not only do you have to worry about the aspects of the converter itself (where to put it, how to wire it, its cost etc.) but also how to provide power to it and the detection device.

In last week’s post I described my tabletop factory. In it I talked about using load cells on the process side to determine tank levels. The diagram above shows the layout of the devices that are required to do this; all of the components have been ordered and I have even received some of them. This has brought up some interesting decisions on where to put things and how to interface them. Since everything needs to fit in the space that I have, some of the signal processing devices will not be mounted the way they would be in the field. Though my “factory” is miniaturized, unfortunately the devices aren’t.

The fact that the load cells only have 24″ cables (a little over half a meter) gives you a clue that the mV/V signal isn’t meant to be run very far. My summing boards are also pretty huge, so it isn’t easy to figure out where to put them. Then there’s the fact that I need to run 5vdc to the board also; fortunately my control panel is close to the tanks so I do have a convenient place to put the power supplies.

The signal conditioner itself, which takes the mV signal and amplifies it to a 0-10vdc signal, uses a 12vdc power supply. Again, since the output from the summing board is a mV level signal, it needs to be close to the signal conditioner. In the field these devices might have been located underneath the thing being weighed, but my process tanks are only 12″ high.

In 2012 I described an application where I did this same thing for a batching system at Alcoa. In this case the hopper was MUCH bigger than the devices, and it was easy to locate a small enclosure underneath the hopper itself. Effectively, it was like building your own sensor and bringing the signal from the enclosure as a fully conditioned analog input.

Another option I would have had on this system was to use a pressure transducer at the bottom of the tank itself, similar to what I have described in some of my posts on ABD in Miami. The nice thing about doing this is that the transducer’s output would already be in a usable form such as 0-10vdc or 4-20mA. The problem is both space and the low volume (weight/pressure) of my tanks.

Anyway, some things to think about when planning your application: cost of the components, including the enclosures you may need to put things in; the distance a low voltage signal can travel without being degraded or corrupted; power supplies/voltages that may not be available in your control system, and cost of design/labor to put all of this stuff together. There is also the issue of how you are going to calibrate all of this when you are done putting it all together. Every time you pass through another conversion or device you introduce another variable into the system.


One of the areas in my new training center is an electronics bench. complete with oscilloscope, signal generator, bread boards and lots of components. The idea is to provide a development/innovation area for those interested in learning how sensors work at the component level or wish to learn basic electronics. Until I write up a formal class on it I don’t expect it will get used much, but it will be available for those taking my other custom classes. Hit me up for more information!

Posted in Load Cells, Process, Product Development, Sensing Tagged with: , , , , ,

My Little Factory – April 2017

This post is the first in a series I am writing about a project I am working on, hence the “April 2017” designation.

As most of my regular readers know, I have spent much of the past several years teaching PLC and HMI classes across North America for Automation Training. I recently moved my office from a small shared space facility in Nashville to a larger place only 5 minutes from home, and in January held my first class there for AT.

The class went really well. There was plenty of room for the eight students and it was kind of a “Grand Opening” for my new place.

Since then I have still been traveling and teaching, but I have also started building a hands-on section for advanced training classes. The idea is that rather than teaching instruction sets and specific platforms, I am creating a set of courses that allow students to interface with real equipment.

“My Little Factory” – April 23, 2017

This is what I’ve got so far. My wife builds control panels, so I am very fortunate to be able to do most of this in-house. I’m afraid my panel-building days are behind me, but I’m still pretty good at making parts and doing the field wiring.

The drawing at the top of this post shows what the system will eventually look like. There are two sides, a machine control side and a process control side. The machine control side starts with an indexing conveyor from QC Conveyors. Boxes will be place at the left end of the conveyor, indexed to the right where three escapements will drop different colored balls into the boxes. As the boxes arrive at the right end of the conveyor, a pick and place will move the box to a dial table. The dial will index the part under a machine vision station, which will inspect the boxes for the proper number and color of balls. Another pick and place will remove the box to the rear conveyor (also by QC) which will then move the box to different ends based on pass fail status.

This allows students to learn recipes, part tracking, pick and place sequences, and a host of other techniques needed in the machine control world. There will be dual channel safety circuits (good for troubleshooting), operator interfaces, and whatever else I come up with as I’m building it.

The process control side will have two ingredient tanks with load cells for volume/level, A mix tank (also with load cells), electric valves and pumps, and a flow meter. There are lots of opportunities here to train on calibration, PID control, configuration of flow switches and other techniques used in the process world. I am still considering doing some temperature loops also.

Notice that there is an Allen-Bradley CompactLogix and a Siemens S7-315.Originally I though I’d use the AB on the machine control side and the S7 on the process side. Mieko had already wired the CompactLogix when I thought what if a student wants to control the Machine side with the S7? This is when I came up with the idea of using cables to connect the PLCs to the different setups.

Its a good thing I did, because now I’ve added a Beckhoff 9020 to the mix. This will also be wired with cables and located behind the outfeed belt conveyor. I have a lot to learn about the Beckhoff, but I hope to create classes for it soon also. This allows me to get into the computer control and CodeSys world, which I believe will be popular in the future. Other platforms may appear later too.

Yup, that is a wood backplane. Obviously some of this stuff is expensive and I need to save money where I can. I will be painting it and mounting the conveyor drives next week and hopefully it will still look professional.

There are a lot of other things to show you in my shop; there is a fabrication area for making widgets, an “invention” area with Arduino, Raspberry Pi, Tibbo and lots of board level electronics stuff, a pneumatics area, a machine vision lab and of course the training area I showed in the beginning of this post. Altogether I have about 3500 square feet and I hope to make good use of it.

Other classes I hope to add that will complement the PLC, HMI and SCADA stuff I am already doing include AutoCAD, Machine Design, Electronics, Pneumatics/Fluid Power and Machine Vision. My business website hasn’t really caught up with all of this yet, but I am already accepting students for classes. The courses are very customizable and I expect most of my students to come from around Nashville at first.

Because this project will be taking quite a while, I will be updating progress in a series of posts titled “My Little Factory” with the month listed. There will be some useful stuff in these posts; one of the things a I am working on right now is interfacing the load cells through a summing board and into a signal conditioner. I am also designing the pick and places and will be building the escapements over the next couple of weeks.

If you are interest in knowing more or have any suggestions, leave a comment or shoot me an e-mail!

Posted in Applications, Conveyors, Load Cells, Material Handling, My Little Factory, PLCs, Pneumatics, Process, Sensors, The Course, Training, vision Tagged with: , , , , , , , , , , , , ,

Automate/Promat 2017

Earlier this week I had the privilege of attending my second Automate and Promat show in Chicago. I wrote an earlier post on the Automate 2015 show, but when I went back and re-read it I realized that I actually wrote it before the show, so this should serve as a more complete report.

I had really not planned on attending originally, but CFE Media (publisher of Control Engineering, Plant Engineering and a couple of other magazines) had a conference on Marketing to Engineers that I wanted to attend. Since that was on the first day of the show, I figured I’d hit both at once. Several of the articles on this blog have been picked up by Control Engineering magazine, so this was also an opportunity to meet some of the editors.

The Marketing to Engineers conference was held in the Renaissance hotel in downtown Chicago, so I stayed there. Most of the people attending the conference were marketing people, which makes sense in retrospect. Since I am revamping my Automation Consulting, LLC website trying to attract students for my PLC and automation classes, I hoped to pick up some good information. I did, but it also reinforced the difference between the thinking of marketing types and engineering types. So much so that they even had a couple of panels of engineers to grill on their thought processes!

Delicious Grilled Engineers!

The next day (Tuesday, April 4) my wife and I showed up early at the McCormick Center to meet Gary Mintchell, publisher of The Manufacturing Connection. Gary was a founding editor at Automation World and was kind enough to be one of my book reviewers for Industrial Automation Hands On back in 2013. Gary had already been at the show Monday, so we were able to connect before he left for home. Since he usually has his finger on the pulse of lots of automation news, he was able to fill me in on the breaking news that ABB will be acquiring B&R Automation! This is a pretty big deal in the automation world and it certainly strengthens ABB’s hand in industrial controls!

Later on I also ran into Doug Alward, Applications Engineer from Doerfer. For those of you who have followed this blog for a while, he wrote several Lessons In Automation on the demise of small machine building companies while I was in Central America back in 2012. Doerfer had a display at the show along with lots of other integrators and machine builders.

The show started at 10am. The Automate show (mostly focused on machine vision, robotics and motion control) is on one side of the concourse, while Promat (mostly focused on material handling) is on the other. The show lasts from Monday to Thursday; since I was only attending one day I made it a point to visit most of my favorite vendors first. On the Automate side I visited Siemens, Beckhoff, SMC, Keyence, Omron, and lots of robot manufacturers (more on that later). Here are a few pictures from the first half of the day:

Parker PAC

Pallet Conveyor

Rexroth SERCOS demo

National Instruments stuff

Cognex “Smart Camera” dude

Siemens demo

Omron Machine Vision

SMC 4 Axis Controller

Notable for NOT being there as usual was Allen-Bradley/Rockwell Automation. They have their own trade show, the Automation Fair, with all of their “encompass” business partners. In my opinion they are missing out on a great opportunity to get their products in front of a different audience. Its not like Milwaukee is that far away or anything… There are a lot of people who don’t attend more than one show a year.

A few takeaways from this show:

1. There were a lot of integrators and machine builders. In some cases it was difficult to tell what a vendor was advertising, their services or a product. Quite a few machine vision and data acquisition integrators. I also talked to a guy using a Raspberry Pi microprocessing platform for his machine vision and HMI interface; this is a first for me in the industrial world. With all the talk about the Industrial Internet of Things (IIOT) we are bound to see more of this kind of thing. Arduino will probably be showing up here and there also.

2. There were many more Chinese vendors this year, from robots to contract manufacturing. I don’t usually see many Chinese manufacturers at trade shows.

3. The shows appeared to be more well attended and larger than two years ago. Maybe the economy is improving for manufacturing?

4. There were LOTS of robot manufacturers and integrators. Other than different colors, there wasn’t much to differentiate them from each other.

Fanuc Candy Bot

Omron bought (Bot) Adept

Fanuc Robots and Yellow People

Robot with a Big Head

My wife with her new friend

Overall it was a pretty cool show, but one a year is probably enough for me. Lots of fun stuff and a good opportunity to network, but as far as products or new technology nothing really reached out and grabbed me. Still, its a great way to keep up with what’s going on in the automation world!

Posted in Robots, Sales and Marketing, Vendors and Manufacturers Tagged with: , , , , , , , , , , , , , , , , , ,

Birth of the Programmable Controller


Today’s post is extracted from my new “generic” PLC course manual, PLC Hardware and Programming – Multi-Platform. In the manual, I also cover the origins of the computer, beginning with the Babbage Analytical Engine, all the way back in 1823!

I have also created videos for both of these histories as part of my not-so-soon to be released online PLC training course. As my new business website evolves a bit more I plan to make them available for the low-low price of your e-mail address.


In 1968, a group of engineers at General Motors presented a paper at the Westinghouse conference detailing the problems they were having with reliability and documentation of the machines at their plant. One of the engineers, Bill Stone, also presented design criteria for a “standard machine controller”.

The criteria stated that the design would need to eliminate costly scrapping of assembly-line relays during model changeovers and replace unreliable electromechanical relays. It also needed to:

  • Extend the advantages of static circuits to 90% of the machines in the plant.
  • Reduce machine downtime related to controls problems, be easily maintained and programmed in line with already accepted relay ladder logic.
  • Provide for future expansion. It had to be modular to allow for easy exchange of components and expandability.
  • It had to work in an industrial environment with dirt, moisture, electromagnetism and vibration.
  • Include full logic capabilities, except for data reduction functions.

These specifications, along with a proposal request to build a prototype, were given to four controls builders:

  • Allen-Bradley, by way of Michigan-based Information Instruments, Inc.
  • Digital Equipment Corporation (DEC)
  • Century Detroit
  • Bedford Associates

The DEC team brought a “mini-computer” to GM, which was rejected. A lack of static memory was one of the major reasons.

Allen-Bradley was a major manufacturer of relays, rheostats and motor controls. Even though this new idea would compete with one of its core businesses, electromechanical relays, they went from prototype to a production unit in 5 months. The first attempt was the Program Data Quantizer, or PDQ-II. This was judged to be too complex and difficult to program and was quite large. The next attempt was the Programmable Matrix Controller, or PMC. Though smaller and easier to program, this was still not sufficient for GM.

At the time of GM’s design criteria, Bedford Associates was already working on a design. Its system was modular and rugged, it used no interrupts for processing and mapped directly into memory. Since this was the 84th project for the company, they named this unit the 084. The project team included Richard Morley, Mike Greenberg, Jonas Landau, George Schwenk and Tom Boissevain. After obtaining funding, the team formed a new company called Modicon, an acronym for MOdular DIgital CONtroller.

The Modicon 084 was built ruggedly, with no on-off switch, no fans, and totally enclosed. Richard Morley explained, “No fans were used, and outside air was not allowed to enter the system for fear of contamination and corrosion. Mentally, we had imagined the programmable controller being underneath a truck, in the open, and being driven around in Texas, in Alaska. Under those circumstances, we wanted it to survive. The other requirement was that it stood on a pole, helping run a utility or a microwave station which was not climate controlled, and not serviced at all”.

In 1969, Bedford and Modicon demonstrated their 084 Programmable Controller to GM and won the contract. The controller consisted of three components: the processor board, the memory, and the logic solver board, which used a form of ladder logic to solve the algorithms.

Dick Morley (L) and Modicon 084

Dick Morley (L) and Modicon 084

According to Morley, the original machine only had 125 words of memory and did not need to run fast. In his interview with Howard Hendricks, he said “You can imagine what happened! First, we immediately ran out of memory, and second, the machine was much too slow to perform any function anywhere near the relay response time. Relay response times exist on the order of 1/60th of a second, and the topology formed by many cabinets full of relays transformed to code is significantly more than 125 words. We expanded the memory to 1K and thence to 4K. At 4K, it stood the test of time for quite a while. Initially, marketing and memory sizes were sold in 1K, 2K, 3K, (?) and 4K. The 3K was obviously the 4K version with constrained address so that field expansion to 4K could easily be done.”

Meanwhile, Allen-Bradley had gone back to the drawing board. By 1971, engineers Odo Struger and Ernst Dummermuth had begun to develop a new concept that improved on their PMC, Programmable Matrix Controller. This concept became the Bulletin 1774 PLC. Allen-Bradley named this the “Programmable Logic Controller”; the term later became the industrial standard when the acronym PC became associated with personal computers.

In 1972, Allen-Bradley also offered the first computer for use as a programming terminal. Other manufacturers in the 1970s and 1980s typically used dedicated programming terminals with (or without) a small screen. Instructions were entered as three or four letter mnemonics. As technology improved, these terminals were reduced in size to a hand-held device.

By the later years of the 1970s, several other companies had entered the PLC market, including General Electric, Square D, Omron and Siemens.

Modicon improved on the 084 in 1973 with the 184, which made them the early leader in the market. This was followed in 1975 with the 284 and 384 models. The 984 was produced in 1986 and remained a Modicon standard for many years. In a joint venture with AEG Schneider Automation, the Quantum series of controllers was released in 1994. In 1977, Modicon was bought by Gould Electronics, and later in 1997 by Schneider Electric, who still owns them today (2016).

PLC Improvements

The 1980s saw many new companies entering the PLC market. Japanese companies such as Mitsubishi and Omron entered the U.S. market as automotive manufacturing began using PLCs extensively in their manufacturing processes. Giants like Westinghouse, Cutler Hammer and Eaton created products, as well as machine tool manufacturers such as Giddings & Lewis. In 1980, the market was estimated at $80 million, and it had grown to a billion dollars worldwide by 1988.

As IBM-compatible personal computers became smaller and less expensive, companies began developing DOS-based software for use in programming. This allowed users to enter the program graphically. Rather than only seeing the alphanumeric characters of text commands, ladder logic could be visualized on a CRT monitor.

With the release of the Windows 3.0 operating system in the early 1990s, software had improved with colored graphics and multitasking. PC clones made computers less expensive, and the laptop computer all but replaced handheld programmers. Many companies began producing smaller, cheaper “brick” PLCs for simple applications. Allen-Bradley’s Micrologix 1000 in 1995 competed with relatively unknown names, such as Eagle Signal’s “Micro 190” and PLC Direct, which brand labeled Koyo PLCs from Japan.

Tim Hohmann (L) and Frank Lamb (R)

Tim Hohmann (L) and Frank Lamb (R)

Koyo had produced PLCs for Texas Instruments, Siemens, and GE since the 1980s. In 1994, they established a company in the U.S. that began marketing PLCs by mail order. Tim Hohmann founded PLC Direct in Atlanta as a joint venture, which was renamed Automation Direct in 1999.

Allen-Bradley remained the dominant brand in the U.S. during the 1990s. They had been bought by Rockwell in 1984 and spun off Rockwell Software in 1994 after purchasing ICOM, which had made a competing programming software product for the Allen-Bradley PLC. The SLC500 line, a smaller modular controller, was released in 1991, followed by the first MicroLogix product in 1995.

Siemens became the dominant player outside of the U.S. and Japan. The S5 controller, developed in 1979, had a large installed base in Europe through the 1980s. When the S7-200, S7-300 and S7-400 series were released in 1994, many companies began upgrading their existing platforms. Siemens was an early innovator in the use of User Defined Data Types (UDTs) and advanced programming using their version of Instruction List, known as STL (Statement List). They also allowed for use of re-useable code by defining local variables within subroutines, or functions.

In 1994, the International Electrotechnical Commission (IEC) began to define the languages that PLCs would be programmed in, data types, and other details pertinent to Programmable Controllers. IEC 61131-3 defined the rules manufacturers followed in order to standardize their products. Five languages were defined: Ladder (LD), Instruction List (IL), Function Block Diagram (FBD), Structured Text (ST), and Sequential Function Charts (SFC).

Mitsubishi gained the largest market share in Japan and much of Asia, while Omron saw gains worldwide.

By the 2000s, PLCs had become much more powerful and began gaining traction in process control, which had long been the domain of DCS (Distributed Control Systems). With the ability to use I/O networks such as DeviceNet, Profibus and Ethernet, these more powerful platforms became known as “Programmable Automation Controllers”, or PACs. With improved memory, higher speed processors and the ability to control thousands of analog and digital points at once, PACs could control large chemical processing plants, wastewater treatment and pipelines.

Multi-axis motion control also began to be integrated into PACs in the early 2000s. Allen-Bradley, Siemens, Modicon and Mitsubishi all have integrated controllers that can operate independently of the central CPU. Multiple or redundant CPUs can also be used within the same rack. Variable Frequency Drives (VFDs) and robots often now contain microprocessors that can be programmed in ladder logic. Hybrid HMI touchscreen controllers have also become common.

Today’s landscape includes more than 20 PLC manufacturers with international markets, with about 15 that have a 1% or more market share each. Open platforms have appeared allowing smaller manufacturers to offer their own PC-based or board-level controllers that program in ladder or other IEC 61131-3 languages. Companies such as Codesys now provide a platform for some of the major PLC manufacturers such as Modicon, ABB, Beckhoff and Bosch.

With higher speed Ethernet-based communication and control networks, systems have become more distributed, with microprocessors in “smart nodes” of I/O to detect errors and perform autonomous logic and monitoring tasks. As of 2016, the PLC market seems to be converging on Ethernet/IP based control networks.


* This timeline is a work in progress… if you know of PLC families/platforms that should be on here, please shoot me an e-mail or leave a comment.

** For even more on PLCs, check out the PLC tab at the top of this page!

Posted in PLCs Tagged with: , , , , , , , , , , , ,

Sensors 101 – Control System Inputs


In today’s post I’m going to ask you to think of sensors in a different way. Most engineers who are specifying equipment think of sensors as discrete or analog devices, proxes or photoelectrics, flow or pressure sensors, thermocouples and the like. If asked to classify them into categories, they might say analog and digital, machine level or process control, optical or inductive.

There is another way to think of sensors also; as any physical input to a control system. If you broaden your thinking as to what constitutes a sensor, it opens up a lot of new possibilities. Is a pushbutton a sensor? Sure, it detects an operator’s decision to do something. How about a relay? Yes, it provides the status of some device or machine condition.

I’d also like to suggest that another way to categorize sensors other than the method they use to detect things is by their function. Sensors pretty much all fall into two categories; those that detect the condition of the machine or system (cylinder switches, MCRs, encoders, some photoeyes and vibration sensors), or those that detect or evaluate the parts or substance that the system processes (flow and pressure sensors, machine vision and discrete part presence detectors).

If you think of sensors in this way, you will realize that not all sensors fall into neat categories like analog and digital. A vision system is a good case in point; the actual method of detection involves optics and millions of individual pixels. The actual interface to the control system may be a simple digital pass/fail signal, or involve sending strings of data that need to be decoded. But you certainly need to understand all of the details of the complex topic of machine vision before specifying it.

Another example is encoders and resolvers; the data may consist of discrete pulses or a sinusoidal analog signal, but you can’t simply feed these signals into your digital and analog input cards. These factors need to be taken into account when deciding what kind of hardware is specified; not only the sensor itself, but also the complexity and cost of the interface with your control system.

Thermocouples are also analog, but you can’t simply wire them into an analog card. A thermocouple card actually contains an algorithm that knows what kind of response curve goes with the type of thermocouple selected (for instance J, K, R, T, etc.). Not only that, but you can’t simply wire your thermocouple into a standard terminal block and run regular copper wire back to the card. Since a thermocouple is simply two dissimilar types of metal, you will actually be creating new thermocouples in series with your original one.

Here are some other oddball sensors I have dealt with on the past that are off the beaten path:

Eddy Current Tester: An inductive probe inserted into a machined hole to determine if it had been threaded.
Capacitive Ion Leakage Probe: a charged probe and plate placed on the opposite sides of a piece of plastic to determine if a pin sized hole actually allowed ions through to the other side.
Mass Spectrometer: A customized spectroscopy system intended to detect the presence of a deadly nerve agent.
Ultraviolet Camera: A machine vision application where we actually coated rubber gaskets with an ultraviolet ink to detect if raised areas had been molded correctly. * A very messy operation – I have a much better solution for this now, 17 years too late!
Floating Rocker Arm Cover Measurement: A system with independent LVDTs that calculated the intercept of an imaginary plane to determine if a rubber gasket had been mounted correctly.
Ultrasonic Paint Level Detection: Only oddball because the application had to be intrinsically safe.

Back when I started my career there was no internet, so educating yourself on sensors required talking to vendors, attending trade shows, and reading catalogs. Now the resources are easily accessible online, but of course the technology has changed along with the times. As part of my early post-college training I was fortunate to attend some excellent manufacturer training at Allen-Bradley, Omron, Pepperl+Fuchs, Tri-Tronics and more. It was very useful to actually connect and test all of the latest devices and talk to some of the designers. There are still some opportunities to do this at some of the trade shows, but where there used to be four or five shows a year just in my state, now there are just a few big national ones.

Over the next year, I am building a pretty comprehensive training center here near Nashville. Part of the intent is to teach both my custom PLC course and Automation Training’s classes, but also to create courses concentrating on pneumatics, machine vision and sensors. A big part of all of these new classes is to allow students to get their hands on the components and learn how they all work together. Whether the focus is on troubleshooting existing equipment or designing new systems and machines, understanding how all of these sensing devices work together with your control systems is an important part of a good well-rounded education.

* For more posts on Sensors, check out the tab at the top of this page!

Posted in Automation Concepts, Sensing, Sensors Tagged with: , , , , , , , , ,

Sensor Resources


When I got up this morning, I had fully intended to write a post on sensors and sensing techniques. I was even going to title it “Sensors 101”, similar to the series that I started on PLCs several years ago.

Part of what was motivating me to do this is that I’ve been invited by Control Engineering magazine and CFE Media to make a presentation on sensor selection at a webinar sometime towards the end of March. I started researching some of the posts I had written in the past on sensors, and I came to realize that most of the stuff I have written is from a long time ago. I also realized I have concentrated extensively on PLCs, which was never the original intent of this blog. But that is what a lot of people have asked for, besides I spend a lot of my time teaching PLC classes.

Anyway, I started looking over this site and I realized that not only were the articles on sensors mostly from 2011-2013, but also they were really hard to find. You may not realize it just by looking at the Home page or this post, but as of today there are over 300 pages of articles and posts on this site, covering almost six years.

So today I spent some time rearranging this site. You’ll notice that there are fewer tabs at the top of the page; I’ve moved some of the old content such as The Primer, Contribute and T.A.I.I. under other tabs. I also updated the PLC and Applications tabs, adding more links to posts.

I also added a new tab titled Sensors. As I added my sensor-related posts to the list, this was when I realized how much I had migrated from the original intent of the blog. The last sensor-related post was from 2015, and even that was related to PLCs. Now its not like I have only discussed PLCs over the last few years, there are all kinds of articles on a wide variety of subjects, but I definitely have a lot more to say about sensors and sensing techniques, so you might want to bookmark the sensors tab if that is of interest.

I will be adding more links to sensor manufacturers to the Resources/Controls Hardware and Software tab, currently there are only 4 links there.

As I write more posts on sensors, the links will also be added to the new sensors tab. I do plan to add a Sensors 101, 102 etc. series, similar to the PLC series, though probably not as extensive. More on machine vision, ultrasonics and process sensors are also on the agenda.

I’d also like to get some more guest posts by manufacturers and vendors on the subject, similar to those on PLCs. I do get a lot of requests to do guest posts, but some I turn down because they aren’t really topic related or they are too commercial and not very informational. I am always up for good technical contributions though.

Posted in Sensing, Sensors, Vendors and Manufacturers, Website Tagged with: , , , , , , ,

Ladder Logic 305: ASCII and Strings


Today’s post covers ASCII, string manipulation and how to deal with readable text in a PLC.

The picture above is from a ControlLogix program (Allen-Bradley, RSLogix5000 v.16) I wrote back in 2006. The program communicated with a PC-based Cognex machine vision system that sent and received strings of data for everything from its camera triggering to its reporting of positional data for the object it was inspecting.

First lets talk about ASCII: American Standard Code for Information Interchange is a byte-based encoding of text into numerical values. While it isn’t the only method of turning printable characters into numbers that PLCs can deal with, it is the one most commonly used in the US.


The tables above show some of the printable characters and their corresponding values in Binary, Octal, Decimal and Hexadecimal. Notice that there are only 7 bits in the Binary column; the original teleprinter based encoding left open the option of using the eighth bit for parity checking when the bits were transmitted serially. The standard ASCII table has 128 (0-127) characters, while there are also 8 bit (or more) variants that include characters such as pi, foreign currency symbols and others.


As you can see in the above picture, not all ASCII characters are printable. As a matter of fact, there are 95 printable characters in Standard ASCII, while the other characters are made up of other keyboard-related commands such as backspace, tab and carriage return/line feed. The Null, SOH, STX and ETX characters are often used in interfacing with devices such as printers.

In some PLC classes there are lessons where students are given a Double Integer (DINT) that is supposed to represent a bar code. The lesson usually uses masks, rotates and bit shifts to extract sections of the DINT representing a product color, type or other value. While this is a good exercise in explaining how data may be encoded, bar codes actually read ASCII strings that have to be decoded in a different way.

Following are some of the common string manipulation instructions used in PLCs, along with their purpose. This is reprinted from my recently published training manual, “PLC Hardware and Programming, Multi-Platform”:

“As mentioned in the data section of this manual, strings are arrays of SINTs, or Single Integers (Bytes). The array elements contain ASCII characters, which can be thought of as printable characters with a few non-printable commands included. Values contained in strings can be displayed as decimal or hexadecimal numbers, or as text characters. If in text, they are often displayed with a “$” sign before the character, such as Text = $T, $e, $x, $t characters. These equate to the decimal numbers 84, 101, 120, 116 or the hex numbers 54, 65, 78, 74. These can be found in a standard ASCII table; there is one in the appendix of this manual.

Strings may also contain a length (LEN) field that contains the number of characters that exist in the string. For instance, if a string has space for 80 characters, but is filled with the characters “Today is Tuesday, September 13” then LEN = 30.”

Concatenate (CONCAT) – Connect two strings together, one after another.
Middle (MID) – Copies a specified String into the middle of another String at a specified location.
Find (FND) – Locate the starting position of a specified String within another String. Usually returns the position of the found String.
Delete (SDEL) – Removes characters from a String at a specified position.
Insert (INS) – Adds characters to a String at a specified position.
Length (LEN) – Finds the number of characters in a String if length is not part of the string definition.

A couple more tips on dealing with Strings:

1. It is important to clear any data from a string register before overwriting it with a new string. Otherwise, if the new data is shorter than the old, there will be characters left over; this can really mess with your calculations.

2. It is a good idea to create tags or registers for characters or strings that are used multiple times in your data processing. A “Null String” full of empty values is useful for clearing data, and as you can see above I created characters named “ampersand” for @ and “comma” as a delimiter.

There is a lot more to be said on this topic, but this should give you an idea of how to deal with text and strings. Dealing with strings is pretty code intensive; for instance the n_Vision_Command and o_Vision_Response routines in the example at the top of this post were 37 and 11 rungs long. That’s not even counting the d1_Seq_Auto routine (56 rungs) and q_Clear_Data routine (6 rungs) which were entirely dedicated to communicating with the vision computer. This program was written before the advent of AOIs (Add-On Instructions), which would have made the code a bit more organized.

For those who deal with other IEC 61131 PLC languages, yes this is probably easier using Structured Text (ST). But after all, this is a Ladder Logic series, and it illustrates the point that no matter how you choose to deal with ASCII and String data types in a PLC, it is going to be pretty complex!

Posted in PLCs, Software & Programming, The Book Tagged with: , , , , ,

The Difference Between PLCs and Computers


What makes a PLC different from a typical computer? After all, computers are used to control things, they can even run a software PLC.

This short video is part of the introduction to a new training course I am producing on the Thinkific LMS. It also follows the text on page 6 of my new training manual, PLC Hardware and Programming: Multi Platform. Text is reproduced after the video.

So exactly what is a PLC?

A PLC is a digital computer used to control electromechanical processes, usually in an industrial environment. It performs both discrete and continuous control functions and differs from a typical computer in several important ways:

  1. It has Physical I/O; electrical inputs and outputs bring real world information into the system and control real world devices based on that information. If you were a PLC, your inputs can be thought of as “senses” like vision and touch, while your outputs could be thought of as your arms and legs.
  2. It is Deterministic; it processes information and reacts to it within defined time limits. PLCs operate on a timescale of milliseconds or even microseconds
  3. It is often Modular; it can have I/O modules, communication modules or other special purpose modules added to it for expansion. PLCs may also take the form of a computer or a small single module.
  4. It is programmed using several defined Languages. Some languages allow the program to be changed while the machine or system being controlled is still running.
  5. Software and Hardware are Platform Specific; components and programming software usually can’t be used between different manufacturers. But there are exceptions…
  6. It is Rugged and designed for use in industrial environments.

Unlike computers, PLCs are made to run 24 hours a day, 7 days a week and are able to resist harsh physical and electrical environments.

Where are PLCs used? PLCs are used for many different kinds of applications and industries. In a 2012 Control Engineering magazine poll, 87% of machine control applications used a PLC as the control platform. This includes assembly, packaging and other manufacturing operations. 58% of process control applications used PLCs, in such industries as chemical processing and the oil and gas industry. Power plants and wastewater treatment also fall into this category. 40% of motion control and robotics, 26% of batch control and 18% of diagnostic or testing applications used PLCs. Many applications are a combination of these.

PLCs are used anywhere, and everywhere!

Did I leave anything out? Can you think of other differences between typical computers and PLCs? How about other places where PLCs are used? Leave your comments below!

Posted in PLCs, Training Tagged with: ,