Просмотр полной версии : парсинг веб-портала контроллера
Здравствуйте,
Есть контроллер у которого нет платы расширения для подключения модбас RS485,
но есть веб-портал, в котором есть вся информация для МСКАДА3. Необходимо вытащить
инфу из веб-страниц контроллера. Нужен рабочий пример парсинга в МСКАДА3 на C#, встроенный в МСКАДА3,
хоть одного параметра(ток, напряжение или давление)
SCADAMaster
17.10.2022, 09:52
Такого примера нет.
Примеры парсинга WEB страниц на C# поищите в интернете.
А затем уже полученные данные можно будет разложить по переменным MasterSCADA, как это описано в документации на скрипты:
https://support.mps-soft.ru/MasterSCADAHelp/index.html?sluzhebnie_skript_rukovodstvo_i_primery _obrashchenie_k_peremennym_proekta_polucheniya_zna cheniya_peremennoj.html
Получилось- взял наугад сайт в нете и отпарсил- я думаю и с контроллером будет работать,
но еще не пробовал т.к. нет удалённого подключения к контроллеру пока
SCADAMaster
19.10.2022, 10:05
А в файл вы зачем вы пишите?
Вот такой запрос будет долгим:
public static string GetHtmlPageText( string url ) {
WebClient client = new WebClient();
using ( Stream data = client.OpenRead( url ) ) {
using ( StreamReader reader = new StreamReader( data ) ) {
return reader.ReadToEnd();
}
}
}
Поэтому или нужно выполнять его асинхронно (async await) или положить ФБ в отдельный объект и у объекта поставить собственный цикл - чтобы вывести в отдельный поток.
Подробнее вот тут описано:
https://support.mps-soft.ru/MasterSCADAHelp/index.html?sluzhebnie_skript_rukovodstvo_i_primery _rabota_s_arhivom_dannyh_vypolnenie_asinhronnyh_za prosov.html
SCADAMaster:А в файл вы зачем вы пишите?
Для того чтобы спокойно его анализировать на этапе отладки. В рабочей версии ни к чему.
SCADAMaster:Вот такой запрос будет долгим:.....
во-первых полагаю , что веб-страницы контроллеров небольшие, во-вторых я задал
период 10 с, что вполне допустимо для большинства диспетчерских с одной стороны,
а с другой данные должны обновляться
SCADAMaster
19.10.2022, 11:35
Это не важно - пропала связь, у вас будет тормозить процесс.
Такие длительные запросы нужно делать в отдельные потоках и выполнять асинхронно.
Это не важно - пропала связь, у вас будет тормозить процесс.
Такие длительные запросы нужно делать в отдельные потоках и выполнять асинхронно.
Учту, спасибо
SCADAMaster:https://support.mps-soft.ru/MasterSC..._zaprosov.html
начал разбираться с потоками и возникли вопросы:
- у нас MasterSCADA 3.11 и множество объектов (БД коннекторы и контроллеры в АРМ, первые дочерние объекты
корня объектов(8шт)-до сотни всего) имеют настройку "собственный цикл", а в настройках системы и АРМ "Макс. количество
рабочих потоков"-3?
-если я в объекте, который читает и парсит веб-страницу поставлю во вкладке опрос "собственный цикл" 10000 мс,
то "периодический опрос " сколько лучше ставить?
SCADAMaster
20.10.2022, 09:33
- у нас MasterSCADA 3.11 и множество объектов (БД коннекторы и контроллеры в АРМ, первые дочерние объекты
корня объектов(8шт)-до сотни всего) имеют настройку "собственный цикл", а в настройках системы и АРМ "Макс. количество
рабочих потоков"-3?
Поставьте флаг "Выполнение в отдельных потоках".
-если я в объекте, который читает и парсит веб-страницу поставлю во вкладке опрос "собственный цикл" 10000 мс,
то "периодический опрос " сколько лучше ставить?
Периодический опрос в 1 такт поставьте у скрипта.
Во всем проекте периодический опрос включать не надо.
MasterSCADA:"Поставьте флаг "Выполнение в отдельных потоках"."
У нас MS3.9 и MS3.11 -там нет такой настройки.
MasterSCADA:"Поставьте флаг "Выполнение в отдельных потоках"."
У нас MS3.9 и MS3.11 -там нет такой настройки.
Извините, обманул в 3.11 уже есть, но галка не стоит, а как в общих чертах тогда выполняются разные "собственные циклы"?
Спасибо
SCADAMaster
20.10.2022, 10:43
Все объекты первого уровня, а также объекты с флагом собственный цикл выполняются в отдельных потоках.
Все объекты первого уровня, а также объекты с флагом собственный цикл выполняются в отдельных потоках.
Извините, наверно уже надоел, но если галка "выполнять в отдельных потоках" не стоит или MSSCADA 3 до 3.11 и в настройках
стоит "мас количество рабочих потоков" 3, а объектов с настройкой "собственный цикл" много , то как тогда эти собственные циклы
выполняются? В общем не зависнет ли?
(просто у нас реально такие настройки- галки нет,макс количество 3,объектов с циклом сотня наверно )
Спасибо
SCADAMaster
20.10.2022, 11:57
В этом случае будет ограниченно всего 3 потоками.
Зависнет или нет - надо смотреть в режиме исполнения, зависит от компьютера. Скорее всего будет работать нормально.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot