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

Транспорти
Вдосконалення загалом призначені для спеціалізації підключень до відповідних протоколів та підвищення надійності і продуктивності.
Загальна працемісткість: 0.5 ЛД
Спонсорування, на 0.3 ЛД: ТОВ "СВІТоВИР АВТоМАТИК"
Спонсорування, на 0.1 ЛД: Вінницька Птахофабрика
Спонсорування, на 0.1 ЛД: Еліор Турабоєв, ТОВ BLUE STAR GROUP
Підсистема "Транспорти" включає підтримку вхідних та вихідних транспортів. Вхідні транспорти призначено для обслуговування зовнішніх запитів та відправки відповідей. Вихідні транспорти навпаки, призначено для надсилання повідомлень та очікування відповідей. Відтак, вхідні транспорти містить конфігурацію локальної станції, як серверу прослуховування запитів, а вихідні транспорти містить конфігурацію віддаленого серверу, для підключення. Така спеціалізація характерна для типового механізму "запит-відповідь", однак наразі вхідні та вихідні транспорти підтримують незалежну передачу та прийом даних. Модулі підсистеми "Транспорти" реалізують підтримку як вхідних, так і вихідних транспортів
Вдосконалення
вихідних транспортів первинно включає підвищення надійності, після спостереження отримання відповідей попередніх запитів та їх помилкове опрацювання, для мережевих транспортів (
Сокети та
SSL):
- встановлення типової кількості спроб у 1 з 2;
- від'єднання за помилкою вичерпання часу на будь якій спробі, окрім ініціативних зовнішніх підключень;
- збільшення типових таймаутів до "30:2" для забезпечення максимальної затримки
інтерфейсу контролю OpenSCADA у обробці тривалих запитів в 30 секунд; - розширення протоколів
ModBus та
Власного Протоколу OpenSCADA на предмет деякої перевірки відповідності відповіді до запиту.
Наступним вдосконаленням була спеціалізація типових таймаутів та визначення мережевих транспортів, оскільки загальні таймаути "30:2" є завеликими для протоколів що виключають тривалий час опрацювання, на кшталт
ModBus/TCP, та особливо
ModBus/RTU через
TCP або UDP сокети. Тож, типові таймаути вихідних транспортів встановлено для загалу у "10:1",
SelfSystem у "20:2" та
ModBus/RTU через мережу у "5:0.1". Та мережу визначено методом "
isNetwork()".
Та на останок було:
- додано завдання перевірки вихідних транспортів на від'єднання неактивних тривалий час підключень, що корисно для зовнішніх ініціативних підключень та джерел даних із обмеженою кількістю підключень;
- видалено параметр "Запускати" для запобігання спробам помилкового підключення при запуску, сповільнюючи загальний запуск;
- попереджено встановлення нових підключень при зупинці програми, сповільнюючи загальну зупинку на великій кількості джерел даних, що працюють через один спільний транспорт;
- покращено опрацювання зовнішніх ініціативних підключень лише створенням нових вихідних транспортів для нових підключень, але не повторне використання, що може бути помилковим у окремих випадках;
- перейменовано повідомлення транспортів "запуск/зупинка" у "підключення/відключення".