1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Корректор газа

RS-485, ProfiBUS, 4-20 mA, Wi-Fi, GSM и так далее
Ответить

Автор темы
pelathaon
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 11 сен 2020, 08:15
Имя: Андрей
Страна: Молдова

Корректор газа

Сообщение pelathaon »

Всем доброго времени суток.

Я не знал в какой раздел обратиться, решил что этот будет более подходящим.

У меня имеется газовый корректор «TC - 90/K». У него имеется интерфейс RS232 через 6 PIN DIN 45322, к устройству прилагается родное программное обеспечение Win PADS. Оно прекрасно работает и устройство с помощью родной программы прекрасно читается. Но меня интересует вопрос написания своего арограммного обеспечения для чтения данного устройства. К данному устроству имеется документация в которой описан протокол опроса, я испробовал всё что там описано, но устройство либо молчит, либо отвечает мне b'00'.

Прошу помощи понять как(или скорей какой) правильно отправить запрос корректору что бы он выдал мне информацию хранимую в себе. Скрипт для опроса его я сделал на языке python. С другими устройствами скрипт прекрасно общается как через com порт, так и через сеть. Я обычно меняю только запрос или вариант подключеия.

Документацию к устройству прилагаю.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Sokolov_Dmitry
не первый раз у нас
не первый раз у нас
Сообщения: 320
Зарегистрирован: 31 окт 2017, 16:45
Имя: Дмитрий
Страна: Россия
город/регион: Калининград
Благодарил (а): 9 раз
Поблагодарили: 82 раза

Корректор газа

Сообщение Sokolov_Dmitry »

обычно используют снифферы сом-порта, чтобы посмотреть обмен между заводской прогой и устройством, затем корректируют свой софт, делают те же запросы, что и в заводском софте, не особо вдаваясь в детали для чего они, просто забирают из ответов нужную инфу
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1621
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 70 раз
Поблагодарили: 190 раз

Корректор газа

Сообщение petr2off »

Аналогично. Я так с пожарными датчиком мертвой конторы разбирался. Дико порадовал школьный уровень разработчиков, все оказалось предельно тупо.

Автор темы
pelathaon
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 11 сен 2020, 08:15
Имя: Андрей
Страна: Молдова

Корректор газа

Сообщение pelathaon »

Его запросы описаны в документации, по факту он шлет запрос "L4=.", я уже его перехватил и точно такой же отправил ему. В ответ не получил ничего. Скорее всего это особенности опроса по RS232, там задесйтвованы CTS и RTS. Скорее всего их надо как-то правильно использовать.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17579
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Корректор газа

Сообщение Jackson »

pelathaon писал(а): 15 сен 2020, 21:22 Его запросы описаны в документации, по факту он шлет запрос "L4=.", я уже его перехватил и точно такой же отправил ему. В ответ не получил ничего. Скорее всего это особенности опроса по RS232, там задесйтвованы CTS и RTS. Скорее всего их надо как-то правильно использовать.
значит Ваш запрос не точно такой же. Только и всего. :)
Отличия могут быть не только в данных, но и в таймингах и в физике. Например контроль передачи по CTS/RTS/DTR, ни один сниффер этого не покажет, нужен терминал с отображением их не просто лампочками, а на диаграмме общего потока данных.

В кабеле связи оторвите все провода, кроме Tx, Rх и GND, даже если там перемычки (их тоже убрать). Если родной софт без них продолжит общаться с прибором - значит дело не в этом.
По вопросам работы Форума можно обратиться по этим контактам.

Автор темы
pelathaon
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 11 сен 2020, 08:15
Имя: Андрей
Страна: Молдова

Корректор газа

Сообщение pelathaon »

