PDA

Просмотр полной версии : Завершение работы из MS



erevfil
08.05.2016, 03:17
Доброго времени суток. Каким образом можно выключить компьютер (Завершение работы)
непосредственно из MS в режиме исполнения? И реально ли это вообще?

SCADAMaster
08.05.2016, 08:54
Для этого можно использовать скрипт - вызвать команду перезагрузки из метода Stop.
http://stackoverflow.com/questions/1215139/reboot-machine-from-a-c-wpf-app
http://ss64.com/nt/shutdown.html

Пример кода скрипта:
using System;
using MasterSCADA.Script.FB;
using MasterSCADA.Hlp;
using FB;
using System.Linq;

public partial class ФБ : ScriptBase
{



public override void Stop()
{
System.Diagnostics.Process.Start("shutdown.exe", "-s -t 0");
}
}

erevfil
09.05.2016, 10:07
Хм.. спасибо, будем пробовать..

erevfil
09.05.2016, 10:16
Ещё вопрос, на палитре ФБ вкладка "служебные" есть ФБ "запуск процесса" можно с помощью этого блока завершать работу??

SCADAMaster
09.05.2016, 11:38
Лучше через скрипт - он вызовет метод именно при остановке скады.

erevfil
22.05.2016, 13:40
День добрый! Подскажите пожалуйста, как отобразить мнемосхему (тип Документ) на два монитора одинаковыми разрешениями.
всегда почему то на одном открывается. А настроек для типа "Документ" я не нашел

SCADAMaster
22.05.2016, 14:10
Не совсем понятно что именно вам нужно. Один и тот же документ на разные мониторы или разные?
Документ всегда выводится только на основной монитор. Если нужно выводить на второй, то установить у него режим окна, и задайте смещение координаты Х.

erevfil
22.05.2016, 14:31
Спасибо, сейчас попробуем..

erevfil
23.05.2016, 23:57
Доброго времени суток.
Помогите разобраться с Скриптом "сохранение и загрузка набора команд" Вещественные тип команд сохраняет и загружает отлично
Добавляю команду строкового типа - не сохраняет ((
Я не силен в С# но учу как время позволяет

SCADAMaster
24.05.2016, 09:03
Так и задумано - это ограничение скрипта.
Можно это ограничение снять - замените строчку:
if (objValue == null || objValue is string) //строка не сохраняется
на
if (objValue == null)

Но нужно иметь ввиду - ваша строка не должна содержать символ ; иначе чтение сохраненных значений пройдет некорректно.

erevfil
24.05.2016, 09:24
Спасибо за оперативный ответ!

erevfil
25.05.2016, 16:47
Здравствуйте! Подскажите пожалуйста, как реализовать такой момент.
Оператор дозирует материал, кнопкой на мнемосхеме левой клавиш.мыши, материал зависает и ему нужно помочь вибратором
Как задействовать правую клавишу мыши? не отпуская кнопку дозировать на мнемосхеме
За ранее спасибо!

SCADAMaster
25.05.2016, 16:58
Правую кнопку штатно задействовать для этого нельзя - если только писать собственный контрол или ВФБ.
Лучше сделайте отдельную кнопку.

nagowitsyn
31.05.2016, 10:30
Доброго дня! И снова скрипт завершение работы, вопрос как сделать чтоб одной кнопкой выходить из режима исполнения в режим разработки (для оперативных изменений в программе), а другой кнопкой завершать работу мастер скада и ПК.

SCADAMaster
31.05.2016, 12:47
По завершению работы - описано на первой странице.
Выхода в режим разработки как правило не делают. Есть просто завершение режима исполнения, после чего скада закроется (и уже потом можно запустить режим разработки и отладить). Для этого создается команда, типа дискретный и на вкладке "Действия" добавляется действие - Системное - Выход

nagowitsyn
01.06.2016, 12:20
с этим все ясно, но вот ситуация, настроено: завершение режима исполнения - завершение работы виндовс - отключение ПК, при включении ПК: загрузка виндовс, загрузка мастер скада в режим исполнения без выбора и подтверждения оператора. Вопрос, как попасть в режим разработки?

SCADAMaster
01.06.2016, 13:03
У вас сейчас происходит запуск в режим исполнения минуя режим разработки - через vav файл.
Чтобы запустить режим исполнения, нужно остановить режим исполнения (Alt+f10- завершение сеанса), и запустить Пуск - Программы - MasterSCADA.

nagowitsyn
01.06.2016, 13:46
Спасибо за пояснения, сочетание клавиш не сработало, возможно клавиатура неисправна. Проверю завтра другой клавиатурой.

SCADAMaster
01.06.2016, 15:48
Оно может быть и заблокировано.
Тогда нужно убивать сам процесс скады - иначе если разработчик запретил выход из скады по другому не выйдет.

nagowitsyn
02.06.2016, 06:03
Разработчиком я и являюсь, задача поэтапно автоматизировать производство бетона, без остановки производства. Следовательно придется много раз входить в режим разраба из работающего проэкта, пока работаю с помощью двух учетных записей компьютера (админ, оператор) в последствии предполагается одна учетка оператор, для того что б шаловливые ручки работников не лезли куда ненадо. логичный вариант отдельные команды как писал выше или сочетание клавиш как подсказали вы.
спасибо

SCADAMaster
02.06.2016, 09:28
Если сочетание квавиш вы не блокировали, то должны работать
Также можно сделать отдельную кнопку "Завершение сеанса" на которую дать права доступа только разработчику.

SCADAMaster
02.06.2016, 09:28
Если сочетание квавиш вы не блокировали, то должны работать
Также можно сделать отдельную кнопку "Завершение сеанса" на которую дать права доступа только разработчику.

nagowitsyn
02.06.2016, 10:52
завершение сеанса настроено, но при смене пользователя на разработчика выхожу к дереву проекта в режиме исполнения. нажимая стоп происходит завершение работы с выключением ПК. сочетания клавиш не блокировал, честно даже не нашел где настраивается работа сочетания клавиш.

SCADAMaster
02.06.2016, 11:27
Да, это происходит из-за того что скрипт выполняет выключение компьютера при остановке скады.
Попробуйте такой скрипт:

using System;
using MasterSCADA.Script.FB;
using MasterSCADA.Hlp;
using FB;
using FB.FBAttributes;
using System.Linq;
using System.Windows.Forms;

[FBRetain]
public partial class ФБ : ScriptBase
{
string Name="";
public override void Execute()
{
Name=HostFB.TreeItemHlp.Project.RTPermissions.Logg edUserPostName;
}

public override void Stop()
{
if Name!="Разработчик"
System.Diagnostics.Process.Start("shutdown.exe", "-s -t 0");

}
}

Опрос у скрипта нужно поставить периодическим (можно раз 10 секунд или даже медленее).

nagowitsyn
03.06.2016, 10:27
Опробовал предложенный скрипт. С некоторыми исправлениями работает на останов режима исполнения разработчиком и оператором. Нам же требуется: разработчик останов режима исполнения
оператор завершение работы скады и ПК

SCADAMaster
03.06.2016, 13:16
Ну вообще если пропишите название должности "Разработчик", то будет только останов режима исполнения без выхода.

nagowitsyn
03.06.2016, 13:52
Спасибо. Значит остается вариант пользователи ПК, через перезагрузку