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

DVP SS2 - обмен данными с внешним устройством через COM2

Модератор: Глоб.модераторы

Ответить

Автор темы
Velt
освоился
освоился
Сообщения: 233
Зарегистрирован: 26 мар 2017, 13:05
Имя: Денис
Страна: Россия
город/регион: Самара
Благодарил (а): 15 раз
Поблагодарили: 38 раз

DVP SS2 - обмен данными с внешним устройством через COM2

Сообщение Velt »

Добрый день, коллеги!

Возникла задача - посылать через COM2 на внешнее устройство запрос вида $05$00 получать от него ответ аналогичного вида.
Параметры порта должны быть 115200-8-n-1

Может быть, кто-то поделится аналогичным примером?
Или подскажите:
1) какое значение писать в регистр D1120 (?), чтобы задать параметры 115200-8-n-1 ?
2) в какие регистры писать запрос и из каких регистров читать ответ?
3) как инициировать обмен данными?

П.С.
Задача типовая, но я не работал с SS2 и аналогичными ПЛК. По имеющимся на сайте сэмплам и документации трудно сходу разобраться в деталях.

Andreyit
не первый раз у нас
не первый раз у нас
Сообщения: 396
Зарегистрирован: 06 фев 2020, 16:09
Имя: Андрей
город/регион: Екатеринбург
Поблагодарили: 69 раз

DVP SS2 - обмен данными с внешним устройством через COM2

Сообщение Andreyit »

Смотрите на команду RS, примеры есть в документации.
А с d1120 тоже же таблица с примерами как будет. В калькуляторе есть раскладка шестнадцатеричного числа 86, и по таблице смотрим как получилось "ASCII 9600, 7, E, 1".
Еще надо что у вас rtu или ascii.

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

DVP SS2 - обмен данными с внешним устройством через COM2

Сообщение pkl58 »

Velt писал(а): 06 апр 2024, 10:13 1) какое значение писать в регистр D1120 (?), чтобы задать параметры 115200-8-n-1 ?
В ISP SOFT есть свой инструмент для параметров ком порта. Меню HELP -> Auxilary Edition ->Protocol <=> Setting Code.
Либо можно воспользоваться ФБ от Дельты. Окно справа на экране.
Еще надо что у вас rtu или ascii.
Судя по тому, что написал ТС в примере запроса это совсем не MODBUS. Поэтому только инструкция RS.

Автор темы
Velt
освоился
освоился
Сообщения: 233
Зарегистрирован: 26 мар 2017, 13:05
Имя: Денис
Страна: Россия
город/регион: Самара
Благодарил (а): 15 раз
Поблагодарили: 38 раз

DVP SS2 - обмен данными с внешним устройством через COM2

Сообщение Velt »

pkl58 писал(а): 07 апр 2024, 10:02 В ISP SOFT есть свой инструмент для параметров ком порта. Меню HELP
Спасибо за подсказку! Не ожидал, что это надо искать в меню Help )))
Теперь всё понятно.
:thankyou:

Автор темы
Velt
освоился
освоился
Сообщения: 233
Зарегистрирован: 26 мар 2017, 13:05
Имя: Денис
Страна: Россия
город/регион: Самара
Благодарил (а): 15 раз
Поблагодарили: 38 раз

DVP SS2 - обмен данными с внешним устройством через COM2

Сообщение Velt »

Добрый день, коллеги!

Я воспользовался данными мне выше рекомендациями и вроде разобрался, как работать с COM-порттом. Но история получила продолжение, которе меня завело в тупик. Может быть, коллективный разум поможет во всём разобраться.

Итак.
В регистр D1120 я пишу 16#00C1, что соответствует конфигурации порта 115200, 8, N, 1.
М1143=true (режим RTU)
M1120=true (сохранить конфигурацию)
Инструкцию RS сконфигурировал так: S=D100, D=D120, m=2,n=2

Дальше начинается интересное. Подключился к шине RS485 моксой и слушаю трафик между ПЛК и устройством через Terminal.
ПЛК даёт запрос 0500 (что правильно). Вижу в Terminal ответ устройства 002F, что тоже правильно. Однако, в регистре D120 (приёмный буфер ПЛК) я вижу FB00, что совсем неправильно.
Таким образом, Terminal видит от устойства правильный ответ, а в регистре ПЛК этот же ответ видится как совсем другой.
Никак не пойму, как такое может быть, что я сделал не так.

Думается, что если бы настройки порта были бы какие-то неправильные, то и запрос от ПЛК в Terminal выглядел бы тоже как-то по-другому. А он ведь выглядит правильно. Да и устройство бы не отвечало, если бы получило запрос некорректный.

Есть ли какие-то мысли по этой задачке?
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1737
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 78 раз
Поблагодарили: 235 раз

DVP SS2 - обмен данными с внешним устройством через COM2

Сообщение petr2off »

