Страница 65 из 72

Re: Настраиваем контроллер to_pci.

Добавлено: 06 сен 2021, 07:13
Dron
Изображение
при запуске раз через раз вылетает ошибка .
Что поправить нужно ?

Re: Настраиваем контроллер to_pci.

Добавлено: 06 сен 2021, 07:37
steals_y2k
латенси.
можно забить)

Re: Настраиваем контроллер to_pci.

Добавлено: 06 сен 2021, 09:43
mmv
Почему то задержка возникает при запуске linuxcnc.
Если запускается без этой ошибки, то потом она не появляется, т.е. появиться она может только при старте. В процессе работы все норм

Re: Настраиваем контроллер to_pci.

Добавлено: 06 сен 2021, 10:35
Dron
mmv писал(а): Почему то задержка возникает при запуске linuxcnc.
Если запускается без этой ошибки, то потом она не появляется, т.е. появиться она может только при старте. В процессе работы все норм
Я правильно понимаю что BASE_THREAD нужен для того что бы генерировать импульсы на параллельном порту ?
Так как при использовании плат эту функцию берет на себя ПЛИС на main-платe зачем мы его вообще запускаем ?
EMCMOT возможно запустить только с servo-thread ?
BASE_THREAD - достаточно ресурсоемкий процесс плюс еще и не нужный.
Я правильно понимаю как это работает ?

Re: Настраиваем контроллер to_pci.

Добавлено: 18 окт 2021, 19:02
plotik
На токароном написал простенькую УП. Доходит до G1 и никуда не едет.В чем проблема?
hal
(для просмотра содержимого нажмите на ссылку)
# ################################################
# LOADRT
# ################################################

loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt to_pci
loadrt pid names=pid.x,pid.z
loadrt scale names=scale.gear
loadrt mux8 names=mux8.pered
loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=10 numS32in=5 numS32out=5 numFloatIn=1 numFloatOut=1
loadusr classicladder --nogui custom.clp

# ################################################
# THREADS
# ################################################

addf to_pci.1.update servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf scale.gear servo-thread
addf mux8.pered servo-thread
addf classicladder.0.refresh servo-thread

######################################################
# E-Stop section
# ####################################################

net estop-ext to_pci.1.pins.pin-00-in iocontrol.0.emc-enable-in
#net estop-ext => iocontrol.0.emc-enable-in
#net estop-out to_pci.1.pins.pin-05-out <= iocontrol.0.user-enable-out
#net estop-ext iocontrol.0.emc-enable-in <= iocontrol.0.user-enable-out

# #####################
# ---enable servo---
# #####################
net cnc-ok <= motion.motion-enabled => to_pci.1.enable_drive
net estop-ext => classicladder.0.in-11
# ################
# X [0] Axis
# ################

#============== pid X================

setp pid.x.Pgain [AXIS_0]P
setp pid.x.Igain [AXIS_0]I
setp pid.x.Dgain [AXIS_0]D

setp pid.x.bias [AXIS_0]BIAS
setp pid.x.FF0 [AXIS_0]FF0
setp pid.x.FF1 [AXIS_0]FF1
setp pid.x.FF2 [AXIS_0]FF2

setp pid.x.deadband [AXIS_0]DEADBAND
setp pid.x.maxoutput [AXIS_0]MAX_OUTPUT

net cnc-ok => pid.x.enable #разрешение вычисления X
net x-output <= pid.x.output
net x-pos-cmd <= pid.x.command
net x-pos-fb => pid.x.feedback
net x-pos-cmd axis.0.motor-pos-cmd

#============== FEED BACK X ================

setp to_pci.1.feedback.enc_scale1 [AXIS_0]ENCODER_SCALE
net x-pos-fb <= to_pci.1.feedback.encoder1
net x-pos-fb => axis.0.motor-pos-fb

#============== command X ================

setp to_pci.1.PWM.out_scale1 [AXIS_0]OUTPUT_SCALE
net x-output => to_pci.1.PWM.dcontrol1 #управление X


net home-x => axis.0.home-sw-in
net min-x => axis.0.neg-lim-sw-in
net max-x => axis.0.pos-lim-sw-in

# ################
# Z [2] Axis
# ################

#============== pid z================

setp pid.z.Pgain [AXIS_2]P
setp pid.z.Igain [AXIS_2]I
setp pid.z.Dgain [AXIS_2]D

