Re: Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )
Добавлено: 30 сен 2015, 00:31
на форуме linuxcnc.org напиши.
Статьи, обзоры, цены на станки и комплектующие.
https://cnc-club.ru/forum/
Код: Выделить всё
$ grep -i twopass *
axis_mm.ini:HALFILE = twopass.hal
axis_mm.ini:TWOPASS = ON
twopass.hal:loadrt sum2 names=twopass
twopass.hal:setp twopass.in0 [AXIS_0]MAX_VELOCITY
$ dpkg -s linuxcnc | grep Version
Version: 1:2.8.0~pre1.1050.gfdb8d52
torvn77 писал(а):пакость состоит в том, что нормальное исполнение хала обрывается на строке
loadrt hm2_pci config=" num_encoders=3 num_pwmgens=0 num_3pwmgens=0 num_stepgens=0 sserial_port_0=000xx "
при этом hostmot2 загружен.
Re: Фрезер с автосменой DCS M4 #3torvn77 писал(а):Источник сбоя найден, это sserial_port_0=000xx
Не ясно только почему при вызове в halrun этой команды напрямую или скрипта в целом через source сбоя нет,
а если вот так включить в конфиг есть.
Код: Выделить всё
TWOPASS = ON,nodelete,verboseКод: Выделить всё
Starting LinuxCNC...
(time=1443568930.254304,pid=11329): Registering server on TCP port 5005.
(time=1443568930.254945,pid=11329): running server for TCP port 5005 (connection_socket = 3).
iocontrol: machine: 'mill-suda-8070st-5i25-7i76-logitech_gamepad' version 'unknown'
twopass:invoked with <verbose nodelete> options
twopass: pass0:BEGIN
twopass:found ./SUDA-ST8070_5i25-7i76.hal
twopass: convert ./SUDA-ST8070_5i25-7i76.hal to /tmp/SUDA-ST8070_5i25-7i76.hal.tmp
twopass: converted hal line for tcl from ./SUDA-ST8070_5i25-7i76.hal:
twopass: hal: loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD base_period_nsec=[EMCMOT]BASE_PERIOD num_joints=[TRAJ]AXES num_dio=[EMCMOT]NUM_DIO num_aio=[EMCMOT]NUM_AIO
twopass: tcl: loadrt $::EMCMOT(EMCMOT) servo_period_nsec=$::EMCMOT(SERVO_PERIOD) traj_period_nsec=$::EMCMOT(TRAJ_PERIOD) base_period_nsec=$::EMCMOT(BASE_PERIOD) num_joints=$::TRAJ(AXES) num_dio=$::EMCMOT(NUM_DIO) num_aio=$::EMCMOT(NUM_AIO)
twopass: sourcing: /tmp/SUDA-ST8070_5i25-7i76.hal.tmp
twopass: Error in file ./SUDA-ST8070_5i25-7i76.hal:
invalid command name "SPINDLE_9"
Command not found using ::auto_path=
/usr/lib/tcltk/linuxcnc /usr/share/tcltk/tcl8.5 /usr/lib /usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk /usr/share/tcltk
Shutting down and cleaning up LinuxCNC...
Код: Выделить всё
# temporary tcl file generated by twopass.tcl
loadrt trivkins
loadrt $::EMCMOT(EMCMOT) servo_period_nsec=$::EMCMOT(SERVO_PERIOD) traj_period_nsec=$::EMCMOT(TRAJ_PERIOD) base_period_nsec=$::EMCMOT(BASE_PERIOD) num_joints=$::TRAJ(AXES) num_dio=$::EMCMOT(NUM_DIO) num_aio=$::EMCMOT(NUM_AIO)
addf motion-command-handler servo-thread
addf motion-controller servo-thread
source LinuxCNC/linuxcnc.hal
source LinuxCNC/axis-0.hal
source LinuxCNC/axis-1.hal
source LinuxCNC/axis-2.hal
source LinuxCNC/axis-3.hal
source LinuxCNC/axis-4.hal
unlinkp iocontrol.0.user-enable-out
unlinkp iocontrol.0.emc-enable-in
net linuxcnc.estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in
source MDI_Commands/mdi_commands.hal
source Interface/Gamepad-devl/Head.hal
source Devices/ToolChange/manual_toolchange.hal
source Devices/Mesa/mesa.hal
source Devices/Mesa/7i76.0/7i76.halThe halcmd language used in .hal files has a simple syntax that is actually a subset of the more powerful general-purpose tcl scripting language.
Код: Выделить всё
setp hm2_5i25.0.7i76.0.0.spinout-minlim $::SPINDLE_9(OUTPUT_MIN_LIMIT)
setp hm2_5i25.0.7i76.0.0.spinout-maxlim $::SPINDLE_9(OUTPUT_MAX_LIMIT)
setp hm2_5i25.0.7i76.0.0.spinout-scalemax $::SPINDLE_9(OUTPUT_SCALE)Код: Выделить всё
hm2/hm2_5i25.0: IO Pin 033 (P2-13): IOPort
hm2/hm2_5i25.0: registered
hm2_5i25.0: initialized AnyIO board at 0000:03:00.0
Devices/Mesa/7i76.0/spindle.hal:7: Empty variable name.
Shutting down and cleaning up LinuxCNC...У меня работает в любом варианте.torvn77 писал(а):Вот так, можно пользоваться только одним из способов записи.
Код: Выделить всё
$ grep -i twopass *
axis_mm.ini:HALFILE = twopass.hal
axis_mm.ini:TWOPASS = ON,nodelete,verbose
twopass.hal:loadrt sum2 names=twopass
twopass.hal:setp twopass.in0 $::AXIS_0(MAX_VELOCITY)
twopass.hal:setp twopass.in1 [AXIS_0]MAX_VELOCITYКод: Выделить всё
loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD base_period_nsec=[EMCMOT]BASE_PERIOD num_joints=[TRAJ]AXES num_dio=[EMCMOT]NUM_DIO num_aio=[EMCMOT]NUM_AIO
addf motion-command-handler servo-thread
addf motion-controller servo-thread
loadrt sum2 names=twopass
setp twopass.in0 $::AXIS_0(MAX_VELOCITY)
setp twopass.in1 [AXIS_0]MAX_VELOCITY
source test.hal
Код: Выделить всё
setp twopass.in1 [AXIS_1]MAX_VELOCITYКод: Выделить всё
[HAL]
#TWOPASS=OFF
TWOPASS=ON
HALUI = halui
HALFILE = SUDA-ST8070_5i25-7i76.hal
#POSTGUI_HALFILE = SUDA-ST8070_PostGUI.call_list.hal
#SHUTDOWN = SUDA-ST8070_ShutDown.call_list.halКод: Выделить всё
twopass: Error in file ./SUDA-ST8070_5i25-7i76.hal:
invalid command name "AXIS_1"
Мне не в чем признаваться.torvn77 писал(а):Признайтесь, вы ведь с самого начала об этом знали![]()
Возможно забыли, возможно специально не стали из-за сильного усложнения реализации.torvn77 писал(а):А почему конвертацию для включаемых командой source не сделали?
Чтоб воспользоваться парсером tcl.torvn77 писал(а):И вообще, зачем сделали формат hal, если его всё равно в tcl конвертируют?