Stefano
Risposte nei forum create
-
AutorePost
-
Gennaio 10, 2023 alle 11:50 pm in risposta a: Lettura variabili ritenitive da Python ritornano valore “0” #69182
Stefano
PartecipanteColpito e affondato!
Avevo fatto un pasticcio con “git” e non mi ero accorto che si erano disallineate le versioni del file plcprj.
E anche leggendo la risposta ho dovuto tornare indietro due volte per vedere che i numeri erano diversi!
Nel mentre ho scoperto che il mio parser necessita di una revisione, spero di farmi vivo a breve con una versione beta per chi la volesse provare!
Gennaio 9, 2023 alle 4:42 pm in risposta a: Lettura variabili ritenitive da Python ritornano valore “0” #69131Stefano
PartecipanteGrazie, appena arrivo ad un punto sensato lo pubblico che magari serve a qualcun’altro;)
Il discorso offset lo avevo considerato e infatti ero arrivato all’indirizzo 41043. La rappresentazione grezza che restituisce Python è un array che stampato diventa: [0, 0, 0, 0] è indicativa e corrisponde a 4 registri settati interamente a zero. Per esempio
%MD100.32 contiene un REAL raggiungibile da Python al registro 40015 [50368, 16796] [0xC4C0, 0x419C] e una volta convertito diventa 19.5960693359375 %MD100.56 contiente un DINT raggiungibile da Python al registro 40027 [918, 0] [0x0396, 0x0000] e una volta convertito diventa 918.
%MD100.2688 contiente un UDINT raggiungibile da Python al registro 41343 [0, 0] e una volta convertito diventa 0: peccato che il vero valore sarebbe 3001 come riesco peraltro a leggere tramite pagina web usando:
<span style=”color: #007200; white-space: pre;”><!–[‘%u’, UDINT, 2288]–>”</span>
Non capisco la domanda relativa a LogicLab: l’interazione è tra il PLC fisico e il codice Python su PC, LogicLab è spento.
Dicembre 5, 2022 alle 2:15 pm in risposta a: Acquisizione Eastron SDM120 con valori sballati nel passaggio a XUnified #68796Stefano
PartecipanteGrazie mille: problema risolto!
Stefano
PartecipanteHo provato ad usare la funzione JSONDecode per decodificare una stringa json che mi ritorna un inverter fronius che riporto qui sotto:
{
“Body” : {
“Data” : {
“Inverters” : {“1” : { “DT” : 81, “E_Day” : 4132, “E_Total” : 5225190, “E_Year” : 77704.703125, “P” : 1303}},
“Site” : {“E_Day” : 4132, “E_Total” : 5225190, “E_Year” : 77704.703125, “Meter_Location” : “unknown”, “Mode” : “produce-only”,”P_Akku” : null,”P_Grid” : null, “P_Load” : null, “P_PV” : 1303, “rel_Autonomy” : null, “rel_SelfConsumption” : null},
“Version” : “11”}
},
“Head” : {
“RequestArguments” : {},
“Status” : {“Code” : 0, “Reason” : “”, “UserMessage” : “”},”Timestamp” : “2019-01-10T11:38:56+01:00”}
}Se non erro purtroppo, in questo caso, la libreria non funziona per due limiti, il primo e’ il newline che c’e’ dopo l’ultima graffa (ho il dubbio sugli altri newline) e il secondo sono le definizioni annidate, in particolare io avrei voluto leggere: “Body.Data.Inverters.1.P” ma non sono riuscito, sbaglio sintassi?
Nel mio caso, volevo solo leggere la potenza prodotta istantanea, ho risolto in modo meno pulito anche se piu’ efficente: con una ricerca di sottostringa (‘”P” :’) e una scanf ho recuperato il valore.
Stefano
PartecipanteGrazie ad entrambi per la risposta, concordo con voi con il consiglio generale di utilizzare sensori già “digitalizzati” come quelli ethernet/RS485 per l’applicazione che ho in mente, però considerato che non sono un installatore professionista e che è per casa mia (dove preferisco l’idea del sensore “stupido”) e soprattutto che tra gli scopi del progetto c’è anche quello di imparare cose (per me) nuove e quindi credo che proverò ad insistere sulla strada delle Pt1000.
Per precisione poi ho verificato e il cavo che avevo segnalato, come ricordavo è effettivamente composto da due coppie, una twistata più sottile e una dritta più grossa, qui la scheda tecnica. Ad ogni modo, come scrivevo, se posso usare dei cavi ethernet CAT5e, è per me credo la soluzione più veloce e pratica e quindi lascio perdere il cavo indicato e faccio almeno un tentativo con l’ethernet !
Stefano
PartecipanteBuongiorno, sto ripassando il linguaggio ladder che non uso da molti anni e sono agli inizi con SlimLIne e LogicLab4. Nel mentre che aspetto il libro della Sandit che tratta i vostri PLC, volevo costruirmi un semplice FB che emuli un relay passo-passo.
Ho preso spunto dal progetto presente su questo topic ma non sono riuscito a farlo funzionare, ne come FB ne come programma semplice. Non riesco a capire cosa mi sfugge, potreste gentilmente dare un occhiata ed indicarmi cosa mi sono perso?
L’unica cosa che ho fatto consciamente di diverso dal Vs progetto di esempio è stato NON usare variabili RETAIN perchè in questo momento non mi interessa la persistenza del sistema ad un blackout e mi va bene che il sistema si resetti con un interruttore.
Volevo postare il programma sul forum ma non ho trovato modo di allegare il file di progetto, quindi l’ho inviato a support. E’ una svista mia o non è possibile?
Giugno 13, 2012 alle 7:59 am in risposta a: Come scrivere il mio primo programma “HelloWorld” #37370Stefano
PartecipanteOk, fino all’HelloWorld mi sembra chiaro… Poi, dove è possibile reperire documentazione/tutorial/manuali specifici relativi alla programmazione in “C” per il modulo ARM9 ? Non mi riferisco tanto alla programmazione in “C” ma alle librerie da utilizzare per operare con ingressi/uscite ?
E’ possibile testare qualcosa con qualche emulatore o devo per forza avere il modulo cpu fisico per fare qualche esperimento ? Lo stavo valutando per un’utilizzo in home-automation (casa mia) e mentre sono abbastanza ferrato su Linux/Reti/… dei PLC ricordo qualcosa di LADDER e basta e quindi ero più propenso verso la soluzione “Open”.
-
AutorePost