Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2023, 02:16   #1
razerface
Senior Member
 
Аватара для razerface
 
Регистрация: May 2014
Адрес: S-Pb
Сообщения: 278
Благодарил(а): 4 раз(а)
Поблагодарили: 16 раз(а) в 15 сообщениях
По умолчанию Электронное табло с Mod Bus RS485 (решено)

Здравствуйте форумчане. Есть у меня задача выводить на электронное табло число до 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.
razerface вне форума   Ответить с цитированием
Старый 11.07.2023, 07:05   #2
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Ответ: Электронное табло с 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 вне форума   Ответить с цитированием
Старый 11.07.2023, 07:32   #3
razerface
Senior Member
 
Аватара для razerface
 
Регистрация: May 2014
Адрес: S-Pb
Сообщения: 278
Благодарил(а): 4 раз(а)
Поблагодарили: 16 раз(а) в 15 сообщениях
По умолчанию Ответ: Электронное табло с Mod Bus RS485

При выставлении 1 на табло 13937, при выставлении 2 на табло 63483, при выставлении 3 и выше - прочерки
razerface вне форума   Ответить с цитированием
Старый 11.07.2023, 09:19   #4
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Ответ: Электронное табло с Mod Bus RS485

Цитата:
Сообщение от razerface Посмотреть сообщение
При выставлении 1 на табло 13937, при выставлении 2 на табло 63483, при выставлении 3 и выше - прочерки
значит надо попытаться покрутить байты перед выставлением в регистр.
никто ж не знает что было в голове у погроммиста когда он выдумывал свое табло.
плюс подвигать адреса влево-право на +/-1. хоть это проще проверить битами в семисегментом варианте индикации. хотя м.б. этим вариантом в итоге и получится проще всего воспользоваться


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 11.07.2023, 10:57   #5
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Электронное табло с Mod Bus RS485

Цитата:
Сообщение от razerface Посмотреть сообщение
При выставлении 1 на табло 13937, при выставлении 2 на табло 63483, при выставлении 3 и выше - прочерки
Странная цифирь. В числах существенно больше одного бита.

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

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


Цитата:
Сообщение от LordN Посмотреть сообщение
это проще проверить битами в семисегментом варианте индикации.
Я бы тоже попробовал туда -1 записывать.


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Старый 11.07.2023, 11:46   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 116
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Электронное табло с Mod Bus RS485

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

По вашему вопросу, нужно погуглить расположение сегментов на 7-сегментных индикаторах и устанавливать биты нужных сегментов, чтобы из них сложились нужные цифры. Это я про прямую адресацию в регистрах 1008 и далее.

А так я бы начал с поиска регистра яркости, чтобы понять, что куда там смещено. Это проще всего.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 11.07.2023, 15:05   #7
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Ответ: Электронное табло с Mod Bus RS485

Цитата:
Странная цифирь.
зеркало, инверсия, переставление тетрад в байте...
в 13937 младшая тетрада как раз =1


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 11.07.2023, 15:41   #8
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Электронное табло с Mod Bus RS485

Цитата:
Сообщение от LordN Посмотреть сообщение
зеркало, инверсия, переставление тетрад в байте...
в 13937 младшая тетрада как раз =1
13937 = 0x00003671 = 00000000 00000000 00110110 01110001
63483 = 0x0000F7FB = 00000000 00000000 11110111 11111011

Уж больно единиц дохрена


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Старый 11.07.2023, 19:48   #9
razerface
Senior Member
 
Аватара для razerface
 
Регистрация: May 2014
Адрес: S-Pb
Сообщения: 278
Благодарил(а): 4 раз(а)
Поблагодарили: 16 раз(а) в 15 сообщениях
По умолчанию Ответ: Электронное табло с Mod Bus RS485

Цитата:
Сообщение от Arsie Посмотреть сообщение
О, а скиньте, что за модель. Я тут тоже подыскиваю табло с большими цифрами.

По вашему вопросу, нужно погуглить расположение сегментов на 7-сегментных индикаторах и устанавливать биты нужных сегментов, чтобы из них сложились нужные цифры. Это я про прямую адресацию в регистрах 1008 и далее.

А так я бы начал с поиска регистра яркости, чтобы понять, что куда там смещено. Это проще всего.
К сожалению никаких опознавательных знаков нет на ней, делалась под заказ. Я спросил заказчика, он завтра даст подробную инфу. Табло отечественного производителя IP 65 (все что знаю)
razerface вне форума   Ответить с цитированием
Старый 12.07.2023, 23:21   #10
razerface
Senior Member
 
Аватара для razerface
 
Регистрация: May 2014
Адрес: S-Pb
Сообщения: 278
Благодарил(а): 4 раз(а)
Поблагодарили: 16 раз(а) в 15 сообщениях
По умолчанию Ответ: Электронное табло с Mod Bus RS485

Еще раз говорю - собирают под заказ, в потроха все по желанию заказчика, модельный ряд отсутствует как таковой. Размеры табло, количество сегментов, размер сегментов, цвет, шмет, мет - все по желанию заказчика.
razerface вне форума   Ответить с цитированием
Старый 12.07.2023, 23:27   #11
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 116
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Электронное табло с Mod Bus RS485

Цитата:
Сообщение от razerface Посмотреть сообщение
Еще раз говорю - собирают под заказ, в потроха все по желанию заказчика, модельный ряд отсутствует как таковой. Размеры табло, количество сегментов, размер сегментов, цвет, шмет, мет - все по желанию заказчика.
Спасибо)


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 13.07.2023, 01:42   #12
razerface
Senior Member
 
Аватара для razerface
 
Регистрация: May 2014
Адрес: S-Pb
Сообщения: 278
Благодарил(а): 4 раз(а)
Поблагодарили: 16 раз(а) в 15 сообщениях
По умолчанию Ответ: Электронное табло с Mod Bus RS485

С адресацией разобрался:
1. Регистр 1000 – Управляющий (999 верный) Запись значения 1 – перепрограммирует Modbus адрес, табло перезагрузиться через 1 сек.
2. Регистр 1002 – новый Modbus адрес. (1001 верный)
3. Регистр 1004 (и1005) – 32 бит отображаемого числа. (1003 верный) но на поляну нужно выставлять 1004 иначе не работает.
4. Регистры с 1008 до 1011 – прямое включения сегментов 7ми сегментных индикаторов. (работает крайне криво). Хотел в крайней левой части экрана выводить буквы (Н) или (Б) - нетто или брутто и реализовать с плк переключение, но, к сожалению, затыкается показ на 1003, и кажет не то и не там.

Всем спасибо за участие.
razerface вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 12:07.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024