# modbus.tcp_request

## 功能

构建 Modbus TCP 请求帧，包含 MBAP 头和 PDU。

## 语法

```bt
modbus.tcp_request(config)
```

## 参数

| 参数 | 类型 | 必填 | 默认值 | 说明 |
|------|------|------|------|------|
| config | Object | 是 | 无 | 请求配置对象。 |

## 配置字段

| 字段 | 类型 | 必填 | 默认值 | 说明 |
|------|------|------|------|------|
| transaction_id | Int | 否 | `1` | TCP 事务编号。 |
| protocol_id | Int | 否 | `0` | Modbus TCP 协议编号，通常为 0。 |
| unit_id | Int | 否 | `1` | 单元标识。 |
| function_code/function/address/quantity/value/values/pdu/data | 同 rtu_request | 按功能决定 | 无 | PDU 构建字段。 |

## 返回值

| 类型 | 说明 |
|------|------|
| Bytes | Modbus TCP ADU 完整请求帧。 |

## 代码示例

```bt
packet = modbus.tcp_request({
    transaction_id: 1,
    unit_id: 1,
    function: 'read_holding_registers',
    address: 0,
    quantity: 2
})

// 输出：000100000006010300000002
print packet.to_hex()
```

## 注意事项

- MBAP length 字段会自动按 `unit_id + pdu` 长度写入。
