Как мне заменить отображение поля Type аларма?

Обсуждение SCADA-систем: Citect SCADA, Vijeo Citect, CitectSCADA, CitectFacilities, PowerLogic SCADA, PowerSCADA, MX4SCADA, Desigo Insight.
Аватара пользователя
alex
Администратор
Сообщений в теме: 9
Сообщения: 1627
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 41 раз
Поблагодарили: 82 раза
Контактная информация:

Re: Как мне заменить отображение поля Type аларма?

#11

Сообщение alex » 09 июн 2014, 18:43

gogol писал(а):Спасибо, очень полезный прием, но у меня не сработал.

Уточните, откуда берется название секции
и как формируется имя параметра?


Надо смотреть в начале файла TabAlarm.ci проекта Tab_Style_Include в разделе определений переменных модуля, определение переменной m_TabAlarm_Custom_Fn_AlarmGetDsp:

//-----------------------------------------------------------------------------
//
//  Module Variables
//
//-----------------------------------------------------------------------------

INT m_TabAlarm_Priv_AckAlarms   = -1;       // The privilege required for acknowledging alarms
INT m_TabAlarm_Priv_DisableAlarms   = -1;       // The privilege required for disabling alarms

INT m_TabAlarm_Col_HeadFontHnd  = -1;       // column heading font handle
INT m_TabAlarm_Col_DragStartMS  = -1;       // (millisecond) timestamp when the user start dragging the column separator

STRING  m_TabAlarm_Print_OptAllPages    = "0";      // Field value for All pages option in alarm print form
STRING  m_TabAlarm_Print_OptPages   = "1";      // Field value for Pages option in alarm print form
STRING  m_TabAlarm_Print_TxtPages   = "1";      // Field value for textbox Pages in alarm print form

INT m_ProgressMessage_FrmHnd    = -1;       // Form handle for the progress message form
INT m_ProgressMessage_TextHnd   = -1;       // Field handle for the text shown in the progress message form
INT m_ProgressMessage_Cancelled = 0;        // Indicate if the progress message form has been cancelled by ther user

INT m_TabAlarm_DspLast_LastAlarmDisplayMode = -1;   // Buffered value for INI Parameter [Alarm] LastAlarmDisplayMode
STRING  m_TabAlarm_DspLast_LastAlarmFmt     = "";   // Buffered value for INI Parameter [Alarm] LastAlarmFmt
INT m_TabAlarm_DspLast_LastAlarmType    = -1;   // Buffered value for INI Parameter [Alarm] LastAlarmType
INT m_TabAlarm_DspLast_LastAlarmCategories  = -1;   // Group handle determined by INI Parameter [Alarm] LastAlarmCategories
INT m_TabAlarm_DspLast_LastAlarmPriorities  = -1;   // Group handled determined by INI Parameter [Alarm] LastAlarmPriorities

INT m_TabAlarm_BackgroundColorMode  = 0;        // Buffered value for INI Parameter [Alarm] BackgroundColorMode

INT m_TabAlarm_Custom_Initialized           = 0;    // Flag to indicate whether customization has been initialized
STRING  m_TabAlarm_Custom_Fn_Row_ShowContextMenu    = "";   // Custom function for showing row context menu, configurable via param [TabAlarm.Custom]Function.Row.ShowContextMenu
STRING  m_TabAlarm_Custom_Fn_Row_ShowHWContextMenu  = "";   // Custom function for showing row context menu for hardware alarms, configurable via param [TabAlarm.Custom]Function.Row.ShowHWContextMenu
STRING  m_TabAlarm_Custom_Fn_AlarmGetDsp        = "";   // Custom function for getting alarm field value, configurable via param [TabAlarm.Custom]Function.AlarmGetDsp

Далее можно посмотреть здесь же код функции _TabAlarm_Custom_Init:

//-----------------------------------------------------------------------------
//
//  FUNCTION NAME:
//      _TabAlarm_Custom_Init
//
//  SUMMARY:
//      Initialize customization for tab alarm list.
//         
//  PARAMS:
//      None
//         
//  RETURNS:
//      None
//
//-----------------------------------------------------------------------------

