282 lines
7.1 KiB
C
282 lines
7.1 KiB
C
#ifndef __PTZ_FAULT_DETECT_H_
|
||
#define __PTZ_FAULT_DETECT_H_
|
||
#include "Usart.h"
|
||
#include "ptz_default_value.h"
|
||
#include "ptz_type_select.h"
|
||
|
||
#define ROTATE_FAULT_MAX_NUM 10 // 8 //判断转动故障连续最大次数
|
||
|
||
// 判断无法转动的模拟电压等级阈值电压
|
||
#define PTZ_HORI_VOLTAGE_LEVEL 1900.0
|
||
#define PTZ_VERT_VOLTAGE_LEVEL 1900.0
|
||
// 判断无法转动速度的阈值速度
|
||
#define PTZ_HORI_DETECT_SPEED (PTZ_HORI_MIN_SPEED / 3.0)
|
||
#define PTZ_VERT_DETECT_SPEED (PTZ_VERT_MIN_SPEED / 3.0)
|
||
|
||
// 故障标志
|
||
#define FAULT 1 // 故障
|
||
#define NO_FAULT 0 // 没有故障
|
||
|
||
/*故障指令代号*/
|
||
#define HORI_ROT 0X21
|
||
#define HORI_HALL 0X22
|
||
#define HORI_PDE 0X23
|
||
|
||
#define VERT_ROT 0X24
|
||
#define VERT_HALL 0X25
|
||
#define VERT_PDE 0X26
|
||
|
||
#define WORK_TEMP 0X27 // 温度故障
|
||
#define WORK_VOLT 0X28 // 电压故障
|
||
#define CAMERA_POWER 0X29 // 电源状态
|
||
|
||
#define NTC_HORI 0X2B // 水平NTC温度
|
||
#define NTC_VERT 0X2C // 垂直NTC温度
|
||
|
||
#define Phase_Curr_H 0X2D // 水平相电流
|
||
#define Phase_Curr_V 0X2E // 垂直相电流
|
||
|
||
#define ALL_FAULT_STATE 0X20 // 所有都故障
|
||
|
||
#define WORK_ELECTRIC_CURRENT 0x2A // 工作电流
|
||
#define VERT_PHOTOELECT_SWITCH 0x2F // 垂直光电开关
|
||
|
||
// 上传云台转动方向
|
||
#define PTZ_UP 1 // 上
|
||
#define PTZ_DOWN 2 // 下
|
||
#define PTZ_LEFT 3 // 左
|
||
#define PTZ_RIGHT 4 // 右
|
||
|
||
/******************************云台工作状态判断*****************************/
|
||
#define SELF_CHECKING 1 // 云台自检中
|
||
#define AREA_SCANING 2 // 区域扫描中
|
||
#define AREA_PAUSING 3 // 区域扫描暂停中
|
||
#define AREA_RECOING 4 // 区域扫描恢复中
|
||
#define AREA_CLOSING 5 // 区域扫描关闭中
|
||
#define PP_SCANING 6 // 预置位扫描中
|
||
#define PP_PAUSING 7 // 预置位扫描暂停中
|
||
#define PP_RECOING 8 // 预置位扫描恢复中
|
||
#define PP_CLOSING 9 // 预置位扫描关闭中
|
||
#define HORI_VREF_SAMP 10 // 正在进行水平电压采集
|
||
#define VERT_VREF_SAMP 11 // 正在进行垂直电压采集
|
||
#define HOVE_VREF_SAMP 12 // 水平电压采集和垂直电压同时采集
|
||
#define HORI_PD_ERROR 13 // 水平位置更新出错
|
||
#define VERT_PD_ERROR 14 // 垂直位置更新出错
|
||
#define HOVE_PD_ERROR 15 // 水平垂直位置更新都出错
|
||
#define MOTOR_COLD_CANNOT_ROT 16 // 电机低温无法转动,加热中
|
||
|
||
#define MOTOR_HORI_COLD_CANNOT_ROT 0xfa // 云台水平电机无法转动,转动故障
|
||
#define MOTOR_VERT_COLD_CANNOT_ROT 0xfb // 云台垂直电机无法转动,转动故障
|
||
#define MOTOR_HORI_CANNOT_ROT 0xfc // 云台水平电机无法转动,转动故障
|
||
#define MOTOR_VERT_CANNOT_ROT 0xfd // 云台垂直电机无法转动,转动故障
|
||
#define MOTOR_HOVE_CANNOT_ROT 0xfe // 云台所有电机无法转动,转动故障
|
||
#define OTHER_MODE 0 // 其他模式
|
||
|
||
// 直齿轻型云台
|
||
#ifdef PTZ_LIGHT_GEAR_L6235D_AS5047D
|
||
// 工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 70.0 // 65.0
|
||
#define PTZ_TEMP_DETECT_MIN -40.0 //-25.0 //山火云台温度阈值-40-70
|
||
|
||
// 工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0 // 30.0
|
||
#define PTZ_VOLT_DETECT_MIN 18.0 // 30.0
|
||
|
||
// 工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0 // 5.0
|
||
|
||
// 霍尔故障阈值
|
||
#define PTZ_HALL_DETECT 30 // 30
|
||
|
||
// 相电流运行最大值
|
||
#define PHASE_CURRENT 6.0
|
||
|
||
#endif
|
||
// L6235D蜗轮蜗杆中型云台
|
||
#ifdef PTZ_MEDIUM_WORM_L6235D_AS5047D
|
||
// 工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 // 70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0 // 70.0
|
||
|
||
// 工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0 // 30.0
|
||
#define PTZ_VOLT_DETECT_MIN 18.0 // 30.0
|
||
|
||
// 工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0 // 5.0
|
||
|
||
// 霍尔故障阈值
|
||
#define PTZ_HALL_DETECT 30 // 30
|
||
|
||
// 相电流运行最大值
|
||
#define PHASE_CURRENT 3.5
|
||
#endif
|
||
|
||
// L6235D涡轮蜗杆重型云台
|
||
#ifdef PTZ_HEAVY_WORM_L6235D_AS5047D
|
||
// 工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 // 70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0 // 70.0
|
||
|
||
// 工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0 // 30.0
|
||
#define PTZ_VOLT_DETECT_MIN 18.0 // 30.0
|
||
|
||
// 工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0 // 5.0
|
||
|
||
// 霍尔故障阈值
|
||
#define PTZ_HALL_DETECT 30 // 30
|
||
|
||
// 相电流运行最大值
|
||
#define PHASE_CURRENT 5.0
|
||
#endif
|
||
|
||
#ifdef PTZ_SUPER_LIGHT_WORM_L6235D_AS5047D_12V
|
||
// 工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 // 70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0 // 70.0
|
||
|
||
// 工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 14.0 // 30.0
|
||
#define PTZ_VOLT_DETECT_MIN 9.0 // 30.0
|
||
|
||
// 工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0 // 5.0
|
||
|
||
// 霍尔故障阈值
|
||
#define PTZ_HALL_DETECT 30 // 30
|
||
|
||
// 相电流运行最大值
|
||
#define PHASE_CURRENT 3.0
|
||
#endif
|
||
|
||
#ifdef PTZ_SUPER_LIGHT_WORM_L6235D_AS5047D_24V
|
||
// 工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 // 70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0 // 70.0
|
||
|
||
// 工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0 // 30.0
|
||
#define PTZ_VOLT_DETECT_MIN 18.0 // 30.0
|
||
|
||
// 工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0 // 5.0
|
||
|
||
// 霍尔故障阈值
|
||
#define PTZ_HALL_DETECT 30 // 30
|
||
|
||
// 相电流运行最大值
|
||
#define PHASE_CURRENT 3.0
|
||
#endif
|
||
|
||
// 步进电机
|
||
#ifdef PTZ_SUPER_LIGHT_WORM_STEP_DRV8711_AS5047D_12V
|
||
// 工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 // 70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0 // 70.0
|
||
|
||
// 工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 14.0 // 30.0
|
||
#define PTZ_VOLT_DETECT_MIN 9.0 // 30.0
|
||
|
||
// 工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0 // 5.0
|
||
#endif
|
||
|
||
// 步进电机
|
||
#ifdef PTZ_SUPER_LIGHT_WORM_STEP_DRV8711_AS5047D_24V
|
||
// 工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 // 70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0 // 70.0
|
||
|
||
// 工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0 // 30.0
|
||
#define PTZ_VOLT_DETECT_MIN 9.0 // 30.0
|
||
|
||
// 工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0 // 5.0
|
||
#endif
|
||
|
||
// 步进电机
|
||
#ifdef PTZ_SUPER_LIGHT_WORM_STEP_TMC2160_AS5047D_24V
|
||
// 工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 // 70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0 // 70.0
|
||
|
||
// 工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0 // 30.0
|
||
#define PTZ_VOLT_DETECT_MIN 9.0 // 30.0
|
||
|
||
// 工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0 // 5.0
|
||
#endif
|
||
|
||
// 中型步进电机
|
||
#ifdef PTZ_MEDIUM_WORM_STEP_TMC2160_AS5047D_24V
|
||
// 工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 // 70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0 // 70.0
|
||
|
||
// 工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0 // 30.0
|
||
#define PTZ_VOLT_DETECT_MIN 9.0 // 30.0
|
||
|
||
// 工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0 // 5.0
|
||
#endif
|
||
|
||
// 伺服电机
|
||
#ifdef PTZ_MEDIUM_WORM_SERVO_MOTOR_24V
|
||
// 工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 // 70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0 // 70.0
|
||
|
||
// 工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0 // 30.0
|
||
#define PTZ_VOLT_DETECT_MIN 9.0 // 30.0
|
||
|
||
// 工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 10.0 // 5.0
|
||
#endif
|
||
|
||
/// 需要判断能否执行的指令
|
||
typedef struct _PtzCmdType_
|
||
{ // 当参数为1时表示该指令能够执行,0表示不能够被执行
|
||
char manual_control; // 手动控制,包括上下左右等方向控制,和角度控制
|
||
|
||
char manual_stop; // 手动停止指令
|
||
|
||
char preset_bit_set; // 预置位设置
|
||
char preset_bit_del; // 预置位删除
|
||
char preset_bit_call; // 预置位调用
|
||
|
||
char preset_bit_scan_start; // 预置位扫描启动
|
||
char preset_bit_scan_pause; // 预置位扫描暂停
|
||
char preset_bit_scan_recovery; // 预置位扫描恢复
|
||
char preset_bit_scan_close; // 预置位扫描关闭
|
||
|
||
char area_set; // 区域数据设置
|
||
char area_scan_start; // 区域扫描启动
|
||
char area_scan_pause; // 区域扫描暂停
|
||
char area_scan_recovery; // 区域扫描恢复
|
||
char area_scan_close; // 区域扫描关闭
|
||
|
||
char set_zero; // 设置0位
|
||
|
||
} PtzCmdType;
|
||
|
||
// 云台工作模式判断
|
||
typedef struct _PtzWorkMode_
|
||
{
|
||
char mode;
|
||
char data_a;
|
||
char data_b;
|
||
} PtzWorkMode;
|
||
|
||
PtzWorkMode ptz_work_mode_judge();
|
||
PtzCmdType ptz_cmd_execute_judge();
|
||
void ptz_send_work_mode(char dev);
|
||
void init_status_monitor_module();
|
||
void ptz_send_fault_state(char dev, unsigned char FaultState);
|
||
#endif |