+Tech TopicsAutomation NotebookIssue 12 – 2008Learning ResourcesNotebook IssueTechnical ReviewWhy HMI

C-more HMI With Enhanced Allen-Bradley PLC Driver Support

With the growing popularity of the C-more Operator Interface line, we have had many requests to add PLC protocol drivers. These drivers allow customers with different PLC brands to standardize on the C-more HMI product.

This article takes a look at C-more’s PLC drivers and demonstrates how to import/export tags and optimize communication. Due to the abundance of requests, the latest group of drivers added supports the Allen-Bradley family of PLCs, so those are the drivers we will focus on. The new Ethernet drivers allow simple connectivity of multiple C-more panels and/or multiple Allen-Bradley PLCs.

Compatibility Matrix

We also added ControlLogix EtherNet/IP Tag Messaging support. This new feature helps increase productivity by reducing the time often required to map your PLC tag database into another device. This time saving feature allows you to import the RSLogix 5000 L5K file directly, or with just a few clicks of the mouse you can directly enter your ControlLogix or CompactLogix tags from the PLC into a C-more database. No mapping or translation is required.

Since these protocols are widely used with C-more HMI, we have developed some tips on when and how to use these new drivers with C-more panels. To explain this, we will use common Allen-Bradley terminology. More details for the following can also be found on the AutomationDirect Technical Support web site. Look for document number AN-EA-004 on the Technical Notes page.

Compatible Allen-Bradley PLCs

C-more supports five Allen-Bradley PLC drivers: DF1 Full Duplex, DF1 Half Duplex, DH485, EtherNet/IP Client driver and EtherNet/IP Server driver (generic).

The compatibility matrix below illustrates the many choices available to connect Allen-Bradley PLCs to the C-More HMI.

Which Protocol Should I Use?

These descriptions of the five available protocols can assist you in choosing the best one for your application.

DF1 Full Duplex: This driver is used for point-to-point serial connections. If you are connecting only one C-more panel and one Allen-Bradley PLC, this is the most economical method.

DF1 Half Duplex: This is an economical method for connecting one C-more panel to multiple PLCs. Note that since Allen-Bradley PLCs do not use RS-422 or RS-485 for serial connection, an RS-232 to RS-422/485 converter (such as the FA-ISOCON) is required for each PLC.

Generic EtherNet/IP Server: This driver is atypical in that the messaging is initiated by the PLC instead of C-more. The C-more panel is treated basically like a Remote I/O drop. It contains a block of Input Words and Output Words and the PLC either reads or writes this data back and forth. The PLC tags are not directly referenced, as in the EtherNet/IP Client driver. This rare method is sometimes preferred by customers for unique applications.

EtherNet/IP Client: This driver is the more typical method of reading and writing data back and forth from the PLC. The C-more panel directly references the PLC tags and initiates the messages going back and forth. If your application involves using multiple C-more panels and/or multiple PLCs, this is the best method for accomplishing this.

DH485: This driver is mostly for legacy systems where it is necessary to add a C-more panel to an existing network. It is possible with DH485 to have multiple C-more panels and multiple PLCs on the same network but the performance levels are much lower than EtherNet/IP. DH485 is not as robust as DF1 or EtherNet/IP.

Supported Data Types

The earlier Allen-Bradley SLC, MicroLogix, and PLC5 support what can be referred to as legacy memory mapping. This mapping is based on fixed file types, whereas the newer Control/Compact/FlexLogix PLCs use what is referred to as a variable tag based memory map. The C-more HMI supports both types of mapping.

Compatible Data Type Chart for SLC, MicroLogix, and PLC5

* I/O access not supported for SLC5/01 and 5/02

Control/Compact/FlexLogix Tag Support

There are different terms used to describe the different data types in the Allen Bradley Logix PLCs. The table below describes how the Allen-Bradley data types are used in the C-more programming software.

Logix cmore description

Tag Types

The C-more HMI supports all the tag and memory types used in the Logix PLCs. Each has different characteristics that will determine how it is used in your HMI project.

Atomic Data: Atomic data types are the base data type unit from which all other complex data types are built. The Atomic data types are: BOOL, SINT, INT, DINT and REAL. The syntax for the Atomic data types is simply the tag name itself (no precursors or delimiters). An example would be: Tank1_Level.

All Atomic data types are addressable in the C-more programming software and are importable via the L5K file.

Pre-Defined Data: Pre-defined data types are complex data types that are made up of one or more Atomic data types, user-defined data types or arrays. They are commonly called “structures” in other programming languages such as C. The pre-defined data types already exist in RS Logix 5000 with every new project that is created. One of the most common pre-defined data types is the TIMER data type.

A TIMER data type comprises these members:
PRE (preset member that is a DINT atomic data type)
.ACC (accumulated member that is a DINT atomic data type)
.EN (enabled member that is a BOOL atomic data type)
.TT (timer timing member that is a BOOL atomic data type)
.DN (done member that is a BOOL atomic data type)
.FS (first scan member that is a BOOL atomic data type)
.LS (last scan member that is a BOOL atomic data type)
.OV (over member that is a BOOL atomic data type)
.ER (error member that is a BOOL atomic data type)

So if you create a TIMER called Cycle in the PLC, you will have these tags:
Cycle.PRE, Cycle.ACC, Cycle.EN, Cycle.TT, Cycle.DN, Cycle.FS, Cycle.LS, Cycle.OV and Cycle.ER.

There are hundreds of pre-defined data types available in the RS Logix 5000 software.

All pre-defined data types are addressable in the C-more programming software. The pre-defined data types can be imported via the L5K file, however the configuration file “L5KPreDefine.txt” must be modified for this purpose. For more details, refer to application document AN-EA-004 on the AutomationDirect Tech Notes web page.

Array Data: An array is basically a data structure of a sequential set of the same data type. Each element is accessed by an index number. Arrays can be created from Atomic data types or complex data types (pre-defined or user-defined).

All array tags are addressable in the C-more programming software. Array tags can be imported via the L5K file. You may choose to limit the number of imported elements by adjusting the “Import Array Element Count Limit” field in the C-more programming software import window.

User Defined: User-defined data types are complex data types that are created by the user. They are very much like the pre-defined structures but the user may choose which data type members the user-defined data type is composed of. It is a very efficient way to organize data in the PLC.

Here is an example of a user-defined data type:

DintMember (which is a DINT member of this user-defined data type)
IntArray[10] (which is a INT array of this user-defined data type)
BoolArray[32] (which is a BOOL array of this user-defined data type)

If a Tag called “Example1” was added using the “DataType_A” data type, the RS Logix5000 software would create these tags:

All user-defined data types are addressable in the C-more programming software. User-defined data types are also importable via L5K file depending upon the members of the user-defined data type. Refer to application document AN-EA-004 on the AutomationDirect Tech Notes web page and see section 5.a. for details.

I/O Tag Data: I/O Tags are created automatically when an I/O module is added to the configuration. They are typically members of a complex data type. The complex data types differ based upon the module being configured and the various configuration options that the user has selected.

These data types are not directly importable into C-more via the L5K file but must be imported using the standard C-more Tag importation. There is a macro function available to help make I/O tags importation easier. I/O tags can also be manually entered.

Aliasing: Aliasing is a method to ‘de-reference’ the user tag from the memory location in the PLC. It could be said that Tag names themselves do this very thing but Aliasing creates another abstraction layer from tags such as I/O tags that can and will change very often. Aliasing is very useful for HMIs, where the data point is needed but the constant hassle of changing the name can become tedious. An example of an Alias in the RS Logix 5000 software is shown below:

Alias Example

In the example above, “Photoeye_Status” is an Alias to the I/O tag “Local:1:I.Data”. There are several Alias import options available in C-more. Here is an explanation of these options:

“Do not import Aliases” = This means, simply, that the C-more programming software will not import any Alias tag names.

“Import all Aliases & Tags” = This means that the C-more programming software will import everything that it can. If there are many Alias tags in the project, this method will result in duplicate tag references since you will have imported the base tag itself, as well as the Alias of that tag.

“Import only Aliases” = This option will only import those Tags that have Aliases.

“Import Aliases & Tags that do not have Aliases” = This option will import Alias tags but not the base tag that the Alias refers to and it will import tags that do not have Aliases.

Unfortunately, only importation of Aliases to BOOL I/O tags can be done with this method because the memory size for all other I/O data types cannot be derived from the L5K file. To import Aliases of all non-BOOL I/O tags, use the method outlined in section 5.b. of the application document AN-EA-004 on the AutomationDirect Tech Notes web page.

Program Scope Tags: Tags can be in two locations in the PLC: Controller Scope (globally accessible anywhere) or Program Scope (only available within that program).

Program Scope tags can be accessed via C-more HMI but they require additional syntax in front of the tag name. To access a Program Scope tag, you must enter “PROGRAM:program name.tag” name where PROGRAM is static text to identify that a Program Scope tag is following.

Next Issue…
In the next issue, Part 2 will cover importing and exporting the tag database, and how to optimize communications between C-more and the Allen-Bradley PLCs.

For the complete discussion (covering Parts 1 and 2), go to:
https://support.automationdirect.com and select the link to Technical and Application notes. Select the C-more link and download document AN-EA-004 (Using C-more HMI with Allen Bradley PLCs).

By Greg Philbrook
HMI and Communications Product Manager,