- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Модераторы: Глоб.модераторы, специалисты Weintek
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2012, 14:48
- Имя: Александр
- Благодарил (а): 1 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Здравствуйте.
Прошу помощи. Есть панель Weintek подключенная по Ethernet к ПЛК DELTA-DVP12SE.
Соответственно у панели появилась карта адресации и способов обращения к адресному пространству ПЛК.
Но проблема в том, что мне необходимо модифицировать отдельные биты в словах адресного пространства D.
А панель не может побитно обращаться к словам, только читать писать целые слова D.
Хотя если выбирать старшую версию ПЛК, то такая возможность уже появляется.
Вот и вопрос как можно лаконично организовать чтение запись отдельных битов в слове D, со стороны панели?
Первым делом на ум приходит:
1. Слово адресного пространства панели LW можно читать писать побитно в самой панеле, соответственно визуальные элементы будут работать с ним.
2. Пересылать в/из ПЛК данные словами в это слово панели с помощью макроса или элемента передача данных по тригеру.
Но что-то такое решение не особо красивое, особенно если нужно работать с большим количеством данных в ПЛК. Можно конечно применять указатель в панеле. Но может есть еще како-нибудь другой способ?
Прошу помощи. Есть панель Weintek подключенная по Ethernet к ПЛК DELTA-DVP12SE.
Соответственно у панели появилась карта адресации и способов обращения к адресному пространству ПЛК.
Но проблема в том, что мне необходимо модифицировать отдельные биты в словах адресного пространства D.
А панель не может побитно обращаться к словам, только читать писать целые слова D.
Хотя если выбирать старшую версию ПЛК, то такая возможность уже появляется.
Вот и вопрос как можно лаконично организовать чтение запись отдельных битов в слове D, со стороны панели?
Первым делом на ум приходит:
1. Слово адресного пространства панели LW можно читать писать побитно в самой панеле, соответственно визуальные элементы будут работать с ним.
2. Пересылать в/из ПЛК данные словами в это слово панели с помощью макроса или элемента передача данных по тригеру.
Но что-то такое решение не особо красивое, особенно если нужно работать с большим количеством данных в ПЛК. Можно конечно применять указатель в панеле. Но может есть еще како-нибудь другой способ?
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2012, 14:48
- Имя: Александр
- Благодарил (а): 1 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Не получится т.к. данных в области D очень много, и общий размер данных превышает область М.
Только если организовывать подобное обращение по указателю не в панеле а в ПЛК.
Но это тоже малоприятный способ.
Только если организовывать подобное обращение по указателю не в панеле а в ПЛК.
Но это тоже малоприятный способ.
-
- завсегдатай
- Сообщения: 544
- Зарегистрирован: 19 мар 2012, 20:04
- Имя: Павел
- Страна: Россия
- Благодарил (а): 6 раз
- Поблагодарили: 59 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Тогда только фоновый макрос и копирование в область LW нужной области D.
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2012, 14:48
- Имя: Александр
- Благодарил (а): 1 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Как вариант.
Но не без подводных камней.
Тут возникает проблема отслеживания обновления данных, как со стороны ПЛК, так и со стороны HMI.
Т.е. нажали кнопку на панели, взвели бит в слове. Значит панель должна понять что нужно переслать это слово в ПЛК, для обновления этого бита. Причем без изменения соседних битов. Если делать это в цикле, сначала читаем из ПЛК, затем пишем в ПЛК. То может получиться состояние в котором нажали на кнопу, взвели бит в панели, и не успели записать в ПЛК, а следующий цикл чтения из ПЛК, перепишет нулем это бит. И получится что кнопку не нажимали.
Но не без подводных камней.
Тут возникает проблема отслеживания обновления данных, как со стороны ПЛК, так и со стороны HMI.
Т.е. нажали кнопку на панели, взвели бит в слове. Значит панель должна понять что нужно переслать это слово в ПЛК, для обновления этого бита. Причем без изменения соседних битов. Если делать это в цикле, сначала читаем из ПЛК, затем пишем в ПЛК. То может получиться состояние в котором нажали на кнопу, взвели бит в панели, и не успели записать в ПЛК, а следующий цикл чтения из ПЛК, перепишет нулем это бит. И получится что кнопку не нажимали.
-
- завсегдатай
- Сообщения: 544
- Зарегистрирован: 19 мар 2012, 20:04
- Имя: Павел
- Страна: Россия
- Благодарил (а): 6 раз
- Поблагодарили: 59 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Разделите область записи и чтения в панели. О каком числе слов идет речь? Может и не нужно так усложнять? Опишите вашу задачу поподробнее.
ЗЫ. Были случаи, когда нужно было гонять между панелью и ПЛК большое количество данных ( типа рецепта). Оборудование работало циклически. И передачу данных делал по кнопке с установкой флага в ПЛК по окончанию передачи. При этом ПЛК использовал новые значения только после получения этого флага и с началом нового цикла работы.
ЗЫ. Были случаи, когда нужно было гонять между панелью и ПЛК большое количество данных ( типа рецепта). Оборудование работало циклически. И передачу данных делал по кнопке с установкой флага в ПЛК по окончанию передачи. При этом ПЛК использовал новые значения только после получения этого флага и с началом нового цикла работы.
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2012, 14:48
- Имя: Александр
- Благодарил (а): 1 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Ну у меня получается есть структура, описывающая объект, размером 24 слова. В ПЛК, крутится цикл, который прокручивает 200 таких структур, со смещением, по номеру объекта. В панеле, есть окошко с указателем, который вычисляется в зависимости от того, какой объект необходимо просмотреть, и соответственно работает с указанной структурой в ПЛК. Так вот работать со словами проблем нет, но в структуре есть биты отвечающие за различные статусы и кнопки активации. Вот с ними и возникает проблема, т.к. нельзя к ним обратиться из панели как на прямую, так и через указатель. Нужны какие-то костыли, которые позволят это делать. Сам ПЛК очень хорошо подошел по объему памяти, скорости, наличию ethernet и цене. Но вот такая ложка дегтя появилась во всем этом меде.
-
- завсегдатай
- Сообщения: 544
- Зарегистрирован: 19 мар 2012, 20:04
- Имя: Павел
- Страна: Россия
- Благодарил (а): 6 раз
- Поблагодарили: 59 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Тогда, на мой взгляд, фоновый макрос и выделение в ПЛК буфера для записи в структуру. И в панели также разделение области для чтения из ПЛК и области для записи в ПЛК.
-
- не первый раз у нас
- Сообщения: 305
- Зарегистрирован: 26 май 2022, 12:10
- Имя: Александр
- Страна: Россия
- город/регион: lipetsk
- Благодарил (а): 5 раз
- Поблагодарили: 28 раз
-
- специалист
- Сообщения: 655
- Зарегистрирован: 19 фев 2019, 22:38
- Имя: Сергей
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 20 раз
- Поблагодарили: 89 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Используйте драйвер Modbus, для него в панели есть инструменты работы с битами в слове.
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2012, 14:48
- Имя: Александр
- Благодарил (а): 1 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
ModBus TCP?
Отправлено спустя 39 минут 6 секунд:
Подключился по Modbus TCP. Слова и биты читаются/пишутся. Но по какой-то причине до адреса D500, дальше (D501) панель пишет отсутствие связи с ПЛК.
В чем может быть дело?
-
- специалист
- Сообщения: 655
- Зарегистрирован: 19 фев 2019, 22:38
- Имя: Сергей
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 20 раз
- Поблагодарили: 89 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Значит ПЛК не отвечает или дает код исключения при запросе адреса более D500.
Вы как адрес задаете, например регистра D0? Я по модбас TCP с плк Дельта DVP не соединялся, но для RTU адрес регистра= 4095+№D.
И еще, какой командой читаете?
Запись работает в регистры более D500?
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2012, 14:48
- Имя: Александр
- Благодарил (а): 1 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
В окне свойств индикатора числовой переменной задаю следующим образом 4x100, где 100 это адрес слова в ПЛК D100, значения совпадают как в ПЛК, так и на панеле. Если задать 4x500, то как раз и получается отсутствие ответа от ПЛК, хотя это регистр в ПЛК есть, используется в моей программе. Каких-то указаний на различные области памяти, которые могут быть доступны или не доступны по Modbus-TCP для HMI, со стороны ПЛК, я пока не нашел. И соответственно, такая картина для всех регистров, чей адрес выше 500.
Читаю командой 4x. По документации панели, адрес нужно указывать в десятичном формате.
Читаю командой 4x. По документации панели, адрес нужно указывать в десятичном формате.
-
- специалист
- Сообщения: 655
- Зарегистрирован: 19 фев 2019, 22:38
- Имя: Сергей
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 20 раз
- Поблагодарили: 89 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Подключитесь к ПЛК каким-нибудь модбас тестером и посмотрите какой ответ дает ПЛК.
Это вообще первое, что надо делать при подобных траблах, т.е определить кто лажает.
Запись тоже не работает в >D500?
Это вообще первое, что надо делать при подобных траблах, т.е определить кто лажает.
Запись тоже не работает в >D500?
Последний раз редактировалось Sergy6661 31 авг 2023, 15:30, всего редактировалось 1 раз.
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2012, 14:48
- Имя: Александр
- Благодарил (а): 1 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Буду пробовать проверять, просматриваю какие тестеры можно поиспользовать.
-
- завсегдатай
- Сообщения: 544
- Зарегистрирован: 19 мар 2012, 20:04
- Имя: Павел
- Страна: Россия
- Благодарил (а): 6 раз
- Поблагодарили: 59 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Для MODBUS TCP/IP адресация области D начинается с 4096+1. То есть D0 имеет адрес 4097. D1 - 4098 и так далее.
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2012, 14:48
- Имя: Александр
- Благодарил (а): 1 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Понял. Спасибо. Попробую уже в понедельник. А не подскажете в каком документе найти карту соответствия адресного пространства DELTA и ModBus-TCP?
-
- не первый раз у нас
- Сообщения: 305
- Зарегистрирован: 26 май 2022, 12:10
- Имя: Александр
- Страна: Россия
- город/регион: lipetsk
- Благодарил (а): 5 раз
- Поблагодарили: 28 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
delta dvp modbus address table . В любом поисковике.
-
- администратор
- Сообщения: 18747
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 972 раза
- Поблагодарили: 1852 раза
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Всего 24 слова - их прочитать, изменить и записать обратно - не вижу проблем одним фоновым макросом (несколько не надо, иначе придется ещё и синхронизировать их).
Если ничто другое не поможет, то как сделать макрос - выше уже описали: прочитали в одну область LW, модифицировали, результат модификации сложили в другую область LW, записали. Для начала проверить хотя бы модбас-пулом что всё читается и записывается, потом приступать к написанию макроса.
В настройках связи ограничьте принудительно доступные адреса только теми, которые фактически присутствуют в ПЛК. Если не помогает - используйте команды чтения/записи только одного слова, они есть. Иначе вейнтек имеет свойство читать не по 1 слову, а по несколько соседних, даже если указали читать одно - возможно, попадает на несуществующие области адресов.
Вот это первое что надо было сделать. Всегда делаю так когда что-то не получается и смотрю результат.
Отправлено спустя 4 минуты 46 секунд:
Кстати, обновите EBPro до последнего. Он часто обновляется производителем из-за добавления новых фич, драйверов и прошивок панелей. Нередко бывает что в свежем EBpro или прошивке есть то необходимое, чего не было раньше. Weintek довольно оперативно реагирует на такие вещи, они молодцы в этом плане.
По вопросам работы Форума можно обратиться по этим контактам.
-
- здесь недавно
- Сообщения: 50
- Зарегистрирован: 28 сен 2015, 16:12
- Имя: Петров В. И.
- Страна: РБ
- Благодарил (а): 8 раз
- Поблагодарили: 2 раза
Weintek <-> DELTA-DVP12SE побитное обращение к области D
столкнулся с подобной проблемой... Подскажите, правильно ли я понял, что нельзя в панели обратиться или изменить один бит в слове (int или WORD) не зависимо от остальных? не знаю понятно ли задал вопрос?
-
- завсегдатай
- Сообщения: 544
- Зарегистрирован: 19 мар 2012, 20:04
- Имя: Павел
- Страна: Россия
- Благодарил (а): 6 раз
- Поблагодарили: 59 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
В чем проблема то? К слову в панели побитно обратится можно. К биту в D области ПЛК серии DVP нет.
Но вы можете установить бит в области M, который установит нужный бит в слове D.
Но вы можете установить бит в области M, который установит нужный бит в слове D.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 50
- Зарегистрирован: 28 сен 2015, 16:12
- Имя: Петров В. И.
- Страна: РБ
- Благодарил (а): 8 раз
- Поблагодарили: 2 раза
Weintek <-> DELTA-DVP12SE побитное обращение к области D
поясню: возможно ли, условно, сделать 3 лампочки ссылающиеся конкретные биты одного слова зажигающиеся независимо друг от друга (типо как в S7 "word.%X1"). В битовом индикаторе слова в принципе не показывает, а в числовом индикаторе либо работает зависимо либо не работает либо я чего-то не понял.
как работает или зачем вот это?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- завсегдатай
- Сообщения: 544
- Зарегистрирован: 19 мар 2012, 20:04
- Имя: Павел
- Страна: Россия
- Благодарил (а): 6 раз
- Поблагодарили: 59 раз
Weintek <-> DELTA-DVP12SE побитное обращение к области D
Индексные регистры вам для вашей задачи не нужны. Их описание есть в инструкции к EBpro.
В вашем случае нужно фоновым макросом копировать слово D во внутреннюю память панели и обращаться побитно к этим словам.
В вашем случае нужно фоновым макросом копировать слово D во внутреннюю память панели и обращаться побитно к этим словам.