- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Вопрос по программированию Эмиконов-2000
Модераторы: Глоб.модераторы, специалисты по PLC
-
- не первый раз у нас
- Сообщения: 317
- Зарегистрирован: 08 апр 2015, 19:28
- Имя: Виктор
- Страна: Россия
- город/регион: Старый Оскол/Белгородская область
- Благодарил (а): 14 раз
- Поблагодарили: 2 раза
Вопрос по программированию Эмиконов-2000
Здравствуйте. Возникла проблема при корректировке кода программы, написанной на CONT Designer. Программа предназначена для обработки аналоговых сигналов с датчиков, дискретных сигналов (2-е пороги по превышению концентрации газа по каждому каналу сигнализатора) и вывода дискретных сигналов на включение аварийной сигнализации (звуковая и световая). Возникла необходимость подключить дополнительные дискретные входа (1-е пороги). Взяли кусок кода, отвечающего за обработку дискретных сигналов 2-х порогов, скопировали и вставили в свободное место программы, при этом изменили только адреса дискретных входов. Оба куска кода привязаны к одним и тем же выходам. Проблема вот в чем: когда когда поступает дискретный сигнал о срабатывании второго порога, на выходе появляется стабильная единица-срабатывает сигнализация. Когда же поступает дискретный сигнал о срабатывании первого порога (новый код), то на выходе появляется мерцающее значение, сигнализация при этом не срабатывает. На входе при этом стабильная единица. Код один и тот же что для первого, что для второго порога (за исключением разных адресов дискретных входов). Привязка к одному и тому же дискретному выходу. Подскажите, почему так происходит?
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 840 раз
Вопрос по программированию Эмиконов-2000
Характерная ошибка всех начинающих.
При обращении к одному и тому же выходу из разных мест программы кошерно использовать раздельные команды установки состояния выхода Set и общую команду его сброса Reset, а не раздельные пары команд, и уж тем более не две команды пересылки результата логической операции.
При немедленном, цикличном и асинхронном способах ввода-вывода возможны различные вариации, но косяк неизбежен.
При обращении к одному и тому же выходу из разных мест программы кошерно использовать раздельные команды установки состояния выхода Set и общую команду его сброса Reset, а не раздельные пары команд, и уж тем более не две команды пересылки результата логической операции.
При немедленном, цикличном и асинхронном способах ввода-вывода возможны различные вариации, но косяк неизбежен.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- эксперт
- Сообщения: 1735
- Зарегистрирован: 06 янв 2016, 19:45
- Имя: Петров В.Л.
- Страна: Россия
- город/регион: Красноярск
- Благодарил (а): 78 раз
- Поблагодарили: 235 раз
Вопрос по программированию Эмиконов-2000
И для этого существует RS триггер и сборки логические для пуска и останова.
Ну и вообще - метод Cntrl/C и Cntrl/V - мощнейший инструмент, в наше время -но логику работы лучше все таки осознать :)
Ну и вообще - метод Cntrl/C и Cntrl/V - мощнейший инструмент, в наше время -но логику работы лучше все таки осознать :)
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 840 раз
Вопрос по программированию Эмиконов-2000
Иначе говоря, переделайте программу так, чтобы использовать операторы ВКЛЮЧИТЬ и ВЫКЛЮЧИТЬ, а не оператор присваивания.
Последний раз редактировалось Ryzhij 15 фев 2023, 15:39, всего редактировалось 1 раз.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- администратор
- Сообщения: 18749
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1852 раза
Вопрос по программированию Эмиконов-2000
Как говорит VADR:
Повторное использование кода не отменяет повторного использования мозга.
По вопросам работы Форума можно обратиться по этим контактам.
-
- не первый раз у нас
- Сообщения: 317
- Зарегистрирован: 08 апр 2015, 19:28
- Имя: Виктор
- Страна: Россия
- город/регион: Старый Оскол/Белгородская область
- Благодарил (а): 14 раз
- Поблагодарили: 2 раза
Вопрос по программированию Эмиконов-2000
Ryzhij, все именно так и сделано: выход срабатывает через команду ВКЛЮЧИТЬ, никакого присваивания там нет
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 840 раз
Вопрос по программированию Эмиконов-2000
Замечательно, теперь разберитесь с командами ВЫКЛЮЧИТЬ, и с остальными командами, относящимися к этому дискретному выходу.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)