.RU
Карта сайта

ЧАСТЬ V. PROTEUS для виртуозов - 1. Краткие общие сведения о програмном продукте proteus

ЧАСТЬ V. PROTEUS для виртуозов.



Небольшое предисловие.


Следующий материал фактически продолжает тему активных компонентов и по логике должен бы находиться в предыдущей части, но она настолько разрослась, что я решил сделать отдельную часть Vи поместить его сюда. Ниже речь пойдет о моделях ISIS, которые содержат элементы управления, позволяющие активно вмешиваться в процесс интерактивного моделирования и в процессе симуляции менять как состояние моделей: кнопки, переключатели и т.п., так и значения некоторых величин, представленных в этих моделях – потенциометры, и всевозможные датчики. Я уже касался данного материала в предыдущем разделе (

п.п.8.1-8.5

), и мы даже создали несколько моделей с элементами управления. Однако, видимо материал был изложен недостаточно доходчиво и я принял решение продолжить эту тему. Тем более, что там я полностью упустил из виду наличие аналоговых компонентов управления и индикации. Восполним этот пробел. Кроме того, в этой части я надеюсь, наконец, познакомить вас с основами применения встроенного в Протеус языка

EasyHDL

. В ряде случаев он весьма существенно облегчает жизнь при имитации тех или иных свойств модели. Однако, как вы сами понимаете, для того чтобы применять этот материал на практике при создании моделей необходимы познания не только в области электроники, но и навыки программирования в частности на языке Basic, с которым тесно переплетается

EasyHDL

. Именно поэтому я и поместил такой подзаголовок для этой части – «Протеус для виртуозов». Итак, приступим…

9.Активные модели с элементами управления.


9.1. Маркеры INCREMENT, DECREMENT и TOGGLE – основа всех активных регулируемых компонентов.


Для начала напомню, что данные маркеры расположены в селекторе, доступном при нажатии кнопки

^ 2D Graphics Markers Mode

в левом тулбаре ISIS (Рис. 9-1-1). Как видите, у заголовка селектора отсутствуют дополнительные кнопки, позволяющие перейти в библиотеку выбора, поэтому сразу оговорюсь – добавить сюда плоды собственной фантазии не удастся. Все элементы селектора

MARKERS

– для Протеуса понятия системные и попытка изменить их вид каким-либо образом бесполезна. Так что примите их такими, какие они есть, а все свои капризы на тему «хочу голубую стрелочку с белой каемочкой» направляйте разработчикам программы, а не на форум, где они останутся безответным мусором.
С маркерами

INCREMENT

(увеличение) и

DECREMENT

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

TOGGLE

(переключатель в виде двухсторонней стрелки) мы еще не применяли, но он тоже широко представлен в активных моделях ISIS. Для примера я выбрал в библиотеках Протеуса различные модели с этими маркерами и разместил их на рисунке 9-1-2. Как видим, в ряде случаев для управления состоянием или значением применяется пара маркеров

INCREMENT-DECREMENT

– это аналоговые переключатель, джампер, потенциометр и популярный цифровой датчик температуры

DS18B20

. В других случаях применяется единственный маркер

TOGGLE

для переключения двух состояний – аналоговая кнопка и цифровой

LOGICTOGGLE

- отладочный логический переключатель 0-1 из библиотеки

DebuggingToools

.
Вершиной творческого применения всего набора этих маркеров является модель популярного цифрового датчика температуры и влажности

SHT11

и других из этой линейки, в которых

TOGGLE

используется для выбора изменяемой в данный момент величины, а пара

INCREMENT-DECREMENT

для ее непосредственного изменения.
Хочу сразу отметить еще пару особенностей применения этих маркеров в моделях ISIS.
Первая из них касается всех вышеперечисленных и состоит в том, что маркеры активны, т.е. позволяют изменять состояние модели даже «при наличии отсутствия пропитанных шпал», т.е. без запуска симуляции. Это означает, что если модель, например, тот же датчик температуры