PRIVATE
FUNCTION _TabAlarm_Custom_Init()
    STRING paramValue;

    // ensure initialization is only done once
    IF m_TabAlarm_Custom_Initialized THEN
        RETURN;
    END

    // initialize custom function hooks from INI parameters
    paramValue = ParameterGet("TabAlarm.Custom", "Function.Row.ShowContextMenu", "");
    IF (paramValue <> "TabAlarm_Row_ShowContextMenu") THEN  // check for circular ref.
        m_TabAlarm_Custom_Fn_Row_ShowContextMenu = paramValue;
    END
    paramValue = ParameterGet("TabAlarm.Custom", "Function.Row.ShowHWContextMenu", "");
    IF (paramValue <> "TabAlarm_Row_ShowHardwareContextMenu") THEN  // check for circular ref.
        m_TabAlarm_Custom_Fn_Row_ShowHWContextMenu = paramValue;
    END
    m_TabAlarm_Custom_Fn_AlarmGetDsp = ParameterGet("TabAlarm.Custom", "Function.AlarmGetDsp", "");

    // mark the completion of initialization
    m_TabAlarm_Custom_Initialized = 1;
END

и все станет понятно.



Аватара пользователя
alex
Администратор
Сообщений в теме: 9
Сообщения: 1627
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 41 раз
Поблагодарили: 82 раза
Контактная информация:

Re: Как мне заменить отображение поля Type аларма?

#12

Сообщение alex » 09 июн 2014, 18:47

gogol писал(а):Поле Type не изменилось.

Тогда вот тестовый проект, где это работает:
LearningAlarmSystem (http://www.proasutp.com).ctz
У вас нет необходимых прав для просмотра вложений в этом сообщении.



gogol
Сообщений в теме: 10
Сообщения: 34
Зарегистрирован: 16 апр 2014, 13:56

Re: Как мне заменить отображение поля Type аларма?

#13

Сообщение gogol » 10 июн 2014, 08:09

Аларм не отображается. Приложите, пожалуйста, Ваш ini файл.



Аватара пользователя
alex
Администратор
Сообщений в теме: 9
Сообщения: 1627
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 41 раз
Поблагодарили: 82 раза
Контактная информация:

Re: Как мне заменить отображение поля Type аларма?

#14

Сообщение alex » 10 июн 2014, 08:36

gogol писал(а):Аларм не отображается. Приложите, пожалуйста, Ваш ini файл.

Вот:

citect.ini
У вас нет необходимых прав для просмотра вложений в этом сообщении.



gogol
Сообщений в теме: 10
Сообщения: 34
Зарегистрирован: 16 апр 2014, 13:56

Re: Как мне заменить отображение поля Type аларма?

#15

Сообщение gogol » 10 июн 2014, 08:51

Заработало после того как добавил переменный тег и повесил аларм на него, по переменной аларм не срабатывает.
Отображение не изменилось:
У вас нет необходимых прав для просмотра вложений в этом сообщении.



gogol
Сообщений в теме: 10
Сообщения: 34
Зарегистрирован: 16 апр 2014, 13:56

Re: Как мне заменить отображение поля Type аларма?

#16

Сообщение gogol » 10 июн 2014, 08:57

CitectSCADA Version 7.20 SP 3[4]



Аватара пользователя
alex
Администратор
Сообщений в теме: 9
Сообщения: 1627
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 41 раз
Поблагодарили: 82 раза
Контактная информация:

Re: Как мне заменить отображение поля Type аларма?

#17

Сообщение alex » 10 июн 2014, 09:38

Это потому что в проекте используется локальный тег, поэтому чтобы система алармов реагировала на изменение этого тега при настройке компьютера через Computer Setup Wizard необходимо отключать опцию Mutli-Proccess, т.е. чтобы все серверы работали в одном процессе, иначе работать не будет. С включенной опцией Mutli-Proccess работает только переменный тег.



gogol
Сообщений в теме: 10
Сообщения: 34
Зарегистрирован: 16 апр 2014, 13:56

Re: Как мне заменить отображение поля Type аларма?

#18

Сообщение gogol » 10 июн 2014, 10:42

Спасибо за разъяснения, но как быть с подменой состояния с КВИТИРОВАН на Подтверждена?



Аватара пользователя
alex
Администратор
Сообщений в теме: 9
Сообщения: 1627
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 41 раз
Поблагодарили: 82 раза
Контактная информация:

Re: Как мне заменить отображение поля Type аларма?

#19

Сообщение alex » 11 июн 2014, 10:41

В выше приведенной функции (MyAlarmGetDsp) необходимо отслеживать нелокализуемые в данной версии значения полей и подменять их на свои вот и все.




Если эта тема может быть полезна другим, поделитесь ссылкой:

Вернуться в «Citect SCADA, Vijeo Citect, CitectSCADA, CitectFacilities, PowerLogic SCADA, PowerSCADA, MX4SCADA, Desigo Insight»