GAPICreateNewVariable
OrionS35; 30.4.02

Функция GAPICreateNewVariable может изменить свойства тега.

В WinCC 4.02 она вызывается а в
WinCC 5 выдает ошибку
Project editmode requiered
С чем это связано ?
Re: GAPICreateNewVariable
Костенич Дмитрий; 15.5.02

А ты, случайно, не забыл указать флаг MCP_NVAR_FLAG_MODIFY в поле dwFlags структуры, идущей первым параметром этой функции? Если не забыл, то проверь - этот флаг не любит, когда вызов GAPICreateNewVariable выполняется при запущенном RunTime.

Re: GAPICreateNewVariable
Александр; 16.5.02

Из ODK:


DM_E_OP_REQUIERES_PRJEDITMODE
Project editmode requiered
Example: An operation requieres that the project is not active

Похоже что 5-ка (в отличие от 4-ки) для использования CS функций явно требует закрытия Runtime.

Обходной путь - работать с таблицей MCPVARIABLEDESC напрямую с помощью например DB функций того же ODK. Правда для того, что-бы изменения вступили в силу, все равно необходимо будет перезапустить Runtime.
См. http://СКТЦ

Re: GAPICreateNewVariable
Евгений Трунов; 16.5.02

Ну хорошо, флаг не любит. Так надо ведь именно при запущенном Runtime. А есть кто-то (флаг, функция...), которая любит? Короче говоря, как изменить свойства тега с помощью функций WinCC API в режиме Runtime? Чтобы изменения сразу вступили в силу и сохранились в последующих сессиях как Editmode, так и Runtime?

Re: GAPICreateNewVariable
Александр; 16.5.02

Для того чтобы изменения свойств тега (например масштабирование) вступили в силу сразу (без перезагрузки Runtime) после редактирования (неважно, делается это с помощью SQL или вызова GAPICreateNewVariable) таблицы MCPVARIABLEDESC в конфигурационной базе WinCC необходимо каким-то образом заставить Data Manadger перечитать эту таблицу.


Если кто знает, как это сделать
прошу поделиться информацией.
Re: GAPICreateNewVariable
Яковлев Лев; 24.9.02

Свойства тэга можно менять в RunTime функцией GAPICreateNewVariable4Ex, но перед этим необходимо в CS-mode поменять у этого тэга dwCreatorID = 10101 той же функцией.Не забудьте пронулить структуры : ZeroMemory(&NVarData, sizeof(NVarData)). С dwCreatorID = 10101 тэг не удаляется и не редактируется в tag manager.Кстати, так можно менять и Start value, т.е.восстанавливать внутренний тэг при перезагрузке.