Micro830, Micro850, and Micro870 Programmable Controllers: User Manual

Download as pdf or txt
Download as pdf or txt
You are on page 1of 394

Micro830, Micro850, and Micro870

Programmable Controllers
Micro830 Controller Catalog Numbers 2080-LC30-10QWB, 2080-LC30-10QVB, 2080-LC30-16AWB, 2080-LC30-16QWB,
2080-LC30-16QVB, 2080-LC30-24QWB, 2080-LC30-24QVB, 2080-LC30-24QBB, 2080-LC30-48AWB, 2080-LC30-48QWB,
2080-LC30-48QVB, 2080-LC30-48QBB
Micro850 Controller Catalog Numbers 2080-LC50-24AWB, 2080-L50E-24AWB, 2080-LC50-24QWB, 2080-L50E-24QWB,
2080-LC50-24QVB, 2080-L50E-24QVB, 2080-LC50-24QBB, 2080-L50E-24QBB, 2080-LC50-48AWB, 2080-L50E-48AWB,
2080-LC50-48QWB, 2080-L50E-48QWB, 2080-LC50-48QWBK, 2080-L50E-48QWBK, 2080-LC50-48QVB,
2080-L50E-48QVB, 2080-LC50-48QBB, 2080-L50E-48QBB
Micro870 Controller Catalog Numbers 2080-LC70-24AWB, 2080-L70E-24AWB, 2080-LC70-24QWB, 2080-L70E-24QWB,
2080-LC70-24QWBK, 2080-L70E-24QWBK, 2080-L70E-24QWBN, 2080-L70E-24QWBNK, 2080-LC70-24QBB,
2080-L70E-24QBB, 2080-LC70-24QBBK, 2080-L70E-24QBBK, 2080-L70E-24QBBN

User Manual Original Instructions


Micro830, Micro850, and Micro870 Programmable Controllers User Manual

Important User Information


Read this document and the documents listed in the additional resources section about installation, configuration, and operation of this equipment before
you install, configure, operate, or maintain this product. Users are required to familiarize themselves with installation and wiring instructions in addition to
requirements of all applicable codes, laws, and standards.

Activities including installation, adjustments, putting into service, use, assembly, disassembly, and maintenance are required to be carried out by suitably
trained personnel in accordance with applicable code of practice.

If this equipment is used in a manner not specified by the manufacturer, the protection provided by the equipment may be impaired.

In no event will Rockwell Automation, Inc. be responsible or liable for indirect or consequential damages resulting from the use or application of this
equipment.

The examples and diagrams in this manual are included solely for illustrative purposes. Because of the many variables and requirements associated with
any particular installation, Rockwell Automation, Inc. cannot assume responsibility or liability for actual use based on the examples and diagrams.

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

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

Throughout this manual, when necessary, we use notes to make you aware of safety considerations.

WARNING: 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.

ATTENTION: 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, and recognize the consequence.

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

These labels may also be on or inside the equipment to provide specific precautions.

SHOCK HAZARD: Labels may be on or inside the equipment, for example, a drive or motor, to alert people that dangerous
voltage may be present.

BURN HAZARD: Labels may be on or inside the equipment, for example, a drive or motor, to alert people that surfaces may
reach dangerous temperatures.

ARC FLASH HAZARD: Labels may be on or inside the equipment, for example, a motor control center, to alert people to
potential Arc Flash. Arc Flash will cause severe injury or death. Wear proper Personal Protective Equipment (PPE). Follow ALL
Regulatory requirements for safe work practices and for Personal Protective Equipment (PPE).

The following icon may appear in the text of this document.

Identifies information that is useful and can help to make a process easier to do or easier to understand.

Rockwell Automation recognizes that some of the terms that are currently used in our industry and in this publication are not in alignment
with the movement toward inclusive language in technology. We are proactively collaborating with industry peers to find alternatives to such
terms and making changes to our products and content. Please excuse the use of such terms in our content while we implement these
changes.

2 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Table of Contents

Preface
About This Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Conformal Coated Catalogs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Download Firmware, AOP, EDS, and Other Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Summary of Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Additional Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Chapter 1
Hardware Overview Hardware Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Micro830 Controllers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Micro850 Controllers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Micro870 Controllers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Programming Cables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Embedded Serial Port Cables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Embedded Ethernet Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Chapter 2
About Your Controller Programming Software for Micro800 Controllers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Obtain Connected Components Workbench Software . . . . . . . . . . . . . . . . . . . . . . . 25
Use Connected Components Workbench Software . . . . . . . . . . . . . . . . . . . . . . . . . 25
Controller Changes in Run Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Using Run Mode Change (RMC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Uncommitted Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
RMC Memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Limitations of RMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Using Run Mode Configuration Change (RMCC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Using Modbus RTU Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Using EtherNet/IP Communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Safety Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Disconnect Main Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Safety Circuits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Power Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Periodic Tests of Master Control Relay Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Power Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Isolation Transformers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Power Supply Inrush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Loss of Power Source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Input States on Power Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Other Types of Line Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Prevent Excessive Heat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Master Control Relay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Using Emergency Stop Switches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 3


Table of Contents

Chapter 3
Install Your Controller Controller Mounting Dimensions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Mounting Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
DIN Rail Mounting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Panel Mounting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Panel Mounting Dimensions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
System Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Chapter 4
Wire Your Controller Wiring Requirements and Recommendation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Use Surge Suppressors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Recommended Surge Suppressors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Grounding the Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Wiring Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Controller I/O Wiring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Minimize Electrical Noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Analog Channel Wiring Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Minimize Electrical Noise on Analog Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Grounding Your Analog Cable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Wiring Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Embedded Serial Port Wiring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Chapter 5
Communication Connections Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Supported Communication Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Modbus RTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
CIP Serial Client/Server – DF1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Modbus TCP Client/Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
CIP Symbolic Client/Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
CIP Client Messaging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Sockets Client/Server TCP/UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
CIP Communications
Pass-thru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Examples of Supported Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Use Modems with Micro800 Controllers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Making a DF1 Point-to-point Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Construct Your Own Modem Cable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Configure Serial Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Configure CIP Serial Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Configure Modbus RTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Configure ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Configure Ethernet Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Validate IP Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Ethernet Host Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Configure CIP Serial Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
OPC Support Using FactoryTalk Linx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

4 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Table of Contents

Chapter 6
Micro870 Controller Distributed Channel Configuration for DNP3 Slave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Network Protocol Serial Port Link Layer Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Ethernet Layer Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
DNP3 Slave Application Layer Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Serial Link Layer Configuration Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Ethernet Layer Configuration Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
DNP3 Slave Application Layer Configuration Parameters . . . . . . . . . . . . . . . . . . . 80
DNP3 Slave Application Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Function Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Internal Indications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
DNP3 Objects and Controller Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
DNP3 Object Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
DNP3 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
DNP3 Data Set Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Object Quality Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
DNP3 Device Attribute Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Event Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Generate Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
DNP3 10K Event Logging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Control Generating Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Report Event By Polled Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Report Event By Unsolicited Response. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Collision Avoidance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Time Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Adjust for Daylight Saving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Diagnostics for Ethernet Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Diagnostics for Secure Authentication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Function Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Implementation Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Chapter 7
Program Execution in Micro800 Overview of Program Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Controllers Execution Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Optional Module Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Controller Load and Performance Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Periodic Execution of Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Power-up and First Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Variable Retention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Memory Allocation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Guidelines and Limitations for Advanced Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 5


Table of Contents

Chapter 8
EtherNet/IP Network Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
EtherNet/IP Network Functionality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Star Network Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Implicit Messaging I/O Nodes on an EtherNet/IP Network . . . . . . . . . . . . . . . . . . . . . . 132
Devices Included in the Node Count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Devices Excluded from the Node Count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
How to Add PowerFlex 520-series and Kinetix 5100 Drives over EtherNet/IP. . . . . . . 133
Add a PowerFlex 523 or PowerFlex 525 Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Add a Kinetix 5100 Drive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Modify an Existing Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Module Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Requested Packet Interval. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Type Definition in Module Dialog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Module Inhibiting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Predefined Tags in PowerFlex 520-series and Kinetix 5100 Drives . . . . . . . . . . . . . . . 140
Use of the User-defined Function Block Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Download the User-defined Function Block Instruction Files. . . . . . . . . . . . . . . . . . . . 146
Import the User-defined Function Block Instruction Files . . . . . . . . . . . . . . . . . . . . . . 146
Connection Fault Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

Chapter 9
Motion Control PTO Motion Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Use the Micro800 Motion Control Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Input and Output Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Motion Control Function Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
General Rules for the Motion Control Function Blocks . . . . . . . . . . . . . . . . . . . . . . 165
Motion Axis and Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Axis States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Motion Stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Motion Direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Axis Elements and Data Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Axis Error Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
MC_Engine_Diag Data Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Function Block and Axis Status Error Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Major Fault Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Motion Axis Configuration in Connected Components Workbench. . . . . . . . . . . . . . . . 182
Add New Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Edit Axis Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Axis Start/Stop Velocity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Real Data Resolution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
PTO Pulse Accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Motion Axis Parameter Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Delete an Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Monitor an Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Homing Function Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Conditions for Successful Homing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
MC_HOME_ABS_SWITCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

6 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Table of Contents

MC_HOME_LIMIT_SWITCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
MC_HOME_REF_WITH_ABS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
MC_HOME_REF_PULSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
MC_HOME_DIRECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Use PTO for PWM Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
POU PWM_Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
HSC Feedback Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

Chapter 10
Use the High-speed Counter and High-Speed Counter Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Programmable Limit Switch Programmable Limit Switch Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
What is High-Speed Counter? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Features and Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
HSC Inputs and Wiring Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
High-speed Counter (HSC) Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
HSC APP Data Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
HSC STS (HSC Status) Data Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
High-speed Counter (HSC) Function Block. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
HSC Commands (HScCmd) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
HSC_SET_STS Function Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Programmable Limit Switch (PLS) Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
PLS Data Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
PLS Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
PLS Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
HSC Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
HSC Interrupt Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
HSC Interrupt POU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
HSC Interrupt Status Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

Chapter 11
Controller Security Operation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Exclusive Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Password Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Disable Communication Ports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Work with a Locked Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Upload from a Password-Protected Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Debug a Password-Protected Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Download to a Password-Protected Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Transfer Controller Program and Password-Protect Receiving Controller . . . . . 228
Back Up and Restore a Password-Protected Controller. . . . . . . . . . . . . . . . . . . . . 229
Configure Controller Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Recover from a Lost Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Using the Memory Module Plug-in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 7


Table of Contents

Chapter 12
Using microSD Cards Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Project Backup and Restore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Backup and Restore Directory Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Power-up Settings in ConfigMeFirst.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
General Configuration Rules in ConfigMeFirst.txt . . . . . . . . . . . . . . . . . . . . . . . . . . 237
ConfigMeFirst.txt Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Deliver Project Updates to Customers Through Email . . . . . . . . . . . . . . . . . . . . . . 238
Data Log. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Data Log Directory Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Data Log Function (DLG) Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Recipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Recipe Directory Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Quick Start Projects for Data Log and Recipe Function Blocks . . . . . . . . . . . . . . . . . . 248
Use the Data Log Feature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Use the Recipe Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

Appendix A
Modbus Mapping for Micro800 Modbus Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Controllers Endian Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Mapping Address Space and Supported Data Types. . . . . . . . . . . . . . . . . . . . . . . . 261
Example 1, PanelView 800 HMI (Master) to Micro800 (Slave) . . . . . . . . . . . . . . . . . 262
Example 2, Micro800 (Master) to PowerFlex 4M Drive (Slave) . . . . . . . . . . . . . . . . 263
Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

Appendix B
Quick Starts Update Your Micro800 Controller Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Firmware Update From MicroSD Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Establish Communications Between RSLinx and a Micro830/Micro850/Micro870
Controller Through USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Configure Controller Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Set Controller Password. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Change Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Clear Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Use the High-Speed Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Create the HSC Project and Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Assign Values to the HSC Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Assign Variables to the Function Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Run the High-Speed Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Use the Programmable Limit Switch (PLS) Function . . . . . . . . . . . . . . . . . . . . . . . 287
Forcing I/Os. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Checking if Forces (locks) are Enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
I/O Forces After a Power Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Use Run Mode Change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Create the Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Edit the Project Using Run Mode Change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

8 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Table of Contents

Appendix C
User Interrupts Information About Using Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
What is an Interrupt? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
When Can the Controller Operation be Interrupted?. . . . . . . . . . . . . . . . . . . . . . . . 296
Priority of User Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
User Interrupt Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
User Fault Routine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
User Interrupt Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
STIS - Selectable Timed Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
UID - User Interrupt Disable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
UIE - User Interrupt Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
UIF - User Interrupt Flush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
UIC – User Interrupt Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Using the Selectable Timed Interrupt (STI) Function . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Selectable Time Interrupt (STI) Function Configuration and Status. . . . . . . . . . . . . . 303
STI Function Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
STI Function Status Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Using the Event Input Interrupt (EII) Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Event Input Interrupt (EII) Function Configuration and Status . . . . . . . . . . . . . . . . . . 305
EII Function Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
EII Function Status Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306

Appendix D
Troubleshooting Status Indicators on the Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Normal Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Error Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Fault Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Corrective Action for Recoverable and Nonrecoverable Faults . . . . . . . . . . . . . . 314
Retrieve a Fault Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Retrieve a Core Dump on Major Fault. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Controller Error Recovery Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Ethernet Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
General Diagnostic Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
EtherNet/IP Overview Diagnostic Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
System Diagnostic Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Controller Diagnostic Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Calling Rockwell Automation for Assistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

Appendix E
PID Function Blocks PID Function Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
IPIDCONTROLLER Function Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
How to Autotune . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
How Autotune Works. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Troubleshooting an Autotune Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
PID Application Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
PID Code Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 9


Table of Contents

Appendix F
System Loading Calculate Total Power for Your Micro830/Micro850/Micro870 Controller . . . . . . 333

Appendix G
Connect to Networks using DF1 DF1 Full-duplex Protocol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
DF1 Half-duplex Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
DF1 Half-duplex Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Considerations When Communicating as a DF1 Slave on a Multi-drop Link . . . . 336
Using Modems with Micro800 Programmable Controllers . . . . . . . . . . . . . . . . . . . 336
Modem Control Line Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
DF1 Full-duplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
DF1 Half-duplex Slave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
DF1 Half-duplex Master. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
DF1 Radio Modem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Configure DF1 Half-Duplex Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
RTS Send Delay and RTS Off Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Configure a Standard-Mode DF1 Half-duplex Master Station . . . . . . . . . . . . . . . . . . . . 339
Minimum DF1 Half-duplex Master ACK Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Determining Minimum Master ACK Timeout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
DF1 Half-Duplex Master Communication Diagnostics. . . . . . . . . . . . . . . . . . . . . . . 343
Configure a Message-based Mode DF1 Half-duplex
Master Station . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Configure a Slave Station . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Configure Poll Timeout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
DF1 Half-duplex Slave Communication Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . 347
Configure a Radio Modem Station . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
DF1 Radio Modem Communication Diagnostics. . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Configure the Store and Forward Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

Appendix H
User-defined Function Block PowerFlex 520-series User-defined Function Block Details . . . . . . . . . . . . . . . . . . . . . 353
Motion Instructions Kinetix 5100 Drive Device Object UDFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Configure UDFBs for Kinetix 5100 Drives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
raC_Dvc_K5100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
raC_UDT_Itf_K5100_Cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
raC_UDT_Itf_K5100_Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
raC_UDT_Itf_K5100_Cmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
raC_UDT_Itf_K5100_Sts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
UDFB Motion Instruction Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
raC_Opr_K5100_MSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
raC_Opr_K5100_MSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
raC_Opr_K5100_MAFR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
raC_Opr_K5100_MAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
raC_Opr_K5100_MAJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
raC_Opr_K5100_MAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
raC_Opr_K5100_MAI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
raC_Opr_K5100_MAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
raC_Opr_K5100_MAH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

10 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Table of Contents

raC_Opr_K5100_MAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Error Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

Appendix I
Use PCCC Commands and Use PCCC Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
MicroLogix Mapping Supported Subset of PCCC Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Map Variables to MicroLogix Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
How to Map a MicroLogix Address in Connected Components Workbench Software
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

Index
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 11


Table of Contents

Notes:

12 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Preface

About This Publication Use this manual if you are responsible for designing, installing, programming, or
troubleshooting control systems that use Micro800™ controllers.

You should have a basic understanding of electrical circuitry and familiarity with relay logic. If
you do not, obtain the proper training before using this product.

This manual is a reference guide for Micro800 controllers, plug-in modules, and accessories. It
describes the procedures you use to install, wire, and troubleshoot your controller. This
manual:
• Explains how to install and wire your controllers.
• Gives you an overview of the Micro800 controller system.

See the Online Help provided with Connected Components Workbench™ software for more
information on programming your Micro800 controller.

Conformal Coated Catalogs Catalog numbers with the suffix ‘K’ are conformal coated and their specifications are the same
as non-conformal coated catalogs.

Download Firmware, AOP, Download firmware, associated files (such as AOP, EDS, and DTM), and access product release
notes from the Product Compatibility and Download Center at rok.auto/pcdc.
EDS, and Other Files

Summary of Changes This publication contains the following new or updated information. This list includes
substantive updates only and is not intended to reflect all changes.
Topic Page
Updated section Update Key Change Method and Authority Certification Key 88, 89
Added section Adjust for Daylight Saving 115
Updated topic Memory Allocation 128
Updated table Module Properties Parameters 137
Updated section Requested Packet Interval 138
Added information on disabling communication ports 225, 226
Updated topic Operation Mode 225
Added OxF8A3 to table List of Error Codes for Micro800 Controllers 313
Added topic Retrieve a Core Dump on Major Fault 314
Updated table General Diagnostic Parameters 318
Updated section EtherNet/IP Overview Diagnostic Information 319
Updated section System Diagnostic Information 321
Updated table Controller Diagnostic Parameters 322
Added appendix Use PCCC Commands and MicroLogix Mapping 383

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 13


Preface

Additional Resources These documents contain additional information concerning related products from Rockwell
Automation. You can view or download publications at rok.auto/literature.
Additional Resources
Resource Description
Micro800 Programmable Controller Family Selection Guide, Provides information to help you select the Micro800 controller, plug-ins, expansion I/O, and
publication 2080-SG001 accessories, based on your requirements.
Provides detailed specifications for Micro800 controllers, expansion I/O modules, plug-in
Micro800 Programmable Controllers Technical Data, publication 2080-TD001 modules, and accessories.
Information on features, configuration, wiring, installation, and specifications for the
Micro800 Expansion I/O Modules User Manual, publication 2080-UM003 Micro800 expansion I/O modules and power supply.
Information on features, configuration, installation, wiring, and specifications for the
Micro800 Plug-in Modules User Manual, publication 2080-UM004 Micro800 plug-in modules.
Micro800 Programmable Controllers General Instructions Reference Manual, Information on instruction sets for developing programs for use in Micro800 control
publication 2080-RM001 systems.
Micro800 Programmable Controllers: Getting Started with Motion Control Provides quick start instructions for implementing a motion control project in Connected
Using a Simulated Axis Quick Start, publication 2080-QS001 Components Workbench software.
Micro800 Programmable Controllers: Getting Started with CIP Client Provides quick start instructions for using CIP GENERIC and CIP Symbolic Messaging.
Messaging Quick Start, publication 2080-QS002
Micro800 Programmable Controllers: Getting Started with PanelView Plus Provides quick start instructions for using global variables for Micro800 controllers together
Quick Start, publication 2080-QS003 with PanelView™ Plus HMI terminals.
Configuring Micro800 Controllers on FactoryTalk Linx Gateway Quick Start, Provides quick start instructions for configuring a Micro800 controller on FactoryTalk Linx
publication 2080-QS005 Gateway.
Set up Micro800 Controllers for Implicit (Class 1) Comms with POINT I/O Provides quick start instructions on how to set up Micro800 controllers to use Class 1
Adapters, publication 2080-QS006 communications with POINT I/O™ adapters.
Micro800 Programmable Controller External AC Power Supply Installation Information on mounting and wiring the optional external power supply.
Instructions 2080-IN001
Micro800 Programmable Controllers Installation Instructions,
publication 2080-IN013 Information on mounting and wiring Micro800 Controllers
Micro800 16-point and 32-point 12/24V Sink/Source Input Modules Information on mounting and wiring the expansion I/O modules (2085-IQ16, 2085-IQ32T)
Installation Instructions, publication 2085-IN001
Micro800 Bus Terminator Module Installation Instruction, Information on mounting and wiring the expansion I/O bus terminator (2085-ECR)
publication 2085-IN002
Micro800 16-point Sink and 16-point Source 12/24V DC Output Modules
Installation Instructions, publication 2085-IN003 Information on mounting and wiring the expansion I/O modules (2085-OV16, 2085-OB16)
Micro800 8-point and 16-point AC/DC Relay Output Modules Installation Information on mounting and wiring the expansion I/O modules (2085-OW8, 2085-OW16)
Instructions, publication 2085-IN004
Micro800 8-point Input and 8-point Output AC Modules Installation Information on mounting and wiring the expansion I/O modules (2085-IA8, 2085-IM8, 2085-
Instructions, publication 2085-IN005 OA8)
Micro800 4-channel and 8-channel Analog Voltage/current Input and Output Information on mounting and wiring the expansion I/O modules (2085-IF4, 2085-IF8, 2085-
Modules Installation Instructions, publication 2085-IN006 OF4)
Micro800 4-channel Thermocouple/RTD Input Module Installation Information on mounting and wiring the expansion I/O module (2085-IRT4)
Instructions, publication 2085-IN007
Micro870 Programmable Controllers 24V DC Expansion Power Supply Information on mounting and wiring the optional external power supply for expansion I/O
Installation Instructions, publication 2085-IN008 modules.
Micro800 RS-232/RS-485 Isolated Serial Port Plug-in Module Wiring Information on mounting and wiring the Micro800 RS-232/RS-485 Isolated Serial Port Plug-
Diagrams, publication 2080-WD002 in Module.
Micro800 Non-isolated Unipolar Analog Input Plug-in Module Wiring Information on mounting and wiring the Micro800 Non-isolated Unipolar Analog Input Plug-
Diagrams, publication 2080-WD003 in Module.
Micro800 Non-isolated Unipolar Analog Output Plug-in Module Wiring Information on mounting and wiring the Micro800 Non-isolated Unipolar Analog Output Plug-
Diagrams, publication 2080-WD004 in Module.
Micro800 Non-isolated RTD Plug-in Module Wiring Diagrams, Information on mounting and wiring the Micro800 Non-isolated RTD Plug-in Module.
publication 2080-WD005
Micro800 Non-isolated Thermocouple Plug-in Module Wiring Diagrams, Information on mounting and wiring the Micro800 Non-isolated Thermocouple Plug-in
publication 2080-WD006 Module.
Micro800 Memory Backup and High Accuracy RTC Plug-In Module Wiring Information on mounting and wiring the Micro800 Memory Backup and High Accuracy RTC
Diagrams, publication 2080-WD007 Plug-In Module.
Micro800 6-Channel Trimpot Analog Input Plug-In Module Wiring Diagrams, Information on mounting and wiring the Micro800 6-Channel Trimpot Analog Input Plug-In
publication 2080-WD008 Module.
Micro800 Digital Relay Output Plug-in Module Wiring Diagrams, Information on mounting and wiring the Micro800 Digital Relay Output Plug-in Module.
publication 2080-WD010
Micro800 Digital Input, Output, and Combination Plug-in Modules Wiring Information on mounting and wiring the Micro800 Digital Input, Output, and Combination
Diagrams, publication 2080-WD011 Plug-in Modules.

14 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Preface

Additional Resources (Continued)


Resource Description
Micro800 High-speed Counter Plug-in Module Wiring Diagram, Information on mounting and wiring the High-speed Counter Plug-in module.
publication 2080-WD012
Micro800 DeviceNet Plug-in Module Wiring Diagram, publication 2080-WD013 Information on mounting and wiring the Micro800 DeviceNet® plug-in module.
Describes how to configure and use EtherNet/IP devices to communicate on the EtherNet/IP
EtherNet/IP Network Devices User Manual, publication ENET-UM006 network.
Ethernet Reference Manual, publication ENET-RM002 Describes basic Ethernet concepts, infrastructure components, and infrastructure features.
Provides guidance on how to conduct security assessments, implement Rockwell
System Security Design Guidelines Reference Manual, Automation products in a secure system, harden the control system, manage user access,
publication SECURE-RM001 and dispose of equipment.
Industrial Components Preventive Maintenance, Enclosures, and Contact Provides a quick reference tool for Allen-Bradley® industrial automation controls and
Ratings Specifications, publication IC-TD002 assemblies.
Designed to harmonize with NEMA Standards Publication No. ICS 1.1-1987 and provides
Safety Guidelines for the Application, Installation, and Maintenance of general guidelines for the application, installation, and maintenance of solid-state control in
Solid-state Control, publication SGI-1.1 the form of individual devices or packaged assemblies incorporating solid-state
components.
Industrial Automation Wiring and Grounding Guidelines, publication 1770-4.1 Provides general guidelines for installing a Rockwell Automation® industrial system.
Product Certifications website, rok.auto/certifications Provides declarations of conformity, certificates, and other certification details.

You can download the latest version of Connected Components Workbench software for your
Micro800 controller at rok.auto/ccw.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 15


Preface

Notes:

16 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 1

Hardware Overview

This chapter provides an overview of the Micro830®, Micro850®, and Micro870® controller
hardware features.

Hardware Features Micro830, Micro850, and Micro870 controllers are economical brick style controllers with
embedded inputs and outputs. The controllers can accommodate from two to five plug-in
modules, depending on the controller type. The Micro850 and Micro870 controllers have
expandable features. The Micro850 controller supports up to four expansion I/O modules and
the Micro870 controller supports up to eight expansion I/O modules.

IMPORTANT For information on supported plug-in modules and expansion I/O


modules, see the following publications:
• Micro800 Expansion I/O Modules User Manual, publication 2080-UM003
• Micro800 Plug-in Modules User Manual, publication 2080-UM004

The controllers also accommodate any class 2 rated 24V DC output power supply that meets
minimum specifications, such as the optional Micro800 power supply.

For descriptions of status indicator operation for troubleshooting purposes, see


Troubleshooting on page 307.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 17


Chapter 1 Hardware Overview

Micro830 Controllers
Micro830 10/16-point controllers and status indicators
1 2 3 4 5 6 7 8
Controller Status indicator

14
15
16
17
18
19
20

13 12 11 10 9 6 9 8

Micro830 24-point controllers and status indicators

1 2 3 4 5 6 7 8
Controller Status indicator

14

15
16
17
18
19

20

13 12 11 10 9 6 9 8

Micro830 48-point controllers and status indicators

1 2 3 4 5 8 6 7 8
Controller Status indicator

14

15
16
17
18
19
20

13 12 11 10 6 9 8

18 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 1 Hardware Overview

Micro830 Controller Description


Description Description
1 Status indicators 8 Mounting screw hole / mounting foot
2 Optional power supply slot 9 DIN rail mounting latch
3 Plug-in latch 10 Mode switch
4 Plug-in screw hole 11 Type B connector USB port
5 40-pin high-speed plug-in connector 12 RS-232/RS-485 non-isolated combo serial port
6 Removable I/O terminal block 13 Optional AC power supply
7 Right-side cover

Micro830 Controller Status Indicator Description (1)


Description Description
14 Input status 18 Force status
15 Power status 19 Serial communications status
16 Run status 20 Output status
17 Fault status
(1) For detailed description of the different status LED indicators, see Troubleshooting on page 307.

Micro850 Controllers
Micro850 24-point controllers and status indicators
1 2 3 4 5 6 7 8
Controller Status indicators

16

17
18
19
20
21
22
23

24

15 14 13 12 11 10 6 10 8 9

Micro850 48-point controllers and status indicators

1 2 3 4 5 8 6 7 8
Controller Status indicators

16

17
18
19
20
21
22
23
24

15 14 13 12 11 6 10 8 9

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 19


Chapter 1 Hardware Overview

Micro850 Controller Description


Description Description
1 Status indicators 9 Expansion I/O slot cover
2 Optional power supply slot 10 DIN rail mounting latch
3 Plug-in latch 11 Mode switch
4 Plug-in screw hole 12 Type B connector USB port
5 40-pin high-speed plug-in connector 13 RS-232/RS-485 non-isolated combo serial port
RJ45 EtherNet/IP connector
6 Removable I/O terminal block 14 (with embedded yellow and green LED indicators)
7 Right-side cover 15 Optional AC power supply
8 Mounting screw hole/mounting foot

Micro850 Controller Status Indicator Description (1)


Description Description
16 Input status 21 Fault status
17 Module status 22 Force status
18 Network status 23 Serial communications status
19 Power status 24 Output status
20 Run status
(1) For detailed description of the different status LED indicators, see Troubleshooting on page 307.

You can order the following replacement terminal blocks separately:


• 2080-RPL24RTB for 24-point base controllers
• • 2080-RPL48RTB for 48-point base controllers

Micro870 Controllers
Micro870 24-point controllers and status indicators
1 2 3 4 5 6 7 8
Controller Status indicators

16

17
18
19
20
21
22
23

24

15 14 13 12 11 10 6 10 8 9

Micro870 Controller Description


Description Description
1 Status indicators 9 Expansion I/O slot cover
2 Optional power supply slot 10 DIN rail mounting latch
3 Plug-in latch 11 Mode switch
4 Plug-in screw hole 12 Type B connector USB port
5 40-pin high-speed plug-in connector 13 RS-232/RS-485 non-isolated combo serial port
RJ45 EtherNet/IP connector
6 Removable I/O terminal block 14 (with embedded yellow and green LED indicators)
7 Right-side cover 15 Optional AC power supply
8 Mounting screw hole/mounting foot

20 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 1 Hardware Overview

Micro870 Controller Status Indicator Description (1)


Description Description
16 Input status 21 Fault status
17 Module status 22 Force status
18 Network status 23 Serial communications status
19 Power status 24 Output status
20 Run status
(1) For detailed description of the different status LED indicators, see Troubleshooting on page 307.

You can order replacement terminal blocks, catalog number 2080-RPL24RTB,


separately.

Table 1 - Micro830 Controllers – Number and Types of Inputs/Outputs


Inputs Outputs
Catalog Number PTO Support HSC Support
110V AC 24V DC/V AC Relay 24V Sink 24V Source
2080-LC30-10QWB – 6 4 – – – 2
2080-LC30-10QVB – 6 – 4 – 1 2
2080-LC30-16AWB 10 – 6 – – – –
2080-LC30-16QWB – 10 6 – – – 2
2080-LC30-16QVB – 10 – 6 – 1 2
2080-LC30-24QWB – 14 10 – – – 4
2080-LC30-24QVB – 14 – 10 – 2 4
2080-LC30-24QBB – 14 – – 10 2 4
2080-LC30-48AWB 28 – 20 – – – –
2080-LC30-48QWB – 28 20 – – – 6
2080-LC30-48QVB – 28 – 20 – 3 6
2080-LC30-48QBB – 28 – – 20 3 6

Table 2 - Micro850 Controllers – Number and Types of Inputs/Outputs


Inputs Outputs
Catalog Number PTO Support HSC Support
120V AC 24V DC/V AC Relay 24V Sink 24V Source
2080-LC50-24AWB 14 – 10 – – – –
2080-L50E-24AWB 14 – 10 – – – –
2080-LC50-24QWB – 14 10 – – – 4
2080-L50E-24QWB – 14 10 – – – 4
2080-LC50-24QVB – 14 – 10 – 2 4
2080-L50E-24QVB – 14 – 10 – 2 4
2080-LC50-24QBB – 14 – – 10 2 4
2080-L50E-24QBB – 14 – – 10 2 4
2080-LC50-48AWB 28 – 20 – – – –
2080-L50E-48AWB 28 – 20 – – – –
2080-LC50-48QWB – 28 20 – – – 6
2080-L50E-48QWB – 28 20 – – – 6
2080-LC50-48QWBK – 28 20 – – – 6
2080-L50E-48QWBK – 28 20 – – – 6
2080-LC50-48QVB – 28 – 20 – 3 6
2080-L50E-48QVB – 28 – 20 – 3 6
2080-LC50-48QBB – 28 – – 20 3 6
2080-L50E-48QBB – 28 – – 20 3 6

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 21


Chapter 1 Hardware Overview

Table 3 - Micro870 Controllers – Number and Types of Inputs/Outputs


Inputs Outputs
Catalog Number PTO Support HSC Support
120V AC 24V DC/V AC Relay 24V Sink 24V Source
2080-LC70-24AWB 14 – 10 – – – –
2080-L70E-24AWB 14 – 10 – – – –
2080-LC70-24QWB – 14 10 – – – 4
2080-L70E-24QWB – 14 10 – – – 4
2080-LC70-24QWBK – 14 10 – – – 4
2080-L70E-24QWBK – 14 10 – – – 4
2080-L70E-24QWBN – 14 10 – – – 4
2080-L70E-24QWBNK – 14 10 – – – 4
2080-LC70-24QBB – 14 – – 10 2 4
2080-L70E-24QBB – 14 – – 10 2 4
2080-LC70-24QBBK – 14 – – 10 2 4
2080-L70E-24QBBK – 14 – – 10 2 4
2080-L70E-24QBBN – 14 – – 10 2 4

Programming Cables
Micro800 controllers have a USB interface that lets you use standard USB cables as
programming cables.

Use a standard USB type A-male to type B-male cable for programming the controller.

Embedded Serial Port Cables


Embedded serial port cables for communication are listed here. All embedded serial port
cables must be 3 meters (9.8 feet) in length, or shorter.
Table 4 - Embedded Serial Port Cable Selection Chart
Connectors Length Catalog Number Connectors Length Catalog Number
8-pin Mini DIN to 8-pin Mini DIN 0.5 m (1.5 ft) 1761-CBL-AM00(1) 8-pin Mini DIN to 9-pin D-shell 0.5 m (1.5 ft) 1761-CBL-AP00(1)
8-pin Mini DIN to 8-pin Mini DIN 2 m (6.5 ft) 1761-CBL-HM02(1) 8-pin Mini DIN to 9-pin D-shell 2 m (6.5 ft) 1761-CBL-PM02(1)
8-pin Mini DIN to 8-pin Mini DIN (with lock 2 m (6.5 ft) 8-pin Mini DIN with lock mechanism to
1761-CBL-AH02 2 m (6.5 ft) 1761-CBL-PH02
mechanism on both connectors) 9-pin D-shell
8-pin Mini DIN to 6-pin RS-485 terminal
— 30 cm (11.8 in.) 1763-NC01 series A
block
(1) Series C or later for Class 1 Div 2 applications.

Embedded Ethernet Support


For Micro850 and Micro870 controllers, a 10/100 Base-T Port (with embedded green and yellow
LED indicators) provides connection to an Ethernet network with any standard RJ45 Ethernet
cable. The LED indicators serve as indicators for transmit and receive status.

22 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 1 Hardware Overview

RJ45 Ethernet Port Pin Mapping


Contact
Number Signal Direction Primary Function Yellow LED
1 TX+ OUT Transmit data + RJ45 connector
2 TX- OUT Transmit data - Green LED
3 RX+ IN Differential Ethernet receive data +
4 Terminated
The yellow status LED indicates Link
5 Terminated
(steady yellow) or No Link (off).
6 RX- IN Differential Ethernet receive data -
7 Terminated The green status LED indicates activity
8 Terminated (flashing green) or no activity (off).
Shield Chassis ground

Micro850 and Micro870 controllers support Ethernet crossover cables (2711P-CBL-EX04).

Ethernet Status Indication

Micro850 and Micro870 controllers also support two LEDs for EtherNet/IP™ to indicate the
following:
• Module status
• Network status

For descriptions of Module and Network status indicators, see Troubleshooting on page 307.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 23


Chapter 1 Hardware Overview

Notes:

24 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 2

About Your Controller

Programming Software for Connected Components Workbench software is a set of collaborative tools supporting
Micro800 controllers. It is based on Rockwell Automation and Microsoft® Visual Studio®
Micro800 Controllers technology and offers controller programming, device configuration, and integration with an
HMI editor. Use this software to program your controllers, configure your devices, and design
your operator interface applications.

Connected Components Workbench software provides a choice of IEC 61131-3 programming


languages (ladder diagram, function block diagram, and structured text) with user-defined
function block support that optimizes machine control.

Obtain Connected Components Workbench Software


There are two editions for the Connected Components Workbench software:
• You can download Connected Components Workbench Standard Edition software for
free at rok.auto/pcdc.
• To purchase Connected Components Workbench Developer Edition software,
visit rok.auto/ccw.

Use Connected Components Workbench Software


To help you program your controller through the Connected Components Workbench software,
you can see the Connected Components Workbench Online Help that comes with the software.

IMPORTANT The new Micro850 (2080-L50E) and Micro870 (2080-L70E) controllers


are only supported from Connected Components Workbench software
version 20.01.00 onwards.

Controller Changes in Micro830, Micro850, and Micro870 controllers allow you to make certain changes while in Run
mode by using the following features:
Run Mode
• Run Mode Change (RMC)
Allows logic modifications to a running project without going to Remote Program mode.
For more information, see Using Run Mode Change (RMC) on page 25.
• Run Mode Configuration Change (RMCC)
Allows changing the address configuration of the controller to be made within a
program during Run mode.
For more information, see Using Run Mode Configuration Change (RMCC) on page 29.

Using Run Mode Change Run Mode Change (RMC) is a productivity enhancement feature that is supported in Connected
Components Workbench software for Micro830, Micro850, and Micro870 controllers. This
(RMC) feature saves you time by allowing logic modifications to a running project without going to
Remote Program mode and without disconnecting from the controller.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 25


Chapter 2 About Your Controller

IMPORTANT Micro830 and Micro850 controller firmware revision 8.011 or later is also
required to use Run Mode Change.
RMC is useful during project development, when you add small changes incrementally to the
logic and want to see the effects of the changes on the machine immediately. With RMC, since
the controller stays in Remote Run mode, the controller logic and machine actuators do not
have to reinitialize constantly, which can occur if the controller is switched to Remote
Program mode (for example, the first scan bit is checked in the program logic to clear
outputs).

When you edit, build, and download a project without using RMC, a full build of the entire
controller project is performed and a full download of the project is performed. During RMC an
incremental build is performed and only incremental changes are downloaded to the
controller.

IMPORTANT Do not disconnect from the controller after you perform Run Mode
Change, do a full build, and then try to reconnect. Connected
Components Workbench software treats the project in the controller as
different from the project in Connected Components Workbench
software, even though the logic is identical, and asks to either upload or
download the project.

RMC is performed incrementally at the end of every program scan to help prevent a large delay
in the program scan. This process adds up to an additional 12 ms to the scan time. For
example, if the program scan is normally 10 ms, it may increase to 22 ms during RMC until the
update is finished. Similarly, user interrupts may be delayed.
Table 5 - Example of the Benefits of Using RMC – 20% Reduction in Download Time
Number of Time to Perform Conventional Download Time to Test Logic and Accept Changes
Changes (seconds) (seconds)
1 36 29
5 180 130
10 360 255
Memory size of project used for comparison:
Data = 14,784 bytes; Program = 2,352 bytes
Note: The duration starts when connected to the controller and the RMC button is selected. The duration ends
when the accept change process is finished.
For example:
1. When connected to the controller, select RMC.
2. Modify the program.
3. Select Test Logic.
4. Select Accept to finish, or select Test Logic to make another change.

ATTENTION: Use extreme caution when you use Run Mode Change. Mistakes
can injure personnel and damage equipment. Before using Run Mode Change:
• Assess how machinery responds to the changes.
• Notify all personnel about the changes.

A new global variable __SYSVA_PROJ_INCOMPLETE is added to indicate when Run Mode


Changes are being made. Use this variable to notify personnel on the HMI that there are
uncommitted changes in the controller.
Table 6 - Bit Definitions of Global Variable – __SYSVA_PROJ_INCOMPLETE
Bit Definition
Set when the Run Mode Change process starts.
Cleared once the Run Mode Change is written permanently to the controller (completion of Accept or
0 Undo).
This bit can be used to warn operators that a run mode change is in progress and that there are
uncommitted changes in the controller.
Set if an error occurred while saving the changes to the flash memory or an integrity check failed
1 during Run Mode Change.
Cleared on the next successful Run Mode change.

26 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 2 About Your Controller

When you perform a Test Logic Change, the value of the variable changes from zero to one.
After you choose to accept or undo the changes, the value of the variable resets to zero.
IMPORTANT When a Test Logic is performed, or undoing changes after the Test Logic
is completed, any active communication instructions are aborted while
the changes are downloaded to the controller.

Uncommitted Changes
Uncommitted changes are changes that are made in RMC that have not been accepted or
undone after a Test Logic Change is performed.

If the controller power loses power while there are uncommitted changes, you cannot reenter
RMC upon reconnection. You can choose to download the project again to keep the changes, or
upload to discard the uncommitted changes.

If you choose to upload a project with uncommitted changes from the controller, you cannot
enter RMC until you have done a full download.

RMC Memory
Run Mode Change (RMC) memory is used to store both the logic and user variable changes
made during RMC. The default amount of memory that is allocated is 2 KB and can be
increased up to 16 KB. However, there is still a limit of 2 KB for logic and user variables
changes per Test Logic. To adjust the amount of RMC memory, the controller must be offline.
After you have adjusted the amount, you must build the project and download it to the
controller.

IMPORTANT In a Connected Components Workbench software version 8 project, the


available user data space was reduced by 6 KB to support optimal
project settings for the new RMC feature.
If you have a project that was developed before version 8, you may need
to reduce the default “Allocated” 8 KB Temporary Variables section from
the Memory page to compile the project successfully.
Figure 1 - Controller Memory Diagnostics Page in Connected Components Workbench Software

During RMC, an incremental build is performed and only incremental changes are downloaded
to the controller until the RMC memory is filled.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 27


Chapter 2 About Your Controller

Figure 2 - RMC Memory Usage Example


Controller memory RMC memory
(for User Program + Data) (Default size = 2 KB)
First change Second change Third change
and Test Logic and Test Logic and Test Logic
(Add logic) (Remove logic) (Add logic)

Free memory

Free RMC memory Used RMC memory

Used memory

If insufficient RMC memory is available to make more changes (for example, a “not enough
memory” error message appears during the RMC build or Test Logic), then you must perform a
full download to transfer the incremental changes from the RMC memory to the standard user
program and data memory.

Transfer Contents in RMC Memory to Controller Memory

The changes that you made during RMC are stored in the RMC memory and remain there until
you perform a full build and download (while the controller is disconnected).
Figure 3 - RMC Memory Usage When Performing Full Build and Download Example
Controller memory RMC memory
(for User program + Data) (Default size = 2 KB)

Free memory Free RMC memory

Used RMC memory is copied


New used memory to controller memory

However, if the controller memory has insufficient space remaining to copy the contents of
the RMC memory as shown in Figure 4, the operation fails and a “not enough memory” error
message appears. Do not use RMC if you are near the limits of your controller memory.
Figure 4 - Insufficient Controller Memory Example
Controller memory RMC memory
(for User program + Data) (Default size = 2 KB)

Free RMC memory

Error occurs due to insufficient


Used memory controller memory remaining

28 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 2 About Your Controller

Limitations of RMC
Take note of the following limitations when using the Run Mode Change (RMC) feature:
• Configuration changes cannot be made (for example, change filter times).
• Up to 2 KB of logic (approximately 150 Boolean instructions(1)) and user variables can be
added for each Test Logic.
• Total memory allocated for RMC (cumulative of all Test Logic Changes) can be increased
from 2...16 KB, but the 2 KB limit for logic and user variables per Test Logic remains.
• Up to 20 Program Organizational Units (POU) can be added for each change (for
example, if you currently have 5 POU, you can add 20 more for a total of 25 POU).
• If a user-defined function block is modified that changes the local variables, the local
variables are reinitialized or reset to zero and a warning message is shown during the
build. If you want to reapply the initial value, right-click on the UDFB and select
Refactor > Reset Initial Values of Instances.
• If a new module is detected after doing a Discover Project operation, RMC is not
possible because the configuration has changed.
• Exchange files cannot be imported when in RMC because it is considered a
configuration change.
• Making changes to the display configuration (for example, to hide comments) are
treated as logic changes and require you to build the project.
• Global variables cannot be deleted or modified in RMC, but can be added. To delete or
modify a global variable, you must disconnect the controller from the Connected
Components Workbench software.
• When using CIP™ messaging in RMC, setting the CIPTARGETCFG data type parameter
ConnClose to TRUE has no effect. The Ethernet session does not close immediately
upon successful messaging and you have to wait for the connection to time out after 60
seconds. This behavior applies to Connected Components Workbench software version
9 or earlier projects. For version 10 or later projects, the CIP connection timeout is
configurable.

WARNING: If you delete the output rung when in Run Mode Change and accept
the changes, the output on the controller remains ON.

For an example of how to use this feature, see Use Run Mode Change on page 290.

Using Run Mode Run Mode Configuration Change (RMCC) is a productivity enhancement feature that is
supported in Connected Components Workbench software for Micro830, Micro850, and
Configuration Change Micro870 controllers. It allows you to reuse an identical program with multiple controllers by
(RMCC) changing the address configuration of a controller within the program during Run mode.
Micro830 and Micro850 controller firmware revision 9.011 or later is required to use this
feature.

You can use RMCC to change the address configuration of the controller during Run mode,
when the communication protocol is set to Modbus RTU for the serial ports or EtherNet/IP for
the Ethernet port. RMCC uses a CIP Generic message, which can only be sent from within a
controller program and not from an external device to the controller.

IMPORTANT During RMCC, the scan time may increase to close to 100 ms. Do not
perform RMCC if the controller is performing time critical operations.

(1) Approximately 85 Boolean instructions for Micro850 (2080-L50E) and Micro870 (2080-L70E) controllers.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 29


Chapter 2 About Your Controller

Figure 5 - CIP Generic Message Instruction for Run Mode Configuration Change

Only the controller that is sending the message can perform RMCC. To perform RMCC, you must
configure the CIP Generic message as a loop-back message by setting the path to “0,0”.
Figure 6 - Configure CIP Generic Message as a Loop-back Message

For Micro830, Micro850, and Micro870 controllers, the address configuration change is
permanent and is retained when you cycle power to the controller.

Using Modbus RTU Communication


To use RMCC with the Modbus RTU communication protocol, the serial port must be set to the
Modbus slave role. A CIP Generic message is sent from within a program with the following
parameters.
Table 7 - CIP Generic Message Parameters for RMCC using Modbus RTU
Parameter Value
Service 16
Class 70
2 – Embedded serial port
Instance 5, 6, 7, 8, or 9 – Plug-in modules
Attribute 100
ReqData New node address, 1
ReqLen 2

Figure 7 - RMCC Modbus Example – Set the Parameters

30 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 2 About Your Controller

Figure 8 - RMCC Modbus Example – Set the New Node Address

The first byte indicates the new node address for the controller. For this example, the new
node address is “3”. The second byte must always be “1”, this indicates that the Modbus role is
configured as Slave.
Figure 9 - RMCC Modbus Example – Set the Message Length

When the new node address is configured and applied, the port is not restarted.

IMPORTANT You must verify that the new node address being configured is unique as
it is not checked against existing node addresses of other devices.

You can verify that the node address has changed after performing RMCC by examining the
Communication Diagnostics tab for the controller.
Figure 10 - RMCC Modbus Example – Verify Address Change

Using EtherNet/IP Communication


To use RMCC with the EtherNet/IP communication protocol, the controller must be configured
to use a static IP address. If the controller is configured to use BOOTP or DHCP, the change is
rejected. A CIP Generic message is sent from within a program with the following parameters.

Use RMCC when configuring the controller during commissioning. Immediately after changing
the IP address, the cycle time may increase up to 100 ms for one program scan.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 31


Chapter 2 About Your Controller

Table 8 - CIP Generic Message Parameters for RMCC using EtherNet/IP


Parameter Value
Service 16
Class 245
Instance 1
Attribute 5
ReqData IP address, subnet mask, Gateway address
ReqLen 22 bytes

Figure 11 - RMCC EtherNet/IP Example – Set the Parameters

Figure 12 - RMCC EtherNet/IP Example – Set the New IP Address

For this example, the new IP address is set to the following:


• IP address = 192.168.1.10
• Subnet mask = 255.255.255.0
• Gateway address = 192.168.1.1
Figure 13 - RMCC EtherNet/IP Example – Set the Message Length

32 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 2 About Your Controller

After the new IP address is configured and applied, the controller disconnects from the
Connected Components Workbench software if communication is through Ethernet.

IMPORTANT Micro830 controllers do not support Run Mode Configuration Change


using EtherNet/IP.

IMPORTANT You should not perform IP address changes continuously. Allow an


interval of at least six seconds before performing the next IP address
change in order for duplicate address detection to work properly.
You can verify that the IP address has changed after performing RMCC by examining the
Ethernet settings for the controller.
Figure 14 - RMCC EtherNet/IP Example – Verify Address Change

Safety Considerations Safety considerations are an important element of proper system installation. Actively
considering the safety of yourself and others, and the condition of your equipment, is of
primary importance. We recommend reviewing the following safety considerations.

Disconnect Main Power


The main power disconnect switch should be located where the switch is quickly and easily
accessible to operators and maintenance personnel. Besides disconnecting electrical power,
all other sources of power (pneumatic and hydraulic) should be de-energized before working
on a machine or process that is controlled by a controller.

WARNING: Explosion Hazard


Do not replace components, connect equipment, or disconnect equipment
unless power has been switched off.

Safety Circuits
Circuits that are installed on the machine for safety reasons, like overtravel limit switches,
stop push buttons, and interlocks, should always be hard-wired directly to the master control
relay. These devices must be wired in series so that when any one device opens, the master
control relay is de-energized, thus removing power to the machine. Never alter these circuits
to defeat their function. Serious injury or machine damage could result.

WARNING: Explosion Hazard


Do not connect or disconnect connectors while the circuit is live.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 33


Chapter 2 About Your Controller

Power Distribution
There are some points about power distribution that you should know:
• The master control relay must be able to inhibit all machine motion by removing power
to the machine I/O devices when the relay is de-energized. It is recommended that the
controller remains powered even when the master control relay is de-energized.
• If you are using a DC power supply, interrupt the load side rather than the AC line power.
This avoids the additional delay of power supply turn-off. The DC power supply should
be powered directly from the fused secondary of the transformer. Power to the DC input
and output circuits should be connected through a set of master control relay contacts.

Periodic Tests of Master Control Relay Circuit


Any part can fail, including the switches in a master control relay circuit. The failure of one of
these switches would most likely cause an open circuit, which would be a safe power-off
failure. However, if one of these switches shorts out, it no longer provides any safety
protection. These switches should be tested periodically to verify that they stop machine
motion when needed.

Power Considerations The following explains power considerations for the Micro800 controllers.

Isolation Transformers
You may want to use an isolation transformer in the AC line to the controller. This type of
transformer provides isolation from your power distribution system to reduce the electrical
noise that enters the controller, and is often used as a step-down transformer to reduce line
voltage. Any transformer that is used with the controller must have a sufficient power rating
for its load. The power rating is expressed in volt-amperes (VA).

Power Supply Inrush


During power-up, the Micro800 controller power supply allows a brief inrush current to charge
internal capacitors. Many power lines and control transformers can supply inrush current for a
brief time. If the power source cannot supply this inrush current, the source voltage may sag
momentarily.

The only effect of limited inrush current and voltage sag on the Micro800 controller is that the
power supply capacitors charge slower. However, the effect of a voltage sag on other
equipment should be considered. For example, a deep voltage sag may reset a computer that
is connected to the same power source.

The following considerations determine whether the power source must be required to supply
high inrush current:
• The power-up sequence of devices in a system.
• The amount of the power source voltage sag if the inrush current cannot be supplied.
• The effect of voltage sag on other equipment in the system.

If the entire system is powered-up simultaneously, a brief sag in the power source voltage
typically does not affect any equipment.

34 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 2 About Your Controller

Loss of Power Source


The optional Micro800 controller AC power supply is designed to withstand brief power losses
without affecting the operation of the system. The time the system is operational during
power loss is called the program scan hold-up time after loss of power. The duration of the
power supply hold-up time depends on the power consumption of the controller system, but is
typically between 10 milliseconds and 3 seconds.

Input States on Power Down


The power supply hold-up time as described earlier is longer than the turn-on and turn-off
times of the inputs. Because of this behavior, the controller may record the input state change
from “On” to “Off” that occurs when power is removed before the power supply shuts down the
system. It is important to understand this concept. You should write your program to account
for this effect.

Other Types of Line Conditions


Occasionally, the power source to the system can be temporarily interrupted. It is also possible
that the voltage level may drop substantially below the normal line voltage range for some
time. Both of these conditions are considered to be a loss of power for the system.

Prevent Excessive Heat For most applications, normal convective cooling keeps the controller within the specified
operating range. Verify that the specified temperature range is maintained. Proper spacing of
components within an enclosure is sufficient for heat dissipation.
In some applications, other equipment inside or outside the enclosure produces a substantial
amount of heat. To help with air circulation and to reduce “hot spots” near the controller, place
blower fans inside the enclosure.

Additional cooling provisions might be necessary when high ambient temperatures are
encountered.
Do not bring in unfiltered outside air. Place the controller in an enclosure to
protect it from a corrosive atmosphere. Harmful contaminants or dirt can cause
improper operation or damage to components. In extreme cases, you must use air
conditioning to protect against heat build-up within the enclosure.

Master Control Relay A hard-wired master control relay (MCR) provides a reliable means for emergency machine
shutdown. Since the master control relay allows the placement of several emergency stop
switches in different locations, its installation is important from a safety standpoint.
Overtravel limit switches or mushroom-head push buttons are wired in series so that when
any of them opens, the master control relay is de-energized. This removes power to input and
output device circuits. See Figure 15 on page 37 and Figure 16 on page 38.

WARNING: Never alter these circuits to defeat their function since serious injury
and/or machine damage can result.

If you use an external DC power supply, interrupt the DC output side rather than
the AC line side of the supply to avoid the additional delay of the power supply
turn-off.
The AC line of the DC output power supply should be fused.
Connect a set of master control relays in series with the DC power supplying the
input and output circuits.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 35


Chapter 2 About Your Controller

Place the main power disconnect switch where the switch is quickly and easily accessible to
operators and maintenance personnel. If you mount a disconnect switch inside the controller
enclosure, place the switch operating handle on the outside of the enclosure, so that you can
disconnect the power without opening the enclosure.

Whenever any of the emergency stop switches are opened, power to input and output devices
should be removed.

When you use the master control relay to remove power from the external I/O circuits, power
continues to be provided to the controller’s power supply so that diagnostic indicators on the
controller can still be observed.

The master control relay is not a substitute for a disconnect to the controller. It is intended for
any situation where the operator must quickly de-energize I/O devices only. When you inspect
or install terminal connections, replace output fuses, or work on equipment within the
enclosure, use the disconnect to shut off power to the rest of the system.
Do not control the master control relay with the controller. Provide the operator
with the safety of a direct connection between an emergency stop switch and the
master control relay.

Using Emergency Stop Switches


When using emergency stop switches, adhere to the following points:
• Do not program emergency stop switches in the controller program. Any emergency
stop switch should turn off all machine power by turning off the master control relay.
• Observe all applicable local codes concerning the placement and labeling of emergency
stop switches.
• Install emergency stop switches and the master control relay in your system. Verify that
relay contacts have a sufficient rating for your application. Emergency stop switches
must be easy to reach.
• In Figure 15 and Figure 16, input and output circuits are shown with MCR protection.
However, in most applications, only output circuits require MCR protection.

Figure 15 and Figure 16 show the Master Control Relay that is wired in a grounded system.
In most applications, input circuits do not require MCR protection; however, if you
must remove power from all field devices, you must include MCR contacts in series
with input power wiring.

36 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 2 About Your Controller

Figure 15 - Schematic with IEC Symbols


L1 L2
230V AC

Disconnect
Fuse MCR

230V AC
I/O circuits

Isolation Operation of either of these contacts removes


transformer power from the external I/O circuits and stops Master Control Relay (MCR)
115V AC or machine motion. Catalog Number 700-PK400A1
X1 X2
230V AC
Emergency stop Suppressor
Start Catalog Number 700-N24
Fuse push button Stop
Overtravel limit
switch
MCR

Suppr.
MCR

MCR
115V AC or 230V AC
I/O circuits

DC power supply
Use IEC 950/EN 60950
_ + MCR
(Lo) (Hi) 24V DC
I/O circuits
Line terminals: Connect to terminals of power supply.
Line terminals: Connect to 24V DC terminals of power supply.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 37


Chapter 2 About Your Controller

Figure 16 - Schematic with ANSI/CSA Symbols


L1 L2
230V AC

Disconnect
Fuse MCR
230V AC
output
circuits

Isolation Operation of either of these contacts removes


transformer power from the external I/O circuits and stops
Master Control Relay (MCR)
115V AC or machine motion.
X1 X2 Catalog Number 700-PK400A1
230V AC Emergency stop Suppressor
Fuse push button Start Catalog Number 700-N24
Overtravel limit Stop
switch
MCR

Suppr.
MCR

MCR

115V AC or 230V AC
I/O circuits

DC power supply. Use NEC


Class 2 for UL Listing
_ MCR
+
(Lo) (Hi)
24V DC
I/O circuits
Line terminals: Connect to terminals of power supply
Line terminals: Connect to 24V DC terminals of power supply.

38 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 3

Install Your Controller

This chapter guides you on how to install the controller.

Controller Mounting Mounting Dimensions


Dimensions
Mounting dimensions exclude mounting feet or DIN rail latches.
Micro830 10-point and 16-point Controllers
2080-LC30-10QWB, 2080-LC30-10QVB, 2080-LC30-16AWB, 2080-LC30-16QWB, 2080-LC30-16QVB
100 (3.94) 80 (3.15)

90 (3.54)

Measurements in mm (in.)

Micro830 24-point Controllers


2080-LC30-24QW8B, 2080-LC30-24QVB, 2080-LC30-24QBB
150 (5.91) 80 (3.15)

90 (3.54)

Measurements in mm (in.)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 39


Chapter 3 Install Your Controller

Micro830 48-point Controllers


2080-LC30-48AWB, 2080-LC30-48QWB, 2080-LC30-48QVB, 2080-LC30-48QBB
230 (9.06) 80 (3.15)

90 (3.54)

Measurements in mm (in.)

Micro850 24-point Controllers


2080-LC50-24AWB, 2080-LC50-24QWB, 2080-LC50-24QVB, 2080-LC50-24QBB,
2080-L50E-24AWB, 2080-L50E-24QWB, 2080-L50E-24QVB, 2080-L50E-24QBB

Micro870 24-point Controllers


2080-LC70-24AWB, 2080-LC70-24QWB, 2080-LC70-24QWBK, 2080-LC70-24QBB, 2080-LC70-24QBBK,
2080-L70E-24AWB, 2080-L70E-24QWB, 2080-L70E-24QWBK, 2080-L70E-24QWBN, 2080-L70E-24QWBNK,
2080-L70E-24QBB, 2080-L70E-24QBBK, 2080-L70E-24QBBN

158 (6.22) 80 (3.15)

90 (3.54)

Measurements in mm (in.)

Micro850 48-point Controllers


2080-LC50-48AWB, 2080-LC50-48QWB, 2080-LC50-48QWBK, 2080-LC50-48QVB, 2080-LC50-48QBB,
2080-L50E-48AWB, 2080-L50E-48QWB, 2080-L50E-48QWBK, 2080-L50E-48QVB, 2080-L50E-48QBB

238 (9.37) 80 (3.15)

90 (3.54)

Measurements in mm (in.)

40 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 3 Install Your Controller

Maintain spacing from objects such as enclosure walls, wireways, and adjacent equipment.
Allow 50.8 mm (2 in.) of space on all sides for adequate ventilation. If optional accessories/
modules are attached to the controller, such as the power supply 2080-PS120-240VAC or
expansion I/O modules, make sure that there is 50.8 mm (2 in.) of space on all sides after
attaching the optional parts.

DIN Rail Mounting


The module can be mounted using the following DIN rails: 35 x 7.5 x 1 mm (EN 50 022 - 35 x 7.5).
For environments with greater vibration and shock concerns, use the panel
mounting method, instead of DIN rail mounting.
Before mounting the module on a DIN rail, use a screwdriver in the DIN rail latch and pry it
downwards until it is in the unlatched position.
1. Hook the top of the DIN rail mounting area of the controller onto the DIN rail, and then
press the bottom until the controller snaps onto the DIN rail.
2. Push the DIN rail latch back into the latched position.
Use DIN rail end anchors (Allen-Bradley® part number 1492-EAJ35 or 1492-EAHJ35) for
vibration or shock environments.

To remove your controller from the DIN rail, pry the DIN rail latch downwards until it is in the
unlatched position.

Panel Mounting
The preferred mounting method is to use four M4 (#8) screws per module. Hole spacing
tolerance: ±0.4 mm (0.016 in.).
Follow these steps to install your controller using mounting screws.
1. Place the controller against the panel where you are mounting it. Make sure that the
controller is spaced properly.
2. Mark the drilling holes through the mounting screw holes and mounting feet, then
remove the controller.
3. Drill the holes at the markings, then replace the controller and mount it.
Leave the protective debris strip in place until you are finished wiring the controller and
any other devices.

IMPORTANT For instructions on how to install your Micro800 system with expansion
I/O, see the Micro800 Expansion I/O Modules User Manual,
publication 2080-UM003.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 41


Chapter 3 Install Your Controller

Panel Mounting Dimensions


Micro830 10-Point and 16-Point Controllers
2080-LC30-10QWB, 2080-LC30-10QVB, 2080-LC30-16AWB, 2080-LC30-16QWB, 2080-LC30-16QVB
86 mm (3.39 in.)

100 mm (3.94 in.)

Micro830 24-Point Controllers


2080-LC30-24QWB, 2080-LC30-24QVB, 2080-LC30-24QBB
Micro850 24-point Controllers
2080-LC50-24AWB, 2080-LC50-24QWB, 2080-LC50-24QVB, 2080-LC50-24QBB,
2080-L50E-24AWB, 2080-L50E-24QWB, 2080-L50E-24QVB, 2080-L50E-24QBB
Micro870 24-point Controllers
2080-LC70-24AWB, 2080-LC70-24QWB, 2080-LC70-24QWBK, 2080-LC70-24QBB, 2080-LC70-24QBBK,
2080-L70E-24AWB, 2080-L70E-24QWB, 2080-L70E-24QWBK, 2080-L70E-24QWBN, 2080-L70E-24QWBNK,
2080-L70E-24QBB, 2080-L70E-24QBBK, 2080-L70E-24QBBN
131 mm (5.16 in.)
100 mm (3.94 in.)

Micro830 48-Point Controllers


2080-LC30-48AWB, 2080-LC30-48QWB, 2080-LC30-48QVB, 2080-LC30-48QBB
Micro850 48-point Controllers
2080-LC50-48AWB, 2080-LC50-48QWB, 2080-LC50-48QWBK, 2080-LC50-48QVB, 2080-LC50-48QBB
2080-L50E-48AWB, 2080-L50E-48QWB, 2080-L50E-48QWBK, 2080-L50E-48QVB, 2080-L50E-48QBB
108 mm (4.25 in.) 108 mm (4.25 in.)
100 mm (3.94 in.)

42 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 3 Install Your Controller

System Assembly
Micro830, Micro850, and Micro870 24-point Controllers (Front)
27.8 (1.09)
45 (1.77) 145.2 (5.72) 44.4 (1.75)
14.4 (0.57)
7.2 (0.28) 7.8 (0.31)
33.8 (1.33) 131 (5.16) 7.8 (0.31)

110.8 90
(4.36) (3.54)
100
(3.94)

7.2 (0.28)
131 (5.16) 36.6 (1.44)
7.2 (0.28) 22.8 (0.90)

Micro830/Micro850/Micro870 24-pt controller with Micro800 power supply Expansion I/O slots
(Applicable to Micro850 and Micro870 only)
Single-width (first slot)
Double-width (second slot)
Measurements in mm (in.) 2085-ECR (terminator)

Micro830, Micro850, and Micro870 24-point Controllers (Side)

80 87
(3.15) (3.42)

Micro830/Micro850/Micro870 24-pt controller with Micro800 power supply Expansion I/O slots
(Applicable to Micro850 and Micro870 only)
Single-width (first slot)
Double-width (second slot)
Measurements in mm (in.) 2085-ECR (terminator)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 43


Chapter 3 Install Your Controller

Micro830 and Micro850 48-point Controllers (Front)


27.8 (1.09)
45 (1.77) 230 (9.05) 44.4 (1.75)

7.2 (0.28) 7.8 (0.31) 14.4 (0.57)


33.8 (1.33) 108 (4.25) 108 (4.25) 7.8 (0.31)

110.8 90
(4.36) (3.54)
100
(3.94)

7.2 (0.28)
216 (8.50) 36.6 (1.44)
7.2 (0.28) 22.8 (0.90)

Micro830/Micro850 48-pt controller with Micro800 power supply Expansion I/O slots
(Applicable to Micro850 only)
Single-width (first slot)
Double-width (second slot)
Measurements in mm (in.) 2085-ECR (terminator)

Micro830 and Micro850 48-point Controllers (Side)

80 87
(3.15) (3.42)

Micro830/Micro850 48-pt controller with Micro800 power supply Expansion I/O Slots
(Applicable to Micro850 only)
Single-width (first slot)
Double-width (second slot)
Measurements in mm (in.) 2085-ECR (terminator)

44 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 4

Wire Your Controller

This chapter provides information on the Micro830, Micro850, and Micro870 controller wiring
requirements.

Wiring Requirements and


Recommendation
WARNING: Before you install and wire any device, disconnect power to the
controller system.

WARNING: Calculate the maximum possible current in each power and common
wire. Observe all electrical codes dictating the maximum current allowable for
each wire size. Current above the maximum ratings may cause wiring to
overheat, which can cause damage.
United States Only: If the controller is installed within a potentially hazardous
environment, all wiring must comply with the requirements that are stated in the
National Electrical Code 501-10 (b).
• Allow for at least 50 mm (2 in.) between I/O wiring ducts or terminal strips and the
controller.
• Route incoming power to the controller by a path separate from the device wiring.
Where paths must cross, their intersection should be perpendicular.
Do not run signal or communications wiring and power wiring in the same conduit.
Wires with different signal characteristics should be routed by separate paths.
• Separate wiring by signal type. Bundle wiring with similar electrical characteristics
together.
• Separate input wiring from output wiring.
• Label wiring to all devices in the system. Use tape, shrink-tubing, or other dependable
means for labeling purposes. In addition to labeling, use colored insulation to identify
wiring based on signal characteristics. For example, you may use blue for DC wiring and
red for AC wiring.
Table 9 - Wire Requirements
Wire Size
Controller Wire Type Rating
Min Max
Micro830, Micro850, and Solid 0.2 mm2 (24 AWG) 2.5 mm2 (12 AWG) Rated @ 90 °C (194 °F)
Micro870 controllers Stranded 0.2 mm2 (24 AWG) 2.5 mm2 (12 AWG) insulation max

Use Surge Suppressors Because of the potentially high current surges that occur when switching inductive load
devices, such as motor starters and solenoids, the use of some type of surge suppression to
protect and extend the operating life of the controllers output contacts is required. Switching
inductive loads without surge suppression can significantly reduce the life expectancy of relay
contacts. By adding a suppression device directly across the coil of an inductive device, you
prolong the life of the output or relay contacts. You also reduce the effects of voltage
transients and electrical noise from radiating into adjacent systems.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 45


Chapter 4 Wire Your Controller

Figure 17 shows an output with a suppression device. We recommend that you locate the
suppression device as close as possible to the load device.
Figure 17 - Output with Suppression Device
+DC or L1

Suppression device
VAC/DC
Out 0
Out 1
Out 2
AC or DC Out 3
outputs Load
Out 4
Out 5
Out 6
Out 7
COM DC COM or L2

If the outputs are DC, we recommend that you use an 1N4004 diode for surge suppression, as
shown in Figure 18. For inductive DC load devices, a diode is suitable. A 1N4004 diode is
acceptable for most applications. A surge suppressor can also be used. See Recommended
Surge Suppressors on page 47. These surge suppression circuits connect directly across the
load device.
Figure 18 - DC Outputs with Surge Suppression
+24V DC

VAC/DC
Out 0
Out 1
Out 2
Relay or solid-
Out 3
state DC outputs
Out 4
IN4004 diode
Out 5
Out 6
A surge suppressor
Out 7
24V DC common can also be used.
COM

Suitable surge suppression methods for inductive AC load devices include a varistor, an RC
network, or an Allen-Bradley® surge suppressor, which is shown in Figure 19. These
components must be appropriately rated to suppress the switching transient characteristic of
the particular inductive device. See Recommended Surge Suppressors on page 47 for
recommended suppressors.
Figure 19 - Surge Suppression for Inductive AC Load Devices

Output device Output device Output device

Surge
suppressor
Varistor RC network

46 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 4 Wire Your Controller

Recommended Surge Suppressors


Use the Allen-Bradley surge suppressors shown in Table 10 with relays, contactors, and
starters.
Table 10 - Recommended Surge Suppressors
Device Coil Voltage Suppressor Catalog Number Type(1)
24…48V AC 100-KFSC50
110…280V AC 100-KFSC280 RC
380…480V AC 100-KFSC480
Bulletin 100/104K 700K 12…55V AC, 12…77V DC 100-KFSV55
56…136V AC, 78…180V DC 100-KFSV136 MOV
137…277V AC, 181…250 V DC 100-KFSV277
12…250V DC 100-KFSD250 Diode
24…48V AC (2)
100-FSC48
110…280V AC 100-FSC280(1) RC
380…480V AC 100-FSC480(1)
12…55V AC, 12…77V DC 100-FSV55(1)
Bulletin 100C (C09…C97)
56…136V AC, 78…180V DC 100-FSV136(1)
MOV
137…277V AC, 181…250V DC 100-FSV277(1)
278…575V AC 100-FSV575(1)
12…250V DC 100-FSD250(1) Diode
12…120V AC 599-K04
Bulletin 509 Motor Starter Size 0...5 MOV
240…264V AC 599-KA04
12…120V AC 199-FSMA1(3) RC
Bulletin 509 Motor Starter Size 6
12…120V AC 199-GSMA1(4) MOV
AC coil Not Required
24…48V DC 199-FSMA9
Bulletin 700 R/RM Relay
50…120V DC 199-FSMA10 MOV
130…250V DC 199-FSMA11
6…150V AC/DC 700-N24 RC
24…48V AC/DC 199-FSMA9
Bulletin 700 Type N, P, PK, or PH Relay 50…120V AC/DC 199-FSMA10 MOV
130…250V AC/DC 199-FSMA11
6…300V DC 199-FSMZ-1 Diode
Miscellaneous electromagnetic devices limited to 6…150V AC/DC 700-N24 RC
35 sealed VA
(1) Do not use RC Type with Triac outputs. Varistor is not recommended for use on the relay outputs.
(2) Catalog numbers for screwless terminals include the string ’CR’ after ’100-’.
For example: Catalog number 100-FSC48 becomes 100-CRFSC48; Catalog number 100-FSV55 becomes 100-CRFSV55; and so on.
(3) For use on the interposing relay.
(4) For use on the contactor or starter.

Grounding the Controller This product is intended to be mounted to a well grounded mounting surface such as a metal
panel. See the Industrial Automation Wiring and Grounding Guidelines, publication 1770-4.1, for
additional information.

WARNING: All devices connected to the RS-232/RS-485 communication port


must be referenced to controller ground, or be floating (not referenced to a
potential other than ground). Failure to follow this procedure may result in
property damage or personal injury.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 47


Chapter 4 Wire Your Controller

Wiring Diagrams The following illustrations show the wiring diagrams for the Micro800 controllers. Controllers
with DC inputs can be wired as either sinking or sourcing inputs. Sinking and sourcing does
not apply to AC inputs.

High-speed inputs and outputs are indicated by .


2080-LC30-10QWB
Input terminal block

COM0 I-01 I-03 I-04 NC NC

1 2 3 4 5 6 7 8 9 10 11 12
I-00 I-02 COM1 I-05 NC NC

Output terminal block

+DC24 CM0 CM1 CM2 CM3 NC

1 2 3 4 5 6 7 8 9 10 11 12
-DC24 O-00 O-01 O-02 O-03 NC

2080-LC30-10QVB
Input terminal block

COM0 I-01 I-03 I-04 NC NC

1 2 3 4 5 6 7 8 9 10 11 12
I-00 I-02 COM1 I-05 NC NC

Output terminal block

+DC24 +CM0 O-01 +CM1 O-03 NC

1 2 3 4 5 6 7 8 9 10 11 12
-DC24 O-00 -CM0 O-02 -CM1 NC

2080-LC30-16AWB, 2080-LC30-16QWB
Input terminal block

COM0 I-01 I-03 I-04 I-06 I-08

1 2 3 4 5 6 7 8 9 10 11 12
I-00 I-02 COM1 I-05 I-07 I-09

Output terminal block

+DC24 CM0 CM1 CM2 CM3 O-04

1 2 3 4 5 6 7 8 9 10 11 12
-DC24 O-00 O-01 O-02 O-03 O-05

2080-LC30-16AWB has no high-speed inputs.

2080-LC30-16QVB
Input terminal block

COM0 I-01 I-03 I-04 I-06 I-08

1 2 3 4 5 6 7 8 9 10 11 12
I-00 I-02 COM1 I-05 I-07 I-09

Output terminal block

+DC24 +CM0 O-01 +CM1 O-03 O-04

1 2 3 4 5 6 7 8 9 10 11 12
-DC24 O-00 -CM0 O-02 -CM1 O-05

48 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 4 Wire Your Controller

2080-LC30-24QWB, 2080-LC50-24AWB, 2080-LC50-24QWB, 2080-L50E-24AWB, 2080-L50E-24QWB,


2080-LC70-24AWB, 2080-LC70-24QWB, 2080-LC70-24QWBK, 2080-L70E-24AWB, 2080-L70E-24QWB,
2080-L70E-24QWBK, 2080-L70E-24QWBN, 2080-L70E-24QWBNK
Input terminal block

COM0 I-01 I-03 I-05 I-07 I-08 I-10 I-12

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
I-00 I-02 I-04 I-06 COM1 I-09 I-11 I-13

Output terminal block

+DC24 CM0 CM1 CM2 O-03 O-05 O-06 O-08

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
-DC24 O-00 O-01 O-02 O-04 CM3 O-07 O-09

2080-LC30-24QWB, 2080-LC50-24QWB, 2080-L50E-24QWB, 2080-LC70-24QWB,


2080-LC70-24QWBK, 2080-L70E-24QWB, 2080-L70E-24QWBK, 2080-L70E-24QWBN,
2080-L70E-24QWBNK,
DC Input Configuration
Sourcing:+DC a Sourcing:-DC a Sourcing:+DC b Sourcing:-DC b
Sinking: -DC a Sinking: +DC a Sinking: -DC b Sinking: +DC b
L1 L2

2080-PS120-240VAC

L
COM0 I-01 I-03 I-05 I-07 I-08 I-10 I-12

N 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
I-00 I-02 I-04 I-06 COM1 I-09 I-11 I-13

+DC24 CM0 CM1 CM2 O-03 O-05 O-06 O-08


+24 VDC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
-DC24 O-00 O-01 O-02 O-04 CM3 O-07 O-09
-24 VDC

CR CR CR CR CR

+DC c L1 b L1 c
+DC c
-DC c L2 b L2 c
-DC c

IMPORTANT • Do not connect –DC24 (Output terminal 2) to Earth/Chassis Ground.


• In Micro870 systems that use more than four Micro800 Expansion I/O
modules, we recommend using a 1606-XLP60EQ power supply instead of
a 2080-PS120-240VAC power supply. Make sure to wire both the
Micro870 controller and the 2085-EP24VDC expansion power supply to
the same 1606-XLP60EQ power supply.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 49


Chapter 4 Wire Your Controller

2080-LC50-24AWB, 2080-L50E-24AWB, 2080-LC70-24AWB, 2080-L70E-24AWB,


DC Input Configuration
L2 a L1 a L2 b L1 b
L1 L2

2080-PS120-240VAC

L
COM0 I-01 I-03 I-05 I-07 I-08 I-10 I-12

N 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
I-00 I-02 I-04 I-06 COM1 I-09 I-11 I-13

+DC24 CM0 CM1 CM2 O-03 O-05 O-06 O-08


+24 VDC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
-DC24 O-00 O-01 O-02 O-04 CM3 O-07 O-09
-24 VDC

CR CR CR CR CR

+DC c L1 b L1 c
+DC c
-DC c L2 b L2 c
-DC c

IMPORTANT Do not connect –DC24 (Output terminal 2) to Earth/Chassis Ground.


2080-LC30-24QVB, 2080-LC30-24QBB, 2080-LC50-24QVB, 2080-LC50-24QBB, 2080-L50E-24QVB,
2080-L50E-24QBB, 2080-LC70-24QBB, 2080-LC70-24QBBK, 2080-L70E-24QBB, 2080-L70E-24QBBK,
2080-L70E-24QBBN
Input terminal block

COM0 I-01 I-03 I-05 I-07 I-08 I-10 I-12

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
I-00 I-02 I-04 I-06 COM1 I-09 I-11 I-13

Output terminal block

+DC24 +CM0 O-01 +CM1 O-03 O-05 O-07 O-09

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
-DC24 O-00 -CM0 O-02 O-04 O-06 O-08 -CM1

2080-LC30-24QBB, 2080-LC50-24QBB, 2080-L50E-24QBB, 2080-LC70-24QBB, 2080-LC70-24QBBK,


2080-L70E-24QBB, 2080-L70E-24QBBK, 2080-L70E-24QBBN,
DC Input Configuration
Sourcing:+DC a Sourcing:-DC a Sourcing:+DC b Sourcing:-DC b
Sinking: -DC a Sinking: +DC a Sinking: -DC b Sinking: +DC b
L1 L2

2080-PS120-240VAC

L
COM0 I-01 I-03 I-05 I-07 I-08 I-10 I-12

N
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
I-00 I-02 I-04 I-06 COM1 I-09 I-11 I-13

+DC24 +CM0 O-01 +CM1 O-03 O-05 O-07 O-09


+24 VDC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
-DC24 O-00 -CM0 O-02 O-04 O-06 O-08 -CM1
-24 VDC

CR CR

+DC d +DC e

-DC d -DC e

50 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 4 Wire Your Controller

IMPORTANT • Do not connect –DC24 (Output terminal 2) to Earth/Chassis Ground.


• In Micro870 systems that use more than four Micro800 Expansion I/O
modules, we recommend using a 1606-XLP60EQ power supply instead of
a 2080-PS120-240VAC power supply. Make sure to wire both the
Micro870 controller and the 2085-EP24VDC expansion power supply to
the same 1606-XLP60EQ power supply.
2080-LC30-24QVB, 2080-LC50-24QVB, 2080-L50E-24QVB, DC Input Configuration
Sourcing:+DC a Sourcing:-DC a Sourcing:+DC b Sourcing:-DC b
Sinking: -DC a Sinking: +DC a Sinking: -DC b Sinking: +DC b
L1 L2

2080-PS120-240VAC

L
COM0 I-01 I-03 I-05 I-07 I-08 I-10 I-12

N
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
I-00 I-02 I-04 I-06 COM1 I-09 I-11 I-13

+DC24 +CM0 O-01 +CM1 O-03 O-05 O-07 O-09


+24 VDC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
-DC24 O-00 -CM0 O-02 O-04 O-06 O-08 -CM1
-24 VDC

CR CR

+DC d -DC d +DC e -DC e

IMPORTANT Do not connect –DC24 (Output terminal 2) to Earth/Chassis Ground.


2080-LC30-48AWB, 2080-LC30-48QWB, 2080-LC50-48AWB, 2080-LC50-48QWB,
2080-LC50-48QWBK, 2080-L50E-48AWB, 2080-L50E-48QWB, 2080-L50E-48QWBK
Input terminal blocks

COM0 I-01 I-03 I-05 I-06 I-08 I-10 COM2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
I-00 I-02 I-04 COM1 I-07 I-09 I-11 I-12

TERMINAL BLOCK 1

I-13 I-15 I-17 I-19 I-20 I-22 I-24 I-26

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
I-14 I-16 I-18 COM3 I-21 I-23 I-25 I-27

TERMINAL BLOCK 3

Output terminal blocks

+DC24 CM0 CM1 CM2 CM3 CM4 CM5 CM6

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
-DC24 O-00 O-01 O-02 O-03 O-04 O-05 O-06

TERMINAL BLOCK 2

CM7 O-08 O-10 CM8 O-13 O-15 O-16 O-18

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
O-07 O-09 O-11 O-12 O-14 CM9 O-17 O-19

TERMINAL BLOCK 4

2080-LC30-48AWB has no high-speed inputs.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 51


Chapter 4 Wire Your Controller

2080-LC30-48QVB, 2080-LC30-48QBB, 2080-LC50-48QVB, 2080-LC50-48QBB, 2080-L50E-48QVB,


2080-L50E-48QBB
Input terminal blocks

COM0 I-01 I-03 I-05 I-06 I-08 I-10 COM2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
I-00 I-02 I-04 COM1 I-07 I-09 I-11 I-12

TERMINAL BLOCK 1

I-13 I-15 I-17 I-19 I-20 I-22 I-24 I-26

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
I-14 I-16 I-18 COM3 I-21 I-23 I-25 I-27

TERMINAL BLOCK 3

Output terminal blocks

+DC24 +CM0 O-01 O-03 +CM1 O-05 O-07 O-09

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
-DC24 O-00 O-02 -CM0 O-04 O-06 O-08 -CM1

TERMINAL BLOCK 2

+CM2 O-11 O-13 O-15 +CM3 O-17 O-19 NC

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
O-10 O-12 O-14 -CM2 O-16 O-18 -CM3 NC

TERMINAL BLOCK 4

Controller I/O Wiring This section contains some relevant information about minimizing electrical noise and also
includes some wiring examples.

Minimize Electrical Noise


Because of the variety of applications and environments where controllers are installed and
operating, it is impossible to achieve the removal of all environmental noise with input filters.
To help reduce the effects of environmental noise, install the Micro800 system in a properly
rated (for example, NEMA) enclosure. Make sure that the Micro800 system is properly
grounded.

A system may malfunction due to a change in the operating environment after a period of
time. We recommend that you periodically check the system operation, particularly when new
machinery or other noise sources are installed near the Micro800 system.

Analog Channel Wiring Guidelines


Consider the following when wiring your analog channels:
• The analog common (COM) is not electrically isolated from the system, and is connected
to the power supply common.
• Analog channels are not isolated from each other.
• Use Belden cable #8761, or equivalent, shielded wire.
• Under normal conditions, the drain wire (shield) should be connected to the metal
mounting panel (earth ground). Keep the shield connection to earth ground as short as
possible.
• To achieve optimum accuracy for voltage type inputs, limit overall cable impedance by
keeping all analog cables as short as possible. Locate the
I/O system as close to your voltage type sensors or actuators as possible.

52 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 4 Wire Your Controller

Minimize Electrical Noise on Analog Channels


Inputs on analog channels employ digital high-frequency filters that significantly reduce the
effects of electrical noise on input signals. However, because of the variety of applications
and environments where analog controllers are installed and operated, it is impossible to
achieve the removal of all environmental noise with input filters.
Several specific steps can be taken to help reduce the effects of environmental noise on
analog signals:
• Install the Micro800 system in a properly rated enclosure, for example, NEMA. Make sure
that the shield is properly grounded.
• Use Belden cable #8761 for wiring the analog channels, making sure that the drain wire
and foil shield are properly grounded.
• Route the Belden cable separately from any AC wiring. Additional noise immunity can be
obtained by routing the cables in a grounded conduit.

Grounding Your Analog Cable


Use shielded communication cable (Belden #8761). The Belden cable has two signal wires
(black and clear), one drain wire, and a foil shield. The drain wire and foil shield must be
grounded at one end of the cable.

Foil shield
Black wire

Insulation
Drain wire

Clear wire

IMPORTANT Do not ground the drain wire and foil shield at both ends of the cable.

Wiring Examples
Examples of sink/source, input/output wiring are shown as follows.
Figure 20 - Sink Output Wiring Example
User side

+V DC Fuse
Logic side
Load
D +
OUT
G –
24V supply

DC COM

Micro800 sink output

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 53


Chapter 4 Wire Your Controller

Figure 21 - Sink Input Wiring Example

Com
24V DC
~ +

I/P
Fuse

Figure 22 - Source Output Wiring Example

+V DC Fuse

Logic side User side


S OUT
+
Load
G

24V supply

DC COM

Micro800 source output

Figure 23 - Source Input Wiring Example

Com
Fuse
~
+
I/P
24V DC

Embedded Serial Port The embedded serial port is a non-isolated RS-232/RS-485 serial port, which is targeted to be
used for short distances (<3 m [10 ft]) to devices such as HMIs.
Wiring
See Embedded Serial Port Cables on page 22 for a list of cables that you can use with the
embedded serial port 8-pin Mini DIN connector.

For example, the 1761-CBL-PM02 cable is typically used to connect the embedded serial port to
PanelView™ 800 HMI using RS-232.

54 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 4 Wire Your Controller

Figure 24 - Embedded Serial Port


2 1

5 3

8 7 6

Table 11 - Pinout Explanations


Pin Definition RS-485 Example RS-232 Example
1 RS-485+ B(+) (not used)
2 GND GND GND
3 RS-232 RTS (not used) RTS
4 RS-232 RxD (not used) RxD
5 RS-232 DCD (not used) DCD
6 RS-232 CTS (not used) CTS
7 RS-232 TxD (not used) TxD
8 RS-485- A(-) (not used)

IMPORTANT • Do not connect the GND pin of the serial port to Earth/Chassis Ground.
The GND pin of the serial port is the DC common for the Serial Port
Communication signals and is not intended for Shield Ground.
• If the length of the serial cable is more than 3 meters (10 feet), use an
isolated serial port, catalog number 2080-SERIALISOL.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 55


Chapter 4 Wire Your Controller

Notes:

56 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 5

Communication Connections

Overview This chapter describes how to communicate with your control system and configure
communication settings. The method that you use and cabling that is required to connect your
controller depends on what type of system you are employing. This chapter also describes how
the controller establishes communication with the appropriate network.
The Micro830, Micro850, and Micro870 controllers have the following embedded
communication channels:
• A non-isolated RS-232/RS-485 combo port
• A non-isolated USB programming port
In addition, the Micro850 and Micro870 controllers have an RJ45 Ethernet port.

Supported Communication Micro830, Micro850, and Micro870 controllers support communication through the embedded
RS-232/RS-485 serial port and any installed serial port plug-in modules. In addition, Micro850
Protocols and Micro870 controllers support communication through the embedded Ethernet port, and
can be connected to a local area network for various devices providing 10 Mbps/100 Mbps
transfer rate.
Micro830, Micro850, and Micro870 controllers support the following communication protocols:
• Modbus RTU Master and Slave
• CIP Serial Client/Server (DF1)
• CIP Symbolic Client/Server
• ASCII
• DNP3 (1)

Only Micro850 and Micro870 controllers support the following communication protocols:
• EtherNet/IP Client/Server
• Modbus TCP Client/Server
• DHCP Client
• Sockets Client/Server TCP/UDP
Table 12 - Connection Limits for Micro830/Micro850/Micro870 Controllers
Micro850/
Description Micro830 Micro870
CIP Connections
Total number of client plus server connections for all ports 16 24
Maximum number of client connections for all ports 15 16
Maximum number of server connections for all ports 16 24
Client 16
Maximum number of EtherNet/IP connections —
Server 23
Client — —
Maximum number of USB connections
Server 15 23

(1) DNP3 is only supported on 2080-L70E-24QxBN controllers.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 57


Chapter 5 Communication Connections

Table 12 - Connection Limits for Micro830/Micro850/Micro870 Controllers (Continued)


Micro850/
Description Micro830 Micro870
Client 15 16
Maximum number of Serial connections
Server 15 23
TCP Connections
Total number of client plus server connections 64
Client 16
Maximum number for EtherNet/IP
Server 16

Client 16
Maximum number for Modbus TCP
Server 16
Maximum number for User Programmable Sockets 8
User Programmable Sockets
Total number of User Programmable Sockets — 8
(any combination of UDP plus TCP Client/Server)

IMPORTANT If all client/server connections are fully loaded, performance may be


affected, such as data loss and intermittent delays during
communication.

Here are some configuration examples, which are based on the limits that are described in the
table above:
1. The maximum number of drives that can be controlled over EtherNet/IP is 16. This is
due to the maximum limit of TCP Client connections being 16, and the maximum limit of
EtherNet/IP Client connections being 16.
2. If you have 10 devices that are controlled over EtherNet/IP, the maximum number of
devices that can be controlled over serial is six. This is due to the maximum limit of
Client connections being 16.
3. The total number of UDP sockets plus TCP Client/Server sockets has a maximum limit
of eight.

Modbus RTU
Modbus is a half-duplex, master-slave communications protocol. The Modbus network master
reads and writes bits and registers. Modbus protocol allows one master to communicate with a
maximum of 247 slave devices. Micro800 controllers support Modbus RTU Master and Modbus
RTU Slave protocol. For more information on configuring your Micro800 controller for Modbus
protocol, see the Connected Components Workbench Online Help. For more information about
the Modbus protocol, see Modbus Protocol Specifications available from www.modbus.org.

For information on Modbus mapping, see Modbus Mapping for Micro800 Controllers on
page 261.
To configure the serial port as Modbus RTU, see Configure Modbus RTU on page 66.

Use the MSG_MODBUS instruction to send Modbus messages over the serial port.

CIP Serial Client/Server – DF1


CIP Serial Client/Server allows CIP protocol to be used over a serial port. It is typically used
with modems. The advantage over non-CIP serial protocols is that since the protocol is CIP,
program downloads are supported including CIP pass-through from the serial port to Ethernet.

58 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 5 Communication Connections

ASCII
ASCII provides connection to other ASCII devices, such as barcode readers, weigh scales, serial
printers, and other intelligent devices. You can use ASCII by configuring the embedded or any
plug-in serial RS-232/RS-485 port for the ASCII driver. See the Connected Components
Workbench Online Help for more information.
To configure the serial port for ASCII, see Configure ASCII on page 67.

Modbus TCP Client/Server


The Modbus TCP Client/Server communication protocol uses the same Modbus mapping
features as Modbus RTU, but instead of the serial port, it is supported over Ethernet. Modbus
TCP Server takes on Modbus Slave features on Ethernet.

No protocol configuration is required other than configuring the Modbus mapping table. For
information on Modbus mapping, see Modbus Mapping for Micro800 Controllers on page 261.

Use MSG_MODBUS2 instruction to send Modbus TCP messages over Ethernet port.

With Connected Components Workbench software version 12 or later, the Modbus TCP Server is
disabled by default. If you want to use Modbus TCP, you can enable it from the Ethernet
settings.

CIP Symbolic Client/Server


CIP Symbolic is supported by any CIP-compliant interface including Ethernet (EtherNet/IP) and
serial port (CIP Serial). This protocol allows HMIs to connect easily to the Micro830, Micro850,
and Micro870 controllers.

Micro850 and Micro870 controllers support up to 16 simultaneous EtherNet/IP client


connections and 23 simultaneous EtherNet/IP Server connections.

CIP Serial, supported on Micro830, Micro850, and Micro870 controllers, uses the DF1 Full-duplex
protocol, which provides point-to-point connection between two devices.

DF1 Half-duplex Master, DF1 Half-duplex Slave, and DF1 Radio Modem are supported in Micro850
(2080-L50E) and Micro870 (2080-L70E) controllers. These protocols provide connection to
multiple devices over RS-485 or radio modems.

The Micro800 controllers support the protocol through RS-232 connection to external devices,
such as computers running RSLinx® Classic software, PanelView™ Component terminals
(firmware revisions 1.70 and above), PanelView 800 terminals, or other controllers that support
CIP Serial over DF1 Full-Duplex, such as ControlLogix® and CompactLogix™ controllers that
have embedded serial ports. Bulletins 2080-L50E and 2080-L70E also support the DF1 Half-
duplex and Radio Modem protocols.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 59


Chapter 5 Communication Connections

EtherNet/IP, supported on the Micro850 and Micro870 controller, uses the standard Ethernet
TCP/IP protocol.

The Micro850 and Micro870 controller supports up to 23 simultaneous EtherNet/IP Server


connections.

To configure CIP Serial, see Configure CIP Serial Driver on page 63.
To configure for EtherNet/IP, see Configure Ethernet Settings on page 68.
For more information on the DF1 protocol, see Connect to Networks using DF1 on page 335.

CIP Symbolic Addressing

You can access any global variables through CIP Symbolic addressing except for system and
reserved variables.

One- or two-dimension arrays for simple data types are supported (for example, ARRAY OF
INT[1…10, 1…10]) are supported but arrays of arrays (for example, ARRAY OF ARRAY) are not
supported. Arrays of strings are also supported.
Table 13 - Supported Data Types in CIP Symbolic

Data Type(1) Description

BOOL Logical Boolean with values TRUE(1) and FALSE(0)


(Uses up 8 bits of memory)
SINT Signed 8-bit integer value
INT Signed 16-bit integer value
DINT Signed 32-bit integer value
LINT(2) Signed 64-bit integer value
USINT Unsigned 8-bit integer value
UINT Unsigned 16-bit integer value
UDINT Unsigned 32-bit integer value
ULINT(2) Unsigned 64-bit integer value
REAL 32-bit floating point value
LREAL(2) 64-bit floating point value
STRING character string (1 byte per character)
DATE(3) Unsigned 32-bit integer value
TIME(3) Unsigned 32-bit integer value
(1) Logix MSG instruction can read/write SINT, INT, DINT, LINT, and REAL data types using “CIP Data Table Read” and “CIP Data
Table Write” message types.
BOOL, USINT, UINT, UDINT, ULINT, LREAL, STRING, SHORT_STRING, DATE, and TIME data types are not accessible with the Logix
MSG instruction.
(2) Not supported in PanelView Component or PanelView 800 terminals.
(3) Can be used by sending data to UDINT, mainly for use with PanelView Plus and PanelView 800 terminals.

CIP Client Messaging


CIP Generic and CIP Symbolic messages are supported on Micro800 controllers through the
Ethernet and serial ports. The MSG_CIPSYMBOLIC and MSG_CIPGENERIC function blocks enable
these client messaging features.

For more information and sample quick start project to help you use the CIP Client Messaging
feature, see Micro800 Programmable Controllers: Getting Started with CIP Client Messaging,
publication 2080-QS002.

Sockets Client/Server TCP/UDP


Sockets protocol is used for Ethernet communications to devices that do not support Modbus
TCP and EtherNet/IP. Sockets support client and server, and TCP and UDP. Typical applications
include communicating to printers, barcode readers, and PCs.

60 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 5 Communication Connections

CIP Communications The Micro830, Micro850, and Micro870 controllers support pass-thru on any communications
port that supports Common Industrial Protocol (CIP) for applications such as program
Pass-thru download. It does not support applications that require dedicated connections such as HMI.
Micro830, Micro850, and Micro870 controllers support a maximum of one hop. A hop is defined
to be an intermediate connection or communications link between two devices – in Micro800,
the hop is through EtherNet/IP or CIP Serial or CIP USB.

Examples of Supported Architectures


USB to EtherNet/IP

USB EtherNet/IP

Micro850 Micro850
For program download controller 1 controller 2

You can download a program from the PC to controller1 over USB. Also, the program
can be downloaded to controller2 and controller3 over USB to EtherNet/IP.
Micro850
controller 3

EtherNet/IP to CIP Serial

EtherNet/IP CIP Serial

Micro850 Micro850
For program download controller 1 controller 2

USB to DeviceNet

USB DeviceNet Esc Sel

Micro850 controller with


For program download 2080-DNET20 plug-in PowerFlex 525 drive with
scanner (Address 0) 25-COMM-D adapter
(Address 1)

CompactBlock LDX I/O


(Address 2)

EtherNet/IP to DeviceNet

EtherNet/IP DeviceNet Esc Sel

Micro850 controller with


For program download 2080-DNET20 plug-in PowerFlex 525 drive with
scanner (Address 0) 25-COMM-D adapter
(Address 1)

You can use Connected Components Workbench software to configure


the PowerFlex drives. CompactBlock LDX I/O
(Address 2)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 61


Chapter 5 Communication Connections

IMPORTANT Micro800 controllers do not support multiple hops (for example, from
EtherNet/IP > CIP Serial > EtherNet/IP).

Use Modems with Micro800 Serial modems can be used with the Micro830, Micro850, and Micro870 controllers.
Controllers
Making a DF1 Point-to-point Connection
You can connect the Micro830, Micro850, and Micro870 programmable controller to your serial
modem using an Allen-Bradley null modem serial cable (1761-CBL-PM02) to the controller’s
embedded serial port together with a 9-pin null modem adapter – a null modem with a null
modem adapter is equivalent to a modem cable. The recommended protocol for this
configuration is CIP Serial.

Construct Your Own Modem Cable


If you construct your own modem cable, the maximum cable length is 15.24 m (50 ft) with a
25-pin or 9-pin connector. Figure 25 shows the typical pinout for constructing a straight-
through cable.
Figure 25 - Straight-through Cable Pinout Guide
DTE Device DTE Device
(Micro830, Micro850, and Micro870 (Modem and so on.)
controllers channel 0)
8-pin 25-pin 9-pin

7 TXD TXD 2 3
4 RXD RXD 3 2
2 GND GND 7 5
1 B(+) DCD 8 1
8 A(-) DTR 20 4
5 DCD DSR 6 6
6 CTS CTS 5 8
3 RTS RTS 4 7

62 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 5 Communication Connections

Configure Serial Port You can configure the serial port driver as CIP Serial, Modbus RTU, ASCII, or Shutdown through
the Device Configuration tree in the Connected Components Workbench software.

Configure CIP Serial Driver


1. Open your Connected Components Workbench project. On the device configuration tree,
go to the Controller properties. Click Serial Port.

2. Select CIP Serial from the Driver field.

3. Specify a Baud Rate. Select a communication rate that all devices in your system
support. Configure all devices in the system for the same communication rate. Default
Baud Rate is set at 38,400 bps.
4. In most cases, parity and station address are left at the default settings.
5. Select Advanced Settings and set Advanced parameters.
See Table 14 for a description of the CIP Serial parameters.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 63


Chapter 5 Communication Connections

Table 14 - CIP Serial Driver Parameters


Parameter Options Default
Toggles between the communication rate of 1200, 2400, 4800,
Baud Rate 38400
9600, 19200, and 38400.
Specifies the parity setting for the serial port. Parity provides
Parity additional message-packet error detection. Select Even, Odd, or None
None.
Station (Node) Address Enter a value from 0…254. 1
Enter 1 for DF1 Full-duplex.
Defines the DF1 mode – Full-duplex, Half-duplex master, Configured as Full-
DF1 Mode(1) Half-duplex slave, Radio Modem(2). duplex by default.
• Full-duplex: No Handshake, Full-duplex (RTS always ON).
• Half-duplex slave: No Handshake, Half-duplex without
continuous carrier (RTS/CTS). Configured as No
Control Line • Half-duplex master: No Handshake, Half-duplex without Handshake by
continuous carrier (RTS/CTS), Full-duplex (RTS always ON). default.
• Radio Modem: No Handshake, Half-duplex without continuous
carrier (RTS/CTS), Half-duplex with DCD Handshake.
Detects and eliminates duplicate responses to a message.
Duplicate Packet Duplicate packets may be sent under noisy communication Enabled
Detection conditions when the sender’s retries are not set to 0. Toggles
between Enabled and Disabled.
Error Detection Toggles between CRC and BCC. CRC
To use embedded responses, choose Enabled Unconditionally. If
you want the controller to use embedded responses only when it
detects embedded responses from another device, choose After
Embedded Responses One Received. After One Received
If you are communicating with another Allen-Bradley device,
choose Enabled Unconditionally. Embedded responses increase
network traffic efficiency.
The number of times the controller resends a message packet
NAK Retries because the controller received a NAK response to the previous 3
message packet transmission.
The number of enquiries (ENQs) that you want the controller to
ENQ Retries 3
send after an ACK timeout occurs.
Specifies the number of times a message is retried after the
Transmit Retries first attempt before being declared undeliverable. Enter a value 3
from 0…127.
Specifies the amount of time after a packet is transmitted that
ACK Timeout (x20 ms) 50
an ACK is expected.
Enabled, Disabled
When EOT Suppression is enabled, the slave does not respond
EOT Suppression when polled if no message is queued. This saves modem Disabled
transmission power and time when there is no message to
transmit.
0...65,535 (can be set in 20 ms increments)
Poll Timeout only applies when a slave device initiates an MSG
instruction. It is the amount of time that the slave device waits
for a poll from the master device. If the slave device does not
Poll Timeout (x20 ms) receive a poll within the Poll Timeout, an MSG instruction error is 3000
generated, and the ladder program must requeue the MSG
instruction. If you are using an MSG instruction, it is
recommended not to use a Poll Timeout value of zero. Poll
Timeout is disabled when set to zero.
0...65,535 (can be set in 20 ms increments)
RTS Off Delay (x20 ms) Specifies the delay time between when the last serial character 0
is sent to the modem and when RTS is deactivated. Gives the
modem extra time to transmit the last character of a packet.
0...65,535 (can be set in 20 ms increments)
RTS Send Delay (x20 ms) Specifies the time delay between setting RTS until checking for 0
the CTS response. For use with modems that are not ready to
respond with CTS immediately upon receipt of RTS.
0...255
Specifies the number of times a slave device attempts to resend
Message Retries a message packet when it does not receive an ACK from the 3
master device. For use in noisy environments where message
packets may become corrupted in transmission.

64 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 5 Communication Connections

Table 14 - CIP Serial Driver Parameters (Continued)


Parameter Options Default
Priority Polling Range – Select the last slave station address to priority poll. 0
High
Priority Polling Range – Select the first slave station address to priority poll. A value of 255
Low 255 disables priority polling.
Normal Polling Range – Select the last slave station address to normal poll. 0
High
Normal Polling Range – Select the first slave station address to normal poll. A value of 255
Low 255 disables normal polling.
Enter the quantity of active stations in the normal poll range that
you want polled during a scan through the normal poll range
Normal Poll Group Size before returning to the priority poll range. If no stations are 0
configured in the Priority Polling Range, leave this parameter at
0.
Defines the amount of time, in 20 ms increments, which the
master station waits after receiving an ACK (to a master-
Reply Message Wait initiated message) before polling the slave station for a reply. 5
Timeout Choose a time that is, at minimum, equal to the longest time that
a slave station requires to format a reply packet. This would
typically be the maximum scan time of the slave station.
If you want to:
• Receive only one message from a slave station per its turn,
choose STANDARD (SINGLE MESSAGE TRANSFER PER NODE
SCAN). Choose this method only if it is critical to keep the poll
list scan time to a minimum.
• Receive as many messages from a slave station as it has,
choose STANDARD (MULTIPLE MESSAGE TRANSFER PER NODE
SCAN).
• Accept unsolicited messages from slave stations, choose
MESSAGE BASED (ALLOW SLAVES TO INITIATE MESSAGES)
• Slave station-initiated messages are acknowledged and
processed after all master station-initiated (solicited)
messages. MESSAGE BASED
Polling Mode Slave stations can only send messages when they are polled. (ALLOW SLABES TO
If the message-based master station never sends a slave INITIATE MESSAGES)
station a message, the master station never sends the slave
station a poll. Therefore, to obtain a slave station-initiated
message regularly from a slave station, choose to use
standard communication mode instead.
• Ignore unsolicited messages from slave stations, choose
MESSAGE BASED (DO NOT ALLOW SLAVES TO INITIATE
MESSAGES)
Slave station-initiated messages are acknowledged and
discarded. The master station acknowledges the slave
station-initiated message so that the slave station removes
the message from its transmit queue, which allows the next
packet that is slated for transmission into the transmit queue.
(1) For more information on DF1 protocol, see Connect to Networks using DF1 on page 335
(2) Half-duplex and Radio Modem DF1 modes are only supported on Micro850 (2080-L50E) and Micro870 (2080-L70E) controllers.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 65


Chapter 5 Communication Connections

Configure Modbus RTU


1. Open your Connected Components Workbench project. On the device configuration tree,
go to the Controller properties. Select Serial Port.

2. Select Modbus RTU on the Driver field.

3. Specify the following parameters:


- Baud Rate
- Parity
- Modbus Role

66 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 5 Communication Connections

Table 15 - Modbus RTU Parameters


Parameter Options Default
Baud Rate 1200, 2400, 4800, 9600, 19200, 38400 19200
Parity None, Odd, Even None
Modbus Role Master, Slave, Auto Master
4. You can configure additional parameters under Advanced Settings.
Table 16 - Modbus RTU Advanced Parameters
Parameter Options Default
Media RS-232, RS-232 RTS/CTS, RS-485 RS-232
Data Bits Always 8 8
Stop Bits 1, 2 1
Response Timer 0…999,999,999 milliseconds 200
Broadcast Pause 0…999,999,999 milliseconds 200
Inter-char Timeout 0…999,999,999 microseconds 0
RTS Pre-delay 0…999,999,999 microseconds 0
RTS Post-delay 0…999,999,999 microseconds 0

Configure ASCII
1. Open your Connected Components Workbench project. On the device configuration tree,
go to Controller properties. SelectSerial Port.
2. Select ASCII on the Driver field.

3. Specify the following parameters:


- Baud Rate
- Parity
Table 17 - ASCII Parameters
Parameter Options Default
Baud Rate 1200, 2400, 4800, 9600, 19200, 38400 19200
Parity None, Odd, Even None

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 67


Chapter 5 Communication Connections

4. You can configure advanced parameters under Advanced Settings.


Table 18 - ASCII Advanced Parameters
Parameter Options Default
Full-duplex, Half-duplex with continuous carrier,
Control Line No Handshake
Half-duplex without continuous carrier, No Handshake
Deletion Mode CRT, Ignore, Printer Ignore
Data Bits 7, 8 8
Stop Bits 1, 2 1
XON/XOFF Enabled or Disabled Disabled
Echo Mode Enabled or Disabled Disabled
Append Chars 0x0D,0x0A or user-specified value 0x0D,0x0A
Term Chars 0x0D,0x0A or user-specified value 0x0D,0x0A

Configure Ethernet Settings 1. Open your Connected Components Workbench project (for example, Micro850). On the
device configuration tree, go to Controller properties. Select Ethernet.

2. Under Ethernet, select Internet Protocol.


Configure Internet Protocol (IP) settings. Specify whether to obtain the IP address
automatically using DHCP or manually configure IP address, subnet mask, and gateway
address.

The Ethernet port defaults to the following out-of-the box settings:


• DHCP (dynamic IP address)
• Address Duplicate Detection: On

IMPORTANT When a DHCP server fails, the Micro800 controller allocates IP


addresses in the private range 169.254.0.1 to 169.254.255.254. The
Micro800 controller verifies that its address is unique on the
network using ARP. When the DHCP server is again able to
service requests, the Micro800 controller updates its address
automatically.
3. Select the checkbox Detect duplicate IP address to enable detection of duplicate
address.

68 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 5 Communication Connections

4. Under Ethernet, select Port Settings.

5. Set Port State as Enabled or Disabled.


6. To set the connection speed and duplexity manually, clear the check box Auto-
Negotiate speed and duplexity. Then, set Speed (10 Mbps or 100 Mbps) and Duplexity
(Half or Full) values.
7. Select Save Settings to Controller if you would like to save the settings to your
controller.
8. On the device configuration tree, under Ethernet, select Port Diagnostics to monitor
Interface and Media counters. The counters are available and updated when the
controller is in Debug mode.

Validate IP Address
Modules must validate the incoming IP address configuration, whether it is obtained through
explicit configuration or through DHCP.

The following rules must be obeyed when configuring the IP address:


• The IP address for the module cannot be set to zero, a multicast address, a broadcast
address, or an address on the Class A loopback network (127.x.x.x).
• The IP address must not start with zero, and the IP address network ID must not be
zero.
• The Network mask cannot be set to 255.255.255.255.
• The Gateway address must be on the same subnet as the IP address that is being
configured.
• The Name Server address cannot be set to zero, a multicast address, a broadcast
address, or an address on the Class A loopback network (127.x.x.x).

The valid range of static IPv4 IP addresses exclude:


• Broadcast or zero IP (255.255.255.255 or 0.0.0.0)
• IP addresses that start with 0 or 127 (0.xxx.xxx.xxx or 127.xxx.xxx.xxx)
• IP addresses that end with 0 or 255 (xxx.xxx.xxx.0 or xxx.xxx.xxx.255)
• IP addresses in the range 169.254.xxx.xxx (169.254.0.0 to 169.254.255.255)
• IP addresses in the range 224.0.0.0 to 255.255.255.255

Ethernet Host Name


Micro800 controllers implement unique host names for each controller, to be used to identify
the controller on the network. The default host name consists of two parts: product type and
MAC address, which are separated by a hyphen. For example: 2080-LC50-xxxxxxxxxxxx, where
xxxxxxxxxxxx is the MAC address.

You can change the host name using the CIP Service Set Attribute Single when the controller is
in Program/Remote Program mode.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 69


Chapter 5 Communication Connections

Configure CIP Serial Driver 1. Open your Connected Components Workbench project. On the device configuration tree,
go to the Controller properties. Click Serial Port.
2. Select CIP Serial from the Driver field.
3. Specify a Baud Rate. Select a communication rate that all devices in your system
support. Configure all devices in the system for the same communication rate. Default
Baud Rate is set @ 38,400 bps.
4. In most cases, parity and station address are left at default settings.
5. Select Advanced Settings and set Advanced parameters.

OPC Support Using Support for Open Platform Communications (OPC) using CIP symbolic has been added from
firmware release 7.011 onwards. This can be used in place of Modbus addressing.
FactoryTalk Linx
FactoryTalk® Linx software version 5.70 (CPR9 SR7) or later and FactoryTalk® Linx Gateway
software version 3.70 (CPR9 SR7) or later are required.

70 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6

Micro870 Controller Distributed Network


Protocol

This chapter describes how to configure the DNP3 communication settings.

Channel Configuration for The default communication protocol for the serial ports is DF1 Full-Duplex. To communicate
with Distributed Network Protocol (DNP3), the channel must be configured for DNP3 Slave.
DNP3 Slave
The default communication protocol for the Ethernet channel in the controller is EtherNet/IP.
To communicate with the DNP3 over IP protocol, select DNP3 over IP Enable in the Ethernet
configuration page.

IMPORTANT The DNP3 protocol is only supported in the following Micro870


controllers.
• 2080-L70E-24QBBN
• 2080-L70E-24QWBN, 2080-L70E-24QWBNK

To program the controller, use Connected Components Workbench software version 20.01.00
or later.

In Connected Components Workbench software, open the Micro870 controller project tree.

There are three configurations that are related to the DNP3 protocol in Connected Components
Workbench software:
• Serial port configuration
• Ethernet port configuration
• DNP3 Slave Application Layer configuration

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 71


Chapter 6 Micro870 Controller Distributed Network Protocol

Serial Port Link Layer Configuration


Link Layer related configuration can be done in the Serial Port configuration page.

Ethernet Layer Configuration


To enable the DNP3 over IP protocol, select DNP3 over IP Enable in the Ethernet configuration
page.

72 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Link Layer related configuration can also be done in the Ethernet configuration page.

DNP3 Slave Application Layer Configuration


Application Layer related configuration can be done in the DNP3 Slave configuration page.

If multiple ports are configured for the DNP3 protocol, the serial and Ethernet ports share the
DNP3 Slave configuration. Any changes in the DNP3 Slave configuration page affect all ports.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 73


Chapter 6 Micro870 Controller Distributed Network Protocol

Serial Link Layer Configuration Parameters

Driver

Set this selection to DNP3 Slave to communicate with DNP3 protocol.

Node Address

This value is a node address of this DNP3 Slave.

The valid range is 0…65519. Default value is 1.

Baud

The selections can be 38400, 19200, 9600, 4800, 2400, and 1200. Default selection is 38400.

Parity

The selections can be NONE, EVEN, and ODD. Default selection is NONE.

Stop Bits

The selections can be 1 and 2. Default selection is 1.

Enable Master Address Validation

Valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When the selection is Disabled (Unchecked), the controller accepts the requests from any
DNP3 Master.

When the selection is Enabled (Checked), the controller accepts the requests only from the
DNP3 Master, which is configured in the Master Node0…Master Node4. The maximum number
of Master Node Addresses for the Master Address Validation is 5.

Enable Self-Address

Valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When this bit is Disabled (Unchecked), any packets that contain the destination address
65532(FFFCh) are ignored.

When this bit is Enabled (Checked), any packets that contain the destination address
65532(FFFCh) are accepted and processed.

Any responses back to the DNP3 Master includes the actual configured DNP3 address of the
Micro870 controller.

74 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Master Node0

This value is used to:


• Validate the Master node address when the Enable Master Address Validation is Enabled
(Checked).
• Vend Unsolicited Response when Unsolicited Response functionality is enabled. An
Unsolicited Response is sent out to the DNP3 Master having this address.

The valid range is 0…65519. Default value is 0.

Master Node1, Master Node2, Master Node3, Master Node4

This value is used to check validation for Master node address when Enable Master Address
Validation is Enabled (Checked).

The valid range is 0…65519. Default value is 0.

Control Line

The selections can be No Handshake and Half-duplex without continuous carrier (CTS/RTS).
Default selection is No Handshake.

When the controller is connected to DNP3 Master using the RS-232 line directly, you must
select No Handshake. If you want to use the Modem line in a half-duplex network, you must
select Half-duplex without continuous carrier (CTS/RTS). If the controller is connected to an
RS-485 network, you must select No Handshake.

Request LL Confirmation

Valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).
When the selection is Disabled (Unchecked), Primary Frames from the controller are sent out
with the function code FC_UNCONFIRMED_USER_DATA (4).

When the selection is Enabled (Checked), Primary Frames from the controller are sent out with
the function code FC_CONFIRMED_USER_DATA (3). In this case, the controller waits for the
confirmation and may retry the Frame if it did not receive the confirmation from DNP3 Master
within the time Confirmation Timeout (x1 ms).

Send LL Confirmation

Valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When the selection is Disabled (Unchecked), the optional Secondary Frame is not sent out with
the function code FC_NACK (1) or FC_NOT_SUPPORTED (15).

When the selection is Enabled (Checked), the optional Secondary Frame is sent out with the
function code FC_NACK (1) or FC_NOT_SUPPORTED (15).

IMPORTANT Micro870 (2080-L70E-24QxBN) controllers support this function only


when the DNP3 Master sends confirmed user data. This function is not
supported when the DNP3 Master sends unconfirmed user data.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 75


Chapter 6 Micro870 Controller Distributed Network Protocol

Confirmation Timeout (x1 ms)

When Request LL Confirmation is enabled, the controller waits to receive a confirmation frame
until this timeout has expired.

The valid range is 1…65535. Default value is 20.

Message Retries

When Confirmation Timeout (x1 ms) has expired and this parameter was nonzero value, the
controller tries to send retry packets.

The valid range is 0…255. Default value is 0.

Pre-transmit Delay (x1 ms)

The controller waits for the specified time before sending the packet.

The valid range is 0…65535. Default value is 0.

RTS Off Delay (x1 ms)

When the Control is set at Half-duplex Modem (CTS/RTS handshaking), this feature is enabled.
This specifies a time delay between the end of a transmission and dropping of the RTS signal.

The valid range is 0…65535. Default value is 0.

RTS Send Delay (x1 ms)

When the Control is set at Half-duplex Modem (CTS/RTS handshaking), this entry is enabled.
This specifies a time delay between the raising of the RTS and the initiation of a transmission.

The valid range is 0…65535. Default value is 0.

Max Random Delay (x1 ms)

This parameter is used with Pre-transmit Delay (x1 ms) for Collision Avoidance on RS-485
network. For more information, see Collision Avoidance on page 113.
The valid range is 0…65535. Default value is 0.

Ethernet Layer Configuration Parameters


The DNP3 over IP subsystem in the controller supports Listening End Point, TCP Dual End Point,
and Datagram End Point types.
• Listening End Point type supports one TCP connection as a Server and UDP datagram.
• TCP Dual End Point type supports one TCP connection as a Server, and one TCP
connection as a Client and UDP datagram.
• Datagram End Point type supports UDP datagram from DNP3 Masters. The default TCP
and UDP port numbers are 20000 and the port numbers are configurable.

The parameter End Point Type determines the type of end point. According to the parameter,
the controller works as different End Point types. See Table 19 on page 77 for each
configuration.

76 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 19 - End Point Type Parameter Selections


End Point Type Connection Description
Any of the requests are accepted and the responses are transmitted
One TCP server through this connection.
connection The unsolicited responses are transmitted through this connection
Listening when this connection is available.
Accepts only broadcast packets when the DNP3 destination node is
UDP datagram one of 0xFFFD, 0xFFFE, and 0xFFFF in the request.
Any of the requests are accepted and the responses are transmitted
through this connection.
One TCP server The unsolicited responses are transmitted through this connection
connection when this connection is available.
This connection has a higher priority than the Client connection.
Any of the requests are accepted and the responses are transmitted
Dual through this connection.
One TCP client The unsolicited responses are transmitted through this connection
connection when this connection is available.
The controller does not request a TCP client connection to the DNP3
Master until an unsolicited response is generated.
Accepts only broadcast packets when the DNP3 destination node is
UDP datagram one of 0xFFFD, 0xFFFE, and 0xFFFF in the request.
Any of the requests are accepted and the responses are transmitted
through this connection.
All responses can be transmitted to the different DNP3 Master port
according to the configuration of the parameters Remote UDP Port
Datagram Only UDP datagram only Number and Master IP Address0. If this parameter is not set to 0, the
solicited responses are sent to the DNP3 Master port that is
configured. If this parameter is set to 0, the solicited responses are
sent to the DNP3 Master port that sent the request.
TCP connection is not available in this configuration.

The parameter DNP3 over IP Enable is configured in the Ethernet configuration page and other
parameters are configured in the DNP3 Slave configuration page. For more information, see
Channel Configuration for DNP3 Slave on page 71.

DNP3 over IP Enable

The valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When the selection is Disabled (Unchecked), DNP3 service over Ethernet is disabled after the
configuration is downloaded to the controller.

When the selection is Enabled (Checked), DNP3 service over Ethernet is enabled after the
configuration is downloaded to the controller.

Enable Master Address Validation

The valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When the selection is Disabled (Unchecked), the controller accepts the requests from any
DNP3 Master.

When the selection is Enabled (Checked), the controller accepts the requests only from the
DNP3 Master Node Address, which is configured in the parameters Master Node0 on page 75,
and Master Node1, Master Node2, Master Node3, Master Node4 on page 75. The maximum
number of Master Node Addresses for the Master Address Validation is 5.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 77


Chapter 6 Micro870 Controller Distributed Network Protocol

Enable Self-Address

The valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When this bit is Disabled (Unchecked), any packets that contain the destination address 65532
(FFFCh) are ignored.

When this bit is Enabled (Checked), any packets that contain the destination address 65532
(FFFCh) are accepted and processed.

Any responses back to the DNP3 Master includes the actual configured DNP3 address of the
Micro870 controller.

Enable Access Control

The valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When the selection is Disabled (Unchecked), the controller accepts the requests from any
DNP3 Master.

When the selection is Enabled (Checked), the controller accepts the requests only from the
DNP3 Master IP Address, which is configured in the parameters Master IP Address0 to Master
IP Address4. The maximum number of Master IP Addresses for the Access Control is 5.

End Point Type

The valid selections are Listening, Dual, and Datagram Only. Default is Listening End Point type.

Master Node0

This value is used to:


• Validate Master node address when the Enable Master Address Validation is Enabled
(Checked).
• Send Unsolicited Response when Unsolicited Response functionality is enabled. An
Unsolicited Response is sent out to the DNP3 Master having this address.

The valid range is 0…65519. Default value is 0.

Master Node1, Master Node2, Master Node3, Master Node4

This value is used for validation of the Master node address when the Enable Master Address
Validation is Enabled (Checked). This value is only shown and valid when the Enable Master
Address Validation is Enabled (Checked).

The valid range is 0…65519. Default value is 0.

Master IP Address0

This value is used to:


• Validate Master IP address when the Enable Access Control is Enabled (Checked).
• Send Unsolicited Response when Unsolicited Response functionality is enabled. An
Unsolicited Response is sent out to the DNP3 Master having this address.

The valid value is an IP address. Default value is 0.0.0.0.

78 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Master IP Address1, Master IP Address2, Master IP Address3, Master IP Address4

This value is used for validation of the Master IP address when the Enable Access Control is
Enabled (Checked). This value is only shown and valid when the Enable Access Control is
Enabled (Checked).

The valid value is an IP address. Default value is 0.0.0.0.

Master TCP Port Number (Unsol)

This value is used to configure Master TCP Port Number for Unsolicited Response.

The valid range is 0…65535. Default value is 20000.

Master UDP Port Number for Initial Unsolicited

This value is used to configure Master UDP Port Number for Initial Unsolicited Response if the
parameter End Point Type is selected as Datagram Only.

The valid range is 0…65535. Default value is 20000.

Master UDP Port Number

This value is used to configure Master UDP Port Number if the parameter End Point Type is
selected as Datagram Only.

The valid range is 0…65535. Default value is 20000.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 79


Chapter 6 Micro870 Controller Distributed Network Protocol

Keep Alive Interval (x 1s)

This parameter specifies a time interval for TCP Keep Alive mechanism.

If the timer times out, the controller transmits a keep-alive message. The keep-alive message
is a DNP Data Link Layer status request (FC_REQUEST_LINK_STATUS). If a response is not
received to the keep-alive message, the controller deems that the TCP connection is broken
and closes the TCP connection.

The valid range is 1…65535. Default value is 10.

Slave Node Address

This value is a node address of this DNP3 Slave.

The valid range is 0…65519. Default value is 1.

Local Port Number (UDP)

This value is used to configure the Local UDP Port Number, which is used for UDP socket
listening.
The valid range is 0…65535. Default value is 20000.

Local Port Number (TCP)

This value is used to configure the Local TCP Port Number, which is used for TCP socket
listening.

The valid range is 0…65535. Default value is 20000.

DNP3 Slave Application Layer Configuration Parameters

Channel for Unsolicited Response

Only channels that are already configured for DNP3 protocol appear in the Channel for
Unsolicited Response dropdown menu. All Unsolicited Responses are transmitted through this
selected channel.

Restore Events After Power Cycle

When the selection is Disabled (Unchecked), DNP3 events that are generated before a power
cycle are flushed after a power cycle. When the option is Enabled (Checked), all DNP3 events
are restored after a power cycle.

80 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

Unsolicited Responses On Start Up

Valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When the selection is Disabled (Unchecked), the controller does not send any enabled
Unsolicited Responses after a restart until it has received a FC_ENABLE_UNSOLICITED (20)
command from the DNP3 Master.

When the selection is Enabled (Checked), the controller sends any enabled Unsolicited
Responses after a restart to the DNP3 Master unconditionally.

Unsolicited Responses For Class1

Valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When the selection is Disabled (Unchecked), Unsolicited Response is disabled for Class 1
events. To prevent overflowing of the event buffer, the DNP3 Master should poll for Class 1
events.

When the selection is Enabled (Checked), Unsolicited Response is enabled for Class 1 events.

Unsolicited Responses For Class2

Valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When the selection is Disabled (Unchecked), Unsolicited Response is disabled for Class 2
events. To prevent overflowing of the event buffer, the DNP3 Master should poll for Class 2
events.

When the selection is Enabled (Checked), Unsolicited Response is enabled for Class 2 events.

Enable Unsolicited For Class3

Valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).
When the selection is Disabled (Unchecked), Unsolicited Response is disabled for Class 3
events. To prevent overflowing of the event buffer, the DNP3 Master should poll for Class 3
events.

When the selection is Enabled (Checked), Unsolicited Response is enabled for Class 3 events.

Send Initial Unsolicited Null Response On Start Up

Valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When the selection is Disabled (Unchecked), the controller does not send Unsolicited NULL
Response with RESTART IIN bit on startup.

When the selection is Enabled (Checked), the controller sends Unsolicited NULL Response with
RESTART IIN bit on startup.

This selection is also used for sending the Restart IIN bit during Driver and Channel
configuration changes. For more information, see Internal Indications on page 98.
Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 81
Chapter 6 Micro870 Controller Distributed Network Protocol

Enable Confirmation

Valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When the selection is Disabled (Unchecked), the controller sends Response packets with CON
bit set in its header under the following conditions only:
• When the response has Event data
• When the response is multi-fragment response
• When the Unsolicited Response is sent

When the selection is Enabled (Checked), the controller always sends Response packets with
the CON bit set in its header, which causes the DNP3 Master to send replies confirming that it
received each Response packet without error.

Enable Time Synchronization

This parameter used with Time Synchronization Interval (x1 mins).


Valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When the selection is Disabled (Unchecked), the controller does not perform any time
synchronization.

When the selection is Enabled (Checked), the controller sets the NEED_TIME Internal Indication
bit (IIN1.4) on power-up and every interval that is configured in Time Synchronization Interval
(x1 mins).

Time Synchronization Interval (x1 mins)

This parameter is used with Enable Time Synchronization. Only valid when Enable Time
Synchronization is Enabled (Checked).

The valid range is 0…32767. Default value is 0. If the value is 0, the NEED_TIME Internal
Indication (IIN1.4) bit are set at startup and then after every Time Synchronization Interval
minute if the value is greater than 0.

When the parameter Enable Time Synchronization is Disabled (Unchecked), the IIN1.4 bit is
never turned on.

Max Response Size

The controller sends an Application Layer frame to fit in Max Response Size. If the Response
packet size is larger than this value, the controller fragments the Response packet.

The valid range is 27…2048 in bytes. Default value is 2048.

Confirmation Timeout (x1 ms)

When Enable Confirmation is enabled, the controller waits for Application Layer Confirmation
until the Confirmation Timeout (x1 ms) has expired.

The valid range is 100…65535 in 1 ms increments. Default value is 10000.

82 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Number of Retries

This parameter is used only for Unsolicited Response. If this value is set to the maximum of
65535, it means infinite retries of the Unsolicited Response.

The valid range is 0…65535. Default value is 0.

Number of Class1 Events

If the controller is configured not to initiate Class 1 Unsolicited Responses, this parameter is
used to limit the maximum number of events, which is generated and logged into the event
buffer for Class 1 events. In this case, the value 0 disables Class 1 event generation.
If the controller is configured to generate Unsolicited Responses, and the number of queued
Class 1 events reaches this value, an Unsolicited Response is initiated.

The valid range is 0…10000. Default value is 10.


For more information, see DNP3 10K Event Logging on page 111.

Hold Time after Class1 Events (x 1s)

This parameter is only for a Class 1 Unsolicited Response. The controller holds the events
during Hold Time after Class1 Events (x 1s) before initiating an Unsolicited Response.

The valid range is 0…65535. Default value is 5.

The value of 0 indicates that responses are not delayed due to this parameter.

The parameters Number of Class1 Events and Hold Time after Class1 Events (x 1s) are used
together so that if either one of the criteria is met, an Unsolicited Response is transmitted.

By default, the Hold time is retriggered for each new event detected.

Number of Class2 Events

If the controller is configured not to initiate Class 2 Unsolicited Responses, this parameter is
used to limit the maximum number of events, which is generated and logged into the event
buffer for Class 2 events. In this case, value 0 disables Class 2 event generation.
If the controller is configured to generate Unsolicited Responses, and the number of queued
Class 2 events reaches this value, an Unsolicited Response is initiated.

The valid range is 0…10000. Default value is 10.


For more information, see DNP3 10K Event Logging on page 111.

Hold Time after Class2 Events (x 1s)

This parameter is only for a Class 2 Unsolicited Response. The controller holds the events
during Hold Time after Class2 Events (x 1s) before initiating an Unsolicited Response.

The valid range is 0…65535. Default value is 5.

The value of 0 indicates that responses are not delayed due to this parameter.

The Parameters Number of Class2 Events and Hold Time after Class2 Events (x 1s) are used
together so that if either one of the criteria is met, an Unsolicited Response is transmitted.

By default, the Hold time is retriggered for each new event detected.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 83


Chapter 6 Micro870 Controller Distributed Network Protocol

Number of Class3 Events

If the controller is configured not to initiate Class 3 Unsolicited Responses, this parameter is
used to limit the maximum number of events, which is generated and logged into the event
buffer for Class 3 events. In this case, value 0 disables Class 3 event generation.

If the controller is configured to generate Unsolicited Responses, and the number of queued
Class 3 events reaches this value, an Unsolicited Response is initiated.

The valid range is 0…10000. Default value is 10.


For more information, see DNP3 10K Event Logging on page 111.

Hold Time after Class3 Events (x 1s)

This parameter is only for a Class 3 Unsolicited Response. The controller holds the events
during Hold Time after Class3 Events (x 1s) before initiating an Unsolicited Response.

The valid range is 0…65535. Default value is 5.


The value of 0 indicates that responses are not delayed due to this parameter.

The parameters Number of Class3 Events and Hold Time after Class3 Events (x 1s) are used
together so that if either one of the criteria is met, an Unsolicited Response is transmitted.

By default, the Hold time is retriggered for each new event detected.

Select Timeout (x 1s)

The valid range is 1…65535. Default value is 10.


This parameter is used for controlling CROB (Control Relay Output Block) and AOB (Analog
Output Block). After receiving the request with the function code FC_SELECT(3), DNP3 Master
should send the request with the function code FC_OPERATE(4) within this configured time.

DNP3 Object Data and Config

84 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

The DNP3 Mapping selection under DNP3 Slave in the controller properties allows you to define
the mapping of the listed DNP3 object and object properties (class number, online/offline
status, object quality flags, deadbands, and/or thresholds) to controller variables.
For more information, see DNP3 Objects and Controller Variables on page 98.

DNP3 Secure Authentication

The controller implements DNP3 Secure Authentication, which is based on the DNP3
Specification, Supplement to Volume 2, Secure Authentication, Version 2.00 and 5.00.

DNP3 Secure Authentication has been implemented in the DNP3 Application Layer of the
controller system. If you configure any parameters regarding DNP3 Secure Authentication in
the DNP3 Slave Application Layer configuration, it affects all ports that are configured for the
DNP3 protocol in the controller.

Enable Secure Authentication

The valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).

When the selection is Disabled (Unchecked), the controller disables the DNP3 Secure
Authentication subsystem.

When the selection is Enabled (Checked), the controller enables the DNP3 Secure
Authentication subsystem.

Secure Authentication Version

This parameter specifies the authentication version that this DNP3 slave controller uses.

Select 2 for Secure Authentication version 2 and select 5 for Secure Authentication version 5.
Default value is 2.

Enable Aggressive Mode in Secure Authentication

The valid selections are Enabled (Checked) and Disabled (Unchecked). Default value is Disabled
(Unchecked).
When the selection is Disabled (Unchecked), the controller disables DNP3 Aggressive Mode in
Secure Authentication subsystem.

When the selection is Enabled (Checked), the controller enables DNP3 Aggressive Mode in
Secure Authentication subsystem.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 85


Chapter 6 Micro870 Controller Distributed Network Protocol

Critical Function Code in Secure Authentication

This critical function code in the DNP3 Slave configuration page is used to define the list of the
critical function codes in Secure Authentication. A critical function code should be defined by
selecting the number icon to change it between Critical and Non-critical.

Table 20 shows the default state of the function codes that are defined in the Connected
Components Workbench software.
Table 20 - Function Codes
Function Code Critical FCs Function Code Critical FCs
0 (0x00) Non-critical 20 (0x14) Critical
1 (0x01) Non-critical 21 (0x15) Critical
2 (0x02) Critical 22 (0x16) Non-critical
3 (0x04) Critical 23 (0x17) Non-critical
4 (0x04) Critical 24 (0x18) Critical
5 (0x05) Critical 25 (0x19) Non-critical
6 (0x06) Critical 26 (0x1A) Non-critical
7 (0x07) Non-critical 27 (0x1B) Non-critical
8 (0x08) Non-critical 28 (0x1C) Non-critical
9 (0x09) Non-critical 29 (0x1D) Critical
10 (0x0A) Non-critical 30 (0x1E) Non-critical
11 (0x0B) Non-critical 31 (0x1F) Critical
12 (0x0C) Non-critical 129 (0x81) Non-critical
13 (0x0D) Critical 130 (0x82) Non-critical
14 (0x0E) Critical

Expected Session Key Change Interval (x1 min) in Secure Authentication

This parameter is used for configuring the expected session key change interval in minutes.

The valid range is 0…120 (min). Default value is 15 mins.

When the DNP3 Master does not change the Session Key within the time that is configured, the
controller invalidates the Session Key and its state for each user.

Expected Session Key Change Count in Secure Authentication

This parameter is used for configuring the expected session key change count.

The valid range is 1…10000. Default value is 1000.

86 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Reply Timeout (x100 ms) in Secure Authentication

This parameter is used for configuring the reply timeout in 100 ms.

The valid range is 0…1200 (120 s). Default value is 20 (2 s).

Maximum Error Count in Secure Authentication

This parameter is used for configuring the maximum error count.

The valid range is 0…10. Default value is 2.

HMAC Algorithm in Secure Authentication

This parameter is used to configure the Hash-based Message Authentication Code (HMAC)
algorithm.
• SHA-1
- Truncated to 4 octets (serial)
- Truncated to 10 octets (networked)
• SHA-256
- Truncated to 8 octets (serial)
- Truncated to 16 octets (networked)

Default value is SHA-256.

Update Key in Secure Authentication

This parameter is used to define user information Secure Authentication.

In Connected Components Workbench software, you can create the user keys in the DNP3
Slave configuration page.

• User Number
Valid range is 1…65535.
• User Role
A dropdown selection of various roles that you can define for each user number
(Viewer, Operator, Engineer, Installer, SECADM, SECAUD, RBACMNT, and single user).
• User Name
Define the unique name for each user, up to 32 characters (numbers, alphabets, and
symbols).
• Update Key
The key to be used by each user, up to 32 hexadecimal digits.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 87


Chapter 6 Micro870 Controller Distributed Network Protocol

To create a user, follow these steps.


1. Select Configure to open Update Key.
2. Select Add.
3. Enter the User Number, select the User Role, enter the User Name, and enter the Update
Key.
4. Select Encrypt or OK to create the user.
5. Download the project to the controller to update the user information in the controller.

To remove an existing user, follow these steps.


1. Select Configure to open Update Key.
2. Select the user to remove and select Delete.
3. Select OK to close the window.
4. Download the project to the controller to update the user information in the controller.

Update Key Change Method and Authority Certification Key

IMPORTANT This feature is only available in Secure Authentication Version 5.

An Authority Certification Key is a Symmetric (encrypted) or Public (not encrypted) key that is
stored in the controller for authentication with the DNP3 master when a Key change request is
processed.
Symmetric Key

Public Key

88 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

The type of key that is used in the certificate is based on the Update Key Change Method
setting that you have selected in the configuration. To define the key, select one of the
following settings.
• To use a Symmetric Key in authorization:
- AES-128/SHA-1-HMAC
- AES-256/SHA-256-HMAC
• To use a Public Key in authorization:
- RSA-2048/RSA SHA-256/SHA-256/HMAC
- RSA-3072/RSA SHA-256/SHA-256-HMAC

To configure the Authority Certification Key, select Configure.

To define a Symmetric Key, enter 32 or 64 characters into the field, depending on the Update
Key Change Method that you have selected. Select OK to accept and encrypt the key.

To define a Public Key, you must generate an RSA-2048 or RSA-3072 Public Key, depending on
the Update Key Change Method that you have selected, and enter it into the field. Select OK to
accept the changes. Public Keys are not encrypted.
Example of a Public Key

Default Variation Config

This configuration is used to define default variations in a response to a Class 0 poll request.

In Connected Components Workbench software version 20.01.00 or later, you can select
Default Variation Table in the DNP3 Slave configuration page to change the configuration.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 89


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 21 shows the structure of the DNP3 Default Variation Configuration File.
Table 21 - DNP3 Default Variation Configuration File
Group Default Variation for the Following Objects Standard Default Variation Alternate Default Variations
0 - All variation
1 Binary Input Static Object 1 - Packed format 2 - With flag
0 - All variation
2 Binary Input Change Object 3 - With relative time 1 - Without time
2 - With absolute time
0 - All variation
3 Double Bit Binary Input Static Object 1 - Packed format 2 - With flag
0 - All variation
4 Double Bit Binary Input Change Object 3 - With relative time 1 - Without time
2 - With absolute time
0 - All variation
10 Binary Output Static Object 2 - Output status with flag 1 - Packed format

90 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 21 - DNP3 Default Variation Configuration File (Continued)


Group Default Variation for the Following Objects Standard Default Variation Alternate Default Variations
0 - All variation
11 Binary Output Change Object 2 - Status with time 1 - Status without time
0 - All variation
13 Binary Output Command 2 - Command status with time 1 - Command status without time
0 - All variation
1 - 32-bit with flag
16-bit Counter Static Object 6 - 16-bit without flag 2 - 16-bit with flag
5 - 32-bit without flag
20
0 - All variation
1 - 32-bit with flag
32-bit Counter Static Object 5 - 32-bit without flag 2 - 16-bit with flag
6 - 16-bit without flag
0 - All variation
1 - 32-bit with flag
2 - 16-bit with flag
Frozen 16-bit Counter Static Object 10 - 16-bit without flag 5 - 32-bit with flag and time
6 - 16-bit with flag and time
9 - 32-bit without flag
21
0 - All variation
1 - 32-bit with flag
2 - 16-bit with flag
Frozen 32-bit Counter Static Object 9 - 32-bit without flag 5 - 32-bit with flag and time
6 - 16-bit with flag and time
10 - 16-bit without flag
0 - All variation
1 - 32-bit with flag
16-bit Counter Change Object 2 - 16-bit with flag 5 - 32-bit with flag and time
6 - 16-bit with flag and time
22
0 - All variation
2 - 16-bit with flag
32-bit Counter Change Object 1 - 32-bit with flag 5 - 32-bit with flag and time
6 - 16-bit with flag and time
0 - All variation
1 - 32-bit with flag
Frozen 16-bit Counter Change Object 2 - 16-bit with flag 5 - 32-bit with flag and time
6 - 16-bit with flag and time
23
0 - All variation
2 - 16-bit with flag
Frozen 32-bit Counter Change Object 1 - 32-bit with flag 5 - 32-bit with flag and time
6 - 16-bit with flag and time
0 - All variation
1 - 32-bit with flag
2 - 16-bit with flag
16-bit Analog Input Static Object 4 - 16-bit without flag 3 - 32-bit without flag
5 - Single-precision, floating point with flag
6 - Double-precision, floating point with flag
0 - All variation
1 - 32-bit with flag
2 - 16-bit with flag
30 32-bit Analog Input Static Object 3 - 32-bit without flag 4 - 16-bit without flag
5 - Single-precision, floating point with flag
6 - Double-precision, floating point with flag
0 - All variation
1 - 32-bit with flag
2 - 16-bit with flag
Short Float Analog Input 5 - Single-precision, floating point with flag 3 - 32-bit without flag
4 - 16-bit without flag
6 - Double-precision, floating point with flag

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 91


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 21 - DNP3 Default Variation Configuration File (Continued)


Group Default Variation for the Following Objects Standard Default Variation Alternate Default Variations
0 - All variation
1 - 32-bit without time
3 - 32-bit with time
4 - 16-bit with time
16-bit Analog Input Change Object 2 - 16-bit without time 5 - Single-precision, floating point without time
6 - Double-precision, floating point without time
7 - Single-precision, floating point with time
8 - Double-precision, floating point with time
0 - All variation
2 - 16-bit without time
3 - 32-bit with time
4 - 16-bit with time
32 32-bit Analog Input Change Object 1 - 32-bit without time 5 - Single-precision, floating point without time
6 - Double-precision, floating point without time
7 - Single-precision, floating point with time
8 - Double-precision, floating point with time
0 - All variation
1 - 32-bit without time
2 - 16-bit without time
3 - 32-bit with time
Short Float Analog Input Change Object 5 - Single-precision, floating point without time 4 - 16-bit with time
6 - Double-precision, floating point without time
7 - Single-precision, floating point with time
8 - Double-precision, floating point with time
0 - All variation
1 - 32-bit without time
3 - 32-bit with time
4 - 16-bit with time
Frozen 16-bit Analog Input Change Object 2 - 16-bit without time 5 - Single-precision, floating point without time
6 - Double-precision, floating point without time
7 - Single-precision, floating point with time
8 - Double-precision, floating point with time
0 - All variation
2 - 16-bit without time
3 - 32-bit with time
4 - 16-bit with time
33 Frozen 32-bit Analog Input Change Object 1 - 32-bit without time 5 - Single-precision, floating point without time
6 - Double-precision, floating point without time
7 - Single-precision, floating point with time
8 - Double-precision, floating point with time
0 - All variation
1 - 32-bit without time
2 - 16-bit without time
3 - 32-bit with time
Frozen Short Float Analog Input Change Object 5 - Single-precision, floating point without time 4 - 16-bit with time
6 - Double-precision, floating point without time
7 - Single-precision, floating point with time
8 - Double-precision, floating point with time
0 - All variation
16-bit Analog Input Reporting Dead Band 1 - 16-bit 2 - 32-bit
3 - Single-precision, floating point
0 - All variation
34 32-bit Analog Input Reporting Dead Band 2 - 32-bit 1 - 16-bit
3 - Single-precision, floating point
0 - All variation
Short Float Analog Input Reporting Dead Band 3 - Single-precision, floating point 1 - 16-bit
2 - 32-bit
0 - All variation
1 - 32-bit with flag
16-bit Analog Output Static Object 2 - 16-bit with flag 3 - Single-precision, floating point with flag
4 - Double-precision, floating point with flag
0 - All variation
2 - 16-bit with flag
40 32-bit Analog Output Static Object 1 - 32-bit with flag 3 - Single-precision, floating point with flag
4 - Double-precision, floating point with flag
0 - All variation
1 - 32-bit with flag
Short Float Analog Output Status 3 - Single-precision, floating point with flag 2 - 16-bit with flag
4 - Double-precision, floating point with flag

92 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 21 - DNP3 Default Variation Configuration File (Continued)


Group Default Variation for the Following Objects Standard Default Variation Alternate Default Variations
0 - All variation
1 - 32-bit without time
3 - 32-bit with time
4 - 16-bit with time
16-bit Analog Output Change Object 2 - 16-bit without time 5 - Single-precision, floating point without time
6 - Double-precision, floating point without time
7 - Single-precision, floating point with time
8 - Double-precision, floating point with time
0 - All variation
2 - 16-bit without time
3 - 32-bit with time
4 - 16-bit with time
42 32-bit Analog Output Change Object 1 - 32-bit without time 5 - Single-precision, floating point without time
6 - Double-precision, floating point without time
7 - Single-precision, floating point with time
8 - Double-precision, floating point with time
0 - All variation
1 - 32-bit without time
2 - 16-bit without time
3 - 32-bit with time
Short Float Analog Output Change Object 5 - Single-precision, floating point without time 4 - 16-bit with time
6 - Double-precision, floating point without time
7 - Single-precision, floating point with time
8 - Double-precision, floating point with time
0 - All variation
1 - 32-bit without time
3 - 32-bit with time
4 - 16-bit with time
16-bit Analog Output Command Change Object 2 - 16-bit without time 5 - Single-precision, floating point without time
6 - Double-precision, floating point without time
7 - Single-precision, floating point with time
8 - Double-precision, floating point with time
0 - All variation
2 - 16-bit without time
3 - 32-bit with time
4 - 16-bit with time
43 32-bit Analog Output Command Change Object 1 - 32-bit without time 5 - Single-precision, floating point without time
6 - Double-precision, floating point without time
7 - Single-precision, floating point with time
8 - Double-precision, floating point with time
0 - All variation
1 - 32-bit without time
2 - 16-bit without time
3 - 32-bit with time
Short Float Analog Output Command Change Object 5 - Single-precision, floating point without time 4 - 16-bit with time
6 - Double-precision, floating point without time
7 - Single-precision, floating point with time
8 - Double-precision, floating point with time

DNP3 Slave Application This section covers DNP3 Slave Application Layer Function Codes and Internal Indications. All
Function Codes that are supported in the controller are summarized in Function Codes for
Layer DNP3 in Micro870 Controllers on page 118.
For details of Packet Formats for the request and response, see the DNP3 Protocol
specifications.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 93


Chapter 6 Micro870 Controller Distributed Network Protocol

Function Codes

CONFIRM (FC Byte = 0x00)

00 – Confirm

A DNP3 master sends a message with this function code to confirm receipt of a response
fragment. In a general environment, the controller receives a response with this function code.
But the controller may generate a response with this function code when a DNP3 Master sends
a request with the CON bit set in the application control header.

READ (FC Byte = 0x01)

01 – Read

The READ function code is used by a DNP3 master to request data from the controller.

WRITE (FC Byte = 0x02)

02 – Write

The WRITE function code is used to write the contents of DNP3 objects from the DNP3 master
to the controller. This function code is used for clearing bit IIN1.7 [DEVICE_RESTART], setting
time in the controller and downloading user programs to the controller.

SELECT (FC Byte = 0x03)

03 – Select

The SELECT function code is used with the OPERATE function code as part of the select-
before-operate method for issuing control requests. This procedure is used for controlling
binary output (CROB) or analog output (AOB) objects.

OPERATE (FC Byte = 0x04)

04 – Operate

See SELECT (FC Byte = 0x03).

DIRECT_OPERATE (FC Byte = 0x05)

05 – Direct Operate

This direct operate function is similar to the FC_OPERATE function code except that no
preceding select command is required.

DIRECT_OPERATE_NR (FC Byte = 0x06)

06 – Direct Operate No Resp

See DIRECT_OPERATE (FC Byte = 0x05). No response message is returned when this request is
issued from a DNP3 master.

94 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

IMMED_FREEZE (FC Byte = 0x07)

07 – Immediate Freeze

Upon receiving a request with this function, the controller copies the current value of a
counter point to a separate memory location associated with the same point. The copied value
remains constant until the next freeze operation to the same point.

IMMED_FREEZE_NR (FC Byte = 0x08)

08 – Immediate Freeze No Resp

See IMMED_FREEZE (FC Byte = 0x07). No response message is returned when this request is
issued from a DNP3 master.

FREEZE_CLEAR (FC Byte = 0x09)

09 – Freeze and Clear

Upon receiving a request with this function, the controller copies the current value to the
frozen value, then clears the current value to 0 immediately.

FREEZE_CLEAR_NR (FC Byte = 0x0A)

10 – Freeze and Clear No Resp

See FREEZE_CLEAR (FC Byte = 0x09). No response message is returned when this request is
issued from a DNP3 master.

COLD_RESTART (FC Byte = 0x0D)

13 – Cold Restart
This function code forces the controller to perform a complete restart upon powering up.

WARM_RESTART (FC Byte = 0x0E)

14 – Warm Restart
This function code forces the controller to perform a partial reset.

INITIALIZE_APPL (FC Byte = 0x10)

16 – Initialize Application

This function code is used to initialize the user program that was downloaded by Connected
Components Workbench software.

START_APPL (FC Byte = 0x11)

17 – Start Application

This function code is used to start the user program that was downloaded by Connected
Components Workbench software.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 95


Chapter 6 Micro870 Controller Distributed Network Protocol

STOP_APPL (FC Byte = 0x12)

18 – Stop Application

This function code is used to stop the user program that was downloaded by Connected
Components Workbench software.

ENABLE_UNSOLICITED (FC Byte = 0x14)

20 – Enable Unsolicited Message

This function is used to enable dynamically unsolicited messages generated in the controller.

DISABLE_UNSOLICITED (FC Byte = 0x15)

21 – Disable Unsolicited Message

This function is used to disable dynamically unsolicited messages generated in the controller.

DELAY_MEASURE (FC Byte = 0x17)

23 – Delay Measurement, used for Non-LAN Procedure

This function code is used to measure the communication channel delay time.

RECORD_CURRENT_TIME (FC Byte = 0x18)

24 – Record Current Time, used for LAN Procedure

This function code is used in the procedure for time synchronizing controllers that
communicate over a LAN.

OPEN_FILE (FC Byte = 0x19)

25 – Open File
This function code is used to make a file available for reading or writing.

CLOSE_FILE (FC Byte = 0x1A)

26 – Close File

After the file read or write operation, this function code is used to unlock the file.

DELETE_FILE (FC Byte = 0x1B)

27 – Delete File

A DNP3 master uses this function code to delete a file.

GET_FILE_INFO (FC Byte = 0x1C)

28 – Get File Information


This function code is for the master to retrieve information about a file in the controller.

96 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

AUTHENTICATE_FILE (FC Byte = 0x1D)

29 – Authenticate File

This function code is used to obtain an authentication key that is required to open or delete a
file.

ABORT_FILE (FC Byte = 0x1E)

30 – Abort File

This function code is used to immediately request termination of the current read/write
operation and close the file, without saving.

ACTIVATE_CONFIG (FC Byte = 0x1F)

31 – Activate Config

This function code is used to begin using the configuration or executable code that is
specified by the objects included in the request.

AUTHENTICATE_REQ (FC Byte = 0x20)

32 – Authentication Request

The master uses this function code when sending authentication messages to the controller
that require a response

AUTHENTICATE_ERR (FC Byte = 0x21)

33 – Authentication Request No Resp

This function code is used by the master to send authentication messages when no return
response is required.

RESPONSE (FC Byte = 0x22)

129 – Response
All responses except for Unsolicited Response messages use this function code.

UNSOLICITED_RESPONSE (FC Byte = 0x23)

130 – Unsolicited Response

Unsolicited Responses always use this function code regardless of which DNP3 objects are
included.

AUTHENTICATE_RESPONSE (FC Byte = 0x24)

131 – Authentication Response

This function code is used to issue authentication messages to the master.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 97


Chapter 6 Micro870 Controller Distributed Network Protocol

Internal Indications
Internal Indication bits are set under the following conditions of the controllers:
• IIN1.0: ALL_STATIONS. This bit is set when an all-stations message is received.
• IIN1.1: CLASS_1_EVENTS. This bit is set when Class 1 event data is available.
• IIN1.2: CLASS_2_EVENTS. This bit is set when Class 2 event data is available.
• IIN1.3: CLASS_3_EVENTS. This bit is set when Class 3 event data is available.
• IIN1.4: NEED_TIME. This bit is set when time synchronization is required.
• IIN1.5: LOCAL_CONTROL. This bit is set when the controller is in Non-executing mode.
• IIN1.6: DEVICE_TROUBLE. This bit is set when the controller is in Fault mode.
• IIN1.7: DEVICE_RESTART. This bit is set when the DNP3 driver is configured, in channel
configuration, or when the controller has been restarted.
To set this bit during the driver configuration and channel configuration, you must
select the “Send Init. Unsol. Null Resp. on Restart” setting and set Status Bit S:36/13 to 1
before downloading to the controller.
• IIN2.0: NO_FUNC_CODE_SUPPORT. This bit is set when a request that has an unknown
function code is received.
• IIN2.1: OBJECT_UNKNOWN. This bit is set when a request that has an unknown object is
received.
• IIN2.2: PARAMETER_ERROR. This bit is set when a request with a qualifier/range field
that cannot be processed is received.
• IIN2.3: EVENT_BUFFER_OVERFLOW. This bit is set when an event buffer overflow
condition exists in the controller and at least one unconfirmed event is lost.
• IIN2.4: ALREADY_EXECUTING. Not supported.
• IIN2.5: CONFIG_CORRUPT. This bit is set when a bad file type and bad file number are
detected.
• IIN2.6: Reserved.
• IIN2.7: Reserved.

DNP3 Objects and Controller All DNP3 Objects that are supported in the controller are summarized in Implementation Table
for Micro870 controllers on page 119.
Variables
Variables that are used in DNP3 Objects are not the same as that used in the controller, but are
similar. Mapping is required between variables in DNP3 Objects and controller variables.

Overview

DNP3 Data objects that are implemented in the controller are listed as follows:
• DNP3 Binary Input Object
• DNP3 Double Bit Binary Input Object
• DNP3 Binary Output Object
• DNP3 Counter Object
• DNP3 Frozen Counter Object
• DNP3 Analog Input Object
• DNP3 Analog Output Object
• DNP3 BCD Object
• DNP3 Data-Set™ Object

98 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Some of objects are divided into several Object files to map data in the controller.
• Counter Object — 16-bit and 32-bit Counter Object
• Analog Input Object — 16-bit and 32-bit Analog Input Object, and Short Floating Point
Analog Input Object.
• Analog Output Object — 16-bit and 32-bit Analog Output Object, and Short Floating Point
Analog Output Object.
DNP3 Mapping for Micro870 controllers

You can create the different data objects by mapping them to the variables created in the
controller. You can configure the Data object for each DNP3 Object in the DNP3 Slave
configuration page. Variables can be BOOL, INT, DINT, or REAL data types.

DNP3 Object Data


Table 22 - Relationship between DNP3 Object Database and Micro800 Variables
DNP Objects Micro800 Variables
Object Name Related Groups Maximum Configurable Index Data Name Maximum Configurable Elements
Binary Input Object 1, 2 4096 Binary Input Object 256
Double Bit Binary Input Object 3, 4 2048 Double Bit Binary Input Object 256
Binary Output Object 10, 12 4096 Binary Output Object 256
16-bit Counter Object
Counter Object 20, 22 256 256
32 bit Counter Object
Reflection of Counter Object that Reflection of 16-bit Counter Object
Frozen Counter Object 21, 23 —
was configured Reflection of 32-bit Counter Object
16-bit Analog Input Object
Analog Input Object 30, 32 256 32-bit Analog Input Object 256
Short Floating Point Analog Input Object
16-bit Analog Output Object
Analog Output Object 40, 41 256 32-bit Analog Output Object 256
Short Floating Point Analog Output Object
BCD Object 101 256 Small BCD Object 256
85, 87, 88 Data-Set Prototypes Object
Data-Set Object 10 10
86, 87, 88 Data-Set Descriptors Object

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 99


Chapter 6 Micro870 Controller Distributed Network Protocol

DNP3 Configuration
You can configure parameters such as Class level and Object Flag bit information for each
element. This information is defined during object creation in the DNP3 Mapping page under
DNP3 Slave.

DNP3 Data Set Object


To create a Data Set Object from the DNP3 Subsystem in the controller, configure Data Set
Prototypes/Descriptors Object in the DNP3 Data Set Descriptor/Prototype page under DNP3
Slave.

Each Data Set Prototypes Object can have up to 10 elements of Data Set Prototypes, and each
Data Set Descriptors Object can have up to 10 elements of Data-set Descriptors.

As an example, with Data Set Prototypes entry, you can create any number of Data Set
Prototype objects in the DNP3 Data Set Prototype configuration screen, up to a maximum of 10
entries.

100 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Figure 26 - DNP3 Data Set Prototype Page

As an example, with Data Set Descriptors entry, you can create any number of Data Set
Descriptor objects in the DNP3 Data Set Descriptor page, up to a maximum of 10 entries
Figure 27 - DNP3 Data Set Descriptor Page

Once the Data Set Prototypes and Descriptors are configured in the DNP3 Slave setting page of
Connected Components Workbench software version 20.01.00 or later, you can see the DNP3
Descriptor DSX and Prototype PTYPX under the respective DNP3 Data Set branch, where X is
the element numbers of each Prototype or Descriptor.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 101


Chapter 6 Micro870 Controller Distributed Network Protocol

For DNP3 PTYPX, you can configure the controller to construct the Data Set Prototype objects.

For DNP3 DSX, you can configure the controller to construct the Data Set Descriptor objects.

Data Set Prototypes Configuration Parameters

These parameters are used to construct Data Set Prototypes object.

102 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

You can add or delete the index in each PTYPx entry.


• Descriptor Code: UUID for index 2. NSPC/NAME/DAEL for index 3 or higher.
• Data Type Code: NONE for index 2. VSTR/UINT/INT/FLT/OSTR/BSTR/TIME for index 3 or
higher.
• Max Data Length (bytes): 0 for element 1. 0…255 for index 3 or higher.
• Ancillary Value: Binary Array in hexadecimal for element 1. ASCII strings for index 3 or
higher. Maximum 32 bytes.

Data-Set Descriptors Configuration Parameters

These parameters are used to construct Data-Set Descriptors objects.

The Read and Enable Event check boxes allow assignment of characteristics to this Descriptor
object.
• Read: Set if the Data-Set is readable.
• Enable Event: Set if the outstation generates a Data-Set event.

With Enable Event checked, you can assign an Event Class to this Descriptor object.
• 1: Class 1
• 2: Class 2
• 3: Class 3

Additional Event parameters:


• Trigger Event: Define and set this parameter to generate an event by the ladder logic to
generate timed events. Once the ladder logic or communications sets this parameter,
the controller clears it automatically after generating an event at the end of a scan.
• Disable Change Event: Define and set this parameter to suppress the events generated
by any Event Occurrence Condition.
• Event Occurrence Condition: The conditions of Data-Set Event for each Data-Set
Descriptor can be configured by Data-Set Event Occurrence Condition 1/2/3/4 in the
DNP3 Data-Set Descriptors Object. When one of the values that are pointing to the Event
Occurrence Condition 1/2/3/4 are changed or the criteria are met, the controller
generates a Data-Set Event, retrievable using the object Group 88, Variation 1.

Table 23 on page 104 shows the supported conditions for Point Addressing under Event
Occurrence Conditions.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 103


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 23 - Event Occurrence Condition for Supported Point Addressing


Point Address Type Point Type Point Index Event Occurrence Condition
Empty NONE: No point type is associated 0 No event is generated.
BI: Binary input 0…4095
B2I: Double-bit input 0…2047 When the Point Type and Point
Index point to a specific point, if
Standard DNP3 Point CI: Counter 0…511 the value of the point changes, an
AI: Analog input 0…767 event is generated.
BCD: BCD point 0…255
An event is generated based on
Variable Select the tag from the controller 0 the condition of the variable tag
selected.

A Data-set event can consume any number of event buffers, depending on the Data-set
configuration. This is only applicable for Data-set events. The event for other objects
consumes one event buffer. When using Data-set events, increase the number of events in the
DNP3 Slave configuration.

Descriptor Element Configuration: Each Descriptors element is configured by clicking on the


individual DSX under the DNP3 Data-set Descriptor. Add new index by clicking Add in each DSX.

Descriptor Code: NAME, DAEL, PTYP


Data Type Code: VSTR, UINT, INT, FLT, OSTR, BSTR, TIME

Max Data Length (bytes): 0…255

Ancillary Value: Any string. This can be a binary array or ASCII string, up to 32 bytes.

Point Addressing under Descriptor Element Configuration: Data-Set value for each Data-Set
element is configured by:
• Point Address Type
• Point Index
When these values are configured properly according to the supported data files, the
controller responds with a Group 87, Variation 1 object filled with the value in the data file.
Table 24 on page 105 shows the supported data files for the Point Addressing.

104 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 24 - Point Address Type — Standard DNP3 Point

Point Address Data Type Maximum


Data Length Point Type Point Index Low Byte Point Index High Byte
Type Code (bytes)
NONE = 0:
NONE = 0 0 No point type is 0
associated.
0…4095 max
BI = 1: When using Data Types other than OSTR and BSTR,
Binary input the Point Index must be set to a point offset that
is divisible by 16.
NONE = 0 0 0…2047 max
Standard B2I = 3: When using Data Types other than OSTR and BSTR,
DNP3 Point UINT = 2 0, 1, 2, or 4
INT = 3 0, 1, 2, or 4 Double-bit input the Point Index must be set to a point offset that
OSTR = 5 0…255 is divisible by 8.
BSTR = 6 0…255 CI = 20:
TIME = 7 0…6 0…511 max
Counter
AI = 30: 0…767 max
Analog input
BCD = 101: 0…255 max
BCD point

When the Descriptor Code is selected as PTYP, the Point Addressing parameters for the
Descriptor element are replaced by 10 Point Addressing parameters. These should be
configured in the same order of the DAEL elements in the relevant Prototypes.

For instance, if Prototype 0 includes a Namespace at Index 3 and Name at Index 4, then the
first DAEL in the Prototype 0 is at Index 5.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 105


Chapter 6 Micro870 Controller Distributed Network Protocol

Object Quality Flags


The object flag is composed of an 8-bit string for some DNP3 objects. The tables below show
Flag Descriptions for each object. The ONLINE, RESTART, COMM_LOST, REMOTE_FORCED and
LOCAL_FORCED flags are common to all object group types that contain flags.

There are some rules for the Object flag set or clear for each bit by the controller. The rules
below are also applied to Event data.
• When the controller is in Non-executing mode, the object flag is always all 0.
• When the controller is in Executing mode and there is no configuration file, only the
Online flag in the object flag is set.
• When the controller is in Executing mode and there is a configuration file, the flags in
the object flag are set according to the upper byte of the configuration files.
Table 25 - Object Flags for Binary Input
Bit Offset Name Description
0 when the controller is or was in Non-executing mode.
1 when the controller is or was in Executing mode and the configuration file
0 ONLINE does not exist.
May be 1 when the controller is or was in Executing mode and the
configuration file exists.
1 RESTART Always 0. Not used.
2 COMM_LOST Always 0. Not used.
3 REMOTE_FORCED Always 0. Not used.
4 LOCAL_FORCED Always 0. Not used.
5 CHATTER_FILTER Always 0. Not used.
6 Reserved Always 0. Not used.
7 STATE Reflects point state of Binary Input point.

Table 26 - Object Flags for Double Binary Input


Bit Offset Name Description
0 when the controller is or was in Non-executing mode.
1 when the controller is or was in Executing mode and the configuration file
0 ONLINE does not exist.
May be 1 when the controller is or was in Executing mode and the
configuration file exists.
1 RESTART Always 0. Not used.
2 COMM_LOST Always 0. Not used.
3 REMOTE_FORCED Always 0. Not used.
4 LOCAL_FORCED Always 0. Not used.
5 CHATTER_FILTER Always 0. Not used.
6 STATE Reflects point state of Double-bit Binary Input point. Double-bit LSB.
7 STATE Reflects point state of Double-bit Binary Input point. Double-bit MSB

106 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 27 - Object Flags for Binary Output


Bit Offset Name Description
0 when the controller is or was in Non-executing mode.
1 when the controller is or was in Executing mode and the configuration file
0 ONLINE does not exist.
May be 1 when the controller is in Executing mode and the configuration file
exists.
1 RESTART Always 0. Not used.
2 COMM_LOST Always 0. Not used.
3 REMOTE_FORCED Always 0. Not used.
4 LOCAL_FORCED Always 0. Not used.
5 Reserved Always 0. Not used.
6 Reserved Always 0. Not used.
7 STATE Reflects point state of Binary Output point.

Table 28 - Object Flags for Counter


Bit Offset Name Description
0 when the controller is or was in Non-executing mode.
1 when the controller is or was in Executing mode and the configuration file
0 ONLINE does not exist.
May be 1 when the controller is in Executing mode and the configuration file
exists.
1 RESTART
2 COMM_LOST
0 when the controller is or was in Non-executing mode.
3 REMOTE_FORCED 0 when the controller is or was in Executing mode and the configuration file
4 LOCAL_FORCED does not exist.
5 ROLLOVER May be 1 when the controller is in Executing mode and the configuration file
exists.
6 DISCONTINUITY
7 Reserved

Table 29 - Object Flags for Analog Input


Bit Offset Name Description
0 when the controller is or was in Non-executing mode.
1 when the controller is or was in Executing mode and the configuration file
0 ONLINE does not exist.
May be 1 when the controller is in Executing mode and the configuration file
exists.
1 RESTART
2 COMM_LOST
0 when the controller is or was in Non-executing mode.
3 REMOTE_FORCED 0 when the controller is or was in Executing mode and the configuration file
4 LOCAL_FORCED does not exist.
5 OVER_RANGE May be 1 when the controller is in Executing mode and the configuration file
exists.
6 REFERENCE_ERR
7 Reserved

Table 30 - Object Flags for Analog Output


Bit Offset Name Description
0 when the controller is or was in Non-executing mode.
1 when the controller is or was in Executing mode and the configuration file
0 ONLINE does not exist.
May be 1 when the controller is in Executing mode and the configuration file
exists.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 107


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 30 - Object Flags for Analog Output (Continued)


Bit Offset Name Description
1 RESTART
2 COMM_LOST
0 when the controller is or was in Non-executing mode.
3 REMOTE_FORCED 0 when the controller is or was in Executing mode and the configuration file
4 LOCAL_FORCED does not exist.
5 Reserved May be 1 when the controller is in Executing mode and the configuration file
exists.
6 Reserved
7 Reserved

DNP3 Device Attribute The Device Attribute object can be used to identify DNP3 Slave devices. With the controller,
some of the variations are written so that you can read or write your own strings in your
Object application.

The R/W property shows if the object is Read-only, Read, or Write. If the R/W property is
writable, the value that was written by the DNP3 master device is stored to nonvolatile
memory.

The object group of the Device Attribute is 0. The supported range of the variation is 209…255.
Table 31 - Object Group 0, Variations for Attribute Set 0

Variation Read/Write Attribute Max Length in Bytes Description Value


Data Type
Secure authentication version supported in out
209 Read-only UINT 1 5
station
210 Read-only UINT 1 Number of secure statistic available in out station 18
212 Read-only UINT 1 Number of master-defined Data-Set prototypes 1
213 Read-only UINT 1 Number of outstation-defined Data-Set prototypes 1
214 Read-only UINT 1 Number of master-defined Data-Sets 1
215 Read-only UINT 1 Number of outstation-defined Data-Sets 1
216 Read-only UINT 1 Max number of binary outputs per request 1
217 Read-only UINT 4 Local timing accuracy 100 in microseconds
218 Read-only UINT 4 Duration of timing accuracy 100 in seconds
219 Read-only INT 1 Support for analog output events 1
220 Read-only UINT 4 Max analog output index 0
221 Read-only UINT 4 Number of analog outputs 0
222 Read-only INT 1 Support for binary output events 1
223 Read-only UINT 4 Max binary output index 0
224 Read-only UINT 4 Number of binary outputs 0
225 Read-only INT 1 Support for frozen counter events 1
226 Read-only INT 1 Support for frozen counters 1
227 Read-only INT 1 Support for counter events 1
228 Read-only UINT 4 Max counter index 0
229 Read-only UINT 4 Number of counter points 0
230 Read-only INT 1 Support for frozen analog inputs 1
231 Read-only INT 1 Support for analog input events 1
232 Read-only UINT 4 Maximum analog input index 0
233 Read-only UINT 4 Number of analog input points 0
234 Read-only INT 1 Support for double-bit binary input events 1
235 Read-only UINT 4 Maximum double-bit binary input index 0
236 Read-only UINT 4 Number of double-bit binary input points 0
237 Read-only INT 1 Support for binary input events 1
238 Read-only UINT 4 Max binary input index 0
239 Read-only UINT 4 Number of binary input points 0
240 Read-only UINT 4 Max transmit fragment size Response size

108 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 31 - Object Group 0, Variations for Attribute Set 0 (Continued)

Variation Read/Write Attribute Max Length in Bytes Description Value


Data Type
241 Read-only UINT 4 Max receive fragment size Response size
This variation returns firmware FRN. FRN 1.00.
Supported ranges: FRN x.yy, FRN x.yyy, FRN xx.yy, or
FRN xx.yyy
242 Read-only VSTR 5 Device manufacturer's software version Where x or xx is 0…99, and yy or yyy is 00…999.
For example, FRN 1.00, FRN 1.05, FRN 12.05, FRN 102.27,
or FRN 103.117.
Supported ranges: HW SER x/REV yy
Where x is A…F and yy is 00…31.
243 Read-only VSTR 6 Device manufacturer's hardware version For example, HW SER A/REV 01, HW SER B/REV 03, or
HW SER C/REV 31.
244 — — — Reserved for future assignment —
length of the string
245 Read /Write VSTR User-assigned location name Default
value, max 255 bytes
length of the string
246 Read/Write VSTR User-assigned ID code/number Default
value, max 255 bytes
247 — — — Reserved for future assignment —
248 — — — Reserved for future assignment —
This variation returns Subset level and Test procedure
249 Read-only VSTR 6 DNP subset and conformance version 3:2004.
Supported ranges: 2080-L70E-24xxxN SER A
length of the string Where xxx is QWB or QBB.
250 Read-only VSTR Device manufacturer's product name and model
value For example, 2080-L70E-QWBN SER A or
2080-L70E-24QBBN SER A.
251 — — — Reserved for future assignment —
This variation returns the Company name, Rockwell
252 Read-only VSTR 19 Device manufacturer's name Automation.
253 Read-only — — Reserved for future assignment —
This variable returns all variations in this group except
254 Read-only — — Non-specific all attributes request this variation.
This variation returns the R/W property for each
variation.
255 Read-only — — List of attribute variations 0 for Read-only
1 for Read or Write

Event Reporting This section covers how to generate DNP3 events from DNP3 Data Objects and how to report
the generated events by polled response or unsolicited response.

Generate Events
The controller has a separate buffer area that you can use to log DNP3 events internally.

The maximum number of events that can be logged is 10000 (see DNP3 10K Event Logging on
page 111), regardless of the Event data type. In 2080-L70E-24QxBN controllers, a Data-Set event
can consume multiple numbers of the event buffer.

If the number of the generated events reaches this value, the controller sets IIN2.3
[EVENT_BUFFER_OVERFLOW]. Further events are not logged until the logged events are
reported to the DNP3 Master and the buffer is available.

The logged events are not removed until they are reported to the DNP3 Master successfully.
Logged events can also be cleared when one of the following events occur:
• New OS firmware update
• New user program download

Figure 28 on page 110 shows how to generate events for a Binary Input Object and a 16-bit
Analog Input Object. In the DNP3 Slave configuration, Binary Input Object Data and 16-bit
Analog Input Object Data is configured in the DNP3 mapping table.
Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 109
Chapter 6 Micro870 Controller Distributed Network Protocol

Figure 28 - Generate Events for Binary Input Object

Select Add, then select a variable from the Variable Selector dialog for the Binary Input Object.
Figure 29 - Data Types for Binary Input Object Example

There are two methods to create Binary Input Object. You can create the object as a BOOL data
type or as a UINT data type. The UINT data type represents similar to a BOOL array of 16 bits
and this representation is similar to the BOOL array used in MicroLogix™ 1400 controllers.
Figure 30 - Class Events for Binary Input Object Example

Figure 30 shows the different class events that can be triggered when the BOOL variable is
triggered. When using the UINT variable, any of the bits in the UINT trigger the respective class
event.

110 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

In the same manner, create this 16-bit Analog Input Object in the Analog Input tab and define
Index 0 as Class 1, Index 1 as Class 2, and Index 2 as Class 3.
Figure 31 - Analog Input Object Example

DNP3 10K Event Logging


Up to 10,000 events can be logged. To configure the number of events, change the Unsolicited
Responses for the Class 1/2/3 to Enabled and define 10,000 into the Number of Events field.
Download the project into the controller for the setting to take effect.
Figure 32 - Configure Number of Events to Log

When there is a change in the configuration for the number of events, you must download the
project into the controller for the setting to take effect.

Control Generating Event


The controller checks all elements in the Object Data for changes at the end of a scan and
generates events where needed.

The key method to turn on and off event generating by ladder logic is to assign the variable to
be used for controlling into the Trigger Event and Disable Change Events field.

Figure 33 on page 112 shows how to control the event generation condition by using the
Deadband for Analog Input Objects.

In this example, for 16-bit Analog Input point 0, if the absolute value of the difference between
the present value of the variable AnalogValue1 and the value that was most recently queued as
an event for that point exceeds the deadband value in variable AnalogV1Deadband, then an
event is generated for that point.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 111


Chapter 6 Micro870 Controller Distributed Network Protocol

Figure 33 - Control Event Generation Example

Report Event By Polled Response


When a DNP3 Master sends a poll to read Class events, any events that are logged to the event
buffer are reported in the polled response.

Define the Number of Events for the respective Class event in the DNP3 Slave configuration
page as shown in Figure 34.
Figure 34 - Define Number of Events for each Class Event

Report Event By Unsolicited Response


To initiate and send Unsolicited Responses to a DNP3 Master, configure the following
parameters correctly. For more information, see DNP3 Slave Application Layer Configuration
Parameters on page 80.
• Master Node 0
• Channel for Unsolicited Response
• Enable Unsolicited On Start Up
• Enable Unsolicited For Class1
• Enable Unsolicited For Class2
• Enable Unsolicited For Class3
• Send Initial Unsolicited On Start Up
• Number of Class1 Events
• Hold Time after Class1 Events (x1s)
• Number of Class2 Events
• Hold Time after Class2 Events (x1s)
• Number of Class3 Events
• Hold Time after Class3 Events (x1s)

112 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

• DNP3 Object Data


• DNP3 Object Config
• Content of the Config File

In some cases, the controller may not send an Unsolicited Response even though the
parameters are configured properly.
• Normally, when the parameter Enable Unsolicited On Start Up is checked, the controller
initiates an Unsolicited Response with the function code ENABLE_UNSOLICITED(20), if
there are any events that are logged into the event buffer. However, when a request
with the function code DISABLE_UNSOLICITED(21) is received, an Unsolicited Response
is not sent.
• When the parameter Enable Unsolicited On Start Up is unchecked, the controller does
not trigger the Unsolicited Response until a request with the function code
ENABLE_UNSOLICITED(20) from the DNP3 Master is received.

Figure 35 shows how to initiate and send the Unsolicited Response. Master Node 0 in the DNP3
Slave configuration page indicates that the Unsolicited Response is reported to the Master
with the node address 3.
Figure 35 - Initiate and Send Unsolicited Response

The parameter for Unsolicited Response in the DNP3 Slave configuration indicates that the
Unsolicited Response is reported for all communication ports (Serial and Ethernet) that are
defined. In this example, an Initial Unsolicited Response is sent on startup and all events of
Class 1, 2, and 3 are reported. Since Hold Times are configured to 5 seconds, generated events
are reported after 5 seconds.

Collision Avoidance The controller supports the following two methods for collision avoidance.
• Detecting transmitted data (TX/RX line on RS-485 communication)
• Detecting out-of-band carrier (DCD on RS-232C communication)

When the controller is connected to a RS-485 network, it monitors all data on the link. If the
controller is preparing to transmit a packet and finds the link busy, it waits for an interval that
is defined by the Backoff_Time until it is no longer busy.

Backoff_Time = Pre Transmit Delay (x1 ms) + Max Random Delay (x1 ms)

The Pre Transmit Delay (x1 ms) in the Link Layer Channel Configuration file is a fixed delay and
the Max Random Delay (x1 ms) in the Channel Configuration file is a maximum random delay for
Channel 0 and Channel 2. You must specify those parameters to get the collision avoidance
mechanism.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 113


Chapter 6 Micro870 Controller Distributed Network Protocol

After the Backoff_Time, the controller tries again, either indefinitely, or up to a configurable
maximum number of retries. If a maximum is used, the protocol considers this as a link
failure.

Time Synchronization The time value in the real-time clock (RTC) of the controller (firmware real-time clock) or plug-
in module (2080-MEMBAK-RTC2 or 2080-SDMEMRTC-SC) is updated every second.

The DNP3 subsystem and the RTC (firmware or plug-in module) are synchronized by the
following conditions:
• At power-up
• A request for time synchronization from a DNP3 Master

At power-up, the DNP3 subsystem gets the time from the controller. For the controller to
acquire the correct time, a plug-in module RTC should be used and enabled before a power
cycle to acquire the correct time from the controller. The firmware RTC always reverts to a
default time and date after a power cycle, so it is not able to provide an accurate time to the
DNP3 subsystem.

If a plug-in module RTC is not used, then the firmware RTC must be enabled. To enable
firmware RTC, select Enable firmware real-time clock.

When there is a write request for time synchronization from a DNP3 Master, the time in the
RTC (firmware or plug-in module) is synchronized with the time from the DNP3 Master.
Table 32 shows the accuracy of the 2080-MEMBAK-RTC2 plug-in module. Use these values to
configure the Time Synchronization Interval in the Micro870 DNP3 Slave configuration, so that
a DNP3 Master can send the time synchronization request periodically for more accurate times
in the controller.
Table 32 - 2080-MEMBAK-RTC2 Accuracy

RTC Accuracy(1) Ambient Temperature


±5 sec/month 25 °C (77 °F)
±9 sec/month -20…+65 °C (-4…+149 °F)
(1) These numbers are maximum worst case values over a 31-day month.

114 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Adjust for Daylight Saving


Use this feature to shift the controller clock by one hour during the summer time. To enable
this feature, select Adjust for Daylight Saving and download the project to the controller. You
can also change this setting during runtime.

This feature is available for Micro850 (2080-L50E) and Micro870 (2080-L70E) controllers with
Connected Components Workbench software version 22.00 or later.

Diagnostics Errors in a DNP3 Slave subsystem are logged in the Communication Diagnostics page in
Connected Components Workbench software.
Figure 36 - Communication Diagnostics for Embedded Serial Port

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 115


Chapter 6 Micro870 Controller Distributed Network Protocol

Figure 37 - Communication Diagnostics for 2080-SERIALISOL Plug-in Module

Diagnostics for Ethernet Port


Diagnostic Counters and Errors in the DNP3 Slave subsystem for the Ethernet port are shown
in the Connected Components Workbench software. Select Diagnose to display the Diagnostic
page.
Figure 38 - Communication Diagnostics for Ethernet Port

116 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 33 - Error Codes


Value (Dec) Mnemonic Description
0 ERROR_PHYS_TRANSMIT Error returned from target transmit routine
1 ERROR_PHYS_CHAR_TIMEOUT Intercharacter timeout occurred
2 ERROR_PHYS_REMOTE_CLOSE Remote side of channel closed connection
3 ERROR_LINK_FRAME_LENGTH Incoming frame too short or exceeded buffer size
4 ERROR_LINK_ADDRESS_UNKNOWN Received frame was for an unknown link address
5 ERROR_LINK_ILLEGAL_FUNCTION Illegal link function code in received frame
6 ERROR_LINK_INVALID_CHECKSUM Invalid checksum or CRC
7 ERROR_LINK_NOT_RESET Link has not been reset, frame rejected
8 ERROR_LINK_FCB Received invalid frame count bit
9 ERROR_LINK_INVALID_START_CHAR Did not receive correct starting sync char
10 ERROR_LINK_FRAME_TIMEOUT Entire frame was not received in specified time
11 ERROR_LINK_CNFM_TIMEOUT Link Confirm was not received in specified time
12 ERROR_LINK_STATUS_TIMEOUT Link status response not received in specified time
The following link errors are used by 101/103
13 ERROR_LINK_WRONG_SESN Response was not from expected session
14 ERROR_LINK_WRONG_REPLY Received unexpected reply, frame rejected
15 ERROR_LINK_INVALID_2ND_CHAR Did not receive correct second sync char
16 ERROR_LINK_INVALID_END_CHAR Did not receive correct ending sync character
17 ERROR_LINK_MISMATCHING_LENGTH Variable length bytes in FT1.2 frame did not match
18 ERROR_LINK_INV_DIR Received invalid dir bit in control octet
The following link errors are used by 104
19 ERROR_LINK_NO_CNFM_RECEIVED Confirmation of 104 U-format APDU not received
20 ERROR_LINK_NO_ACK_RECEIVED Acknowledgment of 104 I-format APDU not received
21 ERROR_LINK_SEQUENCE_UNKNOWN Unknown confirming sequence number in received APDU
22 ERROR_LINK_OUT_OF_SEQUENCE Received APDU not in sequence with previous APDU
Transport layer errors
23 ERROR_TPRT_SEQUENCE_ERROR Sequence number error

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 117


Chapter 6 Micro870 Controller Distributed Network Protocol

Diagnostics for Secure Authentication


Diagnostic information for Secure Authentication is shown in Connected Components
Workbench software. Select Diagnose to display the Diagnostic page.
Figure 39 - Communication Diagnostics for Secure Authentication

Function Codes Table 34 shows the Application Layer Function codes that are implemented in the controller.
Table 34 - Function Codes for DNP3 in Micro870 Controllers
Message Type Function Code Name Micro870 Support Description
Confirmation 0 (0x00) CONFIRM Yes Controller parses/sends
Request 1 (0x01) READ Yes Controller parses
Request 2 (0x02) WRITE Yes Controller parses
Request 3 (0x03) SELECT Yes Controller parses
Request 4 (0x04) OPERATE Yes Controller parses
Request 5 (0x05) DIRECT_OPERATE Yes Controller parses
Request 6 (0x06) DIRECT_OPERATE_NR Yes Controller parses
Request 7 (0x07) IMMED_FREEZE Yes Controller parses
Request 8 (0x08) IMMED_FREEZE_NR Yes Controller parses
Request 9 (0x09) FREEZE_CLEAR Yes Controller parses
Request 10 (0x0A) FREEZE_CLEAR_NR Yes Controller parses
Request 11 (0x0B) FREEZE_AT_TIME No —
Request 12 (0x0C) FREEZE_AT_TIME_NR No —
Controller parses. Controller should not be in the executing mode
Request 13 (0x0D) COLD_RESTART Yes and any program and files should not be in open state.
Request 14 (0x0E) WARM_RESTART No Controller parses
Request 15 (0x0F) INITIALIZE_DATA No Obsolete
Controller parses. Clears the fault and changes the controller mode
Request 16 (0x10) INITIALIZE_APPL Yes to Remote Program.
Controller parses. Clears the fault and changes the controller mode
Request 17 (0x11) START_APPL Yes to Remote Run.
Request 18 (0x12) STOP_APPL Yes Controller parses. Changes the controller mode to Remote Program.

118 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 34 - Function Codes for DNP3 in Micro870 Controllers (Continued)


Message Type Function Code Name Micro870 Support Description
Request 19 (0x13) SAVE_CONFIG No Deprecated
Request 20 (0x14) ENABLE_UNSOLICITED Yes Controller parses
Request 21 (0x15) DISABLE_UNSOLICITED Yes Controller parses
Request 22 (0x16) ASSIGN_CLASS No —
Request 23 (0x17) DELAY_MEASURE Yes Controller parses. Used for non-LAN
Request 24 (0x18) RECORD_CURRENT_TIME No Controller parses. Used for LAN
Request 25 (0x19) OPEN_FILE Yes Controller parses
Request 26 (0x1A) CLOSE_FILE Yes Controller parses
Request 27 (0x1B) DELETE_FILE Yes Controller parses
Request 28 (0x1C) GET_FILE_INFO No Controller parses
Request 29 (0x1D) AUTHENTICATE_FILE Yes Controller parses
Request 30 (0x1E) ABORT_FILE No Controller parses
Request 31 (0x1F) ACTIVATE_CONFIG No Controller parses
Request 32 (0x20) AUTHENTICATE_REQ No Controller parses
Request 33 (0x21) AUTHENTICATE_ERR No Controller parses
Response 34 (0x22) RESPONSE Yes Controller sends
Response 35 (0x23) UNSOLICITED_RESPONSE Yes Controller sends
Response 36 (0x24) AUTHENTICATE_RESPONSE No Controller sends
37 (0x25)…47 (0x2F) No Reserved

Implementation Table Micro870 (2080-L70E-24QxBN) controllers support DNP3 Certification Subset Level 2.

Table 35 identifies which object groups and variations, function codes, and qualifiers the
device supports in both requests and responses. The Request and Response columns identify
all requests and responses that may be sent/parsed by a DNP3 Master, or must be parsed/sent
by the controller.

The implementation table lists all functionality that is required by either a DNP3 Master or
controller as defined within the DNP3 IED Conformance Test Procedures. Any functionality
beyond the highest subset level that is supported is indicated by the gray table cells.
Table 35 - Implementation Table for Micro870 controllers
Request Response
DNP Object Group and Variation DNP3 Master may issue, controller must parse DNP3 Master must parse, controller may issue
Group Num Var Num Description Function Codes (Dec) Qualifier Codes (Hex) Function Codes (Dec) Qualifier Codes (Hex)
211…239
241…243 Device Attribute 00, 01 (start-stop)
0 1 (read) 129 (response) 00 (start-stop)
248…250 06 (no range, or all)
252
00, 01 (start-stop)
240 1 (read) 129 (response) 00 (start-stop)
0 Device Attribute 06 (no range, or all)
245…247
2 (write) 00, 01 (start-stop)
Device Attribute – Non-specific all 00, 01 (start-stop)
0 254 1 (read)
attributes request 06 (no range, or all)
Device Attributes – List of attribute 00, 01 (start-stop)
0 255 1 (read) 129 (response) 00 (start-stop)
variations 06 (no range, or all)
00, 01 (start-stop)
1 0 Binary Input – Any Variation 1 (read)
06 (no range, or all)
00, 01 (start-stop)
1 1 Binary Input – Packed format 1 (read) 06 (no range, or all) 129 (response) 00, 01 (start-stop)
00, 01 (start-stop)
1 2 Binary Input – With flags 1 (read) 06 (no range, or all) 129 (response) 00, 01 (start-stop)
06 (no range, or all)
2 0 Binary Input Event – Any Variation 1 (read) 07, 08 (limited qty)
06 (no range, or all) 129 (response)
2 1 Binary Input Event – Without time 1 (read) 17, 28 (index)
07, 08 (limited qty) 130 (unsol. resp)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 119


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 35 - Implementation Table for Micro870 controllers (Continued)


Request Response
DNP Object Group and Variation DNP3 Master may issue, controller must parse DNP3 Master must parse, controller may issue
Group Num Var Num Description Function Codes (Dec) Qualifier Codes (Hex) Function Codes (Dec) Qualifier Codes (Hex)
Binary Input Event – With absolute 06 (no range, or all) 129 (response)
2 2 1 (read) 17, 28 (index)
time 07, 08 (limited qty) 130 (unsol. resp)
06 (no range, or all) 129 (response)
2 3 Binary Input Event – With relative time 1 (read) 17, 28 (index)
07, 08 (limited qty) 130 (unsol. resp)
00, 01 (start-stop)
3 0 Double-bit Binary Input – Any Variation 1 (read) 06 (no range, or all)
Double-bit Binary Input – Packed 00, 01 (start-stop)
3 1 1 (read) 129 (response) 00, 01 (start-stop)
format 06 (no range, or all)
00, 01 (start-stop)
3 2 Double-bit Binary Input – With flags 1 (read) 06 (no range, or all) 129 (response) 00, 01 (start-stop)
Double-bit Binary Input Event – Any 06 (no range, or all)
4 0 1 (read)
Variation 07, 08 (limited qty)
Double-bit Binary Input Event – 06 (no range, or all) 129 (response)
4 1 1 (read) 17, 28 (index)
Without time 07, 08 (limited qty) 130 (unsol. resp)
Double-bit Binary Input Event – With 06 (no range, or all) 129 (response)
4 2 1 (read) 17, 28 (index)
absolute time 07, 08 (limited qty) 130 (unsol. resp)
Double-bit Binary Input Event – With 06 (no range, or all) 129 (response)
4 3 1 (read) 17, 28 (index)
relative time 07, 08 (limited qty) 130 (unsol. resp)
00, 01 (start-stop)
10 0 Binary Output – Any Variation 1 (read)
06 (no range, or all)
Binary Output – Output status with 00, 01 (start-stop)
10 2 1 (read) 129 (response) 00, 01 (start-stop)
flags 06 (no range, or all)
3 (select)
Binary Command – Control relay 4 (operate)
12 1 17, 28 (index) 129 (response) echo of request
output block (CROB) 5 (direct op)
6 (dir. op, no ack)
00, 01 (start-stop)
20 0 Counter – Any Variation 1 (read)
06 (no range, or all)
00, 01 (start-stop)
20 1 Counter – 32-bit with flag 1 (read) 06 (no range, or all) 129 (response) 00, 01 (start-stop)
7 (freeze)
8 (freeze noack)
20 1 Counter – 32-bit with flag 9 (freeze clear) 06 (no range, or all)
10 (frz. cl. noack)
00, 01 (start-stop)
20 2 Counter – 16-bit with flag 1 (read) 129 (response) 00, 01 (start-stop)
06 (no range, or all)
7 (freeze)
8 (freeze noack)
20 2 Counter – 16-bit with flag 9 (freeze clear) 06 (no range, or all)
10 (frz. cl. noack)
00, 01 (start-stop)
20 5 Counter – 32-bit without flag 1 (read) 06 (no range, or all) 129 (response) 00, 01 (start-stop)
7 (freeze)
8 (freeze noack)
20 5 Counter – 32-bit without flag 06 (no range, or all)
9 (freeze clear)
10 (frz. cl. noack)
00, 01 (start-stop)
20 6 Counter – 16-bit without flag 1 (read) 06 (no range, or all) 129 (response) 00, 01 (start-stop)
7 (freeze)
8 (freeze noack)
20 6 Counter – 16-bit without flag 9 (freeze clear) 06 (no range, or all)
10 (frz. cl. noack)
00, 01 (start-stop)
21 0 Frozen Counter – Any Variation 1 (read)
06 (no range, or all)
21 1 Frozen Counter – 32-bit with flag 1 (read) 06 (no range, or all) 129 (response) 00, 01 (start-stop)
00, 01 (start-stop)
21 2 Frozen Counter – 16-bit with flag 1 (read) 06 (no range, or all) 129 (response) 00, 01 (start-stop)
Frozen Counter – 32-bit with flag and 00, 01 (start-stop)
21 5 1 (read) 129 (response) 00, 01 (start-stop)
time 06 (no range, or all)

120 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 35 - Implementation Table for Micro870 controllers (Continued)


Request Response
DNP Object Group and Variation DNP3 Master may issue, controller must parse DNP3 Master must parse, controller may issue
Group Num Var Num Description Function Codes (Dec) Qualifier Codes (Hex) Function Codes (Dec) Qualifier Codes (Hex)
Frozen Counter – 16-bit with flag and 00, 01 (start-stop)
21 6 1 (read) 129 (response) 00, 01 (start-stop)
time 06 (no range, or all)
00, 01 (start-stop)
21 9 Frozen Counter – 32-bit without flag 1 (read) 129 (response) 00, 01 (start-stop)
06 (no range, or all)
00, 01 (start-stop)
21 10 Frozen Counter – 16-bit without flag 1 (read) 06 (no range, or all) 129 (response) 00, 01 (start-stop)
06 (no range, or all)
22 0 Counter Event – Any Variation 1 (read) 07, 08 (limited qty)
06 (no range, or all) 129 (response)
22 1 Counter Event – 32-bit with flag 1 (read) 07, 08 (limited qty) 130 (unsol. resp) 17, 28 (index)
06 (no range, or all) 129 (response)
22 2 Counter Event – 16-bit with flag 1 (read) 17, 28 (index)
07, 08 (limited qty) 130 (unsol. resp)
Counter Event – 32-bit with flag and 06 (no range, or all) 129 (response)
22 5 1 (read) 17, 28 (index)
time 07, 08 (limited qty) 130 (unsol. resp)
Counter Event – 16-bit with flag and 06 (no range, or all) 129 (response)
22 6 1 (read) 17, 28 (index)
time 07, 08 (limited qty) 130 (unsol. resp)
23 0 Frozen Counter Event – Any Variation 06 (no range, or all)
1 (read) 07, 08 (limited qty)
06 (no range, or all) 129 (response)
23 1 Frozen Counter Event – 32-bit with flag 1 (read) 07, 08 (limited qty) 130 (unsol. resp) 17, 28 (index)
06 (no range, or all) 129 (response)
23 2 Frozen Counter Event – 16-bit with flag 1 (read) 07, 08 (limited qty) 130 (unsol. resp) 17, 28 (index)
Frozen Counter Event – 32-bit with flag 06 (no range, or all) 129 (response)
23 5 1 (read) 17, 28 (index)
and time 07, 08 (limited qty) 130 (unsol. resp)
Frozen Counter Event – 16-bit with flag 06 (no range, or all) 129 (response)
23 6 1 (read) 17, 28 (index)
and time 07, 08 (limited qty) 130 (unsol. resp)
00, 01 (start-stop)
30 0 Analog Input – Any Variation 1 (read)
06 (no range, or all)
00, 01 (start-stop)
30 1 Analog Input – 32-bit with flag 1 (read) 06 (no range, or all) 129 (response) 00, 01 (start-stop)
00, 01 (start-stop)
30 2 Analog Input – 16-bit with flag 1 (read) 06 (no range, or all) 129 (response) 00, 01 (start-stop)
00, 01 (start-stop)
30 3 Analog Input – 32-bit without flag 1 (read) 129 (response) 00, 01 (start-stop)
06 (no range, or all)
00, 01 (start-stop)
30 4 Analog Input – 16-bit without flag 1 (read) 06 (no range, or all) 129 (response) 00, 01 (start-stop)
Analog Input – Single-prec flt-pt with 00, 01 (start-stop)
30 5 1 (read) 129 (response) 00, 01 (start-stop)
flag 06 (no range, or all)
06 (no range, or all)
32 0 Analog Input Event – Any Variation 1 (read) 07, 08 (limited qty)
Analog Input Event – 32-bit without 06 (no range, or all) 129 (response)
32 1 1 (read) 17, 28 (index)
time 07, 08 (limited qty) 130 (unsol. resp)
Analog Input Event – 16-bit without 06 (no range, or all) 129 (response)
32 2 1 (read) 17, 28 (index)
time 07, 08 (limited qty) 130 (unsol. resp)
06 (no range, or all) 129 (response)
32 3 Analog Input Event – 32-bit with time 1 (read) 17, 28 (index)
07, 08 (limited qty) 130 (unsol. resp)
06 (no range, or all) 129 (response)
32 4 Analog Input Event – 16-bit with time 1 (read) 07, 08 (limited qty) 130 (unsol. resp) 17, 28 (index)
Analog Input Event – Single-prec flt-pt 06 (no range, or all) 129 (response)
32 5 1 (read) 17, 28 (index)
without time 07, 08 (limited qty) 130 (unsol. resp)
Analog Input Event – Single-prec flt-pt 06 (no range, or all) 129 (response)
32 7 1 (read) 17, 28 (index)
with time 07, 08 (limited qty) 130 (unsol. resp)
00, 01 (start-stop)
40 0 Analog Output Status – Any Variation 1 (read)
06 (no range, or all)
00, 01 (start-stop)
40 1 Analog Output Status – 32-bit with flag 1 (read) 06 (no range, or all) 129 (response) 00, 01 (start-stop)

40 2 Analog Output Status – 16-bit with flag 00, 01 (start-stop)


1 (read) 129 (response) 00, 01 (start-stop)
06 (no range, or all)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 121


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 35 - Implementation Table for Micro870 controllers (Continued)


Request Response
DNP Object Group and Variation DNP3 Master may issue, controller must parse DNP3 Master must parse, controller may issue
Group Num Var Num Description Function Codes (Dec) Qualifier Codes (Hex) Function Codes (Dec) Qualifier Codes (Hex)
Analog Output Status – Single-prec flt- 1 (read) 00, 01 (start-stop)
40 3 129 (response) 00, 01 (start-stop)
pt with flag 06 (no range, or all)
3 (select)
4 (operate)
41 1 Analog Output – 32-bit 17, 27, 28 (index) 129 (response) echo of request
5 (direct op)
6 (dir. op, no ack)
3 (select)
4 (operate)
41 2 Analog Output – 16-bit 17, 27, 28 (index) 129 (response) echo of request
5 (direct op)
6 (dir. op, no ack)
3 (select)
4 (operate)
41 3 Analog Output – Single-prec flt-pt 5 (direct op) 17, 27, 28 (index) 129 (response) echo of request
6 (dir. op, no ack)
07 (limited qty)
1 (read) 07 (limited qty = 1) 129 (response)
50 1 Time and Date – Absolute time (qty = 1)
2 (write) 07 (limited qty = 1)
Time and Date – Absolute time at last 2 (write)
50 3 07 (limited qty = 1)
recorded time
Time and Date CTO – Absolute time, 129 (response) 07 (limited qty)
51 1 synchronized 130 (unsol. resp) (qty = 1)
Time and Date CTO – Absolute time, 129 (response) 07 (limited qty)
51 2 unsynchronized 130 (unsol. resp) (qty = 1)
07 (limited qty)
52 2 Time Delay – Fine 129 (response) (qty = 1)
60 1 Class Objects – Class 0 data 1 (read) 06 (no range, or all)
06 (no range, or all)
1 (read) 07, 08 (limited qty)
60 2 Class Objects – Class 1 data
20 (enbl. unsol.) 06 (no range, or all)
21 (dab. unsol.)
06 (no range, or all)
60 3 Class Objects – Class 2 data 1 (read) 07, 08 (limited qty)
06 (no range, or all)
1 (read) 07, 08 (limited qty)
60 4 Class Objects – Class 3 data
20 (enbl. unsol.) 06 (no range, or all)
21 (dab. unsol.)
1 (read) 00, 01 (start-stop) 129 (response) 00, 01 (start-stop)
80 1 Internal Indications – Packed format 00 (start-stop)
2 (write) index=7
85 0 Data-Set Prototype 1 (read) 06 (no range, or all)
00, 01 (start-stop)
85 1 Data-Set Prototype 1 (read) 06 (no range, or all) 129 (response) 5B (free format)
17, 28 (index)
00, 01 (start-stop)
86 1 Data-Set Descriptor – Contents 1 (read) 06 (no range, or all) 129 (response) 5B (free format)
17, 28 (index)
00, 01 (start-stop)
86 2 Data-Set Descriptor – Characteristics 1 (read) 06 (no range, or all) 129 (response) 5B (free format)
17, 28 (index)
00, 01 (start-stop)
87 0 Data-Set – Present Value 1 (read) 06 (no range, or all)
17, 28 (index)
00, 01 (start-stop)
87 1 Data-Set – Present Value 1 (read) 06 (no range, or all) 129 (response) 5B (free format)
17, 28 (index)
06 (no range, or all)
88 0 Data-Set Event 1 (read) 07, 08 (limited qty)
06 (no range, or all) 129 (response)
88 1 Data-Set Event – Snapshot 1 (read) 07, 08 (limited qty) 130 (unsol. resp) 5B (free format)

122 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 6 Micro870 Controller Distributed Network Protocol

Table 35 - Implementation Table for Micro870 controllers (Continued)


Request Response
DNP Object Group and Variation DNP3 Master may issue, controller must parse DNP3 Master must parse, controller may issue
Group Num Var Num Description Function Codes (Dec) Qualifier Codes (Hex) Function Codes (Dec) Qualifier Codes (Hex)
16 (init. appl.) 06 (no range, or all)
90 1 Application – Identifier 17 (start appl.) 5B (free format)
18 (stop appl.)
07 (limited qty)
91 1 Status of Requested Operation 129 (response) (qty = 1)
120 1 Authentication – Challenge 32 (auth request) 5B (free format) 131 (Auth. resp) 5B (free format)
120 2 Authentication – Reply 32 (auth request) 5B (free format) 131 (Auth. resp) 5B (free format)
Authentication – Aggressive Mode
120 3 Any requests 07 (limited qty) 129 (response) 07 (limited qty)
Request
Authentication – Aggressive Mode
120 3 130 (unsol. resp) 07 (limited qty)
Request
Authentication – Session Key Status
120 4 32 (auth request) 07 (limited qty)
Request
120 5 Authentication – Session Key Status 131 (Auth. resp) 5B (free format)
120 6 Authentication – Session Key Change 32 (auth request) 5B (free format)
120 7 Authentication – Error 33 (auth request, no ack) 5B (free format) 131 (Auth. resp) 5B (free format)
120 7 Authentication – Error 1 (read) 06 (no range, or all) 129 (response) 5B (free format)
120 9 Authentication – HMAC Any requests 5B (free format) 129 (response) 5B (free format)
120 9 Authentication – HMAC 130 (unsol. resp) 5B (free format)
No Object (function code only) 13 (cold restart)
No Object (function code only) 14 (warm restart)
No Object (function code only) 23 (delay meas.)
No Object (function code only) 24 (record current time)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 123


Chapter 6 Micro870 Controller Distributed Network Protocol

Notes:

124 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 7

Program Execution in Micro800 Controllers

This chapter provides a brief overview of running or executing programs in a Micro800


controller.

IMPORTANT This chapter generally describes program execution in Micro800


controllers. Certain elements may not be applicable or true for certain
models (for example, Micro820 does not support PTO motion control).

For detailed information regarding ladder diagrams, instructions, function blocks, and so on,
see the Micro800 Programmable Controllers Instruction Manual, publication 2080-RM001.

Overview of Program A Micro800 cycle or scan consists of reading inputs, executing programs in sequential order,
updating outputs, and performing housekeeping (data log, recipe, communications).
Execution
Program names must begin with a letter or underscore, followed by up to 127 letters, digits, or
single underscores. Use programming languages such as ladder logic, function block
diagrams, and structured text.

Up to 256 programs may be included in a project, depending on available controller memory.


By default, the programs are cyclic (executed once per cycle or scan). As each new program is
added to a project, it is assigned the next consecutive order number. When you start up the
Project Organizer in Connected Components Workbench, it displays the program icons based
on this order. You can view and modify an order number for a program from the program’s
properties. However, the Project Organizer does not show the new order until the next time the
project is opened.

The Micro800 controller supports jumps within a program. Call a subroutine of code within a
program by encapsulating that code as a user-defined function (UDF) or user-defined function
block (UDFB). A UDF is similar to a traditional subroutine and uses less memory than a UDFB,
while a UDFB can have multiple instances. Although a UDFB can be executed within another
UDFB, a maximum nesting depth of five is supported. A compilation error occurs if this is
exceeded. This also applies to UDFs.

Alternatively, you can assign a program to an available interrupt and have it executed only
when the interrupt is triggered. A program assigned to the User Fault Routine runs once prior
to the controller going into Fault mode.

In addition to the User Fault Routine, Micro800 controllers also support two Selectable Timed
Interrupts (STI). STIs execute assigned programs once every setpoint interval (1…65535 ms).

The Global System Variables that are associated with cycles/scans are:
• __SYSVA_CYCLECNT – Cycle counter
• __SYSVA_TCYCURRENT – Current cycle time
• __SYSVA_TCYMAXIMUM – Maximum cycle time since last start.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 125


Chapter 7 Program Execution in Micro800 Controllers

Execution Rules
The execution follows four main steps within a loop, as shown in Figure 40. The loop duration
is a cycle time for a program.
Figure 40 - Program Execution Steps

1. Read inputs 1
2. Execute POUs/programs
3. Write outputs 2
4. Housekeeping
3
(data log, recipe, and communications)
4

When a cycle time is specified, a resource waits until this time has elapsed before starting the
execution of a new cycle. The Program Organizational Unit (POU) execution time varies
depending on the number of active instructions. When a cycle exceeds the specified time, the
loop continues to execute the cycle but sets an overrun flag. In such a case, the application no
longer runs in real time.

When a cycle time is not specified, a resource performs all steps in the loop then restarts a
new cycle without waiting.

Optional Module Normally, before the read inputs step, the controller verifies the presence of any configured
plug-in and expansion I/O modules. If a plug-in or expansion I/O module is missing, the
Configuration controller faults. In Connected Components Workbench software release 10 or later, an
Optional Module configuration option is added to prevent a missing plug-in I/O or expansion
I/O module from faulting the controller if enabled. You can enable this option for each plug-in
I/O or expansion I/O module separately.

ATTENTION: If the optional module feature is enabled, use the MODULE_INFO


instruction to verify that the module is present because the controller will not
fault if the module is missing.

Controller Load and Within one program scan cycle, the execution of the main steps (as indicated in Figure 40)
could be interrupted by other controller activities that have higher priority than the main
Performance steps. Such activities include:
Considerations 1. User Interrupt events, including STI, EII, and HSC interrupts (when applicable);
2. Communication data packet receiving and transmitting;
3. PTO Motion engine periodical execution (if supported by the controller).

When one or several of these activities occupy a significant percentage of the Micro800
controller execution time, the program scan cycle time is prolonged. The Watchdog timeout
fault (0xD011) could be reported if the impact of these activities is underestimated, and the
Watchdog timeout is set marginally. The Watchdog setting defaults to 2 s and generally never
needs to be changed.

126 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 7 Program Execution in Micro800 Controllers

In firmware revision 21.011, significant usage of interrupts in the project can affect the
Ethernet Implicit I/O messaging performance. As the interrupt has a higher priority than
Implicit messaging, use the Ethernet Diagnostics in Connected Components Workbench
software to check if there are dropped or missed packets with the desired setup.

Periodic Execution of Programs


For applications where periodic execution of programs with precise timing is required, such
as for PID, it is recommended that STI (Selectable Timed Interrupt) be used to execute the
program. STI provides precise time intervals.
It is not recommended that the system variable __SYSVA_TCYCYCTIME be used to periodically
execute all programs as this also causes all communication to execute at this rate.

WARNING: Communication timeouts may occur if programmed cycle time is set


too slow (for example, 200 ms) to maintain communications.

Table 36 - System Variable for Programmed Cycle Time


Variable Type Description
Programmed cycle time
Note: Programmed cycle time only accepts values in multiples
__SYSVA_TCYCYCTIME TIME of 10 ms. If the entered value is not a multiple of 10, it is
rounded up to the next multiple of 10.

Power-up and First Scan In Program mode, all analog and digital input variables hold their last state, and the LEDs are
always updated. Also all analog and digital output variables hold their last state, but only the
analog outputs hold their last state while the digital outputs are off.

When transitioning from Program mode to Run mode, all analog output variables hold their last
state but all digital output variables are cleared.

Two system variables are also available from revision 2 and later.
Table 37 - System Variables for Scan and Power-up on Firmware Revision 2 and later
Variable Type Description
First scan bit
Can be used to initialize or reset variables immediately after
_SYSVA_FIRST_SCAN BOOL every transition from Program to Run mode.
Note: True only on first scan. After that, it is false.
Power-up bit
Can be used to initialize or reset variables immediately after
download from the Connected Components Workbench
_SYSVA_POWER_UP_BIT BOOL software or immediately after being loaded from memory
backup module (for example, microSD™ card).
Note: True only on the first scan after a power-up, or running a
new ladder for the first time.

Variable Retention
After a power cycle, all variables inside instances of instructions are cleared. Micro830 and
Micro850 controllers retain all user-created variables. Micro870 controllers can only retain a
maximum of 128 kilobytes of user-created variable values.

For example: A user-created variable that is called My_Timer of Time data type is retained
after a power cycle but the elapsed time (ET) within a user-created timer TON instruction is
cleared. This means that after a power cycle, global variables are cleared or set to initial value,
and depending on the controller, some or all user-created variable values are retained. You
can choose which variables to retain by selecting them on the global variable page.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 127


Chapter 7 Program Execution in Micro800 Controllers

Figure 41 - Retain Variable Example

Memory Allocation Depending on base size, the available memory on Micro800 controllers is shown in Table 38.
Table 38 - Memory Allocation for Micro800 Controllers
10-point and 16-point 20-point 24-point and 48-point 24-point
Attribute (Micro830) (Micro820) (Mico830, Micro850) (Micro870)
Program steps(1) 4K 10 K 10 K 20 K
Data bytes 8 KB 20 KB 20 KB 40 KB
(1) Estimated Program and Data size are “typical” – program steps and variables are created dynamically.
1 Program Step = 12 data bytes.

These specifications for instruction and data size are typical numbers. When a Micro800
project is created, memory is dynamically allocated as either program or data memory at build
time. This means that program size can exceed the published specifications if data size is
sacrificed and vice versa. This flexibility allows maximum usage of execution memory. In
addition to the user-defined variables, data memory also includes any constants and
temporary variables that are generated by the compiler at build time.

If your project is larger, it affects the power-up time. Typical power up time is 10...15 seconds
for all controllers. However, if your project has many initial and project values, it may cause
the power-up time to exceed 30 seconds. After start-up, EtherNet/IP connections may take up
to 60 seconds to establish.
The Micro800 controllers also have project memory, which stores a copy of the entire
downloaded project (including comments), and configuration memory for storing plug-in setup
information, and so on.

For Micro850 (2080-L50E) controllers, the memory allocation in the Connected Components
Workbench software Controller - Memory page (Figure 42) shows a larger memory footprint,
which is much larger than the previous equivalent Micro850 (2080-LC50) controller catalog.
The reason for this difference is because the internal memory footprint has change with the
release of the 2080-L50E controllers and the memory consumption on each element have
increased, so the memory space is increased to cater for that. This does not imply that the
2080-L50E controllers have additional memory. The same Program and Data memory limit still
applies as each element usage is increased to match the same amount of consumption.
Figure 42 - Memory Allocation Comparison Between 2080-L50E and 2080-LC50 Controllers
2080-L50E controller 2080-LC50 controller

128 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 7 Program Execution in Micro800 Controllers

Guidelines and Limitations Here are some guidelines and limitations to consider when programming a Micro800 controller
using Connected Components Workbench software:
for Advanced Users
• Each program/POU can use up to 64 Kb of internal address space. For all controllers
except Micro870, it is recommended that you split large programs into smaller
programs to improve code readability, simplify debugging and maintenance tasks.
• A user-defined function (UDF) uses less memory than a user-defined function block
(UDFB). For example, 30% less for a typical sized program compared to a UDFB with one
instance. The savings increases as the number of UDFB instances increases.
• A user-defined function block (UDFB) can be executed within another UDFB, with a limit
of five nested UDFBs. Avoid creating UDFBs with references to other UDFBs, as
executing these UDFBs too many times can result in a compile error. This also applies
to UDFs.
Figure 43 - Example of Five Nested UDFBs

UDFB1

UDFB2

UDFB3

UDFB4

UDFB5

• Structured Text (ST) is much more efficient and easier to use than Ladder Logic, when
used for equations. If you are used to using the RSLogix 500® CPT Compute instruction, a
great alternative is to use ST combined with either UDF or UDFB.
As an example, for an Astronomical Clock Calculation, Structured Text uses 40% fewer
Instructions.
Display_Output LD:
Memory Usage (Code): 3148 steps
Memory Usage (Data): 3456 bytes
Display_Output ST:
Memory Usage (Code): 1824 steps
Memory Usage (Data): 3456 bytes
• You may encounter an Insufficient Reserved Memory error while downloading and
compiling a program over a certain size. One workaround is to use arrays, especially if
there are many variables.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 129


Chapter 7 Program Execution in Micro800 Controllers

Notes:

130 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8

EtherNet/IP Network

Overview The EtherNet/IP network offers a full suite of control, configuration, and data collection
services by layering the Common Industrial Protocol (CIP™) over the standard Internet
protocols, such as TCP/IP and UDP. This combination of well-accepted standards provides the
capability that is required to support information data exchange and control applications.
Micro850 and Micro870 controllers with firmware revision 20.011 or earlier support Explicit
messaging over the EtherNet/IP network. Micro850 (2080-L50E) and Micro870 (2080-L70E)
controllers with firmware revision 21.011 or later add support for Implicit messaging.

For information on Implicit and Explicit messaging and how to configure EtherNet/IP or USB
drivers, see the EtherNet/IP Network Devices User Manual, publication ENET-UM006.

The controllers use socket interface transactions and conventional communication over the
EtherNet/IP network to communicate with Ethernet devices that do not support the
EtherNet/IP application protocol.

EtherNet/IP Network Micro850 and Micro870 controllers support the following EtherNet/IP network functionality:
Functionality • Support for these EtherNet/IP network topologies:
- Star
• Support for these EtherNet/IP network communication rates:
- 10 Mbps
- 100 Mbps
• Duplicate IP address detection

For more information about network design, see the Ethernet Design Considerations
Reference Manual, publication ENET-RM002.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 131


Chapter 8 EtherNet/IP Network

Star Network Topology


A star network topology is a traditional EtherNet/IP network that includes multiple devices that
are connected to each other through an Ethernet switch.
Figure 44 - Example of Micro850 Controller in a Star Network Topology
Micro850 controller

PanelView 800 terminal

Stratix® 2500 switch

5100
MOD
CHARGE
NET

L1C
L2C
2
L1
L2
L3 1
P1
P2
Esc Sel
DC–
DC+
ISH
I/0
0 0 2 1734-AENTR ESH
POINT I O U
Module
Status
Network V
Activity
Network
Status
W
Point Bus
Link 1 Status
Activity/
Status System
Power
Field
Power

AUX
IP ADDRESS

Kinetix 5100 drive


Link 2

PowerFlex 525 drive


Activity/
Status

with predefined tags in with predefined tags in


1734-AENTR adapter the controller
the controller 1734 POINT I/O modules
as a generic profile in the project

Implicit Messaging I/O Micro850 (2080-L50E) and Micro870 (2080-L70E) controllers with firmware revision 21.011 or
later support Implicit messaging to EtherNet/IP devices in either a generic tag or as a
Nodes on an EtherNet/IP predefined tag in Connected Components Workbench software version 21 or later. PowerFlex®
Network 520-series drives and Kinetix® 5100 motion drives are supported with predefined tags. Other
EtherNet/IP devices are supported with generic profile tags. These controllers support up to
Applies to these controllers: eight EtherNet/IP devices in the module configuration section of the project.
Micro850 (2080-L50E only)
with firmware revision 21.011 or later
Micro870 (2080-L70E only)
with firmware revision 21.011 or later

Table 39 - Micro850 (2080-L50E) and Micro870 (2080-L70E) Controller EtherNet/IP Nodes


Micro850 (2080-L50E) Controllers Micro870 (2080-L70E) Controllers Nodes Supported, Max
2080-L70E-24AWB, 2080-L70E-24QWB, 2080-L70E-24QWBK,
2080-L50E-24AWB, 2080-L50E-24QWB, 2080-L50E-24QVB, 2080-L70E-24QWBN, 2080-L70E-24QWBNK, 2080-L70E-24QBB, 8
2080-L50E-24QBB 2080-L70E-24QBBK, 2080-L70E-24QBBN
2080-L50E-48AWB, 2080-L50E-48QWB, 2080-L50E-48QWBK, — 8
2080-L50E-48QVB, 2080-L50E-48QBB

132 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8 EtherNet/IP Network

Devices Included in the Node Count


Any EtherNet/IP devices that you add to the module configuration section are counted toward
the controller node limit. The following are examples of devices that must be counted:
• Kinetix 5100 Motion Drives
• PowerFlex 520-series Adjustable Frequency AC Drives
• Third-party devices that are configured as generic devices

Devices Excluded from the Node Count


When you calculate the EtherNet/IP node limitation of a controller, do not count devices that
exist on the EtherNet/IP network but are not added to the Module configuration section.
The following devices are not added to the module configuration section and are not counted
among the number of nodes:
• Computer
• Devices that are the target of MSG Instructions but were not added to the module
configuration section
• Standard Ethernet devices with which the controller communicates through a socket
interface
Figure 45 shows nodes in the module configuration.
Figure 45 - Example EtherNet/IP Nodes

Nodes

How to Add PowerFlex 520- Micro850 (2080-L50E) and Micro870 (2080-L70E) controllers support predefined tags in both
PowerFlex 520-series drives and Kinetix 5100 drives. All other EtherNet/IP devices use the
series and Kinetix 5100 generic profile.
Drives over EtherNet/IP
When a PowerFlex 520-series drive or Kinetix 5100 drive is configured for I/O Mode operation
Applies to these controllers: and is used with Connected Components Workbench software, the use of predefined user-
Micro850 (2080-L50E only) defined function block (UDFB) motion instructions provides an easy way to program your
with firmware revision 21.011 or later simple motion control application on Micro800 controllers with the Class 1 connectivity
Micro870 (2080-L70E only) feature.
with firmware revision 21.011 or later
For instructions on where to download the UDFB files, see Download the User-defined Function
Block Instruction Files on page 146.

IMPORTANT Induction and linear motors are not supported with the UDFB.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 133


Chapter 8 EtherNet/IP Network

Add a PowerFlex 523 or PowerFlex 525 Drive


To add a PowerFlex 520-series drive into the Micro800 controller project, do the following.
1. Choose Modules under the Ethernet branch in the device configuration tree.

2. Select Add to create a device.

3. In the New Module window, select the Type and configure the module properties, and
select OK.

134 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8 EtherNet/IP Network

The module is added to the table.

Add a Kinetix 5100 Drive


To configure the Kinetix 5100 drive in Connected Components Workbench software, do the
following.
1. Add the Kinetix 5100 drive in the Controller > Ethernet > Modules dialog. Select the
correct K5100 catalog number then enter the name and IP address. Verify that both the
Micro800 controller and Kinetix 5100 drive are in the same subnet, and select the “Data
with Camming” connection.

2. The Kinetix 5100 drive is configured as shown in the Ethernet – Modules dialog. Repeat
step 1 to add more K5100 drives in the same subnet of the Micro800 controller.

The Kinetix 5100 drive UDFBs are designed to follow the user experience of the K5100 Opr Add-
On Instruction Library from Logix as close as possible. This also includes a Device Object
handler (Figure 73) designed to provide a robust method to control the read/write functions of
the drive assemblies.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 135


Chapter 8 EtherNet/IP Network

Table 40 shows the use of the UDFB and Device Object handler for Kinetix 5100 drives.
Table 40 - Device Object Handler and UDFB Availability
Kinetix 5100 Drive Firmware Device Object Handler UDFB
Major Revision
1.xx raC_Dvc_K5100 raC_Opr_K5100_xxx

IMPORTANT The UDFBs can be downloaded from the Rockwell Automation Product
Compatibility Download Center (PCDC) website at rok.auto/pcdc; enter
the keywords “Kinetix 5100 UDFB Library” in the Search field.

Modify an Existing Module


To modify the existing module, do the following.
1. Select the module to modify and select Config.

2. In the Configure Module window, adjust the module properties, and select OK.

136 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8 EtherNet/IP Network

Module Properties The New Module/Configure Module window provides the properties for the module.
Table 41 - Module Properties Parameters
Parameter Description Value
General
Name Unique name of the device. User defined
• Generic Device
Select the type of profile to use with the device. • PowerFlex 523-E2P
Type See Type Definition in Module Dialog on page 138 for • PowerFlex 525-E2P
more information. • PowerFlex 525-EENET
• Kinetix 5100
IP Address Unique IP address of the device. User defined
• Position
Mode (1) Define the mode of operation for the PowerFlex drive.
• Velocity
List of Kinetix 5100 drive
Catalog (2) Select the right Kinetix 5100 catalog to be used. catalogs (2198-Exxxx-ERS)
Major Revision Module firmware major revision. Module specific
Minor Revision Module firmware minor revision. Module specific
Software method to help reduce the possibility of using
a mismatched device in a control system. • Exact Match
Electronic Keying Carefully consider the implications of each keying • Compatible Module
option when selecting one. • Disable Keying
See Table 42 for detailed descriptions of each option.
List of PowerFlex drive
Drive Rating (1) Define the PowerFlex drive rating. ratings (xP xxV xxxHP)
Description Optional description for the device. User defined
Connection
• Generic Device -
5.0…9999.9 ms
Set the RPI rate.
Requested Packet Interval See Requested Packet Interval on page 138 for more • PowerFlex Device -
(RPI) information. 5.0…9999.9 ms
• Kinetix Device -
5.0…3200.0 ms
Unicast Connection over Set the type of connection to use over the EtherNet/IP • Unchecked = Multicast
EtherNet/IP network. • Checked = Unicast
• Unchecked = Module not
Inhibit the module. See Module Inhibiting on page 139 inhibited
Inhibit Module for more information. • Checked = Module
inhibited
Major fault on controller if Select whether the controller triggers a major fault if a • Unchecked = Module does
connection faults while in connection fault occurs while in Run mode. not fault
Run mode • Checked = Module faults
Displays the major or minor fault code when it occurs,
and can be used to help troubleshoot the module. Fault code 0xYYYY
Connection Fault See Connection Fault Codes on page 149 for a list of (for example, 0x0001)
possible fault codes.
Comm Config (3)
• Data - DIN
• Data - INT
• Data - REAL
Defines the data structure data type in the generic • Data - SINT
Comm Format device. • Input Data - DINT
• Input Data - INT
• Input Data - REAL
• Input Data - SINT
Define the Assembly Instance and size of the input
Input User defined
assembly in the generic device.
Define the Assembly Instance and size of the output
Output User defined
assembly in the generic device.
Define the Assembly Instance and size of the
Configuration User defined
configuration assembly in the generic device.
(1) Only displayed when PowerFlex is selected as the Type.
(2) Only displayed when Kinetix is selected as the Type.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 137


Chapter 8 EtherNet/IP Network

(3) These parameters are displayed only when Generic Device is selected as the Type, and is used to define a generic device
data structure.

Table 42 - Module Keying Options


Keying Option Description
Lets the installed device accept the key of the device that is defined in the project
when the installed device can emulate the defined device. With Compatible Module,
you can typically replace a device with another device that has the following
characteristics:
Compatible Module • Same catalog number
• Same or higher Major Revision
• Minor Revision as follows:
– If the Major Revision is the same, the Minor Revision must be the same or higher.
– If the Major Revision is higher, the Minor Revision can be any number.
Indicates that the keying attributes are not considered when attempting to
communicate with a device. With Disable Keying, communication can occur with a
device other than the type specified in the project.
ATTENTION: Be cautious when using Disable Keying; if used incorrectly, this option
Disable Keying can lead to personal injury or death, property damage, or economic loss.
We strongly recommend that you do not use Disable Keying.
If you use Disable Keying, you must take full responsibility for understanding whether
the device being used can fulfill the functional requirements of the application.
IMPORTANT: Do not use this option in Safety applications.
Indicates that all keying attributes must match to establish communication. If any
Exact Match attribute does not match precisely, communication with the device does not occur.

Requested Packet Interval


The Requested Packet Interval (RPI) is a configurable parameter that defines a rate at which
the owner-controller and the module exchange data. You set the RPI value during initial
module configuration and can adjust it as necessary after module operation has begun.

IMPORTANT You can change the RPI while the project is online. If you change the RPI
while the project is online, however, the connection to the module is
closed and reopened in one of the following ways:
• You inhibit the connection to the module, change the RPI value, and
uninhibit the connection.
• You change the RPI value. In this case, the connection is closed and
reopened immediately after you apply the change to the module
configuration.
• During Run Mode Change (RMC), if the RPI is too fast, it can cause a
momentary drop in connection on the Ethernet device and fault the
device if the drop is detected as a communication loss. To recover,
reset the fault and resume operations.

Type Definition in Module Dialog


The Type in the module creation defines the type of devices to be connected. There are five
types to choose from:
• Generic Device is for all EtherNet/IP devices that do not have supported predefined
data structures in the Micro800 controller.
• PowerFlex 523-E2P or PowerFlex 525-E2P are for PowerFlex 520-series drives that use
the dual-port Ethernet plug-in communication card.
• PowerFlex 525-EENET is for PowerFlex 525 drives that use the embedded Ethernet port.
• Kinetix 5100 is for all Kinetix 5100 servo drives. When this option is selected, a new field
that is called Catalog is shown where you must select the correct Kinetix 5100 catalog
number.

138 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8 EtherNet/IP Network

Module Inhibiting
Module inhibiting lets you indefinitely suspend a connection between an owner-controller and
an I/O module without removing the module from the configuration. This process lets you
temporarily disable a module, such as to perform maintenance.

To inhibit the module, do the following.


1. Go to the Ethernet - Modules dialog.

2. Select the Inhibit Module checkbox on the Ethernet device that you want to inhibit.
3. Select Save to Controller to accept the inhibit change to the Ethernet device.

4. Device connection is updated as Inhibited.

To uninhibit the module, do the following.


1. Go to the Ethernet - Modules dialog.

2. Clear the Inhibit Module checkbox on the Ethernet device that you want to uninhibit.
3. Select Save to Controller to accept the uninhibit change to the Ethernet device.

4. Device connection is updated as Running.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 139


Chapter 8 EtherNet/IP Network

Predefined Tags in With Connected Components Workbench software version 21 or later, when Kinetix 5100 and
PowerFlex 520 series products are added into the Micro800 controller (with firmware revision
PowerFlex 520-series and 21 or later) project under the Ethernet-Module tree, predefined tags are made available in the
Kinetix 5100 Drives Connected Components Workbench software to help you program the logic easily.
The Input and Output assembly are shown here for your convenience. While you can directly
manipulate these assemblies, they rely on your logic to operate correctly, including timing,
pre-existing drive conditions, and so on. It is typical to use the predefined Motion Operation
UDFBs to perform motion operations.
Table 43 - Kinetix 5100 Motion Drive Input Assembly Data
Name Data Type Description Value Comment
InfoBits SINT
0 = Drive is idle
InfoBits.0 BIT Indicates whether the drive is in run mode. RunMode
1 = Drive is in run mode
0 = Connection is not faulted
InfoBits.1 BIT Indicates whether the connection is faulted. ConnectionFaulted
1 = Connection is faulted
0 = Diagnostic is not active
InfoBits.2 BIT Indicates whether the diagnostic is active. DiagnosticActive
1 = Diagnostic is active
DiagnosticSequenceCount SINT The sequence count for the diagnostic.
DataBits SINT
0 = No Fault
DataBits.1 Bit Indicates whether the drive is in a faulted state. Fault
1 = Faulted
0 = Data is valid
DataBits.2 BIT Indicates whether the data validity is questionable. Uncertain
1 = Date validity is questionable
0 = No warnings
StatusBits SINT Indicates whether the drive is in a warning state. 1 = Drive is in a warning state
0 = Motor is not enabled
StatusBits.1 BIT Indicates whether the motor is enabled. WarningPresent
1 = Motor is enabled
0 = Motor is not ready
StatusBits.2 BIT Indicates whether the motor is ready to be enabled. Active
1 = Motor is ready
Indicates that the new command has
been received by the K5100 drive. It
toggles between 0 and 1 after a new
Indicates whether the drive received the command
StatusBits.3 BIT command has been received by the Ready
from the controller. K5100 drive. When this bit toggles, it
stays at the toggled state until a new
command is received.
Indicates whether the drive completed the home
StatusBits.4 BIT 1 = Drive completed the home operation CommandinProgress
operation.
StatusBits.5 BIT Indicates whether the motor is stopped. 1 = Motor is stopped HomedStatus
Motor actual at reference (position, speed, torque) 1 = Motor actual at reference (position,
StatusBits.6 BIT Stopped
based on mode. speed, torque) based on mode
StatusBits.7 BIT AtReference
-128…-1 = Reserved
0 = Mode not specified
1 = Position mode
2 = Speed mode
OperatingMode SINT Indicates the drive operation mode. 3 = Home mode
4 = Torque mode
5 = Gear mode
6 = Index mode
7…127 = Reserved
-128…-1 = Reserved
0 = PR 0: Homing
ActiveIndex SINT Indicates the currently executing index (PR). 1…99 = PR 1…PR 99
100…127 = Reserved
0 = No motor connected
Indicates which type of motor is connected to the
MotorType SINT 1 = Rotary motor connected
drive. 2 = Linear motor connected
ActualSpeed DINT Motor actual velocity. A valid value in RPM.
FaultCode INT Fault code. For more information, see the Kinetix
5100 EtherNet/IP Indexing Servo Drives
WarningCode INT Warning code. User Manual, publication 2198-UM004.

140 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8 EtherNet/IP Network

Table 43 - Kinetix 5100 Motion Drive Input Assembly Data (Continued)


Name Data Type Description Value Comment
ActualPosition DINT Actual position of the motor. PUU (counts or user units)
AcutalTorque DINT Actual torque of the motor. % motor rated torque
0 = No parameter is selected
0x0001…0xFFFF = returned value that is
ParamterMonitor1Value DINT Parameter monitor selection 1. mapped from KNX5100C Function List >
Parameter Editor > StatusMonitor ID060
1 = No parameter is selected
0x0001…0xFFFF = returned value that is
ParamterMonitor2Value DINT Parameter monitor selection 2. mapped from KNX5100C Function List >
Parameter Editor > StatusMonitor ID061
2 = No parameter is selected
0x0001…0xFFFF = returned value that is
ParamterMonitor3Value DINT Parameter monitor selection 3. mapped from KNX5100C Function List >
Parameter Editor > StatusMonitor ID062
3 = No parameter is selected
0x0001…0xFFFF = returned value that is
ParamterMonitor4Value DINT Parameter monitor selection 4. mapped from KNX5100C Function List >
Parameter Editor > StatusMonitor ID063
4 = No parameter is selected
0x0001…0xFFFF = returned value that is
ParamterMonitor5Value DINT Parameter monitor selection 5. mapped from KNX5100C Function List >
Parameter Editor > StatusMonitor ID064

Table 44 - Kinetix 5100 Motion Drive Output Assembly Data


Name Data Type Description Value Comment
-128…-1 = Reserved
0 = Mode not specified
1 = Position mode
2 = Speed mode
This enumerated value indicates the drive's internal 3 = Home mode
OperatingMode SINT mode setting. The drive can operate in different 4 = Torque mode
submodes while in IO Mode. 5 = Gear mode
6 = Index mode
7 = ECAM mode
8…127 = Reserved
ServoControl SINT
ServoControl.0 BIT A transition from 0 to 1 enables the motor. ServoOn
ServoControl.1 BIT A transition from 0 to 1 disables the motor. ServoOff
ServoControl.2 BIT A transition from 0 to 1 stops motion on the motor. StopMotion
ServoControl.3 BIT A transition from 0 to 1 clears an active drive fault. FaultReset
A transition from 0 to 1 means that the motion
ServoControl.4 BIT StartMotion
command is issued from the external controller.
For more information, see the Kinetix
HomingMethod SINT The method of Homing. 5100 EtherNet/IP Indexing Servo Drives
User Manual, publication 2198-UM004.
Units are in 0.1 RPM
SpeedReference DINT The commanded speed for the motor. -80000…+80000
1…20000 (home mode)
AccelReference DINT The commanded acceleration rate for the motor. Units are in 0.1 RPM/sec
DecelReference DINT The commanded deceleration rate for the motor. Units are in 0.1 RPM/sec
The scaling relationship from the E-gear
PositionReference DINT The commanded position used for indexing. ratio in KNX5100C software defines the
User units.
The return speed when home mode is the operating Units are in 0.1 RPM (rotary motors)
HomeReturnSpeed DINT mode. 1…5000
-128…-1 = Reserved
0 = Absolute
Enumerated value used to determine the noncyclic 1 = Relative
NonCyclicMoveType SINT move type. 2 = Incremental
3 = High-speed capture
4…127 = Reserved

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 141


Chapter 8 EtherNet/IP Network

Table 44 - Kinetix 5100 Motion Drive Output Assembly Data (Continued)


Name Data Type Description Value Comment
-128…-1 = Reserved
0 = Rotary positive
Enumerated value used to determine the cyclic move
CylicMoveType SINT 1 = Rotary negative
type. 2 = Rotary shortest path
3…127 = Reserved
-128…+1 = Reserved
2 = Non-cyclic move
Enumerated value used to determine the travel
TravelMode DINT 3…9 = Reserved
constraints of the axis. 10 = Cyclic move
11…127 = Reserved
PositionControl SINT
0 = Does not override the previous
When executing a motion command, the next PositionCommandOve
PositionControl.0 BIT movement
movement can override the previous movement. rride
1 = Can override the previous movement
The next movement can overlap the end of the current 0 = Does not overlap the next movement PositionCommandOve
PositionControl.1 BIT movement. 1 = Overlaps the next movement rlap
Selects between the high-speed digital inputs that are Vendor specific CapturedPositionSele
PositionControl.2 BIT 0 = DI9 is selected
used to capture position feedback. ct
1 = DI10 is selected
Represents the output torque level when the operation
TorqueReference DINT mode is Torque Mode (3). This value is in percent of -4000…+4000 (enumeration is 0.1x)
motor rated torque.
TorqueRampTime DINT Represents the time to reach the torque reference. 1…65500 ms
-128…-1 = Reserved
The first index (position register) that the drive should 0 = PR 0: Homing
StartingIndex SINT execute. 1…99 = PR 1…PR 99
100…127 = Reserved
CamMasterReference SINT
CamExecutionSchedule SINT Future
CamExecutionMode SINT Future
CamSetting SINT Future
CamSetting3 BIT Future CamStopMode
CamSlaveScaling DINT Future
CamLockPosition DINT Future
CamMasterLockPosition DINT Future
CamMasterLeadingCounts DINT Future
CamMasterUnlockCounts DINT Future
CamMasterCyclicLeadingCounts DINT Future
Integer value that represents slave counts. This value is
GearRatioSlaveCounts DINT P1.044 Gear Ratio Follower Counts from the E-gear ratio
in Kinetix 5100 software.
Integer value that represents master counts. This value
GearRatioMasterCounts DINT is P1.045 Gear Ratio Master Counts from the E-gear
ratio in Kinetix 5100 software.

Table 45 - PowerFlex 520-series Drive Input Assembly Data (Position Mode)


Name Data Type Description Value Comment
DriveStatus INT
0 = Not ready
DriveStatus.0 BIT Indicates whether the drive is ready for operation. Ready
1 = Ready
0 = Not active
DriveStatus.1 BIT Indicates whether the drive is operating. Active
1 = Active (Running)
0 = Cmd reverse
DriveStatus.2 BIT Indicates the command direction. CommandDir
1 = Cmd forward
0 = Rotating reverse
DriveStatus.3 BIT Indicates the rotating direction. ActualDir
1 = Rotating forward
0 = Not accelerating
DriveStatus.4 BIT Indicates the acceleration state. Accelerating
1 = Accelerating

142 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8 EtherNet/IP Network

Table 45 - PowerFlex 520-series Drive Input Assembly Data (Position Mode) (Continued)
Name Data Type Description Value Comment
0 = Not decelerating
DriveStatus.5 BIT Indicates the deceleration state. Decelerating
1 = Decelerating
0 = Reverse travel position
DriveStatus.6 BIT Indicates the Travel Position direction. ForwardTravel
1 = Forward travel position
0 = Not faulted
DriveStatus.7 BIT Indicates the fault state. Faulted
1 = Faulted
0 = Not at reference
DriveStatus.8 BIT Indicates that the drive is at reference speed. AtReference
1 = At reference
0 = Not at position
DriveStatus.9 BIT Indicates that the drive is at commanded position. AtPos
1 = At position
0 = Not at home
DriveStatus.10 BIT Indicates that the drive is at the reference home. AtHome
1 = At home
Indicates whether the drive has been homed since 0 = Drive not homed
DriveStatus.11 BIT DriveHomed
power-up. 1 = Drive homed
0 = Not sync hold
DriveStatus.12 BIT Indicates if the frequency is holding. SyncHold
1 = Sync hold
Indicates if the frequency accelerating to the new 0 = Not sync ramp
DriveStatus.13 BIT commanded frequency in drive parameter A571 [Sync SyncRamp
1 = Sync ramp
Time].
0 = Traverse off
DriveStatus.14 BIT Indicates if Traverse is enabled. TraverseOn
1 = Traverse on
Indicates if the drive is decelerating in Traverse mode. 01 ==Traverse
Not Traverse decel
DriveStatus.15 BIT TraverseDecel
decel
OutputFreq INT Display the reference speed of the drive. In units of 0.01 Hz.

Table 46 - PowerFlex 520-series Drive Output Assembly Data (Position Mode)


Name Data Type Description Value Comment
LogicCommand INT
0 = Not normal stop
LogicCommand.0 BIT Perform a normal stop. Stop
1 = Normal stop
0 = Not start
LogicCommand.1 BIT Command the drive the start. Start
1 = Start
0 = Not jog
LogicCommand.2 BIT Command the drive to jog. Jog
1 = Jog
0 = Not clear fault
LogicCommand.3 BIT Clear drive fault. ClearFaults
1 = Clear fault
LogicCommand.4 BIT 00 = No command Forward
01 = Forward command
Command the direction of the drive.
LogicCommand.5 BIT 10 = Reverse command Reverse
11 = No command
This provides an identical function as the “Logic In1”
LogicCommand.6 BIT 1 = Logic In 1 LogicIn1
Digital Input option.
This provides an identical function as the “Logic In2”
LogicCommand.7 BIT 1 = Logic In 2 LogicIIn2
Digital Input option.
LogicCommand.8 BIT 000 = Frequency and position step 0 Freq_PosSel01
LogicCommand.9 BIT 001 = Frequency and position step 1 Freq_PosSel02
010 = Frequency and position step 2
Select the pre-programed frequency and position step. 011 = Frequency and position step 3
100 = Frequency and position step 4
LogicCommand.10 BIT 101 = Frequency and position step 5 Freq_PosSel03
110 = Frequency and position step 6
111 = Frequency and position step 7
LogicCommand.11 BIT Next start command causes the drive to find home. 1 = Find home FindHome
Overrides other inputs and causes the drive to remain
LogicCommand.12 BIT at its current step (running at zero speed once it 1 = Hold step HoldStep
reaches its position) until released.
Resets the home position to the current position of the
LogicCommand.13 BIT machine. Set this bit to 0 after completing the homing 1 = Pos redefine PosRedefine
routine.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 143


Chapter 8 EtherNet/IP Network

Table 46 - PowerFlex 520-series Drive Output Assembly Data (Position Mode) (Continued)
Name Data Type Description Value Comment
Hold the existing frequency when sync time is set to
LogicCommand.14 BIT 1 = Sync enable SyncEnabled
enable speed synchronization.
LogicCommand.15 BIT Disable the traverse function 1 = Traverse disable TravDisable
FreqCommand INT Control the reference speed of the drive. In units of 0.01 Hz

Table 47 - PowerFlex 520-series Drive Input Assembly Data (Velocity Mode)


Name Data Type Description Value Comment
DriveStatus INT
0 = Not ready
DriveStatus.0 BIT Indicates whether the drive is ready for operation. Ready
1 = Ready
0 = Not active
DriveStatus.1 BIT Indicates whether the drive is operating. Active
1 = Active (Running)
0 = Cmd reverse
DriveStatus.2 BIT Indicates the command direction. CommandDir
1 = Cmd forward
0 = Rotating reverse
DriveStatus.3 BIT Indicates the rotating direction. ActualDir
1 = Rotating forward
0 = Not accelerating
DriveStatus.4 BIT Indicates the acceleration state. Accelerating
1 = Accelerating
0 = Not decelerating
DriveStatus.5 BIT Indicates the deceleration state. Decelerating
1 = Decelerating
DriveStatus.6 BIT Reserved.
0 = Not faulted
DriveStatus.7 BIT Indicates the fault state. Faulted
1 = Faulted
0 = Not at reference
DriveStatus.8 BIT Indicates that the drive is at reference speed. AtReference
1 = At reference
Indicates that the main frequency is controlled by the 1 = Main frequency controlled by active
DriveStatus.9 BIT CommFreqCnt
active communication. comm
Indicates that the operation command is controlled by 1 = Operation command controlled by
DriveStatus.10 BIT CommLogicCnt
the active communication. active comm
DriveStatus.11 BIT Indicates that the parameters are locked. 1 = Parameters are locked ParmsLocked
DriveStatus.12 BIT Indicates the Digital Input 1 status. DigIn1Active
DriveStatus.13 BIT Indicates the Digital Input 2 status. DigIn2Active
DriveStatus.14 BIT Indicates the Digital Input 3 status. DigIn3Active
DriveStatus.15 BIT Indicates the Digital Input 4 status. DigIn4Active
OutputFreq INT Display the reference speed of the drive. In units of 0.01 Hz.

Table 48 - PowerFlex 520-series Drive Output Assembly Data (Velocity Mode)


Name Data Type Description Value Comment
LogicCommand INT
0 = Not normal stop
LogicCommand.0 BIT Perform a normal stop. Stop
1 = Normal stop
0 = Not start
LogicCommand.1 BIT Command the drive the start. Start
1 = Start
0 = Not jog
LogicCommand.2 BIT Command the drive to jog. Jog
1 = Jog
0 = Not clear fault
LogicCommand.3 BIT Clear drive fault. ClearFaults
1 = Clear fault
LogicCommand.4 BIT 00 = No command Forward
01 = Forward command
Command the direction of the drive.
LogicCommand.5 BIT 10 = Reverse command Reverse
11 = No command
0 = Not keypad control
LogicCommand.6 BIT Force keypad control. ForceKeypadCtrl
1 = Forced keypad control
Increases the value of drive parameter A427 [MOP Freq] 0 = Not increment
LogicCommand.7 BIT MOPIncrement
at the rate set in A430 [MOP Time]. 1 = MOP increment

144 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8 EtherNet/IP Network

Table 48 - PowerFlex 520-series Drive Output Assembly Data (Velocity Mode) (Continued)
Name Data Type Description Value Comment
LogicCommand.8 BIT 00 = No command AccelRate1
01 = Accel Rate 1 enable
Select the Accel Rate.
LogicCommand.9 BIT 10 = Accel Rate 2 enable AccelRate2
11 = Hold Accel Rate selected
LogicCommand.10 BIT 00 = No command DecelRate1
01 = Decel Rate 1 enable
Select the Decel Rate.
LogicCommand.11 BIT 10 = Decel Rate 2 enable DecelRate2
11 = Hold Decel Rate selected
LogicCommand.12 BIT 000 = No command FreqSel01
LogicCommand.13 BIT 001 = Freq source = P047 (Speed FreqSel02
Reference 1)
010 = Freq source = P049 (Speed
Reference 2)
Frequency selection of drive parameters Speed 011 = Freq source = P051 (Speed
Reference 1…3 and Preset Freq 0…3.
LogicCommand.14 BIT Reference 3) FreqSel03
100 = Freq source = A410 (Preset Freq 0)
101 = Freq source = A411 (Preset Freq 1)
110 = Freq source = A412 (Preset Freq 2)
111 = Freq source = A413 (Preset Freq 3)
Decreases the value of drive parameter A427 [MOP 0 = Not decrement
LogicCommand.15 BIT MOPDecrement
Freq] at the rate set in A430 [MOP Time]. 1 = MOP decrement
FreqCommand INT Control the reference speed of the drive. In units of 0.01 Hz

Use of the User-defined When a PowerFlex 520-series or Kinetix 5100 drive is used with Connected Components
Workbench software, the use of the predefined user-defined function block (UDFB) provides
Function Block Library an easy way to program your simple drive control application.
Table 49 - UDFB List for PowerFlex520-series Drives
Name Description
PowerFlex 523 Velocity Mode control.
RA_PF523_VEL This instruction allows simple PowerFlex 523 drive control in Velocity Mode.
PowerFlex 525 Velocity Mode control.
RA_PF525_VEL This instruction allows simple PowerFlex 525 drive control in Velocity Mode.
PowerFlex 525 Position Mode control.
RA_PF525_POS This instruction allows simple PowerFlex 525 drive control in Position Mode.

Table 50 - UDFB Motion Instruction List for Kinetix 5100 Drives


Name Description
Motion Servo On.
raC_Opr_K5100_MSO Use the Motion Servo On instruction to activate the drive output and to activate the
drive servo loops.
Motion Servo Off.
raC_Opr_K5100_MSF Use the Motion Servo Off instruction to deactivate the drive output and to deactivate
the drive servo loops.
Motion Axis Jog
raC_Opr_K5100_MAJ Use the Motion Axis Jog instruction to accelerate or decelerate the motor at a constant
speed without termination.
Motion Axis Torque
raC_Opr_K5100_MAT Use the Motion Axis Torque instruction to use torque limiting while a predefined speed
is used to move the motor.
Motion Axis Move
raC_Opr_K5100_MAM Use the Motion Axis Move instruction to move the motor to a specified position.
Motion Axis Home
raC_Opr_K5100_MAH Use the Motion Axis Home instruction to home the motor.
Motion Axis Gear
Use the Motion Axis Gear instruction to set the gear ratio between a pulse-source and
follower drive.
raC_Opr_K5100_MAG IMPORTANT: This UDFB changes the drive E-gear ratio; Slave/Follower ID151 (P1.044)
and Master ID152 (P1.045) Counts. If your drive is positioning, be aware that the units
are impacted because the E-gear ratio controls the counts/motor rotation value.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 145


Chapter 8 EtherNet/IP Network

Table 50 - UDFB Motion Instruction List for Kinetix 5100 Drives (Continued)
Name Description
Motion Axis Stop
raC_Opr_K5100_MAS Use the Motion Axis Stop instruction to stop a specific motion process on the motor or
to stop the motor completely.
Motion Axis Fault Reset.
Use the Motion Axis Fault Reset instruction to clear many motion faults for the drive.
raC_Opr_K5100_MAFR Some faults cannot be cleared until you cycle power to the drive. The faults, which can
be cleared by raC_xxx_K5100_MAFR, are listed in the fault list section.
Motion Axis Index
Use the Motion Axis Index instruction to execute the specified PR (index) function of
raC_Opr_K5100_MAI the drive. Use K5100C configuration software or explicit messaging to set the PR
(index) parameters. The raC_Opr_K5100_MAI instruction specifies the PR (index)
number to be executed.

For details on each UDFB instruction, see User-defined Function Block Motion Instructions on
page 353.

Download the User-defined You can download the user-defined function blocks for Kinetix 5100 and PowerFlex 520-series
drives from the Product Compatibility Download Center (PCDC) website at rok.auto/pcdc.
Function Block Instruction
Files In the Search PCDC text field (Figure 46), enter “Kinetix 5100 UDFB Library” or “PowerFlex 520-
series UDFB Library”.
Figure 46 - Search PCDC

Select the files that you want to download from the search results.

Import the User-defined To import the user-defined function blocks into your Connected Components Workbench
project, do the following.
Function Block Instruction
1. In the Controller Organizer, right-click the controller and select Import > Import
Files Exchange File.

146 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8 EtherNet/IP Network

Alternatively, from the Device menu, select Import > Import Exchange File.

The Import Export dialog box appears.

2. Select Browse and navigate to the folder that contains the UDFB files.
3. Select the UDFB file to add and select Open.
UDFBs for Kinetix 5100 Drives UDFBs for PowerFlex 520-series Drives

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 147


Chapter 8 EtherNet/IP Network

The selected UDFB file is shown in the dialog box.


UDFBs for Kinetix 5100 Drives UDFBs for PowerFlex 520-series Drives

4. Select the pull-down arrow to expand the list and see all UDFBs within the UDFB file.
5. Verify that the checkboxes next to the UDFBs that are required for your application are
selected. You can clear the checkboxes for UDFBs that are not required.
6. Select Import to add the selected UDFBs into the project.

The imported UDFBs appear in the Controller Organizer under the Add-On Instructions folder,
along with the Add-On defined data types, which appear in the Controller Organizer under the
Data Types > Structures folder.
UDFBs for Kinetix 5100 Drives UDFBs for PowerFlex 520-series Drives

There are three UDFBs for PowerFlex 520-series drives to provide a necessary function block
with Assembly Instance.

There are 10 UDFBs (raC_Opr_K5100_xxx) and one Device Object instruction (raC_Dvc_K5100)
for Kinetix 5100 drives firmware revision 2 or later to provide a necessary function block with
output Assembly Instance 106 (or “Connection” is “Data with Camming”) for the K5100 module
configuration. These UDFBs may not work if output Assembly Instance 104 is configured (or
“Connection” is “Data”) for the K5100 module configuration.

148 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8 EtherNet/IP Network

The UDFBs also appear in the (User defined) tab in the ladder logic toolbox.
UDFBs for Kinetix 5100 Drives

UDFBs for PowerFlex 520-series Drives

Connection Fault Codes The following table lists the possible connection faults that can occur and the corrective
actions that you can take to resolve the fault.
Table 51 - List of Connection Fault Codes
Fault Code Display Text Fault Corrective Action
Extended status codes in these ranges provide more detail
0x0001 Connection failure. A connection to a module failed. as to the connection failure.
Possible causes include the following: • Check the connection use of the controller or
communication module. If all connections are used, try to
• There are not enough connections available either for the free some of the used connections or add another module
controller or for the communication module being used to to route the errant connection through.
0x0002 Resource unavailable. connect through.
• Check the number of controllers making a connection to
• The I/O module that is targeted does not have enough this I/O module and verify that the number of connections
connections available. is within the limits of the I/O module.
A parameter that is associated with the request was invalid.
Possible causes include the following:
• The module in use (that is, the physical module) is
different than the module specified in the I/O
configuration tree and is therefore causing the
connection or service to fail.
Check the module in use and verify that it exactly matches
Invalid value in an object • The fault may occur even when the module passes the the module that is specified in the application. For more
0x0003 specific data parameter of a electronic keying test. This may result when Disable information about electronic keying, see the user manual
service request. Keying or Compatible Keying options were used in the for the module you are using.
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.
The target module does not like one of the parameters in
Connection Request Error: the connection request. This may occur if improper module
0x0004 IOI segment error on connection request.
Bad Segment. keying is being used or if the wrong map type attribute is
set in the map entry.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 149


Chapter 8 EtherNet/IP Network

Table 51 - List of Connection Fault Codes (Continued)


Fault Code Display Text Fault Corrective Action
The controller is attempting to make a connection to the
module and has received an error.
Possible causes include the following:
• The configured address for the connection to the module
is incorrect.
• The module in use (that is, the physical module) is • Check the module in use and verify that it exactly
different than the module specified in the I/O matches the module that is specified in the application.
configuration tree and is therefore causing the For more information about electronic keying, see the
Connection Request Error: connection or service to fail. user manual for the module you are using.
0x0005 Bad Class. • The fault may occur even when the module passes the • If you are using a 1756-DHRIO module, verify that the
electronic keying test. This may result when Disable Channel type selected in the software (DH+™ or remote
Keying or Compatible Keying options were used in the I/O network) matches the module's rotary switch settings.
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.
Only part of the expected data was transferred.
Possible causes include the following:
• The response buffer is too small to handle the response
data.
• The module in use (that is, the physical module) is
different than the module specified in the I/O
configuration tree and is therefore causing the Check the module in use and verify that it exactly matches
connection or service to fail. the module that is specified in the application. For more
0x0006 Partial data transferred. • The fault may occur even when the module passes the information about electronic keying, see the user manual
electronic keying test. This may result when Disable for the module you are using.
Keying or Compatible Keying options were used in the
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.
0x0007 Messaging connection lost. The messaging connection was lost. A service request is unconnected, but should be connected.
The controller is attempting to request a service from the
module that is not supported by the module.
Possible causes include the following:
• The module in use (that is, the physical module) is
different than the module specified in the I/O
configuration tree and is therefore causing the
connection or service to fail. Check the module in use and verify that it exactly matches
Service Request Error: • The fault may occur even when the module passes the the module that is specified in the application. For more
0x0008 Unsupported Service. electronic keying test. This may result when Disable information about electronic keying, see the user manual
Keying or Compatible Keying options were used in the for the module you are using.
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.
• Additional fault information for this fault will be displayed
as a hex code on the Connections tab. If available for the
module, open the Connections tab of the Module
Properties dialog box for the additional fault code. The
additional fault code indicates the configuration
The configuration for the module is invalid. The module
Module Configuration Rejected: configuration may have been changed in the Data Monitor or parameter that is causing the fault. You may have to
0x0009 correct multiple parameters before this fault is cleared
parameter error. programmatically. and the module is connected.
• Verify that the configuration is valid by using the module
configuration software to validate your configuration.
Consult the module user manual for a list of fault codes to
determine the configuration parameter that is in error.
Object already in requested The object is already in the mode/state being requested by You do not have to request a mode/state because the object
0x000B mode or state. the service. is already in the requested mode/state.

150 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8 EtherNet/IP Network

Table 51 - List of Connection Fault Codes (Continued)


Fault Code Display Text Fault Corrective Action
First, verify that the module is not faulted.
For an I/O module, this may indicate that the module has
one of the following conditions:
Service Request Error: The controller is attempting to request a service from the • Limited communication is possible, but the module has a
0x000C Invalid mode or state for module and has received an error. Major Fault.
service request.
• A firmware update needs to be completed or is currently
being completed.
See the Module Info tab to determine the exact cause.
0x000D Object Already Exists. An object instance is created where the instance exists. Use another object instance number.
A MSG instruction is configured to change an attribute that See the device user manual for available programming
0x000E Attribute value not settable. cannot be changed. options.
Access permission denied for A MSG instruction has been configured to delete a map See the device user manual for available programming
0x000F requested service. object that cannot be deleted. options.
Mode or state of module does The state of the device prevents a service request from See the device user manual for available programming
0x0010 not allow object to perform being handled. options.
requested service.
The reply to a message has a data size that is too large for Change the destination to a tag that can handle the data
0x0011 Reply data too large. the destination. size and type being returned.
Requested service specifies an • The size of the data being read or written must be
operation that is going to The service specified an operation that is going to fragment rounded to the next primitive data type size.
0x0012 fragment a primitive data a primitive data value (for example, half a REAL data type). • The service is operating on data that is too large for the
value. underlying communication size limits.
Module Configuration Rejected: The configuration for the module is invalid. Not enough
0x0013 Verify that the correct module is being targeted.
Data size too small. configuration data was sent.
Undefined or unsupported A MSG instruction is configured to change an attribute that See the device user manual for available programming
0x0014 attribute. does not exist. options.
Module Configuration Rejected: The configuration for the module is invalid. Too much
0x0015 Verify that the correct module is being targeted.
Data size too large. configuration data was sent.
Check for these conditions:
• The controller is attempting to make a specific
connection to a module and the module cannot support
Connection Request Error:
0x0100 The connection being accessed is already in use. multiple connections.
Module in Use.
• The target of a connection recognizes that the owner is
attempting to remake a connection that is already
running.
This indicates that the controller is requesting a transport
class that is not supported by the module.
Possible causes include the following:
• The controller is requesting services that are not
supported by the module.
• The module in use (that is, the physical module) is
different than the module specified in the I/O
Service Request Error: configuration tree and is therefore causing the Check the module in use and verify that it exactly matches
0x0103 CIP transport class not connection or service to fail. the module that is specified in the application. For more
• The fault may occur even when the module passes the information about electronic keying, see the user manual
supported. for the module you are using.
electronic keying test. This may result when Disable
Keying or Compatible Keying options were used in the
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 151


Chapter 8 EtherNet/IP Network

Table 51 - List of Connection Fault Codes (Continued)


Fault Code Display Text Fault Corrective Action
Check for these conditions:
• The Connection Request to this module has been rejected
due to an ownership conflict with another owner (for
example, another controller). This may occur with
modules, such as output modules that allow only one
owner to configure and control its outputs. This fault may
Connection Request Error: also occur if the module is configured as Listen Only and
Module owned and configured supports only one connection.
0x0106 by another controller. Module An ownership conflict occurred for the connection. • If the owner is connected to the module with a unicast
may accept only one connection over EtherNet/IP network, other connections
connection if Unicast is used. to the module may fail because the owner controls the
one connection.
• If the owner is connected to the module with a multicast
connection over EtherNet/IP network, unicast
connections to the module may fail because the owner
controls the one connection. Configure both the owner
and the Listen Only connection as multicast.
A connection being accessed was not found.
Possible causes include the following:
• You have configured module to use a unicast connection
over EtherNet/IP network, but the producer does not
support unicast connections.
• The module in use (that is, the physical module) is
different than the module specified in the I/O
configuration tree and is therefore causing the Check the module in use and verify that it exactly matches
Connection Request Error: connection or service to fail. the module that is specified in the application. For more
0x0107 Target Connection Not Found. • The fault may occur even when the module passes the information about electronic keying, see the user manual
electronic keying test. This may result when Disable for the module you are using.
Keying or Compatible Keying options were used in the
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.
The controller is requesting a connection type that is not
supported by the module.
Possible causes include the following:
• You have configured the module to use a unicast
connection over EtherNet/IP network, but the producer
does not support unicast connections.
• The module in use (that is, the physical module) is
different than the module specified in the I/O Check the module in use and verify that it exactly matches
Connection Request Error: configuration tree and is therefore causing the the module that is specified in the application. For more
0x0108 Connection type (Multicast/ connection or service to fail. information about electronic keying, see the user manual
Unicast) not supported. • The fault may occur even when the module passes the for the module you are using.
electronic keying test. This may result when Disable
Keying or Compatible Keying options were used in the
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.

152 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8 EtherNet/IP Network

Table 51 - List of Connection Fault Codes (Continued)


Fault Code Display Text Fault Corrective Action
The connection size is inconsistent with the expected size.
Possible causes include the following:
• The controller is attempting to set up a connection with
the module and cannot because the size of the
connection is invalid.
• The module in use (that is, the physical module) is • Check the module in use and verify that it exactly
different than the module specified in the I/O matches the module that is specified in the application.
configuration tree and is therefore causing the For more information about electronic keying, see the
Connection Request Error: connection or service to fail. user manual for the module you are using.
0x0109 Invalid connection size. • The fault may occur even when the module passes the • If the module is a 1756 ControlNet® module, verify that the
electronic keying test. This may result when Disable chassis size is correct. For remote I/O adapters, verify
Keying or Compatible Keying options were used in the that the rack size and rack density are correct.
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.
This controller is not an owner of this module because it is
The controller is attempting to set up a Listen Only
connection with the module and cannot because the module attempting to establish a Listen Only connection, which
Connection Request Error:
0x0110 has not been configured and connected to by an owner (for requires no module configuration. The controller cannot
Module not configured. connect until an owner configures and connects to the
example, another controller). module first.
RPI not supported.
Possible causes include the following:
• The Requested Packet Interval (RPI) specified is invalid
for this module or for a module in the path to this module.
• The module in use (that is, the physical module) is • Check the module in use and verify that it exactly
different than the module specified in the I/O matches the module that is specified in the application.
configuration tree and is therefore causing the For more information about electronic keying, see the
connection or service to fail. user manual for the module you are using.
Requested Packet Interval (RPI)
0x0111 • The fault may occur even when the module passes the • For Listen Only connections, the RPI set by the owner of
out of range.
electronic keying test. This may result when Disable this module is slower than the one requested. Either
Keying or Compatible Keying options were used in the increase the requested RPI or decrease the RPI the owner
module configuration instead of the Exact Match option. controller is using. See the Connection tab for valid RPI
• Despite passing the electronic keying test, the module values.
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.
To reduce the number of connections:
• Change the FLEX™ I/O communication adapter
Communications Format from Input or Output
configuration to Rack Optimization. When the
Connection Request Error: The number of connections is greater than what is available Communications Format changes, the adapter must be
0x0113 Module connection limit on the module. The number of connections must be reduced removed and recreated in the I/O configuration tree.
exceeded. or the hardware must be upgraded. • If the configuration uses messaging over ControlNet,
sequence the messages to reduce the number that are
executing simultaneously, or reduce the number of
messages. Messages (MSG instructions) also use
connections.
Electronic Keying Mismatch: The Product Code of the actual module hardware does not Electronic Keying failed for this module. You may have a
0x0114 Electronic keying product code match the Product Code of the module that is created in the mismatch between the module that is created in the
and/or vendor ID mismatch. software. software and the actual module hardware.
Electronic Keying Mismatch: The Product Type of the actual module hardware does not Electronic Keying failed for this module. You may have a
0x0115 Electronic Keying product type match the Product Type of the module that is created in the mismatch between the module that is created in the
mismatch. software. software and the actual module hardware.
Electronic Keying failed for this module.
The Major or Minor revisions of the module do not match the • Revision
Verify that you have specified the correct Major and Minor
Electronic Keying Mismatch: if you have chosen Compatible Module or Exact
0x0116 Major and/or Minor revision Major or Minor revisions of the module that is created in the Match keying.
invalid or incorrect. software.
• You may have a mismatch between the module that is
created in the software and the actual module hardware.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 153


Chapter 8 EtherNet/IP Network

Table 51 - List of Connection Fault Codes (Continued)


Fault Code Display Text Fault Corrective Action
The connection is to an invalid port or port that is already in
use.
Possible causes include the following:
• Another controller owns this module and has connected
with a Communications Format different than the one
chosen by this controller. Verify that the Communications
Format chosen is identical to that chosen by the first
owner controller of the module.
• The controller may be attempting to connect to a Additional Error Information for this fault appears as the tag
nonexistent tag in a producing controller. name associated with the controller to controller (C2C) that
• The module in use (that is, the physical module) is has the fault.
Connection Request Error:
0x0117 different than the module specified in the I/O Check the module in use and verify that it exactly matches
Invalid Connection Point. the module that is specified in the application. For more
configuration tree and is therefore causing the
connection or service to fail. information about electronic keying, see the user manual
• The fault may occur even when the module passes the for the module you are using.
electronic keying test. This may result when Disable
Keying or Compatible Keying options were used in the
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.
An invalid configuration format was used.
Possible causes include the following:
• The configuration class that is specified does not match
the class that is supported by the module.
• The connection instance is not recognized by the module.
• The path that is specified for the connection is
inconsistent.
• The module in use (that is, the physical module) is
different than the module specified in the I/O Check the module in use and verify that it exactly matches
Module Configuration Rejected: configuration tree and is therefore causing the the module that is specified in the application. For more
0x0118 Format error. connection or service to fail. information about electronic keying, see the user manual
• The fault may occur even when the module passes the for the module you are using.
electronic keying test. This may result when Disable
Keying or Compatible Keying options were used in the
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.
Connection Request Error: Where a Listen Only connection is requested, the controlling
0x0119 The controlling connection is not open.
Module not owned. connection is not open.
• If the module is a 1756 ControlNet module, up to five
controllers can make Rack Optimization connections to
the module. Verify that this number has not been
The controller is attempting to set up a connection with the exceeded.
Connection Request Error:
0x011A module and cannot because required resources are
Out of Connection Resources. • If the module is a 1794-ACN15, 1794-ACNR15, or
unavailable.
1797-ACNR15 adapter, only one controller can make a Rack
Optimization connection to the module. Verify that this
number has not been exceeded.
The controller is attempting to set up a connection with the If generic Ethernet module is being used, check if the output
Connection Request Error:
0x0127 module and cannot because the output packet size is
Invalid output size. size is correct and expected by the target device.
invalid.
Connection Request Error: The controller is attempting to set up a connection with the If generic Ethernet module is being used, check if the input
0x0128 Invalid input size. module and cannot because the input packet size is invalid. size is correct and expected by the target device.
The target can be reached, but its response is not as
expected. For example, this fault may be indicated where
The owner or originator recognizes that the target device is multicast Ethernet packets are not returned.
0x0203 Connection timed out. on the network or backplane. However, I/O data and When this fault occurs, the controller usually attempts to
messages are not being responded to. continuously remove and remake the connection. If you use
FLEX I/O modules, verify that you are using the correct
terminal device.

154 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8 EtherNet/IP Network

Table 51 - List of Connection Fault Codes (Continued)


Fault Code Display Text Fault Corrective Action
To recover, take the following steps.
• Verify that the module has not been removed and is still
functioning and receiving power.
The controller is attempting to make a connection; however,
Connection Request Error: • Verify that the correct slot number has been specified.
0x0204 Connection request timed out. the target module is not responding. The device also
appears to be missing from the backplane or network. • Verify that the module is properly connected to the
network.
• If you are using FLEX I/O modules, verify that the correct
terminal block is used.
The controller is attempting to set up a connection with the
module and has received an error (a parameter is in error).
Possible causes include the following:
• The module in use (that is, the physical module) is
different than the module specified in the I/O
configuration tree and is therefore causing the
connection or service to fail. Check the module in use and verify that it exactly matches
Connection Request Error: • The fault may occur even when the module passes the the module that is specified in the application. For more
0x0205 Invalid parameter. electronic keying test. This may result when Disable information about electronic keying, see the user manual
Keying or Compatible Keying options were used in the for the module you are using.
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.
The controller is attempting to set up a connection with the
module and has received an error – the request size is too
large.
Possible causes include the following:
• The module in use (that is, the physical module) is
different than the module specified in the I/O • Verify that the path to this module is sufficiently close to
configuration tree and is therefore causing the the controller.
connection or service to fail.
Connection Request Error: • Check the module in use and verify that it exactly
0x0206 • The fault may occur even when the module passes the
Requested size too large. matches the module that is specified in the application.
electronic keying test. This may result when Disable For more information about electronic keying, see the
Keying or Compatible Keying options were used in the user manual for the module you are using.
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.
The controller is attempting to set up a connection with the
module and has received an error: a module in the path is
out of memory.
Possible causes include the following:
• The controller may be attempting to connect to a tag in a
producing controller that is not marked as being
produced.
• The controller may be attempting to connect to a tag in a
producing controller. That tag may not be configured to
allow enough consumers.
• The size or number of connections through this module
must be reduced.
• One of the network modules between the module and the
controller may be out of memory. Check network Check the module in use and verify that it exactly matches
Connection Request Error: configuration of the system. the module that is specified in the application. For more
0x0301 Out of buffer memory. • The module may be out of memory. Check the system information about electronic keying, see the user manual
configuration and capabilities of the module. for the module you are using.
• The module in use (that is, the physical module) is
different than the module specified in the I/O
configuration tree and is therefore causing the
connection or service to fail.
• The fault may occur even when the module passes the
electronic keying test. This may result when Disable
Keying or Compatible Keying options were used in the
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 155


Chapter 8 EtherNet/IP Network

Table 51 - List of Connection Fault Codes (Continued)


Fault Code Display Text Fault Corrective Action
Connection Request Error: The controller is attempting to set up a connection with the • Increase the Requested Packet Interval (RPI) and
0x0302 Out of communication module and has received an error: a module in the path has reconfigure your network with RSNetWorx™ software.
bandwidth. exceeded its communication bandwidth capacity. • Distribute the load on another bridge module.
The controller is attempting to set up a connection with the
Connection Request Error:
0x0303 module and has received an error: a module in the path has Distribute the load on another bridge module.
No bridge available. exceeded its communication bandwidth capacity.
Not configured to send Use RSNetWorx for ControlNet software to schedule or
0x0304 The ControlNet module is not scheduled to send data.
scheduled data. reschedule the ControlNet network.
The ControlNet configuration in the controller does not
Connection Request Error: match the configuration in the bridge module. This may
ControlNet configuration in Use RSNetWorx for ControlNet software to reschedule the
0x0305 occur because a ControlNet module was changed after the
controller does not match connections.
network was scheduled, or because a new control program
configuration in bridge. has been loaded into the controller.
The ControlNet Configuration Master (CCM) cannot be found.
The 1756-CNB module and PLC-5® ControlNet processor are
ControlNet Keeper not the only devices capable of being a CCM and the CCM must Verify that a 1756-CNB modules or PLC-5 ControlNet
0x0306 available. be node 1. processor is at node 1 and is functioning properly.
This fault may temporarily occur when the system is
powered up and is being cleared when the CCM is located.
Connection Request Error: The controller is attempting to set up a connection with the Verify that all modules in the I/O Configuration tree are the
0x0311 Invalid port. module and has received an error. correct modules.
The controller is attempting to set up a connection with the • Verify that the chosen slot number for this module is not
module and has received an error: an invalid link address greater than the size of the rack.
Connection Request Error:
0x0312 has been specified. A link address can be a slot number, a • Verify that the ControlNet node number is not greater
Invalid link address. network address, or the remote I/O chassis number and than the maximum node number configured for the
starting group. network in RSNetWorx for ControlNet software.
The segment type or route is invalid.
Possible causes include the following:
• The controller is attempting to set up a connection with
the module and has received an error: the connection
request is invalid.
• The module in use (that is, the physical module) is
different than the module specified in the I/O
configuration tree and is therefore causing the Check the module in use and verify that it exactly matches
Connection Request Error: connection or service to fail. the module that is specified in the application. For more
0x0315 Invalid segment type. • The fault may occur even when the module passes the information about electronic keying, see the user manual
electronic keying test. This may result when Disable for the module you are using.
Keying or Compatible Keying options were used in the
module configuration instead of the Exact Match option.
• Despite passing the electronic keying test, the module
being connected to does not have the same features or
settings as the module specified in the I/O configuration
tree and does not support the connection or service being
attempted.
Connection Request Error: The controller is attempting to set up a ControlNet Use RSNetWorx for ControlNet software to schedule or
0x0317 Connection not scheduled. connection with the module and has received an error. reschedule the connection to this module.
Connection Request Error: The controller is attempting to set up a connection with the Verify that the associated ControlNet module has the
0x0318 Invalid link address - cannot module and has received an error: the link address is correct slot or node number selected.
route to self. invalid.
The controller is attempting to set up a connection with the
Connection Request Error: Reduce the size or number of connections through this
module and has received an error: the redundant module
0x0319 No secondary resources module or add another controller or ControlNet module to
available in redundant chassis. does not have the necessary resources to support the the system.
connection.
A rack-optimized connection has already been established
to this module through the 1756-CNB/R in the same chassis.
• Connect to this module through the 1756-CNB/R in the
same chassis.
• Connect to this module through another 1756-CNB/R to
Connection Request Error: The controller is attempting to set up a Direct connection use a Direct connection.
0x031B Rack Connection Refused. with the module and has received an error. • Change the first connection from rack-optimized to
Direct, and then re-establish the second direct
connection.
• Connect to this module from a controller in the same
chassis as the module (do not connect through a 1756-
CNB/R).

156 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 8 EtherNet/IP Network

Table 51 - List of Connection Fault Codes (Continued)


Fault Code Display Text Fault Corrective Action
• The controller is attempting to connect to a tag in a
Connection Request Error: The controller is attempting to connect to a tag in a producing controller and that tag has already been used
0x031E by too many consumers.
Cannot consume tag. producing controller and has received an error.
• Increase the maximum number of consumers on the tag.
Connection Request Error: The Consume tag was not configured to be produced in the Make sure the name of the tag being consumed is spelled
0x031F Tag not published. target module. correctly in both the consumer and producer.
Connection Request Error:
Data format for requested A new connection that is requested does not match the Check the controllers that are using the connection and
0x0322 connection does not match existing connection. verify that all configurations are identical.
data format of connection
already established.
Network link in path to module Amodule
connection has already been established to the target It is either not physically connected to the network (media
0x0800 at a different RPI and it cannot be changed to disconnected) or otherwise unable to forward the request
is offline. accommodate the RPI specified. onto the destination network.
The controlling application has not initialized the data to be • Configure the tag as unicast.
produced by the target device. This may be caused when • Adjust the RPI so that all multicast consumers of the tag
0x0801 Incompatible Multicast RPI. “Send Data” connections are configured in a target device use the same RPI.
and the controlling application for that target device has not • Configure the RPI so that is in the range that is allowed by
initialized the data to be produced. the producer.
For the target device associated with the “Send Data”
Given data type does not match Produce tag data type in the connection reporting this connection error, start the
No target application data
0x0810 controlling application and perform at least one write of
available. target module. data. See the user manual for the target device and its
controlling application for information on how to do this.
Connection Request Error: Given data type does not match Produce tag data type in the Verify that both data types match.
0x0814 Data Type Mismatch. target module.
Connection Request Error:
No error code is supplied by an No error code is supplied by an I/O module to describe an
0xFD02 See the user manual for your device.
I/O module to describe an I/O I/O fault.
fault.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 157


Chapter 8 EtherNet/IP Network

Notes:

158 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9

Motion Control

Generally two types of motion control are used in Micro800 controller motion applications that
have Kinetix 3 servo drives.
• Indexed Motion – The Micro800 controller issues position indexes to the servo drive
using Modbus RTU communications or digital I/O. Used for simple positioning. See
publication CC-QS025 for building block example.
• PTO Motion – The Micro800 controller uses pulse and direction outputs to the servo
drive for precise control of position and velocity with Modbus RTU communications or
digital I/O for feedback. Micro800 motion configuration and instructions make
programming easy. See publication CC-QS033 for building block example.

PTO Motion Control Certain Micro830, Micro850, and Micro870 controllers that are shown in Table 52, support
motion control through high-speed pulse-train outputs (PTO). PTO functionality refers to the
ability of a controller to generate a specific number of pulses at a specified frequency
accurately. These pulses are sent to a motion device, such as a servo drive, which in turn
controls the number of rotations (position) of a servo motor. Each PTO is exactly mapped to
one axis, to allow for control of simple positioning in stepper motors and servo drives with
pulse/direction input.

As the duty cycle of the PTO can be changed dynamically, the PTO can also be used as a pulse-
width modulation (PWM) output.

PTO/PWM and motion axes support on the Micro830, Micro850, and Micro870 controllers are
summarized as follows.
Table 52 - PTO/PWM and Motion Axis Support on Micro830, Micro850, and Micro870
Controller PTO (built-in) Number of Axes Supported
10/16-point (1)
2080-LC30-10QVB 1 1
2080-LC30-16QVB
24-point
2080-LC30-24QVB (1)
2080-LC30-24QBB (1)
2080-LC50-24QVB
2080-L50E-24QVB
2080-LC50-24QBB 2 2
2080-L50E-24QBB
2080-LC70-24QBB
2080-L70E-24QBB
2080-LC70-24QBBK
2080-L70E-24QBBK
2080-L70E-24QBBN
48-point
2080-LC30-48QVB (1)
2080-LC30-48QBB (1)
2080-LC50-48QVB 3 3
2080-L50E-48QVB
2080-LC50-48QBB
2080-L50E-48QBB
(1) For Micro830 catalogs, Pulse Train Output functionality is only supported from firmware revision 2 and later.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 159


Chapter 9 Motion Control

ATTENTION: To use the Micro800 Motion feature effectively, you must have a
basic understanding of the following:
• PTO components and parameters
See Use the Micro800 Motion Control Feature on page 160 for a general
overview of Motion components and their relationships.
• Programming and working with elements in the Connected Components
Workbench software
You must have a working knowledge of ladder diagram, structured text, or
function block diagram programming to be able to work with motion function
blocks, variables, and axis configuration parameters.

ATTENTION: To learn more about Connected Components Workbench


software and detailed descriptions of the variables for the Motion Function
Blocks, you can refer to Connected Components Workbench software Online
Help that comes with your Connected Components Workbench software
installation.

IMPORTANT The PTO function can only be used with the controller’s embedded I/O.
It cannot be used with expansion I/O modules.

Use the Micro800 Motion Control Feature


The Micro800 motion control feature has the following elements. You must have a basic
understanding of the function of each element to use the feature effectively.
Table 53 - Components of Motion Control
Element Description Page
Consists of one pulse output and one
Pulse-train Outputs direction output. A standard interface to • Input and Output Signals on page 161
control a servo or stepper drive.
From a system point of view, an axis is a
mechanical apparatus that is driven by a
motor and drive combination. The drive • Motion Axis and Parameters on
receives position commands through the page 172
Micro800 pulse train outputs interface based
Axis • Motion Axis Configuration in
on the PLC execution of motion function
blocks. Connected Components Workbench
On the Micro800 controller, it is a pulse train on page 182
output and a set of inputs, outputs, and
configuration.
• Connected Components Workbench
Online Help
• Motion Control Function Blocks on
A set of instructions that configure or act page 164
Motion Function Blocks upon an axis of motion. • Axis_Ref Data Type on page 177
• Function Block and Axis Status Error
Codes on page 179
• Homing Function Block on page 191
Rate of change of acceleration. The Jerk
component is mainly of interest at the start • Acceleration, Deceleration, and Jerk
Jerk and end of the motion. Too high of a Jerk may Inputs on page 165
induce vibrations.

To use the Micro800 motion feature, you must:


1. Configure the Axis Properties
For instructions, see Motion Axis Configuration in Connected Components Workbench
on page 182.
2. Write your motion program through the Connected Components Workbench software
For instructions on how to use the Micro800 motion control feature, see the Micro800
Programmable Controllers: Getting Started with Motion Control Using a Simulated Axis
Quick Start, publication 2080-QS001.

160 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

3. Wire the Controller


For fixed and configurable inputs/outputs, see Input and Output Signals on page 161.
For reference, see Sample Motion Wiring Configuration on 2080-LC30-xxQVB / 2080-
LC50-xxQVB / 2080-LC70-xxQVB on page 163.

The next sections provide a more detailed description of the motion components. You can also
see the Connected Components Workbench Online Help for more information about each
motion function block and their variable inputs and outputs.

Input and Output Signals Multiple input/output control signals are required for each motion axis, as described Table 54
and Table 55. PTO Pulse and PTO Direction are required for an axis. The rest of the input/
outputs can be disabled and reused as regular I/O.
Table 54 - Fixed PTO Input/Output
PTO0 (EM_00) PTO1 (EM_01) PTO2 (EM_02)
Motion Signals Logical Name in Name on Terminal Logical Name in Name on Terminal Logical Name in Name on Terminal
Software Block Software Block Software Block
PTO pulse _IO_EM_DO_00 O-00 _IO_EM_DO_01 O-01 IO_EM_DO_02 O-02
PTO direction _IO_EM_DO_03 O-03 _IO_EM_DO_04 O-04 IO_EM_DO_05 O-05
Lower (Negative) Limit switch _IO_EM_DI_00 I-00 _IO_EM_DI_04 I-04 IO_EM_DI_08 I-08
Upper (Positive) Limit switch _IO_EM_DI_01 I-01 _IO_EM_DI_05 I-05 IO_EM_DI_09 I-09
Absolute Home switch _IO_EM_DI_02 I-02 _IO_EM_DI_06 I-06 IO_EM_DI_10 I-10
Touch Probe Input switch _IO_EM_DI_03 I-03 _IO_EM_DI_07 I-07 IO_EM_DI_11 I-11

Table 55 - Configurable Input/Output


Motion Signals Input/Output Notes
Servo/Drive On OUTPUT Can be configured as any embedded output.
Servo/Drive Ready INPUT Can be configured as any embedded input.
In-Position signal INPUT Can be configured as any embedded input.
(from servo/motor)
Home Marker INPUT Can be configured as any embedded input, from input 0...15.

You can configure the I/O through the axis configuration feature in the Connected
Components Workbench software. You should not control any outputs that are assigned for
motion in your program. See Motion Axis Configuration in Connected Components Workbench
on page 182.

IMPORTANT If an output is configured for motion, then your program can no longer
control or monitor that output and the output cannot be forced. For
example, when a PTO Pulse output is generating pulses, the
corresponding logical variable IO_EM_DO_xx does not toggle its value
and does not display the pulses in the Variable Monitor, but the physical
LED gives an indication.
If an input is configured for motion, then forcing the input only affects
your program logic and not motion. For example, if the input Drive
Ready is false, then you cannot force Drive Ready to true by forcing the
corresponding logical variable IO_EM_DI_xx to be true.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 161


Chapter 9 Motion Control

Table 56 - Motion Wiring Input/Output Description


Motion Signals Input/Output Description Uniqueness
PTO pulse from the embedded fast output, to be
PTO pulse OUTPUT Not Shared
connected to Drive PTO input.
PTO pulse direction indication, to be connected to
PTO direction OUTPUT Not Shared
Drive Direction input.
The control signal used to activate/deactivate Can be shared
Servo/Drive.
Servo/Drive On OUTPUT with multiple
This signal becomes Active when MC_Power (on) is drives
commanded.
The input for the hardware negative limit switch, to
Lower (Negative) Limit INPUT be connected to the mechanical/electrical negative Not Shared
switch limit sensor.
The input for the hardware positive limit switch, to
Upper (Positive) Limit INPUT be connected to the mechanical/electrical positive Not Shared
switch limit sensor.
The input for the hardware home switch (sensor), to
Absolute Home switch INPUT be connected to the mechanical/electrical home Not Shared
sensor.
The input for the hardware touch probe signal, to be
Touch Probe Input used with the Motion MC_TouchProbe and
INPUT Not Shared
switch MC_AbortTrigger function blocks to capture the axis
commanded position during the motion path.
The input signal that indicates Servo/Drive is ready
to receive the PTO pulse and direction signal from
the controller. Can be shared
Servo/Drive Ready INPUT No moving function blocks can be issued to an axis with multiple
before the axis has this signal ready if this signal is drives
Enabled in the motion axis configuration or axis
properties page.
The input signal that indicates the moving part is in
the commanded position. This signal has to be
Active after the moving part reaches the
commanded position for the MoveAbsolute and
In-Position signal MoveRelative function blocks.
INPUT Not Shared
(from servo/motor) For MoveAbsolute and MoveRelative function blocks,
when In_Position is enabled, the controller reports
an error (EP_MC_MECHAN_ERR) if the signal is not
active within 5 seconds when the last PTO pulse
sent out.
This signal is the zero pulse signal from the motor
Home Marker INPUT encoder. This signal can be used for fine homing Not Shared
sequence to improve the homing accuracy.

162 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

Sample Motion Wiring Configuration on 2080-LC30-xxQVB / 2080-LC50-xxQVB / 2080-LC70-xxQVB

24V 24V
Power Power
supply supply

1 2

+ + _

+DC 24 +CM0 Pin 1, 2
-DC 24 +CM1 Encoder signal cable
Pin 49 (CLK+)
O-00 Pin 12 (CLK-)

Pin25 (DIR+)

Encoder
Motor
O-03 Pin 14 (DIR-)
O-06 Pin 3 (Enable)
2080-LC30-xxQVB
2080-LC50-xxQVB

O-07 Pin 7 (RST)

Kinetix 3
-CM0 Motor power cable
-CM1

Notes:
1. Drive Enable (Pin 3) and Reset Drive (Pin 7) are operating as sourcing inputs when (Pin 1, 2) connected to – of Power Supply 2.
2. To help you configure Kinetix 3 drive parameters so that a Micro830/Micro850/Micro870 controller can communicate and control the
drive, see publication CC-QS033. The parameter Command Type must be set to “Step/Direction.Positive Logic”, and the parameter
Controller Output Type must be set to “Open Collector Input”.

Sample Motion Wiring Configuration on 2080-LC30-xxQBB / 2080-LC50-xxQBB / 2080-LC70-xxQBB

24V 24V
Power Power
supply supply

1 2

+ + _

+DC 24 +CM0 Pin 1, 2
-DC 24 +CM1 Encoder signal cable
Pin 12(CLK-)
O-00 Pin 49(CLK+)

Pin 14(DIR-)
Encoder
Motor

O-03 Pin 25(DIR+)


O-06 Pin 3(Enable)
2080-LC30-xxQBB
2080-LC50-xxQBB

O-07 Pin 7(RST)


Kinetix 3

-CM0 Motor power cable


-CM1

Notes:
1. Drive Enable (Pin 3) and Reset Drive (Pin 7) are operating as sinking inputs when (Pin 1, 2) connected to + of the Power Supply 2.
2. To help you configure Kinetix 3 drive parameters, so that a Micro830/Micro850/Micro870 controller can communicate and control the
drive, see publication CC-QS033. The parameter Command Type must be set to “Step/Direction.Positive Logic”, and the parameter
Controller Output Type must be set to “Open Collector Input”.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 163


Chapter 9 Motion Control

Motion Control Function Motion control function blocks instruct an axis to a specified position, distance, velocity, and
state. Function blocks are categorized as Administrative (Table 57) and Movement (driving
Blocks motion, Table 58).
Table 57 - Administrative Function Blocks
Function Block Name Function Block Name
MC_Power MC_ReadAxisError
MC_Reset MC_ReadParameter
MC_TouchProbe MC_ReadBoolParameter
MC_AbortTrigger MC_WriteParameter
MC_ReadStatus MC_WriteBoolParameter
MC_SetPosition

WARNING: During Run Mode Change (RMC), the MC_Power function block should
be disabled, which powers down the axis. Otherwise the axis remains powered
even if the function block is deleted.
Take note of the following:
• If a new instance of MC_Power accesses the axis, the axis enters the error
stop state.
• If MC_Power is inside a UDFB and any edit is made to the UDFB that changes
the UDFB template (for example, adding a local variable), the axis enters the
error stop state.

Table 58 - Movement Function Blocks


Correct Axis State for
Function Block Name Description issuing Function Block
This function block commands an axis to a specified Standstill, Discrete Motion,
MC_MoveAbsolute absolute position. Continuous Motion
This function block commands an axis of a specified Standstill, Discrete Motion,
MC_MoveRelative distance relative to the actual position at the time of Continuous Motion
execution.
This function block commands a never-ending axis Standstill, Discrete Motion,
MC_MoveVelocity move at a specified velocity. Continuous Motion
This function block commands the axis to perform
the “search home” sequence. The “Position” input is
used to set the absolute position when the reference
MC_Home Standstill
signal is detected, and the configured Home offset is
reached. This function block completes at “StandStill”
if the homing sequence is successful.
This function block commands an axis stop and
transfers the axis to the state “Stopping”. It closes
any ongoing function block execution. While the axis
is in state Stopping, no other function block can
perform any motion on the same axis. After the axis Standstill, Discrete Motion,
MC_Stop has reached velocity zero, the Done output is set to Continuous Motion, Homing
TRUE immediately. The axis remains in the state
“Stopping” as long as Execute is still TRUE or velocity
zero is not yet reached. Once “Done” is SET and
“Execute” is FALSE the axis goes to the state
“StandStill”.
This function block commands an axis to a controlled
motion stop. The axis is moved to the state “Discrete Standstill, Discrete Motion,
MC_Halt Motion”, until the velocity is zero. With the Done Continuous Motion
output set, the state is transferred to “StandStill”.

ATTENTION: During Run Mode Change, the Movement Function Blocks can
only be deleted when that Function Block has been done or aborted. Otherwise
unintended axis and Function Block behavior may occur.

164 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

ATTENTION: Each motion function block has a set of variable inputs and
outputs that allows you to control a specific motion instruction. See the
Connected Components Workbench Online Help for a description of these
variable inputs and outputs.

General Rules for the Motion Control Function Blocks


To work with motion control function blocks, you must be familiar with the following general
rules.
Table 59 - General Rules for the Motion Function Block
Parameter General Rules
When Execute is True: The parameters are used with the rising edge of the Execute input. To modify any parameter, it is necessary to
Input parameters change the input parameters and to trigger the motion again.
When Enable is True: The parameters are used with the rising edge of the Enable input and can be modified continuously.
If a function block is configured with parameters that result in a violation of application limits, the instance of the function block
Inputs exceeding application generates an error. The Error output is flagged On, and error information is indicated by the output ErrorID.
limits The controller, in most cases, remains in Run mode, and no motion error is reported as a major controller fault.
For MC_MoveAbsolute function block, the position input is the absolute location that is commanded to the axis. For MC_MoveRelative,
Position/Distance Input the distance input is the relative location (consider the current axis position is 0) from the current position.
Velocity can be a signed value. Users are advised to use positive velocity.
Direction input for the MC_MoveVelocity function block can be used to define the direction of the move (that is, negative velocity x
Velocity Input negative direction = positive velocity).
For MC_MoveRelative and MC_MoveAbsolute function blocks the absolute value of the velocity is used.
Velocity input does not need to be reached if Jerk input is equal to 0.
For MC_MoveAbsolute, the direction input is ignored. (This parameter is reserved for future use.)
For MC_MoveVelocity, the direction input value can be 1 (positive direction), 0 (current direction) or -1 (negative direction). For any other
Direction Input value, only the sign is considered. For example, -3 denotes negative direction, +2 denotes positive direction, and so on.
For MC_MoveVelocity, the resulting sign of the product value that is derived from velocity x direction decides the motion direction, if
the value is not 0. For example, if velocity x direction = +300, then the direction is positive.
• Deceleration or Acceleration inputs should have a positive value. If Deceleration or Acceleration is set to be a non-positive value, an
error is reported (ErrorID: MC_FB_ERR_RANGE).
• The Jerk input should have a non-negative value. If Jerk is set to be a negative value, an error is reported.
(ErrorID: MC_FB_ERR_RANGE).
Acceleration, Deceleration, and • If maximum Jerk is configured as zero in the Connected Components Workbench motion configuration, all jerk parameters for the
Jerk Inputs motion function block have to be configured as zero. Otherwise, the function block reports an error (ErrorID: MC_FB_ERR_RANGE).
• If Jerk is set as a nonzero value, an S-curve profile is generated. If Jerk is set as zero, a trapezoidal profile is generated.
• If the motion engine fails to generate the motion profile prescribed by the dynamic input parameters, the function block reports an
error (ErrorID: MC_FB_ERR_PROFILE).
See Function Block and Axis Status Error Codes on page 179 for more information about error codes.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 165


Chapter 9 Motion Control

Table 59 - General Rules for the Motion Function Block (Continued)


Parameter General Rules
With Execute: The outputs Busy, Done, Error, and CommandAborted indicate the state of the function block and are mutually exclusive
– only one of them can be true on one function block. If execute is true, one of these outputs has to be true.
The outputs Done, Busy, Error, ErrorID, and CommandAborted are reset with the falling edge of Execute. However, the falling edge of
Execute does not stop or even influence the execution of the actual function block. Even if Execute is reset before the function block
completes, the corresponding outputs are set for at least one cycle.
If an instance of a function block receives a new Execute command before it completes (as a series of commands on the same
instance), the new Execute command is ignored, and the previously issued instruction continues with execution.

Output Exclusivity

With Enable: The outputs Valid and Error indicate whether a read function block executes successfully. They are mutually exclusive:
only one of them can be true on one function block for MC_ReadBool, MC_ReadParameter, MC_ReadStatus.
The Valid, Enabled, Busy, Error, and ErrorID outputs are reset with the falling edge of Enable as soon as possible.

Output Exclusivity

When used in a Function Block Diagram, you can connect the axis output parameter to the Axis input parameter of another motion
function block for convenience (for example, MC_POWER to MC_HOME).
Axis Output When used in a Ladder Diagram, you cannot assign a variable to the Axis output parameter of another motion function block because it
is read-only.

166 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

Table 59 - General Rules for the Motion Function Block (Continued)


Parameter General Rules
The output Done is set when the commanded action has completed successfully.
With multiple function blocks working on the same axis in a sequence, the following rule applies:
When one movement on an axis is aborted with another movement on the same axis without having reached the final goal, output Done
is not set on the first function block.

Behavior of Done Output

Every function block has a Busy output, which indicates that the function block is not yet finished (for function blocks with an Execute
input), and new output values are pending (for function blocks with Enable input).
Busy is set at the rising edge of Execute and reset when one of the outputs Done, Aborted, or Error is set, or it is set at the rising edge
of Enable and reset when one of the outputs Valid or Error is set.
It is recommended that the function block continue executing in the program scan for as long as Busy is true, because the outputs are
only updated when the instruction is executing. For example, in the ladder diagram, if the rung becomes false before the instruction
finishes executing, the Busy output stays true forever even though the function block has finished executing.

Behavior of Busy Output

Output Active In current implementation, buffered moves are not supported. Consequently, Busy and Active outputs have the same behavior.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 167


Chapter 9 Motion Control

Table 59 - General Rules for the Motion Function Block (Continued)


Parameter General Rules
CommandAborted is set when another motion command aborts the current commanded motion.
When CommandAborted occurs, other output signals such as InVelocity are reset.

Behavior of CommandAborted
Output

The Enable input for read function blocks is level-sensitive. On every program scan with the Enable input as true, the function block
performs a read and update its outputs. The Valid output parameter shows that a valid set of outputs is available.
The Valid output is true as long as valid output values are available and the Enable input is true. The relevant output values are
Enable and Valid Status refreshed as long as the input Enable is true.
If there is a function block error, and the relevant output values are not valid, then the valid output is set to false. When the error
condition no longer exists, the values are updated and the Valid output is set again.
Relative move does not require the axis to be homed. It simply refers to a move in a specified direction and distance.
Relative Move versus Absolute Absolute move requires that the axis be homed. It is a move to a known position within the coordinate system, regardless of distance
Move and direction. Position can be negative or positive value.
Buffered Mode For all motion control function blocks, BufferMode input parameter is ignored. Only aborted moves are supported for this release.
All blocks have two outputs, which deal with errors that can occur during execution. These outputs are defined as follows:
• Error – The rising edge of “Error” informs that an error occurred during the execution of the function block, where the function block
cannot successfully complete.
• ErrorID – Error number.
Error Handling • Types of errors:
– Function block logic (such as parameters out of range, state machine violation attempted)
– Hard limits or soft limits reached
– Drive failure (Drive Ready is false)
For more information about function block error, see Motion Function Block and Axis Status ErrorID on page 180.

168 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

Simultaneous Execution of Two Movement Function Blocks (Busy Output = True)

The general rule is that when a movement function block is busy, then a function block with
the same instance (for example, MC_MoveRelative2) cannot be executed again until the
function block status is not busy.
MC_MoveRelative and MC_MoveAbsolute are busy until the final position is
reached. MC_MoveVelocity, MC_Halt, and MC_Stop are busy until the final velocity is
reached.

Velocity

Time

Execute1

Busy1

When a movement function block is busy, a function block with another instance (for
example, MC_MoveRelative1 and MC_MoveAbsolute1 on the same axis) can abort the currently
executing function block. This is mostly useful for on-the-fly adjustments to position, velocity,
or to halt after a specific distance.

Example: Move to Position Ignored Due to Busy


For simple moves, the movement
Simple move position using one instance function block finishes. A busy output
of MC_MoveRelative, MC_MoveAbsolute indicates that the function block is
Velocity

This command is ignored


executing and must be allowed to
finish before Execute input is toggled
again.

If Execute is toggled again before


Busy is false, the new command is
ignored. No error is generated.
Time

Execute1

Busy1

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 169


Chapter 9 Motion Control

Example: Successful Aborted Move


Aborted move is possible if using two
instances of MC_MoveRelative,
MC_MoveAbsolute. The second

Velocity
instance can immediately abort the
first instance (and vice versa) for
applications where on-the-fly
corrections are needed.

Time

Execute1

Busy1

CommandAborted1

Execute2

Busy2

Example: Changing Velocity With No Abort

When changing velocity, generally, an aborted move is not necessary since the function block
is only Busy during acceleration (or deceleration). Only one instance of the function block is
required.
To bring the axis to a standstill, use MC_Halt.
Velocity

Time

Execute1

Busy

Halt Execute

Busy

170 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

It is possible for the movement function blocks and MC_Halt to abort another motion function
block during acceleration/deceleration. This is not recommended as the resulting motion
profile may not be consistent.

ATTENTION: If MC_Halt aborts another motion function block during


acceleration and the MC_Halt Jerk input parameter is less than the Jerk of the
currently executing function block, the Jerk of the currently executing
function block is used to prevent an excessively long deceleration.

Example: Aborted Movement Function Block During Acceleration/Deceleration

Velocity

Time

Execute1

Busy

CommandAborted1

Halt Execute

Busy

IMPORTANT If MC_Halt aborts another movement function block during acceleration


and the MC_Halt Jerk input parameter is less than the Jerk of the
currently executing FB, the Jerk of the currently executing function
block is used to prevent excessively long deceleration.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 171


Chapter 9 Motion Control

Example: Error Stop using MC_Stop cannot be Aborted

Velocity
This command is ignored

Time

MC_Stop
Execute

Busy

Motion function block Execute

MC_Halt and MC_Stop are both used to bring an axis to a StandStill but MC_Stop is used when
an abnormal situation occurs.

MC_Stop can abort other motion function blocks but can never be aborted itself.

MC_Stop goes to the Stopping state and normal operation cannot resume.

Motion Axis and Parameters The following state diagram illustrates the behavior of the axis at a high level when multiple
motion control function blocks are activated. The basic rule is that motion commands are
always taken sequentially, even if the controller can perform real parallel processing. These
commands act on the axis’ state diagram.

The axis is always in one of the defined states, see Figure 47 on page 173. Any motion
command is a transition that changes the state of the axis and, as a consequence, modifies
the way that the current motion is computed.

172 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

Figure 47 - Motion Axis State Diagram


MC_MoveAbsolute
MC_MoveRelative MC_MoveVelocity
MC_MoveAbsolute; MC_MoveRelative; MC_Halt
MC_Halt

Discrete MC_MoveVelocity Continuous


Motion Motion
MC_Stop
MC_Stop

Error
Error Stopping
Note 6 Error
Done
Note 1
MC_MoveAbsolute MC_Stop
MC_MoveRelative
MC_MoveVelocity
ErrorStop
MC_Stop
Note 4 Note 2

Error Error
MC_Reset MC_Reset and
MC_Power.Status=FALSE

Done
Homing StandStill Note 3
Disabled Note 5
MC_Home
NOTES:
1. In the ErrorStop and Stopping states, all function blocks (except MC_Reset), can be called although they are not executed.
MC_Reset generates a transition to the StandStill state. If an error occurs while the state machine is in the Stopping state, a transition to the ErrorStop
state is generated.
Axis position still updates even if the Axis state is ErrorStop. Also, the MC_TouchProbe function block is still active if it was executed before the ErrorStop
state.
2. Power.Enable = TRUE and there is an error in the Axis.
3. Power.Enable = TRUE and there is no error in the Axis.
4. MC_Stop.Done AND NOT MC_Stop.Execute.
5. When MC_Power is called with Enable = False, the axis goes to the Disabled state for every state including ErrorStop.
6. If an error occurs while the state machine is in the Stopping state, a transition to the ErrorStop state is generated.

Axis States
The axis state can be determined from one of the following predefined states. Axis state can
be monitored through the Axis Monitor feature of the Connected Components Workbench
software when in debug mode.
Motion States
State Value State Name
0x00 Disabled
0x01 Standstill
0x02 Discrete Motion
0x03 Continuous Motion
0x04 Homing
0x06 Stopping
0x07 Stop Error

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 173


Chapter 9 Motion Control

Axis State Update

On motion execution, although the Motion Engine controls the motion profile as a background
task, which is independent from the POU scan, the axis state update is still dependent on when
the relevant motion function block is called by the POU scan.

For example, on a moving axis on a Ladder POU (state of a rung=true), an MC_MoveRelative


function block in the rung is scanned and the axis starts to move. Before MC_MoveRelative
completes, the state of the rung becomes False, and MC_MoveRelative is no longer scanned. In
this case, the state of this axis cannot switch from Discrete Motion to StandStill, even after the
axis fully stops, and the velocity comes to 0.

Limits
The Limits parameter sets a boundary point for the axis, and works with the Stop parameter to
define a boundary condition for the axis on the type of stop to apply when certain configured
limits are reached.

There are three types of motion position limits.


• Hard Limits
• Soft Limits
• PTO Pulse Limits
See Motion Axis Configuration in Connected Components Workbench on page 182
for information on how to configure limits and stop profiles and the acceptable
value range for each.
If any one of these limits is reached on a moving axis (except on homing), an over travel limit
error will be reported and the axis will be stopped based on configured behavior.

174 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

Figure 48 - Sample Limits configuration in Connected Components Workbench

Hard Limits

Hard limits refer to the input signals received from physical hardware devices such as limit
switches and proximity sensors. These input signals detect the presence of the load at the
maximum upper and minimum lower extents of allowable motion of the load or movable
structure that carries the load, such as a load tray on a transfer shuttle.
Hardware limits are mapped to discrete inputs that are associated with data tags/variables.

When a hard limit switch is enabled, the axis comes to a stop when the limit switch is detected
during motion. If a hard stop on hard limit switch is configured as ON and the limit is detected,
motion is stopped immediately (that is, the hardware immediately stops the PTO pulse).
Alternatively, if a hard stop on hard limit switch is configured as OFF, motion is stopped using
the Emergency Stop parameters.

When any hard limit switch is enabled, the input variable connecting to this physical input can
still be used in User Application.

When a hard limit switch is enabled, it is used automatically for the MC_Home function block, if
the switch is in the Homing direction that is configured in the Connected Components
Workbench software (Mode: MC_HOME_ABS_SWITCH or MC_HOME_REF_WITH_ABS). See Homing
Function Block on page 191.

Soft Limits

Soft limits refer to data values that the motion controller manages. Unlike hardware limits that
detect the presence of the physical load at specific points in the allowable motion of the load,
soft limits are based on the stepper commands and the motor and load parameters.

Soft limits are displayed in user-defined units. You can enable individual soft limits. For non-
enabled soft limits (whether upper or lower), an infinite value is assumed.

Soft Limits are activated only when the corresponding axis is homed. You can enable or
disable soft limits, and configure an upper and lower limit setting through the Connected
Components Workbench software.
Table 60 - Soft Limits Checking on the Function Blocks
Function Block Limits Checking
MC_MoveAbsolute
The target position is checked against the soft limits before motion starts.
MC_MoveRelative
MC_MoveVelocity The soft limits are checked dynamically during motion.

When a soft limit is enabled, the axis comes to a stop when the limit is detected during motion.
The motion is stopped using emergency stop parameters.

If both hard and soft limits are configured as enabled, for two limits in the same direction
(upper or lower), the limits should be configured such that the soft limit is triggered before the
hard limit.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 175


Chapter 9 Motion Control

PTO Pulse Limits

You cannot configure this limit parameter because it is the physical limitation of the
embedded PTO. The limits are set at 0x7FFF0000 and -0x7FFF0000 pulses, for upper and lower
limits, respectively.

The controller checks the PTO pulse limits unconditionally — that is, the checking is always ON.

On a non-continuous motion, to prevent a moving axis going to ErrorStop status with Motion
PTO Pulse limits detected, you must prevent the current position value from going beyond the
PTO Pulse limit.

On a continuous motion (driven by the MC_MoveVelocity function block), when the current
position value goes beyond the PTO pulse limit, the PTO pulse current position automatically
rolls over to 0 (or the opposite soft limit, if it is activated), and the continuous motion
continues.

For a continuous motion, if the axis is homed, and the soft limit in the motion direction is
enabled, the soft limit is detected before the PTO pulse limit being detected.

Motion Stop
There are three types of stops that can be configured for an axis.

Immediate Hardware Stop

The hardware controls this type of Immediate Stop. If a Hard Stop on a Hard Limit switch is
enabled, and the Hard Limit has been reached, the controller cuts off the PTO pulse for the axis
immediately. The stop response has no delay (less than 1 µs).

Immediate Soft Stop

The maximum possible response delay for this type of stop could be as much as the Motion
Engine Execution time interval. This type of stop is applicable in the following scenarios:
• During motion, when axis PTO Pulse Limit is reached;
• One Hard Limit is enabled for an axis, but a hard stop on hard limit switch is configured
as Off. If the Emergency Stop is configured as Immediate Software Stop, during motion,
when the Hard Limit switch is detected;
• One Soft Limit is enabled for an axis and the axis has been homed. If the emergency
stop is configured as Immediate Soft Stop, during motion, when the Soft Limit reach is
detected;
• The Emergency Stop is configured as Immediate Soft Stop. During motion, the MC_Stop
function block is issued with Deceleration parameter equal to 0.

176 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

Decelerating Soft Stop

Decelerating soft stop could be delayed as much as the Motion Engine Execution Time interval.
This type of stop applies in the following scenarios:
• One Hard Limit is enabled for an axis, but the Hard Stop on Hard Limit switch is
configured as Off. If the emergency stop is configured as decelerating stop, during
motion, when the Hard Limit switch is detected;
• One Soft Limit is enabled for an axis and the axis has been homed. If the emergency
stop is configured as decelerating stop, during motion, when the soft limit reach is
detected by firmware;
• The Emergency Stop is configured as Decelerating Stop. During motion, the MC_Stop
function block is issued with the deceleration parameter set to 0.
• During motion, the MC_Stop function block is issued with the deceleration parameter
not set to 0.

Motion Direction
For distance (position) motion, with the target position defined (absolute or relative), the
direction input is ignored.

For velocity motion, the direction input value can be positive (1), current (0) or negative (-1). For
any other value, only the sign (whether positive or negative) is considered and defines whether
the direction is positive or negative. This means that if the product of velocity and direction is
-3, then the direction type is negative.
Table 61 - MC_MoveVelocity Supported Direction Types
Direction Type Value Used(1) Direction Description

Positive direction 1 Specific for motion/rotation direction.


Also called clockwise direction for rotation motion.
Current direction instructs the axis to continue its motion with new
input parameters, without direction change.
Current direction 0 The direction type is valid only when the axis is moving and the
MC_MoveVelocity is called.
Specific for motion/rotation direction.
Negative direction -1 Also referred to as counter-clockwise direction for rotation motion.
(1) Data type: short integer.

Axis Elements and Data Types

Axis_Ref Data Type

Axis_Ref is a data structure that contains information on a motion axis. It is used as an input
and output variable in all motion function blocks. One axis_ref instance is created
automatically in the Connected Components Workbench software when you add one motion
axis to the configuration.
You can monitor this variable in controller debug mode through the software when the motion
engine is active, or as part of your application logic. It can also be monitored remotely through
various communication channels.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 177


Chapter 9 Motion Control

Table 62 - Data Elements for Axis_Ref


Element Name Data Type Description
The logic axis ID automatically assigned by the Connected Components
Axis_ID UINT8 Workbench software. You cannot edit or view this parameter.
ErrorFlag UINT8 Indicates whether an error is present in the axis.
Indicates whether the homing operation is successfully executed for the axis
or not.
AxisHomed UINT8 When you try to redo homing for an axis with AxisHomed already set (homing
is performed successfully), and the result is not successful, the AxisHomed
status is cleared.
Indicates whether the axis is in constant velocity movement or not.
ConsVelFlag UINT8 Stationary axis is not considered to be in constant velocity.
AccFlag UINT8 Indicates whether the axis is in an accelerating movement or not.
DecFlag UINT8 Indicates whether the axis is in a decelerating movement or not.
Indicates the current state of the axis. For more information, see Axis States
AxisState UINT8 on page 173.
Indicates the cause for axis error when error is indicated by ErrorFlag. This
ErrorID UINT16 error usually results from motion function block execution failure.
See Motion Function Block and Axis Status ErrorID on page 180.
ExtraData UINT16 Reserved.
Indicates the final target position of the axis for the MoveAbsolute and
REAL MoveRelative function blocks.
TargetPos For the MoveVelocity, Stop, and Halt function blocks, TargetPos is 0 except
(float)(1) when the TargetPos set by the previous position function blocks is not
cleared.
REAL On a moving axis, this is the current position the controller commands the
CommandPos
(float)(1) axis to go to.
The maximum target velocity that is issued to the axis by a move function
block. The value of TargetVel is the same as the velocity setting in the current
REAL function block, or smaller, depending on other parameters in the same
TargetVel
(float)(1) function block. This element is a signed value indicating direction
information.
See PTO Pulse Accuracy on page 190 for more information.
REAL During motion, this element refers to the velocity the controller commands
CommandVel the axis to use. This element is a signed value indicating direction
(float)(1) information.
(1) See Real Data Resolution on page 188 for more information on REAL data conversion and rounding.

IMPORTANT • Once an axis is flagged with error, and the ErrorID is not zero, you must
reset the axis (with MC_Reset) before issuing any other movement
function block.
• The update for axis status is performed at the end of one program scan
cycle, and the update is aligned with the update of Motion Axis status.

Axis Error Scenarios


In most cases, when a movement function block instruction issued to an axis results in a
function block error, the axis is also flagged as being in the Error state. The corresponding
ErrorID element is set on the axis_ref data for the axis. However, there are exception scenarios
where an axis error is not flagged. The exception can be, but not limited to, the following
scenarios:
• A movement function block instructs an axis, but the axis is in a state where the
function block could not be executed properly. For example, the axis has no power, or is
in the homing sequence, or in the Error Stop state.
• A movement function block instructs an axis, but another movement function block still
controls the axis. The axis cannot allow the new function block to control the motion
without going to a full stop. For example, the new function block commands the axis to
change motion direction.

178 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

• When one movement function block tries to control an axis, but another movement
function block still controls the axis, and the controller cannot achieve the newly
defined motion profile. For example, your application issues an S-curve
MC_MoveAbsolute function block to an axis with too short a distance that is given when
the axis is moving.
• When one movement function block is issued to an axis, and the axis is in the Stopping
or Error Stopping sequence.

For the above exceptions, it is still possible for your application to issue a successful
movement function block to the axis after the axis state changes.

MC_Engine_Diag Data Type


The MC_Engine_Diag data type contains diagnostic information on the embedded motion
engine. It can be monitored in debug mode through the Connected Components Workbench
software when the motion engine is active, or through the user application as part of user
logic. It can also be monitored remotely through various communication channels.
One MC_Engine_Diag instance is created automatically in the Connected Components
Workbench software when you add the first motion axis in the motion configuration. All user-
configured motion axes share this instance.
Table 63 - Data Elements for MC_Engine_Diag
Element Name Data Type
MCEngState UINT16
CurrScantime(1) UINT16
MaxScantime(1) UINT16
(1) UINT16
CurrEngineInterval
(1) UINT16
MaxEngineInterval
ExtraData UINT16
(1) The time unit for this element is microsecond. This diagnostic information can be used to optimize motion configuration and
user application logic adjustment.

Table 64 - MCEngstate States


State Name State Description
MC engine exists (at least one axis defined), but the engine is idle as there is
MCEng_Idle 0x01 no axis is moving. The Engine diagnostic data is not being updated.
MCEng_Running 0x02 MC engine exists (at least one axis defined) and the engine is running. The
diagnostic data is being updated.
MCEng_Faulted 0x03 MC engine exists, but the engine is faulted.

Function Block and Axis All motion control function blocks share the ErrorID definition.
Status Error Codes Axis error and function block error share the ErrorID, but error descriptions are different, as
described in Table 65 on page 180.
Error code 128 is warning information to indicate that the motion profile has been
changed and velocity has been adjusted to a lower value but the function block
can execute successfully.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 179


Chapter 9 Motion Control

Table 65 - Motion Function Block and Axis Status ErrorID


ErrorID ErrorID MACRO Error Description for Function Block Error Description for Axis Status(1)
00 MC_FB_ERR_NO Function block execution is successful. The axis is in operational state.
The function block cannot execute because the axis is not in The axis is not operational due to an incorrect axis state
01 MC_FB_ERR_WRONG_STATE detected during a function block execution. Reset the state of
the correct state. Check the axis state. the axis using the MC_Reset function block.
The function block cannot execute because there are invalid The axis is not operational due to invalid axis dynamic
axis dynamic parameters (velocity, acceleration, deceleration, parameters (velocity, acceleration, deceleration, or jerk) set in
a function block.
02 MC_FB_ERR_RANGE or jerk) set in the function block.
Correct the setting for the dynamic parameters in the function Reset the state of the axis using the MC_Reset function block.
Correct the setting for the dynamic parameters in the function
block against the Axis Dynamics configuration page. block against the Axis Dynamics configuration page.
The function block cannot execute because there are invalid The axis is not operational due to invalid parameters other
than velocity, acceleration, deceleration, or jerk, set in a
parameters other than velocity, acceleration, deceleration, or function block.
03 MC_FB_ERR_PARAM jerk, set in the function block.
Correct the setting for the parameters (for example, mode or Reset the state of the axis using the MC_Reset function block.
Correct the setting for the parameters (for example, mode or
position) for the function block. position) for the function block.
The function block cannot execute because the axis does not Motion internal Fault, ErrorID = 0x04.
04 MC_FB_ERR_AXISNUM exist, the axis configuration data is corrupted, or the axis is Call Tech support.
not correctly configured.
The function block cannot execute because the axis is faulty The axis is not operational due to drive or mechanical issues.
due to drive or mechanical issues. Check the connection between the drive and the controller
05 MC_FB_ERR_MECHAN Check the connection between the drive and the controller (Drive Ready and In-Position signals), and verify that the drive
(Drive Ready and In-Position signals), and verify that the drive is operating normally.
is operating normally. Reset the state of the axis using the MC_Reset function block.
The function block cannot execute because the axis is not The axis is not powered on.
06 MC_FB_ERR_NOPOWER powered on. Power on the axis using the MC_Power function block.
Power on the axis using the MC_Power function block. Reset the state of the axis using the MC_Reset function block.
The function block cannot execute because the resource that
is required by the function block is controlled by some other
function block or not available.
Verify that the resource that is required by the function block The axis is not operational due to the resource that is required
is available for use. by a function block is under the control of other function
Some examples: block, or not available.
07 MC_FB_ERR_RESOURCE Verify that the resource that is required by the function block
• MC_power function block attempts to control the same axis.
is available for use.
• MC_Stop function block is executed against the same axis Reset the state of the axis using the MC_Reset function block.
simultaneously.
• Two or more MC_TouchProbe function blocks are executed
against the same axis simultaneously.
The axis is not operational due to the motion profile that is
The function block cannot execute because the motion profile defined in a function block cannot be achieved.
08 MC_FB_ERR_PROFILE that is defined in the function block cannot be achieved. Reset the state of the axis using the MC_Reset function block.
Correct the profile in the function block. Correct the profile in the function block.
The function block cannot execute because the motion profile The axis is not operational. The motion profile that is
that is requested in the function block cannot be achieved due requested in the function block cannot be achieved because
to current axis velocity. of current axis velocity.
Some examples: Some examples:
• The function block requests the axis to reverse the direction
• The function block requests the axis to reverse the direction
09 MC_FB_ERR_VELOCITY while the axis is moving.
while the axis is moving.
• The required motion profile cannot be achieved due to
• The required motion profile cannot be achieved due to current velocity too low or too high.
current velocity too low or too high. Reset the state of the axis using the MC_Reset function block.
Check the motion profile setting in the function block, and Correct the motion profile in the function block, or re-execute
correct the profile, or re-execute the function block when the the function block when the axis velocity is compatible with
axis velocity is compatible with the requested motion profile. the requested motion profile.
This function block cannot execute as it ends up moving The axis is not operational due to soft limit error detected, or
beyond the soft limit, or the function block is aborted as the due to expected soft limit error in a function block.
10 MC_FB_ERR_SOFT_LIMIT soft limit has been reached. Reset the state of the axis using the MC_Reset function block.
Check the velocity or target position settings in the function Check the velocity or target position settings for the function
block, or adjust the soft limit setting. block, or adjust the Soft Limit setting.
This function block is aborted as the Hard Limit switch active
state has been detected during axis movement, or aborted as The axis is not operational due to hard limit error detected.
11 MC_FB_ERR_HARD_LIMIT the Hard Limit switch active state has been detected before Reset the state of the axis using the MC_Reset function block,
axis movement starts. and then move the axis away from the hard limit switch in the
Move the axis away from the hard limit switch in the opposite opposite direction.
direction.

180 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

Table 65 - Motion Function Block and Axis Status ErrorID (Continued)


ErrorID ErrorID MACRO Error Description for Function Block Error Description for Axis Status(1)
This function block cannot execute as it ends up moving The axis is not operational due to PTO Accumulator logic limit
beyond the PTO Accumulator logic limit, or the function block error detected, or due to expected PTO accumulator logic limit
is aborted as the PTO Accumulator logic limit has been error in a function block.
12 MC_FB_ERR_LOG_LIMIT reached. Reset the state of the axis using the MC_Reset function block.
Check the velocity or target position settings for the function Check the velocity or target position settings for the function
block. Or, use the MC_SetPosition function block to adjust the block. Or, use the MC_SetPosition function block to adjust the
axis coordinate system. axis coordinate system.
The axis is not operational due to a motion engine execution
A motion engine execution error is detected during the error.
execution of this function block. Cycle power to the entire motion setup, including controller,
Cycle power to the entire motion setup, including controller, drives and actuators, and then download the User Application
13 MC_FB_ERR_ENGINE drives and actuators, and then download the User Application again.
again. If the fault is persistent, contact your local Rockwell
If the fault is persistent, call Tech support. Automation technical support representative. For contact
information, see rok.auto/support.
The Function Block cannot execute because the axis must be
homed first. The axis is not operational because the axis is not homed.
16 MC_FB_ERR_NOT_HOMED Execute homing against the axis using the MC_Home Function Reset the state of the axis using the MC_Reset Function Block.
Block.
Warning: The requested motion parameter for the axis has Motion internal Fault, ErrorID = 0x80.
128 MC_FB_PARAM_MODIFIED been adjusted. Contact your local Rockwell Automation technical support
The function block executes successfully. representative. For contact information, see rok.auto/support.
(1) You can view axis status through the Axis Monitor feature of the Connected Components Workbench software.

When a motion control function block ends with an error, and the axis is in ErrorStop state, in
most cases, the MC_Reset function block (or MC_Power Off/On and MC_Reset) can be used to
recover the axis. With this, the axis can get back to normal motion operation without stopping
the controller operation.

Major Fault Handling In case the controller encounters issues where recovery is not possible through the Stop,
Reset, or Power function blocks, controller operation is stopped and a major fault is reported.

Table 66 defines the motion-related major fault codes for Micro830, Micro850, and Micro870
controllers.
Table 66 - Major Fault Error Codes and Description
Major Fault Fault ID MACRO Major Fault Description
Value
There is general configuration error, which is detected in the
motion configuration that is downloaded from Connected
Components Workbench software, such as Num of Axis, or the
0xF100 EP_MC_CONFIG_GEN_ERR Motion execution interval being configured out of range.
When this major fault is reported, there could be no axis in the
ErrorStop state.
Motion configuration has mismatch issues with the motion
resource that is downloaded to the controller. There are some
0xF110 EP_MC_RESOURCE_MISSING motion resources missing.
When this major fault is reported, there could be no axis in the
ErrorStop state.
This catalog cannot support the motion configuration for the
axis, or the configuration has some resource conflict with some
other motion axis, which has been configured earlier. The
0xF12x EP_MC_CONFIG_AXS_ERR possible reason could be maximum velocity, max acceleration is
configured out of supported range.
x = The logic Axis ID (0…3)
There is a motion engine logic error (firmware logic issue or
memory crash) for one axis that is detected during motion
engine cyclic operation. One possible reason can be motion
0xF15x EP_MC_ENGINE_ERR engine data/memory crash.
(This is a motion engine operation error, and should not happen
in normal condition.)
x = The logic Axis ID (0…3)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 181


Chapter 9 Motion Control

Motion Axis Configuration in A maximum of three motion axes can be configured through the Connected Components
Workbench software. To add, configure, update, delete, and monitor an axis in the Connected
Connected Components Components Workbench software, see the sections that follow.
Workbench
Configuration changes must be compiled and downloaded to the controller to take
effect.
Values for the different motion axis parameters are validated based on a set of
relationships and pre-determined absolute range. See Motion Axis Parameter
Validation on page 191 for a description of the relationships between parameters.

Add New Axis

IMPORTANT Motion Engine Execution Time

When an axis is added to the configuration, the Motion Engine Execution


Time can be configured from 1…10 ms (default: 1 ms). This global
parameter applies to all motion axis configurations.
1. On the Device Configuration tree, right-click <New Axis> and select Add.

2. Provide an axis name. Select Enter.


• Name must begin with a letter or underscore character, followed by a letter
or single underscore characters.
• You can also press the F2 key to edit the axis name.
3. Expand the newly created Axis to see the configuration categories.

To help you edit these motion properties, see Edit Axis Configuration on
page 182. You can also learn more about axis configuration parameters.

Edit Axis Configuration


Select each axis configuration category to view and edit the propertie:
• General
• Motor and Load
• Limits
• Dynamics
• Homing

182 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

General

Edit General parameters. See Table 67 on page 183 for a description of the general
configuration parameters for a motion axis.

IMPORTANT To edit these general parameters, see Input and Output Signals on
page 161 for more information about fixed and configurable outputs.

Table 67 - General Parameters


Parameter Description and Values
Axis Name User defined. Provides a name for the motion axis.
PTO Channel Shows the list of available PTO channels.
Presents the logical variable name of the Direction Output channel based on the PTO
Pulse Output channel value that has been assigned.
Presents the logical variable name of the Direction Output channel based on the PTO
Direction Output channel value that has been assigned.
Drive Enable Output Servo On Output Enable flag. Check the option box to enable.
The list of available digital output variables that can be assigned as servo/drive
- Output output.
- Active Level Set as High (default) or Low.
In-position Input Check the option box to enable in-position input monitoring.
List of digital input variables for in-position input monitoring.
- Input Select an input.
- Active Level Set as High (default) or Low.
Servo Ready Input Enable flag.
Drive Ready Input Check the option box to enable the input.
- Input The list of digital input variables. Select an input.
- Active Level Set as High (default) or Low.
Configure whether an input for touch probe is used.
Touch Probe Input Check the option box to enable touch probe input.
- Input List of digital input variables. Select an input.
- Active Level Set the active level for touch probe input as High (default) or Low.

PTO Channel Naming

Names of embedded PTO channels have the prefix EM (embedded) and each available PTO
channel is enumerated starting from 0. For example, a controller that supports three axes
have the following PTO channels available:
• EM_0
• EM_1
• EM_2

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 183


Chapter 9 Motion Control

Motor and Load

Edit the Motor Load properties as defined in Table 68 on page 184.

IMPORTANT Certain parameters for Motor and Load are Real values. For more
information, see Real Data Resolution on page 188

Table 68 - Motor and Load Parameters


Parameter Description and Values
Defines user unit scaling that matches your mechanical system values. These units
User-defined Unit are carried forward into all command and monitor axis in user unit values
throughout programming, configuration, and monitoring functions.
Select from any of the following options:
– mm
– cm
Position – inches
– revs
– custom unit (ASCII format of up to 7 characters long)
Time Read-only. Predefined in seconds.
Motor Revolution Defines pulse per revolution and travel per revolution values.
Defines the number of pulses that are needed to obtain one revolution of the drive
motor.
Pulse per Revolution(1) Range: 0.0001…8388607
Default: 200.0
Travel per revolution defines the distance, either linear or rotational, that the load
moves per revolution of the motor.
Travel per Revolution(1) Range: 0.0001…8388607.
Default: 1.0 user unit.
Direction Defines polarity, mode, and change of delay time values.
Direction polarity determines whether the direction signal received by the
controller as a discrete input should be interpreted on the input as received by the
Polarity motion controller (that, is the non-inverted case), or whether the signal should be
inverted before interpretation by the motion control logic.
Set as Inverted or Non-inverted (default).
Set as bidirectional (default), Positive (clockwise), or Negative (counter-clockwise)
Mode direction.
Configure from 0…100 ms.
Change Delay Time Default value is 10 ms.
(1) The parameter is set as the REAL (float) value in the Connected Components Workbench software. To learn more about
conversions and rounding of REAL values, see Real Data Resolution on page 188.

A red border on an input field indicates that an invalid value has been entered.
Scroll over the field to see the tooltip message that lets you know the valid value
range for the parameter. Supply the valid value.

ATTENTION: Modifying Motor Revolution parameters may cause axis runaway.

184 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

Limits

Edit the Limits parameters based Table 69.

ATTENTION: To learn more about the different types of Limits, see Limits on
page 174.

Table 69 - Limits Parameters

Parameter(1) Value
Hard Limits Defines upper and lower hard limits for the axis.
Configure whether to perform a forced PTO hardware stop
(immediately turn off pulse output) or whether to decelerate (leave
pulse output on and use deceleration values as defined on the
When hard limit is reached, apply Emergency Stop profile).
Set as any of the following:
• Forced PTO Hardware Stop
• Emergency Stop Profile
Lower Hard Limit Click checkbox to enable a lower hard limit.
Active Level (for Lower Hard Limit) High or Low.
Upper Hard Limit Click checkbox to enable.
Active Level (for Upper Hard Limit) High or Low.
Soft Limits Defines upper and lower soft limits values.
Lower Soft Limit(2) Lower soft limit should be less than upper soft limit.
1. Select the checkbox to enable an lower/upper soft limit.
Upper Soft Limit(2) 2. Specify a value (in mm).
(1) To convert from user units to pulse:
Travel per revolution
Value in user unit = Value in pulse x Pulse per revolution
(2) The parameter is set as the REAL (float) value in the Connected Components Workbench software. To learn more about
conversions and rounding of REAL values, see Real Data Resolution on page 188.

A red border on an input field indicates that an invalid value has been entered.
Scroll over the field to see the tooltip message that lets you know the valid value
range for the parameter. Supply the valid value.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 185


Chapter 9 Motion Control

Dynamics

Select Dynamics. The <Axis Name> - Dynamics tab appears. Edit the Dynamics parameters
based on the values in Table 70 on page 186.

Table 70 - Dynamics Parameters


Parameter Values
Start/Stop Velocity(1) (2) The range is based on Motor and Load parameters (See Motor and Load
Parameters on page 184) using:
Range 1…100,000 pulse/sec
Default: 300 rpm
For example, you can configure the value from 0.005…500 mm/s for 200 pulses
Start/Stop Velocity in rpm(1) (2) per revolution and units of 1 mm per revolution.(3)
Rpm value is automatically populated when a value in user units is specified, but
you can also initially enter an rpm value.
Start/stop velocity should not be greater than maximum velocity.
The range is based on Motor and Load parameters (See Motor and Load
Parameters on page 184) using:
Max Velocity(1) (2) Range: 1…10,000,000 pulse/sec.
Default: 100,000.0 pulse/sec
The range is based on Motor and Load parameters (See Motor and Load
Parameters on page 184) using:
(1)
Max Acceleration Range: 1…10,000,000 pulse/sec2
Default: 10,000,000 pulse/sec2
The range is based on Motor and Load parameters (See Motor and Load
Parameters on page 184) using:
(1)
Max Deceleration Range: 1…100,000 pulse/sec2
Default: 10,000,000 pulse/sec2
The range is based on Motor and Load parameters (See Motor and Load
Parameters on page 184) using:
Max Jerk(1) Range: 0…10,000,000 pulse/sec3
Default: 10,000,000 pulse/sec3
Emergency Stop Profile Defines stop type, velocity, deceleration, and jerk values.
Stop Type Set as Deceleration Stop (default) or Immediate Stop.

186 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

Table 70 - Dynamics Parameters (Continued)


Parameter Values
The range is based on Motor and Load parameters (See Motor and Load
Parameters on page 184) using:
Stop Velocity(1) Range: 1…100,000 pulse/sec
Default: 300 rpm
The range is based on Motor and Load parameters (See Motor and Load
Parameters on page 184) using:
Stop Deceleration(1) Range: 1…10,000,000 pulse/sec
Default: 300.0 rpm2
The range is based on Motor and Load parameters (See Motor and Load
Parameters on page 184) using:
Stop Jerk(1) Range: 0...10,000,000 pulse/sec3
Default: 0.0 rpm3 (Disabled)
(1) The parameter is set as the REAL (float) value in the Connected Components Workbench software. To learn more about
conversions and rounding of REAL values, see Real Data Resolution on page 188.
(2) The formula for deriving rpm to user unit, and vice versa:
v (in user unit/sec) x 60 s
v (in rpm) =
travel per revolution (in user unit)
(3) To convert from parameter value from pulse to user units:
Value in user unit = Value in pulse x Travel per revolution
Pulse per revolution

A red border on an input field indicates that an invalid value has been entered.
Scroll over the field to see the tooltip message that lets you know the valid value
range for the parameter. Supply the valid value.

Homing

Set the Homing parameters based on the description in Table 71.

Table 71 - Homing Parameters


Parameter Value Range
Homing Direction Positive (clockwise) or negative (counterclockwise).
Range: 1…100,000 pulse/sec
Homing Velocity(1) Default: 5,000.0 pulse/sec (25.0 mm/sec)
NOTE: Homing Velocity should not be greater than the maximum velocity.
Range: 1…10,000,000 pulse/sec2
Homing Acceleration(1) Default: 5000.0 pulse/sec2 (25.0 mm/sec2)
NOTE: Homing Acceleration should not be greater than the maximum acceleration.
Range: 1…10,000,000 pulse/sec2
Homing Deceleration(1) Default: 5000.0 pulse/sec2 (25.0 mm/sec2)
NOTE: Homing Deceleration should not be greater than the maximum deceleration.
Range: 0…10,000,000 pulse/sec3
Homing Jerk(1) Default: 0.0 pulse/sec3 (0.0 mm/sec3)
NOTE: Homing Jerk should not be greater than the maximum jerk.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 187


Chapter 9 Motion Control

Table 71 - Homing Parameters (Continued)


Parameter Value Range
Range: 1…5,000 pulse/sec
Creep Velocity(1) Default: 1000.0 pulse/sec (5.0 mm/sec)
NOTE: Homing Creep Velocity should not be greater than the maximum velocity.
Range: -1073741824…+1073741824 pulse
Homing Offset(1) Default: 0.0 pulse (0.0 mm)
Home Switch Input Enable home switch input by selecting the checkbox.
- Input Read-only value specifying the input variable for home switch input.
- Active Level High (default) or Low.
Home Marker Input Enable the setting of a digital input variable by clicking the checkbox.
- Input Specify digital input variable for home marker input.
- Active Level Set the active level for the home switch input as High (default) or Low.
(1) The parameter is set as the REAL (float) value in the Connected Components Workbench software. To learn more about
conversions and rounding of REAL values, see Real Data Resolution on page 188.

Axis Start/Stop Velocity


Start/Stop velocity is the initial velocity when an axis starts to move, and the last velocity
before the axis stops moving. Generally, Start/Stop velocity is configured at some low value, so
that it is smaller than most velocity used in the motion function block.
• When the target velocity is smaller than the Start/Stop velocity, move the axis
immediately at the target velocity.
• When the target velocity is NOT smaller than Start/Stop velocity, move the axis
immediately at Start/Stop velocity.

Real Data Resolution


Certain data elements and axis properties use REAL data format (single-precision floating
point format). Real data has seven-digit resolution and when you enter digit values that are
longer than seven digits, the digits are converted. See the examples in Table 72.
Table 72 - REAL Data Conversion Examples
User Value Converted To
0.12345678 0.1234568
1234.1234567 1234.123
12345678 1.234568E+07 (exponential format)
0.000012345678 1.234568E-05 (exponential format)
2147418166 2.147418+E09
-0.12345678 -0.1234568

If the number of digits is greater than seven and the eighth digit is greater than or equal to 5,
then the seventh digit is rounded up.
For example:
21474185 rounded to 2.147419E+07
21474186 rounded to 2.147419E+07
If the eighth digit is less than 5, no rounding is done and the seventh digit remains the same.

For example:
21474181 rounded to 2.147418E+07

188 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

Table 73 - Examples for Motion Configuration


Converted Value in
Actual Value Connected
Parameter Entered by User Components Tooltip Error Value(1)
Workbench
8388608 Pulse per Revolution must be in the
Pulses per Revolution 8388608 (no conversion) range of 0.0001…8388607 user unit.
Upper Soft Limit must be greater than
Upper Soft Limit 10730175 1.073018E+7 Lower Soft Limit. The range is from 0
(exclusive) to 1.073217E+07 user unit.
Lower Soft Limit must be smaller than
Lower Soft Limit -10730175 -1.073018E+7 Upper Soft Limit. The range is from -
1.073217E+07...0 (exclusive) user unit.
(1) On the axis configuration page in the Connected Components Workbench software, an input field with a red border indicates
that the value that has been entered is invalid. A tooltip message should let you know the expected range of values for the
parameter. The range of values that are presented in the tooltip messages are also presented in REAL data format.

Variable Monitor Example

The Variable Monitor displays six significant digits with rounding, although the real data type
still contains seven significant digits.

In this example, you have entered the Target


Position value of 2345.678.
This value is rounded up to six digits (2345.68) in
the Variable Monitoring screen.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 189


Chapter 9 Motion Control

Axis Monitor Example

The Axis Monitor displays seven significant digits with rounding.

ATTENTION: See Motion Axis Configuration in Connected Components


Workbench on page 182 to learn more about the different axis configuration
parameters.

PTO Pulse Accuracy


Micro800 motion feature is pulse-based and the value of distance and velocity are designed in
such a way that all PTO-related values are integers at the hardware level, when converting to
PTO pulse.
For example, if you configure Motor Pulses per Revolution as 1,000 and Travel per Revolution
as 10 cm and you want to drive velocity at 4.504 cm/sec. The target velocity is 4.504 cm/sec
(that is, 450.4 pulse/sec). In this case, the actual commanded velocity is 4.5 cm/sec (that is,
450 pulse/sec), and the 0.4 pulse/sec is rounded off.

This rounding scheme also applies to other input parameters such as Position, Distance,
Acceleration, Deceleration, and Jerk. For instance, with the above motor revolution
configuration, setting Jerk as 4.504 cm/sec3 is the same as setting Jerk as 4.501 cm/sec3, as
both are rounded off to 4.5 cm/sec3. This rounding applies to both axis configuration input in
the Connected Components Workbench software and function block input.

190 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

Motion Axis Parameter Validation


Besides falling within the predetermined absolute range, motion axis parameters are validated
based on relationships with other parameters. These relationships or rules are listed as
follows. Error is flagged whenever there is violation to these relationships.
• Lower Soft Limit should be less than the Upper Soft Limit.
• Start/Stop velocity should not be greater than the maximum velocity.
• Emergency Stop velocity should not be greater than the maximum velocity.
• Homing velocity should not be greater than the maximum velocity.
• Homing acceleration should not be greater than the maximum acceleration.
• Homing deceleration should not be greater than the maximum deceleration.
• Homing jerk should not be greater than the maximum jerk.
• Homing creep velocity should not be greater than the maximum velocity.

Delete an Axis
1. On the device configuration tree, and under Motion, right-click the axis name and select
Delete.

2. A message box appears asking to confirm deletion. Select Yes.

Monitor an Axis To monitor an axis, the Connected Components Workbench software should be connected to
the controller and in DEBUG mode.
1. On the device configuration page, click Axis Monitor.
2. The Axis Monitor window appears with the following characteristics available for
viewing:
- Axis state
- Axis homed
- Movement
- Error description
- Command position in user unit
- Command velocity in user unit per second
- Target position in user unit
- Target velocity in user unit per second

Homing Function Block The homing function block MC_Home commands the axis to perform the “search home”
sequence. The Position input is used to set the absolute position when the reference signal is
detected, and the configured home offset is reached. This function block completes at
StandStill if the homing sequence is successful.

MC_Home can be aborted only by the function blocks MC_Stop or MC_Power. Any abort attempt
from other moving function blocks result in function block failure with ErrorID =
MC_FB_ERR_STATE. However, the homing operation is not interrupted, and can be executed as
usual.

If MC_Home is aborted before it completes, the previously searched home position is


considered as invalid, and the axis Homed status is cleared.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 191


Chapter 9 Motion Control

After axis power-on is done, the axis Homed status is reset to 0 (not homed). On most
scenarios, the MC_Home function block must be executed to calibrate the axis position against
the axis home that is configured after MC_Power (On) is done.
The five homing modes that Micro830, Micro850, and Micro870 controllers support are
described in Table 74.
Table 74 - Homing Modes
Homing Mode Homing Mode Name Description
Value
0x00 MC_HOME_ABS_SWITCH Homing process searches for Home Absolute switch.
0x01 MC_HOME_LIMIT_SWITCH Homing process searches for limit switch.
Homing process searches for Home Absolute switch plus using
0x02 MC_HOME_REF_WITH_ABS encoder reference pulse.
Homing process searches for limit switch plus using encoder
0x03 MC_HOME_REF_PULSE reference pulse.
Static homing process with direct forcing a home position from
user reference. The function block sets the current position that
0x04 MC_HOME_DIRECT the mechanism is in as the home position, with its position
determined by the input parameter, “Position”.

IMPORTANT If the axis is powered On with only one direction that is enabled, the
MC_Home function block (in modes 0, 1, 2, 3) generates an error and only
the MC_Home function block (mode 4) can be executed. See the
MC_Power function block for more details.

Conditions for Successful Homing


For homing operation to be successful, all configured switches (or sensors) must be properly
positioned and wired. The correct position order from the most negative position to the most
positive position—that is, from the leftmost to the rightmost in the homing setup diagrams in
this section—for the switches are:
1. Lower Limit switch
2. ABS Home switch
3. Upper Limit switch
During the MC_Home function block execution, the home position is reset, and the soft limits
mechanical position is recalculated. During the homing sequence, the motion configuration
for the soft limits is ignored.

The homing motion sequence that is discussed in this section has the following configuration
assumptions:
1. Homing direction is configured as negative direction;
2. The Lower Limit switch is configured as enabled and wired;

The different homing modes, as defined in Table 74, can have different, but still similar motion
sequence. The concept that is discussed below applies to various homing configurations.

MC_HOME_ABS_SWITCH

IMPORTANT If home switch is not configured as enabled, MC_HOME_ABS_SWITCH (0)


homing fails with MC_FB_ERR_PARAM.

MC_HOME_ABS_SWITCH (0) homing procedure performs a homing operation against the home
switch. The actual motion sequence is dependent on the home switch, limit switch
configuration, and the actual status for the switches before homing starts—that is, when the
MC_Home function block is issued.

192 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

Scenario 1: Moving part at right (positive) side of home switch before Homing starts

The homing motion sequence for this scenario is as follows:


1. Moving part moves to the left side (negative direction);
2. When the home switch is detected, the moving part decelerates to stop;
3. Moving part moves back (positive direction) in creep velocity to detect the home switch
On > Off edge;
4. Once the home switch On > Off is detected, record the position as mechanical home
position, and decelerate to stop;
5. Move to the configured home position. The mechanical home position that is recorded
during the moving back sequence, plus the home offset configured for the axis in the
Connected Components Workbench software.

Scenario 2: Moving part is in between Lower Limit and Home switch before Homing starts

The homing motion sequence for this scenario is as follows:


1. Moving part moves to its left side (negative direction);
2. When the lower limit switch is detected, the moving part decelerates to stop, or stop
immediately, according to the limit switch hard stop configuration;
3. Moving part moves back (in positive direction) in creep velocity to detect the home
switch On > Off edge;
4. Once the home switch On > Off edge is detected, record the position as the mechanical
home position, and decelerate to stop;
5. Move to the configured home position. The mechanical home position that is recorded
during the moving back sequence, plus the home offset configured for the axis in the
Connected Components Workbench software.
If the Lower Limit switch is not configured, or not wired, the homing motion fails,
and moves continuously to the left until the drive or moving part fails to move.

Scenario 3: Moving part on Lower Limit or Home switch before Homing starts

The homing motion sequence for this scenario is as follows:


1. Moving part moves to its right side (in positive direction) in creep velocity to detect the
home switch On > Off edge;
2. Once the home switch On > Off edge is detected, record the position as the mechanical
home position, and decelerate to stop;
3. Move to the configured home position. The mechanical home position that is recorded
during moving right sequence, plus the home offset configured for the axis in the
Connected Components Workbench software.

Scenario 4: Moving part at left (negative) side of Lower Limit switch before Homing starts

In this case, the homing motion fails and moves continuously to the left until the drive or
moving part fails to move. You must make sure that the moving part is at the proper location
before homing starts.

MC_HOME_LIMIT_SWITCH

IMPORTANT If the Lower Limit switch is not configured as Enabled,


MC_HOME_LIMIT_SWITCH (1) homing fails (ErrorID: MC_FB_ERR_PARAM).

For homing against the Lower Limit switch, one positive home offset can be configured; for
homing against the Upper Limit switch, one negative home offset can be configured.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 193


Chapter 9 Motion Control

MC_HOME_LIMIT_SWITCH (1) Homing procedure performs a homing operation against the Limit
switch. The actual motion sequence is dependent on the limit switch configuration and the
actual status for the switch before homing starts — that is, when the MC_Home function block
is issued.

Scenario 1: Moving part at right (positive) side of Lower Limit switch before Homing starts

The homing motion sequence for this scenario is as follows:


1. Moving part moves to its left side (in negative direction);
2. When the Lower Limit switch is detected, the moving part decelerates to stop, or stops
immediately, according to the Limit Switch Hard Stop configuration;
3. Moving part moves back (in positive direction) in creep velocity to detect the Lower
Limit switch On > Off edge;
4. Once the Lower Limit switch On > Off edge is detected, record the position as the
mechanical home position, and decelerate to stop;
5. Move to the configured home position. The mechanical home position that is recorded
during the moving back sequence, plus the home offset configured for the axis through
the Connected Components Workbench software.

Scenario 2: Moving part on Lower Limit switch before Homing starts

The homing motion sequence for this scenario is as follows:


1. Moving part moves to its right side (in positive direction) in creep velocity to detect the
Lower Limit switch On > Off edge;
2. Once the Lower Limit switch On > Off edge is detected, record the position as the
mechanical home position, and decelerate to stop;
3. Move to the configured home position. The mechanical home position that is recorded
during moving right sequence, plus the home offset configured for the axis through the
software.

Scenario 3: Moving part at left (negative) side of Lower Limit switch before Homing starts

In this case, the homing motion fails and moves continuously to the left until the drive or
moving part fails to move. You must make sure that the moving part is at the proper location
before homing starts.

MC_HOME_REF_WITH_ABS

IMPORTANT If the Home switch or Ref Pulse is not configured as Enabled,


MC_HOME_REF_WITH_ABS (2) homing fails with ErrorID:
MC_FB_ERR_PARAM.

MC_HOME_REF_WITH_ABS (2) homing procedure performs a homing operation against the


Home switch, plus fine Ref Pulse signal. The actual motion sequence is dependent on the
home switch, limit switch configuration, and the actual status for the switches before homing
starts — that is, when the MC_Home function block is issued.

Scenario 1: Moving part at right (positive) side of Home switch before Homing starts

The homing motion sequence for this scenario is as follows:


1. Moving part moves to its left side (in negative direction);
2. When the Home Abs switch is detected, the moving part decelerates to stop;
3. Moving part moves back (in positive direction) in creep velocity to detect the Home Abs
On > Off edge;

194 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

4. Once the Home Abs switch On > Off is detected, start to detect the first Ref Pulse signal
coming in;
5. Once the first Ref Pulse signal comes, record the position as mechanical home position,
and decelerate to stop;
6. Move to the configured home position. The mechanical home position that is recorded
during the moving back sequence, plus the home offset configured for the axis through
the Connected Components Workbench software.

Scenario 2: Moving part between Lower Limit and Home switch before Homing starts

The homing motion sequence for this scenario is as follows:


1. Moving part moves to its left side (in negative direction);
2. When the Lower Limit switch is detected, the moving part decelerates to stop, or stops
immediately, according to the Limit Switch Hard Stop configuration;
3. Moving part moves back (in positive direction) in creep velocity to detect the Home
switch On > Off edge;
4. Once the Home Abs switch On > Off is detected, start to detect first Ref Pulse signal;
5. Once the first Ref Pulse signal comes, record the position as mechanical home position,
and decelerate to stop.
6. Move to the configured home position. The mechanical home position that is recorded
during the moving back sequence, plus the home offset configured for the axis through
the Connected Components Workbench software.

IMPORTANT In this case, if the Lower Limit switch is not configured, or not wired,
the homing motion fails and moves continuously to the left until the
drive or moving part fails to move.

Scenario 3: Moving part on Lower Limit or Home switch before Homing starts

The homing motion sequence for this scenario is as follows:


1. Moving part moves to its right side (in positive direction) in creep velocity to detect the
Home switch On > Off edge;
2. Once the Home Abs switch On > Off is detected, start to detect the first Ref Pulse signal;
3. Once the first Ref Pulse signal comes, record the position as mechanical home position,
and decelerate to stop;
4. Move to the configured home position. The mechanical home position that is recorded
during moving right sequence, plus the home offset configured for the axis in the
Connected Components Workbench software.

Scenario 4: Moving part at left (negative) side of Lower Limit switch before Homing starts

In this case, the homing motion fails and moves continuously to the left until the drive or
moving part fails to move. You must make sure that the moving part is at the proper location
before homing starts.

MC_HOME_REF_PULSE

IMPORTANT If the Lower Limit switch or Ref Pulse is not configured as Enabled,
MC_HOME_REF_PULSE (3) homing fails (ErrorID: MC_FB_ERR_PARAM).

For homing against the Lower Limit switch, one positive home offset can be configured; for
homing against the Upper Limit switch, one negative home offset can be configured.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 195


Chapter 9 Motion Control

MC_HOME_REF_PULSE (3) homing procedure performs a homing operation against the Limit
switch, plus the fine Ref Pulse signal. The actual motion sequence is dependent on the limit
switch configuration, and the actual status for the switches before homing starts — that is,
when the MC_Home function block is issued.

Scenario 1: Moving part at right (positive) side of Lower Limit switch before Homing starts

The homing motion sequence for this scenario is as follows:


1. Moving part moves to its left side (in negative direction);
2. When the Lower Limit switch is detected, the moving part decelerates to stop, or stops
immediately, according to the Limit Switch Hard Stop configuration;
3. Moving part moves back (in positive direction) in creep velocity to detect the Lower
Limit switch On > Off edge;
4. Once the Lower Limit switch On > Off edge is detected, start to detect the first Ref Pulse
signal;
5. Once the first Ref Pulse signal comes, record the position as the mechanical home
position, and decelerate to stop;
6. Move to the configured home position. The mechanical home position that is recorded
during the moving back sequence, plus the home offset configured for the axis through
the Connected Components Workbench software.

Scenario 2: Moving part on Lower Limit switch before Homing starts

The homing motion sequence for this scenario is as follows:


1. Moving part moves to its right side (in Positive direction) in creep velocity to detect the
Lower Limit switch On > Off edge;
2. Once the Lower Limit switch On > Off edge is detected, start to detect the first Ref Pulse
signal;
3. Once the first Ref Pulse signal comes, record the position as the mechanical home
position, and decelerate to stop;
4. Move to the configured home position. The mechanical home position that is recorded
during the moving back sequence, plus the home offset configured for the axis through
the Connected Components Workbench software.

Scenario 3: Moving part at left (negative) side of Lower Limit switch before Homing starts

In this case, the homing motion fails and moves continuously to the left until the drive or
moving part fails to move. You must make sure that the moving part is at the proper location
before homing starts.

MC_HOME_DIRECT
MC_HOME_DIRECT (4) homing procedure performs a static homing by directly forcing an actual
position. No physical motion is performed in this mode. This is equivalent to a MC_SetPosition
action, except that Axis Homed status is on once MC_Home (mode = 4) is performed
successfully.

196 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

Use PTO for PWM Control The example in this section shows you how to use a PTO axis as a PWM. Create the ladder
program in Connected Components Workbench software, as shown in Figure 49, Figure 50,
and Figure 51.
Figure 49 - Example: PTO Axis as a PWM – Rung 1
1 Enable/power up the PWM axis immediately after going to RUN mode. PWM axis remains powered ON (until Program mode, and so on).

MC_Power_1
__SYSVA_FIRST_SCAN MC_Power
EN ENO

PWM0 Axis Axis

TRUE Enable Status

TRUE Enable_Positive Busy

TRUE Enable_Negative Active

Error

ErrorID

Figure 50 - Example: PTO Axis as a PWM – Rung 2


2 Continually use the MC_WriteParameter (Parameter 1005) to change the Duty Cycle from the global variable G_PWM_Duty_Cycle (example: 0.5 => 50%)

Update_PWM_Duty_Cycle Update_PWM_Duty_Cycle

MC_WriteParameter_1
MC_WriteParameter
EN ENO

PWM0 AxisIn Axis

Update_PWM_Duty_Cycle Execute Done

1005 Parameter_Number Busy

G_PWM_Duty_Cycle Value Error

0 MC_ExecutionMode ErrorID

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 197


Chapter 9 Motion Control

Figure 51 - Example: PTO Axis as a PWM – Rung 3


3 After the first scan, use the MC_MoveVelocity to set the PWM frequency (for example: 50,000 => 50 KHz) continually from the global variable G_PWM_Frequency. PWM axis
runs forever (until Program Mode, MC_Halt, and so on).

MC_MoveVelocity_1
__SYSVA_FIRST_SCAN MC_MoveVelocity
EN ENO

PWM0 AxisIn Axis

TRUE Execute InVelocity

G_PWM_Frequency Velocity Busy

50000.0 Acceleration Active

50000.0 Acceleration Direction

0.0 Deceleration CommandAborted

1 Jerk Error

0 DirectionIn ErrorID

POU PWM_Program
The POU defines four variables.

Variable MC_Power_1 Variable MC_MoveVelocity_1


(* *) (* *)
Direction: VAR Direction: VAR
Data Type: MC_Power Data Type: MC_MoveVelocity
Attribute: ReadWrite Attribute: ReadWrite
Direct variable (Channel): Direct variable (Channel):

Variable Update_PWM_Duty_Cycle Variable MC_Power_1


(* *) (* *)
Direction: Var Direction: VAR
Data type: BOOL Data Type: MC_Power
Attribute: ReadWrite Attribute: ReadWrite
Direct variable (Channel): Direct variable (Channel):

198 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 9 Motion Control

HSC Feedback Axis From Connected Components Workbench software version 8.0 onwards, support has been
added for a High-speed Counter (HSC) Feedback Axis that uses the same instructions as the
PTO Motion Axis. UDFBs are still supported. You can use either one but you cannot select both
for the same plug-in.
Figure 52 - Example of Selecting Feedback Axis or UDFB with 2080-MOT-HSC Plug-in Module

The HSC Feedback Axis provides ease-of-use as you no longer need to program the function
blocks, and it uses up less memory on the controller. The HSC Feedback Axis uses only the
administrative function blocks from the PTO Motion Axis and they share the same Axis Monitor.

IMPORTANT The counters are not reset to zero for program download. For example,
if using the feedback axis, use the MC_ResetPosition function block to
reset the position to zero.

IMPORTANT If the feedback axis is in the error state because the configured
position limits have been exceeded, using the MC_Reset function block
to reset the axis may not clear the error as there may still be pulse that
is detected from the encoder.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 199


Chapter 9 Motion Control

Notes:

200 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 10

Use the High-speed Counter and Programmable


Limit Switch

High-Speed Counter All Micro830, Micro850, and Micro870 controllers, except for 2080-LCxx-AWB, support up to six
high-speed counters (HSC). The HSC feature in the Micro800 controllers consists of two main
Overview components: the high-speed counter hardware (embedded inputs in the controller), and high-
speed counter instructions in the application program. High-speed counter instructions apply
configuration to the high-speed counter hardware and updates the accumulator.

ATTENTION: To use the Micro800 HSC feature effectively, you must have a
basic understanding of the following:
• HSC components and data elements
The first sections of the chapter provide a detailed description of these
components. Quick start instructions (see page 267) are also available to guide
you through building a sample HSC project.
• Programming and working with elements in Connected Components
Workbench software
You must have a working knowledge of programming through ladder diagram,
structured text, or function block diagram to be able to work with the HSC
function block and variables.

ATTENTION: Additional information is available on the HSC function block


and its elements in the Connected Components Workbench software
Online Help that comes with your Connected Components Workbench
software installation.

This chapter describes how to use the HSC function and also contains sections on the HSC and
HSC_ SET_STS function blocks, as follows:
• High-speed Counter (HSC) Data Structures
• High-speed Counter (HSC) Function Block
• HSC_SET_STS Function Block
• Programmable Limit Switch (PLS) Function
• HSC Interrupts

Programmable Limit Switch The Programmable Limit Switch function allows you to configure the High-Speed Counter to
operate as a PLS (Programmable Limit Switch) or rotary cam switch. For more information, see
Overview Programmable Limit Switch (PLS) Function on page 219.

What is High-Speed High-Speed Counter is used to detect narrow (fast) pulses, and its specialized instructions to
initiate other control operations based on counts reaching preset values. These control
Counter? operations include the automatic and immediate execution of the high-speed counter
interrupt routine and the immediate update of outputs based on a source and mask pattern
that you set.

The HSC functions are different than most other controller instructions. Their operation is
performed by custom circuitry that runs in parallel with the main system processor. This is
necessary because of the high-performance requirements of these functions.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 201


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

Features and Operation


The HSC is versatile; you can select or configure the master HSC for any one of 10 modes and
the sub HSC for any one of 5 modes of operation. See HSC Mode (HSCAPP.HSCMode) on
page 206 for more information.

Some of the enhanced capabilities of the High-speed Counters are:


• 100 kHz operation
• Direct control of outputs
• 32-bit signed integer data (count range of ± 2,147,483,647)
• Programmable High and Low presets, and Overflow and Underflow setpoints
• Automatic Interrupt processing that is based on accumulated count
• Change parameters on-the-fly (from the user control program)

The High-speed Counter function operates as described in the following diagram.


Figure 53 - High-speed Counter Operation
Variable

HscAppData.OFSetting Overflow +2,147,483,647 maximum

HscAppData.HPSetting High Preset

HscAppData.LPSetting Low Preset

HscAppData.UFSetting Underflow -2,147,483,648 minimum

You must set a proper value for the variables OFSetting, HPSetting, and UFSetting
before triggering Start/Run HSC. Otherwise, the controller is faulted. (Setting a
value for LPSetting is optional for certain counting modes.)
To learn more about HscAppData variable input, see HSC APP Data Structure on
page 204.
When using HSC function blocks, it is recommended that you:
• Set HSCAppData underflow setting (UFSetting) and low preset setting (LPSetting) to a
value less than 0 to avoid possible HSC malfunction when the HSC accumulator is reset
to 0.
• Set HSCAppData overflow setting (OFSetting) and high preset setting (HPSetting) to a
value greater than 0 to avoid possible HSC malfunction when the HSC accumulator is
reset to 0.

In some cases, a master counter mode can disable a sub counter. For more information, see
HSC Mode (HSCAPP.HSCMode) on page 206.

HSC0 is used in this document to define how any HSC works.

IMPORTANT The HSC function can only be used with the controller’s embedded I/O. It
cannot be used with expansion I/O modules.

202 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

HSC Inputs and All Micro830, Micro850, and Micro870 controllers, except 2080-LCxx-xxAWB, have 100 kHz high-
speed counters. Each main high-speed counter has four dedicated inputs and each sub high-
Wiring Mapping speed counter has two dedicated inputs.
Table 75 - Micro830, Micro850, and Micro870 High Speed Counters
10/16-point 24-point 48-point
Number of HSC 2 4 6
Main high-speed counters 1 (counter 0) 2 (counters 0 and 2) 3 (counters 0, 2, and 4)
Sub high-speed counters 1 (counter 1) 2 (counters 1 and 3) 3 (counters 1, 3, and 5)

High-speed Counter Inputs Used


HSC0 0, 1, 2, 3
HSC1 2, 3
HSC2 4, 5, 6, 7
HSC3 6, 7
HSC4 8, 9, 10, 11
HSC5 10, 11

HSC0's sub counter is HSC1, HSC2's sub counter is HSC3, and HSC4's sub counter is HSC5. Each
set of counters shares the input. Table 76 shows the dedicated inputs for the HSCs depending
on the mode.
Table 76 - HSC Input Wiring Mapping
Embedded Input
0 01 02 03 04 05 06 07 08 09 10 11
HSC0 A/C B/D Reset Hold
HSC1 A/C B/D
HSC2 A/C B/D Reset Hold
HSC3 A/C B/D
HSC4 A/C B/D Reset Hold
HSC5 A/C B/D

The following tables show the input wiring mapping for the different Micro830, Micro850, and
Micro870 controllers.
Table 77 - Micro830 10-point and 16-point Controller HSC Input Wiring Mapping
Mode Value in User
Input 0 (HSC0) Input 1 (HSC0)
Modes of Operation Input 2 (HSC0) Input 3 (HSC0) Program
Input 2 (HSC1) Input 3 (HSC1) (HSCAppData.HSCMode)
Counter with Internal Direction Count Up Not Used 0
(mode 1a)
Counter with Internal Direction, Count Up Not Used Reset Hold 1
External Reset and Hold (mode 1b)
Counter with External Direction Count Up/Down Direction Not Used 2
(mode 2a)
Counter with External Direction, Count Direction Reset Hold 3
Reset, and Hold (mode 2b)
Two Input Counter (mode 3a) Count Up Count Down Not Used 4
Two Input Counter with External Count Up Count Down Reset Hold 5
Reset and Hold (mode 3b)
Quadrature Counter (mode 4a) A Type input B Type input Not Used 6
Quadrature Counter with External A Type input B Type input Z Type Reset Hold 7
Reset and Hold (mode 4b)
Quadrature X4 Counter A Type input B Type input Not Used 8
(mode 5a)
Quadrature X4 Counter with A Type input B Type input Z Type Reset Hold 9
External Reset and Hold

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 203


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

Table 78 - Micro830/Micro850/Micro870 24-point Controller HSC Input Wiring Mapping


Input 0 (HSC0) Input 1 (HSC0)
Input 2 (HSC1) Input 3 (HSC1) Input 2 (HSC0) Input 3 (HSC0) Mode Value in User
Modes of Operation Input 4 (HSC2) Input 5 (HSC2) Input 6 (HSC2) Input 7 (HSC2) Program
Input 6 (HSC3) Input 7 (HSC3)
Counter with Internal Direction Count Up Not Used 0
(mode 1a)
Counter with Internal Direction, Count Up Not Used Reset Hold 1
External Reset and Hold (mode 1b)
Counter with External Direction Count Up/Down Direction Not Used 2
(mode 2a)
Counter with External Direction, Count Up/Down Direction Reset Hold 3
Reset, and Hold (mode 2b)
Two Input Counter (mode 3a) Count Up Count Down Not Used 4
Two Input Counter with External Count Up Count Down Reset Hold 5
Reset and Hold (mode 3b)
Quadrature Counter (mode 4a) A Type input B Type input Not Used 6
Quadrature Counter with External A Type input B Type input Z Type Reset Hold 7
Reset and Hold (mode 4b)
Quadrature X4 Counter A Type input B Type input Not Used 8
(mode 5a)
Quadrature X4 Counter with A Type input B Type input Z Type Reset Hold 9
External Reset and Hold

Table 79 - Micro830/Micro850 48-point Controller HSC Input Wiring Mapping


Input 0 (HSC0) Input 1 (HSC0)
Input 2 (HSC1) Input 3 (HSC1) Input 2 (HSC0) Input 3 (HSC0)
Input 4 (HSC2) Input 5 (HSC2) Mode Value in User
Modes of Operation Input 6 (HSC2) Input 7 (HSC2)
Input 6 (HSC3) Input 7 (HSC3) Program
Input 10 (HSC4) Input 11 (HSC4)
Input 8 (HSC4) Input 9 (HSC4)
Input 10 (HSC5) Input 11 (HSC5)
Counter with Internal Direction Count Up Not Used 0
(mode 1a)
Counter with Internal Direction, Count Up Not Used Reset Hold 1
External Reset and Hold (mode 1b)
Counter with External Direction Count Up/Down Direction Not Used 2
(mode 2a)
Counter with External Direction, Count Up/Down Direction Reset Hold 3
Reset, and Hold (mode 2b)
Two Input Counter (mode 3a) Count Up Count Down Not Used 4
Two Input Counter with External Count Up Count Down Reset Hold 5
Reset and Hold (mode 3b)
Quadrature Counter (mode 4a) A Type input B Type input Not Used 6
Quadrature Counter with External A Type input B Type input Z Type Reset Hold 7
Reset and Hold (mode 4b)
Quadrature X4 Counter A Type input B Type input Not Used 8
(mode 5a)
Quadrature X4 Counter with A Type input B Type input Z Type Reset Hold 9
External Reset and Hold

High-speed Counter (HSC) The following section describes HSC data structures.
Data Structures
HSC APP Data Structure
Define an HSC App Data (configuration data, data type HSCAPP) when programming an HSC.
During HSC counting, you should not change the data, except if you must reload the
configuration.

204 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

To reload HSC configuration, change the HSC APP Data, then call HSC function block with
command 0x03 (set/reload). Otherwise, the change to HSC App Data during HSC counting is
ignored.

HSC1, HSC3, and HSC5 support mode 0, 2, 4, 6, and 8 only, and HSC0, HSC2, and
HSC4 support all counting modes.

PLS Enable (HSCAPP.PLSEnable)


Description Data Format User Program Access
PLSEnable bit read/write

This bit enables and disables the HSC Programmable Limit Switch (PLS) function.

When the PLS function is enabled, the following settings are superseded by corresponding
data values from PLS data.
• HSCAPP.HpSetting
• HSCAPP.LpSetting
• HSCAPP.HPOutput
• HSCAPP.LPOutput

See Programmable Limit Switch (PLS) Function on page 219 for more information.
HSCID (HSCAPP.HSCID)
Description Data Format User Program Access
HSCID Word (UINT) read/write

Table 80 lists the definition for HSCID.


Table 80 - HSCID Definition
Bits Description
HSC Module Type:
0x00: Embedded
15…13 0x01: Expansion (not yet implemented)
0x02: Plug-in module
Module Slot ID:
0x00: Embedded
12…8 0x01…0x1F: Expansion (not yet implemented)
0x01…0x05: Plug-in module
Module internal HSC ID:
0x00-0x0F: Embedded
7…0 0x00-0x07: Expansion (not yet implemented)
0x00-0x07: Plug-in module

For Embedded HSC, the valid HSCID value is only 0…5.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 205


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

HSC Mode (HSCAPP.HSCMode)


Description Data Format User Program Access
HSC Mode word (UINT) read/write

The HSCMode variable sets the high-speed counter to one of 10 types of operation. This integer
value is configured through the programming device and is accessible in the control program.
Table 81 - HSC Operating Modes
Mode Number Type
Up Counter – The accumulator is immediately cleared (0) when it reaches the high preset. A low
0 preset cannot be defined in this mode.
Up Counter with external reset and hold – The accumulator is immediately cleared (0) when it
1 reaches the high preset. A low preset cannot be defined in this mode.
2 Counter with external direction
3 Counter with external direction, reset, and hold.
4 Two input counter (up and down)
5 Two input counter (up and down) with external reset and hold
6 Quadrature counter (phased inputs A and B)
7 Quadrature counter (phased inputs A and B) with external reset and hold
8 Quadrature X4 counter (phased inputs A and B)
9 Quadrature X4 counter (phased inputs A and B) with external reset and hold

The main high-speed counters support 10 types of operation mode and the sub high-speed
counters support 5 types (mode 0, 2, 4, 6, and 8). If the main high-speed counter is set to mode
1, 3, 5, 7, or 9, then the resub high-speed counter is disabled.

For more information on HSC Function Operating Modes and Input Assignments, see HSC
Inputs and Wiring Mapping on page 203.

HSC Mode 0 – Up Counter


Table 82 - HSC Mode 0 Examples
Input Terminals Embedded Input 0 Embedded Input 1 Embedded Input 2 Embedded Input 3
CE Bit Comments
Function Count Not Used Not Used Not Used
Example 1  on (1) HSC Accumulator + 1 count
Example 2  on (1)  off (0) off (0) Hold accumulator value

Blank cells = do not care, = rising edge,  = falling edge

Inputs 0…11 are available for use as inputs to other functions regardless of the HSC being used.

HSC Mode 1 – Up Counter with External Reset and Hold


Table 83 - HSC Mode 1 Examples
Input Terminals Embedded Input 0 Embedded Input 1 Embedded Input 2 Embedded Input 3
CE Bit Comments
Function Count Not Used Reset Hold
Example 1  on (1)  off (0) off (0) on (1) HSC Accumulator + 1 count
Example 2 on (1)  off (0) on (1) Hold accumulator value
Example3 on (1)  off (0) off (0) Hold accumulator value
Example 4 on (1)  off (0) on (1)  off (0) Hold accumulator value
Example 5  Clear accumulator (=0)

Blank cells = do not care, = rising edge,  = falling edge

Inputs 0…11 are available for use as inputs to other functions regardless of the HSC being used.

206 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

HSC Mode 2 – Counter with External Direction


Table 84 - HSC Mode 2 Examples
Input Terminals Embedded Input 0 Embedded Input 1 Embedded Input 2 Embedded Input 3
CE Bit Comments
Function Count Direction Not Used Not Used
Example 1  off (0) on (1) HSC Accumulator + 1 count
Example 2  on (1) on (1) HSC Accumulator - 1 count
Example3 off (0) Hold accumulator value

Blank cells = do not care, = rising edge,  = falling edge

Inputs 0…11 are available for use as inputs to other functions regardless of the HSC being used.

HSC Mode 3 – Counter with External Direction, Reset, and Hold


Table 85 - HSC Mode 3 Examples
Input Terminals Embedded Input 0 Embedded Input 1 Embedded Input 2 Embedded Input 3
CE Bit Comments
Function Count Direction Reset Hold
Example 1  off (0) on (1)  off (0) off (0) on (1) HSC Accumulator + 1 count
Example 2  on (1) on (1)  off (0) off (0) on (1) HSC Accumulator - 1 count
Example3 on (1)  off (0) on (1) Hold accumulator value
Example 4 on (1)  off (0) off (0) Hold accumulator value
Example 5 on (1)  off (0) on (1)  off (0) Hold accumulator value
Example 6  Clear accumulator (=0)

Blank cells = do not care, = rising edge,  = falling edge

Inputs 0…11 are available for use as inputs to other functions regardless of the HSC being used.

HSC Mode 4 – Two Input Counter (up and down)


Table 86 - HSC Mode 4 Examples
Input Terminals Embedded Input 0 Embedded Input 1 Embedded Input 2 Embedded Input 3
CE Bit Comments
Function Count Up Count Down Not Used Not Used
Example 1  on (1)  off (0) on (1) HSC Accumulator + 1 count
Example 2 on (1)  off (0)  on (1) HSC Accumulator - 1 count
Example3 off (0) Hold accumulator value

Blank cells = do not care,  = rising edge,  = falling edge

Inputs 0…11 are available for use as inputs to other functions regardless of the HSC being used.

HSC Mode 5 – Two Input Counter (up and down) with External Reset and Hold
Table 87 - HSC Mode 5 Examples
Input Terminals Embedded Input 0 Embedded Input 1 Embedded Input 2 Embedded Input 3
CE Bit Comments
Function Count Direction Reset Hold
Example 1  on (1)  off (0) on (1)  off (0) off (0) on (1) HSC Accumulator + 1 count
Example 2 on (1)  off (0)  on (1)  off (0) off (0) on (1) HSC Accumulator - 1 count
Example3 on (1)  off (0) on (1) Hold accumulator value
Example 4 on (1)  off (0) off (0) Hold accumulator value
Example 5 on (1)  off (0) on (1)  off (0) Hold accumulator value
Example 6  Clear accumulator (=0)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 207


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

Blank cells = do not care,  = rising edge,  = falling edge

Inputs 0…11 are available for use as inputs to other functions regardless of the HSC being used.

Using the Quadrature Encoder

The Quadrature Encoder is used for determining direction of rotation and position for rotating,
such as a lathe. The Bidirectional Counter counts the rotation of the Quadrature Encoder.

Figure 54 shows a quadrature encoder that is connected to inputs 0, 1, and 2. The phase angle
between A and B determines the count direction. If A leads B, the counter increments. If B
leads A, the counter decrements.

The counter can be reset using the Z input. The Z outputs from the encoders typically provide
one pulse per revolution.
Figure 54 - Quadrature Encoder Connected to Inputs
A
Input 0

B
Input 1

Z
Input 2
Reset

Forward Rotation Reverse Rotation

B
1 2 3 2 1

Count

HSC Mode 6 – Quadrature Counter – Phased Inputs A and B


Table 88 - HSC Mode 6 Examples
Input Terminals Embedded Input 0 Embedded Input 1 Embedded Input 2 Embedded Input 3
CE Bit Comments
Function Count A Count B Not Used Not Used
Example 1(1)  off (0) on (1) HSC Accumulator + 1 count

Example 2(2)  off (0) on (1) HSC Accumulator - 1 count


Example3 off (0) Hold accumulator value
Example 4 on (1) Hold accumulator value
Example 5 on (1) Hold accumulator value
Example 6 off (0) Hold accumulator value
(1) Count input A leads count input B.
(2) Count input B leads count input A.

Blank cells = do not care,  = rising edge,  = falling edge

Inputs 0…11 are available for use as inputs to other functions regardless of the HSC being used.

208 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

HSC Mode 7 – Quadrature Counter – Phased Inputs A and B with External Reset and Hold
Table 89 - HSC Mode 7 Examples
Input Terminals Embedded Input 0 Embedded Input 1 Embedded Input 2 Embedded Input 3
CE Bit Comments
Function Count A Count B Z Reset Hold
Example 1(1)  off (0) off (0) on (1) HSC Accumulator + 1 count

Example 2(2)  off (0) off (0) off (0) on (1) HSC Accumulator - 1 count
Example3  off (0) off (0) on (1) Reset accumulator to zero
Example 4 on (1) Hold accumulator value
Example 5 on (1) Hold accumulator value
Example 6 off (0) on (1) Hold accumulator value
Example 7 off (0) off (0) Hold accumulator value
(1) Count input A leads count input B.
(2) Count input B leads count input A.

Blank cells = do not care,  = rising edge,  = falling edge

Inputs 0…11 are available for use as inputs to other functions regardless of the HSC being used.

HSC Mode 8 – Quadrature X4 Counter


Table 90 - HSC Mode 8 Examples
Embedded Input 1 (HSC0) (A) Embedded Input 1 (HSC0) (B) Value of CE Bit Accumulator and Counter Action
 OFF TRUE Count Up Acc. Value
 ON TRUE Count Down Acc. Value
 OFF TRUE Count Down Acc. Value
 ON TRUE Count Up Acc. Value
OFF  TRUE Count Down Acc. Value
ON  TRUE Count Up Acc. Value
OFF  TRUE Count Up Acc. Value
ON  TRUE Count Down Acc. Value
OFF or ON OFF or ON X Hold Acc. Value
X X FALSE Hold Acc. Value

HSC Mode 9 – Quadrature X4 Counter with External Reset and Hold


Table 91 - HSC Mode 9 Examples
Embedded Input 0 Embedded Input 1 Embedded Input 2 Embedded Input 3 Value of CE Bit Accumulator and Counter Action
(HSC0) (A) (HSC0) (B) (HSC0) (Reset) (HSC0) (Hold)
 OFF X - TRUE Count Up Acc. Value
 ON X - TRUE Count Down Acc. Value
 OFF X - TRUE Count Down Acc. Value
 ON X - TRUE Count Up Acc. Value
OFF  X - TRUE Count Down Acc. Value
ON  X - TRUE Count Up Acc. Value
OFF  X - TRUE Count Up Acc. Value
ON  X - TRUE Count Down Acc. Value
OFF or ON OFF or ON OFF X X Hold Acc. Value
OFF OFF ON X X Reset Acc. to Zero
X X OFF ON X Hold Acc. Value
X X OFF X FALSE Hold Acc. Value

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 209


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

Accumulator (HSCAPP. Accumulator)


Description Data Format User Program Access
HSCAPP.Accumulator long word (32-bit INT) read/write

This parameter is the initial HSC Accumulator value that must be set when starting the HSC.
The HSC subsystem updates this parameter automatically when the HSC is in Counting mode
to reflect the actual HSC accumulator value.
High Preset (HSCAPP.HPSetting)
Description Data Format User Program Access
HSCAPP.HPSetting long word (32-bit INT) read/write

The HSCAPP.HPSetting is the upper setpoint (in counts) that defines when the HSC subsystem
generates an interrupt.

The data that is loaded into the high preset must be less than to the data resident in the
overflow (HSCAPP.OFSetting) parameter or an HSC error is generated.
Low Preset (HSCAPP.LPSetting)
Description Data Format User Program Access
HSCAPP.LPSetting long word (32-bit INT) read/write

The HSCAPP.LPSetting is the lower setpoint (in counts) that defines when the HSC subsystem
generates an interrupt.

The data that is loaded into the low preset must be:
1. Less than or equal to 0 for HSC Mode (HSCAPP.HSCMode) parameter values 0 and 1 or an
HSC error is generated.
2. Greater than or equal to the data resident in the underflow (HSCAPP.UFSetting)
parameter for all HSC Mode (HSCAPP.HSCMode) or an HSC error is generated.
If the underflow and low preset values are negative numbers, the low preset must be a number
with a smaller absolute value.
Overflow Setting (HSCAPP.OFSetting)
Description Data Format Type User Program Access
HSCAPP.OFSetting long word (32-bit INT) control read/write

The HSCAPP.OFSetting defines the upper count limit for the counter. If the counter’s
accumulated value increments past the value that is specified in this variable, an overflow
interrupt is generated. When the overflow interrupt is generated, the HSC subsystem rolls the
accumulator over to the underflow value and the counter continues counting from the
underflow value (counts are not lost in this transition). You can specify any value for the
overflow position, provided it is greater than the underflow value and falls between
-2,147,483,648 and 2,147,483,647.
Data that is loaded into the overflow variable must be greater than the data
resident in the high preset (HSCAPP.HPSetting) or an HSC error is generated.

210 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

Underflow Setting (HSCAPP.UFSetting)


Description Data Format User Program Access
HSCAPP.UFSetting long word (32-bit INT) read/write

The HSCAPP.UFSetting defines the lower count limit for the counter. If the counter’s
accumulated value decrements past the value specified in this variable, an underflow
interrupt is generated. When the underflow interrupt is generated, the HSC subsystem resets
the accumulated value to the overflow value and the counter then begins counting from the
overflow value (counts are not lost in this transition). you can specify any value for the
underflow position, provided it is less than the overflow value and falls between
-2,147,483,648 and 2,147,483,647.
Data that is loaded into the underflow variable must be less than or equal to the
data resident in the low preset (HSCAPP.LPSetting) or an HSC error is generated.

Output Mask Bits (HSCAPP.OutputMask)


Description Data Format User Program Access
HSCAPP.OutputMask word (32 bit binary) read/write

The HSCAPP.OutputMask defines which embedded outputs on the controller that the high-
speed counter can control directly. The HSC subsystem can directly (without control program
interaction) turn outputs ON or OFF based on the HSC accumulator reaching the High or Low
presets. The bit pattern that is stored in the HSCAPP.OutputMask variable defines which
outputs the HSC controls and which outputs the HSC does not control.
For example, if you want to control outputs 0, 1, 3, using HSC then you must assign,
HscAppData.OutputMask = 2#1011 (Hex) or HscAppData.OutputMask = 11 (Decimal)

The bit pattern of the HSCAPP.OutputMask variable directly corresponds to the output bits on
the controller. Bits that are set (1) are enabled and can be turned on or off by the HSC
subsystem. Bits that are clear (0) cannot be turned on or off by the HSC sub-system. The mask
bit pattern can be configured only during initial setup.

Table 92 shows an example of how HPOutput and OutputMask control embedded outputs.
Table 92 - Effect of HSC Output Mask on Embedded Outputs
Output Variable 32-Bit Signed Integer Data Word
32…20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSCAPP.HPOutput 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1
(high preset output)
HSCAPP.OutputMask 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1
(output mask)
Embedded output (10-point) 0 1
Embedded output (16-point) 0 1 0 1
Embedded output (24-point) 1 0 1 0 1
Embedded output (48-point) 0 1 0 1 0 1 0 1

The outputs that are shown in the black boxes are the outputs under the control of the HSC
subsystem. The mask defines which outputs can be controlled. The high preset output or low
preset output values (HSCAPP.HPOutput or HSCAPP.LPOutput) define if each output is either ON
(1) or OFF (0). Another way to view this is that the high or low preset output is written through
the output mask, with the output mask acting like a filter.

The bits in the gray boxes are unused. For the 10-point controller, the first 4 bits of the mask
word are used and the remaining mask bits are not functional because they do not correlate to
any physical outputs on the base unit. For the 16, 24 and 48-point controllers, the first 6, 10,
and 20 bits of the mask word are used, respectively.

The mask bit pattern can be configured only during initial setup.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 211


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

High Preset Output (HSCAPP.HPOutput)


Description Data Format User Program Access
HSCAPP.HPOutput long word (32 bit binary) read/write

The High Preset Output defines the state (1 = ON or 0 = OFF) of the outputs on the controller
when the high preset is reached. For more information on how to turn outputs on or off
directly based on the high preset being reached, see Output Mask Bits (HSCAPP.OutputMask) on
page 211.

The high output bit pattern can be configured during initial setup, or while the controller is
operating. Use the HSC function block to load the new parameters while the controller is
operating.
Low Preset Output (HSCAPP.LPOutput)
Description Data Format User Program Access
HSCAPP.LPOutput long word (32 bit binary) read/write

The Low Preset Output defines the state (1 = “on”, 0 = “off”) of the outputs on the controller
when the low preset is reached. See Output Mask Bits (HSCAPP.OutputMask) on page 211 for
more information on how to directly turn outputs on or off based on the low preset being
reached.
The low output bit pattern can be configured during initial setup, or while the controller is
operating. Use the HSC function block to load the new parameters while the controller is
operating.

HSC STS (HSC Status) Data Define an HSC STS data (HSC status information data, data type HSCSTS) when programming
an HSC.
Structure

Counting Enabled (HSCSTS.CountEnable)


Description Data Format HSC Modes(1) User Program Access
HSCSTS.CountEnable bit 0…9 read-only
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

The Counting Enabled control bit is used to indicate the status of the High-speed Counter,
whether counting is enabled (1) or disabled (0, default).

212 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

Error Detected (HSCSTS.ErrorDetected)


Description Data Format HSC Modes(1) User Program Access
HSCSTS.ErrorDetected bit 0…9 read/write
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

The Error Detected flag is a status bit that can be used in the control program to detect if an
error is present in the HSC subsystem. The most common type of error that this bit represents
is a configuration error. When this bit is set (1), you should examine the specific error code in
the parameter HSCSTS.ErrorCode. The controller maintains this bit and sets the bit when there
is an HSC error. You can clear this bit if required.
Count Up (HSCSTS.CountUpFlag)
Description Data Format HSC Modes(1) User Program Access
HSCSTS.CountUpFlag bit 0…9 read-only
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

The Count Up bit is used with all HSCs (modes 0…9). If the HSCSTS.CountEnable bit is set, the
Count Up bit is set (1). If the HSCSTS.CountEnable is cleared, the Count Up bit is cleared (0).
Count Down (HSCSTS.CountDownFlag)
Description Data Format HSC Modes(1) User Program Access
SCSTS.CountDownFlag bit 2…9 read-only
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

The Count Down bit is used with the bidirectional counters (modes 2…9). If the
HSCSTS.CountEnable bit is set, the Count Down bit is set (1). If the HSCSTS.CountEnable bit is
clear, the Count Down bit is cleared (0).
Mode Done (HSCSTS.Mode1Done)
Description Data Format HSC Modes(1) User Program Access
HSCSTS.Mode1Done bit 0 or 1 read/write
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

The Mode Done status flag is set (1) by the HSC subsystem when the HSC is configured for Mode
0 or Mode 1 behavior, and the accumulator counts up to the High Preset.
Overflow (HSCSTS.OVF)
Description Data Format HSC Modes(1) User Program Access
HSCSTS.OVF bit 0…9 read/write
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

The HSCSTS.OVF status flag is set (1) by the HSC subsystem whenever the accumulated value
(HSCSTS.Accumulator) has counted through the overflow variable (HSCAPP.OFSetting).

This bit is transitional the HSC subsystem sets this bit. It is up to the control program to use,
track if necessary, and clear (0) the overflow condition.

Overflow conditions do not generate a controller fault.


Underflow (HSCSTS.UNF)
Description Data Format HSC Modes(1) User Program Access
HSCSTS.UNF bit 0…9 read/write
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

The Underflow status flag is set (1) by the HSC subsystem whenever the accumulated value
(HSCSTS.Accumulator) has counted through the underflow variable (HSCAPP.UFSetting).

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 213


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

This bit is transitional and the HSC subsystem sets this bit. It is up to the control program to
use, track if necessary, and clear (0) the underflow condition.

Underflow conditions do not generate a controller fault.


Count Direction (HSCSTS.CountDir)
Description Data Format HSC Modes(1) User Program Access
HSCSTS.CountDir bit 0…9 read-only
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

The HSC subsystem controls the Count Direction status flag. When the HSC accumulator
counts up, the direction flag is set (1). Whenever the HSC accumulator counts down, the
direction flag is cleared (0).

If the accumulated value stops, the direction bit retains its value. The only time the direction
flag changes is when the accumulated count reverses.

The HSC subsystem updates this bit continuously whenever the controller is in a run mode.
High Preset Reached (HSCSTS.HPReached)
Description Data Format HSC Modes(1) User Program Access
HSCSTS.HPReached bit 2…9 read/write
(1) For Mode descriptions, see Count Down (HSCSTS.CountDownFlag) on page 213.

The High Preset Reached status flag is set (1) by the HSC subsystem whenever the
accumulated value (HSCSTS.Accumulator) is greater than or equal to the high preset variable
(HSCAPP.HPSetting).
The HSC subsystem updates this bit continuously whenever the controller is in an executing
mode. Writing to this element is not recommended.
Low Preset Reached (HSCSTS.LPReached)
Description Data Format HSC Modes(1) User Program Access
HSCSTS.LPReached) bit 2…9 read only
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

The Low Preset Reached status flag is set (1) by the HSC subsystem whenever the accumulated
value (HSCSTS.Accumulator is less than or equal to the low preset variable HSCAPP.LPSetting).

The HSC subsystem updates this bit continuously whenever the controller is in an executing
mode. Writing to this element is not recommended.
Overflow Interrupt (HSCSTS.OFCauseInter)
Description Data Format HSC Modes(1) User Program Access
HSCSTS.OFCauseInter bit 0…9 read/write
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

The Overflow Interrupt status bit is set (1) when the HSC accumulator counts through the
overflow value and the HSC interrupt is triggered. This bit can be used in the control program
to identify that the overflow variable caused the HSC interrupt. If the control program must
perform any specific control action based on the overflow, this bit is used as conditional logic.

This bit can be cleared (0) by the control program and is also cleared by the HSC subsystem
whenever these conditions are detected:
• Low Preset Interrupt executes
• High Preset Interrupt executes
• Underflow Interrupt executes

214 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

Underflow Interrupt (HSCSTS.UFCauseInter)


Description Data Format HSC Modes(1) User Program Access
HSCSTS.UFCauseInter bit 2…9 read/write
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

The Underflow Interrupt status bit is set (1) when the HSC accumulator counts through the
underflow value and the HSC interrupt is triggered. This bit can be used in the control program
to identify that the underflow condition caused the HSC interrupt. If the control program must
perform any specific control action based on the underflow, this bit is used as conditional
logic.

This bit can be cleared (0) by the control program and is also cleared by the HSC subsystem
whenever these conditions are detected:
• Low Preset Interrupt occurs
• High Preset Interrupt occurs
• Overflow Interrupt occurs
High Preset Interrupt (HSCSTS.HPCauseInter)
Description Data Format HSC Modes(1) User Program Access
HSCSTS.HPCauseInter bit 0…9 read/write
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

The High Preset Interrupt status bit is set (1) when the HSC accumulator reaches the high
preset value and the HSC interrupt is triggered. This bit can be used in the control program to
identify that the high preset condition caused the HSC interrupt. If the control program must
perform any specific control action based on the high preset, this bit is used as conditional
logic.

This bit can be cleared (0) by the control program and is also cleared by the HSC subsystem
whenever these conditions are detected:
• Low Preset Interrupt occurs
• Underflow Interrupt occurs
• Overflow Interrupt occurs
Low Preset Interrupt (HSCSTS.LPCauseInter)
Description Data Format HSC Modes(1) User Program Access
HSCSTS.LPCauseInter bit 2…9 read/write
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

The Low Preset Interrupt status bit is set (1) when the HSC accumulator reaches the low preset
value and the HSC interrupt has been triggered. This bit can be used in the control program to
identify that the low preset condition caused the HSC interrupt. If the control program must
perform any specific control action based on the low preset, this bit would be used as
conditional logic.

This bit can be cleared (0) by the control program and is also cleared by the HSC sub-system
whenever these conditions are detected:
• High Preset Interrupt occurs
• Underflow Interrupt occurs
• Overflow Interrupt occurs
Programmable Limit Switch Position (HSCSTS.PLSPosition)
Description Data Format HSC Modes(1) User Program Access
HSCSTS.PLSPosition Word (INT) 0…9 read-only
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 215


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

When the HSC is in Counting mode, and PLS is enabled, this parameter indicates which PLS
element is used for the current HSC configuration.
Error Code (HSCSTS.ErrorCode)
Description Data Format HSC Modes(1) User Program Access
HSCSTS.ErrorCode Word (INT) 0…9 read-only
(1) For Mode descriptions, see HSC Mode (HSCAPP.HSCMode) on page 206.

Table 93 shows the Error Codes that are detected by the HSC subsystem and are displayed in
this word.
Table 93 - HSC Error Codes
Error Code Sub-element HSC Counting Error Codes Error Description
The nonzero value for the high byte indicates that the
HSC error is due to PLS data setting. The value of high
Bit 15…8 (high byte) 0…255 byte indicates which element of PLS data triggers the
error.
0x00 No error
0x01 Invalid HSC counting mode
0x02 Invalid High preset
Bit 7…0 (low byte)
0x03 Invalid overflow
0x04 Invalid underflow
0x05 No PLS data

Writing to this element is not recommended except for clearing existing errors and to capture
new HSC errors.
Accumulator (HSCSTS.Accumulator)
Description Data Format User Program Access
HSCSTS.Accumulator long word (32-bit INT) read-only

HSCSTS.Accumulator contains the number of counts that are detected by the HSC subsystem.
If either mode 0 or mode 1 is configured, the accumulator is reset to 0 when a high preset is
reached or when an overflow condition is detected.
High Preset (HSCSTS.HP)
Description Data Format User Program Access
HSCSTS.HP long word (32-bit INT) read-only

The HSCSTS.HP is the upper setpoint (in counts) that defines when the HSC subsystem
generates an interrupt.

The data that is loaded into the high preset must be less than or equal to the data resident in
the overflow (HSCAPP.OFSetting) parameter or an HSC error is generated.

This is the latest high preset setting, which may be updated by PLS function from the PLS data
block.
Low Preset (HSCSTS.LP)
Description Data Format User Program Access
HSCSTS.LP long word (32-bit INT) read-only

The HSCSTS.LP is the lower setpoint (in counts) that defines when the HSC subsystem
generates an interrupt.

The data that is loaded into the low preset must be greater than or equal to the data resident
in the underflow (HSCAPP.UFSetting) parameter, or an HSC error is generated. If the underflow
and low preset values are negative numbers, the low preset must be a number with a smaller
absolute value.

216 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

This is the latest low preset setting, which may be updated by PLS function from the PLS data
block.
High Preset Output (HSCSTS.HPOutput)
Description Data Format User Program Access
HSCSTS.HPOutput long word (32 bit binary) read-only

The High Preset Output defines the state (1 = ON or 0 = OFF) of the outputs on the controller
when the high preset is reached. See Output Mask Bits (HSCAPP.OutputMask) on page 211 for
more information on how to turn outputs on or off directly based on the high preset being
reached.

This is the latest high preset output setting, which may be updated by PLS function from the
PLS data block.
Low Preset Output (HSCSTS.LPOutput)
Description Data Format User Program Access
HSCSTS.LPOutput long word (32 bit binary)) read-only

The Low Preset Output defines the state (1 = “on”, 0 = “off”) of the outputs on the controller
when the low preset is reached. See Output Mask Bits (HSCAPP.OutputMask) on page 211 for
more information on how to turn outputs on or off directly based on the low preset being
reached.

This is the latest low preset output setting, which may be updated by the PLS function from the
PLS data block.

High-speed Counter (HSC) The HSC function block can be used to start/stop HSC counting, to refresh HSC status, to
reload HSC setting, and to reset the HSC accumulator.
Function Block
HSC
Enable STS
HscCmd
HscAppData
HscStsInfo
PlsData

Table 94 - HSC Parameters


Parameter Parameter Type Data Type Parameter Description
Enable function block
When Enable = TRUE, perform the HSC operation that is
Enable Input BOOL specified in “HSC command” parameter.
When Enable = FALSE, there is no HSC operation and no
HSC status update.
HscCmd Input USINT See HSC Commands on page 218.
See HSC APP Data HSC application configuration
HscAppData Input Structure on Only the initial configuration is needed usually.
page 204
See array of
Programmable
PlsData Input Limit Switch Programmable Limit Switch (PLS) Data
(PLS) Function on
page 219
See HSC STS (HSC
HSC dynamic status
HscStsInfo Output Status) Data Status info is usually continuously updated during HSC
Structure on counting.
page 212
Sts Output UINT HSC function block execution status

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 217


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

HSC Commands (HScCmd)


HscCmd is an input parameter with data type USINT. All HSC commands (1…4) are Level
commands. Users are advised to disable the instruction before updating the command.

HscCmd = 1 starts the HSC mechanism. Once the HSC is in running mode, the HscCmd = 2
must be issued to stop counting. Setting the Enable input parameter to False does not stop
counting while in running mode.

HscCmd = 3 reloads the following parameter values: HighPreset, LowPreset, OverFlow,


UnderFlow, HighPreset Output, and LowPreset Output.

The parameter values shown in the Variable Monitor may not match the values in the
Hardware. Command 3 must be executed to load the values from the variables to the hardware
without stopping the HSC.
If the HSC Enable is True, HscCmd = 3 will continuously load the parameters. Trigger HscCmd =
3 only once.

HscCmd = 4 (reset) sets the Acc value to the HSC AppData.Accumalator value. The HscCmd =4
does not stop HSC counting. If the HSC is counting when the HscCmd =4 is issued, some
counting may be lost.

To reset the Acc value and then continue the counting, trigger the HscCmd =4 only once. If the
command is enabled continuously, it may cause errors.

The HSC mechanism updates the HSC AppData.Accumalator value automatically with the same
value as the HSC Sts.Accumulator. To set one specific value to HSC Acc while counting, write
the value to HSC AppData.Accumalator immediately before HscCmd =4 is issued.
Table 95 - HSC Commands
HSC Command Description
0x00 Reserved
HSC RUN
• Start HSC (if HSC in Idle mode and Rung is Enabled)
0x01
• Update HSC Status Info only (if HSC already in RUN mode and Rung is Enabled)
• Update HSC status Info only (if Rung is disabled)
0x02 HSC Stop: Stop an HSC counting (if HSC is in RUN mode and Rung is Enabled.)
HSC Load: reload HSC Configuration (if Rung is Enabled) for 6 input elements: HPSetting,
0x03 LPSetting, HPOutput, LPOutput, OFSetting, and UFSetting. HSC accumulator is NOT
reloaded by cmd = 0x03.
HSC Reset: set Accumulator to assigned value, and reset HSC status information (if Rung
0x04 is Enabled)

Table 96 - HSC Function Block Status Codes


HSC Status Code Description
0x00 No action from controller because the function block is not enabled
0x01 HSC function block successfully executed
0x02 HSC command invalid
0x03 HSC ID out of range
0x04 HSC configuration error

218 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

HSC_SET_STS Function
Block HSC
Enable STS
HscId
Mode1Done
HPReached
LPReached
OFOccured
UFOccured

The HSC Set Status function block can be used to change the HSC counting status. This
function block is called when the HSC is not counting (stopped).
Table 97 - HSC Parameters
Parameter Parameter Type Data Type Parameter Description
Enable function block
Enable Input BOOL When Enable = TRUE, set/reset the HSC status.
When Enable = FALSE, there is no HSC status change.
See HSC APP Data
HscId Input Structure on Describes which HSC status to set.
page 204
Mode1Done Input BOOL Mode 1A or 1B counting is done.
High Preset reached
HPReached Input BOOL This bit can be reset to FALSE when HSC is not counting.
Low Preset reached
LPReached Input BOOL This bit can be reset to FALSE when HSC is not counting.
Overflow occurred
OFOccurred Input BOOL This bit can be reset to FALSE when necessary.
Underflow occurred
UFOccurred Input BOOL This bit can be reset to FALSE when necessary.
HSC function block execution status
Sts Output UINT See HSC Function Block Status Codes on page 218 for HSC
status code description (except 0x02 and 0x04).

Programmable Limit Switch The Programmable Limit Switch function allows you to configure the High-Speed Counter to
operate as a PLS (programmable limit switch) or rotary cam switch.
(PLS) Function
When PLS operation is enabled (HSCAPP.PLSEnable = True), the HSC (High-Speed Counter) uses
PLS data for limit/cam positions. Each limit/cam position has corresponding data parameters
that are used to set or clear physical outputs on the controller’s base unit. The PLS data block
is illustrated in Figure 55 on page 220.

IMPORTANT The PLS Function only operates in tandem with the HSC of a Micro830
controller. To use the PLS function, an HSC must first be configured.

PLS Data Structure


The Programmable Limit Switch function is an additional set of operating modes for the high-
speed counter. When operating in these modes, the preset and output data values are updated
using user supplied data each time one of the presets is reached. These modes are
programmed by providing a PLS data block that contains the data sets to be used.

PLS data structure is a flexible array, with each element defined as follows.
Element Order Data Type Element Description
Word 0…1 DINT High preset setting

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 219


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

Element Order Data Type Element Description


Word 2…3 DINT Low preset setting
Word 4…5 UDINT High preset Output data
Word 6…7 UDINT Low preset Output data

The total number of elements for one PLS data cannot be larger than 255.

When PLS is not enabled, PLS data is still required to be defined, but can be not initialized.
Figure 55 - PLS Data Block

PLS Operation
When the PLS function is enabled, and the controller is in the run mode, the HSC counts
incoming pulses. When the count reaches the first preset (HSCHP or HSCLP) defined in the PLS
data, the output source data (HSCHPOutput or HSCLPOutput) is written through the HSC mask
(HSCAPP.OutputMask).

At that point, the next presets (HSCHP and HSCLP) defined in the PLS data become active.
When the HSC counts to that new preset, the new output data is written through the HSC mask.
This process continues until the last element within the PLS data block is loaded. At that point,
the active element within the PLS data block is reset to zero. This behavior is referred to as
circular operation.
The HSCHPOutput is only written when HSCHP is reached. The HSCLPOutput is
written when HSCLP is reached.
Output High Data is only operational when the counter is counting up. Output Low
Data is only operational when the counter is counting down.
If invalid data is loaded during operation, an HSC error is generated and causes a controller
fault.

You can use the PLS in Up (high), Down (low), or both directions. If your application only counts
in one direction, ignore the other parameters.

The PLS function can operate with all other HSC capabilities. The ability to select which HSC
events generate a user interrupt are not limited.

220 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

PLS Example

Setting Up the PLS Data

Using Connected Components Workbench software, define the PLS data HSC_PLS’s dimension
as [1…4].
PLS Data Definition
Data Description Data Format
HSCHP High Preset
32 bit signed integer
HSCLP Low Preset
HSCHPOutput Output High Data 32 bit binary
HSCLPOutput Output Low Data (bit 31--> 0000 0000 0000 0000 0000 0000 0000 0000 <--bit 0)

Once the values above for all 4 PLS data elements have been entered, the PLS is configured.

Assume that HSCAPP.OutputMask = 31 (HSC mechanism controls Embedded Output 0...4 only),
and HSCAPP.HSCMode = 0.

PLS Operation for This Example

When the ladder logic first runs, HSCSTS.Accumulator = 1, therefore all outputs are turned off.
The value of HSCSTS.HP = 250

When HSCSTS.Accumulator = 250, the HSC_PLS[1].HscHPOutput is sent through the


HSCAPP.OutputMask and energizes the outputs 0 and 1.

This repeats as the HSCSTS.Accumulator reaches 500, 750, and 1000. The controller energizes
outputs 0...2, 0...3, and 0...4 respectively. Once completed, the cycle resets and repeats from
HSCSTS.HP = 250.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 221


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

HSC Interrupts An interrupt is an event that causes the controller to suspend the task it is performing,
perform another task, and then return to the suspended task at the point where it suspended.
Micro800 controllers support up to six HSC interrupts.

An HSC interrupt is a mechanism that Micro830, Micro850, and Micro870 controllers provide to
execute selected user logic at a pre-configured event.

HSC0 is used in this document to define how HSC interrupts work.

HSC Interrupt Configuration


In the User Interrupt configuration window, select HSC and HSC ID, which is the interrupt that
triggers the User Interrupt.

Figure 56 shows the selectable fields in the Interrupt configuration window.


Figure 56 - Interrupt Configuration Window

222 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

HSC Interrupt POU


This is the name of the Program Organizational Unit (POU) which is executed immediately
when this HSC Interrupt occurs. You can choose any pre-programmed POU from the dropdown
list.
Auto Start (HSC0.AS)
Description Data Format HSC Modes(1) User Program Access
AS - Auto Start bit 0…9 read-only
(1) For Mode descriptions, see Count Down (HSCSTS.CountDownFlag) on page 213.

The Auto Start is configured with the programming device and stored as part of the user
program. The auto start bit defines if the HSC interrupt function automatically starts whenever
the controller enters any run or test mode.
Mask for IV (HSC0.MV)
Description Data Format HSC Modes(1) User Program Access
MV - Overflow Mask bit 0…9 read-only
(1) For Mode descriptions, see Count Down (HSCSTS.CountDownFlag) on page 213.

The MV (Overflow Mask) control bit is used to enable (allow) or disable (not allow) an overflow
interrupt from occurring. If this bit is clear (0), and an overflow reached condition is detected
by the HSC, the HSC user interrupt is not executed.

This bit is controlled by the user program and retains its value through a power cycle. It is up
to the user program to set and clear this bit.
Mask for IN (HSC0.MN)
Description Data Format HSC Modes(1) User Program Access
MN - Underflow Mask bit 2…9 read-only
(1) For Mode descriptions, see Count Down (HSCSTS.CountDownFlag) on page 213.

The MN (Underflow Mask) control bit is used to enable (allow) or disable (not allow) an
underflow interrupt from occurring. If this bit is clear (0), and an Underflow Reached condition
is detected by the HSC, the HSC user interrupt is not executed.
This bit is controlled by the user program and retains its value through a power cycle. It is up
to the user program to set and clear this bit.
Mask for IH (HSC0.MH)
Description Data Format HSC Modes(1) User Program Access
MH - High Preset Mask bit 0…9 read-only
(1) For Mode descriptions, see Count Down (HSCSTS.CountDownFlag) on page 213.

The MH (High Preset Mask) control bit is used to enable (allow) or disable (not allow) a high
preset interrupt from occurring. If this bit is clear (0), and a High Preset Reached condition is
detected by the HSC, the HSC user interrupt is not executed.

This bit is controlled by the user program and retains its value through a power cycle. It is up
to the user program to set and clear this bit.
Mask for IL (HSC0.ML)
Description Data Format HSC Modes(1) User Program Access
ML - Low Preset Mask bit 2…9 read-only
(1) For Mode descriptions, see Count Down (HSCSTS.CountDownFlag) on page 213.

The ML (Low Preset Mask) control bit is used to enable (allow) or disable (not allow) a low preset
interrupt from occurring. If this bit is clear (0), and a Low Preset Reached condition is detected
by the HSC, the HSC user interrupt is not executed.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 223


Chapter 10 Use the High-speed Counter and Programmable Limit Switch

This bit is controlled by the user program and retains its value through a power cycle. It is up
to the user program to set and clear this bit.

HSC Interrupt Status


Information User Interrupt Enable (HSC0.Enabled)
Description Data Format HSC Modes(1) User Program Access
HSC0.Enabled bit 0…9 read-only
(1) For Mode descriptions, see Count Down (HSCSTS.CountDownFlag) on page 213.

The Enabled bit is used to indicate HSC interrupt enable or disable status.
User Interrupt Executing (HSC0.EX)
Description Data Format HSC Modes(1) User Program Access
HSC0.EX bit 0…9 read-only
(1) For Mode descriptions, see Count Down (HSCSTS.CountDownFlag) on page 213.

The EX (User Interrupt Executing) bit is set (1) whenever the HSC subsystem begins processing
the HSC subroutine due to any of the following conditions:
• Low preset reached
• High preset reached
• Overflow condition – Count up through the overflow value
• Underflow condition – Count down through the underflow value
The HSC EX bit can be used in the control program as conditional logic to detect if an HSC
interrupt is executing.

The HSC subsystem clears (0) the EX bit when the controller completes its processing of the
HSC subroutine.
User Interrupt Pending (HSC0.PE)
Description Data Format HSC Modes(1) User Program Access
HSC0.PE bit 0…9 read-only
(1) For Mode descriptions, see Count Down (HSCSTS.CountDownFlag) on page 213.

The PE (User Interrupt Pending) is a status flag that represents an interrupt is pending. This
status bit can be monitored or used for logic purposes in the control program if you must
determine when a subroutine cannot be executed immediately. The controller maintains this
bit, and sets and clears the bit automatically.
User Interrupt Lost (HSC0.LS)
Description Data Format HSC Modes(1) User Program Access
HSC0.LS bit 0…9 read/write
(1) For Mode descriptions, see Count Down (HSCSTS.CountDownFlag) on page 213.

The LS (User Interrupt Lost) is a status flag that represents an interrupt has been lost. The
controller can process 1 active and maintain up to 1 pending user interrupt conditions before it
sets the lost bit.

The controller sets this bit. It is up to the control program to use, track the lost condition if
necessary.

224 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 11

Controller Security

Micro800 controller security generally has three components:


• Exclusive Access that prevents simultaneous configuration of the controller by two
users
• Controller Password Protection that secures the Intellectual Property that is
contained within the controller and prevents unauthorized access
• Disable communication ports that prevents unauthorized users from accessing the
ports through external devices.

Operation Mode To maintain the secure operation of your Micro800 controllers, operations that can disrupt
controller operation are restricted based on the controller operating mode.
Table 98 - Activities Allowed in Different Controller Operating Modes while Online
Activity
Ethernet Port
Current Controller Configuration Setting(1) Serial and USB
Firmware Update (through Connected
Port Configuration Lost
Operation Password Password Controller Mode I/O Configuration
Request Components Recovery Change Change Change
Changes
Workbench or RSLinx
software)
Controller in Accepted Accepted Not Allowed Accepted Accepted Accepted Not Allowed
Program Mode
Controller without
Password Protection in Rejected Not Allowed Not Allowed Not Applicable Not Applicable Accepted Not Allowed
Remote Run Mode
Controller with
Password Protection in Rejected Not Allowed(2) Not Allowed Rejected Rejected Rejected Not Allowed
Remote Run Mode
Controller in
Rejected Not Allowed Not Allowed Rejected Rejected Rejected Not Allowed
Hard Run Mode(3)
(1) Ethernet configuration includes IP address, subnet mask, gateway, port speed/duplex and so on.
(2) Difference between Not Allowed and Rejected is that Not Allowed activities can only be done during offline while Rejected activities can be performed but do not take effect.
(3) Hard Run Mode can only be in Micro830, Micro850, and Micro870 controllers with the Mode switch to RUN.

Exclusive Access Exclusive access is enforced on the Micro800 controller regardless of whether the controller is
password-protected or not. This means that only one Connected Components Workbench
software session is authorized at one time and only an authorized client has exclusive access
to the controller application. This ensures that only one software session has exclusive access
to the Micro800 application-specific configuration.

Exclusive access is enforced on Micro800 firmware revision 1 and 2. When a Connected


Components Workbench software user connects to a Micro800 controller, the controller is
given exclusive access to that controller.

Password Protection By setting a password on the controller, you effectively restrict access to the programming
software connections to the controller to software sessions that can supply the correct
password. Essentially, Connected Components Workbench software operation such as upload
and download are prevented if the controller is secured with a password and the correct
password is not provided.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 225


Chapter 11 Controller Security

Micro800 controllers with firmware revision 2 and later are shipped with no password but a
password can be set through the Connected Components Workbench software (version 2 or
later).
In Connected Components Workbench software version 10 or later, a stronger password
algorithm is introduced to provide better security. To take full advantage of this enhancement,
the Micro800 controller must have firmware revision 10 or later, and the project must also be
software version 10 or later.

In Connected Components Workbench software version 20.01.00 or later, the password


algorithm is further enhanced to increase the password encryption on the new Micro850
(2080-L50E) and Micro870 (2080-L70E) controllers. When the password is changed, or
removed and restored back in the controller, the encrypted code in the controller is different.
Therefore the backup copy of the program in the 2080-MEMBAK-RTC2 module must be
updated before it can be used for restoring the program, otherwise the restore fails.

The controller password is also backed up to the memory backup module (2080-MEMBAK-RTC
and 2080-MEMBAK-RTC2).

IMPORTANT 2080-MEMBAK-RTC is not supported on Micro850 (2080-L50E) and


Micro870 controllers.
For instructions on how to set, change, and clear controller passwords, see
Configure Controller Password on page 277.

Disable Communication You can disable the communication ports in the Micro850 and Micro870 controllers to increase
the security level of the controller. Both the USB and Ethernet ports can be set to disabled in
Ports the Connected Components Workbench software.

IMPORTANT You must verify that you have a method to connect to the controller
after you have disabled the communication ports, so that you can re-
enable the ports if needed.
You must connect to the controller online to make the change.

Disable USB port Disable Ethernet port

Compatibility The Controller Password feature is supported on:


• Connected Components Workbench software version 2 and later
• Micro800 controllers with firmware revision 2

For users with earlier versions of the software and/or revisions of the hardware, see the
following compatibility scenarios.

226 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 11 Controller Security

Connected Components Workbench Software Version 1 with Micro800 Controller


Firmware Revision 2

Connection to a Micro800 controller with firmware revision 2 using an earlier version of the
Connected Components Workbench software (version 1) is possible and connections are
successful. However, the software is not able to determine whether the controller is locked or
not.

If the controller is not locked, access to the user application is allowed, provided that the
controller is not busy with another session. If the controller is locked, access to the user
application fails. You must upgrade to version 2 of the Connected Components Workbench
software.

Connected Components Workbench Software Version 2 with Micro800 Controller


Firmware Revision 1

Connected Components Workbench software version 2 can “discover” and connect to


Micro800 controllers with firmware revision earlier than revision 2 (that is, not supporting the
Controller Password feature). However, the Controller Password feature is not available to
these controllers. You cannot see the interfaces that are associated with the Controller
Password feature in the Connected Components Workbench software session.
Users are advised to upgrade the firmware. See Update Your Micro800 Controller Firmware on
page 267 for instructions.

ATTENTION: Connected Components Workbench software version 9 or earlier


with Micro800 controller firmware revision 10 or later.
If a Micro800 controller with firmware revision 10 or later is locked using the
new password algorithm that is introduced in Connected Components
Workbench software version 10 or later, it cannot be accessed using
Connected Components Workbench software version 9 or earlier. Users are
advised to upgrade to the latest version of Connected Components
Workbench software.

Work with a Locked The following workflows are supported on compatible Micro800 controllers (firmware
revision 2) and Connected Components Workbench software version 2.
Controller
Upload from a Password-Protected Controller
1. Launch the Connected Components Workbench software.
2. In the Project Organizer, expand Catalog by clicking the + sign.
3. Select the target controller.
4. Select Upload.
5. When requested, provide the controller password.

IMPORTANT When using Connected Components Workbench software version 9


or earlier:
• You cannot upload a version 10 or later project from the controller.
• You can upload a version 9 or earlier project from the controller if it was
downloaded to the controller using Connected Components Workbench
software version 10 or later, but you cannot go online.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 227


Chapter 11 Controller Security

Debug a Password-Protected Controller


To debug a locked controller, you have to connect to the controller through the Connected
Components Workbench software and provide the password before you can proceed to debug.
1. Launch the Connected Components Workbench software.
2. In the Project Organizer, expand Catalog by clicking the + sign.
3. Select the catalog number of your controller.
4. When requested, provide the controller password.
5. Build and save your project.
6. Debug.

Download to a Password-Protected Controller


1. Launch the Connected Components Workbench software.
2. Click Connect.
3. Select the target controller.
4. When requested, provide the controller password.
5. Build and save the project, if needed.
6. Click Download.
7. Click Disconnect.

IMPORTANT If the controller has a password locked version 10 or later project, you
cannot access the controller using Connected Components Workbench
software version 9 or earlier. If you use Connected Components
Workbench software version 10 or later to download a version 9 or
earlier project, the password in the controller is converted to the old
algorithm automatically.

IMPORTANT If the controller has a password locked version 9 or earlier project and
you use Connected Components Workbench software version 10 or later,
to download a version 10 or later project, the password in the controller
is converted to the new algorithm automatically.

IMPORTANT If communication is lost during the download, repeat the download and
verify that the controller is password protected.

Transfer Controller Program and Password-Protect Receiving


Controller
In this scenario, you must transfer the user application from controller1 (locked) to another
Micro800 controller with the same catalog number. The transfer of the user application is
done through the Connected Components Workbench software by uploading from controller1,
then changing the target controller in the Micro800 project, and then downloading to
controller2. Finally, controller2 is locked.
1. In the Project Organizer, click the Discover icon.
The Browse Connections dialog appears.
2. Select target controller1.
3. When requested, enter the controller password for controller1.
4. Build and save the project.
5. Click Disconnect.
6. Power down controller1.
7. Swap controller1 hardware with controller2 hardware.

228 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 11 Controller Security

8. Power up controller2.
9. Click Connect.
10. Select target controller2.
11. Click Download.
12. Lock controller2. See Configure Controller Password on page 277.

Back Up and Restore a Password-Protected Controller


In this workflow, the user application is backed up from a Micro800 controller that is locked to
a memory plug-in device.
1. In the Project Organizer, click the Discover icon.
The Browse Connections dialog appears.
2. Select the target controller.
3. When requested, enter the controller password.
4. Back up controller contents to the memory module.
The project in the memory module is now password locked.
5. Remove the memory module from controller1 and insert into controller2.
6. Restore contents from the memory module to controller2.
This operation succeeds only if:
- the controller has no password – the project can be restored to the controller by
setting the “Load on power up” option for the memory module to Load Always.
- the controller’s password matches the project’s password.

IMPORTANT Even though the password matches, the restore operation fails if either
one of the controller or project in the memory module is protected
using the old password algorithm, and the other is protected using the
new password algorithm. You can update the controller using the Reset
option to clear the password before restoring the project to
the controller.

IMPORTANT In Connected Components Workbench software version 20.01.00 or


later, if the same password is removed and restored back on the new
Micro850 (2080-L50E) and Micro870 (2080-L70E) controllers, the
backup copy of the program in the 2080-MEMBAK-RTC2 plug-in module
must be updated before it can be used to restore the program.
Otherwise the restore fails as the internal encryption code changes
once the password is removed.

Configure Controller To set, change, and clear the controller password, see the quick start instructions Configure
Controller Password on page 277.
Password
IMPORTANT After creating or changing the controller password, you must power
down the controller in order for the password to be saved.

Recover from a Lost If the controller is secured with a password and the password has been lost, then it becomes
impossible to access the controller using the Connected Components Workbench software.
Password
To recover, the controller must be set to Program Mode using the keyswitch for Micro830,
Micro850, and Micro870 controllers, the 2080-LCD for Micro810 controllers, or the 2080-
REMLCD for Micro820 controllers. Then, ControlFLASH™ can be used to update the controller
firmware, which also clears the controller memory. In Connected Components Workbench
software version 10 or later, the Reset option must be selected for the controller memory to be
cleared during the firmware update. If the Upgrade or Downgrade option is selected, the
password is retained.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 229


Chapter 11 Controller Security

ATTENTION: The project in the controller is lost but a new project can be
downloaded.

Using the Memory Module You can use the memory module (2080-MEMBAK-RTC and 2080-MEMBAK-RTC2) to download a
program into different controllers.
Plug-in
IMPORTANT 2080-MEMBAK-RTC is not supported on Micro850 (2080-L50E) and
Micro870 controllers.

Back up the project

To perform a project backup from a controller to the memory module, follow these steps:
1. Create a program and choose the desired controller.
The Micro850 controller is used for this example.
2. Double-click the controller icon under Project Organizer to bring up the controller
properties window.

3. Add the memory module to the first slot in the controller.

230 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 11 Controller Security

4. Select Configuration under the MEMBAK-RTC properties and select “Load Always” or
“Load on Memory Error” for the Load on power up option.

5. Build and Download the project to the controller.


6. While connected to the controller and being in the MEMBAK-RTC properties, make sure
that the controller is changed to Program Mode and click “Backup to Memory Module”
under Memory Module Settings. Select Yes to download the program into the Memory
Module. A window should pop up stating that the operation has been completed
successfully.

IMPORTANT The Password Mismatch status must be at “False”, this means that the
Controller and Backup project have the same security condition.
If the status is “True” then the Controller does not load from the Memory
module as the security condition is mismatched.

Restore the Project

To restore the project from the memory module to the controller, follow these steps:
1. While connected to the controller and being in the MEMBAK-RTC properties, make sure
that the controller is changed to Program Mode and click “Restore from Memory Module”
under Memory Module Settings. Select Yes to download the program into the controller.
A window should pop up stating that the operation has been completed successfully.

Using the Memory Module to Copy a Project to Multiple Controllers

You can use the memory module to download a project to multiple controllers without
connecting them to a PC with Connected Components Workbench software installed. To do
this:
1. Back up a project with “Load Always” option enabled.
2. Remove the module and plug it into another controller.
3. Cycle the power. Observe the Status LED on the module lights up for a few seconds
while the project is being downloaded from the module to the controller.
4. When the operation is finished you can unplug the module and leave the slot empty, or
plug in another MEMBAK-RTC module if you want to use the RTC functionality.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 231


Chapter 11 Controller Security

Notes:

232 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12

Using microSD Cards

This chapter provides a description of microSD card support on Micro830, Micro850, and
Micro870 controllers. The last section provides quick start projects for the data log and recipe
functions.

Overview With firmware revision 12.011 or later, Micro830, Micro850, and Micro870 controllers support
microSD cards by using the microSD card plug-in (a PartnerNetwork™ Technology partner
product) for Micro800 controllers for the following purposes:
• Project backup and restore
• Data log and Recipe

We recommend using the Allen-Bradley 2080-SD-2GB microSD card.

IMPORTANT For Micro850 (2080-L50E) and Micro870 (2080-L70E) controllers, do not


use any microSD card with less than 2 GB of memory.

IMPORTANT For optimum performance, the microSD card should not be more than
90% full. Regularly check available space on your microSD card and
verify that the card is exclusively used for the Micro800 controller and
no unnecessary files are present. Regularly delete old data log files and
directories.

IMPORTANT Do not remove the microSD card or power down while operations such
as upload, download, delete, search, backup, and restore are ongoing to
prevent data loss. A blinking SD status LED indicates that these
operations are ongoing.
Note the following:
• The SD status LED does not blink when updating the firmware from the
microSD card.
• The SD status LED does not blink continuously for the entire duration of
the restore operation.

IMPORTANT To prevent data loss, the recipe and data log function blocks must
indicate the Idle status before the microSD card is removed.

Project Backup and Restore Project backup and restore on Micro830, Micro850, and Micro870 controllers are supported
through the microSD card. Both backup and restore can be initiated or manually triggered and
configured through the Connected Components Workbench software, and the
ConfigMeFirst.txt file in the microSD card. These backup files are not the same as the
Connected Components Workbench project files.

Backup and restore can only occur when the controller is in PROGRAM mode. On controller
power-up, restore automatically occurs if the Load Always or Load on Memory Error option has
been configured in the Connected Components Workbench software.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 233


Chapter 12 Using microSD Cards

In Connected Components Workbench software version 20.01.00 or later, when you use the
Micro850 (2080-L50E) and Micro870 (2080-L70E) controllers with the microSD card plug-in
module, the encryption functionality option is added to help enhance the encryption capability
on your programs for better security protection.

If you select the option “Enable Encryption on user backup project”, the time it takes to restore
the program can increase up to 10 times, depending on the size and content of the program.

IMPORTANT To learn about restore and backup using the Connected Components
Workbench software, see the software Online Help.

IMPORTANT For Micro800 controllers that support microSD cards, IP protection of


your project can only be achieved through the POU password protection
mechanism in the Connected Components Workbench Developer
Edition software and NOT via the Controller Lock feature.

IMPORTANT If the Load Always setting is enabled and power is lost when restoring a
project from the microSD card, the controller will attempt to load the
project using the default project name and directory after power is
restored. If your project is not using the default name and directory, the
operation fails and a fault occurs, or the wrong project is loaded.
The default project name is the name of the controller, for example
“Micro850”, and the default directory is “Micro850\USERPRJ”.
If you change the name of the controller from the default, you must
configure the UPD setting in the ConfigMeFirst.txt file.

The microSD card stores the controller password in encrypted format. When the password is
mismatched, the contents of the microSD card is not restored on the controller.

Table 99 describes the methods that you can use to trigger project backup and restore.
Table 99 - Methods for Backup and Restore
Method Backup Restore
Online with Connected Components Yes Yes
Workbench software
Project configuration on memory No Load Always and/or Load on Memory
card at power-up Error options
Yes Yes
ConfigMeFirst.txt at power-up (Through the [BKD] command) (Through the [RSD] command)

234 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12 Using microSD Cards

Backup and Restore Directory Structure

When a user project is backed up, a subdirectory that is named <Micro800>\USERPRJ is


created on the microSD card. The folder name takes the name of the project that is specified
in the General Page in the Connected Components Workbench software, which is the name of
the controller by default. However, if the ConfigMeFirst.txt file specifies another subdirectory
(example: MyProject), the project is backed up to that directory. See General Configuration
Rules in ConfigMeFirst.txt on page 237.

Project restore is done from the subdirectory that is specified in the ConfigMeFirst.txt file or
the <Micro800>/USERPRJ default folder, if none is specified in the ConfigMeFirst.txt file. You
must verify that the directory is populated with the correct contents before restoring.

The ConfigMeFirst.txt file is a configuration file that is stored on the microSD card that you can
optionally create to customize backup, restore, recipe, and data log directories. The following
sections include information on how to configure the ConfigMeFirst.txt properly.

IMPORTANT The Micro800 controller reports a major fault when project backup does
not succeed because the memory card size is exceeded.

Power-up Settings in ConfigMeFirst.txt


On power-up, the controller reads and implements the configuration settings that are
described in the ConfigMeFirst.txt file. However, the UPD setting also takes effect when the
microSD card is inserted. The configuration settings for the ConfigMeFirst.txt file are shown in
Table 100 on page 236.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 235


Chapter 12 Using microSD Cards

Table 100 - ConfigMeFirst.txt Configuration Settings


Setting Takes Effect On... Description
Firmware update settings
File path location of the firmware revision on the microSD
[FWFILE] Power-up card. The default location is in the following format:
firmware\<catalog number>\<filename of firmware>
Sets whether to upgrade or downgrade the controller
firmware from the current revision.
0 = Upgrade firmware; 1 = Downgrade firmware
[FWDOWN] Power-up IMPORTANT: Firmware upgrade happens if the [FWFILE]
setting points to a newer revision of firmware file
compared to current firmware in the controller, irrespective
of the [FWDOWN] setting.
Controller settings
[PM] Power-up Power up and switch to PROGRAM mode.
[CF] Power-up Power up and attempt to clear fault.
Project settings
Power up and save the controller project into the backup
[BKD = My Proj1] Power-up directory, My Proj1\USERPRJ. Require extra power cycle to
clear existing fault first using [CF] setting or other means.
Power up and read the project from the restore directory
MyProj2\USERPRJ into the controller. Require extra power
[RSD = MyProj2] Power-up cycle to clear existing fault first using [CF] setting or other
means. This setting overwrites UPD (or its default) load
always or load on error restore function.
For normal usage of backup and restore (that is, through
Connected Components Workbench software, Load Always,
or Load on Memory Error settings), set the user project
Power-up and
[UPD = My Proj] directory name. For example, My Proj, during power-up or
Insertion when the microSD card is inserted.
This directory is also used by the data logging and recipe
function.
Network settings
Embedded serial factory defaults
[ESFD] Power-up Power up and revert embedded serial comms to factory
defaults.
Power up and set IP address to xxx
[IPA = xxx.xxx.xxx.xxx] Power-up (must be numbers only).
Power up and set subnet mask to xxx
[SNM = xxx.xxx.xxx.xxx] Power-up (must be numbers only).
Power up and set gateway address to xxx
[GWA = xxx.xxx.xxx.xxx] Power-up (must be numbers only).
General settings
End of setting
This setting is always required even when the
[END] Power-up ConfigMeFirst.txt file does not contain any other setting.
The SD LED goes off when this setting is not present.

IMPORTANT Update Settings


With Connected Components Workbench software version 12 or later,
you can update your Micro800 controller from the microSD card in
addition to using ControlFLASH. See Firmware Update From MicroSD
Card on page 269 for instructions.
• [FWFILE] and [FWDOWN] settings must be placed at the beginning of the
file.

236 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12 Using microSD Cards

IMPORTANT Directory Settings


• If no directory has been specified in the ConfigMeFirst.txt file, then
backup and restore occurs in the controller name directory
(<Micro800>/USERPRJ, by default).
• If [UPD] is configured in the ConfigMeFirst.txt file, then backup and
restore occurs in the [UPD] directory specified.
• [BKD] setting is implemented even when the controller is locked or
password protected.
• [BKD] directory is automatically created if it does not yet exist.

IMPORTANT Powerup Network Parameter Settings


• [IPA], [SNM] and [GWA] follow the general IP configuration rules.
• [IPA], when set in ConfigMeFirst.txt, should always be configured with a
valid [SNM] and vice versa.
• When the optional [GWA] setting is used, make sure that [IPA] and [SNM]
settings are also present in ConfigMeFirst.txt.
• The [ESFD], [IPA], [SNM], and [GWA] settings overwrite the respective
communication settings from project restore due to [RSD], Load Always
or Load on Memory Error.

Sample ConfigMeFirst.txt File

General Configuration Rules in ConfigMeFirst.txt


• All settings must be in upper case and enclosed in brackets [ ].
• Each line must contain only one setting.
• Settings must always appear first in a line.
• Comments are started with the # symbol.
• No action related to the setting is performed when the setting does not exist, or a #
symbol appears before the setting (example, #[PM]).

ConfigMeFirst.txt Errors
The SD status LED goes off when the microSD card is inserted during PROGRAM or RUN mode
(or on power-up) and the ConfigMeFirst.txt file is either unreadable or invalid. The
ConfigMeFirst.txt file is invalid when it has the following errors:
• Unrecognized setting (that is, the first three configuration rules have not been
followed).
• The setting parameters after the = symbol is invalid, does not exist, or out of range.
• The same setting exists twice or more.
• One or more non-setting characters exist within the same bracket.
• Space in between setting characters (example, [P M]).

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 237


Chapter 12 Using microSD Cards

• Space in between IP address, subnet mask, and gateway address (for example, xxx. x
xx.xxx.xxx).
• Only one of the network parameter settings ([IPA], [SNM], or [GWA]) is assigned.
• [END] setting does not exist (even if there are no other settings in the configuration
file).

The microSD card becomes unusable until the ConfigMeFirst.txt file becomes readable or the
errors are corrected.

Deliver Project Updates to Customers Through Email


A benefit of using the project backup and restore feature is to allow you to deliver project
updates to customers through email. You can do so by following the example that is shown
below.

Back up project to microSD card

The first step is to back up the project from the controller into the microSD card.
1. In the Connected Components Workbench software, verify that you have downloaded
the updated project to your controller.
2. Insert a microSD card into the microSD card slot.
3. Set the controller to program mode.
4. Under the Memory Card option in your controller settings, select Backup to Memory
Card.

IMPORTANT The Backup to Memory Card button is enabled when the


controller is in program mode and a microSD card is in the
microSD card slot.
5. After the backup is completed, select OK.

The image files are stored in the default location on the microSD card <Micro800>\USERPRJ.
This location is where the controller loads from when the Load on power up setting is
configured to “Load Always” or “Load on Error”.
Alternatively, if you do not want to use Connected Components Workbench software to create
the project backup, you can also use the ConfigMeFirst.txt file.
Figure 57 - Example Configuration for Project Backup

The ConfigMeFirst.txt file also allows you to restore from the backup if you want to configure
the Load on power up setting to “Disable”.

238 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12 Using microSD Cards

Send Image Files Through Email

The next step is to retrieve the image files from the microSD card and send them to your
customer through email.
1. Remove the microSD card from the controller and read the card using your computer.
2. Navigate to the location where the image files are stored (default is
<Micro800>\USERPRJ).

3. Use a compression program to zip these image files and send them to your customer
through email.

The customer must extract these image files into the root directory of their microSD card and
verify that the location is identical to the original (default is <Micro800>\USERPRJ).

Restore Project from Backup

The last step is to restore the project to your controller from the microSD card. There are two
methods to restore the backup, depending on the configuration of the controller.
Existing Controller - Load Always / Load on Error

For this example, the Load on power up setting was configured to “Load Always”. This means
that the controller loads the project from the memory card whenever it is powered on.
1. Insert the microSD card into the microSD card slot.
2. Cycle power to the controller.
3. When the SD LED displays a steady green light, the project restore is complete.

This method is used for an existing controller that has been configured and you want to
update the program.

New Controller

If your controller is new, you can use the ConfigMeFirst.txt file to restore the project backup.
Figure 58 - Example Configuration for Project Restore

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 239


Chapter 12 Using microSD Cards

In the example shown above, the ConfigMeFirst.txt file configures the IP address, subnet mask,
and gateway of the controller, and restores the project from the location that is specified on
the microSD card.
The ConfigMeFirst.txt file must be placed in the same root directory as the backup folder in the
microSD card.

1. Insert the microSD card into the microSD card slot.


2. Cycle power to the controller.
3. When the SD LED displays a steady green light, the project restore is complete.

Data Log The data logging feature allows you to capture global and local variables with time stamp from
the Micro800 controller into the microSD card. You can retrieve the recorded datasets on the
microSD card by reading the contents of the microSD card through a card reader or by doing
an upload through the Connected Components Workbench software.

A maximum number of 10 datasets are supported for a Micro800 program. Each dataset can
contain up to 128 variables, with a maximum of four data string variables per dataset. String
variables can have a maximum of 252 characters. All datasets are written to the same file. For
more information on how data logs are stored on the microSD card, see the Data Log Directory
Structure on page 241.
You can retrieve data log files from the microSD card using a card reader or by uploading the
data logs through the Connected Components Workbench software.

IMPORTANT Uploading data log files in PROGRAM mode is recommended for


optimum performance and to prevent file access conflict. For example,
if the data log instruction is executing, Connected Components
Workbench software does not upload the last data log file.

See the sample quick start project to get you started on the Data Log feature, Use the Data Log
Feature on page 248.

IMPORTANT Data log execution time depends on the user application and its
complexity. Users are advised to data log no faster than every 2
seconds for typical applications. Housekeeping takes at least 5 ms per
program scan. See Program Execution in Micro800 Controllers on
page 125 for more information on program scan and execution rules
and sequence.
See also Data Log – Data Payload vs. Performance Time on page 244.

IMPORTANT In cases where there are simultaneous RCP and DLG function block
execution or uploads/downloads/searches, the activities are queued up
and handled one by one by the program scan. You can observe a
slowdown in performance in these cases.

240 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12 Using microSD Cards

Data Log Directory Structure


The DATALOG folder is created under the current project directory in the microSD card. In
this example, the current project directory is MYPROJECT. By default, the current project
directory name is taken from the downloaded project’s controller name or from the
ConfigMeFirst.txt. See ConfigMeFirst.txt Configuration Settings on page 236.

Subdirectories are also created following the controller RTC time stamp. This means that
if the RTC date at the time of function block execution is February 02, 2019, the subfolder
2019 is created under DATALOG. Under the 2019 folder, the subfolder 02 (which represents
the month of February) is created. Under 02, another subfolder 02 is created,
corresponding to the current date.
These data log files
are for February 2,

Under the current working folder, the subfolder Grp01 is created. A maximum of 50 Grpxxx
folders can be generated on the microSD card per day.

Under the current Grpxxx working folder, the data log file File01.txt is created. Once this
file reaches more than 4 KB, another file, File02.txt, is automatically created to store
data. The file size is kept small to minimize data loss in case the card is removed or when
there is unexpected power off.
Each Grpxx folder can accommodate up to 50 files. This means that, for example, when
the Grp01 folder already stores 50 files, a new folder Grp02 is automatically created to
store the next data log files for that day. This automatic folder and file generation goes
on until the Grpxx folder reaches 50 for that day.
When a microSD card is inserted, the DLG function block looks for the last Grpxx folder
and filexx.txt file, and proceeds to do the data logging based on that information.

Table 101 summarizes data logging performance on Micro800 controllers.


Table 101 - Data Log Specifications
Attribute Value
Maximum datasets 10 All datasets are stored in the same file.
Maximum variables per dataset 128 Configured in Connected Components Workbench software.
Minimum size per file 4 KB —
When the directory is full, a new directory is automatically
Maximum files per Grpxx folder(1) 50 created in RUN mode.
When the file reaches maximum size, a new file is
Maximum files (Filexx.txt) per day 50 automatically created in RUN mode.
Typical data per day 10 MB —
(1) Once the data log limits are reached (that is, 50 Grpxx folders per day, then an error (ErrorID 3: DLG_ERR_DATAFILE_ACCESS)
is returned.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 241


Chapter 12 Using microSD Cards

Data Log Function (DLG) Block


The data logging function block lets a user program to write run-time global values into the
data logging file in microSD card.
DLG

Enable Status

TSEnable ErrorID

CfgId

DLG Input and Output Parameters


Parameter Parameter Type Data Type Description
Data logging write function enable
On the rising edge (that is, the Enable value is triggered from
Enable INPUT BOOL low to high), the function block executes. The precondition
for execution is that the last operation has completed.
TSEnable INPUT BOOL Date and time stamp logging enable flag
CfgId INPUT USINT Configured dataset (DSET) number (1…10)
Status OUTPUT USINT Data logging function block status
ErrorID OUTPUT UDINT ErrorID if DLG Write fails.

DLG Function Block Status


Status Code Description
0 Data logging IDLE status
1 Data logging BUSY status
2 Data logging COMPLETE SUCCEED status
3 Data logging COMPLETE ERROR status

DLG Function Block Errors


Status Code Name Description
0 DLG_ERR_NONE No error.
1 DLG_ERR_NO_SDCARD microSD card is missing.
2 DLG_ERR_RESERVED Reserved.
3 DLG_ERR_DATAFILE_ACCESS Error accessing data log file in microSD card.
4 DLG_ERR_CFG_ABSENT Data log configuration file is absent.
5 DLG_ERR_CFG_ID Configuration ID is missing in data log configuration file.
Same Configuration ID is used with other data log
6 DLG_ERR_RESOURCE_BUSY function block call simultaneously
7 DLG_ERR_CFG_FORMAT Data log configuration file format is wrong.
8 DLG_ERR_RTC Real-time clock is invalid.
9 DLG_ERR_UNKNOWN Unspecified error has occurred.

IMPORTANT File access error is returned during DLG function block execution when
the card is full.

242 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12 Using microSD Cards

Figure 59 - Data Log Function Block Timing Diagram

Enable(1) Enable(1)

Enable(1)
Disable(0) Disable(0) Disable(0)

Error(3)
Succeed(2)

Busy(1) Busy(1)
Status(0)
Idle(0) Idle(0)
Idle(0)

IMPORTANT Data Log Function Block Execution


• There are three possible states for the Data Log function block: Idle,
Busy, and Complete (which includes Complete with Succeed and
Complete with Error).
• For one Data Log function block execution, the typical status starts from
Idle, then Busy and finishes with Complete. To trigger another function
block execution, the status must return to Idle first.
• Idle status changes to Busy status only when Enable input signal is in
the rising edge. Complete status enters Idle status when Enable input
signal is Disable status only.
• TSEnable and CfgId input parameters are only sampled at the Enable
input parameter's rising edge when a new function block execution
starts. During function block execution, the input parameters of
TSEnable and CfgId are locked and any changes are ignored.
• When execution completes, the status changes from Busy to Complete.
At this stage, if the input Enable is False, status changes to Idle after
indicating Complete for exactly one scan time. Otherwise function block
status is kept as Complete until input Enable changes to False.
• The data log file can only be created by the DLG instruction block. The
Connected Components Workbench software can only upload and delete
the data log file.
• There are separators in between every data variable in the data file that
is defined during configuration in the Connected Components
Workbench software.
See Supported Data Types for Data Log and Recipe Function Blocks on
page 243.
• Data variable values are sampled when the data logging function block
is in Busy state. However, the data logging file is only created when the
data logging function block is in the Complete state.

Table 102 - Supported Data Types for Data Log and Recipe Function Blocks
Data Type Description Example Format in Output Data Log File
Logical Boolean with values 0: FALSE
BOOL(1) TRUE and FALSE 1: TRUE)
SINT Signed 8-bit integer value -128, 127
INT Signed 16-bit integer value -32768, 32767
DINT Signed 32-bit integer value -2147483648, 2147483647
LINT Signed 64-bit integer value -9223372036854775808, 9223372036854775807
USINT(BYTE) Unsigned 8-bit integer value 0, 255
UINT(WORD) Unsigned 16-bit integer value 0, 65535

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 243


Chapter 12 Using microSD Cards

Table 102 - Supported Data Types for Data Log and Recipe Function Blocks (Continued)
Data Type Description Example Format in Output Data Log File
UDINT(DWORD) Unsigned 32-bit integer value 0, 4294967295
ULINT(LWORD) Unsigned 64-bit integer value 0, 18446744073709551615
REAL 32-bit floating point value -3.40282347E+38, +3.40282347E+38
LREAL 64-bit floating point value -1.7976931348623157E+308, +1.7976931348623157E+308
character string
STRING(2) (1 byte per character) “Rotation Speed”
1234567
Unsigned 32-bit
DATE(1) integer value (Date variables are stored as 32-bit words, a positive number
of seconds beginning at 1970-01-01 at midnight GMT.)
1234567
Unsigned 32-bit
TIME(1) integer value (Time variables are stored as 32-bit words, positive number of
milliseconds).
(1) BOOL, DATE, TIME data variables are presented in decimal digital format in the microSD Card. You can convert this format to
a more friendly format. For example, use the ANY_TO_STRING function block to convert BOOL data type (0, 1) to FALSE or TRUE.
You can similarly do the same for DATE and TIME data types.
DATE data type is presented in differential decimal digital value between system baseline time (1970/01/01,00:00:00) and
current date value. Unit is millisecond.
Time should be absolute time value. Unit is second.
(2) String data variables are enclosed in double quotation marks in the data log file.
The example below shows DSET1 using string variables and DSET2 using integers.

Data Log Performance


Data Log – Data Payload vs. Performance Time
Number of Characters
Parameter
28 502 518 1028 1493 3676
Average write time per data log 541.75 ms 1043.75 ms 1086.67 ms 1632.36 ms 1972.9 ms 2696.22 ms
file including all overheads
Average write time excluding first 500.40 ms 963.86 ms 999.14 ms 1472.37 ms 1818.33 ms 2545.92 ms
sample
Average write time excluding all 479.10 ms 493.03 ms 502.78 ms 505.54 ms 519.91 ms 715.68 ms
overheads

Time (msec)

2750 2692.22

2545.918367
2250 Average write time per
1972.9 data log including all
overheads

1750 1632.36 1818.326531 Average write time


excluding first sample
1472.367347
Average write time
1250 1086.67 excluding all overheads
1043.75
999.1414141
963.858859
750
541.75 715.68
502.7840909
500.40
479.10 493.0344828 505.5405405 519.9090909
250 Data Payload
0 500 1000 1500 2000 2500 3000 3500 4000

244 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12 Using microSD Cards

Time (msec)
2900

2400
Average write time per
data log including all
overheads
1900

Average write time


excluding first sample
1400

Average write time


excluding all overheads
900

400 Data Payload


28-characters 502-characters 518-characters 1028-characters 1493-characters 3676-characters

Recipe Micro800 controllers support the Recipe feature and allows you to store and load a list of data
to and/or from recipe data files using the RCP instruction. It also allows you to download,
upload, and delete Recipe data on the microSD card through the Connected Components
Workbench software.

A maximum number of 10 recipe sets are supported for a Micro800 program. Each recipe can
contain up to 128 variables, with a maximum of four data string variables per recipe. String
variables can have a maximum of 252 characters. Variations of the recipe are stored in
separate files with unique file names. For more information on how recipes are stored on the
microSD card, see the Recipe Directory Structure on page 246.
Table 103 - Recipe Specifications
Attribute Value
Maximum number of recipe sets 10 Recipe sets are stored in 10 directories
(Rcp_Id01...Rcp_Id10) with a maximum number of 50
Maximum number of recipes in each set 50 recipe files in each directory.
Configured in Connected Components Workbench
Maximum number of variables per recipe 128 software.
Maximum bytes per recipe file 4 KB

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 245


Chapter 12 Using microSD Cards

Recipe Directory Structure


On first execution of RCP, it creates the RECIPE folder under the current project
directory on the microSD card.

It also creates 10 subdirectories for each recipe set with a name following the CfgID
input value (1…10). If the CfgID value is 1, then the subfolder Rcp_Id01 is created.

Recipe files are then created/written into the folder, with file names that correspond
to the input value of the RcpName parameter for the RCP function block, as
configured in the Connected Components Workbench software. Each Recipe set can
contain up to 50 recipe files or variations. Filenames for recipe files should not
exceed 30 characters.

Recipe Configuration and Retrieval

You can retrieve recipe files from the microSD card using a card reader or by uploading and
downloading the recipe sets through the Connected Components Workbench software.

Recipe Function (RCP) Block

The RCP function block allows a user program to read variable values from an existing recipe
data file that is in the recipe folder of the microSD card and update run-time global or local
variable values in the controller. The RCP function block also allows the user program to write
run-time global or local variable values from the smaller controller into the recipe data file in
the microSD card.
RCP

Enable Status

RWFlag ErrorID

CfgId

RcpName

Table 104 - RCP Input and Output Parameters


Parameter Parameter Type Data Type Description
Recipe read/write function enable. If Rising Edge (Enable is
triggered from “low” to “high”), starts the recipe function
Enable INPUT BOOL block and the precondition is that the last operation is
completed.
TRUE: Recipe writes data variables to the recipe files into the
microSD card.
RWFlag INPUT BOOL FALSE: Recipe reads saved data variables from the microSD
card and update these variables accordingly.
CfgId INPUT USINT Recipe set number (1…10)
RcpName INPUT STRING Recipe data filename (maximum 30 characters)
Status OUTPUT USINT Current state of Recipe function block
ErrorID OUTPUT UDINT Detailed ErrorID information if RCP read/write fails.

246 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12 Using microSD Cards

Table 105 - RCP Function Block Status


Status Code Description
0 Recipe Idle status
1 Recipe Busy status
2 Recipe Complete Succeed status
3 Recipe Complete Error status

Table 106 - RCP Function Block Errors


ErrorID Error Name Description
0 RCP_ERR_NONE No error
1 RCP_ERR_NO_SDCARD microSD card is absent.
2 RCP_ERR_DATAFILE_FULL Recipe files exceed the maximum number of files per recipe set folder.
3 RCP_ERR_DATAFILE_ACCESS Error to access recipe data file in microSD card
4 RCP_ERR_CFG_ABSENT Recipe configuration file is absent.
5 RCP_ERR_CFG_ID Configure ID is absent in the recipe configuration file.

6 RCP_ERR_RESOURCE_BUSY The Recipe operation resource linked to this Recipe ID is used by another
function block operation.
7 RCP_ERR_CFG_FORMAT Recipe configuration file format is invalid.
8 RCP_ERR_RESERVED Reserved
9 RCP_ERR_UNKNOWN Unspecified error has occurred.
10 RCP_ERR_DATAFILE_NAME Recipe data file name is invalid.
11 RCP_ERR_DATAFOLDER_INVALID Recipe dataset folder is invalid.
12 RCP_ERR_DATAFILE_ABSENT Recipe data file is absent.
13 RCP_ERR_DATAFILE_FORMAT Recipe data file contents are wrong.
14 RCP_ERR_DATAFILE_SIZE Recipe data file size is too large (>4K).

IMPORTANT File access error is returned during RCP function block execution when
the card is full.
Figure 60 - Recipe Function Block Timing Diagram

Enable(1) Enable(1)

Enable(1)
Disable(0) Disable(0) Disable(0)

Error(3)
Succeed(2)

Busy(1) Busy(1)
Status(0)
Idle(0)
Idle(0) Idle(0)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 247


Chapter 12 Using microSD Cards

IMPORTANT RCP Function Block Execution


• There are three possible states for the Recipe function block: Idle, Busy,
Complete (Complete with Succeed and Complete with Error).
• For one Recipe function block execution, the typical status starts from
Idle then Busy and finishes with Complete. To trigger another function
block execution, the status must return to Idle first.
• Idle status changes to Busy status only when Enable input signal is in the
rising edge. Complete status enters Idle status when Enable input signal
is on Disable status.
• RWFlag, CfgId, and RcpName input parameters are only sampled at the
Enable input parameter's rising edge when a new function block
execution starts. During function block execution, the input parameters
of RWFlag, CfgId, and RcpName are locked and any changes are ignored.
• When the function block execution finishes, the function block status
changes from Busy to Complete. At this stage, if input Enable is False, the
function block status changes to Idle after staying as Complete for
exactly one scan time. Otherwise, function block status remains
Complete until input Enable changes to False.
• Recipe function block file name supports a maximum of 30 bytes in
length, and only supports upper and lower case letters Aa…Zz, numbers
0…9 and underscore (_).
• The RcpName input parameter does not allow file extensions (for
example, .txt) to be added to its value. The recipe data file is written to
the microSD card with the .txt extension.
• There are separators in between every data variable in the recipe data
file that is defined during configuration in the Connected Components
Workbench software. Redundant tab, space, carriage return, and line
feed characters are strictly not allowed.
See Supported Data Types for Data Log and Recipe Function Blocks on
page 243.
• Double quotes are not allowed within a string in a recipe file.

Quick Start Projects for The following sample quick start projects provide step-by-step instructions on how to use the
Data Log and Recipe function blocks in the Connected Components Workbench software to
Data Log and Recipe generate and manage your recipe files and data logs.
Function Blocks
Use the Data Log Feature

Configure Data Log

Create Data Log Ladder Program

Build and Download

Execute DLG Function Block

Upload Data Log File

248 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12 Using microSD Cards

Configure Data Log


1. In the Connected Components Workbench software, go to the Properties pane to
configure your data log.
2. Select Data Log. Click Add Data Set to add a dataset. Each dataset will be stored in the
same file. You can add up to 10 datasets per configuration.
3. Click Add Variable to add variables to the dataset. You can add up to 128 variables to
each dataset.
For this quick start sample project, add the following variables that you have previously
created to Dataset 1.
Local Variables
Variable Name Data Type
data_bool BOOL
data_int8 INT
data_string STRING

Create Data Log Ladder Program

1. Launch the Connected Components Workbench software. Create a user program for
your Micro800 controller.
2. Right-click Programs. Select Add New LD: Ladder Diagram. Name the Program (for
example, Prog1).

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 249


Chapter 12 Using microSD Cards

3. From the Toolbox, double-click Direct Contact to add it to the rung.

4. From the Toolbox, double-click Block to add it to the rung.


5. On the Block Selector window that appears, type DLG to filter the DLG function block
from the list of available function blocks. Select OK.

6. Create the following local variables for your project.

250 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12 Using microSD Cards

Local Variables
Variable Name Data Type
EnDlg BOOL
cfg_id USINT
data_time_enable BOOL
error UDINT
status USINT
data_bool BOOL
data_int8 INT
data_string STRING
7. Assign the variables to the DLG input and output parameters as follows:

For the CfgID input parameter, you can choose a predefined variable by choosing from the
Defined Words in the Connected Components Workbench software. To do so, click the CfgID
input box. From the Variable Selector window that appears, click the Defined Words tab and
choose from the list of defined words. For example, DSET1 that corresponds to DSET1 in your
recipe configuration. See Figure 61.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 251


Chapter 12 Using microSD Cards

Figure 61 - Choose a Predefined Variable

Build and Download

After configuring data log properties, build the program and download to the controller.

Execute DLG Function Block

Execute the DLG function block. Notice the Status output go from 0 (Idle) to
1 (Enable), and 2 (Succeed).

252 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12 Using microSD Cards

Upload Data Log File

You can retrieve data log files from the microSD card using a card reader or by uploading the
data logs through the Connected Components Workbench software.
1. To use the Upload feature, go to the Properties section of your project in the Connected
Components Workbench software.
2. Select Data Log. Click Manage and then choose Upload.

IMPORTANT The Manage button is not available in DEBUG mode. You must stop
DEBUG mode to use the Manage button to upload data log files.
Uploading data log files in PROGRAM mode is recommended for
performance and file locking reasons.
3. From the Upload window that appears, select the date of the data log files that you
would like to upload. You can upload data logs for the entire month by selecting the
Whole Month checkbox

4. If the file exists in your destination folder, select whether you would like to Overwrite
file, Skip file, or Preserve both files.
5. Select Upload. The progress bar tells you whether the upload is successful or not.

IMPORTANT Do not take out the microSD card from the slot while data is being
written or retrieved from the card. Ongoing write and retrieval
operations are indicated by a flashing SD status LED.

IMPORTANT For better data log file management, you can use a third-party tool or
DOS CMD to merge all your data log files into one file and import as a CSV
file in Excel®.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 253


Chapter 12 Using microSD Cards

Use the Recipe Feature

Configure Recipe

Create Recipe Ladder Program

Build and Download

Execute RCP Function Block

Upload Recipe Files

Configure Recipe
1. In the Connected Components Workbench software, go to the Properties pane to
configure Recipe.
2. Select Recipe. Select Add Recipe to add a recipe. Each recipe is stored in separate files.
You can add up to 10 recipes per configuration.
3. Select Add Variable to add variables to the recipe. You can add up to 128 variables to
each recipe.
For this quick start sample project, add the following variables that you have previously
created to RCP 1:
Local Variables
Variable Name Data Type
data_bool BOOL
data_int8 INT

254 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12 Using microSD Cards

Create Recipe Ladder Program

1. Launch the Connected Components Workbench software. Create a user program for
your Micro800 controller.
2. Right-click Programs. Select Add New LD: Ladder Diagram. Name the Program (for
example, Prog2).
3. From the Toolbox, double-click Direct Contact to add it to the first rung.

4. From the Toolbox, double-click Block to add it to the rung.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 255


Chapter 12 Using microSD Cards

5. On the Block Selector window that appears, type RCP to filter the Recipe function block
from the list of available function blocks. Select OK.

6. From the Toolbox, double-click rung to add another rung.


7. Add a Direct Contact and RCP function block to this second rung by following steps 3…5.
8. Create the following local variables for your program, in addition to the ones that you
have already created for data log.

Local Variables
Variable Name Data Type
recipe_file STRING
recipe_file2 STRING
cfg_id2 USINT
read BOOL
write BOOL

256 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12 Using microSD Cards

9. Assign the variables to the RCP input and output parameters as follows:

Rung 2

Rung 3

For the CfgID input parameter, you can choose a predefined variable by choosing from the
Defined Words in the Connected Components Workbench software. To do so, select the CfgID
input box. From the Variable Selector window that appears, select the Defined Words tab and
choose from the list of defined words. For example, RCP1 that corresponds to RCP1 in your
recipe configuration. See Figure 62.
Figure 62 - Choose a Predefined Variable

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 257


Chapter 12 Using microSD Cards

Build and Download

After configuring Recipe, build the program and download to the controller.

Execute RCP Function Block

Execute the RCP function block. Notice the Status output go from 0 (Idle) to
1 (Enable), and 2 (Succeed).

Upload Recipe Files

You can retrieve recipe files from the microSD card using a card reader or by uploading the
recipe files through the Connected Components Workbench software.
1. To use the Upload feature, go to the Properties section of your project in the Connected
Components Workbench software.
2. Select Recipe. Select Manage and then select Upload.
Through Manage, you can also choose to Download and Delete recipe files.
3. From the Upload window that appears, select the batch of recipe files that you would
like to upload.

4. If the file exists in your destination folder, select whether you would like to Overwrite
file, Skip file, or Preserve both Files.

258 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Chapter 12 Using microSD Cards

5. Select Upload. The progress bar tell you whether the upload is successful or not.

IMPORTANT Do not remove the microSD card from the slot while data is being written
or retrieved from the card. Ongoing write and retrieval operations are
indicated by a flashing SD status LED.

A recipe header file is saved with the uploaded recipes.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 259


Chapter 12 Using microSD Cards

Notes:

260 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix A

Modbus Mapping for Micro800 Controllers

Modbus Mapping Micro830, Micro850, and Micro870 controllers support Modbus RTU over a serial port through
the embedded, non-isolated serial port. The 2080-SERIALISOL isolated serial port plug-in
module also supports Modbus RTU. Both Modbus RTU master and slave are supported. Although
performance may be affected by the program scan time, the 48-point controllers can support
up to six serial ports (one embedded and five plug-ins), and so consequently, six separate
Modbus networks.

In addition, the Micro850 and Micro870 controller support Modbus TCP Client/Server through
the Ethernet port.

Endian Configuration
Modbus protocol is big-endian in that the most significant byte of a 16-bit word is transmitted
first. Micro800 controllers are also big-endian, so byte ordering does not have to be reversed.
For Micro800 data types larger than 16 bits (for example, DINT, LINT, REAL, LREAL), multiple
Modbus addresses may be required but the most significant byte is always the first.

Mapping Address Space and Supported Data Types


Since Micro800 controllers use symbolic variable names instead of physical memory
addresses, a mapping from symbolic variable name to physical Modbus addressing is
supported in Connected Components Workbench software. For example, InputSensorA is
mapped to Modbus address 100001.

By default Micro800 controllers follow the six-digit addressing specified in the latest Modbus
specification. For convenience, conceptually the Modbus address is mapped with the following
address ranges. The Connected Components Workbench mapping screen follows this
convention.
Table 107 - Mapping Table
0 - Coils 1 - Discrete Inputs 3 - Input Registers 4 - Holding Registers
000001…065536 100001…165536 300001…365536 400001…465536
Variable Data Type
Supported Modbus Address Supported Modbus Address Supported Modbus Address Supported Modbus Address
Used Used Used Used
BOOL Y 1 Y 1
SINT Y 8 Y 8
BYTE Y 8 Y 8
USINT Y 8 Y 8
INT Y 16 Y 16 Y 1 Y 1
UINT Y 16 Y 16 Y 1 Y 1
WORD Y 16 Y 16 Y 1 Y 1
REAL Y 32 Y 32 Y 2 Y 2
DINT Y 32 Y 32 Y 2 Y 2
UDINT Y 32 Y 32 Y 2 Y 2
DWORD Y 32 Y 32 Y 2 Y 2
LWORD Y 64 Y 64 Y 4 Y 4

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 261


Appendix A Modbus Mapping for Micro800 Controllers

Table 107 - Mapping Table (Continued)


0 - Coils 1 - Discrete Inputs 3 - Input Registers 4 - Holding Registers
000001…065536 100001…165536 300001…365536 400001…465536
Variable Data Type
Supported Modbus Address Supported Modbus Address Supported Modbus Address Supported Modbus Address
Used Used Used Used
ULINT Y 64 Y 64 Y 4 Y 4
LINT Y 64 Y 64 Y 4 Y 4
LREAL Y 64 Y 64 Y 4 Y 4

NOTE: Strings are not supported.

To make it easier to map variables to five-digit Modbus addresses, the Connected Components
Workbench mapping tool checks the number of characters that are entered for the Modbus
Address. If only five-digits are entered, the address is treated as a five-digit Modbus address.
This means that the Coils are mapped from 00001…09999, Discrete Inputs are mapped from
10001…19999, Input Registers are mapped from 30001…39999, and Holding Registers are
mapping from 40001…49999.

Example 1, PanelView 800 HMI (Master) to Micro800 (Slave)


The embedded serial port is targeted for use with HMIs using Modbus RTU. The maximum
recommended cable distance is 3 meters (10 feet). Use the 2080-SERIALISOL serial port plug-in
module if longer distances or more noise immunity is needed.

The HMI is typically configured for Master and the Micro800 embedded serial port is configured
for Slave.
From the default Communications Settings for a PanelView 800 HMI (PV800), there are three
items that must be checked or modified to configure communications from PV800 to
Micro800.
1. Change the protocol from DF1 to Modbus.

262 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix A Modbus Mapping for Micro800 Controllers

2. Set the Address of Micro800 slave to match the serial port configuration for the
controller.

3. Deactivate Tags on Error. This is to prevent the requirement of power cycling PV800
when new Modbus Mappings are downloaded from the Connected Components
Workbench software to the Micro800 controller.

Example 2, Micro800 (Master) to PowerFlex 4M Drive (Slave)


The following is the overview of the steps to be taken for configuring a PowerFlex 4M drive.
Parameter numbers that are listed in this section are for a PowerFlex 4M and are different if
you are using another PowerFlex 4-class drive.
Table 108 - Parameters in PowerFlex 4-class Drives
Parameter Number
Parameter Name
4M 4 40 40P 400 400N 400P
Start Source P106 P36
Speed Reference P108 P38
Comm Data Rate C302 A103 C103
Comm Node Addr C303 A104 C104
Comm Loss Action C304 A105 C105
Comm Loss Time C305 A106 C106
Comm Format C306 A107 C102

• Connect the 1203-USB to the PowerFlex drive and to the computer.


• Launch the Connected Components Workbench software, then connect to the drive and
set the parameters.

To configure the PowerFlex 4M drive, perform the following steps:


1. Double-click the PowerFlex 4M drive if it is not already open in the Connected
Components Workbench software.
2. Select Connect.
3. In the Connection Browser, expand the AB_DF1 DH+™ Driver.
Select the AB DSI (PF4 Port) and select OK.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 263


Appendix A Modbus Mapping for Micro800 Controllers

4. Once the Drive has connected and been read in, select the Start up wizard and change
the following items. Select Finish to save the changes to the drive.
- Select the Comm Port as the Speed Reference. Set P108 [Speed Reference] to 5
(Comm Port).
- Set Start Source to Comm Port. Set P106 [Start Source] to 5 (Comm Port).
- Defaults for the remaining Inputs
- Accept Defaults for the remainder and select Finish.
5. Select Parameters from the Connected Components Workbench window.

6. The Parameter window opens. Resize it to view the parameters. From this window, you
can view and set the data values of Parameters.

7. From the Parameter window, change the Parameters in Table 109 to set the
communications for Modbus RTU so that the PowerFlex 4M Drive communicates with
the Micro830/850/870 controller via Modbus RTU communication.
Table 109 - Modbus RTU Parameters
Parameter Description Setting
C302 Comm. Data Rate (Baud Rate) 4 = 19200 bps 4
C303 Communication Node Address (address range is 1…127) 2
Comm. Loss Action (Action that is taken when loss communication) 0 = Fault with
C304 0
coast stop
Comm. Loss Time (Time remain in communication before taking action set in
C305 5
C304) 5 sec (max 60)
C306 Comm. Format (Data/Parity/Stop) RTU:8 Data Bit, Parity None, 1 Stop bit 0
8. Disconnect the Communications and save your project.

9. Turn off the power to the drive until the PowerFlex 4M display blanks out completely,
then restore power to the PowerFlex 4M.
264 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023
Appendix A Modbus Mapping for Micro800 Controllers

The drive is now ready to be controlled by Modbus RTU communication commands


initiated from the Micro830/850/870 controller.

Modbus devices can be 0-based (registers are numbered starting at 0) or 1-based (registers
are numbered starting at 1). When PowerFlex 4-class drives are used with Micro800
controllers, the register addresses that are listed in the PowerFlex drive user manuals must be
offset by n+1.

For example, the Logic Command word is at address 8192, but your Micro800 program must
use 8193 (8192+1) to access it.

EXAMPLE: Modbus Address (n+1 value shown)


8193 Logic Command word (Stop, Start, Jog, and so on)
8194 Speed Reference word
xxx.x format for PowerFlex 4/4M/40 drives, where “123” = 12.3 Hz
xxx.xx format for PowerFlex 40P/400/400N/400P drives, where “123” = 1.23 Hz
8449 Logic Status word (Read, Active, Fault, and so on.)
8452 Speed Feedback word (uses same format as Speed Reference)
8450 Error Code word
(n+1) To access Parameter

If the respective PowerFlex drive supports Modbus Function Code 16 Preset (Write)
Multiple Registers, use one write message with a length of “2” to write the Logic
Command (8193) and Speed reference (8194) simultaneously.
Use one Function Code 03 Read Holding Registers with a length of “4” to read the
Logic status (8449), Error Code (8450), and Speed Feedback (8452) simultaneously.
See the respective PowerFlex 4-class drive user manual for additional information about
Modbus addressing.

Performance
The performance of MSG_MODBUS (Micro800 controller is configured as the master) is affected
by the Program Scan because messages are serviced when the message instruction is
executed in a program. For example, if the program scan is 100 ms and six serial ports are
used, then the theoretical maximum for serial ports is 60 messages/second total. This
theoretical maximum may not be possible since MSG_MODBUS is a master/slave request/
response protocol, so performance is affected by several variables such as message size,
communication rate, and slave response time.

The performance of Micro800 controllers when receiving Modbus request messages (Micro800
controller is configured as the slave) is also affected by the Program Scan. Each serial port is
serviced only once per program scan.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 265


Appendix A Modbus Mapping for Micro800 Controllers

Notes:

266 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B

Quick Starts

This chapter covers some common tasks and quick start instructions that are aimed to make
you familiar with the Connected Components Workbench software.

Update Your Micro800 The quick start shows you how to update the firmware for a Micro800 controller using
Connected Components Workbench software version 10 or later.
Controller Firmware
From Connected Components Workbench software release 10 onwards, there are two options
you can select when updating the firmware:
• Upgrade or Downgrade – This option retains the controller’s existing configuration,
Ethernet settings, and password.
• Reset – This option clears the controller’s existing configuration, Ethernet settings, and
password.

The procedure to update the controller is similar for both options.

ATTENTION: Retention of the controller’s existing configuration, Ethernet


settings, and password is only available when updating from firmware
revision 10 to the same or later revision. If updating from firmware revision 10
to 9 or earlier, or updating to firmware revision 10 from an earlier revision, the
controller’s existing configuration, Ethernet settings, and password are
cleared.

IMPORTANT If you have forgotten the password for the controller, use the Reset
option to clear the password.
On the Micro850 and Micro870 controllers, you can update your controllers through the
Ethernet port and USB.

IMPORTANT To update your controller over USB successfully, connect only one
controller to your computer, and do not perform the update in a virtual
machine such as VMware.

IMPORTANT Update over USB using FactoryTalk Linx software with a 32-bit
operating system is not supported. Use either a 64-bit operating system
or RSLinx Classic software.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 267


Appendix B Quick Starts

To begin, launch the Connected Components Workbench software:


1. In the menu, select Device > Update Firmware > Upgrade or Downgrade...
Alternatively, in the Project Organizer, right-click the controller and select Update
Firmware > Upgrade or Downgrade...

2. If your project does not have a connection path to the controller, the Connection
Browser dialog appears. Select your controller, then select OK.

3. In the Upgrade or Downgrade Firmware dialog box, select the desired Target Revision to
update the controller.

If the desired firmware revision is not shown in the drop-down list, you can download
that firmware revision by clicking the “Get the firmware files online” link.
You can also change the Connection Path by selecting the “Change” link.

268 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B Quick Starts

4. When you have confirmed the settings, select Update to begin updating the controller.
The update progress is shown in the dialog box.

5. After the update is completed, the status is shown in the dialog box.

IMPORTANT After control flashing the controller, some microSD cards may not be
detected. Remove and insert the microSD card, or power cycle the
controller if this issue is encountered.

Firmware Update From MicroSD Card


With Connected Components Workbench software version 12 or later, and the microSD card
plug-in for Micro800 controllers, you can update your Micro830, Micro850, and Micro870
controller from the microSD card and with ControlFLASH. This is two-step process – first you
transfer the firmware to the microSD card using the SD Card Utility, then you edit the
ConfigMeFirst.txt file to initiate the update process. See the following instructions for
performing the update from the microSD card.

Step 1 – Transfer the Firmware to the microSD Card


1. Launch the Connected Components Workbench software.
2. Click Tools > SD Card Utility.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 269


Appendix B Quick Starts

The SD Card Utility window appears.

3. Select the drive letter that points to the microSD card on your computer from the
dropdown list.
You can check the drive letter by looking in Windows® Explorer. For this example, the
microSD card uses the drive letter “G”.

4. Select the catalog number of your Micro800 controller.

5. Select the firmware revision that you want to update your Micro800 controller with.

270 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B Quick Starts

The list of firmware revisions is installed together with the Connected Components
Workbench software. If you require a revision that is not listed, download the firmware
from the Product Compatibility and Download Center (PCDC) at rok.auto/pcdc and
install the included ControlFLASH kit.

IMPORTANT You must sign in to the Rockwell Automation website before


downloading a firmware revision.
Close and relaunch the Connected Components Workbench software, then open the SD
Card Utility again. The revision should now appear in the list.
6. Click Transfer.
The file is copied to the microSD card.

7. Close the SD Card Utility and proceed to the next step to edit the ConfigMeFirst.txt file.

Step 2 – Edit the ConfigMeFirst.txt File

To update the controller with the firmware that you have transferred to the microSD card, you
must edit the ConfigMeFirst.txt file with the settings listed below. These settings must be
added at the beginning of the file.
Table 110 - New ConfigMeFirst.txt Configuration Settings for Firmware Update
Setting Takes Effect On... Description
Firmware update settings
File path location of the firmware revision on the microSD
[FWFILE] Powerup card. The default location is in the following format:
firmware\<catalog number>\<filename of firmware>
Sets whether to upgrade or downgrade the controller
firmware from the current revision.
0 = Upgrade firmware; 1 = Downgrade firmware
[FWDOWN] Powerup IMPORTANT: Firmware Upgrade occurs if the [FWFILE]
setting points to a newer revision of the firmware file,
compared to the firmware in the controller, irrespective of
the [FWDOWN] setting.

Example of ConfigMeFirst.txt File for Firmware Update

After you have edited the file, insert the microSD card into the controller. Cycle power to the
controller and the update process begins. The SD status LED does not blink when updating the
firmware from the microSD card is in progress.

When using the ControlFLASH software to downgrading the firmware of a Micro830 or


Micro850 series B controller to firmware revision 10.011, the program reports an error and fails
at the initial stage. However when upgrading a Micro800 controller using the microSD card
with a firmware revision that is not compatible with the series, the controller hard faults.
There is no error code reported after you have cycled power to the controller. The controller
retains the old firmware.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 271


Appendix B Quick Starts

Table 111 - Fault Status Indicator Description


State Indicates
Steady Red Fault
Flashing Green Run

For a list of firmware and series compatibility, see the release notes for firmware revision
11.011 or later, on the Product Compatibility and Download Center (PCDC) at rok.auto/pcdc.

Establish Communications This quick start shows you how to get RSLinx® RSWho to communicate with a Micro830,
Micro850, or Micro870 controller through USB. Micro830, Micro850, and Micro870 controllers
Between RSLinx and a use the AB_VBP-x driver.
Micro830/Micro850/
RSLinx Classic software is installed as part of the Connected Components Workbench software
Micro870 Controller installation process. The minimum version of RSLinx Classic with full Micro800 controller
Through USB support is 2.57, build 15 (released March 2011).
1. Power up the Micro830/Micro850/Micro870 controller.
2. Plug the USB A/B cable directly between your PC and the Micro830/Micro850/Micro870
controller.
3. Windows should discover the new hardware. Select No, not this time and then select
Next.

4. Select Install the software automatically (Recommended), and then select Next.

272 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B Quick Starts

5. The Wizard searches for new hardware.

6. Select Finish when the wizard completes the installation.

7. Open RSLinx Classic and run RSWho by selecting the icon.


If the proper EDS file is installed, the Micro830/Micro850/Micro870 controller should be
properly identified and show up under both the Virtual Backplane (VBP) driver and the
USB driver, which was automatically created.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 273


Appendix B Quick Starts

If instead the Micro830/Micro850/Micro870 shows up as a "1756 Module" under the


AB_VBP-1 Virtual Chassis driver, then the proper EDS file for this major revision of
firmware has not yet been installed or the controller is running pre-release firmware
(Major Revision=0).

Since the Micro830/Micro850/Micro870 controllers support embedded EDS files, right-


click this device, and select Upload EDS file from device.

8. On the EDS wizard that appears, select Next to continue.

274 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B Quick Starts

9. Follow the prompts to upload and install the EDS file.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 275


Appendix B Quick Starts

10. Select Finish to complete.

If the Micro830/Micro850/Micro870 still shows up as a 1756 Module, then you are


probably running pre-release firmware that is reporting itself as Major Revision 0,
which does not match the embedded EDS file. To confirm, right-click the device and
select Device Properties (firmware revision is Major.Minor).

276 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B Quick Starts

Configure Controller Set, change, and clear the password on a target controller through the Connected Components
Workbench software.
Password
IMPORTANT The following instructions are supported on Connected Components
Workbench software version 2 and Micro800 controllers with firmware
revision 2.
For more information about the controller password feature on
Micro800 controllers, see Controller Security on page 225.

Set Controller Password

IMPORTANT After creating or changing the controller password, you must power
down the controller in order for the password to be saved.

In the following instructions, the Connected Components Workbench software is connected to


the Micro800 controller.
1. On the Connected Components Workbench software, open the project for the target
controller.
2. Select Connect to connect to the target controller.
On the Device Details toolbar, the Secure tooltip message “Set, Change, or Clear
Micro800 Controller Password Protection” is displayed.

3. Click Secure. Select Set Password.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 277


Appendix B Quick Starts

4. The Set Controller Password dialog appears. Provide password. Confirm the password
by providing it again in the Confirm field.

Passwords must have at least eight characters to be valid.


5. Select OK.
Once a password is created, any new sessions that try to connect to the controller have
to supply the password to gain exclusive access to the target controller.

Change Password
With an authorized session, you can change the password on a target controller through the
Connected Components Workbench software. The target controller must be in Connected
status.
1. On the Device Details toolbar, select Secure. Select Change Password.

2. The Change Controller Password dialog appears. Enter Old Password, New Password
and confirm the new password.

3. Select OK.

The controller requires the new password to grant access to any new session.

278 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B Quick Starts

Clear Password
With an authorized session, you can clear the password on a target controller through the
Connected Components Workbench software.
1. On the Device Details toolbar, select Secure. Select Clear Password.

2. The Clear Password dialog appears. Enter your password.


3. Select OK to clear the password.

The controller requires no password on any new session.

Use the High-Speed Counter To use a HSC device, you first need to establish the HSC counting mode required by your
application. See HSC Mode (HSCAPP.HSCMode) on page 206 for available modes on Micro800
controllers.

The following sample project guides you through the creation of a project that uses HSC mode
6, a quadrature counter with phased inputs A and B. It shows you how to write a simple ladder
program with the HSC function block, create variables, and assign variables and values to your
function block. It also guides you through a step-by-step process on how test your program,
and enable a Programmable Light Switch (PLS).

This sample project uses a quadrature encoder. The quadrature encoder is used for
determining direction of rotation and position for rotating, such as a lathe. The Bidirectional
Counter counts the rotation of the Quadrature Encoder.

Figure 63 on page 280 shows a quadrature encoder that is connected to inputs 0 and 1. The
count direction is determined by the phase angle between A and B. If A leads B, the counter
increments. If B leads A, the counter decrements.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 279


Appendix B Quick Starts

Figure 63 - Quadrature Encoder on Inputs 0 and 1

A
Input 0

Quadrature Encoder Input 1


B
Forward Rotation Reverse Rotation

B
1 2 3 2 1

Count

This quick start includes the following sections:


• Create the HSC Project and Variables on page 280
• Assign Values to the HSC Variables on page 283
• Assign Variables to the Function Block on page 285
• Run the High-Speed Counter on page 286
• Use the Programmable Limit Switch (PLS) Function on page 287

Create the HSC Project and Variables


1. Start the Connected Components Workbench software and open a new project. From
the Device Toolbox, go to Catalog > Controllers. Double-click your controller(1) or drag-
and-drop it onto the Project Organizer window.

2. Under Project Organizer, right-click Programs. Select Add New LD: Ladder Diagram to
add a new ladder logic program.

(1) The HSC module is supported on all Micro830, Micro850, and Micro870 controllers, except on 2080-LCxx-xxAWB types.

280 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B Quick Starts

3. Right-click UntitledLD and select Open.

4. From the Toolbox, double-click Direct Contact to add it to the rung or drag-and-drop
Direct Contact onto the Rung.

5. Double-click the Direct Contact that you have added to bring up the Variable Selector
dialog. Select the I/O - Micro830 tab. Assign the Direct Contact to input 5 by selecting
_IO_EM_DI_05. Select OK.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 281


Appendix B Quick Starts

6. To the right of the Direct Contact, add a function block by double-clicking the function
block from the Toolbox or dragging and dropping the function block onto the rung.

7. Double-click the function block to open up the Instruction Selector dialog. Choose HSC.
You can do a quick search for HSC function block by typing “HSC” on the name field.
Select OK.

Your ladder rung appears as shown:

8. On the Project Organizer pane, double-click Local Variables to bring up the Variables
window. Add the following variables with the corresponding data types, as specified in
Table 112 on page 282.
Table 112 - Variable Data Types
Variable Name Data Type
MyCommand USINT
MyAppData HSCAPP

282 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B Quick Starts

Table 112 - Variable Data Types


Variable Name Data Type
MyInfo HSCSTS
MyPLS PLS
MyStatus UINT

After adding the variables, your Local Variables table should look like this:

Assign Values to the HSC Variables


Next, you must assign values to the variables you have created. Typically, a routine is used to
assign values to your variables. For illustration purposes, this quick start assigns values
through the Initial Value column of the Local Variables table.
In a real program, you should write a routine to assign values to your
variable according to your application.
1. On the Initial Value field for the MyCommand variable, type 1.
See HSC Commands (HScCmd) on page 218 for more information on the description for
each value.
2. Assign values to the MyAppData variables. Expand the list of MyAppData subvariables
selecting the + sign. Set the values of the different subvariables as shown in the
following screenshot.

IMPORTANT MyAppData variable has subvariables that determine the settings of the
counter. It is crucial to know each one to determine how the counter will
performs. A quick summary is provided below but you can also see HSC
APP Data Structure on page 204 for detailed information.
MyAppData.PlsEnable allows you to either enable or disable the PLS settings. It should be set
to FALSE (disabled) if the MyAppData variable is to be used.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 283


Appendix B Quick Starts

MyAppData.HscID allows you to specify which embedded inputs is used depending on the
mode and the type of application. See the table HSC Inputs and Wiring Mapping on page 203 to
know the different IDs that can be used, and the embedded inputs and its characteristics.

If ID 0 is used, ID 1 cannot be used on the same controller since the inputs are being used by
the Reset and Hold.
MyAppData.HscMode allows you to specify the type of operation in which the HSC uses to
count. See HSC Mode (HSCAPP.HSCMode) on page 206 for more information about HSC modes.
See Table 113 for the list available modes.
Table 113 - HSC Operating Modes
Mode Type
Number
Up Counter – The accumulator is immediately cleared (0) when it reaches the high preset. A low
0 preset cannot be defined in this mode.
Up Counter with external reset and hold – The accumulator is immediately cleared (0) when it
1 reaches the high preset. A low preset cannot be defined in this mode.
2 Counter with external direction
3 Counter with external direction, reset, and hold
4 Two input counter (up and down)
5 Two input counter (up and down) with external reset and hold
6 Quadrature counter (phased inputs A and B)
7 Quadrature counter (phased inputs A and B) with external reset and hold
8 Quadrature X4 counter (phased inputs A and B)
9 Quadrature X4 counter (phased inputs A and B) with external reset and hold

Modes 1, 3, 5, 7, and 9 only work when an ID of 0, 2, or 4 is set because these modes use reset
and hold. Modes 0, 2, 4, 6, and 8 work on any ID. Modes 6…9 only work when an encoder is
connected to the controller. Use the HSC ID chart as a reference to wire the encoder to the
controller.

MyAppData.HPSetting, MyAppData.LPSetting, MyAppData.OFSetting, and


MyAppData.UFSetting are all user-defined variables that represent the counting range of the
HSC. Figure 64 gives an example of a range of values that can be set for these variables.
Figure 64 - Range of Values

Variable

HscAppData.OFSetting Overflow +2,147,483,647 maximum

HscAppData.HPSetting High Preset

HscAppData.LPSetting Low Preset

HscAppData.UFSetting Underflow -2,147,483,648

MyAppData.OutputMask along with MyAppData.HPOutput and MyAppData.LPOutput allows


you to specify which embedded outputs can be turned on when a High Preset or Low Preset is
reached. These variables use a combination of decimals and binary numbers to specify the
embedded outputs that are able to turn on/off.

In our example, we first set the Output Mask to a decimal value of 3 which, when converted to
binary, is equal to 0011. This means that now outputs O0 and O1 can be turned On/Off.

284 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B Quick Starts

We have set the HPOutput to a decimal value of 1, which, when converted to binary, is equal to
0001. This means that when a High Preset is reached, output O0 turns on and stays on until the
HSC is reset or the counter counts back down to a Low Preset. The LPOutput works the same
way as the HPOutput except an output turns on when a Low Preset is reached.

Assign Variables to the Function Block


1. Return to the ladder diagram and assign the variables you have configured to the
corresponding elements of the HSC function block. The HSC function block should
appear as shown:

To assign a variable to a particular element in your function block, double-click the


empty variable block. On the Variable selector that appears, choose the variable that
you have created. For example, for the input element HSCAppData, select the variable
MyAppData.
2. Next, select the Micro830 controller under the Project Organizer pane to bring up the
Micro830 Controller Properties pane. Under Controller Properties, select Embedded I/O.
Set the input filters to a correct value depending on the characteristics of your encoder.

3. Make sure that your encoder is connected to the Micro830 controller.


4. Power up the Micro830 controller and connect it to your PC. Build the program in the
Connected Components Workbench software and download it to the controller.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 285


Appendix B Quick Starts

Run the High-Speed Counter


1. To test the program, go into debug mode by doing any of the following:
- Select Debug menu, then choose Start Debugging,
- Select the green play button below the menu bar, or
- Press the F5 Windows key.

Now that we are on debug mode we can see the values of the HSC output. The HSC
function block has two outputs, one is the STS (MyStatus) and the other is the HSCSTS
(MyInfo).
2. Double-click the Direct Contact labeled _IO_EM_DI_05 to bring up the Variable
Monitoring window.
3. Select the I/O - Micro830 tab. Select the _IO_EM_DI_05 row. Check the boxes Lock and
Logical Value so that this input is forced in the ON position.

4. Click the Local Variables tab to see any real time changes being made to the variables.
Expand the MyAppData and MyInfo variable list by selecting the + sign.

286 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B Quick Starts

5. Turn On the encoder to see the counter count up/down. For example, if the encoder is
attached to a motor shaft then turn on the motor to trigger the HSC count. The counter
value is displayed on MyInfo.Accumulator. MyStatus variable should display a Logical
Value of 1, which means that the HSC is running.
See HSC Function Block Status Codes on page 218 for the complete list of
status codes. For example, if the MyStatus value is 04, a configuration
error exists and the controller will fault. You must check your
parameters in this case.

For this example, once the Accumulator reaches a High Preset value of 40, output 0 turns on,
and the HPReached flag turns on. Once the Accumulator reaches a Low Preset value of -40,
output 1 turns on and the LPReached flag turns on as well.

Use the Programmable Limit Switch (PLS) Function


The Programmable Limit Switch function allows you to configure the High-Speed Counter to
operate as a PLS (programmable limit switch) or rotary cam switch. The PLS is used when you
need multiple pairs of high and low presets (up to 255 pairs of high and low presets are
supported by the PLS).

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 287


Appendix B Quick Starts

1. Start a new project following the same steps and values as the previous project. Set the
values for the following variables as follows:
- HSCAPP.PlsEnable variable should be set to TRUE.
- Set a value only for UFSetting and OFSetting (OutputMask is optional depending if an
output is to be set or not). Your new values should follow the example in Figure 65:
Figure 65 - PLS Values

In this example, the PLS variable is given a dimension of [1..4]. This means that the HSC
can have four pairs of High and Low Presets.
Once again, your High Presets should be set lower than the OFSetting and the Low
Preset should be greater than the UFSetting. The HscHPOutPut and HscLPOutPut values
determine which outputs turn on when a High Preset or Low Preset is reached.
2. You can now build and download the program into the controller then debug and test it
following the instructions for the last project.

Forcing I/Os Inputs are logically forced. Status indicators do not show forced values, but the inputs in the
user program are forced.

Forcing is only possible with I/O and does not apply to user-defined variables and non-I/O
variables, and special functions such as HSC and Motion that execute independently from the
User Program scan. For example, for motion, Drive Ready input cannot be forced.

Unlike inputs, outputs are physically forced. Status indicators do show forced values and the
user program does not use forced values.

288 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B Quick Starts

Figure 66 illustrates forcing behavior.


Figure 66 - Forcing I/O Behavior
HSC

User program

Physical Logical Logical Physical


inputs Force Force outputs
inputs outputs

Normal
variables

Motion

• LED status indicators always match the physical value of I/O


• Normal, non-physical internal variables cannot be forced
• Special functions such as HSC and Motion cannot be forced

ATTENTION: Forcing variables can result in sudden machine


movement, possibly injuring personnel or equipment. Use extreme
caution when forcing variables.

Checking if Forces (locks) are Enabled


If the Connected Components Workbench software is available, check the Variable Monitor
while debugging online. Forcing is performed by first Locking an I/O variable and then setting
the Logical Value for Inputs and Physical Value for Outputs. Remember that you cannot force a
Physical Input and cannot force a Logical Output.

In many cases, the front of the controller is not visible to the operator and the Connected
Components Workbench software is not online with the controller. If you want the force status
to be visible to the operator, then the User Program must read the force status using the
SYS_INFO function block and then display the force status on something that the operator can
see, such as the human machine interface (HMI), or stack light. Figure 67 is an example
program in Structured Text.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 289


Appendix B Quick Starts

Figure 67 - Structured Text Example Program

If the front of the controller is visible, and not blocked by the cabinet enclosure, Micro830,
Micro850, and Micro870 controllers have a Force LED indicator.

I/O Forces After a Power Cycle


After you cycle power to a controller, all I/O forces are cleared from memory.

Use Run Mode Change Run Mode Change allows you to make small changes to the logic of a running project and
immediately testing it out on the controller, without having to go into Program mode or
disconnecting from the controller.

IMPORTANT The following requirements must be met to use Run Mode Change:
• Micro820/Micro830/Micro850 controller firmware revision 8 or higher,
and
• Connected Components Workbench Developer Edition software, version 8
or higher.

The following sample project guides you through the creation of a simple application for a
Micro850 controller without any plug-in modules, and how to use the Run Mode Change
feature.

Create the Project


1. Create a project for a Micro830/Micro85/Micro8700 controller without any plug-ins.
Observe that the controller is disconnected.

2. Right-click Programs and select Add > New LD: Ladder Diagram.

290 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B Quick Starts

3. From the Toolbox, double-click Direct Coil to add it to the rung, or drag-and-drop Direct
Coil onto the rung.
4. Double-click the newly added Direct Coil to bring up the Variable Selector dialog and
select “_IO_EM_DO_00”.

5. Build the project.

6. Download the project to the controller.


In the Connection Browser dialog, select the Micro850 controller.

7. Select Download current project to the controller.

8. Select Download to confirm.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 291


Appendix B Quick Starts

9. When the project has been downloaded to the controller, a prompt asking to change the
controller to Remote Run mode appears. Select Yes.

10. Observe that the controller is now in Debug mode.

IMPORTANT From Connected Components Workbench software version 8


onwards, selecting “Yes” to change the controller to Remote Run
mode after a downloading a project automatically switches it to
Debug mode.

Edit the Project Using Run Mode Change


Run Mode Change Toolbar

Run Mode Change Test Logic Changes Accept Changes Undo Changes

1. Click the Run Mode Change icon.


Observe that the controller goes into Edit mode and is still connected.

If you add a new variable during RMC, external data access and changing the access
type (default is Read/Write) of this new variable is not available until you have chosen to
Accept or Undo the Test Logic changes.

292 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix B Quick Starts

2. From the Toolbox, double-click Instruction Block to add it to the rung, or drag and drop
Instruction Block onto the rung.
3. Double-click the newly added Instruction Block and select “Timer On/Off “(TONOFF).

Configure the Instruction Block to trigger every one second.

4. From the Toolbox, double-click Reverse Contact to add it to the rung, or drag-and-drop
Reverse Contact onto the run. Place it to the left of the recently added Instruction Block.

5. Select the Test Logic Changes icon to build the project and download it to the
controller.

IMPORTANT When a Test Logic is performed, or undoing changes after the


Test Logic is completed, active communication instructions are
aborted while the changes are downloaded to the controller.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 293


Appendix B Quick Starts

6. The controller automatically goes into Debug mode and displays the updated project.

7. You can now choose to either Undo or Accept the changes to the project.

To Undo the Changes


1. Select the Undo Changes icon.
2. The changes are discarded and the original project is restored to the controller.

IMPORTANT When a Test Logic is performed, or undoing changes after the


Test Logic is completed, active communication instructions are
aborted while the changes are downloaded to the controller.
Observe that the original project is shown and the controller is in Debug mode.

To Accept the Changes


1. Select the Accept Changes icon.
2. Observe that only the Run Mode Change icon is now enabled and the controller remains
in Debug mode.

294 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix C

User Interrupts

Interrupts allow you to interrupt your program based on defined events. This chapter contains
information about using interrupts, the interrupt instructions, and interrupt configuration.

For more information on HSC Interrupt, see Use the High-speed Counter and Programmable
Limit Switch on page 201.

Information About Using The purpose of this section is to explain some fundamental properties of the User Interrupts,
including:
Interrupts
• What is an interrupt?
• When can the controller operation be interrupted?
• Priority of User Interrupts
• Interrupt Configuration
• User Fault Routine

What is an Interrupt?
An interrupt is an event that causes the controller to suspend the Program Organization Unit
(POU) it is performing, perform another POU, and then return to the suspended POU at the point
where it suspended. The Micro830, Micro850, and Micro870 controllers support the following
User Interrupts:
• User Fault Routine
• Event Interrupts (8)
• High-Speed Counter Interrupts (6)
• Selectable Timed Interrupts (4)
• Plug-in Module Interrupts (5)

An interrupt must be configured and enabled to execute. When any one of the interrupts is
configured (and enabled) and later occurs, the user program:
1. Suspends its execution of the current POU,
2. Performs a predefined POU based on which interrupt occurred, and
3. Returns to the suspended operation.
Interrupt Operation Example POU 2
POU 2 is the main control program.
rung 0
POU 10 is the interrupt routine. POU 10
• An Interrupt Event occurs at rung 123.
• POU 10 is executed.
• POU 2 execution resumes immediately after POU rung 123
10 is scanned.

rung 275

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 295


Appendix C User Interrupts

Specifically, if the controller program is executing normally and an interrupt event occurs:
1. The controller stops its normal execution.
2. Determines which interrupt occurred.
3. Goes immediately to the beginning of the POU specified for that User Interrupt.
4. Begins executing the User Interrupt POU (or set of POU/function blocks if the specified
POU calls a subsequent function block).
5. Completes the POU.
6. Resumes normal execution from the point where the controller program was
interrupted.

When Can the Controller Operation be Interrupted?


The Micro830 controllers allow interrupts to be serviced at any point of a program scan. Use
UID/ UIE instructions to protect the program block that should not be interrupted.

Priority of User Interrupts


When multiple interrupts occur, the interrupts are serviced based on their individual priority.

When an interrupt occurs and another interrupt has already occurred but has not been
serviced, the new interrupt is scheduled for execution based on its priority relative to the
other pending interrupts. At the next point in time when an interrupt can be serviced, all
interrupts are executed in the sequence of highest priority to lowest priority.

If an interrupt occurs while a lower priority interrupt is being serviced (executed), the currently
executing interrupt routine is suspended, and the higher priority interrupt is serviced. Then
the lower priority interrupt is allowed to complete before returning to normal processing.

If an interrupt occurs while a higher priority interrupt is being serviced (executed), and the
pending bit has been set for the lower priority interrupt, the currently executing interrupt
routine continues to completion. Then the lower priority interrupt runs before returning to
normal processing.
Table 114 - Priorities From Highest to Lowest
User Fault Routine Highest Priority
Event Interrupt0
Event Interrupt1
Event Interrupt2
Event Interrupt3
High-Speed Counter Interrupt0
High-Speed Counter Interrupt1
High-Speed Counter Interrupt2
High-Speed Counter Interrupt3
High-Speed Counter Interrupt4
High-Speed Counter Interrupt5
Event Interrupt4
Event Interrupt5
Event Interrupt6
Event Interrupt7
Selectable Timed Interrupt0
Selectable Timed Interrupt1
Selectable Timed Interrupt2
Selectable Timed Interrupt3
Plug-In Module Interrupt0, 1, 2, 3, 4 Lowest Priority

296 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix C User Interrupts

User Interrupt Configuration


User interrupts can be configured and set as AutoStart from the Interrupts window.

User Fault Routine


The user fault routine gives you the option of doing the cleanup before a controller shutdown,
when a specific user fault occurs. The fault routine is executed when any user fault occurs.
The fault routine is not executed for non-user faults.

The controller goes to Fault mode after a User Fault Routine is executed, and the User Program
execution stops.

Creating a User Fault Subroutine

To use the user fault subroutine:


1. Create a POU.
2. In the User Interrupt Configuration window, configure this POU as a User Fault routine.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 297


Appendix C User Interrupts

User Interrupt Instructions


Table 115 - List of User Interrupt Instructions
Instruction Used To: Page
Use the Selectable Timed Interrupt Start (STIS) instruction to the
STIS – Selectable Timed Start start the STI timer from the control program, rather than starting 298
automatically.
UID – User Interrupt Disable Use the User Interrupt Disable (UID) and the User Interrupt Enable 299
(UIE) instructions to create zones in which user interrupts cannot
UIE – User Interrupt Enable occur. 300
Use the UIF instruction to remove the selected pending interrupts
UIF – User Interrupt Flush 301
from the system.
Use this function to clear the Interrupt Lost bit for the selected User
UIC – User Interrupt Clear 302
Interrupt.

STIS - Selectable Timed Start


STIS

Enable STIS(name or Pin ID)


IRQType or ENO(Pin ID)
SetPoint

STI0 is used in this document to define how STIS works.


Table 116 - STIS Parameters

Parameter Parameter Type Data Parameter Description


Type
Enable Function
Enable Input BOOL When Enable = TRUE, the function is performed.
When Enable = FALSE, the function is not performed.
Use the STI defined DWORD
IRQType Input UDINT IRQ_STI0, IRQ_STI1, IRQ_STI2, IRQ_STI3
The user timer interrupt interval time value in milliseconds.
SetPoint Input UINT When SetPoint = 0, STI is disabled.
When SetPoint = 1…65535, STI is enabled.
STIS or ENO Output BOOL Rung Status (same as Enable)

The STIS instruction can be used to start and stop the STI function or to change the time
interval between STI user interrupts. The STI instruction has two operands:
• IRQType — This is the STI ID that you want to drive.
• SetPoint — This is the amount of time (in milliseconds) which must expire before
executing the selectable timed user interrupt. A value of zero disables the STI function.
The time range is from 0…65,535 milliseconds.

The STIS instruction applies the specified setpoint to the STI function as follows (STI0 is used
here as an example):
• If a zero setpoint is specified, the STI is disabled and STI0.Enable is cleared (0).
• If the STI is disabled (not timing) and a value greater than 0 is entered into the setpoint,
the STI starts timing to the new setpoint and STI0.Enable is set (1).
• If the STI is timing and the setpoint is changed, the new setting takes effect
immediately, restarting from zero. The STI continues to time until it reaches the new
setpoint.

298 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix C User Interrupts

UID - User Interrupt Disable


UID

Enable UID (name or Pin ID)


IRQType or ENO(Pin ID)

The UID instruction is used to disable selected user interrupts. Table 117 shows the types of
interrupts with their corresponding disable bits:
Table 117 - Types of Interrupts Disabled by the UID Instruction
Interrupt Type Element Decimal Value Corresponding Bit
Plug-In Module UPM4 8388608 bit 23
Plug-In Module UPM3 4194304 bit 22
Plug-In Module UPM2 2097152 bit 21
Plug-In Module UPM1 1048576 bit 20
Plug-In Module UPM0 524288 bit 19
STI - Selectable Timed Interrupt STI3 262144 bit 18
STI - Selectable Timed Interrupt STI2 131072 bit 17
STI - Selectable Timed Interrupt STI1 65536 bit 16
STI - Selectable Timed Interrupt STI0 32768 bit 15
EII - Event Input Interrupt Event 7 16384 bit 14
EII - Event Input Interrupt Event 6 8192 bit 13
EII - Event Input Interrupt Event 5 4096 bit 12
EII - Event Input Interrupt Event 4 2048 bit 11
HSC - High-Speed Counter HSC5 1024 bit 10
HSC - High-Speed Counter HSC4 512 bit 9
HSC - High-Speed Counter HSC3 256 bit 8
HSC - High-Speed Counter HSC2 128 bit 7
HSC - High-Speed Counter HSC1 64 bit 6
HSC - High-Speed Counter HSC0 32 bit 5
EII - Event Input Interrupt Event 3 16 bit 4
EII - Event Input Interrupt Event 2 8 bit 3
EII - Event Input Interrupt Event 1 4 bit 2
EII - Event Input Interrupt Event 0 2 bit 1
UFR - User Fault Routine Interrupt UFR 1 bit 0 (reserved)

To disable interrupts:
1. Select the interrupts that you want to disable.
2. Find the Decimal Value for the interrupts that you selected.
3. Add the Decimal Values if you selected multiple types of interrupt.
4. Enter the sum into the UID instruction.

For example, to disable EII Event 1 and EII Event 3:


EII Event 1 = 4, EII Event 3 = 16
4 + 16 = 20 (enter this value)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 299


Appendix C User Interrupts

UIE - User Interrupt Enable


UIE

Enable UIE (name or Pin ID)


IRQType or ENO(Pin ID)

Use the UIE instruction to enable selected user interrupts. Table 118 shows the types of
interrupts with their corresponding enable bits:
Table 118 - Types of Interrupts Enabled by the UIE Instruction
Interrupt Type Element Decimal Value Corresponding Bit
Plug-In Module UPM4 8388608 bit 23
Plug-In Module UPM3 4194304 bit 22
Plug-In Module UPM2 2097152 bit 21
Plug-In Module UPM1 1048576 bit 20
Plug-In Module UPM0 524288 bit 19
STI - Selectable Timed Interrupt STI3 262144 bit 18
STI - Selectable Timed Interrupt STI2 131072 bit 17
STI - Selectable Timed Interrupt STI1 65536 bit 16
STI - Selectable Timed Interrupt STI0 32768 bit 15
EII - Event Input Interrupt Event 7 16384 bit 14
EII - Event Input Interrupt Event 6 8192 bit 13
EII - Event Input Interrupt Event 5 4096 bit 12
EII - Event Input Interrupt Event 4 2048 bit 11
HSC - High-Speed Counter HSC5 1024 bit 10
HSC - High-Speed Counter HSC4 512 bit 9
HSC - High-Speed Counter HSC3 256 bit 8
HSC - High-Speed Counter HSC2 128 bit 7
HSC - High-Speed Counter HSC1 64 bit 6
HSC - High-Speed Counter HSC0 32 bit 5
EII - Event Input Interrupt Event 3 16 bit 4
EII - Event Input Interrupt Event 2 8 bit 3
EII - Event Input Interrupt Event 1 4 bit 2
EII - Event Input Interrupt Event 0 2 bit 1
1 bit 0 (reserved)

To enable interrupts:
1. Select the interrupts that you want to enable.
2. Find the Decimal Value for the interrupt that you selected.
3. Add the Decimal Values if you selected multiple types of interrupt.
4. Enter the sum into the UIE instruction.

For example, to enable EII Event 1 and EII Event 3:


EII Event 1 = 4, EII Event 3 = 16
4 + 16 = 20 (enter this value)

300 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix C User Interrupts

UIF - User Interrupt Flush


UIF

Enable UIF (name or Pin ID)


IRQType or ENO(Pin ID)

Use the UIF instruction to flush (remove pending interrupts from the system) selected user
interrupts. Table 119 shows the types of interrupts with their corresponding flush bits:
Table 119 - Types of Interrupts Disabled by the UIF Instruction
Interrupt Type Element Decimal Value Corresponding Bit
Plug-In Module UPM4 8388608 bit 23
Plug-In Module UPM3 4194304 bit 22
Plug-In Module UPM2 2097152 bit 21
Plug-In Module UPM1 1048576 bit 20
Plug-In Module UPM0 524288 bit 19
STI - Selectable Timed Interrupt STI3 262144 bit 18
STI - Selectable Timed Interrupt STI2 131072 bit 17
STI - Selectable Timed Interrupt STI1 65536 bit 16
STI - Selectable Timed Interrupt STI0 32768 bit 15
EII - Event Input Interrupt Event 7 16384 bit 14
EII - Event Input Interrupt Event 6 8192 bit 13
EII - Event Input Interrupt Event 5 4096 bit 12
EII - Event Input Interrupt Event 4 2048 bit 11
HSC - High-Speed Counter HSC5 1024 bit 10
HSC - High-Speed Counter HSC4 512 bit 9
HSC - High-Speed Counter HSC3 256 bit 8
HSC - High-Speed Counter HSC2 128 bit 7
HSC - High-Speed Counter HSC1 64 bit 6
HSC - High-Speed Counter HSC0 32 bit 5
EII - Event Input Interrupt Event 3 16 bit 4
EII - Event Input Interrupt Event 2 8 bit 3
EII - Event Input Interrupt Event 1 4 bit 2
EII - Event Input Interrupt Event 0 2 bit 1
UFR - User Fault Routine Interrupt UFR 1 bit 0 (reserved)

To flush interrupts:
1. Select the interrupts that you want to flush.
2. Find the Decimal Value for the interrupt that you selected.
3. Add the Decimal Values if you selected multiple types of interrupt.
4. Enter the sum into the UIF instruction.
For example, to disable EII Event 1 and EII Event 3:
EII Event 1 = 4, EII Event 3 = 16
4 + 16 = 20 (enter this value)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 301


Appendix C User Interrupts

UIC – User Interrupt Clear


UIC

Enable UIC (name or Pin ID)


IRQType or ENO(Pin ID)

This C function clears the Interrupt Lost bit for the selected User Interrupts.
Table 120 - Types of Interrupts Disabled by the UIC Instruction
Interrupt Type Element Decimal Value Corresponding Bit
Plug-In Module UPM4 8388608 bit 23
Plug-In Module UPM3 4194304 bit 22
Plug-In Module UPM2 2097152 bit 21
Plug-In Module UPM1 1048576 bit 20
Plug-In Module UPM0 524288 bit 19
STI - Selectable Timed Interrupt STI3 262144 bit 18
STI - Selectable Timed Interrupt STI2 131072 bit 17
STI - Selectable Timed Interrupt STI1 65536 bit 16
STI - Selectable Timed Interrupt STI0 32768 bit 15
EII - Event Input Interrupt Event 7 16384 bit 14
EII - Event Input Interrupt Event 6 8192 bit 13
EII - Event Input Interrupt Event 5 4096 bit 12
EII - Event Input Interrupt Event 4 2048 bit 11
HSC - High-Speed Counter HSC5 1024 bit 10
HSC - High-Speed Counter HSC4 512 bit 9
HSC - High-Speed Counter HSC3 256 bit 8
HSC - High-Speed Counter HSC2 128 bit 7
HSC - High-Speed Counter HSC1 64 bit 6
HSC - High-Speed Counter HSC0 32 bit 5
EII - Event Input Interrupt Event 3 16 bit 4
EII - Event Input Interrupt Event 2 8 bit 3
EII - Event Input Interrupt Event 1 4 bit 2
EII - Event Input Interrupt Event 0 2 bit 1
UFR - User Fault Routine Interrupt UFR 1 bit 0 (reserved)

Using the Selectable Timed Configure the STI function from the Interrupt Configuration window.
Interrupt (STI) Function

302 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix C User Interrupts

The Selectable Timed Interrupt (STI) provides a mechanism to solve time critical control
requirements. The STI is a trigger mechanism that allows you to scan or solve control program
logic that is time sensitive.
Example of where you would use the STI are:
• PID type applications, where a calculation must be performed at a specific time
interval.
• A block of logic that must be scanned more often.
How an STI is used is typically driven by the demands/requirements of the application. It
operates using the following sequence:
1. Select a time interval.
2. When a valid interval is set and the STI is properly configured, the controller monitors
the STI value.
3. When the time period has elapsed, the controller’s normal operation is interrupted.
4. The controller then scans the logic in the STI POU.
5. When the STI POU is completed, the controller returns to where it was before the
interrupt and continues normal operation.

Selectable Time Interrupt This section covers the configuration and status management of the STI function.
(STI) Function
Configuration and Status STI Function Configuration

STI Program POU

This is the name of the Program Organizational Unit (POU) which is executed immediately
when this STI Interrupt occurs. You can choose any pre-programmed POU from the dropdown
list.

STI Auto Start (STI0.AS)


Sub-element Description Data Format User Program Access
AS - Auto Start Binary (bit) Read-only

The AS (Auto Start) is a control bit that can be used in the control program. The auto start bit is
configured with the programming device and stored as part of the user program. The auto
start bit automatically sets the STI Timed Interrupt Enable (STI0.Enabled) bit when the
controller enters any executing mode.

STI Set Point Milliseconds Between Interrupts (STI0.SP)


Sub-element Description Data Format Range User Program Access
SP - Set Point Msec Word (INT) 0…65,535 Read/write

When the controller transitions to an executing mode, the set point in milliseconds (SP) value
is loaded into the STI. If the STI is configured correctly, and enabled, the POU in the STI
configuration is executed at this interval. You can change the value from the control program
by using the STIS instruction.
The minimum value cannot be less than the time required to scan the STI POUplus
the Interrupt Latency.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 303


Appendix C User Interrupts

STI Function Status Information


You can monitor the STI Function status bits either in the User Program, or in the Connected
Components Workbench software, in Debug mode.

STI User Interrupt Executing (STI0.EX)


Sub-element Description Data Format User Program Access
EX - User Interrupt Executing Binary (bit) Read-only

The User Interrupt Executing (EX) bit is set whenever the STI mechanism completes timing and
the controller is scanning the STI POU. The EX bit is cleared when the controller completes
processing the STI subroutine.

The STI EX bit can be used in the control program as conditional logic to detect if an STI
interrupt is executing.

STI User Interrupt Enable (STI0.Enabled)


Sub-element Description Data Format User Program Access
Enabled - User Interrupt Enable Binary (bit) Read-only

The User Interrupt Enable bit is used to indicate STI enable or disable status.

STI User Interrupt Lost (STI0.LS)


Sub-element Description Data Format User Program Access
LS - User Interrupt Lost Binary (bit) Read/write

The LS is a status flag that indicates an interrupt was lost. The controller can process 1 active
and maintain up to 1 pending user interrupt conditions before it sets the lost bit.

The controller sets this bit. It is up to the control program to use, track, the lost condition if
necessary.

STI User Interrupt Pending (STI0.PE)


Sub-element Description Data Format User Program Access
PE - User Interrupt Pending Binary (bit) Read-only

The PE is a status flag that represents an interrupt is pending. This status bit can be
monitored or used for logic purposes in the control program if you must determine when a
subroutine cannot execute immediately.

The controller set this bit and clears this bit automatically. The controller can process 1 active
and maintain up to 1 pending user interrupt conditions before it sets the lost bit.

Using the Event Input The Event Input Interrupt (EII) is a feature that allows you to scan a specific POU when an input
condition is detected from a field device.
Interrupt (EII) Function
EII0 is used in this document to define how EII works.

Configure EII Input Edge from the Embedded I/O configuration window.

304 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix C User Interrupts

Configure the EII from the Interrupt Configuration window.

Event Input Interrupt (EII) EII Function Configuration


Function Configuration and
The Event Input Interrupt Function has the following related configuration parameters.
Status
EII Program POU

This is the name of the Program Organizational Unit (POU) which is executed immediately
when this EII Interrupt occurs. You can choose any pre-programmed POU from the dropdown
list.

EII Auto Start (EII0.AS)


Sub-element Description Data Format User Program Access
AS - Auto Start Binary (bit) Read-only

Auto Start (AS) is a control bit that can be used in the control program. The auto start bit is
configured with the programming device and stored as part of the user program. The auto
start bit automatically sets the Event User Interrupt Enable bit when the controller enters any
executing mode.

EII Input Select (EII0.IS)


Sub-element Description Data Format User Program Access
IS - Input Select Word (INT) Read-only

The Input Select (IS) parameter is used to configure each EII to a specific input on the
controller. Valid inputs are 0…N, where N is either 15, or the maximum input ID, whichever is
smaller.

You can only configure this parameter with the programming device. The parameter cannot be
changed from the control program.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 305


Appendix C User Interrupts

EII Function Status Information


You can monitor the EII Function status bits either in the User Program, or in the Connected
Components Workbench software, in Debug mode.

EII User Interrupt Executing (EII0.EX)


Sub-element Description Data Format User Program Access
EX - User Interrupt Executing Binary (bit) Read-only

The User Interrupt Executing (EX) bit is set whenever the EII mechanism detects a valid input
and the controller is scanning the EII POU. The EII mechanism clears the EX bit when the
controller completes its processing of the EII subroutine.

You can use the EII EX bit in the control program as conditional logic to detect if an EII
interrupt is executing.

EII User Interrupt Enable (EII0.Enabled)


Sub-element Description Data Format User Program Access
Enabled - User Interrupt Enable Binary (bit) Read-only

The Enabled (User Interrupt Enable) bit indicates the EII enable or disable status.

EII User Interrupt Lost (EII0.LS)


Sub-element Description Data Format User Program Access
LS - User Interrupt Lost Binary (bit) Read/write

User Interrupt Lost (LS) is a status flag that represents an interrupt has been lost. The
controller can process 1 active and maintain up to 1 pending user interrupt conditions before it
sets the lost bit.
The controller sets the bit. It is up to the control program to use or track, the lost condition if
necessary.

EII User Interrupt Pending (EII0.PE)


Sub-element Description Data Format User Program Access
PE - User Interrupt Pending Binary (bit) Read-only

User Interrupt Pending (PE) is a status flag that represents an interrupt is pending. You can
monitor the status bit or use it for logic purposes in the control program if you must determine
when a subroutine cannot execute immediately.

The controller automatically sets and clears the bit. The controller can process 1 active and
maintain up to 1 pending user interrupt conditions before it sets the lost bit.

306 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix D

Troubleshooting

Status Indicators on the Micro830 Controllers


Controller 10/16-point Controllers 24-point Controllers 48-point Controllers

1 1 1
2
3 2
4 2 3
3
5 4 4
6 5 5
6 6
7
7 7

Micro850 Controllers
24-point Controllers 48-point Controllers

1 1
8
8 9
9 2
2 3
3 4
4
5 5
6 6

7 7

Micro870 Controllers
24-point Controllers

8
9
2
3
4
5
6

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 307


Appendix D Troubleshooting

Status Indicator Description


Description State Indicates
Off Input is not energized
1 Input status
On Input is energized (terminal status)
Off No input power, or power error condition
2 Power status
Green Power on
Off Not executing the user program
3 Run status Green Executing the user program in run mode
Flashing green Memory backup/restore in progress
Off No fault detected
4 Fault status Red Nonrecoverable fault that requires a power cycle
Flashing Red Recoverable fault
Off No force conditions are active.
5 Force status
Amber Force conditions are active.
Off No traffic for RS-232/RS-485
Serial communications Traffic through RS-232/RS-485
6 status Green The indicator only blinks when transmitting data. It does
not blink when receiving data.
Off Output is not energized
7 Output status
On Output is energized (logic status)
Steady Off No power
Flashing Green Standby
Steady Green Device operational
Flashing Red Minor fault (minor and major recoverable faults)
8 Module status Steady Red Major fault (nonrecoverable fault)
Self-test
The device is performing power on self test (POST). During
Flashing Green and POST, the network status indicator alternates flashing
Red green and red. The duration of the self-test depends on
the size of the project in the controller.
Not powered, no IP address.
Steady Off The device is powered off, or is powered on but with no IP
address.
No connections
Flashing Green An IP address is configured, but no Ethernet application is
connected.
Connected
Steady Green At least one EtherNet/IP session is established.
Flashing Red Connection timeout (not implemented).
9 Network status
Duplicate IP
The device has detected that its IP address is being used
Steady Red by another device in the network. This status is applicable
only if the device's duplicate IP address detection (ACD)
feature is enabled.
Self-test
The device is performing power on self test (POST). During
Flashing Green and POST, the network status indicator alternates flashing
Red green and red. The duration of the self-test depends on
the size of the project in the controller.

Normal Operation
The POWER and RUN indicators are on. If a force condition is active, the FORCE indicator turns
on and remains on until all forces are removed.

308 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix D Troubleshooting

Error Codes This section lists possible error codes for your controller and recommended actions for
recovery. Information about the fault is stored in a fault log, which can be accessed from the
Diagnostics page in the Connected Components Workbench software. The fault log contains
brief information about the last fault, and detailed information about the last 10
nonrecoverable faults that occurred.

If an error persists after performing the recommended action, contact your local Rockwell
Automation technical support representative. For contact information, go to rok.auto/support.

Fault Types
There are two basic types of faults that can occur:
• Recoverable – A recoverable fault can be cleared without having to power cycle the
controller. The fault LED flashes red when a recoverable fault occurs.
• Nonrecoverable – A nonrecoverable fault requires the controller to be power cycled
before clearing the fault. After the controller has been power cycled or reset, check the
fault log in the Diagnostic page of the Connected Components Workbench software,
then clear the fault. The fault LED is steady red when a nonrecoverable fault occurs.
Table 121 - List of Error Codes for Micro800 Controllers
Error Code Fault Type Description Recommended Action
The controller was unexpectedly reset due to a noisy
environment or an internal hardware failure. Perform one of the following:
If the system variable _SYSVA_USER_DATA_LOST is set,
0xF000 Recoverable • See Corrective Actions for Recoverable Faults on page 314.
the controller is able to recover the user program but the
user data is cleared. If not, the Micro800 controller • Check wiring to eliminate any noise.
program is cleared.
The controller program has been cleared. This happened
because:
• A power-down occurred during program download or Perform one of the following:
0xF001 Recoverable data transfer from the memory module. • See Corrective Actions for Recoverable Faults on page 314.
• The cable was removed from the controller during • Transfer the program using the memory module restore utility.
program download.
• The RAM integrity test failed.
The controller hardware watchdog was activated. The
controller hardware watchdog timeout happens if the
program scan is more than 3 seconds.
0xF002 Nonrecoverable If the system variable _SYSVA_USER_DATA_LOST is set, See Corrective Actions for Nonrecoverable Faults on page 314.
the controller is able to recover the user program but the
user data is cleared. If not, the Micro800 controller
program is cleared.
Perform one of the following:
One of the following occurred: • Remove the memory module and plug it in again.
• The memory module hardware faulted. • Obtain a new memory module.
0xF003 Recoverable • The memory module connection faulted. • See Corrective Actions for Recoverable Faults on page 314.
• The memory module was incompatible with the • Upgrade the Micro800 controller’s firmware revision to be compatible with
Micro800 controller’s firmware revision. the memory module. For information on firmware revision compatibility,
go to rok.auto/pcdc.
Perform one of the following:
• See Corrective Actions for Recoverable Faults on page 314.
A failure occurred during the memory module data
0xF004 Recoverable • Attempt the data transfer again. If the error persists, replace the memory
transfer.
module.
• For Embedded RTC failure, restart the controller.
Perform one of the following:
The user program failed an integrity check while the
0xF005 Recoverable • See Corrective Actions for Recoverable Faults on page 314.
Micro800 controller was in Run mode.
• Check wiring.
Perform one of the following:
The user program is incompatible with the Micro800
0xF006 Recoverable • See Corrective Actions for Recoverable Faults on page 314.
controller’s firmware revision.
• Contact your local Rockwell Automation technical support representative.
Perform one of the following:
The user program contains a function/function block that
0xF010 Recoverable • See Corrective Actions for Recoverable Faults on page 314.
is not supported by the Micro800 controller.
• Contact your local Rockwell Automation technical support representative.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 309


Appendix D Troubleshooting

Table 121 - List of Error Codes for Micro800 Controllers (Continued)


Error Code Fault Type Description Recommended Action
• See Corrective Actions for Recoverable Faults on page 314.
0xF014 Recoverable A memory module memory error occurred. • Reprogram the memory module. If the error persists, replace the memory
module.
Perform one of the following:
0xF015 Nonrecoverable An unexpected software error occurred. • See Corrective Actions for Nonrecoverable Faults on page 314.
• Check wiring.
Perform one of the following:
0xF016 Nonrecoverable An unexpected hardware error occurred. • See Corrective Actions for Nonrecoverable Faults on page 314.
• Check wiring.
An unexpected software error occurred due to an
unexpected hardware interrupt. Perform one of the following:
If the system variable _SYSVA_USER_DATA_LOST is set,
0xF017 Nonrecoverable • See Corrective Actions for Nonrecoverable Faults on page 314.
the controller is able to recover the user program but the
user data is cleared. If not, the Micro800 controller • Check wiring.
program is cleared.
An unexpected software error occurred due to SPI
communication failure. Perform one of the following:
If the system variable _SYSVA_USER_DATA_LOST is set,
0xF018 Nonrecoverable • See Corrective Actions for Nonrecoverable Faults on page 314.
the controller is able to recover the user program but the
user data is cleared. If not, the Micro800 controller • Check wiring.
program is cleared.
An unexpected software error occurred due to memory or
0xF019 Nonrecoverable See Corrective Actions for Nonrecoverable Faults on page 314.
other controller resource issue.
The controller was unexpectedly reset during Run Mode
Change (RMC) due to a noisy environment or an internal
hardware failure.
0xF01A Recoverable If the system variable _SYSVA_USER_DATA_LOST is set, See Corrective Actions for Recoverable Faults on page 314.
the controller is able to recover the user program but the
user data is cleared. If not, the Micro800 controller
program is cleared.
The base hardware is faulted or is incompatible with the
0xF020 Recoverable See Corrective Actions for Recoverable Faults on page 314.
Micro800 controller’s firmware revision.
The I/O configuration in the user program is invalid or
0xF021 Recoverable See Corrective Actions for Recoverable Faults on page 314.
does not exist in the Micro800 controller.
Perform one of the following:
The user program in the memory module is incompatible • See Corrective Actions for Recoverable Faults on page 314.
0xF022 Recoverable with the Micro800 controller’s firmware revision.
• Replace the memory module.
The controller program has been cleared. This happened
because: Perform one of the following:
0xF023 Nonrecoverable • A power down occurred during program download or • See Corrective Actions for Nonrecoverable Faults on page 314.
transfer from the memory module. • Download or transfer the program.
• The Flash Integrity Test failed (Micro810 only).
Power down information in persistent memory may not be
written properly due to a noisy environment or an internal
0xF030 hardware failure.
0xF031 Recoverable If the system variable _SYSVA_USER_DATA_LOST is set, See Corrective Actions for Recoverable Faults on page 314.
0xF032 the controller is able to recover the user program but the
0xF033 user data is cleared. If not, the Micro800 controller
program is cleared.
The embedded I/O configuration in the user program is See Corrective Actions for Recoverable Faults on page 314.
0xF050 Recoverable invalid.
There is a general configuration error, which is detected
in the motion configuration that is downloaded from the Perform the following:
0xF100 Recoverable Connected Components Workbench software, such as • See Corrective Actions for Recoverable Faults on page 314.
number of axes, or motion execution interval being • Correct the axes configuration in the user program.
configured out of range.
Perform the following:
There is motion resource missing, such as Motion_DIAG • See Corrective Actions for Recoverable Faults on page 314.
0xF110 Recoverable variable not defined.
• Correct the axes configuration in the user program.
Motion configuration for axis z cannot be supported by Perform the following:
this controller model, or the axis configuration has some • See Corrective Actions for Recoverable Faults on page 314.
0xF12z(1) Recoverable resource conflict with some other motion axis, which has • Remove all axes and reconfigure motion with the guidance from the User
been configured earlier. Manual.

310 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix D Troubleshooting

Table 121 - List of Error Codes for Micro800 Controllers (Continued)


Error Code Fault Type Description Recommended Action
There is a motion engine logic error (firmware logic issue
or memory crash) for one axis that is detected during
0xF15z(1) Recoverable motion engine cyclic operation. One possible reason can See Corrective Actions for Recoverable Faults on page 314.
be motion engine data/memory crash.
Perform the following:
1. Power off the controller.
2. Attach the expansion I/O terminator on the last expansion I/O module on
0xF210 Recoverable The expansion I/O terminator is missing. the system.
3. Power on the controller.
4. See Corrective Actions for Recoverable Faults on page 314.
Perform the following:
1. Power off the controller.
The maximum number of expansion I/O modules has
0xF230 Recoverable 2. Check that the number of expansion I/O modules is not more than four.
been exceeded.
3. Power on the controller.
4. See Corrective Actions for Recoverable Faults on page 314.
There is a nonrecoverable error and the expansion I/O
0xF250 Recoverable See Corrective Actions for Recoverable Faults on page 314.
modules could not be detected.
0xF26z(2) Recoverable An expansion I/O master fault is detected on the system. See Corrective Actions for Recoverable Faults on page 314.
Perform one of the following:
A nonrecoverable communication fault has occurred on
0xF27z(2) Recoverable the expansion I/O module. • See Corrective Actions for Recoverable Faults on page 314.
• Replace the slot number z module.
Perform one of the following:
0xF28z(2) Recoverable Expansion I/O communication rate error. • See Corrective Actions for Recoverable Faults on page 314.
• Replace the slot number z module.
Perform one of the following:
0xF29z(2) Recoverable A module fault is detected on your expansion I/O module. • See Corrective Actions for Recoverable Faults on page 314.
• Replace the slot number z module.
Perform one of the following:
0xF2Az(2) Recoverable Expansion I/O power failure • See Corrective Actions for Recoverable Faults on page 314.
• Replace the slot number z module.
Perform one of the following:
• See Corrective Actions for Recoverable Faults on page 314.
• Correct the expansion IO module configuration in the user program to
0xF2Bz(2) Recoverable Expansion I/O configuration fault.
match that of the actual hardware configuration.
• Check the expansion I/O module operation and condition.
• Replace the expansion I/O module.
Perform the following:
• See Corrective Actions for Recoverable Faults on page 314.
The memory module is present but memory module is
0xF300 Recoverable • Check that there is a valid project in the memory module.
empty and restore operation is requested.
• Download a user program and use the backup function to the memory
module.
Perform one of the following:
• See Corrective Actions for Recoverable Faults on page 314.
The memory module’s project is not compatible with the • Check that there is a user program with a controller that has the correct
0xF301 Recoverable controller. controller catalog configured.
• Download a user program and use the backup function to the memory
module.
Perform one of the following:
• See Corrective Actions for Recoverable Faults on page 314.
The password is mismatched between memory module • Check that the user program in the memory module has the correct
and controller. Only applies to the Micro820 controller password.
0xF302 Recoverable when Remote LCD performs the restore operation.
This fault does not apply to Micro800 controller firmware • Download a user program with a password and use the backup function to
revision 10 and later. the memory module.
• Use the Connected Components Workbench software to enter the correct
password into the controller and perform the restore operation again.
The memory module is not present and restore operation Check that the memory module is present.
0xF303 Recoverable is requested.
Perform the following:
The plug-in I/O module experienced an error during
0xF0Az(3) Recoverable operation. • Check the condition and operation of the plug-in I/O module.
• See Corrective Actions for Recoverable Faults on page 314.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 311


Appendix D Troubleshooting

Table 121 - List of Error Codes for Micro800 Controllers (Continued)


Error Code Fault Type Description Recommended Action
Perform one of the following:
• See Corrective Actions for Recoverable Faults on page 314.
The plug-in I/O module configuration does not match the • Correct the plug-in I/O module configuration in the user program to match
0xF0Bz(3) Recoverable actual I/O configuration detected. that of the actual hardware configuration.
• Check the condition and operation of the plug-in I/O module.
• Replace the plug-in I/O module.
Perform the following:
1. See Corrective Actions for Recoverable Faults on page 314.
When power was applied to the plug-in I/O module or the 2. Correct the plug-in I/O module configuration in the user program.
0xF0Dz(3) Recoverable plug-in I/O module was removed, a hardware error
3. Build and download the program using Connected Components Workbench
occurred.
software.
4. Put the Micro800 controller into Run mode.
Perform the following:
1. See Corrective Actions for Recoverable Faults on page 314.
The plug-in I/O module configuration does not match the 2. Correct the plug-in I/O module configuration in the user program.
0xF0Ez(3) Recoverable actual I/O configuration detected. 3. Build and download the program using Connected Components Workbench
software.
4. Put the Micro800 controller into Run mode.
Perform the following:
• See Corrective Actions for Recoverable Faults on page 314.
0xF830 Recoverable An error occurred in the EII configuration.
• Review and change the EII configuration in the Micro800 controller
properties.
Perform the following:
• See Corrective Actions for Recoverable Faults on page 314.
0xF840 Recoverable An error occurred in the HSC configuration.
• Review and change the EII configuration in the Micro800 controller
properties.
Perform the following:
• See Corrective Actions for Recoverable Faults on page 314.
0xF850 Recoverable An error occurred in the STI configuration.
• Review and change the EII configuration in the Micro800 controller
properties.
Perform the following:
A data overflow occurred. 1. See Corrective Actions for Recoverable Faults on page 314.
A data overflow error is generated when the ladder, 2. Correct the program to verify that there is no data overflow.
0xF860 Recoverable structured text, or function block diagram execution 3. Build and download the program using Connected Components Workbench
encounters a divide-by-zero. software.
4. Put the Micro800 controller into Run mode.
Perform the following:
1. See Corrective Actions for Recoverable Faults on page 314.
2. Correct the program to verify that there is no index used to access an
0xF870 Recoverable An index address was out of data space. array element beyond the array boundaries.
3. Build and download the program using Connected Components Workbench
software.
4. Put the Micro800 controller into Run mode.
Perform the following:
1. See Corrective Actions for Recoverable Faults on page 314.
An index used to access a bit is beyond the boundaries of 2. Correct the program to verify that there is no index used to access a bit
0xF0878 Recoverable beyond the boundaries of the data type.
the data type it is used on.
3. Build and download the program using Connected Components Workbench
software.
4. Put the Micro800 controller into Run mode.
Perform the following:
1. See Corrective Actions for Recoverable Faults on page 314.
2. Correct the program to verify that there is no data conversion error.
0xF880 Recoverable A data conversion error occurred.
3. Build and download the program using Connected Components Workbench
software.
4. Put the Micro800 controller into Run mode.
Perform the following:
The call stack of the controller cannot support the • See Corrective Actions for Recoverable Faults on page 314.
0xF888 Recoverable sequence of calls to function blocks in the current
project. Too many blocks are within another block. • Change the project to reduce the quantity of blocks being called within a
block.
Perform the following:
An error occurred in the user interrupt configuration for • See Corrective Actions for Recoverable Faults on page 314.
0xF898 Recoverable the plug-in I/O module. • Correct the user interrupt configuration for the plug-in I/O module in the
user program to match that of the actual hardware configuration.

312 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix D Troubleshooting

Table 121 - List of Error Codes for Micro800 Controllers (Continued)


Error Code Fault Type Description Recommended Action
Perform the following:
1. See Corrective Actions for Recoverable Faults on page 314.
0xF8A0 Recoverable The TOW parameters are invalid. 2. Correct the program to verify that there are no invalid parameters.
3. Build and download the program using Connected Components Workbench
software.
4. Put the Micro800 controller into Run mode.
Perform the following:
1. See Corrective Actions for Recoverable Faults on page 314.
2. Correct the program to verify that there are no invalid parameters.
0xF8A1 Recoverable The DOY parameters are invalid.
3. Build and download the program using Connected Components Workbench
software.
4. Put the Micro800 controller into Run mode.
Major fault on the controller when Class 1 connection to Determine which Ethernet module has a faulted connection and correct the
0xF8A3 Recoverable the controller fails while in Run mode. fault condition.
A user-created fault from the Connected Components
0xFFzz(4) Recoverable Workbench software has occurred. See Corrective Actions for Recoverable Faults on page 314.
A particular hardware type (for example, embedded I/O)
0xD00F Recoverable was selected in the user program configuration, but did See Corrective Actions for Recoverable Faults on page 314.
not match the actual hardware base.
Perform the following:
• See Corrective Actions for Recoverable Faults on page 314.
• Determine if the program is caught in a loop and correct the problem.
Fault may occur if your Structured Text program contains a For loop with the
upper limit set to the maximum value of the variable. For example, the
variable is a USINT and the limit is set to 255, or the variable is a UINT and
the limit is set to 65535.
To correct the fault, perform the following:
The program scan time exceeded the watchdog timeout
0xD011 Recoverable 1. Correct the program to verify that the upper limit is not reached. One
value.
method is to use a data type with a larger maximum value.
2. Build and download the program using Connected Components Workbench
software.
3. Put the Micro800 controller into Run mode.
If your program is designed to have a scan time of longer than 3 seconds, in
the user program, increase the watchdog timeout value that is set in the
system variable _SYSVA_TCYWDG and then build and download the program
using Connected Components Workbench software.
(1) z indicates the logic axis ID. (0...3)
(2) z indicates the slot number of the expansion I/O. If z=0, then the slot number cannot be identified.
(3) z is the slot number of the plug-in module. If z = 0, then the slot number cannot be identified.
(4) zz indicates the last byte of the program number. Only program numbers up to 0xFF can be displayed. For program numbers 01x00 to 0xFFFF, only the last byte is displayed.)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 313


Appendix D Troubleshooting

Corrective Action for Recoverable and Nonrecoverable Faults

Corrective Actions for Recoverable Faults

Perform the following:


1. Optionally save the fault log from Connected Components Workbench software.
2. Clear the recoverable fault using Connected Components Workbench software.
3. If the problem persists, contact technical support with the fault log.

Corrective Actions for Nonrecoverable Faults

Perform the following:


1. Cycle power to your Micro800 controller.
2. The controller goes to recoverable fault. Optionally save the fault log from Connected
Components Workbench software.
3. Clear the recoverable fault using Connected Components Workbench software.
4. If the program is lost, build and download your program using Connected Components
Workbench software.
5. If the problem persists, contact technical support with the fault log.

Retrieve a Fault Log You can retrieve a fault log for your controller by using the Connected Components Workbench
software, version 9 or later.
Perform the following:
1. Launch the Connected Components Workbench software.
2. Connect to your Micro800 controller.
3. In Project Organizer, right-click the Micro800 controller.
4. Select Diagnose > Fault.
The Fault Diagnostics tab displays.
5. Select Get Fault Log.
6. Save the fault log (.txt) file.

Retrieve a Core Dump on If a major nonrecoverable fault occurs, you can retrieve a core dump of the controller and
submit this file to Rockwell Automation Tech Support for help in troubleshooting and
Major Fault debugging. The size of the core dump is limited to 8 KB.

This feature is available for controllers with firmware revision 22.011 or later. You must also
use Connected Components Workbench software version 22.00 or later.

After a major fault occurs and you have cycled power to the controller, perform the following:
1. Launch the Connected Components Workbench software.
2. Connect to your Micro800 controller.
3. In Project Organizer, right-click the Micro800 controller.
4. Select Diagnose > Fault.
The Fault Diagnostics tab displays.
5. Select Core Dump Upload.
6. Save the core dump (.bin) file.

IMPORTANT Updating your controller firmware revision clears the core dump.

314 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix D Troubleshooting

Controller Error Recovery Use the following error recovery model to help you diagnose software and hardware problems
in the micro controller. The model provides common questions that you might ask to help
Model troubleshoot your system. See the recommended pages within the model for further help.
Controller Error Recovery Model

Start

Is the No
Power LED Check the wiring.
on?

Yes

Check the Fault LED.


Flashing red = Recoverable
Steady red = Nonrecoverable

No
Is fault recoverable? Power cycle the controller.

Yes

Diagnose fault in Connected Components


Workbench software and see page 309 for
probable cause and recommended action.

Clear the fault.

Correct the condition


causing the fault.

Test and verify


system operation.

End

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 315


Appendix D Troubleshooting

Ethernet Diagnostics In Connected Components Workbench software, when the project in online, you can view the
status of the embedded Ethernet ports on the controller.

To see the Communication Diagnostic window, do the following.


1. Access the controller configuration.
2. Select Diagnose and then select Communication.

316 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix D Troubleshooting

General Diagnostic Information


In the Communication Diagnostic window, change Communications to Ethernet, and change
Protocols to General.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 317


Appendix D Troubleshooting

Table 122 - General Diagnostic Parameters (1)


Parameters Description
Interface Counters
Unicast Packets (Outbound) The number of unicast packets sent from the interface
Nonunicast Packets (Inbound) The number of nonunicast packets received on the interface
Nonunicast Packets (Outbound) The number of nonunicast packets transmitted on the interface
Media Counters
SQE Test Errors The number of times an SQE test error message was generated
IP Statistics
IP Total Packets Sent Total number of IP packets successfully transmitted
IP Total Packets Received Total number of IP packets successfully received
IP Total Bytes Sent Total number of IP bytes successfully transmitted
IP Total Bytes Received Total number of IP bytes successfully received
IP Sent Packets Dropped Total number of IP packets dropped at sent
IP Received Packets Dropped Total number of IP packets dropped at received
IP Total Fragments Sent Total number of IP fragments sent
IP Total Fragments Received Total number of IP fragments received
IP Received Checksum Error Total number of IP packets received with checksum errors
IP Invalid Packets Total number of invalid IP packets
TCP Statistics
TCP Packets Sent Total number of TCP packets sent
TCP Packets Received Total number of TCP packets received
TCP Bytes Sent Total number of TCP bytes sent
TCP Bytes Received Total number of TCP bytes received
TCP Connections Dropped Total number of TCP connections dropped
TCP Received Packets Dropped Total number of TCP packets dropped
TCP Connections Total number of TCP connections
TCP Disconnections Total number of TCP disconnections
TCP Checksum Error Total number of TCP packets with checksum errors
TCP Invalid Packets Total number of invalid TCP packets
TCP Retransmit Packets Total number of TCP packets retransmitted
UDP Statistics
UDP Packets Sent Total number of UDP packets sent
UDP Packets Received Total number of UDP packets received
UDP Bytes Sent Total number of UDP bytes sent
UDP Bytes Received Total number of UDP bytes received
UDP Received Packets Dropped Total number of UDP received packets dropped
UDP Checksum Error Total number of UDP packets with checksum errors
UDP Invalid Packets Total number of invalid UDP packets
(1) These parameters are only available with firmware revision 21.011 or later.

318 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix D Troubleshooting

EtherNet/IP Overview Diagnostic Information


In the Communication Diagnostic window, change Communications to Ethernet, and change
Protocols to EtherNet/IP Overview. This feature is only available with firmware revision 21.011
or later.

Table 123 - EtherNet/IP Overview Diagnostic Parameters


Parameters Description
TCP Connections
Active TCP Connections Current number of active TCP connections for EtherNet/IP messaging
Max TCP Connections Maximum TCP connections that are supported for EtherNet/IP messaging
Unconnected
Number of EtherNet/IP unconnected messages (packets) sent in the last
Sent Packets Per Second second
Number of EtherNet/IP unconnected messages (packets) received in the
Received Packets Per Second last second
Total Packets Sent Cumulative number of EtherNet/IP unconnected messages (packets) sent
Cumulative number of EtherNet/IP unconnected messages (packets)
Total Packets Received received
Connected
Number of EtherNet/IP connected messages (packets) sent in the last
Sent Packets Per Second second
Number of EtherNet/IP connected messages (packets) received in the
Received Packets Per Second last second
Total Packets Sent Cumulative number of EtherNet/IP connected messages (packets) sent
Cumulative number of EtherNet/IP connected messages (packets)
Total Packets Received received

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 319


Appendix D Troubleshooting

Table 123 - EtherNet/IP Overview Diagnostic Parameters (Continued)


Parameters Description
I/O Packets Per Second
Number of Class1 EtherNet/IP packets the system transmitted in the last
I/O Packets Per Second Send (Actual) second.
I/O Packets Per Second Received Number of Class1 EtherNet/IP packets the system received in the last
(Actual) second.
Total number of Class1 EtherNet/IP packets the system transmitted/
I/O Packets Per Second Total (Actual) received in the last second.
I/O Packets Per Second Rejected Number of Class1 EtherNet/IP packets the system rejected in the last
(Actual) second.
I/O Packets Counts
Cumulative number of Class1 EtherNet/IP packets the system
I/O Packets Sent transmitted.
I/O Packets Received Cumulative number of Class1 EtherNet/IP packets the system received.
Cumulative number of Class1 EtherNet/IP packets the system rejected.
I/O Packets Rejected These packets were messages received and then rejected because the
connection was closed or there was a duplicate multicast address.
Cumulative number of Class1 EtherNet/IP packets that were not received
in order.
Each UDP packet has a sequence number and if a packet is missing
I/O Packets Missed (corrupted or dropped), the system recognizes this void upon receipt of
the next packet received. Missed counter increments by the number of
packets missed.
Cumulative number of Class1 EtherNet/IP packets the system
transmitted/received.
I/O Packets Total The total is the sum of all packets that were sent, received, inhibited, and
rejected.
Application Connections
Type Defines the class of the connection in terms of Class1 or Class3.
Defines the current state of the connection in terms of Active and
Status Inactive.
UpTime Elapsed time for the connection that has been maintained.
Serial Number Unique identifier for each connection.
O->T Packet Size Size of originator to target packet data in bytes.
T->O Packets Size Size of target to originator packet data in bytes.
Missed Packet Rx Number of packets that are missed by that particular connection.

320 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix D Troubleshooting

System Diagnostic Information


In the Communication Diagnostic window, change Communications to System to view the CIP
Connection and Implicit messaging I/O system level diagnostics information. This feature is
only available with firmware revision 21.011 or later.

Table 124 - System Diagnostic Parameters


Parameters Description
CIP connection Statistics
Active Total Sum of CIP Explicit messaging and I/O connections in use.
Total number of CIP Explicit (Class 3 to Message Router) messaging
Active Messaging connections in use.
Active IO Total number of CIP I/O (Implicit - Class1) connections in use.
Maximum CIP Connections Maximum number of CIP connections that are supported by the system.
Connections Timeout Number of connections that become nonexistent due to time out.
I/O Resource Utilization
Actual communication utilization bandwidth that is currently in used the
I/O Comms Utilization (Actual) by I/O resource.
Theoretical communication utilization bandwidth that should be used by
I/O Comms Utilization (Theoretical)
the I/O resource.
Actual PPS (Packets Per Second) at which I/O communication is
I/O Rate (Actual) happening.
Theoretical PPS (Packets Per Second) at which I/O communication should
I/O Rate (Theoretical) happen.

The I/O Comms Utilization values help you check the resources that are used by the Ethernet
Implicit messaging feature in the Micro800 controller. If the application observes packet drops
or missed packets in the Ethernet diagnostics, this value helps to provide an understanding if
the utilization is close to the 100%. We recommend keeping the utilization value less than
60% to have enough resources in the controller to perform Class 3 messaging, interrupts, and
program execution. The easiest way to reduce the utilization value is to increase the RPI of the
devices configured under Ethernet-Modules.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 321


Appendix D Troubleshooting

Controller Diagnostic Information


The Controller Diagnostic page helps provide an overview of the information about the
controller. This page includes details on the controller identity, project and memory module
startup configuration, memory settings, controller uptime, and communication utilization.

Table 125 - Controller Diagnostic Parameters (1)


Parameters Description
Controller Information
Communication buffer space utilization that is currently used by the
Communication Utilization system.
CPU Up Time Time that the system is up since last power-up or reset.
(1) These parameters are only available with firmware revision 21.011 or later.

Calling Rockwell If you need to contact Rockwell Automation or local distributor for assistance, it is helpful to
obtain the following (before calling):
Automation for Assistance
• Controller type, series letter, revision letter, and firmware (FRN) number of the
controller.
• Controller indicator status.

322 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix E

PID Function Blocks

The PID function block has parameter naming similar to RSLogix 500 and is recommended for
users who are already familiar with programming in RSLogix 500. The IPIDCONTROLLER
function block has the advantage of supporting autotune.
Table 126 - Comparison Between IPIDCONTROLLER and PID
IPIDCONTROLLER PID Description
Common parameters
Process PV Process Variable feedback
Setpoint SP Setpoint input
Output CV CV output
Gains.DirectActing Control Control direction of process (cooling versus heating)
Gains.ProportionalGain Gains.Kc Controller gain for both P and I
Gains.TimeIntegral Gains.Ti Time integral value for I
Gains.TimeDerivative Gains.Td Time derivative value for D
A higher filter constant makes CV output more
Gains.DerivativeGain Gains.FC responsive to error. Acts like a derivative gain.
AbsoluteError AbsoluteError Absolute value of error
PID-specific parameters
CVMin For limiting CV
CVMax For limiting CV
TRUE = Normal operation of PID
AutoManual FALSE = Manual operation using CVManual
CVManual CV when in manual mode
— TRUE = Start execution with current input parameters.
Enable FALSE = CV equals zero.
TRUE = PID state is running.
Active FALSE = PID state is stopped.
TRUE = PID has an error.
Error FALSE = PID has no errors.
ErrorID PID ErrorID
IPIDCONTROLLER-specific parameters
TRUE = Normal operation of PID
Auto FALSE = Output tracks Feedback
Feedback of the control being applied to the process.
Feedback Usually it’s the PID’s CV after any limits or manual
control has been applied.
— TRUE = Autotune
AutoTune FALSE = No Autotune
ATParameters Autotune parameters
ATWarning Autotune warning
OutGains Gains from Autotune
Initialize Used for AutoTune

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 323


Appendix E PID Function Blocks

PID Function Block This function block diagram shows the arguments in the PID function block.

PID
Enable Active
PV CV
SP AbsoluteError
AutoManual Error
CVManual Error ID
CVMax
CVMin
Gains
Control
Llnit

Table 127 explains the arguments that are used in this function block.
Table 127 - PID Arguments
Parameter
Parameter Data Type Description
Type
Enable instruction
Enable Input BOOL TRUE = Start execution with current input parameters.
FALSE = CV equals zero.
Process Value. This value is typically read from an analog
PV Input REAL input module.
The SI unit must be the same as Setpoint.
SP Input REAL The setpoint value for the process
Auto or manual mode selection:
AutoManual Input BOOL TRUE = Normal operation of PID
FALSE = Manual operation using CVManual
Control value input defined for manual mode operation. The
CVManual Input REAL valid range for CVManual is:
CVMin < CVManual < CVMax
Control value minimum limit
CVMin Input REAL If CV < CVMin, then CV = CVMin.
If CVMin > CVMax, an error occurs.
Control value maximum limit
CVMax Input REAL If CV > CVMax, then CV = CVMax.
If CVMax < CVMin, an error occurs.
Gains of PID for controller
Gains Input PID_GAINS Use the PID_GAINS data type to configure the Gains
parameter.
Control direction of the process:
Control Input BOOL TRUE = Direct acting, such as Cooling
FALSE = Reverse acting, such as Heating
Llnit Input BOOL Reserved for future use
Status of the PID controller:
Active Output BOOL TRUE = PID state is running
FALSE = PID state is stopped
The control value output
CV Output REAL If any error occurred, CV is 0.
Absolute error is the difference between process value (PV)
AbsoluteError Output REAL and setpoint (SV) value.
Indicates the existence of an error condition
Error Output BOOL TRUE = PID has an error.
FALSE = PID has no errors.
A unique numeric that identifies the error. The errors are
ErrorID Output USINT defined in PID error codes.

324 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix E PID Function Blocks

Table 128 - GAIN_PID Data Type


Parameter
Parameter Data Type Description
Type
Controller gain for PID
Proportional and Integral are dependent on this gain
(>= 0.0001).
Kc Input REAL Increasing Kc improves response time but also increases
overshoot and oscillation of the PID.
If Kc is invalid, an error occurs.
Time integral constant in seconds (>= 0.0001).
Increasing Ti decreases the overshoot and oscillation of the
Ti Input REAL PID.
If Ti is invalid, an error occurs.
Time derivative constant in seconds (>= 0.0).
When Td equals 0, then there is no derivative action and PID
becomes a PI controller.
Td Input REAL Increasing Td reduces the overshot and removes the
oscillation of the PID controller.
If Td is invalid, an error occurs.
Filter constant (>= 0.0)
Recommended range for FC is 0...20.
FC Input REAL Increasing FC smooths the response of the PID controller.
If FC is invalid, an error occurs.

Table 129 - PID Error Codes


Error Code Description
0 PID is working normally.
1 Kc is invalid.
2 Ti is invalid.
3 Td is invalid.
4 FC is invalid.
5 CVMin > CVMax, or CVMax < CVMin
CVManual < CVMin
6 CVManaul is invalid.
CVManual > CVMax
7 CVManual is invalid.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 325


Appendix E PID Function Blocks

IPIDCONTROLLER Function This function block diagram shows the arguments in the IPIDCONTROLLER function block.
Block
IPIDCONTROLLER
EN ENO
Process Output
SetPoint AbsoluteError
FeedBack ATWarning
Auto OutGains
Initialize
Gains
AutoTune
ATParameters

Table 130 explains the arguments that are used in this function block.
Table 130 - IPIDCONTROLLER Arguments
Parameter
Parameter Data Type Description
Type
Function block enable
TRUE = Execute function.
EN Input BOOL FALSE = Do not execute function.
Applicable to Ladder Diagram programs
Process value, which is the value that is measured from the
Process Input REAL process output.
SetPoint Input REAL The setpoint value for the process
Feedback signal, which is the value of the control variable
Feedback Input REAL that is applied to the process.
For example, the feedback can be IPIDCONTROLLER output.
Operating modes of PID controller:
Auto Input BOOL TRUE = Normal operation of PID
FALSE = Output tracks Feedback
A change in value (TRUE to FALSE or FALSE to TRUE) causes
Initialize Input BOOL the controller to eliminate any proportional gain during that
cycle. It also initializes AutoTune sequences.
Gains PID for IPIDCONTROLLER
Gains Input GAIN_PID Use the GAIN_PID data type to define the parameters for the
Gains input.
TRUE = Autotune
AutoTune Input BOOL FALSE = No Autotune
AutoTune parameters
ATParameters Input AT_Param Use AT_Param data type to define the parameters for the
ATParameters input.
Output Output Real Output value from the controller
AbsoluteError Output Real Absolute error (Process - SetPoint) from the controller
Warning for the AutoTune sequence. Possible values are:
0 = No auto tune done
1 = In auto tune mode
ATWarnings Output DINT 2 = Auto tune done
-1 = Error 1: Input automatically set to TRUE, no auto tune
possible.
-2 = Error 2: Auto tune error, the ATDynamSet expired.
Gains calculated from AutoTune Sequences
OutGains Output GAIN_PID Use the GAIN_PID data type to define the OutGains output.
Enable output
ENO Output BOOL Applicable to Ladder Diagram programs

326 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix E PID Function Blocks

Table 131 - GAIN_PID Data Type


Parameter Type Description
Types of acting:
TRUE = Direct acting, output moves in the same direction as error. That is, the
actual process value is greater than the setpoint and the appropriate
DirectActing BOOL controller action is to increase the output. For example, Chilling.
FALSE = Reverse acting, output moves opposite direction as error. That is, the
actual process value is greater than the Setpoint and the appropriate
controller action is to decrease the output. For example, Heating.
Proportional gain for PID (>= 0.0001)
Proportional gain for PID (P_Gain)
A higher proportional gain causes a larger change in the output based on the
difference between the PV (measured process value) and SV (setpoint value).
ProportionalGain REAL The higher the gain, the faster the error is decreased, but this may result in
instability such as oscillations. The lower the gain, the slower the error is
decreased, but the system is more stable and less sensitive to large errors. The
P_Gain usually is the most important gain to adjust and the first gain to adjust
while tuning.
Time integral value for PID (>= 0.0001)
Time integral value for PID
A smaller integral time constant causes a faster change in the output based on
the difference between the PV (measured process value) and SV (setpoint
TimeIntegral REAL value) integrated over this time. A smaller integral time constant decreases the
steady state error (error when SV is not being changed) but increases the
chances of instability such as oscillations. A larger integral time constant
slows down the response of the system and makes it more stable, but PV
approaches the SV at a slower rate.
Time derivative value for PID (> 0.0)
Time derivative value for PID (Td)
A smaller derivative time constant causes a faster change in the output based
on the rate of change of the difference between PV (measured process value)
and SV (setpoint value). A smaller derivative time constant makes a system
TimeDerivative REAL more responsive to sudden changes in error (SV is changed) but increases the
chances of instability such as oscillations. A larger time constant makes a
system less responsive to sudden changes in error and the system is less
susceptible to noise and step changes in PV. TimeDerivative (Td) is related to
the derivative gain but allows the derivative contribution to PID to be tuned
using time so the sample time must be considered.
Derivative gain for PID (>= 0.0)
Derivative gain for PID (D_Gain)
A higher derivative gain causes a larger change in the output based on the rate
of change of the difference between the PV (measured process value) and SV
(setpoint value). A higher gain makes a system more responsive to sudden
DerivativeGain REAL changes in error but increases the chances of instability such as oscillations. A
lower gain makes a system less responsive to sudden changes in error and
makes the system less susceptible to noise and step changes in the PV.
If the derivative gain is set to zero, it disables the derivative portion of the
PID.

Table 132 - AT_Param Data Type


Parameter Type Description
Load parameter for autotuning. This is the output value when starting
Load REAL AutoTune.
Deviation for autotuning. This is the standard deviation that is used to evaluate
Deviation REAL
the noise band needed for AutoTune (noise band = 3* Deviation)(1)
Step REAL Step value for AutoTune. Must be greater than noise band and less than ½ load.
ATDynamSet REAL Waiting time in seconds before abandoning auto tune
Determines whether the output value is reset to zero after an AutoTune
sequence:
ATReset BOOL TRUE = Resets output to zero.
FALSE = Leaves output at Load value.
(1) The application engineer can estimate the value of ATParams.Deviation by observing the value of Process input. For example,
in a project that involves the control of temperature, if the temperature stabilizes around 22 °C, and a fluctuation of
21.7…22.5 °C is observed, the value of ATParams.Deviation is (22.5…21.7)/2 = 0.4.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 327


Appendix E PID Function Blocks

How to Autotune Before you autotune, you must:


• Verify that your system is constant when there is no control. For example, for
temperature control, the process value should remain at room temperature when there
is no control output.
• Configure the setpoint to 0.
• Set Auto Input to False.
• Set the Gain parameter as follows:
Table 133 - GAIN Parameter Values
GAIN Parameter Value
According to the operation:
DirectActing TRUE (for example, Cooling), or
FALSE (for example, Heating)
DerivativeGain 0.5
ProportionalGain 0.0001
TimeIntegral 0.0001
TimeDerivative 0.0
• Set the AT_Parameter as follows:
Table 134 - AT_Parameter Values
AT Parameter Recommendation
Every ‘Load’ provides a saturated process value over a period of time. Adjust the load to
the value for the saturated process value that you want.
Load
IMPORTANT: If a load of 40 gives you a process value of 30 °C over a period of time, and
you want to tune your system to 30 °C, you should set the load to 40.
This parameter plays a significant role in the autotune process. The method of deriving
Deviation this value is explained later in this section. It is not necessary to set this parameter
before autotuning. However, if you already know the deviation, it is fine to set it first.
Step value should be between 3*Deviation and ½ load. The step provides an offset for the
Step load during autotuning. It should be set to a value high enough to create a significant
change in process value.
Set this value to a reasonably long time for the autotune process. Every system is
ATDynamSet different, so allow more time to a system with a process value that takes longer to react
to change.
Set this parameter to TRUE to reset the output to zero after the autotune process
completes.
ATReset Set this parameter to FALSE to leave the output at load value after the autotune process
completes.

During autotune, the controller automatically sets the process value to zero. To autotune,
perform the following steps:
1. Set the Initialize input to TRUE.
2. Set the AutoTune input to TRUE.
3. Wait for the Process input to stabilize or reach a steady state.
4. Note the temperature fluctuation of the process value.
5. Calculate the deviation value with reference to the fluctuation. For example, if the
temperature stabilizes around 22 °C (72 °F) with a fluctuation of 21.7…22.5 °C
(71…72.5 °F), the value of ‘ATParams.Deviation’ is:
22.5...21.7 72.5...71
For °C: = 0.4 For °F: = 0.75
2 2

6. Set the deviation value, if you have not set it yet.


7. Change the initialize input to FALSE.
8. Wait until the ‘AT_Warning’ shows 2. The autotune process is successful.
9. Get the tuned value from the ‘OutGains’.

328 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix E PID Function Blocks

How Autotune Works


The autotune process begins when ‘Initialize’ is set to FALSE (Step 7.) At this moment, the
control output increases by the amount of ‘Step’ and the process waits for the process value to
reach or exceeds ‘first peak’.

First peak is defined as:

For Direct Operation: First peak = PV1 - (12 x Deviation)


For Reverse Operation: First peak = PV1 + (12 x Deviation)
Where PV1 is the process value when Initialize is set to FALSE.

Once the process value reaches the first peak, the control output reduces by the amount of
Step and waits for the process value to drop to the second peak.

Second peak is defined as:

For Direct Operation: Second peak = PV1 - (3 x Deviation)


For Reverse Operation: Second peak = PV1 + (3 x Deviation)
Once the process value reaches or falls below the second peak, calculations commence and a
set of gain is generated to parameter OutGains.

Troubleshooting an You can understand the autotune process from the sequences of control output. Here are
some known sequences of control output and what it means if the autotune fails. For the ease
Autotune Process of illustrating the sequence of control output, we define:
• Load: 50
• Step: 20
Output Sequence 1: 50 ✟70 ✟30
Sequence Condition Autotune Result Action for Autotune Fail
Process value reached 'first peak' and Likely successful NA
'second' peak in time

Output Sequence 2: 50 ✟70 ✟50


Sequence Condition Autotune Result Action for Autotune Fail
Process value not able to reach 'first peak' Likely unsuccessful Reduce Deviation or Increase Step

Output Sequence 3: 50 ✟70 ✟30 ✟50


Sequence Condition Autotune Result Action for Autotune Fail
Process value not able to reach second peak Likely unsuccessful Increase Deviation or increase Step

Output Sequence 4: 50 ✟70


Sequence Condition Autotune Result Action for Autotune Fail
Process value not able to reach First peak in Likely unsuccessful Increase ATDynamSet
time

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 329


Appendix E PID Function Blocks

PID Application Example Figure 68 - Example of a PID Application

Water in

Water level

Tank Water out

Figure 68 shows a basic water level control system to maintain a preset water level in the tank.
A solenoid valve is used to control incoming water, filling the tank at a preset rate. Similarly,
outflowing water is controlled at a measurable rate.

IPID Autotuning for First and Second Order Systems

Autotune of IPID can only work on first and second order systems.
A first order system can be described by an independent energy storage element. Examples of
first order systems are the cooling of a fluid tank; the flow of fluid from a tank; a motor with
constant torque driving a disk flywheel or an electric RC lead network. The energy storage
elements for these systems are heat energy, potential energy, rotational kinetic energy, and
capacitive storage energy, respectively.
This may be written in a standard form such as f(t) = τdy/dt + y(t), where τ is the system time
constant, f is the forcing function, and y is the system state variable.
In the cooling of a fluid tank example, it can be modeled by the thermal capacitance C of the
fluid and thermal resistance R of the walls of the tank. The system time constant is RC, the
forcing function is the ambient temperature, and the system state variable is the fluid
temperature.

A second order system can be described by two independent energy storage elements that
exchange stored energy. Examples of second order systems are: a motor driving a disk
flywheel with the motor that is coupled to the flywheel via a shaft with torsional stiffness, or
an electric circuit composed of a current source driving a series LR (inductor and resistor)
with a shunt C (capacitor). The energy storage elements for these systems are the rotational
kinetic energy and torsion spring energy for the former, and the inductive and capacitive
storage energy for the latter. Motor drive systems and heating systems can be typically
modeled by the LR and C electric circuit.

330 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix E PID Function Blocks

PID Code Sample


Figure 69 - Sample of PID Code to Control a PID Application

Figure 69 shows the sample code for controlling the PID application example (Figure 68). The
sample code, developed using Function Block Diagrams, consists of a pre-defined function
block (IPIDCONTROLLER), and four user-defined function blocks. The four user-defined
function blocks are:
• PID_OutputRegulator
Regulates the output of IPIDCONTROLLER within a safe range to verify that there is no
damage to the hardware that is used in the process.
If RMIN ≤ RIN ≤ RMAX, then ROUT = RIN,
If RIN < RMIN, then ROUT = RMIN,
If RIN > RMAX, then ROUT = RMAX.
• PID_Feedback
Acts as a multiplexer.
If FB_RST is false, then FB_OUT = FB_IN,
If FB_RST is true, then FB_OUT = FB_PREVAL.
• PID_PWM
Provides a PWM function, which converts a real value to a time-related ON/OFF output.
• SIM_WATERLVL
Simulates the process that is shown in the PID application example (Figure 68).

IMPORTANT User Program Scan Time


The autotuning method must cause the output of the control loop to
oscillate. To identify the oscillation period, the IPID must be called
frequently enough to sample the oscillation adequately. The scan time of
the user program must be less than half the oscillation period. In
essence, you must adhere to the Shannon or Nyquist-Shannon sampling
theorem.
Also, you must trigger the function block at a relatively constant time
interval. You can achieve this with an STI interrupt function.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 331


Appendix E PID Function Blocks

Notes:

332 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix F

System Loading

Table 135 - Micro830, Micro850, and Micro870 Power Requirements


Controller/Module Power Requirement
Micro830, Micro850, and Micro870
(without plug-in/expansion I/O)
10/16-point 5W
24-point 8W
48-point 11 W
Plug-in modules, each 1.44 W
2085-IQ16 – 0.85 W
2085-IQ32T – 0.95 W
2085-IA8 – 0.75 W
2085-IM8 – 0.75 W
2085-OA8 – 0.90 W
2085-OB16 – 1.00 W
Expansion I/O 2085-OV16 – 1.00 W
(system bus power consumption) 2085-OW8 – 1.80 W
2085-OW16 – 3.20 W
2085-IF4 – 1.70 W
2085-IF8 – 1.75 W
2085-OF4 – 3.70 W
2085-IRT4 – 2.00 W

Calculate Total Power for Your Micro830/Micro850/Micro870


Controller
To calculate Total Power for your Micro830, Micro850, and Micro870 controller, use the
following formula:
Total Power =Main Unit Power + No. of Plug-ins * Plug-in Power + Sum of Expansion
I/O Power

Example 1:
Derive Total Power for a 24-point Micro830 controller with two plug-ins.
Total Power = 8 W+ 1.44 W * 2 + 0 = 10.88 W

Example 2:
Derive Total Power for a 48-point Micro850 controller, with 3 plug-ins, and 2085-IQ16, and
2085-IF4 expansion I/O modules attached.
Total Power = 11 W + 3 * 1.44 W + 0.85 W + 1.7 W = 17.87 W

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 333


Appendix F System Loading

Calculate External AC Power Supply Loading for your Micro830 Controller

To calculate External AC Power Supply Loading:


• Get total sensor current loading. For this example, assume it is 250 mA.
• Calculate Total Power Loading by Sensor using this formula:
(24V * 250 mA) 6 W.
• Derive External AC Power Supply Loading using this formula:
AC Power Supply Loading = Total Power that is calculated for a Micro800 system with
Plug-in + Total power loading by Sensor.
As an example, a 48-point Micro850 controller with 2 plug-ins, 2085-IQ16 and 2085-IF4
expansion I/O, and 250 mA sensor current (6 W sensor power) have the following Total Loading
for AC Power Supply:
Total loading for AC power supply = 17.87 W + 6 W = 23.87 W

ATTENTION: Maximum loading to AC Power Supply is limited to 38.4 W with


maximum surrounding ambient temperature limited to 65 °C (149 °F).

334 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix G

Connect to Networks using DF1

IMPORTANT This appendix only applies to Micro850 (2080-L50E) and Micro870


(2080-L70E) controllers.

The following protocols are supported on the embedded serial port, including any
2080-SERIALISOL plug-in module that is installed, on the newer Micro850 (2080-L50E) and
Micro870 (2080-L70E) controllers.
• DF1 Full-duplex
• DF1 Half-duplex Master/Slave
• DF1 Radio Modem

DF1 Full-duplex Protocol DF1 Full-duplex protocol provides a point-to-point connection between two devices. DF1 Full-
duplex protocol combines data transparency (American National Standards Institute ANSI –
X3.28-1976 specification subcategory D1) and 2-way simultaneous transmission with
embedded responses (subcategory F1).

The controller supports the DF1 Full-duplex protocol via RS-232 connection to external devices,
such as computers, or other controllers that support DF1 Full-duplex.

DF1 support is achieved through the CIP serial interface in the Micro800 controllers.

DF1 Full-duplex protocol (also referred to as DF1 point-to-point protocol) is useful where
RS-232 point-to-point communication is required. DF1 protocol controls message flow, detects
and signals errors, and retries if errors are detected.
Example DF1 Full-duplex Connections
Micro870 controller
Computer

CH0

Computer

Modem cable USB


Micro870 controller

Modem

CH0
Modem 1761-CBL-PM02 with null modem adapter

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 335


Appendix G Connect to Networks using DF1

DF1 Half-duplex Protocol DF1 Half-duplex protocol is a multi-drop single master/multiple slave network. DF1 Half-duplex
protocol supports data transparency (American National Standards Institute ANSI – X3.28-1976
specification subcategory D1). In contrast to DF1 Full-duplex, communication takes place in
one direction at a time. You can use the RS-232/RS-485 port on the controller as both a Half-
duplex programming port and a Half-duplex peer-to-peer messaging port.

DF1 Half-duplex Operation


A DF1 Half-duplex master device initiates all communication by “polling” each slave device. The
slave device may only transmit when it is polled by the master. It is the master’s responsibility
to poll each slave on a regular and sequential basis to allow slave devices an opportunity to
communicate.

An additional feature of the DF1 Half-duplex protocol is that it is possible for a slave device to
enable a MSG write or read to/from another slave. When the initiating slave is polled, the MSG
is sent to the master. The master recognizes that the message is not intended for it, but for
another slave, so the master immediately forwards the message to the intended slave. The
master does this automatically; you do not need to program the master to move data between
slave nodes. This slave-to-slave transfer can also be used by programming software to allow
slave-to-slave upload and download of programs to controllers (including the master) on the
DF1 Half-duplex link.

The controller can act as the master or as a slave on a Half-duplex network. When the
controller is a slave device, a master device is required to run the network. Several other Allen-
Bradley products support the DF1 Half-duplex master protocol.

DF1 Half-duplex supports up to 255 devices (address 0…254) with address 255 reserved for
master broadcasts. As a DF1 Half-duplex slave device, the controller supports broadcast
reception. As a DF1 Half-duplex master, the controller supports both the reception and
initiation of broadcast write commands (via the MSG instruction). The controller also supports
Half-duplex modems using RTS/CTS hardware handshaking.

IMPORTANT Firmware revision 20 for Micro850 and Micro870 controllers does not
support the broadcast function in Half-duplex master. This feature will
be supported in a future firmware revision.

Considerations When Communicating as a DF1 Slave on a Multi-drop


Link
When communication is between either your programming software and a Micro800 controller
or between two Micro800 controllers via slave-to-slave communication on a larger multi-drop
link, the devices depend on a DF1 Half-duplex master to give each of them access in a timely
manner. As the number of slave devices increases, the time between when slave devices are
polled also increases. This increase in time may also be large if you are using low
communication rate. As these time periods grow, you must increase the poll timeout and reply
timeout values for slave devices.

IMPORTANT Program download is not supported in the DF1 Half-duplex and Radio
Modem for Micro850 (2080-L50E) and Micro870 (2080-L70E) controllers
firmware revision 20 or later.

Using Modems with Micro800 Programmable Controllers


The types of modems you can use with Micro800 controllers include the following:
• Dial-up phone modems
A Micro800 controller, on the receiving end of the dial-up connection, can be configured
for DF1 Full-duplex protocol with or without handshaking. The modem connected to the
Micro800 controller should support auto-answer.

336 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix G Connect to Networks using DF1

• Leased-line modems
Leased-line modems are used with dedicated phone lines that are typically leased from
the local phone company. The dedicated lines may be in a point-to-point topology
supporting Full-duplex communications between two modems or in a multi-drop
topology supporting Half-duplex communications between three or more modems.
• Radio modems
Radio modems may be implemented in a point-to-point topology supporting either Half-
duplex or Full-duplex communications, or in a multi-drop topology supporting half-
duplex communications between three or more modems. Micro800 controllers also
support DF1 Radio Modem protocol.
• Line drivers
Line drivers, also called short-haul modems, do not actually modulate the serial data,
but rather condition the electrical signals to operate reliably over long transmission
distances (up to several miles). Line drivers are available in Full-duplex and Half-duplex
models.

For point-to-point Full-duplex modem connections that do not require any modem
handshaking signals to operate, use the DF1 Full-duplex protocol with no handshaking. For
point-to-point Full-duplex modem connections that require RTS/CTS handshaking, use the DF1
Full-duplex protocol with handshaking.

For radio modem connections, use the DF1 Radio Modem protocol, especially if store and
forward capability is required.

For general multi-drop modem connections, or for point-to-point modem connections that
require RTS/CTS handshaking, use the DF1 Half-duplex slave protocol. In this case, one (and
only one) of the other devices must be configured for the DF1 Half-duplex master protocol.
Micro850 (2080-L50E) and Micro870 (2080-L70E) controllers support RTS/CTS
modem handshaking when configured for DF1 Full-duplex protocol with the control
line parameter set to Full-duplex Modem Handshaking or DF1 Half-duplex slave
protocol with the control line parameter set to Half-duplex Modem.
These controllers also support the Data Carrier Detect (DCD) line for the DF1 radio
modem protocol. No other modem handshaking lines (such as Data-Set™ Ready
and Data Terminal Ready) are supported by Micro800 controllers.

Modem Control Line The following explains the operation of the Micro800 controllers when you configure the
RS-232 serial port for the following applications.
Operation
DF1 Full-duplex
When configured for DF1 Full-duplex, the following control line operation takes effect:

No Handshake Selected

RTS is always inactive (low). Receptions and transmissions take place regardless of the state
of CTS input. Only make this selection when the Micro800 controllers are directly connected to
another device that does not require handshaking signals.

Full-duplex (RTS always ON) Selected

RTS is always active (high).


Transmissions require CTS to be active.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 337


Appendix G Connect to Networks using DF1

DF1 Half-duplex Slave


When configured for DF1 Half-duplex slave, the following control line operation takes effect:

No Handshake Selected

RTS is always inactive. Receptions and transmissions take place regardless of the state of CTS
input. Only make this selection when the controller is directly connected to another device that
does not require handshaking signals.

Half-duplex without Continuous Carrier (RTS/CTS) Selected

RTS is only activated during transmissions (and any programmed delays before or after
transmissions). Transmissions require CTS to be active.

DF1 Half-duplex Master


When configuring for the DF1 Half-duplex master, the following control line operation takes
effect:

No Handshake Selected

RTS is always inactive. Receptions and transmissions take place regardless of the state of CTS
input. Only make this selection when the controller is directly connected to another device that
does not require handshaking signals.

Full-duplex Modem (RTS always ON) Selected

RTS is always active (high).

Transmissions require CTS to be active.

Half-duplex without Continuous Carrier (RTS/CTS) Selected

RTS is only active during transmissions (and any programmed delays before and after
transmissions).
Transmissions require CTS to be active

DF1 Radio Modem


When you configure the Micro800 controllers for DF1 Radio Modem, the following control line
operation takes effect:

No Handshake Selected

RTS is always inactive. Receptions and transmissions take place regardless of the state of CTS
input. This selection should only be made when the controller is directly connected to another
device that does not require handshaking signals.

Half-duplex without Continuous Carrier (RTS/CTS) Selected

RTS is activated during transmission and during any programmed delays before or after
transmissions. Programmed delays include RTS Send Delay and RTS Off Delay.

338 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix G Connect to Networks using DF1

Transmissions require CTS to be active. If CTS is inactive at the onset of transmission, one
second will be provided to wait for CTS to become active before the message packet is
discarded.

Half-duplex with DCD Handshake Selected

RTS is activated during transmissions and during any programmed delays before and after
transmissions. Programmed delays include RTS Send Delay and RTS Off Delay. The DCD input
signal is monitored to determine if transmissions are acceptable. If DCD is active, receptions
are possible.

Transmissions require CTS to be active and DCD to be inactive. If DCD is active at the onset of
transmission, a configured delay (DCD Wait Delay) will wait for DCD to become inactive before
discarding the packet. If CTS is inactive at the onset of transmission, one second will be
provided to wait for CTS to become active before the message packet is discarded.

Configure DF1 Half-Duplex RTS Send Delay and RTS Off Delay
Parameters
Through your programming software, the parameters RTS Send Delay and RTS Off Delay let you
set how long RTS is on before transmission, and how long to keep it on after transmission is
complete. These parameters only apply when you select Half-duplex Modem. For maximum
communication throughput, leave these parameters at zero.

For use with Half-duplex Modems that require extra time to turnaround or key-up their
transmitter even after they have activated CTS, the RTS Send Delay specifies (in 20 millisecond
increments) the amount of delay time after activating RTS to wait before checking to see if
CTS has been activated by the modem. If CTS is not yet active, RTS remains active, and as long
as CTS is activated within one second, the transmission occurs. After one second, if CTS is still
not activated, then RTS is set to inactive and the transmission is aborted.

For modems that do not supply a CTS signal but still require RTS to be raised before
transmission, jumper RTS to CTS and use the shortest delay possible without losing reliable
operation.

IMPORTANT If an RTS Send Delay of 0 is selected, then transmission starts as soon


as CTS is activated. If CTS does not go active within one second after
RTS is raised, RTS is set inactive and the transmission is stopped.

Certain modems drop their carrier link when RTS is set inactive even though the transmission
has not finished. The RTS Off Delay parameter specifies in 20 millisecond increments the delay
between when the last serial character is sent to the modem and when RTS is deactivated.
This gives the modem extra time to transmit the last character of a packet.

ATTENTION: For almost all modem applications, the RTS Off Delay should be
left at 0. Never select an RTS Off Delay that is greater than the RTS Send Delay
in the other devices on the network, or you may incur two devices trying to
transmit simultaneously.

Configure a Standard-Mode Choose standard mode if you want to query slave stations for information based on user-
configured polling ranges. This mode is often used in general point-to-multipoint
DF1 Half-duplex Master configurations.
Station
To configure the controller as a master station using standard-communication mode, place
the controller into program mode and follow the steps below using your programming
software:

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 339


Appendix G Connect to Networks using DF1

1. To bring up the configuration page, select


Serial Port.

2. On the Serial Port configuration page, select


Half-Duplex Master for DF1 Mode.
3. Choose a Standard Polling Mode.
4. Configure the rest of the communication
driver according to Table 136.

Table 136 shows the parameters for configuring a Micro850 (2080-L50E) or Micro870 (2080-
L70E) controller as a master station using standard-communication mode to talk to slave
stations.
Table 136 - Configure a Micro800 Controller as a Master Using Standard-communication
Mode
Parameter Selections
Select a communication rate that all devices in your system support. Configure all
Baud Rate devices in the system for the same communication rate.
Parity provides additional message packet error detection. To implement even
Parity parity checking, choose Even. To implement no parity checking, choose None.
A node address identifies the controller on the DF1 half-duplex link. Each station
on a link must have a unique address. Choose an address between 010 and 25410.
Node Address Node address 25510 is the broadcast address, and cannot be selected as a
station’s individual address.
Defines the mode in which the driver operates. Choose a method appropriate for
your system configuration:
• If you are not using a modem, choose NO HANDSHAKE.
Control Line • If the master modem is full duplex, choose FULL-DUPLEX (RTS ALWAYS ON).
• If all modems in the system are half-duplex, choose HALF-DUPLEX WITHOUT
CONTINUOUS CARRIER (RTS/CTS).
See Modem Control Line Operation on page 337 for a description of the control
line operation settings.
With this selection, you choose how the controller checks the accuracy of each
DF1 packet transmission.
BCC: This algorithm provides a medium level of data security. It cannot detect:
– Transposition of bytes during transmission of a packet
Error Detection – The insertion or deletion of data values of zero within a packet
CRC: This algorithm provides a higher level of data security.
Select an error detection method that all devices in your configuration can use.
When possible, choose CRC.

340 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix G Connect to Networks using DF1

Table 136 - Configure a Micro800 Controller as a Master Using Standard-communication


Mode (Continued)
Parameter Selections
If you want to receive:
• Only one message from a slave station per its turn, choose STANDARD (SINGLE
MESSAGE TRANSFER PER NODE SCAN). Choose this method only if it is critical to
Polling Mode keep the poll list scan time to a minimum.
• As many messages from a slave station as it has, choose STANDARD (MULTIPLE
MESSAGE TRANSFER PER NODE SCAN).
Duplicate Detect lets the controller detect if it has received a message that is a
duplicate of its most recent message from another station. If you choose
duplicate detect, the controller acknowledges (ACK) the message but doens not
act on it since it has already performed the message’s task when it received the
Duplicate Packet Detect command from the first message.
If you want to detect duplicate packets and discard them, check this parameter.
If you want to accept duplicate packets and execute them, leave this parameter
unchecked.
The amount of time, in 20 millisecond increments, that you want the controller to
wait for an acknowledgment to the message it has sent before the controller
ACK Timeout retries the message or the message errors out. This timeout value is also used for
the poll response timeout. See Minimum DF1 Half-duplex Master ACK Timeout on
page 341 for recommendations to minimize this value.
Defines the amount of time, in 20 millisecond increments that elapses between
the end of the message transmission and the de-assertion of the RTS signal. This
RTS Off Delay time delay is a buffer to make sure that the modem has transmitted the message
but should normally be left at zero. See RTS Send Delay and RTS Off Delay on
page 339 for further guidelines for setting this parameter.
Defines the amount of time, in 20 millisecond increments that elapses between
the assertion of the RTS signal and the beginning of the message transmission.
RTS Send Delay This time allows the modem to prepare to transmit the message. The Clear to
Send (CTS) signal must be high for transmission to occur. See RTS Send Delay and
RTS Off Delay on page 339 for further guidelines for setting this parameter.
Defines the amount of time in 1 millisecond increments that elapses between
Pre-Transmit Delay when the controller has a message to send and when it asserts the RTS signal.
Defines the number of times a master station retries either:
• A message before it declares the message undeliverable
Message Retries
• A poll packet to an active station before the master station declares that
station to be inactive.
Priority Polling Range – High Select the last slave station address to priority poll.
Select the first slave station address to priority poll. Entering 255 disables priority
Priority Polling Range – Low polling.
Normal Polling Range – High Select the last slave station address to normal poll.
Select the first slave station address to normal poll. Entering 255 disables normal
Normal Polling Range – Low polling.
Enter the quantity of active stations in the normal poll range that you want polled
during a scan through the normal poll range before returning to the priority poll
Normal Poll Group Size range. If no stations are configured in the Priority Polling Range, leave this
parameter at 0.

IMPORTANT The unconnected timeout value in the message instruction should


always be larger than the pre-transmit delay.

Minimum DF1 Half-duplex Master ACK Timeout


The governing timeout parameter to configure for a DF1 Half-duplex master is the serial port
ACK Timeout. The ACK Timeout is the amount of time that you want the controller to wait for an
acknowledgment of its message transmissions. Set in 20 millisecond intervals, the value is the
amount of time the master waits for:
• An ACK to be returned by a slave when the master has sent it a message, or
• A poll response or message to be returned by a slave when the master has sent it a poll
packet.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 341


Appendix G Connect to Networks using DF1

The timeout must be long enough that after the master has transmitted the last character of
the poll packet, there is enough time for a slave to transmit (and the master receive) a
maximum-sized packet before the time expires.
To calculate the minimum ACK timeout, you must know:
• The modem communication rate
• Maximum-sized data packet (the maximum number of data words that a slave write
command or read reply packet might contain)
• The RTS/CTS or turnaround delay of the slave modem
• The configured RTS Send Delay in the slave
• The program scan time of the slave

Determining Minimum Master ACK Timeout


To determine the minimum ACK Timeout, you must first calculate the transmission time by
multiplying the maximum-sized data packet for your controller by the modem rate in ms/byte.
For example, we assume a Micro800 controller (103 data words or 224 bytes total packet size
including overhead) and a 9600 bps modem, which transmits at approximately 1 ms/byte.
Therefore, the message transmission time is 224 ms. For approximate modem transmission
rates, see the following table.
Table 137 - Approximate Modem Transmission Rates
Speed (bps) Rate, approx (ms/byte)
4800 2 ms/byte
9600 1 ms/byte
19200 0.5 ms/byte

Next, you must determine the average slave program scan time. In Connected Components
Workbench software, double-click the controller variables in the Controller Organizer and
locate the system tag _SYSVA_TCYCYCTIME in the Variable tab. For this example, assume that
the program scan time is 20 ms. The program scan time varies by application.

Finally, you must determine the larger of two values, either the configured slave RTS Send
Delay or the turnaround time of the slave modem. The RTS Send Delay time can be found by in
the Configuration screen of the Micro800 embedded serial port. The RTS Send Delay time is in
intervals of 20 ms, so with a value of 3 in the box, the RTS Send Delay time is 20 ms multiplied
by 3. Using this value (60 ms) for our example, and assuming that the turnaround time of the
modem is 50 ms (which varies by modem), choose to use the RTS Send Delay time of 60 ms for
your calculation.

Having determined the maximum message transmission time (224 ms), the average slave
program scan time (20 ms) and the largest of either the RTS Send Delay (60 ms) or the modem
turnaround time, the minimum ACK timeout is the sum of these values.
Parameter Example Values (in ms)
Max Message Transmission Time 224
Average Program Scan Time 20
RTS Send Delay 60
Modem Turnaround Time 50
Calculated ACK Timeout 304 Use only the largest of these two values.
Round up to Nearest 20 ms 320

342 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix G Connect to Networks using DF1

DF1 Half-Duplex Master Communication Diagnostics


Communication diagnostics is available while connected to the controller by clicking the
Diagnose communication status button. Table 138 explains information regarding the
diagnostic counter data displayed.
1. Click Diagnose communication status to bring
up the DF1 Half-duplex master diagnostics.

2. See Table 138 for details concerning the DF1


Half-duplex master Communication
Diagnostics screen.

Table 138 - DF1 Half-duplex Master Communication Diagnostics Parameters


Status Field Definition
The total number of DF1 messages sent by the controller (including message
Packets Sent retries)
Packets Received The number of messages received with no errors
Last Normal Scan Time (ms) Time in millisecond increments of last scan through Normal Poll List
Last Priority Scan Time (ms) Time in millisecond increments of last scan through Priority Poll List
Message Retried The number of message retries sent by the controller
The number of messages that were sent by the controller but not acknowledged by
Undelivered Packets the destination device
The number of times the controller received a message packet identical to the
Duplicate Received previous message packet
The number of incorrect data packets received by the controller for which no ACK
Bad Packet Received was returned
Max Normal Scan Time (ms) Maximum time in millisecond increments to scan the Normal Poll List
Max Priority Scan Time (ms) Maximum time in millisecond increments to scan the Priority Poll List

Configure a Message-based Choose message-based communication mode if you want to use MSG instructions in user
programming to communicate with one station at a time. If your application uses satellite
Mode DF1 Half-duplex transmission or cellular transmission, consider choosing message-based. Communication to a
Master Station slave station can be initiated on an as-needed basis.

With message-based mode, you do not have an active node file that you can use to monitor
station status. Also, you cannot implement slave station-to-slave station messaging or slave
programming.

To configure the controller for a master station using message-based communication, place
the controller in program mode and follow the steps below in the Connected Components
Workbench software.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 343


Appendix G Connect to Networks using DF1

1. To bring up the configuration page, click


Serial Port.
2. On the Serial Port configuration page, select
Half-Duplex Master for your DF1 Mode.
3. Choose a Message-based Polling Mode.
4. Configure the rest of the communication
driver according to Table 139.

Define the parameters shown in Table 139 when configuring a Micro800 controller as a master
station using message-based communication mode to talk to slave stations.
Table 139 - Configure a Micro800 Controller as a Master Using Message-based
Communication Mode
Parameter Selections
Select a communication rate that all devices in your system support. Configure all devices
Baud Rate in the system for the same communication rate.
Parity provides additional message packet error detection. To implement even parity
Parity checking, choose Even. To implement no parity checking, choose None.
A node address identifies the controller on the DF1 Half-duplex link. Each station on a link
Node Address must have a unique address. Choose an address between 010 and 25410. Node address 25510
is the broadcast address, and cannot be selected as a station’s individual address.
Select the communication media for the DF1 protocol:
Media • RS-232
• RS-485 (only available when DF1 mode is Half-duplex)
This parameter defines the mode in which the driver operates. Choose a method
appropriate for your system’s configuration:
• If you are not using a modem, choose NO HANDSHAKE.
Control Line • If the master modem is full-duplex, choose FULL-DUPLEX (RTS ALWAYS ON).
• If all modems in the system are half-duplex, choose HALF-DUPLEX WITHOUT CONTINUOUS
CARRIER (RTS/CTS).
See Modem Control Line Operation on page 337 for descriptions of control line operation
settings.
With this selection, you choose how the controller checks the accuracy of each DF1 packet
transmission.
BCC: This algorithm provides a medium level of data security. It cannot detect:
– Transposition of bytes during transmission of a packet
Error Detection – The insertion or deletion of data values of zero within a packet
CRC: This algorithm provides a higher level of data security.
Select an error detection method that all devices in your configuration can use.
When possible, choose CRC.

344 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix G Connect to Networks using DF1

Table 139 - Configure a Micro800 Controller as a Master Using Message-based


Communication Mode (Continued)
Parameter Selections
If you want to:
• Accept unsolicited messages from slave stations, choose MESSAGE BASED (ALLOW SLAVES
TO INITIATE MESSAGES)
Slave station-initiated messages are acknowledged and processed after all master
station-initiated (solicited) messages.
Note: Slave stations can only send messages when they are polled. If the message-based
master station never sends a slave station a message, the master station never sends the
Polling Mode slave station a poll. Therefore, to obtain a slave station-initiated message from a slave
station regularly, you should choose to use standard communication mode instead.
• Ignore unsolicited messages from slave stations, choose MESSAGE BASED (DO NOT ALLOW
SLAVES TO INITIATE MESSAGES)
Slave station-initiated messages are acknowledged and discarded. The master station
acknowledges the slave station-initiated message so that the slave station removes the
message from its transmit queue, which allows the next packet that is slated for
transmission into the transmit queue.
Duplicate Detect lets the controller detect if it has received a message that is a duplicate of
its most recent message from another station. If you choose duplicate detect, the controller
Duplicate Packet acknowledges (ACK) the message but does not act on it since it has already performed the
Detect message’s task when it received the command from the first message.
If you want to detect duplicate packets and discard them, check this parameter. If you want
to accept duplicate packets and execute them, leave this parameter unchecked.
Defines the amount of time in 20 millisecond increments that the master station will wait
Reply Message Wait after receiving an ACK (to a master-initiated message) before polling the slave station for a
reply.
Timeout Choose a time that is, at minimum, equal to the longest time that a slave station must
format a reply packet. This would typically be the maximum scan time of the slave station.
Defines the amount of time in 20 millisecond increments that you want the controller to
wait for an acknowledgment to the message it has sent before the controller retries the
ACK Timeout message or the message errors out. This timeout value is also used for the poll response
timeout. See See Minimum DF1 Half-duplex Master ACK Timeout on page 341 for
recommendations to minimize this value.
Defines the amount of time in 20 millisecond increments that elapses between the end of
the message transmission and the de-assertion of the RTS signal. This time delay is a buffer
RTS Off Delay to make sure that the modem has transmitted the message but should normally be left at
zero. See RTS Send Delay and RTS Off Delay on page 339 for further guidelines for setting
this parameter.
Defines the amount of time in 20 millisecond increments that elapses between the
assertion of the RTS signal and the beginning of the message transmission. This time allows
RTS Send Delay the modem to prepare to transmit the message. The Clear to Send (CTS) signal must be high
for transmission to occur. See RTS Send Delay and RTS Off Delay on page 339 for further
guidelines for setting this parameter.
Pre-Transmit Delay Defines the amount of time in 1 millisecond increments that elapses between when the
controller has a message to send and when it asserts the RTS signal.
Defines the number of times a master station retries a message before it declares the
Message Retries message undeliverable.

IMPORTANT The unconnected timeout value in the message instruction should


always be larger than the pre-transmit delay.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 345


Appendix G Connect to Networks using DF1

Configure a Slave Station To choose the controller as a slave station, follow the steps below using your programming
software:

1. To bring up the configuration page, select


Serial Port.
2. On the Serial Port configuration page, select
Half-Duplex Slave for your DF1 Mode.
3. Configure the rest of the communication
driver according to Table 140.

Define these parameters when configuring a Micro800 controller as a slave station.


Table 140 - Configure a Micro800 Controller as a Slave Station
Parameter Selections
Select a communication rate that all devices in your system support. Configure all
Baud Rate devices in the system for the same communication rate.
Parity provides additional message packet error detection. To implement even parity
Parity checking, choose Even. To implement no parity checking, choose None.
A node address identifies the controller on the DF1 half-duplex link. Each station on a
link must have a unique node address. Choose an address between 010 and 25410.
Node Address Node address 25510 is the broadcast address, which you cannot select as a station’s
individual address.
This parameter defines the mode in which the driver operates. Choose a method
appropriate for your system’s configuration:
• If you are not using a modem, choose NO HANDSHAKE.
Control Line • If the master modem is full-duplex and the slave modem is half-duplex, choose
HALF-DUPLEX WITHOUT CONTINUOUS CARRIER (RTS/CTS).
See page Modem Control Line Operation on page 337 for descriptions of the control
line operation settings.
With this selection, you choose how the controller checks the accuracy of each DF1
packet transmission.
BCC: This algorithm provides a medium level of data security. It cannot detect:
– Transposition of bytes during transmission of a packet
Error Detection – The insertion or deletion of data values of zero within a packet
CRC: This algorithm provides a higher level of data security.
Select an error detection method that all devices in your configuration can use.
When possible, choose CRC.
Duplicate Detect lets the controller detect if it has received a message that is a
duplicate of its most recent message from the master station. If you choose
duplicate detect, the controller acknowledges (ACK) the message but does not act on
it since it has already performed the message’s task when it received the command
Duplicate Packet Detect
from the first message.
If you want to detect duplicate packets and discard them, check this parameter. If
you want to accept duplicate packets and execute them, leave this parameter
unchecked.

346 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix G Connect to Networks using DF1

Table 140 - Configure a Micro800 Controller as a Slave Station (Continued)


Parameter Selections
The timer keeps track of how often the station is polled. If the station has a message
to send, it starts a timer.
If the poll timeout expires before the message timeout, which you specify in the MSG
control block, the MSG error bit is set and the message is removed from the transmit
Poll Timeout queue.
If the message timeout, which you specify in the MSG control block, expires before
the poll timeout expires, the MSG error bit and MSG timeout bit are set.
The poll timeout can be disabled by entering a zero. See Configure Poll Timeout on
page 347 for recommendations to minimize this value.
Defines the amount of time in 20 millisecond increments that elapses between the
end of the message transmission and the de-assertion of the RTS signal. This time
RTS Off Delay delay is a buffer to make sure that the modem has transmitted the message, but
should normally be left at zero. See RTS Send Delay and RTS Off Delay on page 339 for
further guidelines for setting this parameter.
Defines the amount of time in 20 millisecond increments that elapses between the
assertion of the RTS signal and the beginning of the message transmission. This time
RTS Send Delay allows the modem to prepare to transmit the message. The Clear to Send (CTS) signal
must be high for transmission to occur. See RTS Send Delay and RTS Off Delay on
page 339 for further guidelines for setting this parameter.
Defines the number of times a slave station resends its message to the master
Message Retries station before the slave station declares the message undeliverable.
Defines the amount of time in 1 millisecond increments that elapses between when
Pre-Transmit Delay the controller has a message to send and when it asserts the RTS signal.
If you want to minimize traffic on the network, you can choose to have the slave
station not send EOT packets to the master station. When EOT packets are
suppressed, the master station automatically assumes that a slave station has no
data to give if the slave station does not send a message packet as a response to a
poll.
A disadvantage of suppressing EOTs is that the master station cannot distinguish
EOT Suppression between an active station that has no data to transmit and an inactive station.
A possible application for suppressing EOTs is the following: conserving power with a
radio modem because the radio transmitter does not have to power up to transmit a
DLE EOT packet (”no data to give” packet).
To suppress EOTs, check this parameter. To have the controller send EOTs, leave this
parameter unchecked.

Configure Poll Timeout The Poll Timeout is only used when the DF1 Half-duplex slave is initiating MSG instructions in
ladder logic. This implies that the master is most likely configured for Standard Polling Mode.
The minimum Poll Timeout value is dependent on the maximum master poll scan rate. Since
the master’s polling and the slave’s triggering of a MSG instruction are asynchronous events, it
is possible that in the instant just after the slave was polled, the MSG instruction gets
triggered. This means the MSG instruction remains queued-up for transmission until the
master has polled every other slave first. Therefore, the minimum slave Serial Port Poll
Timeout value is equal to the maximum master Scan Poll Rate rounded up to the next 20 ms
increment.

Minimum Serial Port Poll Timeout = Maximum Master Scan Poll Rate

DF1 Half-duplex Slave Communication Diagnostics


Communication diagnostics is available while connected to the controller by clicking the
Diagnose communication status button. Table 141 explains information regarding the
diagnostic counter data displayed.
1. Select Diagnose communication status to
bring up the DF1 Half-duplex slave diagnostics.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 347


Appendix G Connect to Networks using DF1

2. See Table 141 for details concerning the DF1


Half-duplex slave Communication
Diagnostics screen.

Table 141 - DF1 Half-duplex Slave Communication Diagnostics Parameters


Status Field Definition
The total number of DF1 messages sent by the controller (including message
Packets Sent retries)
Packets Received The number of messages received with no errors
NAKs Received The number of NAKs received by the controller
The number of times the controller could not receive a message because it did not
No Memory for Receiving have available memory
Messages Retried The number of message retries sent by the controller
The number of messages that were sent by the controller but not acknowledged by
Undelivered Packets the destination device
The number of times the controller received a message packet identical to the
Duplicate Received previous message packet
The number of incorrect data packets received by the controller for which no ACK
Bad Packets Received was returned

Configure a Radio Modem To configure a Micro800 controller channel 1 for DF1 Radio Modem, do the following using your
programming software:
Station

1. To bring up the configuration page, select


Serial Port.
2. On the Serial Port configuration page, select
Radio Modem for your DF1 Mode.
3. Configure the rest of the communication
driver according to Table 142.

Table 142 - Configure a Micro800 controller for DF1 Radio Modem Communication
Parameter Default Selections
Select a communication rate that all devices in your system support. Configure all devices in the system for
Baud Rate 19,200 the same communication rate.
Parity provides additional message packet error detection. To implement even parity checking, choose Even.
Parity None To implement odd parity checking, choose Odd. To implement no parity checking, choose None.
A node address identifies the controller on the DF1 half-duplex link. Each station on a link must have a unique
Node Address 1 node address. Choose an address between 010 and 25410. Node address 25510 is the broadcast address, which
you cannot select as a station’s individual address.
Enable Store and Forward Not selected (Disabled) See Configure the Store and Forward Table on page 350 for more information.

348 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix G Connect to Networks using DF1

Table 142 - Configure a Micro800 controller for DF1 Radio Modem Communication (Continued)
Parameter Default Selections
This parameter defines the mode in which the driver operates. Choose a method appropriate for your
system’s configuration:
• If you are not using a modem, choose NO HANDSHAKE.
Control Line No Handshake
• Half-duplex without Continuous Carrier (RTS/CTS)
• Half-duplex with DCD Handshaking
See Modem Control Line Operation on page 337 for descriptions of the control line operation settings.
With this selection, you choose how the controller checks the accuracy of each DF1 packet transmission.
BCC: This algorithm provides a medium level of data security. It cannot detect:
– Transposition of bytes during transmission of a packet
Error Detection CRC – The insertion or deletion of data values of zero within a packet
CRC: This algorithm provides a higher level of data security.
Select an error detection method that all devices in your configuration can use.
When possible, choose CRC.
Defines the amount of time in 20 millisecond increments that elapses between the end of the message
transmission and the de-assertion of the RTS signal. This time delay is a buffer to make sure that the modem
RTS Off Delay 0 has transmitted the message, but should normally be left at zero. See RTS Send Delay and RTS Off Delay on
page 339 for further guidelines for setting this parameter.
Defines the amount of time in 20 millisecond increments that elapses between the assertion of the RTS
signal and the beginning of the message transmission. This time allows the modem to prepare to transmit
RTS On Delay 0 the message. The Clear to Send (CTS) signal must be high for transmission to occur. See RTS Send Delay and
RTS Off Delay on page 339 for further guidelines for setting this parameter.
Defines the amount of time in 1 millisecond increments that elapses between when the controller has a
Pre-Transmit Delay 0 message to send and when it asserts the RTS signal (if handshaking is selected) or begins transmitting (if no
handshaking is selected).

DF1 Radio Modem Communication Diagnostics


Communication diagnostics is available while connected to the controller by clicking the
Diagnose communication status button. Table 143 explains information regarding the
diagnostic counter data displayed.
1. Select Diagnose communication status to
bring up the DF1 Radio Modem diagnostics.

2. See Table 143 for details concerning the DF1


Radio Modem Communication Diagnostics
screen.

Table 143 - DF1 Radio Modem Communication Diagnostics Parameters


Status Field Definition
Packets Sent The total number of DF1 messages sent by the controller
Packets Received The number of messages received with no errors
The number of times the controller could not receive a message because it did not
No Memory for Receiving have available memory
The number of messages that were sent by the controller but not acknowledged by
Undelivered Packets the destination device
The number of times the controller received a message packet identical to the
Duplicate Received previous message packet
Bad Characters Received The number of data characters received with transmission errors by the controller

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 349


Appendix G Connect to Networks using DF1

Configure the Store and Forward Table


The Store and Forward function in Micro800 controllers provide two methods to configure –
Dynamic, which requires creating a Store and Forward table, or Static, which you can directly
configure in the Connected Components Workbench software.

Use the static method when you want to configure the Store and Forward tables while the
controller is offline. Use the dynamic method when you want to configure the Store and
Forward tables while the controller is in RUN mode. The dynamic Store and Forward table
occupies a BOOL array [0…255] or DWORD array [0…7] data type. Each bit in this array
corresponds to a DF1 Radio Modem node address.
To configure a Micro800 controller to Store and Forward message packets between two other
nodes, the bits corresponding to the addresses of those two other nodes must be set. For
instance, if node 2 is used to Store and Forward message packets between nodes 1 and 3, then
both Bit 1 and Bit 3 must be set in the Store and Forward table (see Figure 70).

IMPORTANT Once Store and Forward is enabled, duplicate packet detection is also
automatically enabled. Whenever Store and Forward is used within a
radio modem network, every node should have Store and Forward
enabled, even if all bits in the file are cleared, so that duplicate packets
are ignored.
Figure 70 - Applying Store and Forward with DF1 Radio Modem Protocol
(Second Rebroadcast) Note 4
REPLY 1 (First Rebroadcast)
REPLY 1 Note 3

Node 1 Node 2 Node 3 Node 4


REPLY 1
CMD 1
No bits 1, 3, 4 1, 2, 4 (DST = 1, SRC = 4) No bits
(DST = 4, SRC = 1)

Note 1
CMD1 CMD 1
(First Rebroadcast) (Second Rebroadcast)
Note 2

Note 1 – The link layer of Node 1 blocks the re-transmission of a packet that is received with the SRC byte equal to the receiving node’s station
address. Packets received that originate from the receiving node should never be re-transmitted.
Note 2 – To prevent Node 2 from re-transmitting a duplicate packet, the link layer of Node 2 updates the duplicate packet table with the last 20
packets received.
Note 3 – The link layer of Node 4 blocks the re-transmission of a packet that is received with the SRC byte equal to the receiving node’s station
address. Packets received that originate from the receiving node should never be re-transmitted.
Note 4 – To prevent Node 3 from re-transmitting a duplicate packet, the link layer of Node 3 updates the duplicate packet table with the last 20
packets received.

350 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix G Connect to Networks using DF1

Figure 71 - Store and Forward Table for Node 2, Static Method

Figure 72 - Store and Forward Table for Node 2, Dynamic Method


Dynamic method with BOOL array

Dynamic method with DWORD array

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 351


Appendix G Connect to Networks using DF1

Notes:

352 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H

User-defined Function Block Motion Instructions

PowerFlex 520-series User- This section provides details for each instruction.
defined Function Block
RA_PF523_VEL and RA_PF525_VEL
Details
These instructions allow simple PowerFlex 523 or PowerFlex 525 drive control in Velocity Mode.

Table 144 - UDFB for RA_PF523_VEL and RA_PF525_VEL


Operand Type Description
RA_PF523_VEL_Y or Unique instance of the RA_PF523_VEL UDFB or RS_PF525_VEL
Instance RA_PF525_VEL_Y UDFB
_EN BOOL Trigger of UDFB to start executing the instruction
Start BOOL Commands the drive to start.
Stop BOOL Performs a normal stop.
Jog BOOL Commands the drive to jog.
Commands the direction of drive.
SetDir BOOL 0 = Reverse Command
1 = Forward Command
ClrFault BOOL Clears the drive fault.
FreqCommand REAL Controls the reference speed of the drive. In units of 0.01 Hz.
PowerFlex523_I or
Ref_Input References the input data structure of the drive to control.
PowerFlex525V_I
_ENO BOOL Indicates that the UDFB is executing.
Ready BOOL Indicates that the drive is ready for operation.
Active BOOL Indicates that the drive is operating.
Faulted BOOL Indicates fault state
OutputFreq REAL Displays the reference speed of the drive.
ActualDir STRING Indicates the rotating direction.
AtRef BOOL Indicates that the drive is at reference speed.
PowerFlex523_O or
Ref_Output References the output data structure of the drive to control.
PowerFlex525V_O

RA_PF525_POS

This instruction allows simple PowerFlex 525 drive control in Position Mode.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 353


Appendix H User-defined Function Block Motion Instructions

Table 145 - UDFB for RA_PF525_POS


Operand Type Description
Instance RA_PF525_POS_X Unique instance of the RA_PF525_POS UDFB
_EN BOOL Trigger of UDFB to start executing the instruction
Start BOOL Commands the drive to start.
Stop BOOL Performs a normal stop.
Jog BOOL Commands the drive to jog.
Commands the direction of drive.
SetDir BOOL 0 = Reverse Command
1 = Forward Command
ClrFault BOOL Clears the drive fault.
FreqCommand REAL Controls the reference speed of the drive. In units of 0.01 Hz.
Ref_Input PowerFlex525P_I References the input data structure of the drive to control.
Provides an identical function as the “Logic In1” Digital Input
LogicIn1 BOOL option.
Provides an identical function as the “Logic In2” Digital Input
LogicIn2 BOOL option.
Freq_PosSel1 BOOL Frequency and Position selection
Freq_PosSel2 BOOL 000 = Frequency and Position Step 0
001 = Frequency and Position Step 1
010 = Frequency and Position Step 2
011 = Frequency and Position Step 3
Freq_PosSel3 BOOL 100 = Frequency and Position Step 4
101 = Frequency and Position Step 5
110 = Frequency and Position Step 6
111 = Frequency and Position Step 7
Next start command causes the drive to find home.
FindHome BOOL 1 = Find Home
Overrides other inputs and causes the drive to remain at its
current step (running at zero speed once it reaches its position)
HoldStep BOOL until released.
1 = Hold Step

354 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

Table 145 - UDFB for RA_PF525_POS (Continued)


Operand Type Description
Resets the home position to the current position of the machine.
PosRedefine BOOL Set this bit to 0 after the homing routine is completed.
1 = Pos Redefine
Holds the existing frequency when Sync Time is set to enable
SyncEnable BOOL Speed Synchronization.
1 = Sync Enable
Disable Traverse function
TravDisable BOOL
1= Traverse Disable
_ENO BOOL Indicates that the UDFB is executing.
Ready BOOL Indicates that the drive is ready for operation.
Active BOOL Indicates that the drive is operating.
Faulted BOOL Indicates fault state.
OutputFreq REAL Displays the reference speed of the drive.
ActualDir STRING Indicates the rotating direction.
AtRef BOOL Indicates that the drive is at the reference speed.
AtPos BOOL Indicates that the drive is at the commanded position.
TravelPosDir BOOL Indicates the Travel Position direction.
Accel_Sts BOOL Indicates acceleration state.
Decel_Sts BOOL Indicates deceleration state.
AtHome BOOL Indicates that drive is at the reference home.
DriveHomed BOOL Indicates whether the drive has been homed since power-up.
Ref_Output PowerFlex525P_O References the output data structure of the drive to control.
SyncHold BOOL Indicates if the frequency is holding.
Indicates if the frequency is accelerating to the new commanded
SyncRamp BOOL frequency in drive parameter A571 [Sync time].
TraverseOn BOOL Indicates if Traverse is enabled.
TraverseDecel BOOL Indicates if the drive is decelerating in Traverse Mode.

Kinetix 5100 Drive Device The Device Object UDFB comes with the UDFB motion instructions that is downloaded from the
PCDC. Each Kinetix 5100 drive requires a unique instance of the Device Object UDFB. This UDFB
Object UDFB provides one software interface that is used by each drive that commands the drive and
provides the drive status that you can use with your application logic.
Figure 73 - Device Object UDFB

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 355


Appendix H User-defined Function Block Motion Instructions

The Kinetix 5100 drive UDFB motion instructions aim to provide necessary simple motion
functions. Table 146 lists the Kinetix 5100 drive UDFBs.
Table 146 - UDFB Motion Instruction List for Kinetix 5100 Drives
Name Description
Motion Servo On
raC_Opr_K5100_MSO Use the Motion Servo On instruction to activate the drive output and to activate the
drive servo loops.
Motion Servo Off
raC_Opr_K5100_MSF Use the Motion Servo Off instruction to deactivate the drive output and to deactivate
the drive servo loops.
Motion Axis Jog
raC_Opr_K5100_MAJ Use the Motion Axis Jog instruction to accelerate or decelerate the motor at a constant
speed without termination.
Motion Axis Torque
raC_Opr_K5100_MAT Use the Motion Axis Torque instruction to use torque limiting while a predefined speed
is used to move the motor.
Motion Axis Move
raC_Opr_K5100_MAM Use the Motion Axis Move instruction to move the motor to a specified position.
Motion Axis Home
raC_Opr_K5100_MAH Use the Motion Axis Home instruction to home the motor.
Motion Axis Gear
Use the Motion Axis Gear instruction to set the gear ratio between a pulse-source and
follower drive.
raC_Opr_K5100_MAG IMPORTANT: This UDFB changes the drive E-gear ratio; Slave/Follower ID151 (P1.044)
and Master ID152 (P1.045) Counts. If your drive is positioning, be aware that the units
are impacted because the E-gear ratio controls the counts/motor rotation value.
Motion Axis Stop
raC_Opr_K5100_MAS Use the Motion Axis Stop instruction to stop a specific motion process on the motor or
to stop the motor completely.
Motion Axis Fault Reset
Use the Motion Axis Fault Reset instruction to clear many motion faults for the drive.
raC_Opr_K5100_MAFR Some faults cannot be cleared until you cycle power to the drive. The faults, which you
can be clear with raC_xxx_K5100_MAFR, are listed in the fault list section.
Motion Axis Index
Use the Motion Axis Index instruction to execute the specified PR (index) function of
raC_Opr_K5100_MAI the drive. Use K5100C configuration software or explicit messaging to set the PR
(index) parameters. The raC_Opr_K5100_MAI instruction specifies the PR (index)
number to be executed.

Configure UDFBs for Follow the steps described in Import the User-defined Function Block Instruction Files on
page 146 to install the Device Object and Motion Instruction UDFBs. When the Operation UDFBs
Kinetix 5100 Drives are created, use the sample logic that is created as guidance for creating your application
logic.

raC_Dvc_K5100
When the Device Object UDFB is created, it references Data Types that interface with the drive
to exchange command and status information. You must create each Device Object as a
unique instance and create the interface tags in your program Local Variables / Global
Variables. You must also map the module defined Global Variables (K5100_I and K5100_O) to
Ref_I and Ref_O.

356 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

Figure 74 - Device Object Interface Tags

raC_UDT_Itf_K5100_Cfg
raC_UDT_Itf_K5100_Cfg is the user-defined data type for device configuration. Its members
provide selection between drive units (counts) or user units (PU).

This selection is useful because the Kinetix 5100 drive natively supports only drive units. When
the Operating Units = 1, the Motion Resolution and ConversionConstant values are used.
Position Scaling originates from the KNX5100C software and is used together with the Cfg tags
to derive user scaling units.
Table 147 - raC_UDT_Itf_K5100_Cfg Data Types
Member Description Data Type
OperatingUnits 0 = Drive Units; 1 = UserUnits DINT
MotionResolution Motion Counts per Motor Revolution DINT
ConversionConstant Motion Counts per Position Unit LREAL

Example Configuration with Position Units

The E-gear ratio (KNX5100C -> Function List -> E-gear Ratio) is always used to provide a
representation of positioning (units or counts) or to define a Pulse-Pulse Following
relationship (MAG/PT). When the E-gear ratio is changed, the positioning of the drive is
changed. When not using the MAG or PT operation mode, the E-gear ratio is used to define
position scaling.

When Operating Units = 1, Position Units are used, and we can define application units instead
of using drive counts. In KNX5100C software, the E-gear ratio is defined to provide Position
scaling. This is encoder counts (or pulses)/motor rotation.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 357


Appendix H User-defined Function Block Motion Instructions

By using the KNX5100C software, navigate to Settings > E-gear Ratio.


Figure 75 - Position Units Configuration

All Position Unit configurations must:


• Configure GearRatioFollowerCounts ID151 (P1.044) to be the same as the motor feedback
effective resolution.
• Configure GearRatioMasterCounts ID152 (P1.045) to provide motor feedback counts/
motor rotation.
• You define this value and can be any count value, default values with high-resolution
encoders are 100,000 counts/motor rotation. The E-gear configuration is used with the
Device Object Cfg tags.
Figure 76 - Position Units Configuration Tag

The Device Object Cfg values must:


• Set Cfg.MotionResolution = GearRatioMasterCounts ID152 (P1.045) -> Motion Counts/
Motor Revolution.
• Set Cfg.ConversionConstant based on the Counts/Position Unit -> Motion Counts/
Position Unit that is required for your application.

The example in Figure 76 results in Position Units = motor rotations. Now, entry values that
originally used drive counts can be entered as motor rotations.

raC_UDT_Itf_K5100_Set
raC_UDT_Itf_K5100_Set is the user-defined data type for device settings. Its members provide
application program access to allow or inhibit commands and settings from other external
sources. The table below shows member names, descriptions, and tag data types.

For example, to inhibit write commands from the other external sources write a 1 to the
ModuleName_CtrlSet.InhibitCmd program tag from your application program. This write
prevents a jog command from other external sources.

358 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

Table 148 - raC_UDT_Itf_K5100_Set Data Types


Member Description DataType
bInhibit Bit overlay for external access restriction DINT
1 = Inhibit user Commands from external sources; 0 = Allow
InhibitCmd Control. This member is only used with the optional device BOOL
faceplate.
1 = Inhibit user Settings from external sources; 0 = Allow
InhibitSet BOOL
This member is only used with the optional device faceplate.
Determines the drive operating mode when ‘Start Motion’ has
a zero-to-one transition.
1 - Position mode
2 - Speed mode
3 - Home mode
4 - Torque mode
OperatingMode DINT
5 - Gear mode (Fixed Ratio, based on present E-gear ratio)
6 - Index mode
7 - Reserved
8 - Gear Mode (Variable Ratio, based on Master/Slave tag
values)
9 - Enhanced MAT mode
Specifies the type of move.
0 = Absolute
1 = Incremental
2 = Rotary Shortest Path
MoveType DINT
3 = Rotary Positive
4 = Rotary Negative
7 = Relative
8 = Capture
PositionCommandOverlap Allows overlapping of successive movements. BOOL
Allows interruption of current movement, replacing it with a
PositionCommandOverride BOOL
new movement.
Captures position selection (First capture or second
CapturedPositionSelect BOOL
capture).
Position Determines the command position. REAL
Velocity Determines the command speed. REAL
Accel Determines the command acceleration. REAL
Decel Determines the command deceleration. REAL
Torque Determines the command torque. DINT
TorqueRampTime Determines the command torque ramp time. DINT
This entry is the PR (Position Register) that the drive should
StartingIndex DINT
execute.
HomingMethod Homing Method DINT
HomeReturnSpeed Determines the command home return speed. REAL
CamMasterReference Future: Determines the master position reference of CAM. DINT
Future: Determines the method that is used to execute the
CamExecutionSchedule DINT
CAM profile.
Future: Determines if the cam profile is executed only one
CamExecutionMode DINT
time or repeatedly.
CamStopMode Future: Determines the stop mode of CAM. BOOL
Future: Scales the total distance that is covered by the slave
CamSlaveScaling DINT
axis through the cam profile.
CamLockPosition Future: Determines the starting location in the cam profile DINT
Future: Determines the master location where the slave axis
CamMasterLockPosition DINT
locks to the mater axis.
Future: Determines the leading counts (master axis) before
CamMasterLeadingCounts DINT
the cam profile is executed.
Future: Determines the unlock counts (master axis) when the
CamMasterUnlockCounts DINT
cam profile is executed.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 359


Appendix H User-defined Function Block Motion Instructions

Table 148 - raC_UDT_Itf_K5100_Set Data Types (Continued)


Member Description DataType
Future: Determines the cyclic leading counts (master axis)
CamMasterCyclicLeadingCounts DINT
during the cam profile is executed.
Integer value representing slave counts. This value is P1.044
GearRatioSlaveCounts Gear Ratio Follower Counts from the E-gear ratio in DINT
KNX5100C software.
Integer value representing master counts. This value is
GearRatioMasterCounts P1.045 Gear Ratio Master Counts from the E-gear ratio in DINT
KNX5100C software.

raC_UDT_Itf_K5100_Cmd
raC_UDT_Itf_K5100_Cmd is the user-defined data type for device commands. Its members
provide application program access to common basic device commands.

Table 149 shows member names, descriptions, and tag data types.

All commands are available whether operating the device physically or virtually.

While it is possible, it is not typical to modify any of these UDT values directly. The Motion
Operation UDFBs manipulate these values as a result of their operation.
Table 149 - raC_UDT_Itf_K5100_Cmd Data Types
Member Description Data Type
bCmd Commands (Bit Overlay) DINT
Physical 1 = Operate as a physical device BOOL
Virtual 1 = Operate as a virtual device BOOL
ResetWarn 1 = Reset device warning BOOL
ResetFault 1 = Reset device trip or fault BOOL
Activate 1 = Activate Output Power Structure BOOL
Deactivate 1 = DeActivate Output Power Structure BOOL
A zero-to-one transition means that the motion command is
StartMotion BOOL
issued from the external controller.
A zero-to-one transition stops any active motion command
StopMotion BOOL
in the drive.

raC_UDT_Itf_K5100_Sts
raC_UDT_Itf_K5100_Sts is the user-defined data type for device status. Its members provide
application program access to device states, status, and diagnostic data. Table 150 shows
member names, descriptions, and tag data types.
Table 150 - raC_UDT_Itf_K5100_Sts Data Types
Input Description Data Type
Enumerated state value:
0 = Unused
1 = Initializing
2 = Disconnected
eState 3 = Disconnecting DINT
4 = Connecting
5 = Idle
6 = Configuring
7 = Available
Capture the First Alarm Bit to trigger. Display the respective
FirstWarning description and time stamp on the faceplate. Log the same raC_UDT_Event
in the Event Queue.
Capture the Fault Code of the device. Display the respective
FirstFault code, description, and time stamp on faceplate. Log the raC_UDT_Event
same in the Event Queue.

360 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

Table 150 - raC_UDT_Itf_K5100_Sts Data Types (Continued)


Input Description Data Type
eCmdFail Enumerated command failure code DINT
bSts Status (Bit Overlays) DINT
Physical 1 = Operating as a physical device BOOL
Virtual 1 = Operating as a virtual device BOOL
Connected 1 = PAC to device connection has been established. BOOL
1 = The automation device is available for interaction with
Available BOOL
the user program
Warning 1 = A warning is active on the automation device BOOL
Faulted 1 = A fault is active on the automation device BOOL
Ready 1 = Device is ready to be Activated BOOL
Active 1 = Device power structure is active BOOL
1 = Motor is within zero speed tolerance (this tolerance is
ZeroSpeed BOOL
defined in KNX5100C software)
Homed Indicates whether the drive completed the home operation. BOOL
Depending on the motion command (position, speed, torque),
AtReference AtReference is 1 when the actual reference = command BOOL
reference.
Toggles state when a motion command is active in the drive.
This bit changes state (toggles between 0 and 1) when a new
command is executed from the drive.
CommandInProgress BOOL
IMPORTANT: Once this bit changes state, it remains in that
state during the command; it toggles to the opposite state
(and remains in that state) once a new command is received.
FaultCode Active Fault Code in the drive DINT
WarningCode Active Warning Code in the drive DINT
OperatingMode Indicate which operating mode is used. DINT
Indicate which type of motor is connected to the drive.
MotorType Rotary Motor = 1 DINT
Linear Motor =2 (Future)
Actual position of the motor. Units depend on the Cfg
ActualPosition REAL
settings. These can be drive counts or Position Units.
Actual speed of the motor. Units depend on the Cfg settings.
ActualVelocity REAL
These can be 0.1 RPM/sec or Position Units.
When the operating mode is 4, Torque Mode, this represents
ActualTorque REAL
the % motor torque.
Indicates the currently executing Position Register PR
ActiveIndex DINT
(index).
Parameter Monitor 1 Value
You can use ID60 (P0.035) to specify the mapping parameter
ParameterMonitor1Value DINT
instance ID number. The content of the parameter that is
specified by ID60 (P0.035) is shown in ID55 (P0.025).
Parameter Monitor 2 Value
You can use ID61 (P0.036) to specify the mapping parameter
ParameterMonitor2Value DINT
instance ID number. The content of the parameter that is
specified by ID61 (P0.036) is shown in ID56 (P0.026).
Parameter Monitor 3 Value
You can use ID62 (P0.037) to specify the mapping parameter
ParameterMonitor3Value DINT
instance ID number. The content of the parameter that is
specified by ID62 (P0.037) is shown in ID56 (P0.027).
Parameter Monitor 4 Value
You can use ID63 (P0.038) to specify the mapping parameter
ParameterMonitor4Value DINT
instance ID number. The content of the parameter that is
specified by ID63 (P0.038) is shown in ID57 (P0.028).
Parameter Monitor 5 Value
You can use ID64 (P0.039) to specify the mapping parameter
ParameterMonitor5Value DINT
instance ID number. The content of the parameter that is
specified by ID64 (P0.039) is shown in ID57 (P0.028).

UDFB Motion Instruction Use the Device Object states to represent the axis, as these states incorporate the instruction
and drive information in one location, which results in an accurate drive state representation.
Details
Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 361
Appendix H User-defined Function Block Motion Instructions

This section provides details for each instruction.

raC_Opr_K5100_MSO
Use the Motion Servo On (raC_Opr_K5100_MSO) instruction to activate the drive amplifier for
the specified axis and to activate the servo control loops.
Figure 77 - MSO Diagram

Table 151 - MSO Operands


Operand Type Format Description
_EN BOOL Tag True when the rung is enabled.
Ref_Ctrl_Set_In raC_UDT_Itf_K5100_Set Tag Interface from device object
Ref_Ctrl_Cmd_In raC_UDT_Itf_K5100_Cmd Tag Interface from device object
Ref_Ctrl_Sts_In raC_UDT_Itf_K5100_Sts Tag Interface from device object
_ENO BOOL Tag True when this UDFB output is enabled.
Ref_Ctrl_Set_Out raC_UDT_Itf_K5100_Set Tag Interface to device object
Ref_Ctrl_Cmd_Out raC_UDT_Itf_K5100_Cmd Tag Interface to device object
Ref_Ctrl_Sts_Out raC_UDT_Itf_K5100_Sts Tag Interface to device object
This bit is set when the rung makes a false-
to-true transition. The bit remains set as the
message transaction to activate the drive is
Sts_EN (Enable) BOOL Tag initiated and in process. It remains set while
the rung-in condition is true and no faults are
active.
This bit is set when the rung makes a false-
Sts_DN (Done) BOOL Tag to-true transition and the cmd to activate the
drive has been acknowledged.
This bit is set when the rung makes a false-
to-true transition and there is an error that
has occurred with the instruction. (This
Sts_ER (Error) BOOL Tag instruction error can be a result of a fault on
the drive itself). See Sts_ERR for details on
the cause of the error.
Instruction error codes. See Kinetix 5100
Sts_ERR DINT Tag Drive UDFB Error Codes (Table 163) for details.

Use the raC_Opr_K5100_MSO instruction to activate the motor. This instruction must be used
while there are no active faults on the drive and the drive is in a Ready State. The resulting
state of the drive is reflected when Ref_Ctrl_Sts_In.Active is one.

IMPORTANT The instruction execution can take multiple scans to execute because it
requires multiple RPI updates to complete the request. The Done
(Sts_DN) bit is not set immediately, but only after the request is
completed.

Error Codes:
• 100 - Kinetix 5100 drive is not ready

362 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

• 101 - Kinetix 5100 drive is faulted


• 102 - Another raC_Opr_K5100_MSO message is executing
• 103 - raC_Opr_K5100_MSF is executing
• 129 - Motor not connected

raC_Opr_K5100_MSF
Use the Motion Servo Off (raC_Opr_K5100_MSF) instruction to deactivate the drive output for
the specified axis and to deactivate the motor.
Figure 78 - MSF Diagram

Table 152 - MSF Operands


Operand Type Format Description
_EN BOOL Tag True when the rung is enabled.
Ref_Ctrl_Set_In raC_UDT_Itf_K5100_Set Tag Interface from device object
Ref_Ctrl_Cmd_In raC_UDT_Itf_K5100_Cmd Tag Interface from device object
Ref_Ctrl_Sts_In raC_UDT_Itf_K5100_Sts Tag Interface from device object
_ENO BOOL Tag True when this UDFB output is enabled.
Ref_Ctrl_Set_Out raC_UDT_Itf_K5100_Set Tag Interface to device object
Ref_Ctrl_Cmd_Out raC_UDT_Itf_K5100_Cmd Tag Interface to device object
Ref_Ctrl_Sts_Out raC_UDT_Itf_K5100_Sts Tag Interface to device object
This bit is set when the rung makes a false-
to-true transition and remains set as the
message transaction to activate the drive is
Sts_EN (Enable) BOOL Tag initiated and in process. It remains set while
the rung-in condition is true and no faults are
active.
This bit is set when the rung makes a false-
Sts_DN (Done) BOOL Tag to-true transition and the cmd to activate the
drive has been acknowledged.
This bit is set when the rung makes a false-
to-true transition and there is an error that
has occurred with the instruction. (This
Sts_ER (Error) BOOL Tag instruction error can be a result of a fault on
the drive itself). See Sts_ERR for details on
the cause of the error.
Instruction error codes. See Kinetix 5100
Sts_ERR DINT Tag Drive UDFB Error Codes (Table 163) for details.

The raC_Opr_K5100_MSF instruction deactivates the motor. This instruction must be used
when there are no active faults on the drive and the drive is in the Ready state. The resulting
state of the drive is reflected when Ref_Ctrl_Sts_In.Active is zero.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 363


Appendix H User-defined Function Block Motion Instructions

IMPORTANT The instruction execution can take multiple scans to execute because it
requires multiple RPI updates to complete the request. The Done
(Sts_DN) bit is not set immediately, but only after the request is
completed.

Error Codes:
• 100 - Kinetix 5100 drive is not ready
• 101 - Kinetix 5100 drive is faulted
• 104 - Another raC_Opr_K5100_MSF message is executing
• 129 - Motor not connected

raC_Opr_K5100_MAFR
Use the Motion Axis Fault Reset (raC_Opr_K5100_MAFR) instruction to clear some drive faults.
When the fault is no longer active in the drive, this instruction clears the fault. This instruction
does not clear any faults that are still active in the drive.
Figure 79 - MAFR Diagram

Table 153 - MAFR Operands


Operand Type Format Description
_EN BOOL Tag True when the rung is enabled.
Ref_Ctrl_Set_In raC_UDT_Itf_K5100_Set Tag Interface from device object
Ref_Ctrl_Cmd_In raC_UDT_Itf_K5100_Cmd Tag Interface from device object
Ref_Ctrl_Sts_In raC_UDT_Itf_K5100_Sts Tag Interface from device object
_ENO BOOL Tag True when this UDFB output is enabled.
Ref_Ctrl_Set_Out raC_UDT_Itf_K5100_Set Tag Interface to device object
Ref_Ctrl_Cmd_Out raC_UDT_Itf_K5100_Cmd Tag Interface to device object
Ref_Ctrl_Sts_Out raC_UDT_Itf_K5100_Sts Tag Interface to device object
This bit is set when the rung makes a false-
to-true transition and remains set as the
message transaction to activate the drive is
Sts_EN (Enable) BOOL Tag
initiated and in process. It remains set while
the rung-in condition is true and no faults are
active.
This bit is set when the rung makes a false-
Sts_DN (Done) BOOL Tag to-true transition and the cmd to activate the
drive has been acknowledged.
This bit is set when the rung makes a false-
to-true transition and there is an error that
has occurred with the instruction. (This
Sts_ER (Error) BOOL Tag instruction error can be a result of a fault on
the drive itself). See Sts_ERR for details on
the cause of the error.
Instruction error codes. See Kinetix 5100
Sts_ERR DINT Tag Drive UDFB Error Codes (Table 163) for details.

364 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

The raC_Opr_K5100_MAFR instruction attempts to clear any active fault on the specified axis.
If the active fault condition is still present, the drive remains faulted.

Error Codes:
• 100 - Kinetix 5100 drive is not ready
• 106 - Another raC_Opr_K5100_MAFR message is executing

raC_Opr_K5100_MAS
Use the Motion Axis Stop (raC_Opr_K5100_MAS) instruction to stop motion on an axis. The drive
remains active when the stop instruction is complete.
Figure 80 - MAS Diagram

Table 154 - MAS Operands


Operand Type Format Description
_EN BOOL Tag True when the rung is enabled.
Ref_Ctrl_Cfg_In raC_UDT_Itf_K5100_Cfg Tag Interface from device object
Ref_Ctrl_Set_In raC_UDT_Itf_K5100_Set Tag Interface from device object
Ref_Ctrl_Cmd_In raC_UDT_Itf_K5100_Cmd Tag Interface from device object
Ref_Ctrl_Sts_In raC_UDT_Itf_K5100_Sts Tag Interface from device object
Immediate
Set_DecelReference LREAL value or Deceleration reference for stopping the Axis.
Tag
_ENO BOOL Tag True when this UDFB output is enabled.
Ref_Ctrl_Cfg_Out raC_UDT_Itf_K5100_Cfg Tag Interface to device object
Ref_Ctrl_Set_Out raC_UDT_Itf_K5100_Set Tag Interface to device object
Ref_Ctrl_Cmd_Out raC_UDT_Itf_K5100_Cmd Tag Interface to device object
Ref_Ctrl_Sts_Out raC_UDT_Itf_K5100_Sts Tag Interface to device object
This bit is set when the rung makes a false-
to-true transition and remains set as the
message transaction to activate the drive is
Sts_EN (Enable) BOOL Tag initiated and in process. This bit remains set
while the rung-in condition is true and no
faults are active.
This bit is set when the rung makes a false-
Sts_DN (Done) BOOL Tag to-true transition and the cmd to activate the
drive has been acknowledged.
This bit is set when the rung makes a false-
to-true transition and there is an error that
has occurred with the instruction. (This
Sts_ER (Error) BOOL Tag instruction error can be a result of a fault on
the drive itself). See Sts_ERR for details on
the cause of the error.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 365


Appendix H User-defined Function Block Motion Instructions

Table 154 - MAS Operands (Continued)


Operand Type Format Description
This bit is set when the rung makes a false-
to-true transition, the Stop message
Sts_IP (In Progress) BOOL Tag transaction is successful, and the motor
begins to decelerate. This bit remains set as
the motor is executing the stop.
This bit is set when the rung makes a false-
Sts_PC (Process to-true transition, the Sts_IP is set, and Zero
BOOL Tag
Completed) Speed is reached. Zero Speed is defined using
KNX5100C software > General Setting.
Instruction error codes. See Kinetix 5100
Sts_ERR DINT Tag Drive UDFB Error Codes (Table 163) for details.

Use the raC_Opr_K5100_MAS instruction when you want a controlled stop for any controlled
motion. The instruction stops the motion without disabling the motor. This UDFB stops any
motion that is generated by motion UDFBs including the MAJ, MAM, or MAG instructions.

Error Codes:
• 100 - Kinetix 5100 drive is not ready
• 101 - Kinetix 5100 drive is faulted
• 103 - MSF is executing
• 105 - Drive is disabled
• 113 - DecelReference is out of range
• 129 - Motor is not connected
• 140 - Operation is not supported when the device is virtual
• 141 - Motor type not supported (Linear)

366 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

raC_Opr_K5100_MAJ
Use the Motion Axis Jog (raC_Opr_K5100_MAJ) instruction to move an axis at a constant speed
until the command is ended.
Figure 81 - MAJ Diagram

Table 155 - MAJ Operands


Operand Type Format Description
_EN BOOL Tag True when the rung is enabled.
Ref_Ctrl_Cfg_In raC_UDT_Itf_K5100_Cfg Tag Interface from device object
Ref_Ctrl_Set_In raC_UDT_Itf_K5100_Set Tag Interface from device object
Ref_Ctrl_Cmd_In raC_UDT_Itf_K5100_Cmd Tag Interface from device object
Ref_Ctrl_Sts_In raC_UDT_Itf_K5100_Sts Tag Interface from device object
Immediate Units are 0.1 rpm for rotary motors.
Set_SpeedReference LREAL value or Range: -80,000…+80,000
Tag
Immediate Units are 0.1 rpm/s for rotary motors.
Set_AccelReference LREAL value or Range: 458…30,000,000
Tag
Immediate Units are 0.1 rpm/s for rotary motors.
Set_DecelReference LREAL value or Range: 458…30,000,000
Tag
_ENO BOOL Tag True when this UDFB output is enabled.
Ref_Ctrl_Cfg_Out raC_UDT_Itf_K5100_Cfg Tag Interface to device object
Ref_Ctrl_Set_Out raC_UDT_Itf_K5100_Set Tag Interface to device object
Ref_Ctrl_Cmd_Out raC_UDT_Itf_K5100_Cmd Tag Interface to device object
Ref_Ctrl_Sts_Out raC_UDT_Itf_K5100_Sts Tag Interface to device object
This bit is set when the rung makes a false-
to-true transition and remains set as the
message transaction to activate the drive is
Sts_EN (Enable) BOOL Tag initiated and in process. It remains set while
the rung-in condition is true and no faults are
active.
This bit is set when the rung makes a false-
Sts_DN (Done) BOOL Tag to-true transition and the cmd to activate the
drive has been acknowledged.
This bit is set when the rung makes a false-
to-true transition and there is an error that
has occurred with the instruction. (This
Sts_ER (Error) BOOL Tag instruction error can be a result of a fault on
the drive itself). See Sts_ERR for details on
the cause of the error.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 367


Appendix H User-defined Function Block Motion Instructions

Table 155 - MAJ Operands (Continued)


Operand Type Format Description
This bit is set when the rung makes a false-
to-true transition, the Stop message
Sts_IP (In Progress) BOOL Tag transaction is successful, and the motor
begins to decelerate. This bit remains set as
the motor is executing the stop.
This bit is set when the rung makes a false-
to-true transition, the Sts_IP is set, and the
Sts_AtSpeed BOOL Tag Target Speed is reached. This bit remains set
while the Jog is active and the AtSpeed
condition is true.
Instruction error codes. See Kinetix 5100
Sts_ERR DINT Tag Drive UDFB Error Codes (Table 163) for details.

Use the MAJ instruction to move an axis at a constant speed until the command is ended.

Error Codes:
• 100 - Kinetix 5100 drive is not ready
• 101 - Kinetix 5100 drive is faulted
• 103 - raC_Opr_K5100_MSF is running
• 105 - Drive is disabled
• 107 - raC_Opr_K5100_MAS is executing
• 108 - Other motion UDFB is sending the command
• 111 - SpeedReference is out of range
• 112 - AccelReference is out of range
• 113 - DecelReference is out of range
• 129 - Motor is not connected
• 140 - Operation is not supported when the device is virtual
• 141 - Motor type not supported (Linear)

raC_Opr_K5100_MAM
Use the Motion Axis Move (raC_Opr_K5100_MAM) instruction to move (index) an axis to a
specified position.
Figure 82 - MAM Diagram

368 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

Table 156 - MAM Operands


Operand Type Format Description
_EN BOOL Tag True when the rung is enabled.
Ref_Ctrl_Cfg_In raC_UDT_Itf_K5100_Cfg Tag Interface from device object
Ref_Ctrl_Set_In raC_UDT_Itf_K5100_Set Tag Interface from device object
Ref_Ctrl_Cmd_In raC_UDT_Itf_K5100_Cmd Tag Interface from device object
Ref_Ctrl_Sts_In raC_UDT_Itf_K5100_Sts Tag Interface from device object
Immediate Set the Target Distance/Position Reference
Set_PositionReference LREAL value or (PUU)
Tag Range: -2,147,483,648…+2,147,483,647
Immediate Units are 0.1 rpm for rotary motors.
Set_SpeedReference LREAL value or Range: -80,000…+80,000
Tag
Immediate Units are 0.1 rpm/s for rotary motors.
Set_AccelReference LREAL value or Range: 458…30,000,000
Tag
Immediate Units are 0.1 rpm/s for rotary motors.
Set_DecelReference LREAL value or Range: 458…30,000,000
Tag
Specifies the type of move:
0 = Absolute
Immediate 12 == Incremental
Rotary Shortest Path
Set_MoveType INT value or 3 = Rotary Positive
Tag 4 = Rotary Negative
7 = Relative
8 = Capture
Immediate 0 = Do not interrupt previous movement
Set_PositionCommandOv BOOL value or
erride 1 = Interrupt previous movement
Tag
0 = Current movement is not overlapped with
Immediate
Set_PositionCommandOv BOOL next
value or
erlap 1 = Current movement is overlapped with next
Tag movement
Immediate 0DI9)
= First High-speed capture (triggered by
Set_CapturedPositionSele BOOL value or
ct 1 = Second High-speed capture (triggered by
Tag DI10)
_ENO BOOL Tag True when this UDFB output is enabled.
Ref_Ctrl_Cfg_Out raC_UDT_Itf_K5100_Cfg Tag Interface to device object
Ref_Ctrl_Set_Out raC_UDT_Itf_K5100_Set Tag Interface to device object
Ref_Ctrl_Cmd_Out raC_UDT_Itf_K5100_Cmd Tag Interface to device object
Ref_Ctrl_Sts_Out raC_UDT_Itf_K5100_Sts Tag Interface to device object
This bit is set when the rung makes a false-
to-true transition and remains set as the
message transaction to activate the drive is
Sts_EN (Enable) BOOL Tag initiated and in process. It remains set while
the rung-in condition is true and no faults are
active.
This bit is set when the rung makes a false-
Sts_DN (Done) BOOL Tag to-true transition and the cmd to activate the
drive has been acknowledged.
This bit is set when the rung makes a false-
to-true transition and there is an error that
has occurred with the instruction. This
Sts_ER (Error) BOOL Tag instruction error can be a result of a fault on
the drive itself. See Sts_ERR for details on the
cause of the error.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 369


Appendix H User-defined Function Block Motion Instructions

Table 156 - MAM Operands (Continued)


Operand Type Format Description
This bit is set when the rung makes a false-
to-true transition, the Stop message
Sts_IP (In Progress) BOOL Tag transaction is successful, and the motor
begins to decelerate. This bit remains set as
the motor is executing the stop.
This bit is set when the rung makes a false-
Sts_PC (Process BOOL Tag to-true transition, the Sts_IP is set, and the
Completed) motor reaches the Target Position.
Instruction error codes. See Kinetix 5100
Sts_ERR DINT Tag Drive UDFB Error Codes (Table 163) for details.

The raC_Opr_K5100_MAM instruction moves an axis to using a target position specified and
uses the Move Type to perform the move (index).

Error Codes:
• 100 - Kinetix 5100 drive is not ready
• 101 - Kinetix 5100 drive is faulted
• 103 - MSF is executing
• 105 - Drive is disabled
• 107 - raC_Opr_K5100_MAS is executing
• 108 - Other motion UDFB is sending the command
• 111 - SpeedReference is out of range
• 112 - AccelReference is out of range
• 113 - DecelReference is out of range
• 119 - Move Type is out of range
• 126 - Homing not completed
• 129 - Motor is not connected to drive
• 140 - Operation is not supported when the device is virtual
• 141 - Motor type not supported (Linear)
• 150 - PositionReference in counts exceeds maximum allowed value (2147481984)

Set_MoveType:
• Four types of move operations (Set_MoveType = 0,1,7,8) are performed as shown.

370 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

• Three types of move operations (Set_MoveMethod = 2,3,4) are performed as shown.


Define 'Indexing Coordinate':

• Rotate Positive or Rotate Negative or Rotate Shortest Path.


The Rotary move types are used to provide a way to index while observing the natural
rollover of the feedback device. For example, if the motor could only index positive, the
Rotary Positive is used. When the feedback device transitions through its natural
unwind (typically 2.1 billion counts), the movements always indexes positive.

IMPORTANT Currently, the Kinetix 5100 drive does not have a user defined Unwind
function. The rotary selections in this UDFB do not refer to user-defined
rotary axis types.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 371


Appendix H User-defined Function Block Motion Instructions

• Position Command with Overlap option.


The executing index is interrupted during its deceleration. The new index is started
before the deceleration is complete

• Position Command with Interrupt option.


The executing index (Index 1) is stopped. The new index (Index 2) is executed using its
dynamics. This is shown in the graphic below. The red arrow is the point where the
drive receives the command for Index 2.

raC_Opr_K5100_MAI
It may be useful to execute a motion control internal register (PR) while in the IO operation
mode. This can be for performing an action that is not able to be performed by one of the
UDFBs. To use this, you must pre-configure the PR in the drive using KNX5100C software,
before you establish the IO Mode connection.

372 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

Figure 83 - MAI Diagram

Table 157 - MAI Operands


Operand Type Format Description
_EN BOOL Tag True when the rung is enabled.
Ref_Ctrl_Set_In raC_UDT_Itf_K5100_Set Tag Interface from device object
Ref_Ctrl_Cmd_In raC_UDT_Itf_K5100_Cmd Tag Interface from device object
Ref_Ctrl_Sts_In raC_UDT_Itf_K5100_Sts Tag Interface from device object
Immediate
Set_StartingIndex INT value or Enter the pre-configured PR# to execute.
Tag
_ENO BOOL Tag True when this UDFB output is enabled.
Ref_Ctrl_Set_Out raC_UDT_Itf_K5100_Set Tag Interface to device object
Ref_Ctrl_Cmd_Out raC_UDT_Itf_K5100_Cmd Tag Interface to device object
Ref_Ctrl_Sts_Out raC_UDT_Itf_K5100_Sts Tag Interface to device object
Reads the current PR# that is executing in
Sts_ActiveIndex INT Tag the drive.
This bit is set when the rung makes a false-
to-true transition and the message
Sts_EN (Enable) BOOL Tag transaction to MAI is initiated and in process.
It remains high until the rung-in condition is
false and no faults are active.
This bit is set when the rung makes a false-
to-true transition and the message
Sts_DN (Done) BOOL Tag transaction to MAI the drive (Sts_EN) is
complete.
This bit is set when the rung makes a false-
to-true transition and there is an error that
has occurred with the instruction. This
Sts_ER (Error) BOOL Tag instruction error can be a result of a fault on
the drive itself. See Sts_ERR for details on the
cause of the error.
This bit is set when the rung makes a false-
to-true transition, the MAI message
Sts_IP (In Progress) BOOL Tag transaction is successful, and the PR
command has been sent to the drive. This bit
remains set until the AtReference bit is set.
This bit is set when the rung makes a false-
Sts_PC (Process to-true transition, the Sts_IP is set, and the
BOOL Tag
Completed) MAI has sent the PR execution and the
AtReference bit is set.
Instruction error codes. See Kinetix 5100
Sts_ERR DINT Tag Drive UDFB Error Codes (Table 163) for details.

Use the Motion Axis Index (raC_Opr_K5100_MAI) instruction to execute motion control by
internal register (PR) in Kinetix 5100 drives. The 99 built-in command registers select the PR
command source.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 373


Appendix H User-defined Function Block Motion Instructions

Error Codes:
• 100 - Kinetix 5100 drive is not ready
• 101 - Kinetix 5100 drive is faulted
• 103 - MSF is executing
• 105 - Drive is disabled
• 107 - raC_Opr_K5100_MAS is executing
• 108 - Other motion UDFB is sending the command
• 115 - StartingIndex is out of range
• 129 - Motor is not connected
• 140 - Operation is not supported when the device is virtual

raC_Opr_K5100_MAG
Use the Motion Axis Gear (MAG) to execute a pulse-pulse relationship with the drive. The MAG
uses the E-gear ratio that is configured in the KNX5100C software. The E-gear Ratio dialog box
is shown in Figure 75. When you use the MAG instruction, the drive behaves like it is in PT
(Position Terminal - or Pulse Train) mode and the drive uses the E-gear ratio to respond to
master pulses.

Figure 84 describes the values in the E-gear Ratio dialog box. Not all values that are shown
here are used with the Motion Operation UDFB.
Figure 84 - E-gear Ratio Dialog Box

Table 158 - E-gear Ratio Dialog Box Settings


Item Description
Gear Ratio Selection dropdown menu - You can choose from four different ratios (N1…N4). Not used
1 with UDFB.

374 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

Table 158 - E-gear Ratio Dialog Box Settings (Continued)


Item Description
2 Gear Ratio Follower Counts (N1) - Set this value as the motor feedback resolution.
Gear Ratio Master Counts (M) - Set this value as the counts/motor resolution. This value is set for
3 whatever your application requires. Typical values are 100,000 counts for a high-resolution encoder.
GNUM0/1 - These values are mapped to the Digital Inputs that represent binary weighted values to
4 select the Gear Ratio value. Not used with UDFB.

The PT Mode is a pulse-pulse follower relationship. When you use the variable ratio and change
the ratio, there is no positioning ability. Therefore, when you are finished using the MAG UDFB,
your position scaling (which also uses the E-gear ratio) might change if you use the variable
Cfg_GearingMode and change the Master ratio because of your application requirements.
The MAG Set_SlaveCounts is sometimes called the Gear Ratio Follower Counts or numerator
(shown as item 2 in Figure 84). Use it to determine the internal 'ratio' of the drive (shown as
167.77 in Figure 84).

For our purposes, the E-gear ratio Follower = MAG Set_SlaveCounts = motor feedback
resolution (from the KNX5100C > Function List > Motor Selection > Feedback dialog box).
Figure 85 - Set the Follower Counts

The MAG Set_MasterCounts is sometimes called the Gear ratio Master counts or denominator
(shown as item 3 in Figure 84). Any gearing relationship must consider the actual motor
mechanics, like a gearbox, or actuator pitch, and use those mechanics to relate back to a
motor rotation. Gear Ratio Master counts are desired counts/motor rotation. Desired counts
are not used for positioning; but define how many counts your motor moves in one rotation
based on the number of feedback pulses you expect to receive from the source input, which is
used to determine your gearing relationship. So, this Master counts value is used to define the
pulse-pulse relationship.

IMPORTANT The MAG can affect your positioning. The issuing Kinetix 5100 drive
(slave) uses the E-gear ratio to define how it follows pulses from a
source (a master). While the result is that the issuing Kinetix 5100 drive
(slave) follows pulses from another source master, the way the function
operates can affect positioning of the drive. Regardless of Operation
Mode, the E-gear ratio is always used to provide a representation of
positioning (units or counts) or to define a Pulse-Pulse Following
relationship (MAG/PT). When the E-gear ratio is changed, the positioning
of the axis is changed.

Gearing example

The master in the example system is a 4000 ppr encoder. When the encoder makes one
revolution, we expect the Slave1 drive to see: 4000 pulses.

Our application requirement is that we want to follow this encoder at a 1:2 relationship. So,
when the master encoder moves one encoder revolution, the motor rotates two times.

The Master PPR is not entered anywhere, but is required that we know this value. We calculate
the MAG Set_MasterCounts value knowing the Master PPR counts and the relationship we want
in the Slave1 motor.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 375


Appendix H User-defined Function Block Motion Instructions

We set the MAG Set_SlaveCounts = Motor Feedback Resolution = 16,777,216.

We set MAG Set_MasterCounts = 2000, so when the Slave1 drive sees 2000 master pulses, the
Slave1 motor moves one rotation, and thus, as the Master encoder moves 4000 pulses, Slave1
would move two rotations.

You can use two modes of the MAG function. These modes are defined by the Cfg_GearingMode
entry. This entry is set for Fixed initially. You must intentionally change this setting. Fixed
mode does not impact positioning because it uses the existing E-gear ratio in the Kinetix 5100
drive. Therefore, we can follow a master source at this fixed ratio and when gearing is
disabled, we can continue positioning without losing the position scaling for the drive.

Variable mode lets you change the E-gear ratio by manipulating the master/slave counts
values. The variable mode lets you change the ratio. When you change the ratio, you affect the
motor positioning because the E-gear ratio is also used to define Position Scaling. If you
require positioning after using the variable gearing, issue a Homing Sequence to re-establish
an origin.
Figure 86 - MAG Diagram

Table 159 - MAG Operands


Operand Type Format Description
_EN BOOL Tag True when the rung is enabled.
Ref_Ctrl_Set_In raC_UDT_Itf_K5100_Set Tag Interface from device object
Ref_Ctrl_Cmd_In raC_UDT_Itf_K5100_Cmd Tag Interface from device object
Ref_Ctrl_Sts_In raC_UDT_Itf_K5100_Sts Tag Interface from device object
Immediate 0 = Fixed
Cfg_GearingMode BOOL value or 1 = Variable
Tag
Sets the value of the E-gear ratio:
Denominator ID152 (P1.045). Set this value to
Immediate represent the desired counts/motor rotation.
This value defines the number of pulses/
Set_MasterCounts DINT value or motor rotation and when used with the
Tag feedback pulses that you expect to see from
the source input (also pulses/ revolution)
provides a gearing relationship.
Immediate Sets the value of the E-gear ratio: Numerator
Set_SlaveCounts DINT value or ID151 (P1.044). Set this value the same as the
Tag Motor Feedback Resolution.
_ENO BOOL Tag True when this UDFB output is enabled.
Ref_Ctrl_Set_Out raC_UDT_Itf_K5100_Set Tag Interface to device object
Ref_Ctrl_Cmd_Out raC_UDT_Itf_K5100_Cmd Tag Interface to device object
Ref_Ctrl_Sts_Out raC_UDT_Itf_K5100_Sts Tag Interface to device object
This bit is set when the rung makes a false-
to-true transition and the message
Sts_EN (Enable) BOOL Tag transaction to MAG is initiated and in process.
It remains high until the rung-in condition is
false and no faults are active.

376 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

Table 159 - MAG Operands (Continued)


Operand Type Format Description
This bit is set when the rung makes a false-
Sts_DN (Done) BOOL Tag to-true transition and the message
transaction to MAG (Sts_EN) is complete.
This bit is set when the rung makes a false-
to-true transition and there is an error that
has occurred with the instruction. This
Sts_ER (Error) BOOL Tag instruction error can be a result of a fault on
the drive itself. See Sts_ERR for details on the
cause of the error.
This bit is set when the rung makes a false-
to-true transition, the MAG message
transaction is successful, and the drive
Sts_IP (In Progress) BOOL Tag begins following. This bit remains set as the
motor is executing the gearing. It remains set
while the MAG is active, regardless of the
rung-in condition.
Instruction error codes. See Kinetix 5100
Sts_ERR DINT Tag Drive UDFB Error Codes (Table 163) for details.

Error Codes:
• 100 - Kinetix 5100 drive is not ready
• 101 - Kinetix 5100 drive is faulted
• 103 - MSF is executing
• 105 - Drive is disabled
• 107 - raC_Opr_K5100_MAS is executing
• 108 - Other motion UDFB is sending the command
• 129 - Motor is not connected
• 131 - Slave count is out of range 1 to (229…1)
• 132 - Master count is out of range 1 to (231…1)
• 140 - Operation is not supported when the device is virtual
• 141 - Motor type not supported (Linear)

raC_Opr_K5100_MAH
Use the Motion Axis Home (raC_Opr_K5100_MAH) instruction to command a homing procedure
in the drive. Homing is used to define an origin for your motor and to establish an absolute
positioning reference for the motor.
Figure 87 - MAH Diagram

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 377


Appendix H User-defined Function Block Motion Instructions

Table 160 - MAH Operands


Operand Type Format Description
_EN BOOL Tag True when the rung is enabled.
Ref_Ctrl_Cfg_In raC_UDT_Itf_K5100_Cfg Tag Interface from device object
Ref_Ctrl_Set_In raC_UDT_Itf_K5100_Set Tag Interface from device object
Ref_Ctrl_Cmd_In raC_UDT_Itf_K5100_Cmd Tag Interface from device object
Ref_Ctrl_Sts_In raC_UDT_Itf_K5100_Sts Tag Interface from device object
Immediate 0…38. Sets this value for the Homing Method
Set_HomingMethod SINT value or that is used with K5100 drive. See Table 161.
Tag
Immediate The feedback position when a homing
Set_PositionReference LREAL value or procedure is completed.
Tag Range: -2,147,483,648…+2,147,483,647
Immediate The first (high) speed reference. Units are 0.1
Set_SpeedReference LREAL value or rpm for rotary motors.
Tag Range: 1…20,000
Immediate The second (low) speed reference. Units are
Set_HomeReturnSpeed LREAL value or 0.1 rpm for rotary motors.
Tag Range: 1…5000
Immediate Units are 0.1 rpm/s for rotary motors.
Set_AccelReference LREAL value or Range: 458…30,000,000
Tag
Immediate Units are 0.1 rpm/s for rotary motors.
Set_DecelReference LREAL value or Range: 458…30,000,000
Tag
_ENO BOOL Tag True when this UDFB output is enabled.
Ref_Ctrl_Cfg_Out raC_UDT_Itf_K5100_Cfg Tag Interface to device object
Ref_Ctrl_Set_Out raC_UDT_Itf_K5100_Set Tag Interface to device object
Ref_Ctrl_Cmd_Out raC_UDT_Itf_K5100_Cmd Tag Interface to device object
Ref_Ctrl_Sts_Out raC_UDT_Itf_K5100_Sts Tag Interface to device object
This bit is set when the rung makes a false-
to-true transition and the message
Sts_EN (Enable) BOOL Tag transaction to Home is initiated and in
process. It remains high until the rung-in
condition is false and no faults are active.
This bit is set when the rung makes a false-
to-true transition and the message
Sts_DN (Done) BOOL Tag transaction to Home the drive (Sts_EN) is
complete.
This bit is set when the rung makes a false-
to-true transition and there is an error that
has occurred with the instruction. This
Sts_ER (Error) BOOL Tag instruction error can be as a result of a fault
on the drive itself. See Sts_ERR for details on
the cause of the error.
This bit is set when the rung makes a false-
to-true transition, the Home message
Sts_IP (In Progress) BOOL Tag transaction is successful, and the homing
begins. This bit remains set if the homing is
executing.
This bit is set when the rung makes a false-
Sts_PC (Process BOOL Tag to-true transition, and the Homing Sequence
Complete) is completed.
Instruction error codes. See Kinetix 5100
Sts_ERR DINT Tag Drive UDFB Error Codes (Table 163) for details.

Table 161 - Homing Methods


Value Description
0 Homing in forward direction and regard PL as homing origin. Return to Z pulse.
1 Homing in forward direction and regard PL as homing origin. Go forward to Z pulse.
2 Homing in forward direction and regard PL as homing origin. Do not look for Z pulse.
3 Homing in reverse direction and regard NL as homing origin. Return to Z pulse.

378 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

Table 161 - Homing Methods (Continued)


Value Description
4 Homing in reverse direction and regard NL as homing origin. Go forward to Z pulse.
5 Homing in reverse direction and regard NL as homing origin. Do not look for Z pulse.
Homing in forward direction, ORG: OFF->ON as homing origin. Return to Z pulse. Shows error when
6 encounter limit.
Homing in forward direction, ORG: OFF->ON as homing origin. Return to Z pulse. Reverse direction
7 when encounter limit.
Homing in forward direction, ORG: OFF->ON as homing origin. Go forward to Z pulse. Shows error when
8 encounter limit.
Homing in forward direction, ORG: OFF->ON as homing origin. Go forward to Z pulse. Reverse direction
9 when encounter limit.
Homing in forward direction, ORG: OFF->ON as homing origin. Do not look for Z pulse. Shows error
10 when encounter limit.
Homing in forward direction, ORG: OFF->ON as homing origin. Do not look for Z pulse. Reverse direction
11 when encounter limit.
Homing in reverse direction, ORG: OFF->ON as homing origin. Return to Z pulse. Shows error when
12 encounter limit.
Homing in reverse direction, ORG: OFF->ON as homing origin. Return to Z pulse. Reverse direction when
13 encounter limit.
Homing in reverse direction, ORG: OFF->ON as homing origin. Go forward to Z pulse. Shows error when
14 encounter limit.
Homing in reverse direction, ORG: OFF->ON as homing origin. Go forward to Z pulse. Reverse direction
15 when encounter limit.
Homing in reverse direction, ORG: OFF->ON as homing origin. Do not look for Z pulse. Shows error when
16 encounter limit.
Homing in reverse direction, ORG: OFF->ON as homing origin. Do not look for Z pulse. Reverse direction
17 when encounter limit.
18 Look for Z pulse in forward direction and regard it as homing origin. Shows error when encounter limit.
Look for Z pulse in forward direction and regard it as homing origin. Reverse direction when encounter
19 limit.
20 Look for Z pulse in reverse direction and regard it as homing origin. Shows error when encounter limit.
Look for Z pulse in reverse direction and regard it as homing origin. Reverse direction when encounter
21 limit.
Homing in forward direction, ORG: ON->OFF as homing origin. Return to Z pulse. Shows error when
22 encounter limit.
Homing in forward direction, ORG: ON->OFF as homing origin. Return to Z pulse. Reverse direction
23 when encounter limit.
Homing in forward direction, ORG: ON->OFF as homing origin. Go forward to Z pulse. Shows error when
24 encounter limit.
Homing in forward direction, ORG: ON->OFF as homing origin. Go forward to Z pulse. Reverse direction
25 when encounter limit.
Homing in forward direction, ORG: ON->OFF as homing origin. Do not look for Z pulse. Shows error
26 when encounter limit.
Homing in forward direction, ORG: ON->OFF as homing origin. Do not look for Z pulse. Reverse direction
27 when encounter limit.
Homing in reverse direction, ORG: ON->OFF as homing origin. Return to Z pulse. Shows error when
28 encounter limit.
Homing in reverse direction, ORG: ON->OFF as homing origin. Return to Z pulse. Reverse direction when
29 encounter limit.
Homing in reverse direction, ORG: ON->OFF as homing origin. Go forward to Z pulse. Shows error when
30 encounter limit.
Homing in reverse direction, ORG: ON->OFF as homing origin. Go forward to Z pulse. Reverse direction
31 when encounter limit.
Homing in reverse direction, ORG: ON->OFF as homing origin. Do not look for Z pulse. Shows error when
32 encounter limit.
Homing in reverse direction, ORG: ON->OFF as homing origin. Do not look for Z pulse. Reverse direction
33 when encounter limit.
34 Define current position as the origin.
Look for the collision point in forward direction and regard it as the origin. Return to Z pulse. Shows
35 error when encounter negative limit.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 379


Appendix H User-defined Function Block Motion Instructions

Table 161 - Homing Methods (Continued)


Value Description
36 Look for the collision point in forward direction and regard it as the origin. Do not look for Z pulse.
Look for the collision point in reverse direction and regard it as the origin. Return to Z pulse. Shows
37 error when encounter positive limit.
38 Look for the collision point in reverse direction and regard it as the origin. Do not look for Z pulse.

Error Codes:
• 100 - Kinetix 5100 drive is not ready
• 101 - Kinetix 5100 drive is faulted
• 103 - raC_Opr_K5100_MSF is running
• 105 - Drive is disabled
• 107 - raC_Opr_K5100_MAS is executing
• 108 - Other motion UDFB is sending the command
• 111 - SpeedReference is out of range
• 112 - AccelReference is out of range
• 113 - DecelReference is out of range
• 122 - HomingMethod is out of range
• 129 - Motor is not connected
• 140 - Operation is not supported when the device is virtual
• 141 - Motor type not supported (Linear)
• 150 - PositionReference in counts exceeds maximum allowed value (2147481984)

raC_Opr_K5100_MAT
The Motion Axis Torque (raC_Opr_K5100_MAT) instruction lets you use torque limiting while a
pre-defined speed is used to move the motor. The first time the pre-defined torque limit is
reached, the Sts_TorqueReached bit is set. While the Sts_TorqueReached bit is set, the MAT
operation remains active until it is ended by an raC_Opr_K5100_MAS (Motion Axis Stop)/MSF
(Motion Servo Off), or a drive fault. The torque and speed entries are bidirectional.
Figure 88 - MAT Diagram

Table 162 - MAT Operands


Operand Type Format Description
_EN BOOL Tag True when the rung is enabled.
Ref_Ctrl_Cfg_In raC_UDT_Itf_K5100_Cfg Tag Interface from device object
Ref_Ctrl_Set_In raC_UDT_Itf_K5100_Set Tag Interface from device object

380 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix H User-defined Function Block Motion Instructions

Table 162 - MAT Operands (Continued)


Operand Type Format Description
Ref_Ctrl_Cmd_In raC_UDT_Itf_K5100_Cmd Tag Interface from device object
Ref_Ctrl_Sts_In raC_UDT_Itf_K5100_Sts Tag Interface from device object
Immediate The limited value of motor torque, in the unit
Set_TorqueReference DINT value or of 0.1% of the motor rated torque.
Tag Range: -4000…+4000
Immediate Torque Ramp Time, the time (ms) it takes to
Set_TorqueRampTime DINT value or ramp up from 0 to the TorqueReference.
Tag Range: 1…65500
Immediate Speed limit that is used during the constant
torque operation: unit is 0.1 rpm for the rotary
Set_SpeedLimit DINT value or motor.
Tag Range: -80,000…+80,000
_ENO BOOL Tag True when this UDFB output is enabled.
Ref_Ctrl_Cfg_Out raC_UDT_Itf_K5100_Cfg Tag Interface to device object
Ref_Ctrl_Set_Out raC_UDT_Itf_K5100_Set Tag Interface to device object
Ref_Ctrl_Cmd_Out raC_UDT_Itf_K5100_Cmd Tag Interface to device object
Ref_Ctrl_Sts_Out raC_UDT_Itf_K5100_Sts Tag Interface to device object
This bit is set when the rung makes a false-
to-true transition and remains set as the
message transaction to execute the MAT is
Sts_EN (Enable) BOOL Tag initiated and in process. It remains high until
the rung-in condition is false and no faults
are active.
This bit is set when the rung makes a false-
Sts_DN (Done) BOOL Tag to-true transition and the message
transaction to the drive (Sts_EN) is complete.
This bit is set when the rung makes a false-
to-true transition and there is an error that
has occurred with the instruction. (This
Sts_ER (Error) BOOL Tag instruction error can be as a result of a fault
on the drive itself). See Sts_ERR for details on
the cause of the error.
This bit is set when the rung makes a false-
to-true transition, the MAT message
Sts_IP (In Progress) BOOL Tag transaction is successful, and the motor
begins to move. This bit remains set while the
MAT operation is active.
This bit is set when the rung makes a false-
to-true transition, the Sts_IP is set, and the
Sts_TorqueReached BOOL Tag Set_TorqueReference value is reached. This
bit is set (and remains set) on the first
occurrence of this condition.
Instruction error codes. See Kinetix 5100
Sts_ERR DINT Tag Drive UDFB Error Codes (Table 163) for details.

Error Codes:
• 100 - Kinetix 5100 drive is not ready
• 101 - Kinetix 5100 drive is faulted
• 103 - raC_Opr_K5100_MSF is executing
• 105 - Drive is disabled
• 107 - raC_Opr_K5100_MAS is executing
• 108 - Other motion UDFB is sending the command
• 111 - Speed limit is > 80000 or < -80000
• 116 - TorqueReference is out of range
• 125 - TorqueRampTime is out of range
• 129 - Motor is not connected
• 140 - Operation is not supported when the device is virtual
• 141 - Motor type not supported (Linear)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 381


Appendix H User-defined Function Block Motion Instructions

Error Codes Motion Error Codes (Sts_ERR) describes the error for UDFBs. Table 163 lists the error codes for
the Connected Components Workbench application motion instructions for the Kinetix 5100
drive.
Table 163 - Kinetix 5100 Drive UDFB Error Codes

Error Description Instruction Name


Code MSO MSF MAFR MAS MAJ MAT MAI MAM MAH MAG
100 Drive is not ready. X X X X X X X X X X
101 Drive is faulted. X X X X X X X X X
102 raC_Opr_K5100_MSO is executing. X
103 raC_Opr_K5100_MSF is executing. X X X X X X X X
104 Another raC_Opr_K5100_MSF is executing. X
105 Drive is disabled. X X X X X X X
106 Another raC_Opr_K5100_MAFR message is executing. X
107 raC_Opr_K5100_MAS is executing. X X X X X X
108 Another RA motion UDFB is sending the command. X X X X X X
111 SpeedReference is out of range. X X X X
112 AccelReference is out of range. X X X
113 DecelReference is out of range. X X X X
115 StartingIndex is higher than 99. X
116 Torque is out of range. X
119 MoveType is out of range. X
122 HomingMethod is out of range. X
125 TorqueRampTime is out of range. X
126 Homing is not completed. X
129 Motor is not connected. X X X X X X X X X
131 Gear slave counts are out of range. X
132 Gear master count is out of range. X
133 Gear ratio is out of range. X
140 Operation is not supported when the device is virtual. X X X X X X X
141 Motor type not supported (Linear). X X X X X X
PositionReference in counts exceeds maximum allowed
150 X X
value (2147481984)

382 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix I

Use PCCC Commands and MicroLogix Mapping

Use PCCC Commands Firmware revision 22.011 for Micro 870 (2080-L70E) controllers adds support for Programmable
Controller Communication Command (PCCC) and enables the controller to respond over either
the DF1 serial port or the Ethernet port.

This option provides backward compatibility for legacy controllers that do not understand the
CIP protocol to access the data table mappings inside the Micro870 controller. CIP is the
fundamental language of a Micro870 controller.

With proper mapping of Micro870 variables to data files, you can access information in the
Micro870 controller using other applications that worked with our legacy controllers over the
serial or Ethernet port.

IMPORTANT For information on mapping of variables to MicroLogix data files, see


Map Variables to MicroLogix Files on page 384. To avoid data mismatch,
use an array variable of the same data type as the MicroLogix file.

CIP messaging is the preferred method of interacting with Micro870 controllers, but PCCC
messaging is serviceable for many applications, especially where the legacy communications
product is not able to be modified, and where you are willing to do the extra configuration of
data table mappings in the Micro870 controller. Remote applications that depend on DF1 serial
communication over a modem or serial radio link can also use this method.

PCCC commands can arrive at the controller in these ways:


• Through the RS-232 serial port
• Encapsulated inside a EtherNet/IP message

The following section identifies the PCCC commands that Micro870 (2080-L70E) controllers
support and the formatting that is required. You do not require a license from ODVA to use the
PCCC commands that are described as follows.

Supported Subset of PCCC Commands


Micro870 (2080-L70E) controllers support the SLC™ communication commands format to
access MicroLogix data files, or to respond automatically to a MicroLogix controller.

PCCC commands that Micro870 (2080-L70E) controllers support in fundamental PCCC


instruction:
• SLC Protected Typed Logical Read with 3 Address Fields (CMD=OF,4F; FNC=A2)
• SLC Protected Typed Logical Write with 3 Address Fields (CMD=OF,4F; FNC=AA)

PCCC commands that Micro870 (2080-L70E) controllers understand to auto respond to queries
from MicroLogix controllers:
• SLC Protected Typed Logical Read with 3 Address Fields (CMD=OF,4F; FNC=A2)
• SLC Protected Typed Logical Write with 3 Address Fields (CMD=OF,4F; FNC=AA)
• SLC Protected Typed Logical Read with 2 Address Fields (CMD=OF,4F; FNC=A1)
• SLC Protected Typed Logical Write with 2 Address Fields (CMD=OF,4F; FNC=A9)

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 383


Appendix I Use PCCC Commands and MicroLogix Mapping

• SLC Protected Typed Logical Write with 4 Address Fields (CMD=OF,4F; FNC=AB)

These commands use strictly a logical form of addressing (for example, file/element/sub-
element). For information on mapping the MicroLogix files to Micro870 variables, see How to
Map a MicroLogix Address in Connected Components Workbench Software on page 385.

Micro870 controllers handle protected and unprotected commands the same way, whether the
access for the data is set to read/write, read-only, or none.

IMPORTANT For the SLC Protected Typed Logical Read and SLC Protected Typed
Logical Write commands, map the data files to Micro870 variables of
types INT, DINT, REAL, or STRING only. Use a MicroLogix file data type
that matches the data type of the Micro870 variable.
• For INT variables, use file type 85hex (Binary) or 89hex (Integer).
• For DINT variables, use file type 91hex (Long).
• For REAL variables, use file type 8Ahex (Float).
• For STRING variable, use file type 8Dhex (String).
For more information on MicroLogix file types, see the DF1 Protocol and
Command Set Reference Manual, publication 1770-6.5.16.

MicroLogix logical addressing has a limited number of logical address levels, so there are
some special considerations.
In a The element number is used as the
One-dimensional array Index of the dimension (data[elem])
Two-dimensional array Index of the second dimension and the first dimension index is 0 (data[0][elem])
Index of the third dimension and the first and second dimension indices are both 0
Three-dimensional array (data[0][0][elem])

Micro870 (L70E) controllers only support the one-dimensional array.

For more information on how to use the new PCCC instruction to send PCCC commands, see
the Micro800 Programmable Controllers General Instructions Reference Manual,
publication 2080-RM001.

Map Variables to This feature is only supported in Micro870 (2080-L70E) controllers with Connected
Components Workbench software, version 22 or later.
MicroLogix Files
A Micro870 (2080-L70E) controller stores variable names in the controller so that other devices
can read or write data without having to know the physical memory locations. Many products
can only understand MicroLogix data files, so the Micro870 controller offers a function to map
Micro870 variable names to MicroLogix files.
• You only have to map the file numbers that are used in messages; you do not need to
map the other file numbers.
• The mapping table is loaded into the controller and is used whenever a logical address
accesses data.
• You can only access controller variables (global data).

Follow these guidelines when you map variables.


• Do not use file numbers 0, 1, and 2. These files are reserved for Output, Input, and Status
files respectively in a MicroLogix processor.
• Use MicroLogix mapping only for variable arrays of data type INT, DINT, STRING, or REAL.
Attempting to map elements of system structures can produce undesirable effects.
• Use these file types and identifiers.
For this Micro870 Array Type Use this MicroLogix File Identifier
INT array N or B

384 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Appendix I Use PCCC Commands and MicroLogix Mapping

For this Micro870 Array Type Use this MicroLogix File Identifier
DINT array L
REAL array F
STRING array ST

How to Map a MicroLogix Address in Connected Components


Workbench Software

You can add the MicroLogix address in two ways:


• Use the ADD button on the MicroLogix mapping configuration page.
• Use the IMPORT button on the MicroLogix mapping configuration page.

Use the ADD button

To add a MicroLogix mapping, do the following:


1. In the Project or Controller Organizer, double-click the controller to open the controller
workspace.
2. In the Controller tree, select MicroLogix Mapping.
3. On the Controller - MicroLogix Mapping configuration page, select Add.
a. In the Variable Selector dialog, locate and select the variable, then select OK.
b. (Optional) Change the File Number to define the MicroLogix File Type to map to the
Micro800 variable. This step is only required for file types N and B.

IMPORTANT To read multiple MicroLogix addresses, you must set the


Micro800 variable as an array.
For example:
• To read the MicroLogix addresses N7:0…N7:10, you must verify
that the Micro800 variable that is mapped to Data File 7 is an
array of 0…10, or any other arrays whose length is 11.
• To read the MicroLogix address N7:5, you must verify that the
Micro800 variable that is mapped to Data File 7 is an array of
0…5, or any other arrays whose length is 6.
4. Verify that the MicroLogix file type is correct.

To delete a MicroLogix mapping, do the following:


1. In the Project or Controller Organizer, double-click the controller to open the controller
workspace.
2. In the Controller tree, select MicroLogix Mapping.
3. On the Controller - MicroLogix Mapping configuration page, select the variable, then
select Delete.

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 385


Appendix I Use PCCC Commands and MicroLogix Mapping

Use the IMPORT button

Export, modify, and add MicroLogix mapping information in bulk by importing or exporting CSV
files. You can import a maximum of 1000 pieces of MicroLogix mapping information. Figure 89
shows the format of MicroLogix address associations in a CSV file. The format includes the file
number, variable name, data type, and MicroLogix file type.
Figure 89 - MicroLogix Address Association in CSV File

To import a CSV file for MicroLogix mapping, do the following:


1. In Project or Controller Organizer, double-click the controller to open the controller
workspace.
2. In the Controller tree, select MicroLogix Mapping.
3. On the Controller - MicroLogix Mapping configuration page, select Import.
4. In the Open dialog box, select the CSV file that you want to import, then select Open.

IMPORTANT MicroLogix mapping information that is incorrect is not imported


and an error message is shown in the Output window.

To export a CSV file for MicroLogix mapping, do the following:


1. In Project or Controller Organizer, double-click the controller to open the controller
workspace.
2. In the Controller tree, select MicroLogix Mapping.
3. On the Controller - MicroLogix Mapping configuration page, select Export.
4. In the Save As dialog box, enter the filename, then select the location to save the
exported file.
5. Select Save.

386 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Index

Symbols Communication
configuring DF1 radio modem station 348
__SYSVA_CYCLECNT 125 configuring slave station 346
__SYSVA_TCYCURRENT 125 communication connections 57, 71
__SYSVA_TCYMAXIMUM 125 communication protocols 57
DF1 Full-Duplex 335
DF1 Half-Duplex 336
Numerics Communication rate 340, 344, 346, 348
1761-CBL-PM02 62 communications
2080-PS120-240VAC 41 ports 57
2711P-CBL-EX04 23 ConfigMeFirst.txt
errors 237
configure
A DF1 radio modem communication 348
About Your Controller 25 Configuring 343
absolute home switch 161, 162 DF1 Half-Duplex Master
Message-based 343
Additional Resources 15
Standard Mode 339
Addressing Minimum Channel 0 ACK Timeout 341
defining 340, 344, 346 Minimum DF1 Half-Duplex Master 341
analog cable grounding 53 Minimum Master ACK Timeout 342
analog channel wiring guidelines 52 Poll Timeout 347
analog inputs Slave Station 346
Connected Components Workbench 15, 25, 125,
analog channel wiring guidelines 52
ASCII 57, 59, 63 129, 173, 227, 228, 229, 240, 245
configuration 67 connection limits 57
AutoTune 328 Control line 340, 344, 346, 349
axis 160 ControlFLASH 229
axis output controller
general rules 166 description 19, 20
axis state diagram 173 grounding 47
axis state update 174 I/O wiring 52
minimizing electrical noise 52
axis states 173
preventing excessive heat 35
Controller Error Recovery Model 315
B controller load 126
Controller Mounting Dimensions 39
Baud rate 340, 344, 346, 348 controller password 225
BCC 340, 344, 346, 349
recover 229
before calling for assistance 322 controller security 225
CRC 340, 344, 346, 349
C
cables D
programming 22 data log 240
serial port 22
data types 243
calling for assistance 322
directory structure 241
Checking if Forces (locks) are Enabled 289 execution rules 243
CIP Client Messaging 60 specifications 241
CIP communications pass-thru 61 timing diagram 243
CIP Serial 63 datasets 240, 241
CIP Serial Client/Server 57, 58 deceleration 165
CIP Serial Driver DF1 Full-duplex
configure 63 Communication Diagnostics 349
CIP Symbolic Addressing 60 DF1 Full-duplex driver 348
CIP Symbolic Client/Server 57, 59 DF1 Full-duplex protocol
collision avoidance 113 description 335
using a modem 336
DF1 Half-duplex driver 344, 346

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 387


Index

DF1 Half-duplex protocol F


description 336
fault routine
DF1 point-to-point connection 62
description of operation 297
DHCP Client 57 operation in relation to main control
DIN Rail Mounting 41 program 295
DIN rail mounting 41 priority of interrupts 296
direction input 165 faults
disconnecting main power 33 recoverable and non-recoverable 297
DLG force status 308
function block status 242 Forcing I/Os 288
function error ID list 242 Full-duplex station 349
input and output parameters 242
DLG_ERR_DATAFILE_ACCESS 241
DNP3 G
device attribute object 108 generating DNP3 events 109
diagnostics 115 grounding the controller 47
objects 98
Guidelines and Limitations for Advanced Users
slave application layer 93
slave application layer configuration 129
parameters 80
Duplicate packet detection 341, 345, 346
H
Hardware Features 17
E Hardware Overview 17
EII Function Configuration 305 heat protection 35
EII function file 304 High-Speed Counter (HSC) 201
EII Function Status Information 306 high-speed counter function file 217
Embedded Serial Port Cables 22 High-Speed Counter Overview 201
Embedded Serial Port Wiring 54 home marker 161
enable and valid status housekeeping 125, 240
general rules 168 HSC (High Speed Counter) Function Block 217,
encoder 304
quadrature 208 HSC APP Data Structure 204
Endian Configuration 261
HSC function file 217
EOT suppression 341, 345, 347 HSC Interrupt Configuration 222
error 168 HSC Interrupt POU 223
error codes 309 HSC Interrupt Status Information 224
Error detection 340, 344, 346, 349 HSC Interrupts 222
error handling HSC STS Data Structure 212
general rules 168
HSC_SET_STS Function Block 219
error recovery model 315
ErrorStop 173
Establishing Communications Between RSLinx I
and a Micro830 via USB 272
implementation table 119
Ethernet Information About Using Interrupts 295
configuration settings 68
in-position signal 162
EtherNet/IP Client/Server 57
input parameters 165
EtherNet/IP network
nodes 132 input states on power down 35
star network topology 132 Installing Your Controller 39
topologies 132 INT instruction 298
event generation control 111 interrupt subroutine instruction 298
Event Input Interrupt (EII) Function interrupts
Configuration and Status 305 interrupt instructions 298
event input interrupt (EII) function file 304 overview 295
exclusive access 225 selectable timed start (STS) instruction 298
user fault routine 297
Execution Rules 126
user interrupt disable (UID) instruction 299
execution rules 240 user interrupt enable (UIE) instruction 300
user interrupt flush (UIF) instruction 301

388 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Index

IP address microSD card 241


exclusions 69 flash upgrade 269
rules 69 minimizing electrical noise 52
IPIDCONTROLLER 326 minimizing electrical noise on analog
parameters 324, 325, 326 channels 53
isolation transformers Modbus Mapping 261
power considerations 34 Modbus Mapping for Micro800 261
Modbus RTU 57, 58, 59, 63
J configuration 66
Modbus TCP Client/Server 57, 59
jerk inputs
Modbus/TCP server 59
general rules 165
modems
using with Micro800 controllers 336
K Module Spacing 40
keyswitch 229 motion control 159, 160
administrative function blocks 164
general rules 165
L wiring input/output 162
motion control function blocks 164
link layer configuration parameters 74 motion function blocks 160
lower (Negative) Limit switch 161 motor starters (bulletin 509)
lower (negative) limit switch 162 surge suppressors 47
mounting dimensions 39
M
Mapping Address Space and supported Data N
Types 261 network status 308
master control relay 35 nodes on an EtherNet/IP network 132
emergency-stop switches 36 Normal Operation 308
using ANSI/CSA symbols schematic 38 North American Hazardous Location Approval
using IEC symbols schematic 37
master control relay circuit 33
periodic tests 34
MC_AbortTrigger 164
MC_Halt 164, 169, 171, 172
O
MC_Home 164 object quality flags 106
MC_MoveAbsolute 164, 169 output active
MC_MoveRelative 164, 169 general rules 167
output exclusivity 166
MC_MoveVelocity 164, 169
output status 308
MC_Power 164
Overview of Program Execution 125
MC_ReadAxisError 164
MC_ReadBoolParameter 164
MC_ReadParameter 164 P
MC_ReadStatus 164 panel mounting 41
MC_Reset 164, 173 dimensions 42
MC_SetPosition 164 Parity 340, 344, 346, 348
MC_Stop 164, 169, 172 Performance, MSG_MODBUS 265
MC_TouchProbe 164 PID 324
MC_WriteBoolParameter 164 PID Application Example 330
MC_WriteParameter 164 PID Code Sample 331
Micro800 PID Function Blocks 323
Communication Diagnostics 343 PLS Data structure 219
Micro800 cycle or scan 125 PLS Example 221
Micro800 remote station 346 PLS Operation 220
Micro830 Controllers 18 Point-to-point 348
Micro830 controllers Poll timeout 341, 345
inputs/outputs types 21 position/distance input 165
Micro850 controllers
POU (Program Organizational Unit) 126
inputs/outputs types 21, 22
Micro870 controllers
inputs/outputs types 22

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 389


Index

power considerations Run Mode Change (RMC) 25


input states on power down 35 benefits 26
isolation transformers 34 limitations 29
loss of power source 35 RMC memory 27
other line conditions 35 uncommitted changes 27
overview 34 using 290
power supply inrush 34 Run Mode Configuration Change (RMCC) 29
power distribution 34 loop-back message 30
power source using EtherNet/IP 31
loss of 35 using Modbus RTU 30
power status 308 verify IP address change 33
power supply inrush verify node address change 31
power considerations 34
preventing excessive heat 35 S
Priority of User Interrupts 296
safety circuits 33
program mode 240
Safety Considerations 33
program scan 240
safety considerations 33
program scan cycle 126
disconnecting main power 33
programmable limit switch 201 hazardous location 33
Programmable Limit Switch (PLS) Function 219 master control relay circuit
Programmable Limit Switch Overview 201 periodic tests 34
PTO 159 periodic tests of master control relay circuit
configurable input/output 161 34
fixed input/output signals 161 power distribution 34
PTO direction 161, 162 safety circuits 33
Selectable Time Interrupt (STI) Function
PTO pulse 161, 162
Configuration and Status 303
selectable timed start instruction 298
Q serial communications status 308
quadrature encoder 208 serial port
Quickstarts 267 configure 63
servo drive 159
servo/drive on 161, 162
R servo/drive ready 161, 162
recipe 245 Shutdown 63
data types 243 Sockets Client/Server 57, 60
directory structure 246 star network topology 132
function block errors 247 Station address 340, 344, 346
function block parameters 246 status indicator 17
function block status 247 Ethernet 23
specifications 245 fault status 308
recipe sets 245 input status 308
relative move versus absolute move module status 23, 308
general rules 168 network status 23, 308
Remote station output status 308
available modes 340, 344, 346 power status 308
configuration 343 run status 308
configuring 344 serial communications 308
configuring Micro800 346 Status Indicators on the Controller 307
Remote station driver 340, 346 STI Function Configuration 303
reporting event by polled response 112 STI Function Status Information 304
reporting event by unsolicited response 112 STS instruction 298
Retries 341, 345, 347 surge suppressors
RJ45 Ethernet port 23, 57 for motor starters 47
RS-232/RS-485 combo port 57 recommended 47
RS-232/RS-485 serial port 57 using 45
system assembly
RTS off delay 341, 345, 347
Micro830 and Micro850 24-point controllers
RTS send delay 341, 345, 347 43
Micro830, Micro850, and Micro870 24-point
controllers 43

390 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Index

T User Interrupt Configuration 297


user interrupt disable instruction 299
time synchronization 114
user interrupt enable instruction 300
timing diagrams
quadrature encoder 208 user interrupt flush instruction 301
topologies user-defined function (UDF) 125, 129
available on an EtherNet/IP network 132 user-defined function block (UDFB) 125, 129
star 132 using emergency-stop switches 36
touch probe input switch 161, 162 Using Interrupts 295
troubleshooting 307 Using the High-Speed Counter and
Programmable Limit Switch 201
Using the Selectable Timed Interrupt (STI)
U Function 302
UDFB
motion axis fault reset 146, 356
motion axis gear 145, 356 V
motion axis home 145, 356
motion axis index 146, 356 validate IP address 69
motion axis jog 145, 356 variable retainment 129
motion axis move 145, 356 velocity input 165
motion axis servo off 145, 356
motion axis servo on 145, 356
motion axis stop 146, 356 W
motion axis torque 145, 356
wiring diagrams 48
UID instruction 299
Wiring Examples 53
UIE instruction 300
wiring recommendation 45
UIF instruction 301
Wiring Your Controller 45
upper (Positive) Limit switch 161
upper (positive) limit switch 162
user fault routine
creating a user fault routine 297
recoverable and non-recoverable faults 297

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 391


Index

Notes:

392 Rockwell Automation Publication 2080-UM002P-EN-E - December 2023


Micro830, Micro850, and Micro870 Programmable Controllers User Manual

Rockwell Automation Publication 2080-UM002P-EN-E - December 2023 393


Rockwell Automation Support
Use these resources to access support information.
Find help with how-to videos, FAQs, chat, user forums, Knowledgebase, and product
Technical Support Center rok.auto/support
notification updates.
Local Technical Support Phone Numbers Locate the telephone number for your country. rok.auto/phonesupport
Quickly access and download technical specifications, installation instructions, and user
Technical Documentation Center rok.auto/techdocs
manuals.
Literature Library Find installation instructions, manuals, brochures, and technical data publications. rok.auto/literature
Product Compatibility and Download Center Download firmware, associated files (such as AOP, EDS, and DTM), and access product rok.auto/pcdc
(PCDC) release notes.

Documentation Feedback
Your comments help us serve your documentation needs better. If you have any suggestions on how to improve our content, complete the
form at rok.auto/docfeedback.

Waste Electrical and Electronic Equipment (WEEE)

At the end of life, this equipment should be collected separately from any unsorted municipal waste.

Rockwell Automation maintains current product environmental compliance information on its website at rok.auto/pec.

Allen-Bradley, CompactBlock LDX I/O, CompactLogix, Connected Components Workbench, ControlFLASH, ControlLogix, Data-Set, DH+, expanding human possibility, FactoryTalk, FactoryTalk Linx,
FactoryTalk Linx Gateway, FLEX, Kinetix, Micro800, Micro810, Micro820, Micro830, Micro850, Micro870, PanelView, PanelView Component, PanelView Plus, PartnerNetwork, PLC-5, POINT I/O,
PowerFlex, Rockwell Automation, RSLinx, RSLinx Classic, RSLogix 500, RSNetWorx, SLC, Stratix, and TechConnect are trademarks of Rockwell Automation, Inc.
CIP, ControlNet, DeviceNet, and EtherNet/IP are trademarks of ODVA, Inc.
Excel, Microsoft, Visual Studio, and Windows are trademarks of Microsoft Corporation.
microSD is a trademark of SD-3C.
Trademarks not belonging to Rockwell Automation are property of their respective companies.
Rockwell Otomasyon Ticaret A.Ş. Kar Plaza İş Merkezi E Blok Kat:6 34752, İçerenköy, İstanbul, Tel: +90 (216) 5698400 EEE Yönetmeliğine Uygundur

Connect with us.

Publication 2080-UM002P-EN-E - December 2023


Supersedes Publication 2080-UM002O-EN-E - June 2023 Copyright © 2023 Rockwell Automation, Inc. All rights reserved.

You might also like