Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 04.06.2018, 18:25  
joogorden
Временная регистрация
 
Регистрация: 26.12.2005
Сообщений: 54
Сказал спасибо: 21
Сказали Спасибо 11 раз(а) в 8 сообщении(ях)
joogorden на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только

Объясните откуда такие значения?
Почему не получается задать начальный ток индуктивности через PRECHARGE?
Миниатюры:
Нажмите на изображение для увеличения
Название: IC1A.PNG
Просмотров: 0
Размер:	29.1 Кб
ID:	129871  
Реклама:

Последний раз редактировалось joogorden; 13.06.2018 в 20:40.
joogorden вне форума  
Непрочитано 18.09.2018, 10:18  
remden
Прохожий
 
Регистрация: 23.10.2009
Сообщений: 2
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
remden на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только

Здравствуйте, столкнулся с такой проблемой: создал активный компонент с кнопками INC, DEC и окном отображения температуры, собрал MDF файл, накидал DLL файлик. Но при чтении с SETPOINT читается температура которая была установлена при остановленной симуляции, а при рабочей не изменяется. Но стоит остановить и снова запустить, читается последняя выставленная и тоже самое, перехватывает ранее установленную. Установлен Proteus 7.10 на Win7 x64 компилятор VS 2008 писал в MFC. Почему не изменяет в реальном времени не пойму уже неделю бодаюсь. Прошу помочь сильно не пинайте, а скажите хотя бы в какую сторону копать. Заранее благодарен. все файлы во вложении (в папке debug - релизовский файл dll).
Вложения:
Тип файла: rar MAX31855.rar (117.2 Кб, 0 просмотров)
remden вне форума  
Непрочитано 19.09.2018, 03:22  
ProtAS-13
Прописка
 
Регистрация: 17.03.2015
Сообщений: 287
Сказал спасибо: 0
Сказали Спасибо 209 раз(а) в 121 сообщении(ях)
ProtAS-13 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только

Сообщение от remden Посмотреть сообщение
Но при чтении с SETPOINT читается температура которая была установлена при остановленной симуляции, а при рабочей не изменяется.
У Вас применяется иерархическая схема модели:
- Сверху: Родительский компонент: маркеры INC, DEC и SETPOINT.dll
- Снизу: Дочерний компонент: MDF-файл, на котором расположен компонент с Вашей MAX31855.dll
При этом, сверху вниз, передается переменная SETPOINT, которую Вы и пытаетесь считывать своей dll-кой. Т.е., Вы своей dll-кой считываете переданную в дочерний компонент переменную.
Дело в том, что в Proteus, переменные из родительской в дочернюю части передается ТОЛЬКО при СТАРТЕ симуляции.
Поэтому Вы и получили достаточно закономерный результат.
Попробуйте использовать функцию IACTIVEMODEL *IINSTANCE::getactivemodel (VOID)
Честно говоря, мне не приходилось использовать данную функцию, но, судя по описанию:
Цитата:
If the instance is not directly associated with a component on the schematic
PROSPICE will search up the design hierarchy for the parent component and then return its
IACTIVEMODEL interface, if any.
это именно то, что Вам нужно.
По коду вижу, что Вы пытались применить данную функцию - сможете описать возникшие проблемы с ее использованием. А завтра, попробую поэксперементировать с Вашим кодом уже в VS.
ProtAS-13 вне форума  
Непрочитано 19.09.2018, 13:38  
ProtAS-13
Прописка
 
Регистрация: 17.03.2015
Сообщений: 287
Сказал спасибо: 0
Сказали Спасибо 209 раз(а) в 121 сообщении(ях)
ProtAS-13 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только

remden
В Вашем случае, есть простейший способ получить значение из SETPOINT.dll, давно описанный Halex07 (см. FAQ (ЧаВО) по PROTEUS для начинающих и не только часть IV, 8.3).
Т.е. необходимо в компоненте MAX31855_MDF сделать еще два контакта и подсоединить к нему любой компонент с двумя выводами (+ и -), заменив все поле All Properties на значения, приведенные на рис.1.
Тогда считывание значений с этих контактов и даст текущее значение переременной SETPOINT.

