Acasă > forum > controlerele SlimLine e Netsyst (LogicLab) > Cum se utilizează SDCard pentru salvarea fișierelor de jurnal
- Acest subiect are 19 răspunsuri, 10 participanți și a fost actualizat ultima dată 4 ani, acum 11 luni da Sergio Bertana.
-
AutorPost
-
August 4, 2011 la 8: 44 am #35074AnonimOaspete
Tocmai am actualizat firmware-ul de pe modulul CPU SlimLine cu noua versiune care acceptă sistemul de fișiere. Încerc să creez un program simplu care să salveze date într-un fișier jurnal SDCard, dar nu reușesc să funcționeze. Poți să-mi dai niște informații?
August 4, 2011 la 8: 46 am #36879Sergio BertanaAdministrator al forumuluiSistemul de operare al SlimLine din versiunea SFW167C100 (Pentru actualizare vezi FAQ), acceptă sistemul de fișiere. Două directoare sunt gestionate Depozitare (De la 100 Kb) aflat pe memoria EEPROM prezentă pe modulul CPU, SDCard (Max 512 Mb) prezent pe cardul SD care trebuie introdus în modulul CPU. Pentru a accesa directoarele, trebuie efectuat formatul, comanda Format de Telnet. Pentru lista completă a comenzilor Telnet, consultați manual de referință, acreditările implicite de conectare atât pentru Telnet, cât și pentru Ftp pentru administrator sunt Nume utilizator: admin, Parola adminÎn conformitate cu comanda Format, este necesar să se definească numărul de fișiere acceptate pentru fiecare director, până la maximum 12 fișiere în total. Primul parametru se referă la fișierele din stocare, al doilea la fișierele din cardul SDC (Dacă nu este prezent, introduceți 0). De exemplu, pentru a avea 2 fișiere pe stocare și 4 pe SDCard vom da comanda Formată 2, 4, dacă comanda este executată corect, va returna mesajul Format Ok, stocare: fișiere 2, SDCard: fișiere 4Prin conectarea la SlimLine cu un client FTP (Exemplu FileZilla), va fi posibil să vizualizați arborele directoarelor și să accesați în citire și scriere, crearea, ștergerea, editarea fișierelor din interiorul acestora screenshot).
August 4, 2011 la 10: 16 am #36880Sergio BertanaAdministrator al forumuluiÎn ceea ce privește nevoia dvs. de a scrie un fișier de jurnal la SDCard, am creat un program simplu LogicLab (Descarcă) care salvează un fișier numit CLog.txt, cu în interior 50 de înregistrări jurnal ale valorii tensiunii dobândite de la o intrare analogică.
Fișierul conține înregistrări salvate în format CSV pentru a putea fi importate cu ușurință în Excel, fiecare înregistrare conține 5 câmpuri separate prin „;"(Exemplu: 01;12;12;03;01.8;). Primul câmp este o înregistrare progresivă de la 1 la 0. Al doilea, al treilea, al patrulea câmp arată ora, minutele, secundele înregistrării. Al cincilea câmp arată valoarea tensiunii dobândite în volți.
Scrierea înregistrării jurnalului se face prin acest program în ST (listarea), care „umple” matricea LogRecord cu șir de ascii jurnal (5 câmpuri separate prin ";"). Functia SysVarsnprintf scrie valoarea urmată de codul terminatorului "0", apoi este necesar să începeți să scrieți următoarea valoare în poziția matricei în care scrierea anterioară a plasat codul terminatorului.
După terminarea înregistrării jurnalului, cu funcția Sysfseek, poziționarea se face pe fișier în poziția de scriere și cu funcția Sysfwrite scrierea este efectuată.
Iunie 25, 2012 la 10: 32 am #37297MicheleparticipantUo unu SlimLine și aș dori să folosesc SDCARD-ul ca jurnal de date, am văzut pe acest subiect că vorbim despre cardul SD maxim 512MB. Această limită se datorează utilizării cardului SD ca SPI Flash sau pot folosi și un card SD cu o dimensiune mai mare de 512?
Mulțumim ca întotdeauna pentru sprijinul neprețuit al acestui forum și felicitări pentru gestionarea eficientă a acestuia.
Iunie 25, 2012 la 11: 58 am #37298Sergio BertanaAdministrator al forumuluiGestionarea sistemului de fișiere în modulul CPU SlimLine ARM7 este limitat, deci a fost impusă o limită pentru dimensiunea maximă a cardului SD care poate fi gestionată. Se pot utiliza carduri SD cu o dimensiune maximă de 2 GB, dar dimensiunea maximă a zonei de memorie administrată de sistemul de fișiere este de 512 MB.
Septembrie 9, 2014 la 2: 02 pm #38407OscarparticipantMulțumesc pentru sugestie, am încercat să urmez acești pași, dar am găsit următoarele probleme. Am pornit comanda Formată 4, 0 așa cum sa raportat în această postare, dar am primit un mesaj de eroare, apoi am executat comanda Format Storage, 4 ca de la Manual de comandă Telnet prin Toolly. Am citit comanda Depozitare Dir:
Directorul „Depozitare”
Spațiu pentru fișierele 4 din fiecare octet 67254Am încercat apoi să mă conectez cu FileZilla, configurat în funcție de parametrii pe care îi sugerați, conexiunea este stabilită corect cu serverul, dar ca răspuns primesc mesajul că PLC nu are foldere pe care să le pună la dispoziție. Cu Explorer, ftp rămâne „agățat” fără răspunsuri. Am trimis programul propus, modificând
DACĂ (SysClock1000 = Pulse) RETEȚI; end_if;
Puls: = SysClock1000; (* Puls de bază *)
Fp: = Sysfopen ('Storage / CLog.txt', 'a'); (* Deschideți fișierul în modul „adăugați”. *)In
Timp: = SysTime;
WHILE SysTime - Time <60000 DO END_WHILE; (* pentru a scrie o linie în jurnal în fiecare minut *)
Fp: = Sysfopen ('Storage / CLog.txt', 'a'); (* Pointer fișier *)Restul rămâne neschimbat. Scrierea „Storage / CLog.txt”, „a” apare în roșu în editorul ST. Rulez programul în sarcina Înapoi, în Slow Task am alte programe care funcționează corect.
În acest moment PLC-ul îngheață, starea merge să NU FUNCȚIONEAZĂ, am încercat să trimit un program de lucru anterior, dar conexiunea USB a fost pierdută. Am oprit și pornit PLC-ul, LED-ul RUN începe să clipească cu o secvență fixă. După o serie de încercări de a reporni și a trimite programe, am putut reporni-l cu un program vechi. M-am oprit aici.
S-ar putea ca spațiul în care să depozitați fișierul să nu fie disponibil corect? Poți să-mi spui ce am greșit?
Septembrie 9, 2014 la 2: 45 pm #38408Sergio BertanaAdministrator al forumuluiSă încercăm să vă răspundem la probleme în ordine. Comanda Format dintr-o anumită versiune a sistemului de operare a fost modificată, acum trebuie să indicați ce director doriți să formatați și câte fișiere doriți să lăsați spațiul. Deci porunca ta Format Storage, 4 formatează directorul de stocare pentru a conține fișiere 4 care vor împărți spațiul disponibil (așa cum raportează comanda dirNu înțeleg de ce clientul FTP nu se conectează, nu-mi spuneți ce sistem de operare utilizați, cu Total Commander și cu Windows 7 Explorer pe care îl folosesc de obicei nu am avut niciodată probleme (Subiect) eventual verificați dacă aveți cea mai recentă versiune a sistemului de operare. Greșeala pe care ați făcut-o este foarte gravă ... nu puteți opri niciodată un program PLC într-o buclă închisă. CÂND (SysTime-Time) <60000 FĂCĂ END_WHILE; Acest lucru determină câinele de pază al sistemului să intervină și să reinițializeze execuția care se închide din nou în bucla infinită și este reinitializată din nou. Aceasta blochează toate resursele sistemului, inclusiv comunicațiile (Subiect). Cum ieșiți din ea ... după un anumit număr de reporniri, sistemul se oprește în repaus și astfel este din nou posibil să reluați conexiunea și să încărcați un nou program.
Septembrie 9, 2014 la 4: 30 pm #38409Sergio BertanaAdministrator al forumuluiCum să rezolvați corect sincronizarea, pe forum veți găsi exemple nesfârșite de utilizare a timpului de sistem, iată cum puteți face acest lucru.
IF ((SysGetSysTime (TRUE) -Time)> 60000000) ATUNCI
Timp: = SysGetSysTime (TRUE); (* Tampon de timp (uS) *)
Fp: = Sysfopen ('Storage / CLog.txt', 'a'); (* Deschideți fișierul în modul „adăugați”. *)… Alte declarații ale programului
end_if;Notă: variabila Timp trebuie să fie de tip UDINT.
Octombrie 7, 2014 la 9: 03 pm #38452LuisparticipantBună dimineața, am vrut să fac un datalogger cu un automate SlimLine pentru a înregistra valorile a 4 intrări analogice la fiecare 10 secunde în format CSV cu data (an, lună, zi, oră, minut, secundă) și a face un fișier pentru fiecare zi. Am nevoie de puțin ajutor.
Octombrie 8, 2014 la 8: 24 am #38453Sergio BertanaAdministrator al forumuluiDacă descărcați programul pe care îl găsiți într-una din postările acestui subiect, aveți deja un bun punct de plecare. Cu toate acestea, pornind de la programul postării anterioare, am pregătit un program care să realizeze ceea ce aveți nevoie, aici este printul din programul WriteLog.
După cum puteți vedea, am definit o serie de șiruri pentru definirea zilelor săptămânale, deci este posibil să scrieți un fișier CSV pentru fiecare zi (fișierul va avea numele zilei). Când ziua este schimbată, fișierul din aceeași zi este șters (acesta este fișierul săptămânii anterioare) și se creează un nou fișier al zilei cu noile date. Aceasta vă oferă o săptămână pentru a descărca fișierele jurnal stocate pe FTP.
Am creat înregistrarea jurnalului în format 2014-10-08 09:25:58;02.8;02.8;02.8;02.8, după cum puteți vedea, câmpul dată / oră este urmat de cele 4 valori analogice. În exemplul meu, efectuez o singură achiziție analogică pentru toate cele 4 canale, dar vă las să vă ocupați de cele 4 achiziții și să le readuceți în evidență.
Cred că cu acest exemplu din exemplul anterior aveți toate informațiile pentru a vă construi DataLogger. aici este sursă.
Octombrie 25, 2014 la 6: 34 am #38476AnonimInactivExemplul prezentat în postarea precedentă se potrivește foarte bine cu problema cu care trebuie să mă confrunt, singura obiecție este că aș dori să stochez date pentru o perioadă mai mare de o săptămână. Într-una din postările anterioare am citit asta SlimLine poate gestiona până la 512 MB de memorie pe cardul SDCard cu până la 64 de fișiere.
Trebuie să stocați un fișier jurnal compus din 7 valori REAL (5 semnale 4-20mA și 2 valori citite prin protocolul Modbus) plus câmpul de date în format CSV, cât spațiu din punct de vedere al memoriei ocupă fiecare înregistrare care trebuie istoricizată?
Presupunând că stocați o înregistrare la fiecare 10 secunde, ar fi posibil să creați fișiere cu valorile unei săptămâni întregi (sau chiar a unei luni) și nu doar pentru o singură zi ca în exemplu?
O altă posibilitate văzând asta SlimLine este accesibil prin intermediul clientului FTP, ar fi posibil să programați un program pe un computer care citește automat fișierele jurnal de pe SlimLine și faceți o copie de rezervă pe un server, crescând astfel dramatic posibilitatea de înregistrare?
Octombrie 25, 2014 la 7: 23 am #38477Sergio BertanaAdministrator al forumuluiAm presupus o înregistrare jurnal cu datele de care aveți nevoie (Data / ora; 7 valori REAL), înregistrarea este de tipul:
25/10/2014 00:00:00;120.5;75.8;1200.0;145.76;1560.6;456.8;985.75
După cum puteți vedea, există 64 de octeți pe care îi rotunjim la 70. Având în vedere un jurnal la fiecare 10 secunde, vom avea 360 de înregistrări / oră (egal cu 25Kb oră). Chiar și presupunând un jurnal continuu 24 de ore pe zi și 24 de zile pe lună, vom avea 31 înregistrări în fiecare lună cu o cantitate de date egală cu 267840Mb. Formatând cardul SDCard pentru a conține cele 18 luni, vom avea 12Mb de date disponibile pentru fiecare fișier, după cum se arată în comandă:
Formatează SDCard 12
Ești sigur? (Y, n)
Format OK, Fișiere: 12, FSize: 44738688, Timp: 54.290 (mS)În ceea ce privește soluția pe care vă propuneți să o citiți de pe un computer printr-o conexiune FTP de la fișierele SlimLine, Aș spune că este o soluție excelentă pentru a asigura o copie de siguranță eficientă a datelor în stocarea corporativă. Dacă optați pentru această soluție, aș păstra fișierele pornite SlimLine mai mic (Deci aș face o stocare zilnică) și serverul central poate descărca în fiecare zi fișierul din ziua precedentă având în SlimLine un plămân de 7 zile.
Martie 22, 2016 la 4: 17 pm #39475AlbertoparticipantDupă introducerea cardului SDCard în PLC, l-am formatat direct pe PLC cu procedurile ilustrate și l-am folosit pentru a scrie fișiere de date, totul ok.
Dar acum aș dori să copiez fișierele pe un PC, dar introdus în cititor este gol, în practică PC-ul nu vede fișierele stocate. Ce am lăsat deoparte? Fișierele sunt cu siguranță prezente pe cardul SDCard.
Martie 23, 2016 la 8: 24 am #39476Sergio BertanaAdministrator al forumuluiAi făcut totul corect SlimLine pentru a asigura necoruptibilitatea datelor atunci când sistemul este oprit brusc, acesta folosește un sistem de fișiere proprietar care nu este recunoscut de PC.
Deci, pentru a transfera date din SDCard pe PC și / sau invers, trebuie să utilizați un client FTP (Subiect) puteți utiliza, de asemenea, Windows Explorer (screenshot).
Iunie 17, 2016 la 8: 05 pm #39633AntonioparticipantDupă actualizarea unui procesor vechi slimline modelul A până la cea mai recentă versiune de firmware (167) disponibilă Am pierdut complet folderul de sistem pe care nu îl pot adăuga în niciun fel (în FTP cu filezilla cu gestionarea resurselor etc.) îmi oferă întotdeauna accesul refuzat sau operațiunea nu este permisă.
De asemenea, conectarea cu Toolly și încercarea de formatare (chiar și singurele două foldere prezente Stocare și SDCard) îmi oferă parametri greși (clar comanda nu este greșită).
Există o modalitate de a restabili întregul sistem de fișiere?
-
AutorPost
- Trebuie să fiți autentificat pentru a răspunde la acest subiect.