NI OPC server & LabVIEW

Простейшие вопросы в области инженерной разработки
Ответить
Аватара пользователя
ARN1_1
beginner
beginner
Сообщения: 14
Зарегистрирован: 20 янв 2023, 00:04
Версия LabVIEW: 2021-2022
Благодарил (а): 3 раза
Контактная информация:

NI OPC server & LabVIEW

Сообщение ARN1_1 »

Доброго здравия, господа.
Хотел бы обратиться за помощью, а именно с реализацией корректного отображение графиков при подключенных адресов из Tia Portal.

Проблема в том, как я понял, что данные, передаваемые в :labview: из ПЧ идут по типу- HEX и из-за чего графики строятся некорректно.
Ниже прикреплю то "чудо" мыслей по построению логических функций и как я их пытался реализовать, но хотел бы спросить на счет того, как правильно поступить, чтобы все работало корректно.
Почитал на счет этого в интернете, но нашел, что для эл.привода с 1500 (об/мин) - max HEX=16535 и это число идёт и на момент и на ток и на регулировку скорости при max оборотах.
Удалось только грамотно сделать настройку регулировочного ползунка, умножив значение ещё и на 10, но с графиками без понятия. В LabVIEW особо не шарю, поэтому сижу, разбираюсь, интересуюсь. :crazy:
(Извиняюсь за качество скриншотов, пришлось фоткать на телефон)
Вложения
properties.jpg
LabVIEW.jpg
LabVIEW str.jpg
Tia Portal.jpg
Artem.spb

Activity Автор
professor
professor
Сообщения: 3402
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: NI OPC server & LabVIEW

Сообщение Artem.spb »

ARN1_1 писал(а): 01 фев 2023, 03:54 из ПЧ идут по типу- HEX и из-за чего графики строятся некорректно.
Что значит "по типу-HEX"?
hex - это текстовое представление числа, а вы читаете просто байты.
В настройках у вас dbl, т.е. 64 бита и плавающая запятая.
Попробуйте разные целочисленные. То, что график скачет, намекает на то, что вы хватаете куски разных чисел именно из-за того, что битность не совпадает.
А если вы прямо строки снизу отправляете, то надо строки и читать и переводить их в числи (см палитру строк), но для начала просто отобразите на экране строку, которая приходит, чтобы убедиться, что чтение верное
Аватара пользователя
ARN1_1
beginner
beginner
Сообщения: 14
Зарегистрирован: 20 янв 2023, 00:04
Версия LabVIEW: 2021-2022
Благодарил (а): 3 раза
Контактная информация:

Re: NI OPC server & LabVIEW

Сообщение ARN1_1 »

А можете, пожалуйста, подсказать, как отобразить эту строку, чтобы понимать все окей или что-то теряется?
Artem.spb

Activity Автор
professor
professor
Сообщения: 3402
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: NI OPC server & LabVIEW

Сообщение Artem.spb »

ARN1_1 писал(а): 01 мар 2023, 19:36 А можете, пожалуйста, подсказать, как отобразить эту строку, чтобы понимать все окей или что-то теряется?
Правой кнопкой на строку и вместо "normal disp" выбрать "Hex"
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1334
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 40 раз
Контактная информация:

Re: NI OPC server & LabVIEW

Сообщение AndreyDmitriev »

У вас типы не соотвтетствуют, то что вы получаете из ПЛК должно соотвтетствовать типу LabVIEW. Вообще у вас всего шесть вариантов - BYTE (в LabVIEW это будет U8), WORD(U16), DWORD(U32), INT(I16), DINT(I32) и REAL(SGL). BYTE - это один байт, WORD и INT - два байта, а DWORD, DINT и REAL - 4 (32 бита то есть). В 64 бита Step7 из коробки не умеет, так что ваша попытка получить это дело как DBL уже неправильна сама по себе.
Глядя на скриншот, что-то мне подсказывает, что у вас там 16 бит, это значит либо WORD либо INT, в зависимости от того, со знаком оно там или без, так что U16 или I16 - скорее всего ваш выбор. Я б для начала посмотрел в OPC Scout что там реально в OPC пишется (и там тоже нужно будет указать правильный тип), вот ровно то же значение вы и должны получить в LabVIEW. Обычно, кстати, данные с плавающей точной из ПЛК передаются как целые, домноженные на 10 или 100 или 1000 в зависимости от количества знаков после запятой, котрые хочется поучить (ну и от масимальной величины переменной) - так заметно проще. Ну то есть, чтобы передать 1450.2 пишется целое 14502 и на стороне клиента делится обратно. Если же Siemens вам REAL отдаёт, тогда в LabVIEW это будет SGL (насколько знаю, Сименс использует стандарт IEEE, так что байтовое представление должно совпасть).
Ну а график - просто возьмите Wafeform Chart и подключите его внутри цикла точно также как вы слайдер подключаете - он будет отображать последнюю сотню прилетевших значений, глубину буфера (который 1024 по умолчанию) там можно настроить, щёлкнув правой кнопкой мыши.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»