Comments 5
Не знаком с питоном, поэтому извините, если задаю глупый вопрос. Можно ли с помощью этого скрипта прослушать данные, которые бегают по СОМ-порту? Скажем, мониторить поток Modbus или какой-то протокол телемеханики.
0
Я в свою очередь никогда не работал с Modbus :). После прочтения соотв. статьи в википедии мне кажется, что
Modbus мониторить можно, но только в том случае, если в качестве ADU используется Modbus ASCII.
Скрипт написан в предположении, что устройства, подключённые к COM-порту, обмениваются текстовыми строчками, заканчивающими символом конца строки. Если используется какой-то бинарный протокол, то ничего хорошего не выйдет.
Чисто теоретически его можно переделать так, чтобы он умел работать и с бинарными протоколами, но я не очень понимаю, зачем это может быть нужно. Он является альтернативным вариантом решения задачи, описанной в статье от Амперки, на которую я ссылаюсь в самом верху — в красивой форме (с этим, конечно, статья подкачала :) ) выводить в браузере строки, читаемые из COM-порта.
Modbus мониторить можно, но только в том случае, если в качестве ADU используется Modbus ASCII.
Скрипт написан в предположении, что устройства, подключённые к COM-порту, обмениваются текстовыми строчками, заканчивающими символом конца строки. Если используется какой-то бинарный протокол, то ничего хорошего не выйдет.
Чисто теоретически его можно переделать так, чтобы он умел работать и с бинарными протоколами, но я не очень понимаю, зачем это может быть нужно. Он является альтернативным вариантом решения задачи, описанной в статье от Амперки, на которую я ссылаюсь в самом верху — в красивой форме (с этим, конечно, статья подкачала :) ) выводить в браузере строки, читаемые из COM-порта.
0
«Если используется какой-то бинарный протокол, то ничего хорошего не выйдет.» Это я пропустил.
Но даже в случае бинарного протокола, можно мониторить сам факт передачи чего-либо по СОМ-порту, без проверки передаваемых данных. Мне интересно это как мониторинг системы телемеханики, максимально размещенный к источнику информации.
Но даже в случае бинарного протокола, можно мониторить сам факт передачи чего-либо по СОМ-порту, без проверки передаваемых данных. Мне интересно это как мониторинг системы телемеханики, максимально размещенный к источнику информации.
0
Если функцию get_full_line_from_serial переписать следующим образом:
то будет выводится количество байт, прочитанных из COM-порта с момента старта сервера. Если количество меняется, значит передачи идут. Такой способ мониторинга факта передачи годится?
Но, по-моему, это будет интересно только в течении первых пяти минут. Дальше захочется собирать и протоколировать весь трафик. Чтобы иметь возможность проанализировать возникающие проблемы как можно детальнее. И это правильно. Но в этом случае рассмотренный в статье механизм — это, как мне кажется, не самый подходящий вариант.
captured_count = 0
def get_full_line_from_serial():
""" returns the count of readed bytes since start as a string
if something received or None
Uses global variables 'ser' and 'captured_count'
"""
global captured_count
part = ser.readline()
if part:
captured_count += len(part)
return str(captured_count)
return None
то будет выводится количество байт, прочитанных из COM-порта с момента старта сервера. Если количество меняется, значит передачи идут. Такой способ мониторинга факта передачи годится?
Но, по-моему, это будет интересно только в течении первых пяти минут. Дальше захочется собирать и протоколировать весь трафик. Чтобы иметь возможность проанализировать возникающие проблемы как можно детальнее. И это правильно. Но в этом случае рассмотренный в статье механизм — это, как мне кажется, не самый подходящий вариант.
0
Собирать и протоколировать не нужно. Здесь более важно проверять на «адекватность». Даже на основе простого изменения количества байтов на порту можно сделать выводы: 1.железяка воткнута в нужный порт, 2. железяка жива и что-то передает. При отсутствии идеального, можно воспользоваться тем, что есть. :)
В любом случае спасибо за ответы.
В любом случае спасибо за ответы.
0
Sign up to leave a comment.
Articles
Change theme settings
Перенаправление данных из COM-порта в Web