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

WinCC скрипт 2

Ответить

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

WinCC скрипт 2

Сообщение kap2016 »

Всем добрый вечер! Помогите решить проблему: Необходимо входной тег 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
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 09 авг 2016, 15:53
Имя: Сергей

WinCC скрипт 2

Сообщение grey1983 »

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

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

WinCC скрипт 2

Сообщение kap2016 »

тогда как быть?
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

WinCC скрипт 2

Сообщение aranea »

если 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 »

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

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

WinCC скрипт 2

Сообщение aranea »

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

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

WinCC скрипт 2

Сообщение kap2016 »

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

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

WinCC скрипт 2

Сообщение aranea »

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

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

WinCC скрипт 2

Сообщение kap2016 »

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

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