В данном случае, меня больше, все же, интересует использование функции getactivemodel. Поэтому, сейчас продублирую вопрос по ее использованию в ветку Создание DLL-моделей в Proteus. Описание VSM API..
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic_01.jpg
Просмотров: 0
Размер:	189.0 Кб
ID:	132698   Нажмите на изображение для увеличения
Название: Pic_02.jpg
Просмотров: 0
Размер:	94.5 Кб
ID:	132699  
ProtAS-13 вне форума  
Сказали "Спасибо" ProtAS-13
remden (19.09.2018)
Непрочитано 19.09.2018, 23:17  
remden
Прохожий
 
Регистрация: 23.10.2009
Сообщений: 2
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
remden на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только

Спасибо ProtAS-13 но я к тому времени решил свою проблему, но идея тоже интересна, в дальнейшем попробую. Так как на сайте не много описаний работы с DLL файлами, вложу свою лепту по ним и активным компонентам на основе микросхемы MAX31855. Возможно на форуме аналогичное описывалось в разных темах, но на данный вопрос я ответа не нашел и решил объединить и расписать, так как многие могут столкнутся с аналогичной проблемой. Это демонстрационная рабочая модель, за исключением некоторых тайминговых задержек и нелинейность получения показаний с термопары. Ответственность за использование модели и/или программного кода автор не несет.
И так приступим: создаем как ранее не раз было описано графический элемент из 2D graphics -› Box mode -› COMPONENT - задний фон элемента, указываем маркер ORIGIN и сразу создаем из этого символ Library-›Make symbol с именем SENS_0 в библиотеке USERSYM. Рисуем зону отображения данных 2D graphics -› Box mode -› INDIKATOR, после чего удаляем задний фон элемента оставив маркер 2D graphics -› Markers mode -› ORIGIN и снова создаем символ Library-›Make symbol с именем SENS_1 в той же библиотеке. Удаляем всю графику и переходим в 2D graphics -› Symbols mode, где наши свежеиспеченные символы. Теперь добавляем их начиная с SENS_0 на рабочую область совместив точку вставки (если добавить в обратном порядке, то задний фон перекроет индикатор, тогда надо будет выделить задний фон и переместить его на задний план нажав Ctrl+B). Добавим кнопки инкремента и декремента из 2D graphics -› Markers mode -› IN-CREMENT и DECREMENT. Назначим модели выводы из Device Pins mode -› DEFAULT после чего их подпишем T+, T-, CS, CLK с типом IP input и SDO с типом OP output.
Добавляем рядом с моделью скрипт из Text script mode и добавляем следующее:
{*DEVICE}
NAME=MAX31855K
{PREFIX=DA}
{ACTIVE=SENS,2,DLL}
{DATA=pdfs/maxim/MAX31855.pdf}
{*PROPDEFS}
{MODDLL="VSM Model DLL",HIDDEN STRING}
{STEP="Temperature step",FLOAT}
{SETPOINT="Temperature",FLOAT}
{FORMAT="Displey format",STRING}
{MAX="Max. temperature",FLOAT}
{MIN="Min. teperature",FLOAT}
{PACKAGE="PCB Package",PACKAGE,1,DIP8}
{PRIMITIVE="Primitive Type",HIDDEN STRING}
{*INDEX}
{CAT=Data Converters}
{SUBCAT=Temperature Sensors}
{MFR=USERS}
{DESC=Конвертор температуры}
{*COMPONENT}
{MODDLL=MAX31855}
{STEP=0.5}
{SETPOINT=20.0}
{FORMAT=3.1}
{MAX=127}
{MIN=-55}
{PACKAGE=DIP8}
{PRIMITIVE=DIGITAL,MAX31855}
*PINOUT DIP8
{ELEMENTS=1}
{PIN "CLK" = 5}
{PIN "CS" = 6}
{PIN "SDO" = 7}
{PIN "T+" = 3}
{PIN "T-" = 2}
{PP (Vcc) = 4}
{PP (GND) = 1}
{COMMON=Vcc,GND}
Это избавит меня и вас заполнением всех полей при создании устройства.
Теперь можно создать модель, выделяем, то что натворили с скриптом и жмем Library-›Make devices и мы уведем что необходимые поля у нас уже заполнены, нам остается жать Next до конца. Если кто-то желает изменить месторасположение элемента, то на последней вкладке можно это сделать или оставить так как есть. Жмем OK. Но нас далее ждет неприятный выпад со стороны Proteus, он смачно ругнется и выкинет окно, что мол не может он отобразить элемент, так как не может найти файл DLL. Если проигнорировать это предупреждение и нажать кнопку OK и попробовать вставить нашу модуль, элемент вставится, но без индикатора и кнопок и снова ругнется ISIS.
Если долго не мучатся и сразу скопировать в папку MODELS вложенный DLL файл, то модель сразу начнет работать, либо запускаем Visual Studio и начинаем пыхтеть над кодом.
Запускаем Visual Studio и создаем новый проект выбрав тип Win32 или MFC (кому как нравится, я использовал MFC, не надо заморачиватся с stdafx и пропиской дополнительных классов) -› Библиотека DLL либо проект Win32 DLL. Название MAX31855, если использовать другое название, тогда придется либо переименовывать выходной файл, либо в модели в MODDLL изменить подключаемый файл. На вкладке "Параметры приложения" выбираем Обычная DLL со статической связью, чтобы не заботится о дополнительных включений, если потребуются. Жмем OK. Сразу заходим в свойства проекта нажав Alt+F7 и в Свойства конфигурации -› Общие -› в строке Набор знаков меняем кодировку - Использовать многобайтовую кодировку, для того чтобы можно было писать, преобразовывать строки и месседжи без лишних танцев с бубнами.
Смотрим в обозреватель решений, за нас все сделала студия создав минимальный набор файлов. Их не трогаем вообще и создаем два файла через Проект -› Добавить новый элемент... заголовочный файл например Max_conv.h и файл С++ Max_conv.cpp. Копируем в папку с проектом файл vsm.hpp и добавляем его к проекту Проект -› Добавить существующий элемент выбрав в паке этот файл.
Писать программный код здесь я не буду, кому интересно в вложении в файлах Max_conv.h/cpp подробно с комментариями все описано его достаточно скопировать и вставить в созданные файлы, остановлюсь только на некоторых моментах.
Так как у нас цифровая и аналоговая модель используется класс IMIXEDMODEL который объединяет оба параметра и отвечает за инициализацию выводов и установку/чтение их состояния, реакцию на изменение их состояния, установку скорости нарастания/спада перехода из состояния в состояние. Для аналоговых цепей предусмотрены функции расчета напряжения и тока. А также связь с графической частью.
Для работы с графикой используется класс IACTIVEMODEL, он работает как в симуляции так и в режиме моделирования (поэтому компилятор у нас ругался). Соответственно если вы отлаживаете код с этим классом, то вам придется полностью закрывать окно ISIS для замены DLL файла после компиляции, иначе он будет не доступен для перезаписи. В этом классе можно с нуля нарисовать требуемый элемент зная основы вывода графики в С++. Он имеет непосредственную связь с аналоговым, цифровым и микс классами. Также входят функции которые вызываются: перед перерисовкой области при ее изменении; при нажатии кнопок мыши или клавиатуры; при изменении электрической модели.
Файл vsm.hpp - является связующим с Proteus, в нем можно посмотреть все классы и входящие функции, флаги и структуры, кто пишет на С++ не составит труда разобраться. Это другая тема и есть много аналогичных форумов по программированию.
Немного об отладке для просмотра куда и от куда что берется и кто кого посылает. После написания кода и сборки проекта в Debug не спешите жать зеленую кнопку выполнения программы, это вам ничего не даст, так как это не приложение, а библиотека. Для запуска симуляции запустите сам ISIS и в компиляторе выберите Сервис -› Присоединится к процессу... в списке процессов найдите ISIS.exe выберите его и нажмите кнопку присоединится. Поставьте на интересующих строках точки останова (двойным кликом или кнопкой F9), у меня они при запуске как будто не активные, но все равно перехватывают со-бытия. Теперь можно мучить модель и смотреть переменные. Редактирование во время выполнения возможно, если про-грамма остановилась на точке останова, если отредактировать код во время работы, то изменения не примутся и придется перезаписывать DLL-ку.
На этом я остановлюсь, проект и модель во вложении, а также описание функций на английском языке в pdf файле (автора и ресурса откуда он был взят не помню, так что за ранее извиняюсь).
Вложения:
Тип файла: rar MAX.rar (559.7 Кб, 0 просмотров)
remden вне форума  
Непрочитано 24.01.2019, 21:50  
SashaN123
Прохожий
 
