|
Вопросы о программировании Вопросы, касающиеся программирования на FBD |
|
Опции темы | Поиск в этой теме |
17.02.2023, 11:07 | #1 |
Новичок
Регистрация: Feb 2023
Сообщения: 8
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
перевод знакового целого в беззнаковое
Добрый день! Столкнулся с в вопросом как в программе SMLogix сделать из знакового real в беззнаковое int. Сначала reail-int, int-abs, потом не нашел как. Подскажите, пжл.
|
17.02.2023, 11:12 | #2 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 171
Благодарил(а): 241 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: перевод знакового целого в беззнаковое
Цитата:
ABS(real) --- real->int но на выходе будет не совсем uint, а половина обычного int если нужен честный uint на все 16бит, то придётся всё делать через лонг, но выходе будет лонг. так пойдёт? |
|
Благодарность от: |
17.02.2023, 11:15 | #3 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 160
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: перевод знакового целого в беззнаковое
На самом деле, если выводить в модбас, то в младшем регистре лонга будет честный uint. Т.е. не читать старший регистр и всё.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
Благодарность от: |
17.02.2023, 11:52 | #4 |
Новичок
Регистрация: Feb 2023
Сообщения: 8
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: перевод знакового целого в беззнаковое
Да, вывод на Modbus потом есть. Т.е., ABS(real) --- real->int будет достаточно?
|
17.02.2023, 11:57 | #5 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 791
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: перевод знакового целого в беззнаковое
Ну real 123456,7 правильно в int запихнуть не получится никак.
Поэтому long будет лучше. А домножив real на соточку можно и дробную часть в лонге при передаче не совсем потерять. Вопрос нужно ли это делать на стороне контроллера. __________________ Не являюсь сотрудником Segnetics !!! Последний раз редактировалось ATS, 17.02.2023 в 12:08 |
17.02.2023, 11:58 | #6 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 160
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: перевод знакового целого в беззнаковое
Цитата:
Ну либо у вас всё же несколько иная задача, которую вы пытаетесь решить вот таким вот странным способом. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
17.02.2023, 12:03 | #7 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 171
Благодарил(а): 241 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: перевод знакового целого в беззнаковое
если модбас и цель не сыканомить два байта, то и отправлять как есть, реал.
|
17.02.2023, 12:27 | #8 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 160
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: перевод знакового целого в беззнаковое
У меня подозрение, что на той стороне какой-то девайс, работающий жёстко в парадигме модбаса, т.е. читающий регистры именно как регистры (16-разрядное число). А человек по наивности думает, что простой перевод из real в uint как-то поможет в деле правильной передачи температуры.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
17.02.2023, 12:39 | #9 |
Новичок
Регистрация: Feb 2023
Сообщения: 8
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: перевод знакового целого в беззнаковое
Задача вывести показания влажности с Puxel на Z031. А влажность на Z031 должна выводиться как uint.
|
17.02.2023, 12:45 | #10 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 160
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: перевод знакового целого в беззнаковое
А, ну тогда это рабочий способ. Тот, что я описал. Можно предварительно использовать блок MINMAX, ограничив real диапазоном 0..100. Типа, соломку подстелить.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
17.02.2023, 13:07 | #11 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 171
Благодарил(а): 241 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: перевод знакового целого в беззнаковое
Цитата:
лучше сразу потренироваться на крысах или прицепить макрос перепаковщик |
|
17.02.2023, 13:38 | #12 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 791
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: перевод знакового целого в беззнаковое
Ну в диапазоне от 0 до 32767 разницы в знаковом и беззнаковом int вообще не существует.
__________________ Не являюсь сотрудником Segnetics !!! |
17.02.2023, 15:16 | #13 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 160
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: перевод знакового целого в беззнаковое
Кстати да, так что-то я к пятнице подустал, что забыл, что в данной задаче проблема на самом деле больше надуманная)
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |