0% found this document useful (0 votes)
43 views

TechED 2018 - CL20 - Studio 5000 Application Code Manager

Uploaded by

chinitomelian
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

TechED 2018 - CL20 - Studio 5000 Application Code Manager

Uploaded by

chinitomelian
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 272

Studio 5000® Application Code Manager Lab

For Classroom Use Only!


Important User Information
This documentation, whether, illustrative, printed, “online” or electronic (hereinafter “Documentation”) is intended for use only as
a learning aid when using Rockwell Automation approved demonstration hardware, software and firmware. The Documentation
should only be used as a learning tool by qualified professionals.

The variety of uses for the hardware, software and firmware (hereinafter “Products”) described in this Documentation, mandates
that those responsible for the application and use of those Products must satisfy themselves that all necessary steps have been
taken to ensure that each application and actual use meets all performance and safety requirements, including any applicable
laws, regulations, codes and standards in addition to any applicable technical documents.

In no event will Rockwell Automation, Inc., or any of its affiliate or subsidiary companies (hereinafter “Rockwell Automation”) be
responsible or liable for any indirect or consequential damages resulting from the use or application of the Products described in
this Documentation. Rockwell Automation does not assume responsibility or liability for damages of any kind based on the
alleged use of, or reliance on, this Documentation.

No patent liability is assumed by Rockwell Automation with respect to use of information, circuits, equipment, or software
described in the Documentation.

Except as specifically agreed in writing as part of a maintenance or support contract, equipment users are responsible for:
• properly using, calibrating, operating, monitoring and maintaining all Products consistent with all Rockwell Automation
or third-party provided instructions, warnings, recommendations and documentation;
• ensuring that only properly trained personnel use, operate and maintain the Products at all times;
• staying informed of all Product updates and alerts and implementing all updates and fixes; and
• all other factors affecting the Products that are outside of the direct control of Rockwell Automation.

Reproduction of the contents of the Documentation, in whole or in part, without written permission of Rockwell Automation is
prohibited.

Throughout this manual we use the following notes to make you aware of safety considerations:

Identifies information about practices or circumstances


that can cause an explosion in a hazardous environment,
which may lead to personal injury or death, property damage, or economic loss.

Identifies information that is critical for successful application and understanding of the product.

Identifies information about practices or circumstances that can lead to personal injury or death, property
damage, or economic loss. Attentions help you:
• identify a hazard
• avoid a hazard
• recognize the consequence

Labels may be located on or inside the drive to alert people that dangerous voltage may be present.

Labels may be located on or inside the drive to alert people that surfaces may be dangerous temperatures.
Studio 5000 Application Code Manager
Select Topic of Interest

Contents
Before you begin ........................................................................................................................................... 4
About this lab .................................................................................................................................................................................... 4
Tools & prerequisites ........................................................................................................................................................................ 4

Lab 1 – Explore a Sample Project ................................................................................................................ 5

Lab 2 - Creating a New Library Object ........................................................................................................ 50


Lab 2 – Extra Credit Bonus Material ............................................................................................................................................. 106

Lab 3 – How to add FTViewSE Content to an Existing Object ................................................................. 124

Lab 4 - How to add FTHistorian Content to an Existing Object ................................................................ 165


Lab 4 – Extra Credit Bonus Material. ............................................................................................................................................ 180

Lab 5 – Reconstitute a Library Object ....................................................................................................... 185

Lab 6 - Command Line Console ............................................................................................................... 191

Lab 7 – Creating a sample Process Project from Scratch ........................................................................ 202

Lab 8 – Creating a sample Motion Project from Scratch .......................................................................... 247

3 of 272
Before you begin

About this lab


Attendees can choose Studio 5000 Application Code Manager (ACM) topics that are of the most interest in a free form
environment. Available topics include: Introduction to ACM using an existing project, creating a new library object, creating a
new ACM project from scratch, exploring new product features sections (i.e. command line interface, re-constituting ACD) and
an advanced topic section to cover features such adding FTViewSE visualization objects to a library object and more.

Tools & prerequisites

Software
 Studio 5000 Application Code Manager (ACM) 2.21
 Logix Designer V30 and V31
 Logix Emulate V30
Hardware
 No Logix hardware is required for this lab
Lab Files
 The files required for this lab have been placed on the desktop of the ACM image.

 (RA-LIB) Machine Builder Library


 (RA-LIB) Process 3.5 Library
 Examples Library
 Existing FTViewSE “Template_Process_ACM” application
 Existing Logix Designer “myValve.ACD” project
 “Existing_COP” Configured ACM project

4 of 272
Lab 1 – Explore a Sample Project

This section will review how to quickly build your automation projects using reusable code stored in libraries. See how
configuration, not programming, is used by selecting library objects (control modules, equipment modules, etc.) and providing
configuration data, such as object name and descriptions, equipment set points, control interlocks, etc., required for your project.
Once all the configuration, not programming, is provided the project will be built (ACD file) which can be downloaded to a
controller.

Launch Application Code Manager (ACM)

The following window appears.

Note:
By default it opens the last opened project, which in this case is Existing_COP.
It also gives a notice that this project contains library objects that are unpublished. This means the library
object is still in development and has yet to be finalized. The library is in ‘edit’ mode.

5 of 272
Click OK to acknowledge the message.

Expand the Examples folder of the Registered Libraries.

Notice the wrenches that are present. These indicate the library objects are in edit mode and are pending
finalization.

Click on the COP library object and the details will appear in the middle window.

Note that the catalog number “COP”, located in the “Examples” solution library, version 1.0 is listed as
Pending.

6 of 272
Expand the (RA-LIB) Process 3.5 library, you will see that the Process Controller does not have a wrench.

This indicates that there are no pending edits. The Catalog Number confirms that this is a published library
object.

Expand the project content in the Class View so that you can see the various components.

Library Object
(Class) with
Version

Specific instances of
the Class library
object

7 of 272
Controller Preview shows what content will be generated in the final ACD from the configured Class View
library objects.
Class View shows all the configured library objects as well as all the instances. Looking at the Valve in the
Class View shows five (5) instances of the valve object.

Click on the CLX library object in the Class View to see the associated parameters in the middle window.

Click in the size selection box “17” to show the dropdown button. Use the dropdown to see the possible selections.

8 of 272
Do the same with the Software Revision. Keep the selection at “v30”.

Notice that the shortcut paths for View SE and View ME are specified. This is required when ACM generates
the HMI content since the shortcut path is required as part of the HMI addresses.

Example:

View SE Global Object Addressing

9 of 272
The historian needs the shortcut too, but also needs RSLinx Enterprise and the application. This is the fully
qualified path.

Click on XV100 in the Class View to see Parameter details of this instance.

10 of 272
Note the task and program where it is located, you can confirm this by looking at the Controller Preview.
Also, notice when XV100 is highlighted. In the controller preview there are boxes around the MainRoutine
and XV100 routine. This indicates that this content is coming from the XV100 library object.

Looking further down the project tree you can also see the associated Add-On Instructions and Data Types.
This is a nice feature …..

11 of 272
Turning our attention to the middle window, we can see the configuration details for this instance of the
object.

