# modbus.tcp_request ## Function Construct Modbus TCP request frame, including MBAP header and PDU. ## Syntax ```bt modbus.tcp_request(config) ``` ## Parameters | Parameters | Type | Required | Default value | Description | |------|------|------|------|------| | config | Object | Yes | None | Requests a configuration object. | ## Configuration fields | Field | Type | Required | Default value | Description | |------|------|------|------|------| | transaction_id | Int | No | `1` | TCP transaction number. | | protocol_id | Int | No | `0` | Modbus TCP protocol number, usually 0. | | unit_id | Int | No | `1` | Unit ID. | | function_code/function/address/quantity/value/values/pdu/data | Same as rtu_request | Determined by function | None | PDU construction field. | ## Return value | Type | Description | |------|------| | Bytes | Modbus TCP ADU complete request frame. | ## Code Example ```bt packet = modbus.tcp_request({ transaction_id: 1, unit_id: 1, function: 'read_holding_registers', address: 0, quantity: 2 }) // Output: 000100000006010300000002 print packet.to_hex() ``` ## Notes - MBAP length field is automatically written with `unit_id + pdu` length.