Перейти к содержанию

Пример работы

Создание окружения

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

Set-ExecutionPolicy RemoteSigned

Службы ОС предупредят об изменении политики выполнения. Для подтверждения изменений нажмите Y и Enter.

Внимание

После выполнения данной команды в терминале не должно быть ошибок.

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

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

В меню управления терминалом редактора выберите пункт "New Terminal".

Примечание

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

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

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

Выполните 3 команды:

python -m venv .venv           # чтобы создать виртуальное окружение в текущем каталоге
.\.venv\Scripts\Activate.ps1   # для активации созданного виртуального окружения
pip install sl5api             # для установки библиотеки работы с API

Внимание

При каждом обращении к 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 значение будет с плохим качеством. Чтобы тег получил значение, выполните скрипт.

Команда для запуска скрипта:

python main.py

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