HAL соеденить два сигнала

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Гагарин
Опытный
Сообщения: 142
Зарегистрирован: 18 июн 2015, 17:25
Репутация: 13
Настоящее имя: Юрий
Контактная информация:

HAL соеденить два сигнала

Сообщение Гагарин »

Есть желание соединить два сигнала. но net соединяет только сигнал и пин. После того как пин соединен с каким-то сигналом, с другим сигналом его уже нельзя соединить.
Есть может быть какие-нибудь очевидные способы объединить сигналы? Как вариант можно накидать по быстрому компонент у которого вход и выход равны. Но стоит ли изобретать велосипед)
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение PKM »

Странное желание, не вписывается в логику Hal.
Если оба сигнала подключены к пинам out, соединить их не получится.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение Сергей Саныч »

Попробуйте более конкретно сформулировать задачу. А то непонятно, что за сигналы без пинов и зачем их соединять.
Чудес не бывает. Бывают фокусы.
Гагарин
Опытный
Сообщения: 142
Зарегистрирован: 18 июн 2015, 17:25
Репутация: 13
Настоящее имя: Юрий
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение Гагарин »

Не вписывается. Но очень хочется. Попробую объяснить желание.
Один же выход можно соединить с несколькими входами.
Допустим имеем компонент с выходами. Они соединены с сигналами

Код: Выделить всё

net    s0    ioboard.0.chanel-in-0
net    s1    ioboard.0.chanel-in-1
net    s2    ioboard.0.chanel-in-2
net    s3    ioboard.0.chanel-in-3
net    s4    ioboard.0.chanel-in-4
net    s5    ioboard.0.chanel-in-5
net    s6    ioboard.0.chanel-in-6
net    s7    ioboard.0.chanel-in-7
Далее мне требуется индикация и эти сигналы используются для подключения лампочек в pyvcp. В данном случае названия s0-s7 удобны для меня.

Код: Выделить всё

net    s0    pyvcp.led0
net    s1    pyvcp.led1
net    s2    pyvcp.led2
net    s3    pyvcp.led3
net    s4    pyvcp.led4
net    s5    pyvcp.led5
net    s6    pyvcp.led6
net    s7    pyvcp.led7
Кроме того эти сигналы нужны мне для создания дальнейших логических условий :and, or, xor и т.д.
А там мне уже не удобно и не наглядно использовать сигналы под именами s0-s7. И нужны менее абстрактные названия типа : lube-is-on, gear-is-set, tool-is-fixed и т.д.
Но соединить напрямую s3, например, и tool-is-fixed с помощью net нельзя.
В общем весь вопрос в удобстве. Можно конечно и без этого обойтись
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение Сергей Саныч »

Понятно. Значит, речь идет про имена цепей. Насколько мне известно, HAL в LCNC не предусматривает создание псевдонимов (alias) для имен цепей.
Чудес не бывает. Бывают фокусы.
Гагарин
Опытный
Сообщения: 142
Зарегистрирован: 18 июн 2015, 17:25
Репутация: 13
Настоящее имя: Юрий
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение Гагарин »

Как вариант:

Код: Выделить всё

component equality ;

pin in bit  in 
pin out bit out;

function _ nofp;
license "GPL"; 

;;

FUNCTION(_) {out=in;}
Гагарин
Опытный
Сообщения: 142
Зарегистрирован: 18 июн 2015, 17:25
Репутация: 13
Настоящее имя: Юрий
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение Гагарин »

Понят, значит будет компонент. Просто hal хотелось бы использовать в дальнейшем как шаблон и чтоб быстро можно было переназначить номера выходов конкретным не абстрактным сигналам.
Аватара пользователя
merkwurdigliebe
Мастер
Сообщения: 609
Зарегистрирован: 17 дек 2013, 22:14
Репутация: 580
Откуда: București
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение merkwurdigliebe »

Сергей Саныч писал(а):HAL в LCNC не предусматривает создание псевдонимов (alias) для имен цепей.
а я себе их сделал. конфиги делаю как-то так:

Код: Выделить всё

# стандартная часть - названия физических входов-выходов
net  in1 sscii.0.gpio.0.in-not
net  in2 sscii.0.gpio.1.in-not
net  in3 sscii.0.gpio.2.in-not
...
# назначение логических имен физическим входам
alias sig in4 x-neg-limit
alias sig in1 x-pos-limit
alias sig in5 y-neg-limit
...
# подключение сигналов используюя логические имена
net x-pos-limit => axis.0.pos-lim-sw-in
net x-neg-limit => axis.0.neg-lim-sw-in axis.0.home-sw-in
тet y-pos-limit => axis.1.pos-lim-sw-in
..
# postgui.hal - диагностика - индикация лампочками состояния входов
net in1 => yssc2p.in0
net in2 => yssc2p.in1
net in3 => yssc2p.in2
...
правда тоже не всегда помогает...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение Serg »

