Передача числа из мастера в слейв

Top  Previous  Next

 

В этом примере будет рассмотрен вариант организации связи в сети Modbus и обмен данными между ведущим и ведомым контроллерами.
Пример выполнен на контроллерах SMH2G(i) и Trim5, но актуален для любого контроллера производства Segnetics с учётом его возможностей связи.

 

Терминология:

"Ведущий контроллер", он же "Master", он же "Мастер" - устройство, контролирующее работу сети.  Именно это устройство инициирует обмен данными в сети и контролирует порядок обмена между контроллерами.
"Ведомый контроллер", он же "Slave", он же "Слейв" - устройство, выступающее пассивным абонентом сети.  Это устройство никогда не инициирует обмен данными, единственное что оно может и имеет право сделать - ответить Мастеру на команды чтения или записи данных.
"Обмен данными" - процесс обмена Мастера и Слейва Запросами и Ответами.

 

Пример:

Ведомый контроллер - SMH2G(i).
Ведущий контроллер - Trim5.
Связь по протоколу MODBUS-RTU через сеть RS-485.

 

Подготовка контроллера для работы в роли ведомого (Slave).

1. Создайте проект и его логическую схему.

Переключитесь во вкладку «FBD» и разместите на рабочем поле блок-переменную «Вход».

 

Расположите на рабочем поле блок «SCREEN(int)» из группы «Блоки вывода на экран».

 

Сконфигурируйте блоки и соедините их в схему согласно рисунку.

 

2. Настройте параметры связи контроллера.

Выполните двойной клик на строке с именем устройства (3), откроется окно «Свойства контроллера». В этом окне введите:

адрес в сети MODBUS (1)
скорость последовательного порта  (2)

 

3. Создайте карту памяти.

Нажмите Ctrl+M, откроется окно «Переменные MODBUS». Нажмите кнопку «Сохранить» (1), откроется диалог сохранения файла - задайте местоположение и имя файла карты памяти, сохраните файл, после чего нажмите  «Готово» (2).

 

Карта памяти необходима, что бы дать знать «Мастер» контроллеру с какими регистрами «Слэйв» контроллера предстоит взаимодействовать.
Будет использоваться в дальнейших шагах.

 

4. Сохраните созданный проект и загрузите его в контроллер, который будет исполнять роль ведомого (Slave) устройства.

 

Подготовка контроллера для работы в роли ведущего (Master).

1. Coздайте проект и добавьте «Slave» устройство c которым будет работать «Master» контроллер.

Откройте контекстное меню управления портом «COM1(Slave)», правым кликом мыши на строке (1) и выберите «Добавить устройство».

Откроется окно «Создание устройства».

 

Выберите радиокнопку «на основе существующей карты» (2). Нажмите «обзор» (3), появится диалог выбора файла - выберете ранее сохраненный файл карты памяти контроллера слэйва. После чего нажмите кнопку создать (3), откроется окно «Задание свойств Slave».

 

2. Задайте параметры «Slave» согласно параметрам указаным в разделе «Подготовка контроллера для работы в роли Slave»

222 - адрес который был использован при подготовке slave контроллера.

Введите адрес «Slave» устройства в сети MODBUS в поле (1). Нажмите кнопку (2) для обзора и настройки параметров связи со «Slave» устройством.

Откроется расширеное окно «Задание свойств Slave».

Скорость 15200 такая же как у ранее сконфигурированного slave контроллера. Для контроллеров из примера SMH2G(i) и Trim5 такие параметры порта как  контроль четности и стоп биты остаются  по умолчанию, другие модели контроллеров возможно потребуют конфигурации этих параметров.
 
В любом случае параметры последовательного порта при настройке «Slave» контроллера, должны соответствовать настройкам последовательного порта  добавляемого «Slave» устройства при настройка «Master» контроллера.

Задайте комбобоксом (1) скорость последовательного порта если требуется. Нажмите «Готово» (2), для завершения конфигурации и добавления «Slave» устройства.

После добавления вкладке «Устройства» у «COM1» появится папка «Slave» которая содержит переменную «value» из карты памяти  «Slave» контроллера.

 

Внимание. Добавив устройство на основе существующей карты памяти, мы организовали связь между двумя проектами. Теперь контроллер «Master» будет опрашивать контроллер «Slave» по тем адресам, которые указаны в карте памяти. Переменная COM1-Slave-value будет содержать то же значение, что и переменная value в проекте «Slave» контроллера.

 

3.  Создайте логическую схему проекта.

Расположите на рабочем поле переменную «value»  из «COM1/Slave».

 

Переключитесь во вкладку «FBD» и разместите на рабочем поле блок «SCREEN(int)» из группы «Блоки вывода на экран».

 

Разместите на рабочем поле блок «CTU(16)» из группы «Триггеры, Регистры и Счетчики».

 

Сконфигурируйте блоки и соедините их в схему согласно рисунку.

 

4. Сохраните созданный проект и загрузите его в контроллер, который будет исполнять роль ведущего (Master) устройства.

 

Объединение контроллеров в сеть и проверка передачи значения.

Соедините RS-485 порты контроллеров, между собой. В случае правильного подключения и безошибочного выполнения инструкции  на экране обоих контроллеров должно выводиться число и изменяться от 0 до 100.

Распиновку  выводов порта смотрите в инструкции по эксплуатации на конкретную модель контроллера.

 

Файлы с примерами проектов

Проект для контроллера мастера

Проект для контроллера слейва

Карта памяти слейва