Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
9416f001
提交
9416f001
authored
7月 19, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复充电时压差大引起的问题
上级
bdb3b65c
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
188 行增加
和
360 行删除
+188
-360
Drv_DcModule.h
DcPillar/Src/Drivers/Drv_DcModule.h
+1
-1
Drv_DcModule_SmartAllocation.c
DcPillar/Src/SmartAllocation/Drv_DcModule_SmartAllocation.c
+2
-2
Drv_SmartAllocation.c
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
+185
-357
没有找到文件。
DcPillar/Src/Drivers/Drv_DcModule.h
浏览文件 @
9416f001
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
#include "Global.h"
#include "Global.h"
#define DcModule_ZhongXing
0
#define DcModule_ZhongXing
1
#define DcModule_BaudRate (250)
#define DcModule_BaudRate (250)
...
...
DcPillar/Src/SmartAllocation/Drv_DcModule_SmartAllocation.c
浏览文件 @
9416f001
...
@@ -331,7 +331,7 @@ void DcModule(void const * parameter)
...
@@ -331,7 +331,7 @@ void DcModule(void const * parameter)
DcModuleAbility
.
SingleMaxCurrt
=
UserParam
.
SingleMaxCurrt
;
DcModuleAbility
.
SingleMaxCurrt
=
UserParam
.
SingleMaxCurrt
;
DcModeMsg
=
NULL
;
DcModeMsg
=
NULL
;
osMessageQDef
(
DcModeMsg
,
128
,
StructDcModuleSend
);
osMessageQDef
(
DcModeMsg
,
256
,
StructDcModuleSend
);
DcModeMsg
=
osMessageCreate
(
osMessageQ
(
DcModeMsg
),
NULL
);
DcModeMsg
=
osMessageCreate
(
osMessageQ
(
DcModeMsg
),
NULL
);
u32
SendTick
=
GetSystemTick
();
u32
SendTick
=
GetSystemTick
();
...
@@ -361,7 +361,7 @@ void DcModule(void const * parameter)
...
@@ -361,7 +361,7 @@ void DcModule(void const * parameter)
u8
DcModuleInit
(
void
)
u8
DcModuleInit
(
void
)
{
{
osThreadDef
(
DcModule
,
DcModule
,
osPriorityAboveNormal
,
0
,
configMINIMAL_STACK_SIZE
);
osThreadDef
(
DcModule
,
DcModule
,
osPriorityAboveNormal
,
0
,
2
*
configMINIMAL_STACK_SIZE
);
if
(
NULL
==
osThreadCreate
(
osThread
(
DcModule
),
NULL
))
if
(
NULL
==
osThreadCreate
(
osThread
(
DcModule
),
NULL
))
return
FALSE
;
return
FALSE
;
...
...
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
浏览文件 @
9416f001
...
@@ -75,6 +75,10 @@ UnionDcModuleStatus DcModuleStatus;
...
@@ -75,6 +75,10 @@ UnionDcModuleStatus DcModuleStatus;
UnionDcModuleStatus
DcModuleStatus_A
;
UnionDcModuleStatus
DcModuleStatus_A
;
UnionDcModuleStatus
DcModuleStatus_B
;
UnionDcModuleStatus
DcModuleStatus_B
;
void
RelaySwtichHandle
(
u8
group
);
void
RelaySwtichHandle1
(
u8
group
);
void
DcModuleManageProcess_SmartAllocation
(
void
)
void
DcModuleManageProcess_SmartAllocation
(
void
)
{
{
static
u32
CheckTick
=
0
;
static
u32
CheckTick
=
0
;
...
@@ -260,399 +264,67 @@ void DcModuleManageProcess_SmartAllocation(void)
...
@@ -260,399 +264,67 @@ void DcModuleManageProcess_SmartAllocation(void)
void
DcModuleCtrlProcess_SmartAllocation
(
void
)
void
DcModuleCtrlProcess_SmartAllocation
(
void
)
{
{
static
u32
CtrlTick
=
0
;
static
u8
LastFlag_A
=
0
;
static
u8
LastFlag_B
=
0
;
u32
Temp
=
0
;
u32
Temp
=
0
;
static
u32
Tick
=
0
;
//
static
u32
Tick
=
0
;
//
u8
flag
=
0
;
if
((
GetSystemTick
()
-
Tick
)
<
100
)
if
((
GetSystemTick
()
-
Tick
)
<
100
)
{
{
return
;
return
;
}
}
Tick
=
GetSystemTick
();
Tick
=
GetSystemTick
();
/*static StructDcModuleUsedStatus status[4] =
{
Invalid, Invalid, Invalid, Invalid
};
static StructDcModuleUsedStatus status1[4] =
{
Invalid, Invalid, Invalid, Invalid
};
u8 addr;
u32 Volt = 0;
u8 Cmd = 0;
u32 Current = 0;
for (u8 i = 0; i < DcModuleGroupSize; i++)
{
if (status[i] != DcModuleGroup[i].status)
{
Volt = DcModuleAbility.MinVolt * 100;
Current = DcModuleAbility.MinCurrt * 100;
if (DcModuleGroup[i].status == Valid) //释放模块,模块关机
{
//关机, 检测电流, 释放继电器
if (status[i] == Hold_A)
{
if (i == 0)
{
DcModuleManage.SetVolt = DcModuleAbility.MinVolt * 100;
DcModuleManage.SetCurrt = DcModuleAbility.MinCurrt * 100;
DcModuleManage.Cmd = 0xAA; //关机
}
else
{
//关机降流
Current = 0;
}
Temp = 1;
}
else if (status[i] == Hold_B)
{
if (i == 2)
{
DcModuleManage_B.SetVolt = DcModuleAbility.MinVolt * 100;
DcModuleManage_B.SetCurrt = DcModuleAbility.MinCurrt * 100;
DcModuleManage_B.Cmd = 0xAA; //关机
}
else
{
//关机降流
Current = 0;
}
Temp = 1;
}
else
{
status[i] = DcModuleGroup[i].status;
continue;
}
Cmd = 0xAA; //关机
DcModuleGroup[i].flag = 0;
}
else if (DcModuleGroup[i].status == Hold_A) //分配到A枪的模块
{
// 开机, 升压, 切换继电器
if (i != 0) //升压
{
Volt = DcModuleManage.SetVolt;
Temp = 1;
}
else if (status[i] == Hold_B)
{
//处理模块0组被B枪占用
//GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
}
else
{
status[i] = DcModuleGroup[i].status;
continue;
}
Cmd = 0x55; //开机
}
else if (DcModuleGroup[i].status == Hold_B)
{
// 开机, 升压, 切换继电器
if (i != 2) //升压
{
Volt = DcModuleManage_B.SetVolt;
Temp = 1;
}
else if (status[i] == Hold_A)
{
//处理模块组 2 被A枪占用
//GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
}
else
{
status[i] = DcModuleGroup[i].status;
continue;
}
Cmd = 0x55; //开机
}
else
{
status[i] = DcModuleGroup[i].status;
continue;
}
SendDataToDcModule(i, Cmd, Volt, Current);
status[i] = DcModuleGroup[i].status;
}
}
if (Temp)
return;
Temp = 0;*/
//检测升压 或者 降流
//检测升压 或者 降流
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
{
{
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
&&
i
!=
0
)
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
&&
i
!=
0
)
{
{
if
(
abs
((
s16
)
(
DcModuleGroup
[
i
].
Voltage
)
-
(
s16
)
(
DcModuleManage
.
SetVolt
/
100
))
>
100
)
//差距在10V以内,升压完成
if
(
abs
((
s16
)
(
DcModuleGroup
[
i
].
Voltage
)
-
(
s16
)
(
DcModuleManage
.
SetVolt
/
100
))
>
100
&&
DcModuleGroup
[
i
].
flag
==
1
)
{
{
Temp
++
;
flag
++
;
DcModuleManage
.
Cmd
=
0x55
;
//开机
SendDataToDcModule
(
i
,
DcModuleManage
.
Cmd
,
DcModuleManage
.
SetVolt
,
DcModuleAbility
.
MinCurrt
*
100
);
}
}
else
else
{
{
//差距在10V以内,升压完成,可以切换继电器
DcModuleGroup
[
i
].
flag
=
0
;
DcModuleGroup
[
i
].
flag
=
0
;
RelaySwtichHandle1
(
i
);
}
}
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
&&
i
!=
2
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
&&
i
!=
2
)
{
{
if
(
abs
((
s32
)
(
DcModuleGroup
[
i
].
Voltage
)
-
(
s32
)
(
DcModuleManage_B
.
SetVolt
/
100
))
>
100
)
//差距在10V以内,升压完成,可以切换继电器
if
(
abs
((
s32
)
(
DcModuleGroup
[
i
].
Voltage
)
-
(
s32
)
(
DcModuleManage_B
.
SetVolt
/
100
))
>
100
&&
DcModuleGroup
[
i
].
flag
==
1
)
{
{
Temp
++
;
flag
++
;
DcModuleManage_B
.
Cmd
=
0x55
;
//开机
SendDataToDcModule
(
i
,
DcModuleManage_B
.
Cmd
,
DcModuleManage_B
.
SetVolt
,
DcModuleAbility
.
MinCurrt
*
100
);
}
}
else
else
{
{
//差距在10V以内,升压完成,可以切换继电器
DcModuleGroup
[
i
].
flag
=
0
;
DcModuleGroup
[
i
].
flag
=
0
;
RelaySwtichHandle1
(
i
);
}
}
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
else
if
(
DcModuleGroup
[
i
].
status
==
Valid
)
{
{
if
(
DcModuleGroup
[
i
].
Current
>
50
)
//电流小于5A,将降流完成, 可以释放继电器
if
(
DcModuleGroup
[
i
].
Current
>
50
)
{
{
Temp
++
;
flag
++
;
//SendCmdToDcModule(i, 0xAA); //关机
//SendDataToDcModule(i, 0xAA, DcModuleAbility.MinVolt * 100, DcModuleAbility.MinCurrt * 100);
}
}
else
if
(
DcModuleGroup
[
i
].
modules
[
0
].
status
.
Value
.
OnOff
==
DCModuleStatusOn
)
SendDataToDcModule
(
i
,
0xAA
,
DcModuleAbility
.
MinVolt
*
100
,
DcModuleAbility
.
MinCurrt
*
100
);
DcModuleGroup
[
i
].
flag
=
0
;
}
}
if
(
Temp
)
return
;
Temp
=
0
;
//切换继电器
if
(
DcModuleGroup
[
0
].
status
==
Hold_A
)
{
if
(
DcModuleGroup
[
2
].
status
==
Hold_A
)
//GPIO_SetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_On
);
else
//GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_Off
);
}
else
if
(
DcModuleGroup
[
0
].
status
==
Hold_B
)
{
//GPIO_SetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_On
);
}
else
{
//GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_Off
);
}
if
(
DcModuleGroup
[
1
].
status
==
Hold_A
)
{
//GPIO_ResetBits(RELAY_K7K8_Port, RELAY_K7K8_Pin);
//GPIO_SetBits(RELAY_K1K2_Port, RELAY_K1K2_Pin);
DcModeleRelaySet
(
Relay_K7K8
,
eSwSta_Off
);
DcModeleRelaySet
(
Relay_K1K2
,
eSwSta_On
);
}
else
if
(
DcModuleGroup
[
1
].
status
==
Hold_B
)
{
//GPIO_ResetBits(RELAY_K1K2_Port, RELAY_K1K2_Pin);
//GPIO_SetBits(RELAY_K7K8_Port, RELAY_K7K8_Pin);
DcModeleRelaySet
(
Relay_K1K2
,
eSwSta_Off
);
DcModeleRelaySet
(
Relay_K7K8
,
eSwSta_On
);
}
else
{
//GPIO_ResetBits(RELAY_K1K2_Port, RELAY_K1K2_Pin);
//GPIO_ResetBits(RELAY_K7K8_Port, RELAY_K7K8_Pin);
DcModeleRelaySet
(
Relay_K1K2
,
eSwSta_Off
);
DcModeleRelaySet
(
Relay_K7K8
,
eSwSta_Off
);
}
if
(
DcModuleGroup
[
2
].
status
==
Hold_A
)
{
//GPIO_SetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_On
);
}
else
if
(
DcModuleGroup
[
2
].
status
==
Hold_B
)
{
if
(
DcModuleGroup
[
0
].
status
==
Hold_B
)
//GPIO_SetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_On
);
else
//GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_Off
);
}
else
{
//GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_Off
);
}
if
(
DcModuleGroup
[
3
].
status
==
Hold_A
)
{
//GPIO_ResetBits(RELAY_K9K10_Port, RELAY_K9K10_Pin);
//GPIO_SetBits(RELAY_K3K4_Port, RELAY_K3K4_Pin);
DcModeleRelaySet
(
Relay_K9K10
,
eSwSta_Off
);
DcModeleRelaySet
(
Relay_K3K4
,
eSwSta_On
);
}
else
if
(
DcModuleGroup
[
3
].
status
==
Hold_B
)
{
//GPIO_ResetBits(RELAY_K3K4_Port, RELAY_K3K4_Pin);
//GPIO_SetBits(RELAY_K9K10_Port, RELAY_K9K10_Pin);
DcModeleRelaySet
(
Relay_K3K4
,
eSwSta_Off
);
DcModeleRelaySet
(
Relay_K9K10
,
eSwSta_On
);
}
else
{
//GPIO_ResetBits(RELAY_K3K4_Port, RELAY_K3K4_Pin);
//GPIO_ResetBits(RELAY_K9K10_Port, RELAY_K9K10_Pin);
DcModeleRelaySet
(
Relay_K3K4
,
eSwSta_Off
);
DcModeleRelaySet
(
Relay_K9K10
,
eSwSta_Off
);
}
/*for (u8 i = 0; i < DcModuleGroupSize; i++)
{
//if (status1[i] != DcModuleGroup[i].status)
{
if (DcModuleGroup[i].status == Valid)
{
{
//切换继电器
//电流小于5A,将降流完成, 可以释放继电器
//if (status1[i] == Hold_A)
RelaySwtichHandle1
(
i
);
{
if (i == 0)
{
}
else if (i == 1)
{
GPIO_ResetBits(RELAY_K1K2_Port, RELAY_K1K2_Pin);
}
else if (i == 2)
{
GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
}
else // if(i == 3)
{
GPIO_ResetBits(RELAY_K3K4_Port, RELAY_K3K4_Pin);
}
}
//else if (status1[i] == Hold_B)
{
if (i == 2)
{
}
else if (i == 0)
{
GPIO_ResetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
}
else if (i == 1)
{
GPIO_ResetBits(RELAY_K7K8_Port, RELAY_K7K8_Pin);
}
else if (i == 3)
{
GPIO_ResetBits(RELAY_K9K10_Port, RELAY_K9K10_Pin);
}
}
}
}
else if (DcModuleGroup[i].status == Hold_A)
{
SendDataToDcModule
(
i
,
0xAA
,
DcModuleAbility
.
MinVolt
*
100
,
DcModuleAbility
.
MinCurrt
*
100
);
//切换继电器
DcModuleGroup
[
i
].
flag
=
0
;
if (i == 0)
{
}
else if (i == 1)
{
GPIO_SetBits(RELAY_K1K2_Port, RELAY_K1K2_Pin);
}
else if (i == 2)
{
GPIO_SetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
}
else // if(i == 3)
{
GPIO_SetBits(RELAY_K3K4_Port, RELAY_K3K4_Pin);
}
}
else if (DcModuleGroup[i].status == Hold_B)
{
//切换继电器
if (i == 2)
{
}
else if (i == 0)
{
GPIO_SetBits(RELAY_K5K6_Port, RELAY_K5K6_Pin);
}
else if (i == 1)
{
GPIO_SetBits(RELAY_K7K8_Port, RELAY_K7K8_Pin);
}
else // if(i == 3)
{
GPIO_SetBits(RELAY_K9K10_Port, RELAY_K9K10_Pin);
}
}
else
{
}
}
}
//status1[i] = DcModuleGroup[i].status;
}*/
/*if (LastFlag_A != DcModuleCtrl.CtrlFlag)
{
LastFlag_A = DcModuleCtrl.CtrlFlag;
Temp++;
}
}
if (LastFlag_B != DcModuleCtrl_B.CtrlFlag)
{
LastFlag_B = DcModuleCtrl_B.CtrlFlag;
Temp++;
}
//if ((GetSystemTick() -CtrlTick) > 100)
{
//CtrlTick = GetSystemTick();
Temp++;
}
if (0 == Temp)
return;*/
if
(
DcModuleCtrl
.
CtrlFlag
)
if
(
DcModuleCtrl
.
CtrlFlag
)
{
{
if
(
DcModuleCtrl
.
NeedVolt
>
DcModuleAbility
.
MaxVolt
)
if
(
DcModuleCtrl
.
NeedVolt
>
DcModuleAbility
.
MaxVolt
)
...
@@ -954,11 +626,22 @@ void SendDataToDcModule_ZhongXing(u8 group_index, u8 cmd, u32 volt, u32 current)
...
@@ -954,11 +626,22 @@ void SendDataToDcModule_ZhongXing(u8 group_index, u8 cmd, u32 volt, u32 current)
DcModuleGroup
[
group_index
].
modules
[
j
].
CurrentSet
=
current
;
DcModuleGroup
[
group_index
].
modules
[
j
].
CurrentSet
=
current
;
}
}
/*
Bit4: 电压输出范围选择
0x00 --- 500V
0x01 --- 750
*/
u8
flag
=
0x00
;
if
(
volt
>
500000
)
//大于500V
{
flag
=
0x01
;
}
DataSend
.
Id
=
0x18059FA0
;
DataSend
.
Id
=
0x18059FA0
;
DataSend
.
Len
=
8
;
DataSend
.
Len
=
8
;
DataSend
.
Data
[
0
]
=
0x10
|
sendCmd
;
DataSend
.
Data
[
0
]
=
(
flag
<<
4
)
|
sendCmd
;
DataSend
.
Data
[
1
]
=
group_index
+
1
;
DataSend
.
Data
[
1
]
=
group_index
+
1
;
//if(current != 0)
if
(((
sendCmd
==
0x01
||
sendCmd
==
0x03
)
&&
DcModuleGroup
[
group_index
].
modules
[
0
].
status
.
Value
.
OnOff
!=
0x02
)
||
(
sendCmd
==
0x02
&&
DcModuleGroup
[
group_index
].
modules
[
0
].
status
.
Value
.
OnOff
!=
0x01
))
{
{
Temp
=
current
/
10
;
Temp
=
current
/
10
;
DataSend
.
Data
[
4
]
=
(
u8
)
(
Temp
>>
8
);
DataSend
.
Data
[
4
]
=
(
u8
)
(
Temp
>>
8
);
...
@@ -976,9 +659,17 @@ void SendDataToDcModule_ZhongXing(u8 group_index, u8 cmd, u32 volt, u32 current)
...
@@ -976,9 +659,17 @@ void SendDataToDcModule_ZhongXing(u8 group_index, u8 cmd, u32 volt, u32 current)
}
}
}
}
if
(
sendCmd
!
=
0x02
)
//非停止充电,下发修改充电参数
if
(
DcModuleGroup
[
group_index
].
modules
[
0
].
status
.
Value
.
OnOff
=
=
0x02
)
//非停止充电,下发修改充电参数
{
{
DataSend
.
Data
[
0
]
=
0x10
|
0x05
;
DataSend
.
Data
[
0
]
=
(
flag
<<
4
)
|
0x05
;
Temp
=
current
/
10
;
DataSend
.
Data
[
4
]
=
(
u8
)
(
Temp
>>
8
);
DataSend
.
Data
[
5
]
=
(
u8
)
(
Temp
>>
0
);
Temp
=
volt
/
100
;
DataSend
.
Data
[
2
]
=
(
u8
)
(
Temp
>>
8
);
DataSend
.
Data
[
3
]
=
(
u8
)
(
Temp
>>
0
);
DataSend
.
Data
[
6
]
=
(
u8
)
(
Temp
>>
8
);
DataSend
.
Data
[
7
]
=
(
u8
)
(
Temp
>>
0
);
if
(
pdTRUE
!=
xQueueSend
(
DcModeMsg
,
&
DataSend
,
0
))
if
(
pdTRUE
!=
xQueueSend
(
DcModeMsg
,
&
DataSend
,
0
))
{
{
//osDelay(10);
//osDelay(10);
...
@@ -1296,6 +987,143 @@ void RelayStatusCheck(void)
...
@@ -1296,6 +987,143 @@ void RelayStatusCheck(void)
}
}
void
RelaySwtichHandle
(
u8
group
)
{
if
(
DcModuleGroup
[
group
].
status
==
Valid
)
{
//切换继电器
if
(
group
==
0
)
{
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
}
else
if
(
group
==
2
)
{
GPIO_ResetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
}
else
if
(
group
==
1
)
{
GPIO_ResetBits
(
RELAY_K7K8_Port
,
RELAY_K7K8_Pin
);
GPIO_ResetBits
(
RELAY_K1K2_Port
,
RELAY_K1K2_Pin
);
}
else
if
(
group
==
3
)
{
GPIO_ResetBits
(
RELAY_K9K10_Port
,
RELAY_K9K10_Pin
);
GPIO_ResetBits
(
RELAY_K3K4_Port
,
RELAY_K3K4_Pin
);
}
}
else
if
(
DcModuleGroup
[
group
].
status
==
Hold_A
)
{
//切换继电器
if
(
group
==
1
)
{
GPIO_SetBits
(
RELAY_K1K2_Port
,
RELAY_K1K2_Pin
);
}
else
if
(
group
==
2
)
{
GPIO_SetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
}
else
if
(
group
==
3
)
{
GPIO_SetBits
(
RELAY_K3K4_Port
,
RELAY_K3K4_Pin
);
}
}
else
if
(
DcModuleGroup
[
group
].
status
==
Hold_B
)
{
//切换继电器
if
(
group
==
0
)
{
GPIO_SetBits
(
RELAY_K5K6_Port
,
RELAY_K5K6_Pin
);
}
else
if
(
group
==
1
)
{
GPIO_SetBits
(
RELAY_K7K8_Port
,
RELAY_K7K8_Pin
);
}
else
if
(
group
==
3
)
{
GPIO_SetBits
(
RELAY_K9K10_Port
,
RELAY_K9K10_Pin
);
}
}
}
void
RelaySwtichHandle1
(
u8
group
)
{
//切换继电器
switch
(
group
)
{
case
0
:
if
(
DcModuleGroup
[
0
].
status
==
Hold_A
)
{
if
(
DcModuleGroup
[
2
].
status
==
Hold_A
)
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_On
);
else
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_Off
);
}
else
if
(
DcModuleGroup
[
0
].
status
==
Hold_B
)
{
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_On
);
}
else
{
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_Off
);
}
break
;
case
1
:
if
(
DcModuleGroup
[
1
].
status
==
Hold_A
)
{
DcModeleRelaySet
(
Relay_K7K8
,
eSwSta_Off
);
DcModeleRelaySet
(
Relay_K1K2
,
eSwSta_On
);
}
else
if
(
DcModuleGroup
[
1
].
status
==
Hold_B
)
{
DcModeleRelaySet
(
Relay_K1K2
,
eSwSta_Off
);
DcModeleRelaySet
(
Relay_K7K8
,
eSwSta_On
);
}
else
{
DcModeleRelaySet
(
Relay_K1K2
,
eSwSta_Off
);
DcModeleRelaySet
(
Relay_K7K8
,
eSwSta_Off
);
}
break
;
case
2
:
if
(
DcModuleGroup
[
2
].
status
==
Hold_A
)
{
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_On
);
}
else
if
(
DcModuleGroup
[
2
].
status
==
Hold_B
)
{
if
(
DcModuleGroup
[
0
].
status
==
Hold_B
)
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_On
);
else
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_Off
);
}
else
{
DcModeleRelaySet
(
Relay_K5K6
,
eSwSta_Off
);
}
break
;
case
3
:
if
(
DcModuleGroup
[
3
].
status
==
Hold_A
)
{
DcModeleRelaySet
(
Relay_K9K10
,
eSwSta_Off
);
DcModeleRelaySet
(
Relay_K3K4
,
eSwSta_On
);
}
else
if
(
DcModuleGroup
[
3
].
status
==
Hold_B
)
{
DcModeleRelaySet
(
Relay_K3K4
,
eSwSta_Off
);
DcModeleRelaySet
(
Relay_K9K10
,
eSwSta_On
);
}
else
{
DcModeleRelaySet
(
Relay_K3K4
,
eSwSta_Off
);
DcModeleRelaySet
(
Relay_K9K10
,
eSwSta_Off
);
}
break
;
default:
break
;
}
}
void
DcModuleStatusCheck
(
void
)
void
DcModuleStatusCheck
(
void
)
{
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论