LinuxCNC Documentation

Це програма HAL, що не працює в реальному часі, для керування частотними перетворювачами серії S11 від Toshiba.

vfs11_vfd підтримує послідовні та TCP-з’єднання. Послідовні з’єднання можуть бути RS232 або RS485. RS485 підтримується в повно- та напівдуплексному режимі. TCP-з’єднання можуть бути пасивними (очікування вхідного з’єднання) або активними вихідними з’єднаннями, що може бути корисно для підключення до пристроїв на базі TCP або через термінальний сервер.

Незалежно від типу підключення, vfs11_vfd працює як головний пристрій Modbus.

Цей компонент завантажується за допомогою команди halcmd "loadusr":

loadusr -Wn spindle-vfd vfs11_vfd -n spindle-vfd

Наведена вище команда говорить: loadusr, чекайте завантаження named, компонент vfs11_vfd, named spindle-vfd

1. Параметри командного рядка

«vfs11_vfd» здебільшого налаштовується через параметри INI-файлу. Параметри командного рядка:

  • -n or --name <halname> : встановити назву компонента HAL

  • -I або --ini <назва_iniфайлу>: взяти конфігурацію з цього INI-файлу. За замовчуванням використовується змінна середовища INI_ФАЙЛ_НАЗВА.

  • -S або --section <назва розділу>: взяти конфігурацію з цього розділу в INI-файлі. За замовчуванням використовується значення VFS11.

  • «-d або --debug» увімкне виведення повідомлень налагодження у консоль.

  • -m або --modbus-debug увімкнути повідомлення Modbus у виводі консолі

  • -r або --report-device повідомляє про властивості пристрою в консолі під час запуску

Налагодження можна ввімкнути або вимкнути, надіславши сигнал USR1 до процесу vfs11_vfd. Налагодження Modbus можна ввімкнути або вимкнути, надіславши сигнал USR2 до процесу vfs11_vfd (приклад: kill -USR1 `pidof vfs11_vfd`).

Note
Що якщо є помилки конфігурації послідовного порту, увімкнення детального режиму може призвести до потоку помилок тайм-ауту.

2. Піни

Де <n> — це vfs11_vfd або ім’я, задане під час завантаження з опцією -n.

  • <n>.acceleration-pattern (bool, in) when true, set acceleration and deceleration times as defined in registers F500 and F501 respectively. Використовується в ПІД-контурах для вибору коротших часів наростання/зниження, щоб уникнути коливань.

  • <n>.alarm-code (sint, out) non-zero if drive is in alarmed state. Bitmap describing alarm information (see register FC91 description). Use err-reset (see below) to clear the alarm.

  • <n>.at-speed (bool, out) when drive is at commanded speed (see speed-tolerance below)

  • <n>.current-load-percentage (real, out) reported from the VFD

  • <n>.dc-brake (bool, in) engage the DC brake. Also turns off spindle-on.

  • <n>.enable (bool, in) enable the VFD. If false, all operating parameters are still read but control is released and panel control is enabled (subject to VFD setup).

  • <n>.err-reset (bool, in) reset errors (alarms a.k.a Trip and e-stop status). Resetting the VFD may cause a 2-second delay until it’s rebooted and Modbus is up again.

  • <n>.estop (bool, in) put the VFD into emergency-stopped status. No operation possible until cleared with err-reset or powercycling.

  • <n>.frequency-command (real, out) current target frequency in Hz as set through speed-command (which is in RPM), from the VFD

  • <n>.frequency-out (real, out) current output frequency of the VFD

  • <n>.inverter-load-percentage (real, out) current load report from VFD

  • <n>.is-e-stopped (bool, out) the VFD is in emergency stop status (blinking "E" on panel). Use err-reset to reboot the VFD and clear the e- stop status.

  • <n>.is-stopped (bool, out) true when the VFD reports 0 Hz output

  • <n>.max-rpm (real, R) actual RPM limit based on maximum frequency the VFD may generate, and the motors nameplate values. For instance, if nameplate-HZ is 50, and nameplate-RPM_ is 1410, but the VFD may generate up to 80 Hz, then max-rpm would read as 2256 (80*1410/50). The frequency limit is read from the VFD at startup. To increase the upper frequency limit, the UL and FH parameters must be changed on the panel. See the VF-S11 manual for instructions how to set the maximum frequency.

  • <n>.modbus-ok (bool, out) true when the Modbus session is successfully established and the last 10 transactions returned without error.

  • <n>.motor-RPM (real, out) estimated current RPM value, from the VFD

  • <n>.output-current-percentage (real, out) from the VFD

  • <n>.output-voltage-percentage (real, out) from the VFD

  • <n>.output-voltage (real, out) from the VFD

  • <n>.speed-command (real, in) speed sent to VFD in RPM. It is an error to send a speed faster than the Motor Max RPM as set in the VFD

  • <n>.spindle-fwd (bool, in) 1 for FWD and 0 for REV, sent to VFD

  • <n>.spindle-on (bool, in) 1 for ON and 0 for OFF sent to VFD, only on when running

  • <n>.spindle-rev (bool, in) 1 for ON and 0 for OFF, only on when running

  • <n>.jog-mode (bool, in) 1 for ON and 0 for OFF, enables the VF-S11 jog mode. Speed control is disabled, and the output frequency is determined by register F262 (preset to 5 Hz). This might be useful for spindle orientation. In normal mode, the VFD shuts off if the frequency drops below 12 Hz.

  • <n>.status (sint, out) Drive Status of the VFD (see the TOSVERT VF-S11 Communications Function Instruction Manual, register FD01). A bitmap.

  • <n>.trip-code (sint, out) trip code if VF-S11 is in tripped state.

  • <n>.error-count (sint, out) number of Modbus transactions which returned an error

  • <n>.max-speed (bool, in) ignore the loop-time parameter and run Modbus at maximum speed, at the expense of higher CPU usage. Suggested use during spindle positioning.

