欢迎光临
我们一直在努力

STM32从零到量产开发:四路继电器工业控制模块开发 - 上位机操作说明书

STM32从零到量产开发:四路继电器工业控制模块开发 – — 上位机操作说明书

配套固件:P02_Relay_Controller_4Channels(STM32F103RCT6,4 路继电器 + 4 路数字量输入 DI) 通信方式:RS232(UART4,115200 8N1,行文本协议) 软件版本:P02HostPC v1.0(C# / .NET 8 / WinForms) 适用场景:产线调试、现场维护、演示展示


1. 软件获取与启动

1.1 环境要求

  • Windows 10 / 11(WinForms 原生)
  • Visual Studio 2022+(勾选“.NET 桌面开发”工作负载)

1.2 界面总览

┌──────────────────────────────────────────────────────────────────────┐
│ 端口[COM3▾] 波特[115200▾] [连接/断开] │
├─────────────── 继电器控制 ───────────┬────────── 数字量输入 DI ──────┤
│ [CH1 OFF][CH2 OFF][CH3 OFF][CH4 OFF] │ [DI1][DI2][DI3][DI4] │
│ [全开][全断] 位掩码[ ] [发送] │ 状态:UPTIME 51s RESETS 3 │
├─────────────── 只读信息 ─────────────┼────────── 配置(写 Flash)─────┤
│ [INFO][PARAM][STATS][FS] │ ADDR[ ] BAUD[0(9600)▾] [应用] │
│ ┌─────────────────────────────────┐ │ FS_EN[0▾] FS_SEC[ ] │
│ │(只读信息显示区) │ │ [恢复出厂] [PING] │
│ └─────────────────────────────────┘ │ │
├─────────────── 日志终端 ─────────────────────────────────────────────┤
│ [TX> / RX< 收发与提示,带时间戳] │
├──────────────────────────────────────────────────────────────────────┤
│ 命令行[ ] [发送] 轮询[1▾] [✓自动] │
└──────────────────────────────────────────────────────────────────────┘


2. 第一次连接(必读)

  • 用 USB 转 RS232 线连接 PC 与 P02 板的 UART4(PC10/PC11)。
  • 上位机顶部“端口”下拉框选择正确串口号(台架通常为 COM3)。若列表为空,点端口框右侧刷新或重启软件。
  • 务必先关闭其他串口助手(如 SSCOM、友善串口助手),否则 COM 被占用会连接失败或全静默。
  • 点 [连接]。成功日志显示 [*] 已连接 COM3 @ 115200,并自动发一次 STATUS。
  • 点 [PING] 验证链路:日志出现 [OK] PING -> PONG (链路正常) 即 OK。
  • 默认勾选“自动”,软件每 1 秒自动轮询一次 STATUS,继电器/DI/时长实时刷新。

  • 3. 功能操作指南

    3.1 继电器控制(4 路)

    操作方法预期
    单路翻转 点 CH1~CH4 按钮 发 RELAY n ON/OFF,日志 OK;按钮变绿=吸合、灰=释放;约 1s 内被轮询校正
    全部吸合 点 [全开] 发 RELAY ALL 15
    全部释放 点 [全断] 发 RELAY ALL 0
    位掩码控制 在“位掩码”框输入 0-15 或 0x0-0xF,点 [发送] 如 5=CH1+CH3、0xF=全开、0x0=全断

    位掩码规则:bit0=CH1,bit1=CH2,bit2=CH3,bit3=CH4。非法输入(如 16、0x10、字母)会弹窗提示,不发送。 单路 ON/OFF 命令成功后立即更新按钮颜色;全开/全断/位掩码依赖“自动轮询”在 1s 内回刷显示。

    3.2 数字量输入 DI(只读)

    • 4 个 DI 指示灯:绿色=高电平(1),灰色=低电平(0)。
    • 受外部输入电平实时驱动,由 STATUS 轮询刷新。
    • 也可点只读信息区下方命令行输入 DI 单独查询。

    3.3 只读信息(点按钮查询,结果显示在信息框)

    按钮命令显示内容
    INFO INFO 固件版本、MCU 型号、运行时长/复位、Modbus 帧数/CRC 错误、Flash 魔术字与 CRC
    PARAM PARAM Modbus 从站地址、RS485 波特索引(文本)、链路使能
    STATS STATS 诊断:帧数/CRC 错误/异常;各通道继电器动作累计次数;寿命告警掩码;运行秒/小时
    FS FS 故障安全:使能状态、超时秒、当前是否已进入安全态(active=1=通信超时)

    信息框为共用显示区,每次查询覆盖上次内容。

    3.4 配置写 Flash(掉电保存,谨慎操作)

  • 在“配置”区填好参数:
    • ADDR:Modbus 从站地址 1-247
    • BAUD:RS485 波特索引 0(9600) / 1(19200) / 2(38400) / 3(57600) / 4(115200)
    • FS_EN:故障安全使能 0/1
    • FS_SEC:故障安全超时 1-254 秒
  • 点 [应用] → 按填好的项分批发 ADDR/BAUD/FS EN/FS SEC 写 Flash,日志逐条回显 OK。
    • 空着的输入框会被跳过;非法范围会在日志提示(如 ADDR 范围 1-247)。
  • [恢复出厂]:二次确认弹窗(Yes/No),确认后发 FACTORY 重置 Modbus 地址/波特/故障安全为出厂值(建议重启生效)。
  • 3.5 PING 与命令行透传

    • [PING]:心跳测试,回 PONG 证明串口链路通。
    • 命令行:输入任意固件支持的命令(如 HELP、STATUS、LED、RELAY 2 ON…),点 [发送] 或按 回车 透传。所有收发记录在日志终端。

    3.6 日志终端

    • 实时记录所有 TX>(发出命令) 与 RX<(收到响应),带 HH:mm:ss 时间戳。
    • 自动滚到底部。可用于排查通信问题(如长时间无 RX 可能是串口占用或波特不对)。

    4. 定时轮询

    • “轮询”数值框:刷新间隔 1-10 秒(默认 1)。
    • “自动”复选框:勾选后连接期间持续自动发 STATUS 刷新面板;取消则停止自动刷新(手动点按钮查询)。
    • 轮询仅读 STATUS,不触发任何写操作,安全可常开。

    5. 故障排查

    现象可能原因处理
    连接失败弹窗“无法打开 COMx” 端口被占用 / 不存在 关串口助手;确认端口号;重插 USB
    连上后日志无 RX 波特不对 / 线接错 / 板子未上电 确认 115200 8N1;查 UART4 接线;查板供电
    继电器按钮点了没反应 未连接 / 自动轮询未开 确认已[连接];勾选[自动]或手动点 STATUS
    状态栏一直 UPTIME –s 解析未命中(固件版本不符) 确认烧的是 P02 固件;看日志原始 RX 格式
    写 ADDR/BAUD 报 ERR 超出范围 ADDR 1-247;BAUD 0-4;FS_SEC 1-254
    界面卡死/无响应 串口线程异常 点[断开]再[连接];必要时关软件重开

    6. 命令速查(固件支持)

    HELP 列出全部命令
    STATUS 继电器/DI/运行时长/复位次数
    DI 读取 4 路数字量输入
    RELAY n ON|OFF 单路控制(n=1-4)
    RELAY ALL <val> 批量(0-15 或 0x0-0xF)
    PARAM 读 Modbus 参数
    ADDR <1-247> 设从站地址(写 Flash)
    BAUD <0-4> 设 RS485 波特索引(写 Flash)
    FACTORY 恢复出厂
    INFO 固件与统计
    STATS 诊断统计
    FS 查故障安全
    FS EN 0|1 设故障安全使能
    FS SEC <1-254> 设故障安全超时(秒)
    PING 心跳回显 PONG
    LED 4 路 LED 自检

    上位机所有按钮本质就是向板子发送上述命令并解析响应,命令行可发送任意一条做调试。


    7. 已实现功能验收(实测)

    上位机全部功能已通过离线逻辑实测(每个按钮 = 构造命令 → 解析响应,共 90 项断言全 PASS):

    • ✅ 连接/断开(COM3、115200)、自动轮询 STATUS
    • ✅ 单路继电器 ON/OFF、全开、全断、位掩码(0-15 / 0x0-0xF,含非法拦截)
    • ✅ DI 指示灯(兼容 STATUS 与 DI 命令两种空格格式)
    • ✅ 只读信息 INFO / PARAM / STATS / FS(active=1 安全态正确解析)
    • ✅ 配置写 Flash:ADDR / BAUD / FS_EN / FS_SEC / 恢复出厂(二次确认)
    • ✅ PING 链路验证、命令行透传、日志终端
    • ✅ 鲁棒性:脏数据/空响应不崩溃、值 ON/off 大小写容忍、回显与提示符包裹兼容

    文档生成:2026-07-31 | 与 HostPC/src/Protocol.cs、SerialComm.cs、MainForm.cs 及固件 rs232_shell.c 对齐。


    8. 上位机通信机制(指令+应答)

    上位机与下位机采用 指令 + 应答(Command/Ack) 握手,界面只在收到板子真实响应后才刷新:

  • 200ms 应答超时:每条命令发出即启动 200ms 应答定时器(ackTimeoutMs=200);200ms 内无首字节 = 无应答 → 自动重发(最多 2 次,共 3 次)。
  • 仅有效应答刷新 UI:只有"操作成功帧"(如 OK/RELAYn: ON)或"条件不满足帧"(如 ERR:…)才更新界面;超时/半包/纯回显行不刷新。
  • 超时报错:3 次尝试耗尽仍无应答 → 注入 ERR: 响应超时(已重发2次):命令无应答,按失败处理(不更新 UI、日志报错)。
  • 界面状态永远由"板子真实回包经解析回调"驱动,绝不"发送成功即刷新"——与下位机故障安全(通信丢失即断输出)端到端一致。

    闭环实测(2026-08-01,真板 RS232/COM3)

    P02HostPC.exe –selftest COM3(P02 生产固件)→ PASS=7 FAIL=0:连接、STATUS/INFO/PING 握手填充、RELAY 写握手翻转并回读一致,均经板子真实响应刷新。

    赞(0)
    未经允许不得转载:171主机测评 » STM32从零到量产开发:四路继电器工业控制模块开发 - 上位机操作说明书
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址