Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 3 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Модератор форума: ivan_fd  
Форум Picbasic.ru » Программирование МК » PicBasicPro » PicBasicPRO и VB6 (Сопряжение на аппаратном и программных уровнях)
PicBasicPRO и VB6
demanik Дата: Вс, 08.02.2009, 19:00  |                                                                                                                Сообщение # 31
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (Alex)
А почему не хочешь пересчитывать на компе ?

Комп нужен только на стадии отладки и проверки алгоритма регулятора. В конечном варианте регулятор должен быть автономным и применятся для любых целей например регулятор для паяльника, инкубатора и т.д.
-------------------
DAlexV, Сделал заготовку проги для ПИД, все в архиве + ваши исходники(к стати иногда зависает) и протеус. Прога измеряет три аналговых входа и преобразует для отправки на комп:
1) Уставка 15-55 градусов отправляет 150-550
2) Температура 0-90 градусов отправляет 0-900
3) Выход 0-100 % отправляет 0-100
На графике нужно прорисовывать следующую точку только после приема данных.
Также хочу в конце посылки добавить контрольную сумму, но это еще не готово я думаю потом можно будет добавить в программу. По контрольной сумме можно будет определить правильно ли приняты данные.
Прикрепления: VBA_pic.rar (102.1 Kb)


Попробуй всё и вся... может быть пол...


Сообщение отредактировал demanik - Вс, 08.02.2009, 19:01
ЯНДЕКС Дата: 08.02.2009
Alex Дата: Вс, 08.02.2009, 23:12  |                                                                                                                Сообщение # 32
Группа: Удаленные
Ранг: 
Сообщений:
Репутация:   ±
Замечания:   ±
На сайте с

Статус:

demanik, а у тебя есть навыки с созданием ПИД регуляторов ?
Я никак не въеду как вычеслить ПИД составляющие. Столько всего перечитал, сколько статей посмотрел, ну никак не доходит до меня как их высчитать sad
А как формулу ПИД ркгулятора вижу, зразу глаза на лоб surprised
Мож поделишься знаниями, буду благодарен good
DAlexV Дата: Пн, 09.02.2009, 10:47  |                                                                                                                Сообщение # 33
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

demanik, постараюсь по возможности убрать глюки, просто времени хронически не хватает.
А часто зависает, можешь систематизировать. А то я в Протон лезть не хочу, мне от Рыбы голова уже пухнет. bash evil nocomp


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
demanik Дата: Пн, 09.02.2009, 11:30  |                                                                                                                Сообщение # 34
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (DAlexV)
А часто зависает, можешь систематизировать

Ситтемы никакой не заматил она работает то несколько секунд то насколько десятков секунд потом все останавливатся и перестает реагировать на кнопки закрыть порт и выход работает только крестик (закрыть окно). Иногда выдает ошибку Run-time error '5': Invalid procedure call or argument
Quote (DAlexV)
А то я в Протон лезть не хочу, мне от Рыбы голова уже пухнет

Протон почти ПБП только немного измененный и улучшеный главная его прелесть полная совместимость с протеусом. Можно в протеусе запускать пошаговое исполнение программы и смотреть изменение всех переменных басика !!! а не только регистров пика. Я по этому стараюсь перевести все свои програмки на протон.
Рыбу смотрел она похожа немного на с, немного на микобасик, немного на VB. Если вы хорошо знакомы с VB то думаю осилите. Я для 18пиков нормально пишу на протоне, разве какието специфические задачи тяжело будет сделать. cool


Попробуй всё и вся... может быть пол...


Сообщение отредактировал demanik - Пн, 09.02.2009, 11:40
DAlexV Дата: Пн, 09.02.2009, 11:38  |                                                                                                                Сообщение # 35
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Понял !!!! А сторонним захватом com порта не проверял, могет pic какую нибудь ерунду кидает ???
У меня в проге жесткая привязка к приему данных, если чего то не то, то могет зависать.


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
demanik Дата: Пн, 09.02.2009, 11:45  |                                                                                                                Сообщение # 36
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (DAlexV)
если чего то не то, то могет зависать

Одинаковый эффект и на вашем примере на ПБП и на моем на протоне


Попробуй всё и вся... может быть пол...

DAlexV Дата: Пн, 09.02.2009, 11:47  |                                                                                                                Сообщение # 37
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (demanik)
Одинаковый эффект и на вашем примере на ПБП и на моем на протоне

Хорошо перепишем, но не обещаю что быстро. book


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Alex Дата: Вт, 10.02.2009, 19:35  |                                                                                                                Сообщение # 38
Группа: Удаленные
Ранг: 
Сообщений:
Репутация:   ±
Замечания:   ±
На сайте с

Статус:

Программа составлена немного не правильно (зарание извеняюсь если чем обидел).
Самый глобальный косяк - это нет синхронности с МК, программа раз в секунду считывает буфер порта, и не известно передалось в этот момент чего или нет, а может всего половина передалась.
На счёт подвисания. Виснет скорее всего в этих местах
Quote
Do While Mid$(STRes, i, 1) <> ","
i = i + 1
Loop
Do While Mid$(STRes, i, 1) <> ","
i = i + 1
Loop

ведь символа "," может вообще не быть в принятой строке (пришла не вся строка например). И не известно что будет, либо прога повиснет, либо ошибка вылезет из-за того, что переменная i будет больше кол-ва символов в строке.
Разбить строку на части можно элементарно, оператором Split.
Code
Split(Expression,[Delimiter],[Limit],[Compare] )   

