Авторизация
Поиск
|
BACnet web-сервисы: знать и уметьBACnet web-сервисы: знать и уметьСкорее всего, вы уже слышали о новом дополнении к стандарту BACnet web-сервисы, но подозреваю, что большинство все-таки не догадываются о том, что такое web-сервисы и для чего они предназначены. Если же кому-то интересно больше узнать об их использовании в BACnet, эта статья для вас.
Установка web-сервисов Первое, что необходимо сделать – установить web-сервисы. Если, конечно, их у вас еще нет. Скачайте демонстрационную версию web-сервиса от компании SCADA Engine http://www.scadaengine.com/downloads.html Следуйте инструкциям по ее установке, и увидите отображение web-сервиса, как показано на рис. 1. Если на компьютере уже установлен web-сервис, данные инструкции подходят для любого BACnet web-сервиса от любого разработчика.
BACnet web-сервис использует применение путей для ссылки на значения. Имена путей немного похожи на имена файлов в компьютере. Разные компьютеры имеют разные файлы и разные имена файлов. То же самое справедливо и для BACnet web-сервиса – имена путей зависят от конкретной системы.
В web-сервисе от SCADA Engine путь строится от BACnet-адреса:
Таким образом, путь к AV 0 (см. рис. 1) будет /2/11/2/0 и значение его будет равно 72. Чтобы сделать имя более удобное для прохождения пути, можно создать «ссылочный» путь (Reference path). Но давайте оставим этот вариант для следующей публикации.
Чтение данных
Для прочтения значений существует сервис, получивший название getValue, использующий путь как вход и возвращающий значение по этому пути. Если хотите узнать значение переменной AV 0, это будет выглядеть так: getValue("", "/2/11/2/0") Создание приложения Visual BasicТеперь у вас есть общее представление о BACnet web-сервисе и вы уже установили web-сервис на свой компьютер. Теперь начнем создавать собственное приложение. Будем считать, что аналоговое значение Analog Value 1 – это температура воздуха в главном холле здания, т.е. именно та информация, которую ваш клиент просит отображать на его web-сайте. Мы видим, что значение параметра равно 72 и его путь /2/11/2/0. Открывайте программу Visual Studio 2005, создайте новый проект (new Windows Application Project), который назовем bacnet. Далее жмем «OK».
Теперь в BACnet-приложении надо добавить we-ссылку. Это очень похоже на добавление ссылки в COM/ActiveX объектах. Но после того как мы добавим ее, то получим доступ к XML web-сервису в BACnet web-сервисе.
Откройте Solution Explorer, кликните правой кнопкой мыши на References и далее Add Web Reference. Можно также выбрать меню Project и нажать Add Web Reference.
В окне добавления ссылки (Add Web Reference) в строке адреса печатаете: C:\Program Files\SCADA Engine\BACnetWS Web Service\bacnet.wsdl.
После того как введен URL и нажата клавиша Enter, BACnet webсервис загружен и ваш экран будет выглядеть как на рис. 3, а кнопка Add Reference будет активизирована. Нажмите ее, чтобы добавить web-ссылку в проект.
В окне Solution Explorer кликните Web Reference, чтобы увидеть ссылку на BACnetWS (web-сервис), который добавили.
Добавьте Textbox в форму и назовите ее TextBox1. Вставьте следующий код в раздел Code View формы.
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim a As BACnetWS.bacnet = New BACnetWS.bacnet() TextBox1.Text = a.getValue("", "/2/11/2/0") End Sub End Class
|