Добавление и работа с регистрами SDO. Пример на модуле BRIC-AO-4.

Примечание

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

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

../_images/93.png

SDO регистры в AO

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

../_images/103.png

Запись в Polling SDO регистров в AO

Добавим регистры в основную программу.

../_images/115.png

Программа для регистров SDO

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

../_images/123.png

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

../_images/133.png

WEB-страница модуля расширения

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

../_images/142.png

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

../_images/153.png

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 программа будет иметь следующий вид:

../_images/451.png

Программа на языке FBD

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

../_images/461.png

Параметр «value»

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

Примечание

Подробно о модуле расширения BRIC-AO-4 можно узнать по ссылке