PDA

Просмотр полной версии : СПК110 slave - адресация регистров



vladimir_prg
20.12.2018, 03:28
Может кто-нибудь в курсе, как происходит адресация регистров в СПК110 работающим как стандартный слэйв (средствами CodeSys), относительно мастера его опрашивающего?
То есть адресация переменных в Modbus_Serial_Device выражается как %IWx, %QWx. При этом здесь можно задать любой начальный адрес. Допустим %IW5, %QW5.
Будет ли при этом происходить смещение адресов модбас (соответственно 30005, 40005), или адресация в любом случае будет начинаться с 0 адреса?

Евгений Кислов
20.12.2018, 08:56
Добрый день.

Inputs[0], Inputs[1], ... - это holding-регистры с адресом 0, 1 ...
Outputs[0], Outputs[1], ... - это input-регистры с адресами 0, 1 ...

Смещения адресов (4xxxx, 3xxxx) в CODESYS в нет.
%I, %Q не влияют на Modbus-адреса и лучше их не трогать вообще.

Dmitro
30.04.2019, 20:07
Какие регистры в СПК110 доступны для пользователя?
Начинаю для СПК110 проект с нуля, там регистры по умолчанию начинаются почему-то с 58-го.

Когда опрашиваю 58-й регистр с помощью Owen OPC Server СПК110 возвращает ошибку 2 - указанный адрес недоступен.

Евгений Кислов
30.04.2019, 20:13
Выше все написано.
С OPC у нас есть конкретный пример:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_OPC_SCADA_v.1.1.pdf

Dmitro
01.05.2019, 11:37
Выше все написано.
С OPC у нас есть конкретный пример:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_OPC_SCADA_v.1.1.pdf

Спасибо.
В примере используются адреса %IW0-9, %IX0-9, %QW0-9.
В то же время в заготовке проекта СПК110 по умолчанию єти же адреса используются Buzzer`ом (%QX0.0, %IX0.0), Drive'ом (%IX0.1) и другими подмодулями (например Debug %QW5 = К-во открытых дескрипторов),
и появляются ошибки типа наложения адресов...

Так можно использовать адрес 0 и 1 в СПК110 или нет?
Какие адреса отводятся для пользователя? В этом вопрос. В примере прямо 0 и 1-й (системные для СПК110) используются.

Евгений Кислов
01.05.2019, 11:46
Я убедительно прошу вас все же прочитать то, что уже писал выше.
На всякий случай процитирую

%I, %Q не влияют на Modbus-адреса и лучше их не трогать вообще.

Если же уже потрогали - то сделайте так:
https://www.owen.ru/forum/showthread.php?t=20069&p=299738&viewfull=1#post299738

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

Inputs[0], Inputs[1], ... - это holding-регистры с адресами 0, 1 ...
Outputs[0], Outputs[1], ... - это input-регистры с адресами 0, 1 ...

Адреса 0 и 1 можно использовать - как для input, так и для holding.
Всего в стандартном Modbus_Serial_Device доступно 500 input регистров (адреса 0...499) и 500 holding регистров (адреса 0...499).