Professional Documents
Culture Documents
Rockwell DCP Programming Guide Part 1 - 1.1 - 050405
Rockwell DCP Programming Guide Part 1 - 1.1 - 050405
Branch of
Rockwell International GmbH
GTS Engineering
Düsselberger Straße 15
D-42781 Haan
Germany
Tel. +49 (0)2104-960249
Fax. +49 (0)2104-960255
Software Documentation
DCP
Diagnostic Control Program
Part 1 DCP Specification
Part 2 DCP Standard Control Functions
Part 3 DCP Support
Part 4 OEM Tools
CMU
Control and Monitoring Unit
DCU
Diagnostic Control Unit
Project
Ford using ControlLogix
Rockwell Automation
Branch of
Rockwell International GmbH
GTS Engineering
Düsselberger Straße 15
D-42781 Haan
Germany
Tel. +49 (0)2104-960249
Fax. +49 (0)2104-960255
Software Documentation
Part 1
DCP Specification
Release 1.1 (April 2005)
Project
Ford using ControlLogix
Part 1 – Foreword
FOREWORD
The production of this manual is to assist users of the Rockwell Automation ControlLogix 556x processor
family to create Diagnostics Control programs (programming software RSLogix 5000).
Because of the variety of uses for the products described in this publication, those responsible for the
application and use of this control equipment must satisfy themselves that all necessary steps have been
taken to assure that each application and use meets all performance and safety requirements, including any
applicable laws, regulations, codes and standards.
The illustrations, charts, sample programs and layout examples shown in this guide are intended solely for
purposes of example. Since there are many variables and requirements associated with any particular
installation, Ford Motor Company and Rockwell Automation does not assume responsibility or liability (to
include intellectual property liability) for actual use based upon the examples shown in this publication.
Reproduction of the contents of this copyrighted manual, in whole or in part, without the written permission of
Ford Motor Company and Rockwell Automation, is prohibited.
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CONTENTS
1. Introduction
This chapter describes the general approach to create DCP programs and the preliminary work to be
carried out.
3. DCP Organisation
This chapter describes the program structure of the DCP Standard. Detailed descriptions you will find
in the DCP program which shows the function of each rung.
4. Operating Modes
This chapter describes the different operating modes used in DCP programming.
This chapter describes in detail the standard logic used in Control Function Block.
This chapter shows how multiple sequences are interlinked and methods used to control type
variations.
This chapter shows frequently used types of control functions needed to cater for different types of
actuators. The principles of control functions were covered in the chapter 5, so this chapter does not
go into detail, other than changes from one actuator to another. The different standard function blocks
(standard zones) are described as function diagram in Part 2 of this specification. They are saved as a
library at the end of the DCP Standard Program (without the function blocks delivered by the OEMs).
7.1 Conventions
7.2 Standard Control Functions
Appendix
CONTENTS CHAPTER 1
1. Introduction
1. Introduction
Development of this specification was to ensure different vendor's software is of a similar standard. It is then
easier for maintenance personnel to understand (once they have learned the rules) as they do not have to
learn the programmer's technique before being able to diagnose machine faults.
One of the main considerations is to diagnose faults without resorting to looking through the program, but
should this be necessary the structure and the program should be easy to understand.
– Standard to the control of sequential treatment-processes with integrated dynamic machine error
diagnosis and preparation of all information necessary for the operator.
– Tags of machine inputs are entered only within it’s own program file and therefore addition and deletion
of an input does not produce inaccurate diagnostics.
– The diagnostics are dynamic and show the true operation of the machine not only in the error case.
– The program should allow unequivocal fault finding and allow the machine to restart easily after a fault
condition.
– Simple layout to ensure clear structure and continuity of interpretation for every vendor.
In DCP each reaction signal (e. g. limit switch) is assigned a position in a diagnostic fault table, which is
stored in the PLC memory. If the signal is in a wrong state during the periods it is required, either as a
sequence check or as an interlock check, then the corresponding bit is set in the fault table.
An empty table therefore indicates that there are no sequence or interlock faults present and that the
machine may continue further in it’s operation.
With this form of programming there has always been a certain amount of confusion as to the difference
between steps and zones. A zone has always consisted of the logic necessary to perform and monitor a
machine action. This zone was then implemented on a certain step or steps. However it has been possible to
have multiple zones operating on one step or a zone that operates on multiple steps. Also the term zone
referred to many areas of the program, e. g. constantly monitored zone, sequence zone, interlock zone, etc.
To try and remove the confusion the term zone previously used for the main sequence of the program has
been replaced by control function which consist of the appropriate actions of a mechanism.
These control functions are enabled in a step or steps and their reaction signals monitored. All the
programming for one mechanism is therefore contained within a single function and is easy to understand.
A step is the moment in time at which an action occurs and its reactions are monitored.
A sequence therefore consists of a number of steps or actions which together perform the function of the
machine (machine cycle).
An advantage of the DCP is to offer all used control functions of this project as a function block library
(different types of actuators, robots and so on). The requested control function blocks (FBs) are copied out of
the library into the sequence depending on the function type and number used at the machine. The FBs only
have to be configured (step, manual pushbutton and lamp, control output, limit switches and fault bits).
Therefore the DCP is organized according to control functions of actuators and not according to steps.
Interlock and sequence checks form the basis of how a DCP program is structured and controlled.
A SEQUENCE CHECK occurs in the active step(s) during a machine movement and monitors the
successful finish of the step function
AN INTERLOCK CHECK occurs in passive step(s) after the movement is completed to ensure that this
mechanisms position does not change.
When the machine is working in automatic, the machine will wait for an action to complete no matter how
long it takes. If an interlock fault should occur the machine will stop the automatic mode immediately. Both
checks use the code in different ways to achieve the required result.
Fig 1.3.2 shows a timing diagram of two solenoids and their limit switches.
The black arrows represent a sequence check. The solenoid is energised and the signal from the limit is
required to show that the action has completed.
The hatched arrows show where interlock checks are applied, e. g. the action has occurred and the limit is
checked now to ensure the machine has remained in position.
Each input controls a bit in the fault table which is monitored as a sequence check or interlock fault. The
difference between the two is that an interlock fault will stop the machine operation and a sequence check
will not.
An interlock fault is caused by not allowed machine status (e. g. a clamp moves off its limit switch because of
an unexpected movement in a step, that controls another action (passive step)), and will stop the machine
immediately.
A sequence fault (sequence message) is only regarded as a fault because the action initiated has not
completed (active step), this could be due to a clamp sticking so the machine will not move onto the next
step.
Sequence and interlock checks monitor signals that relate to certain steps in the sequence. They report a
wrong condition of the machine dependent on the in each case active step. There is another set of signals in
the constantly monitored area, however, which is independently from the sequence run. These include:
CM FAULTS must remove the start signal without any delay, there should be no further movement in any
possible mode until these faults are cleared.
CMI FAULTS act in the same way but allow manual operation.
A further section of the fault table is an area reserved to display signals that, if missing, will prevent the
sequence from starting.
In many cases they represent conditions that indicate simply that pressing the start button will restart the
sequence. These signals are entered directly into this specific area of the fault table, without reference to
step numbers.
Once the sequence is running they act in the same way as normal sequence faults. When the start condition
goes off step change is enabled.
CONTENTS CHAPTER 2
This chapter gives the requirements for a DCP program design and how it could be realised.
In order to design the software the following documents are required :-.
Configuration and design is an interactive process between the software designer and the machine designer.
1. The machine designer supplies machine operation details. This will involve drawings and written
descriptions.
2. The machine designer supplies machine hardware details including proposals on the types of
mechanism and sensors required for each action.
4. The software designer should verify that the design includes all signals necessary to control the
machine safely as it is important to take into account the software requirements when designing a
machine.
5. Having completed the next two design phases the software designer defines the programmable
controller configuration and machine control panel requirements and returns them to the machine
designer.
Items (1) and (2) will include a timing diagram of the machine, an example of which is shown on the next
page.
In most instances the program is usually the last part of the machine to be developed. To assure the
execution of the pre-defined machine sequence it is necessary that every action has at least two position
reaction devices, one at each end of travel. Some actions could have three position switches one at each
end of travel plus over-travel. The position switch is used to drive the fault table flag and the over-travel is fed
directly into the constantly monitored interlock zone.
In all cases it is important that every input should have a corresponding diagnostic message. It is essential
that every mechanism has a sensor to detect work and home positions and other intermediate work
positions.
The most useful summary of all this information, required to generate the software program is documented in
the sequence and interlock chart and the programming chart. See figs 2.5.1 and 2.5.2.
Using the information from the timing diagram and other relevant information from the designer the design of
the sequence is carried out as follows.
All the sequences used to control a machine are to be described using the example sheet fig. 2.2.1 which
provides a complete overview of how the machine is controlled.
The number of steps in each independent sequence and the relationships between sequences can be
shown.
Descriptions should be as simple as practical and indicate the actions initiated in that step. Some actions
may continue over several steps and it is worth while including such information in the chart.
At times a step has no action to initiate, if for instance it is waiting for a feedback signal, it is described as
"waiting for...".
If the sequence is complex it may be advisable to leave blank steps at different points in the cycle to allow for
later expansion. The description ‘Reserved’ should then be applied.
All the addresses (tags) related to the sequence begin with zzSeq[x]. … (x = sequence number), and
SEQUENCE_DATA are the user defined data type of the structured tags.
To each sequence, a fault table belongs to the diagnosis of the machine errors and messages. It is divided
into 5 fault areas, the mixed feedback of the sequence evokes. The area limits and the number of fault bits
(default = 3200) are to be defined freely per PLC for all sequences from the user together.
The order of bits within each fault table stretches from bit 1 for the fault bit of topmost priority up to bit with
lowest priority (highest bit number). Bit 0 is reserved and it is not allowed to use it. The data type of the fault
table is DINT (e. g. Bit 747 in sequence 2 = zzSeq[2].Fault[23] .13).
At this stage it is possible to plan the layout of the fault table, e. g. which bit will represent which signal or
condition. Messages should be written so that they start with Waiting for ...., followed by a description of the
relevant signal.
Start conditions
This zone follows the SIZ. Each message tells the operator what he must do to start the machine in
Auto or Semi-auto. For example, that he must press a particular start pushbutton, depending on the
operating mode selected. When the machine is in manual it indicates no automatic start possible if
there are interlock faults present. Waiting for the operator to complete a manual load or unload
operation is not a start condition. It is a part of the sequence, so should be entered in the
Sequence/Interlock zone (SIZ).
General Messages
These messages are located in the highest bit zone (lowest priority). They have no influence on the
machine operation and are free available by the user.
The messages are used to display user dependent conditions very easily. For instance the user can
display different set up conditions, states, faults or states of other stations.
For the clearness of the fault table it is recommended, for example an actuator, to provide an interrelated
table-area, like 1 word. As it is advisable with step numbers, do not cover five to six bits per 32 bits in order
to be able to plan late alterations. As thumb-rule approximately 20% of the bits should serve as reserve.
Although the DCP per PLC-scan reports all current faults of the fault table, depending on the used human
machine interface (HMI) only a limited number of simultaneously fault messages can be shown. The fault
causing a machine breakdown should always be assigned a fault bit with a higher priority than the fault bits
of any resulting faults. The priority rule is especially important for the CM and CMI zones of the fault table.
The figure below shows an example of a bit table and location of bits to be used within the fault table.
Bit 001 CM
([0].1)
Constantly monitored zone (highest priority):
In accordance with the security-regulations, these hardware-wired signals stop the
machine immediately. CM faults break off the machine cycle at once and in manual
mode also close each movement for the protection of human and machine equipment.
In general these faults are global faults and independent of sequence.
Example: emergency stop, loss of air pressure.
Bit 639
([19].31)
Bit 640 CMI
([20].0)
Constantly monitored interlock zone:
CMI faults immediately break off the machine cycle for the protection of the machine
equipment, still admits the manual operation however. Partially these faults can be
global faults and independent of sequence.
Example: motor-protection
Bit 927
([29].31)
Bit 928 SIZ
([30].0)
Sequence and interlock zone:
Sequence faults: in the automatic operating modes the running machine waits on the
end of an action during the active step, independently on the duration of the action.
Interlock faults: After the action is finished, the reached position will be monitored
now (passive steps). In case of this fault, the sequence reacts as the CMI fault. The
machine-cycle immediately breaks off when the DOSA time is exceeded, manual
operation is still possible.
Example: Waiting on closed clamp.
Bit 1535
([47].31)
Bit 3104 SSZ
([97].0)
Zone of start conditions:
Usually these conditions report, that the sequence starts again if start pushbutton will
be pressed. As soon as the sequence runs, this condition acts as a sequence fault and
will be switched off to make possible the step change.
Example: Waiting on central start.
Bit 3135
([97].31)
Bit 3136 GMSG
([98].0)
Zone of general messages (lowest priority):
These messages are only used to display user states (except quickstop message, see
Part 3) and have no influence on sequence operation. They are freely available by the
user (e. g. for maintenance and test).
Bit 3199
([99].31)
NOTE: The values putting in parentheses relate to the data type DINT
NOTE: Prepared fault table see Ford specification
– Different fault bits may have the same output address. For example an output controlling a valve may
actually control a number of air cylinders that each have their own end limit sensor. Or a movement of a
function operates with an intermediate position.
– Single-solenoid valves use only one PLC output, but still control movements in two directions. The output
designation for the reverse direction (usually home) is shown logically inverted, e. g. with a line in the
description above the tag name.
Some control functions may not have a control output. An example of this is part detection.
To ensure that the correct fault bit is shown the need to assign priorities is essential.
In the SIZ the fault bits are related to the actuators and it is usual to use adjacent fault bits to represent the
work and home positions of a function. For the configuration of a function block it is important to place
always the fault bit A (start position) before fault bit B (target position) for any particular mechanism to ensure
the detection of a failed sensor rather than the non arrival of a mechanism (see 2.5.2 programming chart).
The method to display data in the fault table varies from machine to machine.
For a small machine an alpha numeric display could be used whilst for a large machine a PC based system
may be more appropriate.
Data displayed should be as explicit as possible, giving as much useful information as is practical.
For example:
The charts defining functions, steps, interlocks, fault table addresses etc. can now be planned as shown
below and should be read with reference to the worked example 2.5.3
– Identify all the actions and related data e. g. inputs, outputs etc.:
Programming Chart
– Identify start conditions, constantly monitored signals and all of the function diagnostics:
Fault Diagnostic Table.
– Identify push button positions
Push Button Table
This chart (Fig. 2.5.1) groups together all information required for the program for both automatic and manual
operation allowing the control functions to be programmed directly from the chart.
According to the Sequence and Interlock Chart this table splits the machine into mechanisms that will carry
out the machine actions. For each mechanism two lines exist for each movement of an action. The chart is
completed for every separate mechanism including steps that have no action to take. For instance a step
could be waiting for a feedback from an external device or another sequence.
The first eight columns of this chart are completed using the data previously entered on the Sequence and
Interlock chart and the following steps should be followed in order to complete these columns:
2. Active Steps
Read along the automatic line ('A') for each function and note any steps where an 'A' or 'S' is present.
The step number or numbers where these are found are entered in the 'Active steps' field.
3. Sequence Check
Repeat step 2 this time looking for sequence checks indicated by an 'S' and enter the step number or
numbers where they are found in the 'SeqCheck steps' field.
4. Backward Steps
In the column marked 'Backward steps' enter the value(s) found in the 'SeqCheck steps' column of the
opposite motion for this function. If no opposite motion exists as in the case of part present the entry
should be the same as that in 'SeqCheck steps'. If a function is active over a number of steps before
being sequence checked the step number of the first ‘A’ should be entered as well as that for the
sequence check step.
6. Interlock Check
Repeat step 2 but this time enter the step number or numbers where an 'I' appears in the ‘IntCheck
steps’ field.
NOTE:
– Where more than one step requires representing, e. g. steps 4 and 7 it should be indicate thus 4,7.
Where a range of values requires representing, e. g. steps 3 to 10 it should be indicate thus 3-10.
– The step numbers in the columns ‘Active steps’, ‘SeqCheck steps’ and ‘IntCheck steps’ must be
programmed as follows, e. g. for sequence number 3, a 2 in any of these columns would represent
zzSeq[3].Step.Flag[2].
– The characters in the column ''ManCheckReq./ManDiag' represent the tag of manual interlock check, e.
g. for sequence number 1, function block M_Fct050, work position: zzSeq[1].ManDiag[50].1 – Bit 1 =
work position, Bit 0 = home position. (see chapter 5.1.1 and 5.1.4).
The remaining columns in the chart are completed with the following information:
7. Action Output
The output used to control the action e. g. the tagname of the output should be entered.
NOTE: Fault diagnostic of both of feedback signals (start and target position) in a machine function
represents a restricted pair check of limit switches.
This typical control function shows how the information entered in the program chart is used to complete a
function.
The control functions of the different actuators or mechanisms are described in Part 2 of the specification
(Standard Function Blocks) except the function blocks delivered by the OEMs (e. g. robot, security function).
Each actuator with its functions is saved in a function block library M_Fct... of the DCP Standard Program.
This typical control function shows how the information entered in the program charts is used to complete a function.
The control functions of the different actuators or mechanisms are described in part 2 of the specification (Standard
Funtion Blocks) except the function blocks delivered by the OEMs. Each actuator with its functions is saved in a
function block library M_Fct… of the DCP Standard Program.
CONTENTS CHAPTER 3
3. DCP Organisation
This chapter describes the program structure of the DCP Standard. Detailed descriptions you will
find in the DCP program which shows the function of each rung.
3. DCP Organisation
The following sections describe an overview over the project structure of the DCP standard. Each rung of the
standard logic is sufficiently documented in its function, and part 3 of this specification documents the
different configurations and adaptations of the software to change by the user. The structure of the DCP
must be followed although some areas may not be used.
All program parts already exist as program modules or function components (blocks) in the standard
necessary to control a machine. The standard software DcpCxcar_10_Release[version] supplied with this
specification includes all global functions, the communication interfaces, a complete sequence, and all
control function blocks used in the project (see chapter 5, appendix A (standard software), and part 2 of the
specification).
The scheduled part of the DCP consists of a Task Continuous structured into 3 program areas:
– Program Global
– Program User
– Program(s) Sequence x (x = sequence-number), number depends on controlled machine and is a copy
of the progam Sequence00 modificated to the specific machine by the user.
The unscheduled part contains the program Sequence00, a complete standard sequence with a component-
library of all control functions..
Beside the structure, the syntax of tag names and program/routine/rung descriptions used in the standard is
obligatory to keep. If any routine is changed the revision and date must being updated in rung 0 (w.xxyyzz: w
= revision, xx = year, yy = month, zz = day).
The DCP uses only controller tags, NO program tags. The DCP standard tags begin with zz. These tags and
especially the user defined structures of the standard should not be altered by the user. The user has to
exchange the tags Example(s) and the user defined data structure User by tags and/or structure of the
application.
S_EtherNet P_EtherNetParameters
S_Fieldbus P_FieldbusParameters
P_InterbusParameters
U_StartUp
S_Interbus
S_Dcu U_Dcu
S_Versaview P_VersaviewParameters
Agenda:
P_UserScreenVersaview
1st Letter:
S: System routine
P: Parameter routine
U_Screen…..
M: Motion routine (function block)
U: User routine
S_Central P_CentralParameters
U_GlobalFaults
SR_GateBox
U_GlobalOutputs
U_TypeInfo
U_Statistics
P_POSMON_Main P_POSMON_WARNINGS
P_POSMON_PCM
SR_POSMON
.
.
.
SR_POSMON
P_POSMON_Line
Program
S_SequenceMain P_SequenceParameters
Sequence 01:
(tag zzSeq[1]. ...)
U_SequenceStepConditions
U_SequenceFaults
U_SequenceFunctions M_Function01
M_Function02
M_Function n
Program U_OneHandStart
S_SequenceMain
Sequence 02, ...: (tag zzSeq[2]. ...) JSR
JSR
. .
. ...
.
.
.
SR_OneHandStart
Program
S_SequenceMain
Sequence nn, ...:
(tag zzSeq[n]. ...)
Some applications consist of a number of individual stations which although controlled by independent
sequences, are still normally started and stopped together, an example being a large automatic transfer line.
The individual stations each require their own display and control panels to enable local testing in the event
of a fault, but central functions are also necessary to control the entire machine or line under normal
circumstances.
Central functions used in the EMS system do not spread to other PLCs.
A safety area appropriates to a machine field restricted by safety doors. It consists of one or more stations
(sequences). The manual and automatic mode are assigned to a safety area (Kkey 11 and 12 on CMU). The
Kkeys control the safety area, whose sequence is displayed on Online screen of CMU at present. All other
operating modes are assigned to the displayed sequence (CMU Online screen, page 30).
NOTE:
A sequence is assigned to one safety area only
One safety area can contain 1 … 30 sequences of the plc
A plc controls up to 30 safety areas
A plc controls up to 30 sequences
A safety area belongs to one plc. It cannot be used in more than one plc
If requested the sequences of a safety area stop at the end of current defined step(s).
Quickstop request is possible via pushbutton at gate boxes in auto/semi mode (Configuration by user see
routine U_GateBoxes in program User and part 4 of specification). External pushbutton can used
alternatively.
Quickstop has to be enabled by user (e. g. steps of the sequence to allow this function)
The condition of status "At quickstop" is displayed on HMI.
Quickstop function is reset when
- Quickstop pushbutton is pressed once more (1 sec. delay for debounce)
- Mode change
- Central start
- Start safety area
- CM / CMI fault.
Constantly monitored signals are checked in the CM/CMI area of the fault table in general (see chapter 2.3).
These are PLC inputs which must immediately stop the machine if they ever have the wrong state. Examples
are Emergency Stop or loss of control voltage. Other signals, such as hydraulic or air pressure levels, may or
may not need to be entered into the CM or CMI, depending on the application. The simple rule is, if there is
any chance that loss of the signal could result in danger to man or machine, then it must be entered in the
CM/CMI area. If there is no risk or danger, it is possible to program it in the SIZ.
If the constantly monitored signals effect all sequences of the PLC, it is global (central) fault.
Global constantly monitored signals have to be configured in routine U_GlobalFaults (tags:
zzCentral.Fault...).
This program is ready for user-own routines and can be supplemented on further routines according to the
requirements of the application. The routines are freely available under consideration of standard syntax
(see chapter 3.1). Same is valid for U_… routines located in other programs.
As recommendation, proposals are already programmed. It is the decision of user to implement these
suggestions:
The standard program Sequence00 comprises a complete sequence with all control operations being
necessary. It contains following routines, that are described in the following nearly:
– S_SequenceMain
– P_SequenceParameters
– U_SequenceFunctions
– M_Fct...
– U_SequenceFaults
– U_SequenceStepConditions.
3.5.1 S_SequenceMain
This system routine forms the basis of the program sequence. Programming is not allowed by the user. As
Main-routine it takes care of all required assignments for perfect operation of the sequence.
– Initializing of data
– Calculation of areas for step times and cycles per sequence and production type
– Control of the operating modes (see chapter 4)
– Quickstop function of sequence
– Dry run and clear line function of sequence
– Sequence end of cycle
– Evaluation of the DOSA time e. g. shimmy switches (DOSA = Drop Out Start Automatic)
– Automatic cycle (ready state and start automatic cycle)
– Manual release of movements (to ensure safety in manual operation)
– Automatic release of movements (to ensure safety during auto/semi operations)
– No pushbuttons pressed (to control interlock checking in manual mode)
– Manual lead thru release of movements (to ensure safety while in manual lead thru forward and
backwards mode)
– HMI priority
– Manual faults
– Start conditions in the fault table
– Fault detection (see. chapter 3.5.1.1)
– Control of the step counter:
o Forms a step bit for each step to the simple programming (Step.Flag[xx]; xx = step number
1...99)
o Increment/decrement step
o To run sequence backwards (available in manual lead thru and step by step mode)
o Fixture / weld reset mode (to set all to home level)
o Sequence reset (step 1)
o Re-sequence (Find again the correct step which corresponds to the actual machine state). If
the machine position is chaotically (re-sequence finds no correct step state), the conditions
are reported in order to move the machine in manual mode into the real state of the current
step.
After the repair of displayed faults by the operator the start condition is shown as highest-priority fault, and
the sequence is ready to start with the displayed step. It is not necessary to set the machine to home
position. After the start of the sequence with start pushbutton in automatic mode, the sequence begins
running with the current step and displays the sequence fault of this step. When the step is finished, the
sequence fault disappears. If no fault (incl. start and sequence fault) occurs in the fault table, the step
counter changes to the next step, a new sequence fault is set, and so on. After the last step is finished, the
sequence begins a new cycle with step 1.
This routine especially prepares the control flags used in the control function blocks M_Fct….
The entire fault table (default = 3200 fault bits per sequence) is checked on faults continuously at each PLC
scan in all operating modes (see chapter 2.3). The step timeout fault caused the break-down of the running
sequence is saved with fault bit, fault type and step to display it later as first fault, if the operator wants to see
it. The cycle timeout fault is saved as well for further user application.
When the machine state does not correspond to the current or selected step (sequence in stop), the
diagnosis reports CM, CMI and / or interlock fault according to priority (see chapter 2.3). After the repair of
displayed faults by the operator the start condition is shown as highest-priority fault, and the sequence is
ready to start with the displayed step.
All active faults and their fault types can be shown simultaneously dependent on the display system sorted
by priority. The highest priority fault causes a suitable reaction of the sequence..
General message is shown at a separate line. If more than one message occurs, the messages scroll.
3.5.1.2 Timeout
When the sequence is running in automatic mode, the step time of each current step is measured. The
diagnosis compares the time of current step with accessory reference step time and the overall cycle time
with its reference cycle time. If the current step / cycle time exceeds the reference step / cycle time (plus a
percent value configured by the operator), a step / cycle timeout fault occurs. The timeout fault does not
influence the running sequence. It only informs the operator, that for instance a motor bearing becomes worn
(the destination of the motor drive is reached, but not in the allowed step time).
Last appeared step timeout fault is saved to display it with step and fault bit, if desired.
The sequence handles times of each step and cycle (current and referenced) of up to ten production types.
A self teach function calculates the reference times automatically. If the operator selects the Teach In
function in automatic mode and running sequence, the time of each step is measured during a complete
sequence cycle and saved together with the overall cycle time as reference for current type. The operator
can change the reference times any time.
3.5.2 P_SequenceParameters
3.5.3 M_Fct...
A machine is controlled by a number of actuators or mechanisms. Depending on kind and function of this
machine different actuators/mechanisms are used. For each type of actuator exists a control function block
(FB) with its complete control logic, normally consisting of forward and backward action (moving to work and
home position).
In Part 2 of the specification the standard function blocks used in the plant – in the past named zones – are
described graphically (most of used Rockwell-FBs with qualitative description see chapter 7). These are
saved as a function block library in sequence 00 of the DCP standard software together with the function
blocks delivered by the OEMs, e. g. robot, security functions (each actuator/mechanism in a single routine).
This library is to be updated continuously in co-operation with the OEM.
The sequential program consists of a number of successive function blocks copied from the library of
sequence 00 according to the number and type of actuator. Each function block is only configured depending
on the requirements of the machine.
3.5.4 U_SequenceFunctions
The user determines the order to call each function block M_Fct...in the sequence (JSR instructions).
3.5.5 U_SequenceFaults
This routine serves the configuration of sequence-related faults which are monitored continuously but not
step dependent (CM, CMI, start faults, general messages and certain interlock faults (see also chapter
3.3.2).
The start conditions (faults) are tags prepared in S_SequenceMain. The user has to select its fault bits in the
DCP fault table. All entries in the SSZ area of the fault table correspond to conditions that make possible the
sequence start if correct programmed, or they inform the operator what pushbutton must be pressed.
Additionally general messages are specified. These bits are located in the highest bit zone of the fault table
(lowest priority). They have no influence at the machine operation and are free available by the user (see
chapter 2.3).
3.5.6 U_SequenceStepConditions
When a production system requires more than one sequence, part of the program structure has to be
repeated.
The main job of the machine-programmer is to
- Copy the sequence 00 according to required sequences into the task Continuous behind the
program User
- Duplicate the control function blocks M_Fct… as required
- Delete the unused control function blocks
- Increase tag ranges
- Adjust the routines to the machine application.
All used data of the program Sequence is combined in the tag zzSeq[x] of user-defined data type
SEQUENCE_DATA (x = sequence-number).
For the electric monorail system (EMS) whole sequences are completely prepared to control EMS
components as lifter, switches and so on. Normally the user only has to configure waiting function blocks to
combine neighbouring sequences (components) communication of a plant application (see chapter 6).
CONTENTS CHAPTER 4
4. Operating Modes
4. Operating Modes
The Manual mode allows each machine motion to be manually controlled by pushbuttons.
Manual mode relates to a safety area (see chapter 3.3.2).
The DCP program supports six automatic specific (semi automatic) modes:
- Automatic
- Single Cycle
- Step by Step Forward
- Step by Step Backwards
- Manual Lead Thru Forwards
- Manual Lead Thru Backwards.
Only one of these auto/semi modes can be active simultaneously. Automatic mode relates to a safety area
(see chapter 3.3.2).. Other modes are sequence (station) related.
All six modes are true automatic modes although the name of two Manual Lead Thru Forward and Manual
Lead Thru Backwards suggests they could be manual modes. The machine actions are executed on the
basis of the active steps as defined in the sequence and interlock chart. Whenever a restart for the selected
mode is required it is indicated by a flashing start lamp. Depending on the machine the sequence can be
started in each step in all auto/semi modes except the clear line mode (start step is user defined).
In Automatic Mode pressing the start pushbutton will, assuming no faults are present to prevent it, start the
machine running. At the end of one machine cycle the program immediately starts the next. This continues
until the operator intervenes, or a fault occurs.
A production line may used to control automatic operation by central start pushbutton and central stop (halt
end of cycle) pushbutton (see chapter 3.3.1). The local control of an individual subordinated station
(sequence) is possible with station start pushbutton and station stop (halt end of cycle) pushbutton., e. g. to
stop the station in case of fault and to restart after fault is removed.
The user can stop the sequence at step(s) configured by the user.
It is possible that the machine must stop at one or more points in the cycle, for instance for a manual loading
operation. In such a case the operator will not press start pushbutton to restart after he has finished, but
another pushbutton, e. g. a two-handed safety start. As far as the program is concerned, the machine is still
continuously cycling, the sequence is running. Waiting for the operator to indicate completion is essentially
no different from waiting for any other feedback signal.
In Single Cycle, pressing start pushbutton will cause the station to run through one cycle, at the end of which
it will stop until start pushbutton is pressed again.
The last step of a machine cycle can be one or more steps of the sequence configured by the user.
Single cycle mode can be started at each step.
This is a form of operating guiding. With this mode selected the operator can take the machine or station
through its sequence one step at a time.
The start pushbutton flashes and when the operator pushes the button, the action or actions of next
individual step are executed. During an action the start pushbutton lamp remains illuminated and flashes
again at the end of the step to signal the action has completed and that it is ready to execute the next step.
This is identical to the previous mode (StepByStepFwd) except the machine runs backwards through it’s
normal cycle (see chapter 2.5.2).
This is a form of operator guiding where the operator is prompted using flashing pushbutton lamps to execute
each movement required in a complete cycle.
With this mode selected, the program follows the normal machine sequence as if in Automatic but, instead of
energising the outputs to the machine actuators, the program causes lights to flash in the pushbuttons which
would produce the corresponding movements. The operator then can enable these movements (and only
these) by pressing the buttons, even though the machine is effectively in automatic.
This feature is particularly useful for commissioning, for setting the positions of end limits, to get to know the
machine process, etc., because the step function is displayed with its sequence fault before the step and
function will be executed The operator has full control about the movement. The action is only executed,
when the operator presses the corresponding pushbutton.
This is identical to the previous mode (MLeadFwd) except the machine runs backwards through it’s normal
cycle (see chapter 2.5.2).
This sub-mode allows the machine to run without a part present (see chapter 5.3). Some steps in the
sequence may have to be ignored or modified to cope with this situation, as in the following examples:
– Sealant or gluing - these operations must not be performed without a part present, otherwise the
machine may be damaged.
– Welding - this operation shall be performed at a lower welding current.
– Sensing of positions or pressures - some feedback signals, such as sensing the position or depth of a
hole, may need to be ignored. Other signals may have to be monitored for the opposite state to that
expected when a part is present.
This may be initiated locally or passed down the line via the shift register.
This sub-mode is used to clear a multi-station line of parts (see chapter 5.3). The first station will accept no
new parts once the current part is finished, but subsequent stations will continue as normal until they in turn
have processed this last component. Eventually the line is empty, e. g. ready for maintenance work.
NOTE: The need for this feature, and the means of achieving it, depend very much on the machine
configuration. Therefore this mode is partly programmed in the DCP Standard.
When the machine state does not correspond to the displayed step in auto/semi mode, the correct step can
be searched with the help of Re-sequence function (Step Search). Re-sequence may be selected in any
automatic mode providing that sequence does not run. When re-sequence pushbutton is pressed the
machine will automatically increment the counter through each possible step, checking to find if any interlock
faults exist in the current step. If a step is found where no interlock faults exist the process stops allowing the
machine to be started in the selected automatic mode. If no step can be found without interlock faults the
initial step number on pressing the re-sequence button is restored to the counter (see chapter 3.5.1.1).
4.3.1 Manual
Each motion on the machine can be operated using a unique manual pushbutton. This can be used for
maintenance and test purposes, or to re-synchronise the machine state to match the current step number
after a fault. The machine action is executed and displayed as text message when the manual request
pushbutton is on and the corresponding interlock checks defined in the manual cross interlock chart are OK
(see chapter 2.5.1). If the interlock is not ok the action is locked and the caused interlock fault is displayed as
fault message.
The DCP diagnostic display remains active when in manual mode, and shows the CM, CMI, and interlock
faults of the current step according to priority when no pushbutton is pressed.
If the machine position is chaotic (resequence finds no correct step state), the conditions are reported in
order to move the machine into the real state of the current step. If manual movements are now made to
eliminate any fault and afterwards this fault is gone, the display will show only a start condition: "Manual
mode - no start possible". On switching back to Automatic and restarting the sequence it is possible that
some sequence faults may remain, but it is usual for sequence faults to be present until the end of a step.
They are a normal part of the sequence steps, and do not prevent the machine from running.
NOTE. In manual mode all movements are generally allowed so long as they do not cause any mechanical
or personal damage.
Whilst in the manual mode the counter value may be incremented or decremented using pushbuttons
thereby enabling the operator to adjust the counter value matching the current position of the machine.
In the manual mode the counter may be reset to step 1 by pressing the reset button for more than three
seconds.
When the Fixture Reset pushbutton is pressed together with the safety key switch and held on the machine
will automatically return to its initial starting position (datum) providing the function is enabled in the control
function of the actuator (see chapter 5.1.4). The order of Fixture Reset actions corresponds to rising steps.
When the datum position is reached the machine movements stop and the Fixture Reset pushbutton lamp is
illuminated. This function can be started and stopped at user defined step(s).
When the Weld Reset pushbutton is pressed together with the safety key switch and held on the machine will
automatically return to a user predefined position prior to the welding operation providing the function is
enabled in the control function of the actuator (see chapter 5.1.4). The order of Weld Reset actions
NOTE: Weld Reset is the same function as Fixture Reset, this means two applications with independent
datum cycle are possible.
CONTENTS CHAPTER 5
This chapter describes in detail the standard logic used in control function block.
This section looks at the real sequence part and shows the requirements and structure of this functions.
The sequential part of the program SequenceXX (XX = sequence-number) consists of a user selected list of
function-blocks M_Fct... to control the machine. In the routine U_SequenceFunctions the user determines the
order to call these routines per PLC cycle with JSR instructions.
The single functions of the respective control function block control outputs step dependently, monitor the
corresponding inputs and activate the resulting data in the fault table. Data required for a function will have
been decided when planning the software and will be available on the programming (see chapters 2 and
3.5.3).
There is a list of standard control functions that is recommended to the use with a certain type of actuator.
The principle of the control functions are essentially the same. The differences into the rung list are small so
that only the most usual variation is explained here (impulse valve). Actuators not described in the part 2 of
the specification, have to be programmed according to the development rules of the standard control
function.
NOTE: If an interlock fault occurs all M_Fct… routines are scanned again before the I/O update. The
programmer should take this into account with the development of his machine-program.
NOTE: The tag names used in the rung drawings of the following chapters begin with zzSeq[1].. Perhaps the
name is not shown because of too narrow page format.
NOTE: The step flag(s) and the manual interlock check flag have to be configured.
This rung determines the step or steps in which a sequence check is to be performed on the relevant
reaction signals. A sequence check is a step where the output controlled by this function is checked to
ensure that it has reached the position requested by the function.
The sequence check is carried out on different steps depending on which direction the sequence is moving
(backward in manual lead thru or step by step mode).
The timeout detection is active during the sequence check. In some cases the diagnosis should be prevented
for instance waiting of a part from another station (waiting function). In order to close the timeout detection
rung pause step time has to be configured in routine P_SequenceParameters (step flag contact).
NOTE: The step shown here have to be replaced by the step or steps actually required.
This rung determines the step or steps in which the output is to be active .e. g. energised.
In this example the function is active during steps 3 and 6 in forward automatic modes and in steps 4 and 11
in manual lead thru or step by step backwards mode.
Functions which are required to be active for more than one step are described in chapter 5.2.
NOTE: The step shown here have to be replaced by the step or steps actually required.
The standard manual request for a forward motion consists of the pushbutton (zzSeq[1].Button[xx].yy: xx =
manual pushbutton page 1...29 of HMI, yy = Fkey bit 1...10, 11...20) to action a movement (see HMI
specification).
The manual check latches zzSeq[1].ManDiag shown in these branches are used to manually check the
interlocks of reaction signals of other control functions (see chapter 5.1.1). When the other functions
(M_Fct051, work position; M_Fct055, home position) indicate an interlock fault, the fault is displayed and this
movement stops.
If this movement shall carry out in fixture reset mode the contacts FixReset and SeqCheck have to be added
in a second branch. If weld reset functionality is required a parallel branch should be supplemented in the
same way as the fixture reset branch.
NOTE: The P/B flag, the manual check flags, and if necessary the branch of datum has to be configured.
The control functions output may be energised in three ways, in automatic via the step counter, in manual via
a push button request or in the manual lead thru mode.
a) In automatic (1st branch): The sequence runs in automatic and function is active via step.
b) In manual (2nd branch): From the manual request via pushbutton, together with interlock ok and
manual release of movements.
c) In manual lead thru (3rd branch): From the manual request for this function together with manual lead
thru release of movements and function active.
The output is energized in the above three modes provided that no interlock faults have occurred. In the
automatic and manual lead thru modes the interlocks ok check is achieved via sequence ready to start
(Ready) which controls running in automatic (Start) and subsequently both automatic and manual lead thru
release of movements.
In the manual mode branch the interlock ok contact would be dropped out if a manual cross interlock check
of another control function detects a wrong state.
Each push button associated with a manual operation also incorporates a lamp which is used to display
information about machine actions in each mode (zzSeq[1].Lamp[xx].yy: xx = manual pushbutton page 1...29
of HMI, yy = Fkey bit 1...10, 11...20). See HMI specification.
When the output is active the pushbutton lamp flashes to indicate the movement is active.
Whenever all Signals are active the lamp illuminates indicating the position of the machine, in addition the tag
zzSeq[1].InPos[aa].bb will be active. (aa = Function number, bb = same bit used as per the ManDiag bit for
this operation).
NOTE: The signals used to indicate the position of this function should not appear any where outside of this
FB. When they are required (for interlocking between sequences) then the tag ‘zzSeq[1].InPos[aa].bb should
be used.
In manual lead thru: When a step is active the lamp flashes indicating this is the next button to press.
NOTE: The position input(s), the control output contact, and the lamp output shown here have to be
configured.
The 1st rung enables the fault diagnosis depending on the operating modes. The 2nd rung detects the fault
states and controls fault bits.
1st rung:
Automatic modes:
– The function is enabled for the sequence check in the relevant step or steps.(1st branch) and for interlock
check in passive step(s) (3rd branch). See chapter 5.1.1.
Manual mode:
– The 3rd branch checks interlocks of step(s) like automatic modes if no pushbutton pressed (see chapter
5.1.1). The relevant message is shown if state of machine actuators does not confirm with the current
step. If confirm, a start condition reports that the machine can be switched in the automatic mode to start
with the current step.
– If the manual-pushbutton of this control function is pressed, and there is no manual interlock fault, the 2nd
branch activates the diagnosis and reports the current state of the start and target feedback signals via
two fault bits.
2nd rung:
NOTE: The start and end position inputs and the SIZ fault bits shown here have to be configured.
The diagnosis is distributed on 2 rungs in order to simplify the monitoring of several feedback signals of a
control function. In this case only the 2nd rung has to be copied dependent on the number of the signals.
Pair checking should be carried out on critical movements by using both the forward and return limits in
series to control a fault bit in the CMI area of the program.
In some applications it may be necessary to activate a function, interlock check etc. for more than one step.
Rather than use numerous step contacts in parallel it is more convenient to use the LIM instruction as shown
below.
The LIM instruction is circular and will be true whenever the test value is greater than or equal to the low limit
but less than or equal to the high limit. This feature may be used when an interlock requires checking from
step 12 to the end of the sequence and from step 1 to 2 as in the example below.
The following rung shows a control function which is active for the steps 9 to 15.
The Programming Chart has four columns to indicate how the configuration for the modes Dry Run and Clear
Line are to be made. These are labelled 'ACT' and 'INT'. An X under Active indicates that Dry Run or Clear
Line will enable the flags SeqCheck and FctActive, a NX that these flags will be disabled. Similarly, X and NX
in the Interlock column indicate how the flag IntCheck is to be influenced.
A case where an actuator is to remain in its home position can be taken as an example. The function chart
entries would be:
Zone Active Seq Check Int Check Dry Run or Clear Line
description
ACT INT
Head Work 5 5 1,6 NX NX
Head Home 2 2 3,4 NX X
Depending on the type of actuator involved, it may not always be necessary to disable FctActive, particularly
if Dry Run or Clear Line is interlocked so that it can only be entered at a defined point in the cycle. In such a
case the lower left 'NX' (ACT for Home) could be omitted. Even if there is no output programmed in the
control function, both columns may be used. When the FctActive flag is not present, the column "ACT" is still
used to signify changes in the control of SeqCheck. The following rungs show the changes made to the Head
Home and Head Work control function for DryRun.
NOTE: The SeqCheck and FctActive rung have been simplified for clarity.
___________________________________________________________________________________
CONTENTS CHAPTER 6
This chapter shows how control functions in different sequences are interlinked and how
the program should be modified to accommodate production of different parts
On large and complex machines there is often the requirement to subdivide the program into smaller
sections each controlled by a separate sequence. It will be necessary on these machines to interlock the
different sequences to ensure that machine movements do not collide. A typical example may be considered
below, consisting of four stations and interlinked by a transport mechanism.
TRANSPORT
NOTE: The output from the transport function is monitored as an input in the station and visa versa and the
release ready (REL_RDY) contacts are controlled directly by inputs.
TRANSPORT
STATION
On modern production lines it is often necessary for machines to have the capability of producing different
parts.
This may be carried out in the simplest form by the exclusion of a weld or in more complex cases by a
completely different sequence. The methods of achieving these variations are explained below.
In the simplest case this type of change would allow the production of part A or part B and is achieved by
disabling certain outputs together with their associated sequence and interlock checks. A bit known as
variant is controlled by the part selection and used to disable the required items as shown below.
Where big type variations are required major changes in a sequence may result. In order to accommodate
these changes the sequence is split into sub sections.
This arrangement is shown below for three options A, B, and C.
STEP 1
6 6 6
A B C
10 10 10
11
STEP 17
All required actuators/mechanisms are programmed as function blocks M_Fct... in the sequence. The three
options A, B, and C are co-ordinated in Routine U_SequenceFunctions.
The calls of the FBs of steps 1 to 5 and 11 to 17 are realised by unconditioned JSR instructions. The FBs of
steps 6 to 10 (type A, B, C) are called conditionally depending on chosen variation.
According to machine course it is possible that the same actuator again must be used in another variation
with similar conditions. Either, the affiliated FB exists in this case twice; dependent on the variation the one
then as well as the other FB is called, or the same FB is called twice at both of variants, and the difference is
programmed in the FB itself.
NOTE: The output signals of the FB of variant processed finally must be reset before the start of another
variation after requirement, because of JSR condition is false and the FB is not scanned.
In some sequences it is necessary to jump over a number of steps. This is achieved by moving the number
of the destination step to the variable JumpToStep and enabling the bit JumpEnable as shown below.
This rung has to be configure at the Routine U_SequenceStepConditions.
Depending on input flag Example the sequence will jump to step 8 after step 2 is finished.
Following example: Depending on the input flag Example the sequence jumps to step 10 unconditionally
(see routine U_SequenceStepConditions).
CONTENTS CHAPTER 7
This chapter shows the most used control functions needed to cater for different types of
actuators. The principles of control functions was covered in chapter 5, so this chapter does
not go into detail, other than the changes from one to another.
7.1 1 Conventions
7.1 Conventions
The rung diagrams are taken over from the project V184 (PLC5 controller). The descriptions of the
addresses are a little bit different to the tag names of DCP Ccar:
x = Sequence number
yy = M_Fct number
z = Position, 1 = work position, 0 = home position,
Certain conventions are adopted in this chapter to allow the standard control functions to be shown with
minimal confusion. To show all the range of possible variations, such as with/without Interlock Checks, for all
the functions would be confusing rather than helpful. For this reason:
1) All the control functions are shown with Interlock Checks. If any function does not require these, simply
substitute an AFI instruction for the step flags controlling INT_CHK. This is the usual case when a movement
lasts for only one step, retracting immediately when it has reached its work position.
2) In all cases where ACTIVE, SEQ_CHK or INT_CHK are to be on for more than one step, the step flags
are shown in parallel. An explanation of the most economical ways of programming various combinations of
steps was given in Section 5.3. In practice it is to be expected that a mixture of all these techniques would
appear in a program.
3) All control functions show Sequence Checks taking place in the step in which the output is first energised.
Movements which take place over several steps are simply arranged by programming the flags ACTIVE and
SEQ_CHK in separate segments, using the appropriate step numbers.
4) All control functions include the manual lead thru mode, but this is an option and is not necessarily used in
all programs.
5) None of the functions include the optional dry run sub-mode. Section 5.4 explains typical programming
techniques for this option.
6) Most zones show only one feedback signal being monitored, but in some cases two or more signals may
be used to indicate an action being completed. One example of this appears in this chapter, namely the two-
speed motor, and this provides a good example of the correct method to use for multiple feedback signals.
7) Section 5.1.7 discussed the need for pairs checking feedback signals from opposite ends of the same
movement, and how this should be programmed in the CMI. Section 5.1.7 shows standard checks in the SIZ
with the appropriate pairs check in the CMI, which can be relevant to virtually all types of actuator.
Timing diagrams similar to the one below are included in the descriptions. The Steps line only indicates
whether an activity or status lasts for one step or for several. For the feedback signal, a dotted line shows the
duration of the Sequence Check, a heavy line being shown for the Interlock Check (ITLK CHK = interlock
check).
In the rung MAN_REQ of shown control functions the manual P/B is interlocked with the opposite P/B to
prevent switching on the control output, if both of P/Bs are pressed. Depending on the operator terminal and
the interface software the interlock contact can be cancelled (e. g. DCU, PanelView 550 / 900). This is also
relevant for the flag LP_TEST in the rung of lamp control.
Actions over more than one step are named long or protracted moves in the examples.
The functions shown in the examples are guide lines only. It is up to the software writer to satisfy himself as
to the exact functionality of the functions he programs. He must be fully aware of the hardware design and
equipment used to achieve each movement.
Because double-solenoid valves latch mechanically in either of their two positions, they only need to be
energised for one step in each direction, with the intervening steps being used for Interlock Checks. Two
standard control functions are thus required, one for WORK DIRECTION, one for HOME.
Protracted Moves: In the case where ACTIVE is separated from SEQ CHK, in order to program a so-called
Protracted or long move, it is advisable to ensure that ACTIVE is on during all steps between the point where
the motion starts and the point where Sequence Checks start. This is explained in detail in Section 2.5.1.
Programming ACTIVE over several steps for long moves duplicates what happens in the normal case shown
opposite the output is maintained until the feedback signal is received, and can then be switched off. This
makes calculation of load factors for output cards easier, because the outputs are usually both off for the
greater part of the machine cycle. Connecting both coils to the same output card ensures that the loading
factor cannot in any case be greater than 50%.
NOTE that, although the above picture shows a single-acting valve which applies pressure in one direction
only (needing a spring-return cylinder), it is also possible to get double-acting SSVs which automatically
apply pressure in the reverse (e. g. Home) direction when the coil is de-energised. The difference is in no
way connected with the number of solenoids, but depends on the design of the spool.
The control function used for single-solenoid valves, shown opposite, looks almost identical to that used for
double-solenoid valves. The only difference is that, instead of having different outputs for Work and Home,
the coils are LATCHED and UNLATCHED coils for the same output. Using this method the program makes a
single-solenoid valve mimic the action of a double-solenoid type. Pressure is maintained by electrically
latching the coil. The comments regarding long moves for the DSV apply equally to the SSV if this method of
control is used.
Despite the similarity so produced, single-solenoid valves should not be regarded as a cheaper alternative to
double-solenoid types. If the PLC loses power or goes into stop, or if the output fails, a DSV will still maintain
its position. SSVs, in contrast, could under the same conditions attempt to reverse their action. If the source
of pressure is still available, e. g. main air supply, the action could reverse due to loss of electrical supply to
the coil. This is totally dependant on the electrical hardware design. Care should be taken in these cases
with the programming of interlock checks such that no check is made when the valve is in its operating
position.
Three position valves can therefore, like double-solenoid valves, apply pressure in two directions, but they
return to a neutral position when de-energised. If pressure is to be maintained over several steps (e. g.
clamping, lifting etc.) the relevant coil must remain energised. This is the most common mode of use, shown
in the example opposite. The only difference between this type of function and the double-solenoid example
is that ACTIVE is maintained until the last step in which an Interlock Check is required.
In other cases where the pressure need not be maintained (e. g. left-right motion held by shot pin) the
program can be the same as for the double-solenoid valve. Note that it is not practical to assume that this
type of valve will maintain a position without being energised. Even if this is the case when first
commissioned, wear and tear will eventually lead to the spool seals leaking, allowing the controlled cylinder
to creep in one direction or the other if the relevant slide is not clamped.
From the above descriptions it may seem that the three-position valve does nothing which cannot be done
by the cheaper double- or single-solenoid valves. The important difference is, however, that three-position
valves can stop cylinders (ignoring creepage) between the two ends of their traverse. This is useful for slides
which have one or more mid-positions to be catered for, but is also particularly important for safety reasons.
If a cylinder controls a movement which could be dangerous to an operator, and if that movement is
protected only by guard which can be physically violated (e. g. light curtain), then the movement must stop
instantly if the barrier is broken. DSVs and SSVs will either continue the movement or reverse it if the
sequence stops due to removal of the AUTO REL signal. In this case the three-position valve is the only type
which will fulfil the safety requirements. There would not be an Interlock check used in this case. Three-
position valves should never be controlled by LATCH and UNLATCH commands if they are being used for
safety purposes as described above.
The principal difference between the control of valves and of motors is that, whereas cylinders can be
allowed to stall at the end of their stroke, motors must stop as soon as the feedback sensor trips. For this
reason a contact of the REACTION signal is inserted in the rung controlling the ACTION (output).
For a single-speed motor, the program is identical to that for a double-solenoid valve, apart from the contact
of I/P WK in series with O/P WK (similarly for Home). The effect of using a motor is there is no permanent
pressure attempting to maintain the end position once it is reached. Movements controlled by motors often
need to be clamped when in position, and can also stop at mid-positions.
In some cases contacts of the limits I/P WK and I/P HM may also be externally connected in series with O/P
WK and O/P HM (the corresponding outputs), to ensure positioning is as accurate as possible. With long
PLC cycle times the difference between seeing a limit the instant it trips and not seeing it until almost a cycle
later can produce a significant error in the final position. Connecting a contact of the limit directly in series
with the output means that the motor always sees it immediately.
The limit switches I/P WK and I/P HM have normally-open contacts because, in most cases, it is undesirable
to have the movement terminate too early in the event of a wiring failure. Separate over-travel limits, which
should have normally-closed contacts, are used to protect against mechanical damage if a fault causes the
normal end limit to fail. These and other protective devices such as overload trips are Constantly Monitored
signals, but may additionally be hard-wired externally to ensure full protection even if the PLC fails to
respond to them.
The output O/P RP, for rapid traverse, is controlled without any reference to step numbers, since it can only
be on during steps in which one of the slow outputs is energised. This segment must appear at the end of
the control function.
The limits for rapid have N.C. contacts, so the motor defaults to slow in the event of an open-circuit fault,
reducing the risk of overshooting. The programmed contacts monitored for the fault table bit are therefore
normally-open for the rapid limits, in contrast to the usual N.C. arrangement for final position limits. All four
feedback signals are individually monitored by the fault table, to ensure that both the rapid and the slow
limits have been tripped before the sequence can step on. This reduces the chances of overshooting in the
event of a short-circuit fault in the rapid limit circuit.
The timing Diagram. below only shows action in one direction. Home is similar to work direction
As there is no output for this control function, there is no need to control the ACTIVE flag. The segments for
Manual Request, Control Output and Push-button Lamp are also omitted.
Despite the lack of an output, however, the segment for Manual Diagnostics is still included. It is possible
that the operand being monitored could inhibit some other movement in Manual, and the fault table bit for
this signal must then be turned on if the other move is attempted. The need for the MNCHK is determined on
the planning charts the same as any standard zone.
Unlike normal position sensors, it is not possible to make a general statement as to whether a normally-open
contact would provide safer arrangement than a normally-closed. The decision rests on what happens in the
next step of the program. This means that the contact programmed in rung 3 may be either N.O. or N.C.,
depending on the application.
As with all other control functions, the AFI instruction can be used to control INT_CHK if no Interlock Checks
are required.
¦ STEP B SEQ_CHK ¦
¦-----] [-----------------------------------( )-----¦
APPENDIX
Routine Listing
Tag Listing
Listing of Cross Reference Table
Listing of Data Types