Tag Archives: programmable logic controller applications

C-More Micro HMI First Program

We will now put our first program into the C-More Micro HMI Panel using the C-More Micro programming software. The Do-More Designer Simulator will be used with a modified Start Stop Jog Circuit so we can use our HMI screen to control the output as well as the inputs on the PLC.

The PLC logic for our circuit can be found on our post: How to Make a Start / Stop / Jog Circuit in a PLC. The YouTube video can be seen here.
Our C-More Micro HMI Panel will be communicating to the PLC simulator via Ethernet with the Modbus TCP protocol. Let’s get started. Continue Reading!

C-More Micro HMI Installing the Software

The C-more Micro Programming Software is a free download from Automation Direct. This is similar to the more powerful C-more Touch Panel programming software. This free HMI (Human Machine Interface) software has features designed to reduce your configuration time. Simply drag and drop the objects from the object bar onto the screen construction area. Configure your PLC tags and click on the objects you want to use. A built in simulator will allow you to review your work on the computer before downloading the project.

We will be installing the C-more Micro Programming Software onto our PC (computer). Updating the software is also very easily done. See video below.
Let’s get started. Continue Reading!

C-More Micro HMI System Hardware

Human machine interfaces (HMIs) are made to display and control operations for our automation solution. Information is displayed in a graphic format. (Graphical User Interface – GUI) The HMI is usually part of the SCADA (Supervisory Control and Data Acquisition) system.
Communication from the HMI to the control is usually done through a serial (RS232 / RS485 / RS422) or Ethernet (RJ45) method with different protocols depending on the manufacturer of the control. The automation control device is not limited to a PLC. (Programmable Logic Controller) You can communicate also to drives, temperature process controllers, etc. The HMI usually will include several different protocols and port configurations to maximize the amount of control product that it will be able to communicate.

We will be looking at one of the newest members of the C-More Micro Panel HMI devices from Automation Direct. This is the EA3-T4CL. This four inch colour TFT LCD screen offers great features that we will be exploring as we review this product. Let’s get started. Continue Reading!

Productivity 1000 Series PLC System Hardware

The Productivity 1000 series of programmable logic controllers has a slim stackable super compact design. This is sometimes also referred to as a shoebox PLC because of the shape and way in which expansion modules are added. This new Productivity 1000 series PLC is the latest in the Productivity series of controllers that have hit the market.

Productivity 1000 (Stackable Micro PLC)
Productivity 2000 (Micro Modular Programmable Controller)
Productivity 3000 (Modular Programmable Controller)

These three series currently make up the Productivity Series form Automation Direct.

The Productivity 1000 series PLC provides the following features for your automation control panel.
– 50MB user memory – Can handle very complex applications easily.
– 4 built-in communication ports – Easy connectivity to your network. This would include your PC, HMI, Networks, etc.
– Data logging up to 32 GB on a microSD card
– Add up to 8 IP modules to communicate to your field sensors. This will give you a total of 128 discrete IO points or 32 analog IO channels.
– Free Software and 30 days of free training with every CPU from Automation Direct.
– Interactive PLC Configuration Tool
– Tag Names
– Auto discovery IO – Physical I/O tags will be generated based on each module’s position in the base. You can also reconfigure the setup and assign new tags manually.
– I/O Modules have QR codes under the wiring cover. This can be scanned so you can have the latest specifications / wiring diagrams for the module.
– Limitless PID – Auto tuning – Individual or Cascade Mode – etc
– Web Server and Mobile Access
– Advanced Software instruction set

We will be looking at allot of these features of this powerful controller. Let’s start by looking at the hardware. Continue Reading!

BRX PLC Analog IO – System Configuration

One of the features of the BRX Series PLC is the ability to expand its capability to fit your application. This is easily done by “snap-on” modules that will fit on the side of the BRX MPU (Multi Processor Unit). As we have seen before in the BRX PLC System Configuration post we can add additional discrete inputs and outputs. Automation Direct now offers Analog Voltage and Analog Current input and output modules. These modules come as an 8 point channel unit. There is also a 4 point thermocouple input module also available. We will be configuring, scaling and programming the Analog input and output Voltage modules for our BRX PLC. Let’s get started. Continue Reading!

PLC Programming Example – Palletizer

We will apply the five steps to PLC program development to a palletizer example. Our example will allow you to determine how many layers of boxes you want on each skid.

Developing the PLC program is a process that can be clearly defined. In our series on the five steps to PLC program development we have done some similar practical examples.
PLC Programming Examples – Five Steps to PLC Program Development
– Press
Process Mixer
Shift Register (Conveyor Reject)
Paint Spraying
Delay Starting of 7 Motors
– Pick and Place
– Sorting Station (Shift Register)

