PDA

Просмотр полной версии : сп270, чтение 3х переменных функцией 04.



borgivan
25.11.2009, 23:31
Здравствуйте. Судя по снифферу, при считывании переменных 3х - используется функция 10h, а 4х - функция 03h. Возможно ли как то определять номера функций? Не тянется большая часть переменных с частотника с помощью панели, то есть 4х - без проблем вообще, а вот переменные с номерами 3х - ни в какую...

lara197a
26.11.2009, 09:25
а какой у вас частотник?

borgivan
26.11.2009, 11:49
Emotron FDU 2.0, и к нему Isolated 232/485 2.0 Option (модуль расширения).

Вот лог нормального обмена с OPC сервером Lectus Modbus OPC/DDE Server:


14:02:10.046 [556] (COM4)Tx: [8] 01 04 03 E8 00 01 B1 BA
14:02:10.093 [556] (COM4)Rx: [7] 01 04 02 F2 7E 7C 70
.......
14:02:10.359 [556] (COM4)Tx: [8] 01 04 03 F2 00 01 90 7D
14:02:10.406 [556] (COM4)Rx: [7] 01 04 02 F9 11 3B 6C

14:02:10.421 [556] (COM4)Tx: [8] 01 03 0B AE 00 01 E7 CF
14:02:10.468 [556] (COM4)Rx: [7] 01 03 02 F2 77 BD 02

Все переменные кроме последней имеют номера регистров начинающиеся с тройки, и автоматом функция чтения назначается 04, у последней же номер регистра начинается с четверки. Вот то что начинается с четверки проходит на ура с панели, то есть я ставлю в панели любой компонент, проставляю там 4х и добавляю адрес, функция чтения задается 03 в посылке. Как только я ставлю 4х - функция чтения меняется на 10h как то:

14:10:20.046 [556] (COM4)Tx: [8] 01 10 03 E8 00 01 B1 BA
Устройство не отвечает.
14:10:20.109 [556] (COM4)Tx: [8] 01 10 03 E9 00 01 E0 7A
Устройство не отвечает.
14:10:20.171 [556] (COM4)Tx: [8] 01 10 03 ED 00 01 A1 BB
Устройство не отвечает.
...
14:10:20.359 [556] (COM4)Tx: [8] 01 10 03 F2 00 01 90 7D
Устройство не отвечает.

14:10:20.421 [556] (COM4)Tx: [8] 01 03 0B AE 00 01 E7 CF
14:10:20.468 [556] (COM4)Rx: [7] 01 03 02 F2 77 BD 02

Нужно что бы не 10h было а 04h. Иначе ответа от частотника вижу не добиться.

Ельцов Андрей
26.11.2009, 12:03
ситуация понятна. проверим.
только откуда у вас надпись "устройство не отвечает".

borgivan
26.11.2009, 12:09
ситуация понятна. проверим.
только откуда у вас надпись "устройство не отвечает".

этот лог я ручками поправил для наглядности. в смысле я конечно же не мог его получить в таком "красивом" виде, ибо частотник - сп270 - Adam4520 - на одной линии. от Adam на Com-порт компьютера, на котором монитор портов, в результате в порт сыпится непрерывный поток который только ручками разделить :)

lara197a
26.11.2009, 13:47
вы правы, пока команда запроса не будет соответствоват тому,что хочет видеть пч. отвечать он не будет. у меня тоже было желание ввести прямое управление с ип320. к регистрам которые работали по командам не соответствующим доступ не получить. вы я так понял, хотите организовать управление без плк?

borgivan
26.11.2009, 14:14
вы правы, пока команда запроса не будет соответствоват тому,что хочет видеть пч. отвечать он не будет.
Я все эти моменты очень четко понимаю, спасибо.


вы я так понял, хотите организовать управление без плк?
Всё намного проще :) Мне надо вытянуть 6 значений из примерно тысячи и вывести на дисплей :) Ну плюс аварии.. но это пока что слегка не так важно. Самая большая проблема в функции чтения :( Потому что в конце концов я плюну и поставлю промежуточно тот же плк100, и в нем всё разрулю, включая несоответствия форматов данных и тд и тп, но для того что бы просто вывести несколько переменных... когда загвоздка тупо в одном байте modbus посылки :) Панель и так стоит дорого, а тут ещё и контроллер.

Илья Кареткин
26.11.2009, 14:42
здравствуйте.
действительно в конфигураторе сп200 есть ошибка. при использовании функции 3х данные читаются по 4х:
:01 04 00 00 00 01fa
и наоборот:
:01 03 00 00 00 01 Fb

вашу ошибку мы не зафиксировали. выложите проект и скажите на каком экране панели находились в момент получения данного лога.

borgivan
26.11.2009, 17:06
действительно в конфигураторе сп200 есть ошибка. при использовании функции 3х данные читаются по 4х:
:01 04 00 00 00 01fa
и наоборот:
:01 03 00 00 00 01 Fb
Да нет, тут всё правильно в принципе. Это же не функция чтения по идее задается. Просто input registers имеют номера 30001-39999, команда чтения read input registers - 04h, а holding registers 40001-49999? команда read holding registers - 03h. Так и получается, что бы прочитать к примеру регистр 31001 мы вбиваем 3x - 1000 в настройках СП200, и читается это функцией 04h. Соответственно к примеру 41001 мы задаем 4x - 1000, и читается это функцией 03h.

Ну как вариант, предложите можети ли вы предложить варианты для того что бы считать два регистра:

31001, при этом запрос должен иметь вид: 01 04 03 E8 00 01 B1 BA
42991, при этом запрос должен иметь вид: 01 03 0B AE 00 01 E7 CF

429991 например я смог запросто вытащить цифровым дисплеем:
Адрес устройства 1, регистр 4х - 2990, переадр. - не помечено, тип данных word.
Тоже самое но с:
Адрес устройства 1, регистр 3х - 1000, переадр. - не помечено, тип данных word, выдает... о чудо! Панель с писком перезагружается каждые пару секунд! :)

Илья Кареткин
27.11.2009, 09:54
будем проверять и исправлять.

borgivan
02.12.2009, 07:56
здравствуйте! не проверяли ещё?

Илья Кареткин
02.12.2009, 09:56
здравствуйте! не проверяли ещё?

Здравствуйте, проблема работы панели СП270 по 4 функции, по протоколу RTU еще не решена.
Если ваш частотник поддерживает протокол Modbus ASCII, то, пожалуйста, проверьте в режиме панели Мастер(ASCII):


31001, при этом запрос должен иметь вид: 01 04 03 E8 00 01 B1 BA
для этого в настройках элемента(например, "цифровой дисплей") панели выберите 3х и задайте адрес 1000



42991, при этом запрос должен иметь вид: 01 03 0B AE 00 01 E7 CF
для этого в настройках элемента панели выберите 4х и задайте адрес 2991.

Не совсем понимаю почему вам нужны именно такие запросы..
ведь судя по адресам регистров, где первая цифра (как я понимаю, у данных приборов) это доступная функция чтения..

borgivan
02.12.2009, 21:44
к сожалению только Rtu режим поддерживается.