Segnetics

Вернуться   Segnetics > Форум Segnetics > Связь с внешним миром

Связь с внешним миром Modbus, RS232, RS485, Lon и другое.

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2016, 06:15   #1
kagen
Новичок
 
Регистрация: Jun 2016
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Помощь с powerlogic DM6200

Здравствуйте! Прошу помощи в подключении по modbus DM6200.
Вот ссылка на инструкцию от него.
Раньше никогда не работал с segnetics или modbus. Пытался сам по мануалам, но не получается.
Подключил прибор настроил параметры связи (modbus id 5, 9600 env).
Сперва просто попытался перебить адреса из инструкции. Прибор пишет ошибку переполнения буфера, сигнетик ошибку.
Если я правильно понял, то у меня сигнетик читает только половину адреса, так как в инструкции указано, что нужно ставить длину регистра "2", а где это выставляется в IDE я не нашел. Как правильно составить карту для данного девайса?
Я так понял нужно использовать групповые запросы, что бы он одновременно читал из 3907 и 3908 (пример из инструкции.)
Я создал такие запросы, сделал у них одинаковый период опроса, установил чекбокс "групповые запросы"
Как мне теперь в программе считать их, если они отображаются как две переменные?
Если читаю только одну, то идет указанная ошибка выше.
Заранее благодарен за помощь.
DM6200_.psl
kagen вне форума   Ответить с цитированием
Старый 10.06.2016, 07:20   #2
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Помощь с powerlogic DM6200

Цитата:
Сообщение от kagen Посмотреть сообщение
Если я правильно понял, то у меня сигнетик читает только половину адреса, так как в инструкции указано, что нужно ставить длину регистра "2", а где это выставляется в IDE я не нашел. Как правильно составить карту для данного девайса?Вложение 3348
Это не совсем длинна регистра. Это длинна переменной в регистрах. Регистр имеет фиксированную длину 16 бит. Длинна переменной определяется ее типом. Из документации на ваш прибор фигурируют 2 типа переменных Float и Long. В конструкторе это соответствует типам real и long. Так что при формировании карты памяти необходимо точно указывать тип переменной.
Ваше устройство поддерживает только функцию 3 Modbus. Так что надо обязательно использовать групповые запросы и следить за тем, что бы внутри группы было более 1 переменной. Тогда точно будет использоваться функция 3 Modbus. Ну и направление переменной R(out).


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 10.06.2016, 18:05   #3
kagen
Новичок
 
Регистрация: Jun 2016
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помощь с powerlogic DM6200

Спасибо за консультацию.
подскажите еще пожалуйста, не нашел в примерах обработку групповых запросов на поле. Я правильно понимаю, что если у меня стоят групповые запросы 3907 и 3908 в карте, а на поле я вытащу первую переменную с обращением к 3907, то автоматом сделается и обращение к 3908?
Или мне нужно все указывать на карте, а потом соединять результат ответа?
kagen вне форума   Ответить с цитированием
Старый 10.06.2016, 18:14   #4
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помощь с powerlogic DM6200

Цитата:
Сообщение от kagen Посмотреть сообщение
Или мне нужно все указывать на карте, а потом соединять результат ответа?
Да.
Изображения
Тип файла: jpg конвертирование два Int в long.jpg (94.4 Кбайт, 58 просмотров)


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Старый 10.06.2016, 20:54   #5
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Помощь с powerlogic DM6200

Цитата:
Сообщение от kagen Посмотреть сообщение
Спасибо за консультацию.
подскажите еще пожалуйста, не нашел в примерах обработку групповых запросов на поле. Я правильно понимаю, что если у меня стоят групповые запросы 3907 и 3908 в карте, а на поле я вытащу первую переменную с обращением к 3907, то автоматом сделается и обращение к 3908?
Или мне нужно все указывать на карте, а потом соединять результат ответа?
Опрашивается всё, что есть в карте вне зависимости от вытащенности на "поляну".

Если вы 3908 не указываете в карте, а 3907 указан как int, то 3908 опрашиваться он не будет.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 11.06.2016, 01:28   #6
kagen
Новичок
 
Регистрация: Jun 2016
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помощь с powerlogic DM6200