Помоему это какой-то "заворот кишок"...
Просто вместо своих sN используете нормальные имена сигналов, и лампочки в pyvcp подключайте к тем сигналам, которые надо контролировать. Я б ещё и сами лампочки назвал нормальными именами по контролируемым сигналам для наглядности.
Гагарин писал(а):Как вариант:
Плохой, никуда не годный вариант. На другом компе сразу не заработает, после апгрейда/переустановки LinuxCNC работать перестанет.
Лучше использовать штатные компоненты типа and2, or2, logic...
Гагарин писал(а):Просто hal хотелось бы использовать в дальнейшем как шаблон и чтоб быстро можно было переназначить номера выходов конкретным не абстрактным сигналам.
Просто вынесите подключения сигналов к портам в отдельный файл...
merkwurdigliebe писал(а):а я себе их сделал.
А может лучше штатные средства? Например Tcl...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
merkwurdigliebe
Мастер
Сообщения: 609
Зарегистрирован: 17 дек 2013, 22:14
Репутация: 580
Откуда: București
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение merkwurdigliebe »

UAVpilot писал(а):А может лучше штатные средства? Например Tcl...
мне не нравится мой вариант с алиасами потому, что если пин подключен к сети его нельзя исползовать в setp. а как с тиклем это можно реализовать?
я хочу конфиги побить на 4 части:

1. названия физических входов-выходов на используемом железе: например по номеру контакта в разъеме или по имени в PLC: X037, Y010. у мицубиси номера восьмричные, а при использовании mb2hal получаются десятичные. поэтому нужны названия
2. коммутация: назначение логических имен сигналов по именам из пункта 1. например, in1 - x-neg-limit, а Y010 - flood-coolant-pump
3. более-менее неизменная часть с подключением сигналов из п.2 к пинам компонентов linuxcnc: x-neg-limit => axis.0.neg-lim-sw-in
4. более-менее неизменная часть - индикация и диагностика. подключение к лампочкам сигналов по названиям из п.1
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение Serg »

merkwurdigliebe писал(а):мне не нравится мой вариант с алиасами потому, что если пин подключен к сети его нельзя исползовать в setp. а как с тиклем это можно реализовать?
Использовать sets вместо setp.
Но надо помнить, приоритет имеет значение OUT пина, подключенного к этому сигналу.
merkwurdigliebe писал(а):я хочу конфиги побить на 4 части:
Например так (только куски файлов):

latche.ini

Код: Выделить всё

...
[HAL]
HALUI = halui
HALFILE = loadrt.hal
HALFILE = inc/hwdep.hal
HALFILE = latche.hal
HALFILE = spindle.hal.tcl
HALFILE = inc/debug.hal
POSTGUI_HALFILE = postgui_call_list.hal
SHUTDOWN = shutdown.hal
...
hwdep.hal

Код: Выделить всё

net estop-sw.set  hm2_7i92.0.7i77.0.0.input-00-not
net estop-sw.reset  hm2_7i92.0.7i77.0.0.input-00
net X-alarm   hm2_7i92.0.7i77.0.0.input-01
net Z-alarm   hm2_7i92.0.7i77.0.0.input-02
net S-alarm   hm2_7i92.0.7i77.0.0.input-03
net S-cover   hm2_7i92.0.7i77.0.0.input-08
net power.on  hm2_7i92.0.7i77.0.0.input-09
net power.off hm2_7i92.0.7i77.0.0.input-09-not

net z-neg-limit hm2_7i92.0.7i77.0.0.input-04
net z-pos-limit hm2_7i92.0.7i77.0.0.input-05
net x-neg-limit hm2_7i92.0.7i77.0.0.input-06
net x-pos-limit hm2_7i92.0.7i77.0.0.input-07

net spindle-ccw hm2_7i92.0.7i77.0.0.output-01
net spindle-cw  hm2_7i92.0.7i77.0.0.output-00

net coolant-flood hm2_7i92.0.7i77.0.0.output-02

net toolch-bit1   hm2_7i92.0.7i77.0.0.input-16
net toolch-bit2   hm2_7i92.0.7i77.0.0.input-17
net toolch-bit3   hm2_7i92.0.7i77.0.0.input-18
net toolch-bit4   hm2_7i92.0.7i77.0.0.input-19
net toolch-strobe hm2_7i92.0.7i77.0.0.input-20
net toolch-alarm  hm2_7i92.0.7i77.0.0.input-21
net toolch-hold   hm2_7i92.0.7i77.0.0.input-22

