Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 35

Тема: ПЛК100 - Направте в "нужное русло"

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,799

    По умолчанию

    Если будет время баловатся...

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

    По умолчанию

    Ну Вам же предложили - опишите действия и состояния исполнителей во всех возможных ситуациях не думая о програмировании
    Типа:
    1.Нет машин нигде
    2.Только на выезде подъехала машина1
    3.Ждем карточку1 15сек
    4.Машина1 в процесса выезда
    5.Только на въезде подъехала машина2
    6.Ждем карточку2 15сек
    7.Машина2 в процесса въезда
    8.Одновременно подошли машина1 и машина2
    ..

  3. #3

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Ну Вам же предложили - опишите действия и состояния исполнителей во всех возможных ситуациях не думая о програмировании
    Типа:
    1.Нет машин нигде
    2.Только на выезде подъехала машина1
    3.Ждем карточку1 15сек
    4.Машина1 в процесса выезда
    5.Только на въезде подъехала машина2
    6.Ждем карточку2 15сек
    7.Машина2 в процесса въезда
    8.Одновременно подошли машина1 и машина2
    ..
    Да уж, по-моему я Ваш ник =) . Я не могу для себя уяснить как сделать весь цикл, с ожидание, т.е. у нас есть несколько ситуаций -
    1. Нет ни одной машины = Все входы/выходы разомкнуты.
    2. Машина подъехала на въезд (Прислонил карточку)
    2.1. Даем сигнал 15 секунд на открытие шлагбаума
    2.2. Замыкаем два выхода на включение красного сигнала светофора на въезде и на выезд
    2.3. Ждем срабатывания фотоэлемента, что машина начала проезжать шлагбаум.
    2.4. Ждем отключения фотоэлемента, что машина проехала шлагбаум.
    2.5. Только если прошли пункты 2.1. 2.3. 2.4. даем сигнал 15 секунд на закрытие шлагбаума.
    2.6. Ждем срабатывания датчика на выезд (петля)
    2.7. В течении 15 секунд даем сигнал на открытие шлагбаума
    2.8. Как и пункты 2.2. 2.3. но только с фотоэлементом на выезд.
    2.9. Даем сигнал на закрытие шлагбаума.
    2.10. Выключаем светофоры, т.е. размыкаем два выхода.
    3. Машина подъехала на выезд
    3.1 - 3.10. аналогично 2.1 - 2.10. в обратном порядке.
    4. Обе машины подъехал одновременно - эта ситуация исключается, так как с точность в доли секунды этого произойти не может.
    Ничего умнее как идти путем с переменными состояния я не придумал -
    a:BOOL; (*Показатель въезда машины*)
    b:BOOL; (*Показатель срабатывания фотоэлемента на въезд*)
    TIME_OFF_vzd:TOF:=(PT:=T#15s);(*Задержка выключения*)
    TIME_ON_vzd:TOF:=(PT:=T#15s);(* Задержка выключения *)
    IN_0 AT %IX0.0.0:BOOL;(*Считыватель карт въезд*)
    IN_1 AT %IX0.0.1:BOOL;(*Фотоэлемент въезд*)
    IN_2 AT %IX0.0.2:BOOL;(*Датчик (петля на выезд) *)
    OUT_0 AT %QX1.0:BOOL;(*Открытие шлагбаума*)
    OUT_1 AT %QX2.0:BOOL;(*Закрытие шлагбаума *)
    OUT_2 AT %QX3.0:BOOL; (*Красный светофор въезд *)
    OUT_5 AT %QX6.0:BOOL;(*Красный светофор выезд *)
    и т.д.
    IF IN_0=TRUE AND a=FALSE THEN
    TIME_OFF_vzd(IN:=1);
    OUT_0:=1; OUT_5:=1; (*Зажигаем светофоры на вьезде и выеде*)
    a:=TRUE; (*Состояния въезда машины *)
    ELSE
    TIME_OFF_vzd(IN:=0);
    END_IF;
    OUT_1:=TIME_OFF_vzd.Q; (*Открываем шлагбаум 15s*)

    IF IN_1=TRUE AND b=FALSE (*Сработал фотоэлемент но ранее не срабатывал*)
    THEN
    IF a=TRUE THEN (*Машина на въезд*)
    b:=TRUE; (*Сработал фотоэлемент*)
    TIME_ON_vzd(IN:=0);
    END_IF;
    END_IF;

    IF IN_1=FALSE AND b=TRUE (*если выключен фотоэлемент, но ранее он был включен, т.е. машина проехала *)
    THEN
    IF a=TRUE THEN
    b:=FALSE; (*Машина выехала из фотоэлемента*)
    TIME_ON_vzd(IN:=1);
    END_IF;
    END_IF;

    OUT_2:=TIME_ON_vzd.Q; (Закрываем шлагбаум)
    и т.д.
    Но это все равно не работает (OUT_2 постоянно TRUE).

  4. #4
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,799

    По умолчанию

    Если что-то включил , то надо не забыть выключить , а так ход мислей правильный.

    Есть еще (так для справки ) оператор CASE.

    Подъехал , сунул карточку , шлакбаум открылся - поехал - шлакбаум закрылся и при этом надо заблокировать "Встречку" можно выделить в функциональный блок или подпрограмму.
    Таймер на OFF - зачем , условие включает флаг,переменная , флаг запустил таймер (ТОН) , таймер оттикал , включил или выключил и выключил "Запускающую" переменную .

  5. #5

    По умолчанию

    Ну и что мешает тупо повторить алгоритм на CoDeSys?

  6. #6
    Пользователь Аватар для Василий Кашуба
    Регистрация
    20.11.2011
    Адрес
    Ставрополь
    Сообщений
    2,552

    По умолчанию

    Цитата Сообщение от Алексей Дмитриев Посмотреть сообщение
    Ну и что мешает тупо повторить алгоритм на CoDeSys?
    В СТ не силён.

  7. #7

    По умолчанию

    Цитата Сообщение от Василий Кашуба Посмотреть сообщение
    В СТ не силён.
    Не надо на ST, для этого в CoDeSys есть FBD или прямой его аналог - LD.
    Зачем чисто булевский алгоритм описывать на ST. Не предназначен этот язык для таких целей.

  8. #8
    Пользователь Аватар для Василий Кашуба
    Регистрация
    20.11.2011
    Адрес
    Ставрополь
    Сообщений
    2,552

    По умолчанию

    Цитата Сообщение от Алексей Дмитриев Посмотреть сообщение
    Не надо на ST, для этого в CoDeSys есть FBD или прямой его аналог - LD.
    Зачем чисто булевский алгоритм описывать на ST. Не предназначен этот язык для таких целей.
    Прямой аналог CFC, LD это релейная логика.

  9. #9

    По умолчанию

    Цитата Сообщение от Василий Кашуба Посмотреть сообщение
    Прямой аналог CFC, LD это релейная логика.
    Ошибаетесь - CFC в отличие от FBD редактор непрерывных функциональных схем не использует цепи, но дает возможность свободно размещать компоненты и соединения - и все!
    Чем LD отличается от FBD кроме графического представления? В принципе - ничем. Кому, что нравится.
    В принципе все они LD, CFC, FBD - одного поля ягоды.

  10. #10
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Написал в виде функционального блока. Программа работает для въезда машин. Для выезда немного не доделал. Там есть коментарии, думаю разберетесь. Есть простенькая визуализация.
    Вложения Вложения
    • Тип файла: pro 1.pro (35.5 Кб, Просмотров: 16)

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Похожие темы

  1. Ответов: 7
    Последнее сообщение: 27.02.2013, 18:08
  2. Ответов: 2
    Последнее сообщение: 07.03.2012, 12:17
  3. Ответов: 3
    Последнее сообщение: 30.09.2010, 21:30
  4. как выбрать управление "прямое" или "обратное"
    от maxmore в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 18.01.2010, 10:13

Ваши права

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