Системная платформа Wonderware. Как получить DateTime с удаленного ПК?

Как получить системное время с удаленного ПК в локальной сети с помощью InTouch Scriptng или QuickScript.NET в Archestra IDE?


person callmecough    schedule 31.05.2018    source источник


Ответы (1)


Вы должны получить любой из ответов здесь: Получить дату и время удаленного ПК?

Пример QuickScript.NET

Во-первых, импортируйте System.Management DLL из C:\Windows\Microsoft.NET\Framework\v4.0.30319 или из любого другого места, где она находится, как библиотека функций сценария.

После этого используйте этот скрипт и настройте его под свои нужды:

(У меня было это на графике ArchestrA с двумя текстовыми полями, datestring и timestring были тегами, привязанными к объектам отображения.

Условие скрипта: Пока refresh == True :

dim pcname as System.String;
dim wmipath as System.String;
dim scope as System.Management.ManagementScope;
dim query as System.Management.ObjectQuery;
dim search as System.Management.ManagementObjectSearcher;

try
    pcname = "192.168.10.190";

    wmipath = System.String.Format("\\{0}\root\CIMV2", pcname);
    scope = new System.Management.ManagementScope(wmipath);
    query = new System.Management.ObjectQuery("SELECT * FROM Win32_LocalTime");

    scope.Connect();
    search = new System.Management.ManagementObjectSearcher(scope, query);

    dim queryObj as System.Management.ManagementObject;
    for each queryObj in search.Get()
        datestring = System.String.Format("{0}-{1}-{2}", queryObj("Year"), queryObj("Month"), queryObj("Day"));
        timestring = System.String.Format("{0}:{1}:{2}", queryObj("Hour"), queryObj("Minute"), queryObj("Second"));

        LogMessage(datestring + " " + timestring);
    next;
catch
    LogError(error);
endtry;

refresh = false;
person Grambot    schedule 31.05.2018
comment
Спасибо! На самом деле моя версия .net — 3.5, поэтому try catch не поддерживается. Но, тем не менее, попробую воспользоваться вашим советом без try catch - person callmecough; 01.06.2018
comment
Да, это грубо без try-catch, но до тех пор, пока вы можете что-то сделать для обработки случаев, когда это не удается. У меня возникла проблема с разрешением на запуск кода один раз на моей виртуальной машине, но я думаю, что у них было решение в связанных ответах на эту ситуацию. - person Grambot; 01.06.2018