Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumAttenzione la classe non si riferisce all’ultimo numero “122” ma si riferisce alla parte di indirizzo mascherata dalla subnet mask (Vedi Wikipedia). Quindi devi verificare che nelle altre schede non hai classi che si sovrappongono, se non sei sicuro consiglio di provare a disabilitare tutte le altre schede tranne l’RNDIS e provare.
Sergio Bertana
Amministratore del forumIntanto per realizzare quello che chiedi devi conoscere il protocollo necessario all’aggiornamento del firmware sul drive. Ammettendo che sia documentato o che comunque tu conosca le procedure da seguire vediamo come poter procedere.
Visto che ti riferisci come prima possibilità ai terminali operatore, partiamo da questa ipotesi. Lo strumento macro tramite il Free protocol permette di gestire completamente la comunicazione, sia seriale che ethernet. Purtroppo però non ha nessuna istruzione per gestire il file system. Quindi anche se potresti parlare con il drive non saresti in grado da leggere via macro i files trasferiti (Magari in FTP) nel file system del terminale.
Altra possibilità potrebbe essere utilizzare un modulo CPU della famiglia SlimLine, in questo caso lavorando con il linguaggio ST hai la possibilità sia di gestire liberamente le connessioni sia seriali che ethernet, inoltre hai tutte le funzioni per accedere al file system. Quindi potresti in FTP scaricare i file di firmware nel file system del prodotto e poi trasferirli nel tuo drive.
I moduli CPU della famiglia LogicLab hanno un file system proprietario quindi non puoi leggere SDCard scritte da un PC ed il sistema non supporta i PenDrive USB. Mentre il modulo CPU della famiglia CODESYS ha un file system FAT ed è compatibile con il PC oltre a poter gestire anche PenDrive connessi via USB, Topic.
Sergio Bertana
Amministratore del forumQuindi se ho ben capito stai parlando di connessione in RNDIS. Posso immaginare che sia un problema di networking, su porta RNDIS lo SlimLine ha di default l’indirizzo 192.168.1.122, quindi devi impostare il driver RNDIS nella stessa classe di rete 192.168.1.xxx.
Sei sicuro che in quella stessa classe nel PC non hai altre schede di rete, esempio rete ethernet, adattatore WiFi, ecc… perchè in questo caso i pacchetti IP in uscita non sanno che strada scegliere. Se sei in questa situazione devi cambiare la classe di rete di una delle interfacce.
Sergio Bertana
Amministratore del forumSergio Bertana
Amministratore del forumNon sò se può servirti ma ti allego l’FB OnOffRegulation che ho realizzato per gestire la regolazione degli aerotermi in azienda. Il FB gestisce la soglia di temperatura con una banda morta per evitare le pendolazioni sul comando (Stampa, libreria).
In questo topic trovi ulteriori informazioni su un argomento analogo.
Sergio Bertana
Amministratore del forumIl bus di espansione SlimLine non può essere prolungato oltre i 2 metri. Quindi nel tuo caso devi per forza orientarti come hai già fatto notare tu verso una connessione RS485 o CAN.
Il modulo CPU MPS050*020 ha già una porta seriale RS485, quindi la soluzione più immediata è disporre di un altro modulo CPU dello stesso tipo anche sulla parte mobile che fungerà da interfaccia ed alimentatore per gli altri moduli di I/O ad esso connesso.
Abbiamo molte installazioni di questo tipo anche su aree molto vaste (Applicazioni domotiche, supermercati, aree di servizio, ecc.) dove reti in RS485, CAN bus o Ethernet permettono di gestire I/O remoti come fisicamente connessi ad un modulo CPU centrale.
In riferimento alla tua domanda sul modulo PCB126*170 la porta seriale del modulo può essere configurata come porta COMx.x aggiuntiva del modulo CPU (Topic). Anche se il modulo prevede il montaggio di una porta RS485 non abbiamo mai rilasciato questo tipo di connessione.
Febbraio 1, 2016 alle 4:31 pm in risposta a: Chiarimenti sulle nuove funzionalita’ di LogicLab4 #39326Sergio Bertana
Amministratore del forumMa Axel ci ha già pensato… nello screenshot si vede una FB scritta in LD istanziata in due diversi programmi. Quando il debug è attivo, con un doppio click sull’oggetto su cui si desidera attivare il debug forza l’apertura della finestra di richiesta della istanza che si vuole analizzare. Allego il progetto per il test.
Febbraio 1, 2016 alle 1:36 pm in risposta a: Chiarimenti sulle nuove funzionalita’ di LogicLab4 #39322Sergio Bertana
Amministratore del forumCome sempre Axel rapida nel reagire, girato la tua domanda ed ecco la risposta:
LLAB al momento non è dotato della funzionalità di “Refactoring” cui la segnalazione intende. Potrebbe essere un futuro sviluppo, apriamo un ticket di enhanchement. #LL1546:Refactoring tool.
Febbraio 1, 2016 alle 10:34 am in risposta a: Chiarimenti sulle nuove funzionalita’ di LogicLab4 #39321Sergio Bertana
Amministratore del forumLe tue domande sono molto interessanti anche per altri clienti che utilizzano LogicLab per cercare di ottenere il massimo dall’ambiente. Per alcune risposte ho girato la richiesta alla Axel che è lo sviluppatore di LogicLab, anzi consiglio di effettuare direttamente a loro le richieste che riguardano l’ambiente di sviluppo. Ma alcune risposte le posso dare direttamente.
I programmi LD realizzati con il vecchio editor continuano ad utilizzare il vecchio stile, non hanno le nuove funzionalità abilitate.
In LD ogni ramo logico deve avere almeno un coil di terminazione, solitamente definisco una variabile Dummy di tipo BOOL che utilizzo come coil in tutti i rami. Proprio come hai fatto correttamente tu.
Legare lista variabili e diagramma, attualmente è come hai detto tu nella domanda, ho girato la richiesta ad Axel.
Per l’ultima domanda mi sono rifatto a questo vecchio topic, ho ripreso il programma FBArray e ho definito due programmi ladder dove utilizzo lo stesso FB. Quando trascini nella finestra di watch una variabile interna alla FB, LogicLab ti presenta una finestra di richiesta della istanza di cui vuoi vedere il valore (Screenshot). Allego il progetto per il download.
Sergio Bertana
Amministratore del forumNon commetti errori è proprio CODESYS che non permette di avere variabili RETAIN allocate in memoria specifica (Nella famiglia LogicLab esiste l’area da MD100.2048 a MD 100.4095).
Un workaround utilizzato da altri clienti è di copiare da programma l’area ad indirizzamento da terminale su di un’area RETAIN quando vi è una variazione del contenuto (Qualcuno da terminale ha cambiato i dati). Poi alla accensuione del sistema esegui l’operazione inversa.
Riporto il link a questo topic dove si trova un progetto di esempio di utilizzo di un terminale Weintek connesso a SlimLine CODESYS.
Sergio Bertana
Amministratore del forumProbabilmente hai un progetto di vecchio tipo (Estensione prj) (Topic) ed utilizzi una libreria di nuovo tipo (Estensione plclib). Questo lo puoi fare solo forzando la mano, dalla finestra Project library list anzichè selezionare la libreria (LogicLab ti presenta solo quelle con estensione pll) tu definisci manualmente la libreria eLLabUtyLib_C030.plclib.
Consiglio di non includere nel progetto la libreria eLLabUtyLib, perchè contiene oggetti tra di loro eterogenei che si utilizzano importando l’oggetto direttamente nel progetto (Topic).
Febbraio 1, 2016 alle 9:05 am in risposta a: Chiarimenti sulle nuove funzionalita’ di LogicLab4 #39316Sergio Bertana
Amministratore del forumHai individuato perfettamente come fare, i progetti con la vecchia estensione ppjs vanno salvati con la nuova estensione plcprj per poter utilizzare le nuove features.
Quando crei un nuovo progetto solo scegliendo XTarget 12.0 avrai di default il salvataggio del progetto con estensione plcprj, con tutti gli altri targets LogicLab utilizzerà ancora il formato ppjs. Quindi se devi fare un nuovo progetto con un vecchio target devi per forza salvarlo nel vecchio formato e poi per trasformarlo nel nuovo lo devi aprire e salvare con la nuova estensione.
Non vi sono problemi di compatibilità il nuovo formato plcprj è perfettamente compatibile con tutti i targets, LogicLab4 utilizza i files di configurazione delle vecchie versioni di LogicLab per i targets precedenti al XTarget 12, ed ecco perchè di default salva nel formato ppjs.
Sergio Bertana
Amministratore del forumLa porta seriale RS485 opera solo in Half-Duplex su 2 fili, ma da quanto mi dici sembra di capire che il tuo protocollo è comunque un protocollo di questo tipo. Un sistema invia una stringa di 8/12 carattteri e tu devi interpretarla e poi rispondere.
Intanto la porta RS485 pùo operare in diversi modi (Vedi FB SysSerialPort, estratto manuale), per operare con la RS485 devi impostare COM2. Il parametro DTRManagement definisce il modo in cui la porta opera, impostando DTR_AUTO_WO_TIMES, la porta è sempre in ricezione, ed andrà automaticamente in trasmissione quando viene eseguita una scrittura di dati su di essa.
Da programma è possibile acquisire i dati in ricezione con le funzioni Sysfgetc e Sysfread, mentre per trasmettere i dati dovrai usare le funzioni Sysfputc e Sysfwrite. Naturalmente per interpretare la stringa ricevuta dovrai realizzare un piccolo programma che buffera i dati in ricezione, poi li interpreta, ed infine invia la risposta.
Il forum è pieno di esempi di questo genere puoi guardare qui, qui, qui, qui.
Gennaio 29, 2016 alle 4:53 pm in risposta a: Bridge between 2 Modbus RTU devices over ethernet LAN #39314Sergio Bertana
Amministratore del forumThe OSCAT library is a source of informations, often i take a look on it, but I prefer to write the FBs by myself, about the Modbus you can use our FBs (In this topic you can find them).
About the PHPToModbus program (It can be reached here), and about the PHP class it uses the Modbus TCP protocol…
Don’t make confusion between RTU and TCP. The Modbus TCP frame starts with 6 bytes of additional data (Transaction Identifier, Protocol Identifier, Length) and after it’s exactly the same frame that Modbus RTU without the final 2 bytes of CRC (Please refer to this manual).
Gennaio 29, 2016 alle 4:05 pm in risposta a: Acquisizione temperatura e storicizzazione in file di log #39312Sergio Bertana
Amministratore del forumPer acquisire le Pt100 devi giustamente come hai scritto utilizzare il FB SysGetAnInp definendo il modoi di acquisizione coerente con il tuo tipo di sonda, in questo topic trovi altre indicazioni. Nel topic il FB è utilizzato in ladder ma lo puoi utilizzare anche in ST (Vedi in questo topic come fare).
Per salvare i dati su di un file puoi gestire il file con le funzioni classiche Sysfopen, Sysfseek, Sysfwrite, Sysfread, ecc… poi il file scritto sarà accessibile da una connessione FTP Topic.
In alternativa puoi utilizzare il FB StringToLogFile, che esegue tutte queste operazioni in modo autonomo. Nel forum ci sono esempi di utilizzo del file system prova con il cerca, ti rimando a questo topic per un esempio.
In merito al simulatore, sul simulatore si possono testare solo le funzioni di gestione logica, per le analogiche è ritornato un valore numerico che è indipendente dal modo di acquisizione. Non è possibile sul simulatore testare le funzioni di accesso ai files. In questo topic un progetto che permette di testare sul simulatore il FB di gestione PID, credo possa essere un buon punto di partenza.
-
AutorePost