This page is part of archived documentation for openHAB 2.5. Go to the current stable version
# Fatek PLC Binding v1
Fatek PLC (opens new window) is one kind of programmable logic controller. This binding support native Fatek protocol to communicate with PLC. For communication to PLC is used JFatek library (opens new window).
# Binding Configuration
The binding can be configured in the file services/fatekplc.cfg
.
Property | Default | Required | Description |
---|---|---|---|
refresh | 60000 | No | refresh interval in milliseconds which is used to poll values from the Fatek PLC server |
<plcName> .connectionUri | Yes | connection URI for the <plcName> you provide, so multiple Fatek PLCs can be addressed. Supports either tcp:// , udp:// or serial:// protocol. |
The common connectionUri
syntax is:
protocol://address:[port]?plcId=<plcId>param1=value1¶mN=ValueN
Name | Description | Default |
---|---|---|
plcId | PLC id, must be set | - |
timeout | connection/read timeout in milliseconds | 5000 |
# tcp
or udp
parameters
There are not more parameters for this connection protocols.
Example, udp://192.168.1.100?plcId=1&timeout=1000
Default port
is 500
# serial parameters
Name | Description | Default |
---|---|---|
baudRate | serial connection speed bit/s | 9600 |
dataBits | number of data bits in each character | 7 |
stopBits | number of bits sent at the end of each character, can be 1 , 2 or 1.5 | 1 |
parity | control bit set, can be: NONE , ODD , EVEN , MARK or SPACE | EVEN |
Serial port name is given as address of connectionUri. You can write begin name of port, first matched will be used.
Examples:
serial:///dev/tty-usbserial?plcId=1&baudRate=19200
serial://COM1?plcId=1&baudRate=19200&timeout=1000
# Item Configuration
openHAB items can be bound to Fatek PLC by example definition
Item ... { fatekplc="fatek_binding" }
fatek binding
is described below for specific item type.
For all items we can add options refreshStep
, eg.
plc1:R100:refreshStep=2
This means that item will be updated every second poll cycle.
Only the item types documented below are supported.
# Color Items
plcName:REG1:REG2:REG3[:REG4][:RGB|HSB]
Last element indicates color mode used to write data to PLC, default value is HSB.
- REG1, REG2 and RE3 must be data type register.
- for HSB mode REG1 = H, REG2 = S, REG3 = B
- for RGB mode REG1 = R, REG2 = G, REG3 = B
REG4 is optional if you specified it, on/off command will use that register for corresponding on/off state. If you not specified REG4 on/off command will write white or black value to color registers.
# Contact Items
plcName:[!]REG
We specified only one register. If register name starts with "!" (exclamation mark) value read will be inverted.
# Switch Items
plcName:[!]REG1[:[!]REG2]
- REG1 is used for read state of switch
- REG2 is used for change state of switch, if is not specified - REG1 is used
If registers name starts with "!" (exclamation mark) value read and written will be inverted.
# DateTime Item
# Version 1
plcName:Y:m:d:H:M:S
Where:
- Y - year reg, if value in range 0 - 49 we add 2000, in range 50 - 99 we add 1900
- m - month reg - range 1 - 12, (1 means January)
- d - day of the month reg - The first day of the month has value 1
- H - hour of the day reg - 24-hour clock
- M - minute reg
- S - second reg
All fields must be set, if you want to skip some of the item you can put number instead of register name.
Item accept only 16 bit data register.
You can end register name with L
- lowest 8 bits or H
- highest 8 bits.
Eg. read current PLC time
plcName:R4133:R4132:R4131:R4135H:R4135L:R4128
# Version 2
plcName:REG[R][:factor=factorValue]
In REG we store seconds from begining of the UNIX epoch.
If we add R to the end of register name DateTime item will recognize as relative seconds to now. We can read some counter which count seconds and we can display the time when counting was started.
We can also specific factor value, read seconds will be multiplied by this value.
# Dimmer Items
plcName:REG:[step=value][:factor=factorValue]
We use one data type register for value.
Step options can specified step value for INCREASE/DECREASE command.
We can also specific factor value, all read data will be multiplied by this value, before write value from OpenHab will be divided by factor.
# Number Items
plcName:[+]REG[F][:transformationType(params)][:factor=factorValue]
If we start register name with + (plus sign) values read from plc will be recognized as unsigned number.
If we end register name with "F" values read from plc will be recognized as float number. For float number 32 bits data register must be used.
We can also specific factor value, all read data will be multiplied by this value, before write value from OpenHab will be divided by factor.
For Number item we can provide transformation function, eg: JS(file.js)
# Rollershutter Items
plcName:REG1:REG2:REG3[:factor=factorValue]
- REG1 is used for reading current positions in percent.
- REG2 is set to true/1 for UP command
- REG3 is set to true/1 for DOWN command
- for STOP command REG2 and REG3 is set to false/0.
We can also specific factor value, all read data will be multiplied by this value.