From OpenSCADAWiki
Jump to: navigation, search

Общий сценарий обработки входящих запросов:

  • Запрос формируется удалённой станцией и через сеть попадает на транспорт OpenSCADA.
  • OpenSCADA транспорт передаёт запрос этому модулю, выбранному в поле протокола, и объекту пользовательского протокола, в виде значений переменной "request" — для последовательности запроса и "sender" — для адреса отправителя запроса.
  • Запускается выполнение процедуры протокола входящего запроса, в процессе которой анализируется содержимое переменной "request" и формируется ответ в переменной "answer". По окончанию выполнения процедуры формируется переменная "rez", которая указывает транспорту на факт получения полного запроса и формирование корректного ответа (false) или необходимость транспорту ожидать остатка данных (true) — удерживать подключение.
  • Если результат обработки равен "false", и ответ ненулевой, то транспорт отправляет ответ, а сама процедура протокола должна удалить обработанную часть запроса "request", поскольку только она может определить целостность посылки и потенциальное наличие за ней начала следующей.
  • Если результат процедуры обработки равен "true" то транспорт продолжает ожидать данные. При получении следующей порции данных они добавляются к переменной "request" и выполнение процедуры повторяется.