| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- menu "Modbus configuration"
- config FMB_COMM_MODE_TCP_EN
- bool "Enable Modbus stack support for TCP communication mode"
- default y
- help
- Enable Modbus TCP option for stack.
- config FMB_TCP_PORT_DEFAULT
- int "Modbus TCP port number"
- range 0 65535
- default 502
- depends on FMB_COMM_MODE_TCP_EN
- help
- Modbus default port number used by Modbus TCP stack
- config FMB_TCP_PORT_MAX_CONN
- int "Maximum allowed connections for TCP stack"
- range 1 6
- default 5
- depends on FMB_COMM_MODE_TCP_EN
- help
- Maximum allowed connections number for Modbus TCP stack.
- This is used by Modbus master and slave port layer to establish connections.
- This parameter may decrease performance of Modbus stack and can cause
- increasing of processing time (increase only if absolutely necessary).
- config FMB_TCP_CONNECTION_TOUT_SEC
- int "Modbus TCP connection timeout"
- range 1 3600
- default 20
- depends on FMB_COMM_MODE_TCP_EN
- help
- Modbus TCP connection timeout in seconds.
- Once expired the current connection with the client will be closed
- and Modbus slave will be waiting for new connection to accept.
- config FMB_COMM_MODE_RTU_EN
- bool "Enable Modbus stack support for RTU mode"
- default y
- help
- Enable RTU Modbus communication mode option for Modbus serial stack.
- config FMB_COMM_MODE_ASCII_EN
- bool "Enable Modbus stack support for ASCII mode"
- default y
- help
- Enable ASCII Modbus communication mode option for Modbus serial stack.
- config FMB_MASTER_TIMEOUT_MS_RESPOND
- int "Slave respond timeout (Milliseconds)"
- default 150
- range 50 3000
- help
- If master sends a frame which is not broadcast, it has to wait sometime for slave response.
- if slave is not respond in this time, the master will process timeout error.
- config FMB_MASTER_DELAY_MS_CONVERT
- int "Slave conversion delay (Milliseconds)"
- default 200
- range 50 400
- help
- If master sends a broadcast frame, it has to wait conversion time to delay,
- then master can send next frame.
- config FMB_QUEUE_LENGTH
- int "Modbus serial task queue length"
- range 0 200
- default 20
- help
- Modbus serial driver queue length. It is used by event queue task.
- See the serial driver API for more information.
- config FMB_PORT_TASK_STACK_SIZE
- int "Modbus port task stack size"
- range 2048 8192
- default 4096
- help
- Modbus port task stack size for rx/tx event processing.
- It may be adjusted when debugging is enabled (for example).
- config FMB_SERIAL_BUF_SIZE
- int "Modbus serial task RX/TX buffer size"
- range 0 2048
- default 256
- help
- Modbus serial task RX and TX buffer size for UART driver initialization.
- This buffer is used for modbus frame transfer. The Modbus protocol maximum
- frame size is 256 bytes. Bigger size can be used for non standard implementations.
- config FMB_SERIAL_ASCII_BITS_PER_SYMB
- int "Number of data bits per ASCII character"
- default 8
- range 7 8
- depends on FMB_COMM_MODE_ASCII_EN
- help
- This option defines the number of data bits per ASCII character.
- config FMB_SERIAL_ASCII_TIMEOUT_RESPOND_MS
- int "Response timeout for ASCII communication mode (ms)"
- default 1000
- range 300 2000
- depends on FMB_COMM_MODE_ASCII_EN
- help
- This option defines response timeout of slave in milliseconds for ASCII communication mode.
- Thus the timeout will expire and allow the master program to handle the error.
- config FMB_PORT_TASK_PRIO
- int "Modbus port task priority"
- range 3 23
- default 10
- help
- Modbus port data processing task priority.
- The priority of Modbus controller task is equal to (CONFIG_FMB_PORT_TASK_PRIO - 1).
- choice FMB_PORT_TASK_AFFINITY
- prompt "Modbus task affinity"
- default FMB_PORT_TASK_AFFINITY_CPU0
- depends on !FREERTOS_UNICORE
- help
- Allows setting the core affinity of the Modbus controller task, i.e. whether the task is pinned to
- particular CPU, or allowed to run on any CPU.
- config FMB_PORT_TASK_AFFINITY_NO_AFFINITY
- bool "No affinity"
- config FMB_PORT_TASK_AFFINITY_CPU0
- bool "CPU0"
- config FMB_PORT_TASK_AFFINITY_CPU1
- bool "CPU1"
- endchoice
- config FMB_PORT_TASK_AFFINITY
- hex
- default FREERTOS_NO_AFFINITY if FMB_PORT_TASK_AFFINITY_NO_AFFINITY || FREERTOS_UNICORE
- default 0x0 if FMB_PORT_TASK_AFFINITY_CPU0
- default 0x1 if FMB_PORT_TASK_AFFINITY_CPU1
- config FMB_CONTROLLER_SLAVE_ID_SUPPORT
- bool "Modbus controller slave ID support"
- default y
- help
- Modbus slave ID support enable.
- When enabled the Modbus <Report Slave ID> command is supported by stack.
- config FMB_CONTROLLER_SLAVE_ID
- hex "Modbus controller slave ID"
- range 0 4294967295
- default 0x00112233
- depends on FMB_CONTROLLER_SLAVE_ID_SUPPORT
- help
- Modbus slave ID value to identify modbus device
- in the network using <Report Slave ID> command.
- Most significant byte of ID is used as short device ID and
- other three bytes used as long ID.
- config FMB_CONTROLLER_NOTIFY_TIMEOUT
- int "Modbus controller notification timeout (ms)"
- range 0 200
- default 20
- help
- Modbus controller notification timeout in milliseconds.
- This timeout is used to send notification about accessed parameters.
- config FMB_CONTROLLER_NOTIFY_QUEUE_SIZE
- int "Modbus controller notification queue size"
- range 0 200
- default 20
- help
- Modbus controller notification queue size.
- The notification queue is used to get information about accessed parameters.
- config FMB_CONTROLLER_STACK_SIZE
- int "Modbus controller stack size"
- range 0 8192
- default 4096
- help
- Modbus controller task stack size. The Stack size may be adjusted when
- debug mode is used which requires more stack size (for example).
- config FMB_EVENT_QUEUE_TIMEOUT
- int "Modbus stack event queue timeout (ms)"
- range 0 500
- default 20
- help
- Modbus stack event queue timeout in milliseconds. This may help to optimize
- Modbus stack event processing time.
- config FMB_TIMER_PORT_ENABLED
- bool "Modbus stack use timer for 3.5T symbol time measurement"
- default n
- help
- If this option is set the Modbus stack uses timer for T3.5 time measurement.
- Else the internal UART TOUT timeout is used for 3.5T symbol time measurement.
- config FMB_TIMER_GROUP
- int "Slave Timer group number"
- range 0 1
- default 0
- help
- Modbus slave Timer group number that is used for timeout measurement.
- config FMB_TIMER_INDEX
- int "Slave Timer index in the group"
- range 0 1
- default 0
- help
- Modbus slave Timer Index in the group that is used for timeout measurement.
- config FMB_MASTER_TIMER_GROUP
- int "Master Timer group number"
- range 0 1
- default FMB_TIMER_GROUP
- help
- Modbus master Timer group number that is used for timeout measurement.
- config FMB_MASTER_TIMER_INDEX
- int "Master Timer index"
- range 0 1
- default FMB_TIMER_INDEX
- help
- Modbus master Timer Index in the group that is used for timeout measurement.
- Note: Modbus master and slave should have different timer index to be able to work simultaneously.
- config FMB_TIMER_ISR_IN_IRAM
- bool "Place timer interrupt handler into IRAM"
- default n
- select UART_ISR_IN_IRAM
- help
- This option places Modbus timer IRQ handler into IRAM.
- This allows to avoid delays related to processing of non-IRAM-safe interrupts
- during a flash write operation (NVS updating a value, or some other
- flash API which has to perform an read/write operation and disable CPU cache).
- This option has dependency with the UART_ISR_IN_IRAM option which places UART interrupt
- handler into IRAM to prevent delays related to processing of UART events.
- endmenu
|