Sunday, September 28, 2014

Is Manufacturing Dead In Canada? Not so!

Everywhere you look there are signs of doom for Canadian Manufacturing. Unemployment rate, companies moving or going out of business seems to be a common theme. However we have is an increase in manufacturing output.

How is manufacturing jobs disappearing and output increasing?


Investment in the business


Take a look around. Businesses that are investing in themselves will have the staying power. Those that do not are going to be left behind, wither and die.
How is your company doing?

People
We often hear that people are the greatest asset for the business. What is the game plan? When asked to see or inquire about how they are advancing there employees; you get blank faces. A constant learning environment must be established.
The learning environment includes:

  • How individuals interact with and treat one another. 
  • How information is conveyed 
    • Internet 
    • Intranet
    • Meetings
    • Teams
    • Postings
  • Knowledge of individual contributions
    • Strengths and Weaknesses
  • Recognize how individuals learn (Example: Millennials do not get information from an authority figure.)
    • Customize leaning for individuals

Process
Look at your process from a new born perspective. Inquire and explore why things have to happen in a certain way. Break every step down.
Kipling wrote:
I keep six honest serving men. They taught me all I knew. Their names are What and Why and When And How and Where and Who.
Query your people with questions and listen.

  • If they had more time, what would they work on?
  • What is there biggest challenge?
  • What is bugging them?
  • Are you happy?

Machine
Keep up on the latest machine innovations for your industry as well as others. Know the limitations of each machine. Table new concepts to your learning environment.
If you are to fix the machine then ask

  • Is this the first time this has happened? Will it happen again?
  • How long did it take to troubleshoot the problem? 
  • Is there something we can improve upon?
  • How can this knowledge be shared with operators, maintenance, management?

Automation
There is a reason that this is last on the list. Automation can stand by itself, but it really requires an understanding of each of the items mentioned above before it is successful.
You must understand your people, process and machine before automation can prove to be an asset.


Automation, people, process and machine innovation can happen. It is up to you.

If you have any questions or need further information, please contact me.
Thank you,
Garry

Reference:
Statistics Canada for Manufacturing
http://www5.statcan.gc.ca/cansim/a33?lang=eng&spMode=mainTables&themeID=4005&RT=TABLE

Saturday, September 20, 2014

Creating More Than Just A PLC Program

A collection of random thoughts on PLC programming and doing more than just basic logic. Making your program intuitive.

PLC programs usually just control the logic between the inputs and outputs. If this turns on and that is not on, then this output is on, bla bla bla. Programmable logic controller programs can go far beyond just the basic logic. Modern processing power has enabled allot more features that can be programmed.

Traditional PLC programs are written so everyone can understand the ladder programming. This is not the case anymore. There should be no need for anyone to review the ladder program. Error messages, alarms and sequencing should automatically make troubleshooting simple. If something is not working, your system should direct personal how and what to do to fix it.

Touch screens, LED indicators, stack lights, custom user error messages, display boards and logging software are just a few methods of displaying information to the operator, electrician, mechanic, supervisors, managers and even owners of the equipment.

Your program can track the basic hours of operation and trigger maintenance events from these hours. What needs to be done after 100, 500, 1000 hours? Just like the service on your car, you should plan for the service on your machine through the use of program.

If a pneumatic cylinder is used here are a few things that you can track in the program:
  • Number of cylinder cycles
    • Life expectancy
  • Time it takes to complete cycle (Sensors on both ends of the cylinder)
    • Determine if a seal is leaking
    • Pressure of the incoming supply if multiple cylinders are monitored
Here is a good reference for Bimba Cylinders.
http://www.bimba.com/Global/Library/Catalogs/Bimba%20Catalogs/BimbaRefHandbook.pdf

Alarm Screens:
Alarms should be easily identified and located. 
Remember: A picture is worth a thousand words.