Регистрация: 24.01.2019
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
SashaN123 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только

Сообщение от Halex07 Посмотреть сообщение
Лёд тронулся (!!!), господа присяжные заседатели.
FAQ возобновляется и продолжается. Материал пока буду выкладывать применительно к версии 7.10, как наиболее стабильной и последней из седьмых.
По прежнему напоминаю, что в этой ветке чужие посты с просьбами, пожеланиями и прочей ерундой типа: "купите мне очки - не вижу куды тыкать" удаляются мною без лишних предупреждений, когда выкладывается свежий материал.
Личные просьбы на мыло: Halex0560@mail.ru - отвечаю по мере возможностей.
Вопросы и замечания по FAQ сюда:
https://kazus.ru/forums/showthread.php?t=13585&page=29
И убедительная просьба не тыкать кнопку Спасибо конкретно под этим постом, я его все-равно удалю, когда выкладываю новый материал.
Почему так внезапно прервался сей великий труд?
Надеюсь, с автором всё хорошо?
SashaN123 вне форума  
Непрочитано 17.11.2019, 03:13  
kurzin
Прохожий
 
Аватар для kurzin
 
Регистрация: 18.01.2009
Адрес: г.Иваново
Сообщений: 2
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kurzin на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только

Спасибо за отличное руководство по Протеусу
kurzin вне форума  
Непрочитано 24.11.2019, 15:49  
Владимир11081990
Прохожий
 
