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

WinCC скрипт 2


Автор темы
kap2016
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 09 авг 2016, 09:43
Ф.И.О.: Кузнецов Алексей Петрович
Благодарил (а): 1 раз

WinCC скрипт 2

Сообщение kap2016 » 09 авг 2016, 09:53

Всем добрый вечер! Помогите решить проблему: Необходимо входной тег 999,9 преобразовать в 99.
Попробовал написать скриптик (в программировании не силен)
#include "apdefap.h"
double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
GetTagWord("temp_peredn_podsh") * (0.1);
return 0;
чтото пошло не так не хочет запятая двигаться ни при *0,1 ни при /10 помогите пожалуйста


grey1983
новенький
новенький
Сообщения: 2
Зарегистрирован: 09 авг 2016, 15:53
Ф.И.О.: Сергей

WinCC скрипт 2

Сообщение grey1983 » 09 авг 2016, 16:03

По-моему Word не может хранить дробные числа


Автор темы
kap2016
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 09 авг 2016, 09:43
Ф.И.О.: Кузнецов Алексей Петрович
Благодарил (а): 1 раз

WinCC скрипт 2

Сообщение kap2016 » 10 авг 2016, 06:34

тогда как быть?

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

aranea
знаток Eplan
знаток Eplan
Сообщения: 519
Зарегистрирован: 21 сен 2012, 21:45
Ф.И.О.: Воробьев Александр
Поблагодарили: 12 раз
Контактная информация:

WinCC скрипт 2

Сообщение aranea » 10 авг 2016, 08:56

если 999,9 поделить на 10 получится 99,99, а не 99
отсюда вопрос: что нужно сделать и для чего?
kap2016 писал(а):Источник цитаты
double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
GetTagWord("temp_peredn_podsh") * (0.1);
return 0;
}

1. GetTagWord()вряд ли будет правильно работать с Double, проверять лень, а для чисел с запятой есть GetTagDouble()
2. ваша функция всегда возвращает 0, это return 0; в вашем коде

если нужно значение тега, поделенное на 10 записать в новый тег, то SetTagDouble()
если нужно вывести его как результат выполнения вашей функции, то return GetTagDouble("temp_peredn_podsh") / 10.0;

в правилах хорошего тона и для возможности замены тегов через Linking лучше использовать секции в коде (закомментированные строки надо оставить)

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

double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
#define Tag "temp_peredn_podsh"
// WINCC:TAGNAME_SECTION_END

return GetTagDouble(Tag) / 10.0;
}


а вообще есть масштабирование в настройках тегов (Linear Scaling), можно сразу там делить
и непонятно зачем значение температуры переднего подшипника делить на 10
обычно код с модуля приходит 0366, и при делении на 10 дает 36,6 (или на 100 в зависимости от типа датчика и модуля), но это надо в контроллере делать
Изображение


Автор темы
kap2016
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 09 авг 2016, 09:43
Ф.И.О.: Кузнецов Алексей Петрович
Благодарил (а): 1 раз

WinCC скрипт 2

Сообщение kap2016 » 10 авг 2016, 13:58

Огромное спасибо! вбил: return GetTagDouble("temp_peredn_podsh") / 10.0; - все заработало.
Только при сохранении ругается на что то , ну да бог с ним, значение тега передвинулось с 999 на 99,9 - - еще раз спасибо.
Подскажите а как сделать масштабирование в настройках тегов (Linear Scaling)?
И еще, можно ли присвоить звуковой аларм по достижению критического значения, надо наверно как то вводить значение уставок!?

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

aranea
знаток Eplan
знаток Eplan
Сообщения: 519
Зарегистрирован: 21 сен 2012, 21:45
Ф.И.О.: Воробьев Александр
Поблагодарили: 12 раз
Контактная информация:

WinCC скрипт 2

Сообщение aranea » 10 авг 2016, 14:31

kap2016 писал(а):Только при сохранении ругается на что то

скорее всего из-за циклической настройки триггера срабатывания функции
лучше использовать по изменению тега (Upon change)
kap2016 писал(а):Подскажите а как сделать масштабирование в настройках тегов (Linear Scaling)?

в Tag Management в свойствах тега temp_peredn_podsh
kap2016 писал(а):И еще, можно ли присвоить звуковой аларм по достижению критического значения, надо наверно как то вводить значение уставок!?

разбираться с Horn или новая тема
Изображение


Автор темы
kap2016
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 09 авг 2016, 09:43
Ф.И.О.: Кузнецов Алексей Петрович
Благодарил (а): 1 раз

WinCC скрипт 2

Сообщение kap2016 » 10 авг 2016, 16:20

Что такое Upon chenge и где его искать то?
А в liner scaling что надо сделать?
Я прграммировании очень плох, помогите :crazy0to:

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

aranea
знаток Eplan
знаток Eplan
Сообщения: 519
Зарегистрирован: 21 сен 2012, 21:45
Ф.И.О.: Воробьев Александр
Поблагодарили: 12 раз
Контактная информация:

WinCC скрипт 2

Сообщение aranea » 10 авг 2016, 16:31

Tag_Properties.png

Change_Trigger.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение


Автор темы
kap2016
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 09 авг 2016, 09:43
Ф.И.О.: Кузнецов Алексей Петрович
Благодарил (а): 1 раз

WinCC скрипт 2

Сообщение kap2016 » 11 авг 2016, 06:32

при сохранении осталось теперь 2 предупреждения, было 4. Cjntrol1 - Value и Control 4 - Value.
А как быть со звуком? или надо создать отдельный форум?
И вообще огромное Вам спасибо! Даже не знаю как Вас отблагодарить!?!?!?!


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



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

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