net toolch-motor-rev    hm2_7i92.0.7i77.0.0.output-03
net toolch-motor-fwd    hm2_7i92.0.7i77.0.0.output-04

#*******************
#  AXIS X
#*******************

# ---PWM Generator signals/setup---
setp   hm2_7i92.0.7i77.0.1.analogout0-scalemax  [AXIS_0]OUTPUT_SCALE
setp   hm2_7i92.0.7i77.0.1.analogout0-minlim    [AXIS_0]OUTPUT_MIN_LIMIT
setp   hm2_7i92.0.7i77.0.1.analogout0-maxlim    [AXIS_0]OUTPUT_MAX_LIMIT

net x-output    => hm2_7i92.0.7i77.0.1.analogout0
# enable _all_ sserial pwmgens
net x-enable   hm2_7i92.0.7i77.0.1.analogena

# ---Encoder feedback signals/setup---

setp    hm2_7i92.0.encoder.00.counter-mode 0
setp    hm2_7i92.0.encoder.00.filter 1
setp    hm2_7i92.0.encoder.00.index-invert 0
setp    hm2_7i92.0.encoder.00.index-mask 0
setp    hm2_7i92.0.encoder.00.index-mask-invert 0
setp    hm2_7i92.0.encoder.00.scale  [AXIS_0]INPUT_SCALE

net x-pos-fb               <=  hm2_7i92.0.encoder.00.position
net x-vel-fb               <=  hm2_7i92.0.encoder.00.velocity
net x-index-enable         <=> hm2_7i92.0.encoder.00.index-enable
net x-pos-rawcounts        <=  hm2_7i92.0.encoder.00.rawcounts
...
latche.hal

Код: Выделить всё

...
#*******************
#  AXIS 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 x-index-enable  <=>  pid.x.index-enable
net x-enable         => pid.x.enable
net x-output         => pid.x.output
net x-pos-cmd        => pid.x.command
net x-vel-fb         => pid.x.feedback-deriv
net x-pos-fb         => pid.x.feedback

net x-pos-cmd        <= axis.0.motor-pos-cmd
net x-enable         <= axis.0.amp-enable-out
net x-pos-fb         <= axis.0.motor-pos-fb
net x-index-enable    axis.0.index-enable


# ---setup home / limit switch signals---
#net x-home-sw     =>  axis.0.home-sw-in
net x-neg-limit   =>  axis.0.neg-lim-sw-in
net x-pos-limit   =>  axis.0.pos-lim-sw-in axis.0.home-sw-in

...

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

...

net toolch-fwd carousel.0.motor-fwd ff-toolch-fwd.set
net toolch-rev carousel.0.motor-rev ff-toolch-rev.set
net toolch-motor-fwd <= ff-toolch-fwd.out
net toolch-motor-rev <= ff-toolch-rev.out
setp ff-toolch-fwd.data 0
setp ff-toolch-rev.data 0
setp ff-toolch-ena.data 0
net toolch-hold => ff-toolch-fwd.clk ff-toolch-rev.clk ff-toolch-ena.clk

...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
merkwurdigliebe
Мастер
Сообщения: 609
Зарегистрирован: 17 дек 2013, 22:14
Репутация: 580
Откуда: București
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение merkwurdigliebe »

UAVpilot писал(а):Использовать sets вместо setp.
Но надо помнить, приоритет имеет значение OUT пина, подключенного к этому сигналу.
о, круто, сенькс! артиэфэм, ага :) это решает проблему по большей части, т.к. out пинов к этим сигналам не подключено. иначе мне бы не потребовалось устанавливать их значение
Например так (только куски файлов):
а как теперь к этим файла добавить, скажем

POSTGUI_HALFILE = 7i92diag.hal

который будет показывать на вкладке состояние всех

hm2_7i92.0.7i77.0.0.input-???
hm2_7i92.0.encoder.??.position

и т.п. ровными рядами?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение Serg »

merkwurdigliebe писал(а):а как теперь к этим файла добавить, скажем

POSTGUI_HALFILE = 7i92diag.hal

который будет показывать на вкладке состояние всех

hm2_7i92.0.7i77.0.0.input-???
hm2_7i92.0.encoder.??.position

и т.п. ровными рядами?
loadusr halshow 7i92diag.halshow
:)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
merkwurdigliebe
Мастер
Сообщения: 609
Зарегистрирован: 17 дек 2013, 22:14
Репутация: 580
Откуда: București
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение merkwurdigliebe »

