УкраїнськаEnglishmRussian
Вхід/Новий

Серія вдосконалень підсистеми транспортів у вихідних підключеннях

25.10.2020 13:00 Давність: 4 yrs
Категорії: НовинаРозробка

Автор: Роман Савоченко


Транспорти

Вдосконалення загалом призначені для спеціалізації підключень до відповідних протоколів та підвищення надійності і продуктивності.

Загальна працемісткість: 0.5 ЛД

Спонсорування, на 0.3 ЛД: ТОВ "СВІТоВИР АВТоМАТИК"

Спонсорування, на 0.1 ЛД: Вінницька Птахофабрика

Спонсорування, на 0.1 ЛД: Еліор Турабоєв, ТОВ BLUE STAR GROUP

Підсистема "Транспорти" включає підтримку вхідних та вихідних транспортів. Вхідні транспорти призначено для обслуговування зовнішніх запитів та відправки відповідей. Вихідні транспорти навпаки, призначено для надсилання повідомлень та очікування відповідей. Відтак, вхідні транспорти містить конфігурацію локальної станції, як серверу прослуховування запитів, а вихідні транспорти містить конфігурацію віддаленого серверу, для підключення. Така спеціалізація характерна для типового механізму "запит-відповідь", однак наразі вхідні та вихідні транспорти підтримують незалежну передачу та прийом даних. Модулі підсистеми "Транспорти" реалізують підтримку як вхідних, так і вихідних транспортів

Вдосконалення Opens external link in new windowвихідних транспортів первинно включає підвищення надійності, після спостереження отримання відповідей попередніх запитів та їх помилкове опрацювання, для мережевих транспортів (Opens external link in new windowСокети та Opens external link in new windowSSL):

  • встановлення типової кількості спроб у 1 з 2;
  • від'єднання за помилкою вичерпання часу на будь якій спробі, окрім ініціативних зовнішніх підключень;
  • збільшення типових таймаутів до "30:2" для забезпечення максимальної затримки Opens external link in new windowінтерфейсу контролю OpenSCADA у обробці тривалих запитів в 30 секунд;
  • розширення протоколів Opens external link in new windowModBus та Opens external link in new windowВласного Протоколу OpenSCADA на предмет деякої перевірки відповідності відповіді до запиту.

Наступним вдосконаленням була спеціалізація типових таймаутів та визначення мережевих транспортів, оскільки загальні таймаути "30:2" є завеликими для протоколів що виключають тривалий час опрацювання, на кшталт Opens external link in new windowModBus/TCP, та особливо Opens external link in new windowModBus/RTU через Opens external link in new windowTCP або UDP сокети. Тож, типові таймаути вихідних транспортів встановлено для загалу у "10:1", Opens external link in new windowSelfSystem у "20:2" та Opens external link in new windowModBus/RTU через мережу у "5:0.1". Та мережу визначено методом "Opens external link in new windowisNetwork()".

Та на останок було:

  • додано завдання перевірки вихідних транспортів на від'єднання неактивних тривалий час підключень, що корисно для зовнішніх ініціативних підключень та джерел даних із обмеженою кількістю підключень;
  • видалено параметр "Запускати" для запобігання спробам помилкового підключення при запуску, сповільнюючи загальний запуск;
  • попереджено встановлення нових підключень при зупинці програми, сповільнюючи загальну зупинку на великій кількості джерел даних, що працюють через один спільний транспорт;
  • покращено опрацювання зовнішніх ініціативних підключень лише створенням нових вихідних транспортів для нових підключень,  але не повторне використання, що може бути помилковим у окремих випадках;
  • перейменовано повідомлення транспортів "запуск/зупинка" у "підключення/відключення".


1800