Autor Tópico: EMC2 usando Phase Drive  (Lida 11831 vezes)

Description:

0 Membros e 1 Visitante estão vendo este tópico.

Offline jeff_pimenta

  • Novato
  • *
  • Posts: 10
  • Sexo: Masculino
  • GUIA-CNC
Re:EMC2 usando Phase Drive
« Resposta #15 Online: 27 de Junho de 2011, 15:39 »
Olá,

Eu já estava prevendo que não funcionaria. Só testei pra ver se o programa roda legal no PC

Veja a edição da minha última mensagem, há atualizações.

Abraços

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderador
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:EMC2 usando Phase Drive
« Resposta #16 Online: 27 de Junho de 2011, 20:20 »
Gerei um arquivo pelo Stepconf e editei à mão, agora não dá mais erros com o EMC2.

# Generated by stepconf at Mon Jun 27 19:49:33 2011
# If you make changes to this file, they will be
# overwritten when you run stepconf again

# 27/06/2011 - Modificado por minilathe - edite manualmente apenas!!
# Implementação de phase drive no EMC2
# Não use Stepconf!! Ou irá danificar este arquivo.

loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out  "
setp parport.0.reset-time 500
loadrt stepgen step_type=9,9,9

addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
net spindle-cmd <= motion.spindle-speed-out

#Criando pinos para acionar as fases dos motores:

net XA <= stepgen.0.phase-A
net XB <= stepgen.0.phase-B
net XC <= stepgen.0.phase-C
net XD <= stepgen.0.phase-D

net YA <= stepgen.1.phase-A
net YB <= stepgen.1.phase-B
net YC <= stepgen.1.phase-C
net YD <= stepgen.1.phase-D

net ZA <= stepgen.2.phase-A
net ZB <= stepgen.2.phase-B
net ZC <= stepgen.2.phase-C
net ZD <= stepgen.2.phase-D

# Associando os pinos aos sinais da porta paralela:

net XA => parport.0.pin-02-out
net XB => parport.0.pin-03-out
net XC => parport.0.pin-04-out
net XD => parport.0.pin-05-out

net YA => parport.0.pin-06-out
net YB => parport.0.pin-07-out
net YC => parport.0.pin-08-out
net YD => parport.0.pin-09-out

net ZA => parport.0.pin-01-out
net ZB => parport.0.pin-14-out
net ZC => parport.0.pin-16-out
net ZD => parport.0.pin-17-out

# Parametrização de cada gerador de passo (x,y,z) - módulos stepgen

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xenable axis.0.amp-enable-out => stepgen.0.enable

setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net yenable axis.1.amp-enable-out => stepgen.1.enable

setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
net zenable axis.2.amp-enable-out => stepgen.2.enable

net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in

loadusr -W hal_manualtoolchang e
net tool-change iocontrol.0.tool-change => hal_manualtoolchang e.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchang e.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchang e.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
« Última modificação: 27 de Junho de 2011, 20:24 por minilathe »

Offline cientista13

  • CNCMASTER
  • ******
  • Posts: 1269
  • Sexo: Masculino
Re:EMC2 usando Phase Drive
« Resposta #17 Online: 27 de Junho de 2011, 21:04 »
Jef só por curiosidade, tentou usar os arquivos que eu postei no outro tópico? http://www.guiacnc.com.br/index.php/topic,6140.msg111916.html#msg111916

Usou? nao funcionou? Porque? que erro deu?

Pergunto pois está usando versão mais recente do ubuntu e EMC2, a configuração que fiz foi para a versão do Ubuntu 8.04 + EMC2, versão V2.2.5. A principio deveria funcionar, mas se náo funciona, eu também fico curioso em saber e tentar resolver.

PS aconselho usar meio passo
 loadrt stepgen step_type=9,9,9
no arquivo *.hal

Offline jeff_pimenta

  • Novato
  • *
  • Posts: 10
  • Sexo: Masculino
  • GUIA-CNC
Re:EMC2 usando Phase Drive
« Resposta #18 Online: 27 de Junho de 2011, 23:36 »
Olá,

Acabei de fazer o primeiro teste, rodou legal!!

Amanhã eu posto detalhes da construção e mais algumas dúvidas.

Obrigado a todos que tornaram meu projeto possível!

Editado:

minilathe,

O código que o senhor postou inicialmente estava faltando o "in" depois de "enable-", com esta correção o programa funcionou legal.

