Добавление и работа с регистрами SDO. Пример на модуле BRIC-AO-4.
Примечание
Данный урок показан на примере модуля расширения BRIC-AO-4. Аналогичным образом добавляются и используются регистры SDO и для остальных модулей.
Для проверки регистров SDO модуля расширения BRIC-AO-4 напишем программу на языке FBD. Добавляем модуль AO в Beremiz, и откроем окно настроек. Все регистры, кроме AO_ao_val_х являются регистрами SDO.

SDO регистры в AO
Наша программа будет записывать новый адрес modbus, а также читать CANopen-адрес модуля расширения. В окне регистров модуля расширения находим SDO-регистры AO_1_mdb_addr и AO_1_module_number. В столбце Polling для первого регистра прописываем «write», а для второго «read».

Запись в Polling SDO регистров в AO
Добавим регистры в основную программу.

Программа для регистров SDO
Загружаем программу в ПЛК и заходим на WEB-страницу контроллера через Ethernet. Также зайдем на WEB-страницу модуля расширения через USB-порт.

WEB-страница ПЛК

WEB-страница модуля расширения
Как видно на странице модуля, modbus-адрес поменялся на «0», так как по умолчанию «write_mdb» инициализируется нулевым значением. Также на этой странице можно увидеть, что «module_number» равно 1, как и полученное значение переменной «read_number». При изменении значения переменной «write_mdb», например на «3», изменится и «mdb_addr» модуля.

WEB-страница ПЛК

WEB-страница модуля расширения
Напишем еще одну программу, которая позволит управлять токовым выходом модуля расширения BRIC-AO-4 в соответствии с вводимым значением в единицах физической величины (mA). Для этого, сначала необходимо перевести вводимую физическую величину AO_out_x в единицы ЦАП из диапазона 0-4095, а затем, полученное значение AO_val_x необходимо передать в один из PDO-регистров AO_1_ao_val_x модуля расширения.
Расчет значения AO_val_x в единицах ЦАП осуществляется по формуле:
AO_val_x = (AO_out_x - AO_calib_b_x) * AO_calib_a_x;
где AO_out_x – вводимое значение тока (напряжения) выходного канала в mA (Вольтах);
AO_calib_a_x и AO_calib_b_x - индивидуальные калибровочные коэффициенты каждого канала.
В SDO-регистрах AO_1_ao_calib_a_x и AO_1_ao_calib_b_x модуля 1.1.х:АО_1 хранятся значения индивидуальных калибровочных коэффициентов AO_calib_a_x и AO_calib_b_x соответственно. Важно отметить, что для считывания значений калибровочных коэффициентов требуется установить статус read в поле Polling соответствующих SDO-регистров. Для первого выходного канала модуля 1.1.х:АО_1 программа будет иметь следующий вид:

Программа на языке FBD
После загрузки в ПЛК заходим в WEB-страницу и задаем какое-либо значение в mA в поле «value», например, «12».

Параметр «value»
На модуле расширения в нулевом канале будет задаваться аналоговый сигнал, равный 12mA. Данной программой мы можем перерасчитывать в значения ЦАП значения вводимых mA.
Примечание
Подробно о модуле расширения BRIC-AO-4 можно узнать по ссылке