Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 26

Тема: ПЛК160-24.А-М + 5 модулей ввода/вывода

  1. #1

    По умолчанию ПЛК160-24.А-М + 5 модулей ввода/вывода

    Коллеги, добрый день!
    Прошу совета новичку по конфигурации ПЛК160-24.А-М + 5 модулей ввода/вывода : МВ110-220.АС+МВ110-16ДН+МВ110-224.А+МВ110-224.8А+МУ110-224.16Р.
    Подключил по rs-485. Сконфигурировал, хоть это было не просто, как у Гайнутдинова в обучающем ролике.
    Теперь сижу и смотрю на это в шоке:
    - Сигналы аналоговые и дискретные, обрабатываемые контроллером сразу же прилетают в панель оператора СП315 и соответственно отображаются в Codesys, а сигналы с модулей ввода/вывода в контроллере и соответственно в панели СП315 примерно через от 5 секунд до минуты

    Вопрос: Как быть, может я сконфигурировал в codesys криво? Или может это норма? Или может я провода не те подключил по RS485(обычные алюминиевые, сечением 0,25-0,5мм)? Или матчасть я плохо изучал по скорости обмена информации?

    Прошу помощи в указании направления, проект в codesys прилагаю.
    Вложения Вложения

  2. #2

    По умолчанию

    Люди мастера находить проблемы.
    Должна быть медь!!! Проложить хотя бы FTP/UTP
    + там еще очень много ньюансов, требующих опыта.
    +79104444236
    С уважением,
    Лапшин Вячеслав

  3. #3

    По умолчанию

    Цитата Сообщение от krollcbas Посмотреть сообщение
    Люди мастера находить проблемы.
    Должна быть медь!!! Проложить хотя бы FTP/UTP
    + там еще очень много ньюансов, требующих опыта.
    Проложил UTP, пока результата нет расстояние 70 см от ПЛК до крайнего модуля ввода.

  4. #4

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Да. Нет. Пох. Да.


    Таймауты всем - 30..50. Дефолтные 150 - проблемы с логикой у автора прошивки
    8AC - стрингами (1 или 2 - не копался)
    8A - стрингами (2 штуки видимо), пол тайм от 2..3 сек
    16Д - биты в опу. Только маска
    16Р - биты туда же. Только маска. На месте t.out ? если 0, то bychange, если 3..6 - both, поллинг 1-2секунды
    что 5-ое - не понял, но что-то из выше перечисленного.

    И да. Всем модулям rs.dL = 0. Всегда 0.


    PS
    Move в таком виде - в опу. (в макросе). Прямое соединение.
    Но это не про обмен.
    Move в таком виде - в опу. (в макросе). Прямое соединение. - устранил, разницы нет.
    И да. Всем модулям rs.dL = 0. Всегда 0. - было 2, устранил, разницы нет.
    Таймауты всем - 30..50. Дефолтные 150 - проблемы с логикой у автора прошивки - всем влупил 30.

    8AC - стрингами (1 или 2 - не копался) - мозгов хватило только на установку string input module. А сигнала то нет, ковычки в онлайне codesys. Как с ними дальше работать?
    8A - стрингами (2 штуки видимо), пол тайм от 2..3 сек- мозгов хватило только на установку string input module. А сигнала то нет, ковычки в онлайне codesys. Как с ними дальше работать? пол тайм от 2..3 сек - поставил 2000 в pool time графе.
    16Д - биты в опу. Только маска - маска это - ? не нашел ответ
    16Р - биты туда же. Только маска. На месте t.out ? если 0, то bychange, если 3..6 - both, поллинг 1-2секунды - маска это - ? не нашел ответ

  5. #5

    По умолчанию

    Читаю опять ваш диалог. Анекдот какой-то выходит, а суть наверное на поверхности.
    1. Попробовать проверить по отдельности каждый модуль при помощи конвертера USB-RS485 и программы Modbus Pool или подобной.
    2. Если все модули по отдельности отвечают, то подключать по одному в шину ПЛК, анализируя что происходит. Один модуль заработал, цепляем следующий.
    Иногда приходилось разносить адреса 10,20,30,40 - чтоб работало...необъяснимо все это.
    3. Попробовать шину подключить не к ПЛК, а к конвертеру. Запустить ОПС попробовать опросить все эти модули.

    Рано или поздно, если таким вполне логичным способом делить проблемы пополам - можно докопаться до ошибки.

    Про тип материала провода: мы все опираемся на свой опыт и в моей практике было, что заменив сталистую витую пару на медь - начало работать.
    Последний раз редактировалось krollcbas; 13.11.2020 в 01:34.
    +79104444236
    С уважением,
    Лапшин Вячеслав

  6. #6

    По умолчанию

    Цитата Сообщение от krollcbas Посмотреть сообщение
    Читаю опять ваш диалог. Анекдот какой-то выходит, а суть наверное на поверхности.
    1. Попробовать проверить по отдельности каждый модуль при помощи конвертера USB-RS485 и программы Modbus Pool или подобной.
    2. Если все модули по отдельности отвечают, то подключать по одному в шину ПЛК, анализируя что происходит. Один модуль заработал, цепляем следующий.
    Иногда приходилось разносить адреса 10,20,30,40 - чтоб работало...необъяснимо все это.
    3. Попробовать шину подключить не к ПЛК, а к конвертеру. Запустить ОПС попробовать опросить все эти модули.

    Рано или поздно, если таким вполне логичным способом делить проблемы пополам - можно докопаться до ошибки.

    Про тип материала провода: мы все опираемся на свой опыт и в моей практике было, что заменив сталистую витую пару на медь - начало работать.
    Я как раз этим сейчас занимаюсь параллельно с тем, что изучаю методы приема-передачи информации от модулей к контроллеру.
    Шаг за шагом приближаюсь к цели:

    - разобрался как работать с маской. Входы и выходы теперь летают через неё. Но при этом с совершенно с дикой задержкой. От 0,1 до 9 секунд.

    А вот Стринги не могу победить. Прошу помочь разобраться, как через стринги выводить показания на экран(Может есть пример проекта с настроенными стрингами?), надеюсь после этой настройки скорость передачи информации нормализуется.
    Прилагаю проект, над которым тружусь+ настройки модулей.
    Вложения Вложения

  7. #7

    По умолчанию

    Мне стало интересно и я глянул.
    1. Я тоже не понял, почему Мастер и Слейв на одном интерфейсе и как это должно работать.
    2. А что это за чтение STRING из модулей IO? Тут же модули ввода-вывода ОБЫЧНЫЕ (я сам такие вовсю использую).
    Откуда в них STRING взялся-то?!!!
    Вот оно и тормозит как чёрти что, потому что ПЛК читает слишком много из модулей.
    3. Polling Time на модули IO стоит 2000 ms. Это ДВЕ СЕКУНДЫ. Модулей 5 штук, так? Вот получается, что один модуль будет опрашиваться раз в 2 сек ъ 5 штук = ДЕСЯТЬ СЕКУНД. В худшем случае.

    Шо это за бредятина вообще?
    МВ110-16ДН = надо читать ОДИН РЕГИСТР (Register input Module) с адресом 51.
    МУ110-224.16Р = надо писать ОДИН регистр (Register output Module) с адресом 50.
    МВ110-224.8А = или надо читать FLOAT, или читать регистры значения и десятичной точки и статуса канала измерения.

    И ещё хорошо бы делать в коде комментарии и понятные имена.
    Вот посмотри на мой проект. Там как раз все такие модули как у тебя. Этот проект ЛЕТАЕТ!!
    Я вырезал отуда всё лишнее, и оставил только образцы того, что надо:
    * Конфигурация ПЛК - посмотри, как там IO вбито
    * Конфигурация Задач - посмотри, там созданы задачи и им заданы нужные времена исполнения. У тебя же задач нет, и PLC_PRG работает по умолчанию хер знает с какой скоростью.
    * Списки переменных. Их можно создавать несколько, и это удобно для проекта: можно разнести настройки, константы и RETAIN по спискам, чтобы было понятно.
    * Имена переменных и объектов. Мои читабельнее твоих. Потому имеют структуру "Префикс" + "Общее назначение" + "Название", типа Btn_KuhnaLED или Sys_TestOuts.
    * POU TaskMain, где те самые входные переменные с модулей IO разбираются по значениям и присваиваются красивым внутренним переменным.
    Вот: LobachevskDEMO.pro

  8. #8

    По умолчанию

    Валенок Да, я не совсем в курсе стрингов. 8А в проектах у меня работают вовсю так, как я написал, и сбоев не было.
    Насчёт стрингов просьба детально пояснить то, сколько времени на шине тратится на обмен с ними. В смысле, что больше загрузит шину: чтение десятка мелких регистров или чтение одного длинного STRING.
    То, что STRING используется как массив байтов, я догадался. Но всё равно задался вопросом о том, нафига из модулей читать ВСЁ, если это ВСЁ не нужно, а место в виде байт и времени, которое на их передачу тратится, - занимает. И вот это для меня и непонятно. Образно, нафига покупать камаз еды, если столько не съешь?
    Всё это на логическом анализаторе хорошо видать. И как запросы по шине идут, и какие в каком порядке. Мощная штука.

    Что касается анонизма про модули 8Ах - то слухи о нём сильно преувеличены. В инструкции написано, что опрос одного канала занимает от 0,6 до 0,9 секунды. На опрос по Modbus самого модуля это никак не влияет, и я могу читать модуль хоть каждые 20 ms.
    В своих проектах я увеличиваю время опроса модуля из-за того, что у этих модулей данных передаётся больше, чем у дискретных, и мне хочется оставить планировщику CodeSys возможность отдать больше времени на опрос дискретных модулей, чем аналоговых.
    То есть, это такая тупенькая перестраховочка. На работу модуля или его нагрузку она не влияет.

    Касательно планировщика. Валенок, а ты не видел, какой ужасный планировщик в CodeSys v3? Может я не в ту телегу, но вот там-то как раз все 2000 ms растянутся в 2000 ms х количество устройств х количество регистров. И стринги там всё попортят.
    Я вчера вон тыкал логическим анализатором в проект как раз и на это всё глядел.
    В CodeSys v2 планировщик повеселее, но жестить с длинными запросами там тоже нежелательно.
    Последний раз редактировалось Cs-Cs; 14.11.2020 в 08:03.

  9. #9

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Мне стало интересно и я глянул.
    1. Я тоже не понял, почему Мастер и Слейв на одном интерфейсе и как это должно работать.
    2. А что это за чтение STRING из модулей IO? Тут же модули ввода-вывода ОБЫЧНЫЕ (я сам такие вовсю использую).
    Откуда в них STRING взялся-то?!!!
    Вот оно и тормозит как чёрти что, потому что ПЛК читает слишком много из модулей.
    3. Polling Time на модули IO стоит 2000 ms. Это ДВЕ СЕКУНДЫ. Модулей 5 штук, так? Вот получается, что один модуль будет опрашиваться раз в 2 сек ъ 5 штук = ДЕСЯТЬ СЕКУНД. В худшем случае.

    Шо это за бредятина вообще?
    МВ110-16ДН = надо читать ОДИН РЕГИСТР (Register input Module) с адресом 51.
    МУ110-224.16Р = надо писать ОДИН регистр (Register output Module) с адресом 50.
    МВ110-224.8А = или надо читать FLOAT, или читать регистры значения и десятичной точки и статуса канала измерения.

    И ещё хорошо бы делать в коде комментарии и понятные имена.
    Вот посмотри на мой проект. Там как раз все такие модули как у тебя. Этот проект ЛЕТАЕТ!!
    Я вырезал отуда всё лишнее, и оставил только образцы того, что надо:
    * Конфигурация ПЛК - посмотри, как там IO вбито
    * Конфигурация Задач - посмотри, там созданы задачи и им заданы нужные времена исполнения. У тебя же задач нет, и PLC_PRG работает по умолчанию хер знает с какой скоростью.
    * Списки переменных. Их можно создавать несколько, и это удобно для проекта: можно разнести настройки, константы и RETAIN по спискам, чтобы было понятно.
    * Имена переменных и объектов. Мои читабельнее твоих. Потому имеют структуру "Префикс" + "Общее назначение" + "Название", типа Btn_KuhnaLED или Sys_TestOuts.
    * POU TaskMain, где те самые входные переменные с модулей IO разбираются по значениям и присваиваются красивым внутренним переменным.
    Вот: LobachevskDEMO.pro
    Всем спасибо за ответы. Соль как раз здесь:
    - "Как думает ТС, мастер и слейв на одном интерфейсе - норм ?"
    - "1. Я тоже не понял, почему Мастер и Слейв на одном интерфейсе и как это должно работать."

    На данный момент вся информация обновляется сразу, с модулей 8АС, 16Р и 16ДН. А вот с модулями 8А - картина стала от 3(для 3-х термометров сопротивления) до 8(для 8-ми термопар) секунд. С вложенным примером буду долго и упорно продолжать разбираться, думаю после понимания логики построения и модули 8А встанут на место.
    Вложения Вложения

  10. #10

    По умолчанию

    Ежели речь идёт про мой пример, то там основное, в чём разбираться - это, блин, хороший стиль именования и комментирования всего и вся и всех.
    А про обновление показаний... Хм! Это про что речь? Если про то, что ты датчик греешь зажигалкой (образно), а изменение его температур видишь через 8 секунд - то НЕ ЗАБУДЬ, что в инструкции на модуль .8А написано, что он внутри себя один вход обновляет за 0,6-0,9 секунды. И если у тебя задействованы все 8 входов, то обновляться они будут через 8 входов х 0,9 секунды = 7,2 секунды каждый. Это нормально для такого модуля IO.
    У себя в одном из проектов на СПК107 я даже делал задержку при старте проекта на опрос этих модулей для того, чтобы дать им времени в 15-20 секунд на первый опрос всех датчиков и уже потом смотреть, что там модули навозвращали по ним.

Страница 1 из 3 123 ПоследняяПоследняя

Похожие темы

  1. Подбор модулей ввода/вывода дискретных сигналов
    от Pavel Snegirev в разделе Подбор Оборудования
    Ответов: 5
    Последнее сообщение: 18.12.2019, 11:57
  2. ПЛК100+18 модулей ввода и вывода
    от Дулат в разделе Эксплуатация
    Ответов: 23
    Последнее сообщение: 08.11.2019, 11:52
  3. Питание ПЛК100 и модулей ввода-вывода
    от rocky7 в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 03.03.2016, 08:42
  4. Ответов: 20
    Последнее сообщение: 20.04.2013, 15:45
  5. Скорость опроса модулей ввода/вывода.
    от Sergey_Byk в разделе ПЛК3хх
    Ответов: 14
    Последнее сообщение: 16.11.2012, 08:53

Ваши права

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