Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

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

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

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 17 ноя 2011, 08:49

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


Alexandr_N
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 04 авг 2010, 07:35
Ф.И.О.: инженер

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

Сообщение Alexandr_N » 17 ноя 2011, 09:19

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

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

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 17 ноя 2011, 09:23

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


Alexandr_N
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 04 авг 2010, 07:35
Ф.И.О.: инженер

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

Сообщение Alexandr_N » 17 ноя 2011, 09:32

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

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

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 17 ноя 2011, 09:41

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

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

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 17 ноя 2011, 10:10

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


Alexandr_N
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 04 авг 2010, 07:35
Ф.И.О.: инженер

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

Сообщение Alexandr_N » 17 ноя 2011, 11:02

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

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

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 17 ноя 2011, 12:08

Хорошо, спасибо еще раз!!!

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

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 17 ноя 2011, 12:46

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

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


Alexandr_N
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 04 авг 2010, 07:35
Ф.И.О.: инженер

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

Сообщение Alexandr_N » 17 ноя 2011, 13:13

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

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

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 17 ноя 2011, 13:18

пожалуйста:

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

#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, 07:35
Ф.И.О.: инженер

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

Сообщение Alexandr_N » 17 ноя 2011, 13:23

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


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

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

Сообщение Василий Иванович » 17 ноя 2011, 13:23

а return кто будет писать - Пушкин?

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

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 17 ноя 2011, 13:27

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

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

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 22 ноя 2011, 13:28

Люди, ну подскажите, так ничего и не выходит от незнания... Как сложить два значения, а результат занести в другой внутренний тег. Имеются два аналоговых значения с типом "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
осмотрелся
осмотрелся
Сообщения: 127
Зарегистрирован: 12 авг 2010, 00:49
Ф.И.О.: Анохин С.А.

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

Сообщение Sergeyvmm » 22 ноя 2011, 16:37

Уже написал один умный человек
на каком событие висит скрипт, а то на вид не определю.

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

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


Alexandr_N
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 04 авг 2010, 07:35
Ф.И.О.: инженер

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

Сообщение Alexandr_N » 23 ноя 2011, 07:58

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

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

#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
осмотрелся
осмотрелся
Сообщения: 127
Зарегистрирован: 12 авг 2010, 00:49
Ф.И.О.: Анохин С.А.

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

Сообщение Sergeyvmm » 23 ноя 2011, 10:42

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


Alexandr_N
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 04 авг 2010, 07:35
Ф.И.О.: инженер

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

Сообщение Alexandr_N » 24 ноя 2011, 07:00

Sergeyvmm писал(а):Alexandr_N: не забываем, что тэги имеют тип "32-битовое число с плавающей точкой" ;)

Согласен, нужно учесть в функциях GetTag и SetTag.

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

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 28 ноя 2011, 10:20

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


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



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей