1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Модераторы: Глоб.модераторы, специалисты Weintek

Ответить

Автор темы
alex2k3
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2012, 14:48
Имя: Александр
Благодарил (а): 1 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение alex2k3 »

Здравствуйте.
Прошу помощи. Есть панель Weintek подключенная по Ethernet к ПЛК DELTA-DVP12SE.
Соответственно у панели появилась карта адресации и способов обращения к адресному пространству ПЛК.
Но проблема в том, что мне необходимо модифицировать отдельные биты в словах адресного пространства D.
А панель не может побитно обращаться к словам, только читать писать целые слова D.
Хотя если выбирать старшую версию ПЛК, то такая возможность уже появляется.
Вот и вопрос как можно лаконично организовать чтение запись отдельных битов в слове D, со стороны панели?
Первым делом на ум приходит:
1. Слово адресного пространства панели LW можно читать писать побитно в самой панеле, соответственно визуальные элементы будут работать с ним.
2. Пересылать в/из ПЛК данные словами в это слово панели с помощью макроса или элемента передача данных по тригеру.

Но что-то такое решение не особо красивое, особенно если нужно работать с большим количеством данных в ПЛК. Можно конечно применять указатель в панеле. Но может есть еще како-нибудь другой способ?

pkl58
завсегдатай
завсегдатай
Сообщения: 544
Зарегистрирован: 19 мар 2012, 20:04
Имя: Павел
Страна: Россия
Благодарил (а): 6 раз
Поблагодарили: 59 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение pkl58 »

Копируйте D в область M и читайте.

Автор темы
alex2k3
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2012, 14:48
Имя: Александр
Благодарил (а): 1 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение alex2k3 »

Не получится т.к. данных в области D очень много, и общий размер данных превышает область М.
Только если организовывать подобное обращение по указателю не в панеле а в ПЛК.
Но это тоже малоприятный способ.

pkl58
завсегдатай
завсегдатай
Сообщения: 544
Зарегистрирован: 19 мар 2012, 20:04
Имя: Павел
Страна: Россия
Благодарил (а): 6 раз
Поблагодарили: 59 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение pkl58 »

Тогда только фоновый макрос и копирование в область LW нужной области D.

Автор темы
alex2k3
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2012, 14:48
Имя: Александр
Благодарил (а): 1 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение alex2k3 »

Как вариант.
Но не без подводных камней.
Тут возникает проблема отслеживания обновления данных, как со стороны ПЛК, так и со стороны HMI.
Т.е. нажали кнопку на панели, взвели бит в слове. Значит панель должна понять что нужно переслать это слово в ПЛК, для обновления этого бита. Причем без изменения соседних битов. Если делать это в цикле, сначала читаем из ПЛК, затем пишем в ПЛК. То может получиться состояние в котором нажали на кнопу, взвели бит в панели, и не успели записать в ПЛК, а следующий цикл чтения из ПЛК, перепишет нулем это бит. И получится что кнопку не нажимали.

pkl58
завсегдатай
завсегдатай
Сообщения: 544
Зарегистрирован: 19 мар 2012, 20:04
Имя: Павел
Страна: Россия
Благодарил (а): 6 раз
Поблагодарили: 59 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение pkl58 »

Разделите область записи и чтения в панели. О каком числе слов идет речь? Может и не нужно так усложнять? Опишите вашу задачу поподробнее.
ЗЫ. Были случаи, когда нужно было гонять между панелью и ПЛК большое количество данных ( типа рецепта). Оборудование работало циклически. И передачу данных делал по кнопке с установкой флага в ПЛК по окончанию передачи. При этом ПЛК использовал новые значения только после получения этого флага и с началом нового цикла работы.

Автор темы
alex2k3
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2012, 14:48
Имя: Александр
Благодарил (а): 1 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение alex2k3 »

Ну у меня получается есть структура, описывающая объект, размером 24 слова. В ПЛК, крутится цикл, который прокручивает 200 таких структур, со смещением, по номеру объекта. В панеле, есть окошко с указателем, который вычисляется в зависимости от того, какой объект необходимо просмотреть, и соответственно работает с указанной структурой в ПЛК. Так вот работать со словами проблем нет, но в структуре есть биты отвечающие за различные статусы и кнопки активации. Вот с ними и возникает проблема, т.к. нельзя к ним обратиться из панели как на прямую, так и через указатель. Нужны какие-то костыли, которые позволят это делать. Сам ПЛК очень хорошо подошел по объему памяти, скорости, наличию ethernet и цене. Но вот такая ложка дегтя появилась во всем этом меде.

pkl58
завсегдатай
завсегдатай
Сообщения: 544
Зарегистрирован: 19 мар 2012, 20:04
Имя: Павел
Страна: Россия
Благодарил (а): 6 раз
Поблагодарили: 59 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение pkl58 »

