- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
WinCC скрипт 2
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 5
- Зарегистрирован: 09 авг 2016, 09:43
- Имя: Кузнецов Алексей Петрович
- Благодарил (а): 1 раз
WinCC скрипт 2
Всем добрый вечер! Помогите решить проблему: Необходимо входной тег 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 помогите пожалуйста
Попробовал написать скриптик (в программировании не силен)
#include "apdefap.h"
double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
GetTagWord("temp_peredn_podsh") * (0.1);
return 0;
чтото пошло не так не хочет запятая двигаться ни при *0,1 ни при /10 помогите пожалуйста
-
- здесь недавно
- Сообщения: 6
- Зарегистрирован: 09 авг 2016, 15:53
- Имя: Сергей
-
- знаток Eplan
- Сообщения: 1136
- Зарегистрирован: 21 сен 2012, 22:45
- Имя: aranea
- Благодарил (а): 30 раз
- Поблагодарили: 165 раз
WinCC скрипт 2
если 999,9 поделить на 10 получится 99,99, а не 99
отсюда вопрос: что нужно сделать и для чего?
2. ваша функция всегда возвращает 0, это return 0; в вашем коде
если нужно значение тега, поделенное на 10 записать в новый тег, то SetTagDouble()
если нужно вывести его как результат выполнения вашей функции, то return GetTagDouble("temp_peredn_podsh") / 10.0;
в правилах хорошего тона и для возможности замены тегов через Linking лучше использовать секции в коде (закомментированные строки надо оставить)
а вообще есть масштабирование в настройках тегов (Linear Scaling), можно сразу там делить
и непонятно зачем значение температуры переднего подшипника делить на 10
обычно код с модуля приходит 0366, и при делении на 10 дает 36,6 (или на 100 в зависимости от типа датчика и модуля), но это надо в контроллере делать
отсюда вопрос: что нужно сделать и для чего?
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;
}
и непонятно зачем значение температуры переднего подшипника делить на 10
обычно код с модуля приходит 0366, и при делении на 10 дает 36,6 (или на 100 в зависимости от типа датчика и модуля), но это надо в контроллере делать
-
- здесь недавно
- Сообщения: 5
- Зарегистрирован: 09 авг 2016, 09:43
- Имя: Кузнецов Алексей Петрович
- Благодарил (а): 1 раз
WinCC скрипт 2
Огромное спасибо! вбил: return GetTagDouble("temp_peredn_podsh") / 10.0; - все заработало.
Только при сохранении ругается на что то , ну да бог с ним, значение тега передвинулось с 999 на 99,9 - - еще раз спасибо.
Подскажите а как сделать масштабирование в настройках тегов (Linear Scaling)?
И еще, можно ли присвоить звуковой аларм по достижению критического значения, надо наверно как то вводить значение уставок!?
Только при сохранении ругается на что то , ну да бог с ним, значение тега передвинулось с 999 на 99,9 - - еще раз спасибо.
Подскажите а как сделать масштабирование в настройках тегов (Linear Scaling)?
И еще, можно ли присвоить звуковой аларм по достижению критического значения, надо наверно как то вводить значение уставок!?
-
- знаток Eplan
- Сообщения: 1136
- Зарегистрирован: 21 сен 2012, 22:45
- Имя: aranea
- Благодарил (а): 30 раз
- Поблагодарили: 165 раз
WinCC скрипт 2
скорее всего из-за циклической настройки триггера срабатывания функцииkap2016 писал(а):Только при сохранении ругается на что то
лучше использовать по изменению тега (Upon change)
в Tag Management в свойствах тега temp_peredn_podshkap2016 писал(а):Подскажите а как сделать масштабирование в настройках тегов (Linear Scaling)?
разбираться с Horn или новая темаkap2016 писал(а):И еще, можно ли присвоить звуковой аларм по достижению критического значения, надо наверно как то вводить значение уставок!?
-
- здесь недавно
- Сообщения: 5
- Зарегистрирован: 09 авг 2016, 09:43
- Имя: Кузнецов Алексей Петрович
- Благодарил (а): 1 раз
WinCC скрипт 2
Что такое Upon chenge и где его искать то?
А в liner scaling что надо сделать?
Я прграммировании очень плох, помогите
А в liner scaling что надо сделать?
Я прграммировании очень плох, помогите
-
- здесь недавно
- Сообщения: 5
- Зарегистрирован: 09 авг 2016, 09:43
- Имя: Кузнецов Алексей Петрович
- Благодарил (а): 1 раз
WinCC скрипт 2
при сохранении осталось теперь 2 предупреждения, было 4. Cjntrol1 - Value и Control 4 - Value.
А как быть со звуком? или надо создать отдельный форум?
И вообще огромное Вам спасибо! Даже не знаю как Вас отблагодарить!?!?!?!
А как быть со звуком? или надо создать отдельный форум?
И вообще огромное Вам спасибо! Даже не знаю как Вас отблагодарить!?!?!?!