Мне нужно контролировать состояние трех PLC контроллеров с MODBUS TCP и формировать сигнал в любой форме, если состояние одной из ячеек памяти (coil input) меняется из 0 в 1, и наоборот.
Поскольку имеется 3 устройства вам нужно создать 3 одинаковых конфигурации, использую кнопку с зеленым плюсом в главном окне программы. Эти конфигурации будут различаться только IP адресом контроллера, и может быть адресом ячейки памяти. Если достаточно одного типа сигнала для всех контроллеров и у всех контроллеров адрес ячейки памяти одинаков, то вы можете создаться только одну конфигурацию и указать 3 IP адреса в ней.
Скорее всего, компьютер должен сам инициировать подключение к устройству. В этом случае вы должны настроить режим TCP клиента в логгере.
Обратите внимание на порядок выбранных модулей фильтрации данных.
Как это работает:
Кликните "Настроить" рядом со списком "Модуль запроса данных" и добавьте новый запрос с помощью меню "Действие –> Добавить запрос". Установите параметры запроса как показано на рисунке ниже. Измените адрес устройства и адрес ячейки памяти.
Выберите модуль "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.
Добавленные обработчики появятся в списке слева. Выберите добавленный обработчик в дереве и настройте действия, которые будут выполняться при возникновении события. Вы можете настроить индивидуальные параметры для каждого обработчика.
Готовую для использования конфигурацию вы можете скачать по этой ссылке и загрузить в программу, используя меню "Файл" в главном окне программы.