Автоматизация ТП в Карелии » » Control Techniques » Как обнулит счетчик оборотов и положение енкодера в Unidrive SP
Страниц (2): [1] 2 »
1. dinkata - 24 Июля, 2010 - 13:15:11
Здравствуйте , с радости зарегистрировался на ваш форум , я из Болгарию и если делаю
ошибки с русский язь!к заранее простите ,работаю с Commander SK и Unidrive SP ,
сейчас скорост управляем по цифровам входьй с PLC Unitronics , хочу поставит HMI
Weintek MT6050i RS485 Modbus RTU ,управлят скорсти с контролное слова #6.42
сделал проект ,хорошо идет связ , запис ,чтение . Проблем возник когда делаю проект
решил ползоватся внутренний PLC на Unidrive SP с SyptLite , мне надо читат оборотов и положение енкодера #3.28 и #3.29 чтоб измерит пут ( енкодер находится на линию , а не на двигателя ) сделал математика , считаю пут ( в диапазон 100 - 9999 мм ), идет резка и надо обнулит текущий размер и здес проблем не могу сделат логика чтоб следущий размер начал с нуля, если кто то делал проект или может помоч , помогите пожалуйста , конечно могу дат еще информацию и проги Syptlite , кстати на Commander
SK с SM I/O Lite и Logicstick получается. Спасибо !

2. dinkata - 26 Июля, 2010 - 10:47:33
[img]

(Отредактировано автором: 26 Июля, 2010 - 18:18:21)

3. esergeev - 27 Июля, 2010 - 13:16:26
Не совсем понял, что за проблема, но, по моему нужно копировать #3.28 и #3.29 в регистры общего назначения, а затем их обнулять.
Типа такого
INIT инициализация
Old328
New328
Encdr - сюда пишем значение энкодера

ENCODER прерывание от энкодера
New = #3.28
IF Old_328<>New328
THEN
Encdr=Encdr+(New328 - Old328) - в Encdr у нас то же, что и в #3.28
Old328=New328
ENDIF

MAIN главный цикл программы
....
Encdr=0 - а тут если надо обнулить, то обнуляем и счет начнется снова


Вот как-то так

4. dinkata - 28 Июля, 2010 - 09:45:06
Охо,радь что началась дискусия, простите что не успел вь!ложит картинка на проект. Наверно то и мне надо Цитата:
Вот как-то так
,дело в том что я лучше разбираюс в релейно контакторнь! схем , SyptLite,( C,Asembler и другие похожие- дело темное пока,поетому ищу помощ). То что вь! пишите где могу сделат в Unidrive SP или в макрос на Weintek MT6050I с софт Easybuilder8000?.Там ест макрось! и я начал изучат , но неуверен ест ли те операндь! и прерь!вание .Скажите пожалуйста как вь!ложит здес проект ,сделан на SyptLite чтоб задат коректно мои вопрось! В кратце- привод Unidrive SP1406 ,разомкнут контур АД 4 квт ,движит профилегибочной станок управляем привод на заданая длина (диапазон - с 100 до 9999 мм ), енкодер(1000 имп/оборот) стоит на линия измерител длина,мерное колесо диаметр 159.15 т.е пут 500 мм.HMI -Weintek mt6050i подвключен RS 485 Modbus RTU к UnidriveSP . Реализоват надо резка с останов на заданая длина.Если сделаю проект на внутрений плк то он болше 4К и не загружается , поетому надо кое что из алгоритм работа станка сделат на макрось! в MT 6050i, там пишется подобно на то что вь! написали,но я пока трудно справляюс с макросами.
Все таки Unidriwe SP вместе Weintek MT6050i думаю хорошая комбинация для автоматизации многие приложения , поетому начал тема,если сделаем проект , будет полезним многом .Спасибо



(Добавление)
[No dynamic images! The forbidden URL "[IMG]http://media.snimka.bg/6794/019843531-big.jpg" is found!]

(Добавление)
[No dynamic images! The forbidden URL "[IMG]http://media.snimka.bg/6794/019843532-big.jpg" is found!]

(Добавление)
[No dynamic images! The forbidden URL "[IMG]http://media.snimka.bg/6794/019843533-big.jpg" is found!]

