Тест дискретных сигналов
This commit is contained in:
@@ -6,8 +6,6 @@
|
||||
#define m_FAST 0
|
||||
#define m_SLOW 1
|
||||
|
||||
|
||||
|
||||
#define keys 0x0 // адрес повтораемой посылки «keys»
|
||||
|
||||
#define Inputs Modbus[0x0]
|
||||
@@ -41,37 +39,25 @@
|
||||
#define CanCycle (modbus+0x78) // счетчик циклов CAN
|
||||
#define CanRound (modbus+0x7A) // счетчик еще более полных циклов CAN
|
||||
|
||||
#define komanda modbus[124]
|
||||
#define Protokol modbus[125]
|
||||
#define LastMode modbus[126]
|
||||
#define Commands modbus[127]
|
||||
|
||||
#define command params[128]
|
||||
#define bit_command Params[128]
|
||||
#define bit_kom Modbus[124]
|
||||
|
||||
#define cTestLamp bit_command.bit.bit0
|
||||
#define cDefParam bit_command.bit.bit1
|
||||
#define cSaveParam bit_command.bit.bit2
|
||||
#define cLoadParam bit_command.bit.bit3
|
||||
#define cTermoCal bit_command.bit.bit4
|
||||
#define cKoefCalc bit_command.bit.bit5
|
||||
#define cSecretBt bit_command.bit.bit6
|
||||
#define cCanReset bit_command.bit.bit7
|
||||
#define cRawMeat bit_command.bit.bit8
|
||||
#define cCanReset bit_command.bit.bit7
|
||||
#define cReset bit_command.bit.bitF
|
||||
#define cTestLamp bit_kom.bit.bit0
|
||||
#define cDefParam bit_kom.bit.bit1
|
||||
#define cSaveParam bit_kom.bit.bit2
|
||||
#define cLoadParam bit_kom.bit.bit3
|
||||
#define cTermoCal bit_kom.bit.bit4
|
||||
#define cKoefCalc bit_kom.bit.bit5
|
||||
#define cSecretBt bit_kom.bit.bit6
|
||||
#define cCanReset bit_kom.bit.bit7
|
||||
#define cRawMeat bit_kom.bit.bit8
|
||||
#define cTestOut bit_kom.bit.bit9
|
||||
//...
|
||||
#define cReset bit_kom.bit.bitF
|
||||
|
||||
/*
|
||||
#define cTestLamp Modbus[127].bit.bit0
|
||||
#define cDefParam Modbus[127].bit.bit1
|
||||
#define cSaveParam Modbus[127].bit.bit2
|
||||
#define cLoadParam Modbus[127].bit.bit3
|
||||
#define cTermoCal Modbus[127].bit.bit4
|
||||
#define cKoefCalc Modbus[127].bit.bit5
|
||||
#define cSecretBt Modbus[127].bit.bit6
|
||||
#define cCanReset Modbus[127].bit.bit7
|
||||
#define cRawMeat Modbus[127].bit.bit8
|
||||
#define cCanReset Modbus[127].bit.bit7
|
||||
#define cReset Modbus[127].bit.bitF
|
||||
*/
|
||||
#endif //PACKAGE
|
||||
|
||||
|
||||
@@ -131,8 +131,6 @@ int main(void)
|
||||
LastMode = Mode;
|
||||
Protokol = PROTOKOL;
|
||||
|
||||
command=0;
|
||||
|
||||
for(i=0;i<0x80;i++)
|
||||
county[i]=1;
|
||||
for(i=0;i<8;i++)
|
||||
@@ -142,8 +140,6 @@ int main(void)
|
||||
CanCycle[i]=0;
|
||||
|
||||
timGo=1;
|
||||
|
||||
|
||||
|
||||
/* USER CODE END 2 */
|
||||
|
||||
@@ -302,25 +298,28 @@ int main(void)
|
||||
ReadEnteres(); // Функция чтения дискретных входов
|
||||
|
||||
//=== УПРАВЛЕНИЕ ВЫХОДНЫМИ СИГНАЛАМИ ===//
|
||||
if (Errors.all | Alarms.all)
|
||||
Pvt4_OFF; // Выключение сигнала "Система ВЭП в норме"
|
||||
else
|
||||
Pvt4_ON; // Включение сигнала "Система ВЭП в норме"
|
||||
if(!cTestOut)
|
||||
{
|
||||
if (Errors.all | Alarms.all)
|
||||
Pvt4_OFF; // Выключение сигнала "Система ВЭП в норме"
|
||||
else
|
||||
Pvt4_ON; // Включение сигнала "Система ВЭП в норме"
|
||||
|
||||
if (Errors.all)
|
||||
Pvt3_ON; // Включение сигнала "Авария системы ВЭП"
|
||||
else
|
||||
Pvt3_OFF; // Выключение сигнала "Авария системы ВЭП"
|
||||
if (Errors.all)
|
||||
Pvt3_ON; // Включение сигнала "Авария системы ВЭП"
|
||||
else
|
||||
Pvt3_OFF; // Выключение сигнала "Авария системы ВЭП"
|
||||
|
||||
if (Falling_asleep)
|
||||
Pvt2_ON; // Включение сигнала управления
|
||||
else
|
||||
Pvt2_OFF; // Выключение сигнала управления
|
||||
if (Falling_asleep)
|
||||
Pvt2_ON; // Включение сигнала управления
|
||||
else
|
||||
Pvt2_OFF; // Выключение сигнала управления
|
||||
}
|
||||
|
||||
//=== ОБРАБОТКА КОМАНД ===//
|
||||
if (Commands != precom) // Если команды изменились
|
||||
{
|
||||
command = (~precom | command) & Commands; // Обновление активных команд
|
||||
komanda = Commands & (~precom|komanda); // Обновление активных команд
|
||||
}
|
||||
precom = Commands; // Сохранение текущих команд для следующей итерации
|
||||
|
||||
@@ -329,6 +328,7 @@ int main(void)
|
||||
{
|
||||
cDefParam = 0;
|
||||
Default_params(); // Вызов функции сброса параметров
|
||||
Commands=precom;
|
||||
}
|
||||
|
||||
if (cSaveParam) // Команда сохранения параметров
|
||||
@@ -341,6 +341,7 @@ int main(void)
|
||||
{
|
||||
cLoadParam = 0;
|
||||
Load_params(); // Вызов функции загрузки параметров
|
||||
Commands=precom;
|
||||
}
|
||||
|
||||
if (cCanReset) // Команда сброса CAN-системы
|
||||
@@ -362,8 +363,6 @@ int main(void)
|
||||
for(i = 0; i < 8; i++)
|
||||
masca[i] = 0; // Сброс масок
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* USER CODE END WHILE */
|
||||
|
||||
@@ -470,7 +469,7 @@ void Millisecond()
|
||||
work_diod, // Состояние рабочего светодиода
|
||||
norm_diod; // Состояние нормального светодиода
|
||||
static int preTest; // Предыдущее состояние теста
|
||||
int TST; // Текущее состояние теста
|
||||
int TST,JMP; // Текущее состояние теста
|
||||
|
||||
// Константы времени
|
||||
#define CANPOWSE 10 // 10 msec - период обновления CAN
|
||||
@@ -485,7 +484,7 @@ void Millisecond()
|
||||
|
||||
//=== ЧТЕНИЕ ПЕРЕКЛЮЧАТЕЛЕЙ И КНОПОК ===//
|
||||
Jumpers.byt.byte_1 = ReadJumpers(); // Чтение состояния переключателей
|
||||
Jumpers.bit.bit0 = Buttons.bit.bit0 = TestJumper(); // Чтение состояния кнопки
|
||||
JMP = Jumpers.bit.bit0 = Buttons.bit.bit0 = TestJumper(); // Чтение состояния кнопки
|
||||
|
||||
//=== УПРАВЛЕНИЕ CAN-ШИНОЙ ===//
|
||||
if(++CanPowse >= CANPOWSE)
|
||||
@@ -503,7 +502,7 @@ void Millisecond()
|
||||
Falling_asleep = 1000L * Sleep_time; // Установка времени до "сна"
|
||||
|
||||
//=== ОБРАБОТКА ТЕСТОВОГО РЕЖИМА ===//
|
||||
TST = TestJumper() | cTestLamp; // Текущее состояние теста (кнопка или команда)
|
||||
TST = JMP | cTestLamp; // Текущее состояние теста (кнопка или команда)
|
||||
|
||||
if(TST & !preTest) // Обнаружение фронта нажатия кнопки
|
||||
{
|
||||
@@ -581,6 +580,25 @@ void Millisecond()
|
||||
|
||||
if(norm_diod) LED_3_ON; // Включение нормального светодиода
|
||||
else LED_3_OFF; // Выключение нормального светодиода
|
||||
|
||||
// Тест дискретных сигналов
|
||||
if(cTestOut && JMP)
|
||||
{
|
||||
if (blink_over)
|
||||
Pvt4_OFF; // Выключение сигнала "Система ВЭП в норме"
|
||||
else
|
||||
Pvt4_ON; // Включение сигнала "Система ВЭП в норме"
|
||||
|
||||
if (blink_over)
|
||||
Pvt3_ON; // Включение сигнала "Авария системы ВЭП"
|
||||
else
|
||||
Pvt3_OFF; // Выключение сигнала "Авария системы ВЭП"
|
||||
|
||||
if (blink_over)
|
||||
Pvt2_ON; // Включение сигнала управления
|
||||
else
|
||||
Pvt2_OFF; // Выключение сигнала управления
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -123,7 +123,9 @@ void Init_packMask()
|
||||
Maska[m_SLOW][6]|= 0x05FF; // Яркость лампы и периоды посылок
|
||||
Maska[m_FAST][7]|= 0x0100; // Счетчик посылок
|
||||
Maska[m_SLOW][7]|= 0x0E00; // Счетчик посылок
|
||||
Maska[m_SLOW][7]|= 0xE000; // Протокол, адрес, команды
|
||||
Maska[m_SLOW][7]|= 0x6000; // Протокол, адрес
|
||||
Maska[m_FAST][7]|= 0x9000; // Команды
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user