Help contents
Page 1 of 9
Omron EtherNet/IP driver manual
CONTENTS
Overview
Overview of the Omron EtherNet/IP driver
Hardware requirements
Supported devices, supported protocol, driver limits, description of the performed tests
Modem Setup for RAS Connections
How to configure a modem for using this driver via a RAS connection.
Addressing
How to address the device data
Settings
How to set driver parameters to establish communication
Import device tags
How to import tags list directly from the device
Errors description
Description of the driver error messages and possible causes
Overview
EtherNet/IP is an industrial networking standard that takes advantage of commercial off-the-shelf Ethernet communication chips and physical media. IP stands for 'industrial
protocol' and it is what distinguishes this network. Unlike many options in the industrial Ethernet crowd, EtherNet/IP uses an open protocol at the application layer. Moreover,
more than one vendor or organization backs EtherNet/IP. It is the only standard supported by three networking organizations: ControlNet International (CI), the Industrial
Ethernet Association (IEA) and the Open DeviceNet Vendor Association (ODVA).
z See the web site http://www.ethernet-ip.org for more information
This driver has been expressly thought to communicate with Omron NJ PLC series over the Ethernet network. This driver uses symbolic tag addressing (tags names) with
Ethernet/IP native commands.
Requirements
Supported devices
The EtherNet/IP protocol is supported by many independent vendors, anyway this driver has been tested for the Omron NJ PLC series.
Supported Protocol
EtherNet/IP protocol.
The driver supports the symbolic addressing mode only and it uses Native CIP messages.
Driver Limits
The maximum number of bytes that can be exchanged with a single task is 260.
Implementation of the communication test
A basic communication test has been implemented for this driver in order to check whether the cables have been connected correctly and main communication parameters
have been properly set. For further details see Test Cable/Comm on general driver manual.
For this driver, the communication test has been implemented executing a "Register session" followed by a "Forward open", a "Forward close" and finishing with the
"Unregister session".
Communication cable
The cable should be a standard Ethernet cable, used in any LAN network.
Two different versions can be chosen, depending from the type of connection: a "Straight Through" cable, for a Hub connection, or a "Crossover" cable, for a peer-to-peer
connection.
file:///C:/Users/walbia/AppData/Local/Temp/~hh960E.htm
10/11/2020
Help contents
Page 2 of 9
Address description
The driver supports the symbolic addressing mode.
Tag Name addressing description
Tag Name addressing
The driver supports the "Tag Name" (symbolic address) for the Omron NJ Series.
Any tag defined in the PLC memory that needs to be accessed from the HMI system must be published and made visible.
Unsupported data types
The unsupported Data types are:
Date, Date&Time, Lint, Lword, Time, Ulint
Supported data types
Tag Format
The following types of tags can be addressed:
Device Data Type
BOOL
BYTE
WORD
DWORD
SINT
USINT
INT
UINT
DINT
UDINT
REAL
LREAL
STRING
Default Corresponding Supervisor Type
Bit
Byte
Word
DWord
Signed Byte
Byte
Signed Word
Word
Signed DWord
Dword
Float
Double
String
Address Syntax
<Tag Name>
<Tag Name>
<Tag Name>
<Tag Name>
<Tag Name>
<Tag Name>
<Tag Name>
<Tag Name>
<Tag Name>
<Tag Name>
<Tag Name>
<Tag Name>
<Tag Name>:<Length>
file:///C:/Users/walbia/AppData/Local/Temp/~hh960E.htm
Notes
The field <Length> of the address specifies the
maximum length of the string (the number of
characters that the driver will exchange). When
10/11/2020
Help contents
Page 3 of 9
a string is written from the supervisor to the
controller, the driver modifies automatically the
actual length of the string in the PLC.
STRUCTURE
Structure type
<Tag Name>
To address an element of a structure of the PLC, use the following syntax for the field <Tag Name>: <Structure Name>.<Element Name>.
Arrays of the controller can have a maximum of three dimensions.
To address an element of a one dimensional array, use the following syntax for the field <Tag Name>: <Array Name>[<Element Index>]
To address an element of a two dimensional array, use the following syntax for the field <Tag Name>: <Array Name>[<Element Index1>, <Element Index2>]
To address an element of a three dimensional array, use the following syntax for the field <Tag Name>: <Array Name>[<Element Index1>, <Element Index2>, <Element
Index3>]
The maximum size in bytes of a tag that can be exchanged by the driver is 260.Take into account that in a dynamic task on a structure, job is split for
every single structure's member so you can handle a structure tag whose dimension is greater than 260 bytes .
The first character of the name of a tag must be a letter.
The maximum length of the name of a tag is 200
Structures
How to exchange a whole structure
To exchange a structure type, we need to define a Structure Prototype in the project having the same members, meaning names and matching data types (see table above)
of the structure existent on the PLC program.
Now it is possible to define a variable whose data type is the structure template previously defined, and create a dynamic task on this variable.
The task property 'Address Type' must be set equal to 'Tag Name'. The 'Tag Format' property must be equal to 'STRUCTURE'.
When 'Tag Format' is set to 'STRUCTURE' the dynamic task is split into as many task as structure's members.
For example, suppose we have the following structure defined on PLC program:
Structure Name: StructInModule inside ModA
Member
Data Type
Act
DINT
Ctrl
DINT
Def
DINT
Err
BOOL
Max
DINT
Min
DINT
On
BOOL
Set
DINT
Valid
BOOL
Wr
BOOL
In the Supervisor project we define the following Structure prototype:
where the DINT members become Signed DWORD and the BOOL became Bit.
Than we create a variable (the name can be whatever):
Create a dynamic task having the following properties:
file:///C:/Users/walbia/AppData/Local/Temp/~hh960E.htm
10/11/2020
Help contents
Page 4 of 9
How to exchange single members of structure
In the following examples,to understand addressing of a single member, we assume to have created the following structures and tags on the PLC:
Structure Name: STRUCT_A
Member
Data Type
limit4
BOOL
limit7
BOOL
travel
DINT
errors
DINT
wear
REAL
Structure Name: STRUCT_B
Member
Data Type
pilot_on
BOOL
hourlyCount
INT[12]
rate
REAL
Structure Name: STRUCT_C
Member
Data Type
hours_full
BOOL
today
STRUCT_B
sampleTime
TIMER
shipped
COUNTER
Structure Name: STRUCT_D
Member
Data Type
myint
INT
myfloat
REAL
myarray
STRUCT_C[8]
mydint
DINT
Tags
Tag Name
Device Data Type
Address Examples
ArrayOfBOOL_1
BOOL[64]
ArrayOfBOOL_1:2
ArrayOfDINT_1
ArrayOfINT_1
ArrayOfREAL_1
DINT[50]
INT[100]
REAL[50]
ArrayOfDINT_1:50
ArrayOfINT_1:100
ArrayOfREAL_1:50
ArrayOfREAL_1[3]
DINT
INT
REAL
REAL
ArrayOfSINT_1
BOOL_1
DWORD_1
DWORD_2
INT_1
my2Dstruct4
SINT[100]
BOOL
DINT
DINT
INT
STRUCT_D[5,6]
ArrayOfSINT_1:100
BOOL_1
DWORD_1
DWORD_2
INT_1
my2Dstruct4[3,2].myarray[6].today.hourlyCount[3]
my2Dstruct4[3,2].myarray[6].today.hourlyCount[3]:3
my2Dstruct4[4,5].myarray[4].sampleINT
SINT
BOOL
DINT
DINT
INT
INT
INT
INT
file:///C:/Users/walbia/AppData/Local/Temp/~hh960E.htm
Data Type selected in the
driver
Bit
ARRAY
(32
bit
chunks)
Notes
The "Number of Elements"
set to 2, means, actually, to
exchange 64 (32*2) bits
In the first example all the
array is exchanged, while in
the second example only the
fourth element of the array
(indexes start from 0) is
exchanged.
In the first example just one
integer is exchanged, while
in the second examples
three
integers
are
exchanged: hourlyCount[3],
hourlyCount[4], and
hourlyCount[5].
10/11/2020
Help contents
Page 5 of 9
profile
REAL_1
SINT_1
str1Array
STRING_1
INT[2,5,260]
REAL
SINT
STRUCT_A[10]
STRING
profile[1,4,257]
REAL_1
SINT_1
str1Array[9].travel
STRING_1:82
INT
REAL
SINT
DINT
STRING
struct1
struct2
struct3
STRUCT_A
STRUCT_B
STRUCT_C
struct1.wear
struct2.hourlyCount[5]
struct3.today.rate
REAL
INT
REAL
82 is the maximum length of
the string "STRING_1".
Address syntax
Omron EtherNet/IP data addressing includes the following main parameters:
z Address Type ( ATYPE) - the type of addressing, for Omron EtherNet/IP always set to "symbolic"
z Tag format (TEFRM) - must be specified only if address type = Tag Name
z PLC variable symbolic name (ABA) - the symbolic name of the variable in the PLC program
These parameters are set in the dedicated dialog window for static tasks or dynamic tasks.
As an example, let us consider the dynamic addressing of a single tag of the supervision project Real Time database: select the tag in Project Explorer window and choose
'General/Dynamic' property in the supervisor Properties window. Click on the ellipse button on the right and double click on the driver icon.
The resulting address string syntax will be the following:
"[DRV]OmronEIP.Sta=<Station Name>|ABA=<PLC variable symbolic name>|ATYPE=<Address Type>|TEFRM = "Tag Format""
The field "ATYPE" (Address Type) is always set to value 0, meaning "symbolic addressing"
Possible values for the field "TEFRM" (Tag Format) are:
z BOOL (default value = 0, omitted)
z SINT (value = 1)
z USINT (value = 2)
z INT (value = 3)
z UINT (value = 4)
z DINT (value = 5)
z UDINT (value = 6)
z REAL (value = 7)
z LREAL (value = 8)
z STRING (value = 9)
z STRUCTURE (value = 10)
z BYTE (value = 11)
z WORD (value = 12)
z DWORD (value = 13)
Examples
Address
[DRV]OmronEIP.Sta=Default Station|ABA=ArrayOfBOOL_1:2|ATYPE=0|TEFRM=7
[DRV]OmronEIP.Sta=Default Station|ABA=ArrayOfDINT_1:50|ATYPE=0|TEFRM=3
[DRV]OmronEIP.Sta=Default Station|ABA=ArrayOfINT_1:100|ATYPE=0|TEFRM=2
[DRV]OmronEIP.Sta=Default Station|ABA=ArrayOfREAL_1:50|ATYPE=0|TEFRM=4
[DRV]OmronEIP.Sta=Default Station|ABA=ArrayOfREAL_1[6]|ATYPE=0|TEFRM=4
[DRV]OmronEIP.Sta=Default
Station|ABA=ArrayOfSINT_1:100|ATYPE=0|TEFRM=1
[DRV]OmronEIP.Sta=Default Station|ABA=ArrayOfSINT_1[9]|ATYPE=0|TEFRM=1
[DRV]OmronEIP.Sta=Default Station|ABA=BOOL_1|ATYPE=0
[DRV]OmronEIP.Sta=Default Station|ABA=DWORD_1|ATYPE=0|TEFRM=3
[DRV]OmronEIP.Sta=Default
Station|TaskType=2|ABA=DWORD_1|ATYPE=0|TEFRM=3
[DRV]OmronEIP.Sta=Default Station|ABA=INT_1|ATYPE=0|TEFRM=2
[DRV]OmronEIP.Sta=Default Station|ABA=REAL_1|ATYPE=0|TEFRM=4
[DRV]OmronEIP.Sta=Default Station|ABA=SINT_1|ATYPE=0|TEFRM=1
[DRV]OmronEIP.Sta=Default Station|ABA=str1Array[9].travel|ATYPE=0|TEFRM=3
Description
Array of 32 bits (TEFRM=7), 2 elements (:2) = 64 bits exchanged
DINT data (TEFRM=3), 50 elements are exchanged (:50)
INT data (TEFRM=2), 100 elements are exchanged
REAL data (TEFRM=4), 50 elements are exchanged
REAL data (TEFRM=4), only the [6] element is exchanged (zero based)
SINT data (TEFRM=1), 100 elements are exchanged
SINT data (TEFRM=1), only the [9] element is exchanged (zero based)
Bool data (TEFRM is omitted since BOOL is the default)
DINT data (TEFRM=3), one element exchanged
DINT data (TEFRM=3), Exception output task (TaskType=2), one element
exchanged
INT data (TEFRM=2), one element exchanged
REAL data (TEFRM=4), one element exchanged
SINT data (TEFRM=1), one element exchanged
DINT data (TEFRM=3), "travel" member of the STRUCT_A array "str1Array",
element [9]
[DRV]OmronEIP.Sta=Default Station|ABA=STRING_1:82|ATYPE=0|TEFRM=8
STRING data (TEFRM=8), 82 characters being the max length
[DRV]OmronEIP.Sta=Default Station|ABA=struct1.wear|ATYPE=0|TEFRM=4
REAL data (TEFRM=4), "wear" element of the STRUCT_1 structure "struct1"
[DRV]OmronEIP.Sta=Default
Station|ABA=struct2.hourlyCount[5] INT data (TEFRM=2), element [5] of "hourlyCount" INT array, member of the
|ATYPE=0|TEFRM=2
STRUCT_B structure "struct2"
[DRV]OmronEIP.Sta=Default Station|ABA=struct3.today.rate|ATYPE=0|TEFRM=4 REAL data (TEFRM=4), "rate" element of the STRUCT_B structure "today",
member of the STRUCT_C structure "struct3"
[DRV]OmronEIP.Sta=Default
Structure data (TEFRM=9) , the structure is inside the module A called ModA
Station|ABA=Program:ModA.StructInModule|ATYPE=0|TEFRM=9
Access to strings
file:///C:/Users/walbia/AppData/Local/Temp/~hh960E.htm
10/11/2020
Help contents
Page 6 of 9
The access to Strings data is normally supported both importing Strings data and defining them manually.
When importing data, no additional steps are requested except that normal import procedure as described in the dedicated chapter.
When manually defining the tag with String data format, you only need the following steps:
z Create a new variable
z Assign the String type to the General\Type property
z Assign to the General\Dynamic property the name of the variable as it has been defined in the PLC memory followed by a semicolon ":" and the length of the string
ion bytes.
Setting Dialogs
To use a driver in a project, you first have to add the driver to the drivers' list in Real Time Database resource, then set up all parameters for communication.
To add a driver to the drivers' list, open the Project Explorer window of the Supervisor, select the Real Time DB resource and right click on the "List Comm Drivers" label,
then select "Add New Comm Driver" command. Choose one driver from the list of available drivers.
Once the driver has been added, you have to configure communication parameters. Right click on the driver name in project Explorer tree, then select "Comm Driver
Settings" command. A dialog window will appear, including four tabs:
General
General communication parameters, such as polling and waiting times, tags aggregations parameters and debug utilities can be set here
Stations
Stations are defined for each device to communicate with, in order to set specific device parameters such as IP address, port, time-outs.
Tasks
In a task you set a link between a group of supervisor's tags and a memory area of the device, defining access method, data management and so on.
Parameters to set here only refers to static tasks.
About
You can have here info about driver's dll name, version, operating system.
General properties
There are no specific general properties for this driver. Please refer to generic driver general properties:
General
General properties common to all the drivers
Debug
Properties concerning the debug of the driver
Stations properties
The station properties of the Omron EtherNet/IP driver are subdivided in the following groups of properties.
Omron EtherNetIP station settings
Station properties specific for this driver
General
Station properties common to all the drivers
TCP/IP Settings
Station properties concerning the TCP/IP protocol
RAS Settings
Station properties concerning the RAS connection
Task properties
A task defines the link between a group of supervisor's tags and the corresponding memory area of the device, also specifying the methods to access and manage data.
The Supervisor offers you the possibility to set the driver's communication using two different task concepts: the 'static' task (usually defined simply as 'task') and the 'dynamic'
task.
Dynamic tasks are automatically created by the driver at project startup, based on the links to device's addresses set in the 'Dynamic Address' properties of each single tag. The
file:///C:/Users/walbia/AppData/Local/Temp/~hh960E.htm
10/11/2020
Help contents
Page 7 of 9
driver itself will manage tags grouping and performances optimization.
Static task are defined by the designer who has the responsibility to define grouping and communication parameters.
Please refer to general driver guide for any further detail about static tasks or dynamic tasks.
Please note that only one bit at a time is written for a single task, so you can not write a number of bits belonging to the same task (either static or
dynamic) at a time, for example using supervisor IL logic, a script or a multiple bits output task with conditional variable
The task properties of the driver Omron EtherNetIP are subdivided in the following groups of properties:
Omron EtherNet/IP task properties (Static tasks)
Specific properties of the driver for static tasks
Omron EtherNet/IP task properties (Dynamic tasks)
Specific properties of the driver for dynamic tasks
Static task creation
How to create a static task for the driver
General static task properties
Static task properties common to all the drivers
General dynamic task properties
Dynamic task properties common to all the drivers
About window
The About window summarizes useful information about driver file name, version and operating system. These data should be supplied to technical support service in order
to get help.
Always check whether the Supervisor Driver file is the latest available, otherwise it would be in your best interests to update the file (.DLL) by downloading it
from the local dealer support web site according to the modalities provided.
Comment
Reports the base library build version, that is the version number of a class of functions, common to more drivers, providing the core of driver capability. This info can be
useful, together with product and file version, to check for available major updates.
File version
Reports the file version in four level of importance format (X,X,X,X)
Internal name
Reports the dll file name of the driver
Original file name
Reports the dll file name of the driver
Product version
Reports the product version in four level of importance format (X,X,X,X)
OS name
Specifies the operating system this driver has been built for.
Direct tags import from Omron Sysman Studio
This driver supports the direct tags import from Omron Sysmac Studio export file.
Import from ".TXT" files
The requirement is a valid "*.TXT" file, that can be easily produced using the "Export" function of the Omron Sysmac Studio programming environment.
When configuring tags in Sysmac Studio pay attention to assign the proper "Network publish" property according to the needs.
file:///C:/Users/walbia/AppData/Local/Temp/~hh960E.htm
10/11/2020
Help contents
Page 8 of 9
The "Network publish" property of a tag can be assigned in between four different values:
z Do not publish = the variable can not be reached from the HMI
z Publish Only = the variable can be reached with read/write access
z Input = the variable can be reached but in read only mode
z Output = the variable can be reached but in write only mode
To export the tags from Sysmanc Studio, open the "Global variables" panel, select the variables you need to export and simply go to Toosa\Export Global Variables\CXDesigner as shown in the following figure.
This will copy to the clipboard the variables table.
Create now a new text file, open it, paste the clipboard content and save the file.
The format obtained from the exporting is the following:
HOST NAME DATATYPE ADDRESS COMMENT TAGLINK RW POU
The file is TAB separated.
NAME is the tag name in the PLC memory
DATATYPE is the format of the data (Bool, INT, REAL, ...)
ADDRESS is ignored
COMMENT is the comment assigned to the tag in the PLC program
TAGLINK must be TRUE
RW is used to establish if the tag is read only or read/write; in case it is R, the task is read only, if it is W the task is write only, if RW the task is input/output
POU is ignored
For any other generic information about the Import feature of Drivers, please refers to "Drivers References: Import from PLC".
Errors description
file:///C:/Users/walbia/AppData/Local/Temp/~hh960E.htm
10/11/2020
Help contents
Page 9 of 9
When a driver error occurs, one of the following messages can be generated. Errors messages are listed in alphabetical order, specifying a possible cause and suggesting
possible solutions.
Generic driver errors:
Design errors
Address validation errors
Hardware errors
Communication errors
Communication messages
RAS errors
file:///C:/Users/walbia/AppData/Local/Temp/~hh960E.htm
10/11/2020