(Добавление)
[No dynamic images! The forbidden URL "[IMG]http://media.snimka.bg/6794/019843534-big.jpg" is found!]

5. esergeev - 28 Июля, 2010 - 10:51:29
Я, со своей стороны, плохо разбираюсь в Weintek, в основном Сименсом приходится заниматься.
Меня не будет пару дней, я пока подумаю, а потом расскажу о своих идеях.
Скорость продвижения материала у вас какая?
Смущает то, что у вас привод работает в разомкнутом контуре, либо скорость очень мала, либо требования к точности низкие.
Я бы поставил еще один энкодер непосредственно на двигателе, по нему определял бы разгон-торможение, а по мерному колесу - длину заготовки.
Modbus RTU у UnidriveSP плохой, он умеет только команду 03, аналоговые значения не передаются, впрочем, я его давно не использовал, могу и ошибиться


6. dinkata - 28 Июля, 2010 - 10:51:35
[No dynamic images! The forbidden URL "[IMG]http://media.snimka.bg/6794/019843530-big.jpg" is found!]

(Добавление)
[No dynamic images! The forbidden URL "[IMG]http://media.snimka.bg/6780/019815386-big.jpg" is found!]

(Добавление)
Скорост линии разная на разнь! станки но всегда от 7 м/мин до 20 м/мин пока,
точност останова материала перед резка +/- 1 мм . Сделал попь!тка вь!ложит картинки ,скриншоть! алгоритм работа станка под Syptlite ,не знаю
будут ли виднь!е или вь!слать фаил .dpl.
Спасибо

(Добавление)
Конечно у меня опит маловат по Modbus , но связ с Weintek идет хорошо,
читаю ,записаваю регистр в меню #18 адресираю 16 бит слово - 4х 18хх,
а бит 4хBit 18xx00

7. esergeev - 05 Августа, 2010 - 12:42:00
Можно попробовать и файл .dpl выслать.
И вообще, поподробнее про линию и про используемый частотник с контроллером.

8. dinkata - 05 Августа, 2010 - 13:58:16
Дайте пожалуйста ваш имейл ,отправлю проект которы подготовил за Weintek MT6050i

9. dinkata - 06 Августа, 2010 - 10:37:20
Отправил на имейл ,которы на главная страница

10. esergeev - 14 Августа, 2010 - 10:22:40
Я, к сожалению, не смогу быстро разобраться в проблеме, поскольку уезжаю в командировку на месяц примерно.
Если у меня будет там время, я посмотрю, а если нет - то только после.
Глубоко извиняюсь.

11. dinkata - 14 Сентября, 2010 - 08:15:26
Проблем один - не обнуляется счетчк оборотов и положене #3.28 и #3.29,
ето должно делатся помоему от #3.47 повторная инициализация енкодера.
Но етот бит не установляется в 1 ,СТсофт говорит что бит управляется с другого источника !!!! как включит етот бит ??

12. dinkata - 27 Сентября, 2010 - 13:45:02
Значит так ,если работаем с енкодер АБ , когд надо занулит #3.28 и #3.29
даем другой тип енкодер в #3.38 напр.АБ серво ,идет инициализация и обнуление привод инхибит,потом снова даем в #3.38 наш енкодер.
Очен нужен русский мануал на SYPT PRO.

13. esergeev - 17 Октября, 2010 - 14:27:04
Что-то не понимаю я вас никак.
В документации ( SP_AUG_iss8_rus.pdf, стр. 69 ) четко написано, что параметры 3.28 и 3.29 только для чтения. А вы в них пытаетесь писать.
Неправильно это.
Надо переменную дополнительную заводить.

14. dinkata - 20 Октября, 2010 - 09:04:21

Вот задание - управляем асинхронньй двигател по положение, скажите пожалуйста какой режим подобрат чтоб получили самое хорошее позиционирование ,имеем в наличност: Unidrive SP , SM Aplication Lite ,либо
SM Aplication, буду очен благодарен если дадите пример как настроит
параметрам и какая програма сделат под SYPT PRO ,лучше в Quick ladder diagram .Если понадобится можно поставит енкодер и на вал двигателя и
подвключим тогда енкодер на линию к SM Encoder plus. Вобщем мне нужен
пример как настроит параметрам и подобрат управление для позиционирование для вариант показан на диаграм вверх .А что касает #3.28 и #3.29 , мне нужно каждьй цикл начинал с нуля , как сделат с другие переменьйе ?Спасибо ,буду радь если ответите скорее.