setp pid.z.bias [AXIS_2]BIAS
setp pid.z.FF0 [AXIS_2]FF0
setp pid.z.FF1 [AXIS_2]FF1
setp pid.z.FF2 [AXIS_2]FF2

setp pid.z.deadband [AXIS_2]DEADBAND
setp pid.z.maxoutput [AXIS_2]MAX_OUTPUT

net cnc-ok => pid.z.enable
net z-output => pid.z.output
net z-pos-cmd => pid.z.command
net z-pos-fb => pid.z.feedback
net z-pos-cmd axis.2.motor-pos-cmd

#============== FEED BACK Z================

setp to_pci.1.feedback.enc_scale0 [AXIS_2]ENCODER_SCALE
net z-pos-fb <= to_pci.1.feedback.encoder0
net z-pos-fb => axis.2.motor-pos-fb

#============== command Z================

setp to_pci.1.PWM.out_scale0 [AXIS_2]OUTPUT_SCALE
net z-output => to_pci.1.PWM.dcontrol0 #управление Z

net home-z => axis.2.home-sw-in
net min-z => axis.2.neg-lim-sw-in
net max-z => axis.2.pos-lim-sw-in

# ################
# SPINDLE
# ################

net spindle-vel-cmd-rps <= motion.spindle-speed-out-rps
net spindle-vel-cmd <= motion.spindle-speed-out
net spindle-enable <= motion.spindle-on
net spindle-cw <= motion.spindle-forward
net spindle-ccw <= motion.spindle-reverse
net spindle-brake <= motion.spindle-brake
net spindle-revs => motion.spindle-revs
#net spindle-at-speed => motion.spindle-at-speed
net spindle-enable => motion.spindle-at-speed
net spindle-index-enable <=> motion.spindle-index-enable

#============== FEED BACK S================

setp to_pci.1.feedback.enc_scale2 [SPINDLE]ENCODER_SCALE
net spindle-revs <= to_pci.1.feedback.encoder3
net spindle-index-enable <=> to_pci.1.feedback.index_en3

#============== command S================

net spindle-vel-cmd => scale.gear.in
net Spindle-motor-command scale.gear.out => to_pci.1.PWM.dcontrol2

#============== Spindel scale ===========================

net hand_Scale_1 => mux8.pered.sel0
net hand_Scale_2 => mux8.pered.sel1
net hand_Scale_3 => mux8.pered.sel2

setp mux8.pered.in0 0.0
setp mux8.pered.in1 0.00040625
setp mux8.pered.in2 0.001
setp mux8.pered.in3 0.0
setp mux8.pered.in4 0.00270
setp mux8.pered.in5 0.0
setp mux8.pered.in6 0.0
setp mux8.pered.in7 0.0

net gear-scale mux8.pered.out => scale.gear.gain


#============== Setup spindle at speed signals=============

#net => spindle-at-speed

# ################
# MPG
# ################

setp to_pci.1.feedback.enc_scale4 [AXIS_4]ENCODER_SCALE
net mpg-pos-fb <= to_pci.1.feedback.encoder4
#net mpg-pos-fb => axis.2.motor-pos-fb

#============== command Z================

setp to_pci.1.PWM.out_scale4 [AXIS_4]OUTPUT_SCALE
#net mpg-output => to_pci.1.dcontrol0 #управление Z

# ##################################################
# External signals
# ##################################################

#================ TOOL======================
net T1 <= to_pci.1.pins.pin-08-in => classicladder.0.in-00
net T2 <= to_pci.1.pins.pin-09-in => classicladder.0.in-01
net T3 <= to_pci.1.pins.pin-10-in => classicladder.0.in-02
net T4 <= to_pci.1.pins.pin-11-in => classicladder.0.in-03
net T5 <= to_pci.1.pins.pin-12-in => classicladder.0.in-04
net T6 <= to_pci.1.pins.pin-13-in => classicladder.0.in-05
net T7 <= to_pci.1.pins.pin-14-in => classicladder.0.in-06
net T8 <= to_pci.1.pins.pin-15-in => classicladder.0.in-07


# --- TOOL_Fixing ---
net Fixing <= to_pci.1.pins.pin-07-in => classicladder.0.in-08

# --- TOOL_SEARCH_OUT ---
net tool_search to_pci.1.pins.pin-05-out => classicladder.0.out-00


# --- TOOL_CLOSE_OUT ---
net tool_close_out to_pci.1.pins.pin-02-out => classicladder.0.out-01

# ---- indikator ------
net tool_rotary => classicladder.0.out-05

# ---manual tool change signals---
loadusr -W hal_manualtoolchange

net tool-change-request iocontrol.0.tool-change => hal_manualtoolchange.change => classicladder.0.in-09
net tool-change-confirmed iocontrol.0.tool-changed <= classicladder.0.out-02

net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number => classicladder.0.s32in-01

net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

# ####################
# LIMITS
# ####################


# --- MAX-X ---
#net max-x <= to_pci.1.pins.pin-03-in-n

# --- MIN-X ---
#net min-x <= to_pci.1.pins.pin-01-in

# --- HOME-X ---
net home-x <= to_pci.1.pins.pin-02-in-n

# --- MAX-Z ---
#net max-z <= to_pci.1.pins.pin-03-in-n

# --- MIN-Z ---
#net min-z <= to_pci.1.pins.pin-06-in

# --- HOME-Z ---
net home-z <= to_pci.1.pins.pin-03-in-n


# ####################
# Other signals
# ####################

#net machine-is-enabled => classicladder.0.in-11

net Lube_on to_pci.1.pins.pin-04-out => classicladder.0.out-04


#setp to_pci.1.feedback.enc_scale1 1
#setp to_pci.1.feedback.enc_scale2 1
#setp to_pci.1.feedback.enc_scale3 1
#setp to_pci.1.feedback.enc_scale4 1

#net buton0 => to_pci.1.pins.pin-07-out
net estop-ext => to_pci.1.pins.pin-07-out
net spindle-enable => to_pci.1.pins.pin-06-out
#net buton2 => to_pci.1.pins.pin-05-out #фикс инстр
#net buton2 classicladder.0.in-12
#net buton3 => to_pci.1.pins.pin-04-out #смазка напр
#net buton4 => to_pci.1.pins.pin-03-out #flood
net cool iocontrol.0.coolant-flood => to_pci.1.pins.pin-03-out #flood
#net buton5 => to_pci.1.pins.pin-02-out #поиск инстр
#net buton5 classicladder.0.in-13
#net buton6 => to_pci.1.pins.pin-01-out
net spindle-enable => to_pci.1.pins.pin-01-out
net cnc-ok => to_pci.1.pins.pin-00-out
ini
(для просмотра содержимого нажмите на ссылку)
DRIVER=to_pci

[EMC]

MACHINE = 16A20

DEBUG = 0

[DISPLAY]

DISPLAY = axis
CYCLE_TIME = 0.0500
HELP_FILE = tklinucnc.txt
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.5
PROGRAM_PREFIX = /home/cnc/linuxcnc/nc_files
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PYVCP = Panel.xml
INCREMENTS = 1mm .1mm .01mm
LATHE = 1
DEFAULT_LINEAR_VELOCITY = 10
MAX_LINEAR_VELOCITY = 40
MIN_LINEAR_VELOCITY = 0.010000
EDITOR = gedit
GEOMETRY = x z
HOME_IGNORE_LIMITS = NO
NO_FORCE_HOMING = 1

[FILTER]

PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python

[TASK]

TASK = milltask
CYCLE_TIME = 0.010

[RS274NGC]

PARAMETER_FILE = rs274ngc.var

[EMCMOT]

EMCMOT = motmod

COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
SERVO_PERIOD = 1000000

[HAL]

HALUI = halui
HALFILE = 16k202.hal
POSTGUI_HALFILE = custom_postgui.hal

[HALUI]
MDI_COMMAND = T1
MDI_COMMAND = T2
MDI_COMMAND = T3
MDI_COMMAND = T4
MDI_COMMAND = T5
MDI_COMMAND = T6
MDI_COMMAND = T7
MDI_COMMAND = T8
MDI_COMMAND = M06 G43

[TRAJ]

AXES = 3
COORDINATES = X Z
HOME = 0 0
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 0.1
MAX_LINEAR_VELOCITY = 1.
NO_FORCE_HOMING = 0
POSITION_FILE = position.txt
NO_FORCE_HOMING = 1

[EMCIO]

EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
RANDOM_TOOLCHANGER = 1
TOOL_CHANGE_WITH_SPINDLE_ON = 1


#********************
# Axis X
#********************

[AXIS_0]

TYPE = LINEAR
HOME = 0.0

FERROR = 0.1
MIN_FERROR = 5

MAX_VELOCITY = 80

MAX_ACCELERATION = 200

P = 4
I = 0
D = 0

FF0 = 0
FF1 = 0.09
FF2 = 0

BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 10
ENCODER_SCALE = 2000
OUTPUT_SCALE = 1


MIN_LIMIT = -70
MAX_LIMIT = 40

HOME_OFFSET = 0
HOME_SEARCH_VEL = -10

#HOME_LATCH_VEL = 1.5
#HOME_FINAL_VEL = 1.5
HOME_LATCH_VEL = 0.1
HOME_FINAL_VEL = 0.1
HOME_SEQUENCE = 0
HOME_IGNORE_LIMITS = NO


#********************
# Axis Z
#********************

[AXIS_2]

TYPE = LINEAR
HOME = 0.0

FERROR = 0.1
MIN_FERROR = 5

MAX_VELOCITY = 100
MAX_ACCELERATION = 300

P = 2.0
I = 0.01
D = 0.01


FF0 = 0
FF1 = 0.035
FF2 = 0

BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 10
ENCODER_SCALE = -1000
OUTPUT_SCALE = -1


MAX_LIMIT = 100.0
MIN_LIMIT = -500.0



HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 10
#HOME_SEARCH_VEL = 0.1
#HOME_LATCH_VEL = 1.5
#HOME_FINAL_VEL = 1.5
HOME_LATCH_VEL = 0.1
HOME_FINAL_VEL = 0.1
HOME_SEQUENCE = 0
HOME_IGNORE_LIMITS = NO

#********************
# Spindle
#********************

[SPINDLE]

ENCODER_SCALE = 4096
OUTPUT_SCALE = 10

#********************
# Axis MPG
#********************

[AXIS_4]
ENCODER_SCALE = 400
OUTPUT_SCALE = 10















Re: Настраиваем контроллер to_pci.

Добавлено: 18 окт 2021, 19:48
Dmaster
motion.spindle−speed−in = 0

Re: Настраиваем контроллер to_pci.

Добавлено: 28 окт 2021, 13:49
Фрост
просьба описать поподробнее сигнал to_pci.1.wd_lock_n, в частности когда держится значение TRUE

Re: Настраиваем контроллер to_pci.

Добавлено: 28 окт 2021, 15:54
mmv
Это сигнал блокировки от внутреннего сторожевого таймера(буква n в конце означает инверсный). Значение true нормальное. При значении false контроллер встаёт в блокировку выходов. Все выходы отключаются или становятся нулевыми.

Re: Настраиваем контроллер to_pci.

Добавлено: 28 окт 2021, 17:13
Фрост
иными словами, его можно завязать на общее реле, чтоб обесточивало все пускатели при закрытии программы? Просто при отключении компа происходит кратковременное самопроизвольное срабатывание релюшек на выходах out, хочу завести их через реле с аппаратной задержкой в секунду, а реле запитать сигналом вачдога

Re: Настраиваем контроллер to_pci.

Добавлено: 28 окт 2021, 21:32
mmv
Фрост писал(а): Просто при отключении компа происходит кратковременное самопроизвольное срабатывание релюшек на выходах
При включении или отключении?

Re: Настраиваем контроллер to_pci.

Добавлено: 28 окт 2021, 21:48
Фрост
именно при отключении

Re: Настраиваем контроллер to_pci.

Добавлено: 28 окт 2021, 23:17
ex71
на PCI карте? у меня на Eth такого нет, а вот на пси кажется было.

Re: Настраиваем контроллер to_pci.

Добавлено: 29 окт 2021, 02:03
Фрост
на PCI

Re: Настраиваем контроллер to_pci.

Добавлено: 17 ноя 2021, 16:09
SDRF
Приветствую. Прошу помощи в настройке платы Pcicd. Как я понял сигналы STEP и DIR генерируются на физвыходы по умолчанию и в HALe не прописываются. Активация генерации происходит при подаче на пин outstepN сигнала от 0 до 10 (-10) В и enable_drive = true. Сигналы +-10 В подаются с PID (x-output). Обратная связь идет с внутреннего счетчика перемещения countN (step_dir.count ==> x-pos-fb). Длительность импульса STEP ставлю 2, invert_dirN=0, escaleN = 100 ..... и ничего не происходит (движения нет step_dir.count = 0). Драйвер шагового подключен по схеме со свободным коллектором, +5 В беру с платы step_dir. пускаю на драйвер и возвращаю на входы step/dir. Драйвера ставил разных версий, ничего не помогает, короче ХЗ как это работает, помогите разобраться.

