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.
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:
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 typePart 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 textIndicates support by this hardware
PR1groov EPIC PR1 processor
RIOgroov RIO modules
PAC-RSNAP PAC R-series controllers
PAC-SSNAP PAC S-series controllers
EBSNAP PAC EB brains
SBSNAP PAC SB brains
UIOSNAP Ultimate I/O
EIOSNAP Ethernet I/O
SIOSNAP Simple I/O
LCESNAP-LCE controllers*
E1E1 brain boards
E2E2 brain boards
G4EB2G4EB2 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 informationSee this guideForm #
Installing and using groov EPIC processors,
groov modules, and groov Manage software
Installing and using groov RIO modulesgroov RIO User’s Guide2324
Installing and using a SNAP PAC R-series controller SNAP PAC R-Series Controller User’s Guide1595
Installing and using a SNAP PAC S-series controller SNAP PAC S-Series Controller User’s Guide1592
Installing and using a SNAP PAC EB or SB brainSNAP PAC Brains User’s Guide1690
Installing and using a SNAP Ultimate, SNAP Ethernet, or SNAP Simple I/O unit
Installing and using a SNAP-LCE controller SNAP-LCE User’s Guide1475
Installing and using an E1 or E2 brain boardEI and E2 User’s Guide1563
(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/TCPModbus/TCP Protocol Guide1678
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 Guide2267
SNAP Ethernet-Based I/O Units User’s Guide1460
PAC Manager User’s Guide, Legacy Edition1714
PAC Control User’s Guide1700
PAC Control Command Reference1701
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 Guide1770
Optomux Protocol Guide1572
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
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.
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.
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
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:
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: 230
Module position 5, analog,
8 channels:
Ch:76543210
Module position 2, discrete,
12 channels:
Ch: 110
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
PinsChannel
1–30
4–61
7–92
10–123
13–144
15–165
17–186
19–207
21–-238
24–269
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
:310
Module position 8, analog:
Channels
Module position 12, analog:
Channels
Module position 14, serial:
Ports: BA
76543210
:
:10
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
:310
Module position 14, serial:
Ports: BA
Module position 8, analog:
Channels: 3210
Module position 12, analog:
Channels:10
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 positionModule numberChannel numberStarting 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 positionModule numberChannel numberStarting 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.
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-4allRS2320C00001E08000026 4 N/A N/A N/A
GRV-CSERI-4allRS485, 2-Wire, no termination, no bias0C00001E08000027 4 N/A N/A N/A
GRV-CSERI-4allRS485, 2-Wire, termination, no bias0C00001E08000028 4 N/A N/A N/A
GRV-CSERI-4allRS485, 2-Wire, no termination, bias0C00001E08000029 4 N/A N/A N/A
•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.
ChannelsFunctionSignal
0–1
2–7
0–1
2–7
0–7Discrete DC output, sinking5–30 VDC9000007BVDC53030
0–7Analog voltage input0-10 VDC60000018VDC01011.1
0–7ICTD (with ICTD probe)-40 to 100 °C60000031Degrees C-40100100
0–3Analog current input0–20 mA60000015mA02022.2
0–3Thermocouple inputType B60000009mV-7575-78 to +78
0–3Thermocouple input Type E6000000CmV-7575-78 to +78
0–3Thermocouple input Type J6000000EmV-7575-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 VDC50000079VDC53030
5–30 VDC5400007AVDC53030
Switch input, powered50000068n/an/an/an/a
Switch input, powered54000085n/an/an/an/a
Channel ID
(hex)
Default units
Low
Scale
Full
Scale
Overrange
20
OptoMMP Protocol Guide
CHAPTER 2: OVERVIEW OF PROGRAMMING
ChannelsFunctionSignal
0–3Thermocouple input Type K6000000FmV-7575-78 to +78
0–3Thermocouple input Type N60000010mV-7575-78 to +78
0–3Thermocouple input Type R60000011mV-7575-78 to +78
0–3Thermocouple inputType S60000012mV-7575-78 to +78
0–3Thermocouple inputType T60000013mV-7575-78 to +78
0–3Analog millivolt input-150 to +150 mV60000005mV-150150166.5
0–3Analog millivolt input-75 to +75 mV60000006mV-757583.25
0–3Analog millivolt input-25 to +25 mV60000008mV-252527.75
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* 25610000
4-channel digital output module* 38418000
* 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/DC7147 71 2 A 0.0 0.0 10.0 11.0
SNAP-AIARMS-i: 0–10 A AC/DC7147 29 2 A 0.0 0.0 10.0 11.0
SNAP-AIARMS-i-FM: 0–10 A AC/DC7147 29 2 A 0.0 0.0 10.0 11.0