EV3100电梯专用变频器源代码
一、文档概述
本文档基于EV3100电梯专用变频器源代码(含寄存器定义文件f2810regs.h与核心逻辑文件f3a4u111.asm),从软件架构、核心功能模块、关键技术特性三个维度,对变频器软件的功能实现进行详细说明。文档立足于功能描述,仅在必要时引用核心代码片段以解释逻辑,避免过多代码泄露,适用于技术维护、功能扩展与合规性验证场景。
二、软件架构总览
EV3100变频器软件基于TI F2810 DSP芯片开发,采用“底层硬件抽象+中层核心控制+上层应用逻辑”的三层架构,整体流程遵循“初始化-运行控制-故障处理”的生命周期模型,具体架构如下:
| 架构层级 | 核心文件/模块 | 主要功能 |
|---|---|---|
| 底层硬件抽象 | f2810regs.h | 定义F2810芯片所有外设寄存器(如GPIO、ADC、EVA/EVB定时器、SCI/CAN通信等),为上层提供统一的硬件访问接口 |
| 中层核心控制 | f3a4u111.asm(初始化/控制模块) | 实现硬件初始化、PWM生成、速度/电流闭环控制、位置计算等核心逻辑 |
| 上层应用逻辑 | f3a4u111.asm(故障/电梯控制模块) | 针对电梯场景的楼层切换、安全保护、故障诊断与恢复等功能 |
软件运行的核心入口为cint00(复位中断入口),启动后依次执行硬件初始化、参数配置、中断使能,最终进入MAINLOOP主循环,循环处理电梯运行控制、故障检测、通信交互等任务。
三、核心功能模块详解
3.1 硬件初始化模块
初始化模块是软件运行的基础,负责将DSP外设与电梯专用硬件配置为预设工作状态,关键子模块如下:
3.1.1 系统核心初始化(`S_SYSINIT`)
- 功能:配置CPU核心状态、时钟与看门狗,确保硬件稳定运行。
- 禁用中断(
SETC INTM)、清除符号扩展(CLRC SXM)等CPU状态位; - 配置高速外设时钟(
HISPCP)与低速外设时钟(LOSPCP),适配电梯变频器的PWM输出(高速)与通信(低速)需求; - 初始化CPU定时器(Timer0/1/2),其中Timer0用于0.5ms周期任务调度,Timer1/2用于备用定时逻辑。
- 关键作用:通过
PLLCR寄存器配置系统时钟(如MOV @PLLCR,#05H实现XCLKIN×5倍频),为变频器的高速控制算法(如电流闭环)提供足够算力。
3.1.2 GPIO与外设初始化(`S_IOINIT`)
- 功能:配置GPIO引脚功能与方向,适配电梯变频器的输入输出需求。
- PWM输出配置:将GPIO A端口部分引脚(如Bit0~Bit5)配置为PWM输出,用于驱动电梯电机的逆变器;
- 控制信号配置:将特定引脚配置为使能信号(如Bit7)、编码器信号(Bit8~Bit9)、故障检测信号(如IPM故障输入);
- 通信引脚配置:GPIO F端口部分引脚(Bit4~Bit5)配置为SCI通信,用于与电梯控制柜的Modbus交互。
- 安全设计:初始化时将所有输出引脚置为低电平(如
MOV @GPACLEAR,#0xFF3F),避免电机误启动,符合电梯安全规范。
3.1.3 ADC与模拟量采集初始化(`S_ADCINIT`)
- 功能:配置ADC模块,实现电梯电机电流、电压等关键模拟量的采集。
- 配置
ADCTRL1/2寄存器,设置ADC采样频率与序列长度; - 初始化
ADCMAXCONV与ADCCHSELSEQ1~4,定义采样通道(如电机三相电流、直流母线电压)的采集顺序; - 通过
DELAY_10US延时确保ADC模块稳定启动。 - 核心价值:为电流闭环控制、过压/过流保护提供精准的模拟量数据,是变频器安全运行的基础。
3.1.4 EVA/EVB定时器初始化(`S_EVINIT`)
- 功能:配置EVA(事件管理器A)与EVB(事件管理器B),生成PWM波形并处理电机反馈信号。
- PWM生成:通过
T1CON配置Timer1为增减计数模式,结合ACTRA(动作控制寄存器)定义PWM输出极性(如PWM6/4/2高有效,PWM5/3/1低有效); - 死区控制:通过
DBTCONA配置死区时间(如MOV @DBTCONA,#0x6FC实现3.2μs死区),避免逆变器上下桥臂直通; - 编码器接口:将EVB的Timer4配置为正交编码(QEP)模式,用于读取电梯电机的转速与位置反馈。
3.2 电梯运行控制模块
运行控制模块是软件的核心,实现电梯从启动、加速、匀速到减速、停靠的全流程控制,关键子模块如下:
3.2.1 速度曲线生成(`S_TIME_LEVEL`与`S_DIRECT_LEVEL`)
- 功能:根据电梯的目标楼层与当前位置,生成符合人体舒适感的速度曲线(S曲线)。
- 时间基速度曲线(
STIMELEVEL):以时间为变量,计算加速段、匀速段、减速段的目标速度,确保电梯启动与停止时的加速度≤0.8m/s²(符合电梯舒适标准); - 距离基速度曲线(
SDIRECTLEVEL):以距离为变量,根据当前楼层与目标楼层的间距,动态调整减速点(如距离目标楼层500mm时开始减速); - 参数适配:通过
V11/V12/V21/V22等变量存储速度曲线的关键拐点(如加速终点、减速起点),适配不同载重下的电机特性。 - 用户体验优化:通过
VMINOFLINE函数计算最小速度阈值,避免电梯在低速段的抖动。
3.2.2 楼层切换与位置控制(`S_LAYER_CHANGED`与`SUB_LAYER_CONTROL`)
- 功能:实现电梯的楼层识别、切换与精准停靠,核心是“位置计算-楼层判断-速度调整”的闭环。
- 楼层识别:通过
SUBNOWLAYERCAL函数,结合编码器反馈的位置数据(T4CNT)与预设楼层高度,计算当前楼层; - 楼层切换触发:当电梯进入楼层区域(通过
TERMINALFLAG3检测楼层传感器信号)时,触发SLAYERCHANGED,更新当前楼层(NOWLAYER)并重置位置计数器; - 精准停靠控制:通过
SUBLAYERCONTROL函数,根据目标楼层(TO_LAYER)与当前位置的差值,调整速度曲线的减速段参数,确保停靠误差≤±5mm。 - 安全设计:当检测到楼层传感器故障(如
VALID寄存器相关位清零)时,自动切换为“距离基控制”,避免楼层误判。
3.2.3 电机驱动与PWM控制(`S_PWM_INI`与`I_NORM_RUNZ`)
- 功能:根据速度曲线的目标速度,生成PWM信号驱动电机,实现速度闭环控制。
- PWM初始化:
SPWMINI配置EVA的比较寄存器(CMPR1~3),设置初始占空比; - 速度闭环:
INORMRUNZ函数根据目标速度(V_SET1)与实际速度(编码器反馈计算)的差值,通过PI算法调整PWM占空比,确保速度控制精度≤±0.1Hz; - 过流保护:在PWM输出前检测
OVER_CURRENT故障信号,若触发则立即关断PWM(DISPWM),保护电机与逆变器。
3.3 故障诊断与安全保护模块
电梯变频器的安全等级要求极高,故障模块通过“实时检测-分级处理-故障恢复”的逻辑,确保设备与人员安全,核心子模块如下:
3.3.1 故障检测(`S_FAULT_MODEL`)
- 功能:实时检测变频器与电梯的关键故障,覆盖电气故障与机械故障。
- 电气故障:包括输入缺相(
SINLOSS)、输出缺相(SOUTLOSS)、过压(SOVSOFT)、过流(OVERCURRENT)、IPM模块过热(OVERHEAT); - 机械与安全故障:包括编码器断线(
SUBPGOFAULT)、制动器故障(SBRAKEFAULT)、电梯超速(SOVERSPEED); - 检测逻辑:通过“硬件引脚中断+软件定时轮询”结合的方式,如IPM故障通过GPIO中断触发,超速通过定时比较实际速度与最大速度(
MAX_SPEED)实现。
3.3.2 故障处理(`ERROR_DEAL`与`HANDRESET/AUTORESET`)
- 功能:根据故障等级分级处理,确保故障响应符合电梯安全规范。
- 紧急故障(如IPM故障):立即关断PWM输出(
DISPWM)、触发制动器(TSET @Y12,#2)、上报故障代码(如_ERRORCODE1=#10),禁止自动恢复; - 一般故障(如轻度过载):通过
AUTORESET实现自动恢复(如3次重试,每次间隔10s),恢复失败则切换为手动复位(HANDRESET); - 故障记录:通过
SUB_ERRORRECORD函数,将故障发生时的电流、电压、速度数据存储到EEPROM,便于后期故障分析。
3.3.3 安全连锁控制(`S_POFF_DETECT`与`POFF_ERROR_DEAL`)
- 功能:检测电网掉电(POFF)故障,实现电梯的紧急停靠。
- POFF检测:通过
SPOFFDETECT检测三相输入电压(GPADAT的Bit12),若检测到掉电则置位COMD_CONTROL的Bit14; - 紧急处理:
POFFERRORDEAL触发后,立即切换为电池供电(若配置),控制电梯以爬行速度(CREEP_SPEED)停靠到最近楼层,避免困人。
3.4 通信与交互模块
变频器需与电梯控制柜、上位机进行数据交互,核心是Modbus通信与参数配置,关键子模块如下:
3.4.1 Modbus通信(`_ModbusProtocolHandler`)
- 功能:通过SCI接口实现Modbus-RTU协议,与电梯控制柜交互运行指令与状态。
- 指令处理:解析控制柜发送的“楼层指令”“启动/停止指令”,更新
TOLAYER与RUNFLAG; - 状态上报:定期上报变频器运行状态(如当前楼层、速度、故障代码),上报周期≤100ms;
- 数据校验:通过CRC校验确保通信数据完整性,避免指令误执行。
3.4.2 参数配置与存储(`S_PARA_WRITEEEPROM`)
- 功能:实现电梯变频器的参数(如楼层高度、速度限制、保护阈值)的配置与掉电保存。
- 参数写入:通过
SStoreWordToE2PROM函数,将用户配置的参数(如SPACEADJUST楼层间距)写入EEPROM; - 参数校验:
S_PARACHECK函数在启动时校验EEPROM参数的合法性(如楼层高度≥2000mm),非法则使用默认值; - 安全限制:仅在电梯停止(
STATUSRUNSTOP的Bit0清零)时允许参数修改,避免运行中参数变更导致故障。
四、关键技术特性与安全设计
4.1 实时性设计
- 任务调度:通过Timer0实现0.5ms周期调度,处理PWM更新、电流采样等高速任务;1ms周期处理楼层判断、通信等中速任务;1s周期处理故障记录、参数保存等低速任务;
- 中断优先级:通过PIE控制器(
PIECTRL/PIEIER1~12)设置中断优先级,故障中断(如IPM故障)优先级最高,确保紧急故障的快速响应(响应时间≤10μs)。
4.2 安全合规设计
- 故障导向安全:任何故障触发后,优先执行“关断输出-触发制动-上报故障”的安全逻辑,符合GB 7588电梯安全规范;
- 冗余设计:关键信号(如编码器位置)采用双路采集,若两路数据差值超过阈值,立即切换为备用控制逻辑;
- 软件看门狗:通过
WDCR寄存器配置看门狗(如MOV @WDCR,#02FH),若软件死锁则触发硬件复位,避免设备失控。
4.3 可维护性设计
- 故障代码体系:通过
_ERRORCODE1定义30+故障代码(如E010=IPM故障,E035=接触器故障),便于现场排查; - 参数备份:EEPROM中存储2套参数(用户配置+默认配置),用户参数损坏时自动加载默认值,减少停机时间;
- 运行日志:记录变频器的启动次数、运行时长、故障次数等数据(
TIMESRUNH/L),支持后期运维分析。
五、总结
EV3100电梯专用变频器软件通过模块化设计,实现了“精准控制-安全保护-便捷交互”的核心需求,其功能设计深度契合电梯场景的特殊性:
- 控制精度:通过S曲线速度控制与位置闭环,确保电梯运行平稳(加速度≤0.8m/s²)与停靠精准(误差≤±5mm);
- 安全等级:全流程故障检测与分级处理,满足电梯的高安全要求;
- 适配性:可通过参数配置适配不同楼层高度(1~60层)与电机功率(如15KW/30KW)的电梯需求。
后续扩展可聚焦于“数字化升级”,如增加以太网通信接口、接入电梯物联网平台,实现远程监控与预测性维护。
EV3100电梯专用变频器源代码