Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Poslední návštěva: pon říj 14, 2019 5:38 pm


PLC Tecomat Foxtrot

Arduino, SDS, Raspberry, Linux, vzdálený dohled, automatizace, měření, opensource, closedsource, hotová řešení, DIY, stavebnice, komponenty, software, postupy, návody, schémata, rady, zkušenosti ...
PředchozíDalší

Re: PLC Tecomat Foxtrot

Příspěvekod marsal64 » pát zář 27, 2019 6:26 am

kodl69 píše:Hlavu používat... když je to připojený k výstupu OZ, tak je to výstup.

Jasně :-), já měl na mysli to Vref 2.5 u http://www.ti.com/lit/an/sboa300/sboa300.pdf
Jinak znovu díky moc.
Uživatelský avatar
marsal64
 
Příspěvky: 205
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

Re: PLC Tecomat Foxtrot

Příspěvekod dumi » pát zář 27, 2019 6:48 am

Diky vsem a informace. Budu laborovat.
Dumiho ostruvek: 2kWp, 4,8kWh, 2400W inverter
dumi
 
Příspěvky: 1006
Registrován: stř zář 05, 2018 7:38 pm

PLC Tecomat Foxtrot - struktura programu s více funkcemi

Příspěvekod marsal64 » sob zář 28, 2019 10:11 am

Pokud s Foxtrotem dělam více funkcí (měření teploty a topení, vyčítání z Axperta, posílání mailu), dělá se to v rámci jednoho PROGRAM s tím, že jednotlivé funkční bloky se vykonávají postupně? Potřebuji mít sdílená data.
Uživatelský avatar
marsal64
 
Příspěvky: 205
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

Re: PLC Tecomat Foxtrot

Příspěvekod dumi » sob zář 28, 2019 10:22 am

Muzes mit.programu kolik.chces. ja mam pro samostatne veci samostatne programy. Je to.pak.prehlednejsi.

Data muzes sdilet pres globalni promene.
Dumiho ostruvek: 2kWp, 4,8kWh, 2400W inverter
dumi
 
Příspěvky: 1006
Registrován: stř zář 05, 2018 7:38 pm

Re: PLC Tecomat Foxtrot

Příspěvekod marsal64 » sob zář 28, 2019 10:38 am

Supr!
Tak hned další začátečnický dotaz. Nedaří se mi poslat email :-(.
Mám 1015, nastavení kanálu viz obrázek.
Můžu posílat přes smtp.t-email.cz bez autentifikace, zkouším to takto (akce přes DoMail):
Kód: Vybrat vše

  NsLookUp(getIP := DoMail,
  DnsIP := STRING_TO_IPADR('8.8.8.8'),
  Name := SmtpName,
  IP := SmtpIP);

  Smtp(Send := NsLookUp.Done, Auth := false,
  chanCode := ETH1_UNI2, IPadr := SmtpIP,
  Lines := NumberOfLines, Sender := Sender,
  SendName := SenderName, Rcpt := Recipient,
  Subject := Subject, Attach := Attachement,
  Username := UserName, Password := Password,
  Text := Body[1]);
 


Ale přiznávám, že spíše experimentuji, než bych to více načítal. Tady je poněkud nevýhoda Foxtrotu: pokud dám do Google "send email Arduino", jsem hned doma...
Nemáte oprávnění prohlížet přiložené soubory.
Uživatelský avatar
marsal64
 
Příspěvky: 205
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

Re: PLC Tecomat Foxtrot

Příspěvekod dumi » sob zář 28, 2019 10:42 am

V napovede jsou i funkcni priklady. Jsem jen na mobilu ted. Budu u PC az zitra.
Dumiho ostruvek: 2kWp, 4,8kWh, 2400W inverter
dumi
 
Příspěvky: 1006
Registrován: stř zář 05, 2018 7:38 pm

Re: PLC Tecomat Foxtrot

Příspěvekod marsal64 » sob zář 28, 2019 10:45 am

Díky, dumi. Vzal jsem kostru z manuálu. Když bude nejhůř, pošlu SZ.
Uživatelský avatar
marsal64
 
Příspěvky: 205
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

Re: PLC Tecomat Foxtrot

Příspěvekod marsal64 » sob zář 28, 2019 5:45 pm

Tak jsem mailování s Foxtrotem zprovoznil :-). V nastavení karty musí být v mém případě ETH1_UNI0, v manuálu, ze kterého jsem čerpal, je příklad pro jiný modul než mám já :-/
Více programů funguje skvěle a je to skutečně přehlednější.
Jsem z Foxtrotu nadšen, na řadě je Datalogger a připojování dalších vstupů a výstupů :-).
Uživatelský avatar
marsal64
 
Příspěvky: 205
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

PLC Tecomat Foxtrot - synchronizace více programů?

Příspěvekod marsal64 » pon zář 30, 2019 6:12 am

Datalogger funguje skvěle, možnost si stáhnout CSV přímo přes web Foxtrotu také :-).

Řeším teď synchronizaci více programů, poprosím o naťuknutí, jak na to.

Níže je (zatím triviální) kód, kterým posílám email, když je globální proměnná DoMail nastavena na True. Dotazy:
1. Pouštím to jako FreeWheeling (běh při každém cyklu). Rozumím-li správně, takto napsaný program při každém cyklu udělá přiřazení proměnné Body, pak zjistí, že DoMail nemá hranu a nespustí tedy NsLookup a následně ani Smtp. Zřejmě neefektivní - lze udělat, aby hrana DoMail spustila vykonání programu jako celku?
2. Řekněme, že budu mít dva programy, které budou chtít poslat email pomocí SendMail, tj. nastavit globální proměnnou Headline a pak odstartovat poslání pomocí nastavení DoMail na True. Aby se tyto dva zasílající programy nepomlátili, předpokládám jejich synchronizaci řešit nějakým semaforem. Neexistuje nějaké ale elegantnější řešení synchronizace více programů?

Díky

Kód: Vybrat vše
PROGRAM SendMail

  VAR
     NsLookUp : fbNsLookUpEx;
     Smtp : fbSmtp;
     Sender : STRING := 'foxtrot@zk.cz';
     SenderName : STRING := 'ZK';
     UserName : STRING := '';
     Password : STRING := '';
     Recipient : STRING := 'martin.saly@atlas.cz';
     Subject : STRING := 'ZK status';
     Attachement : STRING;
     NumberOfLines : USINT := 4;
     Body : Array [1..4] of STRING;
  END_VAR

  Body[1] := CONCAT('ZK status report, ', DT_TO_STRINGF(in := GetDateTime(), format := '%TDD.MM.YYYY$A0hh:mm'));
  Body[2] := Headline;
  Body[3] := CONCAT('Teplota prostoru: ',REAL_TO_STRINGF(in := TeplotaProstor_korekce, format := '%5.1f°C'),
          ', teplota topení: ',REAL_TO_STRINGF(in := TeplotaTopeni_korekce, format := '%5.1f°C'));
  IF TeplotaTopeni > 40 THEN
     Body[4] := 'Stav topení dle teploty: ***HŘEJE***';
  ELSE
     Body[4] := 'Stav topení dle teploty: nehřeje';
  END_IF;

  NsLookUp(getIP := DoMail,
  DnsIP := STRING_TO_IPADR('8.8.8.8'),
  Name := SmtpName,
  IP := SmtpIP);

  Smtp(Send := NsLookUp.Done, Auth := false,
  chanCode := ETH1_UNI0, IPadr := SmtpIP,
  Lines := NumberOfLines, Sender := Sender,
  SendName := SenderName, Rcpt := Recipient,
  Subject := Subject, Attach := Attachement,
  Username := UserName, Password := Password,
  Text := Body[1]);
 
  DoMail := false;

END_PROGRAM
Uživatelský avatar
marsal64
 
Příspěvky: 205
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

Re: PLC Tecomat Foxtrot

Příspěvekod dumi » pon zář 30, 2019 6:31 am

V kratkosti:
1] jednickovej foxtrot nejak extra vykonej neni, ale v jednom projektu mam asi 20 programu, program ma reps 450kb a i tak je otocka cyklu 130ms (je tam sposta cyklu), takze to uplne nemusis resit a proste to klidne volej pri kazdym cyklu.
Da se napriklad na zacatek programu dat:

If <Promenta> then
return;
end_if;

tzn kdyz bude promena TRUE program skonci v tom to miste. musis ale pocitat s tim, ze blok pro odesilani vyzaduje pro odeslani vice cyklu a kdyz ho zavolas jen jednou, pravdepodobne to neodesle. Proste musi se volat dokud neni odeslani.
Proto bych to neresil a proste volal porad, o velikost kodu a cas strach nemej, jako zacatecnik si tim akorat pridelas starosti.

Synchronizaci pomoci "semaforu" muzes resit globalni promenou podle potreby.

