[Feedback] Omron FINS Driver

Starting in the nightly build available 1/10/2020, code has been added to support Omron FINS devices. This driver does support both UDP and TCP transport protocols. This is a feature that is still being actively developed and there are a few items we are prioritizing, namely a UI to add OPC Nodes to Ignition’s OPC UA server (similar to the Omron NJ functionality).

Quick Start

To Connect Ignition to an Omron FINS Device via TCP

  1. Go to the Configure section of the Gateway webpage.
  2. Scroll down and select OPC-UA Server > Devices .
  3. On the Devices page, find the blue arrow and click on Create new Device.
  4. On the Add Device Step 1: Choose Type page, select Omron FINS/TCP, and click Next.
  5. On the New Device page, leave all the default values and type in the following fields:
    • Name: FINS TCP
    • Hostname: type the IP address, for example 74.125.224.72
  6. Click Create New Device.

The Devices page is displayed showing the FINS TCP device is successfully created and added to Ignition.

To Connect Ignition to an Omron FINS Device via UDP

  1. Go to the Configure section of the Gateway webpage.
  2. Scroll down and select OPC-UA Server > Devices .
  3. On the Devices page, find the blue arrow and click on Create new Device.
  4. On the Add Device Step 1: Choose Type page, select Omron FINS/UDP, and click Next.
  5. On the New Device page, leave all the default values and type in the following fields:
    • Name: FINS UDP
    • Bind Address: type the IP address of your Gateway, for example 74.125.225.10
    • Remote Address: type the IP address of your Omron FINS device, for example 74.125.224.72
    • Under FINS Settings:
      • FINS Source Node: The last octet of your IP address, for example 10 using the bind address above
      • FINS Destination Network: The address number of your FINS device typically configured in the routing table for your device. The valid range is 0-128
      • FINS Destination Node: The node number of your FINS device. This is typically the last octet of the IP address of the device, for example 72 in the example above
      • Fins Destination Unit: The unit number of your FINS device.
  6. Click Create New Device.

The Devices page is displayed showing the FINS UDP device is successfully created and added to Ignition.

Device Settings

General
Name Device name.
Description Device Description.
Enabled Default is set to true.
Connectivity
Hostname The hostname or IP address of the device. TCP Only
Port The port your Omron Device is listening on. The default is 9600 TCP Only
Local Address Address of network adapter to connect from. TCP Only
Bind Address The hostname or IP address of the Gateway. UDP Only
Bind Port The port you wish to create a UDP connection on for the Gateway. The default is 9600 UDP Only
Remote Address The hostname or IP address of the Device. UDP Only
Remote Port The port your Omron Device is listening on. The default is 9600 UDP Only
Timeout The request timeout, specified in milliseconds. The default is 2,000. UDP & TCP
FINS Settings
FINS Source Network The address number of the source network (the Ignition Gateway) Valid value is an integer between 0 and 127. The default setting is 0.
FINS Source Node The number of the source node (the Ignition Gateway), typically the last octet of the IP address. Valid value in an integer between 0 and 254. The default setting is 0.
FINS Source Unit The unit number of the source device (the Ignition Gateway) Valid value is an integer between 0 and 255. The default setting is 0
FINS Destination Network The address number of the destination network (the FINS Device) Valid value is an integer between 0 and 127. The default setting is 0.
FINS Destination Node The number of the destination node (the FINS Device), typically the last octet of the IP address and set via dials on the front of the device. Valid value in an integer between 0 and 254. The default setting is 0.
Fins Destination Unit The unit number of the destination device (the FINS Device) Valid value is an integer between 0 and 255. The default setting is 0
Request Optimization
Concurrent Requests The number of requests that Ignition will try to send to the device at the same time. Increasing this number can sometimes help with your request throughput, however increasing this too much can overwhelm the device and hurt communications with the device.
Max Request Size The Maximum size of a request in bytes.
Max Gap Size The maximum address “gap” to span when optimizing requests to contiguous address locations.
Write Priority Ratio The number of write requests to execute for every read request, when an abundance of both are queued for execution.

Addressing

Currently all tags must be addressed manually via an Ignition OPC tag in the Ignition Designer. OPC items can be created, but not within the Ignition UI. See Ignition OPC UA Item Configuration header for more information.

Data Areas

Area Ignition Code Omron Symbol Code Native Size
CIO Area CIO Int16/UInt16
Work Area WR or W W Int16/UInt16
Holding Bit Area HR or H H Int16/UInt16
Auxiliary Bit Area AR or A A Int16/UInt16
Timer Area TIM or T T Int16/UInt16 or Bool
Counter Area CNT or C C Int16/UInt16 or Bool
Index Register Area IR IR Int32/UInt32
Data Register Area DR DR Int16/UInt16
DM area DM or D D Int16/UInt16
EM area EM or Exx E Int16/UInt16

