唯助航电动滚筒控制器主要功能和使用说明如下:

1. 功能:

  • 基本控制功能:
  • 启动和停止控制:能够控制电动滚筒的开启与关闭操作,确保设备可以根据生产或输送需求随时启动或停止。 例如,在物料输送系统中,当需要开始输送物料时,可启动电动滚筒;当输送任务完成或出现异常情况时,可及时停止电动滚筒。
  • 正反转控制:可以切换电动滚筒的旋转方向,满足不同的工作场景需求。比如在皮带输送机的卸料过程中,可能需要电动滚筒反转来将物料卸出。
  • 速度调节功能:
  • 多档调速或无级调速:部分控制器支持多档速度调节,有多个预设的速度档位可供选择,以适应不同的物料输送速度要求; 有些较为先进的控制器还具备无级调速功能,能够实现对电动滚筒速度的连续、精确调节,使设备运行更加灵活高效。
  • 速度反馈与稳定:通过接收来自电动滚筒的速度反馈信号,实时监测滚筒的实际运行速度,并与设定速度进行比较,自动调整输出信号, 确保电动滚筒的速度保持稳定,避免因负载变化等因素导致速度波动。
  • 保护功能:
  • 过流保护:当电动滚筒的工作电流超过设定的安全阈值时,控制器会自动切断电源,防止电机因电流过大而损坏。 例如,在电动滚筒遇到卡滞或过载情况时,过流保护功能可以有效保护电机。
  • 过热保护:内置温度传感器,实时监测电动滚筒的温度。当温度过高时, 控制器会采取相应的保护措施,如降低输出功率或停止运行,以防止电机因过热而烧毁。
  • 短路保护:当电路出现短路故障时,控制器能够迅速切断电路,避免因短路引发的安全事故和设备损坏。
  • 通信与监控功能:
  • 通信接口:具备通信接口,可与其他设备或控制系统进行通信,实现远程监控和集中管理。 例如,通过与上位机系统连接,操作人员可以在控制室远程监控电动滚筒的运行状态,并进行远程控制操作。
  • 状态显示:配备显示屏或指示灯等显示装置,能够实时显示电动滚筒的运行参数, 如速度、电流、温度等,以及控制器的工作状态,方便操作人员随时了解设备的运行情况。

2.主要通讯模式和接口: 驱动器 48V 直流输入,额定输出功率 400W,间歇工作制 25%,RS485通讯控制运行速度和方向并反馈控制器状态。 另外,通过端子辅助控制电机启停和旋转方向。

3.测试用例和待测内容: (1)电滚筒运行噪音测试 (2)电滚筒转速精度测试 (3)电滚筒长时间运行测试 (4)电滚筒驱动器组网稳定性测试 (5)电滚筒精度测试 (6)电滚筒交叉带环形安装测试 (7)电滚筒交叉带环形安装飘格测试

1.硬件原理图

主芯片采用STM32F103,主频96M,两路单独的AD模块。

2.主代码函数框架

主函数:

/*********************************************************************************************************
** Function name:           main
** Descriptions:            主程序
** input parameters:        none
** output parameters:       none
** Returned value:          none       
*********************************************************************************************************/
int  main (void)
{
		App_Handle_Init();
		BLDC_System_Init();	
		MT_Struct.ulSpeedTarRpm = 0;
		MT_Struct.ucDir = MT_DIR_N;
		master_status = LOOP_INIT;
	          	
    for(;;)     
		{    
		    while(mainpuls){
		        mainpuls=0;
		        mainloop();
		    }
		    
				if(MT_Struct.ucSpeedUpdateFlag == 1){		
				    Uart1_Send();	
				    MT_Struct.ucSpeedUpdateFlag = 0;
				}
				
				if(MT_Struct.uc485BackFlag != 0){
            Uart0_Send485();
				    MT_Struct.uc485BackFlag = 0;
				}
				
#ifdef EN_MULTI				  
		    if(flash_ctl.en_write==1){
		        Flash_Write(CHIP_ADDR,CHIP_SIZE,&chip_ini);
		        flash_ctl.en_write = 0;
		        delay1ms(1); 
		    }
#endif					
		} 
}

