Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Gennaio 22, 2014 alle 1:31 pm in risposta a: Program error su compilazione programma per Slimline #38018
Sergio Bertana
Amministratore del forumL’upgrade del firmware è obbligatorio per utilizzare la nuova versione della FB, per l’upgrade guarda qui.
La FB ModbusMaster gestisce il CRC al suo interno, lo genera per i frames di comando e lo controlla sui frames di risposta ricevuti, ed è proprio questo controllo che garantisce la correttezza dei dati.
In effetti la riga di codice IF (MdbElect.Ok) THEN @ElctDPtr:=TO_REAL(MdbElect.Buffer)/1000.0; END_IF; genera un errore di compilazione. Ma c’è qualcosa che non mi torna, il parametro MdbElect.Buffer deve essere valorizzato con l’indirizzo del buffer che contiene i dati da scrivere/leggere tramite il comando modbus.
Non capisco quello che tu vuoi fare con il tuo programma, in pratica stai convertendo in float un indirizzo di memoria e lo trasferisci nella memoria puntata da ElctDPtr di cui non ne conosco il tipo. Attenzione. l’uso dei puntatori è molto pericoloso bisogna sempre sapere con certezza cosa succede. Un uso improprio può portare anche ad un blocco della esecuzione del programma.
Sergio Bertana
Amministratore del forumNon sono esperto di LOGO (Noi produciamo la nostra serie di prodotti SlimLine) ma attenzione alle variabili VM, potrebbe essere che debbano essere indirizzate solo su indirizzi pari, quando indirizzi l’indirizzo dispari può essere che la variabile venga scritta su due variabili contigue.
Prova ad usare VM0, VM2, VM4 e così di seguito…
Gennaio 21, 2014 alle 2:04 pm in risposta a: Program error su compilazione programma per Slimline #38012Sergio Bertana
Amministratore del forumAggiungo che come base di partenza puoi usare il programma indicato in questo post. Come vedi in quel caso viene sequenziata la lettura di diversi nodi, mentre tu dovrai sequenziare letture sempre dallo stesso nodo ma da registri diversi.
Gennaio 21, 2014 alle 1:39 pm in risposta a: Program error su compilazione programma per Slimline #38011Sergio Bertana
Amministratore del forumPartiamo dal PROGRAM ERROR, questo tipo di errore è un errore interno al LogicLab, viene generato dopo avere parsato tutto il codice sorgente ed aver generato il metacodice per la compilazione. Purtroppo la linea riportata a diferenza di altri errori di parsing del codice sorgente non è riferita al programma sorgente ma è riferita al metacodice interno, e quindi non è possibile risalire facilmente al problema.
In presenza di questo errore la soluzione per trovarlo è di commentare parti di programma sorgente e ricompilare fino a trovare la parte di programma che genera l’errore. Eventualmente puoi inviarmi il progetto support[at]elsist.it per una analisi mia e/o per inviarlo ad Axel per ulteriori tests.
Mi hai detto che usi una PCB122*100 quindi dovrai utilizzare un convertitore RS232/RS485 tipo ATC-105 o altri della ns gamma di convertitori. Ma perché non usi la porta RS485 del modulo CPU ?
In quanto al programma come si vede dal manuale istruzioni, tutti i registri da leggere dal contatore Electrex sono su registri contigui, allora io mi eviterei il lavoro di sequenziare le letture ma utilizzerei una sola lettura di tutti i registri contemporaneamente o al limite 2 o 3 letture di gruppi di registri.Gennaio 20, 2014 alle 10:40 am in risposta a: Connessione Ethernet tra MT8050i e Siemens LOGO #38008Sergio Bertana
Amministratore del forumIntanto per la visualizzazione di uno stato è preferibile utilizzare un oggetto Lampada Bit gli oggetti Pulsante Toggle e Imposta Bit servono ad impostare i valori sul PLC. Naturalmente ne visualizzano anche il reale stato, ecco perché al cambiamento di stato del’ingresso del PLC cambia lo stato del pulsante sul terminale.
Ma quando si cerca di impostare i valori nel PLC bisogna essere certi che il programma del PLC non operi sullo stesso operando, tu non puoi attivare una uscita se il programma del PLC la disattiva e/o viceversa. In pratica il terminale comanda l’uscita per un attimo ma poi il programma PLC la rimette nella condizione da lui imposta.
Per operare con dei comandi da terminale in sinergia con il programma PLC devi usare dei merker interni (Operandi M), il terminale opera sul merker attivandolo/disattivandolo poi il programma PLC usa il merker per gestire l’uscita in parallelo alla sua logica.
Sergio Bertana
Amministratore del forumL’errore è nella definizione del PLC deve essere definito come Locale, perché è gestito direttamente dalla rete Ethernet del pannello (Screenshot).
La connessione remota permette di connettersi ad un PLC che è fisicamente connesso ad un altro terminale, e quindi la comunicazione passa attraverso il terminale cui il PLC è connesso. Infatti l’errore che ti viene ritornato indica che non riesce a connettersi al terminale remoto.
Quando li è un errore di comunicazione con il PLC locale l’errore è PLC NO RESPONSE.
Sergio Bertana
Amministratore del forumHo chiesto al fornitore che mi dice che la validità della licenza in caso di migrazione della VM su altro hypervisor dipende dal tipo di licenza.
Tutte le licenze tranne la licenza illimitata continuano ad essere ancora valide.
La licenza illimitata deve essere riattivata perchè l’attivazione è legata agli identificatori di CPU, motherbord, BIOS, ed altri identificatori. Quindi anche se non sono sicuro al 100%, ritengo che dopo la migrazione da macchina a macchina gli identificatori verranno modificati e l’attivazione non sarà più valida.Gennaio 17, 2014 alle 8:36 am in risposta a: Gestione delle uscite analogiche sui moduli estensione D/A #38003Sergio Bertana
Amministratore del forumDa quanto esposto prima è evidente che se le uscite sono utilizzate per comandare dispositivi (Esempio drivers, servovalvole, ecc.) non potendo garantire l’azzeramento del valore in uscita, occorre prevedere la gestione della abilitazione del dispositivo con un comando logico.
Le uscite logiche sono le sole uscite di cui è garantita la disabilitazione in ogni condizione, Power On, Stop programma, errori di Watch dog, ecc… Quindi per motivi di sicurezza è sempre raccomandato gestire le abilitazioni utilizzando le uscite digitali.
Gennaio 17, 2014 alle 8:14 am in risposta a: Gestione delle uscite analogiche sui moduli estensione D/A #38002Sergio Bertana
Amministratore del forumComportamento uscite analogiche su modulo 20 I/O Mixed signal.
Power On: Le uscite si portano a +10 Volt.
Run programma (RDY acceso): Le uscite si portano a 0 Volt e poi al valore definito da FB SysSetAnOut.
Stop programma (RDY spento): Le uscite si portano a +10 Volt (L’uscita A00 sale lentamente a +10 Volt).Comportamento uscite analogiche su modulo espansione I/O analogico.
Power On: Le uscite sono in Stand-By, si portano a +19mV.
Run programma (RDY acceso): Le uscite si portano al valore definito da FB SysSetAnOut.
Stop programma (RDY spento): Le uscite restano al valore impostato dal programma.Sergio Bertana
Amministratore del forumCome già trattato in questo topic vediamo di chiarire il concetto dell’attributo RETAIN delle variabili di programma. In conformità con IEC 61131 sono riportati due tipi di avvio programma in un PLC.
Warm restart, noto anche come Warm reboot: Si ha con l’alimentazione del sistema, il programma viene eseguito dal suo inizio e le variabili RETAIN assumono il valore che avevano quando il sistema è stato arrestato.
Cold restart: Si ha dopo aver caricato il programma o su condizione di errore del PLC che ha causato un riavvio. Il programma viene eseguito dal suo inizio e le variabili RETAIN assumono il valore definito nel campo INIT.
Nello SlimLine l’area di memoria nella DB 100 a partire da indirizzo 2048 fino a 4096 pur non avendo l’attributo RETAIN sono ritentive. Quindi, tutte le variabili che sono allocate in questa zona mantengono il loro valore allo spegnimento e, a differenza delle variabili RETAIN mantengono il loro valore anche al caricamento del programma e/o riavvio del sistema.
Sergio Bertana
Amministratore del forumHo realizzato un programma di esempio in cui viene utilizzata la variabile BMatrix che per semplicità ho definito come una matrice di 4 righe da 2 colonne (Tipo Array 4, 2). Ecco lo screenshot del programma dove puoi vedere come effettuare la definizione dei valori di inizializzazione e come accedere ai vari elementi della matrice.
Sergio Bertana
Amministratore del forumBut if your requirement is to create a RS485 network with many remote I/O modules attached, you can use our Compact CPU module. It has 6 digital inputs, 4 relais outputs, 2 analog inputs, there is a version that has the RS485 port and supports the Modbus protocol. If you need more than the embedded I/Os, you can connect to it other I/O extension modules.
In this topic you will find a description of a project with a master CPU module that manages many slave compact modules connected on RS485. The main feature of this example is that it’s possible to program the slave modules by the RS485 network directly thru an ethernet connection to the master CPU. The topic is in italian but you can download the source program and study it.
Sergio Bertana
Amministratore del forumThe SlimLine I2C expansion bus is managed with complex I2C commands, each command is composed by a write command followed by a read command. Are managed 256 commands each composed with multiple bytes, to each command sent by the CPU, the extension module creates the response frame that is read by the CPU.
The CPU module has to manage multitasking accesses, so all the I2C slave management is made with a FPGA logic to ensure the communication interoperability between the different tasks. All of this requires a management workload from the CPU and to avoid problems in the commands timing, we don’t publish any reference on how to manage the bus by a third party. So our I/O modules can be managed only by our CPU modules.
Sergio Bertana
Amministratore del forumLa possibilità di avere un numero di identificazione univoco per i vari prodotti è una richiesta che ci è pervenuta da svariati clienti, il che ci ha indotti ad inserirla nei nostri sistemi. Ecco quindi che la variabile SysUniqueID è stata introdotta dalla versione SFW184 del sistema operativo che è utilizzabile solo sui prodotti MPS046 serie B.
Credo tu ti riferisca al fatto che nell’estratto del manuale sono indicati anche i prodotti MPS046A, in effetti in quella pagina si è voluto riepilogare il PType di tutti i nostri prodotti questo indipendentemente dal fatto che poi fosse realmente disponibile la variabile SysUniqueID.
Sergio Bertana
Amministratore del forumSeguendo il post scritto da coronam e dando una occhiata al link postato, sembra che sia effettivamente così, quindi buon ponte WiFi.
-
AutorePost