Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 

3.8 KiB

Modbus通信

任务要求

  • 了解Modbus的基本概念

  • 熟悉功能码0x01、0x03、0x0f、0x10

  • 书写规格书
    · 使用word文档书写

  • 书写方案书

    · 使用Visio绘制流程图
    · 使用word文档书写

  • 书写测试大纲
    · 书写测试大纲以保证自身产品的正确性、稳定性
    · 使用word文档书写

  • 实现ModbusRTU主站(触摸屏)

    · 能够正常连接
    · 能够判断连接断开
    · 能够按要求生成请求帧
    · 能够正确解析应答帧,并做相应处理
    · 能够进行超时处理
    · 拥有美观易操作的人机界面

  • 实现ModbusRTU从站(PLC)

    · 能够正常连接
    · 能够判断连接断开
    · 能够正确解析请求帧
    · 对于正确请求帧给出正确应答帧
    · 对于错误请求帧给出错误应答帧或按规格给出相应的处理

附加功能:

  • 如果需要读取0x10000位置的寄存器该如何处理?
  • 如果需要读取所有单数个寄存器,如何提高读取效率?
  • 如果需要获取通信历史该如何处理?
  • 如果从机数据需要断电不丢失该怎么处理?
  • 提高人机交互的美观性及易用性。

注:

  • 该任务需要基于ucos移植实现
  • Modbus学习需要书写相关学习笔记
  • 线圈和寄存器范围都是0~0x270F
  • 要求方案书有明确的层级结构
  • 最终实现代码需要与方案书相一致
  • 代码书写需按照给定的代码规范完成
  • 对于解析部分需要做对应的单元测试
  • 代码管理空间为:http://gitea.xinje.cc/TrainCamp_姓名全拼_Modbus.git
  • 目录结构如下图所示:
    TrainCamp_姓名全拼_modbus
    |---iar
    | |---settings
    | |---XXX.dep
    | |---XXX.ewd
    | |---XXX.ewp
    | |---XXX.eww
    | |---XXX.icf
    | +---startup_stm32xxx.s
    |---app
    | |---main.h
    | +---main.c
    |---cmsis
    | |---core_cm3.h
    | | .
    | | .
    | | .
    | +---tz_context.h
    |---drivers
    | |---inc
    | | +---stm32f103_gpio.h
    | +---src
    | +---stm32f103_gpio.h
    |---modbus
    +---.gitignore

任务器材

器材 数量
XDM-60T4-E/XDM-60T10-E 1台
ST-LINK 1个
电源线 1根
USB-COM 1个
XVP线 2根
TG765-MT 1台

XDM-60T4-E硬件信息

  • 芯片型号: STM32F407IG ,晶振12MHz。
  • 引脚信息
芯片引脚 实际作用
I0 PH10
I1 PH11
I2 PG8
I3 PB4
I4 PB5
I5 PG12
I6 PB6
I7 PB7
I10 PF10
I11 PA15
I12 PB3
I13 PA14
I14 PI4
I15 PI5
I16 PI6
I17 PI7
I20 PE2
Q0 PF6
Q1 PF8
Q2 PF7
Q3 PF9
Q4 PI8
Q5 PE6
Q6 PE5
Q7 PE4
Q10 PG7
Q11 PG6
Q12 PH9
Q13 PH8
Q14 PH7
Q15 PH6
Q16 PF11
Q17 PB0
Q20 PH5
USART1_TX PA9
USART1_RX PA10

XDM-60T10-E硬件信息

  • 芯片型号:STM32F407ZG,晶振12MHz。
  • 引脚信息
芯片引脚 实际作用
I0 PA0
I1 PA1
I2 PG8
I3 PB4
I4 PB5
I5 PG12
I6 PB6
I7 PB7
I10 PF10
I11 PA15
I12 PB3
I13 PA14
Q0 PF6
Q1 PF8
Q2 PF7
Q3 PF9
USART1_TX PA9
USART1_RX PA10