1 / 1 / 1
Регистрация: 10.07.2023
Сообщений: 22
|
||||||
1 | ||||||
Sikora RS-48504.11.2023, 20:33. Показов 1299. Ответов 33
Метки нет (Все метки)
Добрый день, форумчане.
Требуется соединить измеритель диаметра "Сикора" с компьютером по Rs-485. Все что есть на данный момент - это следующие данные из руководства пользователядобавил во вложение). Устройство соединено по 485-му. запрос. делается по формуле. STX+ IDB1+IDB2+IDB3+ETX+BCC STX = 02H ETX =03H IDB1+IDB2+IDB3 ="001" (заранее известный запрос) BBC = IDB1 xor IDB2 xor IDB3 xor ETX В Delphi это выглядит следующим образом:
при отправке запроса как в инструкции в ответ приходит одно и то же сообщение. Причем вне зависимости от того, измеряется сейчас что-либо или нет. смущает длина этого сообщения. Приходит 5 байт. В случае ошибки должно приходить 4 байта или 9 без ошибки. Подскажите в какую сторону рыть.
0
|
04.11.2023, 20:33 | |
Ответы с готовыми решениями:
33
Sikora интерфейс RS-485 Проверка подключения RS-485 через преобразователь USB/RS-485 RS-485 STM32 + RS-485 Вопросы по RS-485 |
1 / 1 / 1
Регистрация: 10.07.2023
Сообщений: 22
|
|
05.11.2023, 11:05 [ТС] | 3 |
в данном случае в результате работы функции получается строка, равная 6 символам, т.е. 6 байт. или я где-то лажаю?
0
|
Злостный нарушитель
9592 / 5188 / 1182
Регистрация: 12.03.2015
Сообщений: 24,492
|
|
05.11.2023, 12:54 | 4 |
Чувак, пойми, я про sizeof(char) не просто так спросил. 6 символов НЕ ВСЕГДА занимают 6 байт.
------- При работе с передачей данных на периферию категорически не рекомендую использовать символьные типы (char, pchar, string и т.п.), это чревато появлением подобных тредов на форумах.
0
|
1 / 1 / 1
Регистрация: 10.07.2023
Сообщений: 22
|
|
05.11.2023, 14:40 [ТС] | 5 |
вы имеете в виду big -endian и little-endian форматы?
наверное, я не правильно формулирую. Приходит в ответ 5 символов. просто, может это я не правильно понимаю инструкцию по составлению запроса. прочтите, пожалуйста, главу 4.2 (страницы 23-26). Может что-то увидите, чего я не вижу.
0
|
Злостный нарушитель
9592 / 5188 / 1182
Регистрация: 12.03.2015
Сообщений: 24,492
|
|
05.11.2023, 14:56 | 6 |
нет.
Пока ты не перестанешь оперировать символами, ничего не взлетит. В цифровой электронике есть биты и байты. А символы - это только их интерпретация.
0
|
1 / 1 / 1
Регистрация: 10.07.2023
Сообщений: 22
|
|
05.11.2023, 18:34 [ТС] | 7 |
спасибо. буду думать.
0
|
541 / 241 / 27
Регистрация: 05.05.2022
Сообщений: 1,571
|
|
06.11.2023, 11:24 | 8 |
Начнем с того, что у вас RS-485 преобразователь правильно настроен (если он требует настройки, а такие бывают, если это USB<->RS-485), прибор правильно настроен?
А вообще у вас в инструкции написано:
1
|
1 / 1 / 1
Регистрация: 10.07.2023
Сообщений: 22
|
|
06.11.2023, 12:28 [ТС] | 9 |
я правильно понимаю, что 15H это символ с номером 15 из аски таблицы? или нужно обязательно отправлять именно данный байт?
ЗЫ. НОмер порта, скорость четность и настроены.
0
|
541 / 241 / 27
Регистрация: 05.05.2022
Сообщений: 1,571
|
|||||||||||
06.11.2023, 13:06 | 10 | ||||||||||
Если юникодовая, то вместо Char используем ANSIChar однобайтовый, и ANSIString.
1
|
Злостный нарушитель
9592 / 5188 / 1182
Регистрация: 12.03.2015
Сообщений: 24,492
|
||||||
06.11.2023, 13:13 | 11 | |||||
Сообщение было отмечено ragwolf как решение
Решение
Да ты задолбал со своими символами! [Удалено]
Туда 6 байт, оттуда 5 байт.
1
|
541 / 241 / 27
Регистрация: 05.05.2022
Сообщений: 1,571
|
|
06.11.2023, 13:35 | 12 |
А я еще с ETX опечатался. Ну ладно.
Добавлено через 6 минут
0
|
Модератор
3756 / 2260 / 782
Регистрация: 15.11.2015
Сообщений: 8,989
|
||||||
06.11.2023, 13:55 | 14 | |||||
Сообщение было отмечено ragwolf как решение
Решение
ragwolf, уже написали, что это всё - байты. Просто некоторые из них могут быть интерпретированы в виде символов.
В передаваемом потоке байт со значением $02 означает начало текста. Следующая группа байт, до байта со значением $03 интерпретируется, как текст. Если написано "019", значит, отправляются соответствующие ASCII коды этих символов $30,$31,$39. В юникодных версиях дельфи можно задать строку типа AnsiString, присвоить туда нужные символы и потом копировать из строки в выходной поток, получая код символа функцией Ord(). Добавлено через 3 минуты Ну да, с record ещё проще и удобнее должно быть. Добавлено через 1 минуту Думаю, так будет верно:
1
|
1 / 1 / 1
Регистрация: 10.07.2023
Сообщений: 22
|
|
07.11.2023, 18:17 [ТС] | 15 |
Спасибо всем, за помощь.
Как оказалось, проблема была не программной, а аппаратной. При использовании ICP-CON для конвертации 232 в 485 ответ не правильно интерпретировался. При прямом соединении (использовал переходниу 485-USB) ответы стали приходить "читаемые". НО все равно, пока "ковырял" переписал часть программы. За основу взял вариант с record'ом . И, действительно, получилось красивее. Зато, благодаря вам, я чуть больше узнал о битах, байтах, символах и словах. СПАСИБО.
0
|
541 / 241 / 27
Регистрация: 05.05.2022
Сообщений: 1,571
|
|
07.11.2023, 18:53 | 17 |
ICP-7250? У меня на заводе это хлама сотни, наверное, были. Проблем не припоминаю. Скорее всего, либо конкретный преобразователь неисправен, либо что-то с RS-232 портом.
Работа с USB-преобразователем может отличаться от работы с родным, или USB'шным RS-232, через внешний RS-485. У меня USB-преобразователь позволял писать адрес с переключением четности без задержки и давал гарантированные полные ответы, что в общем случае не так. И вообще, как правильно-то в итоге? Вдруг нам такая же или похожая штука попадется.
0
|
пофигист широкого профиля
4753 / 3190 / 860
Регистрация: 15.07.2013
Сообщений: 18,475
|
|
08.11.2023, 02:35 | 18 |
0
|
541 / 241 / 27
Регистрация: 05.05.2022
Сообщений: 1,571
|
||||||
08.11.2023, 09:20 | 19 | |||||
Во что? Что конкретно попавшая мне модель ведет себя так? XR21B1411 USB UART
Обычный обмен запрос-ответ, макс. размер ответа 246 байт. Адресация устройства на линии через смену четности. Запись так:
А потом оказывается, что у мужиков моя прога для тестирования контроллеров не работает. У них как раз эти ICPCON'ы. А старая прога к которой, конечно, исходников нет, работает. Начал разбираться, благо у меня аж 3 шт. этих ICPCON'ов появилось, сниффер, вроде, никаких отличий не показывает, подумал, а не вставить ли задержку между посылками адреса и запроса. Начали отвечать, но ответы кусками. У меня 20 разных преобразователей для опытов нету, так что я просто констатирую, что с разными моделями могут быть разные нюансы, и код может оказаться непереносимым.
0
|
пофигист широкого профиля
4753 / 3190 / 860
Регистрация: 15.07.2013
Сообщений: 18,475
|
|
09.11.2023, 01:29 | 20 |
0
|
09.11.2023, 01:29 | |
09.11.2023, 01:29 | |
Помогаю со студенческими работами здесь
20
Развязка RS-485 Интерфейс RS-485 Интерфейс RS-485 Команда по RS-485 USB-UART -> RS-485 RS-485 и витая пара Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |