Skip to main content

OmronFinsEthernet

Utility functions for FINS protocol used by omron's PLCs

This library can read and write memory area of PLC via FINS protocol. It is confirmed that this can work with NX series PLC.

Usage

Please refer to documents created by doxygen for the details. When you access structs' data in PLC, please set memory offset 'CJ' mode. And please notice that offset of structure is shown as number of bytes, on the other hand, the number of address is defined as number of 16bit segments. So, the address of data in a struct can be calculated by adding half number of the offset to the initial address of the struct.

It's a sample code.

import omronfins.finsudp as finsudp
from omronfins.finsudp import datadef

fins = finsudp.FinsUDP(0, 170)
ret = fins.open('192.168.2.13', 9600)  # Please change according to your PLC's address.
fins.set_destination(dst_net_addr=0, dst_node_num=13, dst_unit_addr=0)

# Writing a word to Extended memory area's address 0.
ret = fins.write_mem_area(datadef.EM0_WORD, 0, 0, 1, (20, datadef.USHORT))

# Reading a word from Extended memory area's address 0.
ret, value = fins.read_mem_area(datadef.EM0_WORD, 0, 0, 1, datadef.USHORT)
print(value)  # the value becomes '20'

# Writing four bits to Extended memory area's address 5.
ret = fins.write_mem_area(datadef.EM0_BIT, 5, 0, 4,
    [(1, datadef.BIT), (0, datadef.BIT), (1, datadef.BIT), (0, datadef.BIT)])

# Reading four bits from Extended memory area's address 5.
ret, values = fins.read_mem_area(datadef.EM0_BIT, 5, 0, 4, datadef.BIT)
print(values)  # values become a tuple like (1, 0, 1, 0).

# Writing a string to Extended memory area's address 6.
# Fourth argument '4' means size of 16bit element and it becomes half of length of the string.
ret = fins.write_mem_area(datadef.EM0_WORD, 6, 0, 4, ("testtest", datadef.STR))

# Reading a string from Extended memory area's address 6.
ret, value = fins.read_mem_area(datadef.EM0_WORD, 6, 0, 4, datadef.STR)
print(value)  # value become "testtest"

Release files for omronfins 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for omronfins 1.0.3
File Size Uploaded
omronfins-1.0.3.tar.gz 8.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for omronfins 1.0.3
File Interpreter ABI Platform
omronfins-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 16.4 kB

Release files / omronfins-1.0.3.tar.gz

Download URL omronfins-1.0.3.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d90217d6701caeec071619d4bd772d48ebc5fd3c2bd01f8cda071ec4ffde3b26
BLAKE2b-256 checksum
How to use checksums
c4de47577514fa0f281daccde8c8b24f63402c1d200e032f3f122843055d5eb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.1

Release files / omronfins-1.0.3-py3-none-any.whl

Download URL omronfins-1.0.3-py3-none-any.whl
Size 8.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ec14e1b2be2721d03b9709ec096f281bac6a40d097521fe28a49e67b276863fe
BLAKE2b-256 checksum
How to use checksums
4b004681f8c79bf1fd1b20ffa1ba33aeef7db78f57bca8b9f8ad70b6a6483319
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.1

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page