You are on page 1of 19

Copyright 2008 Rockwell Automation, Inc. All rights reserved.

PSLogIx 5000
VersIon17 Advanced
tIps trIcks
Lesley Van Loo Commercial Engineer - Logix/NetLinx
Pavel Matejka Project Engineer
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 2
IntroductIon, SessIon Agenda
1. Introduction
2. Partial import / export
3. XML export / decorated data
4. Produced / Consumed status flag
5. V17 handy features
6. CLX multitasking
7. Firmware Management
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 3
Program PoutIne PartIaI Import l Export
V17 provides ability to export Programs, Phases,
Routines, AOIs, UDTs, String Types and Trends.
Similar to the V13 LD Rung Partial Import/Export
Includes support for FBD, SFC and ST
The export .L5X file includes all pertinent information
Program configuration, code, user defined data-types,
tags and descriptions
XML formatted ASCII text file
Distribute code separately from the RSLogix 5000
Project .ACD file
The file can be manipulated and even created by other
tools
Create larger libraries of reusable code
Provides more control over the scope of what will be
extracted from the project
Useful for larger machine, cell or unit control
Promotes standardization and reuse
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 4
PuntIme partIaI Import
V17 Provides ability to import Programs, Routines
and NEWAdd-on Instructions on-line with a running
controller
NEWprograms, routines and add-on instructions can be
added
Existing Programs and routines can be replaced
New tags and UDTs are created as needed
Name collisions are detected automatically and user
prompted to rename or bind to existing components
The data values in the controller are maintained and new
tags will have their values initialized from the import file
Changes or additions to a project can be completed
offline and then imported into a running controller.
...vs. on-line editing where you must be connected and tags
needed to be created manually (= time-consuming for large
edits)
.L5X File
Program
Routine
NEW Add-on
Instruction
User-Defined
Datatype
Tags
Data
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 5
Import ConfIguratIon dIaIog
Provides a listing of all (referenced) components which will be imported and whether they
conflict with existing components already in the running project.
Allows you to resolve conflicts when collisions occur.
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 6
huItI-user edItIng: offIIne export l Import
Engineering collaboration is facilitated in that many engineers can work, on one or more
of the project components, independently offline and then merge the changes into a
single project by using import.
Two ways of handling a project with engineering collaboration:
Working with a base project and update the base file on a time or change base (see next).
Programmers keeps working on their own project and regularly update it with modifications other users
make and distribute (export L5X files).
Considerations with multi-user editing:
Partial Import/Download (rungs, routines, programs, equipment phase, UDTs, AOIs, strings, trends).
Security (avoid others to change the components you are working on)
Define working area references
Impact of changes (when to merge projects)
Tag naming (name collisions are detected on import)
Aliasing (program now and link afterwards)
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 7
huItI-user edItIng usIng base project
Programmer 1
Programmer 2
Programmer 3 Base
.ACD
file
Copy
base
file
Copy
base
file
Copy
base
file
Changed
.ACD
file
Changed
.ACD
file
Changed
.ACD
file
Compare
Copy
base
file
Changed
.ACD
file
Programmer 4
Import only
differences
into project
The project of programmer 4 is used to merge all
changes of the other programmers in. This will become
the new base project which gets distributed again.
1
2
3
5
6
Diff.
files
(L5X)
Diff.
files
(L5X)
Diff.
files
(L5X)
Export
4
Export
Export
1. Copy base file to each programmer (in this case 4 programmers).
2. Each programmer copies the file and makes his changes.
3. After changes, compare projects with the local copy of the base file to check what has changed and to ensure no changes will
be forgotten to export. Comparing to the local file gives the programmers the opportunity to work independent.
4. Export the changed code to L5X files. Only these files (differences between the projects) needs to be imported into the final
project. There is no need to import all programs! Keep in mind that also rungs can be exported still containing all references.
5. When all changed code is gathered into L5X files, these files can be imported into one project (in this case of programmer 4).
This doesnt always have to be the same project file. Depending on what has changed (motion, safety, consumed/produced
tags, hardware ), another changed project can be used to import all the changes into. This could be handled by one person.
6. When all changes are merged into one project, this project will become the new base file and can be copied again.
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 8
ImportlExport trough XhL based ".L5X" fIIe
Extends RSLogix 5000 to support
import/export of a FULL project to an
XML formatted file
Contains: processor / I/O / motion
configuration, application logic, data /
structures / tag definitions, comments and
descriptions
Similar to ASCII Text L5K file but uses an
XML Scheme
Open and fully documented in publication
1756-RM084
Useful for enhancing development
productivity
Manipulate application source using text
editing tools
Build tools to auto-generate projects (VB,
C-code,)
Extract / merge code fragments to build
new projects (also IO)
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 9
0ecorated 0ata Support In "L5X"
ImportlExport FIIes
XML import/export files (L5X) have
been augmented to explicitly show
tags and tags members values
Applies to the following XML outputs:
Entire project
Programs
Routines
Phases
Add-On Instructions
Ladder diagram rung Import/Export
Useful for enhancing development
productivity
Manipulate application source and tag
data using text editing tools
<Tag Name="PIDE_01" TagType="Base" DataType="PID_ENHANCED">
<Data>01 00 00 00 00 E0 04 00 00 00 00 00 00 00 C8 42
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 C8 42 00 00 00 00 00 00 80 3F 00 00 80 3F
00 00 80 3F 00 00 80 3F 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 C8 42
00 00 00 00 00 00 C8 42 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 40 9A 44
00 E4 40 46 4E 61 3C 4B 00 00 00 00 FF FF 7F 7F
FF FF 7F 7F FF FF 7F FF FF FF 7F FF 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 FF FF 7F 7F
FF FF 7F 7F FF FF 7F 7F FF FF 7F 7F 00 00 00 00
00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</Data>
<Data Format="Decorated"><Structure DataType="PID_ENHANCED">
<DataValueMember Name="EnableIn" DataType="BOOL" Radix="Decimal" Value="1"/>
<DataValueMember Name="PV" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="PVFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVEUMax" DataType="REAL" Radix="Float" Value="100.0"/>
<DataValueMember Name="PVEUMin" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPProg" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPOper" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPCascade" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPHLimit" DataType="REAL" Radix="Float" Value="100.0"/>
<DataValueMember Name="SPLLimit" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="UseRatio" DataType="BOOL" Value="0"/>
<DataValueMember Name="RatioProg" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="RatioOper" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="RatioHLimit" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="RatioLLimit" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="CVFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVInitReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVInitValue" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVProg" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVOper" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVOverride" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVPrevious" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVSetPrevious" DataType="BOOL" Value="0"/>
..
<Tag Name="PIDE_01" TagType="Base" DataType="PID_ENHANCED">
<Data>01 00 00 00 00 E0 04 00 00 00 00 00 00 00 C8 42
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 C8 42 00 00 00 00 00 00 80 3F 00 00 80 3F
00 00 80 3F 00 00 80 3F 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 C8 42
00 00 00 00 00 00 C8 42 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 40 9A 44
00 E4 40 46 4E 61 3C 4B 00 00 00 00 FF FF 7F 7F
FF FF 7F 7F FF FF 7F FF FF FF 7F FF 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 FF FF 7F 7F
FF FF 7F 7F FF FF 7F 7F FF FF 7F 7F 00 00 00 00
00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</Data>
<Data Format="Decorated"><Structure DataType="PID_ENHANCED">
<DataValueMember Name="EnableIn" DataType="BOOL" Radix="Decimal" Value="1"/>
<DataValueMember Name="PV" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="PVFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVEUMax" DataType="REAL" Radix="Float" Value="100.0"/>
<DataValueMember Name="PVEUMin" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPProg" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPOper" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPCascade" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPHLimit" DataType="REAL" Radix="Float" Value="100.0"/>
<DataValueMember Name="SPLLimit" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="UseRatio" DataType="BOOL" Value="0"/>
<DataValueMember Name="RatioProg" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="RatioOper" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="RatioHLimit" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="RatioLLimit" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="CVFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVInitReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVInitValue" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVProg" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVOper" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVOverride" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVPrevious" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVSetPrevious" DataType="BOOL" Value="0"/>
..
Decorated data
new for V17
PIDE tag
example
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 10
ProducedlConsumed Tag Structures Status
With v17, users will be able to include
status information when
producing/consuming tags
P/C tags must be structures
First structure member must be of datatype
CONNECTION_STATUS; this datatype
includes:
RunMode
ConnectionFaulted
Provides for easy data quality
validation by accessing
included status data
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 11
PSLogIx ArchItect v3.0
Is included in RSLogix 5000 Professional
Redesigned and refined user interface
Elimination of a separate configuration mode;
replaced by Controller View
Undo/Redo
Improved Produce/Consume tags view for
easily setup of producer-consumer tag
relationship
FactoryTalk Security Support
Automatic Sync of projects on start-up
L2X controller support
Centralized Library Management of AOIs and
structures
Populate from RSLogix 5000 projects or RSLogix
Architect Controller View
Facilitates standardization and simplifies reuse to
reduce development cost
Drag and drop AOIs and UDTs between the library
and RSLogix Architect Controller view
Project Search
Search ALL controller projects in Architect for tags,
instructions, AOIs, UDTs, etc.
All of the references are logic references.
Filter options
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 12
ComIng soon - PSLogIx ArchItect V3.5
Expected Summer 2009
Revision Management
Keep track of where an AOI is being used
Automatically deploy new versions (projects are selectable).
Generic modules support
Not supported modules will be imported as generic modules with configuration.
Print search results
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 12
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 13
V17 handy features
Forcing and Toggle Bit Added to Quick Watch
Window
In this version of RSLogix 5000, we have ported
the Force Mask available in the Tag Monitor
dialog also into the Quick Watch window
Additionally, we have added the ability to toggle
bits in the Quick Watch window
Improves ease of use and reduces steps
required to force and toggle tags
Off-line Partial Import of Modified UDT with
Data Preservation.
Data values UDT will be maintained when
inserting/ adding/ deleting/ rearranging/
renaming/ changing data type of members
Data values for members renamed and moved
will not be maintained
Improves user experience by allowing easy UDT
maintenance off-line
Added member leaves existing
data values unchanged
Updated UDT
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 14
V17 handy features
Tag Monitor Enhancement
Alarm Grid Display Mode for ALARM_DIGITAL
and ALARM_ANALOG datatypes.
Special grid display was already available for
Timers, Counters, Strings and Arrays of type
BOOL, SINT, INT and DINT.
LD Instruction Parameter Display Optimization
Options
Include* / hide instruction description line
Show instruction parameters in a flat list* or
inputs left and outputs right
Control when left/right presentation is used for
AOIs or all instructions
Animate Boolean tags via highlighting or via
separate value*
* default setting
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 15
CLX muItItaskIng overvIew
CPS (Copy Synchronize), UID, UIE (User Interrupt Disable/Enable) and IOT (Immediate Output) change the
multitasking
System Overhead Time Slice
The time the controller spends on CPU overhead (running its background tasks like communications,
messaging, ASCII) is relative to the time it runs the continuous task.
It is given by the Systen Overhead Time Slice (default 20%)
The minimum allotment of execution time is 1 msec.
Motion
Planner
Event
Periodic
Continuous
CPU
Overhead
Event Task Delayed
by Motion
Periodic Task Delayed
2 msec by Motion and
Event Task
Continuous
Task Restarts
10 20
30 40 50 60 70 80
Continuous
Task Restarts
90 100
Overhead Delayed 2
msec by Motion and
Event Task
= Suspended Task
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 16
CLX muItItaskIng
No continuous task can mean less overhead for task switching
Event tasking can synchronize execution to RTS (real time sampling) or
RPI (Requested Packet Interval for I/O)
Motion
Planner
Event
Periodic
Continuous
CPU
Overhead
10 20
30 40 50 60 70 80 90 100
= Suspended Task
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 17
CLX huItItaskIng
Minimize number of tasks
Use as many different priorities as possible to avoid timesharing:
multiple tasks with the same priority will run in 1ms time slices switching between
the tasks until they have completed execution
task switching also costs execution time
Do not unnecessarily execute code
use conditional JSR or inhibits
Use GSV/SSV to do in code what you can also do in RSLogix
Avoid / dont abuse task overlaps
Copyright 2008 Rockwell Automation, Inc. All rights reserved. 18
ControIFIash V7.0 - SImpIIfIes FIrmware
hanagement
Allows ControlFlash to run with no GUI
Reduce training requirements of technicians
Improve time to commission a machine or
performing field upgrades
Command Line Execution
Allows command line execution of
ControlFlash for simple Batch File flashing or
custom VB app
Script Execution
Allows creation of an ASCII script for
ControlFlash to follow when commissioning or
upgrading a machine
Script lists the Modules to flash, firmware revs,
and path requirements
Multi- Threaded to allow ControlFlash to flash
up to 5 modules simultaneously for improved
performance
Success/Fail Programmatic Feedback
Return strings for command line execution as
well as History Log file for interrogation of
success/fail flash events
Example of
custom VB
application
Copyright 2008 Rockwell Automation, Inc. All rights reserved.
Thank you for
partIcIpatIng!
Questions?

You might also like