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

Принцип прохода программы Control Logix

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

Автор темы
Andrey 2014
осмотрелся
осмотрелся
Сообщения: 150
Зарегистрирован: 04 фев 2014, 13:52
Имя: Исаков Андрей Вячеславович
Благодарил (а): 2 раза

Принцип прохода программы Control Logix

Сообщение Andrey 2014 » 24 май 2016, 10:33

Здравствуйте! Такой вопрос у меня возник, релейная логика, если я последовательно поставлю два блока MOV первый будет 0 записывать в некий тег, а второй в этот же тег будет писать 1. Если запустить эту программу, то тег будет всегда в "1". Когда программа сканируется она вроде бы должна в "0" переводить тег этот, а уже потом в "1". На деле же этого не происходит (либо происходит, но очень быстро). Разъясните, как вообще программа сканируется? Измененные данные пишутся в какой то буфер, а после прохода уже в теги или сразу в теги, прямо во время сканирования?

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

den_vish
осмотрелся
осмотрелся
Сообщения: 141
Зарегистрирован: 11 апр 2013, 12:22
Имя: Вишневский Денис
Благодарил (а): 8 раз
Поблагодарили: 8 раз

Принцип прохода программы Control Logix

Сообщение den_vish » 24 май 2016, 12:10

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


Автор темы
Andrey 2014
осмотрелся
осмотрелся
Сообщения: 150
Зарегистрирован: 04 фев 2014, 13:52
Имя: Исаков Андрей Вячеславович
Благодарил (а): 2 раза

Принцип прохода программы Control Logix

Сообщение Andrey 2014 » 24 май 2016, 14:01

den_vish писал(а):Источник цитаты слева на право, сверху вниз

Сначала слева направо, а потом сверху вниз? То есть построчно, как книгу читать?

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

den_vish
осмотрелся
осмотрелся
Сообщения: 141
Зарегистрирован: 11 апр 2013, 12:22
Имя: Вишневский Денис
Благодарил (а): 8 раз
Поблагодарили: 8 раз

Принцип прохода программы Control Logix

Сообщение den_vish » 24 май 2016, 14:58

Андрей, давайте сделаем проще, вы кинете скрин программы, и мы его дружненько прочтем, на примере так сказать.
"- Знаешь, дружище, в чем истинный смысл второго закона термодинамики?
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)


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

Принцип прохода программы Control Logix

Сообщение Ryzhij » 24 май 2016, 21:35

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


Автор темы
Andrey 2014
осмотрелся
осмотрелся
Сообщения: 150
Зарегистрирован: 04 фев 2014, 13:52
Имя: Исаков Андрей Вячеславович
Благодарил (а): 2 раза

Принцип прохода программы Control Logix

Сообщение Andrey 2014 » 25 май 2016, 09:55

Ну вот, прикрепил этот участок программы. Есть тег Status, который принимает целочисленное значение в зависимости от того, какой аларм сработал. Его, естественно нужно обнулять, если значение вышло из аларма. То есть, по сути у меня моргание будет в данном случае?
Безымянный.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.


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

Принцип прохода программы Control Logix

Сообщение Ryzhij » 26 май 2016, 23:49

Да, будет моргание.
Чтобы этого избежать, строкой ниже скопируйте MOV-ом сформированное значение этого тега в другой, и его уже обабатывайте. Второй тег мельтешить уже не будет. Сбрасывать есть смысл первый, промежуточгный тег-заготовку.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


Автор темы
Andrey 2014
осмотрелся
осмотрелся
Сообщения: 150
Зарегистрирован: 04 фев 2014, 13:52
Имя: Исаков Андрей Вячеславович
Благодарил (а): 2 раза

Принцип прохода программы Control Logix

Сообщение Andrey 2014 » 28 май 2016, 09:16

Сделал вот так, теперь моргать ничего не будет?
download/file.php?mode=view&id=4934
У вас нет необходимых прав для просмотра вложений в этом сообщении.


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

Принцип прохода программы Control Logix

Сообщение Ryzhij » 28 май 2016, 15:25

Вынесите последний оператор Mov в отдельную "ступеньку", иначе, при невыполнении логических условий, у Вас ноль из временного тега в окончательный переписываться не будет. Тот так и останется с последним значением.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


Автор темы
Andrey 2014
осмотрелся
осмотрелся
Сообщения: 150
Зарегистрирован: 04 фев 2014, 13:52
Имя: Исаков Андрей Вячеславович
Благодарил (а): 2 раза

Принцип прохода программы Control Logix

Сообщение Andrey 2014 » 29 май 2016, 11:07

Ryzhij писал(а):Источник цитаты при невыполнении логических условий

Что значит эта фраза? Смотрел, думал, ничего не понял. Покатал этот кусок в эмуляторе, все нормально обновляется и переписывается. Поясните подробнее пожалуйста.


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

Принцип прохода программы Control Logix

Сообщение Ryzhij » 29 май 2016, 12:30

У Вас есть два оператора -[\]-
Если хоть один из них не выполняется, то выходной тег не обновится.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


Автор темы
Andrey 2014
осмотрелся
осмотрелся
Сообщения: 150
Зарегистрирован: 04 фев 2014, 13:52
Имя: Исаков Андрей Вячеславович
Благодарил (а): 2 раза

Принцип прохода программы Control Logix

Сообщение Andrey 2014 » 29 май 2016, 16:09

Понял, спасибо!