Использую тип данных WORD, при реверсе изначально приходит значение грубо сказать "с конца 65535". Вероятно это так и должно, вот только инвертировать это возможно? При прямом вращении все как положено отображается. Еще подскажите, сымитировать панель + ПЛК совместно возможно без физических устройств?
Последний раз редактировалось ivan.v; 13.04.2023 в 21:22.
Так и не написали где показывает -65535 ?
Вот скрин на панели, в одном и том же регистре одно и тоже число, 1 Типы переменных .jpg на ПЛК разный тип данных 1 Типы в ПЛК 2.jpg
только представление чисел разное
Чтобы сделать эмуляцию, нужно хотя бы одно физическое устройство и переходник USB-RS485, типа АС-4.
Эмулятор ПЛК может работать и как мастер и как слейв, панель в эмуляции будет работать только как мастер сети (Модбас RTU).
Для тренировки можно купить панель в 4-5 раз дешевле СПхх
Последний раз редактировалось kondor3000; 13.04.2023 в 22:31.
Спасибо за подсказку. На панели заменил формат данных с INT в DEC как Вы и говорили, теперь отображается информация адекватно, правда с минусом при реверсе, но хоть понятна фактическая частота. Еще такой момент, нужно ли объединять два регистра для передачи значения, что указано на фото? Смысл в том что выходной ток рассчитывается по формуле (фото), но сделав по инструкции присутствует ошибка и данные теряются на умножении (это из за большого значения, я же вроде делю его потом)?
Последний раз редактировалось ivan.v; 14.04.2023 в 11:36.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Проблема из за больших значений, надо использовать например DWORD (или сразу конветрировать в REAL) и выход получается с точкой ( REAL ), даже после упрощения.
Но передать можно и целочисленным, например 6,8 А получилось, умножаем на 10 и конвертируем в WORD и передаём число 68,
а в панели просто ставим 1 знак после запятой, (как бы делим на 10)
Конвертировать в REAL или DWORD ( WORD) можно добавив элемент и вписать в него TO_REAL или TO_DWORD ( TO_WORD )
Кстати если вы хотите убрать минус на панели для частоты, в программе ПЛК между переменными, можно тоже добавить элемент и вписать в него ABS (число по модулю), только числа надо будет сначала конвертировать в INT.
Например получили 65535, после конверсии -1, по модулю будет 1, и передаёте потом.
Последний раз редактировалось kondor3000; 14.04.2023 в 13:52.
Не так, полученное сразу конвертируете, лучше сразу в REAL, потом всё считаете, потом умножаете на 10 и конвертируете в WORD и отправляете. Если вам удобнее можно использовать промежуточные переменные.
Для WORD максимум 65535, числа 655360 уже за диапазоном. На предыдущей странице скрин с типами переменных.
Последний раз редактировалось kondor3000; 14.04.2023 в 14:42.