- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
fx3g+fx5a
Модераторы: Глоб.модераторы, специалисты по PLC
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 06 сен 2023, 12:17
- Имя: Александр
- Страна: Россия
- город/регион: Москва
fx3g+fx5a
Доброго время суток. Хочу освоить данный контроллер. Знаний в этом не особо). Что то получается а что то и нет. Хочу обратиться к знающим людям чтоб помогли советом, направили куда надо. Сигнал 0-10В берется с AL2-2TC-ACP к которому подключена термопара типа К. Вопрос как отмаштобировать сигнал. Пытаюсь сделать по этой формуле. (Для термопары она не совсем подходит, но хотя бы принцип понять.
B=(A-A1)*k+B1
где:
A - входное текущее значение; 5480
B - выходное (масштабированное) значение; 26
A1 - входное минимальное значение; 3890
A2 - входное максимальное значение; 10000
B1 - выходное минимальное значение; 0
B2 - выходное максимальное значение; 100
k - коэффициент: 0,016
k=(B2-B1)/(A2-A1)
Не получается коэффициент посчитать. Что не так делаю?
B=(A-A1)*k+B1
где:
A - входное текущее значение; 5480
B - выходное (масштабированное) значение; 26
A1 - входное минимальное значение; 3890
A2 - входное максимальное значение; 10000
B1 - выходное минимальное значение; 0
B2 - выходное максимальное значение; 100
k - коэффициент: 0,016
k=(B2-B1)/(A2-A1)
Не получается коэффициент посчитать. Что не так делаю?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 98
- Зарегистрирован: 01 апр 2022, 11:08
- Имя: Артем
- город/регион: Благовещенск
- Благодарил (а): 1 раз
- Поблагодарили: 25 раз
fx3g+fx5a
Полагаю вы используете целочисленное вычисление, поэтому вам ПЛК логично возвращает 0.
Пользуйтесь командами операций с плавающей точкой. И ответ у вас при этом будет занимать два слова, а не одно.
Пользуйтесь командами операций с плавающей точкой. И ответ у вас при этом будет занимать два слова, а не одно.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 06 сен 2023, 12:17
- Имя: Александр
- Страна: Россия
- город/регион: Москва
fx3g+fx5a
Спасибо за ответ. Я так тоже думаю, из-за этого и написал DEDIV D150 D153 D156. Но почему-то в D156 и D157 записаны какакие-то не правильные значения. Или нужно с 32бит данными работать... ниже на рисунке более правильные данные.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 98
- Зарегистрирован: 01 апр 2022, 11:08
- Имя: Артем
- город/регион: Благовещенск
- Благодарил (а): 1 раз
- Поблагодарили: 25 раз
fx3g+fx5a
С чего вы взяли что они не правильные? Они у вас просто в формате 16-bit Signed, а нужно переменную D156 представить в формате 32-bit float.
По внешнему виду того, что лежит в ячейках D156 и 157 довольно тредно сказать правильный результат в будет в формате float или нет, вы занимаетесь ерундой. Через программу вы можете посмотреть содержимое ячеек 156 и 157 формате float?
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 06 сен 2023, 12:17
- Имя: Александр
- Страна: Россия
- город/регион: Москва
fx3g+fx5a
Как посмотреть содержимое ячеек 156 и 157 формате float к сожалению не знаю. Если знаете как, подскажите посмотрю. Значения в 16бит могут быть от -32768 до 32767 у нас же делимые значения и результат получается как раз в этой области.
Отправлено спустя 11 минут 9 секунд:
Может значение D156 сразу умножить на 10000 чтоб получилось константа 163, и далее перейти на 32бит данные?
Отправлено спустя 10 минут 13 секунд:
вроде получилось в D168 появилось правильное фактическое значение температуры...
Отправлено спустя 11 минут 9 секунд:
Может значение D156 сразу умножить на 10000 чтоб получилось константа 163, и далее перейти на 32бит данные?
Отправлено спустя 10 минут 13 секунд:
вроде получилось в D168 появилось правильное фактическое значение температуры...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 06 сен 2023, 12:17
- Имя: Александр
- Страна: Россия
- город/регион: Москва
-
- здесь недавно
- Сообщения: 98
- Зарегистрирован: 01 апр 2022, 11:08
- Имя: Артем
- город/регион: Благовещенск
- Благодарил (а): 1 раз
- Поблагодарили: 25 раз
fx3g+fx5a
Так у вас ни чего не выйдет.
Должно быть примерно так:
1) D150 = K100 - K0
2) D151 = K10000 - K3890
3) D152 = INT2FLT D150
4) D154 = INT2FLT D151
5) D156 = DEDIV D152 D154
Вы же используете DDIV и у вас два целочисленных 32-битных слова делятся, возвращая целочисленный результат.
Кроме того у вас переменные 151 и 154 не нулевые, поэтому вы делите не 100 и 6110 как вы предполагаете, а какие-то совсем другие числа.
Возьмите за правило перед математическими операциями забивать адресное поле операций нулями, если не можете контролировать их содержимое. Избавит от многих проблем.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 06 сен 2023, 12:17
- Имя: Александр
- Страна: Россия
- город/регион: Москва
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 06 сен 2023, 12:17
- Имя: Александр
- Страна: Россия
- город/регион: Москва
fx3g+fx5a
Точно, правильно FX2N-5A. Здесь можно как то тему исправить?
Отправлено спустя 59 минут 58 секунд:
С функцией FLT все получилось. На фото LD4 видно что все посчиталось правильно. Данная реализация подходит для работы с линейными датчиками температуры или участками на характеристиках. А как теперь быть с термопарой на графике видно что термопара типа К при температуре 520 меняет направление. В данном случае придется вводить поправочный коэффициент при достижении данной точки, правильно? или данный процесс реализуется по другому?
Отправлено спустя 59 минут 58 секунд:
С функцией FLT все получилось. На фото LD4 видно что все посчиталось правильно. Данная реализация подходит для работы с линейными датчиками температуры или участками на характеристиках. А как теперь быть с термопарой на графике видно что термопара типа К при температуре 520 меняет направление. В данном случае придется вводить поправочный коэффициент при достижении данной точки, правильно? или данный процесс реализуется по другому?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- не первый раз у нас
- Сообщения: 306
- Зарегистрирован: 26 май 2022, 12:10
- Имя: Александр
- Страна: Россия
- город/регион: lipetsk
- Благодарил (а): 5 раз
- Поблагодарили: 28 раз
-
- здесь недавно
- Сообщения: 98
- Зарегистрирован: 21 мар 2023, 02:12
- Имя: Владимир
- Страна: РФ
- город/регион: Псков
- Благодарил (а): 2 раза
- Поблагодарили: 21 раз
fx3g+fx5a
В документации на модуль AL2-2TC-ACP компенсируемый диапазон -50° - + 450°С. Всё, что за этими пределами надо "компенсировать" самому. Т.к. характеристика нелинейна, то нужно вводить поправочные коэффициенты по таблице, например. На каждый требуемый градус точности.
А диапазон преобразования указан -70° - + 470°С. Что модуль выдаст за этими пределами я сказать не берусь.
А диапазон преобразования указан -70° - + 470°С. Что модуль выдаст за этими пределами я сказать не берусь.