Здравствуйте! Написал программу для Ардуино которая опрашивает счетчик СПТ943.1 согласно протоколу М4. Но вместо ответов счетчик присылает нули. Возможно подключился не так. Вот линк протокола и там же на стр 21 имеется схема подключения которую я реализовал у себя. http://www.teplocom.msk.ru/data/support/docs/gaz/spg/protM4_rev00.pdf
Хе. Не может быть. СПТ не такой.
Он скорее промолчит, чем лишнего ляпнуть
Скорей всего, не то или не там смотришь.
Дааа. В этом вы точно правы!!! Он вообще “партизан”! Все верно, смотрел не туда. Проблема в следующем: отправляю ему команды согласно протоколу, которые приходят на счетчик, что видно на осциллографе а СПТ благополучно молчит. Что делать парни?
В “Логике” отличные, отзывчивые бойцы сидят
Можете попробовать запросить помощь у них.
Ну я написал им вчера жду пока ответят
Наглый пацан попался, однако.
И тупой.
Почему бы идиоту не изучить как пролог например команды шлет?
или тот же лэрс
наверняка от избытка интеллекта вы такой “красноречивый”. Я изучил протокол соединения. Дело в том что если СПТ пришлет любую команду он пришлет его в пакете, в котором имеется заголовок т.е. стартовый байт 0x10, свой сетевой адрес 0…255, команда с которой его вызвали, код канала 0…2. А уж потом в теле пакета передаст свою команду. Так у меня проблема в том, что ничего не приходит ни какой структуры пакета.
- Подать питание (Dtr|Dsr)
- Разбудить СПТ, послать 25-50 байт 0xFF 2400, 8n1
Пауза 100-200 мс - Запросить тип 10 01 3F 01 00 00 00 BE 16
Для сетевого адреса 01, а для широковещательного - 254 (любой ответит)
10 FE 3F 01 00 00 00 C1 16
Нет так?
И еще - ардуино, хренуино - вообще-то в порт что-то передает? Сделай шлейфик на комп, посмотри ваще что шлешь.
Еще огрызается, смотри ка
спасибо всем за участие, проблема решена! Проблема была в том, что необходимо было заменить аппаратный преобразователь уровней. Исходный не инвертировал биты(( С вашего позволения еще 2 вопроса.
- Аппаратно инвертировать биты немного накладно. тогда я попытался сделать это программно т.е. перед отправкой очередного байта инвертировал его побитовой not (~), но это не помогло. Возможно ли вообще программно это сделать?
- Как мне получить текущую дату и время и можно ли это сделать через канал Т1? В протоколе крайне мало информации. Хочу считать архивные данные.
PS: Прошу не бить палками тупого новичка.
См.стр. 6 и 14
Все ж в открытом доступе, на сайте Логики
Буквы то выучил уже?
prot943_02.pdf (284 KB)
Нет, слишкам сложна букафки