Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Právě je pát zář 21, 2018 2:44 am


Arduino vyčítání hodnot ze STUDERu

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
Další

Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » ned pro 29, 2013 8:27 pm

Ahoj Všichni ostrovníci.
Úvod
V rámci cvičení v programování laboruji s možností vyčítání údajů z jednotlivých zařízení.
Nejdříve jsem pokoušel SDS, tam jsem moc úspěchů neslavil, tak jsem žezlo podal "Prochazkovi85". Tento pán problémy vyřešil, ale našli se nové obtíže, tentokrát s určitým omezením pramenícím ve vlastnostech SDS. Jsou potřeba naprogramovat java scripty v user.html SDS-ka, pro převod mezi údaji ve formátu IEEE754 na float. A to neumím, tak jsem to odložil na dobu po svátcích. Aby mi s tím kamarád pomohl.

Arduino
Tak jsem se vrhnul na arduino. Ze začátku to vypadalo dobře, zařízeni komunikuje. Ale po třech dnech jsem v koncích s nápady.
Vylezou mi tato data do console

AA3650001000E0762A2110BDB00100000CCF2_________//Proud baterie (3005)
AA3650001000E0762A2110C3B00100077438C5F_______//Napeti stridace vstup (3011)
AA3650001000E0762A2110B8B0010060D3413BC7______//Napeti baterie (3000)

(Ty popisky jsem samo zřejmě do kopíroval) :D a vyznačil ty Byte které dále potřebuji.

No a teť ten problém.
Potřebuji vypreparovat jenom Byty, které obsahují data.

IEEE754________HEX/DEC_____IEE754DEC na Float___Float
00_00_00_00___00_00_00_00____00_00_00_00________00.00 A
00_00_77_43___00_00_119_67___67_119_00_00_______247.00 V
00_60_D3_41___00_96_211_65___65_211_96_00_______26.42 V

Převod HEX/DEC zvládám a převod IEE754DEC/Float taky.
Neuměl by prosím někdo pomoct jak dál ?

Tady je můj pokus
Kód: Vybrat vše
/* Program na vyzkouseni cteni udaju ze zarizeni STUDER pres RS 232 */
 
 char inByte;
 int pocet_Byte = 26;
 int pocet_Byte2 = 30;
 int pp = 2;
 byte Ubat;
 int j = 1;
 int del = 300;
 
byte p1[26] = {0xAA,0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x0A,0x00,0x6F,0x71,0x00,0x01,0x01,0x00,0xB8,0x0B,0x00,0x00,0x01,0x00,0xC5,0x90 }; //Napeti baterie (3000)
byte p2[26] = {0xAA,0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x0A,0x00,0x6F,0x71,0x00,0x01,0x01,0x00,0xBD,0x0B,0x00,0x00,0x01,0x00,0xCA,0xAE }; //Proud baterie (3005)
byte p3[26] = {0xAA,0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x0A,0x00,0x6F,0x71,0x00,0x01,0x01,0x00,0xC3,0x0B,0x00,0x00,0x01,0x00,0xD0,0xD2 }; //Napeti stridace vstup (3011)

void setup()
{
Serial.begin(9600);                //nastav komunikacni parametry Serial0
Serial1.begin(38400, SERIAL_8E1) ; //nastav komunikacni parametry Serial1
//UCSR0C = (UCSR0C & ~ _BV (UPM00) | _BV (UPM01));
}

void loop()  {  //odesilani do studer
//      nastaveni odeslani bytu           odeslani bytu      spusteni programu cteni   asi vynulovani UARTU (musi jich tam byt 13)
  for(int i=0;i<(pocet_Byte+1);i++) { Serial1.write(p1[i]); } Cteni(); delay(del); Serial1.write("1234567890123");
  for(int i=0;i<(pocet_Byte+1);i++) { Serial1.write(p2[i]); } Cteni(); delay(del); Serial1.write("***trinact***");
  for(int i=0;i<(pocet_Byte+1);i++) { Serial1.write(p3[i]); } Cteni(); delay(del); Serial1.write("             ");
  } 

void Cteni() {  //cteni ze STUDER
  if (Serial1.available() > 0){   
    for(int i=1;i<(pocet_Byte2+1);i++) {
      inByte = Serial1.read();
      Ubat = (inByte);
      Serial.print(Ubat, HEX);
      }
      Serial.println("");
     }
 }