(Отредактировано автором: 20 Октября, 2010 - 09:13:57)

15. esergeev - 21 Октября, 2010 - 09:40:00
Ну, быстро не обещаю, как смогу...

мне нужно знать
- что за материал? Толщина?
- макс. линейная скорость перемещения
- есть ли проскальзывание между материалом и валками

Энкодер нужно ставить на двигатель, впрочем, такой как у вас, дополнительно, тоже не помешает.

16. dinkata - 21 Октября, 2010 - 10:23:54
Материал оцинкованая сталь (шрипс ) .Толщина - 0.55 мм ,(на разньйх профилей различно от 0.5 до 2 мм )
Скорост разная примерно на одна машина 5 м/мин на другая будет
12м/мин ,но до 20 м/мин.
Проскальзьйвание есть , ето профилегибочньй станок ,здесь можно посмотрет принцип работа :
http://www.zmmzlatograd.com/product_01.html
Спасибо ,мне нужна помощ сделат проект под SYPT PRO для управление
по заданая длина в диапазоне 100 -10000 мм .

(Добавление)
Сейчас я работаю так : енкодер на линию 1000 имп/об ,мерное колесо
ф159.15мм *пи=500 мм , 65536 / 500 = 131,072 импулса для 1 мм.
задание длина примерно 2000 мм
( 2000 *131072 ) / 1000 = 262144
262144 / 65536 = 4 ,ето задание для #13.20 -оборотьй енкодера
если ест остаток - 262144 / 65536 remainder - в #13.21 положение енкодера
Меню 13 включаем #13.11=1 , задание по положение lokal = 13.04.
обратная связ по положение = drive encoder 33.28 ,3.29
Стартируем при 3.28 и 3.29 = 0 на полная скорост Pr2 ,1.45 =1 , когда
останет до размер 1.5 - 2 оборота на енкодер вь!ключаем полная скорост
1.45=0 и включаем управление по положение т.е.#13.10=1 .Привод останавливается на заданая позиция когда 3.28 = 13.20 и 3.29 = 13.21
с некоторая ошибка . Как оптимизироват привод ( в разомкнутой контур
по етой диаграме - ето оптимальной вариант ) чтоб ошибка по положение бьйла минимальная ?

(Добавление)
Как нулируем 3.28 и 3.29 ,когда привод остановлен идет резка
когда гилотина режет даем на 3.38 (он имеет значение = 0 ) =3
т.е. меняем тип енкодера , идет инициализация енкодера 3.28 и 3.29=0
потом когда гилотина возвращается в изходном положение даем на 3.38
снова = 0 (наш енкодер Аб ). Ето нам прокунсултировали из Controltehniques

(Добавление)
As long as the encoder is not an absolute encoder such as a EnDat of
Hiperface encoder, then you can reset Pr 3.28 and Pr 3.29 by changing
the encoder type in Pr 3.38 to a different value and then changing it
back again. You may require an on board or SyptLite programming for
this.

(Добавление)
Я должен сказать что ето делаю на столе и двигатель без нагрузка ,
пока експериментирую ,все ето когда будет на машине и двигатель с нагрузка не знаю что получится когда разница между задание и обратная
связ по положение становится маленкая т.е. и задание на скорост маловато
-успеет ли привод крутит валками на низкая частота .Попробал на другая
машина ,которая работает по другой схеме - значит до 3 Hz валками не
крутится , с увеличивание частота над 3 Hz начинает вращение.

17. esergeev - 21 Октября, 2010 - 15:01:11
Цитата:
Как оптимизироват привод ( в разомкнутой контур
по етой диаграме - ето оптимальной вариант ) чтоб ошибка по положение бьйла минимальная ?

