custom_protocols
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
custom_protocols [2020/01/02 10:44] – [readRegister] emozolyak | custom_protocols [2021/07/23 14:02] – [Creating a Protocol] emozolyak | ||
---|---|---|---|
Line 21: | Line 21: | ||
To go to the list of user protocols, click on the button " | To go to the list of user protocols, click on the button " | ||
- | {{ :: | + | {{ :: |
You will be taken to the protocol management page. In this example, we see two demonstration protocols - ModBus TCP Demo and ModBus ASCII Demo: | You will be taken to the protocol management page. In this example, we see two demonstration protocols - ModBus TCP Demo and ModBus ASCII Demo: | ||
- | {{ :: | + | {{ :: |
Let's look at the page for editing the ModBus TCP Demo protocol: | Let's look at the page for editing the ModBus TCP Demo protocol: | ||
Line 40: | Line 40: | ||
The regular expression must ensure that the register address is validated on the register editing page (when this protocol is selected). Example: | The regular expression must ensure that the register address is validated on the register editing page (when this protocol is selected). Example: | ||
- | {{ :: | + | {{ :: |
We also see a convenient code editor. It supports formatting, highlighting and validation of syntax. So it's convenient to write the code | We also see a convenient code editor. It supports formatting, highlighting and validation of syntax. So it's convenient to write the code | ||
Line 93: | Line 93: | ||
Three parameters are passed to it as arguments: | Three parameters are passed to it as arguments: | ||
- | reg - Table (structure) with register parameters | + | ***reg** - Table (structure) with register parameters |
- | device - Table (structure) with register type parameters (that were defined in createDevices) | + | ***device** - Table (structure) with register type parameters (that were defined in createDevices) |
- | unitId – device ID for the bus or other ID. For instance, Slave ID in ModBus RTU or Unit ID in ModBus TCP. | + | ***unitId** – device ID for the bus or other ID. For instance, Slave ID in ModBus RTU or Unit ID in ModBus TCP. |
- | There are such attributes in the reg structure: | + | There are such attributes in the __reg__ |
- | internalAddr - Recalculated register address. This number is recalculated from the specified number system with shift added to it. | + | *internalAddr - Recalculated register address. This number is recalculated from the specified number system with shift added to it. |
- | addr - The original address of the register that the user entered. | + | *addr - The original address of the register that the user entered. |
- | dataType – The type of data that the user specified for the register. 0 = Bit, 1 = Byte, 2 = Word, 3 = Double Word, 4 = UnixTime | + | *dataType – The type of data that the user specified for the register. 0 = Bit, 1 = Byte, 2 = Word, 3 = Double Word, 4 = UnixTime |
- | There are such attributes in the device | + | There are such attributes in the __device__ |
- | shift - The shift value from the corresponding row in createDevices | + | *shift - The shift value from the corresponding row in createDevices |
- | base - base value from the corresponding row in createDevices | + | *base - base value from the corresponding row in createDevices |
- | xtraFields – xtraFields value from the corresponing row in createDevices | + | *xtraFields – xtraFields value from the corresponing row in createDevices |
These parameters are passed in order to be able to correctly and fully compose a request according to the protocol. | These parameters are passed in order to be able to correctly and fully compose a request according to the protocol. | ||
Line 120: | Line 120: | ||
To make a delay, //sleep// function can be used. Its only argument is time in microseconds, | To make a delay, //sleep// function can be used. Its only argument is time in microseconds, | ||
- | Для работы с битами можно использовать библиотеку | + | For bit processing refer to bitop library and this [[useful_programs# |
- | Для отладки и вывода диагностических сообщений можно использовать процедуры | + | For debugging and diagnostic messages you can use ERROR, INFO, DEBUG or TRACE from the users Lua scripts - see [[write_to_logs | this]]. |
- | Что бы лучше понять как это все работает давайте рассмотрим пример функции | + | To better understand the custom protocol application, |
<code lua> | <code lua> | ||
Line 446: | Line 446: | ||
As an example we've made (partually) several protocols: | As an example we've made (partually) several protocols: | ||
- | *[[http:// | + | *[[modbus_tcp_custom|ModBus TCP]] |
- | *[[http:// | + | *[[modbus_ascii_custom|ModBus ASCII]] |
- | *[[http:// | + | *[[modbus_rtu_custom|Modbus RTU]]. |
+ | *[[http_get_custom | HTTP request example]] | ||
*Other devices that were connected using [[http:// | *Other devices that were connected using [[http:// | ||
custom_protocols.txt · Last modified: 2023/02/21 17:52 by emozolyak