Python FINS driver for Omron PLC
Project description
fins-driver
FINS (Factory Interface Network Service) Python driver for Omron PLC.
Installation
Install the latest version from PyPI by typing this command:
pip install -U fins-driver
Usage
Below is an example on how to use the client class.
from fins import FinsClient
client = FinsClient(host='192.168.250.1', port=9600)
response = client.memory_area_read('D0')
print(response.data)
client.close()
Memory Area Read
.memory_area_read(address: str | bytes, num_items: int = 1) -> Response[bytes]
Examples:
Read DM area at word 0.
response = client.memory_area_read('D0')
Read CIO area at word 100 and bit 01.
response = client.memory_area_read('CIO100.01')
Memory Area Write
.memory_area_write(address: str | bytes, data: bytes, num_items: int = 1) -> Response[bytes]
Examples:
Write to CIO area at word 100. It will turn on CIO100.00 and CIO100.01. Hex value \x00\x03 is translated to 0000 0000 0000 0011 in binary.
response = client.memory_area_write("CIO100", b"\x00\x03")
Write to CIO area at word 100 and bit 01. We only need to provide 1 bytes data to write bit status. Hex value \x01 is translated to ON, while \x00 is translated to OFF.
response = client.memory_area_write("CIO100.01", b"\x01")
Memory Area Fill
.memory_area_fill(address: str | bytes, data: bytes, num_items: int = 1) -> Response[bytes]
Examples:
Fill DM area word with \x00\x03.
response = client.memory_area_fill("D0", b"\x00\x03")
Multiple Memory Area Read
.multiple_memory_area_read(*addresses: str | bytes) -> Response[List[bytes]]
Examples:
Read multiple memory area words.
response = client.multiple_memory_area_read("D0", "D1")
Read multiple memory area bits.
response = client.multiple_memory_area_read("CIO100.00", "CIO100.01")
Memory Area Transfer
.memory_area_transfer(source_address: str | bytes, dest_address: str | bytes, num_items: int = 1) -> Response[bytes]
Examples:
Transfer memory area word from D0 to D1.
response = client.memory_area_transfer("D0", "D1")
Run
.run(mode: debug | monitor | run = "monitor", program_number: bytes = b"\xff\xff") -> Response[bytes]
Examples:
Change PLC to run in monitor mode.
response = client.run("monitor")
Stop
.stop() -> Response[bytes]
Examples:
Stop PLC device.
response = client.stop()
Forced Set/Reset
.forced_set_reset(*specs: SetResetSpec) -> Response[bytes]
Examples:
Force-set ON the CIO0.01.
from fins import SetResetSpecCode, SetResetSpec
response = client.forced_set_reset(SetResetSpec(SetResetSpecCode.FORCE_SET, "CIO0.01"))
Forced Set/Reset Cancel
.forced_set_reset_cancel() -> Response[bytes]
Examples:
Cancel all bits that have been forced ON or OFF.
response = client.forced_set_reset_cancel()
Memory Areas
Below is supported memory areas prefix.
Prefix | Description |
---|---|
CIO | Core IO area |
W | Work area |
H | Holding area |
A | Auxiliary area |
D | Data Memory area |
For the core IO area, you can omit the prefix. For example, address 100.01
is
the same as CIO100.01
.
Response Object
Property/Method | Type | Description |
---|---|---|
data | T |
Response data. Refer to each command to see data type. |
code | bytes |
Response code, primarily \x00\x00 if it's OK. |
status_text | str |
Textual description of the response code. |
ok | bool |
True if request was OK (Normal completion). |
raw_data | bytes |
Original unparsed response data. |
raw | bytes |
The overall raw content of response. |
header | Header |
Response header data. |
command | Command |
The request command that was sent to the device. |
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.