Показано с 1 по 9 из 9

Тема: ип320 и квитирование аварий

  1. #1

    По умолчанию ип320 и квитирование аварий

    есть ИП320 (мастер rs232) и плк154.
    собираю аварии в 0 регистр. Задействовал список тревог на ИП320. При возникновении аварий на панели всплывает список аварий и при нажатии кнопки "esc" прячется. Все бы хорошо было, но при возникновении аварии, ПЛК еще включает звуковую сигнализацию.
    Вопрос: можно ли определить на ПЛК, что на ип320 нажата кнопка "esc" в "штатном" аварийном окне, для квитирования аварии или просто для того чтобы заткнуть звук? Или без своего окна для аварий не обойтись?

  2. #2
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    в "штатном" - нет.

  3. #3

    По умолчанию

    здравствуйте.
    и так, квитирования на ип320 - нет - пока бит весит, может его отключить только контроллер. обычно на панели делаются 2кнопки (сброс аварии и отключение звука), они привязываются к 2м различным битам в плк, которые являются одним из условий - по вашей логике-выключения звука и сброса авария впринципе..
    "ОВЕН"
    тел.: (495) 221-60-64 доб. 1224
    e-mail: i.karetkin@owen.ru

  4. #4

    По умолчанию

    Цитата Сообщение от валенок Посмотреть сообщение
    в "штатном" - нет.
    квитирования аварии, именно -как сброса бита нет в штатном режиме любой панели.
    квитирование - это "да спасибо, я увидел-приму меры или ждем пока не пропадёт", как на сп270.
    "ОВЕН"
    тел.: (495) 221-60-64 доб. 1224
    e-mail: i.karetkin@owen.ru

  5. #5

    По умолчанию

    то есть реализовать квитирование и (или) отключение звука без своего окна аварий не получится? и при этом нужно будет задействовать регистры интерактивного контроля на ип320 ("авт. смена экрана" и "текущий № экрана")?

  6. #6

    По умолчанию

    Если городить свое окно аварий, то как туда добавлять строки с авариями?
    Потому как у меня одновременно может быть и 16 аварий одновременно. В одном окне умещается 4 строки. Получается мне нужно будет создавать 4 окна аварий? Нужно будет думать чтобы выскакивало нужное окно при определенной аварии еще перемещаться между окнами. Возни много.
    Когда есть чудесное штатное окно с авариями. И осталось только чтобы при нажатии на "esc" взвелся или сбросился определенный бит определенного регистра. Или чтобы была возможность вставить в штатное аварийное окно - кнопочку или чтобы только настроить кнопочку.Вообще, на мой взгляд, в дата панель просится регистр слово состояния панели. откуда можно было бы считывать и (состояние или ошибки связи) и код нажатия клавиши.

  7. #7

    По умолчанию

    Цитата Сообщение от jjj Посмотреть сообщение
    Потому как у меня одновременно может быть и 16 аварий одновременно. В одном окне умещается 4 строки. Получается мне нужно будет создавать 4 окна аварий? ..
    Реализовать всё это можно и в одном экране, спасает динамический текст. Я делаю три строки с динамическим текстом, заполнены они одинакова со списком всех возможных аварий(у мну двадцать аварий, но может быть и мноооого больше). В процедуре обработки экрана аварии смотрю какие аварии и вывожу на экран требуемую надпись, если аварий больше трёх клавишами UP и DOWN можно скролить список...
    сдесь же реализованно квитирование аварий и отключение сигнализации..

  8. #8

    По умолчанию

    Цитата Сообщение от Crusash Посмотреть сообщение
    Реализовать всё это можно и в одном экране, спасает динамический текст. Я делаю три строки с динамическим текстом, заполнены они одинакова со списком всех возможных аварий(у мну двадцать аварий, но может быть и мноооого больше). В процедуре обработки экрана аварии смотрю какие аварии и вывожу на экран требуемую надпись, если аварий больше трёх клавишами UP и DOWN можно скролить список...
    сдесь же реализованно квитирование аварий и отключение сигнализации..
    поделитесь пожалуйста примерчиком ващей реализации.

  9. #9

    По умолчанию

    Цитата Сообщение от DARNER Посмотреть сообщение
    поделитесь пожалуйста примерчиком ващей реализации.
    чесно говоря времени мало для реализации примера, щас вырву из контекста без особых коментариев...
    функция proc_error: обработки аварии:
    Код:
    error_panel:=error_panel OR Mashina.dw_error;(*битовая маска ошибок*)
    IF NOT(alarm_list) THEN(*инициализация экрана ошибок*)
    	alarm_list:=TRUE;
    	b_kvota:=FALSE;
    	n_Reg:=1;
    	i_bit_error:=0;
    	print_err;(*собираем в масив ошибки*)
        (*сбрасываем биты кнопок панэльки*)    
    	b_ENT:=FALSE;
    	b_ESC:=FALSE;
    	b_Up:=FALSE;
    	b_DOWN:=FALSE;
    ELSE
    	IF b_ENT THEN(*отключаем сирену*)
    		b_kvota:=TRUE;
    		b_ENT:=FALSE;
    	END_IF
    	IF b_ESC THEN(*квитируем*)
    		IF Mashina.dw_error=0 THEN
    			lister:=last_list;(*если нет ошибок, выключаем экран аварии*)
    		END_IF
    		error_panel:=0;
    		alarm_list:=FALSE;
    		b_kvota:=TRUE;
    		b_ESC:=FALSE;
    		b_ENT:=FALSE;
    	END_IF
    	IF b_UP THEN(листаем список вверх*)
    		b_UP:=FALSE;
    		IF  i_bit_error>0 THEN
    			i_bit_error:=i_bit_error-1;
    		END_IF
    		print_err;
    	END_IF
    	IF b_DOWN THEN(*листаем список вниз*)
    		b_down:=FALSE;
    		IF  i_bit_error < n_bit_error  THEN			       
                        i_bit_error: =i_bit_error+1;
    		ELSE
    			i_bit_error:=0;
    		END_IF
    		print_err;
    		IF mas_reg[1]=0 THEN
    			i_bit_error:=0;
    			print_err;
    		END_IF
    	END_IF
    END_IF
    (*записываем в регистры панели номера ошибок *)
    Reg1:=mas_Reg[1];
    Reg2:=mas_Reg[2];
    Reg3:=mas_Reg[3];
    метод print_err функции proc_error,
    выделяет из битовой маски ошибок взведёные биты и записывает их номера в массив.
    Код:
    n_Reg:=1;
    SysMemSet(ADR(mas_reg[1]),0,12);
    REPEAT
    	b_bit_error:=EXTRACT(X:=error_panel,n:=i_bit_error);
    	IF b_bit_error THEN
    		mas_reg[n_Reg]:=i_bit_error+1;
    		i_bit_error:=i_bit_error+1;
    		n_Reg:=n_Reg+1;
    	ELSE
    		i_bit_error:=i_bit_error+1;
    	END_IF
    UNTIL NOT(i_bit_error<n_bit_error) OR n_Reg>3
    END_REPEAT
    IF NOT(i_bit_error<n_bit_error) THEN
    	i_bit_error:=0;
    END_IF
    както так, позже, будет время, попробую подготовить и выложить пример с конфигурацией панельки...

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •