Автор Тема: Arduino SCADA  (Прочетена 30853 пъти)

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Re: Arduino SCADA
« Отговор #45 -: Apr 08, 2011, 18:41 »

 За Таймерите
В Ардуйно, чипа ATmega 328p (p - пикотехнолоджи, супер малка консумация при sleep режими) има таймерите
Т0 и Т2 - 8 битови , Т1 - 16 битов, всеки от с по два Compare Match сравняващи регистри, генератор на фармата, с по няколко прекъсвания, и много режими и конфигурации.
Wotchdog таймер с независим clock.
 
Що се отнася до RS485 , Ардуино няма проблем,  USART-та е с хардуерна подръжка  на многопроцесорна комуникация / среди дали е адресиран, или пък праща адрес /
Проблема е РС-то, няма евтина платка за  RS485, но пък и не е нужен. RS232 -са през USB е виртуален, лишен е от всички недостатъци на физическият RS232. А пък самият RS232 и RS485 ако са през един и същи физически носител ще имат еднакви данни. "Магията" на RS485-а е усукана и изолирана двойка, и токово предаване, неща общоприети вече.

http://www.chip45.com/info/chip45boot2.html

http://www.chip45.com/CrumbControl-AVR-input-output-push-pull-relais-USB-RS485-control-modules/CrumbControl-1-Atmel-AVR-ATmega128-Module-Board-Push-Pull-Driver-Output-Isolated-Digital-Analog-Input-Relais-Relais-USB-RS485.html
Впрочем новите ардуновци скъсват с  RS232 и минават напълно на USB, там има много хляб, дори маунтване на флаш паметта ... ще видим.
Тук говорим за Ардуйно като нарицателно, всичко казано се отнася 100% и за тия платки.
http://www.chip45.com/AVR-Xmega-Microcontroller-Modules/CrumbX128A3-V1-2-AVR-ATxmega128A3-USB-RS485-micro-sd-card-module.html

 А такива модули е по хубаво да се купят в тоя вид, трудно е готовото да пасне на нашия случай. И да го куплираме с периферията.
 
