Страница 7 из 14
[WIKI] Создание конфигурации простого автомата от чайника
Добавлено: 15 окт 2014, 11:40
Ворон226
Часто возникает необходимость создания конфигурации простого автомата на LinuxCNC.
Попробую сделать это тут для новичков (к коим и себя отношу).
А начнем с постановки задачи.
Задача.
Сконфигурировать простой автомат "Планшетный широкоформатный сканер" на базе LinuxCNC со своей панелью управления и встроенной перепрограммируемой программой обработки заготовки.
Для начала определим необходимые направления работы:
1. Описание логики работы сканера
2. Создание файла INI
3. Создание визуальной панели
4. Создание связей между HAL, визуальной панелью и программами/подпрограммами
5. Создание HAL
6. Написание программы сканирования
7. Способы проверки и тестирования конфигурации
Продолжу вечером...
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 29 окт 2014, 20:06
Serg
про ошибку ничего.
ecn0.ngc находит в трёх местах, но открываеть не пытается:
Код: Выделить всё
$ cat output.txt | grep ust0
2126 stat64("/home/sun/linuxcnc/configs/skaner/ust0.ngc", {st_mode=S_IFREG|0644, st_size=75, ...}) = 0
2126 stat64("/home/sun/linuxcnc/configs/skaner-axis/ust0.ngc", {st_mode=S_IFREG|0644, st_size=115, ...}) = 0
2126 stat64("/home/sun/linuxcnc/configs/skaner-mygui/ust0.ngc", {st_mode=S_IFREG|0644, st_size=75, ...}) = 0
Попробуй вместо "-o /home/sun/output.txt" в конце дописать "2>/home/sun/output.txt", а то не видно где ошибка происходит.
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 29 окт 2014, 20:16
Ворон226
Т.е. вместо
sudo strace -f -o /home/sun/output.txt -e trace=file linuxcnc
запустить
sudo strace -f 2>/home/sun/output.txt -e trace=file linuxcnc
Так?
Сделано...
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 29 окт 2014, 21:58
Serg
UAVpilot писал(а):Попробуй вместо "-o /home/sun/output.txt" в конце дописать "2>/home/sun/output.txt"
sudo strace -f -e trace=file linuxcnc 2>/home/sun/output.txt
P.S. азы ком.строки уж пора бы знать...

Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 29 окт 2014, 22:03
Ворон226
UAVpilot писал(а):sudo strace -f -e trace=file linuxcnc 2>/home/sun/output.txt
Сделано - файл прилагаю...
UAVpilot писал(а):P.S. азы ком.строки уж пора бы знать...
Дык ликбез нужен - вечерняя школа для пенсионеров

Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 29 окт 2014, 22:54
Serg
Так а ошибка-то где? Она вылезает где-нибудь?..
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 29 окт 2014, 23:05
Ворон226
Она вылезает в терминале (выше уже писал как):
Код: Выделить всё
emc/task/emctask.cc 374: interp_error: Файл не найден
Файл не найден
emc/task/emctask.cc 374: interp_error: Файл не найден
Файл не найден
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 00:06
Serg
Странно, должно было в файл попасть...
попробуй так:
sudo strace -fv linuxcnc 2>/home/sun/output.txt >&2
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 00:14
Ворон226
зависает... линуксснс не запускается. сообщений никаких нет.
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 00:20
Serg
Жди, долго будет работать...
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 00:37
Ворон226
25 минут уже молчит...
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 06:15
Ворон226
за все это время не запустилось...
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 07:19
Serg
А файл какого размера получился?..
попробуй так:
sudo strace -fv linuxcnc 2>&1 | grep interp_error >/home/sun/output.txt
может побыстрее будет... Больше 10 минут ждать не надо.
Лучше конечно попробовать на симуляторе твой конфиг запустить, а то в настоящем слишком много всякой всячины запускается...
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 08:23
Ворон226
UAVpilot писал(а):А файл какого размера получился?..
14,4 Гб
UAVpilot писал(а):попробуй так:
sudo strace -fv linuxcnc 2>&1 | grep interp_error >/home/sun/output.txt
может побыстрее будет... Больше 10 минут ждать не надо.
Все запустилось быстро:
Код: Выделить всё
[pid 1637] write(1, "interp_error: \320\244\320\260\320\271\320\273 \320\275\320\265 \320\275\320\260"..., 41interp_error: Файл не найден
[pid 1637] write(1, "interp_error: \320\244\320\260\320\271\320\273 \320\275\320\265 \320\275\320\260"..., 41interp_error: Файл не найден
[pid 1637] write(1, "interp_error: \320\244\320\260\320\271\320\273 \320\275\320\265 \320\275\320\260"..., 41interp_error: Файл не найден
[pid 1647] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1651] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1652] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1653] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1654] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1655] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1656] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1657] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1658] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1659] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1664] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1665] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1667] read(6, "grep\0--color=auto\0interp_error\0", 2047) = 31
[pid 1668] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1669] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1671] read(6, "grep\0--color=auto\0interp_error\0", 2047) = 31
Это содержимое файла (такой короткий получился)
UAVpilot писал(а):Лучше конечно попробовать на симуляторе твой конфиг запустить
Я этого пока не умею... Что за симулятор? Я "прикручивал" к Axis - работает.
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 12:22
Nick
Чуть чуть погуглил:
I can't find anything on the net for a 374: interp_error. What does this mean.
It means it came from line 374 of emctask.cc, the function print_interp_error() and probably
rcs_print_error("interp_error: %s\n", interp_error_text_buf);
assuming you are using 2.5.3
Unfortunately that does not help much because it is a general error printing function called by lots of other functions
The text comes from a define in rs274ngc_return.hh
#define NCE_UNKNOWN_OPERATION _("Unknown operation")
It is used exclusively in interp_read.cc, but unfortunately its use is as a default when no other error type fits
I will pass on to the developers mailing list, hopefully someone there will have an idea what is happening
regards
http://www.linuxcnc.org/index.php/engli ... digitizing
Там в итоге была ошибка в Gкоде...
Скинь еще раз все свои конфиги и скажи, когда появляется ошибка?
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 13:03
Serg
Ворон226 писал(а):Это содержимое файла (такой короткий получился)
Ага, значит в полном дампе оно таки есть! Надо просто убрать трассиорвку лишних процессов...
Попробуй так: запусти последнюю команду снова, только перед тем, как сделаешь так, чтоб случилась ошибка надо в соседнем терминале запустить команду "ps axf" и покаж результат вместе с outpen.txt.
Ворон226 писал(а):Я этого пока не умею... Что за симулятор? Я "прикручивал" к Axis - работает.
Это который linuxcnc-sim - очень удобно разные идеи пробовать не заморачиваясь с реальным железом и реалтаймом.

Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 13:48
Ворон226
UAVpilot писал(а):запусти последнюю команду снова
Запустил команду
Код: Выделить всё
sudo strace -fv linuxcnc 2>&1 | grep interp_error >/home/sun/output.txt
Запустился LCNC и моя конфигурация.
Включил автомат (кнопкой ВКЛ), двинул оси (все двигается).
UAVpilot писал(а):перед тем, как сделаешь так, чтоб случилась ошибка надо в соседнем терминале запустить команду "ps axf"
Открыл ещё одно окно терминала и выполнил команду
Тут же появилось сообщение:
Код: Выделить всё
sun@sun-desktop:~$ ps axf
PID TTY STAT TIME COMMAND
2 ? S 0:00 [kthreadd]
3 ? S 0:00 \_ [migration/0]
4 ? S 0:00 \_ [ksoftirqd/0]
5 ? S 0:00 \_ [watchdog/0]
6 ? S 0:00 \_ [migration/1]
7 ? S 0:00 \_ [ksoftirqd/1]
8 ? S 0:00 \_ [watchdog/1]
9 ? S 0:00 \_ [events/0]
10 ? S 0:00 \_ [events/1]
11 ? S 0:00 \_ [cpuset]
12 ? S 0:00 \_ [khelper]
13 ? S 0:00 \_ [netns]
14 ? S 0:00 \_ [async/mgr]
16 ? S 0:00 \_ [sync_supers]
17 ? S 0:00 \_ [bdi-default]
18 ? S 0:00 \_ [kintegrityd/0]
19 ? S 0:00 \_ [kintegrityd/1]
20 ? S 0:00 \_ [kblockd/0]
21 ? S 0:00 \_ [kblockd/1]
22 ? S 0:00 \_ [kacpid]
23 ? S 0:00 \_ [kacpi_notify]
24 ? S 0:00 \_ [kacpi_hotplug]
25 ? S 0:00 \_ [ata/0]
26 ? S 0:00 \_ [ata/1]
27 ? S 0:00 \_ [ata_aux]
28 ? S 0:00 \_ [ksuspend_usbd]
29 ? S 0:00 \_ [khubd]
30 ? S 0:00 \_ [kseriod]
31 ? S 0:00 \_ [kmmcd]
34 ? S 0:00 \_ [khungtaskd]
35 ? S 0:00 \_ [kswapd0]
36 ? SN 0:00 \_ [ksmd]
37 ? S 0:00 \_ [aio/0]
38 ? S 0:00 \_ [aio/1]
39 ? S 0:00 \_ [ecryptfs-kthrea]
40 ? S 0:00 \_ [crypto/0]
41 ? S 0:00 \_ [crypto/1]
45 ? S 0:00 \_ [scsi_eh_0]
46 ? S 0:00 \_ [scsi_eh_1]
49 ? S 0:00 \_ [scsi_eh_2]
50 ? S 0:00 \_ [scsi_eh_3]
52 ? S 0:00 \_ [kstriped]
53 ? S 0:00 \_ [kmpathd/0]
54 ? S 0:00 \_ [kmpathd/1]
55 ? S 0:00 \_ [kmpath_handlerd]
57 ? S 0:00 \_ [ksnapd]
212 ? S 0:00 \_ [i915]
218 ? S 0:00 \_ [usbhid_resumer]
271 ? S 0:00 \_ [jbd2/sda1-8]
272 ? S 0:00 \_ [ext4-dio-unwrit]
273 ? S 0:00 \_ [ext4-dio-unwrit]
290 ? S 0:00 \_ [flush-1:0]
291 ? S 0:00 \_ [flush-1:1]
292 ? S 0:00 \_ [flush-1:2]
293 ? S 0:00 \_ [flush-1:3]
294 ? S 0:00 \_ [flush-1:4]
295 ? S 0:00 \_ [flush-1:5]
296 ? S 0:00 \_ [flush-1:6]
297 ? S 0:00 \_ [flush-1:7]
298 ? S 0:00 \_ [flush-1:8]
299 ? S 0:00 \_ [flush-1:9]
300 ? S 0:00 \_ [flush-1:10]
301 ? S 0:00 \_ [flush-1:11]
302 ? S 0:00 \_ [flush-1:12]
303 ? S 0:00 \_ [flush-1:13]
304 ? S 0:00 \_ [flush-1:14]
305 ? S 0:00 \_ [flush-1:15]
306 ? S 0:00 \_ [flush-8:0]
511 ? S 0:00 \_ [kpsmoused]
1606 ? S 0:00 \_ [RTAI_KTHRD_M:0]
1607 ? S 0:00 \_ [F:HARD:0:1]
1608 ? S 0:00 \_ [RTAI_KTHRD_M:1]
1609 ? S 0:00 \_ [F:HARD:1:1]
1 ? Ss 0:00 /sbin/init
333 ? S 0:00 upstart-udev-bridge --daemon
335 ? S<s 0:00 udevd --daemon
1627 ? S< 0:00 \_ udevd --daemon
1628 ? S< 0:00 \_ udevd --daemon
642 ? Sl 0:00 rsyslogd -c4
658 ? Ss 0:00 dbus-daemon --system --fork
665 ? Ssl 0:00 gdm-binary
760 ? Sl 0:00 \_ /usr/lib/gdm/gdm-simple-slave --display-id /org/g
814 tty7 Ss+ 0:09 \_ /usr/bin/X :0 -nr -verbose -auth /var/run/gdm
989 ? Sl 0:00 \_ /usr/lib/gdm/gdm-session-worker
1016 ? Ssl 0:00 \_ gnome-session
1087 ? Ss 0:00 \_ /usr/bin/ssh-agent /usr/bin/dbus-laun
1123 ? S 0:00 \_ gnome-power-manager
1125 ? S 0:00 \_ bluetooth-applet
1126 ? S 0:00 \_ /usr/lib/policykit-1-gnome/polkit-gno
1127 ? S 0:02 \_ gnome-panel
1130 ? S 0:03 \_ /usr/bin/compiz
1324 ? Ss 0:00 | \_ /bin/sh -c /usr/bin/compiz-decora
1325 ? S 0:00 | \_ /usr/bin/gtk-window-decorator
1134 ? S 0:01 \_ nautilus
1137 ? S 0:00 \_ nm-applet --sm-disable
1349 ? S 0:00 \_ /usr/lib/gnome-disk-utility/gdu-notif
1357 ? S 0:00 \_ python /usr/share/system-config-print
1366 ? S 0:00 \_ update-notifier
672 ? Ssl 0:00 NetworkManager
1094 ? S 0:00 \_ /sbin/dhclient -d -sf /usr/lib/NetworkManager/nm-
673 ? S 0:00 avahi-daemon: running [sun-desktop.local]
675 ? Ss 0:00 \_ avahi-daemon: chroot helper
681 ? Sl 0:00 /usr/sbin/console-kit-daemon --no-daemon
682 ? S 0:00 /usr/sbin/modem-manager
819 ? S 0:00 /sbin/wpa_supplicant -u -s
838 tty4 Ss+ 0:00 /sbin/getty -8 38400 tty4
844 tty5 Ss+ 0:00 /sbin/getty -8 38400 tty5
850 tty2 Ss+ 0:00 /sbin/getty -8 38400 tty2
851 tty3 Ss+ 0:00 /sbin/getty -8 38400 tty3
853 tty6 Ss+ 0:00 /sbin/getty -8 38400 tty6
855 ? Ss 0:00 /usr/sbin/irqbalance
868 ? Ss 0:00 cron
869 ? Ss 0:00 atd
883 ? Ss 0:00 acpid -c /etc/acpi/events -s /var/run/acpid.socket
912 ? Ss 0:00 /usr/sbin/cupsd -C /etc/cups/cupsd.conf
1036 ttyS0 Ss+ 0:00 /usr/bin/eGTouchD
1048 ? S 0:00 /usr/local/Mobile_Partner/driver/HWActivator .bin
1050 tty1 Ss+ 0:00 /sbin/getty -8 38400 tty1
1090 ? S 0:00 /usr/bin/dbus-launch --exit-with-session gnome-sessio
1093 ? Ss 0:00 /bin/dbus-daemon --fork --print-pid 5 --print-address
1099 ? S 0:00 /usr/lib/libgconf2-4/gconfd-2
1107 ? Sl 0:00 /usr/bin/gnome-keyring-daemon --start --components=pk
1111 ? Ss 0:00 /usr/lib/gnome-settings-daemon/gnome-settings-daemon
1113 ? S 0:00 /usr/lib/gvfs/gvfsd
1118 ? Ssl 0:00 /usr/lib/gvfs//gvfs-fuse-daemon /home/sun/.gvfs
1131 ? S<sl 0:00 /usr/bin/pulseaudio --start --log-target=syslog
1196 ? S 0:00 \_ /usr/lib/pulseaudio/pulse/gconf-helper
1133 ? SNl 0:00 /usr/lib/rtkit/rtkit-daemon
1141 ? S 0:00 /usr/lib/policykit-1/polkitd
1154 ? S 0:00 /usr/lib/upower/upowerd
1190 ? S 0:00 /usr/lib/gvfs/gvfsd-trash --spawner :1.8 /org/gtk/gvf
1193 ? Ssl 0:00 /usr/sbin/hald
1194 ? S 0:00 \_ hald-runner
1236 ? S 0:00 \_ hald-addon-input: Listening on /dev/input/eve
1247 ? S 0:00 \_ hald-addon-acpi: listening on acpid socket /v
1207 ? Ssl 0:00 /usr/lib/bonobo-activation/bonobo-activation-server -
1229 ? S 0:00 /usr/lib/gnome-panel/wnck-applet --oaf-activate-iid=O
1230 ? S 0:00 /usr/lib/gnome-applets/trashapplet --oaf-activate-iid
1232 ? S 0:00 /usr/lib/gvfs/gvfs-gdu-volume-monitor
1234 ? Sl 0:00 /usr/lib/udisks/udisks-daemon
1235 ? S 0:00 \_ udisks-daemon: not polling any devices
1245 ? S 0:00 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
1252 ? Sl 0:00 /usr/lib/gvfs/gvfs-afc-volume-monitor
1262 ? S 0:00 /usr/lib/gnome-panel/notification-area-applet --oaf-a
1266 ? S 0:00 /usr/lib/gnome-panel/clock-applet --oaf-activate-iid=
1267 ? S 0:00 /usr/lib/indicator-applet/indicator-applet-session --
1268 ? S 0:00 /usr/lib/indicator-applet/indicator-applet --oaf-acti
1312 ? S 0:00 /usr/lib/gvfs/gvfsd-metadata
1314 ? S 0:00 /usr/lib/indicator-session/indicator-session-service
1316 ? S 0:00 /usr/lib/indicator-sound/indicator-sound-service
1318 ? S 0:00 /usr/lib/indicator-me/indicator-me-service
1321 ? S 0:00 /usr/lib/indicator-application/indicator-application-
1323 ? S 0:00 /usr/lib/indicator-messages/indicator-messages-servic
1340 ? Ss 0:00 gnome-screensaver
1342 ? S 0:00 /usr/lib/gvfs/gvfsd-burn --spawner :1.8 /org/gtk/gvfs
1374 ? S 0:00 /usr/bin/python /usr/sbin/aptd
1395 ? Sl 0:22 /usr/lib/firefox/firefox
1442 ? Sl 0:01 gnome-terminal
1443 ? S 0:00 \_ gnome-pty-helper
1444 pts/0 Ss 0:00 \_ bash
1464 pts/0 S+ 0:17 | \_ strace -fv linuxcnc
1467 pts/0 T+ 0:00 | | \_ /bin/bash /usr/bin/linuxcnc
1586 pts/0 S+ 0:00 | | \_ linuxcncsvr -ini /home/sun/linuxcnc/c
1663 pts/0 S+ 0:02 | | \_ milltask -ini /home/sun/linuxcnc/conf
1664 pts/0 Sl+ 0:01 | | \_ /usr/bin/python ./mygui -ini /home/su
1465 pts/0 S+ 0:02 | \_ grep --color=auto interp_error
1672 pts/1 Ss 0:00 \_ bash
1694 pts/1 R+ 0:00 \_ ps axf
1633 pts/0 S+ 0:00 io -ini /home/sun/linuxcnc/configs/skaner-mygui/skane
1635 pts/0 S+ 0:00 halui -ini /home/sun/linuxcnc/configs/skaner-mygui/sk
1646 pts/0 R+ 0:36 python enrun.py
sun@sun-desktop:~$
Затем нажал кнопку с MDI-командой, обращающейся к подпрограмме и выключил конфигурацию автомата
UAVpilot писал(а):покаж результат вместе с outpen.txt.
В основном окне терминала ничего не писалось (про ошибку - молчок), а файл - ниже:
Код: Выделить всё
[pid 1663] write(1, "interp_error: \320\244\320\260\320\271\320\273 \320\275\320\265 \320\275\320\260"..., 41interp_error: Файл не найден
[pid 1701] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1702] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1703] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1704] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1705] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1706] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1707] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1708] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1712] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1713] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1718] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1719] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1721] read(6, "grep\0--color=auto\0interp_error\0", 2047) = 31
[pid 1722] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1723] read(4, "grep\0--color=auto\0interp_error\0", 1024) = 31
[pid 1725] read(6, "grep\0--color=auto\0interp_error\0", 2047) = 31
Это все.
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 13:51
Ворон226
Nick писал(а):Скинь еще раз все свои конфиги и скажи, когда появляется ошибка?
Всю конфигурацию заархивировал.
Ошибка появляется при нажатии на кнопки 4 и 5 (mdi-command-01 и 02; сигналы mdi2 и mdi3).
Могу, для сравнения, скинуть конфигурацию с axis - Она работает чётко!
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 13:53
Nick
А если в файлы ngc внизу дописать по M02?
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 13:58
Ворон226
Внизу = после
o<ust0> endsub
M02
или
M02
o<ust0> endsub
???
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 30 окт 2014, 13:58
Nick
первое.
хотя у меня вроде не влияет...