变频器汇川的三种变频器源码,包括MD290,MD380,MD500变频器源码,基于TMS320F28035 新的SVC3算法,高速速度波动小,新的转子电阻,漏感辩识算法.

汇川技术推出的MD290、MD380与MD500系列变频器,作为面向不同功率段与应用场景的通用型变频产品,其底层软件系统在保持高度模块化与可配置性的同时,实现了对异步电机开环V/F控制、闭环矢量控制(SVC/FVC)以及直流制动、参数自整定、通信扩展等多种高级功能的统一支持。本文基于其公开源码片段,深入剖析该系列变频器的软件架构设计思想、任务调度机制、核心控制流程及关键功能模块实现逻辑。

一、整体软件架构:分层与解耦

该变频器软件系统采用典型的分层架构,清晰地划分为系统层性能层(Motor Core)功能层(Function) 三大模块。

  • 系统层:负责最底层的硬件抽象与初始化,包括DSP芯片(如TMS320F28035)的时钟配置(PLL)、看门狗、外设时钟使能、GPIO复用设置、ADC采样序列配置、ePWM模块初始化等。此层为上层提供稳定可靠的硬件运行环境。
  • 性能层(Motor Core):这是整个系统的核心,专注于实时电机控制算法的执行。它处理所有与电机物理特性直接相关的计算,如电流采样与处理、母线电压监测、速度估算(编码器/旋变/无感)、V/F控制、SVC/FVC矢量控制算法、转矩计算、过流/过压保护逻辑等。该层对实时性要求极高,通常在中断服务程序(ISR)或高优先级的快速循环中执行。
  • 功能层(Function):负责用户交互与系统管理。它处理用户通过操作面板、通信接口(如Modbus、Profibus-DP、CANopen、CANlink)输入的命令,管理功能码(参数)的读写、存储(EEPROM),实现运行逻辑控制(启停、点动、多段速等),并负责故障诊断、记录与显示。该层对实时性要求相对较低,通常在主循环或较低优先级的任务中执行。

三层之间通过定义良好的数据接口进行通信,实现了高度的解耦。例如,功能层将用户设定的目标频率、控制命令等打包成gSendToMotor05MsDataBuffgSendToMotor2MsDataBuff数组,周期性地传递给性能层;性能层则将实际运行状态(如输出电流、母线电压、实际转速、故障信息等)通过gSendToFunctionDataBuff数组回传给功能层。这种设计使得核心控制算法与上层应用逻辑可以独立开发和演进。

二、任务调度与执行模型

系统采用时间驱动的调度模型,主程序在一个无限循环中,根据精确的系统时基(如0.5ms和2ms)触发不同的任务。

  • 0.5ms 高速循环:这是性能层的核心执行周期。在此循环中,主要执行对实时性要求最高的任务:
  • 电机控制核心算法:如Main05msMotor()函数中调用的SVC/FVC速度环计算、磁链观测等。
  • 高速数据采集:处理来自ADC的电流、电压等模拟量采样结果。
  • 速度反馈处理:对于带编码器的系统,VCGetFeedBackSpeed()函数在此周期内被调用,通过QEP模块读取并计算电机转速。
  • 2ms 中速循环:此循环承担了性能层与功能层之间大部分的数据交互和次关键任务:
  • 数据交互copyDataFunc2Motor2ms()ParSend2Ms()等函数在此执行,完成两层间的数据同步。
  • 辅助计算:如功率、转矩的计算(InvCalcPower())、设备自检(InvDeviceControl())等。
  • 功能层主逻辑Main2msFunction()处理大部分用户功能逻辑。

这种分层调度策略有效平衡了系统对硬实时性(电机控制)和软实时性(用户交互)的不同需求,确保了系统在复杂工况下的稳定运行。

三、核心控制流程:从启停到运行

