Вопрос: мы используем для управления техпроцессом панельный контроллер СПК. Требуется, чтобы элементы управления (кнопки, поля ввода и т. д.) были активны только в таргет-визулизации (с экрана СПК), но неактивны для клиентов web-визуализации. Как это можно реализовать?
Ответ: в параметре Переменные состояний/Отключение ввода для всех нужных элементов введите выражение
Вопрос: но что, если для конкретного web-клиента (с известным IP-адресом) требуется разрешить управление?Код:VisuElems.CurrentClientType = VisuElems.Visu_ClientType.WebVisualization
Ответ: создайте в проекте функцию:
Привяжите вызов это функции к параметру Переменные состояний/Отключение ввода всех нужных элементов:Код:FUNCTION DisableVisuElement : BOOL VAR pClientData: POINTER TO VisuElems.VisuStructClientData; fbHelper: VisuElems.VisuFbClientTagDataHelper; sCurrentClientIp: STRING; i: DINT; END_VAR VAR CONSTANT // Массив IP-адресов клиентов, которым разрешено управление // Отредактируйте его под свою задачу c_asAllowIp: ARRAY [1..2] OF STRING := ['212.16.18.23', '212.16.18.24']; END_VAR // Код функции pClientData := VisuElems.CurrentVisuClient; IF pClientData <> 0 THEN fbHelper(pClientData := pClientData, stIPv4 => sCurrentClientIp); FOR i := 1 TO UPPER_BOUND(c_asAllowIp, 1) DO IF sCurrentClientIp = c_asAllowIp[i] THEN DisableVisuElement := FALSE; RETURN; ELSE DisableVisuElement := TRUE; END_IF END_FOR END_IF
28-07-2025 13-28-41.png




