Частотник и Modbus. Универсальная заготовка.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение ScrewDriver »

FLUKE писал(а):1.05 wave
Вирусное видео, ага :hehehe:
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение ScrewDriver »

Разобрался с кнопками обороты шпинделя больше-меньше:
в разделе [Display] ini файла станка нужно написать строчку DEFAULT_SPINDLE_SPEED = 7200, обороты соответственно с которых стартует шпиндель и все будет ок.
С кнопок тогда сразу с минимальной скорости будет переменная инициализироваться и тыкать долго не придется.
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
Аватара пользователя
Sandr
Опытный
Сообщения: 108
Зарегистрирован: 28 сен 2016, 12:07
Репутация: 5
Настоящее имя: Александр
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Sandr »

Блин ломаю голову уже третий час
Все делал по инструкции в первом посте:
- Во первых в разделе Быстрый старт не указанно что необходимо провести Make и Make install :wtf:
потратил час на поиск моей криворукости - а оказалось что необходим make install

Теперь получаю ошибку

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

UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
custom_postgui.hal:9: Pin 'auto_tool_measurement.toolchange-change' does not exist
весь текст (для просмотра содержимого нажмите на ссылку)

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

RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/realtime-3.4-9-rtai-686-pae/modules/linuxcnc
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/share/linuxcnc/tcl/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.5
LINUXCNC - 2.7.12
Machine configuration directory is '/home/frezer/linuxcnc/configs/CNC'
Machine configuration file is 'CNC.ini'
INIFILE=/home/frezer/linuxcnc/configs/CNC/CNC.ini
PARAMETER_FILE=linuxcnc.var
TASK=milltask
HALUI=
DISPLAY=axis
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
Found file(REL): ./CNC.hal
Found file(REL): ./custom.hal
Starting TASK program: milltask
Starting DISPLAY program: axis
Shutting down and cleaning up LinuxCNC...
Killing task linuxcncsvr, PID=18106
Killing task milltask, PID=18175
task: 79 cycles, min=0.000003, max=0.021365, avg=0.007485, 0 latency excursions (> 10x expected cycle time of 0.010000s)
spindle-vfd: device='/dev/ttyUSB0', baud=19200, bits=8, parity='none', stopbits=1, slave=1, verbose=0, debug=0
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments

Debug file information:
.
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1437, in __call__
    return self.func(*args)
  File "/usr/bin/axis", line 1325, in jogspeed_listbox_change
    if isinstance(value, str): value = value.encode('utf-8', 'replace')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
custom_postgui.hal:9: Pin 'auto_tool_measurement.toolchange-change' does not exist
18106
  PID TTY      STAT   TIME COMMAND
18175
  PID TTY      STAT   TIME COMMAND
Stopping realtime threads
Unloading hal components

и снова час на перепроверку всех манипуляций и проверку установки auto_tool_measurement с которой все нормально!

Я в ступоре - почему при добавлении ModBus панели выдается ошибка на auto_tool_measurement ?
ini (для просмотра содержимого нажмите на ссылку)

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

# Generated by stepconf 1.1 at Thu Mar 30 13:00:27 2017
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf

[EMC]
MACHINE = CNC
DEBUG = 0

