Эта функция используется для передачи данных из элемента управления в JavaScript-интерфейс WebView EWO в качестве ответа на функцию toCtrl().
Краткий обзор
msgToJs (сопоставление входных параметров, данных любого типа)
Параметры
Параметр
Значение
Входные параметры
Входные параметры для функции JS
данные
Данные, которые должны быть переданы в функцию
Возвращаемое значение
–
Ошибки
отсутствуют / неверны аргументы
Описание
Эта функция используется для передачи данных из элемента управления в интерфейс JavaScript WebView EWO и должна вызываться из события “MessageReceived” EWO. Функция используется как ответ на функцию toCtrl() JavaScript. Входные параметры события “MessageReceived” должны быть напрямую переданы inputParams функции.
ПРИМЕР
Следующий пример демонстрирует, как использовать функцию msgToJs для возврата значений для запросов “GetAttributes“ или «getShapes”, которые отправляются из JavaScript с использованием функции toCtrl.
Соединяет ресурс MindSphere с его аналогом на сервере MindSphere. Если ресурс подключен в первый раз, он включен.
Краткий обзор
int mcConnectAsset(uint AssetID);
Параметры
Параметр
Описание
Идентификатор актива
Определяет, какой ресурс используется для процесса подключения к серверу MindSphere.
Возвращаемое значение
Функция mcConnectAsset возвращает 0, когда она была успешно выполнена, и -1, если отсутствуют какие-либо аргументы, AssetID не существует или возникла проблема при установлении соединения.
Ошибки
Функция mcDeleteAsset возвращает 0, когда она была успешно выполнена, и -1, когда аргументы отсутствуют. Ошибки API MindSphere отображаются в программе просмотра журналов.
Описание
Соединяет ресурс MindSphere с его аналогом на сервере MindSphere. Если ресурс подключен в первый раз, он включен. При использовании этой функции с уже подключенным ресурсом MindSphere соединение устанавливается заново.
Отсутствие идентификатора конфигурации означает, что присвоенная переменная не содержит значения, а пустой идентификатор конфигурации указывает на то, что идентификатору конфигурации была присвоена пустая строка.
ПРИМЕР
#uses «CtrlMindConnect» #uses «classes/mindSphere/MindSphereAsset» void main() { string dp = «NameOfMindSphereAsset»; /* This MindSphere Asset must already exist in «КАСКАД Цифра», see MindSphere Configuration */ uint assetId; int err = mcNewAsset(getMappingFromAssetDP(dp), assetId); if(err == 0) { err = mcConnectAsset(assetId); DebugTN(err); } }
Преобразует путь к файлу в формат, подходящий под операционную систему.
Синопсис
string makeNativePath(string path);
Ппраметры
Параметр
Описание
path
Путь, который преобразуется в строковую константу. Можно также использовать предопределенные строковые константы.
Возвращаемое значение
Преобразованный путь.
Ошибки
Отсутствующие или неверные аргументы.
Описание
Преобразует путь к файлу в формат, специфичный для операционной системы (это означает, что при необходимости косые черты / в пути к файлу заменяются обратными косыми чертами .). Функция полезна при передаче путей к файлам во внешние модули, которые не были разработаны платформо-нейтрально. Функция не проверяет правильность пути. Обратите внимание на соглашение об именовании для спецификаций путей (см. главы «Пути к файлам и директориям» и «Соглашение об именовании/Нотация»).
ПРИМЕР
main() { string sTestPath = PROJ_PATH + «data»; /* Указание пути к проекту и директории данных */ bool bIsPath = isProjPath(sTestPath);
DebugN(«Is this the proj Path», sTestPath, bIsPath);//e.g. D:/KASKAD_Projects/KASKAD_Project/data
sTestPath = KASKAD_PATH + «data»; //Путь установки + каталог данных bool bIsPath = isProjPath(sTestPath); //Передается путь установки + каталог данных DebugN(«Is this the proj path», sTestPath, bIsPath);
/* Проверяет, является ли путь, указанный функцией tmpnam(), путем к проекту */
Внутренний файловый дескриптор открытого TCP/IP-соединения для обращения к WebSocket.
Возвращаемое значение
–
Ошибки
Неправильные или отсутствующие аргументы.
Описание
В протоколе WebSocket клиент (браузер) устанавливает соединение с сервером. Сервер может отправлять данные в браузер без запроса от браузера. В равной степени браузер может отправлять данные на сервер. Это обеспечивает существенное преимущество: сервер отправляет обновления и уведомления клиенту, не дожидаясь запроса клиента. Кроме того, веб-узлы не содержат данных заголовка, подобных HTTP, и для связи требуется меньшая пропускная способность. TCP-соединение остается активным после передачи данных, и двунаправленная передача данных все еще возможна.
httpReadWebSocket() — ожидающая функция CTRL (например, dpGet). Функция ожидает сообщения WebSocket от клиента. Внутренне HTTP-сервер получает сообщения от клиента и сохраняет их в очереди. Функция httpReadWebSocket() асинхронно считывает сообщения из очереди. Пока очередь содержит сообщения, функция возвращает 0.
Если сокет закрыт клиентом, функция возвращает 1. Таким образом, функция обратного вызова может быть закрыта, поскольку сокет был закрыт и сообщения больше не возвращаются.
Пока должно быть установлено соединение, должен выполняться поток. Если клиент закрывает соединение, функция httpReadWebSocket возвращает 1 при следующем вызове.
Если сервер должен закрыть соединение, используйте функцию httpCloseWebSocket() или закройте поток с помощью функции обратного вызова (с возвратом).
ПРИМЕР
Следующий пример активирует HTTP-сервер, регистрирует функцию “websocket” в качестве веб-ресурса и считывает и записывает сообщения WebSocket с помощью функций httpWriteWebSocket и httpReadWebSocket.
#использует “CtrlHTTP”void main(){ HTTPServer(false,8080); /* Активирует HTTP-сервер, аутентификация не используется, используется порт 8080*/ httpConnect(“websocket”,”/websocket”,”_websocket_”); /* Функция регистрирует функцию “websocket” как веб-ресурс */} dyn_mixed writeData; аннулирует websocket(сопоставление карты) /*Определение функции*/{ DebugN(“Обратный вызов WebSocket”, карта); смешанный any; while ( httpReadWebSocket(map[“idx”], any) == 0 ) { DebugN(“сообщение получено”, any); /* Считывает и выводит сообщения */ DebugN(“отправлено сообщение обратно”, httpWriteWebSocket(map[“idx”], any)); /* Отправляет сообщения обратно */ any = “”; } DebugN(“Веб-сокет закрыт”);} }
int uniFPrintf(файл, формат строки, [,<type1> var1 [,<type2> var2…]]);
Параметры
Параметры
Описание
файл
Файл для записи. Используйте константы stdin, stdout, stderr
формат
формат вывода
var1, var2, …
аргументы
Возвращаемое значение
В случае ошибок функция возвращает -1 или EOF, в противном случае, количество записанных символов
Ошибки
Если используются неправильные типы данных или файл не открыт.
Описание
Записывает выходные данные в файл quot;file quot; в указанном формате. Форматная строка format содержит два типа элементов. Обычные символы, которые копируются в спецификации вывода и (необязательно) преобразования, которые определяют преобразование и вывод следующих (необязательно) аргументов var1, var2 и так далее uniFPrintf(). Функция uniFPrintf() возвращает количество записанных символов или, в случае ошибки, отрицательное число. Каждая спецификация преобразования начинается с символа % и заканчивается символом преобразования. Между ними могут быть установлены следующие флаги:
Флаги
Нет или несколько флагов в любом порядке.
–
Преобразованный аргумент выравнивается по левому краю. Если знак минуса не указан, выравнивание будет выровнено по правому краю.
Космос
Аналогично флагу + (выводится со знаком «плюс», если значение подписано). Вместо знака «плюс» выводится пробел. Если флаги пробел и + указаны вместе, флаг + имеет более высокий приоритет.
#
Вывод осуществляется в альтернативном формате. Подробное описание отдельных символов преобразования приведено в следующем разделе.
ширина: указание точности необязательно. Точное значение зависит от типа выполняемого преобразования.
prec: Указание точности необязательно. Точность указывает количество цифр, которые выводятся после запятой. Точность вводится после запятой. Если десятичная точка используется без указания точности, места после десятичной точки выводиться не будут. Указание точности применимо только к преобразованиям e, E, f,g и G.
ormatf: буква, определяющая тип преобразования.
Описание
Значение ширины
Значение флага #
d
Аргумент представлен в виде десятичного числа
Минимальное количество представленных символов. В противном случае заполняется пробелами.Значение по умолчанию равно 1.При выводе нулевого числа с нулевой шириной не получается ни одного символа!
Не определено.
o
Аргумент представлен в виде восьмеричного числа без начальных нулей.
см . d
Ставит 0 перед результатом, большим нуля.
u
Аргумент отображается в виде десятичного числа без знака.
см . d
Не определено.
x
Аргумент представлен в виде шестнадцатеричного числа (без начального 0x). Используются буквы abcdef.
см . d
Ставит 0 перед результатом, большим нуля.
X
Похоже на x. Но используются буквы ABCDEF.
см . d
Ставит 0 перед результатом, большим нуля.
f
Аргумент float/double представлен в виде десятичного числа.[ – ] ddd.ddd используется по умолчанию:
Минимальное количество представляемых символов.Может быть увеличено для требуемой точности путем указания десятичной точки и мест после десятичной точки.Когда выводится десятичная точка, по крайней мере, один символ выводится перед десятичной точкой.
Вывод десятичной точки, даже если после десятичной точки не следует пробелов.
e
Аргумент float/double представлен в виде числа экспоненты в формате [ – ] d.ddde ddвыражающий показатель всегда содержит по крайней мере два места. Если значение равно нулю, то показатель степени равен нулю.
см .
см .
E
Аналогично e. Вместо e используется E.
см .
см .
g
Аналогично для e, но зависит от значения. Тип преобразования e используется только тогда, когда показатель степени меньше -4 или превышает точность.
см . f
см . f
G
Аналогично. Вместо e выводится буква E.
см . f
см . f
s
Аргумент представляет собой строку. Отдельные символы выводятся из строки до тех пор, пока не будет достигнут либо нулевой символ (“/0”), либо столько символов, сколько требуется для точности.
Минимальное количество представленных символов.
Не определено.
ПРИМЕР
В следующем примере во временный файл записывается шесть символов.
Концепция архивирования данных процесса содержит сохранение и считывание информации, которая возникает во время управления процессом, или визуализацию. Это включает в себя значения и сообщения, генерируемые изменениями значения. В архивировании данных объясняется управление создаваемыми в результате файлами данных (резервное копирование, обмен и удаление файлов) на уровне администрирования системы.
Архивирование РБД с помощью специального менеджера архива РБД позволяет создавать архивы значений и алармов в резервной базе данных (РБД) . Эти данные могут считываться либо из «КАСКАД Цифра», либо с помощью внешних утилит, которые позволяют делать запросы базы данных Oracle.
Сжатие данных РБД означает, что база данных Oracle может самостоятельно вычислять архивы, при условии, что для архивирования используется резервная база данных (РБД).
Средство просмотра журналов РБД отображает информацию из таблиц журналов РБД с сортировкой по времени. Отображаемая информация и сообщения об ошибках записываются в журналы при выполнении операций РБД (архивирование РБД, сжатие данных РБД).
OLE DB это спецификация Microsoft для доступа к данным на разных компьютерах. Эта спецификация основана на технологии Microsoft COM и заменяет предшествующую технологию ODBC с ограниченными функциями. В то время как ODBC для доступа к данным использует статические API и ограничивается языком SQL, OLE DB использует ADO в качестве простого и быстрого средства прикладного программирования.
Данные, которые поступают во время работы «КАСКАД Цифра» сохраняются в базе данных, или, точнее, в файлах базы данных. В связи с ограниченным объемом памяти носителя данных для хранения информации и необходимостью поддержания целостности данных, желательно периодически экспортировать эти файлы на другой носитель данных, например внешний жесткий диск или кассету DAT.
Во время работы системы можно сделать резервную копию всех данных конфигурации, текущей базы данных алармов и истории значений (за ограниченный промежуток времени).
Сжатие используется для уменьшения большого объема исторических данных. Например, спустя некоторое время может быть интересна только информация о средних значениях по дням или по неделям. В этом случае, средние значения сначала архивируются по часам, затем из них вычисляются средние значения по неделям или месяцам, которые так же архивируются. Это дает возможность получить общую картину изменения данных.
С помощью групп легче управлять и редактировать связанные точки данных. Можно определить группы точек данных любым образом. Пользователь так же может создать группы внутри групп.
Начиная с версии 3.17, в «КАСКАД Цифра» появился Архиватор нового поколения (NextGen Archiver, NGA). Это новое решение, которое добавляет гибкости, сохраняя при этом возможности и сильные стороны существующих методов.
Панель администрирования пользователей КАСКАД Цифра позволяет выбрать управление пользователями с аутентификацией в операционной системе (ОС). Это означает, что группы пользователей импортируются из подсистемы аутентификации уровня ОС (Windows или Linux)
Администрирование пользователей с аутентификацией в ОС не зависит от платформы и позволяет централизованно управлять всеми пользователями и правами пользователей. С помощью администрирования пользователей аутентификации ОС. вы можете, например, запрашивать в Linux пользователей из Windows Active Directory (AD).
Активация администрирования пользователей на базе ОС для системы Windows или Linux часто используется для того, чтобы избежать проблем, вызванных слабым паролем. В системе Windows эта функция требует наличия работающей AD, а в системах Linux — конфигурирования SAMBA4.
Система AD позволяет использовать обязательные требования к надежности пароля, которые можно настроить с помощью редактора групповой политики. С помощью принудительных настроек вы можете обеспечить хороший и надежный пароль для пользователей. Это защищает проект от использования слабых паролей.
Помимо надежного пароля, механизм аутентификации пользователей на базе ОС позволяет синхронизировать пользователей и группы внутри домена. Это облегчает инициирование входа в проект КАСКАД Цифры, запущенный на хосте в том же домене.
ПРИМЕЧАНИЕ
Мультидоменные среды не поддерживаются «КАСКАД Цифра».
ПРИМЕЧАНИЕ
Если используется аутентификация ОС Auth, политика паролей Active Directory и политика паролей «КАСКАД Цифра» могут расходиться (это может произойти и позже во время работы).
В этом случае политика паролей «КАСКАД Цифра» должна быть деактивирована или установлена на менее строгую или равную политике Active Directory.
В идеале, вы должны отключить политику паролей «КАСКАД Цифра» или установить, как описано выше, уже при настройке аутентификации ОС. В противном случае это может привести к проблеме, когда пользователь не сможет войти в систему из-за различий в политиках.
Права групп для принятых групп должны быть определены в «КАСКАД Цифра». Более подробную информацию см. в главе «Группы». Управление пользователями аутентификации ОС. может использоваться так же, как и управление «КАСКАД Цифра», за исключением того, что пользователи или группы не могут быть добавлены или удалены.
Когда пользователь входит в систему, система проверяет, существует ли он в системе.
Если пользователь существует в «КАСКАД Цифра», но не в домене (исключение — пользователь root), пользователь удаляется из «КАСКАД Цифра».
ПРИМЕЧАНИЕ
При переходе к администрированию пользователей аутентификации ОС удаляются и аварийные пользователи.
Для аутентификации пользователей используются только серверы домена Windows; локальные пользователи и рабочие группы не поддерживаются.
Когда пользователь входит в «КАСКАД Цифра» и не все группы пользователя существуют в «КАСКАД Цифра», недостающие группы Windows/Linux пользователя создаются автоматически.
В Linux для аутентификации используются подключаемые методы аутентификации PAM. PAM поддерживает вход настроенных пользователей из домена Active Directory. PAM предоставляет независимый метод аутентификации, такой как LDAP, Winbind. О том, как настроить библиотечную модель PAM, читайте в главе Администрирование пользователей Linux.
ПРИМЕЧАНИЕ
Локальные пользователи не допускаются при использовании аутентификации операционной системы.
ВНИМАНИЕ
Чтобы активировать OS-Auth при использовании SSA, выполните следующие действия:
Закомментируйте #accessControlPlugin = «AccessControlPlugin» в конфигурационном файле проекта.
Перезапустите проект и войдите в систему с правами root.
Откройте панель управления пользователями и переключитесь на OS-Auth.
Теперь вы можете произвести проектирование или сначала активировать плагин, а затем произвести проектирование.
Как выбрать администрирование пользователей аутентификации ОС, использовать аутентификации ОС группы пользователей и авторизоваться в «КАСКАД Цифра», описано в следующих главах.
Аппаратные ключи используются для предотвращения незаконного использования программного обеспечения. Для запуска защищенного программного обеспечения ключ должен быть подключен к системе. В большинстве случаев это делается путем подключения аппаратного ключа к локальному USB-порту рабочей станции. Если программное обеспечение используется в нескольких системах или несколькими пользователями, то необходимо несколько ключей или переноса одного ключа.
Если используется несколько аппаратных ключей, может быть трудно определить, кто использует какой ключ и есть ли свободные ключи. Для облегчения управления этими ключами можно использовать сервер SEH Dongle server.
UTN-сервер виртуально распределяет подключенные ключи и позволяет управлять до 8 USB-ключей внутри системы «КАСКАД Цифра». Распространение может быть выполнено вручную или автоматически с помощью прилагаемого программного инструмента UTN-менеджер. UTN-менеджер позволяет настроить распределение, ограничения и безопасность ключей и USB-портов. UTN-менеджер также предоставляет обзор используемых в настоящее время и доступных ключей. Преимуществом UTN-сервера является простое виртуальное распределение ключей между пользователями по сети или интернету. Это упрощает работу с ключами в виртуализированной системе, когда USB-порт не всегда доступен или когда виртуальная машина запускается на другой физической машине.
Совместимость версий SEH и ОС
Для установки требуется подключение к интернету для загрузки необходимых программных компонентов. Требуются административные привилегии.
Операционные системы
UTN-менеджер для настройки и обзора доступен для Windows и Linux.
Обратите внимание, что Linux поддерживается только с прошивкой версии 14.1.9 или выше и программным обеспечением UTN-менеджера версии 3.0.8 или выше. Пожалуйста, обратитесь к соответствующему паспорту продукта для получения подробного списка поддерживаемых операционных систем.
Номера портов для связи по умолчанию: 9200 и 9443 (SSL-шифрование). Оба могут быть изменены через интерфейс UTN-менеджера.
Подсоедините ключи, предоставляемые Сибком, к USB-портам сервера ключей.
Подключите сервер ключей к источнику питания и сети.
Установка
Следуйте инструкциям по установке UTN-менеджера. После успешной установки UTN-менеджер запускает настройку SEH Dongle Server. Распределение доступа к USB-ключам управляется UTN-менеджером. Для сетевого доступа к серверу ключей на клиенте требуется установка UTN-менеджера (см. также описание установки клиента)
Есть две версии UTN-менеджера:
Однопользовательская версия (UTN-менеджер)
Многопользовательская версия (UTN-менеджер + служба UTN)
Для автоматического распространения ключей требуется многопользовательская версия, позволяющая настроить службу UTN. Службу можно настроить так, чтобы она была доступна при запуске системы.
Настройка
Первая настройки
Для выполнения начальной конфигурации клиент, которому требуется ключ, и сервер UTN должны находиться в одном сегменте локальной сети.
Сервер UTN попытается получить IP-адрес, как только подключится к сети. Если IP-адрес не получен, сервер UTN использует предопределенный IP-адрес зарезервированного диапазона адресов, настроенного внутри ZeroConf (169.254.0.0/16).
Статические IP-адреса должны использоваться для предотвращения нового назначения ключей после каждой перезагрузки рабочей станции. Опция “Configure” (см. рисунок) открывает центр управления UTN. Настройка производится с помощью веб-интерфейса (см. рисунок ниже).
Необходимо выполнить следующие сетевые настройки (см. рис. выше):
Деактивация DHCP
Вы можете задать свою сетевую конфигурацию в полях для опции “Manually”
Нажмите кнопку „Save & Restart“, чтобы сохранить конфигурацию
Установка клиента
Следующие шаги должны быть выполнены на каждом клиенте, который будет использовать ключи, подключенные к серверу UTN. Нажмите кнопку “Refresh” внутри UTN-менеджера, чтобы проверить наличие подключенных USB-устройств.
Опция “Edit” позволяет редактировать список выбора. Устройство можно добавить в список выбора, выбрав соответствующую запись и нажав кнопку “Add”.
Теперь устройство может быть активировано для использования клиентом. Выберите устройство внутри UTN-менеджера, откройте пункт меню “Devices” и нажмите кнопку “Activate”.
Для автоматического запуска UTN-менеджера установите флажок “Autostart” на вкладке «Automatism» в разделе «Program / Options». Автоматическое подключение устройств должно быть включено, чтобы ключ мог быть автоматически активирован с помощью службы UTN. Этот параметр можно найти в UTN-менеджере в разделе «Device / Settings».
По умолчанию серверная часть NGA PostgreSQL настроена с помощью db.sslMode "prefer". В этом режиме соединение шифруется, если сервер настроен на обеспечение шифрования.
Чтобы гарантировать, что соединение зашифровано, установите значение "db.sslMode" на "require". Смотрите также документацию PostgreSQL.
Каждый конфигурационный элемент обладает уникальными свойствами. Эти свойства можно создавать, редактирвоать и удалять с помощью сценариев. Чтобы определить, содержит ли какой-либо элемент точки данных необходимый конфигурационный элемент, сравните значение свойства «_type» с константой «DPCONFIG_NONE». Более подробная информация представлена в разделах, посвященных следующим функциям: dpSet(), dpGet(), dpConnect(), alertConnect().
ВНИМАНИЕ
При настройке конфигурационного элемента точки данных необходимо принимать во внимание, что попытка настроить уже существующий конфигурационный элемент точки данных приведет к его удалению, при этом новый конфигурационный элемент создан не будет! Эта особенность обусловлена системой сложных взаимосвязей между конфигурационными элементами точек данных и должна приниматься во внимание при внесении изменений.
Все конфигурационные элементы
Константа CTRL
Описание
DPCONFIG_NONE
конфигурационный элемент не задан
Эти характеристики присваиваются конфигурационному элементу при его добавлении к элементу точки данных. Является ли он преобразованием исходного значения или обработкой аларма, зависит от конкретного конфигурационного элемента. В «КАСКАД Цифра» существуют следующие конфигурационные элементы (см. также раздел «Настройка конфигурационных элементов»):
Начиная с версии 3.5 поддерживаются только нейтральные описания конфигурационных элементов, такие как _original.._value. original.._wert не поддерживается!
ПРИМЕР
main() { int type; dpGet(DPE + «:_alert_hdl.._type», type); if(type != DPCONFIG_NONE) // свойства аларма существуют { dpSetTimed(0, DPE + «:_alert_hdl.._active», state); //устанавливается состояние без журналирования изменения } }