Tady je převodní program IEE754DEC/Float
Kód: Vybrat vše
void setup() {
  Serial.begin(9600); 
  byte array[4] = {65,211,96,0};
  Serial.print(convert(array));
}

void loop(){}

typedef union {
  byte array[4];
  float value;
} ByteToFloat;

float convert(byte* data) {
  ByteToFloat converter;
  for (byte i = 0; i < 4; i++){
    converter.array[3-i] = data[i]; //or converter.array[i] = data[i]; depending on endianness
  }
  return converter.value;
}


Dík předem za snahu :D
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » pon pro 30, 2013 4:22 pm

Tak co neporadí někdo? :D
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod rob.brno » pon pro 30, 2013 6:36 pm

Vypreparovat byty?
Například podle pozice od začátku řetězce?

Nerozumím kde je problém.
rob.brno
 
Příspěvky: 779
Registrován: sob čer 09, 2012 8:14 am
Reputation: 8

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » pon pro 30, 2013 6:42 pm

Problém je ve mně, protože nevím jak na to. Od rána dělám asi 159-tý pokus a nemám žádný kloudný výsledek.
Prostě mi to nepálí, asi hodně cukroví nebo co.
Prosím nějaký příklad ať se někam pohnu :-)

Dík
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » úte pro 31, 2013 8:17 am

rob.brno píše:Vypreparovat byty?
Například podle pozice od začátku řetězce?

Nerozumím kde je problém.


Tak jsem čekal, že mě pošlete řešení, když je to tak jednoduché, ale jsem se nedočkal. Že by to tak jednoduché nebylo? :D
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » čtv led 02, 2014 4:42 pm

Ahoj všem solárníkům
Tak jsem konečně dohnal svůj pokusný program na vyčítání dat ze STUDERU k nějakému konci.
Našel jsem sice nějaké mouchy, ale to je vždy :lol:
Jako hlavní problém je to, že program zpracovává data přes RS232 a celá smyčka trvá neskutečně dlouho.
Takže když přepínám obrazovky, tak celé přepnutí trvá cca 2-3s což je strašně dlouho. Možná, že by někdo zkušenější mohl program podrobit odbornému zkoumání a toto přepínání vylepšit. Leč do konzole se data sypou bez problémů.

Parametry:
Program odzkoušen na Arduino MEGA
Program používá Serial1 pro komunikaci se zařízením Xcom-232i
Je nutný Shifter RS232 ke konverzi 5V logiky na 3V3 logiku.
Vyčítám všechny dostupné údaje protokolu STUDER dle příručky
Vyzkoušeno na zařízení STUDER XTS 1200-24 + BSP 500.

pár obrázků
Shifter.jpg
převodník
Shifter.jpg (2.61 KiB) Zobrazeno 2168 krát


celkový pohled na arduino s displejem + shifter + kouzelná krabička Xcom-232i od STUDERU.
P1020303.JPG
pohled


pohled na displej
P1020310.JPG
displej


pohled na konzoli
conzole.png
konzole
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod rob.brno » pát led 03, 2014 9:19 am

Frenky píše:Tak jsem čekal, že mě pošlete řešení, když je to tak jednoduché, ale jsem se nedočkal. Že by to tak jednoduché nebylo? :D


To je nedorozumění. Nepsal jsem, že je to jednoduché. Jen jsem nepochopil "zadání" - do některých řešení se člověk musí naplno ponořit a věnovat tomu hodně času.
rob.brno
 
Příspěvky: 779
Registrován: sob čer 09, 2012 8:14 am
Reputation: 8

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » pát led 03, 2014 10:29 am

Já vím, já to dobře vím. Strávil jsem s tímto cvičením cca 3 dni. A přitom to byla taková blbost. Blbě nadefinované pole. :oops:

(Točil jsem se neustále v chybové smyčce a nevěděl jak se z ní dostat) :D

Byl jsem byl v tom okamžiku tak vyčerpaný a zoufalý, že jsem potřeboval nějakou morální podporu. Ale Nový rok byla blbá doba chtít po někom aby mě pomohl, já vím. Ale na druhou stranu mě to těší, že jsem na to přišel sám. Zkušenosti a dovednosti takto nabité se nezapomínají. :D

Mám s tím ještě problém, že při komunikaci arduina přes RS232 nejde prakticky nic dělat, protože komunikace vytíží arduino na maximum. Bylo by asi potřeba nějak vymyslet způsob jak program přibrzdit a umožnit tak upřednostnění vykonání jiného podprogramu. (třeba obsluha displeje, či eth. karty). Myslím, že se to jmenuje externí přerušení. Jenomže příklady vždy pracují nějakým fyzickým pinem arduina (0, 2) (přesně si nepamatuji). A já mám v příkladu klávesnici ovládanou přes AD převodník (AD 0). (LCD keypad shield). No ještě budu muset trochu pošpekulovat jak na to. Kdyby byl nějaký přesnější nápad, tak uvítám.

Další plány: (po vyřešení problému právě popsaného)
1) Prezentace vyčtených údajů na WEB serveru pomocí ETH shieldu.
2) Záznam na SD kartu (logování).
3) Odesílání dat do jiné databáze (mypower).
4) Odesílání dat na web stránku zařízení SDS (user.html)

No a až nebudu mít co na práci, tak se pustím do TRISTARU a udělám s ním to samé :D .

No a ve finále bych chtěl mít obě zaízení (TRISTAR + STUDER) za pomocí 1-ho arduina s vyčtenými údaji na jedné user.html stránce zařízení SDS pěkně pohromadě. :eek2:

Podotýkám, že nejsem programátor, jsem jen kutil domácí.
Aby to bylo k užitku i někomu jinému, tak by to musel někdo znalý předělat. Mě od pradávna zajímala komunikace mezi různými zařízeními a tak se snažím něco se aktivně dozvědět a něco dělat. :D

PS: Vyčítání ze STUDER-u přes RS232 přes arduino mi běží cca 2 dni v kuse a bez závad.
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » pát led 03, 2014 10:41 am

Ještě jsem zapomněl vložit ukázku mé user.html stránky zařízení SDS. Data vyčtená z TRISTAR-u pocházejí nyní z PHP scriptu pana Procházky85. Ke stávajícímu stavu tedy přibude čtvereček s daty STUDER-u. No a proč se tedy snažím s těmi všemi krabičkami, když to vlastně ku ... běží? Protože počítač kde běží php scripty chci vypnout kvůli spotřebě (žere 20w).

No a ještě budu muset popracovat na grafické úpravě a stvořit nějaký obrázek, aby prezentovaná data nebyly jen výčtem dat.

SDS_USER_HTML.png
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod rob.brno » pát led 03, 2014 2:46 pm

Frenky píše:Já vím, já to dobře vím. Strávil jsem s tímto cvičením cca 3 dni. A přitom to byla taková blbost. Blbě nadefinované pole. :oops:
(Točil jsem se neustále v chybové smyčce a nevěděl jak se z ní dostat) :D


Jo, to se pak na kod musí podívat někdo nezaujatý nebo je dobré to na pár dnů odložit :-)

Frenky píše:Mám s tím ještě problém, že při komunikaci arduina přes RS232 nejde prakticky nic dělat, protože komunikace vytíží arduino na maximum. Bylo by asi potřeba nějak vymyslet způsob jak program přibrzdit a umožnit tak upřednostnění vykonání jiného podprogramu. (třeba obsluha displeje, či eth. karty). Myslím, že se to jmenuje externí přerušení. Jenomže příklady vždy pracují nějakým fyzickým pinem arduina (0, 2) (přesně si nepamatuji). A já mám v příkladu klávesnici ovládanou přes AD převodník (AD 0). (LCD keypad shield). No ještě budu muset trochu pošpekulovat jak na to. Kdyby byl nějaký přesnější nápad, tak uvítám.


Já to řeším tak, že si pustím timer, který generuje každou 1milis interrupt. Kde se specifikuje, jak často se budou dělat jednotlivé akce(třeba každých 100ms se sejme stav kb a každých 500ms se zobrazuje, atd.). Krátké akce dělám rovnou v obsluze přerušení, delší v hlavní smyčce podle nahozeného flagu. Podle potřeby se mezi jednotlivými akcemi nechá mcu uspat, aby zbytečně nežral a taky se dá použít watchdog k resetu mcu, kdyby se do určité doby "neohlásil" a někde v programu zatoulal.

void loop()
{
// set_sleep_mode(SLEEP_MODE_IDLE);
// sleep_cpu();
if (merit)
{
merit = 0;
mereni()
}
if (zobrazit)
{
zobrazit = 0;
zobraz();
}
.....
.....
.....
// wdt_reset();
}

ISR(TIMER0_COMPA_vect)
{
cnt1ms++;
if (!(cnt1ms % INTERVAL_MERENI))
merit = 1;
.....
.....

if (temp_on)
analogWrite(TEMP_OUT_PIN,temp);
else
analogWrite(TEMP_OUT_PIN,analogRead(TEMP_IN_PIN));
}
rob.brno
 
Příspěvky: 779
Registrován: sob čer 09, 2012 8:14 am
Reputation: 8

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » pát led 03, 2014 4:29 pm

Hmmmm. Pro mě zatím vyšší dívčí, pokusil jsem se něco napsat, ale nefunguje mi to :oops:

Jdu se pokusit o to externí přerušení.
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » pát led 03, 2014 7:20 pm

Nějak to nefunguje, potřebuji nějaký fungující příklad, v uvedeném příkladu je moc nenznámých se kterými si nevím rady

1) co je cnt1ms (co to je za promennou, mám nadefinovat ?)
2) co je INTERVAL_MERENI (mam to taky nadefinovat? jakou hodnotu? co to je?

Ostatní je jakž tak jasné.

Pokud to všechno nadefinuju ručně

int merit;
int zobrazit;
int cnt1ms;
#define INTERVAL_MERENI = 10;

Tak mi to vyhodí hlášku "expected primary-expression before = token"

Tak nevím co dělám špatně ???
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » pát led 03, 2014 8:09 pm

Tak jsem to vyřešil trochu jinak a to pomoci preruseni na pinu arduina 21 v tabulce je to pin 2.
Zatím pin na nic nevyužívám, když tak si ještě můžu vybrat. :D
Na konci je vidět (neobratné ovládání přerušení).
Tak snad jsem příklad popsal správně :D

Kód: Vybrat vše
digitalWrite(prer, LOW);   //ovladani preruseni
    digitalWrite(prer, HIGH);   //ovladani preruseni



Kód: Vybrat vše
Tabulka pinů, kde je možno nastavit přerušení:
0    1    2    3    4    5     Arduino
2    3    --    --    --    --    UNO
2    3    21    20    19    18   Mega 2560
3    2    0    1    7    --    Leonardo


Více zde: http://arduino8.webnode.cz/news/lekce-2 ... -tlacitka/


Kód: Vybrat vše
int prer = 21; //pin HW preruseni, v tabulce pin2 ( attachInterrupt(2,test, RISING);  )

void setup()
  {
    pinMode(prer, OUTPUT);
    attachInterrupt(2,test, RISING);  //(cislo pinu kde je mozne preruseni,podprogram test,prerus pri nab hrane impulsu)
  }

  void loop()
  {
    RS232();  //podprogram ktery vycita udaje s RS232
  }
 
 void test()  //podprogram pro preruseni
  {
    klavesnice();   //podprogram obsluhy klavesnice
    RefreshLCD(); //podprogram cyklickeho menu displeje
  }

 void RS232()   //priklad podprogramu pro vycitani jedne hodnoty ze studeru
  {
 //Napeti baterie (3000)
    for(int i=0;i<(pB+1);i++) {
      Serial1.write(p2[i]);
    }
    if (Serial1.available() > 0) {
      for(i=1;i<(pB2+1);i++)
        inByte[i] = Serial1.read();
      A = inByte[28];
      B = inByte[27];
      C = inByte[26];
      D = inByte[25];
      for(int k=0;k<1;k++) {
        byte array[4] = { A, B, C, D };
        Serial.print("Napeti baterie                (3000) ");
        Serial.print(convert(array));
        Serial.print(" V ");
        a000 = (convert(array));
      }
      Serial.println("");
    }
    delay(del);
    Serial1.write("***trinact***");
    digitalWrite(prer, LOW);   //ovladani preruseni
    digitalWrite(prer, HIGH);   //ovladani preruseni
  }
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod rob.brno » sob led 04, 2014 9:48 am

Frenky píše:Nějak to nefunguje, potřebuji nějaký fungující příklad, v uvedeném příkladu je moc nenznámých se kterými si nevím rady
Tak nevím co dělám špatně ???


Viz. PM.
rob.brno
 
Příspěvky: 779
Registrován: sob čer 09, 2012 8:14 am
Reputation: 8

Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » ned led 05, 2014 4:08 am

Tak jsem snad u cíle.
Posílám výsledek mého webového snažení. Takže arduino čte údaje ze studeru, zobrazuje výsledky
1) do konzole
2) na displej
3) na WEB rozhraní