DS18B20

помещен в поле проекта, то с помощью кнопок-маркеров

INCREMENT-DECREMENT

вы можете заранее до нажатия на кнопку

Play

или запуска симуляции соответствующего графика пробелом установить датчику нужную температуру. Аналогично можно поступить и с аналоговыми моделями: установить переключатель или потенциометр в нужное положение.
Вторая особенность относится в основном к переключателю

^ TOGGLE

. Если этот маркер является единственным для данной модели (те же кнопка

BUTTON

или логический переключатель

LOGICTOGGLE

), то его нажатие (клик мышкой) по самому маркеру приводит к фиксируемому переключению в другое положение (состояние). Клик мышкой по самому графическому изображению элемента приводит к нефиксируемому изменению состояния, т.е. кнопка вернется в прежнее состояние, как только вы отпустите левую «мышиную лапку» (Рис. 9-1-3).
Справедливости ради, стоит отметить, что аналогичный клик мышкой по изображению самих элементов с маркерами

INCREMENT-DECREMENT

, имеющих два состояния, например по выключателю (переключателю) на два положения приводит тоже к переключению в противоположное состояние, но фиксируемому. Однако, если вы попытаетесь проделать этот трюк с переключателем на 3 или больше положений, то ISIS не знает куда его, а заодно и вас «послать» и тихо отдыхает. Там работает только клик по самим маркерам.
Ну и, наконец, нам осталось рассмотреть функционирование маркеров на практике. Взаимодействие

INCREMENT-DECREMENT

с

SETPOINT

для изменения цифровых значений мы уже рассматривали в предыдущем разделе на примерах датчика давления и отладочного источника напряжения. Для этого достаточно перечитать

п.п.8.2 – 8.5

предыдущего раздела. Я немного коснусь той же модели

SHT11

, в которой реализовано изменение двух величин: температуры и влажности. В данном случае используется не

SETPOINT.DLL

, как в тех моделях, которые мы рассматривали ранее, а специально написанная для этих целей

DUALSET.DLL

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

SHT11

процедуру

MakeDevice

, то на третьей вкладке мы встретим все параметры от

SETPOINT

, нов двух экземплярах (Рис. 9-1-4).
Если же заглянуть в файл SHTXX.MDF, соответствующий этой модели, то мы в списке компонентов встретим следующую строку:



Код:

U3,DDOUT,DDOUT_14,MAX1=,MAX2=,MIN1=,
MIN2=,MODDLL=DUALSET.DLL,MODE1=UNSIGNED,
MODE2=UNSIGNED,PRIMITIVE=DIGITAL,SETPOINT1=,SETPOINT2=



Конечно, нет смысла искать примитив

^ DDOUT

в библиотеках, хотя немного фантазии и можно догадаться, что под этой аббревиатурой скрывается

D

UAL

D

IGITAL

OUT

или двойной цифровой вывод. Но ведь и

VOUT

тоже не было в списках примитивов, а мы, тем не менее, его сумели воспроизвести и использовать в своих целях. Из той же строки видно, что для

DDOUT

в качестве параметра

MODDLL

используется упоминаемая выше библиотека

DUALSET.DLL

.
Чтобы не терять драгоценное время, я не буду больше отвлекаться на эту модель, особо любознательные пользователи могут попытаться произвести реинкарнацию самостоятельно. Мне этот эксклюзивный примитив как-то был без надобности, а нас ждут более прозаичные, но и более насущные активные модели. И для начала мы рассмотрим – как организованы в ISISмодели обычных включателей/переключателей и потренируемся в изготовлении собственных.

Рисунки 9-1-1, 9-1-2, 9-1-3, 9-1-4


Миниатюры:
     
 



Последний раз редактировалось Halex07; 07.01.2012 в 08:21.

^ 9.2. Исследуем особенности графики моделей переключателей в ISIS. Создаем графическую модель переключателя на 8 положений.


В качестве «мальчика для битья» в данном случае я избрал обычный однополюсный переключатель на два положения, именуемый в библиотеке ISIS

Switches & Relays => Switches

как

SW-SPDT

. Втаскиваем указанный переключатель в пустой проект и применяем к нему опцию

Decompose

(Рис. 9-2-1).
Теперь заглянем в селектор символов, нажав в левом тулбаре кнопку с символом S, и обнаружим в селекторе два символа:

^ SPDT_0

и

SPDT_1

. Эти символы, входящие в модель, появились там после

Decompose

переключателя. Я их разместил справа от разобранного переключателя на рисунке. Кроме того, я у выводов переключателя подписал их скрытые имена, хотя конкретное наименование в данном случае не носит обязательного характера.
Подведем итог предпринятым нами действиям. Графическое изображение переключателя содержит:
непосредственно его изображение в одном из положений;
выводы (

PINS

) имена которых могут быть любыми (в данном случае они стандартные для импортных: COM– общий, NC– нормально замкнутый, NO– нормально разомкнутый);
уже знакомый нам маркер

^ ORIGIN

, по которому позиционируется компонент;
разобранные в предыдущем параграфе активные маркеры

INCREMENT

и

DECREMENT

, которыми обеспечивается управление положением переключателя.
Поскольку переключатель на два положения, он имеет в своем составе два графических символа, отображающие два его положения. Имена их тоже могут быть другими, главное чтобы они были правильно прописаны на первой вкладке

Make Device

для данного компонента (Рис. 9-2-2).
Пока ничего нового я для вас не открыл, все это мы уже неоднократно проделывали в рамках FAQ по Протеусу. А теперь, руководствуясь нашими исследованиями, попробуем создать свою активную графику для переключателя, например, на 8 положений. В библиотеках ISISесть переключатели до 6 положений и обычно этого достаточно. Но, иногда этого бывает мало, да и выводы у него расположены не очень удачно. Поскольку я не привык делать пустяшную, никому не нужную работу мы выполним переключатель с более привычным для нас изображением и расположением выводов. Впоследствии его можно будет использовать в своих проектах, скажем, для подбора компонентов при симуляции, не останавливая таковую. Итак, приступим…
Для начала нарисуем полное графическое изображение нашего переключателя в режиме

^ 2D Graphics Line Mode

(кнопка с косой линией в левом тулбаре), поместим на него маркер

ORIGIN

и маркеры

INCREMENT/DECREMENT

.
На рисунке 9-2-3 слева размещена сырая заготовка переключателя на 8 положений. Я включил подсветку имен выводов в их свойствах, чтобы показать вам их и слегка отодвинул выводы от модели, чтобы надписи не пересекались с графикой. В качестве выводов использованы короткие

SHORT

пины из селектора при включенном режиме

Device Pins Mode

(кнопка с изображением операционника) левого панели ISIS. Перед созданием компонента мы уберем флажок

Draw Name

в свойствах выводов (

Pins

), чтобы не загромождать компонент излишней информацией. Кроме того, на рисунке слева расположены пассивные компоненты: резисторы, конденсаторы, индуктивности. Это тоже сделано не случайно. Я поставил в их свойствах флажок

Hidden

для

Component Reference

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

Show hidden text

через меню

Template => Set Design Default

.
В середине рисунка 9-2-3 расположено уже готовое для создания компонента графическое изображение нашего переключателя. Здесь, как я и заметил выше, имена выводов выключены, и они сдвинуты на свое законное место. Именно к этому изображению мы применим

Make Device

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

INCREMENT/DECREMENT

не нужны. Процедура

Make Symbol

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

ORIGIN

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

Block Copy

верхнего меню нужное количество раз в свободном поле нашего проекта. Всего нам надо 8 символов (по числу положений переключателя), значит, после выделения и нажатия

