-----
18.11.2017 форум перенесён на другой хостинг. О замеченых глюках просьба сообщать администраторам.
-----
На форуме обязательно:
  1. Заполнить свой профиль на Русском языке. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.
Рекламу на своём форуме мы не размещаем ни на каких условиях.

Помогите, пожалуйста, разобрать цепочку

PLC, прочие контроллеры, промышленные компьютеры, операторские панели

Автор темы
Malyshko
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 30 янв 2014, 12:18
Имя: Вадим Сергеевич

Помогите, пожалуйста, разобрать цепочку

Сообщение Malyshko » 20 янв 2015, 17:24

Изображение
Установится ли "DB1_Сохраняемые"."ЧРП-5" при нажатии кнопки?
Изображение
Считаем, что насосы отключены. Не получится ли, что НЗ контакт перед (S) разомкнет цепочку и не взведет триггер?
Если нет, то почему? :ges_hmm:

Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 2789
Зарегистрирован: 20 янв 2010, 22:23
Имя: Никита
Откуда: Мурманск
Благодарил (а): 10 раз
Поблагодарили: 41 раз

Re: Помогите, пожалуйста, разобрать цепочку

Сообщение Никита » 20 янв 2015, 19:37

Если Вы про контакт самого триггера - то по одной простой причине. В отличие от физической релейки, LD имеет четкий порядок пересчета. Если речь не о евреях или арабах - то, обычно, слева направо - сверху вниз :). То есть если триггер еще не взведен, то сначала будут проверен этот контакт, а потом (при выполнении всех предыдущих) взведен триггер. А вот на следующем такте пересчета опять все сначала, но контакт уже будет разомкнут.
Ну а начальное значение всех переменных (на первом такте) любая приличная среда программирования должна устанавливать в соответствии с логикой. Об этом часто упоминают в документации.
Все в предположении что данные с панели получены до начала пересчета.
Последний раз редактировалось Никита 20 янв 2015, 20:58, всего редактировалось 1 раз.
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2432
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 59 раз
Контактная информация:

Re: Помогите, пожалуйста, разобрать цепочку

Сообщение Михайло » 20 янв 2015, 19:44

Кнопка одновременно включает ЧРП5-Буфер и Сохраняемые.ЧРП-5. Это значит, что оба условия (S) и (R) при нажатии никогда не выполнятся, а значит Сохраняемые.ЧРП-5 не изменит своего значения. Не изменит своего значения от этих двух команд (R) и (S), но от нажатия кнопки изменится однозначно. Переменная будет включена.
Вообще код неудачный. Хотите сделать его более понятным?


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 3224
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 89 раз
Поблагодарили: 141 раз

Re: Помогите, пожалуйста, разобрать цепочку

Сообщение Ryzhij » 20 янв 2015, 19:57

Malyshko писал(а):Не получится ли, что НЗ контакт перед (S) разомкнет цепочку и не взведет триггер?
Если нет, то почему? :ges_hmm:
Не переживайте, если "НЗ контакт" (опрос на логический ноль) разомкнут- значит триггер уже взведён.
Чего его второй раз взводить-то? А и взведёте, что-то изменится?
Аналогично и с нижней веткой.
Так что эти команды опроса состояния триггера не просто ненужны в силу своей бессмысленности, а вредны - затрудняют наглядность логики при отладке.
При отключенных насосах состояние триггера "DB1_Сохраняемые"."ЧРП-5" у Вас зависит только от "DB10"."ЧРП5-Буфер" :ext_secret: ;)
Зачем триггер дополнительно опрашивать перед предполагаемым изменением состояния?
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2432
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 59 раз
Контактная информация:

Re: Помогите, пожалуйста, разобрать цепочку

Сообщение Михайло » 20 янв 2015, 20:03

Я всегда придерживался принципа "Панель оператора только дает сигнал 'кнопка нажата', а контроллер выполняет все действия". В этой же системе часть действий в контроллере, часть - в панели оператора. Нет ничего хуже, чем разбираться в этом коде.


Автор темы
Malyshko
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 30 янв 2014, 12:18
Имя: Вадим Сергеевич

Re: Помогите, пожалуйста, разобрать цепочку

Сообщение Malyshko » 21 янв 2015, 12:17

Но ведь получается так, что при нажатии кнопки НО контакт "ЧРП5-Буфер" установится в 1, а НЗ "Сохраняемые.ЧРП-5" установится в 0, что повлечет за собой невозможность взвести (S)? :ges_slap:
До нажатия кнопки "ЧРП5-Буфер" в 0, а значит и "Сохраняемые.ЧРП-5" тоже в 0.


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 3224
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 89 раз
Поблагодарили: 141 раз

Re: Помогите, пожалуйста, разобрать цепочку

Сообщение Ryzhij » 21 янв 2015, 15:29

Вы сами-то прочли, что написали?
Смотрите:
Malyshko писал(а):Но ведь получается так, что при нажатии кнопки НО контакт "ЧРП5-Буфер" установится в 1, а НЗ "Сохраняемые.ЧРП-5" установится в 0,
Т.е. сам бит "DB1_Сохраняемые.ЧРП-5" уже взвели (установили в 1) из панели нажатием кнопки.
Malyshko писал(а):что повлечет за собой невозможность взвести (S)?
Во второй раз что ли, теперь уже из программы в ПЛК? Зачем? Одного раза мало?

P.S.
Разница по управлению битом из панели и из программы только в том, что из панели управление идёт абсолютно асинхронно с исполнением программы в ПЛК. Иногда это надо учитывать.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


Автор темы
Malyshko
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 30 янв 2014, 12:18
Имя: Вадим Сергеевич

Re: Помогите, пожалуйста, разобрать цепочку

Сообщение Malyshko » 21 янв 2015, 17:44

Большое спасибо!) виноват :oops: