You are on page 1of 28

11/19/2017

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

Program That You Can Be Proud Of – Part 6 | Acc Automation ACC , COMMUNICATION,

BUILDING A PLC PROGRAM THAT YOU CAN BE PROUD OF – PART 6

JANUARY 23, 2016 | GARRYS | LEAVE A COMMENT

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

11/19/2017

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

Automation Direct.

Be Proud Of – Part 6 | Acc Automation Automation Direct. Here is a quick review

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 rst. In part 1 we looked at writing PLC programs to control a traf c 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 traf c light application and expand our program signi cantly. 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:

11/19/2017

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

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

Analog Input Registers

 

MIR2047

40001-49999

0000

to 270E

Read-Write

MHR1 to

Analog Output Holding Registers

 

MHR2047

11/19/2017

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

Program That You Can Be Proud Of – Part 6 | Acc Automation Here are the

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 /

Output

MC10 / MC9 /

Red / Green / Amber

00008

MC8

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

11/19/2017

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

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 rst 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.

chart for the inputs and outputs programmed on the screen.

11/19/2017

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

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

– Jog / Teach Mode – Troubleshooting Green – Run Cylinder Visualization: Each cylinder will have

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 re ect the differences between the current sequence and the next sequence step. This is visible when we are in jog mode.

next sequence step. This is visible when we are in jog mode. Sequence Step/Teach: When in

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 nding 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

11/19/2017

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

increment.

You Can Be Proud Of – Part 6 | Acc Automation increment. The following is the

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

11/19/2017

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

Label4.Visible = True Label5.Visible = True

Else

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.

are not in jog mode (MC8) this circuit will be functional. If we are not run

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)

stop mode is active. This will turn on the red light. (MC10) Run / Jog –

Run / Jog – Toggle Circuit Flip Flop circuit to set the jog function

11/19/2017

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

Program That You Can Be Proud Of – Part 6 | Acc Automation Move the outputs

Move the outputs to the physical outputs when we go to run mode.

the outputs to the physical outputs when we go to run mode. Indirect Addresses for the

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

Inputs to the sequencer V20 – Outputs from the sequencer

11/19/2017

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

Jog Mode – Jog Pushbutton

Of – Part 6 | Acc Automation Jog Mode – Jog Pushbutton Reset the sequencer pointers.

Reset the sequencer pointers. This will happen automatically in run mode or by hitting the reset button in jog or stop mode.

run mode or by hitting the reset button in jog or stop mode. Teach Function This

Teach Function This rst rung will activate the values so we can manually turn them off/on with the HMI screen.

11/19/2017

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

Program That You Can Be Proud Of – Part 6 | Acc Automation This will reset

This will reset the pointers when going into teach mode.

This will reset the pointers when going into teach mode.

11/19/2017

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

This will set the teach point and increment to the next step.

will set the teach point and increment to the next step. Show the current step of

Show the current step of the sequence. Note: 0 is the rst step

the current step of the sequence. Note: 0 is the rst step Set the inputs for

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.

11/19/2017

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

Program That You Can Be Proud Of – Part 6 | Acc Automation

11/19/2017

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

Program That You Can Be Proud Of – Part 6 | Acc Automation

11/19/2017

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

Set the actual inputs / sequencer inputs / sequencer outputs so we can monitor this on the HMI.

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)

11/19/2017

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

11/19/2017

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

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.

11/19/2017

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

11/19/2017

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

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)

11/19/2017

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

Between each funtion of the cylinder there is a time delay for the input to turn on and off of 500msec.

11/19/2017

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

Cylinder 2 – Retract MC22 (00022) – Extend MC32 (00032)

11/19/2017

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

Cylinder 3 – Retract MC23 (00023) – Extend MC33 (00033)

11/19/2017

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

Cylinder 4 – Retract MC24 (00024) – Extend MC34 (00034)

11/19/2017

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

Cylinder 5 – Retract MC25 (00025) – Extend MC35 (00035)

11/19/2017

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

Cylinder 6 – Retract MC26 (00026) – Extend MC36 (00036)

11/19/2017

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

Cylinder 7 – Retract MC27 (00027) – Extend MC37 (00037)

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.

11/19/2017

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

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

If you’re like most of my readers, you’re committed to learning about technology. Numbering systems used in PLC’s are not dif cult 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.

First Name:

Your rst name

Last Name:

Your last name

Email address:

Your email address

SIGN UP

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

11/19/2017

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

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

It's only fair to share

subscribe to ACC Automation . It's only fair to share