Re: Настраиваем контроллер to_pci.

Добавлено: 17 ноя 2021, 17:20
ebragim
Как я понял, потенциально плата похожа на месу. То есть можно попробовать сделать с помощью pncconf конфиг для месы, а потом ручками поменять физические пины на те, что у вас используются, и потом уже дорабатывать вручную. Какую плату месы тогда можно выбрать для генерации образца, какая больше похожа на вашу (pci sd)?
Просто с нуля писать - это на порядок сложнее, если никогда таким не занимался, а имея некий образец, будет в разы легче.

Re: Настраиваем контроллер to_pci.

Добавлено: 17 ноя 2021, 18:31
ex71
ebragim писал(а): 17 ноя 2021, 17:20 Просто с нуля писать - это на порядок сложнее, если никогда таким не занимался, а имея некий образец, будет в разы легче.
так есть же пример конфига, зачем заниматься самописным конфигом после генератора вообще для другой системы. На месе не так делается.
SDRF писал(а): 17 ноя 2021, 16:09 Приветствую. Прошу помощи в настройке платы Pcicd.
конфиг приложите, скорее всего что-то не так указали.

Re: Настраиваем контроллер to_pci.

Добавлено: 17 ноя 2021, 21:20
steals_y2k
ebragim писал(а): Какую плату месы тогда можно выбрать для генерации образца, какая больше похожа на вашу (pci sd)?
7и76е, пожалуй.

но вообще, я согласен, что из примера можно куски взять.

да и от руки написать-не столь большая проблема, немногим больше. можно вывести все пины в файл и из него копипастить в любой практически.

Re: Настраиваем контроллер to_pci.

Добавлено: 18 ноя 2021, 00:03
mmv
SDRF писал(а): Приветствую. Прошу помощи в настройке платы Pcicd. Как я понял сигналы STEP и DIR генерируются на физвыходы по умолчанию и в HALe не прописываются. Активация генерации происходит при подаче на пин outstepN сигнала от 0 до 10 (-10) В и enable_drive = true. Сигналы +-10 В подаются с PID (x-output). Обратная связь идет с внутреннего счетчика перемещения countN (step_dir.count ==> x-pos-fb). Длительность импульса STEP ставлю 2, invert_dirN=0, escaleN = 100 ..... и ничего не происходит (движения нет step_dir.count = 0). Драйвер шагового подключен по схеме со свободным коллектором, +5 В беру с платы step_dir. пускаю на драйвер и возвращаю на входы step/dir. Драйвера ставил разных версий, ничего не помогает, короче ХЗ как это работает, помогите разобраться.
Доброго дня, опишите на каком ядре всё это работает(RTAI,RT), какой драйвер.

Re: Настраиваем контроллер to_pci.

Добавлено: 18 ноя 2021, 09:15
SDRF
mmv писал(а): 18 ноя 2021, 00:03
SDRF писал(а): Приветствую. Прошу помощи в настройке платы Pcicd. Как я понял сигналы STEP и DIR генерируются на физвыходы по умолчанию и в HALe не прописываются. Активация генерации происходит при подаче на пин outstepN сигнала от 0 до 10 (-10) В и enable_drive = true. Сигналы +-10 В подаются с PID (x-output). Обратная связь идет с внутреннего счетчика перемещения countN (step_dir.count ==> x-pos-fb). Длительность импульса STEP ставлю 2, invert_dirN=0, escaleN = 100 ..... и ничего не происходит (движения нет step_dir.count = 0). Драйвер шагового подключен по схеме со свободным коллектором, +5 В беру с платы step_dir. пускаю на драйвер и возвращаю на входы step/dir. Драйвера ставил разных версий, ничего не помогает, короче ХЗ как это работает, помогите разобраться.
Доброго дня, опишите на каком ядре всё это работает(RTAI,RT), какой драйвер.
Не особо шарю, но вроде RT,
Драйвера разные пробовал в данное время Version 3.42

Re: Настраиваем контроллер to_pci.

Добавлено: 18 ноя 2021, 10:18
mmv
Вечером драйвер выложу, он есть тут, чуть ранее, но дольше искать.