Инструменты пользователя

Инструменты сайта


device

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
device [2025/10/14 07:42]
root [Устройство "OPC UA"]
device [2025/10/16 09:48] (текущий)
root [Режим эмуляции устройств и маскирование]
Строка 234: Строка 234:
  
 {{ ::dev19.png?nolink |}} {{ ::dev19.png?nolink |}}
 +
 +<wrap ks>
 +В отличие от более примитивных протоколов, OPC UA позволяет получить список тегов автоматически с сервера, без необходимости вносить их список вручную. Чтобы найти все доступные теги сервера, необходимо нажать кнопку **"Найти теги"**, после чего загрузится список доступных тегов сервера.
 +</wrap>
 +
 +{{ ::dev20.png?nolink |}}
 +
 +<wrap ks>
 +Структура тегов OPC сервера имеет древовидную структуру. В корне дерева обычно существует несколько системных структур, которые отображают информацию о сервере, а так же структуры данных непосредственно устройства. В нашем случае узел **dsTestVar** хранит рабочие данные нашего устройства.
 +</wrap>
 +
 +{{ ::dev21.png?nolink |}}
 +
 +<wrap ks>
 +Развернув и включив необходимые теги, мы сразу же увидим хранимые в них данные. Имя переменной автоматически подтягивается с сервера, но мы со своей стороны можем его отредактировать так, чтобы нам в дальнейшем было удобно с ними работать. Поля значений подсвечены желтым цветом, что сигнализирует о том, что данные так же доступны и для записи, их редактирование возможно как из среды исполнения, так и в окне конфигурации устройства.
 +</wrap>
 +
 +====== Устройство "Память" ======
 +
 +<wrap ks>
 +Устройство **Память**, так же как и Часы, является виртуальным устройством, и не предназначено для обмена данными с внешним миром, но при этом оно является достаточно важным и удобным механизмом взаимодействия различных подсистем DevelSCADA. Его удобство заключается в том, что с ним можно работать теми же средствами DevelSCADA, что и с обычными устройствами, обращаясь к его переменным/регистрам. К примеру делать к ним привязки, обращаться к ним из скриптов GUI или ПЛК, получать к нему доступ из приложений, записывать их изменения в журнал или архив. Так же в устройстве памяти удобно хранить конфигурацию системы, либо глобальные данные, от которых зависит логика работы алгоритмов системы, при этом контролируя их значения в процессе работы системы в окне конфигурации устройства.
 +</wrap>
 +
 +{{ ::dev22.png?nolink |}}
 +
 +<wrap ks>
 +Переменные устройства **Память** могут быть **оперативные** и **постоянные**, что выбирается флагом **Постоянная**. **Оперативные** переменные хранят свое значение только во время работы самой платформы. При перезагрузке системы, значения переменных из оперативных переменных пропадают. Такие переменные обычно используются для хранения внутреннего состояния системы только в процессе работы. В свою очередь **постоянные** переменные сохраняют свои значения в энергонезависимой памяти платформы, и восстанавливают свои значения после перезагрузки платформы. Такие переменные удобно использовать для хранения конфигурации системы.
 +</wrap>
 +
 +<wrap ks>
 +Так же устройство **Память** можно использовать для эмуляции какого-то реального устройства в целях эксперимента, однако если в дальнейшем потребуется его заменить на реальное устройство, то придется переносить все привязки в системе на новое устройство, что неудобно, поэтому в таких случаях рекомендуется использовать режим эмуляции реального устройства.
 +</wrap>
 +
 +====== Режим эмуляции устройств и маскирование ======
 +
 +<wrap ks>
 +В процессе наладки не редко возникает необходимость создать специфичную ситуацию на устройстве, чтобы проверить отработку алгоритмов SCADA системы. Однако это не всегда возможно сделать (к примеру когда оборудование в работе, и его останов недопустим). В таком случае можно воспользоваться режимами эмуляции устройств или маскирования переменных.
 +</wrap>
 +
 +<wrap ks>
 +Эмуляции включается через переключатель режимов работы устройства.
 +</wrap>
 +
 +{{ ::dev23.png?nolink |}}
 +
 +<wrap ks>
 +В этом режиме SCADA отключается от реального устройства, и все значения его регистров становятся доступным для редактирования из конфигуратора (даже те, которые в реальном устройстве только для чтения).
 +</wrap>
 +
 +<wrap ks>
 +Для проверки режимов создадим подключение по Modbus к тестовому серверу, а на экране разместим текстовое поле с привязкой к переменной устройства. Запустим проект, убедившись что все корректно работает.
 +</wrap>
 +
 +{{ ::dev24.png?nolink |}}
 +
 +<wrap ks>
 +В данном случае, на экране среды исполнения мы видим реальное значение регистра устройства.
 +</wrap>
 +
 +<wrap ks>
 +Теперь переведем устройство в режим **"Эмуляция"**. Теперь мы можем выставлять любое значение вместо реального в регистр устройства, оно не повлияет на состояние самого устройства, при этом в окне среды исполнения мы увидим не реальное значение, а эмулируемое, выставленное нами вручную.
 +</wrap>
 +
 +{{ ::dev25.png?nolink |}}
 +
 +<wrap ks>
 +Вернув режим работы устройства обратно, в состояние **"Работа"**, мы снова увидим реальные значения с устройства.
 +</wrap>
 +
 +<wrap ks>
 +Если необходимо эмулировать не все регистры устройства, а только выборочные, для этого можно воспользоваться режимом **маскирования**. Данный режим так же не влияет на работу устройства, при этом не происходит отключение от него, перестает опрашиваться только тот регистр, который переведен в этот режим. В остальном данный регистр начинает работать так же как и в режиме эмуляции.
 +</wrap>
 +
 +<wrap ks>
 +Режим маскирования активируется при клике на пиктограмме маски напротив нужного регистра устройства.
 +</wrap>
 +
 +{{ ::dev26.png?nolink |}}
  
device.1760416969.txt.gz · Последнее изменение: 2025/10/14 07:42 — root