Реализация Графического Языка Программирования

Обсуждаем контроллеры компании Atmel.
D.i.M.K.i.N.
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Пн дек 10, 2012 10:48:25

Re: Реализация Графического Языка Программирования

Сообщение D.i.M.K.i.N. »

Изображение
Изображение
Реклама
D.i.M.K.i.N.
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Пн дек 10, 2012 10:48:25

Re: Реализация Графического Языка Программирования

Сообщение D.i.M.K.i.N. »

Разобрался.
Обнова не проходит, если открыт проект.
Реклама
Аватара пользователя
xkp
Опытный кот
Сообщения: 781
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Откуда: ковров
Контактная информация:

Re: Реализация Графического Языка Программирования

Сообщение xkp »

открываешь программу, обновляешь, перезагружаешь программу. работаешь.
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
D.i.M.K.i.N.
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Пн дек 10, 2012 10:48:25

Re: Реализация Графического Языка Программирования

Сообщение D.i.M.K.i.N. »

ок.
было бы не плохо добавить полосу загрузки...
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
xkp
Опытный кот
Сообщения: 781
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Откуда: ковров
Контактная информация:

Re: Реализация Графического Языка Программирования

Сообщение xkp »

там загрузка длится не больше секунды, файлы весят несколько килобайт. Почему то идет долго запрос на сервер. это уже к автору вопрос. а так жмеш "обновить" программа пишет сколько файлов требуют обновления, жмешь "ок", программа загружает и пишет что можно установить, жмешь "ок", программа пишет что изменения вступят в силу после перезагрузки программы. Если не учитывать первый запрос на сервер то все это занимает 3 секунды. а вот первый запрос бывает и минут 5 жду.
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Реклама
D.i.M.K.i.N.
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Пн дек 10, 2012 10:48:25

Re: Реализация Графического Языка Программирования

Сообщение D.i.M.K.i.N. »

Если бы эта программа еще исходник выдавала :)))
Реклама
Аватара пользователя
xkp
Опытный кот
Сообщения: 781
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Откуда: ковров
Контактная информация:

Re: Реализация Графического Языка Программирования

Сообщение xkp »

так выдает, помоему... сам не пробовал, не смотрел. Но в видео или в описании на сайте автора об этом говорится.
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
D.i.M.K.i.N.
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Пн дек 10, 2012 10:48:25

Re: Реализация Графического Языка Программирования

Сообщение D.i.M.K.i.N. »

не нашел.
Lihouzov
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс май 20, 2012 16:21:11

Re: Реализация Графического Языка Программирования

Сообщение Lihouzov »

При обновлении программа:
1. Скачивает update.xml, его можно посмотреть "меню -> параметры -> структура обновления".
2. Программа Configurator локально рассчитывает MD5 имеющихся файлов, определяет список файлов необходимых для загрузки. (вот здесь долго висит :( )
3. Скачивает необходимые файлы.
Lihouzov
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс май 20, 2012 16:21:11

Re: Реализация Графического Языка Программирования

Сообщение Lihouzov »

D.i.M.K.i.N. писал(а):Разобрался.
Обнова не проходит, если открыт проект.
Странно попробую.
Lihouzov
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс май 20, 2012 16:21:11

Re: Реализация Графического Языка Программирования

Сообщение Lihouzov »

Исходный код открыт: "меню над FBD блоком-> параметры -> исходный код блока".
Lihouzov
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс май 20, 2012 16:21:11

Re: Реализация Графического Языка Программирования

Сообщение Lihouzov »

Обновление программы:
http://horizontautomatics.ru/Configurat ... ?id=update
Lihouzov
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс май 20, 2012 16:21:11

Re: Реализация Графического Языка Программирования

Сообщение Lihouzov »

Всех с Новым годом!!!

Просматриваю предыдущую работу "светофор":
Изображение

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

Блок будет работать следующим образом:
Изображение

Вероятно и размер прошивки в этом случае уменьшиться.
Аватара пользователя
xkp
Опытный кот
Сообщения: 781
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Откуда: ковров
Контактная информация:

Re: Реализация Графического Языка Программирования

Сообщение xkp »

1. может есть смысл задуматься над универсальным генератором? а в его настройках уже делать что надо... пилу, синус, прямоугольник.
2. можно как то сделать что бы обязательные блоки, необходимые для других блоков, вносились в проект автоматически. например, береш блок "генератор" и автоматически в проекте появляется блок "счетчик миллисекунд".
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Lihouzov
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс май 20, 2012 16:21:11

Re: Реализация Графического Языка Программирования

Сообщение Lihouzov »

xkp писал(а):1. может есть смысл задуматься над универсальным генератором? а в его настройках уже делать что надо... пилу, синус, прямоугольник.
2. можно как то сделать что бы обязательные блоки, необходимые для других блоков, вносились в проект автоматически. например, береш блок "генератор" и автоматически в проекте появляется блок "счетчик миллисекунд".
1. Сильно сложный код, и больше места занимает в памяти, плюс ко всему будет медленнее, а свойства блока будут вводить пользователя в замешательство. Но я не говорю что нельзя, я буду рад если кто сделает. Чтобы схема была более читаема, хочу добавить возможность использования небольших картинок ( текст либо картинка ) в названии блока.

2. Полностью согласен, пока не знаю как это реализовать.

Составил код, вышеприведенного блока:

Код: Выделить всё


#ifndef _FBD48_
#define _FBD48_ FBD48
#message define FBD48 generator pila
;Размер FBD блока
;1 байт  -вход                         //In
;2 байта - время прирощения            //параметры блока
;2 байта - минимальное значение        //параметры блока
;2 байта - максимальное значение       //параметры блока
;1 байт  -выход                        //Out
;Оперативная память:
;  2 байта - текущее значение
;  2 байта - отсечка времени

FBD48_run:
  ld    Uz3L, X+                                   ;текущее значение Lw
  ld    Uz3H, X+                                   ;текущее значение Hw
  ld    Uz1L, X+                                   ;отсечка времени Lw
  ld    Uz1H, X+                                   ;отсечка времени Hw
  sbiw  XL,   4                                    ;Возвращаем указатель

  rcall Read_cfg_Load_Uz2                          ;вход

  rcall Read_cfg                                   ;время прирощения  Lw
  mov   A, Addr_Data                               ;время прирощения  Lw
  rcall Read_cfg                                   ;время прирощения  Hg
  mov   B, Addr_Data                               ;время прирощения  Hg
  
  rcall Read_cfg                                   ;минимальное значение  Lw
  mov   C, Addr_Data                               ;минимальное значение  Lw
  rcall Read_cfg                                   ;минимальное значение  Hg
  mov   D, Addr_Data                               ;минимальное значение  Hg

  rcall Read_cfg                                   ;максимальное значение  Lw
  mov   E, Addr_Data                               ;максимальное значение  Lw
  rcall Read_cfg                                   ;максимальное значение  Hg
  mov   F, Addr_Data                               ;максимальное значение  Hg

//***************** Отслеживаем сигнал **********************
  sbrs Uz2L, 0               //Проверка состояния входа
  rjmp FBD48_clear

  rcall Timer_Diff           //Вычисляем разницу времени
  cp   ZL,  A                //Сраниваем
  cpc  ZH,  B                //Сраниваем
  brmi FBD46_end

//******************** Увеличение +1  ***********************
  add  Uz3L, One             //Uzl3=Uz3+1
  adc  Uz3H, Zero            //Uzl3=Uz3+1 

//********** Сравниваем с максимальным **********************
  cp   E, Uz3L                //Сраниваем максимальное значением
  cpc  F, Uz3H                //Сраниваем максимальное значением
  brpl FBD48_cutoff_time


FBD48_clear:
  lds Uz3L, C                              //Минимальное состояние
  lds Uz3H, D                              //Минимальное состояние

FBD48_cutoff_time:
  lds Uz1L, TimerCounter0_DATA_RAM+1       //Отсечка времени
  lds Uz1H, TimerCounter0_DATA_RAM+2       //Отсечка времени

FBD46_end:
  st   X+,   Uz3L            //сохраняем
  st   X+,   Uz3H            //сохраняем
  st   X+,   Uz1L            //сохраняем
  st   X+,   Uz1H            //сохраняем
  rcall Read_cfg_Save_Uz3    //выводим состояние
  ret

FBD48:
 .db 8, 4            //Размер FBD блока, необходимая оперативная память 
 .dw FBD48_run, Init_default 


#else 
 #error redeclared FBD48 __FILE__
#endif

Вечером буду отлаживать.
Lihouzov
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс май 20, 2012 16:21:11

Re: Реализация Графического Языка Программирования

Сообщение Lihouzov »

Добавил новый блок "RTRIG":
http://horizontautomatics.ru/FBD/index. ... igger_TRIG
Пример работы:
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Реализация Графического Языка Программирования

Сообщение Мурик »

Посмотрел видео.... :shock: :shock:
Это же нерационально решение! Все равно что ехать из Питера в Москву через Камчатку!
Зачем триггеры? Зачем логические элементы? Это же не ПЛИС! Данная задача решается элементарно через сдвиг и получится не только более быстрый и компактный код, но еще и намного нагляднее!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Реализация Графического Языка Программирования

Сообщение ARV »

Система все более и более приближается к классической FBD системе, используемой в ПЛК.
Если именно к этому стремится автор, то я бы рекомендовал вместо генераторов пилы и т.п. наворотов использовать блоки типа "запускаемый/автономный/перезапускаемый таймер" или "одновибратор". Для примера "светофор" в этом случае потребовались бы 3 таймера и логические элементы синхронизации их работы.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Lihouzov
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс май 20, 2012 16:21:11

Re: Реализация Графического Языка Программирования

Сообщение Lihouzov »

Мурик писал(а):Посмотрел видео.... :shock: :shock:
Данная задача решается элементарно через сдвиг и получится не только более быстрый и компактный код, но еще и намного нагляднее!
Согласен, решается элементарно, но для программистов со стажем. А если писать для микроконтроллеров то это эще порты, прерывания, таймеры ... Новичок запутается и забросит микроконтроллеры.
Lihouzov
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс май 20, 2012 16:21:11

Re: Реализация Графического Языка Программирования

Сообщение Lihouzov »

ARV писал(а):Система все более и более приближается к классической FBD системе, используемой в ПЛК.
я бы рекомендовал вместо генераторов пилы и т.п. наворотов использовать блоки типа "запускаемый/автономный/перезапускаемый таймер" или "одновибратор".
Подробно описать блоки, сколько входов\выходов, внутренние свойства, логика работы. Блоков работы со временем у меня 4 штуки из которых 3 таймера.
Ответить

Вернуться в «AVR»