电机状态机,包括电机的空闲,运行,故障等各部分状态的转换,部分程序如下:

 /*********************************************************************************************************
** Function name:           MT_Run
** Descriptions:            状态机.无感方波驱动的运行函数
** input parameters:        none
**--------------------------------------------------------------------------------------------------------
** Modified by:             
** Modified date:           
**
*********************************************************************************************************/
void  MT_Run (void)
{
    static  INT32U  __GulRunOpenPwmDuty = 0;
    static  unsigned int  Stall_time=0;
    static  unsigned int  TimeDelay=0;
    static  unsigned int  Time_3000ms = 0; 

    switch (MT_Struct.ucRunState) 
		{
				case MT_STANDBY:                                                /* 空闲状态                     */		    
				    if(run_same!=0){	            
				    }  
				    
						if(MT_Struct.ulSpeedTarRpm > ZMC_BLDC_MIN_SPEED){						/* 设定好了目标速度后开始运行		*/
								MT_Struct.ucRunState = MT_CHARGE;                      	/* 进入预充电状态               */
						}
					  break;
						
				case MT_CHARGE:                                                 /* 预充电状态                   */
				   
				    if(--TimeDelay == 0){
				        MT_Struct.ucRunState = MT_DRAG_1;
				        TimeDelay = 0;
				    }	
						break;
						
				case MT_DRAG_1:                                                  /* 开环第一次拖动状态          */
						
						if(Gnow_duty < BLDC_PARK_PWM_DUTY){     
						    Gnow_duty += 100;
						}
						BldcPwmDuty(Gnow_duty);                          	        	/* 占空比输出                   */	
						if(MT_Struct.ulSpeedTarRpm == 0){
								MT_Struct.ucRunEn = 0;
								MT_Struct.ulSpeedActRpm = 0;
								GtPid.qRef = 0;
							  MT_Struct.ucRunState = MT_STANDBY;
						}	
						if(++Time_3000ms > 3000){
								MT_Struct.ucRunEn = 0;
								MT_Struct.ulSpeedActRpm = 0;
								GtPid.qRef = 0;
							  MT_Struct.ucRunState = MT_STANDBY; 
						}		
						break;  	
				    
				case MT_START:                                                 	/* 正常运行状态                 */
				    if(run_same!=0){ 
				        if(MT_Struct.ucRunEn == 0){
								    MT_Struct.ucRunEn = 1;
						    }
						    Time_200ms = 0;						    
				    }
               
						if(MT_Struct.ulSpeedTarRpm == 0){
								MT_Struct.ucRunEn = 0;
								MT_Struct.ulSpeedActRpm = 0;
								GtPid.qRef = 0;
							  MT_Struct.ucRunState = MT_STANDBY;
						}
						break;
						
				case MT_STALL:
				    if(run_same!=0){
				        BldcPwmOff();                                                /* PWM禁止输出                  */
				    }			  
				    if(++Stall_time > 30000){
								MT_Struct.ucRunEn = 0;
								MT_Struct.ulSpeedActRpm = 0;
								GtPid.qRef = 0;
							  MT_Struct.ucRunState = MT_STANDBY;
							  Stall_time = 0;
				    }                                         				
						break;
				
				case MT_FAULT:																												/* 异常状态:过流、堵转等       */
			    if(run_same!=0){
				        BldcPwmOff();                                                /* PWM禁止输出                  */
				    }			     
				
				case MT_BRAKE:																												/* 异常状态:过流、堵转等       */
			    if(run_same!=0){
				        MT_Struct.ucRunEn = 0;                                       /* 运行禁能                     */	
				        BldcPwmOff();                                                /* PWM禁止输出                  */
				    }			     
						break;
						
				case MT_STOP:          																								/* 停机									       */
			    if(run_same!=0){
				        MT_Struct.ucRunEn = 0;                                       /* 运行禁能                     */	
				        BldcPwmOff();                                                /* PWM禁止输出                  */
				    }			     
						break;
						
				default :
						MT_Struct.ucRunState = MT_STOP;
						break;
    }       

MT_STANDBY是电机的空闲状态,每次的电机故障或停止后均转入空闲状态。 MT_CHARGE是电机的预充电状态,是开始运行前的前期准备状态。 MT_START是电机的开始运行状态。 MT_STALL是电机堵转状态。 MT_FAULT是电机的故障状态。 MT_STOP是电机的停止状态。

欢迎邮件沟通。