Что то упорно не выходит (
В карту забил
Переменная, тип, напр., адрес, период
A_1, REAL, R(OUT), 3907,3000
A_2, REAL, R(OUT), 3908,3000
Флаг групповые запрсы стоит. На поле их не вытаскивал.
По цвету он их сгруппировал, значит запрос групповой. Прибор показывает ошибку, сигнетик ошибку.
Пробовал менять на 43907 и 43908 все так же.
Может я что то не так понял?
Если все верно, то буду снифером смотреть.
kagen вне форума   Ответить с цитированием
Старый 11.06.2016, 02:00   #7
New
Senior Member
 
Регистрация: May 2009
Сообщения: 1 034
Благодарил(а): 9 раз(а)
Поблагодарили: 22 раз(а) в 22 сообщениях
По умолчанию Ответ: Помощь с powerlogic DM6200

Цитата:
Сообщение от kagen Посмотреть сообщение
Прибор показывает ошибку, сигнетик ошибку.
А куда ж им деваться ?!
REAL, R(OUT), 3907 это уже чтение ДВУХ регистров, начиная с 3907.


__________________
RTFM
New вне форума   Ответить с цитированием
Старый 11.06.2016, 03:02   #8
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Помощь с powerlogic DM6200

Цитата:
Сообщение от kagen Посмотреть сообщение
В карту забил
Переменная, тип, напр., адрес, период
A_1, REAL, R(OUT), 3907,3000
A_2, REAL, R(OUT), 3908,3000
Флаг групповые запрсы стоит.
1. Видимо недостаточно ясно объяснил. Нумерация в Modbus по регистрам. Переменная может занимать 1 или 2 регистра.
Если вы читаете переменную типа REAL (2 регистра) с адреса 3907, то следующий корректный адрес будет 3909. С 3908 читать не стоит.
2. Адресация в Modbus вещь жесткая, только трактуют ее разные производители по разному. Кто то считает от 0, кто то от 1. Так что иногда имеет смысл почитать переменные со смещение +/- 1.
3. Попытайтесь забить следующую карту:
PF , REAL, R(OUT), 3907,3000
VLL , REAL, R(OUT), 3909,3000
VLN , REAL, R(OUT), 3911,3000
A , REAL, R(OUT), 3913,3000
F , REAL, R(OUT), 3915,3000
все переменные должны быть в 1 запросе.
4. Почитайте ограничения на стр.54.


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.

Последний раз редактировалось tvf, 11.06.2016 в 03:22
tvf вне форума   Ответить с цитированием
Старый 11.06.2016, 04:55   #9
kagen
Новичок
 
Регистрация: Jun 2016
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помощь с powerlogic DM6200

Спасибо Вам большое. Буду пробовать.
kagen вне форума   Ответить с цитированием
Старый 16.06.2016, 01:44   #10
kagen
Новичок
 
Регистрация: Jun 2016
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помощь с powerlogic DM6200

Не заработало.
Запустил монитор порта, посмотрел как общается mdscan65 из инструкции. Есть свдиг на -1, т.е вместо 3907 опрашиваем 3906.
Только не работает.
Вот пример лога.
Работает сигнетик (3928, real, 3000ms пауза.)
Код:
17:53:30.306 - Rx: 05 03 0F 58 00 02 47 48  - Read N words, Slave Rx
17:53:33.346 - Rx: 05 03 0F 58 00 02 47 48  - Read N words, Slave Rx
17:53:36.382 - Rx: 05 03 0F 58 00 02 47 48  - Read N words, Slave Rx
17:53:39.418 - Rx: 05 03 0F 58 00 02 47 48  - Read N words, Slave Rx
17:53:42.455 - Rx: 05 03 0F 58 00 02 47 48  - Read N words, Slave Rx
17:53:45.491 - Rx: 05 03 0F 58 00 02 47 48  - Read N words, Slave Rx
17:53:55.538 - Tx: 05 03 0F 58 00 02 47 48 - Read N words, Slave Tx
В ответ тишина. Мультиметр пишет ошибку.
Parity, framing, or overrun error
Если отправляю с компа то все отлично работает.

Код:
Slave Rx
17:53:58.552 - Tx: 05 03 0F 58 00 02 47 48 - Read N words, Slave Tx
17:53:58.634 - Rx: 05 03 04 6C 7D 42 89 C3 BD  - Response to read N words, Slave Rx
17:54:01.560 - Tx: 05 03 0F 58 00 02 47 48 - Read N words, Slave Tx
17:54:01.642 - Rx: 05 03 04 6B B6 42 89 B3 37  - Response to read N words, Slave Rx
17:54:04.574 - Tx: 05 03 0F 58 00 02 47 48 - Read N words, Slave Tx
17:54:04.648 - Rx: 05 03 04 6E E5 42 89 43 EA  - Response to read N words, Slave Rx
17:54:07.582 - Tx: 05 03 0F 58 00 02 47 48 - Read N words, Slave Tx
17:54:07.686 - Rx: 05 03 04 3C 85 42 87 D2 88  - Response to read N words, Slave Rx
17:54:10.592 - Tx: 05 03 0F 58 00 02 47 48 - Read N words, Slave Tx
17:54:10.703 - Rx: 05 03 04 29 7A 42 87 E6 B4  - Response to read N words, Slave Rx
Собираю на столе, на cat5e проводе, земли нет (у мультиметра ее нет.)
Перемычка на 120ом резистор присутствует.
Настройки везде одинаковые. 19200-1-8-even
ps. В моей pdf версии инструкции опечатка и я неверно идентифицировал ошибку.


Причем Сигнетик отлично читает при эмуляции слейва с компа.
Комп отлично читает с мультиметра.
Подскажите пожалуйста, где искать затык?
kagen вне форума   Ответить с цитированием
Старый 16.06.2016, 03:53   #11
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Помощь с powerlogic DM6200

Цитата:
Сообщение от kagen Посмотреть сообщение
Подскажите пожалуйста, где искать затык?
Если все обстоит как, как вы описали, то проблема на физическом уровне сети: полярность подключения, подтяжка, терминаторы и прочее. Есть возможность посмотреть осциллографом? Лучше запоминающим.


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 17.06.2016, 13:58   #12
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помощь с powerlogic DM6200

Цитата:
Сообщение от kagen Посмотреть сообщение
Собираю на столе, на cat5e проводе, земли нет (у мультиметра ее нет.)
Перемычка на 120ом резистор присутствует.
Подскажите пожалуйста, где искать затык?
Выкинь перемычку (терминатор).
Измерь напряжение между клеммами А и В без обмена по шине.
Если напряжение 0 - то надо лепить подтяжку со стороны Pixel-я.
Если без терминатора напряжение появилось - то всё должно заработать


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Старый 19.06.2016, 15:59   #13
kagen
Новичок
 
Регистрация: Jun 2016
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помощь с powerlogic DM6200

Проблема решилась отключением контроля четности.
Проверю еще по Вашему способу. Спасибо всем за помощь =)
kagen вне форума   Ответить с цитированием
Старый 20.06.2016, 15:07   #14
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Помощь с powerlogic DM6200

Цитата:
Сообщение от kagen Посмотреть сообщение
Проблема решилась отключением контроля четности.
Что-то похожее было, когда подключал С2000-USB Болид к Pixel.
Подробнее тут.


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 00:52.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024