Podařilo se mi jěště implementovat
1) NTP (čtu časové značky z NTP serveru)
2) Ovládání 8 relé přes LCD Shield
3) cyklické menu
4) Ovládání 6-ti relé přes WEB (při 8 se to jíž seká, asi se program nevejde do paměti)
5) Regulace podsvětlení displeje pomocí PWM

Tak tady jsou ukázky prezentace dat přes WEB
1) první pokus s klasikou
ardo-studer.png
1 verze


2) druhá verze s šesti relátky
ARDO-STUDER2.png
2-verze s tlačítky
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod luge » ned led 05, 2014 7:20 am

Dobrá práca Frenky :yes:
je možné vyriešiť nejak podobne victrona?
luge
 
Příspěvky: 523
Registrován: ned lis 13, 2011 5:52 pm
Bydliště: SK
Reputation: 1

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » ned led 05, 2014 9:58 am

Určitě by to nějak šlo, ale má to spoustu úskalí.

1) Nejsem programátor, takže všechno co udělám je metodou pokus x omyl a tak pokračuji dopředu. Někdy to je tak že i 10 kroků zpátky a pak teprve zase do předu.

2) Ten můj program je velmi nedokonalý a je v něm určitě značně chyb.

3) Neznám protokol VICTRUN-a a nevím, zda bych ho dokázal rozlousknout. Do problému s vyčítáním STUDER-a a TRISTAR-u mě uvedl "Procházka85", ten má lví podíl na tom, že jsem to vůbec dokázal.

4) Nevím jaké fyzické komunikační možnosti mí VICTRON. (Ethernet, sériový port, RS 485).

5) Nemám fyzický přístup k VICTRONOV-i, ten je nezbytný pro ověření kódu.

6) Myslím si, že VICTRON má poměrně slušně zpracován vlastní programové vybavení. (koketoval jsem s nákupem, nakonec to vyhrál STUDER).

7) Nerad bych bral potencionální práci pro „admina“, myslím si, že by to mohl být potencionální úkol pro něj. Já mám práce více nežli je zdrávo a možnost jak si vydělat penízky také. S adminem je to horší, proto bych raději nechal tento úkol pro něho.
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » ned led 05, 2014 5:29 pm

Tak jak si hraju s tím WEB serverem na arduinu, tak jsem zjistil, že je to pěkný žrout paměti arduina. Nainstaloval jsem si knihovnu #include <MemoryFree.h>, ktera vraci na promennou client.print(freeMemory()); hodnotu volne pameti v arduinu. Takze pulku pameti arduina (presne 4 140 byte) sezere par radku na webovem serveru arduina. Takze pozor pri programovani hratek s arduinem na web clienta!
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod mypower.cz » ned led 05, 2014 5:33 pm

A ted si zkus jeste volani freeMemory dat na ruzna mista v kodu a uvidis co presne tolik pameti alokuje a taky prijdes na ruzna jina zajimava prekvapeni, treba ze mimo smycku webserveru je pamet relativne volna pro uplne jine ucely :)
Podpořte MyPower.CZ | 2.24kWp FVE | MyPower MicroLog2
BTC support 37uvSpUKTCmcJZD9bs8ZWhdrubxBxRZSuT | LTC support LPYitoWPn3k5PqWBWmuzbcwj344THtZ7q2
Uživatelský avatar
mypower.cz
Site Admin
 
Příspěvky: 3286
Registrován: pát bře 04, 2011 11:36 am
Reputation: 167

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvekod Frenky » ned led 05, 2014 5:48 pm

Na to jsem taky přišel. Pokud freeMemory zjistuji v sekce ovladani displeje tak tam mam jina cisla nezli primo ve WEB clientovy. To jsou veci, to jsou veci. :-)
2x Solární panel IBC Polysol 230 DS Pmpp=230W, Regulátor STUDER VT-80, Střídač Studer XTS 1200-24, BSP, RCC, AKU 24V LFP100AH – WB-LYP100AHA. 2x Aktivní balancer ON4-UTP 4x7A, Řizení a dohled microlog, SDS, vlastní vyčítání arduinem do RPi s databází a html stránkou. Dříve SIEMENS S7-1200 s PC na WINDOWS ala Netko.
http://frenky.dreamsys.cz/index.html
Uživatelský avatar
Frenky
 
Příspěvky: 631
Registrován: pon led 21, 2013 6:36 pm
Bydliště: Mladá Boleslav
Reputation: 46

Další

Zpět na Arduino

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník

cron
Reputation System ©'