Управление из LinuxCNC через COM-порт (РЕШЕНО)
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
Прописал
v=bin(170)
затем
ser.write(v)
сработали 7 реле из восьми...
Попробовал следом
v=bin(171)
ser.write(v)
Восьмое реле щелкнуло и отключилось...
При записи
v=bin(0)
ser.write(v)
никакой реакции...
Чего дальше?
v=bin(170)
затем
ser.write(v)
сработали 7 реле из восьми...
Попробовал следом
v=bin(171)
ser.write(v)
Восьмое реле щелкнуло и отключилось...
При записи
v=bin(0)
ser.write(v)
никакой реакции...
Чего дальше?
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
наверно мы что то не так пишем...
bytesize=8 добавим в настройки
ser = serial.Serial('/dev/ttyS0', 19200,bytesize=8, timeout=1)
закрыть порт
открыть с новыми настройками
пробовать так ser.write(bin(170))
bytesize=8 добавим в настройки
ser = serial.Serial('/dev/ttyS0', 19200,bytesize=8, timeout=1)
закрыть порт
открыть с новыми настройками
пробовать так ser.write(bin(170))
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
Аналогично.
Не ругается, но включенные реле (7 из 8) так и горят. При посылке всё моргнуло и осталось в прежнем состоянии.
Не ругается, но включенные реле (7 из 8) так и горят. При посылке всё моргнуло и осталось в прежнем состоянии.
Хочешь быть счастливым? Будь им!
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2857
- Откуда: Тюмень
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
я в питоне вообще никак, но может вместо bin попробовать int ?
Чудес не бывает. Бывают фокусы.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2857
- Откуда: Тюмень
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
И неплохо бы в настройках порта указать нечетную четность.
Чудес не бывает. Бывают фокусы.
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
На int опять ругается... На bin хоть пока помалкивает - правда и не прописывает как нужно...
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
"Для работы с модулем параметры порта необходимо выставить следующие: скорость 19200, четность ODD, стоп-бит 1, число бит в посылке 8. "Serg-tmn писал(а):И неплохо бы в настройках порта указать нечетную четность.
Интересно как?
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
в плате которую настраивал емс из ладдера "сам" посылал в порт значения (через modbus)
hex(v) можешь для полного перебора
hex(v) можешь для полного перебора
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
попробовал:
ser.write(bin(170))
ser.write(bin(10101010))
ser.write(dec(170))
ser.write(hex(AA))
не идёт...
ser.write(bin(170))
ser.write(bin(10101010))
ser.write(dec(170))
ser.write(hex(AA))
не идёт...
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
вот все настройки http://pyserial.sourceforge.net/pyserial_api.htmlВорон226 писал(а):четность ODD
parity =PARITY_ODD
Последний раз редактировалось nkp 19 май 2013, 19:48, всего редактировалось 1 раз.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2857
- Откуда: Тюмень
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
и я про то же.Ворон226 писал(а):четность ODD
Код: Выделить всё
ser = serial.Serial(port='/dev/ttyS0', baudrate=19200, parity=serial.PARITY_ODD, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1)
Код: Выделить всё
ser = serial.Serial(port='/dev/ttyS0', baudrate=19200, parity=PARITY_ODD, stopbits=STOPBITS_ONE, bytesize=EIGHTBITS, timeout=1)
Последний раз редактировалось Сергей Саныч 19 май 2013, 20:02, всего редактировалось 1 раз.
Чудес не бывает. Бывают фокусы.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
а такВорон226 писал(а):ser.write(hex(AA))
ser.write(hex(1))
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
После выполнения
ser = serial.Serial(port='/dev/ttyS0', baudrate=19200, parity=serial.PARITY_ODD, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1)
закрытия порта
ser.close()
затем
import serial
Повторения (на всякий случай)
ser = serial.Serial(port='/dev/ttyS0', baudrate=19200, parity=serial.PARITY_ODD, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1)
и прописывания
ser.write(bin(170))
включились реле 5 и 6 разряда.
на
ser.write(bin(10101010))
ser.write(dec(170))
ser.write(hex(AA))
опять нет реакции...
На ser.write(hex(AA)) ругается NameError^ name 'AA' is not defined
ser = serial.Serial(port='/dev/ttyS0', baudrate=19200, parity=serial.PARITY_ODD, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1)
закрытия порта
ser.close()
затем
import serial
Повторения (на всякий случай)
ser = serial.Serial(port='/dev/ttyS0', baudrate=19200, parity=serial.PARITY_ODD, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1)
и прописывания
ser.write(bin(170))
включились реле 5 и 6 разряда.
на
ser.write(bin(10101010))
ser.write(dec(170))
ser.write(hex(AA))
опять нет реакции...
На ser.write(hex(AA)) ругается NameError^ name 'AA' is not defined
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
вот по моему что то подобное решают
http://ubuntuforums.org/showthread.php?t=829416
http://ubuntuforums.org/showthread.php?t=829416
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
Своих бы правильно понять
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
все правильно:Ворон226 писал(а):Своих бы правильно понять
chr(i)
Return a string of one character whose ASCII code is the integer i. For example, chr(97) returns the string 'a'. This is the inverse of ord(). The argument must be in the range [0..255], inclusive; ValueError will be raised if i is outside that range.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2857
- Откуда: Тюмень
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
А так: hex('AA') ?Ворон226 писал(а):На ser.write(hex(AA)) ругается NameError^ name 'AA' is not defined
Чудес не бывает. Бывают фокусы.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
надо пробовать:
chr(1)
chr(0)
chr(1)
chr(0)
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
Теперь:Serg-tmn писал(а):А так: hex('AA') ?Ворон226 писал(а):На ser.write(hex(AA)) ругается NameError^ name 'AA' is not defined
TypeError: hex() argument can't be converted to hex
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Управление из LinuxCNC через COM-порт
в питоне в кавычках - строка...Serg-tmn писал(а):А так: hex('AA') ?