не, не пойдет. :) я хочу лампочки, расположенные так же, как на передней панели PLC. и подписанные восьмеричными числами
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение Serg »

Ну если " я хочу именно так и больше никак" то тут решения (нормального) нет.

Ну а если использовать минимум логики, то получается, что ты либо делаёшь стенд для диагностики платы, либо пытаешься приделать это к реальному станку.
Если первое, то прямо так и делай, там незачем делать "сдвоенные" сигналы.
Ну а если второе, то все задействованные пины уже подключены к каким-то сигналам и лампочки надо просто подключать к этим сигналам, а неподключенные пины просто не "индицировать" - они ведь неиспользуемые. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение PKM »

UAVpilot писал(а):Просто вместо своих sN используете нормальные имена сигналов, и лампочки в pyvcp подключайте к тем сигналам, которые надо контролировать
+1

хотя да, возможности подключать пин OUT к двум сигналам несколько не хватает, именно для удобства
вроде и препятствий особых нет к этому
Аватара пользователя
merkwurdigliebe
Мастер
Сообщения: 609
Зарегистрирован: 17 дек 2013, 22:14
Репутация: 580
Откуда: București
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение merkwurdigliebe »

ну почему нет? с приделанными алиасами сигналов вполне нормально получается. особенно с sets. панель с лампочками на glade.
ну и да, можно писать конфиги на тикле. все эти алиасы можно хранить переменных... подумаю на досуге

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

в общем, пока alias sig мои задачи решает. а дальше посмотрим...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение Serg »

merkwurdigliebe писал(а):я пытаюь приделать это к разным станкам. а отлаживаться, по возможности, хочу на своем. портировать конфиги туда-сюда при каждом изменении - долго и чревато ошибками. поэтому хочется локализовать назначения сигналов на физические пины в одельном файле.
Посмотри, я думаю разберёшся с идеей. Я все основные изменения конфигураций пишу и отлаживаю на своём стенде, со своими кнопками/лампочками, а потом через git заливаю на станки - там она уже работает с реальным железом и подключениями.

Код: Выделить всё

...
[HAL]
HALUI = halui
HALFILE = loadrt.hal
HALFILE = inc/hwdep.hal
HALFILE = latche.hal
HALFILE = spindle.hal.tcl
HALFILE = inc/debug.hal
POSTGUI_HALFILE = postgui_call_list.hal
SHUTDOWN = shutdown.hal
...

Код: Выделить всё

$ ls -lnR
.:
итого 95
-rw-r--r-- 1 1000 1000  438 Фев  9 21:19 autosave.halscope
drwxr-xr-x 2 1000 1000 4096 Сен 29  2016 backups
-rw-r--r-- 1 1000 1000  108 Сен 29  2016 custom_gvcp.hal
-rw-r--r-- 1 1000 1000  129 Фев  6 22:30 custom_postgui.hal
lrwxrwxrwx 1 1000 1000   11 Июн  7 21:36 inc -> inc-test/xz
drwxr-xr-x 4 1000 1000 4096 Фев  2 22:22 inc-test
drwxr-xr-x 2 1000 1000 4096 Июн 21 01:47 inc-work
-rw-r--r-- 1 1000 1000 7159 Фев  6 23:00 latche.hal
-rw-r--r-- 1 1000 1000 2137 Июн  4 18:17 latche.ini
-rw-r--r-- 1 1000 1000 3666 Июн  7 21:36 latche.ini.expanded
-rw-r--r-- 1 1000 1000 1693 Фев  9 20:17 latche.pref
-rw-r--r-- 1 1000 1000  702 Янв 30 20:56 latche.tbl
-rw-r--r-- 1 1000 1000 1678 Фев  9 21:19 linuxcnc.var
-rw-r--r-- 1 1000 1000 1678 Фев  9 21:19 linuxcnc.var.bak
-rw-r--r-- 1 1000 1000 1602 Фев  6 21:20 loadrt.hal
-rw-r--r-- 1 1000 1000  182 Фев  4 23:34 my.halshow
-rw-r--r-- 1 1000 1000  402 Фев  9 20:24 pid.s.halscope
-rw-r--r-- 1 1000 1000  327 Окт 28  2016 pid-x.halscope
-rw-r--r-- 1 1000 1000  326 Окт 28  2016 pid-z.halscope
-rw-r--r-- 1 1000 1000   87 Сен 29  2016 postgui_call_list.hal
-rw-r--r-- 1 1000 1000  292 Фев  4 22:17 s.halshow
-rw-r--r-- 1 1000 1000  105 Сен 29  2016 shutdown.hal
-rw-r--r-- 1 1000 1000 1203 Фев  6 22:19 spindle.hal.tcl

