Здравствуйте.
Подкинул С-скрипт для одного из параметров объекта.
Вот он:
#include "GlobalDefinitions.h"
BOOL VisibleValue(char* screenName, char* objectName, char* propertyName)
{
#define tag "Ack_maxlevels_CFK1"
if (tag & 0x00010001)
return 1;
else
return 0;
}
В WinCC 7.4 такое прокатывало. В TIA не работает. tag - 32-битное двойное слово. Нужно при отличных от нуля нулевом и 16-м бите вернуть TRUE. Где косяк, не пойму. Пробовал и GetTagDword(tag) - все равно.
Побитное сравнение в С-скрипте в TIA Portal v16
-
- Posts: 83
- Joined: Mon Aug 13, 2012 2:23 pm
-
- Posts: 374
- Joined: Wed Oct 13, 2010 8:44 am
- Location: Russian Federation
Re: Побитное сравнение в С-скрипте в TIA Portal v16
Не могло оно в классике 7.4 прокатить. Сам подставь define внутрь if:
Code: Select all
if ("Ack_maxlevels_CFK1" & 0x00010001)
Почему не работает - надо дебажить в отдельный I/O Field. Сначала чистое значение тега, потом значение с маской.
-
- Posts: 83
- Joined: Mon Aug 13, 2012 2:23 pm
Re: Побитное сравнение в С-скрипте в TIA Portal v16
Оставляю в скрипте только
return TRUE;
Параметр все равно не TRUE. Могут ли скрипты быть отключены где-то в проекте?
return TRUE;
Параметр все равно не TRUE. Могут ли скрипты быть отключены где-то в проекте?
-
- Posts: 83
- Joined: Mon Aug 13, 2012 2:23 pm
Re: Побитное сравнение в С-скрипте в TIA Portal v16
Решено.
Почему-то скрипт не выполняется, когда в настройках триггера скрипта выбрана РЕКОМЕНДУЕМАЯ опция "Автоматически вычислить триггер". Выбрал вручную время триггера - все заработало. При этом VB-скрипт почему-то работает с настройками триггера по-умолчанию.
Почему-то скрипт не выполняется, когда в настройках триггера скрипта выбрана РЕКОМЕНДУЕМАЯ опция "Автоматически вычислить триггер". Выбрал вручную время триггера - все заработало. При этом VB-скрипт почему-то работает с настройками триггера по-умолчанию.