Регистрация: 23.11.2019
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Владимир11081990 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только

Доброго времени суток. Как реализовать К147УД2 в Proteus 8.
Миниатюры:
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 0
Размер:	16.1 Кб
ID:	147659  
Владимир11081990 вне форума  
Непрочитано 24.11.2019, 17:34  
12943
Вид на жительство
 
Регистрация: 07.11.2016
Сообщений: 485
Сказал спасибо: 117
Сказали Спасибо 138 раз(а) в 90 сообщении(ях)
12943 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только

Уверен, что не нужна 157-я.
Можно поставить любую другую.
12943 вне форума  
Непрочитано 24.11.2019, 18:18  
Владимир11081990
Прохожий
 
Регистрация: 23.11.2019
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Владимир11081990 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только

Приведите пример какую. Это металлоискатель пират/
Владимир11081990 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импульсная зарядка для авто-аккумуляторов (новодел) Falconist Источники питания и свет 1915 14.03.2024 19:56
Linux-ваше мнение Tvenn Делимся опытом 6169 23.08.2015 08:57
Pictiva TM 128 X 64 OLED Module (SSD0323) + AVR + PROTEUS - рабочий проект для начинающих OttoStirliz Микроконтроллеры, АЦП, память и т.д 8 28.05.2010 16:59


Часовой пояс GMT +4, время: 10:42.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot