PDA

Просмотр полной версии : Подвисание Мастерскады с беспроводными сетями



redi
11.06.2013, 11:14
Добрый день!

Есть несколько скриптов, в которых идет обращение к файлам по сетевым путям типа \\oil1\am\.
Где oil1 - имя компьютера в беспроводной сети, аm - расшаренная папка с полным доступом для всех. При этом делаю проверку существует ли деректория и существует ли запрашиваемый файл.

Когда компьютер в зоне действия сети - все хорошо работает. При выходе компьютера из беспроводной сети происходит зависание проекта или на 30-60 секунд или полностью зависает и надо перегружать компьютер.
Причем отлаживал на проводной сети - все работает стабильно. Скада тут же понимает есть сеть или нет. А на беспроводной такие траблы. При появлении беспроводной сети - задержка 15 секунд и стабильно работает. При исчезновении беспроводной сети - зависание проекта на 30-60 секунд или полностью зависает.

Я так понимаю, что я некорректно обращаюсь к файлам в беспроводной сети. Возможно нужно как-то опрашивать готова ли сеть...

Буду благодарен за любую помощь.

SCADAMaster
11.06.2013, 11:54
То есть вы работаете через с файлами через скрипт?
Можно попробовать перед тем как начать работать с файлами выполнить ping нужного IP адреса:
http://msdn.microsoft.com/ru-ru/library/system.net.networkinformation.ping.aspx

redi
11.06.2013, 12:03
Да. Скрипты читают и записывают текстовые файлы в разных беспроводных сетях. Попробую, спасибо.
Я вот еще думаю, может лучше подключить сетевые диски? И обращаться к ним как по локальному пути. По идее сетевые диски должны восстанавливаться автоматически при подключении к беспроводной сети.

SCADAMaster
11.06.2013, 12:15
Да, так будет еще правильнее.
Записывайте данные локальные, а сетевые компьютеры когда потребуется будут подключаться к сетевым дискам и получать информацию.

redi
11.06.2013, 13:50
Ничего не получилось:(

Проект работает на одном компьютере, на этом же компьютере подключен сетевой диск другого компьютера.
На другом компьютере искомый файл. Сеть проводная Ethernet. Скрипт первого компьютера обращается к файлу второго. При этом проверяется существование директории и файла.

При отключении питания свича пропадает сеть. Проект постоянно подвисает и на этом нормальная работа заканчивается. Картина точно такая же как с беспроводной сетью. Даже не знаю что делать... По идее скрипт должен проверить существование пути и нормально отработать, если пути не существует, а он зависает до 30 секунд и вешает все остальное.

SCADAMaster
11.06.2013, 14:06
Так вы пробовали перед тем как подключаться к файлу делать Ping компьютера из скрипта?

redi
11.06.2013, 14:28
Нет. Сейчас буду пробовать Ping.

redi
12.06.2013, 17:00
Ping по имени компьютера не помогло. Нужно читать SSID беспроводных сетей, чтобы затем обращаться к файлам.

Пытаюсь реализовать следующий код:

WiFiNetworkInfo[] ScanResp = WiFi.Scan();
if (ScanResp != null)
{
Debug.Print("Total Available Networks are " + ScanResp.Length.ToString());
foreach (WiFiNetworkInfo x in ScanResp)
{
Debug.Print(WiFiNetworkInfoToString(x));
Debug.Print("-----------------------------------------------------");
}
}

// Check if myWiFiNetworkSSID one of the found networks.
int i = 0;
for (i = 0; i < ScanResp.Length; i++)
{
if (string.Compare(ScanResp[i].SSID, myWiFiNetworkSSID) == 0)
{
break;
}
}

Как я понимаю, нужно подключить библиотеки:

using System.Threading;
using System.Net.Sockets;
using Microsoft.SPOT;
using Microsoft.SPOT.Net.NetworkInformation;
using Microsoft.SPOT.Hardware;
using GHIElectronics.NETMF.Net;
using GHIElectronics.NETMF.Hardware;

Пытаюсь добавить их на закладке 'Настройки' и не получается. Что я делаю не так?

SCADAMaster
12.06.2013, 19:32
А что именно не получается?
На закладке "Настройки" щелкаете на поле "Ссылка на сборки", затем на кнопку с тремя точками. В окне прописываете нужные dll бибилотеки (их нужно положить в папку MasterSCADA).
А затем уже на закладке "Код" добавляете их в раздел using.