Jackson писал(а): 15 сен 2020, 22:57 В кабеле связи оторвите все провода, кроме Tx, Rх и GND, даже если там перемычки (их тоже убрать). Если родной софт без них продолжит общаться с прибором - значит дело не в этом.
Это как раз таки и проверялось в первую очередь, по документации изначально собрал самый обычный описанный вами кабель. Родное ПО с прибором отказалось общаться. Потом методом долгих проб и ошибок наконец-то удалось собрать кабель с перемычками, и только тогда он заработал с родным софтом.
Jackson писал(а): 15 сен 2020, 22:57 значит Ваш запрос не точно такой же. Только и всего. :)
Я опирался на то, что в ПО "Serial Port Monitor Free" у меня запрос полностью совпадал с тем, что посылал родной софт.
Jackson писал(а): 15 сен 2020, 22:57 Отличия могут быть не только в данных, но и в таймингах и в физике. Например контроль передачи по CTS/RTS/DTR, ни один сниффер этого не покажет, нужен терминал с отображением их не просто лампочками, а на диаграмме общего потока данных.
Скорее всего еще нужны определенные тайминги запроса и приема ответа, это я тоже допускаю. Но я не знаю как это выяснить, к сожалению.
Не могли бы подсказать название такого ПО которым я могу подсмотреть как же все таки происходит обмен?
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17579
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Корректор газа

Сообщение Jackson »

pelathaon писал(а): 16 сен 2020, 01:13 у меня запрос полностью совпадал с тем, что посылал родной софт.
ну как же он совпадал, если Вы выше пишете что там аппаратный контроль трафика (об этом говорит необходимость перемычек). Теперь надо сходить в настройки порта в виндовсе и посмотреть, что стоит там - там установить контроль трафика "отсутствует" и снова проверить связь только с тремя проводами Rx Tx GND. Если и на этот раз для связи понадобится установить перемычки, а без них никак - значит родной софт это (аппаратный контроль через прямой доступ к порту) и делает и анализирует CTS/RTS/DTR и это зачем-то ему очень надо. Вот и первое возможное отличие.
Второе возможное отличие - это тайминги. Надо посмотреть, с какой задержкой уходит каждый байт в провода, это не сниффером делается, а другим COM-портом. Есть вероятность что буфер в UARTе вмешивается и вы шлёте данные через него, а родной софт, получив прямой доступ к порту, этот буфер не использует. Если первая проверка окажется положительной (перемычки нужны при отключённом контрой траффика в виндовсе), то скорее всего так и есть.

Поздний вопрос: а протокол-то какой? Какой-то свой или там модбас? Может Вы CRC забыли или считаете её некорректно?

Отправлено спустя 3 минуты 50 секунд:
pelathaon писал(а): 16 сен 2020, 01:13 Скорее всего еще нужны определенные тайминги запроса и приема ответа, это я тоже допускаю. Но я не знаю как это выяснить, к сожалению.
послушать трафик прямо в проводах через другой порт, гарантированно отключив в нем буфер, и построив временную диаграмму.
Готовый софт для этого не скажу, не знаю. В каком-то терминале я видел такую возможность, но нету его больше у меня точно.
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17579
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Корректор газа

Сообщение Jackson »

Я исхожу из того, что раз на родной софт прибор отвечает, а на Ваш софт - нет - значит есть разница, просто Вы её ещё не нашли. Чудес-то не бывает.

Как-то лично столкнулся с тем что кривой драйвер (в смысле чип) UARTа определённые байты воспринимал как собственные команды и просто глотал их из запроса, они исчезали, а CRC оставалась неизменной, соответственно приёмник считал посылку ошибочной потому что CRC посылке уже не соответствовала, и просто игнорировал и не отвечал.

Это удалось выяснить только прослушав саму физическую линию на стороне приемника и последующего ручного анализа трафика: в логе трафика передатчика находили запросы без ответов, затем искали эти запросы в логе трафика со стороны приемника.

И пока не ткнули носом производителя передатчика (а не приемника) в это - он естественно считал что мы ему сказки рассказываем, да мы и сами не считали это возможным пока не увидели.

В общем, не ленитесь и проверяйте абсолютно всё. Если и не найдёте, то как минимум солидно поднимете свои познания и квалификацию.
По вопросам работы Форума можно обратиться по этим контактам.

Serega77
здесь недавно
здесь недавно
Сообщения: 46
Зарегистрирован: 30 ноя 2011, 15:36
Имя: Сидоров С.И.
Благодарил (а): 7 раз

Корректор газа

Сообщение Serega77 »

pelathaon писал(а): 16 сен 2020, 01:13 Не могли бы подсказать название такого ПО которым я могу подсмотреть как же все таки происходит обмен?
ComRead от SoftElectro

Автор темы
pelathaon
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 11 сен 2020, 08:15
Имя: Андрей
Страна: Молдова

Корректор газа

Сообщение pelathaon »

Всем спасибо за ответы, всё получилось все прекрасно. Теперь интересует вопрос устройства которое позволит передавать всё это по сети передачи данных. В руках был planet ICS-100 с поддержкой RS232/RS485 но через него не заработало, хотя в принципе должно было т.к. он поддерживает все необходимые параметры.


Может кто-то посоветует простое и недорогое устройство которое позволит работать с корректором через сеть передачи данных?

Sokolov_Dmitry
не первый раз у нас
не первый раз у нас
Сообщения: 320
Зарегистрирован: 31 окт 2017, 16:45
Имя: Дмитрий
Страна: Россия
город/регион: Калининград
Благодарил (а): 9 раз
Поблагодарили: 82 раза

Корректор газа

Сообщение Sokolov_Dmitry »

если у вас проблема была только в посылаемых в корректор байтах, а не в паузах, rts/cts или еще в чем-то хитром (с чем простой преобразователь Eth/rs232 может не справиться), то например er108 от teleofice . Если нужно по беспроводным сетям - promodem.ru.

Автор темы
pelathaon
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 11 сен 2020, 08:15
Имя: Андрей
Страна: Молдова

Корректор газа

Сообщение pelathaon »

Sokolov_Dmitry писал(а): 19 сен 2020, 12:29 если у вас проблема была только в посылаемых в корректор байтах, а не в паузах, rts/cts или еще в чем-то хитром (с чем простой преобразователь Eth/rs232 может не справиться), то например er108 от teleofice . Если нужно по беспроводным сетям - promodem.ru.
Проблема в RTS/CTS, по спецификации ICS-100 это дело умеет. Однако, не работает почему-то. Может через преобразователи нужно каки-то особым способом опрос делать?
Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 3927
Зарегистрирован: 20 янв 2010, 22:23
Имя: Никита
Страна: РФ
город/регион: Мурманск
Благодарил (а): 20 раз
Поблагодарили: 220 раз

Корректор газа

Сообщение Никита »

pelathaon писал(а): 25 сен 2020, 09:38 Проблема в RTS/CTS, по спецификации ICS-100 это дело умеет. Однако, не работает почему-то. Может через преобразователи нужно каки-то особым способом опрос делать?
Не исключено. Если, как Евгений выше писал, драйвер управляет линиями CTS/RTS, то с преобразователем и тем что у него в мозгах можно разбираться долго. По мне бы проще было свой сделать на Raspberry или чем подобном, чем пытаться чужое творение заставить работать так как мне надо.

