Показано с 1 по 10 из 160

Тема: CODESYS V3.5. Онлайн-FAQ

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,627

    По умолчанию VISU#13. Как переключить экран визуализации при входе пользователя в систему?

    Вопрос: в проекте есть несколько пользователей web-визуализации.
    Требуется при авторизации конкретного пользователя переключить экран визуализации (только для данного пользователя).
    Как это можно сделать?

    Примечание: приведенный ниже пример подходит для контроллеров, программируемых в CODESYS V3.5 SP11 Patch 5 или выше.

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

    В примере создано два пользователя: User1 с паролем 1 и User2 с паролем 2.

    SwitchVisuForUserFromCode01.png

    На основном экране (Vis1) расположена кнопка Войти в систему. При нажатии на кнопку появляется окно авторизации.
    После авторизации выполняется сбор информации о пользователя (для этого в настройках кнопки в конфигурации ввода на вкладке OnDialogClosed переменной xLogin присваивается TRUE).
    Сбор информации осуществляется в программе ClientPrg.
    Если обнаружен вход пользователя User1, то осуществляется переход на экран Vis2.
    Если обнаружен вход пользователя User2, то осуществляется переход на экран Vis3.

    Код:
    // переключаем экраны в зависимости от имен залогинившихся пользователей
    FOR i:=1 TO iVisuClientCount DO
    		
    	IF astVisuClientData[i].wsCurrentUserName = "User1" AND NOT(axIsLogged[i]) THEN
    		axIsLogged[i] := TRUE;
    		VisuElems.g_VisuManager.SetMainVisu(astVisuClientData[i].pstClientData, 'Vis2');
    	ELSIF astVisuClientData[i].wsCurrentUserName = "User2" AND NOT(axIsLogged[i]) THEN
    		axIsLogged[i] := TRUE;
    		VisuElems.g_VisuManager.SetMainVisu(astVisuClientData[i].pstClientData, 'Vis3');
    	ELSIF astVisuClientData[i].wsCurrentUserName = "" THEN
    		axIsLogged[i] := FALSE;
    	END_IF
    	
    END_FOR
    Если пользователь нажимает кнопку Назад, то выполняются три действия:

    • переключение на экран Vis1
    • "разлогинивание" пользователя
    • обновление информации о пользователях (xLogin := TRUE), чтобы в программе снять флаг логина данного клиента


    Если вы используете CODESYS V3.5 SP17 Patch 3 с плагином визуализации 4.3.0.0 или выше - то см. этот пример и информацию из п. 1.3 данного документа.

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 29.06.2017, 11:21

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •