Страница 5 из 7

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

Добавлено: Пт янв 02, 2015 21:24:40
D.i.M.K.i.N.
Изображение
Изображение

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

Добавлено: Пт янв 02, 2015 21:43:08
D.i.M.K.i.N.
Разобрался.
Обнова не проходит, если открыт проект.

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

Добавлено: Пт янв 02, 2015 21:44:16
xkp
открываешь программу, обновляешь, перезагружаешь программу. работаешь.

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

Добавлено: Пт янв 02, 2015 21:50:37
D.i.M.K.i.N.
ок.
было бы не плохо добавить полосу загрузки...

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

Добавлено: Пт янв 02, 2015 21:55:18
xkp
там загрузка длится не больше секунды, файлы весят несколько килобайт. Почему то идет долго запрос на сервер. это уже к автору вопрос. а так жмеш "обновить" программа пишет сколько файлов требуют обновления, жмешь "ок", программа загружает и пишет что можно установить, жмешь "ок", программа пишет что изменения вступят в силу после перезагрузки программы. Если не учитывать первый запрос на сервер то все это занимает 3 секунды. а вот первый запрос бывает и минут 5 жду.

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

Добавлено: Пт янв 02, 2015 22:01:59
D.i.M.K.i.N.
Если бы эта программа еще исходник выдавала :)))

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

Добавлено: Пт янв 02, 2015 22:25:16
xkp
так выдает, помоему... сам не пробовал, не смотрел. Но в видео или в описании на сайте автора об этом говорится.

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

Добавлено: Пт янв 02, 2015 23:12:36
D.i.M.K.i.N.
не нашел.

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

Добавлено: Сб янв 03, 2015 05:51:16
Lihouzov
При обновлении программа:
1. Скачивает update.xml, его можно посмотреть "меню -> параметры -> структура обновления".
2. Программа Configurator локально рассчитывает MD5 имеющихся файлов, определяет список файлов необходимых для загрузки. (вот здесь долго висит :( )
3. Скачивает необходимые файлы.

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

Добавлено: Сб янв 03, 2015 05:51:59
Lihouzov
D.i.M.K.i.N. писал(а):Разобрался.
Обнова не проходит, если открыт проект.
Странно попробую.

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

Добавлено: Сб янв 03, 2015 05:54:26
Lihouzov
Исходный код открыт: "меню над FBD блоком-> параметры -> исходный код блока".

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

Добавлено: Сб янв 03, 2015 18:52:36
Lihouzov
Обновление программы:
http://horizontautomatics.ru/Configurat ... ?id=update

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

Добавлено: Вт янв 06, 2015 17:44:50
Lihouzov
Всех с Новым годом!!!

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

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

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

Вероятно и размер прошивки в этом случае уменьшиться.

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

Добавлено: Вт янв 06, 2015 22:57:52
xkp
1. может есть смысл задуматься над универсальным генератором? а в его настройках уже делать что надо... пилу, синус, прямоугольник.
2. можно как то сделать что бы обязательные блоки, необходимые для других блоков, вносились в проект автоматически. например, береш блок "генератор" и автоматически в проекте появляется блок "счетчик миллисекунд".

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

Добавлено: Ср янв 07, 2015 05:29:26
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

Вечером буду отлаживать.

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

Добавлено: Ср янв 28, 2015 10:42:26
Lihouzov
Добавил новый блок "RTRIG":
http://horizontautomatics.ru/FBD/index. ... igger_TRIG
Пример работы:

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

Добавлено: Чт янв 29, 2015 10:18:06
Мурик
Посмотрел видео.... :shock: :shock:
Это же нерационально решение! Все равно что ехать из Питера в Москву через Камчатку!
Зачем триггеры? Зачем логические элементы? Это же не ПЛИС! Данная задача решается элементарно через сдвиг и получится не только более быстрый и компактный код, но еще и намного нагляднее!

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

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

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

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

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

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