Block Copy

щелкаем по левой кнопке «хвостатой» 8 раз, каждый раз смещая ее на свободное место. После этого смещаем горизонтальную черту замыкателя в каждом изображении на нужное место (Рис. 9-2-4).
Теперь приступаем непосредственно к созданию символов. Я не стану мудрствовать с названием и назову их просто

SW8

, а далее через нижнее подчеркивание нужный индекс. Вот тут и проявится предусмотрительно выбранное мной название выводов переключателя. Вспомните, верхний – первое положение – 0, нижний – восьмое положение – 7. Индексы символов у меня будут совпадать с именами соответствующих выводов. Это, конечно, не обязательное условие, но ориентироваться при таком варианте удобнее. Поехали… Выделяем первое изображение, клацаем правой лапой мыши и выбираем

MakeSymbol

(Рис. 9-2-5).
В строке

Symbol Name

вводим нужное нам имя и индекс

^ SW8_0

, оставляем флажок

Graphic

, а вот библиотеку я сменил на

USERSYM

, чтобы не засорять системную. Все, давим

ОК

. И так 8 раз, каждый раз меняя индекс. Не забывайте каждый раз после

ОК

нажимать верхнюю кнопку со стрелкой в левой панели инструментов, чтобы курсор мыши сменился с карандаша на нее, иначе вы не сможете выделить очередное изображение. Закончив эти действия, мы можем увидеть в селекторе символов (нажатая кнопка

S

в левом тулбаре) все наши созданные символы.
Теперь можно создавать и сам компонент из того изображения, что на рисунке 9-2-3 в середине. Выделяем его полностью со всеми маркерами и …

Make Device

. На первой вкладке прописывем имя нашего компонента

Device Name

в библиотеке ISIS, префикс

Reference Prefix

, с которым он будет нумероваться в наших проектах, и обязательно заполняем

Active Component Properties

(Рис. 9-2-6). Там для

Symbol Name Stem

указываем имя созданных нами символов, а в графе

No of States

их количество, учитывая символ с нулевым индексом. Все остальные вкладки пока «пролетаем», нажимая

Next

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

Device Description

. Сохраняем его

ОК

в библиотеке, допустим, в той же

USRDVC

. Все!
Ну вот, скажет кто-то, опять ничего нового. Все это мы уже неоднократно читали. Согласен, но поскольку все чаще на форуме появляются индивидуумы, которым «в лом» читать предыдущие xxxстраниц материала, мне приходится как попугаю повторять заученные фразы. Они не желают считать себя начинающими, они уже «виртуозы», раз соблаговолили установить эту программу на компьютер. Что-то не по-нашему – это глюк, что-то отсутствует – срочно выложите. Выкладываю, что могу в силу своих возможностей. Ну, ладно, это так – лирика, вернемся в тему.
Так вот, новое все же есть. Втащим наш свежеиспеченный переключатель из селектора в поле проекта и попробуем понажимать круглые кнопки

INCREMENT/DECREMENT

, даже не запуская симуляцию. Предвижу банальное: «Вау!». Переключатель работает! Но! Не спешите делать скоропалительных выводов. Работает активная графика, а если запустить симуляцию, то мы получим угрожающее

No model specified for S1

в логе. Так и должно быть, ведь модель «внутренностей» переключателямы еще не создали. Этим мы займемся в следующем параграфе.
Ну а пока, тем, кто любит читать с конца, напомню, что максимальное количество символов, ну и соответственно положений переключателя, которое можно создать равно 32. Так что переключатель на 33 положения создать не получится.

Рисунки 9-2-1... 9-2-7


Миниатюры:
     
     
 



Вложения:


9_2.rar (10.8 Кб, 243 просмотров)

Последний раз редактировалось Halex07; 07.01.2012 в 11:28.

^ 9.3. Создаем MDF-начинку для переключателя на 8 положений.


