PicBasicPRO и VB6
|
|
demanik |
Дата: Вс, 08.02.2009, 19:00 | Сообщение # 31 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (Alex) А почему не хочешь пересчитывать на компе ? Комп нужен только на стадии отладки и проверки алгоритма регулятора. В конечном варианте регулятор должен быть автономным и применятся для любых целей например регулятор для паяльника, инкубатора и т.д. ------------------- DAlexV, Сделал заготовку проги для ПИД, все в архиве + ваши исходники(к стати иногда зависает) и протеус. Прога измеряет три аналговых входа и преобразует для отправки на комп: 1) Уставка 15-55 градусов отправляет 150-550 2) Температура 0-90 градусов отправляет 0-900 3) Выход 0-100 % отправляет 0-100 На графике нужно прорисовывать следующую точку только после приема данных. Также хочу в конце посылки добавить контрольную сумму, но это еще не готово я думаю потом можно будет добавить в программу. По контрольной сумме можно будет определить правильно ли приняты данные.
Попробуй всё и вся... может быть пол...
Сообщение отредактировал
demanik - Вс, 08.02.2009, 19:01
|
|
|
|
Alex |
Дата: Вс, 08.02.2009, 23:12 | Сообщение # 32 |
Группа:
Удаленные
Ранг:
Сообщений:
Статус:
|
demanik, а у тебя есть навыки с созданием ПИД регуляторов ? Я никак не въеду как вычеслить ПИД составляющие. Столько всего перечитал, сколько статей посмотрел, ну никак не доходит до меня как их высчитать А как формулу ПИД ркгулятора вижу, зразу глаза на лоб Мож поделишься знаниями, буду благодарен
|
|
|
|
DAlexV |
Дата: Пн, 09.02.2009, 10:47 | Сообщение # 33 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
demanik, постараюсь по возможности убрать глюки, просто времени хронически не хватает. А часто зависает, можешь систематизировать. А то я в Протон лезть не хочу, мне от Рыбы голова уже пухнет.
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|
demanik |
Дата: Пн, 09.02.2009, 11:30 | Сообщение # 34 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (DAlexV) А часто зависает, можешь систематизировать Ситтемы никакой не заматил она работает то несколько секунд то насколько десятков секунд потом все останавливатся и перестает реагировать на кнопки закрыть порт и выход работает только крестик (закрыть окно). Иногда выдает ошибку Run-time error '5': Invalid procedure call or argument Quote (DAlexV) А то я в Протон лезть не хочу, мне от Рыбы голова уже пухнет Протон почти ПБП только немного измененный и улучшеный главная его прелесть полная совместимость с протеусом. Можно в протеусе запускать пошаговое исполнение программы и смотреть изменение всех переменных басика !!! а не только регистров пика. Я по этому стараюсь перевести все свои програмки на протон. Рыбу смотрел она похожа немного на с, немного на микобасик, немного на VB. Если вы хорошо знакомы с VB то думаю осилите. Я для 18пиков нормально пишу на протоне, разве какието специфические задачи тяжело будет сделать.
Попробуй всё и вся... может быть пол...
Сообщение отредактировал
demanik - Пн, 09.02.2009, 11:40
|
|
|
|
DAlexV |
Дата: Пн, 09.02.2009, 11:38 | Сообщение # 35 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Понял !!!! А сторонним захватом com порта не проверял, могет pic какую нибудь ерунду кидает ??? У меня в проге жесткая привязка к приему данных, если чего то не то, то могет зависать.
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|
demanik |
Дата: Пн, 09.02.2009, 11:45 | Сообщение # 36 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (DAlexV) если чего то не то, то могет зависать Одинаковый эффект и на вашем примере на ПБП и на моем на протоне
Попробуй всё и вся... может быть пол...
|
|
|
|
DAlexV |
Дата: Пн, 09.02.2009, 11:47 | Сообщение # 37 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Quote (demanik) Одинаковый эффект и на вашем примере на ПБП и на моем на протоне Хорошо перепишем, но не обещаю что быстро.
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь 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
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Возвращаясь к напечатанному Прошу прощения за столь длительное отсутствие. "С этой работой всю пьянку забросил" как говориться. Следующая неделя неаконец то свободная, и можно чего-нибудь потворить. demanik, по поводу проги надобность еще не отпала ??? Глюк с подвисанием проги вроде исправил. Судя по заданию предлагаю разбить на 3 отдельных графика( так проще смотреть и ориентироваться), полосу прокрутки добавим, вопрос следующий: сколько по времени прога дожна ловить данные ??? Можно в принципе все данные сохранять в виде Exel файла. Сформулируй поточнее свои пожелания, попробую решить
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|
demanik |
Дата: Чт, 12.03.2009, 20:16 | Сообщение # 40 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (DAlexV) надобность еще не отпала ??? Спасибо что не забыли. Три графика нужно рисовать на одном экране разными цветами. Прога должна ловить данные до нажатия кнопки стоп. А сохранять в Exel просто супер.
Попробуй всё и вся... может быть пол...
|
|
|
|
DAlexV |
Дата: Сб, 14.03.2009, 16:31 | Сообщение # 41 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Quote (demanik) Три графика нужно рисовать на одном экране разными цветами Да это все будет в одном окне, но разбито на 3 отдельных графика. Это связанно с разными типами данных, так проще решить. P/s. Как с иммитатором ds18b20, получилось ??? Добавлено ------------------ demanik, посмотри, внешне дизайн устроит ???? (vba без exe-шника) Замечания, предложения. Жду !!!
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|
demanik |
Дата: Сб, 14.03.2009, 21:27 | Сообщение # 42 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (DAlexV) Как с иммитатором Работает Добавлено ----------------- Quote (DAlexV) внешне дизайн устроит ???? Дизайн нормальный. Не хватает опции "сохранить как" и кнопок "start", "stop", "clear". Малое количество ком портов для выбора у меня иногда нужный преобразователь (я использую усб-ком или усб-рс485) получается под номером больше десяти, после подключения к компу разных усб переходников и кабелей. Также желательно сделать масштабирование окна программы.
Попробуй всё и вся... может быть пол...
|
|
|
|
DAlexV |
Дата: Сб, 14.03.2009, 23:24 | Сообщение # 43 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
При маштабировании придется переправлять кучу параметоров в построении графиков(Я не художник, я только учусь). И маштабировании чего ??? Поподробнее !!! Старт, стоп & Crear нарисуем, а что имел ввиду под save as ... ??? Сначало сохраняем в память, а потом ужо в EXEL. Чем больше запишем в виртуалку проги, тем больше возможность зависания из за ререполнения массивов. Сколько по времени нужно записывать ??? 1мин, 5 мин, 10, 60 ??? Эти вопросы хочется разъяснить.
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|
demanik |
Дата: Сб, 14.03.2009, 23:36 | Сообщение # 44 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (DAlexV) При маштабировании придется переправлять кучу параметоров в построении графиков Тогда маштаб не трогаем. Quote (DAlexV) а что имел ввиду под save as ... ??? Вводить название файла для сохранения. Quote (DAlexV) Сколько по времени нужно записывать ??? До нажатия кнопки "стоп", иногда может понадобится записывать несколько часов.
Попробуй всё и вся... может быть пол...
|
|
|
|
DAlexV |
Дата: Сб, 14.03.2009, 23:43 | Сообщение # 45 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Quote (demanik) Вводить название файла для сохранения. Это все будет, я ограничу кол-во записей ограничу 10 000. Около 3 часов. Достаточно ??? Я предпологал что сначало указываешь имя файла в exel (иначе в виртуалку) и прога сама создает лист, и пиши туда хоть неделю. А что имелось ввиду под масштабом ???
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Сообщение отредактировал
DAlexV - Сб, 14.03.2009, 23:47
|
|
|
|