./backups:
итого 0

./inc-test:
итого 8
drwxr-xr-x 2 1000 1000 4096 Фев  2 22:47 xz
drwxr-xr-x 2 1000 1000 4096 Фев  6 20:31 zs

./inc-test/xz:
итого 20
-rw-r--r-- 1 1000 1000  466 Окт 28  2016 axis-x.ini
-rw-r--r-- 1 1000 1000  466 Окт 28  2016 axis-z.ini
-rw-r--r-- 1 1000 1000    1 Сен 29  2016 debug.hal
-rw-r--r-- 1 1000 1000    0 Сен 29  2016 debug.ini
-rw-r--r-- 1 1000 1000 3978 Окт 28  2016 hwdep.hal
-rw-r--r-- 1 1000 1000  226 Фев  2 22:38 spindle.ini

./inc-test/zs:
итого 24
-rw-r--r-- 1 1000 1000  418 Фев  2 22:29 axis-x.ini
-rw-r--r-- 1 1000 1000  467 Фев  2 23:05 axis-z.ini
-rw-r--r-- 1 1000 1000  111 Фев  2 22:27 debug.hal
-rw-r--r-- 1 1000 1000    0 Сен 29  2016 debug.ini
-rw-r--r-- 1 1000 1000 4142 Фев  6 20:31 hwdep.hal
-rw-r--r-- 1 1000 1000  258 Фев  5 01:09 spindle.ini

./inc-work:
итого 28
-rw-r--r-- 1 1000 1000  561 Ноя 24  2016 axis-x.ini
lrwxrwxrwx 1 1000 1000   16 Фев  2 22:17 axis-z.ini -> axis-z-right.ini
-rw-r--r-- 1 1000 1000  480 Янв 29 01:39 axis-z-left.ini
-rw-r--r-- 1 1000 1000  482 Янв 29 04:59 axis-z-right.ini
-rw-r--r-- 1 1000 1000    1 Сен 29  2016 debug.hal
-rw-r--r-- 1 1000 1000    0 Май 30  2015 debug.ini
-rw-r--r-- 1 1000 1000 4538 Фев  6 02:49 hwdep.hal
-rw-r--r-- 1 1000 1000  220 Фев  3 00:04 spindle.ini
merkwurdigliebe писал(а):и лишний раз че-то менять в этой идиотской рисовалке glade не хочу.
А зачем панель-то перерисовывать? Просто в hal подключаешь только нужные лампочки, а ненужные и так светиться не будут.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение PKM »

merkwurdigliebe писал(а):лазить по деревьям в halshow не очень удобно
можно сохранить и потом открыть набор пинов
в т.ч. автоматически при загрузке конфига
для отладки иного и не нужно
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: HAL соеденить два сигнала

Сообщение torvn77 »

Гагарин писал(а):Есть желание соединить два сигнала.
PKM писал(а):Странное желание, не вписывается в логику Hal.
Не такое уж и странное если пытаться писать хал не сваливая всё в кучу,а так же,
как обычно пишутся программы, с выносом типовой части конфига в заголовочные файлы.
Вот например что генерирует мастер конфигурации stepconf если поставить галку для запроса ручной смены инструмента.

Код: Выделить всё

net tool-prepare-loopback <= iocontrol.0.toolprepare => iocontrol.0.toolprepared
Если делить конфиг на код и заголовочные файлы, то получится заголовочный файл:

Код: Выделить всё

net tool-prepare iocontrol.0.toolprepare 
net tool-prepared iocontrol.0.toolprepared
И файл с кодом, с которым будут проблемы.
По идее в нём было бы логично написать явно показывая своё намерение:

Код: Выделить всё

 net tool-prepare-loopback tool-prepare => tool-prepared
Но так делать нельзя, надо либо разопределять сигналы и писать исходную строку,
либо загружать скажем компонет OR.
Первое решение плохо тремя вещами, второе только 1и 3:
1) Отсутствует прямое выражение намерения соединить два сигнала, оно должно угадываться косвенно по коду.
2) Если один из сигналов подсоединён к нескольким входным пинам, то придётся их всех восстанавливать в месте подключения.
3) Всё это лишает смысла разделения конфига на заголовочные файлы и код, затрудняя его построения в логическую структуру.
Как следствие возрастает вероятность путаницы и ошибок.
Ответить

Вернуться в «LinuxCNC»