Для того, чтобы создать

Schematic

модель нашего восьмипозиционного переключателя нам придется еще раз вернуться к нашему «мальчику для битья» –

SW-SPDT

и нанести ему последний нокаутирующий хук, а точнее извлечь его MDF и по нему восстановить исходную схему дочернего листа модели. Мы уже не раз такое проделывали, поэтому заглядываем в свойства

SW-SPDT

в режиме

Edit all properties as text

и обнаруживаем строку

MODFILE=SPDT

. Нам осталось в папке

MODELS

найти файл LML-библиотеки, содержащий текст, а это

ACTIVE.LML

. Копируем его в какую-нибудь временную папку, туда же

GETMDF.EXE

и с ее помощью извлекаем из библиотеки все MDF, в том числе и нужный нам

SPDT.MDF

. Ох, опять я попугаем работаю… Все это мы уже проходили.
Полностью файл MDF есть в папке вложения SPDT_MDF, там же и проект с восстановленной по нему структурой переключателя. Ниже только список компонентов из этого файла:



Код:

*PARTLIST,2
SW1,RTSWITCH,RTSWITCH,PRIMITIVE=PASSIVE,R(0)=,R(1)=,STATE=,TSWITCH=
SW2,RTSWITCH,RTSWITCH,PRIMITIVE=PASSIVE,R(0)=,R(1)=,STATE=,TSWITCH=



Список не блещет разнообразием и содержит всего два примитива типа

RTSWITCH

, что расшифровывается как

Real Time Switch

или в нашем литературном варианте – переключатель в режиме реального времени. Данный примитив находится в библиотеке

Modelling Primitives=>Real Time (Actuators)

и является единственным для создания всех активных аналоговых переключающих элементов (переключателей, контактов реле и т.п.). Поскольку мы с ним еще не знакомы, остановимся подробнее. Примитив двухвыводный (Рис. 9-3-1) левый вывод имеет имя 1, правый имя 2 при внесении в список цепей (Netlist). При нажатии кнопки

Help

в свойствах мы автоматом попадаем в нужный нам раздел помощи

ProSPICEPrimitives

.
Теперь поговорим о параметрах примитива описанных и не описанных. В Help описаны всего два параметра:
·

^ R()

– сопротивление резистора в зависимости от номера

N

состояния

STATE

. Применительно к окну

Edit Component

с рисунка 9-3-1 это

Off Resistance

R(0)=100M

– сопротивление ключа в выключенном состоянии 100 МегОм и

On Resistance

R(1)=100m

– сопротивление ключа во включенном состоянии 100 миллиОм. Здесь их всего два, но в действительности может быть и больше – R(2), R(3) и т.д. Таким образом, можно реализовать, например, переменный резистор. Однако, опять следует помнить, что

STATE

– это фактически номер символа в графическом изображении, а их для этого случая может быть всего 32 (от 0 до 31). Следовательно и резистор у нас получится не совсем плавным, а 32-х ступенчатым.
·

^ TSWITCH

– время переключения. Применительно к окну с рисунка это

Switching Time

– TSWITCH=1m, т.е. 1 миллисекунда по умолчанию.
Ну и теперь, включив галочку

Edit all properties as text

,можем увидеть то, что «скрыто от наших глаз», а именно

STATE=

. Мы уже знаем, что в угловых скобках указывается параметр, который задается извне. Так оно есть и в этом случае. Наше

STATE

(состояние) прочно связано с тем состоянием, которое задается для графической модели в данный момент. Именно поэтому, если вы просто поставите в проект примитив

RTSWITCH

в поле проекта, запустите и потом остановите симуляцию – в логе появится желтое предупреждение –

Parameter not defined in STATE of SW1

. ISIS нас предупреждает, что

не имеет конкретного (числового) значения для параметра

STATE

в компоненте

SW1