Функция Split используется для расщепления строки на субстроки с использованием разделителя субстрок

Функция Split(Expression) возвращает одномерный массив с типом данных Variant(String), содержащий в качестве элементов найденные субстроки

Ещё, урезать пробелы, символы перехода строки и всякую такую лабудень с краёв строки можно с помощью оператор Trim
Code
Trim(String)   
Функция Trim объединяет действия двух функций LTrim и RTrim, удаляя пробелы как справа, так и слева

Возвращаемое значение   
Возвращает исходную строку типа Variant(String) без начальных и завершающих пробелов. Если аргумент имеет значение Null, то возвращается Null

По поводу синхронности. В данном случае её можно получить.
Я делаю обычно так. Задействую события от порта, в событии я укладываю принятые данные в строку и запускаю таймер, например на 10-20 Мс. Когда таймер вызвался, значит после последнего приёма долго небыло ничего. В обработчике таймера уже делаю со строкой что хочу. Строку обнуляю, таймер выключаю.
Глюков ниразу не было, программы работают нормально.
DAlexV Дата: Чт, 12.03.2009, 18:34  |                                                                                                                Сообщение # 39
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Возвращаясь к напечатанному

Прошу прощения за столь длительное отсутствие. "С этой работой всю пьянку забросил" как говориться. Следующая неделя неаконец то свободная, и можно чего-нибудь потворить. demanik, по поводу проги надобность еще не отпала ??? Глюк с подвисанием проги вроде исправил. Судя по заданию предлагаю разбить на 3 отдельных графика( так проще смотреть и ориентироваться), полосу прокрутки добавим, вопрос следующий: сколько по времени прога дожна ловить данные ??? Можно в принципе все данные сохранять в виде Exel файла. Сформулируй поточнее свои пожелания, попробую решить wink


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
demanik Дата: Чт, 12.03.2009, 20:16  |                                                                                                                Сообщение # 40
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (DAlexV)
надобность еще не отпала ???

Спасибо что не забыли. Три графика нужно рисовать на одном экране разными цветами. Прога должна ловить данные до нажатия кнопки стоп. А сохранять в Exel просто супер. happy


Попробуй всё и вся... может быть пол...

DAlexV Дата: Сб, 14.03.2009, 16:31  |                                                                                                                Сообщение # 41
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (demanik)
Три графика нужно рисовать на одном экране разными цветами

Да это все будет в одном окне, но разбито на 3 отдельных графика. Это связанно с разными типами данных, так проще решить.

P/s. Как с иммитатором ds18b20, получилось ???
Добавлено
------------------
demanik, посмотри, внешне дизайн устроит ???? wink
(vba без exe-шника)

Замечания, предложения. Жду !!!

Прикрепления: VBAChart.rar (5.3 Kb)


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
ЯНДЕКС Дата: 14.03.2009
demanik Дата: Сб, 14.03.2009, 21:27  |                                                                                                                Сообщение # 42
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (DAlexV)
Как с иммитатором

Работает
Добавлено
-----------------
Quote (DAlexV)
внешне дизайн устроит ????

Дизайн нормальный. Не хватает опции "сохранить как" и кнопок "start", "stop", "clear". Малое количество ком портов для выбора у меня иногда нужный преобразователь (я использую усб-ком или усб-рс485) получается под номером больше десяти, после подключения к компу разных усб переходников и кабелей. Также желательно сделать масштабирование окна программы.


Попробуй всё и вся... может быть пол...

DAlexV Дата: Сб, 14.03.2009, 23:24  |                                                                                                                Сообщение # 43
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

При маштабировании придется переправлять кучу параметоров в построении графиков(Я не художник, я только учусь). И маштабировании чего ??? Поподробнее !!! Старт, стоп & Crear нарисуем, а что имел ввиду под save as ... ??? Сначало сохраняем в память, а потом ужо в EXEL. Чем больше запишем в виртуалку проги, тем больше возможность зависания из за ререполнения массивов. Сколько по времени нужно записывать ??? 1мин, 5 мин, 10, 60 ??? Эти вопросы хочется разъяснить. bash

Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
demanik Дата: Сб, 14.03.2009, 23:36  |                                                                                                                Сообщение # 44
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (DAlexV)
При маштабировании придется переправлять кучу параметоров в построении графиков

Тогда маштаб не трогаем.
Quote (DAlexV)
а что имел ввиду под save as ... ???

Вводить название файла для сохранения.
Quote (DAlexV)
Сколько по времени нужно записывать ???

До нажатия кнопки "стоп", иногда может понадобится записывать несколько часов.


Попробуй всё и вся... может быть пол...

DAlexV Дата: Сб, 14.03.2009, 23:43  |                                                                                                                Сообщение # 45
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (demanik)
Вводить название файла для сохранения.

Это все будет, я ограничу кол-во записей ограничу 10 000. Около 3 часов. Достаточно ???
Я предпологал что сначало указываешь имя файла в exel (иначе в виртуалку) и прога сама создает лист, и пиши туда хоть неделю.

А что имелось ввиду под масштабом ???


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Сообщение отредактировал DAlexV - Сб, 14.03.2009, 23:47
Форум Picbasic.ru » Программирование МК » PicBasicPro » PicBasicPRO и VB6 (Сопряжение на аппаратном и программных уровнях)
  • Страница 3 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск: