Пт июл 31, 2020 17:54:38
Пт июл 31, 2020 18:15:48
//************************************************************************
//************************ Главный автомат *******************************
//************************************************************************
//==================
STATE (PROC_EDS_MAIN_INIT, Proc_Eds_Main_Init)
STATE (PROC_EDS_MAIN_STOP, Proc_Eds_Main_Stop)
STATE (PROC_EDS_MAIN_MANUAL, Proc_Eds_Main_Manual)
STATE (PROC_EDS_MAIN_AUTOMAT, Proc_Eds_Main_Automat)
STATE (PROC_EDS_MAIN_EMERG_STOP, Proc_Eds_Main_Emerg_Stop)
//==================
//************************************************************************
//************************ Автомат "Автомат" *****************************
//************************************************************************
//==================
STATE (PROC_EDS_AUTOMAT_IDLE, empty_func)
STATE (PROC_EDS_AUTOMAT_WAIT_RUN, Proc_Eds_Automat_Wait_Run)
STATE (PROC_EDS_AUTOMAT_RUN, Proc_Eds_Automat_Run)
STATE (PROC_EDS_AUTOMAT_WAIT_FORM_CLOSING_1, Proc_Eds_Automat_Wait_Form_Closing_1)
STATE (PROC_EDS_AUTOMAT_WAIT_FORM_CLOSING_2, Proc_Eds_Automat_Wait_Form_Closing_2)
STATE (PROC_EDS_AUTOMAT_WAIT_HEAT_END, Proc_Eds_Automat_Wait_Heat_End)
STATE (PROC_EDS_AUTOMAT_WAIT_FORMOVKA_END, Proc_Eds_Automat_Wait_Formovka_End)
STATE (PROC_EDS_AUTOMAT_WAIT_FORM_OPENING, Proc_Eds_Automat_Wait_Form_Opening)
STATE (PROC_EDS_AUTOMAT_WAIT_PNEVMOSYEM_END, Proc_Eds_Automat_Wait_Pnevmosyem_End)
STATE (PROC_EDS_AUTOMAT_WAIT_SENS_4, Proc_Eds_Automat_Wait_Sens_4)
//==================
//==================
void Proc_Eds_Main_Init (void)
{
read_proc_eds_param ();
_proc_eds_main = PROC_EDS_MAIN_STOP;
}
//==================
//==================
void Proc_Eds_Main_Stop (void)
{
if (get_key_work (KEY_MANUAL_COD))
{
proc_eds_mode = MODE_MANUAL;
_proc_eds_main = PROC_EDS_MAIN_MANUAL;
_proc_eds_manual = PROC_EDS_MANUAL_INIT;
}
if (get_key_work (KEY_AUTOMAT_COD))
{
proc_eds_mode = MODE_AUTOMAT;
_proc_eds_main = PROC_EDS_MAIN_AUTOMAT;
_proc_eds_automat = PROC_EDS_AUTOMAT_WAIT_RUN;
}
}
//==================
//==================
void Proc_Eds_Main_Set_Emerg_Stop (void)
{
all_valves_off (); // Отключение всех клапанов.
proc_eds_mode = MODE_EMERG_STOP;
_proc_eds_main = PROC_EDS_MAIN_EMERG_STOP;
}
void Proc_Eds_Main_Emerg_Stop (void)
{
if (!(emerg_stop_flags & (1<<EMERG_STOP_FLG)))
{
if (get_key_work (KEY_STOP_COD))
{
proc_eds_mode = MODE_STOP;
_proc_eds_main = PROC_EDS_MAIN_STOP;
}
}
}
//==================
//Вложенные автоматы. Режим Автомат.
//==================
void Proc_Eds_Automat_Wait_Form_Closing_1 (void)
{
if (inputs_buf [2] & (1<<SENSOR_1))
{
set_timer (ST_PROC_EDS_T_OUT_SENS_2, NO_RERUN_TIMER, 100); // Установка таймера "Тайиоут датчика ПРЕССФОРМА ЗАКРЫТА".
_proc_eds_automat = PROC_EDS_AUTOMAT_WAIT_FORM_CLOSING_2;
return;
}
if (wait (ST_PROC_EDS_T_OUT_SENS_1))
{
timer_timout_sens_1++;
if (timer_timout_sens_1 >= timout_sens_1_val)
{
set_event (EV_TIMEOUT_SENS_1);
Proc_Eds_Main_Set_Emerg_Stop ();
return;
}
set_timer (ST_PROC_EDS_T_OUT_SENS_1, NO_RERUN_TIMER, 100); // Перезапуск таймера "Тайиоут датчика ПРЕССФОРМА ОТКРЫТА".
}
}
//==================
Пт июл 31, 2020 18:33:00
Пт июл 31, 2020 18:37:26
Сб авг 01, 2020 10:35:11
Сб авг 01, 2020 14:48:14
Сб авг 01, 2020 20:40:36
А я то думал - что любая программа начинается с алгоритма.Demiurg писал(а):Ему сейчас важно только одно. Вникнуть, что вся программа, часть программы - это конечный автомат.
Вс авг 02, 2020 09:37:11
Вс авг 02, 2020 10:23:02
Вс авг 02, 2020 11:49:31
Чем управляется движение кнопками или как еще?shrus43 писал(а):движения вверх,вниз,влево,в право
shrus43 писал(а):но есть еще датчики по ограничению движения вниз и вверх
какого датчика?shrus43 писал(а):после сработки одного из датчиков должно произойти определенное движение в лево или в право,каждый раз разное
И уважаемый Demiurg, вы если кусок кода выкладывайте, то постарайтесь что бы там все было, а то как то не связываетсяDemiurg писал(а):Двигатель - Стоп, Разгон, Работа, Торможение, Авария.
STATE (.....) - ?
Вс авг 02, 2020 14:09:33
Вс авг 02, 2020 15:21:10
Вс авг 02, 2020 15:40:45
Дак я Вас прошу, что бы приведенный вами пример был рабочим, либо приложить архив где используется данный пример.Demiurg писал(а):Вы можете попросить. Не более.
Вс авг 02, 2020 18:32:39
Вс авг 02, 2020 18:34:15
так сойдет? Подумайте, прежде чем ответить.Кусок кода вырванный из программы означает ошибку цитирования. Поэтому, он не передаёт с достаточной степенью точности смысл этого блока. Более того, этот код может радикально исказить содержание первоисточника, откуда он процитирован. В таком случае, этот вырванный код не может рассматриваться в качестве подлинной программы и
не имеет никакой силы.
Вс авг 02, 2020 18:41:08
Пн авг 03, 2020 01:38:28
Пн авг 03, 2020 03:30:29
Пн авг 03, 2020 05:57:48
Пн авг 03, 2020 07:26:30