Гляжу в книгу и вижу фигу. Т.е. не понимаю :-)
Можешь словами расписать, что куда засовываем и откуда достаем.
Вид для печати
Если соединить выход SEL с его входом ,то получим ячейку памяти ,при подачи короткого импульса на его битовый вход .Далее соединяем последовательно эти ячейки (вход -выход) через линию задержки ,а вход управления всех ячеек соединяем вместе (общий строб) .Получаем стек типа очередь ,при каждом стробе содержимое из одной ячейки переписывается в следующую и так по всем ячейкам ...
Если Вы про мой макрос, то как-то так: состоит из 32 ячеек(регистров), с входа данных(IN) данные поступают в ячейку назначенную для записи на входе SELW(0-31)! По фронту импульсов на входах SHL и SHR сдвигаются влево(в сторону увеличения числового значения) или вправо(в сторону уменьшения числового значения) на одну ячейку, на входе SELR(0-31) выбирается ячейка подаваемая на выход Q1, всё и если макрос открыть для редактирования, там присутствуют подсказки!
Можно использовать и как матрицу памяти, тоесть, при смене адреса(0-31)ячейки для записи(SELW) в преведущей ячейке останется значение, что было на входе данных(IN) в момент смены адреса ячейки для записи!
Управляющее воздействие ты не рассчитываешь, а производишь настройку на объекте по подбору Кp и Kd. В данном случае у тебя это формула ПД-регулятора. Необходимо произвести подбор коэффициентов Кр и Кd, а затем в зависимости от ошибки у тебя будет формироваться управляющее воздействие.
Скорость изменения ошибки Eтекущее - Eпредыдущее/Т, поэтому если у тебя будет резкое изменение ошибки в промежуток времени, то отработает дифференциальная составляющая формулы с ранее подобранным коэффициентом Кd. В зависимости от величины Kd сформируется результирующее воздействие Y(MV).
Это же проще пареной репы, короче, как-то так:
Вложение 37006
Можете поставить такой кольцевой счётчик с входами для настройки диапазона, тогда диапазон и с экрана можно менять, без перезаливки программы!
Вложение 37007
В этой теме: http://www.owen.ru/forum/showthread.php?t=28531&page=9
И в этой: http://www.owen.ru/forum/showthread.php?t=27872
Ещё более подходящий здесь в посте#4918: http://www.owen.ru/forum/showthread.php?t=7023&page=492
[QUOTE=Сергей0308;277556]Это же проще пареной репы, короче, как-то так:
Сергей, ЗДРАВСТВУЙТЕ! Хочу попросить Вашего совета. Чувствую, что решение простое, но что то совсем затупил, да и торопят с решением (Гады!). Суть: в ПЗУ "зашито" 85 шагов, что соответствует нашим условиям и рассчитано на 50 часов, в блоке CTZRM задаётся максимальное число 86.Вложение 37008Всё как бы нормально....но выяснилось, что в некоторых случаях именно эту щётку (этот макрос) нужно крутить до 18шага (10 часов), и...чтобы не переписывать программу каждый раз, я хочу менять с экрана либо 50 часов или 10 часов. Вся сложность (для меня), чтоб писать на экране 10, а переменная записывалась как max 18шагов, если пишу 50 - соответственно 86 шагов. Как это реализовать - ума пока не приложу. Мож посоветуете, что-нить, с какого боку подойти к решению? Думаю проблему ясно изложил...
[QUOTE=sertol64;277564]Если переменная, что Вы пишите с экрана(10, 50), целочисленная, ставите функцию сравнения на равенство, к булевому выходу привязываете любое действие, например так:
Вложение 37010
Спасибо, Сергей!
Вложение 37012 Я так и думал, что как то так, но не "допетрил". Ещё раз СПАСИБО!