1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Суммирование значений нескольких тегов в WinCC

Ответить
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Суммирование значений нескольких тегов в WinCC

Сообщение archisp »

Человеки, ну подскажите, как сложить значения нескольких тегов в WinCC? Есть, например, 5 тегов со значениями, как их суммировать?

Alexandr_N
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 04 авг 2010, 08:35
Имя: инженер
Страна: Россия
город/регион: Свердловская обл

Re: Суммирование значений нескольких тегов в WinCC

Сообщение Alexandr_N »

Не совсем понял в чем трудность. Математику можно делать в скриптах стандартными функциями.
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Суммирование значений нескольких тегов в WinCC

Сообщение archisp »

как WinCC ткнуть носом на конкретные теги? я, честно сказать, не силен в программировании, поэтому не сильно представляю, как скриптами можно реализовать ))

Alexandr_N
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 04 авг 2010, 08:35
Имя: инженер
Страна: Россия
город/регион: Свердловская обл

Re: Суммирование значений нескольких тегов в WinCC

Сообщение Alexandr_N »

создаете скрипт (Си либо VBS что больше нравиться). Там есть уже готовые функции получения значения тега (на Си GetTag[Тип переменной]), т.е. например SetTagDWord("Sum",(GetTagWord("A") + GetTagWord("В")));
Т.е. установить в тег Sum значение равное сумме значений в тегах A и B
Последний раз редактировалось Alexandr_N 17 ноя 2011, 13:30, всего редактировалось 2 раза.
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Суммирование значений нескольких тегов в WinCC

Сообщение archisp »

Так и подозревал, но не знал как сделать )))) спасибо!!! сейчас буду пробовать..
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Суммирование значений нескольких тегов в WinCC

Сообщение archisp »

не совсем получается:
создал внутренний тег (тот что типа Sum), код получился по типу, как вы писали, при компиляции вылетает пара ошибок:
1. несовпадение типа аргумента 2
2. левый операнд должен быть L-значением
о чем можно думать? ))

Alexandr_N
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 04 авг 2010, 08:35
Имя: инженер
Страна: Россия
город/регион: Свердловская обл

Re: Суммирование значений нескольких тегов в WinCC

Сообщение Alexandr_N »

Я не правильно записал функцию SetTag, поправил (тип переменных подбирайте по задаче)
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Суммирование значений нескольких тегов в WinCC

Сообщение archisp »

Хорошо, спасибо еще раз!!!
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Суммирование значений нескольких тегов в WinCC

Сообщение archisp »

теперь пишет:

"функция '_main' не возвращает значение"

Alexandr_N
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 04 авг 2010, 08:35
Имя: инженер
Страна: Россия
город/регион: Свердловская обл

Re: Суммирование значений нескольких тегов в WinCC

Сообщение Alexandr_N »

Только что проверил у себя, все работает. Можно увидеть Ваш код.
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Суммирование значений нескольких тегов в WinCC

Сообщение archisp »

пожалуйста:

Код: Выделить всё

#include "apdefap.h"
 double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{

SetTagDWord("Q_btpg",(GetTagWord("Q______01") + GetTagWord("Q______02") + GetTagWord("Q______03")  + GetTagWord("Q______04") + GetTagWord("Q______05") + GetTagWord("Q______06") + GetTagWord("Q______07") + GetTagWord("Q_vkg_mgn_2"))); 

}

Alexandr_N
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 04 авг 2010, 08:35
Имя: инженер
Страна: Россия
город/регион: Свердловская обл

Re: Суммирование значений нескольких тегов в WinCC

Сообщение Alexandr_N »

на каком событие висит скрипт, а то на вид не определю.

Василий Иванович
авторитет
авторитет
Сообщения: 878
Зарегистрирован: 21 авг 2009, 14:25
Имя: Василий Иванович
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: Суммирование значений нескольких тегов в WinCC

Сообщение Василий Иванович »

а return кто будет писать - Пушкин?
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Суммирование значений нескольких тегов в WinCC

Сообщение archisp »

)))))))) дык я ж говорю, не силен в программировании.........
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Суммирование значений нескольких тегов в WinCC

Сообщение archisp »

Люди, ну подскажите, так ничего и не выходит от незнания... Как сложить два значения, а результат занести в другой внутренний тег. Имеются два аналоговых значения с типом "32-битовое число с плавающей точкой". Как их сложить, используя С-макрос?

Пишу такой код:

Код: Выделить всё

#include "apdefap.h"
double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
SetTagDWord("Q_btpg",(GetTagWord("Q______01") + GetTagWord("Q______02")));
return 0;
}
Ничего не считает и не заносит во временный тег "Q_btpg", пробовал все функции по справке, связанные с типом "32-битовое число с плавающей точкой". Ну помогите, пожалуйста, разобраться..

Sergeyvmm
осмотрелся
осмотрелся
Сообщения: 128
Зарегистрирован: 12 авг 2010, 01:49
Имя: Сергей
Благодарил (а): 2 раза
Поблагодарили: 8 раз

Re: Суммирование значений нескольких тегов в WinCC

Сообщение Sergeyvmm »

Уже написал один умный человек
на каком событие висит скрипт, а то на вид не определю.
Судя по типу возвращаемого значения, используется неверное событие. Потому что на событии типа "нажатие клавиши" функция значение не возвращает. Т.е. перед функцией должно стоять void, а не double.

а код должен быть что-то типа
SetTagDouble("Q_btpg",(GetTagDouble("Q______01") + GetTagDouble("Q______02")));
Правильно поставленная задача – уже наполовину решенная

Alexandr_N
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 04 авг 2010, 08:35
Имя: инженер
Страна: Россия
город/регион: Свердловская обл

Re: Суммирование значений нескольких тегов в WinCC

Сообщение Alexandr_N »

Для начала установите кнопку на форму, к ней (нажатие левой кнопки) привяжите скрипт на Си. Там запишите свой код. Выглядеть будет примерно так

Код: Выделить всё

#include "apdefap.h"
void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
SetTagDWord("Q_btpg",(GetTagWord("Q______01") + GetTagWord("Q______02")));
}
Если в таком виде будет работать, тогда можете использовать вызов скрипта по нужному вам событию.

Sergeyvmm
осмотрелся
осмотрелся
Сообщения: 128
Зарегистрирован: 12 авг 2010, 01:49
Имя: Сергей
Благодарил (а): 2 раза
Поблагодарили: 8 раз

Re: Суммирование значений нескольких тегов в WinCC

Сообщение Sergeyvmm »

Alexandr_N: не забываем, что тэги имеют тип "32-битовое число с плавающей точкой" ;)
Правильно поставленная задача – уже наполовину решенная

Alexandr_N
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 04 авг 2010, 08:35
Имя: инженер
Страна: Россия
город/регион: Свердловская обл

Re: Суммирование значений нескольких тегов в WinCC

Сообщение Alexandr_N »

Sergeyvmm писал(а):Alexandr_N: не забываем, что тэги имеют тип "32-битовое число с плавающей точкой" ;)
Согласен, нужно учесть в функциях GetTag и SetTag.
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Суммирование значений нескольких тегов в WinCC

Сообщение archisp »

Разобрался ))) Наконец, заработало. Огромное всем спасибо!!!
Ответить

Вернуться в «WinCC»