Ограничения по ModBUS(holding registers)

Стартовая страница Форумы Взаимодействие с устройствами Modbus Ограничения по ModBUS(holding registers)

Помечено: 

Просмотр 15 сообщений - с 1 по 15 (из 19 всего)
  • Автор
    Сообщения
  • #21220
    Mettall
    Участник

    Пытаюсь связать ПЛК150(ОВЕН) по Modbus TCP c RAPID SCADA.
    Сделал все настройки создал 30 элементов holding registers типа float — все работает обмен идет.Как только добавляю 31 элемент коммутатор выдает ошибку(точнее он на секунду опрашивает и потом ошибка связи «2021-11-11 09:46:15 Попытка установки TCP-соединения может быть не ранее, чем через 3 с после предыдущей.»).
    Пробовал создать 2 группу элементов как посоветовали в этой ТЕМЕ
    но ошибка связи осталась(
    Подскажите в чем может быть причина?

    • Эта тема была изменена 2 года, 5 месяцев назад от Mettall.
    • Эта тема была изменена 2 года, 5 месяцев назад от Mettall.
    #21223
    Mettall
    Участник

    Это с подробного журнала!

    2021-11-11 10:08:02 Сеанс связи с КП 12 «КП Варка Автоматика», тип: KpModbus, адрес: 12
    Запрос значений группы элементов
    Отправка (12): 00 31 00 00 00 06 02 03 00 01 00 3C
    Приём (7/7): 00 31 00 00 00 7B 02
    Приём (122/122): 03 78 40 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 41 A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3F 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    OK!
    Запрос значений группы элементов
    Отправка (12): 00 32 00 00 00 06 02 03 00 3D 00 02
    Приём (7/7): 00 32 00 00 00 03 02
    Приём (2/2): 83 02
    Ошибка устройства: [02] ILLEGAL DATA ADDRESS!
    Запрос значений группы элементов
    Отправка (12): 00 33 00 00 00 06 02 03 00 3D 00 02
    Приём (7/7): 00 33 00 00 00 03 02
    Приём (2/2): 83 02
    Ошибка устройства: [02] ILLEGAL DATA ADDRESS!
    Запрос значений группы элементов
    Отправка (12): 00 34 00 00 00 06 02 03 00 3D 00 02
    Приём (7/7): 00 34 00 00 00 03 02
    Приём (2/2): 83 02
    Ошибка устройства: [02] ILLEGAL DATA ADDRESS!
    Запрос значений группы элементов
    Отправка (12): 00 35 00 00 00 06 02 03 00 3D 00 02
    Приём (7/7): 00 35 00 00 00 03 02
    Приём (2/2): 83 02
    Ошибка устройства: [02] ILLEGAL DATA ADDRESS!
    Запрос значений группы элементов
    Отправка (12): 00 36 00 00 00 06 02 03 00 3D 00 02
    Приём (7/7): 00 36 00 00 00 03 02
    Приём (2/2): 83 02
    Ошибка устройства: [02] ILLEGAL DATA ADDRESS!

    2021-11-11 10:08:02 Отключение от 192.168.152.196

    2021-11-11 10:08:02 Установка TCP-соединения с 192.168.152.196:503
    Ошибка при установке TCP-соединения: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение 192.168.152.196:503

    2021-11-11 10:08:03 Невозможно выполнить сеанс связи с КП 12 «КП Варка Автоматика», т.к. соединение не установлено

    2021-11-11 10:08:03 Попытка установки TCP-соединения может быть не ранее, чем через 5 с после предыдущей.

    Если делаю связь ПЛК+Modbus_OPC_inSAT+RAPID — все работает, а напрямую нет(

    #21225
    manjey73
    Участник

    Ошибка устройства: [02] ILLEGAL DATA ADDRESS!

    Разберитесь с этим, почему происходит ошибка ?

    нет такого регистра в конфигурации ПЛК или некорректное выравнивание там же и так далее.

    Если что, то 30 это 120 байт уже, хоть и ограничение Modbus 256 но кто их знает, этих Овен

    #21228
    Mettall
    Участник

    В общем тему можно закрыть.
    Решение: для того чтоб ошибки не было, необходимо в плк150(овен)в конфигураторе добавлять лишний тег(float).То есть последний мой тег 34(идент узла в конфигураторе), я добавил 35 и данные(на предыдущих тегаг) пришли в норму. Последний тег необходим для выравнивания.
    И также необходимо создать 2 группу элементов.

    • Этот ответ был изменен 2 года, 5 месяцев назад от Mettall.
    • Этот ответ был изменен 2 года, 5 месяцев назад от Mettall.
    • Этот ответ был изменен 2 года, 5 месяцев назад от Mettall.
    #21232
    manjey73
    Участник

    Да не нужен там последний тег, там постоянное выравнивание, вероятно вы читаете с 1-ого регистра а не с 0-вого, вот у вас и косяк получился.

    #21233
    Mettall
    Участник

    manjey73 — ОГРОМНОЕ Спасибо за подсказку!.
    Действительно нужно было поставить не только галочку «начинать с нуля» но еще и «адрес нач.элемента»- выставить 0(было 1)+поставил порядок байт для float «2301» (без этого связь была но показаний не было).

    • Этот ответ был изменен 2 года, 5 месяцев назад от Mettall.
    #21371
    gemchug74
    Участник

    Доброго дня всем, с Наступающим! Вопрос следующий, каким образом сделать действие у кнопки в рапиде через 15-ю функцию Modbus, то-есть устанавливать сразу группу бит в нужное состояние, стоит задача включать и сразу выключать состояние

    #21372
    a80808
    Участник

    Доброе утро!
    Если я правильно понимаю задачу, то надо к выходному каналу привязать формулу, в которой уже несколькими формулами SetBit() ставить нужные биты в нужное состояние.

    #21373
    gemchug74
    Участник

    a80808 Доброе утро, спасибо за ответ, не могли бы вы привести пример
    Конфиг такой, три кнопки, старт пауза стоп, при включении любой из них отключаются две остальные и снимается единица с актуальной, никогда не работал с формулами

    #21374
    manjey73
    Участник

    @gemchug74 сделать 3 кнопки на интерфейса ввода команды не проблема, так как нажать можно только одну из них. Вопрос в другом, у вас команда каждой копки это свой собственный бит?
    Или в зависимости от нажатой кнопки образуется определенное число и посылается в ПЛК или что там у вас?

    • Этот ответ был изменен 2 года, 3 месяца назад от manjey73.
    #21376
    gemchug74
    Участник

    Кнопки работают корректно внутри программы, но из рапиды если приходит 1 на одну из них остается висеть в этом состоянии на входе, мне нужен просто импульс из рапиды и все, 1-0

    #21377
    Mikhail
    Модератор

    Добрый день!
    Последовательность действий может быть следующей:
    1. Добиться корректной отправки команды в Коммуникаторе. Приложить скриншоты и логи.
    2. Разместить нужные кнопки на схеме. Приложить скриншоты.
    3. Далее станет ясно, какая формула канала управления нужна, чтобы связать п.1 и 2.

    #21378
    gemchug74
    Участник

    @Mikhail

    1. Добился все работает
    2. Схема простая, ничего интересного

    Вопрос простой ведь, есть ли возможность сделать отправку команды из рапиды импульсом , так называемая радиокнопка

    #21379
    manjey73
    Участник

    Конечно есть, один из вариантов Модуль автоуправления. Ой, только этот вариант и есть, если не реализовано в самом ПЛК, когда Scada посылает 1, ПЛК принял и сбросил в 0. Последнее это кстати самая правильная реализация, но если программер ПЛК не подумал, то потом и выясняется, а как бы сделать это на верхнем уровне.

    #21380
    a80808
    Участник

    Мда…опять классическая задача импульса 🙂
    Оно конечно можно в формулу sleep добавить, но Михаил говорит нельзя — остановится опрос на это время…
    Как (ну совсем теоретический :)) вариант использовать в пару еще и один входной канал:
    1. От кнопки отправляем команду с установленными битами на контроллер, одновременно устанавливаем входной канал (или его статус) в 1. Этот канал должен быть дорасчетным;
    2. Во входном канале пишем формулу анализа его значения (или статуса) и в случае «1» делаем SetVal в «0»;
    3. В формуле выходного канала на кнопке делаем анализ входного канала на «0» и отправляем команду со сброшенными битами.

    По идее «ширина» импульса (если сработает конечно :)) должна быть около секунды — время цикла опроса каналов.

    P.S. что то у меня исчезли все кнопки стиля в редакторе сообщения — ну там жирный/наклонный/ссылка…

Просмотр 15 сообщений - с 1 по 15 (из 19 всего)
  • Вы должны авторизироваться для ответа в этой теме.