Страница 9 из 13 ПерваяПервая ... 7891011 ... ПоследняяПоследняя
Показано с 81 по 90 из 126

Тема: Создание ActiveX элементов для masterSCADA

  1. #81

    По умолчанию справка для новых ФБ

    Думаю, что работу по созданию собственных функциональных блоков, можно считать законченной, при наличии файлов справки по ФБ. Но, к сожалению, не нашёл в документации "Создание ФБ на C#", что необходимо сделать для вызова файлов справки *.chm собственных ФБ, например, при нажатии указателем "справка" по ФБ в библиотеке в режиме разработки?

  2. #82

    По умолчанию

    Нужно прописать у атрибута класса:
    HelpTopic("MSPalette", 9603)
    где MSPalette - название chm-файла, 9603 - Id топика.
    То есть например:
    [Serializable,
    ComVisible(true),
    Guid("FDCE629F-69C6-402c-BB7C-AA1E44B40EB5"),
    CatID(CatIDs.CATID_FB_WITHOUT_PROPS),
    HelpTopic("MSPalette", 9603),
    DisplayName("Мой ФБ"),
    FBOptions(FBOptions.EnableChangeConfigInRT),
    ]
    Спасибо.

  3. #83

    По умолчанию Вызов (открытие) документов из ActiveX компонента

    Здравствуйте!
    Подскажите, есть такая задача: Из АктивХ компонента необходимо открыть(вызвать) "Окно управления" (или же любой другой документ) в мастерскаде. Изучив поставляемые с пакетом MasterSCADA примеры и документацию ничего про это я не нашел.

    Написал в ИнСат письмо, их специалист посоветовал отнаследовать мой контрол от класса MasterSCADA.GUI.WinFormsControlBase вместо NetActiveXBase (как указанно в их примерах). Но визуал студия говорит что в MasterSCADA.GUI нет класса WinFormsControlBase (или чего угодно похожего на него).

    Может быть кто то сталкивался с подобной проблемой? Буду крайне признателен за любую помощь, заранее спасибо.

  4. #84

    По умолчанию

    Данный класс появился только в версии 3.5 SP1 - скачайте свежую версию MasterSCADA, с нашего FTP.
    В документации по разработке ФБ и ActiveX в документе "Создание ActiveX на C#" в конце добавлено описание этого класса.
    Только мы не указали инструкции, что необходимо еще добавить атрибут, задающий раздел палитры, где будет контрол -
    [CatID(MnemoCatIDs.Windows)]
    В класс MnemoCatIDs определены и другие разделы палитры. Если его не задать, то контрол не появится в палитре.
    Спасибо.

  5. #85

    По умолчанию

    Здравствуйте!
    Скачал 3.5 SP1, все отлично, появились свойства _attribute и HostTreeItem, однако проблемы пока это не решило. Действительно через _attribute я могу управлять мнемосхемой на которой установлен мой контрол. Однако задача стояла в открытии из одной мнемосхемы окна другой посредством контрола. HostTreeItem дает мне возможность получить доступ к любому другому объекту скады, но свойств ITreeItemHlp связанных с документами (мнемосхемами) этого объекта я не нашел.

  6. #86

    По умолчанию

    У класса ITreeItemHlp есть коллекция Attributes, можно индексировать по имени документа.
    Например HostTreeItem.Attributes["Окно управления"].Open();
    Спасибо.

  7. #87

    По умолчанию

    Спасибо, все заработало!

    Столкнулся с еще одной проблемой. Если наследовать контрол от MasterSCADA.GUI.WinFormsControlBase то он не появляется в окне "Органайзер ActiveX..." и его невозможно добавить к проекту. Пока что решил эту проблему следующим способом:
    делаю пустую библиотеку с контролом имя и Guid которого такие же как и у основного контрола, но наследуемого от NetActiveXBase. Регистрирую эту пустую библиотеку и добавляю контрол через Органайзер ActiveX в палитру. Далее закрываю скаду и переписываю поверх уже нормальную библиотеку с контролом наследованным от MasterSCADA.GUI.WinFormsControlBase. Все работает.

    Интересно как можно было бы решить эту проблему штатно? Библиотеку регистрирую, атрибут вроде бы дописал (правда CatID заменил на Category(MnemoCatIDs.Windows) по причине отсутствия первого, может быть проблема в этом?).

  8. #88

    По умолчанию

    Мы вам написали - необходимо еще добавить атрибут, задающий раздел палитры, где будет контрол -
    [CatID(MnemoCatIDs.Windows)]

    using InSAT.Library.Interop;
    Спасибо.

  9. #89

    По умолчанию

    Здравствуйте!

    Спасибо за вашу поддержку, всегда оперативно и по существу помогаете решить возникающие проблемы.
    Возник новый вопрос:
    В системе несколько компьютеров. Указанно что Объект исполняется на одном из них. Возможно ли получить доступ к нему в ActiveX контроле исполняемом на другом компьютере системы? (через HostTreeItem он к сожалению недоступен, если на Объекте не стоит "Выполнять на всех" или же он не выполняется на компьютере на котором запущен контрол)

  10. #90

    По умолчанию

    Если нужно постоянно получать данные от удаленной переменной, то вот метод -
    /// <summary>
    /// Создает переменную, получающую значения данного параметра. Данный параметр может распологаться на другом компьютере.
    /// После использования нужно вызвать RTPinHlp.Dispose, чтобы разъединить установленные связи.
    /// Для получения уведомлений об изменении значения можно подписаться на событие RTPinHlp.PinValueChanged
    /// </summary>
    /// <returns></returns>
    public RTPinHlp GetConnectedRTPin()

    Если разово получить, то вот способ -
    value = pin.Project.ScanManager.GetRTPinValues(new[] {pin})[0];
    Можно передать массив переменных, чтобы за один вызов получить все данные
    Спасибо.

Страница 9 из 13 ПерваяПервая ... 7891011 ... ПоследняяПоследняя

Похожие темы

  1. Создание ActiveX компонента для MasterSCADA.
    от 42ia в разделе Master SCADA 3
    Ответов: 32
    Последнее сообщение: 30.05.2012, 10:17
  2. Ответов: 2
    Последнее сообщение: 13.03.2012, 16:13
  3. Некорректное отображение элементов
    от pahenziy в разделе Панели оператора (HMI)
    Ответов: 9
    Последнее сообщение: 05.10.2011, 18:10
  4. Создание сети RS-485
    от Kotov666 в разделе Сервисное ПО
    Ответов: 3
    Последнее сообщение: 09.04.2009, 16:52
  5. Ответов: 3
    Последнее сообщение: 28.08.2008, 19:34

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •