EnglishУкраїнськаmRussian
Login/New
Topic with many replies

Вопрос о ModBus


Author Message
Written on: 17. 07. 2012 [14:14]
Alexx
Александр Иванов
registered since: 16.07.2012
Posts: 64
В том то и дело, что этой галки там НЕТ!!!
Written on: 17. 07. 2012 [14:20]
legend
Oleg N
registered since: 13.04.2012
Posts: 63
"Alexx" wrote:

В том то и дело, что этой галки там НЕТ!!!

А это что?
Attachment

групповые запросы.jpeg (File type: image/jpeg, Size: 103.85 kilobytes) — 607 downloads
Written on: 17. 07. 2012 [14:21]
Alexx
Александр Иванов
registered since: 16.07.2012
Posts: 64
Обратил внимание вот на что: если опрашиваю смежные регистры R:200:r:var:variable R:201:r:var1:variable1 то получаю ошибку. Если через один- ошибки нет. Похоже имеет место групповой запрос, хотя я его не заказывал. И непонятно, почему в отчете МОДБАС опрос идет как ни в чем не бывало. со старыми настройками?
Written on: 17. 07. 2012 [14:27]
Alexx
Александр Иванов
registered since: 16.07.2012
Posts: 64
"legend" wrote:

"Alexx" wrote:

В том то и дело, что этой галки там НЕТ!!!

А это что?



Я хотел сказать, что у меня в этом поле галка не установлена...
Written on: 17. 07. 2012 [14:28]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3747
"Alexx" wrote:

Похоже имеет место групповой запрос, хотя я его не заказывал.

Его не заказывают он предусмотрен самой функцией запроса и уважающие себя производители оборудования нормально его реализуют.

"Alexx" wrote:

И непонятно, почему в отчете МОДБАС опрос идет как ни в чем не бывало. со старыми настройками?

Я Вас просил его сюда скопировать!

P.S. Если это проблема о которой я подозреваю то установка "Максимальный размер блока запроса (байт)" в "2" её решит.

Learn, learn and learn better than work, work and work.
Written on: 18. 07. 2012 [21:11]
Alexx
Александр Иванов
registered since: 16.07.2012
Posts: 64
Это проблема о которой Вы подозреваете. Установка Максимального размера блока запроса в "2" её решила. Спасибо. Буду дальше разбираться со скадой.
Written on: 23. 10. 2012 [13:22]
Vorgehen
Артём Корниевский
registered since: 08.07.2012
Posts: 20
Здравствуйте Товарищи. Если кому-нибудь не жалко драгоценного времени помогите. Суть проблемы такая. Имеется преобразователь частоты Holip, он же danfoss. Необходимо считывть и писать текущее значение частоты. Для чтения и записи используются функции 01 и 0F. Т.е. чтение и запись группы битов флагов. Для записи частоты необходимо записать сразу несколько бит. Пробовал напрямую посылать кадр запроса через исходящий транспорт (Serial, ttyUSB0) всё корректно воспринимается и значение частоты пишется на нужные биты. Но как это реализовать через сбор данных? Приведу кадр записи
.
JAVASCRIPT
03 0F 00 00 00 20 04 7C 04 00 40 96 91

03-адресс устройства в сети modbus
0F-функция
00-нач адресс мл.
00-нач адресс ст.
00-кол-во бит мл.
20 (32dec) - кол-во бит ст.
04 - счётчик байт данных
7С 04 - данные для управления включение, выключение, реверсы и т.д.
00 40 - значение скорости - 100%.
96-контрольная сумма мл.
91-контрольная сумма ст.
Пробовал создавать параметр в контроллере DAQ.Modbus с атрибутами
С:0:w:a:a
C:1:w:b:b
.............
C:31:w:jj:jj
ставил флажки, но это какой-то не тот вариант, например сразу 5 флагов поставить не удаётся чтобы забить число 7С - 01111100. Уже думаю что придётся писать функцию на контроллер DAQ.Javalikecalc. Или может быть я что-то не правильно понял из документации. Ребят ну хоть намекните. С регистрами всё проще, и примеров много и работал уже, а как с битами быть?

Планирую использовать messIO() , в DAQ.JavaLikeCalc, если не получится через DAQ.Modbus.

[This article was edited 1 times, at last 23.10.2012 at 13:46.]
Written on: 23. 10. 2012 [14:33]
ruslan
Руслан Нургалин
registered since: 25.06.2009
Posts: 15
С danfoss боролись так:
Перечень атрибутов параметра контроллера modbus:
JAVASCRIPT
C:00:w:C00:C00
C:01:w:C01:C01
C:02:w:C02:C02
C:03:w:C03:C03
C:04:w:C04:C04
C:05:w:C05:C05
C:07:w:C07:C07
C:08:w:C08:C08
C:09:w:C09:C09
C:10:w:C10:C10
C:11:w:C11:C11
C:12:w:C12:C12
C:13:w:C13:C13
C:14:w:C14:C14
C:16:w:C16:C16
C:17:w:C17:C17
C:18:w:C18:C18
C:19:w:C19:C19
C:20:w:C20:C20
C:21:w:C21:C21
C:22:w:C22:C22
C:23:w:C23:C23
C:24:w:C24:C24
C:25:w:C25:C25
C:26:w:C26:C26
C:27:w:C27:C27
C:28:w:C28:C28
C:29:w:C29:C29
C:30:w:C30:C30
C:31:w:C31:C31

Функция вычислителя:
JAVASCRIPT
//License GPLv3 or later
if (in < 0) in = 0;
if (in > 100) in = 100;
out = 0x4000*in/100;
C02 = 1;
C03 = 1;
C04 = 1;
C05 = 1;
C06 = C06i;
C10 = 1;
C15 = C15i;
C16 = out & 0x0001;
C17 = out & 0x0002;
C18 = out & 0x0004;
C19 = out & 0x0008;
C20 = out & 0x0010;
C21 = out & 0x0020;
C22 = out & 0x0040;
C23 = out & 0x0080;
C24 = out & 0x0100;
C25 = out & 0x0200;
C26 = out & 0x0400;
C27 = out & 0x0800;
C28 = out & 0x1000;
C29 = out & 0x2000;
C30 = out & 0x4000;
C31 = out & 0x8000;

Шестой бит стоп/пуск, 15-й реверс, с 16-го по 31-ый задание, in - входящее значение.
Примерно как то так давненько это было. На сегодня не пользуемся последовательным интерфейсом, перешли на токовые входа/выхода
Written on: 23. 10. 2012 [15:30]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3747
"ruslan" wrote:

С danfoss боролись так:
Перечень атрибутов параметра контроллера modbus:
JAVASCRIPT
C:00:w:C00:C00
C:01:w:C01:C01
//-- Skip --
C:30:w:C30:C30
C:31:w:C31:C31

Функция вычислителя:
JAVASCRIPT
//License GPLv3 or later
if (in < 0) in = 0;
if (in > 100) in = 100;
out = 0x4000*in/100;
C02 = 1;
C03 = 1;
C04 = 1;
C05 = 1;
C06 = C06i;
C10 = 1;
C15 = C15i;
C16 = out & 0x0001;
C17 = out & 0x0002;
//-- Skip --C30 = out & 0x4000;
C31 = out & 0x8000;

Шестой бит стоп/пуск, 15-й реверс, с 16-го по 31-ый задание, in - входящее значение.
Примерно как то так давненько это было. На сегодня не пользуемся последовательным интерфейсом, перешли на токовые входа/выхода

Можно всё это-же но собрать в шаблон логического типа параметра: http://wiki.oscada.org/Doc/ModBus#h592-17
А можно вместо создания отдельных битов слать готовый PDU из того-же шаблона http://wiki.oscada.org/Doc/ModBus#h592-18

Learn, learn and learn better than work, work and work.
Written on: 23. 10. 2012 [15:31]
Vorgehen
Артём Корниевский
registered since: 08.07.2012
Posts: 20
ruslan, спасибо за ответ. Я его пробовал не очень мне по душе пришлось. Хотелось бы что-нибудь другое попробовать. Может с messIO поколдую, а может и так сделаю.
С:0:w:a:a
C:1:w:b:b
.............
C:31:w:jj:jj

Вот под этим я имел ввиду что и у вас.
А почему отказались от последовательного интерфейса? Или просто нашли более надёжное решение. Насколько я понимаю вы теперь на контролерах и другие управляющие терминалы используете на частотнике? Не могли бы Вы хотябы какую-нибудь примерную схемку в личку кинуть. Просто отдалённо хоть представлять.

Поковыряю вариант с шаблоном параметра. Спасибо Товарищи.
Роман Вам тоже спасибо, для меня большая честь получать ответ от разработчиков.

[This article was edited 2 times, at last 23.10.2012 at 15:50.]



0579