[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
MAX_FEED_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 5.50
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 55.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/frezer/linuxcnc/nc_files/gcode
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
TOOL_EDITOR = tooledit Z DIAM Remark
# добавим GladeVCP панель в виде закладки рядом с  Preview/DRO:
#GLADEVCP = -u spindle-vfd.py spindle-vfd-panel.glade 

EMBED_TAB_NAME=Auto Tool Measurement
EMBED_TAB_COMMAND=gladevcp -u python/auto_tool_measurement.py -x {XID} auto_tool_measurement.glade

EMBED_TAB_NAME=Spindle-VFD
EMBED_TAB_COMMAND=gladevcp -u spindle-vfd.py -x {XID} spindle-vfd-tab.glade

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale 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 = linuxcnc.var
RS274NGC_STARTUP_CODE = G64 P0.05

# Возможность чтения INI и HAL переменных из gcode и др.
FEATURES=30
# Папка для подпрограмм
SUBROUTINE_PATH = macros
# подпрограмма вызывается при сбое во время выполнения remap M6 процедур
ON_ABORT_COMMAND=O <on_abort> call 
# Remap M6
REMAP=M6   modalgroup=6  prolog=change_prolog   ngc=manual_change  epilog=change_epilog  

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 35714
SERVO_PERIOD = 1000000

[HAL]
HALFILE = CNC.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal

[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 5.50
MAX_VELOCITY = 55.00

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 50.00
MAX_ACCELERATION = 200.0
STEPGEN_MAXACCEL = 500.0
SCALE = 100.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 574.0
HOME_OFFSET = -1.000000
HOME_SEARCH_VEL = -25.000000
HOME_LATCH_VEL = -5.000000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1

[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 50.00
MAX_ACCELERATION = 200.0
STEPGEN_MAXACCEL = 500.0
SCALE = 100.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 293.5
HOME_OFFSET = -1.000000
HOME_SEARCH_VEL = -25.000000
HOME_LATCH_VEL = -5.000000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 2

[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 50.00
MAX_ACCELERATION = 200.0
STEPGEN_MAXACCEL = 500.0
SCALE = 100.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -226.5
MAX_LIMIT = 0.001
HOME_OFFSET = 1.000000
HOME_SEARCH_VEL = 25.000000
HOME_LATCH_VEL = 5.000000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0

[TOOLSENSOR]
# Позиция X(abs),Y(abs) для Tool setter, позиция Z(abs), с которой стартует поиск 
X = 10
Y = 30  
Z = -160
# Расстояние поиска в относительных единицах, должно быть отрицательным (поиск вниз).
MAXPROBE =  -60

[CHANGE_POSITION]
# Позиция смены инструмента. Всё в абсолютных координатах
X = 490
Y = 110
Z = -80

[PYTHON]
# Папка для пользовательских модулей
PATH_PREPEND = ./python
# Точка запуска remap процедур
TOPLEVEL = python/toplevel.py
Блог на моем сайте sandr.ru
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение ScrewDriver »

Покажите свои custom.hal и custom_postgui.hal
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
Аватара пользователя
Sandr
Опытный
Сообщения: 108
Зарегистрирован: 28 сен 2016, 12:07
Репутация: 5
Настоящее имя: Александр
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Sandr »

Тормознул.....
Надо было сразу приложить
cnc.ini (для просмотра содержимого нажмите на ссылку)

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

# Generated by stepconf 1.1 at Thu Mar 30 13:00:27 2017
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf

[EMC]
MACHINE = CNC
DEBUG = 0

[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
MAX_FEED_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 5.50
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 55.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/frezer/linuxcnc/nc_files/gcode
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
TOOL_EDITOR = tooledit Z DIAM Remark
# добавим GladeVCP панель в виде закладки рядом с  Preview/DRO:
#GLADEVCP = -u spindle-vfd.py spindle-vfd-panel.glade 

EMBED_TAB_NAME=Auto Tool Measurement
EMBED_TAB_COMMAND=gladevcp -u python/auto_tool_measurement.py -x {XID} auto_tool_measurement.glade

EMBED_TAB_NAME=Spindle-VFD
EMBED_TAB_COMMAND=gladevcp -u spindle-vfd.py -x {XID} spindle-vfd-tab.glade

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale 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 = linuxcnc.var
RS274NGC_STARTUP_CODE = G64 P0.05

# Возможность чтения INI и HAL переменных из gcode и др.
FEATURES=30
# Папка для подпрограмм
SUBROUTINE_PATH = macros
# подпрограмма вызывается при сбое во время выполнения remap M6 процедур
ON_ABORT_COMMAND=O <on_abort> call 
# Remap M6
REMAP=M6   modalgroup=6  prolog=change_prolog   ngc=manual_change  epilog=change_epilog  

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 35714
SERVO_PERIOD = 1000000

[HAL]
HALFILE = CNC.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal

[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 5.50
MAX_VELOCITY = 55.00

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 50.00
MAX_ACCELERATION = 200.0
STEPGEN_MAXACCEL = 500.0
SCALE = 100.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 574.0
HOME_OFFSET = -1.000000
HOME_SEARCH_VEL = -25.000000
HOME_LATCH_VEL = -5.000000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1

[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 50.00
MAX_ACCELERATION = 200.0
STEPGEN_MAXACCEL = 500.0
SCALE = 100.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 293.5
HOME_OFFSET = -1.000000
HOME_SEARCH_VEL = -25.000000
HOME_LATCH_VEL = -5.000000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 2

[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 50.00
MAX_ACCELERATION = 200.0
STEPGEN_MAXACCEL = 500.0
SCALE = 100.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -226.5
MAX_LIMIT = 0.001
HOME_OFFSET = 1.000000
HOME_SEARCH_VEL = 25.000000
HOME_LATCH_VEL = 5.000000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0

[TOOLSENSOR]
# Позиция X(abs),Y(abs) для Tool setter, позиция Z(abs), с которой стартует поиск 
X = 10
Y = 30  
Z = -160
# Расстояние поиска в относительных единицах, должно быть отрицательным (поиск вниз).
MAXPROBE =  -60

[CHANGE_POSITION]
# Позиция смены инструмента. Всё в абсолютных координатах
X = 490
Y = 110
Z = -80

[PYTHON]
# Папка для пользовательских модулей
PATH_PREPEND = ./python
# Точка запуска remap процедур
TOPLEVEL = python/toplevel.py
custom.hal (для просмотра содержимого нажмите на ссылку)

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

# Include your customized HAL commands here
# This file will not be overwritten when you run stepconf again

# loadusr -W spindle-vfd -d /dev/ttyUSB0 -r 9600 -b 8 -p none -s 1 -t 1 -v

loadusr -W spindle-vfd

net spindle-forward motion.spindle-forward spindle-vfd.spindle-fwd
net spindle-reverse motion.spindle-reverse spindle-vfd.spindle-rev
net spindle-on motion.spindle-on spindle-vfd.spindle-on
net spindle-speed-cmd spindle-vfd.command-speed
net spindle-at-speed  spindle-vfd.at-speed

custom_postgui.hal (для просмотра содержимого нажмите на ссылку)

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

# Include your customized HAL commands here
# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts

# The next two lines are only needed if the pins had been connected before
unlinkp iocontrol.0.tool-change
unlinkp iocontrol.0.tool-changed

# link to auto_tool_measurement toolchange, so you get the advantage of tool description on change dialog
net tool-change           auto_tool_measurement.toolchange-change   <=   iocontrol.0.tool-change
net tool-changed           auto_tool_measurement.toolchange-changed   <=   iocontrol.0.tool-changed
net tool-prep-number       auto_tool_measurement.toolchange-number    <=   iocontrol.0.tool-prep-number
net tool-prep-loop         iocontrol.0.tool-prepare      <=   iocontrol.0.tool-prepared

net vfd-command-frequency <= spindle-vfd.command-frequency => gladevcp.command-frequency
net vfd-output-frequency <= spindle-vfd.output-frequency => gladevcp.output-frequency
net vfd-output-current <= spindle-vfd.output-current => gladevcp.output-current
net vfd-output-voltage <= spindle-vfd.output-voltage => gladevcp.output-voltage
net vfd-output-power <= spindle-vfd.output-power => gladevcp.output-power
net vfd-output-torque <= spindle-vfd.output-torque => gladevcp.output-torque
net vfd-motor-rpm <= spindle-vfd.motor-rpm => gladevcp.motor-rpm
net vfd-dc-bus-voltage <= spindle-vfd.dc-bus-voltage => gladevcp.dc-bus-voltage
net vfd-temperature <= spindle-vfd.temperature => gladevcp.temperature
net vfd-uptime <= spindle-vfd.uptime => gladevcp.uptime
net vfd-fault-code <= spindle-vfd.fault-code => gladevcp.fault-code

net modbus-ok spindle-vfd.modbus-ok gladevcp.modbus-ok gladevcp.fault-reset-enable
net modbus-error-count spindle-vfd.error-count gladevcp.error-count
net modbus-error-code spindle-vfd.error-code gladevcp.error-code

net spindle-at-speed gladevcp.at-speed
Вложения
CNC.ini.tar.gz
(1.88 КБ) 1034 скачивания
custom.tar.gz
(361 байт) 989 скачиваний
custom_postgui.tar.gz
(711 байт) 1021 скачивание
Блог на моем сайте sandr.ru
Аватара пользователя
Sandr
Опытный
Сообщения: 108
Зарегистрирован: 28 сен 2016, 12:07
Репутация: 5
Настоящее имя: Александр
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Sandr »

Так пока и не разобрался :(
Блог на моем сайте sandr.ru
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение ScrewDriver »

Я буду обязательно ставить и то и другое. Просто пока не до этого сейчас, потерпи недельку, может кто другой поможет.
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение ScrewDriver »

Неделька затянулась, извиняюсь - не было времени.
У меня отдельно работали тач сенсор от Verser и модуль модбаса от BentScrew - я думаю с этим ни у кого проблем не возникло.
Заставил их работать вместе.

В ini файле станка я их прописал вот так:
#(инициализация модуля probe)
EMBED_TAB_NAME=Probe Screen
EMBED_TAB_COMMAND=halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -u python/probe_screen.py -x {XID} probe_icons/probe_screen.glade
#(инициализация модуля spindle)
EMBED_TAB_NAME=Spindle Screen
EMBED_TAB_COMMAND=halcmd loadusr -Wn spindle gladevcp -c spindle -x {XID} -u spindle-vfd.py spindle-vfd-panel.glade

Обратите внимание на то, что выделено - это для модуля Modbus, что управляет ПЧ.

Дальше! в модуле Custom_postgui.hal нужно поменять в правом столбце все gladevcp на spindle
Было:
net vfd-command-frequency <= spindle-vfd.command-frequency => gladevcp.command-frequency
Стало:
net vfd-command-frequency <= spindle-vfd.command-frequency => spindle.command-frequency

Т.е. везде, где встречаем gladevcp в данном файле меняем его на spindle (ну или что сами выберете)

P.S. я совсем не специалист в этих ваших Линуксах, так что если где-то не прав - пинайте.
Но оно работает. А первое правило - работает не лезь. ;)

Говоря русским языком - проблема в том, что в модуле ПЧ имя создаваемой абстрации совпадает с именем gladevcp - отсюда и проблемы.
Auto tool measurement пока не подключал, как всегда нет времени.
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
Аватара пользователя
Argon-11
Мастер
Сообщения: 2067
Зарегистрирован: 07 июн 2017, 17:48
Репутация: 461
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Argon-11 »

Подцепил частотник через Ethernet-RS485 адаптер с адресом 10.10.10.7. Mesa 7i92, подключенная к тому же хабу, имеет адрес 10.10.10.10.
Виртуальный порт в ОС создается через socat:
socat pty,link=/tmp/sppty,raw,echo=0,waitslave udp:10.10.10.7:12345 &

При запуске LinuxCNC вижу ошибку

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

spindle-vfd: device='/tmp/sppty', baud=9600, bits=8, parity='none', stopbits=1, slave=1, verbose=0, debug=0
2018/10/01 16:48:35 socat[9443] E write(6, 0x562dc75dba50, 8): Operation not permitted
note: MAXV     max: 100.000 units/sec 6000.000 units/min
note: LJOG     max: 100.000 units/sec 6000.000 units/min
note: LJOG default: 16.667 units/sec 1000.000 units/min
После чего socat вываливается вместе с виртуальным портом.
Я так понимаю, здесь проблема в том, что ethernet захвачен rt-компонентом, в то время как управление шпинделем происходит в user-space.
Пробовал шпиндельный компонент загружать не через loadusr, а через loadrt, появились ошибки, после чего я решил, что это не особо правильный вариант.
Что делать? Неужели еще один сетевой адаптер втыкать и кидать второй провод? А проще нет варианта?

Пока обдумывал написанное, появилась мысль, что это реально, если создать 2 виртуальных хоста (или как оно там называется), к-рые будут работать через прокси в виде единственной сетевухи. Один хост пусть будет захвачен реалтаймом, второй - юзерспейсом. Правильно/не?
Аватара пользователя
Argon-11
Мастер
Сообщения: 2067
Зарегистрирован: 07 июн 2017, 17:48
Репутация: 461
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Argon-11 »

Argon-11 писал(а):Правильно/не?
Попробовал выделить 2 разных ip на сетевую карту, соответственно меса и адаптер попали в разные подсети. Результат тот же, "operation not permitted".
Что еще попробовать в программном смысле?
Может проблема быть в тормознутости адаптера? Пинг до него порядка 1.5мсек, выше сервопериода месы.
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение ScrewDriver »

а USB свисток чего не возьмешь?
RS485 линию можно параллельно ethernet кабелю кинуть (или заюзать 2 не используемые жилы)
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
Аватара пользователя
Argon-11
Мастер
Сообщения: 2067
Зарегистрирован: 07 июн 2017, 17:48
Репутация: 461
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Argon-11 »

Да идея понравилась - посоветовали по одному кабелю работать с месой и частотником.
Аватара пользователя
Argon-11
Мастер
Сообщения: 2067
Зарегистрирован: 07 июн 2017, 17:48
Репутация: 461
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Argon-11 »

Интересный момент обнаружил, касающийся проблем со связью!
На частотнике 9600 бит/с + на адаптере Ethernet-RS485 9600 б/с: имеем периодические пропадания связи. Попробовал поиграться со скоростью адаптера и экспериментально обнаружил, что 9300 бит/с работает гораздо лучше (на частотнике по-прежнему 9600).
Не знаю уж, с чем это связано, разбираться не стал.
Адаптер - USR-TCP232-304, из дешевых, не исключено, что с времянками проблемы - на 19200 вообще не взлетело. Замена проводов и установка терминальных сопротивлений не помогла, как и манипуляции с битрейтом.
Взял бы Moxa, наверное, проблем бы не знал.
Аватара пользователя
Argon-11
Мастер
Сообщения: 2067
Зарегистрирован: 07 июн 2017, 17:48
Репутация: 461
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Argon-11 »

Посмотрел исходник spindle-vfd... Мне кажется, опрос частотника там неоптимальный. Среди всех параметров есть те, к-рые есть смысл считывать почаще, есть которые нет смысла.
Из-за этой неоптимальности значение Default_Looptime не имеет смысла при величинах ниже 0.3сек (в моем случае 26 modbus фреймов на скорости 9600бит/с).
Будет время - перепишу...
А почему, кстати, после выхода из LCNC процесс spindle-vfd остается в списке процессов? И эта... если шпиндель был включен, он не выключается. Сходу не нашел причину.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

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

Дренажный провод между адаптером и частотником присутствует?
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Argon-11
Мастер
Сообщения: 2067
Зарегистрирован: 07 июн 2017, 17:48
Репутация: 461
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Argon-11 »

Ну да, без него совсем худо было.
Вчера добавил ферритовые кольца на провода modbus и шпиндельные фазы, ошибки теперь бывают совсем редко. Сегодня ни одной не видел.
И провода modbus заменил на скрученную пару МГШВ-0.75, почему-то тоже помогло. А до этого были похожие, но другие (то же сечение, многожильные, луженые).
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

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

Argon-11 писал(а):Ну да, без него совсем худо было.
Просто у некоторых инверторов не очевидно, куда его надо подключать. Например у Kinda двухконтактная колодка RS485 находится на одной стороне частотника, а зажим логического нуля - на противоположной. И пока не разобрал/прозвонил, не был уверен, что этот ноль - общий с приемопередатчиком интерфейса.
Чудес не бывает. Бывают фокусы.
byba
Кандидат
Сообщения: 51
Зарегистрирован: 14 сен 2014, 10:11
Репутация: 6
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение byba »

Шпиндель c ЧП SUNFAR E550 по Modbus
Если установить с Live CD http://www.linuxcnc.org/linuxcnc-2.7-wheezy.iso, то spindle-vfd компилиться без всяких проблем.
Но как только переходишь на Preempt-RT по инструкции в пункте 7.1 http://linuxcnc.org/docs/2.7/html/getti ... uxcnc.html вываливается куча ошибок, в том числе, что нет файла rtapi.h, в папке usr/include/. Почему это происходит я не могу объяснить, знаний не хватает. При этом всем, если поставить linuxcnc-dev, компиляция проходит но перестает работать linuxcnc-uspace и его приходиться переустанавливать.
Решил проблему по тупому, установил c Live CD Preempt-RT вот отсюда http://www.linuxcnc.org/testing-stretch-rtpreempt/ .
Дальше надо установить пакеты pkg-config и libglib2.0-dev (glib-2.0).
Стандартная процедура компиляции.
По частотнику SUNFAR E550 – приложены исправленные исходники.
По даташиту на частотник до и после чтения/записи регистра должен быть соблюден интервал больше 3.5 символов + запас. У меня заработало только при 3 000 000 нс.
У меня преобразователь ICPCON I-7561, при соединении GND на частотнике и преобразователе (экран кабеля RS-485), начинали сыпаться ошибки по Modbus при установке скорости шпинделя выше 3 000 об/мин. Оторвал все GND, связь изумительная и не одной ошибки.
Панель использовал только боковую, поэтому Tab правил.
Скорость на данный момент показывает в два раза меньше заданной, в даташите сказано, параметр «F2.19 This parameter is mainly used to calculate motor revolution». Установлено два полюса, как только найду тахометр, так сказать для очистки совести, проверю.
Все собрано пока только в тестовом режиме на столе.
Критика приветствуется, я начинающий по Linuxcnc.
Вложения
linuxcnc_run.png (2439 просмотров) <a class='original' href='./download/file.php?id=155707&sid=62cb95e684251a6b9a895bb50416f954&mode=view' target=_blank>Загрузить оригинал (165.44 КБ)</a>
linuxcnc_modbas_sunfar_e550.tar.gz
(361.46 КБ) 927 скачиваний
Последний раз редактировалось byba 29 янв 2019, 20:17, всего редактировалось 1 раз.
Аватара пользователя
Argon-11
Мастер
Сообщения: 2067
Зарегистрирован: 07 июн 2017, 17:48
Репутация: 461
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Argon-11 »

byba писал(а):Скорость на данный момент показывает в два раза меньше заданной,
Могу выложить исходники с правильной скоростью, но в целом они не доделаны - ошибки частотника не обрабатываются + мои хотелки (выше писал) пока не реализованы.
byba
Кандидат
Сообщения: 51
Зарегистрирован: 14 сен 2014, 10:11
Репутация: 6
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение byba »

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

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