Опрос счетчика СПТ-943.1
- Войдите на сайт для отправки комментариев
Пнд, 19/11/2018 - 13:12
Здравствуйте! Кто-нибудь опрашивал счетчик СПТ-943.1 через Ардуино по интерфейсу RS232? возникала cледующая проблема. Написал скетч который должен опрашивать данный счетчик согласно протоколу М4, но счетик никак не реагирует на запросы. Написал простенький эмулятор счетчика на другой плате Ардуино, который замечательно отвечает. Может кто сталкивался с подобной проблемой?
А как подключаете? Инфы крайне мало, как всегда в общем
Подключаю черзе преобразователь Rs232-TTL чип MAX3232 ESE. На счетчик выходит 3 провода RX, TX, CND, питается же счетчик со стороны 12В. (Так же CND выходящая от MAX3232 соединяется с землей провода 12В.) На плату Ардуино выходят 4 провода: TX, RX, VCC = 3.3В и соответственно CND.
PS. Простите за мой "Французкий" я просто в этом новичек.
скетч?
На ардуино можно использовать софт сериал для связи со счетчиком. А для вывода на экран - хард сериал.
rx счетчика (ну через преобразователь) подключить к tx ардуино (пин 8). tx счетчика через преобразователь подключить к rx ардуино (7 пин)
Подключиться и смотреть через терминальную программу или монитор порта ардуино. Скетч примерно такой
отредактируйте предыдущее сообщене и вставьте код правильно, так не варик
сделать так
строка 41 #define SS_RX 7
строка 42 #define SS_TX 8
и подключить физически соответственно. а вы похоже счетчикна 0 и 1 повесили, что не верно
Сделал так как вы сказали RX 7 TX 8, но счетчик отстается непоколебим. Посмотрел на осцеллографе соединение и вижу такую картину, что на счетсик прихрдят команды, но он упрно молчит. Такое ощущение будто он не понимает команды. Вот линк на протокол соединения http://www.teplocom.msk.ru/data/support/docs/gaz/spg/protM4_rev00.pdf
а он один подключен? или там сеть счетчиков. Если один возможно на нём скорость поменяли, пробуйте весь ряд стандартных
Да один. Пробовал уже разные скорости и к разным кананл подключаться. но увы все тщетно. Но все же счетчик работоспособный так как опрашивается через программу Пролог
читайте описания протокола по ссылке со стр21 и до конца
На всякий случай: то, что порт подключается перекрестно, т.е. RX подключается к TX и наоборот - в курсе?
Да, конечно
Данная схема подключения не работает. Во всяком случае у меня
может так
На счетчике у меня 4 выхода 2 из которых заняты источником внешнего питания (GND, VCC = 12 V.) Как мне реализовать вашу схему? На фото черные провода идут не от преобразователя, а от внешнего питания.
подключиться к счетчику программой пролог и снять осциллограммы. сдается мне там уровни сигналов 0В 12В, что не есть rs232
можно ещё так попробовать
Спасибо большое вам за помощь! Завтра приду на работу затестю.
в посте #18 в схеме ошибка. Должна заработать одна из этих схем.
Почитайте описание счётчика. Написано что в зависимости от комплектации может быть 3 разных интерфейса. Тот разьем который вы мучаете скорее всего простой TTL. К нему можно напрямую Tx цеплять, Rx к Tx счётчика через 2к попробывать, если сначала не померить тестером напряжение.
Подключился по первой схеме стали приходить нули. Но почему то светодиод RX на плате не мигает, а TX мигает
Ну дак попробуйте вторую . И где осциллограмма? Нужно узнать уровни сигнала тх от счетчика. большая вероятность что первая схема без преобразователя rs232-ttl должна заработать
непонятно в каких точках и какой схемы вы сняли осцилки. Нужно снять осцилки на первой схеме на разъёме х2 счетчика. общий провод осцила на пин 4. Изм щуп на 1 (Rx счетчика ), потом на 3 (Тх счетчика).
И желательно осцилку рабочего обмена счетчика и вашей программы на компе.
Подключился по первой схеме стали приходить нули. Но почему то светодиод RX на плате не мигает, а TX мигает
какие ещё светодиоды? вы как опять подключаетесь к счетчику? У вас подключение к счетчику должно быть на пин 7, 8 ардуино. Это софтсериал соединение. Никакие светодиоды rx и tx там не подключены. Эти светодиоды индицируют хард Serial подключение. В вашем скетче оно служит для связи с терминальной программой. Соответственно если вы с терминала ничего не отправляете на дуню Rx led и будет молчать. А вот когда ардуино в консоль что либо шлёт тогда и мигает tx led.
кстати на первой схеме необходимо попробовать установить подтягивающий резистор 10К между пинами ардуино "5V" и "7" (Rx)
Подключился по первой схеме стали приходить нули. Но почему то светодиод RX на плате не мигает, а TX мигает
какие ещё светодиоды? вы как опять подключаетесь к счетчику? У вас подключение к счетчику должно быть на пин 7, 8 ардуино. Это софтсериал соединение. Никакие светодиоды rx и tx там не подключены. Эти светодиоды индицируют хард Serial подключение. В вашем скетче оно служит для связи с терминальной программой. Соответственно если вы с терминала ничего не отправляете на дуню Rx led и будет молчать. А вот когда ардуино в консоль что либо шлёт тогда и мигает tx led.
Ошибочка! Да конечно они не должны мигать т.к. Rx 7 Tx 8 у меня. прошу прощения!
на второй схеме попробуйте убрать внешний источник питания +12В.
Не робит! Я думаю, что без внешнего питания никак ибо на счетчике единственный интерфес RS-232 которому необходимо внешнее питание 12В.
короче смотрите описание своего протокола, а также счетчика - там всё просто на разъёме x2. две оптопары. Поэтому нафиг не нужен преобразователь Rs232<->TTL.
Но логика у счетчика как у RS232, т.е. инверированная по сравнению с уарт ттл. Поэтому должна заработать нижняя схема.
так для инфы уровни двух стандартов
ещё такой вариант пробуем
Написал производителю, он говорит что для устойчивой работы на входе Rx+ со стороны СПТ должно быть не менее 5 В. У меня же Tx на контроллере выдает нужные 5 В. Прикрепляю скрин осциллографа на порту Tx контроллера.
дак если биты нужны инвертированные ваш счетчик ничего и не ответит. По какой схеме вы подключались? что у вас там 5В?
Нужна #31 нижняя схема, возможно без резисторов.
Не могли бы вы пояснить по поводу инвертированности битов?
смотрите пост #31 там есть рисунок с уровнями стандартов. Счетчик по всем описаниям поддерживает rs232. там лог "1" соответствует -12В (или 0В - счетчик по описанию работатает с уровнями от 0 до 12В). А логическому "0" соответствует напряжение +12В.
Чего не скажешь про уарт ттл ардуины, которой вы подключаетесь к счетчику. Там лог. "0" соответствует 0В, а лог. "1" соответствует 5В.
смотрите пост #31 там есть рисунок с уровнями стандартов. Счетчик по всем описаниям поддерживает rs232. там лог "1" соответствует -12В (или 0В - счетчик по описанию работатает с уровнями от 0 до 12В). А логическому "0" соответствует напряжение +12В.
Чего не скажешь про уарт ттл ардуины, которой вы подключаетесь к счетчику. Там лог. "0" соответствует 0В, а лог. "1" соответствует 5В.
Коль так, тогда как же будет работать 2-я схема пост #31? В таком случае необходим преобразователь РС232 - ТТЛ. Правильно ли я понимаю?
Нет. RS232-TTL нужен, если к вашему счётчику потавлялясь плата интерфейса RS232 и она включена в ваш разъём Х2. В посте #31 вам разрисовали две схемы подключения с прямой и инверсной полярностью Rx сигнала. На ней нет никаких преобразователей.
А для проверки связи я бы рекомендовал USB-TTL HA FT232R. Rx Tx подключить по первой схеме #31 поста, USB воткнуть в комп и попробывать соединиться. Если сразу не получится то для FT232 есть конфигурационная программа в которой можно менять полярность передаваемых и принимаемых битов. Не переконекчивая можно проверить все сочетания полярности битов. Какой нибудь заработает. Тогда можно будет уже про ардуину говорить.
Коль так, тогда как же будет работать 2-я схема пост #31? В таком случае необходим преобразователь РС232 - ТТЛ. Правильно ли я понимаю?
нет не правильно. рс232 тут не нужен. Схема должна работать , потому что будет поджигать светодиод Rx-а счетчика когда на Tx ардуино будет лог 0 , а не 1.
Согласен с коллегой, что проще при помощи юсб-ттл такую хрень налаживать .
не, там нет никакой платы RS232. Счетчик "из коробки" этот стандарт поддерживает. Вот картинка, что можно подключить компорт компа напрямую к счетчику.
также там подключается какойто прибор АПС45, уж очень подключение на уарт ттл похоже.
Ну так вместо АПС45 надо на ноги 1,2 ардуины наны подключать. Только я бы ещё Rx (2 нана - 3 Х2) ногу через 1к подключил, что бы программы можно было грузить. Ноги 2,4 разъёма Х2 на землю ардуины, ногу 3 разъёма Х2 на +5 ардуины через 3.3к .
нужно использовать софт сериал. Т.к. скетч у ТС вроде правильный, но там вывод на экран через Serial, а подключение к счетчику через софт сериал. Надеюсь ТС не забыл в скетче поменять ноги софтасериала (см. пост #7).
Также возможно в ходе опытов вылетели ноги 7 и 8 . Вот и не работает ничё.
Тогда рекомендую перевешать на 10 и 11 и не забыть поменять это в скетче. Рекомендована нижняя схема #31. без резистора 500 ом. 10К нужно оставить.
Или верхняя схема вообще без резюков .
Кстати инит в скетче идёт в сетапе. Такчто если счетчик молчит пробовать нажать ресет на ардуине.
Да, не забыл
а скорость почему 2400? Там вроде изначальная 9600.
нет, подключение производится только на скорости 2400
значение КИ в меню настроек счетчика "0" ?
значение КИ в меню настроек счетчика "0" ?
Обязательно
Правильно ли я понимаю, что у СПТ следующие логические уровни: 0 В. = 1(true), 5 В. = 0 (false).
А у ардуино следующая: 0 В. = 0 (false), 5 В. = 1 (true) ???
И если это так то ведь я могу сделать инвентриование битов не аппаратно а программно т.е. при отправке команды с ардуино на СПТ инвентировать биты и так же при приемке с СПТ инвентировать биты?
Врядли можно программно инвертировать стоп и старт биты. Помоему проще логическую микруху инвертор поставить.
Я вообще не пойму че вы так долго копаетесь, имея осциллограф. Все ж видно, что на шине.