Регистратор-самописец для TXT на Питоне

Обсуждаем модели и конструкции, построенные своими руками
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Регистратор-самописец для TXT на Питоне

Сообщение Mr.Kubikus »

Выгрузить файл можно по SFTP протоколу, используя бесплатный клиент FileZilla
На всякий случай для пользователей Windows 10 важно знать, что в комплект ПО ОС уже входит пакет OpenSSH и вместе с ним утилита scp. Поэтому ничего устанавливать не надо. Инструкция по использованию scp есть в нашем блоге - Копирование файлов через SSH.
С уважением, Григорий
GitHub FB ВК
AntonEngineer
Сообщения: 42
Зарегистрирован: 10 дек 2019, 18:13

Re: Регистратор-самописец для TXT на Питоне

Сообщение AntonEngineer »

Добрый день!

Выкладываю код программы и результат того, что получилось записать:

Код: Выделить всё

import ftrobopy
import time
from datetime import datetime

# Движение робота по линии

# Подключаемся к контроллеру TXT
# Чтобы программа работала на TXT автономно, конструктору класса ftrobopy должен быть передан параметр use_TransferAreaMode=True
txt = ftrobopy.ftrobopy(use_TransferAreaMode=True)
# txt = ftrobopy.ftrobopy('192.168.7.2', 65000)

# Создаём переменные для каждого сигнала
TrailL = txt.trailfollower(1)	# Левый датчик маршрута		- вход	TXT 01
TrailR = txt.trailfollower(2)	# Правый датчик маршрута	- вход	TXT 02
I3 = txt.input(3)		# Кнопка			- вход	TXT 03
MotorL = txt.motor(1)		# Левый мотор			- выход	TXT 01
MotorR = txt.motor(2)		# Правый мотор			- выход	TXT 02
O5 = txt.output(5)		# Лампы				- выход TXT 05

# Объявляем переменные
run = bool(0)		# Запуск
flag = bool(0)		# Флаг кнопки
motL = bool(0)		# Движение левого колеса
motR = bool(0)		# Движение правого колеса

while True:
	# Вызываем метод state() для определения состояния кнопки
	SW = I3.state()
	if SW and not flag:
		flag = 1
	if not SW and flag:		
		run = not run
		# Фиксируем стартовое время программы
		start_time = datetime.now()
		# Если движение робота запущено - открываем файл 'log.txt'
		if run:
			f = open('/tmp/log.txt','w')
		# Если движение робота остановлено - закрываем файл 'log.txt'	
		if not run:
			f.close()
		flag = 0
	# Движение по линии запущено
	if run:
		O5.setLevel(512)
		TLstate = TrailL.state()
		TRstate = TrailR.state()
		if TLstate and not TRstate:
			motL = 1
			motR = 0
		if not TLstate and TRstate:
			motL = 0
			motR = 1
		if TLstate and TRstate:
			motL = 0
			motR = 0
		if not TLstate and not TRstate:
			motL = 1
			motR = 1
		MotorL.setSpeed(motL * 512)
		MotorR.setSpeed(motR * 512)
		#запись в файл 'log.txt'
		f.write(str(datetime.now() - start_time)[:-3] + ',' + str(TLstate) +
				',' + str(TRstate) + ',' + str(motL) + ',' + str(motR))
		f.write('\n')
		print(str(datetime.now() - start_time)[:-3] + ',' + str(TLstate) +
					',' + str(TRstate) + ',' + str(motL) + ',' + str(motR))
		time.sleep(0.01)
	# Движение по линии остановлено
	else:
		txt.stopAll()
Вложения
log.txt
(13.7 КБ) 708 скачиваний
Log.xls
(91.5 КБ) 711 скачиваний
log.zip
(2.12 КБ) 718 скачиваний
Последний раз редактировалось AntonEngineer 30 ноя 2021, 11:58, всего редактировалось 5 раз.
Вася М.
Сообщения: 26
Зарегистрирован: 20 дек 2010, 19:28

Re: Регистратор-самописец для TXT на Питоне

Сообщение Вася М. »

А вы можете прикрепить текстовый файл, который получается на выходе? Дальше я его сам обработаю. Тем более у меня в линуксе табличный редактор не умеет открывать XLS.
IDKFA!
AntonEngineer
Сообщения: 42
Зарегистрирован: 10 дек 2019, 18:13

Re: Регистратор-самописец для TXT на Питоне

Сообщение AntonEngineer »

Конечно, добавил во вложение к моему предыдущему ответу. Файл в zip архиве. Порядок следования сигналов в строке такой: метка времени,I1,I2,M1,M2
Вася М.
Сообщения: 26
Зарегистрирован: 20 дек 2010, 19:28

Re: Регистратор-самописец для TXT на Питоне

Сообщение Вася М. »

Спасибо. Может у вас есть не сжатая версия?
IDKFA!
AntonEngineer
Сообщения: 42
Зарегистрирован: 10 дек 2019, 18:13

Re: Регистратор-самописец для TXT на Питоне

Сообщение AntonEngineer »

Форум не даёт мне разрешения прикрепить файл с расширением .txt
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Регистратор-самописец для TXT на Питоне

Сообщение Mr.Kubikus »

AntonEngineer писал(а):
30 ноя 2021, 11:24
Форум не даёт мне разрешения прикрепить файл с расширением .txt
Я добавил расширение txt в разрешенные типы вложений. Попробуйте еще раз.
С уважением, Григорий
GitHub FB ВК
AntonEngineer
Сообщения: 42
Зарегистрирован: 10 дек 2019, 18:13

Re: Регистратор-самописец для TXT на Питоне

Сообщение AntonEngineer »

Получилось, добавил вложение.
Вася М.
Сообщения: 26
Зарегистрирован: 20 дек 2010, 19:28

Re: Регистратор-самописец для TXT на Питоне

Сообщение Вася М. »

Спасибо! Теперь я могу открыть файл журнала.

Вижу, что вы сохраняете время отсчёта в формате "ЧЧ:ММ:СС.ммм". Почему вы выбрали такой формат? Как его использовать для построения графиков в табличном процессоре? Мне пришлось установить Excel, но у меня не получается построить график, в котором координаты точек по оси Х заполняются значениями из столбца timestamp. Анализировать данные по таблицам без графиков очень сложно.
IDKFA!
AntonEngineer
Сообщения: 42
Зарегистрирован: 10 дек 2019, 18:13

Re: Регистратор-самописец для TXT на Питоне

Сообщение AntonEngineer »

Я правильно понимаю, что в строке нужно фиксировать: первая переменная - значение времени с момента запуска программы и монотонно увеличивающееся, вторая переменная - значение времени в момент изменения сигнала с датчиков маршрута и/или изменение управляющего сигнала на моторы?
Ответить