- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
DVP SS2 - обмен данными с внешним устройством через COM2
Модератор: Глоб.модераторы
-
- освоился
- Сообщения: 233
- Зарегистрирован: 26 мар 2017, 13:05
- Имя: Денис
- Страна: Россия
- город/регион: Самара
- Благодарил (а): 15 раз
- Поблагодарили: 38 раз
DVP SS2 - обмен данными с внешним устройством через COM2
Добрый день, коллеги!
Возникла задача - посылать через COM2 на внешнее устройство запрос вида $05$00 получать от него ответ аналогичного вида.
Параметры порта должны быть 115200-8-n-1
Может быть, кто-то поделится аналогичным примером?
Или подскажите:
1) какое значение писать в регистр D1120 (?), чтобы задать параметры 115200-8-n-1 ?
2) в какие регистры писать запрос и из каких регистров читать ответ?
3) как инициировать обмен данными?
П.С.
Задача типовая, но я не работал с SS2 и аналогичными ПЛК. По имеющимся на сайте сэмплам и документации трудно сходу разобраться в деталях.
Возникла задача - посылать через COM2 на внешнее устройство запрос вида $05$00 получать от него ответ аналогичного вида.
Параметры порта должны быть 115200-8-n-1
Может быть, кто-то поделится аналогичным примером?
Или подскажите:
1) какое значение писать в регистр D1120 (?), чтобы задать параметры 115200-8-n-1 ?
2) в какие регистры писать запрос и из каких регистров читать ответ?
3) как инициировать обмен данными?
П.С.
Задача типовая, но я не работал с SS2 и аналогичными ПЛК. По имеющимся на сайте сэмплам и документации трудно сходу разобраться в деталях.
-
- не первый раз у нас
- Сообщения: 395
- Зарегистрирован: 06 фев 2020, 16:09
- Имя: Андрей
- город/регион: Екатеринбург
- Поблагодарили: 69 раз
DVP SS2 - обмен данными с внешним устройством через COM2
Смотрите на команду RS, примеры есть в документации.
А с d1120 тоже же таблица с примерами как будет. В калькуляторе есть раскладка шестнадцатеричного числа 86, и по таблице смотрим как получилось "ASCII 9600, 7, E, 1".
Еще надо что у вас rtu или ascii.
А с d1120 тоже же таблица с примерами как будет. В калькуляторе есть раскладка шестнадцатеричного числа 86, и по таблице смотрим как получилось "ASCII 9600, 7, E, 1".
Еще надо что у вас rtu или ascii.
-
- завсегдатай
- Сообщения: 544
- Зарегистрирован: 19 мар 2012, 20:04
- Имя: Павел
- Страна: Россия
- Благодарил (а): 6 раз
- Поблагодарили: 59 раз
DVP SS2 - обмен данными с внешним устройством через COM2
В ISP SOFT есть свой инструмент для параметров ком порта. Меню HELP Auxilary Edition ->Protocol <=> Setting Code.
Либо можно воспользоваться ФБ от Дельты. Окно справа на экране.
Судя по тому, что написал ТС в примере запроса это совсем не MODBUS. Поэтому только инструкция RS.Еще надо что у вас rtu или ascii.
-
- освоился
- Сообщения: 233
- Зарегистрирован: 26 мар 2017, 13:05
- Имя: Денис
- Страна: Россия
- город/регион: Самара
- Благодарил (а): 15 раз
- Поблагодарили: 38 раз
DVP SS2 - обмен данными с внешним устройством через COM2
Спасибо за подсказку! Не ожидал, что это надо искать в меню Help )))
Теперь всё понятно.
-
- освоился
- Сообщения: 233
- Зарегистрирован: 26 мар 2017, 13:05
- Имя: Денис
- Страна: Россия
- город/регион: Самара
- Благодарил (а): 15 раз
- Поблагодарили: 38 раз
DVP SS2 - обмен данными с внешним устройством через COM2
Добрый день, коллеги!
Я воспользовался данными мне выше рекомендациями и вроде разобрался, как работать с 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 выглядел бы тоже как-то по-другому. А он ведь выглядит правильно. Да и устройство бы не отвечало, если бы получило запрос некорректный.
Есть ли какие-то мысли по этой задачке?
Я воспользовался данными мне выше рекомендациями и вроде разобрался, как работать с 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 выглядел бы тоже как-то по-другому. А он ведь выглядит правильно. Да и устройство бы не отвечало, если бы получило запрос некорректный.
Есть ли какие-то мысли по этой задачке?
-
- эксперт
- Сообщения: 1735
- Зарегистрирован: 06 янв 2016, 19:45
- Имя: Петров В.Л.
- Страна: Россия
- город/регион: Красноярск
- Благодарил (а): 78 раз
- Поблагодарили: 235 раз
DVP SS2 - обмен данными с внешним устройством через COM2
А попробуйте мануал поподробнее почитать. Я вот в него заглянул - и как то неправильно Вы обмен организуете.
Хотя бы вот это например:
"На применение в программе коммуникационных программ ...RS... нет огроаничений, но в одном цикле для одного порта может использоватся только одна из них"
Т.е. в одном цикле для 1 порта использовать RS для чтения и записи нельзя. Развести их можно поразному. например через анализ битов готовности.
Далее, попробуйте на бумаге расписать циклограмму процесса обмена. По Вашей логике, прилетают данные в буфер и будут лежать там пока Вы их не заберете ? Там ведь еще есть и другие управляющие биты (Кстати, режимы ASCII и RTU - это к обмену по Modbus имеют отношение - точно не Ваш случай).
Посмотрите примеры использования команды RS.
Я вот заглянул, и в первом же примере увидел кроме M1120 используются:
D1129 - время ожидание ответа
M1122 - запрос передачи
Сама передача кстати не потоком идет а через MOV с подачей импульса на EN, вполне логично кстати - иначе как Вы отличите ситуации от выдачи 1 слова и нескольких слов.
При приеме используется M1123 - который сигнализирует о завершении передачи, и кстати принимать нужно через MOV с отсечкой по EN.
Да хлопотно, но вы работаете на низком уровне и все нужно учесть.
Для начала возмите пример и мануала и добейтесь его работы.
Хотя бы вот это например:
"На применение в программе коммуникационных программ ...RS... нет огроаничений, но в одном цикле для одного порта может использоватся только одна из них"
Т.е. в одном цикле для 1 порта использовать RS для чтения и записи нельзя. Развести их можно поразному. например через анализ битов готовности.
Далее, попробуйте на бумаге расписать циклограмму процесса обмена. По Вашей логике, прилетают данные в буфер и будут лежать там пока Вы их не заберете ? Там ведь еще есть и другие управляющие биты (Кстати, режимы ASCII и RTU - это к обмену по Modbus имеют отношение - точно не Ваш случай).
Посмотрите примеры использования команды RS.
Я вот заглянул, и в первом же примере увидел кроме M1120 используются:
D1129 - время ожидание ответа
M1122 - запрос передачи
Сама передача кстати не потоком идет а через MOV с подачей импульса на EN, вполне логично кстати - иначе как Вы отличите ситуации от выдачи 1 слова и нескольких слов.
При приеме используется M1123 - который сигнализирует о завершении передачи, и кстати принимать нужно через MOV с отсечкой по EN.
Да хлопотно, но вы работаете на низком уровне и все нужно учесть.
Для начала возмите пример и мануала и добейтесь его работы.
-
- завсегдатай
- Сообщения: 544
- Зарегистрирован: 19 мар 2012, 20:04
- Имя: Павел
- Страна: Россия
- Благодарил (а): 6 раз
- Поблагодарили: 59 раз
DVP SS2 - обмен данными с внешним устройством через COM2
ТС анализирует отправку запроса и ответ прибора. Это одна инструкция RS. Здесь все правильно.
Здесь вопрос поинтереснее. ПЛК складывает в буфер весь принятый пакет. Включая и служебные символы. Соответственно ваш е искомое значение будет находится например в D123 (не знаю формата ответа вашего слейва). Подразумевается, что пользователь сам будет раскладывать полученные данные. Изучите внимательнее примеры в инструкции по программированию.
Отправлено спустя 1 минуту 1 секунду:
На это пока не обращайте внимания.petr2off писал(а): ↑10 апр 2024, 05:54 Я вот заглянул, и в первом же примере увидел кроме M1120 используются:
D1129 - время ожидание ответа
M1122 - запрос передачи
Сама передача кстати не потоком идет а через MOV с подачей импульса на EN, вполне логично кстати - иначе как Вы отличите ситуации от выдачи 1 слова и нескольких слов.
При приеме используется M1123 - который сигнализирует о завершении передачи, и кстати принимать нужно через MOV с отсечкой по EN.
Да хлопотно, но вы работаете на низком уровне и все нужно учесть.
-
- освоился
- Сообщения: 233
- Зарегистрирован: 26 мар 2017, 13:05
- Имя: Денис
- Страна: Россия
- город/регион: Самара
- Благодарил (а): 15 раз
- Поблагодарили: 38 раз
DVP SS2 - обмен данными с внешним устройством через COM2
Да, всё правильно. У меня D1129=100 (мс), обмен данными происходит по переднему фронту M1122. Ув. pkl58, прав, инструкция RS посылает данные из одних регистров и складывает ответ в другие регистры. Так я на других ПЛК раньше и делал.
В штатном хелпе очень скудное описание инструкции RS. На сайте Дельты примеры только по инструкции MODRW. Больше что-то не гуглится((
Спасибо за подсказку! Я только в D121 додумался посмотреть, там нули. Как опять буду у этого стенда, посмотрю что там в D123.
-
- завсегдатай
- Сообщения: 544
- Зарегистрирован: 19 мар 2012, 20:04
- Имя: Павел
- Страна: Россия
- Благодарил (а): 6 раз
- Поблагодарили: 59 раз
DVP SS2 - обмен данными с внешним устройством через COM2
Скачайте инструкцию https://downloadcenter.deltaww.com/down ... 1&hl=en-US
В описании инструкции RS все подробно описано, формат запроса и формат ответа. с примерами.
В описании инструкции RS все подробно описано, формат запроса и формат ответа. с примерами.
-
- эксперт
- Сообщения: 1735
- Зарегистрирован: 06 янв 2016, 19:45
- Имя: Петров В.Л.
- Страна: Россия
- город/регион: Красноярск
- Благодарил (а): 78 раз
- Поблагодарили: 235 раз
DVP SS2 - обмен данными с внешним устройством через COM2
А лучше сходите на www.deltronics.ru
Там есть:
1) Мануал на русском языке (не знаю как Ваш английский)
2) Примеры, в том числе и в/в.
Я их хотел пркрепить, но там архив 50метров
Там есть:
1) Мануал на русском языке (не знаю как Ваш английский)
2) Примеры, в том числе и в/в.
Я их хотел пркрепить, но там архив 50метров
-
- завсегдатай
- Сообщения: 544
- Зарегистрирован: 19 мар 2012, 20:04
- Имя: Павел
- Страна: Россия
- Благодарил (а): 6 раз
- Поблагодарили: 59 раз
DVP SS2 - обмен данными с внешним устройством через COM2
Неполный и на ПЛК старых серий. На новые серии DVP только на английском.
-
- эксперт
- Сообщения: 1735
- Зарегистрирован: 06 янв 2016, 19:45
- Имя: Петров В.Л.
- Страна: Россия
- город/регион: Красноярск
- Благодарил (а): 78 раз
- Поблагодарили: 235 раз
DVP SS2 - обмен данными с внешним устройством через COM2
Ну какой есть. Я два скачал. Смотрю сначала русский, если вижу непонятки - смотрю английский.
По размеру русский чуть больше ксати.И он меня на 90% вполне устраивает.
По размеру русский чуть больше ксати.И он меня на 90% вполне устраивает.
-
- завсегдатай
- Сообщения: 544
- Зарегистрирован: 19 мар 2012, 20:04
- Имя: Павел
- Страна: Россия
- Благодарил (а): 6 раз
- Поблагодарили: 59 раз
DVP SS2 - обмен данными с внешним устройством через COM2
В русском мануале могут быть серьезные отличия от мануалов на новые серии. На форуме Дельты было несколько тем по этой проблеме. То есть люди использовали новые серии ПЛК и пользовались описаниями служебных битов и регистров для старых серий. Естественно имели проблемы. Поэтому я рекомендую использовать последние редакции мануалов.