Пример работы
Создание окружения
Для выполнения произвольных скриптов откройте PowerShell в ОС Windows с правами администратора и выполните команду:
Службы ОС предупредят об изменении политики выполнения. Для подтверждения изменений нажмите Y и Enter.

Внимание
После выполнения данной команды в терминале не должно быть ошибок.
Далее создайте каталог для скриптов на языке Python. В данном примере каталог располагается в корне диска C:.

Откройте редактор исходного кода (в данном примере используется VS Code) и добавьте созданный каталог со скриптами в рабочую область редактора.

В меню управления терминалом редактора выберите пункт "New Terminal".
Примечание
Нет строгой необходимости использовать оболочку PowerShell в среде VS Code. Все операции также можно выполнять через классическое окно оболочки в ОС Windows.

Затем убедитесь, что в качестве оболочки используется именно PowerShell.

Если все выполнено правильно, то в начале строки приглашения должен быть указан префикс "PS". В окне терминала перейдите в созданный каталог для скриптов "python_scripts".

Выполните 3 команды:
Внимание
При каждом обращении к API необходимо активировать окружение. При работе из окружения в начале пригласительной строки должен быть указан префикс (.venv).

Запуск скрипта
Пример:
С помощью скрипта на языке Python необходимо получить значение Тег_1 с сервера, инкрементировать его и записать результат в Тег_2.
Для этого создайте новый проект, выберите лицензию "Standard" или "Enterprise" и добавьте 2 виртуальных тега в список активных:
- Тег_1 с значением по умолчанию, например, 12.
- Тег_2 с настройками по умолчанию.
Активируйте фреймворк gRPC в среде разработки и скопируйте "Токен доступа" в буфер обмена.

В каталоге со скриптами создайте файл main.py и скопируйте код из листинга ниже. В коде укажите IP-адрес или hostname сервера "Симплайт 5", порт и токен, который был скопирован на предыдущем шаге.
- hostname:
127.0.0.1 - port:
23505 - token: скопированный токен из настроек gRPC
import asyncio
from sl5api import Client, Config
cfg = Config("<hostname>:<port>", "<token>")
async def main():
c = Client(cfg)
# здесь вызываются методы, доступные в объекте переменной c
tag_value = await c.read_value("Тег_1") # tag_value получает значение Тег_1
await c.write_value("Тег_2", tag_value + 1, 0xC0) # запись рассчитанного значения в Тег_2 c хорошим качеством 0xC0
if __name__ == "__main__":
asyncio.run(main())
После развертывания проекта, в тесте тегов у Тег_2 значение будет с плохим качеством. Чтобы тег получил значение, выполните скрипт.

Команда для запуска скрипта:
После запуска Тег_2 получит инкрементированное значение с хорошим качеством.