Na segunda versão (foram adicionadas as 4 útimas linhas) o programa não funcionou, então eu simplesmente ignorei estas e rodei o emc. Atualmente estou usando um programa com as últimas quatro linhas que faltara.

Queria saber como funciona a troca de ferramenta, quais os movimentos que a máquina faz ao ser executados os comandos suprimidos.

cientista13,

Seu arquivo não funciona na minha versão, o que uso tem todas as configurações em um único arquivo, mas a sua versão serve para ter como base e configurar as versões mais novas.

Existe algum "hello word" para máquinas cnc? Fiquei curioso se existe algum projetinho interessante de se fazer.

Vou tentar conseguir uma câmera para postar um vídeo de minha máquina aqui no fórum.

Segue em anexo as minhas configurações da CNC.

Abraços.
« Última modificação: 29 de Junho de 2011, 19:53 por jeff_pimenta »

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderador
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:EMC2 usando Phase Drive
« Resposta #19 Online: 20 de Julho de 2011, 22:28 »
Jeff,

As 4 ou 5 últimas linhas são dispensáveis, referem-se ao aplicativo de troca de ferramenta manual do EMC.

Eu nunca usei a troca de ferramenta (manual), mas acho que a idéia é definir uma posição (coordenadas x,y,z), onde ocorrerá a troca de ferramenta, quando houver um comando de troca de ferramenta em seu programa em G-code.
« Última modificação: 20 de Julho de 2011, 22:31 por minilathe »

Offline jeff_pimenta

  • Novato
  • *
  • Posts: 10
  • Sexo: Masculino
  • GUIA-CNC
Re:EMC2 usando Phase Drive
« Resposta #20 Online: 01 de Setembro de 2011, 13:41 »
Segue um pequeno vídeo de teste:

CNC caseira + EMC2
« Última modificação: 01 de Setembro de 2011, 14:21 por Jost Dayan »

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderador
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:EMC2 usando Phase Drive
« Resposta #21 Online: 01 de Setembro de 2011, 16:49 »
Jefferson,

Parabéns pela máquina!!

Offline pic-cnc

  • Novato
  • *
  • Posts: 10
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: SP
  • Nome:: Leonardo
  • Profissão: Técnico
Re:EMC2 usando Phase Drive
« Resposta #22 Online: 06 de Novembro de 2011, 22:39 »
Olá pessoal, meu nome é Leonardo, venho acompanhando fórum há alguns meses, sou novato em CNC, estou montando uma de madeira, gostaria de uma ajuda para configurar o EMC2 versão: 2.4.6 >> Ubuntu 10.04.

Configuração do PC:

PC Chips A15G - V1.0, memória 1gb, HD 500gb

Placas CNC: N-Labs Phase-drive-5-i + R-1.0

http://i44.tinypic.com/11splhx.jpg
EMC2 usando Phase Drive






Instalei o Ubuntu CNC e não consegui fazer o motor girar, o máximo que consigo é um passo somente, depois de alguns dias pesquisando consegui 1 passo para direita e outro para esquerda.
Lendo as dicas aqui do fórum, percebi que precisava de configurar o EMC2 para Phase-drive. Segui os passos descritos para configurar a Phase-drive, muito bem explanado pelo Cientista13 no tópico:
http://www.guiacnc.com.br/index.php/topic,6140.msg111916.html#msg111916

No meu caso apresentou o erro:

Print file information:
RUN_IN_PLACE=no
EMC2_DIR=
EMC2_BIN_DIR=/usr/bin
EMC2_TCL_DIR=/usr/share/emc/tcl
EMC2_SCRIPT_DIR=
EMC2_RTLIB_DIR=/usr/realtime-2.6.32-122-rtai/modules/emc2
EMC2_CONFIG_DIR=
EMC2_LANG_DIR=/usr/share/emc/tcl/msgs
INIVAR=inivar
HALCMD=halcmd
EMC2_EMCSH=/usr/bin/wish8.5
EMC2 - 2.4.6
Machine configuration directory is '/home/leo/emc2/configs/Phase_drive'
Machine configuration file is 'phase_drive.ini'
INIFILE=/home/leo/emc2/configs/Phase_drive/phase_drive.ini
PARAMETER_FILE=stepper.var
EMCMOT=motmod
EMCIO=io
TASK=milltask
HALUI=
DISPLAY=axis
NML_FILE=emc.nml
Starting EMC2...
Starting EMC2 server program: emcsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting EMC2 IO program: io
Starting EMC2 TASK program: milltask
Starting EMC2 DISPLAY program: axis
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)

