|
Вопросы о программировании Вопросы, касающиеся программирования на FBD |
|
Опции темы | Поиск в этой теме |
04.07.2023, 15:34 | #1 |
Новичок
Регистрация: Mar 2023
Адрес: СПБ
Сообщения: 20
Благодарил(а): 3 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Как читать составные переменные?
На эту же тему вопрос по комплектным шкафам с Пикселями, на скаду нужно вывести температуры, на экране контроллера цифры нормальные, а по модбасу от контроллера идут вот такие цифры на скрине (по порядку - наружная, приток, обратка), если по адресам смотреть, то по первому адресу вообще значения скачут в плюс и в минус, второй адрес постабильнее, как вот это преобразовать в нормальное значение температурыв градусах цельсия? каждая температура занимает два адреса какой адрес брать из двух, второй?
|
04.07.2023, 15:37 | #2 | |
Сотрудник Сегнетикс
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 355
Благодарил(а): 0 раз(а)
Поблагодарили:
256 раз(а) в 252 сообщениях
|
Ответ: Измерение температуры
Цитата:
__________________ Если ничто другое не помогает, прочтите, наконец, инструкцию |
|
04.07.2023, 15:40 | #3 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
Ответ: Измерение температуры
Цитата:
https://forum.segnetics.com/showthread.php?t=2231 __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
04.07.2023, 15:50 | #4 |
Новичок
Регистрация: Mar 2023
Адрес: СПБ
Сообщения: 20
Благодарил(а): 3 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как читать составные переменные?
эта ссылка точно поможет? в моем случае связь идет по modbus tcp на шнайдеровскую скаду, поэтому модсканом и читаю.
|
04.07.2023, 15:58 | #5 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
Ответ: Как читать составные переменные?
Цитата:
- "Купите абонемент в бассейн + занятия с инструктором" - "Это точно поможет? В моём случае нужно плавать в реке" У вас проблема с общей теоретической подготовкой, поэтому вы и не понимаете, что вода во всём мире одинаково мокрая. Т.к. здесь не форум по обучению, я дал вам ссылку, как вы быстро можете получить рабочую связку и посмотреть, как и что в ней настроено. Раз у вас Modbus-TCP, то в примере нужно выбрать не "Прямое подключение", а "TCP/IP подключение". Это позволит установить связь. Но, по большому счёту, связь вам не нужна, вам нужен конфиг, в котором всё правильно настроено по адресам, типам и функциям чтения/записи. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
04.07.2023, 17:59 | #6 |
Новичок
Регистрация: Mar 2023
Адрес: СПБ
Сообщения: 20
Благодарил(а): 3 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как читать составные переменные?
можно сносить пост, модсканом прошелся еще раз, сдвиг на два адреса нужно было делать, все нормально видно теперь.
|
04.07.2023, 19:16 | #7 | |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Как читать составные переменные?
Цитата:
На первой картинке лежат две вполне нормальных температурки по адресам 40995-40998 в float32 __________________ Не являюсь сотрудником Segnetics !!! |
|
05.07.2023, 09:14 | #8 |
Новичок
Регистрация: Mar 2023
Адрес: СПБ
Сообщения: 20
Благодарил(а): 3 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как читать составные переменные?
чтобы при сканировании и потом в скаде получить нормальное значение, делал сдвиг на 1, как обычно, а для вещественных нужно было на 2 адреса, тогда все хорошо сканится и показывает. в этом случае это 40995, 40997и 40999. куда в принципе и можно было ткнуть носом и пожурить, вместо "купите абонемент в бассейн" и т.п.
|
05.07.2023, 09:55 | #9 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Как читать составные переменные?
Зачем? В таблицах контроллеров физическая адресация. Логическая может быть больше только на единицу.
__________________ Не являюсь сотрудником Segnetics !!! |
05.07.2023, 10:43 | #10 |
Новичок
Регистрация: Mar 2023
Адрес: СПБ
Сообщения: 20
Благодарил(а): 3 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как читать составные переменные?
|
05.07.2023, 10:48 | #11 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Как читать составные переменные?
Уверены что данные не путаете?
__________________ Не являюсь сотрудником Segnetics !!! |
05.07.2023, 10:57 | #12 |
Новичок
Регистрация: Mar 2023
Адрес: СПБ
Сообщения: 20
Благодарил(а): 3 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как читать составные переменные?
|
05.07.2023, 14:56 | #13 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Как читать составные переменные?
Можно легко нарваться с float32 на проблему при обратном порядке регистров. Будете читать чужое младшее слово и даже этого не заметите.
__________________ Не являюсь сотрудником Segnetics !!! |
05.07.2023, 16:16 | #14 |
Новичок
Регистрация: Mar 2023
Адрес: СПБ
Сообщения: 20
Благодарил(а): 3 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как читать составные переменные?
в моем случае исключено, на установках используется по 3 датчика, последних двух нет, по адресам и названиям соседних переменных можно прийти к выводу, что температуры и адреса соответствуют
|
05.07.2023, 16:41 | #15 | |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Как читать составные переменные?
Цитата:
Цифры будут почти правильные путается только младшая часть мантиссы и на первые три значащих цифры результата она не влияет. mbs.png Вместо зеленого читаете красное и путаетесь с порядком слов. __________________ Не являюсь сотрудником Segnetics !!! Последний раз редактировалось ATS, 05.07.2023 в 17:02 |
|
05.07.2023, 17:25 | #16 | |
Новичок
Регистрация: Mar 2023
Адрес: СПБ
Сообщения: 20
Благодарил(а): 3 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как читать составные переменные?
Цитата:
|
|
05.07.2023, 18:33 | #17 | |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Как читать составные переменные?
Объяснял выше
16870 = 0x41E6 0x41E60000 = 01000001 11100110 00000000 00000000 дает температуру 28.75 0x41E6FFFF = 01000001 11100110 11111111 11111111 дает температуру 28.8749980926513671875 Совсем незаметно разницу А так примерно получается Ваш мусор выше 46331 = 0xB4FB 0x0000B4FB = 00000000 00000000 10110100 11111011 дает 6.49235591506330997129673153234E-41 Цитата:
Ну и при попытке прочитать так long жопа наступит сразу __________________ Не являюсь сотрудником Segnetics !!! |
|