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

Тема: Помощь в написании программы."Контроль Trace mode от зависаний"

  1. #1
    Пользователь
    Регистрация
    09.02.2012
    Адрес
    Киров
    Сообщений
    2

    По умолчанию Помощь в написании программы."Контроль Trace mode от зависаний"

    Здравствуйте,меня зовут Алексей,прощу вашей помощи в написании программы в Codesys2.3. Необходимо осуществить контроль Tracemode на случай зависания и с помощью Плк овен 154 ,перезагружать компьютер.
    Суть такова.В Trace mode я создаю переменную счетчик,которая отсчитывает значения от 1 до 20 к примеру и по новой.Отправляю эту переменную в ПЛК . В плк создаю свой счетчик точно такой же отсчитывающий значения с таким же временем что и в trace mode.(два идиентичных счетчика).
    Условиемif scada_plc(переменную скады) = temp(переменная плк)cравниваю переменные.И если они равны,привязываю какой то маркер к дискретному выходу ,дискрета уходит на power материнской платы и выключает компьютер,через 5 сек с помощью реле,компьютер включается.Проблема в том что мне нужно как то задать начальные значения для переменных чтобы первым условием проверялось их равенство ,что они неравны,иначе так компьютер будет часто ложно перезагружаться.Готов выслушать другие более искушенные варианты.
    Всем заранее спасибо.
    PS;
    IF SCADA_PLC<>temp
    THEN
    temp:=SCADA_PLC;
    ELSE
    Y99:=1;// Y99 marker privyzannyi k discret output.
    END_IF;
    так тоже не получается.

  2. #2

    По умолчанию

    Самый простой вариант: купить надежное "железо".

  3. #3
    Пользователь
    Регистрация
    09.02.2012
    Адрес
    Киров
    Сообщений
    2

    По умолчанию

    С радостью))но нужно написать программу)

  4. #4

    По умолчанию

    Ну тогда пускай скада раз в секунду накручивает счетчик, а плк проверяет: старое там значение или новое. Если за 5 запросов оно не изменилось, то рестарт.
    Код:
    TIMER (IN := NOT TIMER.Q, PT := T#1s);
    IF TIMER.Q AND SCADA_PLC_NEW <> SCADA_PLC_OLD THEN
    SCADA_PLC_OLD := SCADA_PLC_NEW;
    error := 0;
    ELSE
    error := error +1;
    if error > 5 then Y99:=1; end_if;
    END_IF;
    Что-то типа этого...
    Ну и не забываем еще один таймер, когда пойдет перезагрузка, а то будет дергать каждые 5 секунд, не давая включиться компу.

  5. #5
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,370

    По умолчанию

    у обоих писателей кода в этой теме, не отражено когда же Y99 становится равным нулю

  6. #6

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    у обоих писателей кода в этой теме, не отражено когда же Y99 становится равным нулю
    Ну чисто логически оно вот тут:
    Ну и не забываем еще один таймер, когда пойдет перезагрузка, а то будет дергать каждые 5 секунд, не давая включиться компу.

  7. #7
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,370

    По умолчанию

    Цитата Сообщение от JIexa21 Посмотреть сообщение
    Ну чисто логически оно вот тут:
    Основной посыл это не контролировать на период перегрузки пк, а вернуть состояние выхода плк из этого не следует и кстати попробуйте на своем пк нажать кнопку сброса и не отпускать, некоторые модели работают по заднему фронту

  8. #8

    По умолчанию

    Отработал тот блок, который я привел, инициировал перезагрузку, запустили второй таймер, по которому работает другая функция, ожидающая перезапуска, ждет какое-то время (на аварию, чтобы поорать сигналкой, что комп вообще умер) и ждет появления другого числа в переменную). Запускается она буквально в пределах одного цикла (8-10 мс) и контролирует перезагрузку и она же сбрасывает выход. Что тут не так???

  9. #9

    По умолчанию

    Понимаю, что некропостинг, но тем не менее, имею сказать:

    1) Если подвисает скада - искать причины в проекте, должно помочь в 99% случаев. Касательно самого Trace mode - судя по отзывам многих людей, глюков в ней хватает. При возможности рассмотреть вариант другой скады.
    2) Комп, как понимаю, под управлением винды - а это не ОСРВ, поэтому нет гарантии что скада на компе вовремя сделает какие-то операции со счётчиком. Привязывать что-то жёстко ко времени тут нельзя, всегда может проскочить лаг.
    3) Да и вообще, что-то подсказывает что постоянно вырубать комп простым размыканием питания - далеко не гуд...

Похожие темы

  1. Ответов: 7
    Последнее сообщение: 27.02.2013, 19:08
  2. Ответов: 3
    Последнее сообщение: 30.09.2010, 22:30
  3. как выбрать управление "прямое" или "обратное"
    от maxmore в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 18.01.2010, 10:13
  4. нужна помощь в написании программы
    от woffka в разделе ПЛК1хх
    Ответов: 52
    Последнее сообщение: 20.11.2009, 08:34

Ваши права

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