Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumHo girato la domanda direttamente al costruttore che mi informa che proprio per lo specifico settore del sollevamento hanno realizzato la versione -19 che è un aggiornamento firmware del GD350 base con funzioni specifiche per il sollevamento.
Il GD350 si configura come equivalente dello Schneider ATV930, che è una macchina molto più sofisticata dei modelli richiesti ma visto l’impiego per il settore specifico del sollevamento per sostituire il modello ATV340 occorre utilizzare il modello GD350-19.
Per tutti gli altri impieghi dove viene utilizzato lo Schneider ATV320 il fornitore mi conferma che è sostituibile con il modello GD20-EU.
Dicembre 9, 2021 alle 8:37 am in risposta a: Backup (Scaricamento) programma pannello serie IE #62600Sergio Bertana
Amministratore del forumLa risposta stà già nella domanda…
Avendo flaggato “impedisci decompilazione” il progetto non si può decompilare.
Sergio Bertana
Amministratore del forumSe abiliti la gestione dei codici di errore estesi con il comando
chat -t 3 -e '' 'AT+CMEE=2' OK >> /dev/ttyUSB2 < /dev/ttyUSB2
Avresti avuto come risposta un testo descrittivo dell’errore e non solo un codice, ma il messaggio sarebbe comunque stato +CME ERROR: SIM not inserted. Vediamo alcuni suggerimenti.
- La SIM inserita in un telefono funziona correttamente?
- Hai tolto il PIN, non è indispensabile ma per partire lo consiglio.
- Il router ha 2 slot SIM, la SIM và inserita nello slot inferiore SIM1 quello piu vicino al circuito stampato.
- Alcune SIM sono estremamente sottili, se vedi che inserendola nello slot non è ben ferma puoi attaccare del nastro adesivo per inspessirla.
Spero che questi suggerimenti ti aiutino a superare il problema. In ogni caso se il router lo hai acquistato da noi puoi aprire un RMA per riparazione.
Dicembre 7, 2021 alle 6:17 pm in risposta a: Indicazioni su errore comando Syslog e file di Log #62486Sergio Bertana
Amministratore del forumL’elenco errori lo stiamo piano piano compilando, prima gli errori erano riportati nelle varie pagine del manuale. Come spirgato nella tabella degli errori, il codice di errore è composto come segue:
Ultime 3 cifre: numero di errore
Rimanenti cifre: ObjectIDIn questo modo con un codice di errore sapremo esattamente da quale oggetto è stato generato ad esempio:
10050302 = 10050 (ObjectID) 302 (Numero errore). L’elenco completo degli oggetti è disponibile QUI. Come vedi l’errore 9905xxx si riferisce alla funzione SysVsnprintf. e nella sua pagina di manuale c’è l’elenco degli errori. O meglio c’era perchè ora ho inserito gli errori nella tabella e li ho rimossi dalla pagina.
Comunque come vedi dalla tabella errori la dimensione della stringa risultato definita in Size non è abbastanza grande per contenere il risultato della fuznzione.
Sergio Bertana
Amministratore del forumPer gestire variabili BOOL con protocollo Modbus si utilizza il comando 0x, con il protocollo ELSIST utilizzi comando %MX. Per accedere ad una variabile allocata nella DB100.16, andrà definito indirizzo 40016.
Per tutti gli altri tipi di variabili con protocollo Modbus si utilizza il comando 3x, con il protocollo ELSIST utilizzi comando %MW. Per accedere ad una variabile allocata nella DB100.16, andrà definito indirizzo 40008 gli indirizzi di allocazione delle variabili WORD devono essere divisi per 2 e poi sommati a 40000.
Quindi credo sia questo il tuo problema, quando mi dici che vuoi indirizzare la variabile allocata a DB100.2048 devi usare l’indirizzo 41024. Ti consiglio la lettura di questo topic che ha anche dei programmi di esempio.
Sergio Bertana
Amministratore del forumPrima di eseguire il download del progetto rimuovi la spunta in Parametri di sistema->Sicurezza in modo da scaricare utenti e password di progetto (Vedi screenshot).
Sergio Bertana
Amministratore del forumBasta scaricare il programma MultipleSMS_v1 che trovi un paio di post prima di questo…
Dicembre 4, 2021 alle 9:11 pm in risposta a: Connessione di 2 pannelli in MPI con PLC Siemens #62465Sergio Bertana
Amministratore del forumIl modello cMT2008X non supporta il protocollo MPI, mentre è supportato dalle serie iE. Puoi verificare tu stesso le varie funzionalità delle diverse serie di pannelli consultando l’appendice A.
Puoi collegare i 2 pannelli Weintek al plc S7 300 in MPI, la porta MPI è una RS485 quindi puoi parallelare i pin.
PLC HMI1 HMI2 3 -------- 2 -------- 2 8 -------- 1 -------- 1 5 -------- 5 -------- 5
Nella guida connessione PLC troverai tutte le informazioni.
Aggiungo che purtroppo a differenza di altri protocolli la simulazione OnLine non funziona con il protocollo Siemens MPI neanche utilizzando l’adattore (Vedi topic), quindi il progetto và testato direttamente sul pannello operatore.
Dicembre 2, 2021 alle 6:03 pm in risposta a: Rete di PLC distribuita con connessione Internet #62458Sergio Bertana
Amministratore del forumL’acquisizione degli ingressi è corretta, ma veniamo al succo… il PLC2 che è server nel tuo caso deve accettare la comunicazione solo dal PLC1 (Client) quindi modifica il programma nel modo.
VAR C1RxBuffer : ARRAY[0..7] OF UINT; (* Rx buffer (Client 1) *) C1TxBuffer : ARRAY[0..7] OF UINT; (* Tx buffer (Client 1) *) TCPServer : TCPDataExchServer; (* TCP data exchange server *) DEDefs : TCPDEXCHNODEDEFS; (* Data exchange node definitions *) DiAcq : SysGetPhrDI; (* Digital input acquisition *) END_VAR // ***************************************************************************** // PROGRAM "ST_TCPDataExchServer" // ***************************************************************************** // The program instantiates a "TCPDataExchServer" FB. Up to 2 connections are // accepted. // ----------------------------------------------------------------------------- // ------------------------------------------------------------------------- // INITIALIZATION // ------------------------------------------------------------------------- // Program initializations. IF (SysFirstLoop) THEN // Set the client definitions. DEDefs.NodeID:=1; //Node ID DEDefs.AutoTxD:=TRUE; //Automatic Tx data send DEDefs.RxBuffer:=ADR(C1RxBuffer); //Rx buffer address DEDefs.RxLength:=SIZEOF(C1RxBuffer); //Rx buffer length DEDefs.TxBuffer:=ADR(C1TxBuffer); //Tx buffer address DEDefs.TxLength:=SIZEOF(C1TxBuffer); //Tx buffer length DEDefs.TxHeartbeat:=10; //Tx heartbeat time (S) // Server configuration. TCPServer.SpyOn:=TRUE; //Spy command TCPServer.Port:=10000; //Peer port TCPServer.Connections:=1; //Accepted connections TCPServer.DEDefs:=ADR(DEDefs); //Data exchange definitions END_IF; // ------------------------------------------------------------------------- // DATA EXCHANGE SERVER // ------------------------------------------------------------------------- // Manage data exchange server. TCPServer(Enable:=TRUE); //Manage the server // Eseguo lettura ingressi logici. DiAcq.Address:=255; //Module address DiAcq.Mode:=DI_8_LL; //Acquisition mode DiAcq(); //Digital input acquisition C1TxBuffer[0]:=TO_UINT(DiAcq.Value); //Digital input value // [End of file]
In live debug dovresti vedere che C1TxBuffer[0] cambia valore al variare dello stato degli ingressi. E se vai a vedere in live debug sul PLC1 la variabile RxBuffer vedrai che avrà lo stesso valore.
Per usare le variabile che indicano lo stato di comunicazione basta rifersi a loro nel programma, esempio:
Do00:=DEDefs.RxOk IF (DEDefs.CErrors > 100) THEN Do00:=TRUE; END_IF;
Ma attenzione DEDefs.RxOk si attiva un solo loop di programma quando ricevo i dati, lo stato di comunicazione attiva è segnalato dalla DEDefs.Active che sara settata solo se i due PLC stanno comunicando.
Aggiungo una nota, visto che il programma che devi realizzare è abbastanza complesso considera l’acquisto di qualche ora di supporto on-line (Vedi sito) così possiamo vederlo insieme con TeamViewer.
Novembre 29, 2021 alle 8:05 am in risposta a: Utilizzare FB HttpClient per connessione in HTTPS #62372Sergio Bertana
Amministratore del forumNo, ci siamo dimenticati di aggiornare la versione pubblicata, ho provveduto a farlo adesso troverai la nuova versione Libreria HTTP eLLabHTTPLib v3.6.10.
Novembre 26, 2021 alle 4:43 pm in risposta a: Conversione da DWORD a REAL con lo standard IEEE-754 #62367Sergio Bertana
Amministratore del forumSi è corretto ecco un semplice esempio in LogicLab che ti illustra il problema.
VAR i : UDINT; (* Auxiliary variable *) DArray : ARRAY[0..1] OF WORD; RVar : REAL; (* REAL variable *) END_VAR // Esempio in little endian. DArray[0]:=16#51EB; DArray[1]:=16#417C; i:=Sysmemmove(ADR(RVar), ADR(DArray[0]), 4); // Esempio in big endian. DArray[0]:=16#417C; DArray[1]:=16#51EB; i:=VarSwap(WORD_TYPE, ADR(DArray[0]), ADR(RVar));
Come vedi nel caso di little endian ho solo copiato il valore ma potevo anche farlo scrivere direttemente da Modbus nella variabili RVar. Mentre nel caso del big endian ho dovuto utilizzare la funzione VarSwap.
Novembre 26, 2021 alle 7:56 am in risposta a: Rete di PLC distribuita con connessione Internet #62361Sergio Bertana
Amministratore del forumVediamo prima il problema degli IP, mi dici che il PLC master non ha la possibilità di essere esposto su internet, quindi l’unica soluzione è di usarlo come client quindi senza dover fare nessuna operazione sulle reti questo PLC può connettersi agli altri.
In questo PLC dovrai istanziare tante istanze del FB TCPDataExchClient tanti quanti sono i PLC sul campo a cui dovrai connetterti. Per ogni istanza dovrai definire IP o URL del PLC server a cui ti connetterai.
I vari PLC sul campo saranno tutti esposti su Internet e quindi raggiungibili, su ognuno di essi istanzierai il FB TCPDataExchServer, con la possibilità di accettare un’unica connessione.
Ora il PLC client dell’ufficio del sindaco scambierà dati con i vari PLC server distribuiti sull’impianto e nel suo programma potrai eseguire scambio dati tra i vari PLC e fornire i dati al pannello HMI a lui connesso.
In merito alle pagine HTM lascerei al momento perdere la questione, il programma SWM757 è un programma di esempio ed ha pagine web di configurazione per poterlo usare stand alone. Ma nel tuo progetto non ti serve configurare i FB di scambio dati da pagina web. Tu dovrai semplicemente utilizzare gli esempi TCPDataExchServer e TCPDataExchClient che trovi nel manuale on-line.
Il comando SpyOn che trovi nelle varie FB ti permette di verificare il funzionamento delle FB tramite la console di spionaggio.
Sergio Bertana
Amministratore del forumNel forum ci sono sicuramente moltissimi esempi di scambio dati tra due o più sistemi SlimLine, ma visto che tu hai necessità di dialogare in seriale non puoi utilizzare la libreria eLLabDataExchLib di scambio dati via TCP/IP ma devi utilizzare il FB ModbusMaster.
Il modo più semplice è realizzare un programma PLCMdbMaster che istanziando 2 blocchi funzione ModbusMaster esegue la lettura e la scrittura di blocchi di memoria sul PLC slave. Nell’esempio che ti allego per il download (Ecco lo screenshot) ho allocato i dati in scambio in due strutture dati, basterà che definisci nelle strutture i dati che devi scambiare.
Nell’esempio troverai anche un programma FBD che gestisce lo scambio via ModbusTCP, e come vedi si connette con l’indirizzo 127.0.0.1 (localhost) in pratica comunica con se stesso. Può essere utile per fare delle prove.
Dalla parte slave non devi fare nulla perchè utilizzi il Modbus gestito dal sistema operativo, dovrai solo allocare le due strutture dati della DB100 che è l’unica raggiungibile da Modbus.
E’ inutile dire che le due strutture dati MASTER_TO_SLAVE e SLAVE_TO_MASTER devono essere identiche nei due programmi (PLC Master e PLC Slave).
Sergio Bertana
Amministratore del forumNon mi viene in mente nulla di simile.
Sergio Bertana
Amministratore del forumPurtroppo non sono un esperto di protocollo BACnet, di certo ti posso dire che sulle variabili booleane non c’è la possibilità di scrivere in modalità Relinquish.
Ti allego estratto del manuale Weintek che tratta il protocollo BACnet anche se credo tu lo abbia già letto.
-
AutorePost