3. Параметри

Де <n> — це vfs11_vfd або ім’я, задане під час завантаження з опцією -n.

  • <n>.frequency-limit (real, RO) upper limit read from VFD setup.

  • <n>.loop-time (real, RW) how often the Modbus is polled (default interval 0.1 seconds)

  • <n>.nameplate-HZ (real, RW) Nameplate Hz of motor (default 50). Used to calculate target frequency (together with nameplate-RPM ) for a target RPM value as given by speed-command.

  • <n>.nameplate-RPM (real, RW) Nameplate RPM of motor (default 1410)

  • <n>.rpm-limit (real, RW) do-not-exceed soft limit for motor RPM (defaults to nameplate-RPM ).

  • <n>.tolerance (real, RW) speed tolerance (default 0.01) for determining whether spindle is at speed (0.01 meaning: Output frequency is within 1% of target frequency)

4. INI-файл конфігурації

Тут перелічено всі опції, які розуміє vfs11_vfd. Типові налаштування для RS-232, RS-485 та TCP можна знайти в src/hal/user_comps/vfs11_vfd/*.ini.

[VFS11]
# послідовне з'єднання
TYPE=rtu

# послідовний порт
DEVICE=/dev/ttyS0

# TCP-сервер - очікування вхідного з'єднання
TYPE=tcpserver

# номер порту tcp для TYPE=tcpserver або tcpclient
PORT=1502

# TCP-клієнт – активне вихідне з’єднання
TYPE=tcpclient

# пункт призначення для підключення, якщо TYPE=tcpclient
TCPDEST=192.168.1.1

#---------- meaningful only if TYPE=rtu -------
# деталі послідовного пристрою
# 5 6 7 8
BITS= 5

# парні непарні жодні
PARITY=none

# 110, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
BAUD=19200

# 1 2
STOPBITS=1

#rs232 rs485
SERIAL_MODE=rs485

# up down none
# ця функція може не працювати зі стандартним пакетом Ubuntu
# libmodbus5/libmodbus-dev і генерувати попередження.
# Виконання продовжиться, як якщо б було задано RTS_MODE=up.
RTS_MODE=up
#---------------------

# таймери Modbus у секундах
# міжсимвольний таймер
BYTE_TIMEOUT=0.5
# таймер пакетів
RESPONSE_TIMEOUT=0.5

# цільовий ідентифікатор Modbus
TARGET=1

# у разі збою вводу/виводу, спробуйте перепідключитися після сну
# протягом RECONNECT_DELAY секунд
RECONNECT_DELAY=1

# різні параметри
DEBUG=10
MODBUS_DEBUG=0
POLLCYCLES=10

5. HAL приклад

#
# приклад використання драйвера частотного перетворювача VF-S11
#
#
loadusr -Wn spindle-vfd vfs11_vfd -n spindle-vfd

# підключіть контакти напрямку шпинделя до частотного перетворювача (ЧП)
net vfs11-fwd spindle-vfd.spindle-fwd <= spindle.0.forward
net vfs11-rev spindle-vfd.spindle-rev <= spindle.0.reverse

# підключіть шпиндель на штифті до VF-S11
net vfs11-run spindle-vfd.spindle-on <= spindle.0.on

# підключіть VF-S11 на швидкості до руху на швидкості
net vfs11-на-швидкості spindle.0.на-швидкості <= spindle-vfd.на-швидкості

# підключіть шпиндель RPM до VF-S11
net vfs11-RPM spindle-vfd.speed-command <= spindle.0.speed-out

# підключити гальмо постійного струму VF-S11
# оскільки воно споживає енергію під час вимкнення шпинделя, контакт гальма постійного струму
# краще приводити в дію за допомогою монофлопа, який спрацьовує на спаді фронту включення шпинделя
#net vfs11-spindle-brake spindle.N.brake => spindle-vfd.dc-brake

# використовувати режим поштовху VFS11 для орієнтації шпинделя
# див. orient.9 та motion.9
net spindle-orient spindle.0.orient spindle-vfd.max-speed spindle-vfd.jog-mode

# мати пріоритет над панеллю керування
setp spindle-vfd.enable 1

6. Робота панелі

Драйвер vfs11_vfd має пріоритет над керуванням панеллю, поки він увімкнений (див. контакт «enable»), ефективно вимикаючи панель. Скидання контакту «enable» знову вмикає панель. Контакти та параметри все ще можна налаштовувати, але вони не будуть записані у VFD, доки не буде встановлено контакт «enable». Параметри роботи все ще зчитуються, коли управління шиною вимкнено. Вихід із драйвера vfs11_vfd у контрольований спосіб звільнить VFD від шини та відновить управління панеллю.

Докладнішу інформацію див. у посібнику для інтеграторів LinuxCNC. Детальний опис регістрів частотно-регульованих приводів Toshiba див. у «Посібнику з комунікаційних функцій TOSVERT VF-S11» (номер документа Toshiba E6581222) та «Посібнику з експлуатації TOSVERT VF-S11» (номер документа Toshiba E6581158).

7. Відновлення помилок

vfs11_vfd відновлюється після помилок вводу/виводу наступним чином: спочатку всі виводи HAL встановлюються у значення за замовчуванням, і драйвер переходить у режим сну на RECONNECT_DELAY секунд (за замовчуванням 1 секунда).

  • Послідовний режим (TYPE=rtu): у разі помилки закрити та знову відкрити послідовний порт.

  • Режим TCP-сервера (TYPE=tcpserver): після втрати TCP-з’єднання драйвер знову перейде до очікування вхідних з’єднань.

  • Режим TCP-клієнта (TYPE=tcpclient): після втрати TCP-з’єднання драйвер знову підключиться до TCPDEST:PORTNO.

8. Налаштування частотного перетворювача VFS11 для використання в Modbus

8.1. Підключення послідовного порту

VF-S11 має роз’єм RJ-45 для послідовної передачі даних. На жаль, він не має стандартного роз’єму RS-232 і логічних рівнів. Рекомендований Toshiba спосіб: підключіть перетворювач USB-послідовний USB001Z до приводу і підключіть USB-порт до ПК. Більш дешевою альтернативою є саморобний інтерфейс ( підказки від служби підтримки Toshiba, схема підключення).

Примітка: вихід 24 В з частотного перетворювача не має захисту від короткого замикання.

Заводські налаштування послідовного порту за замовчуванням — 9600/8/1/парні, протокол за замовчуванням використовує власний «Toshiba Inverter Protocol».

8.2. Налаштування Modbus

Перед тим, як VF-S11 почне взаємодіяти з цим модулем, необхідно налаштувати кілька параметрів. Це можна зробити вручну за допомогою панелі керування або через послідовний канал зв’язку. Компанія Toshiba постачає програму для Windows під назвою «PCM001Z», яка може зчитувати/налаштовувати параметри в VFD. Примітка: PCM001Z підтримує тільки протокол інвертора Toshiba. Отже, останнім параметром, який потрібно змінити, є протокол — встановіть його з Toshiba Inverter Protocol на Modbus; після цього програма для Windows стане непотрібною.

Щоб збільшити верхню межу частоти, потрібно змінити параметри UL та FH на панелі. Я збільшив їх з 50 до 80.

Дивіться dump-params.mio для опису нестандартних параметрів VF-S11 моєї конфігурації. Цей файл призначений для інтерактивна утиліта modio Modbus.

9. Примітка щодо програмування

Драйвер vfs11_vfd використовує бібліотеку libmodbus версії 3, яка є новішою за код версії 2, що використовується в gs2_vfd.

Пакет Ubuntu libmodbus5 та libmodbus-dev доступні лише починаючи з Ubuntu 12 («Precise Pengolin»). Більше того, ці пакети не підтримують прапорці MODBUS_RTS_MODE_*. Тому, під час компіляції vfs11_vfd з використанням цієї бібліотеки може з’явитися попередження, якщо в файлі INI вказано RTS_MODE=.

Щоб скористатися повним функціоналом на Lucid and Precise:

  • вилучити пакети libmodbus: sudo apt-get remove libmodbus5 libmodbus-dev

  • зібрати та встановити libmodbus версії 3 з вихідного коду, як описано here.

Libmodbus не збирається на Ubuntu Hardy, тому vfs11_vfd недоступний на Hardy.