Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 34

Тема: помогите разобратся с плк100,мдвв,мву8 - иногда задержка реакции

  1. #11

    По умолчанию

    сьездил к дистрибютору, купил АС4 адаптер, перевел МДВВ (адресс 20), МДВВ (адресс 40), МВУ8 (адресс 64) на работу по ModBus RTU
    в ПЛК удалил ОВЕН МАСТЕР, добавил Мод Бас Мастер, добавил 3 юниверсал модбус модул, прописал адреса, для МВУ8 добавил 8 выходов, для МДВВ добавил по 1 регистер инпут модуль и по 1 регистер оутпут модуль, везде РТУ, адреса для МДВВ 50 и 51 поставил, все читается-записывается нормально из Конфигурация ПЛК, лампочка RS485 моргает как положено.
    Теперь надо отредиактировать мою программу для работы с новыми переменнами, ведь теперь чтение-запись по маске.
    Тут появились грабли, нашел статью http://www.owen.ru/forum/showpost.ph...1&postcount=16 по этой ссылке с примером программы на языке LD, к сожелению так сложилось что я LD не умею и не смогу науметь, уже пытался. Выложите пожалуйста пример опроса в программе входов и запись выходов для 2-3 входов и 2-3 выходов МДВВ. На языке ST. Или, если уже обсуждалось (а я искал поиском по форуму) - обсуждения этих вопросов.

    Спасибо

  2. #12
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    посмотрите библиотечные функции Pak и Inpak

  3. #13

    По умолчанию

    Да, уже находил пример причем на ST как с паками-анпаками работать, посмотрел в справке.
    Меня интересует как в программе получить массив с значениями входов-выходов и как подать туда какой-либо параметр, вот этого я не нашел нигде.

    Мне нужно этот массив обработать и получить по МДВВ результат 8 outs и 12 ins.

  4. #14
    Пользователь
    Регистрация
    18.07.2008
    Адрес
    Владимир
    Сообщений
    113

    По умолчанию

    так сильно к делу не относящиеся (лень код смотреть)
    а от дрожания кнопки защита в программе есть ? %)
    Если человек доверяет судъбе, то она ведет его по жизни, иначе тащит %)

  5. #15

    По умолчанию

    Есть 2 подхода.
    Можно обращаться к биту переменной...
    Например за маску входов отвечает переменная MDVV_IN
    тогда первый вход МДВВ можно получить так
    MDVV_IN.0 второй MDVV_IN.1 и т.д.

    Ну либо использовать блоки Pack и Unpack
    C ними все просто на вход одному надо подать 8 бит а на выходе получить байт, и наоборот на входе байт, а на выходе 8 бит.
    Для того, чтобы получить word из двух байт надо сложить 2 байта со сдвигом. старший байт сдвигаем либо сдвиговыми операторами, либо умножаем его на 255 и прибавляем младший байт.

  6. #16

    По умолчанию

    Добрый день.
    Огромное спасибо за консультации.
    Особенно за разговор по скайпу с Сергеем lara197a.


    Итак распишу все по порядку, тоесть отличия ModBus RTU от ОВЕН (перенастройка девайсов).
    Название девайсов: ПЛК-100-P без лимита памяти, МВУ8 - 64 адрес, МДВВ - 20 адрес, МДВВ - 40 адрес.
    1. с помошью АС4 или аналогичного девайса включился в общую сеть RS485, до этого подключение было последовательным: ПЛК100 -> МВУ8-64 -> МДВВ-20 -> МДВВ-40. Правда не логично называть его последовательным так как контакт А и В ПЛК-100 прямо включены в МДВВ-40, разница лишь в том что к МВУ8-64 шнурок 20 сантиметров, а к МДВВ-40 - 80.
    2. с помошью конфигуратора сменил протокол с ОВЕН на ModBus RTU. Скорость передачи везде 115200
    3. в Конфигураторе ПЛК (codesys) - удалил все кроме PLK100, добавил ModBus (MASTER), в нем добавил Universal ModBus module, 3 шт, каждому прописал адресс девайса и поставил соответственный коммент, девайсы МДВВ опрашиваются каждые 10мс (polling time), МВУ8 - 50мс, если на МВУ8 ставить 10мс то иногда нет реакции на нажатие кнопок, я думаю забивается канал передачи данных.
    4. Для МДВВ добавил по одному register input module и register output module, для output адрес 50, инпут 51. Command по инструкции.
    5. Для МВУ8 добавил 8 register output module, адресация от 0 до 7 включительно.
    6. Назвал входы mdvv20input и mdvv40input, выходы mdvv20output, mdvv40output. Таким образом в ST обращаюсь к выходам как mdvv20output.0 - первый выход, mdvv20output.5 - 6-й выход.
    Входы опрашиваю как mdvv20input.0-11 и mdvv40input.0-11, тоесть от 0 до 11 = от 1 по 12 порты.
    7. изменил переменные в программе.

    Так-же теперь для МВУ8 мне надо задавать либо 0 либо 1000 (выкл-вкл), вмесо прошлых 0 или 1.



    Проблемма частично осталась, тоесть если за 5 секунд 10 раз нажать-отпустить кнопку то есть вероятность процентов 80 что один-два раза будет не срабатывание. Это конечно лучше чем то что было, но еще не идеал. Поэтому выложу сдесь свой проэкт, прокомментируйте пожалуйста код программы, и, по возможности, посоветуйте как оптимизировать, чтобы сделать работу входов-выходов МДВВ-МВУ8 аналогично быстро как напрямую с ПЛК100.

    Спасио
    Вложения Вложения

  7. #17

    По умолчанию

    Цитата Сообщение от kucherik Посмотреть сообщение
    так сильно к делу не относящиеся (лень код смотреть)
    а от дрожания кнопки защита в программе есть ? %)
    Нету, но я видел такой параметр в Конфигураторе МДВВ. Сергей (lara197a) посоветовал попробовать поставить значение 10, поделитесь пожалуйста какие у вас выставление параметры на "дребезг контакта".

    Спасибо

  8. #18
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    Записывать значения в модуль МВУ можно не только по времени, но и по команде, т.е. модуль вызывается только в случае когда нужно внести изменения в состояние выходных элементов.
    Или хотя бы увеличте время. Думаю 50ms -это слишком часто.
    1 вариант предпочтительнее.

  9. #19

    По умолчанию

    Цитата Сообщение от lara197a Посмотреть сообщение
    Записывать значения в модуль МВУ можно не только по времени, но и по команде, т.е. модуль вызывается только в случае когда нужно внести изменения в состояние выходных элементов.
    Или хотя бы увеличте время. Думаю 50ms -это слишком часто.
    1 вариант предпочтительнее.
    Если ставить 100-200мс то при нажатии кнопок можно сделать полтора шага в комнату до включения света, что не есть приемлимо, автоматически дергаюсь нажать еще раз но при этом свет успевает включится, поэтому 50мс поставил. На "глаз" это не мешает работать МДВВ20-40 и в тоже время более шустрая реакция.

    Как переключить МВУ8 на работу по команде? -)
    В Конфигураторе ПЛК есть "Preset singl register (0x06) и "Write bytes (0x71)".
    Третий параметр: "Write multiple registers (0x10)" - установлен сейчас.
    Спасибо
    Последний раз редактировалось l33tit; 28.03.2010 в 14:16.

  10. #20

    По умолчанию

    смотрите описание конфигурации плк. как задать передачу параметров по сети по команде...

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Ваши права

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