Establish sequencing of events that can be stepped through forward and backwards can allow maintenance personal to easily troubleshoot the system without going through possibly hundreds of lines of ladder logic.
Please see the following links for sequencing your program:
Building a PLC Program That You Can Be Proud Of - Part 1
Building a PLC Program That You Can Be Proud Of - Part 2

With Ethernet connections built into most modern PLC CPUs, it is now  possible for the PLC to automatically send email to your exchange server.
Automation Direct Do-More CPU is one of these PLCs.
http://www.automationdirect.com/adc/Overview/Catalog/Programmable_Controllers/Do-more_Series_PLCs_(Micro_Modular_-a-_Stackable)

When programming PLC's for logging data, information must be stored in the PLC for later retrieval. Most commercially available software for logging data does not consider the event of loosing the communication cable. If an interruption on your communication lines happen, data cannot be retrieved from the PLC. The PLC can use indirect addressing to store the logged information. Logging software can read the pointer to the logged data, read the data and then reset the pointer. The duration and amount of information that you are logging will determine the amount of time the communication can be disabled before loosing data. I usually log daily summaries as well as detailed information in the process. My detailed data will be lost in 2 hours but my log daily will take one month.

What other options do you see with a modern PLC?

I look forward to your comments,
Garry




Saturday, September 13, 2014

Here is a Method That can Help You with Difficult Level Sensing

Turn a capacitive proximity sensor into a level sensor. This is ideal for tanks and vessels that you cannot drill through the side for mounting.
Wrap bare wire around the sensing head and extend it to the length you need to detect. Insulate the wire using electrical tape all the way down, but leave the end exposed. This acts like an antenna. Anything touching the end will now be detected. I have used 14 and 12 awg wire, depending on the application.
This is ideal for hard to mount areas. You can bend the wire any way you want as long as the insulation (electrical tape) is not exposed.I have had the wire extend up to 30 feet from the sensor without an issue.

Some quick information about capacitive proximity sensors.
A capacitor is defined as two electrically charged plates separated by a dielectric. In the case of a capacitive proximity sensor, the dielectric is the material that you are trying to detect. As the material moves closer to the electrostatic field of the sensor, oscillation begins. It will get past a threshold and trigger the output to switch.

Some common dielectric constants for material:
Glass - 5
Wood - 2.7
Paper - 2.3
Air, Vacuum - 1
Water - 80
Once you know the dielectric constant you can determine the sensing range (Sr) by a chart that usually comes with the sensor or in the manufactures manual.
Example: Water is 80 so the sensing range is 100%

I generally just try the sensor to determine if it will be suitable for the application.

If you have any questions or need further information, please contact me.
Thank you,
Garry

Sunday, September 7, 2014

Get Rid Of Surges That Are Destroying Your PLC Outputs

DC Solenoids are the worse culprits for electrical surges on your system. When the electrically generated field collapses an opposite polarity voltage is generated. This voltage spike can be high enough to weld the contacts on a PLC output relay.

To protect your PLC output relay, use a diode to ensure that when the solenoid switches off the voltage spike is released through the diode instead of the relay.

The diode should be rated to handle 10 times the voltage that you are switching and enough for the current flow of the circuit.

Parts of the diode:
The cathode of the diode is marked by a band.  The electron flow will only occur in one direction.

Installation:
Install the diode as close as possible in parallel with the solenoid. The cathode should be wired to the positive source of the solenoid. (Dissipate negative polarity voltage spike)

Note: You could also install an interposing device to handle the surge such as a SSR. (Solid State Relay) This is generally more money, space in the panel and wiring.

Note: Allot of solenoids come already with surge suppressing diodes from the manufacturer. If not, you will usually need this information when troubleshooting and discover your welded contacts of the output relay.

If you have any questions or need further information, please contact me.
Thank you,
Garry

Thursday, September 4, 2014

Building a PLC Program That You Can Be Proud Of - Part 2

In part 1 we looked at writing PLC programs to control a traffic light using discrete bits and then using timed sequencing using indirect addressing.  We will now look at how we can use indirect addressing for inputs as well as output to control the sequence in the program.

Lets look at an example of controlling pneumatic (air) cylinders.
Video of  Pneumatic Cylinder Sequencing on YouTube.
This site contains a video of the three cylinders and the sequence required.

This program will have the following inputs. Even thought no sensors are mounted on the cylinders, it is best to have sensor inputs when the cylinder is extended (out) and retracted (in)
Inputs:
Cylinder 1 In - X1
Cylinder 1 Out - X2
Cylinder 2 In - X3
Cylinder 2 Out - X4
Cylinder 3 In - X5
Cylinger 3 Out - X6
Start PB NO - X7
Stop PB NO - X8
Step PB NO - X9

This program will have the following outputs.
Outputs:
Cylinder 1 In - Y1
Cylinder 1 Out - Y2
Cylinder 2 In - Y3
Cylinder 2 Out - Y4
Cylinder 3 In - Y5
Cylinger 3 Out - Y6

We will use the following pointers:
V0 - Output pointer starting at address V2000
V1 - Input pointer starting at address V1000
V10 will be the input word
V20 will be the output word

Before we start and write the code lets look at the sequence that we are trying to accomplish. The best way to do this is a chart indicating the inputs and output. I use either graph paper or a spreadsheet software to configure the sequence.
I usually start with the outputs configure the sequence that I would like to see. Then based upon the output sequence, I figure out the input sequence.

Note: Here is the location for a quick review of numbering systems from a previous post.

Once the sequence has been established, the next step is writing the program.
Input program that will set the input bits in V10.
Control part of the program:
The first scan will reset the input and output pointers.
The input pointer is compared to the input word V10. If they are equal then the output pointer and input pointer are incremented. If the STEP input is hit, then the output and input pointers are incremented.
The output pointer is then compared to the maximum value (end of sequence). If it is greater than or equal to the maximum value then the pointers will be reset.
Line 12 will move the outputs indirectly to the output word.
Output program that will set the actual outputs based upon the bits in V20

As you can see the actual program is very small however the sequence can be thousands of steps. This is a very straight forward and powerful method of programming. Programming this sequence using bits, timers and no indirect addressing would be very difficult and hard to read. Modifications would have to be a complete re-write of the program.

Modifications:
The entire program sequence could change without further lines of code. Only the values in the registers would need to be modified. This could lead to different sequences for different products.
We used a step input to have the program move forward through the sequence. It would be just as easy to add a step reverse function for the program. We would just have decrement the pointers and check to make sure when we were at the beginning of the sequence.

Troubleshooting:
When troubleshooting this program we would only need to look at the compares to determine what input and or output is not working correctly.

Integration with a touch panel display is simplified when using this type of programming method.

What other advantages do you see?

Contact me for the above program. I will be happy to email it to you.
If you have any questions or need further information please contact me.
Thank you,
Garry

You can download the software and simulator free at the following address. Also listed are helpful guides to walk you through your first program.
Do-more Designer Software
How to use video's for Do-more Designer Software

One of the better PLC programming books is PLC Programming for Industrial Automation by Keven Collins. Here is the link to the free download.

Wednesday, September 3, 2014

Building a PLC Program That You Can Be Proud Of - Part 1

What is the best way to program a PLC? 
My answer is simple. The best way is one in which someone can look at your program and understand it. I cannot stress enough the need for good documentation of your program. The best programs are ones that I can return to after several years and understand what it is doing within a few minutes. Programs should read like a book. This will aid in troubleshooting, modifying or teaching.

 How do you approach a PLC program?
You must know everything about the logic or process before starting your program. Making a flow chart is one good method to learning the logic and process. The flow chart will bring out questions like the following:
What happens after a power outage? (In each condition of the outputs)
What happens if a sensor is not made? How long do you wait?
What are the critical items to monitor? (Ex. Air Pressure, Weight, Length, etc)
What happens...
Once you have written your program and are in the troubleshooting stage you can usually go back and add to your flow chart. Usually there is always something that needs to be added, changed or modified based upon the actual functioning of the program.
Consider each project a complete leaning opportunity.

Once you know what you want to do with the PLC and have a good understanding of the logic flow, then it is time to start coding. Remember that there is no write or wrong method to program the PLC, either the program will work or it will not work.

Let's look at an example. We will start with something that we all know how it works.
Traffic Lights

We will look at three programming examples for the lights. Two different approaches to programming will be used, but the program function is the same. The last example will modify the logic for a car being sensed.
Logic: 
First Example:
Traffic Light Program 

Sample program for traffic light intersection with lights facing North /South and West /East. 
Green is on for 5 seconds
Yellow is on for 2 seconds
Red has an overlap of 3 seconds

This program uses discrete bits and timers to accomplish this task.

The $FirstScan bit will reset the timers so if power is lost, the lights will start with Red / Red overlap before starting the sequence again.

The outputs are controlled by when the timers are on (Done) or off (Not Done)
North / South Traffic Lights
West / East Traffic Lights
You will notice that this program is fully documented and easy to understand.

Monday, September 1, 2014

Who Else Wants To Know How A PLC Scans?

Programmable Logic Controllers (PLC) will scan very quickly. This can be anywhere from 1 to 20 ms, which translates into 1000 to 500 times each second. But what exactly is a scan?

A scan is when the PLC will complete the following:
Read Inputs:
Look at all of the inputs to the programmable controller. Digital, Analog, Communication

Execute Program:
Solve the logic to determine the output status. PLCs generally will solve the logic from left to right, top to bottom. The output of the rung before is available for the next rung. 
This is like some of the popular bands of PLCs like MitsubishiAllen Bradley, Siemens, Omron, Automation Direct, etc. There are some exceptions like older Modicon models which solve the logic top to bottom, left to right. Always refer to the manufactures manual to ensure the program execution method.

Diagnostics and Communication:
The PLC will do a self check. It will verify that no errors exists in memory, cards attached, etc. This is critical because the PLC in an industrial application can have devastating effects if something malfunctions and the machine continues to function erratically. The PLC will stop executing, return the outputs to a normal state and indicate an error has occurred.
Communication will happen to the remote I/O, operator panels, etc.

Update Outputs:
Outputs are set according to the PLC program. (Digital, Analog) This is where the physical items will start moving. (Motors, Valves etc.)

To understand the scan, lets take a look at an example. 
The following program will look at input X0 and set an internal bit for one scan one the rising edge of the input and one on the trailing edge of the input. The rising edge is when the input transitions from off to on and the trailing edge is when the input transitions from on to off.
The bits will only be on for one scan so we will increment an internal word by one when the bits go on. This way we will be able to see the bit increment in the word.

Leading edge one shot (one scan) bit. When the input signal goes on (X0) and C1 is not on, then C0 is turned on. The next rung will have C0 and X0 on so C1 turns on. 
Remember: The PLC will scan from left to right, top to bottom and the outputs from the previous rung are available for the next.
C0 is on so the increment will add one to D0.
The next scan X0 is still on, C1 is now on so output C0 is turned off. C0 has been now on for one scan from the transition from off to on.

Trailing edge one shot (one scan) bit. When the input signal goes ooff (X0) and C3 is not on, then C2 is turned on. The next rung will have C2 and not X0 on so C3 turns on. 
C2 is on so the increment will add one to D1.
The next scan X0 is still off, C3 is now on so output C2 is turned off. C2 has been now on for one scan from the transition from on to off.

Contact me for the above program. I will be happy to email it to you.
If you have any questions or need further information please contact me.
Thank you,
Garry

You can download the software and simulator free at the following address. Also listed are helpful guides to walk you through your first program.
Do-more Designer Software
How to use video's for Do-more Designer Software