Исправление команды коррекции, режима одного робота и фикс несуществующих переменных в ПЛК
This commit is contained in:
parent
bcb42cce82
commit
d90b31cc7a
@ -14,17 +14,8 @@ extern short etching_zone, galvanizing_zone;
|
|||||||
|
|
||||||
void scheduler_main();
|
void scheduler_main();
|
||||||
|
|
||||||
|
|
||||||
// Флаги, которые есть в оригинальной программе на ПЛК, в "C global variables"
|
// Флаги, которые есть в оригинальной программе на ПЛК, в "C global variables"
|
||||||
|
|
||||||
// Кнопки с панели
|
|
||||||
extern char hla_night_mode;
|
|
||||||
extern char hla_correct_command;
|
|
||||||
|
|
||||||
|
|
||||||
// кнопки управления роботом с панели
|
|
||||||
|
|
||||||
|
|
||||||
// кнопка загрузки в зоне 0, означает что барабан надо изъять из этой загрузки (а перед этим создать)
|
// кнопка загрузки в зоне 0, означает что барабан надо изъять из этой загрузки (а перед этим создать)
|
||||||
extern char button_load;
|
extern char button_load;
|
||||||
|
|
||||||
|
23
scheduler.c
23
scheduler.c
@ -180,7 +180,7 @@ void scheduler_main()
|
|||||||
if (robot2_code.PC < 0) {
|
if (robot2_code.PC < 0) {
|
||||||
robot2_code.barrel_id = -1;
|
robot2_code.barrel_id = -1;
|
||||||
robot2_code.code[0] = ROBOT_CMD_CORRECT_AXIS(ROBOT_AXIS_Z);
|
robot2_code.code[0] = ROBOT_CMD_CORRECT_AXIS(ROBOT_AXIS_Z);
|
||||||
robot2_code.code[0] = ROBOT_CMD_CORRECT_AXIS(ROBOT_AXIS_X);
|
robot2_code.code[1] = ROBOT_CMD_CORRECT_AXIS(ROBOT_AXIS_X);
|
||||||
robot2_code.code[2] = ROBOT_CMD_END();
|
robot2_code.code[2] = ROBOT_CMD_END();
|
||||||
robot2_code.PC = 0;
|
robot2_code.PC = 0;
|
||||||
}
|
}
|
||||||
@ -188,7 +188,7 @@ void scheduler_main()
|
|||||||
if (robot1_code.PC < 0) {
|
if (robot1_code.PC < 0) {
|
||||||
robot1_code.barrel_id = -1;
|
robot1_code.barrel_id = -1;
|
||||||
robot1_code.code[0] = ROBOT_CMD_CORRECT_AXIS(ROBOT_AXIS_Z);
|
robot1_code.code[0] = ROBOT_CMD_CORRECT_AXIS(ROBOT_AXIS_Z);
|
||||||
robot1_code.code[0] = ROBOT_CMD_CORRECT_AXIS(ROBOT_AXIS_X);
|
robot1_code.code[1] = ROBOT_CMD_CORRECT_AXIS(ROBOT_AXIS_X);
|
||||||
robot1_code.code[2] = ROBOT_CMD_END();
|
robot1_code.code[2] = ROBOT_CMD_END();
|
||||||
robot1_code.PC = 0;
|
robot1_code.PC = 0;
|
||||||
}
|
}
|
||||||
@ -204,11 +204,27 @@ void scheduler_main()
|
|||||||
char robot_id = 0;
|
char robot_id = 0;
|
||||||
if (hla_robot1_en && robot1_code.PC < 0) {
|
if (hla_robot1_en && robot1_code.PC < 0) {
|
||||||
robot_id = 1;
|
robot_id = 1;
|
||||||
} else if (robot2_code.PC < 0 && hla_robot2_en) {
|
} else if (hla_robot2_en && robot2_code.PC < 0) {
|
||||||
robot_id = 2;
|
robot_id = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (robot_id != 0) {
|
if (robot_id != 0) {
|
||||||
|
if ((robot_id == 1 && robot1.dx.current_zone < ZONE_DEGREASING) ||
|
||||||
|
(robot_id == 2 && robot2.dx.current_zone < ZONE_DEGREASING)) {
|
||||||
|
if (robot_id == 1) {
|
||||||
|
robot1_code.barrel_id = -1;
|
||||||
|
robot1_code.code[0] = ROBOT_CMD_DOWN();
|
||||||
|
robot1_code.code[1] = ROBOT_CMD_MOVE_TO_ZONE(ZONE_DEGREASING);
|
||||||
|
robot1_code.code[2] = ROBOT_CMD_END();
|
||||||
|
robot1_code.PC = 0;
|
||||||
|
} else {
|
||||||
|
robot2_code.barrel_id = -1;
|
||||||
|
robot2_code.code[0] = ROBOT_CMD_DOWN();
|
||||||
|
robot2_code.code[1] = ROBOT_CMD_MOVE_TO_ZONE(ZONE_DEGREASING);
|
||||||
|
robot2_code.code[2] = ROBOT_CMD_END();
|
||||||
|
robot2_code.PC = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
for (short i = 0; i < BARRELS_COUNT; i++) {
|
for (short i = 0; i < BARRELS_COUNT; i++) {
|
||||||
// для каждой задачи:
|
// для каждой задачи:
|
||||||
tasks[i].start_zone = barrels[i].zone;
|
tasks[i].start_zone = barrels[i].zone;
|
||||||
@ -225,6 +241,7 @@ void scheduler_main()
|
|||||||
schedule_one_robot(tasks, &robot2, &robot2_code, 2);
|
schedule_one_robot(tasks, &robot2, &robot2_code, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// а вот для режима двух роботов все интересно
|
// а вот для режима двух роботов все интересно
|
||||||
// для каждого робота нужно получить свой список задач
|
// для каждого робота нужно получить свой список задач
|
||||||
|
5
utils.h
5
utils.h
@ -194,6 +194,10 @@ extern char hla_robot2_en;
|
|||||||
// пауза для автоматического режима, при паузе идут таймера, но команды не могут быть выданы
|
// пауза для автоматического режима, при паузе идут таймера, но команды не могут быть выданы
|
||||||
extern char auto_mode_pause;
|
extern char auto_mode_pause;
|
||||||
|
|
||||||
|
// Кнопки с панели
|
||||||
|
extern char hla_night_mode;
|
||||||
|
extern char hla_correct_command;
|
||||||
|
|
||||||
// разрешение на работу планировщика
|
// разрешение на работу планировщика
|
||||||
extern char scheduler_en;
|
extern char scheduler_en;
|
||||||
|
|
||||||
@ -234,6 +238,7 @@ extern char scheduler_start_signal;
|
|||||||
|
|
||||||
#define auto_mode_pause _c_auto_mode_pause
|
#define auto_mode_pause _c_auto_mode_pause
|
||||||
#define hla_night_mode _c_hla_night_mode
|
#define hla_night_mode _c_hla_night_mode
|
||||||
|
#define hla_correct_command _c_hla_correct_command
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user