Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumTra gli improvements che Axel ha annunciato nelle prossime versioni di LogicLab ci dovrebbe essere anche l’accesso ai bits delle singole variabili. Al momento non è gestito, quindi o ti affidi alle classiche operazioni di AND e OR, esempio:
VAR Alarm : ARRAY[0..15] OF BOOL; (* Alarm conditions *) WAlarm : WORD; (* Alarm word *) END_VAR WAlarm:=16#0000; IF (Alarm[0]) THEN WAlarm:=WAlarm OR 16#0001; END_IF; IF (Alarm[1]) THEN WAlarm:=WAlarm OR 16#0002; END_IF; ... IF (Alarm[15]) THEN WAlarm:=WAlarm OR 16#8000; END_IF;
Dove come vedi per semplicità ho definito un array di BOOL per le varie condizioni di allarme ma tu potrai mettere le tue variabili. Naturalmente dovrai inserire la gestione di tutti i bits che usi ed il programma deve essere scritto così in sequenza.
In alternativa puoi utilizzare la funzione VBitSet che opera su di una variabile a 32 bits.
Sergio Bertana
Amministratore del forumRettifica…
Mi sono informato meglio ed in effetti anche i testi nelle finestre di sistema possono essere personalizzati. Dal menù Project->System Message è possibile definire i testi visualizzati (Screenshot).
Sergio Bertana
Amministratore del forumLa frequenza è bassissima, il contatore sull’ingresso digitale è hardware quindi non perde conteggi indipendentemente dalla esecuzione del FB SysGetCounter. Il FB esegue la lettura dal contatore hardware degli impulsi ed esegue la differenza con il valore acquisito precedentemente:
Pulses:=CounterValue-CounterMemo;
CounterMemo:=CounterValue;Ad ogni esecuzione calcola il numero di impulsi acquisiti, questo numero viene sommato (Sottratto se Reverse) al valore di impulsi ritornato in Value. Ora è evidente che se cambi Reverse in movimento non potrai mai essere sincrono con il reale comportamento del motore certamente perderai qualche impulso che magari viene ancora sommato quando il motore invece ruota al contrario o viceversa.
Sergio Bertana
Amministratore del forumMi sembra tutto impostato correttamente, in pratica hai:
Allocato all’indirizzo Modbus 1 512 word nella DB 300 a partire da offset 0, puoi accedere a questi dati con la funzione Modbus 01 Read Coil Status.
Allocato all’indirizzo Modbus 5000 65 word nella DB 301 a partire da offset 0, puoi accedere a questi dati con la funzione Modbus 04 Read Input Registers.
Ora se accedi all’indirizzo IP del pannello con un ModbusPoll e se la connessione con il PLC Siemens è attiva devi poter eseguire i comandi che ti ho indicato. Stai attento all’offset di 1 tipico del Modbus, magari per sicurezza prova con un indirizzo di registro uguale o superiore a 1 e poi controlla l’offset.
Sergio Bertana
Amministratore del forumQual’è la frequenza massima che comandi sull’uscita PWM?
Quando comandi l’ingresso di Reverse il motore è fermo ?
Hai provato a comandare solo in una direzione (Ammesso che tu possa) e verificato se in questo caso la posizione acquisita corrisponde alla reale ?
Aprile 29, 2021 alle 10:57 am in risposta a: Da Modbus RTU a TCP con selezione indirizzo IP da nodo Modbus #59854Sergio Bertana
Amministratore del forumUna feature molto interessante del gateway Modbus ATC-3002 è proprio quella di poter operare in modalità TCP Client potendo configurare una tabella di indirizzi IP dei dispositivi server a cui connettersi in funzione del nodo Modbus presente nel frame di interrogazione RTU.
Ecco lo screenshot della pagina di configurazione in cui ho definito la connessione a due server Modbus TCP in funzione del nodo Modbus della richiesta RTU. Nell’esempio abbiamo:
- Indirizzi Modbus da 01 a 05 verranno inoltrati al server con IP 192.168.0.181
- Indirizzi Modbus da 10 a 20 verranno inoltrati al server con IP 192.168.0.200
Sergio Bertana
Amministratore del forumSolitamente i messaggi in Pop-Up sono finestre editabili direttamente da EasyBuilder, si trovano sulla barra laterale di visualizzazione delle finestre menù View->Windows Tree.
Ma la finestra in Pop-Up di richiesta conferma a differenza delle altre è una finestra di sistema operativo e quindi non è modificabile in alcun modo.
Come workaround ho realizzato il semplice pogetto ConfirmationRequest (Screenshot) in cui alla pressione del tasto viene visualizzata una finestra di Pop-Up che può essere personalizzata come si desidera (Download).
Sergio Bertana
Amministratore del forumPer la configurazione della rete WiFi puoi fare riferimento al manuale di configurazione.
Sergio Bertana
Amministratore del forumSe la stampante la colleghi in seriale con la macro puoi gestirla in piena libertà.
Se invece vuoi che sia il pannello a gestirla, magari con la stampa grafica della immagine visualizzata occorre configurarla come stampante e deve essere una di quelle supportate dal pannello.
Sergio Bertana
Amministratore del forumSi la connessione cablata avrà protocollo Siemens S7 1200 e dialogherà con il PLC.
La porta WiFi sarà da collegare alla rete WiFi esistente ed impostare un indirizzo IP fisso a cui lo SCADA dovrà collegarsi in Modbus.
Dovrai poi attivare la funzione Modbus Server abilitando la funzione Gateway e con il pulsante Address mapping table definire la tabella di indirizzamento (Screenshot).
Sergio Bertana
Amministratore del forumTramite Modbus è possibile accedere solo all’area di memoria mappata in DB100, non è possibile agire direttamente sugli I/O.
Paer acquisire gli ingressi digitali e per gestire le uscite digitali ti consiglio di mappare in DB100 variabili BOOL di appoggio degli I/O. Poi con un semplice programma in ladder o ST potrai copiare gli ingressi reali sulle varibili BOOL di appoggio e lo stato delle uscite dalle variabili BOOL di appoggio sulle uscite reali.
Sergio Bertana
Amministratore del forumLe sonde Pt1000 sono tutte acquisiste in differenziale, i vari standards differiscono di pochissimo uno dall’altro, sono finezze che il programmatore da buon tecnico si è deliziato nell’inserire nella gestione.
Nei fini pratici io consiglio di utilizzare sempre la modalità:
AD_PT1000_DIFFER Pt1000 sensor Celsius degree (Differential mode)
Per la differenza tra i vari standard ti consiglio di cercare in Internet, troverai tabelle con i valorri in ohm alle diverse temperature.
Sergio Bertana
Amministratore del forumI modelli cMT supportano sicuramente la stampante Epson M267, con altri modelli non ho informazioni se è possibile gestirle.
Vedo che il modello che hai scelto può avere una interfaccia Ethernet, ora bisogna capire sr è possibile tramite una connessione TCP/IP inviare i comandi di stampa, in tal caso puoi crearti una macro che tramite il FreeProtocol invia i dati alla stampante.
Sergio Bertana
Amministratore del forumUtilizzando più motori non è necessario effettuare la manovra di autotuning.
Comunque se si vuole effettuarla occorre collegare un solo motore all’inverter.
Sergio Bertana
Amministratore del forumLe nuove librerie sono state tutte convertite per la nuova architettura XUnified (Vedi articolo), probabilmente il tuo SlimLine ha una versione firmware ancora XTarget. Ora hai due possibilità:
1) Inserisci nel tuo progetto anche la libreria eLLabXTargetAdjLib.
2) Esegui un upgrade del sistema e lo converti in un sistema XUnified (Vedi articolo).Ti consiglio sicuramente la seconda soluzione che ti permette di aggiornare il sistema rendendolo compatibile con tutte le nuove versioni di libreria.
Aggiungo un consiglio per acquisire i vari meters puoi utilizzare il FB ACModbus, Array command Modbus, che appoggiandosi ad un’unica istanza della FB ModbusMaster_v1 permette di sequenziare automaticamente le varie acquisizioni.
-
AutorePost