« Последна редакция: Apr 11, 2011, 14:27 от ivo1204 »
Активен

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Re: Arduino SCADA
« Отговор #46 -: Apr 11, 2011, 14:28 »
Таймер1 -прикачени файлове
-----------------------------
Ардуйно ботлоудер
Ардуйно има ботлоудер, програма, която се стартира при Reset ( драйвера при отварянето на порта  издава сигнал, който се ползва за reset).
За този ботлоудер е характерно, че е специална секция от флаш паметта, bootloader section, от която инструкциите за запис във флаша са валидни. Това е валидно, кокто и цялата боот секкциа, размера и, правата и и т.н.) при специално установяване на така наречените FUSES, фюзове, и лок битове. Те могат да се програмират с програматор, но не и от ботлоудера.
Сорса на ботлоудера обяснява странното поведение, когато ние пращаме нещо, и очакваме отговор.
#define MAX_ERROR_COUNT 5
   for (;;) {
   /* get character from UART */
   ch = getch();
   /* Hello is anyone home ? */
   if(ch=='0') {...   
   else if(ch=='1') {...
   /* AVR ISP/STK500 board commands  DON'T CARE so default nothing_response */
   else if(ch=='@') {
   /* AVR ISP/STK500 board requests */
   else if(ch=='A') {      
   else if(ch=='B') {
   /* Parallel programming stuff  DON'T CARE  */
   else if(ch=='E') {
   /* P: Enter programming mode  */
   /* R: Erase device, don't care as we will erase one page at a time anyway.  */
   else if(ch=='P' || ch=='R') {   
   /* Leave programming mode  */
   else if(ch=='Q') {
   /* Set address, little endian. EEPROM in bytes, FLASH in words  */   
   else if(ch=='U') {
   /* Universal SPI programming command, disabled.  Would be used for fuses and lock bits.  */
   else if(ch=='V') {
   /* Write memory, length is big endian and is in bytes  */
   else if(ch=='d') {
   /* Read memory block mode, length is big endian.  */
   else if(ch=='t') {
   /* Get device signature bytes  */
   else if(ch=='u') {
   /* Read oscillator calibration byte */
   else if(ch=='v') {
#if defined MONITOR
   /* here come the extended monitor commands by Erik Lins */
   /* check for three times exclamation mark pressed */
   else if(ch=='!') {
      ch = getch();
      if(ch=='!') {
      ch = getch();
      if(ch=='!') {
         PGM_P welcome = "";      /* end of monitor */

#endif
   else if (++error_count == MAX_ERROR_COUNT) {
      app_start();
Та ако искаме да се отървем от излишните символи, първо трябва да пратим някакви символи   които да прескочат ботлоудера, после нашата прогграма да си изчисти USART-a и прочие   
На адрес 0х0000 от флаш паметта е записаната от ботлоудера програма, самият ботлоудер е в началото на boot loader flash секция. BOOTRST fuse определя към коя секция сочи вектора reset.
Затова функцията app_start() е преход към приложението
void (*app_start)(void) = 0x0000;
Нашето приложение трябва да инициализира нанаво стека и почти всичко, за да сме сигурни.
Ботлоудер може да е всяка наша програма, компилирана с директивата за линкера  --section-start=.text=0x7800 /ако сме установили 2к бот секция/ това може да се види в
arduino/hardware/arduino/bootloaders/atmega/Makefile
командата за програматора обаче е за друг случай – програмиране от програматор, за запис през ботлоудера ползваме
avrdude  -pm328p -carduino -P/dev/ttyUSB0 -b57600   -Uflash:w:my_prg.hex:a
« Последна редакция: Apr 14, 2011, 20:13 от ivo1204 »
Активен

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Re: Arduino SCADA
« Отговор #47 -: Apr 16, 2011, 22:26 »
Минипроектче, което работи.
В него не се ползва изобщо ардуйно средата и софтуера, а част от подобно на ардуйното функцйите съм пренаписал на Си, така че да са независими и леки.
Инициализация на USART-a,
символите се приемат от хардуерно прекъсване и се слагат в ринг - буфер. Основната програма чете от този буфер независимо.
Идеята е, с #include"serial.h" да се включи всичко нужно за комуникация, без да се товарим с код и ненужни неща, мисля и за другите неща да напиша такива "framework" -ове... 
« Последна редакция: Apr 19, 2011, 13:47 от ivo1204 »
Активен

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Re: Arduino SCADA
« Отговор #48 -: Apr 23, 2011, 13:01 »
-Описание на digitalRead() и защо не трябва да се ползва за production система
-----------------
Версия V 0.2-2 на mini PAFW кода Proview - Arduino Frame Work - прикачена
-----------------
 New - Version -mini PAFW 0.3  Working and test are  Digital Outputs and Analog Inputs
-------------------------------
Версията на мини Proview-Arduino-FrameWork  e вече 0.3 и може да се ползва, а не съм описал как и защо.
Как – с Eclipse инсталирал съм плагините за avr и документация.

http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin
 http://home.gna.org/eclox/

Проекта може да го имортирате  в  Eclipse
File ->Import -> existing Eclipse projects...
Записа в платката пак през Eclipse
AVR - > Upload Project to Target Device
като сме задали на AVRDude ( Project - > Properties ->AVRDude )
avrdude -carduino -P/dev/ttyUSB0 -b57600  ---
baud rate 57600 , програматор arduino, device /dev/ttyUSB0 ...
« Последна редакция: May 01, 2011, 13:43 от ivo1204 »
Активен

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Re: Arduino SCADA
« Отговор #49 -: May 04, 2011, 22:03 »
Версията на мини Proview-Arduino-FrameWork   0.4, тесвал съм изходни и входни  аналогови и изходни цифрови, входните цифрови би трябвало да са ОК. Опростена, насочена за PROVIEW и за добавяне PLC код в Arduino.
« Последна редакция: May 19, 2011, 01:15 от ivo1204 »
Активен

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Re: Arduino SCADA
« Отговор #50 -: May 19, 2011, 01:26 »
добавено - Кода като Ардуно скеч .pde
добавено -  QT проект за тест  и работа с Arduino - Proview

« Последна редакция: Jun 06, 2011, 21:21 от ivo1204 »
Активен

laskov

  • Напреднали
  • *****
  • Публикации: 3166
    • Профил
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

GB_bg

  • Участници
  • ***
  • Публикации: 4
    • Профил
Re: Arduino SCADA
« Отговор #52 -: Oct 23, 2011, 22:48 »
Здравейте ,
Винаги стигам до една и съща грешка и не знам от какво се получава
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
arduino
Настройка на програми
arduinofan 27 9829 Последна публикация Nov 27, 2010, 00:16
от orlin369
Armduino Scada
Предложения за български проект
ivo1204 3 5075 Последна публикация May 14, 2012, 11:26
от ivo1204
Направено с Arduino
Коментар
laskov 1 3166 Последна публикация Jun 03, 2013, 22:35
от remotex
Arduino
Преводи на документация
laskov 7 33871 Последна публикация Feb 12, 2013, 11:56
от laskov
Arduino
Преводи на програми
laskov 2 15263 Последна публикация Mar 06, 2014, 11:31
от laskov