Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
|
||||
|
Счетчик импульсов на L761 в Delphi Требуется одновременно считывать состояние цифровых датчиков (f=5..10 Гц), считать прямоугольные импульсы по 2 каналам (с угловых датчиков (f=600 Гц), выводить цифровые данные(f=5..10 Гц), и считывать аналоговые сигналы по 2 каналам (f=5 Гц). И все это одновременно. И все это в Delphi.
|
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiНа уровне DSP реализовать все это относительно просто, используя таймерное прерывание для ввода и вывода дискретных сигналов, а для аналоговых - стандартные действия из штатного bios/ |
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiА можно поподробнее (желательно не на уровне DSP - это для меня неподъемно) |
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiБез DSP можно только один канал счета импульсов: завести его на вход цифровой синхронизации и тогда число отсчетов в FIFO-буфере на ПЭВМ будет соответствовать числу импульсов. При этом можно опрашивать и аналоговые каналы по этому импульсу (используя в Delphi функции библиотеки для потокового ввода), тогда необходимо только их прореживание.
Irql1Handler:
|
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiОбломись бабка - в дельфях такое не делают.
To:Victoria - импульсов там два быстрых, значение которых надо знать одновременно и несколько медленных |
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiTo: Рамиль
То: Папа Карло
|
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiTo Victoria:
|
|||
|
||||
|
Re: Счетчик импульсов на L761 в Delphi1. Меня бы устроило если счетчики считали импульсы двух входящих сигналов с частотой 600 Гц и заносилось бы это дело в две переменные в плате. А я бы по мере надобности (с частотой не более 10..20 Гц) считывал бы их значение из платы (каким-то образом). 2.Никаких особых требований по синхронизации остальных входов и выходов не предъявляется. Посредством них производится мониторинг состояния датчиков и управление исполнительными механизмами. А частота опроса и вывода (5..10 Гц)чисто условна и выбрана из такого соображения, что хотелось бы, чтобы задержка на срабатывание исполнительных механизмов в зависимости от состояния датчиков и счетчиков не превышала ~0.2 сек. ( По крайней мере в таком районе) |
|||
|
||||
|
Re: Счетчик импульсов на L761 в Delphi3. Да, а насчет синусов и косинусов париться не стоит - используется лишь по одному выходу с датчиков (точность устраивает, а направление не нужно). Т.е. простые прямоугольные импульсы возможно с переменной частотой (но до 600 Гц). |
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiВы хотите сказать, что угловых датчиков тоже два ??
|
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiРамиль: Меня бы устроило если счетчики считали импульсы двух входящих сигналов с частотой 600 Гц и заносилось бы это дело в две переменные в плате. Ничего не приходит на ум, кроме как использовать дополнительные логические элементы на входе INT (лог. сложение? обоих импульсов), а в подпрограмме обработки прерывания считывать состояния обоих дискретных входов, и анализируя их инкрементировать соответствующий счетчик |
|||
|
||||
|
Re: Счетчик импульсов на L761 в Delphi//Вы хотите сказать, что угловых датчиков тоже два ??
|
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiTo: Victoria @ All
|
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiНа L783 я бы не задумывалась, и для второго счетчика использовала бы аналогичную подпрограмму обработки второго прерывания (прерывания цифровой синхронизации, у которой и вход свой), т.к. в Вашей задачи цифровая синхронизация опроса АЦП точно не используется.
|
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiВо-первых, ваши дозаторы могут двигаться совсем не в том направлении, куда вы думаете, что они должны двигаться. Во-вторых за счет этого у вас тоже будет набегать неконтролируемая ошибка.
|
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiА что скажет общественность на такой вариант решения проблемы.
To Папа: "Вашими" источниками возникновения погрешностей пренебречь и из рассмотрения исключить. |
|||
|
||||
|
Re: Счетчик импульсов на L761 в Delphi> На L783 я бы не задумывалась, и для второго счетчика использовала бы
Если есть руки, то можно вывести irql0 на цифровой разьём также как и irql1. Можно попросить в ЛКарде сделать, чтобы не терять гарантию.
А какой тип датчиков? тип преобразования, алгоритм или если есть дока с описанием. |
|||
|
||||
|
Re: Счетчик импульсов на L761 в Delphi/А какой тип датчиков? тип преобразования,
Вопрос к разработчикам:
|
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiВывести второе прерывание наружу не проблема, я бы даже предложил ЛКарду это рацпредложение в качестве штатной фичи реализовать в следующих релизах L761. Получаешь два счётчика, которые читаешь и имеешь скорость перемещения поршней. Но ещё непонятно как ты узнаешь направление перемещения. Чем больше функций будет сделано на уровне дсп, тем меньше будет постоянная времени регулировки, к примеру если асинхронно делать из user-space даже 1in/out на ттл-линиях функциями существующего api, то частоты выше 50..60КГц реализовать не удастся. Синхронно из user-space (пользовательских приложений) в многозадачных ОС такие задачи не решаются. Придётся или ковыряться в драйвере или лбиосе дсп - выбирай что больше нравится. |
|||
|
||||
|
Re: Счетчик импульсов на L761 в Delphi/Но ещё непонятно как ты узнаешь направление перемещения. А вот это как раз совсем не проблема (конечно, касательно моей задачи). Дело в том, что исполнительными механизмами, приводящими поршни в движение, управляю я же, и соответственно, я же задаю направление движения поршней, и видимо в курсе куда их двигаю. Грубо говоря, если вы включили двигатель в одну сторону, то поршень, приводимый в движение этим двигателем, никак не пойдет в другую. Хотя у меня приводы гидравлические, но смысл все равно тот же. Требуется только измерить пройденное поршнем расстояние, т.е. кол-во импульсов с датчика. |
|||
|
||||
|
Re: Счетчик импульсов на L761 в Delphi> Грубо говоря, если вы включили двигатель в одну сторону, то
Я бы на твоём месте подстраховался от этой ситуации. Бывают сбои, нештатные ситуации и т.п. ps Насчёт irql0 лучше задай отдельный вопрос. |
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiСтас, по-поводу подстраховки см. законы Мэрфи ! |
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiС учётом Мэрфи: в схеме управления не предусмотрен контроль направления перемещения. Так делать нельзя, поскольку если не исключить вариант сбоя направления движения поршня при переключении, то это чревато аварией. |
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiПоспешу успокоить вас господа. Никакой аварии в моем случае не будет. В принципе есть коссвенный контроль направления движения. Среди входных параметров у меня используется давление - 2 канала(по обоим дозаторам). Когда поршни идут в одну сторону - всасывание компонентов, т.е. Р<=0, а когда обратно - нагнетание, т.е. Р>0. Вот так и будем подстраховываться.
|
|||
|
||||
|
Re: Счетчик импульсов на L761 в DelphiНо буратино таки продал азбуку и не пошел в школу |