Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumFino a quando non rilasceremo una versione del sistema operativo di SlimLine che prevede il client TCP non c’è altro modo che il convertitore. Puoi utilizzare la versione Codesys di SlimLine che ha sia il server che il client TCP, ma è più costosa (Licenza Codesys sigh)…Su questa versione inoltre trovando già molte applicazioni disponibili (Vedi libreria Oscat) non abbiamo portato tutta la gamma di librerie che invece offriamo con la versione LogicLab e quindi occorre cercare o scriversi la gestione del protocollo Modbus master.
Sergio Bertana
Amministratore del forumProseguo con lo step applicativo, affinchè il pannello possa essere gestito con EasyAccess occore registrarlo al sito Weintek nel proprio dominio, la prima volta occorrerà registrarsi e creare il dominio. Per registrarlo occorre conoscere il SessionID e la Password assegnati al pannello.
Per avere queste informazioni occorre realizzare un progetto EasyBuilderPro (Download progetto) che agisce sulle variabili relative. Come si vede dallo screenshot agendo sul tasto Connect, il terminale si collegherà in Internet con il server Weintek (Occorre avere definito nei parametri di Network il Gateway ed il server DNS), e visualizzerà i valori di SessionID e Password relativi a quel pannello (Allego estratto manuale EasyBuilderPro relativo ai System Registers). La condizione di attivazione dell’HMI si può vedere nella Status page, del System Setting (Screenshot).
A questo punto è possibile inserire il pannello nel dominio tramite il sito Weintek (Vedi screenhot). Se la procedura và a buon fine verranno visualizzati tutti i dati relativi al pannello (Screenshot). Ora è possibile creare dei gruppi assegnando ad ogni gruppo i pannelli corrispondenti.
Occorre poi definire gli utenti assegnando ad ogni utente un gruppo di pannelli su cui l’utente può operare. Attenzione per accedere da remoto con il programma EasyAccess 2.0 dovranno essere definite le credenziali assegnate all’utente. Ecco un semplice layout di configurazione (Screenshot).
Sergio Bertana
Amministratore del forumPer completezza e per soddisfare l’esigenza di chi deve necessariamente utilizzare il protocollo Modbus TCP, porto un esempio suggerito ad un nostro cliente. Non potendo lo SlimLine agire come client si aggira il problema utilizzando un convertitore Ethernet/Seriale (Anche un semplice ATC-1000) connesso alla porta seriale dello SlimLine. Il convertitore Ethernet/Seriale andrà configurato come Client definendo come server l’indirizzo IP e la porta (Default la 502) del sistema Modbus slave. Nello SlimLine si utilizza l’FB ModbusMaster connessa alla porta seriale avendo impostato come Type il valore 2 che gestisce il protocollo Modbus TCP.
Sergio Bertana
Amministratore del forumIl blocco funzione ModbusMaster opera su uno stream di I/O (Parametro File di tipo FILEP) che deve essere ritornato da una funzione Sysfopen. Per operare in modalità master occorre eseguire un connect TCP verso il modulo slave, attualmente non è possibile eseguire una connect TCP. I sistemi SlimLine attualmente possono operare solo come server TCP e non come client.
Quindi puoi fare dialogare i sistemi SlimLine tramite l’FB ModbusMaster utilizzando una connessione seriale ma non TCP. Però se il tuo problema è fare dialogare tra di loro due o più sistemi SlimLine tramite Ethernet puoi utilizzare l’FB UDPDataTxfer che utilizza il protocollo UDP, Topic (1), (2).
Sergio Bertana
Amministratore del forumUn uscita PWM fà esattamente quelle di cui hai bisogno, naturalmente per poter pilotare i 25 Watt dovrai inserire un driver di potenza sulla uscita dello SlimLine (Può andare benissimo un transistor o meglio un IGBT).
Tramite il blocco funzione SysSetPWMOut, potrai impostare la frequenza (Credo ad occhio che 1 Khz vada bene), poi agendo sul parametro Duty portandolo da 0% a 100% potrai variare la luminosità dei LED.
Ottobre 21, 2014 alle 7:58 am in risposta a: Problema sulla gestione delle variabili negative #38465Sergio Bertana
Amministratore del forumNon sò che PLC stai utilizzando, ho fatto un semplice progetto di prova con un terminale MT8050iE connesso in Modbus TCP con un nostro PLC SlimLine (Download progetto). Con questo progetto di esempio non si evidenzia nessun problema.
Sul PLC ho definito una variabile INT allocata all’indirizzo DB 100.16, sul terminale ho inserito un oggetto inputazione numerica e come si vede dallo screenshot ho impostato 2 cifre decimali.
Una variabile INT 16 bits con segno ha range da -32768 a 32767, ho fissato un range da -30000 a +30000, che considerando le due cifre decimali varranno da -300,00 a +300,00. Come vedi ho definito 4 cifre intere, perchè nel caso dei numeri negativi devo visualizzare anche il segno.
Sergio Bertana
Amministratore del forumLogicLab non apre direttamente i file zip, un file zip deve prima essere scompattatato con un apposito programma (Esempio WinZip) e poi da LogicLab sarà possibile aprire il file di progetto (Estensione ppjs).
Tutti i nostri esempi, anche quelli che sono postati nel forum vengono per semplicità compattati in un unico file zip ma in realtà si compongono di una directory che contiene alcuni files. Il file che LogicLab utilizza è il file di progetto che contiene tutte le informazioni per compilare il progetto.
Altro discorso per le librerie, le librerie non si devono aprire con LogicLab ma devono essere inclusi nel proprio progetto solo gli oggetti che servono importandoli dalla libreria. Alcune librerie invece vanno incluse interamente ti rimando a questo topic dove l’argomento librerie è discusso.
Sergio Bertana
Amministratore del forumHai dettagliato molto bene la tua situazione, analizzandola emerge come l’utilizzo di un prodotto programmabile come la nostra serie SlimLine grazie alla disponibilità di un gran numero di blocchi funzione per la gestione della comunicazione con diversi protocolli permetta in modo semplice di fare dialogare tra di loro in “serenità” (Prendo in prestito la tua definizione) apparati diversi di diversi vendors.
Intanto inizio con il chiederti perchè disponendo di un modulo SlimLine con Ethernet non hai interconnesso il terminale operatore usando l’interfaccia Ethernet al posto della porta seriale. Basta impostare la comunicazione con il protocollo Modbus TCP al posto del Modbus RTU.
Ma vengo alla tua domanda, l’interfaccia RS485 è nata per le comunicazioni multidrop, più apparati connessi con un doppino twistato. Il protocollo modbus gestisce la comunicazione multidrop, il master interooga i vari nodi che devono avere indirizzi diversi e stessa modalità di comunicazione seriale. Lo standard RS485 teoricamente può supportare fino a 32 dispositivi connessi sul bus (con ricevitori speciali ad alta impedenza questo numero può essere aumentato fino a 128 o 256). Questa quantità è determinata solamente dalla capacità di pilotaggio del driver di trasmissione e dalla impedenza d’ingresso dei ricevitori.
Per gestire da SlimLine la comunicazione Modbus multidrop su seriale ti viene in aiuto la FB ModbusMaster che permette di essere eseguita in cascata (Topic). In questo topic trovi esempio di rete modbus tra moduli CPU SlimLine utilizzati come remote I/O.
Ottobre 14, 2014 alle 12:05 pm in risposta a: Utilizzo del convertitore Temperatura/Modbus ST485C #37079Sergio Bertana
Amministratore del forumIl modulo dispone di una memoria EEPROM per la memorizzazione della configurazione, è possibile impostare il numero di nodo ed il valore di baud rate di comunicazione. Vediamo come effettuare la configurazione del modulo, per ulteriori informazioni si rimanda al manuale utente allegato al modulo. Tutte le operazioni sono eseguite con comandi di scrittura registri modbus (0x10 Write Multiple Registers).
a) Scrivere il valore 0x0001 nel registro modbus 0x0002 (EEPROM Write Enabled).
b) Scrivere l’indirizzo di nodo (Registro 0x0003 Low) e baud rate (Registro 0x0003 High).
c) L’operazione di scrittura memorizza il valore in memoria EEPROM ed azzera il bit di abilitazione.
d) Spegnere e riaccendere il modulo.Sergio Bertana
Amministratore del forumPer rendere più chiara la connessione dei dispositivi con uscita 4÷20mA ai nostri moduli di acquisizione analogica ecco lo schema di connessione del sensore STI Pt1000. Nello schema sono rappresentate i due possibili modi di connessione.
Common mode
Si utilizza sui moduli CPU Compact e 20I/O mixed signal, sui moduli CPU compact visto che è prevista la sola lettura 0÷10Volt è necessario utilizzare la resistenza da 500Ω. Sul modulo mixed signal essendo prevista la modalità ingresso in corrente occorre utilizzare la resistenza da 62Ω fornita insieme al modulo.Differential mode
Si utilizza nei moduli di espansione I/O analogico, essendo prevista la modalità ingresso in corrente occorre utilizzare la resistenza da 62Ω fornita insieme al modulo. E’ utile ricordare che nella connessione in differenziale per avere i vantaggi di eliminazione dei disturbi propria del tipo di connessione, occorre utilizzare un cavo twistato e la connessione di entrambi i capi del segnale Aixx+ ed Aixx- deve essere fatta il più vicino possibile al dispositivo da acquisire.Sergio Bertana
Amministratore del forumSe sul sito dove hai lo SlimLine hai un IP statico o un router ADSL che supporta DynDNS (L’importante è che il fornitore del servizio ti dia un IP pubblico) puoi usare la tecnica da me descritta. Naturalmente il server PHP dovrà attivare lo script ad intervalli regolari.
Il fare richiedere la pagina web sul server dallo SlimLine con i parametri in GET (Come da tè indicato) è la tecnica che ho descritto nel caso di utilizzo del modem. In questo caso è il modem che gestisce l’invio dell’header http.
Siccome lo SlimLine allo stato attuale non può agire come client TCP ma solo come server, per aprire la conessione in modo client puoi usare (Come hanno fatto alcuni clienti) un convertitore Ethernet/Seriale connesso alla seriale dello SlimLine e delegare al convertitore l’apertura della connessione TCP, mentre lo SlimLine invierà l’header http tramite la seriale.
Sergio Bertana
Amministratore del forumNon presentati sulle pagine del nostro sito ma disponibile su ordinazione i modelli NS 540 con uscita in corrente 4÷20mA ed NS 740 con uscita in tensione 0÷10V contengono in un unico contenitore adatto al montaggio diretto sul tubo sia il sensore che il condizionatore di segnale (Vedi datasheet serie completa).
Sergio Bertana
Amministratore del forumLa domanda non specifica se si tratta di server Web che gira in una rete locale o VPN, oppure se è distribuito geograficamente ed in tal caso come è connesso alla rete Internet. In ogni caso vediamo le possibili soluzioni.
Rete locale, VPN, connessione con IP statico o DynDNS, il server sul cloud può con uno script PHP eseguito a tempo (Esempio cron di Linux) effettuare l’accesso ad una pagina web dello SlimLine. Nella pagina vi sono i TAG di visualizzazione variabili (Creazione di pagine dinamiche topics (1), (2), (3)). Eseguendo la richiesta della pagina come se fosse un browser lo script PHP riceve i valori e li memorizza nel database. Ipotizzando di avere nello SlimLine una pagina Values.htm nella directory Storage, per eseguirne la lettura lo script PHP utilizzerà la funzione file_get_contents nel modo:
$Content=file_get_contents(“http://192.168.0.122/Storage/Values.htm);
Ho preparato un semplice esempio con un programma SlimLine che gestisce 4 contatori, ed un programma PHP che ne esegue la lettura e li ritorna in echo. Naturalmente il programma PHP andrà eseguito a tempo ed andrà inserita tutta la gestione MySQL. Sullo SlimLine andrà caricato nella cartella Storage il file Values.htm (Download esempio completo).
Se invece la connessione viene effettuata tramite un modem puoi vedere questo topic.
Sergio Bertana
Amministratore del forumLe variabili DINT, UDINT, REAL solitamente sono allocate in due registri consecutivi, quindi basterà leggere o scrivere da Modbus 2 registri all’indirizzo della variabile. L’unico problema che ci può essere riguarda l’endianness dei dati siccome Modbus non prevede gestione di variabili a 32 bits non esistono specifiche che trattano l’endianness.
SlimLine è basato su di un procesore ARM che utilizza la memorizzazione dei dati nel formato little-endian, inizia dal byte meno significativo per finire col più significativo ora se anche il sistema slave usa la stessa endianness non ci sono problemi, se invece il sistema utilizza il formato big-endian devi eseguire uno SWAP della variabile. Ecco il codice in ST
VarOut:=ROL(VarIn, 16); (* Output variable *)
Altro discorso per le variabili REAL dove oltre al problema endianness devi fare riferimento al formato del dato, SlimLine utilizza lo standard IEEE 754-1985 in singola precisione a 32 bit (Topic). Questa codifica è la più utilizata e quindi non ci dovrebbero essere problemi.
Sergio Bertana
Amministratore del forumNella gamma di sensori Sensit abbiamo sensori adatti al montaggio diretto su tubo . La gamma comprende una vasta serie di sensori ma per l’applicazione io consiglio il modello Pt1000. Purtroppo l’ingresso analogico del Modulo CPU Compact prevede solo ingresso da 0÷10Volt. Quindi per l’acquisizione o aggiungi un modulo di espansione, il modello mixed signal (Acquisisce 2 sensori) il modulo analogico (Acquisisce 5 o 10 sensori). Se però hai un solo sensore da acquisire la soluzione più comoda è utilizzare il convertitore di temperatura STI (Attenzione occorre specificare in fase di ordine il range di temperatura da convertire).Il convertitore esce con una corrente 4÷20mA, per poter utilizzare l’ingresso analogico del modulo CPU compact occorre convertirla in volt, possiamo utilizzare una resistenza da 500Ω. Siccome il convertitore si alimenta tramite il circuito di uscita per garantire che alla massima uscita 20mA ai capi del convertitore vi siano ancora i volts sufficienti ad alimentarlo, occorre utilizzare una tensione di 24V per alimentare il circuito di lettura.Per la lettura è possibile utilizzare lo stesso programma in FBD riportato in questo topic, ecco la foto del test da me effettuato dove si vede il convertitore STI, la sonda Pt1000 il modulo CPU Compact e l’alimentatore 24Vdc.
-
AutorePost