# Загорнутий запит даних специфічний до користувача за допомогою функції ''[[Special:MyLanguage/Documents/User_API#SYSTransport|int messIO( XMLNodeObj req, "UserProtocol" );]]'' та реалізації [[Special:MyLanguage/Modules/UserProtocol|користувацького протоколу]], якщо протокольна частина достатньо складна та ще відсутня у OpenSCADA. Користувач реалізує тут саму протоколоспецифічну частину у [[Special:MyLanguage/Modules/UserProtocol|модулі UserProtocol]] та частину специфічну до даних у шаблоні для [[Special:MyLanguage/Modules/LogicLev|модуля Логічного Рівня]] або безпосередньо у процедурі контролеру на внутрішній мові програмування [[Special:MyLanguage/Modules/JavaLikeCalc|модуля JavaLikeCalc]].
# Загорнутий запит даних специфічний до користувача за допомогою функції ''[[Special:MyLanguage/Documents/User_API#SYSTransport|int messIO( XMLNodeObj req, "UserProtocol" );]]'' та реалізації [[Special:MyLanguage/Modules/UserProtocol|користувацького протоколу]], якщо протокольна частина достатньо складна та ще відсутня у OpenSCADA. Користувач реалізує тут саму протоколоспецифічну частину у [[Special:MyLanguage/Modules/UserProtocol|модулі UserProtocol]] та частину специфічну до даних у шаблоні для [[Special:MyLanguage/Modules/LogicLev|модуля Логічного Рівня]] або безпосередньо у процедурі контролеру на внутрішній мові програмування [[Special:MyLanguage/Modules/JavaLikeCalc|модуля JavaLikeCalc]].
:: [[File:at.png]] Цей останній метод наразі розвинено до можливості формування протокольної частини коду безпосередньо у тому-ж коді шаблону, як окрема вбудована функція через виклик функції запиту першого методу, якщо немає потреби повторного використання, або навіть якщо така потреба є та тут має сенс створення комплексного шаблону, який зможе поєднувати роль й вихідного протоколу, через його підключення також до модуля користувацького протоколу. Та воно буде повністю зберігатися у одній бібліотеці шаблонів.
:: [[File:at.png]] Цей останній метод наразі розвинено до можливості формування протокольної частини коду безпосередньо у тому-ж коді шаблону, як окрема вбудована функція через виклик функції запиту першого методу, якщо немає потреби повторного використання, або навіть якщо така потреба є та тут має сенс створення комплексного шаблону, який зможе поєднувати роль й вихідного протоколу, через його підключення також до модуля користувацького протоколу. Та воно буде повністю зберігатися у одній бібліотеці шаблонів.
−
−
[[file:at.png]] Пряма робота із вихідним транспортом функції [[Special:MyLanguage/Documents/User_API#SYSTransport|string messIO( string mess, real timeOut = 0 );]] не передбачає блокування транспорту поза викликом цієї функції, а відтак, для складних протоколів із посилками відповіді більш ніж у одному пакеті, що передбачає процес "доочікування", не можна використовувати спільний транспорт, за яким можливе надсилання пакетів різних протоколів або навіть один, але з різних завдань (об'єктів контролерів). Відтак, якщо є потреба використання спільного транспорту, то розташовуйте параметри опитування за протоколом у одному об'єкті контролеру (завдані) або використовуйте [[Special:MyLanguage/Modules/UserProtocol|модуль користувацького протоколу]], до якого це зауваження не має стосунку, оскільки він здійснює таке блокування на час виклику процедури обробки, як і решта модульних протоколів OpenSCADA. <section end=userPrt />
Revision as of 20:35, 21 January 2020
Як можна бачити з рисунку 1, взаємодія з пристроєм відбувається через деякий транспорт на якому вони фізично базуються. Запит до транспорту Ви можете надіслати:
Безпосередньо за допомогою функції системного API OpenSCADA об'єкту транспорту string messIO( string mess, real timeOut = 0 );, якщо протоколоспецифічна частина дуже проста та дані вам потрібно лише вилучити.
Загорнутий запит даних req, функцією int messIO( XMLNodeObj req, string prt ); та для протоколу prt, якщо протокольна частина достатньо складна та вже представлена у OpenSCADA.
Цей останній метод наразі розвинено до можливості формування протокольної частини коду безпосередньо у тому-ж коді шаблону, як окрема вбудована функція через виклик функції запиту першого методу, якщо немає потреби повторного використання, або навіть якщо така потреба є та тут має сенс створення комплексного шаблону, який зможе поєднувати роль й вихідного протоколу, через його підключення також до модуля користувацького протоколу. Та воно буде повністю зберігатися у одній бібліотеці шаблонів.