PDA

Просмотр полной версии : Ошибка сохранения проекта MASTERSCADA



AndreMary
12.02.2015, 10:22
Здравствуйте! При работе с проектом в режиме разработки периодически возникает ошибка при попытке сохранения : "ошибка при сохранении проекта (Интерфейс не поддерживается)". Закрываю проект без сохранения и вновь открываю, ошибка некоторое время не появляется, но затем история повторяется... Непонятна природа ошибки и как ее лечить... Возможно есть наработанный опыт у кого-нибудь? Спасибо!

SCADAMaster
12.02.2015, 10:48
Какая у вас версия MasterSCADA? Если у вас Demo версия - скачайте текущую с FTP.
Если в новой версии ошибка также проявляется пришлите отчет об ошибках. Для того чтобы сформировать отчет об ошибках:
В Режиме Разработки (DT):
"Проект"-> "Отчет об Ошибках"
Поставьте галочку "Включая конфигурацию текущего проекта". Сформированную папку заархивируйте и вышлите нам или выложите на форум.

Также подробно опишите в какое время и при каких обстоятельствах возникает ошибка - сделайте несколько скриншотов.

AndreMary
12.02.2015, 15:55
Сделал отчет об ошибке! Версия MasterScada 3.6.0.48493 3.6(DemoReleaseMax)_15_01_11_14_29. Качал совсем недавно с сайта.

Отследил возникновение ошибки и выяснилось, что связана она с C# скриптом по перемещению окна (Объект\КЦ\TAPs\TAP Template\Перемещение окна).
Для повторения следует выполнить:
1) Запустить проект
2) Нажать на пиктограмму крана -> В ремонт
3) Остановить проект
4) Нажать сохранить

Вышеупомянутый скрипт C#.
Входные переменные:
Окно - текстовое наименование окна
X - координата мыши X
Y - координата мыши Y

Скрипт при выполнении проекта отрабатывает, exception не возникает!


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

public partial class ФБ : ScriptBase
{
public override void Execute()
{
if (!HostFB.IsValueExistOnAllPins())
return;

if (Окно != "Мнемосхема" &&
Окно != "Окно объекта" &&
Окно != "Окно управления" &&
Окно != "Рапорт" &&
Окно != "Рецепт" &&
Окно != "Изображение объекта")
return;

var _X = 0;
var _Y = 0;

try
{
var mnemo = HostFB.TreeItemHlp.ParentObject.Attributes[Окно];

var info = mnemo.MnemoInfo;
_X = (int)X - 170;
_Y = (int)Y - 60;

info.PositionLeft = _X > 0 ? _X : 0;
info.PositionTop = _Y > 0 ? _Y : 0;

mnemo.Attribute.MnemoInfo = info;

}
catch (Exception e)
{
MessageBox.Show(e.Message + " X= " + _X.ToString() + " Y= " + _Y.ToString());
}

}
}

SCADAMaster
13.02.2015, 11:49
Сейчас у вас выдается ошибка потому что вы фактически изменяете и сохраняете положение окна в режиме исполнения.
А что вообще вы хотите сделать?
Если нужно перемещать окно, то можно просто открывать его с нужными координатами используя ФБ "Управление документом" - в настройках ФБ можно указать использование значений входов при открытии документом. После этого можно будет задавать координаты и размер окна.

AndreMary
13.02.2015, 12:28
Спасибо за ответ!!! Сейчас буду пробовать)

По средствам скрипта требовалось открывать окна объекта по координатам мыши! (клик на "изображении объекта" и открытие "окна управления" над ним).
Насколько я понял, мой скрипт C# корректно применять в режиме автоматизации разработки DoAction, и несмотря на то, что в Execute режиме он тоже работает, использовать его некорректно?
ФБ "Управление документом" нужно создавать свой для каждого окна в объекте, которое требуется открывать со сдвигом? (настройка "Документ" доступна в режиме Design)

SCADAMaster
13.02.2015, 13:04
ФБ "Управление документом" нужно создавать свой для каждого окна в объекте, которое требуется открывать со сдвигом? (настройка "Документ" доступна в режиме Design)
Да, для каждого документа свой ФБ