Тогда, на мой взгляд, фоновый макрос и выделение в ПЛК буфера для записи в структуру. И в панели также разделение области для чтения из ПЛК и области для записи в ПЛК.

AlexandrGr
не первый раз у нас
не первый раз у нас
Сообщения: 306
Зарегистрирован: 26 май 2022, 12:10
Имя: Александр
Страна: Россия
город/регион: lipetsk
Благодарил (а): 5 раз
Поблагодарили: 28 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение AlexandrGr »

У вас панель какая?

Sergy6661
специалист
специалист
Сообщения: 655
Зарегистрирован: 19 фев 2019, 22:38
Имя: Сергей
Страна: Россия
город/регион: Краснодар
Благодарил (а): 20 раз
Поблагодарили: 89 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение Sergy6661 »

Используйте драйвер Modbus, для него в панели есть инструменты работы с битами в слове.

Автор темы
alex2k3
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2012, 14:48
Имя: Александр
Благодарил (а): 1 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение alex2k3 »

Sergy6661 писал(а): 31 авг 2023, 12:16 Используйте драйвер Modbus, для него в панели есть инструменты работы с битами в слове.
ModBus TCP?

Отправлено спустя 39 минут 6 секунд:
Подключился по Modbus TCP. Слова и биты читаются/пишутся. Но по какой-то причине до адреса D500, дальше (D501) панель пишет отсутствие связи с ПЛК.
В чем может быть дело?

Sergy6661
специалист
специалист
Сообщения: 655
Зарегистрирован: 19 фев 2019, 22:38
Имя: Сергей
Страна: Россия
город/регион: Краснодар
Благодарил (а): 20 раз
Поблагодарили: 89 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение Sergy6661 »

alex2k3 писал(а): 31 авг 2023, 13:04 панель пишет отсутствие связи с ПЛК.
Значит ПЛК не отвечает или дает код исключения при запросе адреса более D500.
Вы как адрес задаете, например регистра D0? Я по модбас TCP с плк Дельта DVP не соединялся, но для RTU адрес регистра= 4095+№D.
И еще, какой командой читаете?
Запись работает в регистры более D500?

Автор темы
alex2k3
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2012, 14:48
Имя: Александр
Благодарил (а): 1 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение alex2k3 »

В окне свойств индикатора числовой переменной задаю следующим образом 4x100, где 100 это адрес слова в ПЛК D100, значения совпадают как в ПЛК, так и на панеле. Если задать 4x500, то как раз и получается отсутствие ответа от ПЛК, хотя это регистр в ПЛК есть, используется в моей программе. Каких-то указаний на различные области памяти, которые могут быть доступны или не доступны по Modbus-TCP для HMI, со стороны ПЛК, я пока не нашел. И соответственно, такая картина для всех регистров, чей адрес выше 500.
Читаю командой 4x. По документации панели, адрес нужно указывать в десятичном формате.

Sergy6661
специалист
специалист
Сообщения: 655
Зарегистрирован: 19 фев 2019, 22:38
Имя: Сергей
Страна: Россия
город/регион: Краснодар
Благодарил (а): 20 раз
Поблагодарили: 89 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение Sergy6661 »

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

Запись тоже не работает в >D500?
Последний раз редактировалось Sergy6661 31 авг 2023, 15:30, всего редактировалось 1 раз.

Автор темы
alex2k3
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2012, 14:48
Имя: Александр
Благодарил (а): 1 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение alex2k3 »

Буду пробовать проверять, просматриваю какие тестеры можно поиспользовать.

pkl58
завсегдатай
завсегдатай
Сообщения: 544
Зарегистрирован: 19 мар 2012, 20:04
Имя: Павел
Страна: Россия
Благодарил (а): 6 раз
Поблагодарили: 59 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение pkl58 »

Для MODBUS TCP/IP адресация области D начинается с 4096+1. То есть D0 имеет адрес 4097. D1 - 4098 и так далее.

Автор темы
alex2k3
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2012, 14:48
Имя: Александр
Благодарил (а): 1 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение alex2k3 »

Понял. Спасибо. Попробую уже в понедельник. А не подскажете в каком документе найти карту соответствия адресного пространства DELTA и ModBus-TCP?

pkl58
завсегдатай
завсегдатай
Сообщения: 544
Зарегистрирован: 19 мар 2012, 20:04
Имя: Павел
Страна: Россия
Благодарил (а): 6 раз
Поблагодарили: 59 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение pkl58 »

Инструкция по программированию ПЛК DVP.