**********************************************************
* Current Directory = /home/leo/emc2/configs/Phase_drive
*
**********************************************************
* BufferName = emcStatus
* BufferType = 0
* ProcessName = emc
* Configuration File = emc.nml
* CMS Status = -3 (CMS_INTERNAL_ACCESS _ERROR: An error occured during an internal access function. )
* Recent errors repeated:

PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.

CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_

* BufferLine: B emcStatus             SHMEM   localhost       10240   0       0       2       16 1002 TCP=5005 xdr
* ProcessLine: P emc           emcStatus       LOCAL   localhost       W       0       1.0     0       0
* error_type = 5 (NML_INTERNAL_CMS_ER ROR)
************************************************************

libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
libnml/cms/cms_in.cc 1383: CMS:(emcStatus) Error writing 10748 bytes to global memory at offset 855DCB8
 (See  libnml/cms/cms_in.cc line 1386.)
libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.

Maximum number of errors to print exceeded!
waiting for s.axes
waiting for s.axes
waiting for s.axes
waiting for s.axes
waiting for s.axes
waiting for s.axes
waiting for s.axes
waiting for s.axes
waiting for s.axes
Shutting down and cleaning up EMC2...
Killing task emcsvr, PID=2522
Killing task milltask, PID=2570
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Cleanup done

Debug file information:
Unrecognized line skipped: POC     FMS     LEN     DIAM    COMMENT
A configuration error is preventing emc2 from starting.
More information may be available when running from a terminal.
2522
  PID TTY      STAT   TIME COMMAND
2570
  PID TTY      STAT   TIME COMMAND
Stopping realtime threads
Unloading hal components

Kernel message information:
[ 3879.386374] I-pipe: Domain RTAI registered.
[ 3879.386385] RTAI[hal]: <3.8.1> mounted over IPIPE-NOTHREADS 2.6-03.
[ 3879.386387] RTAI[hal]: compiled with gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) .
[ 3879.386393] RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL IRQs DISPATCHED), ISOL_CPUS_MASK: 0).
[ 3879.386395] PIPELINE layers:
[ 3879.386398] fafcce20 9ac15d93 RTAI 200
[ 3879.386400] c085cb20 0 Linux 100
[ 3879.411695] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
[ 3879.411864] RTAI[sched]: IMMEDIATE, MP, USER/KERNEL SPACE: <with RTAI OWN KTASKs>, kstacks pool size = 524288 bytes.
[ 3879.411869] RTAI[sched]: hard timer type/freq = APIC/12557835(Hz); default timing: periodic; linear timed lists.
[ 3879.411872] RTAI[sched]: Linux timer freq = 250 (Hz), TimeBase freq = 2109725000 hz.
[ 3879.411875] RTAI[sched]: timer setup = 999 ns, resched latency = 2943 ns.
[ 3879.412052] RTAI[usi]: enabled.
[ 3879.519850] RTAI[math]: loaded.
[ 3879.614638] config string '0x0378'
[ 3886.197812] RTAI[math]: unloaded.
[ 3886.273660] SCHED releases registered named ALIEN RTGLBH
[ 3886.289656] RTAI[malloc]: unloaded.
[ 3886.388025] RTAI[sched]: unloaded (forced hard/soft/hard transitions: traps 0, syscalls 0).
[ 3886.393694] I-pipe: Domain RTAI unregistered.
[ 3886.393703] RTAI[hal]: unmounted.





Estou na dúvida se o problema encontra-se na versão do EMC2 ou na configuração dos pinos da porta paralela.

Toda e qualquer ajuda será bem vinda!


Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderador
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:EMC2 usando Phase Drive
« Resposta #23 Online: 07 de Novembro de 2011, 00:03 »

Dê uma olhada no código que eu envie neste tópico, que se você ler, verá que foi recentemente testado e funcionou. O código que o cientista enviou é para uma versão antiga do EMC.

Offline pic-cnc

  • Novato
  • *
  • Posts: 10
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: SP
  • Nome:: Leonardo
  • Profissão: Técnico
Re:EMC2 usando Phase Drive
« Resposta #24 Online: 07 de Novembro de 2011, 12:13 »

Dê uma olhada no código que eu envie neste tópico, que se você ler, verá que foi recentemente testado e funcionou. O código que o cientista enviou é para uma versão antiga do EMC.

Caro Minilathe, eu li sim, ontem tentei por duas vezes sem sucesso.
Com a cabeça mais fresca hoje, percebi que misturei as alterações do Cientista com as suas, nem percebi isso!
Retornarei as congurações do EMC2 ao estado original para aplicar "somente" as suas.
Obrigado pela atenção!

Offline pic-cnc

  • Novato
  • *
  • Posts: 10
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: SP
  • Nome:: Leonardo
  • Profissão: Técnico
Re:EMC2 usando Phase Drive
« Resposta #25 Online: 07 de Novembro de 2011, 14:42 »
Minilathe, estou perdido com os passos que devo seguir, porém configurei uma interface L297 (como descrito em post anterior), carreguei via EMC ao rodar apresentou o erro informando que o eixo Z excede o limite do programa, depois de pesquisar aqui no fórum, finalmente consegui alterar o limite do eixo Z no arquivo ".ini", rodou perfeitamente.
Em seguida fiz as alterações manualmente no aquivo ".hal" e ao tentar abrir o EMC gerou o seguinte erro:

Print file information:
RUN_IN_PLACE=no
EMC2_DIR=
EMC2_BIN_DIR=/usr/bin
EMC2_TCL_DIR=/usr/share/emc/tcl
EMC2_SCRIPT_DIR=
EMC2_RTLIB_DIR=/usr/realtime-2.6.32-122-rtai/modules/emc2
EMC2_CONFIG_DIR=
EMC2_LANG_DIR=/usr/share/emc/tcl/msgs
INIVAR=inivar
HALCMD=halcmd
EMC2_EMCSH=/usr/bin/wish8.5
EMC2 - 2.4.6
Machine configuration directory is '/home/leo/emc2/configs/teste-18'
Machine configuration file is 'teste-18.ini'
INIFILE=/home/leo/emc2/configs/teste-18/teste-18.ini
PARAMETER_FILE=emc.var
EMCMOT=motmod
EMCIO=io
TASK=milltask
HALUI=
DISPLAY=axis
NML_FILE=
Starting EMC2...
Starting EMC2 server program: emcsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting EMC2 IO program: io
Shutting down and cleaning up EMC2...
Killing task emcsvr, PID=6134
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Cleanup done

Debug file information:
teste-18.hal:79: execv(hal_manualtoolchang): No such file or directory
teste-18.hal:79: hal_manualtoolchang exited without becoming ready
6134
  PID TTY      STAT   TIME COMMAND
Stopping realtime threads
Unloading hal components

Kernel message information:
[10111.624914] I-pipe: Domain RTAI registered.
[10111.624924] RTAI[hal]: <3.8.1> mounted over IPIPE-NOTHREADS 2.6-03.
[10111.624927] RTAI[hal]: compiled with gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) .
[10111.624932] RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL IRQs DISPATCHED), ISOL_CPUS_MASK: 0).
[10111.624935] PIPELINE layers:
[10111.624938] fbf7ce20 9ac15d93 RTAI 200
[10111.624940] c085cb20 0 Linux 100
[10111.653032] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
[10111.653220] RTAI[sched]: IMMEDIATE, MP, USER/KERNEL SPACE: <with RTAI OWN KTASKs>, kstacks pool size = 524288 bytes.
[10111.653225] RTAI[sched]: hard timer type/freq = APIC/12557744(Hz); default timing: periodic; linear timed lists.
[10111.653228] RTAI[sched]: Linux timer freq = 250 (Hz), TimeBase freq = 2109884000 hz.
[10111.653231] RTAI[sched]: timer setup = 999 ns, resched latency = 2944 ns.
[10111.653375] RTAI[usi]: enabled.
[10111.807756] RTAI[math]: loaded.
[10111.910498] config string '0x378 out  '
[10112.522097] RTAI[math]: unloaded.
[10112.604646] SCHED releases registered named ALIEN RTGLBH
[10112.621771] RTAI[malloc]: unloaded.
[10112.720028] RTAI[sched]: unloaded (forced hard/soft/hard transitions: traps 0, syscalls 0).
[10112.726457] I-pipe: Domain RTAI unregistered.
[10112.726466] RTAI[hal]: unmounted.


Não estranhe se eu cometi uma(s) gafe(s), sou leigo "total" em Linux, sinto-me como uma criança tentando andar.

Abraço,

Leonardo.


Offline F.Gilii

  • Administrador
  • CNCMASTER
  • *******
  • Posts: 13796
  • Sexo: Masculino
  • Consultoria, Automação e Construção de Máquinas
  • Cidade - UF: Atibaia - SP
  • Nome:: Fabio Gilii
  • Profissão: Tec. Mecanica de Precisão