Но, есть еще момент: у Вас, если я верно понял, корректор с батарейным питанием. Да на последовательном интерфейсе еще и оптосоединитель нарисован.
Очень похоже на то, что прибор (или непосредственно оптосоединитель) не умеет формировать уровни для RS-232. И просто коммутирует оптопарой на rx компьютера напряжение с какой-то другой ноги его же порта. Достаточно часто встречающаяся схема. Кстати, штатные оптопорты практически всех счетчиков работают точно по тому же принципу, только в одном случае оптопара впаяна в плату, а в другом она образуется при поднесении головки ку прибору. Часто для этого используется сигнал DTR, но возможны варианты. И в этом случае, как опрос не реализуй, если в преобразователе на эту ногу ничего не подается - поможет только паяльник.
Крайний раз сталкивался с этим для опроса через родной кабель с опторазвязкой теплосчетчика от Kamstrup посредством Adam4520. Пришлось вскрыть Adam, найти внутри него развязывающий DC-DC преобразователь и от него кинуть перемычку на какую-то (сейчас уже не вспомню) ногу 232-го порта. Тогда заработало, но гарантия на adam, естественно, слетела. Хотя, вроде работает до сих пор.
Попробуйте найти схему родного кабеля и проверить, все ли используемые в кабеле провода задействованы в ICS-100. Можно цешкой, RS-232 не предусматривает в нормальном состоянии нулевых напряжений.
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "

Sokolov_Dmitry
не первый раз у нас
не первый раз у нас
Сообщения: 320
Зарегистрирован: 31 окт 2017, 16:45
Имя: Дмитрий
Страна: Россия
город/регион: Калининград
Благодарил (а): 9 раз
Поблагодарили: 82 раза

Корректор газа

Сообщение Sokolov_Dmitry »

судя по техописанию корректора вы используете адаптерный кабель типа kd-100 между корректором и компьютером. Помимо сигналов по нему подается питание на корректор 5..10В, также линия передачи из корректора использует нестандартный выход +3в/+0,8в вместо стандартного +3в/-3в. Подается ли питание при использовании ic-100 (при отключенном от корректора кабеле тестером измерить на контактах 1-6) ? Также может быть ic-100 не работает на таких логических уровнях входного сигнала rxd.

Автор темы
pelathaon
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 11 сен 2020, 08:15
Имя: Андрей
Страна: Молдова

Корректор газа

Сообщение pelathaon »

Sokolov_Dmitry писал(а): 25 сен 2020, 13:07 Подается ли питание при использовании ic-100 (при отключенном от корректора кабеле тестером измерить на контактах 1-6) ?
Подается, 4.2 вольта.
Никита писал(а): 25 сен 2020, 10:36 Но, есть еще момент: у Вас, если я верно понял, корректор с батарейным питанием. Да на последовательном интерфейсе еще и оптосоединитель нарисован.
Да, там внутри батарейка на 3.6V, 2700mah
Никита писал(а): 25 сен 2020, 10:36 По мне бы проще было свой сделать на Raspberry или чем подобном
К сожалению, нужно именно готовое решение.
Я еще раз перечитал внимательно технические спецификации ICS-100, и кажется я нашел проблему. Скриншот приложил.

Выше мне накидали названий приборов которые я просил, но они не подходят в виду своей высокой цены, поэтому может кто-то подскажет максимально недорогое решение?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 3927
Зарегистрирован: 20 янв 2010, 22:23
Имя: Никита
Страна: РФ
город/регион: Мурманск
Благодарил (а): 20 раз
Поблагодарили: 220 раз

Корректор газа

Сообщение Никита »

pelathaon писал(а): 30 сен 2020, 08:06 Подается, 4.2 вольта.
Подозрительно мало. При подключении от того, с чем заведомо работает (от компа или чего подобного) там сколько?
Что на других ногах порта ICS-100? Относительно 5-го вывода?
Режим порта в ics, надеюсь, верно установлен, rs-232.
Осциллографом нет возможности глянуть Rx и Tx при попытках обмена?
Что касается управления потоком - если это делается аппаратно, то никакой пареобразователь тут, скорее всего, не заработает. Потому как прямое управление RTS/CTS делается на уровне API Windows, и само собой, по линии связи не передается. Т.е. как только Вы переходите с RS-232 на что-то другое - эти линии физически обрываются.

