PDA

Просмотр полной версии : Разграничение доступа



lazy
16.03.2020, 14:09
Добрый день!

В проекте есть несколько групп пользователей. К СПК можно подключиться по RS485 или TCP IP (регистры там, все дела). Как можно добраться до пользователей/паролей проекта, чтобы сделать разграничение доступа для RS485 или TCP IP? Может, библиотека какая есть или спец. адреса где это все хранится?

Евгений Кислов
16.03.2020, 14:32
Добрый день.


чтобы сделать разграничение доступа для RS485 или TCP IP

Опишите, пожалуйста, подробно, что именно вы подразумеваете под "разграничением доступа".

lazy
16.03.2020, 14:43
Ну в проекте, например, нельзя изменять значения в каких либо окнах в зависимости от полномочий. Оператор может менять задание, технолог какие то настройки итд. Тоже самое хочу сделать для RS и Ethernet. Есть регистр доступа и в зависимости от того, что туда пишет клиент ему доступны какие то регистры для записи, команды итд. Мне нужно как то добраться до паролей чтобы сравнивать их с этим самым "регистром доступа".

Евгений Кислов
16.03.2020, 14:59
Ну в проекте, например, нельзя изменять значения в каких либо окнах в зависимости от полномочий. Оператор может менять задание, технолог какие то настройки итд. Тоже самое хочу сделать для RS и Ethernet. Есть регистр доступа и в зависимости от того, что туда пишет клиент ему доступны какие то регистры для записи, команды итд. Мне нужно как то добраться до паролей чтобы сравнивать их с этим самым "регистром доступа".

Так не получится - пароли из "Управления пользователями визуализации" в явном виде недоступны.
Вы можете придумать отдельные пароли для RS/TCP и обрабатывать их в коде. Потребуется использовать библиотеку OwenCommunication - она позволяет ограничить доступ к регистрам слэйва.
Следует отметить, что по TCP несколько клиентов могут работать с ПЛК одновременно - если такая ситуация возможна, то лучше, вероятно, просто поднять несколько слэйвов с разным набором регистров на разных портах - таким образом, конкретный клиент будет работать по "своему" (известному ему) порту с конкретным слэйвом.

lazy
16.03.2020, 15:13
Да я сам обмен реализую. Жаль, что доступа нет. Хорошо, в явном виде не доступны. А есть возможность куда-нибудь скармливать данные и получать обратно ID группы или еще что то полезное?

Евгений Кислов
16.03.2020, 16:47
куда-нибудь скармливать данные

Можно получить информацию о залогинившемся пользователе:
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/03_Additional/Example_ClientManager_3511v1.projectarchive

lazy
17.03.2020, 09:04
Разобрался )

Нужно объявить экземпляр ФБ VisuUserManagement.VisuUserMgmt и юзать его метод CheckLogin который возвращает ERR_OK в случае правильного пароля либо ERR_VUM_WRONG_PASSWORD.

Единственное... Как можно ограничить клиента при смене паролей пользоваться только вводом цифр? Это не критично но было бы полезно.

Евгений Кислов
17.03.2020, 09:13
Разобрался )

Нужно объявить экземпляр ФБ VisuUserManagement.VisuUserMgmt и юзать его метод CheckLogin который возвращает ERR_OK в случае правильного пароля либо ERR_VUM_WRONG_PASSWORD.

Единственное... Как можно ограничить клиента при смене паролей пользоваться только вводом цифр? Это не критично но было бы полезно.

Диалоги управления пользователями доступны для редактирования - можно заменить в них клавиатуру на Numpad.
/Codesys/Projects/Visu/Dialogs/VisuUserMgmtDialogs.library

Информация по установке отредактированной библиотеки здесь:
https://owen.ru/forum/showthread.php?t=28167&page=5&p=300498&viewfull=1#post300498