Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все по ФБ (VS6).doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
210.43 Кб
Скачать

Вывод информация об ошибках в фб в протокол работы.

Если при работе ФБ произошла ошибка, можно вывести ее описание в «Протокол работы», который вызывается в MasterSCADA из меню «Сервис». Для этого необходимо вызвать функцию –

ReportError(LPCTSTR cszError, bool bError)

  • cszError – текст ошибки или сообщения

  • bError – в случае ошибки - true, в случае информационного сообщения - false

Восстановление состояния фб при горячем рестарте.

Для поддержки такой функциональности необходимо реализовать в ФБ интерфейс IPersistRTSession со следующими методами:

  • HRESULT SaveState([in] IStream* pStream, [in] DWORD dwFlags)

Необходимо сохранить в поток pStream состояние данного ФБ. Под состоянием подразумевается информация, которая не входит в персистентное состояние ФБ (доступное через IPersistStreamInit), но влияющая на поведение ФБ в режиме исполнения.

  • HRESULT LoadState([in] IStream* pStream, [in] DWORD dwFlags)

Необходимо загрузить из потока pStream состояние данного ФБ. Данная функция вызывается непосредственно перед вызовом ToRuntime().

Страницы свойств фб

Для всех ФБ автоматически создается страничка свойств “Свойства”, на которой показаны все свойства объекта, которые прописаны в интерфейсе ФБ. Некоторые свойства ФБ, в частности те, которые влияют на число входов – выходов, не должны изменятся в режиме Run time.

Для того чтобы указать, что свойство можно изменять в режиме Runtime нужно в .idl файле в описании интерфейса ФБ перед этим свойством вместо id(n), где n номер свойства, записать на id(1000+n).

ФБ может иметь собственные страницы свойств, которые могут быть доступны только в каком-то из режимов (design, runtime), либо могут иметь различный внешний вид в разных режимах. Чтобы указать это используется строка в реесурсе String Table с индексом IDS_DOCSTRINGName (Name – имя класса страницы свойств). Она может содержать одно или несколько ключевых слов:

  • NoRuntime – не доступна в режиме runtime.

  • NoDesign – не доступна в режиме design.

  • NoApply – для данной страницы в режиме design не показывается кнопка “Применить” (например, если на страничке отображаются не настройки блока, а некоторая справочная информация.

  • NoSave – тоже, что и NoApply, но для режима runtime.

Для страниц свойств, которые отображаются в обоих режимах, может быть необходимо знать текущий режим. Это можно сделать следующим образом:

m_bRuntime = false;

CComQIPtr<IRTObject> piRT (m_pPageSite);

if (piRT) {

BOOL bMode;

piRT->get_UserMode (&bMode);

if (!bMode) m_bRuntime = true;

}

Справка к фб

  1. Файл со справкой для всех функциональных блоков, входящих в библиотеку ФБ должен располагаться в том же каталоге, что и сама библиотека (.dll файл). Он должен иметь такое же имя, что и библиотека, и расширение .chm.

  2. Для того, чтобы сопоставить каждому ФБ соответствующий раздел справки, нужно в .rgs файле каждого блока в раздел 'Images' добавить строчку: val 'HelpID' = d '1002' 1002 – номер раздела, указанный в HTML Help Workshop.

  3. Для того, чтобы сопоставить категории соответствующий раздел справки, нужно в .rgs файле одного из блоков, принадлежащих этой категории, в раздел 'Images' добавить строчку: val 'CatHelpID' = d '2002' 2002 – номер раздела, указанный в HTML Help Workshop.

  4. Для того чтобы в HTML Help Workshop с разделом сопоставить номер нужно:

  • в части [ALIAS] добавить соответствие между файлом .htm и некоторым идентификатором (например IDH_1002 - Больше.htm).

  • в заголовочном файле, указанном в части [MAP] нужно сопоставить этот идентификатор с номером, который будет прописан в .rgs файле блока (например #define IDH_1002 1002)