Jump to content

OMRON PLC communication via Ethernet IP

Recommended Posts

 I'm currently communicating with some Rockwell (allen Bradley)PLCs via ethernet IP using an old ethernet IP toolkit.
Now I would like to communicate with an OMRON PLC but the toolkit have some problem with it ( I suppose it's due to a specific DLL used to communicate).
Does anyone of you know how to communicate with an Omron PLC via Ethernet IP? (no OPC or Modbus)
I found ther is an NI official toolkit for ethernet IP but I can't find an evaluation version to know if it allow communication or not.
Thank you so much.


Edited by Gepponline
Link to comment
  • Gepponline changed the title to OMRON PLC communication via Ethernet IP

This project may be interesting. It talks directly the Omron proprietary FINS protocol: https://github.com/jmor2000/LV-OMRON-FINS

No OPC, no special Ethernet/IP function block or whatever needed on the Omron PLC. While the Omron FINS protocol is proprietary it is actually openly documented by Omron: https://www.myomron.com/downloads/1.Manuals/Networks/W227E12_FINS_Commands_Reference_Manual.pdf

  • Like 1
Link to comment
29 minutes ago, Gepponline said:

Ok, Iv'e opened it and the communication seems to be ok, but it's not clear to me how to get values.
I know variable names and data type.
But in the examples there are no use of variable or tage name or something similar...

You need to translate them. There may be a service in the PLC that lets you translate names to addresses but I have no experience with Omron PLCs. For Beckhoff PLCs it is possible to retrieve a list of variables that enumerate all variables with their name and list the actual register address where they are stored.

Lacking that you need to refer to the W227E12 FINS document and locate your type of PLC in there. There is a Memory Area Designation for each model series that tells you how the CIO, TR, G, A, AR, CNT etc registers map to memory addresses. And then from your ladder logic you have to determine what specific register address a variable may have, and then translate that to a linear memory address and then use the FINS "MEMORY_AREA_READ" and "FINS_MEMORY_AREA_WRITE" commands to get that information.

The library on the github site is a bit strange as it packs all the TCP/IP handling into a LV 2 style global. That makes the whole a bit complicated to use and won't allow for instance two parallel connections to two different PLCs. It would have been a lot better to actually create LabVIEW classes that keep the connection related information in the class wire.

That would allow to implement a layered approach where you have a basic class that implements the actual FINS protocol (pretty much what this library is) and also provides empty overwrite templates for actually writing and reading to registers by their type and offset and then implement for each PLC type a small child class that translates the register type into an actual linear memory address for that PLC type.

Edited by Rolf Kalbermatter
Link to comment

WOW..such a complicated way...It's not a PLC where I have full control, it is from an external supplier :(
Maybe a CIP communication specific for Omron will be a better way.
At the moment I can read variable values using RAW data type so variable names are accepted, but I can't write them.

Link to comment
  • 2 weeks later...

I solved My problem Using the old Ethernet IP toolkit (the one you can find online without license).
REAL and INTEGER datatype are writeable/readble without any problems, BOOLEAN and STRNGS needs a workaraound.
You have to read/write them as RAW data and manipulate them.


Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

By using this site, you agree to our Terms of Use.