(наш

RTSWITCH

единственный на листе и автоматом получил такое обозначение (

ComponentReference

). А получить он его может или из скрипта *DEFINE, находящегося на этом же листе, или из модели с родительского листа, т.к.

RTSWITCH

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

^ SW-SPDT

(Рис. 9-3-2).
Подсхема проста «до неприличности», да и чему тут быть сложному, верхняя ветка с

SW1

реализует NC контакт переключателя, а нижняя с

SW2

– контакт NO. Единственное, на что я здесь хочу обратить ваше внимание,

R(0)

и

R(1)

для верхней и нижней веток строго противоположны по значению. Как раз так получается, что для состояния

STATE=0

(символ с верхним положением движка переключателя) через SW1 замкнута цепь между терминалами COM-NC, а для состояния

STATE=1

(символ с нижним положением движка) – через SW2 замкнута цепь COM-NO, а SW1 разомкнут. Ну и конечно, здесь слева присутствует скрипт

*DEFINE

, определяющий конкретные значения переменных в угловых скобках по умолчанию.
Пора на основе изложенного материала реализовать наш переключатель на 8 положений. Вынимаем его из закромов, входим в свойства и ставим флажок

Attach hierarchy module

. На дочернем листе составляем подсхему из примитивов

RTSWITCH

и терминалов

DEFAULT

(Рис. 9-3-3).
На что здесь следует обратить внимание.
Во-первых, чтобы не напрягать свои драгоценные руки и голову лишней работой проще рисовать следующим образом. Ставим в проект один

RTSWITCH

, входим в его свойства как текст и там прописываем все так, как прописано для

SW1

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

VSM HELP

сами производители, будет выглядеть компактнее. Теперь присоединяем к одному из выводов терминал

DEFAULT

пока без имени. Выделяем получившийся кусок схемы и через кнопку

BlockCopy

размножаем до 8-ми частей, а после дорисовываем недостающие связи к терминалу

COM

.
Во-вторых, имена терминалам присваиваем из выпадающего списка, чтобы не ошибиться. Если все в графической модели было сделано правильно, то в этом списке будут только те имена, которые мы присвоили выводам переключателя, т.е.

COM

и цифры от

0

до

7

. Если там что-то отсутствует, или наоборот примешалось лишнее – что-то не так в графической модели, ищите ошибку. Соответственно в свойствах работающего с терминалом примитива

SW

нам придется вручную поправить две строчки. Для нулевого состояния

R(0)

всех

SW

, кроме первого поставить сопротивление

, а для состояния по номеру совпадающего с номером терминала -

.
В-третьих, помещаем на поле дочернего листа через кнопку TextScriptModeлевого тулбара текстовый скрипт следующего содержания:



Код:

*DEFINE
TSWITCH=1m
ROFF=100M
RON=0.1



Этим скриптом мы устанавливаем значения параметров по умолчанию для теста нашей джиги. Нет ничего страшного, что они впоследствии войдут в MDF, там будут иметь преимущество назначения из свойств модели с родительского листа. Но, без такого скрипта мы не сможем проверить нашу модель до создания файла MDF, потому что ISIS будет ругаться на отсутствие заданных значений.
Теперь можно уйти на родительский лист и навесить что-нибудь эдакое на наш переключатель для проверки его работоспособности. Я не стал мудрить и повесил обычные светодиоды, причем даже без резисторов – все равно в симуляторе «не задымят». Результат переключения во второе положение представлен на рисунке 9-3-4. Рекомендую проверить все возможные варианты, чтоб потом не гадать – почему в готовой модели что-то не работает. На этом подготовительные работы заканчиваются и пора создавать MDF-файл нашей модели.
Мы снова идем на дочерний лист переключателя и оттуда нажимаем в верхнем меню

Tools => ModelCompiler….

Я и здесь не стал мудрить и оставил файлу имя

SW_8

, а расширение MDFкомпилятор приделает сам. Если необходимо, чтобы модель была доступна в любом проекте, путь к файлу не меняем, т.е. сохраняем MDF-файл в папке

MODELS

, которую компилятор откроет по умолчанию.
Ну вот, почти все. Нам осталось еще раз запустить для нашего переключателя MakeDeviceи на третьей вкладке добавить необходимые параметры и прописать файл модели. Все параметры будут точно такими же, как у любого из переключателей, например, того же SPDT. На рисунках 9-3-5 … 9-3-9 отражен весь процесс. Свойства

MODFILE

и

STATE

присутствуют в выпадающем списке, остальные через

New=>Blank Item

набираем вручную. Не забудьте, что

RON

,

ROFF

и

TSWITCH

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

Float, Positive, Non-Zero

.
Ну, вот и закончена модель переключателя на 8 положений. В папке вложения

SW_8_Child

представлен проект с дочерним листом, с которого создавался MDF. В папке

SW_8_MDF

представлен готовый переключатель, там же есть и готовый файл MDF. Кому лень делать его самостоятельно, но хочется иметь в библиотеке ISIS, могут просто прогнать

MakeDevice

для переключателя из последнего проекта до конца, ничего не меняя, и перенести

SW_8.MDF

из этой же папки в папку

MODELS

установленного Протеуса.

Рисунки 9-3-1... 9-3-9


Миниатюры:
     
     
     



Вложения:


9_3.rar (24.9 Кб, 239 просмотров)

Последний раз редактировалось Halex07; 14.01.2012 в 09:21.

^ 9.4.Несколько слов о моделях переменных резисторов в ISIS. Реинкарнация активной схематичной модели потенциометра.


Если заглянуть в библиотеку

Resistors => Variable

, то среди большого списка переменных резисторов фирмы

Bourns

, представленных моделями с

PCB

, т.е. с футпринтами для печатного монтажа, можно встретить только одну модель, помеченную как

ACTIVE

. Это потенциометр

POT-HG

, имеющий

VSM DLL Model

и расположенный в самом низу указанной подкатегории компонентов. Именно им мы и пользуемся сейчас в своих проектах, если нужно применить переменник с изменяемым в процессе симуляции сопротивлением. Особенно останавливаться на нем не буду, поскольку свойства этого компонента говорят сами за себя (Рис. 9-4-1).
Мы можем выбрать одну из трех характеристик

Law Type

изменения сопротивления движка модели: линейную, логарифмическую или анти-логарифмическую. Кроме того, в ниспадающем списке

Advaced Properties

можно задать минимальное сопротив ление между движком и крайним выводом и время переключения (

Switching Time

). Вот, собственно, и все, что доступно в этой модели для изменения. Аббревиатура

HG

– High Granulate на конце названия модели, говорит сама за себя, сопротивление меняется с шагом всего 1% при щелчке мышью по одному из актюаторов: вверх или вниз (Рис. 9-4-2). На каждые 5 или 10 процентов происходит и визуальное изменение положения движка резистора на экране. Для большинства применений при моделировании этой модели более чем достаточно.
Однако, пользователи, которые давно пользуется Протеусом, помнят, что в библиотеке фигурировали еще две активных модели

^ POT-LIN

(линейный) и

POT-LOG

– логарифмический потенциометры. Они были достаточно грубыми, полная регулировка осуществлялась всего за 10 шагов, но ведь были… и работали.
Открою вам маленький секрет Лабцентра – никуда они не делись, живут и здравствуют и даже «дают потомство» в виде тех же переменников фирмы

BOURNS

. Далее все экстперименты я буду проводить с моделью, которая числится в библиотеке под скромным названием

POT

, и имеет

Schematic Model

. Желающие могут проделать те же действия с любым переменным резистором

BOURNS,

т.к. они абсолютно идентичны, только имеют каждый свой

PCB

.
Итак, втаскиваем в поле проекта

^ POT

и … нахально запускаем для него

Make Device

. Смотрим на первую вкладку (Рис. 9-4-3). Вот так номер! Оказалось модель содержит в себе графические символы, и ни много, ни мало – целых 11 штук.
Значит, если как следует «вдарить по ней молотком» (

Decompose

), мы получим их в селекторе символов, если перейдем в соответствующий режим в левом тулбаре. Проделаем эту операцию…. Так оно и есть! Я вытащил все эти символы в поле проекта и разместил их на рисунке 9-4-4 для всеобщего обозрения. Среднему положению движка соответствует символ

POT_5

. Поскольку всего символов 11, то и параметр

STATE

старой модели мог принимать такое количество значений, т.е. модель потенциометра имела по пять шагов вниз/вверх от среднего положения. Грубовато, конечно, но во многих случаях вполне достаточно.
Продолжаем добывать «подарки из мешка Деда Мороза». А пройдем-ка мы для модели

^ POT

до третьей вкладки

Make Device

и посмотрим, что нас ждет там. Дошли и увидели, что модель имеет полный набор параметров, типичный для активной схематичной модели, только вот

MODFILE

прописан как-то необычно (Рис. 9-4-5).
Здесь я хочу остановиться подробней, потому что с такой записью мы еще не сталкивались. Да собственно почти весь сыр-бор с потенциометром я затеял в основном из-за нее. Обратите внимание, что для

MODFILE

выбрано описание

Law

(порядок, характеристика). Именно с таким названием появляется в свойствах

POT

строка с ниспадающим списком для выбора типа характеристики потенциометра. Принять она может только два значения

Linear

и

Log

, которым в строке Keywordsстрого сопоставлены имена файлов MDF соответственно:

POT_LIN

и

POT_LOG

. Для того, чтобы пользователь не мог в эту строку что-то вбивать самостоятельно верхний

Type

выбран как

Keyword (Non-Editable)

– ключевое слово (не редактируемое). Ну и в графе

Default Keyword

выбрано значение по умолчанию

Linear

, т.е. при добавлении в проект модели она принимает линейную характеристику и обращается к файлу

POT_LIN.MDF

.
Так…, – скажут скептики, – картина Репина – «приплыли». А где взять файлы MDFот старого Протеуса? Спешу Вас обрадовать, файлы тоже находятся на месте, т.е. там, где и раньше – в библиотеке

ACTIVE.LML

. Лабцентр настолько «лихо» печет свежие версии, что не успевает убирать тот «мусор», который накопился за годы существования программы. В доказательство я извлек эти файлы, они нам понадобятся для исследования чуть ниже, и добавил в папку

POT_MDF

вложения. Если открыть их в текстовом редакторе, то вверху можно обнаружить, что созданы они еще весной 1999 года.
Так что же у нас получается? Лабцентр вообще не трогал эту модель, а просто тихо «заныкал» актюаторы у модели переменного резистора? Так оно и есть на самом деле. Поэтому, все, что нам потребуется, чтобы восстановить модель

POT-LIN

– это добавить к той «разбомбленой» модели

POT

маркеры-актюаторы

INCREMENT-DECREMENT

, затем выделить все это, включая скрипт, с помощью мыши и прогнать процедуру

Make Device

от начала до конца, ничего не меняя. Хотя, нет, - имя на первой вкладке мы все же поменяем на

POT-LIN

. После этого можно протестировать модель на работоспособность любым удобным способом. Я это проделал в папке вложения

TEST_POT_LIN

в файле

Test_lin.DSN

.
Ну а мы далее в качестве познавательного материала на базе файла

POT_LIN.MDF

реконструируем подсхему дочернего листа потенциометра, чтобы узнать, как он устроен и работает. Тем более, что этот материал тесно переплетается с подсхемой переключателя, рассмотренного выше. Поехали….
2014-07-19 18:44
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • © sanaalar.ru
    Образовательные документы для студентов.