2] No pokud zatim nevyuzivas dalsi eth UNI kanaly (je jich jen 8) tak tomu druhymu mailserveru dej druhej samostatnej kanal a muzou posilat oba naraz, no problemu. Pouzijes tedy dva bloky pro odesilani.

Pripadne muzes posilat jednim blokem vice mailu postupne, proste si na to vytvorit frontu a kdyz se odesle jeden tak prejit na druhej, ale chce to nad tim premyslet, protoze jak je psano vyse, trva to vice cyklu, takze musis testovat jestli uz se to poslalo a pokud ano tak prejit na dalsi.
Dumiho ostruvek: 2kWp, 4,8kWh, 2400W inverter
dumi
 
Příspěvky: 1006
Registrován: stř zář 05, 2018 7:38 pm

Re: PLC Tecomat Foxtrot

Příspěvekod marsal64 » pon zář 30, 2019 6:49 am

To byla bleskovka... Díky!

musis ale pocitat s tim, ze blok pro odesilani vyzaduje pro odeslani vice cyklu a kdyz ho zavolas jen jednou, pravdepodobne to neodesle


Byl bys prosím ochoten mi ještě potvrdit nebo komentovat, jak tomu orchestrování nyní rozumím:
Pokud můj SendMail zachytí hranu DoMail, spustí NsLookup. NsLookup pak tedy běží jako "proces" asynchronně jakoby mimo cyklus SendMail?? Pak v dalším nebo ještě dalším cyklu SendMail začne čekat na NsLookUp.Done, aby mohl odstartovat Smtp. Pokud se dobře dívám (pokud bych zůstal u jednoho kanálu), synchronizace by šla dělat i pomocí Busy Output proměnné Smtp?
Uživatelský avatar
marsal64
 
Příspěvky: 205
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

Re: PLC Tecomat Foxtrot

Příspěvekod dumi » pon zář 30, 2019 7:08 am

Tak jak to mas v kodu, tak DoMail spusti nslookup. ten normlane resovlne IP (nekolik cyklu PLC), v tuhle chvili SendMail vubec nic nedela. jakmile dojede nslookup, nahodi se sendmail (protoze bude nabezna hrana na NsLookUp.Done).

nic nebezi asynchrone, v PLC bezi naraz vzdy jen jeden kod, vsechno se vykonava postupne. nema to multitasking. i pokud mas vicero progamu se vykonavaj postupne jeden po druhem. Poradiv jakem se vykonaji se da volit, obcas na tom totiz muze zalezet.
Dumiho ostruvek: 2kWp, 4,8kWh, 2400W inverter
dumi
 
Příspěvky: 1006
Registrován: stř zář 05, 2018 7:38 pm

Re: PLC Tecomat Foxtrot

Příspěvekod marsal64 » pon zář 30, 2019 7:28 am

dumi píše: v tuhle chvili SendMail vubec nic nedela

Tak to mi zatim neni jasne, on se v dalsim cyklu nespusti SendMail od zacatku, ale od mista, kde prestal predtim?
Kde se da o tomto neco precist?
Uživatelský avatar
marsal64
 
Příspěvky: 205
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

Re: PLC Tecomat Foxtrot

Příspěvekod dumi » pon zář 30, 2019 7:30 am

Pardon, spletl jsem si sendmail (program) s smtp(funkcni blok).

sendmail si samozrejmnne pri pristim cyklu svuj stav pamatuje.
Dumiho ostruvek: 2kWp, 4,8kWh, 2400W inverter
dumi
 
Příspěvky: 1006
Registrován: stř zář 05, 2018 7:38 pm

Re: PLC Tecomat Foxtrot

Příspěvekod marsal64 » pon zář 30, 2019 8:51 am

Tak ještě znovu poprosím, snad mi to začíná být jasnější:

Každý program musí být udělaný tak, aby se v jednom cyklu vykonal "celý" (tím je míněno třeba v daném případě test na hranu DoMail atp.) a řádně tak či onak ukončil. Pokud bych to tak neudělal a program začal někde "viset" a neukončil se, PLC začne hlásit chybu příliš dlouhého cyklu. Je to tak nebo jinak?
Uživatelský avatar
marsal64
 
Příspěvky: 205
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

Re: PLC Tecomat Foxtrot

Příspěvekod dumi » pon zář 30, 2019 9:34 am

Ano program se musi ukoncit, jinak dojde k prekrocecni doby cyklu. Muzes ho rucne ukoncit predcasne prikazem RETURN;
Dumiho ostruvek: 2kWp, 4,8kWh, 2400W inverter
dumi
 
