Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumSe invece si vuole conoscere da PLC la pagina attiva sul terminale rimando alla lettura di questo topic.
Sergio Bertana
Amministratore del forumBisogna fare riferimento al manulae EasyBuilder al capitolo relativo ai System Registers, li troverai tutte le informazioni sui registri di sistema.
Il registro LW-9050 (16bit) : current base window ID sui terminali normali (o il registro PLW-9050 sui terminale serie CMT che hanno una pagina diversa per ogni utente) contiene il numero di pagina attivo sul terminale. Con una operazione di Data transfer puoi trasferirne il valore in un registro del PLC.
Un altro modo è di attivare nei PLC control il Write data to PLC (current base window) che esegue automaticamente la scrittura nella variabile PLC definita del numero di pagina ogni volta che la pagina sul terminale viene cambiata. Ecco l’estratto del manuale.
Each time the base window is changed, the new window number will be written into the [Trigger address]. If [Use window no. offset] is selected, the window number of the base window plus the window number offset will be written into the [Trigger address].
Per modificare da PLC la pagina del terminale rimando a questo topic.
Sergio Bertana
Amministratore del forumAggiungo che utilizzando il FB HTTPServer, HTTP server management è possibile istanziare nel programma più servers HTTP ognuno dovrà essere connesso alla sua porta TCP. Tramite il FB è possibile definire la cartella root del sito e la pagina di default del server.
Il vantaggio principale dell’utilizzo del FB rispetto al server HTTP integrato è la possibilità di eseguire su richiesta di una pagina un programma lato LogcLab. Questo permette di definire pagine diverse a cui fanno capo esecuzioni di programmi diversi permettendo il passaggio di variabili dal client (Browser) al programma LogicLab e viceversa. Solitamente le variabili come si vede dagli esempi vengono passate in JSON.
Sergio Bertana
Amministratore del forum1) Creare la cartella root del sito su SDCard (Esempio D:/Web) copiando all’interno tutti i files attuali del web server dalla cartella C:/Web. Si può anche eseguire il download dal sito dell’ultima versione delle pagine web.
2) Dare i diritti di accesso alla cartella creata. Per fare questo tramite accesso alle pagine web di configurazione menù Security, aggiungere il percorso (Esempio D:/Web) assegnando l’accesso con i diritti desiderati. Consiglio di iniziare assegnando Anonymous.
3) Spostare la cartella root del server web sulla cartella della SDCard. Per fare questo tramite accesso alle pagine web di configurazione menù Servers, alla voce WEB SERVER definire come Root directory la cartella che si vuole utilizzare su SDCard (Esempio D:/Web/).
Eseguendo il reboot del sistema sarà ora possibile accedere a tutti i files presenti all’interno della cartella root del server su SDCard. E’ anche possibile creare all’interno della cartella altre sottocartelle con i files htm desiderati (Esempio MyPages). Per accedere ai files nelle sottocartelle occore specificarne il percorso nella barra di indirizzo del browser (Esempio “192.168.0.181/MyPages/Home.htm”).
Sergio Bertana
Amministratore del forumIl modulo di I/O PCB124B010 ha 4 ingressi veloci (Fino a 50 Khz) su questi ingressi è possibile veicolare la gestione hardware integrata di 2 encoders in quadratura (Solo 1 se si vuole utilizzare anche la tacca di zero), per l’acquisizione vedi SysGetEncoder, get encoder input.
La scheda prevede anche la gestione hardware di 4 counters il cui ingresso di clock può essere selezionato su qualsiasi ingresso logico del modulo (Sia veloci che normali), i comandi di reset e reverse non sono gestiti gestiti. Per l’acquisizione vedi SysGetCounter, get counter.
Per leggere la ruotina metrica credo tu voglia utilizzare un semplice counter e non un encoder, quindi puoi usare uno qualunque degli ingressi. Se usi un ingresso veloce puoi gestire frequenze fino a 50Khz, sugli ingressi normali puoi gestire frequenze fino a 3Khz.
Agosto 18, 2020 alle 2:40 pm in risposta a: Compiling errors by upgrading to LogicLab Ver. 5.12.0.36 #57329Sergio Bertana
Amministratore del forumTo improve the scalability of the systems we have migrating the systems from XTargetXX to XUnifiedXX and have changed some functions and FBs, please refer to this article.
Assuming that is always better to use the last version of each library, remind that all the new libraries are written by using the new functions and FBs that are not embedded in the XTarget systems. To allowing the use of the new libraries also in that systems we distribute the eLLabXTargetAdjLib that contains the adaptation of the new objects. The library must be included in the project (Library manager menu of LogicLab).
We are releasing firmwares for all the systems (ARM, Cortex and Raspberry) to make them compatible with the XUnified architecture. Please remind that if you upgrade the system you have to rename all the modified objects in your program. Alternatively you can include in your project the eLLabXUnifiedAdjLib it allows to use the old objects in the XUnified systems.
Sergio Bertana
Amministratore del forumIl bus SCS è un bus proprietario sviluppato dalla BTicino, se vuoi interfacciarti per utilizzare tutti i dispositivi domotici disponibili per bus SCS, BTicino propone l’interfaccia Scs-Open L4686SDK che permette di accedere al bus SCS con il protocollo OpenWebNet tramite connessione seriale RS232, quindi puoi connetterla direttamente alla porta seriale dei ns dispositivi SlimLine.
Ma esistono altre soluzioni su bus seriali, esempio i moduli I/O remoti Yotta che utilizzano il protocollo standard Modbus e per i quali abbiamo già sviluppato FB specifiche di gestione (Articolo). Oppure puoi utilizzare soluzioni in WiFi come i moduli Yotta su WiFi (Articolo) o i moduli della della SonOff (Articolo).
Ti ricordo anche che tramite la libreria eLLabDataExchLib puoi fare comunicare vie Ethernet e/o anche tramite Internet più sistemi SlimLine tra di loro realizzando una soluzione di I/O distribuito (Articolo).
Agosto 13, 2020 alle 2:38 pm in risposta a: Utilizzo PLC Elsist per applicazioni domotiche – Legge #57284Sergio Bertana
Amministratore del forumPremesso che non sono esperto in questioni normative posso solo esprimere un mio pensiero sulle perplessità sollevate dal post. A quanto ne sò (Ma aspetto che qualcuno più esperto di me dia il suo parere) le normative sugli impianti civili indicano il colore, le sezioni dei cavi ed il modo in cui deve essere realizzato l’impianto. Cito ad esempio la necessità di una buona messa a terra, l’utilizzo di apparecchi a norma CE, il sezionamento della linea di fase e non del neutro, la presenza degli opportuni interruttori magnotermici differenziali, ecc.
Detto questo non vedo differenze di pericolosità se il comando di una lampada o di un elettrodomestico arriva da un interruttore o dal relè di attuazione di un PLC. Tenuto conto che i PLC sono progettati per l’utilizzo in automazione industriale dove ormai è impossibile farne a meno. E se un PLC può governare un impianto industriale dove effettivamente c’è una pericolosità non vedo come non possa governare un impianto domotico dove al limite viene accesa una luce, un boiler o attivata l’irrigazione.
Riguardo al programma, mi riferisco ancora agli impianti industriali dove il programma è realizzato da molti programmatori che si sono formati con la pratica ed alcuni dei quali scrivono programmi che presentano grossolani bugs. A garanzia dell’operatore c’è comunque sempre un circuito hardware esterno di sicurezza che può essere anche solo il banale fungo di emergenza.
In un impianto domotico gli attuatori che possano creare danni all’utente immagino possano essere i comandi delle tapparelle o del portone scorrervole che per loro natura sono già intrinsecamente sicuri, hanno le loro fotocellule di arresto o hanno un motore di potenza talmente bassa da non arrecare danni alle persone.
Questa è una mia riflessione, speriamo che il post sollevi altre riflessioni o risposte più qualificate della mia.
Sergio Bertana
Amministratore del forumDa quello che dici mi sembra che ora hai spostato l’esecuzione del FBeTP e tutto ti funziona.
In generale Programma, Funzione o Blocco Funzione lo si decide quando si costruisce un nuovo oggetto e nello stesso momento si decide anche con quale dei 5 linguaggi realizzarlo.
La condizione IF ha esattamente lo stesso significato che assume in molti altri linguaggi di programmazione, tutto quello che è contenuto nel corpo dell’IF viene eseguito solo se la condizione è vera. Se la condizione non è vera tutto il contenuto del corpo viene ignorato e rimane nello stato in cui si trova.
Sergio Bertana
Amministratore del forumNel pannello devi aggiungere come device anche il pannello remoto cosi potrai leggere i bit di sistema del pannello remoto e generare l’allarme come stai già facendo con i PLC fisicamente collegati al pannello.
Agosto 10, 2020 alle 10:53 am in risposta a: Rilasciato FB MQTTClient per gestione protocollo MQTT #57254Sergio Bertana
Amministratore del forumPer risponderti mi rifaccio all’esempio riportato sul manuale on-line del FB MQTTClient, in pratica nel ciclo CASE di esecuzione basta aggiungere le varie sottoscrizioni, ecco un esempio.
CASE (CaseNr) OF // --------------------------------------------------------------------- // CONNECTION TO BROKER // --------------------------------------------------------------------- // Check if connected to broker. 0: MQTT.Enable:=Enable; //Connection enable IF NOT(MQTT.Connected) THEN RETURN; END_IF; // Client connected to broker, manage the subscription MQTT.Topic:=ADR('TopicOne'); //Topic name MQTT.Subscribe:=TRUE; //Topic subscribe CaseNr:=CaseNr+1; //Program case // --------------------------------------------------------------------- // Waits for subscription. 1: MQTT.Subscribe:=FALSE; //Topic subscribe IF NOT(MQTT.Subscribed) THEN RETURN; END_IF; CaseNr:=CaseNr+1; //Program case // --------------------------------------------------------------------- // Manage the subscription 2: MQTT.Topic:=ADR('TopicTwo'); //Topic name MQTT.Subscribe:=TRUE; //Topic subscribe CaseNr:=CaseNr+1; //Program case // --------------------------------------------------------------------- // Waits for subscription. 3: MQTT.Subscribe:=FALSE; //Topic subscribe IF NOT(MQTT.Subscribed) THEN RETURN; END_IF; CaseNr:=CaseNr+1; //Program casePuoi continuare con i cases aggiungendo tutte le sottoscrizioni che ti servono.
Sergio Bertana
Amministratore del forumCominciamo con il dire che è possibile l’utilizzo di funzioni o blocchi funzione all’interno di un FB, mentre è possibile l’utilizzo di funzioni ma non di blocchi funzioni all’interno di una funzione. Questo indipendentemente dal linguaggio che si utilizza. E’ possibile realizzare blocchi funzioni in qualsiasi linguaggio utilizzando all’interno funzioni o FB scritti in qualsiasi altro linguaggio.
Detto questo non mi è chiaro quello che vuoi fare nel tuo FB, intanto il FB FBeTP lo devi sempre eseguire e non eseguirlo condizionato da DW. Il FB per lavorare correttamente và sempre eseguito, dovrai operare sui sui I/O in funzione di quello che vuoi ottenere.
Poi consa intendi con IN:=IN_DW, non hai variabili che si chiamano IN_DW, per riferirti all’ingresso DW basta usarne il nome come hai fatto nell’IF.
Sergio Bertana
Amministratore del forumTutti i valori acquisiti via Mosdbus dagli strumenti Eastron sono in floating point a 32 bits nel formato IEE 754 quindi viene gestito il segno. Se la potenza è importata il valore ha segno positivo, se la potenza è esportata il valore ha segno negativo.
Da notare che siccome il protocollo Modbus non specifica l’endianness dei dati ed essendo i valori espressi su registri a 32 bits occorre eseguire la lettura di due registri per avere il valore in IEE 754, e l’ordine dei dati è in big endian.
Per i nostri sistemi programmabili forniamo il blocco funzione EastronSDM120 che ritorna il valore di tutti i registri dello strumento.
Sergio Bertana
Amministratore del forumCon la serie cMT-FHD puoi fare una stampa su USB disk, poi con file transfer (da action trigger o combo button) puoi trasferirlo al PC che deve avere installato un server FTP. Puoi utilizzare ad esempio il programma FileZilla in modalità server.
Sergio Bertana
Amministratore del forumAggiungo al post precedente questo link per il download di un dimostrativo Weintek che illustra come gestire queries su di un database MySQL. Ecco l’overview dato da Weintek
The following demo will introduce how to use the Basic Mode and Advanced Mode of SQL Query to read and modify the data in MySQL database. In Advanced mode, the data in the database can be read and operated with SQL language.
-
AutorePost