А попробуйте мануал поподробнее почитать. Я вот в него заглянул - и как то неправильно Вы обмен организуете.
Хотя бы вот это например:
"На применение в программе коммуникационных программ ...RS... нет огроаничений, но в одном цикле для одного порта может использоватся только одна из них"
Т.е. в одном цикле для 1 порта использовать RS для чтения и записи нельзя. Развести их можно поразному. например через анализ битов готовности.
Далее, попробуйте на бумаге расписать циклограмму процесса обмена. По Вашей логике, прилетают данные в буфер и будут лежать там пока Вы их не заберете ? Там ведь еще есть и другие управляющие биты (Кстати, режимы ASCII и RTU - это к обмену по Modbus имеют отношение - точно не Ваш случай).
Посмотрите примеры использования команды RS.
Я вот заглянул, и в первом же примере увидел кроме M1120 используются:
D1129 - время ожидание ответа
M1122 - запрос передачи
Сама передача кстати не потоком идет а через MOV с подачей импульса на EN, вполне логично кстати - иначе как Вы отличите ситуации от выдачи 1 слова и нескольких слов.
При приеме используется M1123 - который сигнализирует о завершении передачи, и кстати принимать нужно через MOV с отсечкой по EN.
Да хлопотно, но вы работаете на низком уровне и все нужно учесть.

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

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

DVP SS2 - обмен данными с внешним устройством через COM2

Сообщение pkl58 »

petr2off писал(а): 10 апр 2024, 05:54 Т.е. в одном цикле для 1 порта использовать RS для чтения и записи нельзя. Развести их можно поразному. например через анализ битов готовности.
ТС анализирует отправку запроса и ответ прибора. Это одна инструкция RS. Здесь все правильно.
Velt писал(а): 09 апр 2024, 22:23 Однако, в регистре D120 (приёмный буфер ПЛК) я вижу FB00, что совсем неправильно.
Здесь вопрос поинтереснее. ПЛК складывает в буфер весь принятый пакет. Включая и служебные символы. Соответственно ваш е искомое значение будет находится например в D123 (не знаю формата ответа вашего слейва). Подразумевается, что пользователь сам будет раскладывать полученные данные. Изучите внимательнее примеры в инструкции по программированию.

Отправлено спустя 1 минуту 1 секунду:
petr2off писал(а): 10 апр 2024, 05:54 Я вот заглянул, и в первом же примере увидел кроме M1120 используются:
D1129 - время ожидание ответа
M1122 - запрос передачи
Сама передача кстати не потоком идет а через MOV с подачей импульса на EN, вполне логично кстати - иначе как Вы отличите ситуации от выдачи 1 слова и нескольких слов.
При приеме используется M1123 - который сигнализирует о завершении передачи, и кстати принимать нужно через MOV с отсечкой по EN.
Да хлопотно, но вы работаете на низком уровне и все нужно учесть.
На это пока не обращайте внимания.

Автор темы
Velt
освоился
освоился
Сообщения: 233
Зарегистрирован: 26 мар 2017, 13:05
Имя: Денис
Страна: Россия
город/регион: Самара
Благодарил (а): 15 раз
Поблагодарили: 38 раз

DVP SS2 - обмен данными с внешним устройством через COM2

Сообщение Velt »

petr2off писал(а): 10 апр 2024, 05:54 Я вот заглянул, и в первом же примере увидел кроме M1120 используются:
Да, всё правильно. У меня D1129=100 (мс), обмен данными происходит по переднему фронту M1122. Ув. pkl58, прав, инструкция RS посылает данные из одних регистров и складывает ответ в другие регистры. Так я на других ПЛК раньше и делал.
pkl58 писал(а): 10 апр 2024, 08:13 Изучите внимательнее примеры в инструкции по программированию.
В штатном хелпе очень скудное описание инструкции RS. На сайте Дельты примеры только по инструкции MODRW. Больше что-то не гуглится((
pkl58 писал(а): 10 апр 2024, 08:13 Соответственно ваш е искомое значение будет находится например в D123 (не знаю формата ответа вашего слейва).
Спасибо за подсказку! Я только в D121 додумался посмотреть, там нули. Как опять буду у этого стенда, посмотрю что там в D123.

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

DVP SS2 - обмен данными с внешним устройством через COM2

Сообщение pkl58 »

Скачайте инструкцию https://downloadcenter.deltaww.com/down ... 1&hl=en-US
В описании инструкции RS все подробно описано, формат запроса и формат ответа. с примерами.
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1737
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 78 раз
Поблагодарили: 235 раз

DVP SS2 - обмен данными с внешним устройством через COM2

Сообщение petr2off »

А лучше сходите на www.deltronics.ru
Там есть:
1) Мануал на русском языке (не знаю как Ваш английский)
2) Примеры, в том числе и в/в.
Я их хотел пркрепить, но там архив 50метров

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

DVP SS2 - обмен данными с внешним устройством через COM2

Сообщение pkl58 »

petr2off писал(а): 10 апр 2024, 21:43 1) Мануал на русском языке (не знаю как Ваш английский)
Неполный и на ПЛК старых серий. На новые серии DVP только на английском.
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1737
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 78 раз
Поблагодарили: 235 раз

DVP SS2 - обмен данными с внешним устройством через COM2

Сообщение petr2off »

Ну какой есть. Я два скачал. Смотрю сначала русский, если вижу непонятки - смотрю английский.
По размеру русский чуть больше ксати.И он меня на 90% вполне устраивает.

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

DVP SS2 - обмен данными с внешним устройством через COM2

Сообщение pkl58 »

В русском мануале могут быть серьезные отличия от мануалов на новые серии. На форуме Дельты было несколько тем по этой проблеме. То есть люди использовали новые серии ПЛК и пользовались описаниями служебных битов и регистров для старых серий. Естественно имели проблемы. Поэтому я рекомендую использовать последние редакции мануалов.
Ответить

Вернуться в «ПЛК, операторские панели, промышленные ПК»