变频器的运行遵循一个清晰的状态机模型,主要状态包括STATUSSTOP(停止)、STATUSGETPAR(参数辨识)、STATUSSPEEDCHECK(转速追踪)、STATUSRUN(运行)等。

  1. 启动准备:当接收到启动命令后,系统首先进入PrepareParForRun()函数,对所有运行相关的全局变量进行初始化,确保从一个干净的状态开始。
  2. 参数辨识(可选):如果用户启用了电机参数自学习功能(如静止辨识定子电阻Rs),系统会进入STATUSGETPAR状态。在此状态下,性能层会执行特定的激励与观测算法(如ImTuneRs相关逻辑),以获取更精确的电机模型参数,从而提升矢量控制性能。
  3. 转速追踪(飞车启动):对于正在自由旋转的电机,系统会先进入STATUSSPEEDCHECK状态,利用无感算法或编码器信号快速估算出电机当前的实际转速,并将输出频率同步到该转速,实现平滑的“飞车启动”。
  4. 正常运行:进入STATUS_RUN状态后,系统根据用户选择的控制模式(V/F, SVC, FVC)执行相应的控制算法。例如,在SVC模式下,ImSVCAdIsr()函数会被周期性调用,完成磁链观测和电流环控制。
  5. 停机处理:停机时,系统会调用RunCaseStop(),执行驱动封锁、参数复位等操作,并根据停机方式(自由停车、减速停车、直流制动)执行相应逻辑。

四、关键功能模块解析

1. 通信协议栈

系统支持多种工业通信协议,其处理逻辑被高度抽象。以Modbus和Profibus-DP为例:

  • 接收到的原始数据帧首先由底层SCI中断接收。
  • ModbusRcvDataDeal()CommDpRcvDataDeal()等函数中,根据帧头或协议标识进行解析,将操作(读/写)、地址、数据等信息提取到统一的中间结构体(如commRcvData)中。
  • 功能层的通用逻辑根据此结构体调用ModifyFunccodeEnter()等函数来访问或修改对应的功能码。
  • 最终,处理结果被封装成响应帧,通过ModbusSendDataDeal()CommDpSendDataDeal()发送出去。这种设计使得增加新的通信协议只需实现对应的解析与打包函数,而无需改动核心逻辑。

2. 故障诊断与处理

系统建立了完善的故障处理机制。所有可能的故障(过流、过压、欠压、过载、缺相等)都被定义为唯一的错误码。ErrorDeal()函数是故障处理的总入口,它会依次调用:

  • underVoltageDeal():处理欠压情况,可能触发瞬停不停功能。
  • UpdateError():更新当前的故障状态。
  • ErrorSceneSave():将故障发生时的关键现场数据(如电流、电压、频率)保存下来,便于后续分析。

3. 参数管理与非易失存储

所有用户可配置的参数(功能码)都集中在一个名为funcCode的大型联合体(union)中。系统通过GetCodeIndex()宏,可以灵活地通过不同的视图(如按组、按名称)访问同一个参数。对EEPROM的读写操作(ReadFuncCode, WriteFuncCode)被封装成状态机,包含写入、延时、读回校验等步骤,以确保在掉电等异常情况下数据的可靠性。

五、总结

汇川MD290/MD380/MD500系列变频器的软件系统展现了工业级嵌入式控制软件的典型设计范式:通过清晰的分层架构、精确的时间调度、模块化的功能设计以及严谨的错误处理机制,构建了一个既强大又稳健的控制平台。其核心在于将对实时性要求极高的电机控制算法与复杂的用户应用逻辑有效隔离,同时又通过高效的数据通道紧密协作,最终实现了高性能、高可靠性和高灵活性的完美统一。这种架构思想对于开发其他复杂的实时控制系统具有重要的借鉴意义。

变频器汇川的三种变频器源码,包括MD290,MD380,MD500变频器源码,基于TMS320F28035 新的SVC3算法,高速速度波动小,新的转子电阻,漏感辩识算法.

更多推荐