bg

Контроль состояния ячейки памяти (coil input) PLC контроллера через MODBUS TCP

Задача

Мне нужно контролировать состояние трех PLC контроллеров с MODBUS TCP и формировать сигнал в любой форме, если состояние одной из ячеек памяти (coil input) меняется из 0 в 1, и наоборот.

С чего начать

Поскольку имеется 3 устройства вам нужно создать 3 одинаковых конфигурации, использую кнопку с зеленым плюсом в главном окне программы. Эти конфигурации будут различаться только IP адресом контроллера, и может быть адресом ячейки памяти. Если достаточно одного типа сигнала для всех контроллеров и у всех контроллеров адрес ячейки памяти одинаков, то вы можете создаться только одну конфигурацию и указать 3 IP адреса в ней.

Настройка соединения с устройствами

Скорее всего, компьютер должен сам инициировать подключение к устройству. В этом случае вы должны настроить режим TCP клиента в логгере.

Настройки TCP

Выбор модулей

Выбор модулей

Обратите внимание на порядок выбранных модулей фильтрации данных.

Модули обработки событий

Как это работает:

  1. Модуль запроса данных формирует и отправляет запрос MODBUS к устройству.
  2. Парсер анализирует получаемый ответ от устройства и разбирает его на переменные VALUE1 и VALUE2, а затем передает эти переменные в модули фильтрации данных.
  3. Модуль фильтрации данных "Script Execute" первыми анализирует значения переменных или сравнивает их с предыдущими значениями (если ранее было получено какое-либо значение). Если значение переменной изменилось, то модуль добавляет к списку переменных новую переменную "ALARM", которая отражает изменение состояние сигнала.
  4. Модуль "Events generator" получает данные после модуля "Script Execute" и ждет момента, когда появится переменная "ALARM" и генерирует два внутренних события "ALARM1" или "ALARM2", в зависимости о состояния переменной "ALARM".
  5. Модуль "Events notification" на закладке "Обработка событий" выполняет действия, указанные для соответствующего события (например, проигрывает звук или показывает сообщение).

Настройка параметров запроса MODBUS

Кликните "Настроить" рядом со списком "Модуль запроса данных" и добавьте новый запрос с помощью меню "Действие –> Добавить запрос". Установите параметры запроса как показано на рисунке ниже. Измените адрес устройства и адрес ячейки памяти.

Настройка параметров запроса MODBUS

Скрипт обработки данных

Выберите модуль "Script Execute" из списка и кликните "Настроить" под списком модулей. Вы должны скопировать скрипт, приведенный ниже в редактор скрипта.

Скрипт обработки данных

Текст скрипта:

const max_values = 2;
var values:array [1..max_values] of string;
    data_source_name: string = 'DATA_SOURCE_NAME';
    data_source, store_name: string;
    i: integer;
    v_old, v_new: boolean;
begin
 values[1] := 'VALUE1';
 values[2] := 'VALUE2';
 if IsVariableDefined(data_source_name) then
  data_source := GetVariable(data_source_name)
 else
  data_source := '?';
 for i:=1 to max_values do
  begin
   if IsVariableDefined(values[i]) then
    v_new := GetVariable(values[i])
   else
    v_new := false;
   store_name := data_source+'-'+values[i];
   if IsVariableStored(store_name) then
     // retrieves a stored variable
    begin
     v_old := PopVariable(store_name);
     if v_old<>v_new then
      begin
       SetVariable('PLACE', store_name);
       if v_new then
        SetVariable('ALARM', '1')
       else
        SetVariable('ALARM', '2')
      end;
    end;
   PushVariable(store_name, v_new);
  end;
end.

Генерация событий

Генерация событий

Настройка обработчиков событий

Откройте настройки модуля "Events notification". В появившемся окне кликните на кнопке "Добавить обработчик" и укажите идентификатор события и его описание. Вы должны добавить два обработчика для двух событий: ALARM1 и ALARM2.

Добавление обработчика

Добавленные обработчики появятся в списке слева. Выберите добавленный обработчик в дереве и настройте действия, которые будут выполняться при возникновении события. Вы можете настроить индивидуальные параметры для каждого обработчика.

Настройка обработчиков событий

Готовую для использования конфигурацию вы можете скачать по этой ссылке и загрузить в программу, используя меню "Файл" в главном окне программы.