Příspěvky: 1006
Registrován: stř zář 05, 2018 7:38 pm

Re: PLC Tecomat Foxtrot

Příspěvekod marsal64 » pon zář 30, 2019 10:21 am

Tak na Foxtrot sice nefunguje dobře google, ale dumi nebo FCCx ano :-). Díky, jsem myslím v tomto už v obraze.
Uživatelský avatar
marsal64
 
Příspěvky: 205
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

PLC Tecomat Foxtrot a impulsy?

Příspěvekod marsal64 » úte říj 01, 2019 9:03 am

Nepotřebuji řešení, budu vděčný za naťuknutí co nejefektivnějším směrem, abych nemusel vynalézat kolo.
Chci počítat spotřebu energie ve Foxtrotu pomocí měření periody vstupních pulsů. Na to existuje ve Foxtrotu nějaká možnost přerušení, spuštění programu např. pomocí hrany vstupu? Díky
Uživatelský avatar
marsal64
 
Příspěvky: 205
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

Re: PLC Tecomat Foxtrot

Příspěvekod dumi » úte říj 01, 2019 9:18 am

Ahoj,
ne neni to realtimovej stroj.

v zasade mas dve moznosti.
1] pokud jsou pulzy delsi nez je doba cyklu a zaroven se tedy nestane ze by prsli za jednu otocku dva, muzes normalne snimat vstup, protoze ti program bezi rychleji a tim padem stihne vzorkovat.
2] pulzy jsou kratsi nez je otocka cyklu, ale nemuzou projit dva za jeden cvyklus, tzn rozestup menizi nimi je delsi nez doba cyklu. pak staci u vstupniho modulu (zapnout detekci kratkych pulzu), On totiz PLC nacita vstupy mezi konecm a zacatkem cyklu, pokud by puls prisel v pulce cyklu a zkoncil pred koncem cyklu, PLC si ho nevsimne, To vyresis aktivaci zminene "detekce kratkych pulzu" kdy PLC automaticky pul sna vstupu "protahne" az do konce cyklu a tim padem jej zaregisturje. Funguje to, ale pouze tehdy kdyz pirjde jeden puls, pokud jich prijde vic tak ti to ukaze jeden.
3] pokud jsou pulzy kratsi nez cyklus a zaroven je riziko ze jich prijde vic za jeden cyklus, muzes vstup prepnout do rezimu citace. v cyklu potom uvidis kolik pulzu prislo od posledniho cteni citace a z toho muzes vypocitat co potebujes.

Prdpokladam ze chces snimat pulzu z elektromeru s SO vystupem. V knihovne EnergyLib jsou dva funkcni bloky:

fbElectricityMeterPuls a fbElectricityMeterCounter. jsou to bloky ktere zpracovavaji pulzy z SO vystupu elektromeru, jeden ja pro rezim "detekce kratkych pulzu, takze dlouhle pomale pulzu" a druhy pro rezim citeace (kratke a rychle pulzy). Zadas jim jen konstatnu elektromeru x imp/kWh a on ti spocte zbytek, celkovou energii i aktualni vykon.

Pouzivam ho a funguje celkem spolehlive i pro mensi vykonu. +- ukazuje v mem pripade i spotrebu cca 50W, kdy uz axpert hlasi 0W.

Zde je dulezita jedna vec, konstatnta toho elektromeru. KDyz bude mala treba do 1000Imp/kWh, jakztakz to stiha jeste s tou detekci kratkych pulzu, ale videl sem i elektromer s 10000imp/kWh, tam uz je to jedine na citac. Delaj se i elektromery ktere maji min imp/kWh nebo nastavitelnou. Zalezi estli uz ho mas nebo ne.
Dumiho ostruvek: 2kWp, 4,8kWh, 2400W inverter
dumi
 
Příspěvky: 1006
Registrován: stř zář 05, 2018 7:38 pm

Re: PLC Tecomat Foxtrot

Příspěvekod marsal64 » úte říj 01, 2019 10:44 am

Já se tady naděkuji, ale je za co...
Přesto mi to ale nedá: kdy dává tedy smysl udělat nějaký task jinak než FreeWheeling?
Jde mi samozřejmě o to "Activated by..."
Nemáte oprávnění prohlížet přiložené soubory.
Naposledy upravil marsal64 dne úte říj 01, 2019 10:48 am, celkově upraveno 1
Uživatelský avatar
marsal64
 
Příspěvky: 205
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

PředchozíDalší

Zpět na Automatizace, měření, statistiky

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků

Reputation System ©'