Доброго здравия, господа.
Хотел бы обратиться за помощью, а именно с реализацией корректного отображение графиков при подключенных адресов из Tia Portal.
Проблема в том, как я понял, что данные, передаваемые в из ПЧ идут по типу- HEX и из-за чего графики строятся некорректно.
Ниже прикреплю то "чудо" мыслей по построению логических функций и как я их пытался реализовать, но хотел бы спросить на счет того, как правильно поступить, чтобы все работало корректно.
Почитал на счет этого в интернете, но нашел, что для эл.привода с 1500 (об/мин) - max HEX=16535 и это число идёт и на момент и на ток и на регулировку скорости при max оборотах.
Удалось только грамотно сделать настройку регулировочного ползунка, умножив значение ещё и на 10, но с графиками без понятия. В LabVIEW особо не шарю, поэтому сижу, разбираюсь, интересуюсь.
(Извиняюсь за качество скриншотов, пришлось фоткать на телефон)
NI OPC server & LabVIEW
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: NI OPC server & LabVIEW
Что значит "по типу-HEX"?
hex - это текстовое представление числа, а вы читаете просто байты.
В настройках у вас dbl, т.е. 64 бита и плавающая запятая.
Попробуйте разные целочисленные. То, что график скачет, намекает на то, что вы хватаете куски разных чисел именно из-за того, что битность не совпадает.
А если вы прямо строки снизу отправляете, то надо строки и читать и переводить их в числи (см палитру строк), но для начала просто отобразите на экране строку, которая приходит, чтобы убедиться, что чтение верное
- ARN1_1
- beginner
- Сообщения: 14
- Зарегистрирован: 20 янв 2023, 00:04
- Версия LabVIEW: 2021-2022
- Благодарил (а): 3 раза
- Контактная информация:
Re: NI OPC server & LabVIEW
А можете, пожалуйста, подсказать, как отобразить эту строку, чтобы понимать все окей или что-то теряется?
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
-
- VIP
- Сообщения: 1338
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
- Контактная информация:
Re: NI OPC server & LabVIEW
У вас типы не соотвтетствуют, то что вы получаете из ПЛК должно соотвтетствовать типу 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 по умолчанию) там можно настроить, щёлкнув правой кнопкой мыши.
Глядя на скриншот, что-то мне подсказывает, что у вас там 16 бит, это значит либо WORD либо INT, в зависимости от того, со знаком оно там или без, так что U16 или I16 - скорее всего ваш выбор. Я б для начала посмотрел в OPC Scout что там реально в OPC пишется (и там тоже нужно будет указать правильный тип), вот ровно то же значение вы и должны получить в LabVIEW. Обычно, кстати, данные с плавающей точной из ПЛК передаются как целые, домноженные на 10 или 100 или 1000 в зависимости от количества знаков после запятой, котрые хочется поучить (ну и от масимальной величины переменной) - так заметно проще. Ну то есть, чтобы передать 1450.2 пишется целое 14502 и на стороне клиента делится обратно. Если же Siemens вам REAL отдаёт, тогда в LabVIEW это будет SGL (насколько знаю, Сименс использует стандарт IEEE, так что байтовое представление должно совпасть).
Ну а график - просто возьмите Wafeform Chart и подключите его внутри цикла точно также как вы слайдер подключаете - он будет отображать последнюю сотню прилетевших значений, глубину буфера (который 1024 по умолчанию) там можно настроить, щёлкнув правой кнопкой мыши.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 7 Ответы
- 2239 Просмотры
-
Последнее сообщение ujin1
-
- 0 Ответы
- 926 Просмотры
-
Последнее сообщение Juri
-
- 0 Ответы
- 953 Просмотры
-
Последнее сообщение Juri
-
- 3 Ответы
- 2069 Просмотры
-
Последнее сообщение PozhiloyGoblin
-
- 0 Ответы
- 344 Просмотры
-
Последнее сообщение maxim_MA