Opto 22 all products Communications Protocol

OPTOMMP PROTOCOL GUIDE
Used with:
groov EPIC Processors
groov RIO modules
SNAP PAC R-Series Controllers SNAP PAC S-Series Controllers
SNAP PAC EB Brains SNAP PAC SB Brains
SNAP Ethernet I/O™
SNAP Ultimate I/O™
SNAP-LCE Controller
E1 Brain Board
E2 Brain Board
G4EB2 Brain Boards
Form 1465-200714—July 2020
OptoMMP Protocol Guide Form 1465-200714—July 2020
Copyright © 2003–2020 Opto 22. All rights reserved. Printed in the United States of America.
The information in this manual has been checked carefully and is believed to be accurate; however, Opto 22 assumes no responsibility for possible inaccuracies or omissions. Specifications are subject to change without notice.
Opto 22 warrants all of its products to be free from defects in material or workmanship for 30 months from the manufacturing date code. This warranty is limited to the original cost of the unit only and does not cover installation, labor, or any other contingent costs. Opto 22 I/O modules and solid-state relays with date codes of 1/96 or newer are guaranteed for life. This lifetime warranty excludes reed relay modules, groov and SNAP serial communication modules, SNAP PID modules, and modules that contain mechanical contacts or switches. Opto 22 does not warrant any product, components, or parts not manufactured by Opto 22; for these items, the warranty from the original manufacturer applies. Refer to Opto 22 form 1042 for complete warranty information.
Wired+Wireless controllers and brains are licensed under one or more of the following patents: U.S. Patent No(s). 5282222, RE37802, 6963617; Canadian Patent No. 2064975; European Patent No. 1142245; French Patent No. 1142245; British Patent No. 1142245; Japanese Patent No. 2002535925A; German Patent No. 60011224.
Opto 22 FactoryFloor, groov, groov EPIC, groov RIO, mobile made simple, Optomux, and Pamux are registered trademarks of Opto 22. Generation 4, groov Server, ioControl, ioDisplay, ioManager, ioProject, ioUtilities, mistic, Nvio, Nvio.net Web Portal, OptoConnect, OptoControl, OptoDataLink, OptoDisplay, OptoEMU, OptoEMU Sensor, OptoEMU Server, OptoOPCServer, OptoScript, OptoServer, OptoTerminal, OptoUtilities, PAC Control, PAC Display, PAC Manager, PAC Project, PAC Project Basic, PAC Project Professional, SNAP Ethernet I/O, SNAP I/O, SNAP OEM I/O, SNAP PAC System, SNAP Simple I/O, SNAP Ultimate I/O, and Wired+Wireless are trademarks of Opto 22.
ActiveX, JScript, Microsoft, MS-DOS, VBScript, Visual Basic, Visual C++, Windows, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation in the United States and other countries. Linux is a registered trademark of Linus Torvalds. ARCNET is a registered trademark of Datapoint Corporation. Modbus is a registered trademark of Schneider Electric, licensed to the Modbus Organization, Inc. Wiegand is a registered trademark of Sensor Engineering Corporation. Allen-Bradley, CompactLogix, ControlLogix, MicroLogix, SLC, and RSLogix are either registered trademarks or trademarks of Rockwell Automation. CIP and EtherNet/IP are trademarks of ODVA. Raspberry Pi is a trademark of the Raspberry Pi Foundation. The registered trademark Ignition by Inductive Automation® is owned by Inductive Automation and is registered in the United States and may be pending or registered in other countries. CODESYS® is a registered trademark of 3S-Smart Software Solutions GmbH.
groov includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org)
All other brand or product names are trademarks or registered trademarks of their respective companies or organizations.
ii
OptoMMP Protocol Guide
Opto 22 Automation Made Simple.
Table of Contents
Chapter 1: Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
Welcome to OptoMMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
About this Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Information Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Other Documents You May Need . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
For Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Chapter 2: Overview of Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Programming Steps for Opto 22 Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Communication Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Communication Options that Do Not Require the OptoMMP Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Accessing Opto 22 Ethernet-Based Devices over the internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
CAUTION: Multiple Communication Options Can Cause Conflict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Understanding the Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Referencing Module and Channel Positions on I/O Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
groov I/O Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
groov RIO Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
SNAP I/O Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
SNAP B-Series I/O Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
SNAP Digital-Only I/O Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
E1 and E2 I/O Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
G4EB2 I/O Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Configuring I/O Channels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Configuring I/O Channels for groov I/O Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Configuring I/O Channels for groov RIO Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Configuring I/O Channels for SNAP Analog/Digital I/O Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Configuring Channel Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Selecting Configuration Values for I/O Channel Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
States (Digital Channels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Latches (Digital Channels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Counters (Digital Channels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Quadrature Counters (Digital Inputs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Pulse Measurement (Digital Inputs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Frequency or Period Measurement (Digital Inputs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
OptoMMP Protocol Guide iii
iii
Digital Totalizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Watchdog (Digital and Analog Channels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Scaling (Analog Channels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Minimum and Maximum Values (Analog Channels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Offset and Gain (Analog Channels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Clamping (Analog Channels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Average Filter Weight (Analog Channels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Scratch Pad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Using Scratch Pad Bits for Events and Alarms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Types of Events, Alarms, and Reactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Steps for Configuring Events and Reactions—PAC Firmware R8.1 and Higher . . . . . . . . . . . . . . . . . . 41
Steps for Configuring Events and Reactions—PAC Firmware R8.0 and Lower . . . . . . . . . . . . . . . . . . . 42
Using Digital Events and Reactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Using Alarms and Reactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Using Serial Events and Reactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Using SNMP in Reactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Setting Up Event Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Using Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Using Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Streaming Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Traditional Streaming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Custom Streaming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Logging Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Configuring the Event and Memory Map Addresses to Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Reading the Data from the Data Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Using PID Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
What is a PID? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
PID Loops on Ethernet-based I/O Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Algorithm Choices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Formatting and Interpreting Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Mask Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Unsigned 32-bit Integer Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Digital Channel Data (4-Channel Modules) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
IEEE Float Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Analog Bank Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
iv
Chapter 3: Using OptoMMP Software Development Kits . . . . . . . . . . . . . . . . . . . . . . . . . 63
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
C++ OptoMMP Software Development Kit for groov EPIC, groov RIO, and SNAP PAC . . . . . . . . . . . . . . . . . 63
A Few Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
.NET OptoMMP Software Development Kit for groov EPIC, groov RIO, and SNAP PAC . . . . . . . . . . . . . . . . . 64
Chapter 4: Using the OptoMMP Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Memory Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Communication Packets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Overview of Custom Application Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Connecting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
OptoMMP Protocol Guide
Sending Powerup Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Configuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Reading and Writing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Disconnecting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Streaming Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Configuring Parameters for Streaming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Receiving Streamed Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Configuring I/O Channels and Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Reading Module Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Configuring I/O Channel Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Using I/O Channel Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Latches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Quadrature Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Minimum and Maximum Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Offset/Gain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Read and Write Packet Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Packet Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Error Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Appendix A: Opto 22 Hardware Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Notes on Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Byte Ordering and Data Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
For Experienced OptoMMP Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
General Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
(Expanded) Analog & Digital Channel Configuration—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
(Expanded) Analog Channel Calc & Set—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
(Expanded) Analog Channel Read & Clear—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
(Expanded) Analog Channel Read—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
(Expanded) Analog Channel Write—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
(Expanded) Digital Channel Read—Read Only. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
(Expanded) Digital Channel—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
(Expanded) Digital Channel Read & Clear—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
(Expanded) Digital Packed Data—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
(Expanded) Digital Packed Must on/OFF (MOMO)—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Status Area Read—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Module Build Data–Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Quality of Data–Read Only. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Communications Port Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Serial Pass-Through—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Date and Time Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Status Area Write—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Modbus Configuration—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
OptoMMP Protocol Guide
v
Network Security Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
SSI Module Configuration—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Serial Module Identification—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Serial Module Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Serial Module and Port Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Wiegand Serial Module Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Wiegand Module and Port Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
SNAP-SCM-CAN2B Serial Module Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
SNAP-SCM-CAN2B Module and Port Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
HART Module Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
HART Module and Port Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
SNMP Configuration—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
FTP User Name/Password Configuration—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
PPP Configuration—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
PPP Status—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Streaming Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Digital Bank Read—Read Only. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Digital Bank Write—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Analog Bank Read—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Analog Bank Write—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Digital Channel Read—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Digital Channel Write—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
(Old) Analog Channel Read—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
(Old) Analog Channel Write—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
(Old) Analog and Digital Channel Configuration Information—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . 124
(Old) Digital Events and Reactions—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Digital Events - Expanded (formerly Timers)—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Addresses for SNAP Firmware R8.1 and Higher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Addresses for SNAP Firmware R8.0 and Lower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Custom Configuration Area—Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Custom Data Access Area—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Scratch Pad—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
(Old) Analog Channel Calculation and Set—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
(Old) Digital Read and Clear—Read Only. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
(Old) Analog Read and Clear/Restart—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Streaming—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Addresses for PR1 and RIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Addresses for PAC-R, EB, UIO, EIO, SIO, and G4EB2 Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Analog EU or Digital Counter (Feature) Packed Data—Read. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Digital Packed Data—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Alarm Event Settings—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Event Message Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Email Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Serial Event Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Wiegand Serial Event Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
High-Density Digital—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
vi
OptoMMP Protocol Guide
High-Density Digital Read and Clear—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
High-Density Digital Write—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
PID Configuration and Status—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Public Tag Configuration—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Data Logging Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Data Log—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
PID Module Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Control Engine—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Serial Brain Communication—Read/Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
microSD Card—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
WLAN Status—Read Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
WLAN Configuration—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
WLAN Enable—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
IP Settings—Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Appendix B: Rack and Module Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
SNAP PAC Processors and Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Appendix C: SNAP Features Comparison Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Appendix D: groov EPIC and groov RIO Features and Comparison Charts . . . . . . . 169
groov RIO Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
groov EPIC System Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Quality Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
OptoMMP Protocol Guide
vii
viii
OptoMMP Protocol Guide

1: Introduction

WELCOME TO OPTOMMP

OptoMMP is a memory-mapped protocol based on the IEEE 1394 standard. This protocol is used to create custom software applications for remote monitoring, industrial control, and data acquisition using Opto 22 hardware products.
If your sole method of communication with Opto 22 devices is through a PAC Control Basic or PAC Control
Professional strategy, then you probably don’t need to use this programming guide. Instead, the PAC Control
User’s Guide (form 1700) or the PAC Control User’s Guide, Legacy Edition (form 1710) for legacy hardware will
provide the information you need.
However, if you are developing custom applications for your Opto 22 devices, either instead of or in addition to using PAC Control or other methods of communication, you’ll need the additional information provided in this protocol guide.
OptoMMP works with the following Opto 22 hardware products:
Device type Part numbers
groov EPIC processors GRV-EPIC-PR1
groov RIO modules GRV-R7-MM1001-10
SNAP PAC R-series on-the-rack controllers
SNAP PAC S-series standalone controllers
SNAP PAC EB brains
SNAP PAC SB brains SNAP-PAC-SB1 SNAP-PAC-SB2
SNAP Simple I/O SNAP-ENET-S64
SNAP Ethernet I/O
SNAP Ultimate I/O
SNAP-LCE standalone controller SNAP-LCE
E1 digital brain board E1
E2 analog brain board E2
SNAP-PAC-R1 SNAP-PAC-R1-B SNAP-PAC-R1-FM SNAP-PAC-R1-W
SNAP-PAC-S1 SNAP-PAC-S1-FM SNAP-PAC-S1-W
SNAP-PAC-EB1 SNAP-PAC-EB1-FM SNAP-PAC-EB1-W
SNAP-B3000-ENET SNAP-ENET-RTC
SNAP-UP1-ADS SNAP-UP1-M64
SNAP-PAC-R2 SNAP-PAC-R2-FM SNAP-PAC-R2-W
SNAP-PAC-S2 SNAP-PAC-S2-W
SNAP-PAC-EB2 SNAP-PAC-EB2-FM SNAP-PAC-EB2-W
SNAP-ENET-D64
SNAP-UP1-D64
OptoMMP Protocol Guide 1
1

ABOUT THIS GUIDE

G4EB2 brain boards
ABOUT THIS GUIDE
This user’s guide defines the OptoMMP protocol and includes the logical addresses for communicating with Opto 22’s OptoMMP-based hardware.
It assumes that you are already familiar with programming in the format you’ve chosen to use. If you are using our free OptoMMP SDKs, you’ll find documentation included in the download.
The guide also assumes that you have already installed the Opto 22 hardware. If you have not, see the hardware user’s guide for instructions.
This guide includes the following sections:
Chapter 1: Introduction—information about the guide and how to reach Opto 22 Product Support.
Chapter 2: Overview of Programming—basic information you need for programming applications using
the OptoMMP protocol.
Chapter 3: Using OptoMMP Software Development Kits—programming your own applications using
our software development kits to hide the details of the memory map and the protocol.
Device type Part numbers
G4EB2 G4D32EB2
G4D32EB2-UPG
Chapter 4: Using the OptoMMP Protocol—details of the OptoMMP protocol, including examples.
Appendix A: Opto 22 Hardware Memory Map—the complete memory map for Opto 22 devices using the
OptoMMP protocol.
Appendix B: Rack and Module Compatibility—a table listing part numbers, mounting racks, and the type
and number of I/O modules they can hold by product family.

Information Key

This guide includes information that applies to some types of Opto 22 memory-mapped products but not to others. Sections are marked as follows to indicate the products that support them:
This text Indicates support by this hardware
PR1 groov EPIC PR1 processor
RIO groov RIO modules
PAC-R SNAP PAC R-series controllers
PAC-S SNAP PAC S-series controllers
EB SNAP PAC EB brains
SB SNAP PAC SB brains
UIO SNAP Ultimate I/O
EIO SNAP Ethernet I/O
SIO SNAP Simple I/O
LCE SNAP-LCE controllers*
E1 E1 brain boards
E2 E2 brain boards
G4EB2 G4EB2 brain boards
2
OptoMMP Protocol Guide
*As of January 2014, the SNAP-LCE is no longer available due to unavailability of essential parts.
CHAPTER 1: INTRODUCTION

Other Documents You May Need

See the following additional guides for the information listed. Most guides are available on our website,
www.opto22.com; those that are not on the website are available with product purchase. The easiest way to
find a guide is to search on its form number.
For this information See this guide Form #
Installing and using groov EPIC processors, groov modules, and groov Manage software
Installing and using groov RIO modules groov RIO User’s Guide 2324
Installing and using a SNAP PAC R-series controller SNAP PAC R-Series Controller User’s Guide 1595
Installing and using a SNAP PAC S-series controller SNAP PAC S-Series Controller User’s Guide 1592
Installing and using a SNAP PAC EB or SB brain SNAP PAC Brains User’s Guide 1690
Installing and using a SNAP Ultimate, SNAP Ether­net, or SNAP Simple I/O unit
Installing and using a SNAP-LCE controller SNAP-LCE User’s Guide 1475
Installing and using an E1 or E2 brain board EI and E2 User’s Guide 1563
(For SNAP PAC Systems only) Assigning IP addresses to SNAP PAC hardware, configuring communications, doing real-time reads and writes, updating firmware. For PAC-R, EB, SB, UIO, EIO, SIO, E1/E2, and G4EB2 units, configuring I/O channelsa and system functions.
Designing flowchart-based control programs for the system (Requires a groov EPIC processor or SNAP PAC controller; SNAP-LCE and SNAP Ultimate controllers are partially supported)
Communicating with the system using OPC
Exchanging system data with popular databases
Communicating with Allen-Bradley Logix-based PLCs or other systems using EtherNet/IP
Communicating with systems using Modbus/TCP Modbus/TCP Protocol Guide 1678
Communicating with an E1 or E2 I/O unit using the Optomux protocol
a
This guide uses the terms point and channel interchangeably.
groov EPIC User’s Guide 2267
SNAP Ethernet-Based I/O Units User’s Guide 1460
PAC Manager User’s Guide, Legacy Edition 1714
PAC Control User’s Guide 1700
PAC Control Command Reference 1701
PAC Control Commands Quick Reference 1703
OptoOPCServer User’s Guide (included with
the purchase of OptoOPCServer)
OptoDataLink User’s Guide (included with the purchase of OptoDataLink)
EtherNet/IP for SNAP PAC Protocol Guide 1770
Optomux Protocol Guide 1572
1439
1705

FOR HELP

If you have problems using the OptoMMP protocol and cannot find the help you need in this guide or on our website, contact Opto 22 Product Support.
Phone: 800-TEK-OPTO (800-835-6786 toll-free
in the U.S. and Canada) 951-695-3080 Monday through Friday,
NOTE: Email messages and phone calls to Opto 22 Product Support are grouped together and answered in the order received.
7 a.m. to 5 p.m. Pacific Time
Fax: 951-695-3017
Email: support@opto22.com
OptoMMP Protocol Guide
3
FOR HELP
Opto 22 website: www.opto22.com
When calling for technical support, you can help us help you faster if you provide the following information to the Product Support engineer:
A screen capture of the Help > About dialog box showing software product and version (available by clicking Help > About in the application’s menu bar).
Opto 22 hardware part numbers or models that you’re working with.
Firmware version (Available in PAC Manager by clicking Tools > Inspect. Available in groov Manage by clicking Info and Help > About.)
Specific error messages you saw.
Version of your computer’s operating system.
4
OptoMMP Protocol Guide

2: Overview of Programming

INTRODUCTION

Details of programming steps depend on the language or method you use for developing your custom application, but some basic information is common to all languages and methods. This chapter includes the following basic information you need in order to program for Opto 22 memory-mapped hardware:
In this chapter
Programming Steps for Opto 22 Devices...................................................................page 5
Communication Options...................................................................................................page 6
Understanding the Memory Map ................................................................................page 8
Referencing Module and Channel Positions on I/O Units..................................page 9
Configuring I/O Channels ..............................................................................................page 16
Configuring Channel Features......................................................................................page 31
Streaming Data ...................................................................................................................page 51
Logging Data........................................................................................................................page 54
Using PID Loops.................................................................................................................. page 55
Formatting and Interpreting Data..............................................................................page 58

PROGRAMMING STEPS FOR OPTO 22 DEVICES

In general, writing programs that can read from or write to Opto 22 memory-mapped devices through OptoMMP memory maps involves six steps:
1. Connect to the device (not required for UDP).
2. Send a powerup clear (PUC) to the device.
3. Configure channels1 and channel features. (For instructions, see page 16).
4. (Optional) Configure event/reactions, security, streaming, and other functions (starting on page 39).
NOTE: Store configurations to flash memory if you want them to remain through power cycles.
5. Read and write to channels.
6. Disconnect from the device (not required for UDP). This step occurs only after all communication is
finished. The connection is left open during normal communications.
Before you start using OptoMMP, here is some important information you should understand about Opto 22 memory-mapped devices, I/O modules, and I/O channels.
1
This guide uses the terms point and channel interchangeably.
OptoMMP Protocol Guide 5
5

COMMUNICATION OPTIONS

COMMUNICATION OPTIONS
PR1 RIO PAC-R PAC-S EB SB UIO EIO SIO LCE E1 E2 G4EB2
To communicate with Opto 22 devices, you can use the OptoMMP protocol either by itself or in combination with other communication methods. For example, your system could be running a PAC Control strategy, providing data to a peer on the network, and communicating with a third-party HMI, all at the same time.
Communication options include:
Custom applications for Microsoft Windows® and Linux ®—You can use the OptoMMP protocol to build custom applications from scratch. For details, see Chapter 4: Using the OptoMMP Protocol.
However, you can quick start your development process with two free Opto 22 software development kits (SDKs), which you can download from our website at www.opto22.com:
For C++®—the PAC-DEV-OPTOMMP-CPLUS software development kit (SDK). The SDK supports Microsoft Windows® and Linux, and includes all documentation.
For Visual Studio® 2010 through 2019—the PAC-DEV-OPTOMMP-DOTNET SDK for .NET developers. The SDK supports Microsoft's .NET frameworks 4.0 through 4.8, and includes all documentation.
A groov Enterprise license is required to run custom applications on a groov EPIC processor. For details, see the groov EPIC User’s Guide, (form 2267), available from the Opto 22 website.

Communication Options that Do Not Require the OptoMMP Protocol

None of the following communication options requires knowledge of the OptoMMP protocol:
PAC Control™—Most of the devices that use the OptoMMP protocol can be used with PAC Control, Opto 22’s flowchart-based control development software. PAC Control Basic is included in your purchase of a groov EPIC processor or SNAP PAC controller, and is also a free download from www.opto22.com. PAC Control
Professional adds more features and is available for purchase from our website or through an Opto 22
distributor.
CODESYS® Development System—(groov EPIC Systems only) groov EPIC processors can be programmed using any IEC 61131-3 compliant language in CODESYS. For more information, see the groov EPIC User’s Guide.
Ignition Edge®—(groov EPIC Systems only) groov EPIC processors include Ignition Edge® software from Inductive Automation® to connect to other devices, such as Allen-Bradley® PLCs, via OPC UA, and for efficient IIoT communications using MQTT with Sparkplug B payload.
Node-RED—(groov EPIC and groov RIO only) Node-RED, an open-source tool for communicating data among devices, databases, cloud applications, and APIs, is included in groov EPIC and groov RIO.
EtherNet/IP™—SNAP PAC controllers and SNAP PAC EB brains with firmware R8.3 and higher can also communicate with Allen-Bradley® Logix-based PLCs and other systems that use EtherNet/IP. For details, see the EtherNet/IP for SNAP PAC Protocol Guide (form 1770), available from our website.
Modbus®/TCP —Ethernet-based devices that use the OptoMMP protocol can also communicate using Modbus/TCP. For more information about communicating with Opto 22 devices using Modbus/TCP, see the
Modbus/TCP Protocol Guide (form 1678), available from our website.
Optomux protocol—E1 and E2 brain boards can also communicate using the Optomux protocol over Ethernet or serial networks. The Optomux Protocol Driver is documented in the Optomux Protocol Guide (form 1572); the driver and the guide are available from our website.

Accessing Opto 22 Ethernet-Based Devices over the internet

Since Opto 22 Ethernet-based devices are just like any other hardware on the Ethernet network, you can access them over the internet in exactly the same way you would access a computer; the details depend on
6
OptoMMP Protocol Guide
CHAPTER 2: OVERVIEW OF PROGRAMMING
your network and internet connection. Consult your system or network administrator or your Internet Service Provider (ISP) for more information.

CAUTION: Multiple Communication Options Can Cause Conflict

Any time you directly communicate with an Opto 22 memory-mapped device, make sure that you are not causing conflicts with other communication options. For example, if you are using the memory map to exchange data with an I/O unit, and that I/O unit is also controlled by a PAC Control strategy, be caref ul that the two methods of reading and writing to the unit do not send conflicting directions to I/O. This caution applies to all Opto 22 devices that have multiple communication options.
Some Opto 22 memory-mapped devices—groov EPIC processors, SNAP PAC R-series controllers, and SNAP Ultimate brains—are a combination of I/O processor and controller: they handle both input/output processing and flowchart-based control functions in the same device. Because input/output processing and control are different functions, it’s sometimes easier to imagine these devices performing these tasks in different “sides”: a control side and an I/O side.
This image depicts a GRV-EPIC-PR1 and groov I/O modules on a groov EPIC chassis. Together, these devices are referred to as an I/O unit.
The modules on the chassis connect with devices (such as the motor) to monitor and control them.
Monitoring and control are performed by sending messages (commands) to addresses in the groov EPIC processor’s memory map.
On the control side, these Opto 22 devices have capabilities very much like a SNAP PAC S-series or SNAP-LCE standalone controller: they typically run a control program developed in PAC Control software. (Some, like groov EPIC, can run programs developed with other tools.) The control program provides the logic that controls processes throughout the system. Within the program, PAC Control commands (programming functions) read and write to the memory map in the I/O side to monitor and control I/O channels.
On the I/O side, these Opto 22 devices have features similar to a SNAP PAC EB brain or a SNAP Ethernet brain: they read and write to I/O channels by using the memory map (see “Understanding the Memory Map” on
page 8).
IMPORTANT: Any time you are communicating with both the control side and the I/O side, plan carefully and use caution. The control side reads from and writes to the I/O side just as other methods do directly. Make sure that data being written directly to the I/O side does not conflict with control logic being executed in the main control program.
OptoMMP Protocol Guide
7

UNDERSTANDING THE MEMORY MAP

UNDERSTANDING THE MEMORY MAP
NOTE: Appendix A: Opto 22 Hardware Memory Map shows all memory map addresses and the devices each section supports.
PR1 RIO PAC-R PAC-S EB SB UIO EIO SIO LCE E1 E2 G4EB2
Opto 22 memory-mapped devices use the IEEE 1394 specification as a standard for reading and writing data. This standard specifies a memory-mapped model for devices on a network. Basically, each node (such as a SNAP PAC brain) appears logically as a 48-bit address space2. To communicate with a device, you read from and write to specific memory addresses in that space.
If you’re a progra mmer, you already know that a memory map is a data structure that matches a set of logical addresses with physical addresses in the read/write memory hardware on a device. You can think of a memory map as a lookup table, or if you’re familiar with programmable logic controllers (PLCs), it’s similar to a PLC’s register.
In Opto 22 memory-mapped devices, a physical address might hold a single value of data, such as the state of a single digital channel, counter data for a digital channel, the minimum value of an analog channel, or the device’s firmware version. In your programming code, you use the logical address to reference the physical address that holds the data you want to read or write to.
When you write to the memory map, the memory-mapped device responds by returning a packet that indicates success or a failure code. When you perform a read, the memory-mapped device returns a packet containing the data.
If you’re not a programmer, you can think of a memory map (sometimes called a mem map) as a collection of post office boxes. Each mailbox’s address has a different owner who either has information you want, or information you want to change.
To get or change the information, you send a message (in the form of a structured packet of data) to the mailbox address. For example, to get a device’s part number, you send the message to address
0080. In response, you’ll get another packet of data
FFFF F030
containing—in this example—the part number. Getting a part number is an example of reading a memory map address. You can also write to the memory map, for example, to change an I/O channel’s configuration, its status, or its value.
8
OptoMMP Protocol Guide
Note that devices vary in how much of the memory map they support. For example, the SNAP PAC S-series standalone controller does not support reading or writing to channels, since it is not directly connected to channels. Similarly, a digital-only brain does not support analog sections of the memory map.
Also note that features included in the memory map may not always be the same as features available through another protocol. For example, waveform generation is supported on an E2 using the Optomux protocol, but it is not available on an E2 in OptoMMP. For a list of features supported by each device, see
Appendix C: SNAP Features Comparison Chart and Appendix D: groov EPIC and groov RIO Features and Comparison Charts.
2
48 bits is equivalent to 6 octets. FFFF F110 0000 is an example of a 48-bit address space.
CHAPTER 2: OVERVIEW OF PROGRAMMING

REFERENCING MODULE AND CHANNEL POSITIONS ON I/O UNITS

PR1 RIO PAC-R PAC-S EB SB UIO EIO SIO LCE E1 E2 G4EB2
PR1
NOTE: You can use the reference model described in this section by all methods of communication listed in
“Communication Options” on page 6 except Modbus/TCP and Optomux. For Modbus I/O channel referencing, see
the Modbus chapter in the Modbus/TCP Protocol Guide (form 1678). For Optomux, see the Optomux Protocol
Guide
(form 1572).
Before you begin writing programs that read and write to the memory map addresses in Appendix A: Opto 22
Hardware Memory Map, you first need to know how to reference I/O modules and the channels on them.
Opto 22 I/O units are zero-based: that is, the first module position on the rack or chassis is position 0, and the first channel on each module is channel 0. The number of channels on a module can vary from one to 32, depending on the module family and part number. Because of this numbering and variation, it’s important to understand them before you start reading and writing channel data.
Module and channel positions differ depending on the module family; see the section for yours:
groov I/O Units.................................................................................................. page 9
groov RIO Units...............................................................................................page 10
SNAP I/O Units (and M-series)..................................................................page 11
SNAP B-Series I/O Units............................................................................... page 11
SNAP Digital-Only I/O Units ......................................................................page 12
E1 and E2 I/O Units........................................................................................page 13
G4EB2 I/O Units...............................................................................................page 14
For serial modules, also see page 107.

groov I/O Units

I/O units whose I/O processor is a GRV-EPIC-PR1 are called groov I/O units. groov I/O chassis can hold 4, 8, or 16 I/O modules, and each module contains 8 to 24 channels, depending on the module. Several groov modules offer a variety of features that you can configure. After you learn how to reference module and channel positions, then continue to configuring channels and features:
To configure groov I/O channels, see page 16
To configure groov I/O features, see page 31.
The following diagram shows examples of groov modules mounted on a chassis, along with the processor. The diagram also shows examples of how channels are identified on some of the modules.
OptoMMP Protocol Guide
9
REFERENCING MODULE AND CHANNEL POSITIONS ON I/O UNITS
Module position 0, discrete, 24 channels:
Ch: 23 0
Module position 5, analog, 8 channels:
Ch:76543210
Module position 2, discrete, 12 channels:
Ch: 11 0
RIO

groov RIO Units

A groov RIO module contains an I/O and communications processor plus a specific number of multifunction, multi-signal I/O channels. Multifunction means channels can be configured as either inputs or outputs; multi-signal means channels can be configured for different signal inputs. For example, the groov RIO part number GRV-R7-MM1001-10 includes a processor and ten I/O channels, eight of which are software configurable as analog or discrete inputs or outputs with a variety of signals, and two of which are Form C mechanical relays.
All channels on a groov RIO module are considered to be in module position 0. Channel positions are:
GRV-R7-MM1001-10 Channel Positions
Module position = 0
Pins Channel
1–3 0
4–6 1
7–9 2
10–12 3
13–14 4
15–16 5
17–18 6
19–20 7
21–-23 8
24–26 9
To configure channels, see page 20.
To configure channel features, see page 31.
10
OptoMMP Protocol Guide
CHAPTER 2: OVERVIEW OF PROGRAMMING
PAC-R EB SB UIO EIO SIO

SNAP I/O Units

I/O units whose I/O processor’s part number begins with “SNAP” are called SNAP I/O units. For example, I/O units with a SNAP-PAC-R1, SNAP-EB1, or SNAP-ENET-S64 as the I/O processor are all SNAP I/O units.
SNAP mounting racks may hold 4, 8, 12, or 16 I/O modules, and the modules can be analog, digital, or serial. Each module contains 1 to 32 channels (points), depending on the module. Examples of modules are shown in the following diagram.
NOTE: Module support, functions, and positions vary by processor.
Module position 0, 4-ch digital:
Channels: 3 2 1 0
Module position 6, high-density digital:
Channels
:31 0
Module position 8, analog:
Channels
Module position 12, analog:
Channels
Module position 14, serial:
Ports: B A
76543210
:
:1 0
For more information about SNAP I/O channels, see page 21; for SNAP I/O features, see page 31.

SNAP B-Series I/O Units

NOTE: SNAP B-series racks and the processors compatible with them are not recommended for new development. Use SNAP PAC racks and processors instead.
SNAP B-series mounting racks can hold up to 4, 8, 12, or 16 Opto 22 SNAP I/O modules. (Not all modules are supported by these processors; for details, see Legacy and Current SNAP Product Comparison and Compatibility
Charts, form 1693.) Analog, serial, and high-density digital modules (digital modules with more than four
channels) can be placed in any position. For the larger racks, 4-channel digital modules can be placed in positions 0–7 only. Each module contains 1 to 32 channels, depending on the module. Examples of modules are shown in the following diagram.
OptoMMP Protocol Guide
11
REFERENCING MODULE AND CHANNEL POSITIONS ON I/O UNITS
Module position 0, 4-ch digital:
Channel: 3 2 1 0
Module position 6, high-density digital:
NOTE: 4-channel digital modules can be placed in positions 0–7 only.
All other modules can be placed in any position.
Channels
:31 0
Module position 14, serial:
Ports: B A
Module position 8, analog:
Channels: 3 2 1 0
Module position 12, analog:
Channels: 1 0

SNAP Digital-Only I/O Units

NOTE: Digital-only racks and processors are not recommended for new development. Use SNAP PAC racks and processors instead.
The SNAP-D64RS mounting rack is compatible with SNAP-UP1-D64 and SNAP-ENET-D64 processors. The rack holds up to 16 4-channel SNAP digital I/O modules. Analog, serial, and high-density digital modules are not supported. Module position 0 is the position closest to the processor.
12
OptoMMP Protocol Guide
CHAPTER 2: OVERVIEW OF PROGRAMMING
E1 E2

E1 and E2 I/O Units

I/O units using a digital E1 or analog E2 brain board normally use modules containing only one channel, and the maximum number of channels on the rack is 16. Examples of E1 and E2 I/O units are shown below.
E1 shown with G4 modules.
Since each module has just one channel, use only the first channel for each module in the memory map.
Module # Channel #
00
15
0
0
Module position 0
E1 with Quad Pak modules.
Quad Pak modules have four input or four output channels, but each channel is treated as if it were a separate one-channel module.
Module position on
Quad Pak rack
0
1
2
3
Module
number
00 01 02 03
04 05 06 07
08 09 10 11
12 13 14 15
Channel
number
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0
1
2
3
E2 with G1 modules.
Since each module has just one channel, use only the first channel for each module in the memory map.
Module position 0
Module # Channel #
00
15
0
0
OptoMMP Protocol Guide
13
REFERENCING MODULE AND CHANNEL POSITIONS ON I/O UNITS
G4EB2

G4EB2 I/O Units

These I/O units include part numbers G4EB2, G4D32EB2, and G4D32EB2-UPG. Each I/O unit has 32 total channels, all of them digital. They may use G4 modules, which each have one channel, or Quad Pak modules, which each have four channels of the same type (all four digital inputs or all four digital outputs).
G4EB2 brains with G4 modules
Each module has just one channel (point). However, in the memory map they are addressed like Quad Pak racks (see page 15). The difference is that with G4s, you can mix input and output modules within the same group of four channels.
Module position 0
The following table shows Channel Configuration addresses as an example of how to reference channels on a rack with G4 modules.
G4 rack Memory Map equivalent
Module position Module number Channel number Starting address for channel config
0 1 2 3
4 5 6 7
8
9 10 11
12 13 14 15
16 17 18 19
20 21 22 23
0 0 0 0
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
0 1 2 3
0 1 2 3
0 1 2 3
0 1 2 3
0 1 2 3
0 1 2 3
F010 0000 F010 00C0 F010 0180 F010 0240
F010 3000 F010 30C0 F010 3180 F010 3240
F010 6000 F010 60C0 F010 6180 F010 6240
F010 9000 F010 90C0 F010 9180 F010 9240
F010 C000
F010 C0C0
F010 C180 F010 C240
F010 F000
F010 F0C0
F010 F180 F010 F240
14
OptoMMP Protocol Guide
CHAPTER 2: OVERVIEW OF PROGRAMMING
G4 rack Memory Map equivalent
Module position Module number Channel number Starting address for channel config
24 25 26 27
28 29 30 31
6 6 6 6
7 7 7 7
0 1 2 3
0 1 2 3
F011 2000 F011 20C0 F011 2180 F011 2240
F011 5000 F011 50C0 F011 5180 F011 5240
G4EB2 brains with Quad Pak modules
Quad Pak modules have four input or four output channels per module, so each group of four channels must be configured as either inputs or outputs.
Module position 0 (channels 0–3)
The following table shows Channel Configuration addresses as an example of how to reference channels on a PB32HQ rack with Quad Pak modules.
Quad Pak rack Memory Map equivalent
Module position
0
1
2
3
4
Channel
number
0 1 2 3
4 5 6 7
8
9 10 11
12 13 14 15
16 17 18 19
Module number
0 0 0 0
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
Channel
number
0 1 2 3
0 1 2 3
0 1 2 3
0 1 2 3
0 1 2 3
Starting address for
channel config
F010 0000
F010 00C0
F010 0180 F010 0240
F010 3000
F010 30C0
F010 3180 F010 3240
F010 6000
F010 60C0
F010 6180 F010 6240
F010 9000
F010 90C0
F010 9180 F010 9240
F010 C000 F010 C0C0 F010 C180 F010 C240
OptoMMP Protocol Guide
15

CONFIGURING I/O CHANNELS

Quad Pak rack Memory Map equivalent
Module position
5
6
7
CONFIGURING I/O CHANNELS
Before you can read or write to I/O channels, you must make sure channel types and channel features are configured as required.
Channel
number
20 21 22 23
24 25 26 27
28 29 30 31
Module number
5 5 5 5
6 6 6 6
7 7 7 7
Channel
number
0 1 2 3
0 1 2 3
0 1 2 3
Starting address for
channel config
F010 F000
F010 F0C0
F010 F180 F010 F240
F011 2000
F011 20C0
F011 2180 F011 2240
F011 5000
F011 50C0
F011 5180 F011 5240
PR1
See the section for your I/O unit:
groov I/O units................................................................................................. page 16
groov RIO units................................................................................................ page 20
SNAP analog/digital I/O units.................................................................. page 21
SNAP digital-only and G4EB2 I/O units ............................................... page 29
E1 and E2 brain boards ...............................................................................page 29

Configuring I/O Channels for groov I/O Units

You can configure groov I/O units in three ways:
PAC Cont rol—If you are programming a strategy with PAC Control (R10.0 or higher), configure channels while you are programming the strategy.
groov Mana ge—If your control program is not a PAC Control strategy, configure channels in groov Manage, either on the groov EPIC processor’s touchscreen or remotely from a computer or mobile device. Configurations are automatically saved to flash memory.
OptoMMP—If OptoMMP is the ONLY communication to the groov I/O unit, then configure I/O channels by selecting the appropriate configuration values as described below.
groov I/O Module Types and Channel Types
The table beginning on page 17 shows configuration values for groov I/O modules, divided by module and channel types.
Some modules provide or accept several ranges of values per channel, which is why they have multiple channel types. If a module offers more than one range, choose the range you want from the Description column and read across to the Channel ID (hex) column to find the corresponding configuration value. For example, suppose the module in position (slot) 0 on the chassis is a GRV-IV-24 and you want to monitor a range of ±10 V on the first two channels (channels 0 and 1). You find the module’s range in the Description column and read across to see that the appropriate configuration value is 0x60000017.
Some modules provide or accept only certain configuration values on specific channels. Those modules list the specific channel that accepts a specific configuration value in the “Applies To” column. If the
16
OptoMMP Protocol Guide
CHAPTER 2: OVERVIEW OF PROGRAMMING
column says “all”, that means all channels on that module accept all the configuration values available for that module.
After you select the configuration value for the module and channel type, go to page 31 to select the correct configuration value for a specific feature.
Part number
GRV-CSERI-4 all RS232 0C00001E 08000026 4 N/A N/A N/A
GRV-CSERI-4 all RS485, 2-Wire, no termination, no bias 0C00001E 08000027 4 N/A N/A N/A
GRV-CSERI-4 all RS485, 2-Wire, termination, no bias 0C00001E 08000028 4 N/A N/A N/A
GRV-CSERI-4 all RS485, 2-Wire, no termination, bias 0C00001E 08000029 4 N/A N/A N/A
GRV-CSERI-4 all RS485, 2-Wire, termination, bias 0C00001E 0800002A 4 N/A N/A N/A
GRV-CSERI-4 all RS485, 4-Wire, no termination, no bias 0C00001E 0800002B 4 N/A N/A N/A
GRV-CSERI-4 all RS485, 4-Wire, termination, no bias 0C00001E 0800002C 4 N/A N/A N/A
GRV-CSERI-4 all RS485, 4-Wire, no termination, bias 0C00001E 0800002D 4 N/A N/A N/A
GRV-CSERI-4 all RS485, 4-Wire, termination, bias 0C00001E 0800002E 4 N/A N/A N/A
GRV-IAC-24 all Digital Input 5000000F 50000000 24 N/A N/A N/A
GRV-IACDCTTL-24 all Digital Input 50000005 50000000 24 N/A N/A N/A
GRV-IACDCTTLS-24 all Simple Digital Input 54000007 54000000 24 N/A N/A N/A
GRV-IACHV-24 all Digital Input 50000010 50000000 24 N/A N/A N/A
GRV-IACHVS-24 all Simple Digital Input 54000008 54000000 24 N/A N/A N/A
GRV-IACI-12 all Digital Input 5000000C 50000000 12 N/A N/A N/A
GRV-IACIHV-12 all Digital Input 5000000D 50000000 12 N/A N/A N/A
GRV-IACIHVS-12 all Simple Digital Input 54000009 54000000 12 N/A N/A N/A
GRV-IACIS-12 all Simple Digital Input 5400000A 54000000 12 N/A N/A N/A
GRV-IACS-24 all Simple Digital Input 5400001D 54000000 24 N/A N/A N/A
GRV-IDC-24 all Digital Input 50000011 50000000 24 N/A N/A N/A
GRV-IDCI-12 all Digital Input 5000000E 50000000 12 N/A N/A N/A
GRV-IDCIFQ-12 0 Digital Input with Quadrature 5000001A 5000002F 12 N/A N/A N/A
GRV-IDCIFQ-12 1 Digital Input with Quadrature 5000001A 5000002F 12 N/A N/A N/A
GRV-IDCIFQ-12 2 Digital Input with Quadrature Index 5000001A 50000030 12 N/A N/A N/A
GRV-IDCIFQ-12 3 Digital Input with Quadrature 5000001A 5000002F 12 N/A N/A N/A
GRV-IDCIFQ-12 4 Digital Input with Quadrature 5000001A 5000002F 12 N/A N/A N/A
GRV-IDCIFQ-12 5 Digital Input with Quadrature Index 5000001A 50000030 12 N/A N/A N/A
GRV-IDCIFQ-12 6 Digital Input with Quadrature 5000001A 5000002F 12 N/A N/A N/A
GRV-IDCIFQ-12 7 Digital Input with Quadrature 5000001A 5000002F 12 N/A N/A N/A
GRV-IDCIFQ-12 8 Digital Input with Quadrature Index 5000001A 50000030 12 N/A N/A N/A
GRV-IDCIFQ-12 9 Digital Input with Quadrature 5000001A 5000002F 12 N/A N/A N/A
GRV-IDCIFQ-12 10 Digital Input with Quadrature 5000001A 5000002F 12 N/A N/A N/A
GRV-IDCIFQ-12 11 Digital Input with Quadrature Index 5000001A 50000030 12 N/A N/A N/A
GRV-IDCIS-12 all Simple Digital Input 5400000B 54000000 12 N/A N/A N/A
Description
Applies To
(hex)
Module ID
(hex)
Channel ID
Default
Channels
per module
Units
Low Scale
Full Scale
OptoMMP Protocol Guide
17
CONFIGURING I/O CHANNELS
Part number
GRV-IDCS-24 all Simple Digital Input 54000016 54000000 24 N/A N/A N/A
GRV-IICTD-12 all ICTD Temperature Probe 6000001F 60000031 12 °C -270 150
GRV-IMA-24 all ±20 mA 60000001 60000014 24 mA -20 20
GRV-IMA-24 all 0-20 mA 60000001 60000015 24 mA 0 20
GRV-IMA-24 all 4-20 mA 60000001 60000016 24 mA 4 20
GRV-IMAI-8 all 0-20 mA 60000020 60000015 8 mA 0 20
GRV-IMAI-8 all 4-20 mA 60000020 60000016 8 mA 4 20
GRV-ITM-12 all ±1200 mV 60000026 60000002 12 mV -1200 1200
GRV-ITM-12 all ±600 mV 60000026 60000003 12 mV -600 600
GRV-ITM-12 all ±300 mV 60000026 60000004 12 mV -300 300
GRV-ITM-12 all ±150 mV 60000026 60000005 12 mV -150 150
GRV-ITM-12 all ±75 mV 60000026 60000006 12 mV -75 75
GRV-ITM-12 all ±50 mV 60000026 60000007 12 mV -50 50
GRV-ITM-12 all ±25 mV 60000026 60000008 12 mV -25 25
GRV-ITM-12 all Type B Thermocouple (°C) 60000026 60000009 12 °C 0 1820
GRV-ITM-12 all Type E Thermocouple (°C) 60000026 6000000C 12 °C -270 1000
GRV-ITM-12 all Type J Thermocouple (°C) 60000026 6000000E 12 °C -210 1200
GRV-ITM-12 all Type K Thermocouple (°C) 60000026 6000000F 12 °C -270 1372
GRV-ITM-12 all Type N Thermocouple (°C) 60000026 60000010 12 °C -270 1300
GRV-ITM-12 all Type R Thermocouple (°C) 60000026 60000011 12 °C -50 1768
GRV-ITM-12 all Type S Thermocouple (°C) 60000026 60000012 12 °C -50 1768
GRV-ITM-12 all Type T Thermocouple (°C) 60000026 60000013 12 °C -270 400
GRV-ITMI-8 all ±1200 mV 60000006 60000002 8 mV -1200 1200
GRV-ITMI-8 all ±600 mV 60000006 60000003 8 mV -600 600
GRV-ITMI-8 all ±300 mV 60000006 60000004 8 mV -300 300
GRV-ITMI-8 all ±150 mV 60000006 60000005 8 mV -150 150
GRV-ITMI-8 all ±75 mV 60000006 60000006 8 mV -75 75
GRV-ITMI-8 all ±50 mV 60000006 60000007 8 mV -50 50
GRV-ITMI-8 all ±25 mV 60000006 60000008 8 mV -25 25
GRV-ITMI-8 all Type B Thermocouple (°C) 60000006 60000009 8 °C 0 1820
GRV-ITMI-8 all Type E Thermocouple (°C) 60000006 6000000C 8 °C -270 1000
GRV-ITMI-8 all Type J Thermocouple (°C) 60000006 6000000E 8 °C -210 1200
GRV-ITMI-8 all Type K Thermocouple (°C) 60000006 6000000F 8 °C -270 1372
GRV-ITMI-8 all Type N Thermocouple (°C) 60000006 60000010 8 °C -270 1300
GRV-ITMI-8 all Type R Thermocouple (°C) 60000006 60000011 8 °C -50 1768
GRV-ITMI-8 all Type S Thermocouple (°C) 60000006 60000012 8 °C -50 1768
GRV-ITMI-8 all Type T Thermocouple (°C) 60000006 60000013 8 °C -270 400
GRV-ITR-12 all Thermistor: 2252 Curve (°C) 60000021 6000003F 12 °C -40 150
GRV-ITR-12 all Thermistor: 3K Curve (°C) 60000021 60000040 12 °C -40 150
Description
Applies To
(hex)
Module ID
(hex)
Channel ID
Default
Channels
per module
Units
Low Scale
Full Scale
18
OptoMMP Protocol Guide
CHAPTER 2: OVERVIEW OF PROGRAMMING
Part number
GRV-ITR-12 all Thermistor: 10K Type 2 Curve (°C) 60000021 60000041 12 °C -40 150
GRV-ITR-12 all Thermistor: 10K Type 3 Curve (°C) 60000021 60000042 12 °C -40 150
GRV-ITR-12 all Thermistor: Custom Curve (°C) 60000021 60000043 12 °C -40 150
GRV-ITR-12 all 0–400k Ohms (autorange) 60000021 60000032 12 Ohms 0 400000
GRV-ITR-12 all 0–400k Ohms 60000021 60000033 12 Ohms 0 400000
GRV-ITR-12 all 0–200k Ohms 60000021 60000034 12 Ohms 0 200000
GRV-ITR-12 all 0–100k Ohms 60000021 60000035 12 Ohms 0 100000
GRV-ITR-12 all 0–50k Ohms 60000021 60000036 12 Ohms 0 50000
GRV-ITR-12 all 0–40k Ohms 60000021 60000037 12 Ohms 0 40000
GRV-ITR-12 all 0–20k Ohms 60000021 60000038 12 Ohms 0 20000
GRV-ITR-12 all 0–10k Ohms 60000021 60000039 12 Ohms 0 10000
GRV-ITR-12 all 0–5k Ohms 60000021 6000003A 12 Ohms 0 5000
GRV-ITR-12 all 0–4k Ohms 60000021 6000003B 12 Ohms 0 4000
GRV-ITR-12 all 0–2k Ohms 60000021 6000003C 12 Ohms 0 2000
GRV-ITR-12 all 0–1k Ohms 60000021 6000003D 12 Ohms 0 1000
GRV-ITR-12 all 0–500 Ohms 60000021 6000003E 12 Ohms 0 500
GRV-IV-24 all ±160 V 60000002 60000024 24 V -160 160
GRV-IV-24 all ±80 V 60000002 6000000D 24 V -80 80
GRV-IV-24 all ±40 V 60000002 6000000B 24 V -40 40
GRV-IV-24 all ±20 V 60000002 6000000A 24 V -20 20
GRV-IV-24 all ±10 V 60000002 60000017 24 V -10 10
GRV-IV-24 all ±5 V 60000002 60000019 24 V -5 5
GRV-IV-24 all ±2.5 V 60000002 60000025 24 V -2.5 2.5
GRV-IV-24 all ±1.25 V 60000002 60000001 24 V -1.25 1.25
GRV-OAC-12 all Digital Output 90000012 90000000 12 N/A N/A N/A
GRV-OACI-12 all Digital Output 90000014 90000000 12 N/A N/A N/A
GRV-OACIS-12 all Simple Digital Output 94000017 94000000 12 N/A N/A N/A
GRV-OACS-12 all Simple Digital Output 9400001C 94000000 12 N/A N/A N/A
GRV-ODCI-12 all Digital Output 90000015 90000000 12 N/A N/A N/A
GRV-ODCIS-12 all Simple Digital Output 94000018 94000000 12 N/A N/A N/A
GRV-ODCSRC-24 all Digital Output 90000013 90000000 24 N/A N/A N/A
GRV-OMRIS-8 all Simple Digital Output 94000019 94000000 8 N/A N/A N/A
GRV-OVMAILP-8 all 0-20 mA A0000004 A000001B 8 mA 0 20
GRV-OVMAILP-8 all 0-24 mA A0000004 A000001C 8 mA 0 24
GRV-OVMAILP-8 all 4-20 mA A0000004 A000001D 8 mA 4 20
GRV-OVMAILP-8 all 0-10 V A0000004 A0000020 8 V 0 10
GRV-OVMAILP-8 all 0-5 V A0000004 A0000022 8 V 0 5
GRV-OVMAILP-8 all Analog Hi-Z A0000004 A0000023 8 None 0 0
GRV-OVMALC-8 all 0-20 mA A0000003 A000001B 8 mA 0 20
Description
Applies To
(hex)
Module ID
(hex)
Channel ID
Default
Channels
per module
Units
Low Scale
Full Scale
OptoMMP Protocol Guide
19
CONFIGURING I/O CHANNELS
Part number
GRV-OVMALC-8 all 0-24 mA A0000003 A000001C 8 mA 0 24
GRV-OVMALC-8 all 4-20 mA A0000003 A000001D 8 mA 4 20
GRV-OVMALC-8 all ±10 V A0000003 A000001F 8 V -10 10
GRV-OVMALC-8 all 0-10 V A0000003 A0000020 8 V 0 10
GRV-OVMALC-8 all ±5 V A0000003 A0000021 8 V -5 5
GRV-OVMALC-8 all 0-5 V A0000003 A0000022 8 V 0 5
GRV-OVMALC-8 all Analog Hi-Z A0000003 A0000023 8 None 0 0
Description
Applies To
(hex)
Module ID
(hex)
Channel ID
Default
Channels
per module
Units
Low Scale

Configuring I/O Channels for groov RIO Units

You can configure groov RIO units in three ways:
PAC Control—If you are using PAC Control to create a strategy for your groov EPIC or SNAP PAC controller, configure channels there while you are programming your strategy.
groov Manage—If your control program is not a PAC Control strategy, or if you are not using a control program, configure channels in groov Manage using a web browser on a computer or mobile device. Configurations are automatically saved to flash memory.
OptoMMP—If OptoMMP is the ONLY communication to the groov RIO unit, then configure I/O channels using the configuration values in the following table.
All channels on a groov RIO unit use module ID 0xF0000022.
Full Scale
To configure each channel, use the following channel IDs. Make sure the channel you’re configuring can use the signal you want.
IMPORTANT: Thermocouple inputs and discrete sinking outputs cannot be mixed on channels 0–3. To achieve the best thermocouple accuracy when also using current outputs or discrete outputs, always configure thermocouples on the lowest channel numbers and outputs on the highest channel numbers.
Channels Function Signal
0–1
2–7
0–1
2–7
0–7 Discrete DC output, sinking 5–30 VDC 9000007B VDC 5 30 30
0–7 Analog voltage input 0-10 VDC 60000018 VDC 0 10 11.1
0–7 ICTD (with ICTD probe) -40 to 100 °C 60000031 Degrees C -40 100 100
0–3 Analog current input 0–20 mA 60000015 mA 0 20 22.2
0–3 Thermocouple input Type B 60000009 mV -75 75 -78 to +78
0–3 Thermocouple input Type E 6000000C mV -75 75 -78 to +78
0–3 Thermocouple input Type J 6000000E mV -75 75 -78 to +78
Discrete DC input with features (see page 169)
Simple discrete DC input (on/off state only)
Discrete switch input with features (see page 169)
Simple discrete switch input (on/off state only)
5–30 VDC 50000079 VDC 5 30 30
5–30 VDC 5400007A VDC 5 30 30
Switch input, powered 50000068 n/a n/a n/a n/a
Switch input, powered 54000085 n/a n/a n/a n/a
Channel ID
(hex)
Default units
Low
Scale
Full
Scale
Overrange
20
OptoMMP Protocol Guide
CHAPTER 2: OVERVIEW OF PROGRAMMING
Channels Function Signal
0–3 Thermocouple input Type K 6000000F mV -75 75 -78 to +78
0–3 Thermocouple input Type N 60000010 mV -75 75 -78 to +78
0–3 Thermocouple input Type R 60000011 mV -75 75 -78 to +78
0–3 Thermocouple input Type S 60000012 mV -75 75 -78 to +78
0–3 Thermocouple input Type T 60000013 mV -75 75 -78 to +78
0–3 Analog millivolt input -150 to +150 mV 60000005 mV -150 150 166.5
0–3 Analog millivolt input -75 to +75 mV 60000006 mV -75 75 83.25
0–3 Analog millivolt input -25 to +25 mV 60000008 mV -25 25 27.75
4–7 Analog voltage output 0 to 10 V A0000020 V 0 10 10
4–7 Analog current output 0 to 20 mA A000001B mA 0 20 20
8–9 Mechanical relayoutput Form C 94000078 n/a n/a n/a n/a
Channel ID
(hex)
Default units
Low
Scale
Full
Scale
Overrange

Configuring I/O Channels for SNAP Analog/Digital I/O Units

All SNAP analog/digital I/O units recognize analog, serial, and high-density digital modules on the rack. Positions on the rack that don’t contain modules the I/O unit recognizes are assumed to contain digital input modules. If the individual channel types on the module differ from the default type for that module, you must configure the channels.
You can configure SNAP I/O units in three ways:
PAC Control—If you are using PAC Control, configure channels there while you are programming your
strategy.
PAC Manager—If you are not using PAC Control, configure channels in PAC Manager and save to flash
memory.
CAUTION: Store to flash only once! Storing to flash memory in a loop can wear out the memory.
OptoMMP —If OptoMMP is the ONLY communication to the SNAP I/O unit, then use the values in the
SNAP I/O module types and channel types tables (starting on page 21) to configure I/O channels. For SNAP digital-only I/O units, G4EB2s, and E1 and E2 brain boards, see page 29.
About E1 and E2 brain boards: You can configure E1s and E2s like any other I/O unit if you have E1/E2 firmware R1.2a (and higher) and PAC Project 9.5000 (and higher). Also, if a SNAP PAC controller communicates with the E1 or E2, the controller must have PAC firmware R9.5a (or higher) to use this simplified configuration method. If you are not using these firmware and software versions (or if you prefer to use the previous method to reconfigure existing E1s or E2s), see I/O Configuration for E1 an E2 Brain Boards (form 1576).
SNAP I/O Module Types and Channel Types
The following tables help you configure channels by showing the part number, the channel type in decimal and in hex, and the module type in hex (module type is read-only). For analog modules, tables also include the number of channels per module, the unit of measurement for the module, and its range. (Some older I/O units cannot use all of these modules; see the module’s data sheet for compatibility.)
Default channel types are shaded. If a channel differs from the default, use the value in the Channel Type (Hex) column to configure the channel. For example, if the module in position 0 on the rack is a SNAP-AIV with a -5 to +5 V input, it is not the default for that module. Therefore, you must configure its channels.
As another example, suppose the module in position 1 on the rack is a 4-channel digital output module. Since the default is a 4-channel digital input module, you must configure its channels.
OptoMMP Protocol Guide
21
CONFIGURING I/O CHANNELS
In This Section
SNAP Digital Inputs and Outputs............................................................... Below
SNAP Analog Inputs..................................................................................... page 22
SNAP Analog Outputs ................................................................................. page 28
Digital-only SNAP and G4EB2 I/O units............................................... page 29
E1 and E2 brain boards. ..............................................................................page 29
SNAP Digital Inputs and Outputs
Module & Description
4-channel digital input module* 256 100 00
4-channel digital output module* 384 180 00
* High-density digital modules are automatically recognized; channels do not require configuration.
Channel Type
(Dec)
Channel Type
(Hex)
Module Type (Hex)
SNAP Analog Inputs
Use this data for configuring channel types (see page 21) and features (see page 31). If a module has multiple listings, the default channel type is shaded.
Part Number &
Description
Measurement
Channel Type (Dec)
SNAP-AIARMS: 0–10 A AC/DC 71 47 71 2 A 0.0 0.0 10.0 11.0
SNAP-AIARMS-i: 0–10 A AC/DC 71 47 29 2 A 0.0 0.0 10.0 11.0
SNAP-AIARMS-i-FM: 0–10 A AC/DC 71 47 29 2 A 0.0 0.0 10.0 11.0
SNAP-AICTD: ICTD Temp. Probe 4 4 04 2 Degrees C -273.0 -40.0 150.0 150.0
SNAP-AICTD-4: ICTD Temp. Probe 4 4 42 4 Degrees C -273.0 -40.0 150.0 150.0
SNAP-AICTD-8: ICTD Temp. Probe 4 4 4C 8 Degrees C -273.0 -40.0 150.0 150.0
SNAP-AILC: -2 to +2 mV/V Fast 34 22 0B 2 Percent -110.0 -100.0 100.0 110.0
SNAP-AILC: -2 to +2 mV/V Slow 36 24 0B 2 Percent -110.0 -100.0 100.0 110.0
SNAP-AILC: -3 to +3 mV/V Fast 35 23 0B 2 Percent -110.0 -100.0 100.0 110.0
SNAP-AILC: -3 to +3 mV/V Slow 37 25 0B 2 Percent -110.0 -100.0 100.0 110.0
SNAP-AILC: Filter of 1st channel 0 0 0B 2 Percent -110.0 -100.0 100.0 110.0
SNAP-AILC-2: -3 to +3 mV/V Fast 35 23 0C 2 Percent -110.0 -100.0 100.0 110.0
SNAP-AILC-2: -3 to +3 mV/V Slow 37 25 0C 2 Percent -110.0 -100.0 100.0 110.0
SNAP-AILC-2: -4 to +4 mV/V Fast 34 22 0C 2 Percent -110.0 -100.0 100.0 110.0
SNAP-AILC-2: -4 to +4 mV/V Slow 36 24 0C 2 Percent -110.0 -100.0 100.0 110.0
SNAP-AILC-2: Filter of 1st channel 0 0 0C 2 Percent -110.0 -100.0 100.0 110.0
SNAP-AIMA: -20 to +20 mA 64 40 64 2 mA -22.0 -20.0 20.0 22.0
SNAP-AIMA: 0 to +20 mA 2 2 64 2 mA -22.0 0.0 20.0 22.0
SNAP-AIMA: 4 to +20 mA 3 3 64 2 mA -22.0 4.0 20.0 22.0
SNAP-AIMA2-i: -1 to +1 mA 85 55 27 2 mA -1.1 -1.0 1.0 1.1
Module Type (Hex)
Channel Type (Hex)
Default Unit of
Channels per Module
Underrange
Low Scale
Full Scale
Overrange
22
OptoMMP Protocol Guide
Loading...
+ 156 hidden pages