Показать сообщение отдельно
Старый 11.07.2023, 07:05   #2
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 171
Благодарил(а): 241 раз(а)
Поблагодарили: 166 раз(а) в 158 сообщениях
По умолчанию Ответ: Электронное табло с Mod Bus RS485

Цитата:
Сообщение от razerface Посмотреть сообщение
Здравствуйте форумчане. Есть у меня задача выводить на электронное табло число до 40000. При попытке записать в переменную 1004 показывает какую то пургу. Ниже инфа от заказчика. может кто чего подскажет?

Modbus RTU 9600/8/N/1. Интерфейс RS485 2W(полудуплекс).
Func 06 / 16 – Write Holding Register
Регистр 1000 – Управляющий
Запись значения 1 – перепрограммирует Modbus адрес, табло перезагрузиться через 1 сек.
Регистр 1001 – яркость табло, по умолчанию 100%.
0..100%
Регистр 1002 – новый Modbus адрес.
Регистр 1004 (и1005) – 32 бит отображаемого числа.
В регистр записывается отображаемое 32 битное число. (signed int) XXXXXXX
Регистры с 1008 до 1011 – прямое включения сегментов 7ми сегментных индикаторов.
Старший байт 1008го регистра - 1я цифра (левая)
Младший байт 1008го регистра - 2я цифра
Старший байт 1009го регистра - 3я цифра
Младший байт 1009го регистра - 4я цифра
Старший байт 1010го регистра - 5я цифра
Младший байт 1010го регистра - 6я цифра
Старший байт 1011го регистра - 7я цифра(правая)
Дисплей обновляется при записи 1011го регистра.
• 1бит байта (0x01) – сегмент A
• 2бит байта (0x02) – сегмент B
• 3бит байта (0x04) – сегмент C
• 4бит байта (0x08) – сегмент D
• 5бит байта (0x10) – сегмент E
• 6бит байта (0x20) – сегмент F
• 7бит байта (0x40) – сегмент G
• 8бит байта (0x80) – сегмент DP точка

Так же доступно чтение всех регистров Func 03 Read Holding Register

Пример управлением табло
Адреса регистров с 1000, значения 16bit.
а что читается из того регистра?


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием