Страница 285 из 1051 ПерваяПервая ... 185235275283284285286287295335385785 ... ПоследняяПоследняя
Показано с 2,841 по 2,850 из 10510

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

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

    По умолчанию

    Цитата Сообщение от ЕвгенийД Посмотреть сообщение
    Помогите сделать связь с MB110 c ПЛК по 485 интерфейсу.
    настройки ПЛК сделал ModBus master. Настройки МВ оставил по умолчанию.
    Помогите - неделю уже бьюсь!
    На ПЛК, лучше выложить программу, а на MB110, можно и скрин с установленными параметрами.

  2. #2842
    Пользователь
    Регистрация
    03.01.2013
    Адрес
    Волгоград
    Сообщений
    82

    По умолчанию

    это только экстрасенсы по фотографии могут определить что\где когда и почему.
    мало информации.проект нужен и файл настроек модуля,чтобы Вам смогли что-то вразумительное ответить.
    Какой модуль?Например если МВ110-16ДН, то ему надо указывать протокол обмена.Если вы ему заводские настройки оставили,то он связываться не будет.У него по дефолту протокол ОВЕН стоит на сколько я помню.

  3. #2843

    По умолчанию

    Подскажите пожалуйста, что делаю не так, пытаюсь сделать так чтобы после включения выхода, ПЛК-73 переключался с одного экрана на другой, с соответствующей надписью "пуск".

  4. #2844

    Thumbs up

    [QUOTE=Василий Кашуба;140580]На ПЛК, лучше выложить программу, а на MB110, можно и скрин с установленными параметрами.[/QUOTE
    Программа и конфигурация МВ во вложении.
    При наличии на входах МВ любого нолика включается сигнализация и по нажатию кнопки SB1 на ИП320 выводится соответствующее сообщение. после вывода всех сообщений программа ожидает когда все сигналы придут в норму - в 1 и начинается новый цикл отработки аварий.
    Сейчас у меня с МВ в программе только нолики. На деле на входе МВ 0х80.

  5. #2845
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,849

    По умолчанию

    Цитата Сообщение от ЕвгенийД Посмотреть сообщение
    Программа и конфигурация МВ во вложении.
    При наличии на входах МВ любого нолика включается сигнализация и по нажатию кнопки SB1 на ИП320 выводится соответствующее сообщение. после вывода всех сообщений программа ожидает когда все сигналы придут в норму - в 1 и начинается новый цикл отработки аварий.
    Сейчас у меня с МВ в программе только нолики. На деле на входе МВ 0х80.
    Если не читать РЭ на приборы, то всегда будет
    Помогите - неделю уже бьюсь!
    Вложение 13462
    Вложение 13462
    А что у Вас? Почему номер регистра 0?
    Вложение 13463
    Кроме того есть примеры применения модулей.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #2846

    По умолчанию

    Цитата Сообщение от 31kip Посмотреть сообщение
    Подскажите пожалуйста, что делаю не так, пытаюсь сделать так чтобы после включения выхода, ПЛК-73 переключался с одного экрана на другой, с соответствующей надписью "пуск".
    Какого выхода? Q5?
    Изъясняйтесь яснее!

  7. #2847

    По умолчанию

    Цитата Сообщение от kolyan Посмотреть сообщение
    Какого выхода? Q5?
    Изъясняйтесь яснее!
    да Q5. а вообще я только начинаю изучать CoDeSys и для меня важно понять принцип выполнения, перечитал кучу литературы и столкнулся с тем что написано в ST по мере воплощения стараюсь адаптировать ST в CFC но не всегда получается(например как в этом случае), уже пробовал работу с экраном прописывать отдельным функциональным блоком в ST. но в связи моими скудными познаниями в программировании получается очень много ошибок в написании.

  8. #2848

    По умолчанию

    Цитата Сообщение от 31kip Посмотреть сообщение
    да Q5. а вообще я только начинаю изучать CoDeSys и для меня важно понять принцип выполнения, перечитал кучу литературы и столкнулся с тем что написано в ST по мере воплощения стараюсь адаптировать ST в CFC но не всегда получается(например как в этом случае), уже пробовал работу с экраном прописывать отдельным функциональным блоком в ST. но в связи моими скудными познаниями в программировании получается очень много ошибок в написании.
    Учитесь, читайте, смотрите чужие примеры - их на форуме множество!
    И совет: переходите на ST.
    Замучаетесь на CFC работать с экранами.

  9. #2849

    Question Дорогие гуру помогите с оптимизацией программы

    В архиве программа для панели
    В программе 4 подпрограммы
    CONNECT - проверка связи с модулями
    PLC_PRG - трансляция значений для прямой индикации
    SM-AL - обобщение аварий (создание аварий по группам)
    ALARM_N - аварии не включения вентустановок, не открытия заслонок
    (это не окончательный вариант, причесываю, добавляю)
    И собственно проблема с ALARM_N - его цикл доходит до 4 секунд..
    приточек 16, вытяжек 48, на каждую по 2 аварии (с выдержкой времени)
    не включение в течении 5-10 секунд - авария,
    не открытие клапана в течении 90-120 секунд авария,
    естественно для каждой аварии проверяются условия...

    Как можно уменьшить время цикла, или сделать его прерывание для опроса модулей.

    Заранее спасибо за критику и предложения!!

    Подмечу сразу, работаю со словами целиком (то есть передаю с порта на порт), ИБО уже 10 изменение по вентиляции (раньше вытяжки приточки были по порядку), что они еще придумают...

  10. #2850
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Tayon, начнём с ликбеза по логическим выражениям. Вот так не пишут:
    Код:
    IF OUTP51.0=TRUE AND IN51.4=FALSE THEN
    Это тавтология и лишний код. Следует писать так:
    Код:
    IF OUTP51.0 AND NOT IN51.4 THEN
    В условиях вообще не должны встречаться слова true и false. Сама конструкция if это уже проверка на true, и вы «проверяете проверку на true на true». Для проверки на false есть отрицание not.

    Сжимаем дальше. Вот ваш код опять:
    Код:
    IF OUTP51.0=TRUE AND IN51.4=FALSE THEN AL1.0:=TRUE; ELSE AL1.0:=FALSE; END_IF
    TONP9R(IN := AL1.0, PT:= TN);
    ALARM1.0 :=TONP9R.Q;
    А вот как следует:
    Код:
    TONP9R(IN := OUTP51.0 AND NOT IN51.4, Q => ALARM1.0);
    Параметр PT можно задать один раз в объявлениях:
    Код:
    TONP9R: TON := (PT := T#3s);
    И вообще, если что-то можно задать в объявлениях, лучше это сделать.

    Но больше всего поражает, конечно, количество таймеров. Их можно заменить массивом типа TIME, и в этот массив заносить временные метки по соответствующим условиям:
    Код:
    currentTime := TIME();
    timestamps[N] := SEL(OUTP51.N AND NOT IN51._N_, currentTime, timestamps[N]);
    Дальше в цикле забивать маску аварий:
    Код:
    ALARM1.N := currentTime - timestamps[N] > TZ;
    Только аккуратнее с переполнением на 50-е сутки.

    Ещё в несколько раз эту подпрограмму можно ускорить, если принять во внимание, что допуски в 10 и 90 секунд это намного больше среднего цикла ПЛК. Значит, необязательно каждый раз проверять все механизмы, и можно разбить их на несколько групп. Скажем, проверять штук 5-10 за проход.

    В общем, циклы, группирование и логика без тавтологий и лишних промежуточных переменных.

Страница 285 из 1051 ПерваяПервая ... 185235275283284285286287295335385785 ... ПоследняяПоследняя

Метки этой темы

Ваши права

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