Define the task: (1)
Watch the sequence of operation video below. This will demonstrate the pallet layer selection, running and resetting of the machine.
Watch on YouTube : PLC Programming Example – Palletizer Testing
Continue Reading!

Implementing the Omron Host Link Protocol (VB.Net)

Previously we used VB6 (Visual Basic 6) to implement the Omron Host Link Protocol to communicate to our programmable logic controller. (PLC) In part 2 we used Visual Basic for Applications (VBA) to accomplish our host link serial communication. We will now look at using VB.Net to establish and retrieve information in and out of the PLC using host link. (C mode commands)

Hostlink communication protocol is a method developed by Omron for communication to PLC’s and other equipment. This ASCII based protocol is used over RS232 or RS422/RS485. It is a many to one implementation which means that you can communicate with up to 32 devices back to a master. (1:N) This communication on the industrial floor can control PLC’s, Temperature Controllers, Panel Meters, etc.

The Omron CP1H plc will be used with a CP1W-CIF11 (RS485) communication serial link adapter. We will also use a USB-485M Universal Serial Bus to RS485 adapter from automation direct. The video at the end of this post will demonstrate the communications by reading 10 registers form the DM area of the PLC. Continue Reading!

Create an Analog Voltage Input Tester for a PLC

We will create a simple and inexpensive analog voltage tester for a PLC using a potentiometer and a 9VDC battery. The potentiometer will be 5K ohms. This should be enough impedance for most analog inputs of the programmable logic controller. (PLC) Voltage impedance for analog voltage inputs are in the mega ohm range where current input is typically 250 ohms. Our tester will be for analog voltage inputs (0-10 VDC). Check your input specifications before wiring anything to your PLC. I have used this tester for other voltage inputs along with a meter to ensure that the voltage levels do not get out of range for the input signal.
Analog inputs to the PLC are continuous and can come in a variety of signals. These signals can come from temperature, flow rate, pressure, distance, etc. Continue Reading!

PLC Programming Example – Delay Starting of 7 Motors

We will look at a PLC programming example of delaying the start of 7 motors. Each motor will be on a switch that the operator can select at any time. The motor outputs should have a 5 second delay between the outputs coming on.

This question originally came from PLCTalk.net. An original solution to the problem came from Peter Steinhoff. His solution is what we will be presenting. It is simple and straight forward.

We will be using the Do-more Designer software which comes with a simulator. This fully functional program is offered free of charge at automation directKeep on Reading!

Building a PLC Program That You Can Be Proud Of – Part 6

We will continue the series by looking at a sequencer controlling seven cylinders that can be taught. The cylinders can be operator programmed from the AdvancedHMI screen. You will be able to select what cylinders to activate at each step and program in 500 steps. Our PLC will be the Do-More from Automation Direct.
Cylinder Teach HMI 110-min

Here is a quick review of the programming series so far. If you are new to the site, we recommend reviewing the other parts in the series first.
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.
Part 2 used indirect addressing for inputs as well as output to control the sequence of pneumatic (air) cylinders in the program. Part 3 and 4 we returned to the traffic light application and expand our program significantly. We looked at the sequence of operation using Input, output and mask tables.
In part 5 we used the AdvancedHMI software to create the game of Simon. A round in the game consists of the device lighting up one or more buttons in a random order, after which the player must reproduce that order by pressing the buttons. As the game progresses, the number of buttons to be pressed increases.

We will be using AdvancedHMI to communicate Modbus TCP to the Automation Direct Do-More Designer Software Simulator. The following is the sequence of operation:
Watch on YouTube : Running the Cylinder Sequence (PLC / HMI)
Note: All of the  programs used are provided free of charge and are an excellent way to learn PLC / HMI programming.

The following table is the Modbus TCP memory map to the Do-More PLC:

Coil/Register Numbers Data Addresses Type Do-More PLC Table Name
00001-09999 0000 to 270E Read-Write MC1 to MC1023 Discrete Output Coils
10001-19999 0000 to 270E Read-Only MI1 to MI1023 Discrete Input Contacts
30001-39999 0000 to 270E Read-Only MIR1 to MIR2047 Analog Input Registers
40001-49999 0000 to 270E Read-Write MHR1 to MHR2047 Analog Output Holding Registers

Cylinder Teach HMI 100-min
Here are the inputs and outputs we will be using for our program:

Device Data Addresses Type Do-More PLC Description
Start Pushbutton 00011 Input MC11
Stop Pushbutton 00012 Input MC12
Jog Pushbutton 00013 Input MC13
Reset Pushbutton 00014 Input MC14
Run/ Jog Selector 00008 / 00015 Input/ Output MC8 / MC15  MC8 is the value and MC15 is the click
Light Stack 00010 / 00009 / 00008 Output MC10 / MC9 / MC8  Red / Green / Amber
Set Pushbutton 00071 Input MC71
Jog / Teach Selector 00070 Input MC70  MC70 on is teach mode
Sequence Step (Panel Meter) 40001 Output MHR1  Current step in the sequence
Inputs Actual 40002 Input MHR2  Show the actual inputs in binary format
Output Sequence 40003 Output MHR3  Show the actual outputs in a binary format
Input Sequence 40004 Input MHR4  Show the input sequence bits in a binary format
Cylinder 1 to 7 – value 00001 to 00007 Output MC1 to MC7  Determine if cylinder is on/off
Cylinder 1 to 7 – set (click) 00041 to 00047 Input MC41 to MC47  Set the cylinder button
Cylinder 1 to 7 – retract indicators 00021 to 00027 Input MC21 to MC27 Indicate cylinder has retracted
Cylinder 1 to 7 – extend indicators 00031 to 00037 Input MC31 to MC37 Indicate cylinder has extended
Cylinder 1 to 7 – extend / retract error indicators 00050 to 00063 Output MC50 to MC63 Indicate cylinder input error when jogging

The first thing we will do is design the HMI. We have three main areas on the screen. Basic Controls, Cylinder Visualization and the Sequence Step/Teach area. Please refer to the above reference chart for the inputs and outputs programmed on the screen.
Cylinder Teach HMI 130-min

Basic Controls:
This area will allow us to see what mode we are in via the stack light. Red – Stop
Yellow – Jog / Teach Mode – Troubleshooting
Green – Run
Cylinder Teach HMI 101-min

Cylinder Visualization:
Each cylinder will have indication lights to determine status of the cylinder. (Extended / Retracted)
The cylinder will also have red indication lights to reflect the differences between the current sequence and the next sequence step. This is visible when we are in jog mode.
Cylinder Teach HMI 102-min

Sequence Step/Teach:
When in jog or teach mode the sequence step is visible, which indicates the current step that we are on. The inputs and outputs are displayed as a binary value which represents the actual inputs and outputs. This is valuable when troubleshooting and finding errors in the system. The set button is visible when in teach mode. When pushed the outputs and inputs are set for that step and the sequence will then increment.
Cylinder Teach HMI 103-min

The following is the code for each of the words that the DataScribers are reading. This includes the code to change the word into a 16 bit binary value.

Private Sub DataSubscriber1_DataChanged(sender As Object, e As Drivers.Common.PlcComEventArgs) Handles DataSubscriber1.DataChanged
'Label1.Text = Hex(DataSubscriber1.Value)Dim i As Integer = DataSubscriber1.Value
Label1.Text = Convert.ToString(i, 2).PadLeft(16, "0") '16 bits
End Sub
Private Sub DataSubscriber2_DataChanged(sender As Object, e As Drivers.Common.PlcComEventArgs) Handles DataSubscriber2.DataChanged
'Label2.Text = Hex(DataSubscriber2.Value)
Dim i As Integer = DataSubscriber2.Value
Label2.Text = Convert.ToString(i, 2).PadLeft(16, "0") '16 bits
End Sub
Private Sub DataSubscriber3_DataChanged(sender As Object, e As Drivers.Common.PlcComEventArgs) Handles DataSubscriber3.DataChanged
Dim i As Integer = DataSubscriber3.Value
Label3.Text = Convert.ToString(i, 2).PadLeft(16, "0") '16 bits
End Sub
Private Sub DataSubscriber4_DataChanged(sender As Object, e As Drivers.Common.PlcComEventArgs) Handles DataSubscriber4.DataChanged
If DataSubscriber4.Value = True Then
     Label1.Visible = True
     Label2.Visible = True
     Label3.Visible = True
     Label4.Visible = True
     Label5.Visible = True
     Label1.Visible = False
     Label2.Visible = False
     Label3.Visible = False
     Label4.Visible = False
     Label5.Visible = False
End If
End Sub

We will now look at the PLC ladder program. The program is broken down into several parts as follows:

ACC Automation
This is the main start / stop circuit of the program.
If we are in run mode the green light will be on. (MC9)
If we are not in jog mode (MC8) this circuit will be functional.
Cylinder Teach PLC 100-min

If we are not run mode (MC9) or in jog mode (MC8) then the stop mode is active.
This will turn on the red light. (MC10)
Cylinder Teach PLC 110-min

Run / Jog – Toggle Circuit
Flip Flop circuit to set the jog function
Cylinder Teach PLC 120-min

Move the outputs to the physical outputs when we go to run mode.
Cylinder Teach PLC 130-min

Indirect Addresses for the Program
V0 – Input pointer – 100 – 499
V1 – Output pointer – 500 – 999
V2 – Input pointer last step in sequence
V3 – Output pointer last step in sequence
V10 – Inputs to the sequencer
V20 – Outputs from the sequencer
Cylinder Teach PLC 140-min

Jog Mode – Jog Pushbutton
Cylinder Teach PLC 150-min

Reset the sequencer pointers. This will happen automatically in run mode or by hitting the reset button in jog or stop mode.
Cylinder Teach PLC 160-min

Teach Function
This first rung will activate the values so we can manually turn them off/on with the HMI screen.
Cylinder Teach PLC 170-min

This will reset the pointers when going into teach mode.
Cylinder Teach PLC 180-min

This will set the teach point and increment to the next step.
Cylinder Teach PLC 190-min

Show the current step of the sequence.
Note: 0 is the first step
Cylinder Teach PLC 200-min

Set the inputs for cylinders.
The actural physical input points would be inserted here.
HMI inputs from the cylinders have a 500ms delay to simulate the movement of the actual cylinder.
Cylinder Teach PLC 210-min Cylinder Teach PLC 220-min

Set the actual inputs / sequencer inputs / sequencer outputs so we can monitor this on the HMI.
Cylinder Teach PLC 230-min

Set the outputs for cylinders.
This will set the physical output points Y1 to Y7.
This will also set the HMI cylinders MC1 to MC7 (00001 to 00007)
Cylinder Teach PLC 240-min Cylinder Teach PLC 250-min Cylinder Teach PLC 260-min

Diagnostic Bits for indicating the difference for the inputs to the PLC. This will show up as a red indication light on the cyclinder represented on the HMI.
Cylinder Teach PLC 270-min Cylinder Teach PLC 280-min

This section of PLC logic will mimic the inputs from the cylinders.
Cylinder 1 – Retract MC21 (00021) – Extend MC31 (00031)
Cylinder 2 – Retract MC22 (00022) – Extend MC32 (00032)
Cylinder 3 – Retract MC23 (00023) – Extend MC33 (00033)
Cylinder 4 – Retract MC24 (00024) – Extend MC34 (00034)
Cylinder 5 – Retract MC25 (00025) – Extend MC35 (00035)
Cylinder 6 – Retract MC26 (00026) – Extend MC36 (00036)
Cylinder 7 – Retract MC27 (00027) – Extend MC37 (00037)

Between each funtion of the cylinder there is a time delay for the input to turn on and off of 500msec.
Cylinder Teach PLC 290-min

Cylinder 2 – Retract MC22 (00022) – Extend MC32 (00032)
Cylinder Teach PLC 300-min

Cylinder 3 – Retract MC23 (00023) – Extend MC33 (00033)
Cylinder Teach PLC 310-min

Cylinder 4 – Retract MC24 (00024) – Extend MC34 (00034)
Cylinder Teach PLC 320-min

Cylinder 5 – Retract MC25 (00025) – Extend MC35 (00035)
Cylinder Teach PLC 330-min

Cylinder 6 – Retract MC26 (00026) – Extend MC36 (00036)
Cylinder Teach PLC 340-min

Cylinder 7 – Retract MC27 (00027) – Extend MC37 (00037)
Cylinder Teach PLC 350-min

This is the end of the PLC program. You can see that the program is not very complicated once you break down the individual steps.

Download the PLC program and the Bin directory for the AdvancedHMI screen.

Watch on YouTube : Building a PLC Program that You can be Proud Of – Part 6b – Explaining the Program
If you have any questions or need further information please contact me.
Thank you,

If you’re like most of my readers, you’re committed to learning about technology. Numbering systems used in PLC’s are not difficult to learn and understand. We will walk through the numbering systems used in PLCs. This includes Bits, Decimal, Hexadecimal, ASCII and Floating Point.

To get this free article, subscribe to my free email newsletter.

Use the information to inform other people how numbering systems work. Sign up now.

The ‘Robust Data Logging for Free’ eBook is also available as a free download. The link is included when you subscribe to ACC Automation.