| Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
device [2025/10/14 07:42] root [Устройство "OPC UA"] |
device [2025/10/16 09:48] (текущий) root [Режим эмуляции устройств и маскирование] |
| |
| {{ ::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 |}} |
| |