Народ виникла така проблема.
Якщо Вам потрібно саме LIFA, то дивіться:
Знання декількох принципів звільняє від знання багатьох фактів!
IvanLis. Спасибі за відповідь.
Так потрібно використовувати саме LIFA тому, що програма буде управляти не тільки двигунами, а й іншими датчиками і реле.
Не зовсім зрозумів принцип роботи наведеного Вами прикладу. Як йде управління кроковиках по двох проводах? У мене використовується 4 Піна на платі uno для двигуна через "силову схему".
Я так розумію найпростіший спосіб подавати сигнал послідовно на 8 9 10 11 Піни і він повинен крутитися. Правда, що то у мене не вийшло це зробити.
Можете роз'яснити принцип роботи наведеного Вами прикладу?
ЗИ в інеті шукав подібного знайти не зміг. Або не зміг зрозуміти, що знайшов. З залізом працюю перший раз тому досвіду нуль.
hammer писал (а): Не зовсім зрозумів принцип роботи наведеного Вами прикладу. Як йде управління кроковиках по двох проводах? У мене використовується 4 Піна на платі uno для двигуна через "силову схему".
Управління ШД реалізовано через драйвер, йому передаються два сигнали STEP DIR (ну і земля повинна бути загальна), а він уже перетворює команди в необхідні сигнали управління двигуном.
hammer писал (а): Я так розумію найпростіший спосіб подавати сигнал послідовно на 8 9 10 11 Піни і він повинен крутитися. Правда, що то у мене не вийшло це зробити.
Ви трохи невірно розумієте, спочатку потрібно розібратися з теорією і режимами, а вже потім приступати до реалізації. Та й робити краще послідовно і по частинах, раз Ви вирішили робити управління на низькому рівні, а вже в кінці, після того як все перевірено і налагоджено, збирати всі разом і приступати до натурних випробувань.
Ось які рівні напруги повинні бути в залежності від режиму роботи ШД:
hammer писал (а): Можете роз'яснити принцип роботи наведеного Вами прикладу?
ЗИ в інеті шукав подібного знайти не зміг. Або не зміг зрозуміти, що знайшов. З залізом працюю перший раз тому досвіду нуль.
Це не мій приклад і що б пояснити, я повинен розібратися сам. Встановити все тулкіта, розібратися з ними, знайти і запустити на залозі. а на це ні часу, ні бажання немає.
Знання декількох принципів звільняє від знання багатьох фактів!
З кроковиках розібрався, все працює спасибі.
Тепер інша проблема вилізла. Необхідно однієї платою Ардуіно управляти двома кроковиках, зчитувати дані з датчика температури ds18b20 і управляти твердотілим реле по ПІД закону.
Проблема мабуть в синхронізації управління двигуном і опитуванням датчика. Якщо окремо запускати опитування датчика то температура показується стабільно без збоїв. При цьому показання температури виводиться десь раз в секунду.
Коли вставляю цей код в програму управління двигуном, то висновок здійснюється пару раз з мінімальною затримкою а потім йде помилка.
Логіка роботи програми наступна перший фрейм крутить движок до стабативанія кінцевий кнопки, другий виставляє необхідне початкове положення, далі основний цикл. Перша частина циклу крутить движок на потрібний кут, друга повинна виводити поточну температуру. За ідеєю перетинатися вони не повинні взагалі.
Ще мені не подобається 2 кнопки стоп. Може підкажіть як в таких випадках робиться аварійна зупинка однією кнопкою?
hammer писал (а): З кроковиках розібрався, все працює спасибі.
Тепер інша проблема вилізла. Необхідно однієї платою Ардуіно управляти двома кроковиках, зчитувати дані з датчика температури ds18b20 і управляти твердотілим реле по ПІД закону.
Проблема мабуть в синхронізації управління двигуном і опитуванням датчика. Якщо окремо запускати опитування датчика то температура показується стабільно без збоїв. При цьому показання температури виводиться десь раз в секунду.
Коли вставляю цей код в програму управління двигуном, то висновок здійснюється пару раз з мінімальною затримкою а потім йде помилка.
Логіка роботи програми наступна перший фрейм крутить движок до стабативанія кінцевий кнопки, другий виставляє необхідне початкове положення, далі основний цикл. Перша частина циклу крутить движок на потрібний кут, друга повинна виводити поточну температуру. За ідеєю перетинатися вони не повинні взагалі.
Ще мені не подобається 2 кнопки стоп. Може підкажіть як в таких випадках робиться аварійна зупинка однією кнопкою?
Вкладення двигун кнопка термометр.vi більше недоступно
Ми ділили апельсин - багато наших полягло.
Не зовсім зрозумів чому програма пройде один цикл і зупиниться. В останньому фреймі організований цикл while loop а він по суті нескінченний. Всі попередні потрібні тільки для початкового позиціонування положення вала двигуна. Без опитування температури все працює відмінно. Єдина проблема скрипт буде працювати тільки з другого разу. Перший раз йде помилка Error -1073807343 occurred at VISA Clear in LabVIEW Interface for Arduino.lvlib: Init.vi-
Якщо запустити повторно все працює коректно, правда функція опитування датчика температури відпрацьовує коректно рази 3 а потім йде помилка A timeout occurred while trying to read form the Arduino.
З приводу стейт-машин спробую розібратися жодного разу яку структуру не використав.
Впало в око ще наступне - кнопка Стоп першого циклу поза першого циклу. Навіщо?
Залишки спроб кустарно синхронізувати роботу зупинки з однієї кнопки.
З приводу ініціалізації на скрині. Пробував без нього, що то 5003 помилка вилазить постійно.
Я так розумію проблема в рассінхрон між labview і arduino. Тому якщо в циклі постійне йде ініціалізація плати arduino то помилка просто не встигає накопичитися.
Ще проблема з якою ні як не можу розібратися це чому з першого разу ні коли не може підключитися до Ардуіно завжди перший раз помилка. Після неї необхідно витягнути usb кабель з порту включити назад і запускати прогу. Це відбувається завжди якщо наприклад зупинити роботу labview а не натиснути стоп в програмі. Тобто якщо Ардуіно не прийшла команда зупинитися вона так і залишається в режимі очікування чи й більше не на що не реагує, не рятує навіть кнопка резет. Може хто знає як вирішити таку проблему?
hammer писал (а): Ще проблема з якою ні як не можу розібратися це чому з першого разу ні коли не може підключитися до Ардуіно завжди перший раз помилка. Після неї необхідно витягнути usb кабель з порту включити назад і запускати прогу. Це відбувається завжди якщо наприклад зупинити роботу labview а не натиснути стоп в програмі. Тобто якщо Ардуіно не прийшла команда зупинитися вона так і залишається в режимі очікування чи й більше не на що не реагує, не рятує навіть кнопка резет. Може хто знає як вирішити таку проблему?
Напевно, не закривається сесія до приладу. Можна спробувати в настройках галочку поставити, як тут радили - viewtopic.php? F = 21t = 8015p = 64178hilit = Visa # p64198
Ми ділили апельсин - багато наших полягло.