Re:EMC2 usando Phase Drive
« Resposta #26 Online: 07 de Novembro de 2011, 14:58 »
Leonardo,

Não lí o tópico todo, pórtanto não sei o que lhe foi dito nem sugerido para proceder à algum ajuste, mas vai uma dica:
Tente ler e entender o que o sistema lhe diz...

Separei umas linhas que apontam para o problema - tente ler, entender e resolver: (grifei em vermelho a dica que o EMC te dá)

Debug file information:
teste-18.hal:79: execv(hal_manualtoolchang): No such file or directory
teste-18.hal:79: hal_manualtoolchang exited without becoming ready

Na linha 79 do arquivo teste-18.hal há um erro... corrija e rode de novo o programa e veja se dá algum erro.

Outra Dica:
O perfil do EMC com L279 não tem nada de aproveitável caso sua placa seja uma "phase drive"... atenha-se ao problema e aos arquivos pertinentes... não procure soluções em outros arquivos

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderador
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:EMC2 usando Phase Drive
« Resposta #27 Online: 07 de Novembro de 2011, 15:10 »
Leonardo,

Tente o seguinte:

(1) Para verificar se a sua instalação do ECM2 está ok, gere uma configuração de CNC (com motores de passo e 3 eixos) usando Stepconf. Se os arquivos ini, hal, ... forem gerados e o EMC2 rodar sem erros, então sua instalação provavelmente está ok.

(2) Substitua o conteúdo do arquivo hal gerado no passo 1 (salve o arquivo original com outro nome) pelo seu arquivo hal da placa phase drive. Que você pegou aqui no Forum. Nessa etapa poderá testar o seu arquivo hal.

Offline pic-cnc

  • Novato
  • *
  • Posts: 10
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: SP
  • Nome:: Leonardo
  • Profissão: Técnico
Re:EMC2 usando Phase Drive
« Resposta #28 Online: 07 de Novembro de 2011, 17:32 »
Ok Gilii, seguirei as suas dicas, obrigado!

Minilathe, já havia feito o procedimento (1) anteriormente ontem, rodou sem problemas, farei-o novamente com intuito de seguir o passo (2).

Minha cabeça tá pegando fogo, é que trabalho com desenvolvimento de sistemas microcontrolados.

Obrigado!

Leonardo

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderador
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:EMC2 usando Phase Drive
« Resposta #29 Online: 07 de Novembro de 2011, 17:55 »
Pela mensagem de erro, parece algo relacionado com a troca manual de ferramenta. No arquivo que eu enviei, basta retirar as últimas linhas, referentes a essa funcionalidade, conforme a seguir. Coloque este trecho no lugar do arquivo .hal gerado pelo Stepconf:


# 27/06/2011 - Modificado por minilathe - edite manualmente apenas!!
# Implementação de phase drive no EMC2
# Não use Stepconf!! Ou irá danificar este arquivo.

loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out  "
setp parport.0.reset-time 500
loadrt stepgen step_type=9,9,9

addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
net spindle-cmd <= motion.spindle-speed-out

#Criando pinos para acionar as fases dos motores:

net XA <= stepgen.0.phase-A
net XB <= stepgen.0.phase-B
net XC <= stepgen.0.phase-C
net XD <= stepgen.0.phase-D

net YA <= stepgen.1.phase-A
net YB <= stepgen.1.phase-B
net YC <= stepgen.1.phase-C
net YD <= stepgen.1.phase-D

net ZA <= stepgen.2.phase-A
net ZB <= stepgen.2.phase-B
net ZC <= stepgen.2.phase-C
net ZD <= stepgen.2.phase-D

# Associando os pinos aos sinais da porta paralela:

net XA => parport.0.pin-02-out
net XB => parport.0.pin-03-out
net XC => parport.0.pin-04-out
net XD => parport.0.pin-05-out

net YA => parport.0.pin-06-out
net YB => parport.0.pin-07-out
net YC => parport.0.pin-08-out
net YD => parport.0.pin-09-out

net ZA => parport.0.pin-01-out
net ZB => parport.0.pin-14-out
net ZC => parport.0.pin-16-out
net ZD => parport.0.pin-17-out

# Parametrização de cada gerador de passo (x,y,z) - módulos stepgen

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xenable axis.0.amp-enable-out => stepgen.0.enable

setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net yenable axis.1.amp-enable-out => stepgen.1.enable

setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
net zenable axis.2.amp-enable-out => stepgen.2.enable

net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in

 

/** * */