This commit is contained in:
edisondeng
2026-05-09 19:53:47 +08:00
parent 6e2b13dbb3
commit ee67076ec7
29 changed files with 4793 additions and 101 deletions

View File

@ -74,6 +74,15 @@ extern "C" {
比如设备A烧录时改为 0x01设备B烧录时改为 0x02
========================================================= */
#define MY_DEVICE_ID 0x02
/* =========================================================
🚀 开发调试开关
TEST_A701:
- 1: 测试环境 (A701室/本地测试),使用 192.168.6.x 网段
- 0: 生产环境 (实船/现场部署),使用 192.168.0.x 网段
========================================================= */
#define TEST_A701 1
/* USER CODE END EM */
/* Exported functions prototypes ---------------------------------------------*/

View File

@ -0,0 +1,50 @@
/**
******************************************************************************
* @file modbus_tcp_client.h
* @brief Modbus TCP 客户端模块头文件 (基于 W5500)
******************************************************************************
*/
#ifndef __MODBUS_TCP_CLIENT_H
#define __MODBUS_TCP_CLIENT_H
#include <stdint.h>
#include <stdbool.h>
#include "main.h"
/* Modbus TCP 配置 */
#if TEST_A701
#define MODBUS_SERVER_IP {192, 168, 6, 4} /* A701 测试服务器 */
#else
#define MODBUS_SERVER_IP {192, 168, 0, 1} /* 现场生产服务器 */
#endif
#define MODBUS_SERVER_PORT 502
#define MODBUS_UNIT_ID 1
#define MODBUS_POLL_INTERVAL 2000 /* 轮询间隔 (ms) */
/* 寄存器定义 */
#define TARGET_REG_ADDR 30 /* 逻辑 40031 */
/* 客户端状态枚举 */
typedef enum {
MODBUS_STATE_IDLE,
MODBUS_STATE_CONNECTING,
MODBUS_STATE_SEND_QUERY,
MODBUS_STATE_WAIT_RESPONSE,
MODBUS_STATE_PROCESS_DATA,
MODBUS_STATE_ERROR_RETRY
} modbus_client_state_t;
/**
* @brief 初始化 Modbus TCP 客户端
* @param sn: W5500 Socket 编号
*/
void ModbusTCP_Client_Init(uint8_t sn);
/**
* @brief Modbus TCP 客户端任务处理 (主循环调用)
*/
void ModbusTCP_Client_Task(void);
#endif