Всё получилось. Убрал всё лишнее, осталось совсем мало:
Основная программа
Код:PROGRAM P160_WindowsTest //Всплывающее окно VAR //Условие запуска xExecute: BOOL := FALSE; //Блок-фильтр клиентов fbClientFilter: VisuClientFilter; //Блок для вызова окна fbOpenFeedbackDialog: VU.FbOpenDialog; END_VARФБ для фильтра по IP:Код://Вызываем окно 'window' только у клиентов, указанных в ФБ fbClientFilter fbOpenFeedbackDialog ( xExecute := xExecute, //Запуск блока itfClientFilter := fbClientFilter, //Блок-фильтр клиентов sDialogName := 'window', //Имя окошка xModal := FALSE, //Можно менять главные мнемосхемы pTopLeftPosition := , //Позиция окна );
Метод ФБ:Код://Блок-фильтр клиентов для вызова всплывающих окон FUNCTION_BLOCK VisuClientFilter IMPLEMENTS VU.IVisualizationClientFilter
Код методаКод://Метод проверки, что у нас нужный клиент METHOD IsAccepted: BOOL VAR_INPUT //Даже не спрашивайте... Типа какой-то клиент визуализации itfClient: VU.IVisualizationClient; END_VAR VAR CONSTANT //IP нашего нужного клиента, т.е., панель Siemens оператора IP: STRING(15) := '192.168.4.231'; END_VAR
Код://Получаем текущий IP и сравниваем его с нашей константой IsAccepted := (itfClient.GetIPv4Address() = IP);




Ответить с цитированием
