Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumIl linguaggio SFC permette la descrizione del funzionamento di un impianto evidenziandone il comportamento sequenziale. l’SFC facilita l’approccio top-down al progetto, il funzionamento dell’impianto viene scomposto in passi fondamentali analizzati in fasi successive, riducendo così la complessità di ogni singolo elemento che compone la logica del sistema di controllo.
Bisogna considerare un programma SFC come una serie di passi, ogni passo è caratterizzato da una azione ed il passaggio al passo successivo viene eseguito quando è soddisfatta la transizione.
Nelle azioni, il codice P viene eseguito una sola volta alla attivazione della azione, il codice N viene sempre eseguito fino a che l’azione è attiva.
Nelle transizioni, occorre inserire il controllo che gestisce il passaggio alla azione successiva. Può essere il test di una variabile oppure l’esecuzione di un programma.
Ti rimando a questo post dove troverai ulteriori informazioni ed un programma dimostrativo.
Luglio 6, 2011 alle 9:58 am in risposta a: Compatibilità dei dispositivi AirMax con PC e smartphone #36826Sergio Bertana
Amministratore del forumTutti i prodotti Ubiquiti stanno lentamente migrando verso lo standard 802.11n che si distingue per elevata compatibilità e prestazioni migliori rispetto al protocollo precedente 802.11g. La caratteristica principale del nuovo standard è velocità di connessione, fino a 300Mbps (802.11g arriva a 54Mbps).La velocità di trasferimento aumenta grazie alla tecnologia MI-MO (multiple-input, multiple-output) ed al channel bonding (unione dei canali). La versione precedente 802.11g utilizza canali a 20MHz mentre l’802.11n può usare canali a 40MHz.Naturalmente queste nuove implementazioni non sono compatibili con apparecchi WiFi di vecchia generazione, anche se i produttori di PC e smartphone stanno implementando il supporto alla 802.11n nei loro apparecchi. Per mantenere la compatibilità con apparecchi che non supportano il nuovo standard, occorre disabilitare le funzioni MI-MO e channel bonding sull’access point. Nel Tab Wireless occorre settare il Channel Width a 20MHz, e nel Tab Advanced occorre disabilitare la voce AirMax (Vedi screenshot).
Luglio 6, 2011 alle 9:15 am in risposta a: Errore 0xc0000005 esecuzione programma EasyBuilder #36825Sergio Bertana
Amministratore del forumL’antivirus Avast dalla versione 5.1.889 ha la possibilità di entrare in conflitto con EasyBuilder e di creare il tipo di problema da te lamentato. Nella prossima versione di EasyBuilder il problema sarà risolto, ma al momento attuale l’unica possibilità è di mettere in pausa l’antivirus. Allego FAQ di Weintek sulla definizione del problema.
Luglio 6, 2011 alle 7:42 am in risposta a: Configurazione dispositivi Ubiquiti in modalità WDS #36824Sergio Bertana
Amministratore del forumIl WDS Wireless Distribution System è un sistema che permette l’interconnessione di access point attraverso la rete wireless, permettendo l’espansione di una rete senza fili, usando access point multipli, senza necessità di un collegamento cablato.
Un access point può essere principale o di inoltro. L’access point principale è collegato tipicamente alla rete cablata, l’access point di inoltro trasmette i dati fra le stazioni remote e principali. I collegamenti fra i due access points sono definiti usando gli indirizzi MAC.
Tutti i dispositivi Ubiquiti supportano il WDS la cui implementazione è stata mano mano migliorata con le diverse versioni di sistema operativo, per questo consiglio sempre di eseguire l’upgrade all’ultima versione di sistema operativo AirOS disponibile per il proprio dispositivo, le prove sono state da me eseguite con versione 5.3.2.
Nel tuo caso dovrai configurare l’access point principale (Quello esistente) come access point WDS, definendo come WDS Peers il MAC address dell’access point di inoltro (Quello installato nel vano scala). Nell’access point di inoltro dovrai definire come WDS Peers il MAC address dell’access point principale. Tutte le stazioni resteranno configurate come normali stazioni (Vedi nota applicativa).
Sergio Bertana
Amministratore del forumLo standard RS485 teoricamente può supportare fino a 32 dispositivi connessi sul bus (con i moderni 485 si arriva tranquillamente a 128 nodi e con alcuni 485 particolari e per questo costosi si arriva sino a 256 nodi).
I drivers 485 hanno come caratteristica di uscita la capacità di pilotare fino a 32 transceivers con impedenza standard, se il transceiver utilizzato sui dispositivi connessi e ad alta impedenza, il numero di devices che un driver può pilotare è dipendente dalla impedenza del transceiver.
Sui nostri sistemi SlimLine ad esempio viene utilizzato il modello LT1785A della Linear technology che ha una elevata impedenza di ingresso e supporta fino a 128 dispositivi (Datasheet).
Nel tuo caso, visto che asserisci di utilizzare dei drivers ad alta impedenza, non esiste sicuramente problema per l’ATC-1000 a pilotare fino al numero di dispositivi che il transceiver dei dispositivi connessi dichiara. Vedi post per ulteriori informazioni.
Sergio Bertana
Amministratore del forumA quanto detto nel post precedente aggiungo un suggerimento per risolvere il parallelo e/o la serie tra rami quando il primo operando del ramo in parallelo/serie è un operando negato. Su statements di OR( e AND( non è possibile effettuare la negazione diretta, occorre caricare l’operando e poi invertirlo con uno statement NOT.
(* ORGR *)
LD %I0.0 (* LODT I 0000 *)
AND %I0.1 (* ANDT I 0001 *)OR( %I0.2 (* LODF I 0002 *)
NOT
ANDN %I0.3 (* ANDF I 0003 *)
) (* ORLR *)ST %Q0.0 (* OUTT O 0000 *)
(* ORGR *)
LD %I0.0 (* LODT I 0000 *)
AND %I0.1 (* ANDT I 0001 *)AND( %I0.2 (* LODF I 0002 *)
NOT
ANDN %I0.3 (* ANDF I 0003 *)
) (* ANDR *)ST %Q0.1 (* OUTT O 0001 *)
Sergio Bertana
Amministratore del forumNon esiste un tool di conversione dal linguaggio RIL (Remoter Instruction List) al linguaggio IL (Instruction List) della IEC61131-3, occorre effettuare la conversione manualmente. Il mio consiglio è di convertire i programmi RIL direttamente in LD (Ladder Diagram) la conversione è più immediata ed i programmi risultano più leggibili perchè visualizzati in modo grafico. Di seguito la conversione di un semplice ramo per dare una idea di come sia possibile effettuarla.
(* ORGR *)
LDN %IX0.0 (* LODF I 0000 *)
AND %IX0.1 (* ANDT I 0001 *)
OR( %IX0.0 (* LODT I 0000 *)
ANDN %IX0.1 (* ANDF I 0001 *)
AND F0001 (* ANDT F 0001 *)
) (* ORLR *)
ANDN F0003 (* ANDF F 0003 *)
ANDN F0004 (* ANDF F 0004 *)
S %Q0.0 (* LTCH O 0000 *)Di seguito la conversione di un ramo che utilizza un timer.
(* ORGR *)
LD %IX0.2 (* LODT I 0002 *)
ST T0000.INLD 1000
ST T0000.PT
CAL T0000 (* OUTM T 0000 KD 0010 *)(* ORGR *)
LD T0000.Q (* LODT T 0000 *)
R %Q0.0 (* UTCH O 0000 *)Allego un programma LogicLab di esempio e la stampa dello stesso, nel programma vi è anche la conversione in LD per comprendere la logica (Download programma).
Attenzione! Nella scrittura in LD non è possibile fare riferimento diretto agli operandi di I/O come nel linguaggio IL, quindi anche per gli I/O sono stati utilizzati degli mnemonici. In LD l’uscita %Q0.0 è stata sostituita con la %Q0.1 per permettere il test del programma sul sistema.
Sergio Bertana
Amministratore del forumLa versione Lite della CPU SlimLine dispone di 2 porte seriali RS232, disponibili su connettore RJ45 ad 8 poli. La versione Full aggiunge la disponibilità di una porta ethernet e di una porta RS485 o CAN. Tutti i modelli dispongono anche di una porta USB client che alla versione attuale del software non è gestita.
Per quanto riguarda la connessione del modulo CPU con la porta seriale del PC è possibile utilizzare un adattatore Null-Modem DB9F/RJ45 unito ad un cavo RJ45 8/8 non schermato della lunghezza desiderata, per ulteriori informazioni sulle porte seriali vedi articolo.
Per la connessione con la porta seriale del terminale operatore occorre rifarsi alla documentazione del terminale, se la connessione è in RS232 basterà connettere opportunamente i segnali RD, TD e GND. Se la connessione è in RS485 basterà collegare i due fili D+ e D-. Se si utilizzano i terminali Weintek da noi distribuiti per la connessione vedi post.
Se si dispone della versione Full è possibile connetterla al PC tramite rete ethernet, basterà utilizzare un comune cavo patch, SlimLine ha una porta ethernet autosensing quindi può essere utilizzato qualsiasi tipo di cavo sia diretto che cross. L’utilizzo della connessione ethernet (Utilizzando uno switch) permette di creare una rete tra il PC, lo SlimLine ed il terminale facilitando la programmazione ed il test senza dover continuamente scollegare e ricollegare cavi. Per l’impostazione dell’indirizzo IP sulla CPU SlimLine si rimanda a questo articolo.
Attenzione, si consiglia l’acquisto (O l’autocostruzione) dell’adattatore seriale anche per le versioni Full, in quanto le eventuali operazioni di upgrade del sistema operativo vedi articolo) sono possibili solo da porta seriale COM0.
Sergio Bertana
Amministratore del forumI sistemi SlimLine supportano il protocollo Modbus sia Ascii che RTU su porta seriale e OverIP su rete ethernet. Il protocollo Modbus è un protocollo libero e molto conosciuto, esistono centinaia di vendors che rendono disponibili server OPC per la connessione in rete Modbus (Vedi sito Modbus.org).
Giugno 24, 2011 alle 9:19 am in risposta a: Verifica conformità del software a specifica Welmec #36813Sergio Bertana
Amministratore del forumCome detto precedentemente, il sistema operativo dello SlimLine esegue un checksum dell’intero programma utente.
In pratica viene eseguita una somma byte per byte di tutta l’area di memoria destinata al programma utente, la somma ritorna una variabile a 32 bits, gli overflows della somma vengono persi. Il cuore dell’algoritmo di calcolo è il seguente:
for(n=0; n<CodeSize; n++)
CheckSum+=(uint32_t)ProgramCode[n];Giugno 23, 2011 alle 4:11 pm in risposta a: Gestione gruppo valvole regolazione flusso per pressa #36811Sergio Bertana
Amministratore del forumNon c’è un blocco funzione per questa operazione, ma ho preso lo spunto per realizzare la funzione FSelector di cui dò codice sorgente che può essere utile per risolvere altre problematiche simili. Fornisco un programma che può essere eseguito sul simulatore per il test della funzione, Download.
VAR_INPUT
Flow : REAL; { DE:”Flow set (%)” }
END_VARFSelector:=0; (* Result *)
IF (Flow >= 50.0) THEN Flow:=Flow-50.0; FSelector:=FSelector OR 16#20; END_IF;
IF (Flow >= 25.0) THEN Flow:=Flow-25.0; FSelector:=FSelector OR 16#10; END_IF;
IF (Flow >= 12.0) THEN Flow:=Flow-12.0; FSelector:=FSelector OR 16#08; END_IF;
IF (Flow >= 6.0) THEN Flow:=Flow-6.0; FSelector:=FSelector OR 16#04; END_IF;
IF (Flow >= 3.0) THEN Flow:=Flow-3.0; FSelector:=FSelector OR 16#02; END_IF;
IF (Flow >= 2.0) THEN Flow:=Flow-2.0; FSelector:=FSelector OR 16#01; END_IF;Giugno 23, 2011 alle 1:42 pm in risposta a: Installazione software virtual COM per convertitore TRP-C37 #36810Sergio Bertana
Amministratore del forumSe il programma che utilizza la porta seriale virtuale non riesce ad effettuare l’impostazione corretta dei parametri di comunicazione, occorre agire da pagina web.
Definendo in un browser l’indirizzo IP del dispositivo, è possibile vederne la pagina web di configurazione (Screenshot),definire i parametri di comunicazione, poi agire sul tasto Apply. Per rendere effettive le impostazioni occorre spegnere e riaccendere il convertitore.
Giugno 23, 2011 alle 12:16 pm in risposta a: Installazione software virtual COM per convertitore TRP-C37 #36809Sergio Bertana
Amministratore del forumPer l’installazione virtual COM occorre scaricare dal ns sito (Zona download in fondo alla pagina del prodotto) il Software VirtualCOM per TRP-C37 (Win7/Vista/Windows2000/XP) ed eseguire il programma VSerPortConsole.exe.
Dalla finestra centrale del programma con il tasto destro del mouse si attiverà un pop-up che permette di aggiungere una porta seriale virtuale. Scegliendo l’opzione Add port verrà installato il programma di virtualizzazione porta seriale.
Installata la porta seriale occorre selezionarla e con il tasto destro del mouse scegliere l’opzione Add Net per attivare la finestra di definizione del dispositivo TRP-C37 a cui collegare la porta seriale virtuale creata (Screenshot). Nei campi previsti occorre definire il tipo di connessione TCP Client, TCP Server o UDP in funzione delle impostazioni effettuate sul convertitore.
Nel mio esempio ho scelto la configurazione TCP Client, e quindi ho definito l’indirizzo IP del convertitore e la porta a cui connettersi.
Terminata l’installazione il programma VirtualSerialPort Console visualizzerà l’elenco di tutte le porte COM installate (Screenshot).
In merito alla etichetta del prodotto TRP-37, non è riportata la C per un refuso tipografico.
Giugno 23, 2011 alle 9:52 am in risposta a: Collegamento inverter PowerOne convertitore Ethernet/Seriale #36808Sergio Bertana
Amministratore del forumQuando è configurato in RS485 l’ATC-1000 funziona in Half-Duplex, la configurazione è nella pagina web riferita all’UART (Screenshot).
Giugno 22, 2011 alle 5:52 am in risposta a: Connessione con I/O distribuiti TRP via modbus RTU #36806Sergio Bertana
Amministratore del forumAggiungo un consiglio, visto che il formato di rappresentazione del S7-200 è uguale a quello dello SlimLine, per avere il valore in REAL basta che tu definisca una variabile REAL all’indirizzo DB100.16 dove FB modbus appoggia i registri letti dal S7-200 per poterla utilizare nel tuo programma senza dover usare la WordToDouble.
MiaVariabile AT %MD100.16 : REAL; { DE:”Variabile REAL letta da S7-200″ }
-
AutorePost