Во первых, надо использовать замкнутый контур. Пытаться вести по позиции в разомкнутом контуре - нонсенс. Вообще, асинхронник - не лучший инструмент для этого. Серво не зря придумали.
Во вторых, можно поиграться с коэффициентом контура позиционирования.
Цитата:
Спасибо ,мне нужна помощ сделат проект под SYPT PRO для управление
по заданая длина в диапазоне 100 -10000 мм .

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

18. dinkata - 21 Октября, 2010 - 16:46:53
Спасибо ,буду ждать

(Добавление)
если в quick ladder diagram еще лучше

19. esergeev - 02 Ноября, 2010 - 09:50:52
Вот как-то так
Код:

$AUTHOR My Name
$COMPANY My Company
$TITLE LITE1
$VERSION V1.0
$DRIVE UNISPLIT
 
Alias{
// put your section code here
$define State #18.10
$define Target #18.20
} //Alias
 
 
Initial{
// put your section code here
#06.30           = 0     // Stop Drive
Enclines%        = 4000 // Encoder counts (4*PPR)
_Q8%             = 0     // Reset Feedback
On_Pos%    = 0 // Reset flag  
 
// Profile Generator
Position_Ref%    = 0     // Reset Position Reference
Position_Output% = 0     // Reset Position Output
 
// Set Max Profile Velocity to 1000rpm in encoder counts
Velocity_Ref%   = (1000 * Enclines%)/ 60
// Set acceleration to 1 second ramp to Max speed
Accel_Rate%     = Velocity_Ref%
 
// Jerk rate 1 second to max acceleration
Jerk_rate%  = Accel_Rate%
Control%    = 1 // Position Mode
 
// Positon Loop
Pterm%  = 50000
 
// Drive Parameters
#01.06 = 1100           // Max Speed
#01.07 = 0              // Min Speed
#01.10 = 1              // Bipolar reference enable
#01.14 = 3              // Preset reference
#01.15 = 1              // Preset 1
#02.02 = 0              // Disable ramps
 
// Speed Reference
#91.01 = 3              // Fast reference enable
 
#91.05 = INT(#01.06)        // Reference resolution
 
State = 0    // Reset state machine
 
} //Initial
 
 
Clock{
// put your section code here
// Position reference in 10ths of a Revolution
Position_Ref% = (#18.11 * Enclines%) / 10
 
// Feedback Indication in 10ths of a Revolution
#18.12 = (_Q8% * 10) / Enclines%
// Stop the drive
IF #6.30
 IF (Error%<2) AND (Error%>-2) THEN  
  Position_Ref% = Position_Output%  
  #6.30 = 0  
  On_Pos% = 1
 ENDIF
ENDIF
} //Clock
 
 
 
Encoder{
// put your section code here
(Done%, Position_Output%, Velocity_Output, Accel_Output, Stop_Distance) = SSRAMP(Position_Ref%, Position_Output%, Velocity_Ref%, Accel_Rate%, Jerk_Rate%, Control%)
 
Vel_FFwd% = INT(Velocity_Output)
 
(Speed_Ref%, Error%) = POSLOOP(_Q8%, Vel_FFwd%, Pterm%, 0, 1000, 10000, Enclines%, 0)
 
#91.02 = Speed_Ref%
 
} //Encoder
 
 
 
 
Background{
top:
  IF State=0 THEN   // 0 - initial state, waitin' for start command
   
   IF Start THEN   // Start - some start condition, pressin' key or smth like that
    Position_ref% = Target // Load position ref from display
    #6.30 = 1    // start drive
    State = 1    // next state
   ENDIF
   
  ELSEIF State=1 THEN   // waitin' arriving to dest. position
   
   IF On_Pos% THEN     // we are at point, drive stop
    DELAY(2)     // 200 mS delay
    State = 2     // next state
   ENDIF
   
  ELSEIF State=2 THEN
   // here must be subprogram to do cut
   DELAY(2)
            State = 3  
// here we begin next move
  ELSEIF State = 3 THEN
            Position_ref% = Target                       // Load position ref from display
            _Q8% = 0
            #6.30 = 1    // start drive
            On_Pos% = 0
            State = 1  
  ELSE
  ENDIF  
 
goto top: // main background loop
} //Background

20. dinkata - 02 Ноября, 2010 - 15:31:01
Спасибо ,ето на первий взгляд мне трудно разобраться , но посколько я понимаю пример для замкнутой контур .Буду изучат и експериментироват.

(Добавление)
Скажите пожалуйста как сделат _Q8% (у меня #71.08 ) чтоб показьйвал
позицию

(Отредактировано автором: 02 Ноября, 2010 - 17:34:03)

21. esergeev - 03 Ноября, 2010 - 09:35:04
Цитата:
Спасибо ,ето на первий взгляд мне трудно разобраться

Спрашивайте, что непонятно. Я, вроде, ближайшую пару недель никуда не собираюсь.
Цитата:
но посколько я понимаю пример для замкнутой контур

Да, обязательно. Суть в том, что открытый контур не может обеспечить момента на низких оборотах двигателя, т.е. при малой скорости.
Цитата:
Скажите пожалуйста как сделат _Q8% (у меня #71.08 ) чтоб показьйвал позицию

А что, не показывает? Тогда прямо из #91.что-то-там надо читать. Уточню - напишу

22. dinkata - 03 Ноября, 2010 - 10:28:17
Я делал попьйтки строит SSRAMP и POSLOOP (2) в замкнутом контуре ,но не получилос у меня -двигател у меня на полу до рабочем столе еще не ставил на машину , поетому ограничил скорости до 50 об/мин ,как включил в замкнутом контуре двигатель гудит ,прьйгает ,не работает хорошо
менял коефицентам усиления ,но опит у меня слабоват и не успел наладит
двигатель в замкнутом контуре,поетому решил построит проект в
разомкнутом контуре используя меню 13 с управление по положением
задание локал с 13.20 и 13.21 обратная связ по положение енкодер привода.
Если можте посмотрет на мой проект под Сиптпро в куикладер я могу вьйслат .Сначале бьйл проблем на задачи в бекгроунд ,очен медлено реагирует контролер , потом посоветовали как организироват задачи клок
и сейчас вроди бьй работает нормално , но не уверен как будет на машине и именно дотягьйвание до позицию на медленая скорост.

(Добавление)
для позиция я беру #90.32 оборотьй и грубое положение енкодера,мерное колесо ф 159.15 *пи=500 мм ,65536 импулса на оборот /500=131,072
( 90.32 * 1000) / 131072 = текучая позиция в мм
(задание в мм * 131072 ) / 1000 = ххх
ххх /65536 = оборотьй для 13.20
ххх /remainder /65536 = положение для 13.21

(Добавление)
мне надо на пулт оператора каждое изделие начинало с нуля до задание
поетому искал как обнулит #3.28 и 3.29 соответно и #90.32

23. esergeev - 04 Ноября, 2010 - 12:18:19
Цитата:
,но не получилос у меня -двигател у меня на полу до рабочем столе еще не ставил на машину , поетому ограничил скорости до 50 об/мин ,как включил в замкнутом контуре двигатель гудит ,прьйгает ,не работает хорошо
менял коефицентам усиления ,но опит у меня слабоват и не успел наладит

Не, что-то у вас там в принципе не так. Когда двигатель при векторном управлении гудит и прыгает, это значит, что есть проблемы, либо с настройкой преобразователя, либо с энкодером.
Для начала я предлагаю вам проделать следующее
- собрать макет преобразователь-двигатель-энкодер ( на валу двигателя )
- убедиться, что макет нормально отрабатывает задание скорости ( разгон, торможение ) и ток соответствует нагрузке.
Это должно получится просто при исправных компонентах и правильном монтаже - юнидрайв штука дубовая и особых настроек не нужно.

А вот когда этого добьётесь - можно приступать к ведению по позиции, т.е. просто для начала запустить POSLOOP и посмотреть, как отрабатывается задание.

Цитата:
Если можте посмотрет на мой проект под Сиптпро в куикладер я могу вьйслат

Высылайте. Тот проект, что был дотого, сделан в Сиптлайте и Сиптпро его не открывает.

24. dinkata - 04 Ноября, 2010 - 12:41:41
отправил на yogi@onego.ru


Powered by ExBB 1.9.1
Original Style v1.5a2 created by Daemon.XP

[ Script Execution time: 0.035 ]   [ Gzip Disabled ]