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

Тема: Помогите найти ошибку:

  1. #1

    По умолчанию Помогите найти ошибку:

    Я практикант, только начал разбираться в CoDeSyS. Нашел у знакомых такую задачу по программированию:
    Имеются три кнопки и четыре лампы. При кратковременном нажатии на кнопку S1 загораются лампы Н1 и Н2. При нажатии на кнопку S2 загораются лампы Н1 и Н3. При нажатии на кнопку S3 загораются лампы Н1 и Н4

    Сделал программу на языке FBD. Сделал по условию задачи: S1- H1,H2; S2-H1,H3; S3-H1,H4
    Сделал визуализацию(есть во вложении)
    И итог: Нажимаю на S1- загорается только H2
    Нажимаю на S2 - загорается только H3
    Нажимаю на S3 - загорается и H1 и H4

    Что не так?( Если можно, можно по-проще объяснить?
    Вложения Вложения

  2. #2

    По умолчанию

    в ПЛК логика работы программы не такая как в обычном программировании.
    1)считываются значения входов
    2)выполняются ВСЕ шаги програмы
    3)записываются значения выходов.
    поэтому когда ты нажимаешь кнопку 1 - на втором шаге это значение сбрасывается
    когда ты нажимаешь кнопку 2 - на третьем шаге это значение сбрасывается,
    вот так.

  3. #3

    По умолчанию

    Так я же по-очереди нажимаю. И кнопки без фиксации сделаны.

  4. #4

    По умолчанию

    эх...
    добавь четвертую строку:
    объедини кнопки по "или" и на выход повесь лампу 1
    а из первых трех строк её убери.
    тогда все заработает.
    в твоем случае:
    1) читаем входы
    2) первая строка - если нажата кнопка 1 зажигаем 1 и 2 лампы
    3) вторая строка - если нажата кнопка 2 зажигаем 1 и 3 (но так как она не нажата, 1 лампа ГАСИТСЯ!!!! )
    4) третья строка - если нажата кнопка 3 зажигаем 1 и 4 (работает уже, так как шаг перед записью выходов последний )
    5) записываем состояния выходов
    Последний раз редактировалось magirus; 08.07.2009 в 14:06.

Ваши права

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