Options: - There are options associated with limit switches (LS), Interlocks (Intlk), Permissives (Perm) and
statistics (Stats). It appears that XV100 does not have limit switches, interlocks or permissives, but the
project does have HaveStatsObj to see the statistics related to this valve.
Alarms: - No alarm options have been selected.
Historian Configuration: - There are Historian points associated with this valve and they have been
selected. Sts stands for status, meaning is the valve opened or closed. The second historian point keeps
track of faulted status.
HMI Configuration: - There are both View SE and View ME displays associated with this object. We will
concentrate on the View SE displays. We set it up so the orientation is up, this is the P_ValveSO option. The
naming is based on the View GlobalObject.
P_ValveSO=up, P_Valve_SO1=down, P_Valve_SO2= right and P_Valve_SO3=left.
The correct orientation can then be selected and placed on any appropriate P&ID display for the operator.
All of these parameters are have been specified by the creator of this library object, or commonly referred to
as the “Librarian”. The Librarian dictates all aspects of the library object such as parameters, Logix content
to include routine language used (Rung Ladder Logic, Structure Text, Sequential Function Charts, Function
Blocks and Sequence Manager), Visualization content, etc..

12 of 272
Click on LT100 and examine the parameters associated with it.

Click on COP01, which consists of a set of control modules.

13 of 272
Click on the Linked Libraries tab.

If we were doing this for the first time, we would click and use the pulldown to see what options we
have.

Click on the first row and using the pulldown, select Link to Existing Instance.

14 of 272
It will then show you all the existing valves that you can choose from.

Click on Cancel at the bottom of the window.

What if we needed to create a new valve?

Again use the dropdown, but this time select the Create New Instance option.

15 of 272
Now the Object Configuration Wizard appears.

Let’s create a new Valve XV200.


Notice that in this case the “Water Valve” description has been automatically set for you.

Insert the Name and Location (Task and Program).

16 of 272
We can set the parameters as needed. In this case, the only parameter we are going to change from the
defaults is SEAssocDisplay located under HMI Configuration.

Click the row for SEAssoc Display and then click on ellipsis .

Select FTViewSE Server in the middle window. Click the Displays tab on the right pane, select Valves.

Click the Finish button. The window should look like this.

Go ahead and click Finish to create the valve.

It’s very easy to add and configure additional objects.

17 of 272
The COP Linked Libraries window should look like this.

Click Apply Changes to save change to COP01.

18 of 272
Again, as we noted before, if you select an object in the Class View all associated objects in the Controller
Preview are identified.
It also works the other way around. If you select something from the Controller Preview it will identify the
associated objects in the Class View.

Click on P_Alarm to see what class objects are associated with P_Alarm into our controller.

Let’s generate the ACD file for our controller. Right click on CLX and select Generate Controller.

19 of 272
Click on the Generate button. Note that we will save this to the Logix Folder on the desktop.

It will take a short period to generate the ACD file.


Notice the ACM Project Data box. It is checked by default for V27 and greater. The checked box indicates
that the library information will be stored as part of the ACD file.

TIP: Under Tool > Setting, you can change the default selections

20 of 272
Once you get a status of CLX.ACD file Successful, click Close.

Go to the desktop folder “Logix” and open the CLX project.

21 of 272
Compare the generated project with the Controller Preview in ACM. They should be roughly the same.

NOTE: Logix Designer organizes the routines alphabetically A-Z, however, ACM organizes by the Jump-to-
Subroutine (JSR) order. This is useful in cases where you need to ensure a certain order execution in your
logic.

ACM display order = Logix Designer JSR Order

Now let’s take a closer look inside of our Logix Designer project.

22 of 272
Open up each of the MainRoutines.

Notice that ACM automatically puts in the appropriate JSRs.

ACM can generate content for any Routine types (Ladder Logic, Function Block, Structure Text and
Sequential Function Charts.
SequenceManager is also available if using v30 Logix or higher

Open COP01 to see the logic.

23 of 272
Feel free to browse through the routines.

All the appropriate transmitters and valves are included and addressed correctly in the logic as shown in the
next two pictures.

24 of 272
Launch Studio 5000 Logix Emulator (located on the desktop)

Minimize Logix Emulator

Next, using Studio 5000 Logix Designer, go ahead and download the project to the Emulate controller.

25 of 272
Put the controller into RUN mode if it isn’t already running.

26 of 272
Minimize Logix Designer and close the Logix folder.

What have we done so far?


• Opened an existing ACM project and modified it slightly by adding a different valve to COP01
• Explored the parameters of the existing Examples library
• Generated an ACD file for this project and downloaded it
Back in ACM, In the System View, expand the HMI folder as shown and select FTViewSE Server.

27 of 272
Select the Displays tab.

There are four different displays associated with this project.

Right click on FTViewSE_Server and select Generate Displays > All Displays.

28 of 272
Select the folder called FTView and click OK.

Click OK for Generation Complete.

Open the FTView folder on the desktop.

29 of 272
Notice that four display xml files were created. Also note that a BatchImport file was created. The
BatchImport file will allow us to bring in the displays all at once instead of having to bring them in individually.

Open FTView Studio by clicking the Factory Talk View Studio Icon in the Start Menu or Desktop.

Select View Site Edition (Local Station) and Continue.

Note: ACM generated the displays for FTView, and these will need to be imported into the FTView SE
project.

Open the lab project Template_ProcessLib_ACM.

30 of 272
Right click on Displays and select Import and Export.

Select Import graphic information into display and click Next.

31 of 272
Select No to backup and click Next.

Select multiple displays and click Next.

32 of 272
Click on the ellipsis button to select the batch import file.

Select the BatchImport file we just created and click Open.

Click Finish.

33 of 272
Close this Display Import summary.

34 of 272
Expand the Displays folder in FTView Studio and double click on AIns to open this display.

The faceplate were created for both LT100 and TT100. The Engineer would then select the graphic they
want and copy it onto an operator display.

35 of 272
Double click on the Motors display.

All the motor graphics are provided.

Open the Valves display.

All the valves graphics are provided.

36 of 272
Open the COP01 display.

This created a complete graphic for the COP01 system.

Right click on the Water Supply XV200 valve and select Global Object Parameter Values.

37 of 272
The values are configured to the appropriate tag and path.

Click OK to close this window.

We have already created a client for you.

Launch the client by clicking the Client button and then clicking Run.

38 of 272
The client is setup to open the COP display. Note that all the objects are communicating to the appropriate
tags in the controller.

39 of 272
Click on LT100 to bring up its faceplate.

40 of 272
Open the faceplates for the recirc pump and any of the valves.

41 of 272
Double click on the Start button to run the procedure.

The sequence starts running, but is “stuck” there since LT100 level is zero. The sequencer is waiting for the
tank level to be at a minimum of 75% filled.

42 of 272
The following are optional steps if you wanted to simulate the Clean-Out-Place system, you can skip the
simulation by going to the next section which will be FTHistorianSE_Server

Go to the LT100 faceplate.

Go to Maintenance mode by navigating to the maintenance screen and clicking the Request Maintenance Mode button

43 of 272
Go back to the Home screen.

Substitute a value of 80 by first clicking on the arrow for Use Substitute Value and then clicking in the Substitute PV field.

44 of 272
Enter 80 and click OK.

The sequencer will advance now to Step 2 which is an Add Caustic step, the caustic valve (XV104) will open
along with the recirc valve (XV101) and the pump (MT100) will begin running.

45 of 272
Once the caustic has been added, the sequencer will advance to step 3 which is Wash step

But our timer is not moving. Why?


The timer starts once we are up to temperature. Since we did not build in a simulation, you will have to
substitute in a value of 185 for TT100. Once you do that the timer will begin to countdown.

Enter a value of 185 for TT100. Don’t forget to go into Request Maintenance Mode.

46 of 272
We are doing this to demo a working faceplate and code generated by ACM! The timer will now count down
and will move to the next state. Feel free to explore this fully functional faceplate.
Let’s go ahead and generate content for Historian.

Close out of FTView and navigate back to ACM.

What have we done after generating the ACD?


• Generated displays associated with COP01 which includes all the required control module global objects
• Generated a batch import file to allow us to bring all the displays into our View SE project with one import
• Imported the displays into our View SE project
• Checked that the display objects were correctly tied to the AOIs in the ACD via the global object parameter values
• Explored/tested the functionality of the control module faceplates and the COP01 logic

47 of 272
Expand Historian all the way. Right click FTHistorianSE_Server and select Generate Historian -> All Controllers

Go ahead and save the file to the Desktop.

Once the generation is complete, open the file via the Desktop.
Note: Microsoft Excel does not need ot be activated to view this file.

These are all of the tags that can be directly imported into FactoryTalk Historian. We will not be using
Historian in this lab, but we can see that tags that are available to it.

48 of 272
Close the spreadsheet.

What did we do after creating the ACD file?


• Generated associated displays
• Imported the displays into a FTViewSE project
• Tested the displays
• Generated associated Historian tags

That completes this lab section

49 of 272
Lab 2 - Creating a New Library Object

The slide above shows the design and publishing portions of ACM.
For this section, we will primarily focus on steps 2 and 3 using material from step one that has been created
for us.
Step 1: Create content to be libraried
In this lab the base Logix control code will be provided

Step 2: Group and Parameterize Library Content


In this lab we will parameterize the library content to make it very usable/flexible

Step 3: Publish (Test and then finalize)


This lab will exercise publishing the library

50 of 272
Open myValve.ACD file in the Lab Files folder.

Open the Valves routine.

Simple logic consisting of the P_ValveSO AOI from the Rockwell Automation Library of Process Objects. It
has a tagname of myValve and a description of myDescription. The control output tag element is
myValve.Out. We will tie this to a real output using myValve_Out.
The Local 1:O.Data0 I/O location is really just a placeholder.
We have decided to use an Alias for the I/O location. You don’t have to use an alias, we just opted to do so.
So our library object will include these routines, Add-On instructions, Data Types, tags, etc.

51 of 272
Launch the Library Designer by right clicking on the Controller myExample and selecting Plug-Ins -> Library Designer.

The Library Designer window opens.

52 of 272
Expand the Task folders as shown:

Click on the dropdown for Inclusions:

Add Children: This means that all sub-folders and sub items are included when an object is selected. In
this case if we select myValve the Parameters and Local Tags, MainRoutine and Valves routine will all be
included.
Add Dependencies: This means that all associated items such as Add-On Instructions, Data Types, and
Controller Tags are automatically included.
Allow Shared Ownership: This means ACM will allow Logix content to be shared amoung library objects
such as Add-On Instructions and Data Types. If not checked, ACM will prevent AOIs and UDTs sharing.
Container Mode: This means that all Logix content will automaticlaly be added to the container type.
Container types are Task, Program and Rouitnes.

We do want all the Inclusions. Check them all to be on.

53 of 272
Drag the myValve folder from the Selected Objects window and drop it on the Libraries folder of the Library Objects window.

A window for creating a new library item is opened.

54 of 272
Let’s start by giving it a Catalog Number and Description as shown:

The Catalog Number is the name we are giving the object.

The following are some of the attributes that are selectable:

Library Type: Pick ControlModule.

Solution: This is user defined. Type in “Examples”.

Solution is the name of the library we are creating/using

Content Type: This gives you a granularity is how you what to define the library object. Select Routine for our example.

Routines can be added to Programs. Programs can be added to Task. Tasks can be added to the
Controller.

55 of 272
Category: Use the dropdown to select the most meaningful category for the object. Select Valve.

The Instantiation section allows you to give a default name and description for the object when it is dropped
into a project. This makes sense when you are only going to create a few instances. But if you are going to
create many instances, then having a default name just means you have many name/description changes to
make. We will leave these fields blank.

Remove myValve as the Instantiation name.

Substitutions: This is where you define the Search and Replace capabilities of the object. We will leave it as
shown: NOTE: additional substitutions can be applied using the “Substitution” Tab

56 of 272
Click OK to create the new object.

Click OK to the Warning notice.

57 of 272
Expand the Libraries folder and then the myValve folder to see the content.

Click on the Routines folder.

Since we defined this library object Content Type as Routine (above), observe that, just as the Warning told
us, there are only routines. The task and program folders have been removed.

58 of 272
Click on the Controller Tag myValve to see the details for the tag.

Notice the name “{ObjectName}”. This represents that the tag name will be changed to the object name.
The braces indicate a substitution operation, and the text shows what will be substituted. We’ll see more on
this later.

59 of 272
The Add-On Instructions, Data Types, and Controller tags were included because we selected Add
Dependencies earlier.

We have created our library object. Now we will add parameters to make the object highly configurable for
when we use it.

Click on the myValve library object at the top of the list and then go to the Substitutions tab.

60 of 272
This indicates that every place that “myValve” exists it will be replaced by the {ObjectName}. So any
Controller Tags that are created will be specific to the objects being created,

Click on the Controller Tag myValve.

Notice that the Name is setup for substitution, but not the Description.

Click on the myValve library object and go back to the Substitutions tab and click on the “+” to add a new substitution.

Type in myDescription for Original. For the replacement click on the ellipsis to bring up the Member Selector.

61 of 272
In the Member Selector we could again Add new, but there are several predefined members which are
commonly used.

Click on the Predefined tab to see if there is one for ObjectDescription.


n

Select the Local ObjectDescription and click OK.

Now we see that the substitution builder is set for replacing myDescription.

Click OK to confirm.

We are now set for the desired substitutions.

62 of 272
In the Library Objects, click on Controller Tag myValve.

Notice that the Description now has {ObjectDescription}.

Click on the Valves routine.

Notice that the substitution of the object name has been incorporated into the logic too.

63 of 272
Click on the Controller Tag myValve_Out.

We see the Alias tag is setup for Local:1:O.Data.0, but we don’t want it to always point to that I/O location.

Click on the field which contains Local:1:O.Data.0 and then click on the ellipsis button.

64 of 272
The Expression Builder window will open.

We want to add a new parameter, so click on the “+” sign.


Type in a Name of DO_Address and then click on the ellipsis for the Reference Type.

If we left it as Immediate, the user would need type in the DO address for every instance – this is not desired.

Let’s change this to Reference, which will allow the user to select the I/O channel.

65 of 272
We want to limit the I/O channel selection to just digital outputs for this object.

Click on the ellipsis for the 04 UserInterface Filter.

The following window appears

66 of 272
Scroll down to the SubObject.Type and double click on DO.

Note that the expression now shows SubObject.Type= ‘DO’.

Click OK to confirm the expression.

67 of 272
Click OK again to finalize editing of the parameters.

Now we need to remove the existing expression and replace it with our new parameter.

Delete the Local:1:O.Data.0 from the expression window and double click on the DO_Address to copy it down to the
expression window.

68 of 272
Now click OK to finish building the expression.

The Alias will now be replace with the selected DO_Address.

69 of 272
Click on the myValve library object.

Notice that the DO_Address. All ACM parameters are shown here.

Click on the Valves Routine.

We could change the “Valves” routine name to make it a variable, but we won’t for this lab.

We do want to create another couple of parameters to make the object even more configurable.

70 of 272
Click on myValve object, then again click “+” to add a parameter.

Configure the new parameter as shown below:

71 of 272
Click OK to confirm. The HasOpenLS appears below.

Add another parameter as shown below:

So we have created two additional parameters, but at this time they have no functionality. Now we need to
define the function we want them to serve. We’ll do this next.

72 of 272
Click on the Controller Tag myValve and scroll down to find the tag element of interest as shown below:

Right click anywhere on this line and select Add/Edit Expression.

73 of 272
The Expression Builder window appears.

Double click on HasOpenLS to copy it to the expression window.

Click on the Validate button to make sure the expression is good.

74 of 272
It should come back as Passed. Click OK to close.

Repeat the process to add a Cfg_HasClosedLS parameter.

75 of 272
If we discover a type and want to change the name of a parameter, here’s how we can correct a parameter
name. Let’s say we had accidentally typed HasCloseLS but really wanted HasClosedLS.
Right click on HasCloseLS and select Add/Edit Expression.

Right click on the parameter and select Edit.

Change the name.

Click OK.

Next, click the Validate button and notice it fails.

76 of 272
TIP! If we would have edited the parameter name via the Parameters tab, not via the Expression Builder as
above this issue would have been avoided.

Either manually edit the name or remove it from the Expression and re-add it, Click Validate once again.

Click OK.

77 of 272
We are now correct.

There are a couple of more tag elements we want to add as an expression.

Scroll down almost to the end of the list to Cfg_Tag and right click to Add/Edit Expression.

78 of 272
This is going to be the object name, so go to the Predefined tab and select ObjectName. As usual, double click to add it to the
Expression window. Click Validate.

Click OK if validation passed.


You should be getting the procedure down, so go ahead and make the next two changes as shown below:

Ok, just about done, just one more thing we need to do.

79 of 272
Click on the MainRoutine and Click Rung 0

Notice Rung 0 will be created “One per Object”, meaning if we create 100 valves, we would get this JSR 100 times, however we
only want a single JSR to the Valves Routine, hence set the Usage to “Include Once”. This way we only get this JSR to the
Valves only once as shown below.

Click Apply.

80 of 272
What steps have we taken so far to create a new library object?
• Opened the ACD file which contained the logic for our object
• Open Library Designer to build the new object
• Dragged the code from the ACD into the Library Designer
• Added the following parameters to the object
o Substitution for name and description
o Selectable DO address
o Configurability for having an open or closed limit switch
o Substitution for tag, label and description
• Limited the object to one JSR per routine

Now we need to publish our work.

Right click on myValve and select Publish Library.

81 of 272
Select the Current ACM Database and click OK.

82 of 272
We are still evaluating this object and haven’t really tested it. If we publish it and then need to make a
change we would have to change the revision. If we have it as pending then we don’t have to change the
revision for any future edits.

Change this object to Pending Status and click Apply.

Click OK in the Library Published window.

Open ACM and see that the new object is there. In case the object does not show up (if ACM was already open), right click
Registered Libraries and click Refresh.

Click on myValve.

83 of 272
You can see information about the valve we created by clicking on the different tabs. Go ahead and feel free
to explore

Now we will add it to a project to test it.

Click on File -> New -> Project.

The Object Configuration Wizard window will open. Expand the Project by clicking on the “+”.

84 of 272
Select the ACM2.0 Basic Project listed and click Next.

Name it Valve_Test and click Finish.

In the Class View, right click on Controllers -> Add New.

85 of 272
Select ControlLogix -> ACMS2.0 ControlLogix Controller and click Next.

Configure the controller as shown below:

Click Finish.

86 of 272
Expand the controller myValve_Test and right click on Tasks and select Add New Task.

Accept the default settings for Task and click Finish.

Right click on Task and select Add New Program.

87 of 272
Accept the default settings for the new program and click Finish.

Now we will add the new valve object.

Right click on Program and select Add New.

88 of 272
Expand Valve and select myValve as shown and click Next.

Give the valve a name of V100 and click Finish.

Note: We are not selecting any of the limit switch options at this time. Also, we are not assigning a DO
address yet because our project doesn’t have any I/O yet.

89 of 272
Let’s add some digital outputs.

Expand the I/O Configuration and right click on the backplane and select Add New.

Select Digital and then 1756-OA16 module and click Next.

90 of 272
Accept the defaults and click Finish.

Now we can go back to the V100 valve and assign I/O.

In the Class View, click on V100 and then click in the DO_Address box and the ellipsis.

91 of 272
Select the module, I/O channel and SubObject Reference as shown below.

Click Finish.

See that the DO_Address has been assigned an I/O address.

Click on Apply Changes.

92 of 272
Let’s create a second valve. We will use the import/export capabilities.

Select V100, right click and select Export.

Click Export and Open.

93 of 272
Click Save to accept the default of saving it to the desktop.

Here is the excel spreadsheet. Note: Microsoft Excel does not have to be activated for this exercise.

94 of 272
Select the entire row for V100 by clicking on the number “5”.

Grab the small square just under the “V”. You will get a plus sign. Drag it down through line 11.

Note that the valve name and DO Address were incremented by Excel. However, the Description is the same
for all copies.

95 of 272
Change the descriptions just for the sake of clarity.

Let’s leverage the configurability of the object. Change V101 to have opened and closed limit switches.

Save and close the Excel spreadsheet.

You are now back at the Import Export Manager.

96 of 272
Go to the Import tab.

Click on the ellipsis and select the file we created which is on the desktop and click Open.

97 of 272
Select Update and then click Import.

The details of the import are shown.

Click Next.

98 of 272
Click Finish.

Click Ok to the dialog that appears.

Expand the Class View to shows the newly created valves.

99 of 272
Click 1756-OA16 -> Local_04 -> DO to see the new references.

Right click on MyValve_Test and click Generate Controller to create an updated ACD file.

100 of 272
Click Generate.

Once finished, click Open Folder.

Double click on myValve_Test.L5X to open the project in Logix Designer. It may take a minute to open the project.

101 of 272
Click the Import button on the Save Project As dialog.

When the project opens, explore the project to see what was added.

102 of 272
Scroll through the Valves Routine to see that all the valves were added.

Open the configuration dialog of V100.

103 of 272
Scroll down to see that this instance does not have limit switches configured.

Check V101, which we changed in the Excel spreadsheet. It does indeed have limit switches configured.

Go ahead and Close the myValve_Test.ACD and folder. (Keep the myValve ACD that we first used open)

104 of 272
What steps have we taken after creating the new library object?
• Published it to the Examples library so we could use it in a project
• Created a new project titled Valve_Test
• Created a controller with the new project
• Added one instance of the myValve object to the controller
• Added I/O to the controller and tied myValve to the I/O
• Used Export, Excel and Import to create multiple valves, leveraged their configuration options, automatically tied the
valve to I/O
o Generated the ACD file and confirmed that all logic was created for all valves as expected

105 of 272
Lab 2 – Extra Credit Bonus Material
This section is optional.

Recall back in ACM that when we were assigning I/O points we had to select not only the data channel, but
also the Data (or Fault) tag as well. If we had been using both the data and fault channels we would have
had to select each channel individually.

Let’s change it so we only need to select the channel to assign both tags. We are now going to create an
additional parameter to pick the data (and/or fault) tag automatically for the selected channel.

106 of 272
Return to the Library designer of myValve.ACD.

Click on the myValve library object.

Let’s add a new parameter. Click on the “+” to Add New.

107 of 272
Add the name DO_Channel of type Reference…as shown below:

108 of 272
Next, set the filter to DO as shown. Click OK twice.

109 of 272
We now have a new parameter that can point to a channel.

Now we want to have the channel parameters address propagated to the address tag.

Double click on DO_Address to open the Edit Parameters window.

110 of 272
Change the reference type to Calculated.

Using the pulldown, change the linked parameter to myValve.DO_Channel.

111 of 272
Use the pulldown in the reference field and select Browse to library…

Click on the Connect to Database button.

112 of 272
Select “Use Windows Authentication” radio button and click Test Connection

Click OK.

The following window appears.

113 of 272
Use the filter to find the 1756-OA module. Click on the 1756-OA16 module.

Click on the External References tab. Click on the Address and then click OK

114 of 272
Review the setup.

We should remove the filter since this parameter is being auto populated by the Channel parameter.

115 of 272
Then click OK

Click Apply.

Let’s add the channel fault as well just as we did the other one.

Click the Add New button.

116 of 272
Fill in the fault parameter as shown using the same previous steps

Click OK.

We should now see the follow parameters

117 of 272
The parameters can also be reordered to better organize them by using the up and down arrows or by right clicking on
them.

or

Re-order as follows:

The parameters can also be grouped together.

Double click on HasOpenLS to open its properties

118 of 272
Type the word Options in the group field.

Click OK.

The HasOpenLS parameter has now moved to its own area.

Repeat this for HasClosedLS

Now the two limit switch options are grouped together as shown.
There is also a group column that indicates what group the options are in.

119 of 272
The groups are shown alphabetically. If a specific order is desired, it is common to precede the group name
by a number. I.E., instead of “Options”, use “1 IO”, “2 Options”, “3 More Options” as example group names
and they will be listed in alphanumeric order. Feel free to play with the grouping.

Let’s go ahead and publish our library.

Click Apply.
Right click on myValve and select Publish Library.

120 of 272
Click OK to Library Destination.

Change the status to Published and enter a Revision Description in the Library Import Configuration.

Click Apply.
Click OK to Library Published.

121 of 272
Click OK to close the Library Designer window.
Close myValve.acd Studio 5000 project (Yes to Save).
Go back to ACM and click on the valve V100 and it should look something like the following

Go ahead and select an address for DO_Channel.

Click Finish.

122 of 272
Notice that the DO_Address and DO_ChFault auto populate when you do this.

We could now go back and add logic to make use of the channel fault.
We could also add additional fields for more complex modules that have additional fields.
We could also export this to excel to finish populating the remaining valves.
At this time we will not make any further changes as the main point of populating multiple fields has been
demonstrated.

What did you do in the Bonus Material section?


• Expanded and refined the connectivity of the myValve object to the I/O
• Explored the grouping of parameters

That completes this lab section

123 of 272
Lab 3 – How to add FTViewSE Content to an Existing Object

This section will cover how to add FTView content to an existing library object that contains Logix content in ACM. You will
create an FTView display leveraging global objects, address those objects using ACM parameters, save then export the display.
Once the display is exported, using the Library Object Manager you will associate and publish the FTView objects to an existing
ValveSO library object. To verify proper configuration you will then test your newly added FTView configuration.

Launch FTView Studio.

Select View Site Edition (Local) and click Continue.

Launch our Template_ProcessLib_ACM project.

124 of 272
The first step is to create a display. We can’t just use the global object to connect to the Logix object.

Expand the Global Objects folder and open the Process Graphics Library.

We will get the following window of objects.

125 of 272
Hold down Ctrl key and left click with the mouse to select each of the four orientations for the valve.
Next do a Ctrl-c to copy all four selected valves.

Note: Right mouse click will only work for a single object. Ctrl-C must be used for multiple objects.

Right click on Displays and select New.

126 of 272
Use Ctrl-v to paste, or just right click and select paste.

The valve object in four different orientations should now be on your display.
NOTE: you may need to move the 4 values closer to the upper left of the display to look like below.

127 of 272
Right click on one of the objects and select Global Object Parameter Values.

This is the typical window for settings parameters for the process objects.

128 of 272
Type in the parameters for tag and path EXACTLY as shown and fill in parameter 5 with a value of 0,

{Obj and {{AreaPath}}

Now, click and drag over all the cells in the Value column and type Ctrl-c. This will copy all the cells at once.

Click OK.

129 of 272
Open another object the same way and right click on the first cell and select paste.

All of the values should fill in.

Do the same steps for the remaining two objects.

130 of 272
From the top tool bar, select Objects > Drawing > Text. Left click and draw a text box above the objects.

The Text Properties window will open.

Type in {ObjectName} and click OK.

131 of 272
This will populate a valve on a display with the name of the object as ACM will replace {ObjectName}.

Close the display and when prompted Save the display as (RA-LIB) ValveSO

132 of 272
Scroll down through the list of displays and confirm it is there.

Now we must export it, right click on Displays and select Import and Export.

Select Export and Next.

133 of 272
Clear all, then select (RA-LIB) ValveSO. Click Next.

Select the desktop as the export location. Click Finish.

134 of 272
You should get a confirmation that the export was successful.

Close the notification.

Minimize the FTView window.


Open the Library Object Manager.

Right click on the Repositories and select Add Repository > ACM.

135 of 272
Configure the settings as shown below.

Test the Connection.

It should be successful. Click OK.

136 of 272
Click OK to add the ACM library.

The newly associated libraries are shown.

Expand the Examples library and select ValveSO.

This is our Logix object. Now we want to add FTViewSE content.

Under Library Content right click on ValveSO and select Add Section > FT View

137 of 272
The FT View folder now appears.

In the FT View folder, right click on SE Symbols and select Add.

138 of 272
The Symbol Builder window appears.

Click on the ellipsis to browse to the desktop and select the file ValveSO file as shown below.

Click Open.

139 of 272
The four valve objects and the text box are added.

140 of 272
Select all of these objects using Ctrl-A.

141 of 272
Click OK. The Properties window opens.

Note that the controller name and object name are automatically included.

Click Apply at the bottom right.

142 of 272
Confirm the library status.

Click Apply.

It is now in the ACM data base.


Minimize the Library Object Manager (LOM).

What have you done in lab 3 so far?


• Opened ViewSE
• Leveraged existing valve global objects from the Process Library
• Created a valve display with various valve orientations and substitutable global object parameter values
• Exported the display to XML format
• Opened the Library Object Manager
• Selected a ValveSO object that had logic but no ViewSE content
• Added ViewSE content (valve symbols) to the ValveSO object.

143 of 272
Open ACM. We want to create a new project to test it.

Select File > New > Project.

Expand Project and select Basic_Project.

Click Next.

Give it a name as shown.

Click Finish.

144 of 272
Now add a controller.

Right click on Controllers and select Add New.

Select the ControlLogix_Controller.

Click Next.

145 of 272
Name and configure the controller as shown below.

Click Finish.

Right click on Tasks and select Add New Task.

146 of 272
Leave the defaults. Click Finish.

Do the same with adding a program.

147 of 272
Keep the defaults.

Click Finish.

Right click on Program and select Add New.

148 of 272
Select ValveSO and click Next.

Name it V100 and click Finish. We didn’t assign a display because we have created any yet.

Click Finish

149 of 272
Under Class View, click on V100 to confirm our options.

Now let’s add a display.

In the System View, via the HMI, right click on Displays and select Add.

Select FTViewSE and click Next.

150 of 272
Adjust the MaxSymbolWidth, MaxSymbolHeight and DisplayTemplate parameters as shown.

Go to the Displays tab, right click in the open area and select Add New.

Click on the first row.


Configure as shown. Changing Name, DisplayWidth, DisplayHeigth and LeftIndexMax

Click Finish.

151 of 272
Now assign a display to V100.
Select V100 in the Class View and click in the SEAssocDisplay field. Click on the ellipsis.

Select the project, FactoryTalk SE, then go to the Display tab. Select ValveSO, then click Finish.

Now click Apply Changes.

Let’s make at least 5 to show the arrangement.

I’m sure you have become familiar with the procedure, but we will give you a few screenshots as reminders.

152 of 272
Right click on V100 and select Export.

Click the Export and Open button.

Click Save.

153 of 272
The spreadsheet opens. (It may be minimized at the bottom of your screen and Microsoft Excel does not need to be activated
for this exercise)

154 of 272
Use the select and drag as we did before and create V101 – V104. Give them descriptions as shown below.

Save and close the spreadsheet.

Click on the Import tab. (If you closed the Import Export manager window, right click on V100 and choose Import.)

Click on the ellipsis button, select our newly modified file and click Open.

155 of 272
Select Update, then click Import.

There should not be any errors.

Click Next.

When done, click Finish.

156 of 272
Click Yes ( if asked to save changes.)

Click OK.

The five valves should be displayed.

157 of 272
We could generate a controller ACD, etc., but let’s just create and verify the displays.

Right click on FTViewServer and select Generate Displays > All Displays.

158 of 272
We will just put them on the desktop this time. Click OK.

Click OK or Finish.

Now we can import the modified displays.

Goto FTViewSE studio, Template_Process.lib project and right-click on displays and select Import and Export.

159 of 272
Select Import and click Next.

Select No and click Next.

Select multiple displays and click Next.

160 of 272
Use the ellipse to browse to our file.

161 of 272
Select our newly generated batch import file and click Open.

162 of 272
Click Finish.

The import should complete successfully.

Open the ValveSO display. It should have each of our valves, with the four different orientations for each valve.

163 of 272
Right click on any of the valves, select Global Object Parameter Values. Confirm that the parameters are correct.

Close all open applications and folders.

We don’t need to create an ACD because we didn’t complete the configuration of the IO.

What have you done in lab 3 after adding the ViewSE content to the ValveSO object?
 Opened ACM and created a new project
 Added an instance of ValveSO titled V100
 Added a display to the project
 Added valve symbols to the display
 Leveraged Export, Excel and Import to create 5 instances of the valve
 Generated a display with valve symbols for each of the 5 valves
 Imported the display into a ViewSE project and confirmed that all global object paramters were correct

That completes this lab section.

164 of 272
Lab 4 - How to add FTHistorian Content to an Existing Object

This section we will cover how to add FTHistorian content to an existing library object that contains Logix content in ACM. You
will add Historian configuration using the Library Object Manager to the ValveSO object, once the configuration is added you will
publish the updated library object in ACM. To verify proper configuration you will then test your newly added historian
configuration.

Open the Library Object Manager (LOM).

Click on the ValveSO object. In the Library Content pane you can see that there is FTView content but no Historian content.

Let’s add a historian section.

Right click on ValveSO and select Add Section > FT Historian.

165 of 272
The folder is added.

Now let’s add historian tags.

Right click on Historian Tags and select Add.

166 of 272
The Tag browser window opens.

Expand the {ObjectName} folder and browse to Val_Sts. Click OK.

167 of 272
The Val_Sts tag is now created.

168 of 272
Add the object description (ellipsis, Predefined as earlier) and change the point type and typical value as shown.

Now add a second point.

169 of 272
This time select Val_Fault. Click OK.

Modify the descriptor and point type as shown.

170 of 272
Check the Historian Configuration Parameters. These were automatically generated.

Click Apply.

Confirm that the status is Pending. Click Apply.

171 of 272
Click Yes to the update message.

Open ACM. Just to make sure the libraries are current, right click on Registered Libraries and select Refresh.

Let’s add one of our newly configured valves.

Right click on Program and select Add New.

172 of 272
Select ValveSO. Click Next.

The Object Configuration window opens.

Give it a name V200 and click Finish.

There is no historian content to add yet.

173 of 272
Add historian tags by right clicking on ScanClass and selecting Add.

Select the Process 3.5FTHistorianSE. Click Next.

174 of 272
Click Finish.

The FTHistorianSE Server has a parameters template and a listing of point types.

Click on the point type tab to see all the pre-configured point types.

175 of 272
Scroll to the right to see the remainder of the point definition columns.

Specifically we need the P_Valve point types.

Now click on V200 and then the ellipsis to select the correct tag for SC_Val_Sts.

Select the Point Type tab and correct tag, P_Valve_Val_Sts, and click Finish.

176 of 272
We now have the valve status definition for the historian completed.

Complete the configuration for the valve fault historian point.

Click Apply Changes.

177 of 272
The historian configuration is complete. Next we will generate the Historian Tags.

Right click on FTHistroianSE Server and select Generate Historian > All Controllers.

Save the csv file to the Desktop. Click Save.

178 of 272
Click OK to the notice.

Double click on the file to open it.

Review the content. (Note: Microsoft Excel does not have to be activated for this exercise)

Close and don’t save changes.

How did you add historian content to an existing object?


• Opened LOM
• Selected an existing tag element to be added as a tag to be historized
• Opened ACM and refreshed the libraries to capture the above change
• Added the ValveSO to the project again, This time it has tag elements to be historized
• Selected the correct historian tag type for the tag elements to be historized
• Generated an Excel spreadsheet containing the historian points

179 of 272
Lab 4 – Extra Credit Bonus Material

We have defined the historian points, but at present they have to be selected for each valve. For one valve
this is not an issue, but if we are creating 100 valves we will need a more automated process.

In ACM click on V200 and copy the descriptor for SC_Val_Sts.

Go back to the LOM and select ValveSO. Then select the Historian Configuration -> SC_Val_Sts.

Paste the description into the Default Value.

180 of 272
181 of 272
Do the same procedure for the SC_Val_Fault.

Click Apply.

Click Apply again.

182 of 272
Click Yes to acknowledge the update warning.

Back in ACM, let’s add a new instance to confirm that the historian points are added automatically.

Refresh everything first.

Then select ValveSO, right click and select Add New Instance.

183 of 272
Note that the historian tags are automatically created.

That completes this lab section

184 of 272
Lab 5 – Reconstitute a Library Object

In this section you will “Reconstitute” a Library Object out of the ACM registered library database. This is useful in cases where
you need to edit the Library Object however you don’t have the original Logix Designer project that was used to create the object.
In our case we are going to reconstitute the “DIn” library object.

If not already open, Launch Application Code Manager (ACM)

Click OK to acknowledge any prompts.

Expand the Process 3.5 library and select DIn. Right click on Din and select Reconstitute ACD.

185 of 272
The window opens. Click Next.

Change the Software revision to 31. Click Next.

186 of 272
Expand the folders to see what will be generated.

Notice the content that will be reconstituted from the library such as tags, Add-On Instructions, Routines, etc.

Click Next, then click Save.

187 of 272
Either click on Din_1_3.ACD to open the project, or click on open folder and open the project from there.

188 of 272
Open Library Designer

Expand the DIn folders.

All the parts needed for DIn are available back in Library Designer. We can now modify this object if desired.
In ACM 1.0, a master project ACD file was necessary. Now starting with ACM 2.x, we can pull the object
back out of ACM with ease.

Let’s close the windows to get back to ACM

Click Cancel to close the Library Designer.

189 of 272
Close the Logix Designer.

Click Finish to close the Reconstitution window.

How did you recover the source logic ACD file?


• Opened the ACM project
• Found the library object for which you need to recover the source logic
• Used the ACM feature “Reconstitute ACD” to re-create
• Reviewed the ACD file to confirm the logic is there

That completes this lab section.

190 of 272
Lab 6 - Command Line Console

In this section you are going to experiment with the Command Line interface to ACM. Leveraging the command line console you
will export an existing ACM project to Excel. Once exported, using Excel you will make a small change and then save. Next,
again using the command line console you will then import the Excel project into ACM creating a new ACM project from the
updated Excel file.

Minimize the ACM window if it is open.

Launch ACM Console from the desktop or start menu.

Type help, then hit enter to get a list of all commands.

Take a quick look at the various commands that are available by scrolling through the window.

191 of 272
For more information about any specific command type Help and the name of the command. If you only
know that first part of a command, the tab key can be used to find the rest.

Type help export <tab key>

A list of commands that begin with export pop up.

192 of 272
Type help exportproject, then press Enter.

Type exportproject existing_ cop C:\Documents\existing_cop false and hit Enter

Go to the C:\Documents and double click on the file existing_cop.xlsx.

193 of 272
The Excel window opens. (Note: Microsoft Excel does not have to be activated for this exercise)

Go to the “Basic_Project(2.0)” tab

194 of 272
Let’s create a new project. First change the name to Existing_COP2.

Goto to the “Motor(1.6)” tab.

195 of 272
Select Rows 5 to 9

Type CTRL-D to fill in all of the rows.

196 of 272
Note, using the Excel method of click dragging the entire row to create more rows may auto-increment other
columns ending with numbers which may not be desired.

Next click on the first MT100 cell and place the cursor over the lower right dot.

197 of 272
Drag down to row 9 to auto number the valves

198 of 272
Make some changes, for example, change the descriptions.

Notice the tabs at the bottom. These are the various objects that exist in the project. We would be able to edit
any of them if desired. For now, we will not, but feel free to look through them.

Save and exit.

Close the folder.

Go back to the ACM Console

Type help import <Tab Key>

Since there was only one import choice, it is auto filled with help importproject

199 of 272
Hit Enter to see the help.

Type importproject “” c:\Documents\existing_cop new and Hit Enter

This will create Existing_COP2 project, the name that we had specified in the excel file.

Go ahead and close ACM Console

200 of 272
Bring up ACM and open the Existing_COP2 project that should now exist.

Expand the controller and Motors.

The additional Motors we added should show up.

Feel free to look around and explore the changes you made.

What did you do using the command line console (CLC)?


• Used CLC to export an existing ACM project as an XML file.
• Used Excel to modify the ACM project XML file
• Imported the project using CLC
• Opened the revised project in ACM and confirmed the changes

That completes this lab section

201 of 272
Lab 7 – Creating a sample Process Project from Scratch

We are going to recreate the COP project from scratch to see how it was built. We will be using various objects like valves, pump
motors, etc. to build this project for a Clean-Out Place (COP) system to support the COP object.

Let’s start off with a New Project.

Select the Basic_Project and click Next.

202 of 272
Give it a name myProject_COP and click Finish.

Now we need to add a controller.

Select ControlLogix_Controller and click Next.

203 of 272
Configure the controller as shown below and then click Finish

In Controller Preview window, expand mCop and add a new Task.

Note: The Add New…. Option At the task level would open a window and show us any objects configured for
the task level. Currently we do not have any configured and we will directly create a task

204 of 272
Give it a name MainTask.

Note: We could have changed the task properties here if we wanted. For this lab we will just use the defaults.

Click Finish.

Right click on MainTask and select Add New Program.

205 of 272
Give it a name Devices and click Finish.

Let’s add a second program named COP.

206 of 272
Click Finish

Now we are going to add valve objects to the devices program.

Right click on Devices program folder and select Add New.

207 of 272
Let’s go ahead and add the valve object.

Type in name and description.

Note: We have options of different types of valves. We will use the default Solenoid-operated.

Set HasStatsObj to true.

208 of 272
Try to select the SEAssocDisplay.

You will see that none exists. We will create one shortly.

Click Cancel to the SEAssocDisplay and then click Finish.

209 of 272
Expand HMI. Right click on Displays and select Add.

Select FTViewSE as shown below.

Click Next.

210 of 272
Change the MaxSymbolWidth and MaxSymbolHeight as shown below.

This sets the spacing from object to object and needs to be set larger than the largest object to avoid object
overlap.

Click on the Displays tab.

Right click in the white area and select Add New.

The displays window opens.

211 of 272
Modify name to myAIn, LeftIndexMax to 5 and DisplayWidth to 1280 and DisplayHeight to 768

Right click and choose Add New. Add the remaining displays as shown below.

Note: Other than myAIn, set all displays LeftIndexMax to 4

Click Finish.

212 of 272
Now you can assign a display to the object.

Click on XV100 and click on the ellipsis for the SE display.

213 of 272
Select the Displays tab on the right pane, then select myValves and Finish

The window should look like this.

Notice the red marks by the historian details, this is because nothing yet has been configured.

Click Apply Changes.

214 of 272
Expand Historian and right click on Scan Class and select Add.

Select the ScanClass from the Process 3.5 library.

Click Next.

215 of 272
Click on the Point type tab.

You can see all the pre-configured historian point types for PlantPAx objects that will be added automatically.

Click Finish.

Now these point types are part of your project.

216 of 272
….and they automatically fill in for the historian configuration.

We need more valves, so let create the other instances.

Right click XV100 and export.

217 of 272
Export and Open

Click Save and the Excel sheet opens. (Check bottom of your screen for Excel file if not opened, and activation is not required)

218 of 272
Let’s create the other valves we need for the COP

Select rows 5 through 9 and use Ctrl-D to fill down. Then use auto-increment feature of Excel to update the valve names or
manually update them as per below

Change the descriptions.

Save and close the Excel file.

In the Import Manager, Select the Import Tab. Browse to your file. Select the Update Merge button and use ellipse button to
select correct file.

219 of 272
Click Open.

Click Import.

220 of 272
Click Next

Click Finish.

Expand the project to see the new valves objects were added.

221 of 272
….along with the routines to support them.

Let’s add the COP object.

Right click on COP and select Add New.

222 of 272
Under Specialty, select COP. Click Next.

The Object Configuration Wizard opens.

223 of 272
TIP: If we had added the COP in the class view, the Task and Program dropdowns would be blank and we
would need to select them to put the COP in the correct location in the project. By using the Controller
Preview instead, we get these filled in for us.

Let’s go ahead and select the myCOP01 SE display. Click the ellipse button.

Click the Displays tab and select myCOP01. Click Finish.

224 of 272
Click on Linked Libraries tab.

Select row 1 and click on the ellipsis.

Select Link to Existing Instance.

225 of 272
Select XV100. Click Finish.

Fill in the remaining valves.

TIP: If you know the valve number you could just type it in vs. selecting it.

226 of 272
If you go to “Link to an Existing Instance” for Pump it will be empty because we haven’t created any pumps
yet.

So let’s create a new one.

Click in the Pump field and click Create New Instance.

We get the Pump window wizard

227 of 272
Fill in the motor pump as shown. Don’t forget the SE display!

Click Finish

228 of 272
Next, do the same to create the Tank Level as shown. Put this one on the AIn SE display.

Click Finish.

We should have the following:

Click Apply Changes

229 of 272
In the Controller Preview pane, right click Devices and Add New…

This time we have to select the AIn object since ACM does not know the context of the object we want.

Click Next

230 of 272
Use the name TT100 and fill it in as shown

Click Finish

231 of 272
The project Trees should now look like this.

Click on the COP01 and the Linked Libraries tab so that we can now associate the object we just created.

232 of 272
Click on the ellipsis for the Temperature and select Link to Existing Instance.

Notice the context sensivity in that only analog ins are shown.

Select TT100 and click Finish.

The linked libraries for the COP01 are now complete.

Click Apply Changes.

233 of 272
All right, lets see the result of our hard work.

Generate the ACD file. Right click on myCOP and select Generate Controller.

Click Generate.

Once completed, click Open Folder.

234 of 272
Click the Open Folder button and then open the mCop.ACD file.

Feel free to poke around to see the logic that was generated. Notice that all the JSRs in the main task have
already been added to call all the necessary routines and everything is address correctly.

Verify the controller.

Download and put into Run mode. Change the controller type as needed.

Close the ACD file and the associated folder.

235 of 272
Let’s go back to ACM now and create the displays. Close any open prompt windows.

Right click and select FTViewSE_Server > Generate Displays > All Displays.

Select the FTView folder as the destination folder. Click OK.

236 of 272
Open the ViewSE Local Station, and open the ViewSE project Template_ProcessLib_ACM

Right click on Displays and Choose Import and Export

237 of 272
For the Import choose:
- Import Graphic Information into displays
- No (to backup displays)
-Import Multiple Display

Select the myProject_COP_FTViewSE_Server_BachImport located in the FTView Folder on the desktop.

Click Finish.

238 of 272
Go ahead and open the different displays we imported to see what was generated.

239 of 272
240 of 272
Go ahead and click the Global Object Parameter Values of some of the objects to see that the tags have
already been assigned for us!

We can copy these objects directly onto any screen where they are needed. They have already been linked
to the tag they need to be associated with. This decomonstration shows us ACM can save us a lot of work!

241 of 272
In order to test the displays we will have to create a new SE client.

242 of 272
Open the client and select New.

Name the new file myCOP, click Continue

243 of 272
Select Local Station and then choose Template_ProcessLib_ACM

Choose the initial display to be myCOP01.

Click Run.

Test your newly created display.

Run the client and check the operation if you wish. Lab 1 has information on using the COP faceplate.
Let’s go ahead and generate the points for Historian.

Right click on FTHistorian and select Generate Historian > All Controllers.

244 of 272
Save the file to the Desktop.

Click OK when completed.

245 of 272
Navigate to and open the Excel file we created.

You can see that all the Historian points in the import file have been generated for us!

Close the Excel file.


What steps did you use to create a sample project from scratch?
• Created a new ACM project
• Created a valve instance from the Process 3.5 library
• Created displays to hold the AIn, Motor, Valve and COP symbols
• Added historian point types to support the pre-configured historian points for this object
• Used export, Excel, import to create 4 more vales (5 total)
• Created a COP instance from the examples library
• Linked the existing valves to the COP instance
• Created a motor (pump) instance from the Process 3.5 library
• Created AIn instances (level and temperature) from the Process 3.5 library
• Linked the AIn instances to the COP instance
• Generated the ACD file
• Generated the displays
• Imported the displays into our ViewSE project
• Created a new client
• Tested the new displays

That completes this lab section.

246 of 272
Lab 8 – Creating a sample Motion Project from Scratch

We are going to create a sample Motion project, we will configure 2 Axis (Infeed and Clamp) for a Kinetics 5500 along with 3
basic control elements for each we call methods, they are Energize, De-energize and Clear.

Open ACM

Click OK for the notification.

Select File > New > Project.

The Object Configuration Wizard opens.

247 of 272
Expand Project and select Basic_Project.

Click Next.

Name it ‘myProject_Motion’ and click Finish.

Right click on Controllers and select Add New.

248 of 272
Expand ControlLogix and select the MachineBuilder_Controller library Controller object.

Click Next.

Now you have the Object Configuration Wizard open.

Make the following changes:


Name = ‘Motion’
Slot =3
Software Revision = 30
Processor Type = L75
Motion Configuration = True
Motion Group Name = MG01

Click Finish once the configuration is complete.

249 of 272
Expand the tasks as shown below.

Note:
ms = millisecond periodic task rate. The defaults are 08, 16, 48 and 64 milliseconds.
p = priority. The defaults are 08, 10, 12 and 14.

Right click on the ms48 task and select Add New.

250 of 272
Expand the Device handler- CIP Motion, select the K5500 option and click Next.

The Object Configuration Wizard opens.

Change the name to ‘DH_Infeed’.

Note: The AxisName was automatically updated to match. But they don’t have to match.

251 of 272
Change the AxisName to ‘Ax_Infeed’.

The CreatePHYAxis is asking whether there is an existing physical axis or whether we need to generate one. Since we are
starting from scratch there is no existing axis and it is True that we need to generate one.

Click Next. The Object Configuration Wizard will open.

Click in the SysIni field, click on the ellipsis and select Create New Instance.

252 of 272
Click Finish.

We also need to create a new instance of the language pack.

Give the name LP_K5500.

253 of 272
Using the pulldown, select a 64ms task and click Finish.

The device handler configuration is set.

Click Finish
.

Click Finish

254 of 272
Expand the controller to see:
SysIni – system initialization
DH_Infeed – Infeed Device Handler
LP_K5500 – Language pack for the K5500

Let’s add some methods like Clear, Energize and DeEnergize.

Right click on the 16ms task and select Add New Program.

255 of 272
Change the name to ‘Infeed_Methods’.

Click Finish.

The new program has been added.

Let’s start adding some methods. Right click on Infeed_Methods and select Add New.

256 of 272
The Object Configuration window opens.

Expand General Motion and select Energize_CD. Click Next.

Change the Name and RoutineName as shown:

257 of 272
Click in the Handler field and then click on the ellipsis.

There is only one handler to select, the DH_Infeed. Select the DH_Infeed as shown and click Finish.

Click Finish again to finalize this configuration.

Now we have a method for Energize.

Let’s add another method.

Right click on Infeed_Methods and select Add New.

This time select DeEnergize and click Next.

258 of 272
259 of 272
Change the Name and RoutineName as before.

Click on the Handler ellipsis and select DH_Infeed as shown. Click Finish when the configuration is complete.

Now we have added the DeEnergize method.

Let’s add one more…Clear.

Right click on Infeed_Methods and select Add New.

260 of 272
Expand General Motion and select Clear_CD. Click Next.

Once again, change the names and select the handler. Click Finish when done.

We now have the three methods we wanted.

261 of 272
Let’s create another device handler - Clamp.

Right click on ms48p12 and select Add New.

Select DeviceHandler- CIP Motion, then select the item for DH_K5500 and click Next.

262 of 272
As expected the Object Configuration Wizard opens.

Change the name and axis name as shown. Click Next.

Choose Link to Existing Instance for the DHLP_K5500. Click Finish.

Click Finish again to close the window.

Now we have both DH_Infeed and DH_Clamp.

Now we need to add some methods for the Clamp.

Right click on the ms16p10 task and select Add New Program.

263 of 272
The Object Configuration Wizard opens.

Change the name to Clamp_Methods and click Finish.

Let’s add the first method – Energize.

You probably know the steps by now, but we’ll give you a few pictorial reminders.

264 of 272
Change the Names and select the data handler.

You’ve added the Energize method.

Now add the DeEnergize method.

265 of 272
Change the Names as usual. Select the data handler.

The DeEnergize method has been added.

One more to add – Clear.

266 of 272
Make the usual Name changes and data handler selection.

All three methods have now been added for the Clamp.

267 of 272
After just a few minutes we now have a couple of device handlers and Methods for each.

Right click on Motion and select Generate Controller, or right click on Controllers and select Generate Controllers if you had
multiple controllers.

Click Generate. Since we have only one controller there is only one listed.

Wait for the Status to show Successful.

268 of 272
Click Open Folder.

269 of 272
Double click on Motion.ACD to open the Logix Designer project.

The project is now pretty well set. The only thing we didn’t add was the drives.
Expand the project to see the Methods and data handlers. Motion group MG01 is there with both the physical and virtual items.

Checking the MainRoutines we see that all the appropriate JSRs have been included.

270 of 272
Click on the Verify Controller button.

You will see that we get a couple of errors and a few warnings.

Examining the errors we see that they are associated with the missing drives.

Double click one of the errors to see the details of what is missing – the module which we did not add.

271 of 272
The warnings are also associated with things that are missing due to the missing drives.

That completes this lab section.

272 of 272

You might also like