Страница 185 из 360 ПерваяПервая ... 85135175183184185186187195235285 ... ПоследняяПоследняя
Показано с 1,841 по 1,850 из 3594

Тема: разные вопросы новичка

  1. #1841
    Пользователь
    Регистрация
    05.10.2020
    Адрес
    Питер
    Сообщений
    33

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Нет ПРки под рукой, проверить не могу
    попробуйте включить "Запись в конце цикла
    ЗЫ
    В Вашем случае думаю можно упростить
    Отлично. Работает. Упрощенный вариант тоже (который мне больше понравился). Огромное спасибо!
    Последний раз редактировалось Alex469; 20.11.2020 в 14:05.

  2. #1842
    Пользователь
    Регистрация
    05.10.2020
    Адрес
    Питер
    Сообщений
    33

    По умолчанию

    Цитата Сообщение от bayk Посмотреть сообщение
    Поправка, чтобы функция "запись в конце цикла" стала активной переменная должна обязательно быть подключена к экранному элементу, или переменная должна быть энергонезависимой, тогда функция автоматически будет работать, если я ничего не путаю
    В моем случае это сетевая переменная (ПРка в режиме мастер). Соответственно функция "запись в конце цикла" для данной переменной активна.

  3. #1843
    Пользователь
    Регистрация
    05.10.2020
    Адрес
    Питер
    Сообщений
    33

    По умолчанию

    Очередной вопрос: в ПР100 есть 6 цифровых входов I1,...,I6. ПР100 в режиме модбас мастер. Нужно сформировать сетевую слейв переменную Err_MB целого типа по следующему алгоритму.
    Если все входы равны 0, то Err_MB = 0. Если хотя бы один вход стал равен 1, то переменная Err_MB должна стать равна номеру входа, на котором появился 1.
    При этом важно, что бы в переменной Err_MB должен зафиксироваться номер первого сработавшего входа. Т.е. если сначала сработал вход I3, а потом вход I5, то Err_MB должна остаться = 3.
    Более того, как только Err_MB изменилась из 0 в номер сработавшего входа, то изменить ее в 0 потом можно только слейвом (по модбас).

  4. #1844
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,235

    По умолчанию

    Цитата Сообщение от Alex469 Посмотреть сообщение
    Очередной вопрос: в ПР100 есть 6 цифровых входов I1,...,I6. ПР100 в режиме модбас мастер. Нужно сформировать сетевую слейв переменную Err_MB целого типа по следующему алгоритму.
    Если все входы равны 0, то Err_MB = 0. Если хотя бы один вход стал равен 1, то переменная Err_MB должна стать равна номеру входа, на котором появился 1.
    При этом важно, что бы в переменной Err_MB должен зафиксироваться номер первого сработавшего входа. Т.е. если сначала сработал вход I3, а потом вход I5, то Err_MB должна остаться = 3.
    Более того, как только Err_MB изменилась из 0 в номер сработавшего входа, то изменить ее в 0 потом можно только слейвом (по модбас).
    Не до конца ясно, как должно работать в тех или иных случаях, например должно ли сбрасываться при наличии активных аварий(ошибок), у меня можно сбросить и следующая авария(ошибка) появится только после пропадании всех и возникновении вновь или логика при одновременном нажатии более одного входа(у меня приоритет у более старшего входа), короче, наверно примерно так:

    Авария_3.PNG

    Авария_3.owl
    Последний раз редактировалось Сергей0308; 27.11.2020 в 02:38.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  5. #1845
    Пользователь
    Регистрация
    05.10.2020
    Адрес
    Питер
    Сообщений
    33

    По умолчанию

    Сергей0308, спасибо огромное, практически то, что нужно. Особенно интересно решение с приоритетами при одновременном нажатии более одного входа. Вот только не пойму назначение переменной IN1_8.
    Если я понял правильно, то в OUT_w формируется код аварии (от 1 до 8). Как правильно сбрасывать это код в 0? Записью 0 в локальную переменную Q ? Или формированием некоторого значения (какого ?) в IN1_8 ?
    Какова связь между срабатыванием входов и значением переменной IN1_8 ?

  6. #1846
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,235

    По умолчанию

    Цитата Сообщение от Alex469 Посмотреть сообщение
    Сергей0308, спасибо огромное, практически то, что нужно. Особенно интересно решение с приоритетами при одновременном нажатии более одного входа. Вот только не пойму назначение переменной IN1_8.
    Если я понял правильно, то в OUT_w формируется код аварии (от 1 до 8). Как правильно сбрасывать это код в 0? Записью 0 в локальную переменную Q ? Или формированием некоторого значения (какого ?) в IN1_8 ?
    Какова связь между срабатыванием входов и значением переменной IN1_8 ?
    Насколько я смог понять, Вы хотели сбрасывать код ошибки(1-8) только по сети?!
    В данном случае, для примера ПР200(мастер) считывает 51 регистр модуля дискретного ввода(слейв) и если на его первом входе появляется "1" сбрасывает значение ошибки в "0". Можно одним регистром передавать до 16 дискретных сигналов! Короче, сброс происходит значением "1" в сетевой переменной IN1_8, так как такой весовой коэффициент у первого входа(нулевого бита), у второго входа(первого бита) это будет "2" у третьего входа - "4", у четвёртого входа - "8", у пятого входа - "16", у шестого входа - "32", у седьмого входа - "64" и у восьмого входа - "128", если сброс сделать с этих входов, всё!

    Для передачи кода ошибки(диапазона 0-6) достаточно задействовать три бита(диапазон 0-7)!
    Последний раз редактировалось Сергей0308; 28.11.2020 в 20:23.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  7. #1847
    Пользователь
    Регистрация
    05.10.2020
    Адрес
    Питер
    Сообщений
    33

    По умолчанию

    Сергей0308, спасибо за пояснение. Я понял назначение данной переменной в Вашем примере.

  8. #1848
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,235

    По умолчанию

    Цитата Сообщение от Alex469 Посмотреть сообщение
    Сергей0308, спасибо за пояснение. Я понял назначение данной переменной в Вашем примере.
    Может Вы планировали обойтись одной сетевой переменной?
    Если куда Вы посылаете код ошибки и откуда его сбрасываете - одно устройство и достаточно "умное", например ПР, то можно обойтись и одной переменной, мастер читает и пишет эту переменную, например так:

    Авария_4.PNG

    Авария_4.owl
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  9. #1849
    Пользователь
    Регистрация
    05.10.2020
    Адрес
    Питер
    Сообщений
    33

    По умолчанию

    Сергей0308, еще раз спасибо! Тоже интересный вариант. Меня сейчас заботит несколько другой аспект, который пока не получается реализовать. Хочется, что бы код ошибки (OUT_w) можно сбросить в 0 при наличии активных аварий (ошибок) и следующая ошибка появится сразу же после сброса, если есть любые активные аварии на входах. Например, если по времени последовательно расписать так (ti - момент времени i):
    t1: вход I5 = 1, OUT_w = 5 - сработал вход I5, код ошибки = 5
    t2: вход I7 = 1 - сработал вход I7
    t3: вход I5 = 0 - вход I5 сброшен
    t4: OUT_w = 0 - сброс кода ошибки
    t5: OUT_w = 7 - код ошибки = 7, т.к. вход I7 активен.
    Так же должно работать, если мы сбрасываем код ошибки, а вход I5 все еще активен.

  10. #1850
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,235

    По умолчанию

    Цитата Сообщение от Alex469 Посмотреть сообщение
    Сергей0308, еще раз спасибо! Тоже интересный вариант. Меня сейчас заботит несколько другой аспект, который пока не получается реализовать. Хочется, что бы код ошибки (OUT_w) можно сбросить в 0 при наличии активных аварий (ошибок) и следующая ошибка появится сразу же после сброса, если есть любые активные аварии на входах. Например, если по времени последовательно расписать так (ti - момент времени i):
    t1: вход I5 = 1, OUT_w = 5 - сработал вход I5, код ошибки = 5
    t2: вход I7 = 1 - сработал вход I7
    t3: вход I5 = 0 - вход I5 сброшен
    t4: OUT_w = 0 - сброс кода ошибки
    t5: OUT_w = 7 - код ошибки = 7, т.к. вход I7 активен.
    Так же должно работать, если мы сбрасываем код ошибки, а вход I5 все еще активен.
    Тогда наверно как-то так:

    Авария_5.PNG

    Вы, наверно, в первый раз с логикой сталкиваетесь?

    Авария_5.owl
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

Страница 185 из 360 ПерваяПервая ... 85135175183184185186187195235285 ... ПоследняяПоследняя

Похожие темы

  1. Вопросы новичка!!!
    от sau в разделе ПЛК1хх
    Ответов: 42
    Последнее сообщение: 02.05.2022, 19:57
  2. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 15:39
  3. ПЛК 110 - Вопросы новичка?
    от di-s в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 06.09.2011, 15:12
  4. Вопросы полного новичка
    от Korion в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 09.02.2010, 10:08
  5. Вопросы новичка по ПЛК
    от Ollegator в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 07.07.2009, 10:29

Ваши права

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