AlexandrGr
не первый раз у нас
не первый раз у нас
Сообщения: 306
Зарегистрирован: 26 май 2022, 12:10
Имя: Александр
Страна: Россия
город/регион: lipetsk
Благодарил (а): 5 раз
Поблагодарили: 28 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение AlexandrGr »

delta dvp modbus address table . В любом поисковике.

Автор темы
alex2k3
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2012, 14:48
Имя: Александр
Благодарил (а): 1 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение alex2k3 »

AlexandrGr писал(а): 31 авг 2023, 17:08 delta dvp modbus address table . В любом поисковике.
Спасибо.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 18758
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 973 раза
Поблагодарили: 1854 раза

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение Jackson »

alex2k3 писал(а): 31 авг 2023, 11:45 Ну у меня получается есть структура, описывающая объект, размером 24 слова.
Всего 24 слова - их прочитать, изменить и записать обратно - не вижу проблем одним фоновым макросом (несколько не надо, иначе придется ещё и синхронизировать их).
Если ничто другое не поможет, то как сделать макрос - выше уже описали: прочитали в одну область LW, модифицировали, результат модификации сложили в другую область LW, записали. Для начала проверить хотя бы модбас-пулом что всё читается и записывается, потом приступать к написанию макроса.
alex2k3 писал(а): 31 авг 2023, 13:04 Но по какой-то причине до адреса D500, дальше (D501) панель пишет отсутствие связи с ПЛК.
В чем может быть дело?
В настройках связи ограничьте принудительно доступные адреса только теми, которые фактически присутствуют в ПЛК. Если не помогает - используйте команды чтения/записи только одного слова, они есть. Иначе вейнтек имеет свойство читать не по 1 слову, а по несколько соседних, даже если указали читать одно - возможно, попадает на несуществующие области адресов.
Sergy6661 писал(а): 31 авг 2023, 15:27 Подключитесь к ПЛК каким-нибудь модбас тестером и посмотрите какой ответ дает ПЛК.
Вот это первое что надо было сделать. Всегда делаю так когда что-то не получается и смотрю результат.

Отправлено спустя 4 минуты 46 секунд:
Кстати, обновите EBPro до последнего. Он часто обновляется производителем из-за добавления новых фич, драйверов и прошивок панелей. Нередко бывает что в свежем EBpro или прошивке есть то необходимое, чего не было раньше. Weintek довольно оперативно реагирует на такие вещи, они молодцы в этом плане.
По вопросам работы Форума можно обратиться по этим контактам.

mall
здесь недавно
здесь недавно
Сообщения: 50
Зарегистрирован: 28 сен 2015, 16:12
Имя: Петров В. И.
Страна: РБ
Благодарил (а): 8 раз
Поблагодарили: 2 раза

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение mall »

столкнулся с подобной проблемой... Подскажите, правильно ли я понял, что нельзя в панели обратиться или изменить один бит в слове (int или WORD) не зависимо от остальных? не знаю понятно ли задал вопрос? :ges_hmm:

pkl58
завсегдатай
завсегдатай
Сообщения: 544
Зарегистрирован: 19 мар 2012, 20:04
Имя: Павел
Страна: Россия
Благодарил (а): 6 раз
Поблагодарили: 59 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение pkl58 »

В чем проблема то? К слову в панели побитно обратится можно. К биту в D области ПЛК серии DVP нет.
Но вы можете установить бит в области M, который установит нужный бит в слове D.
Снимок экрана 2024-03-19 191516.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.

mall
здесь недавно
здесь недавно
Сообщения: 50
Зарегистрирован: 28 сен 2015, 16:12
Имя: Петров В. И.
Страна: РБ
Благодарил (а): 8 раз
Поблагодарили: 2 раза

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение mall »

pkl58 писал(а): 19 мар 2024, 19:16 В чем проблема то
поясню: возможно ли, условно, сделать 3 лампочки ссылающиеся конкретные биты одного слова зажигающиеся независимо друг от друга (типо как в S7 "word.%X1"). В битовом индикаторе слова в принципе не показывает, а в числовом индикаторе либо работает зависимо либо не работает либо я чего-то не понял.
как работает или зачем вот это?
[+]
1.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.

pkl58
завсегдатай
завсегдатай
Сообщения: 544
Зарегистрирован: 19 мар 2012, 20:04
Имя: Павел
Страна: Россия
Благодарил (а): 6 раз
Поблагодарили: 59 раз

Weintek <-> DELTA-DVP12SE побитное обращение к области D

Сообщение pkl58 »

Индексные регистры вам для вашей задачи не нужны. Их описание есть в инструкции к EBpro.
В вашем случае нужно фоновым макросом копировать слово D во внутреннюю память панели и обращаться побитно к этим словам.
Ответить

Вернуться в «WEINTEK (операторские панели)»