Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumHo provato a scrivere nella cartella datalog del terminale e non ho avuto problemi di accesso. Hai provato a scrivere un semplice file di testo… Non vorrei che il file .db sia bloccato dal programma terminale in esecuzione.
Altra domanda, stai cercando di scrivere il file su memoria HMI o su USB connessa al pannello?
Perchè per accedere alla memoria USB, devi verificare se abilitata la scrittura via FTP nel system setting del pannello.
Marzo 8, 2024 alle 9:44 am in risposta a: Problema connessione cMT2078x con PLC Schneider M241 #76390Sergio Bertana
Amministratore del forumDalla versione 2.2 del Machine Expert è stato modificato il protocollo di comunicazione, quindi occorre aggiornare il driver nel programma EasyBuilderPro e poi con il download del programma caricare il driver nel pannello.
Allego per il download il nuovo driver, copiare la cartella driver nella omonima cartella nel percorso di installazione di EasyBuilderPro sovrarscrivendo i files presenti.
Per le TAGs non presenti nel progetto PLC l’importante che non vengano usate nel pannello.
Sergio Bertana
Amministratore del forumA partire da inizio anno 2024 Weintek ha modificato la policy di vendita delle licenze CODESYS. Ora non è più possibile acquistarla separatamente ma deve essere ordinata congiuntamente con l’acquisto del pannello.
Quindi non esiste più un codice ed un prezzo di licenza e siccome non è più possibile esporre il prezzo del pannello con licenza, l’unico modo è di inviare una richiesta di offerta da questa pagina (Usando il pulsante RICHIEDI QUOTAZIONE) dopo avere scelto come opzione Weintek indicando in offerta il codice del pannello che si desidera.
Nelle pagine dei vari modelli di pannelli nella tabella delle caretteristiche del prodotto alla voce Programmazione per ogni pannello è indicato se supporta la programmazione in CODESYS.
Sergio Bertana
Amministratore del forumSicuramente il FX1 è supportato, ma non capisco perchè vuoi utilizzare Modbus?
Weintek ha il driver apposito per il Mitsubishi FX1, guarda nella guida connessioni PLC.
Sergio Bertana
Amministratore del forumPer la definizione dei vari tipi di variabili ti rimando alla pagina delle FAQ dove alla sezione EasyBuilder trovi una tabella esplicativa.
Per la conversione dei numeri da positivo a negativo e viceversa è possibile eseguire una moltiplicazione con un numero negativo. Ecco un esempio (Screenshot) con due variabili float sulla LW 0 inputo un valore che visualizzo con il segno invertito su LW 2 (Essendo float si utilizzano 2 LW per ogni valore). Ecco la relativa macro di conversione.
macro_command main() float MyVar=0 GetData(MyVar, "Local HMI", LW, 0, 1) MyVar=MyVar*-1.0 SetData(MyVar, "Local HMI", LW, 2, 1) end macro_command
Se invece vuoi rendere positivi solo i numeri negativi puoi inserire nella macro.
if (MyVar < 0.0) then MyVar=MyVar*-1.0 end ifSergio Bertana
Amministratore del forumPossiamo fornire i sensori Comet nella fattispecie il T3511, che però non ha le uscite logiche per i contatti di allarme. Per poter gestire le 4 uscite di allarme abbiamo 2 possibilità.
- Abbinare al sensore Comet T3511 un modulo SlimLine che connesso in rete Ethernet acquisisce dal sensore gli allarmi e gestisce di conseguenza le uscite logiche. Questa soluzione permette di avere sul sensore Comet il display con l’indicazione locale della temperatura e di umidità.
- Utilizzare un sensore combinato di temperatura ed umidità connesso direttamente al modulo SlimLine.
In entrambi i casi sul dispositivo SlimLine andrà sviluppato un programma che acquisirà i valori è gestirà le uscite logiche. Vediamo come.
- Lo SlimLine acquisirà con il FB ModbusMaster via Modbus TCP o con il FB SNMPManager via protocollo SNMP gli allarmi è gestirà le uscite.
- Lo SlimLine acquisirà con il FB SysGetAnInp i valori di temperatura ed umidità direttamente dal sensore e gestirà le soglie con le relative uscite. In questo caso non si avrà più la visualizzazione su display dei valori e bisognerà sviluppare sullo SlimLine una pagina web per l’impostazione delle soglie.
Abbinando un pannello operatore si può gestire tutto dal pannello senza dover realizzare la pagina web. Un solo pannello può gestire entrambi i sistemi SlimLine unificando in un solo punto le impostazioni.
Sergio Bertana
Amministratore del forumNon ho mai trovato un manuale specifico, se cerchi in rete trovi moltissimi stralci di manuali dei vari costruttori di PLC che riportano alcune indicazioni.
Comunque nel manuale di LogicLab c’è una abbastanza dettagliata descrizione della sintassi del linguaggio ST con esempi.
Sergio Bertana
Amministratore del forumIntanto i pannelli Weintek che supportano CODESYS hanno un costo maggiore e comunque l’abbinamento con i relativi I/O inciderebbe ancora di più sul costo.
Vediamo invece se utilizzando i nostri PLC SlimLine riusciamo ad avvicinarci al tuo budget. Ecco i prodotti che ti consiglio:
- MPS056A110 SlimLine Modulo CPU Cortex M7 Compact Ethernet LLab Base Relè
- PCB126C170 SlimLine Modulo esp. I/O Analog. 5In/4Out + RS232
- PCB126C110 SlimLine Modulo esp. I/O Analogico 5In + RS232
- HWP8051IP1 MT8052iP Terminale Touch screen 4.3″ TFT
- SWPWTKEA2C RZACEA020 EasyAccess 2.0 Activation Card (Licenza perpetua)
Ai vari link troverai le informazioni sul prodotto ed il relativo costo, la somma al momento è di poco superiore al tuo budget. Fa lievitare il costo il grande numero di sonde Pt100 che obbliga ad utilizzare 2 moduli di acquisizione analogica. Se si potessero sostituire le sonde Pt100 con sonde 1-Wire basate su DS18B20 come questa, si potrebbero acquisire tutte dal modulo CPU utilizzando un modulo con ingresso 1-Wire.
Febbraio 26, 2024 alle 6:06 pm in risposta a: Protocollo Modbus TCP su dispositivi Poseidon e Damocles #76267Sergio Bertana
Amministratore del forumI dispositivi Poseidon2 e Damocles2 supportano il protocollo Modbus TCP. Dal menù General setup è possibile abilitare il protocollo impostando la porta in ascolto (Default 502) (Screenshot).
Per un riferimento agli indirizzi dei vari registri rimando alla pagina del fornitore.
Per il test è possibile utilizzare il nostro programma Toolly attivando l’utility ModbusMaster, ecco il manuale on-line.
Febbraio 26, 2024 alle 5:09 pm in risposta a: Realizzazione funzione con più variabili in uscita #76258Sergio Bertana
Amministratore del forumLe funzioni a differenza dei blocchi funzione per definizione hanno una sola uscita, ecco un esempio:
FUNCTION OneReturn: REAL VAR_INPUT InA : REAL; (* Input A *) InB : REAL; (* Input B *) END_VAR OneReturn:=InA+InB; //Function resultSe ti necessita realizzare una funzione che ritorni più di una uscita devi passare nei parametri di ingresso l’indirizzo delle variabili che vuoi utilizzare come uscite, ecco un esempio:
FUNCTION TwoReturns: BOOL VAR_INPUT InA : REAL; (* Input A *) InB : REAL; (* Input B *) RetA : @REAL; (* Return A *) RetB : @REAL; (* Return A *) END_VAR @RetA:=InA+InB; //Return A @RetB:=InA*InB; //Return B TwoReturns:=TRUE; //Function resultEd ecco come sono eseguite da programma. Come vedi per la funzione che prevede due ritorni ho passato nei parametri l’indirizzo delle due variabili che conterranno il risultato della funzione.
PROGRAM MyProgram VAR ORFunction : REAL; (* One return function *) TRFunction : BOOL; (* Two returns function *) Operands : ARRAY[0..1] OF REAL := [5.0, 10.0]; (* Operands *) Results : ARRAY[0..1] OF REAL; (* Function results *) END_VAR ORFunction:=OneReturn(Operands[0], Operands[1]); //One return function TRFunction:=TwoReturns(Operands[0], Operands[1], ADR(Results[0]), ADR(Results[1])); //Two returns functionSergio Bertana
Amministratore del forumMantenendo la App di EasyAccess attiva sul telefono è possibile ricevere notifiche push dal pannello.
A tal proposito rimando ad una nota applicativa di Weintek. Ecco cosa riporta la nota:
As long as EasyAccess 2.0 remains running at least in the background and the user remains logged in, when an event occurs, the device will receive push notification. For Apple’s iOS device, push notification goes through Apple Push Notification Service, whereas Android devices’ goes through Google Cloud Messaging.
Sergio Bertana
Amministratore del forumTutti i nostri prodotti programmabili della famiglia SlimLine sono programmabili con LogicLab un ambiente di sviluppo realizzato in Italia da Axel.
Nel costo del prodotto è inclusa la licenza di programmazione quindi è possibile utilizzare gratuitamente LogicLab. Con l’ambiente di programmazione forniamo una serie di librerie con moltissime funzioni e blocchi funzioni per automazione e per IoT (Vedi manuale).
A differenza degli altri prodotti il Modulo CPU SlimLine Raspberry PI IEC61131-3 viene proposto senza licenze di sviluppo, è possibile acquistare separatamente la licenza Run-time per utilizzare LogicLab direttamente dal ns sito, mentre per la licenza CODESYS occorre fare riferimento al sito CODESYS.
Sergio Bertana
Amministratore del forumTutte le informazioni sugli operatori definiti all’interno dell’ambiente LogicLab sono reperibili sul manuale utente. Nella fattispecie l’help dell’operatore SHL riporta:
- Descrizione: Shift a sinistra di input#0 per il numero di bit indicato da input #1 con riempimento di zero a destra.
- Numero di operandi: 2
- Tipo di dato input: Qualsiasi tipo numerico, Qualsiasi tipo numerico
- Tipo di dato output: Lo stesso di input #0
- Esempi: OUT := SHL( IN := 16#1000CAFE, 16 ); // OUT = 16#CAFE0000
In pratica eseguire lo shift a sinistra di un valore equivale a moltplicarlo per 2.
Febbraio 22, 2024 alle 8:59 am in risposta a: Visualizzazione ora:minuti:secondi con scalatura a macro #76135Sergio Bertana
Amministratore del forumLa soluzione più semplice è definire nell’oggetto numerico visualizzazione/impostazione tempi la visualizzazione a 2 interi e 2 decimali di una variabile 16-bit Unsigned (Screenshot). In questo modo devi accettare che il separatore hh.mm sia il punto decimale che è anche presente nella tastiera virtuale di impostazione valore.
Naturalmente non potrai impostare i limiti sulla impostazione per impedire di impostare orari inesatti, l’operatore potrà impostare infatti qualsiasi valore tra 0.00 e 23.99. Siccome la variabile viene sia scritta che letta dal PLC basterà realizzare una routine di controllo valori nel programma PLC e correggere gli eventuali errori di impostazione. Ecco un esempio di programma PLC.
PROGRAM TimeCheck VAR Hour : USINT; (* Hour *) Minutes : USINT; (* Minutes *) CheckStrobe : TON; (* Check strobe *) SetTime AT %MW100.2048 : UINT; (* %MW 41024] Set time from HMI *) END_VAR // ***************************************************************************** // PROGRAM "Timecheck" // ***************************************************************************** // ------------------------------------------------------------------------- // TIME CHECK // ------------------------------------------------------------------------- // Time check strobe. CheckStrobe(IN:=NOT(CheckStrobe.Q), PT:=T#1s); IF NOT(CheckStrobe.Q) THEN RETURN; END_IF; // Time check. Hour:=TO_USINT(SetTime/100); //Minutes Minutes:=TO_USINT(SetTime-(Hour*100)); //Minutes IF (Minutes > 59) THEN Minutes:=59; //Minutes SetTime:=(Hour*100)+Minutes; //Set time from HMI END_IF; // [End of file]Per evitare il controllo ad ogni loop di programma ho gestito un timer che comanda il controllo ad ogni secondo. Il limite sull’ora è già controllato dal pannello operatore che non accetta valori superiori a 23.99, quindi il programma controlla solo i minuti e se sono fuori range li reimposta al valore massimo 59.
Sergio Bertana
Amministratore del forumSe vuoi rallentare la comunicazione tra l’HMI ed il PLC puoi agire sulle impostazioni del protocollo di comunicazione, impostando il parametro Turn around delay. In questo caso come cita il manuale rallenterai la comunicazione con tutte le TAGs.
While sending the next command to the device, HMI will delay the sending according to the time interval set in [Turn around delay]. This may influence the efficiency of the communication between HMI and the device.
Se invece vuoi agire s olo su di una TAG puoi attivare un trasferimento ciclico con il tempo che desideri della TAG dal PLC al pannello e visualizzare la TAG del pannello. Puoi anche utilizzare una macro cilcica con un GET SET su tag di appoggio per la visualizzazione.
-
AutorePost