Страница 2 из 7
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 19:15
Ворон226
Прописал
v=bin(170)
затем
ser.write(v)
сработали 7 реле из восьми...
Попробовал следом
v=bin(171)
ser.write(v)
Восьмое реле щелкнуло и отключилось...
При записи
v=bin(0)
ser.write(v)
никакой реакции...
Чего дальше?
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 19:21
nkp
наверно мы что то не так пишем...
bytesize=8 добавим в настройки
ser = serial.Serial('/dev/ttyS0', 19200,bytesize=8, timeout=1)
закрыть порт
открыть с новыми настройками
пробовать так ser.write(bin(170))
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 19:30
Ворон226
Аналогично.
Не ругается, но включенные реле (7 из 8) так и горят. При посылке всё моргнуло и осталось в прежнем состоянии.
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 19:33
Сергей Саныч
я в питоне вообще никак, но может вместо bin попробовать int ?
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 19:37
Сергей Саныч
И неплохо бы в настройках порта указать нечетную четность.
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 19:38
Ворон226
На int опять ругается... На bin хоть пока помалкивает - правда и не прописывает как нужно...
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 19:39
Ворон226
Serg-tmn писал(а):И неплохо бы в настройках порта указать нечетную четность.
"Для работы с модулем параметры порта необходимо выставить следующие: скорость 19200,
четность ODD, стоп-бит 1, число бит в посылке 8. "
Интересно как?
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 19:41
nkp
в плате которую настраивал емс из ладдера "сам" посылал в порт значения (через modbus)
hex(v) можешь для полного перебора
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 19:44
Ворон226
попробовал:
ser.write(bin(170))
ser.write(bin(10101010))
ser.write(dec(170))
ser.write(hex(AA))
не идёт...
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 19:46
nkp
Ворон226 писал(а):четность ODD
вот все настройки
http://pyserial.sourceforge.net/pyserial_api.html
parity =PARITY_ODD
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 19:46
Сергей Саныч
Ворон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)
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 19:50
nkp
Ворон226 писал(а):ser.write(hex(AA))
а так
ser.write(hex(1))
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 20:01
Ворон226
После выполнения
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
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 20:03
nkp
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 20:05
Ворон226
Своих бы правильно понять

Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 20:08
nkp
Ворон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.
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 20:10
Сергей Саныч
Ворон226 писал(а):На ser.write(hex(AA)) ругается NameError^ name 'AA' is not defined
А так: hex('AA') ?
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 20:11
nkp
надо пробовать:
chr(1)
chr(0)
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 20:13
Ворон226
Serg-tmn писал(а):Ворон226 писал(а):На ser.write(hex(AA)) ругается NameError^ name 'AA' is not defined
А так: hex('AA') ?
Теперь:
TypeError: hex() argument can't be converted to hex
Re: Управление из LinuxCNC через COM-порт
Добавлено: 19 май 2013, 20:15
nkp
Serg-tmn писал(а):А так: hex('AA') ?
в питоне в кавычках - строка...