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