EM Area: use EM for the current bank, or Exx for bank xx, where xx is 2 hex digits. Valid banks are E00 through E18 (25 total).

Data Types
Bit Bool Int16
Int32 Int64 UInt16
UInt32 Float Double
String BCD16 BCD32

Data Type Modifiers

Modifier Order
@BE Big Endian Byte Order (default when not specified)
@LE Little Endian Byte Order
@HL High-Low Word Order
@LH Low-High Word Order (default when not specified)

Syntax

OPC Item Path resembling:

ns=1;s=Area[<DataType>]Offset[.Bit]

items in [] are optional

Examples:

Ignition OPC Item Path (OPC UA NodeId) FINS Request
CIO0 An Int16 at offset 0 in CIO area
CIO<Int32>1 An Int32 at offset 1 in CIO area
CIO<Int64>3.0 Bit 0 of an Int64 at offset 3 in CIO area
CIO<Int64@HL>3 An Int64 at offset 3 in CIO area in High-Low word order
TIM0 Present Value (16-bit) of Timer at offset 0
TIM<Bool>0 Completion Status (Bool) of Timer at offset 0
CNT0 Present Value (16-bit) of Counter at offset 0
CNT<Bool>0 Completion Status (Bool) of Counter at offset 0
DR0 An Int32 at offset 0 in DR area (32-bit by default)
DR<Int64>0 An Int64 at offset in DR area
CIO<Int16[3]>0 An Int16 array of size 3 at offset 0 in CIO area
CIO<Int16[3]>0[1] Element 1 of an Int16 array of size 3 at offset 0 in CIO area
CIO<String10>0 String of up to length 10 (string length in bytes) at offset 0 in CIO area
E001000 An Int16 from EM bank 0 at offset 1000.
E00<Int16>1000 Also an Int16 from EM bank 0 at offset 1000, but with the an explicit DataType to make the address look less confusing.

Ignition OPC UA Server Node Configuration

As mentioned before, a UI for creating an OPC Nodes in Ignition’s OPC UA server is not currently available. The current method to do this is via a CSV file on the Ignition Gateway itself with the following settings:

  • File Name: tags.csv
  • File Location: $ignitionHome/data/opcua/devices/$deviceName
  • File Format: Comma separated value file with the following columns:
    • Browse Path
    • Address
    • Description

Example file:

Tag1,           CIO0, A very nice tag indeed.
Foo/Tag2,       CIO1, "Not as nice as Tag1, but still okay."
Foo/Bar/Tag3,   CIO2, Total rubbish.

Use quotes on the description when it contains a comma (or whenever you like).

When adding or making changes to this file, a restart of the device is necessary for the changes to be picked up. This is done by editing the device and clicking Save

7 Likes

@JordanCClark @GreggCava @GreggCavazos @martinel3746 @Yfactor @harigobu.gb @xasga

1 Like

Please don’t use the word “tag” for OPC items. That just makes a confusing mess for all but the most experienced among us.

Thanks for the update @ggross and @Kevin.Herron.
I look forward to replacing our Kepware Omron license with the Ignition FINS driver.

For the data Areas, can we read Ex registers? Eg. E1_1000 or E01:1000 (as defined in kepware)??

@GreggCavazos, Accessing the expansion data memory of a FINS device is not currently possible with the driver. Is this something that would prevent you from being able to use this driver?

Garth

Are there plans to support this driver in Ignition 7.9 as well?

Hi Garth,

For me, expansion data memory is something we use pretty extensively here. I can work around it for now, but it would be great to be able to access it directly. :slight_smile:

Hello Garth,

90% of the data interfaces we use with CJs comes from E1 registers. That being said, yest that would prevent us from using this driver in almost all our applications.

No, the driver won’t be backported to 7.9.

1 Like

I’ll look into supporting the expansion memory areas. It may not happen before the 8.0.8 release but it should be soon if not.

2 Likes

Will the Omron FINS Driver be available for 7.9?

From two posts above. :wink:

1 Like

Support for the EM areas will be part of tonight’s build.

The byte order modifiers (@LE and @BE) were also fixed, and can now be used in combination with the word order modifiers.

3 Likes

Thank you!!

same. We use them more often than not.

There’s been a problem publishing nightlies and the last upload was on Jan 10. A new build that contains the previously mentioned changes should be available in the next hour or so.

Is there a thread for issues with the FINS driver, I am having an intermittent problem which I would like help with. Thanks …

Go ahead and start a new one.