Совет
Jackson писал(а): 15 сен 2020, 22:57 В кабеле связи оторвите все провода, кроме Tx, Rх и GND, даже если там перемычки (их тоже убрать). Если родной софт без них продолжит общаться с прибором - значит дело не в этом.
скорее всего не сработает, прибор вообще потеряет питание. Но вот поотрывать все, что не нужно, кроме этих 4,2В (придется вызвонить, откуда эти провода приходят) можно попробовать. Т.е. на заведомо работающей схеме соорудить "удлинитель" RS-232 "мама-папа", оставив только Rx, Tx, GND и ту линию, откуда берутся эти 4,2В.

В общем, судя по няпряжению, у Вас в ICS нестандартные уровни используются. И это не классический 232, а TTL. Замерьте, если есть возможность, что на Rx-Tx относительно пятой ноги COM-порта.

А про скрипт пока можно забыть - проблема похоже аппаратная. Если с родным софтом все заработает через ICS, то можно уже и свой опрос писать.
Последний раз редактировалось Никита 30 сен 2020, 11:18, всего редактировалось 1 раз.
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17579
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Корректор газа

Сообщение Jackson »

Никита писал(а): 30 сен 2020, 09:42 скорее всего не сработает
Пока не проверено - всё остальное пустое, видимо. Но автор похоже либо решил проблему либо не решил - нам в любом случае не рассказал.
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 3927
Зарегистрирован: 20 янв 2010, 22:23
Имя: Никита
Страна: РФ
город/регион: Мурманск
Благодарил (а): 20 раз
Поблагодарили: 220 раз

Корректор газа

Сообщение Никита »

Jackson писал(а): 30 сен 2020, 10:15 Но автор похоже либо решил проблему либо не решил - нам в любом случае не рассказал.
Судя по тому, что подыскивает недорогое решение - не решил.
Но в любом случае, на мой косой взгляд, проблема не локализована - проблема может быть либо в уровнях, либо в управлении потоком. И это требует разных подходом. Проблема с аппаратным управлением потоком при управлении линиями RTS/CTS средствами драйвера исключает применение любого преобразователя интерфейсов в принципе. А вот если проблема с другой стороны - корректор не успевает за компом и пытается опустить CTS - шансы есть, возможно удастся подобрать преобразователь, который умеет это корректно обрабатывать. А может иметь место и сочетание. Вот схему кабеля бы увидеть...
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "

Sokolov_Dmitry
не первый раз у нас
не первый раз у нас
Сообщения: 320
Зарегистрирован: 31 окт 2017, 16:45
Имя: Дмитрий
Страна: Россия
город/регион: Калининград
Благодарил (а): 9 раз
Поблагодарили: 82 раза

Корректор газа

Сообщение Sokolov_Dmitry »

разберитесь с питанием. Откуда оно идет? От внешнего БП или от DTR линии СОМ-порта компьютера? В компьютер кабель вставляете в СОМ-порт или преобразователь USB/rs232? Сравните уровени напряжения питания при работе от компьютера и от преобразователя. В ТО корректора написано должно быть 5...10В. Если от преобразователя меньше (4,2В), чем от компьютера (5-10В), то нужно сделать переходник DB9-DB9 в разрыв СОМ-порт компьютера и кабеля. На этом переходнике можно сравнивать (осциллографом) разницу в уровнях на линиях Rx,Tx, CTS/RTS, +V,GND при работе от компа и преобразователя. Если питание меньше чем от компа, используете внешнее в разрыв на переходнике. Не работают CTS/RTS разбираетесь с виртуальным сом-портом и преобразователем (самые дешевые модели не поддерживают CTS/RTS). Разобравшись с уровнями сигналов при работе от компа, т.е. четко поняв что должно быть на выходе rs232 преобразователя можно обратиться с вопросом в телеофис по поводу использования er108 касательно rts/cts ( может скрипты на python поддерживаются, чтобы работать CTS/RTS, DTR).
Ответить

Вернуться в «Интерфейсы, протоколы, связь»