Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Febbraio 23, 2015 alle 5:14 pm in risposta a: Disponibilità protocollo Modbus sullo SlimLine CODESYS #38763
Sergio Bertana
Amministratore del forumAbbiamo citato le Oscat in quanto molti costruttori di prodotti basati su CODESYS ne fanno un gran strombazzare. Queste librerie rappresentano un lodevole impegno nel campo del software libero applicato alla automazione industriale. Anche se personalmente preferisco “costruirmi” la mia libreria di funzioni e FB, trovo apprezzabile il lavoro svolto e mi è succeso di rifarmi alle Oscat per trarre ispirazione su particolari esigenze che poi ho applicato anche per librerie in LogicLab.
Per quanto riguarda il Modbus sono anni che lo utilizziamo in LogicLab ed è stato normale eseguirne il porting in CODESYS. Lo SlimLine CODESYS è pensato per essere “trasparente” alla versione LogicLab tant’è che lo abbiamo fornito dello stesso set di funzioni ed FB embedded presenti sulla versione LogicLab.
Lo spirito del forum è di supportare i clienti e certo possiamo farlo nel modo migliore solo se si utilizzano le nostre funzioni ed FB. Però non vogliamo neanche chiuderci nel nostro cortile, e ben vengano esperienze con altre librerie ogni segnalazione è uno stimolo a cercare ed a migliorarsi.
Sono contento che la battuta a te apparsa sarcastica (In realtà voleva essere ironica) non ti abbia urtato, non è certo mia intenzione urtare le persone. Magari Oscat è il cognome di una bella tedescona… e una telefonata ci può anche stare…
Sergio Bertana
Amministratore del forumConsultando il manuale hardware del modulo (Area download in basso alla pagina prodotto) trovi le informazioni riguardo le connessioni degli I/O dei moduli di espansione.
In generale gli ingressi digitali veloci possono essere utilizzati come tutti gli altri ingressi, sono anche loro mappati nella immagine di processo degli ingressi. A differenza degli altri, non hanno il doppio diodo LED all’interno e quindi possono solo operare con comune a massa ed ingresso positivo. In più hanno la particolarità tramite opportuni ponticelli di operare anche a 5 volt.
Quando parli di tramettitore di segnale attivi o passivi ti riferisci a trasduttori con uscita in corrente 4÷20 mA. Da quel poco che ne sò, gli attivi sono alimentati e generano la corrente in uscita, i passivi si alimentano dal circuito di uscita. Ma entrambi possono essere acquisiti dai nostri moduli di ingresso analogico.
Common o differential sono riferiti al modo di acquisizione del segnale, non c’entrano nulla con attivo e passivo. Qualsiasi tipo di trasduttore può essere acquisisto sia in modo comune che in differenziale. Quando possibile si consiglia il modo differenziale perchè utilizzando un cavo twistato è possibile minimizzare i distrurbi EMI.
Febbraio 23, 2015 alle 9:53 am in risposta a: Disponibilità protocollo Modbus sullo SlimLine CODESYS #38758Sergio Bertana
Amministratore del forumLe funzioni a cui ti riferisci non c’entrano nulla con il Modbus, si tratta di funzioni di sistema per gestire le connessioni TCP. Per il modbus i nostri FB sono MobusMaster (Equivalente alla MB_Client) e MobusSlave (Equivalente alla MB_Server).
A differenza delle FB di Oscat che sono solo TCP/IP e UDP, le nostre possono operare su un qualsiasi stream di I/O (Anche la porta seriale) e gestiscono tutti e 3 i tipi di Modbus (Ascii, RTU, TCP).
Detto questo quale FB usare è una tua scelta, se usi le nostre FB puoi chiedere informazioni a noi, se usi le Oscat devi rivolgerti al Sig. Oscat…
Febbraio 21, 2015 alle 8:42 am in risposta a: Apricancello da chiamata telefonica con database #38756Sergio Bertana
Amministratore del forumUtilizzando Toolly possiamo testare il funzionamento del protocollo di comunicazione sia Voi lato server (Nel proseguo Sv) che io lato Modem Machine (Nel proseguo Mm), questo è molto comodo per sviluppare l’applicazione.
Considerando che i pacchetti UDP sono intrinsecamente sicuri grazie al controllo di checksum del datagramma (Come indicato dalla RFC 768), possiamo ipotizzare uno scambio di informazioni in ASCII. Questo facilita anche il debug via Toolly trattandosi di pure stringhe di testo.
a) Condivido la scelta di uno scambio dati ciclico (Heartbeat) tra Mm e Sv nell’ottica di garantire il controllo della funzionalità. Mm invia ogni 10 Sec Ready se tutto ok oppure Error:xx in caso di anomalia. Attende la risposta Ok da Sv.
b) Fissato il numero di telefono su 12 cifre massimo, su ricezione chiamata telefonica, Mm acquisisce il numero ed invia Call:xxxxxx, se numero nascosto invia Call:0000000.
c) Mm attende la risposta Allowed se accesso consentito, o Denied se non consentito, da Sv. se non riceve risposta dopo un tempo reinvia il numero.
Su ricezione Allowed viene gestita l’apertura della porta attivando una uscita logica per qualche secondo.
Sergio Bertana
Amministratore del forumEsistono due diverse soluzioni al problema. Radiomodem Utilizzando due radiomodem serie DL, uno connesso in RS485 al misuratore fiscale ed uno connesso in RS232 alla stampante. Scegliendo il DL868 normale o versione H non vi sono problemi a coprire i 3 Km di distanza tra i due punti anche se non vi fosse una visuale ottica tra gli stessi (Case, alberi, altri ostacoli).Pro: Semplicità di configurazione, funziona anche senza visuale ottica perfetta. Contro: permette di trasferire la sola connessione seriale.WiFi Utilizzando due NanoBeam a 5GHz è possibile realizzare una connessione WiFi tra i due punti. Connettendo alla porta ethernet delle NanoBeam due convertitori Ethernet-Seriali (Esempio ATC-1000) configurati in modalità paired (Uno server e l’altro Client) è possibile fare transitare la comunicazione seriale tra i due punti.Pro: Permette di trasferire oltre alla seriale qualsiasi comunicazione TCP/IP, Internet, telecamere, VoIP, ecc… Contro: Funziona solo se c’è perfetta visibilità ottica, più complessa la configurazione.
Febbraio 20, 2015 alle 10:11 am in risposta a: Utilizzo porte seriali in modalità Full-Duplex #38754Sergio Bertana
Amministratore del forumPer la connessione a SCADA e/o pannelli operatore HMI solitamente questi prodotti implementano il protocollo nativo CODESYS. Ad esempio i nostri pannelli operatore implementano il protocollo nativo (Estratto manuale).Per il Modbus nessuna preoccupazione, abbiamo sviluppato FB apposite per gestire il Modbus Ascii, RTU e TCP sia in modalità master che slave (Topic). Come vedi il FB slave opera su una propria area di memoria dove tu da programma mappi le variabili che ti interessa pubblicare sul protocollo.
Sergio Bertana
Amministratore del forumPer la gestione dei moduli analogici abbiamo definito dei FB appositi. SysGetAnInp per acquisizione ingressi analogici e SysSetAnOut per la gestione delle uscite analogiche (Fare riferimento al manuale Programmazione IEC61131-3). Occorre istanziare un FB nel programma per ogni canale analogico da gestire.
Analogamente alle analogiche esistono appositi FB anche per l’acquisizione di Counters, Encoders, ecc, tutti questi FB sono documentati nel manuale di programmazione.
Sergio Bertana
Amministratore del forumCome si vede dal menù PLC configuration->Steuerungskonfiguration (Screenshot), ogni modulo di estensione I/O digitale e mappato in memoria con variabili DWORD a 32 bits. Ogni scheda può avere al massimo 32 punti di inputs e 32 punti di outputs, così sono definite 2 DWORD per ogni scheda, compreso il modulo CPU.
Ad ogni DWORD è stato definito un nome mnemonico SysDIxx per gli ingressi e SysDOxx per le uscite dove al posto di xx vi è l’indirizzo di modulo. Unica differenza per gli I/O del modulo CPU che si chiamano SysCPUDI e SysCPUDO. Nel programma è quindi possibile riferirsi direttamente ai vari I/O indicando lo mnemonico di modulo seguito dal numero di I/O sul modulo (Esempio SysDI01.5, SysDO05.15).
Da PLC Configuration con un doppio click sul singolo punto di I/O (Screenshot) è possibile assegnare uno mnemonico (Esempio PStart, PStop, ecc) che poi potrà essere referenziato nel programma.
E’ anche possibile definire gli mnemonici direttamente nelle Global_Variables, in questo caso occorre rifersi alle variabili %IX e %QX (Vista la modularità 32 bits esistono 2 variabili %IX e 2 variabili %QX per ogni modulo di I/O) (Screenshot).
Febbraio 19, 2015 alle 11:22 am in risposta a: Apricancello da chiamata telefonica con database #38748Sergio Bertana
Amministratore del forumNoi progettiamo, costruiamo e supportiamo tecnicamente dei prodotti programmabili, quindi non forniamo un prodotto finito, ma prodotti che tramite un tool di sviluppo e con un linguaggio (non sconosciuto) ma molto ben conosciuto, e standardizzato dalla norma IEC-61131, permette di realizzare l’automazione richiesta. Come descritto precedentemente appositi FB gestiscono le operazioni complesse permettendo di ottenere velocemente il risultato.
Il protocollo Modbus è uno standard de-facto di comunicazione ed esiste una valanga di letteratura al riguardo, la specifica è scaricabile anche dal ns sito (Reference Guide). Comunque il programmatore può sviluppare anche un’altro tipo di protocollo di comunicazione (Il forum ha esempi in merito da cui partire).
Noi non realizziamo programmi completi, ci limitiamo al supporto del cliente nella programmazione (Anche tramite supporto remoto), desideriamo che sia il cliente “padrone” del programma e non debba dipendere da noi per le modifiche. In questo caso la soluzione che ho prospettato è quella di modificare un prodotto già esistente nel modo più generico possibile. Gestire le queries SQL vorrebbe dire stravolgere il prodotto e realizzare una applicazione “sartoriale” sulle Vs necessità.
Visto che c’è un server dove risiede l’interfaccia di gestione delle tabelle database mi sembra naturale gestire tutto da questo server. Così sarà solo il programma del server che “conosce” l’organizzazione del database facilitando l’eventuale riorganizzazione dello stesso.
Febbraio 19, 2015 alle 9:24 am in risposta a: Blocco funzione CTU con conteggio su variabile UDINT #38744Sergio Bertana
Amministratore del forumIl blocco funzione CTU come definito dalla norma IEC-61131 opera su una variabile di tipo INT. Ma è estremamente semplice costruirsi un proprio blocco funzione CTU che operi sul tipo di variabile desiderato, il modo più ovvio è utilizzando l’operando ADD (Topic).
Con LogicLab è possibile costruirsi da soli le proprie funzione e FB (Topic), così nulla vieta di costruirti il tuo CTU modificato con la variabile UDINT. Ti ho preparato un progetto con il blocco funzione MyCTU (Stampa) che altro non è che il CTU standard IEC con il tipo variabile modificato. Il progetto può essere un buon propedeutico per acquisire le tecniche di sviluppo delle proprie FB (Download progetto).
Solitamente sviluppo le funzione ed i FB utilizzando il linguaggio ST che meglio si presta per la gestione di operazioni complesse, ma nulla vieta nel tuo caso di costruire un FB in linguaggio ladder che contiene al suo interno un ramo con l’operatore ADD.
Febbraio 19, 2015 alle 7:37 am in risposta a: Gestione scheda I2C custom connessa come estensione #38743Sergio Bertana
Amministratore del forumL’aggiunta di moduli custom connessi al bus è uno dei plus che offriamo, può risultare conveniente abbinare ad un PLC classico con i suoi moduli di I/O ed il suo ambiente di programmazione dei proprii moduli creati su misura per l’applicazione, ed il tuo caso lo dimostra.
Il bus di estensione I2C viene gestito dal sistema operativo in multitasking, ed i nostri moduli di I/O hanno una logica che garantisce con il CRC sui dati la sicurezza della comunicazione. Tutti gli I/O del PLC mappati in memoria sono gestiti tramite questa interfaccia “sicura” che solo utilizzando la nostra FPGA è possibile garantire.
Con la funzione SysI2CWrRd è possibile gestire qualsiasi periferica I2C standard, quindi non hai problemi a gestire come da tua esigenza i moduli di I/O standard, il display ed il modulo RFID.
Febbraio 18, 2015 alle 5:08 pm in risposta a: Apricancello da chiamata telefonica con database #38741Sergio Bertana
Amministratore del forumQuello che possiamo proporre è una personalizzazione della ns Modem machine, il programma (Realizzato con LogicLab) di cui forniamo i sorgenti, tramite la libreria di gestione modem, gestisce un modem connesso alla porta seriale. Il FB ModemCore controlla continuamente la funzionalità del modem e se è connesso alla rete GSM, provvedendo in caso di problemi a reinizializzarlo.Una pagina web di test permette da un browser di testare il funzionamento eseguendo/ricevendo chiamate telefoniche ed inviando/ricevendo messaggi SMS. Agendo sul programma si può aggiungere la parte di interfaccia con il database.Premesso che il prodotto non può accedere direttamente alle query sul database, si può ipotizzare uno scambio dati TCP/IP o UDP con il server, delegando alla applicazione sul server l’esecuzione delle queries sul database. In pratica il server può interrogare ciclicamente il prodotto e/o attendere che il prodotto invii al server un pacchetto UDP con il numero CLIP ricevuto. Il server fatte le verifiche del caso potrà inviare al prodotto l’ordine di apertura cancello che verrà gestito da una delle uscite logiche presenti.Tra i modi per interfacciarsi posso citare Modbus TCP (Vedi topic, topic), esistono anche librerie in PHP per gestire il modbus TCP la più nota è la PhpModbus. E’ anche possibile sviluppare un proprio protocollo ad hoc in alternativa al modbus (Topic).
Febbraio 18, 2015 alle 1:37 pm in risposta a: Visualizzazione variabili REAL da PLC Siemens S7 1500 #38745Sergio Bertana
Amministratore del forumPer le variabili 32bit e REAL devi selezionare il tipo variabile DBDn, definendo nel campo indirizzo il numero della DB e 4 cifre per l’indirizzo della variabile (Esempio, 100020, per la DB 10 word 20). Essendo variabili REAL dovrai poi definire il tipo 32-bit Float (Screenshot).
Febbraio 18, 2015 alle 7:54 am in risposta a: Gestione scheda I2C custom connessa come estensione #38740Sergio Bertana
Amministratore del forumHai visto bene per la gestione di periferiche custom connesse al bus di estensione di SlimLine abbiamo realizzato una specifica funzione SysI2CWrRd che permette di gestire l’accesso in lettura e scrittura di un qualsiasi dispositivo I2C. Utilizzando questa funzione è possibile fare coesistere senza problemi il dispositivo custom con i nostri moduli di estensione (Topic).
Per ulteriori informazioni sulla connessione di periferiche custom al bus di estensione puoi fare riferimento al Manuale hardware CPU SlimLine ARM7 OEM.
Unica esperienza sui moduli di interfaccia RFID è quella con il lettore RFID ProxPoint Plus della HID, questo modulo si connette tramite due ingressi digitali (Clock e Data) a due ingressi del sistema ed il FB HIDClkDtaReader ne provvede alla lettura (Topic). In questo topic un esempio pratico di utilizzo.
Febbraio 17, 2015 alle 4:04 pm in risposta a: Disponibilità protocollo Modbus sullo SlimLine CODESYS #38739Sergio Bertana
Amministratore del forumGiornata tranquilla oggi ho trovato il tempo di fare il porting anche del FB ModbusMaster, ecco l’estratto del manuale. Ho realizzato anche un semplice progetto dove su di uno SlimLine coesistono i FB Master e Slave ed i due FB dialogano tra di loro utilizzando le due porte seriali (Download progetto).
Come si vede nell’esempio sul FB ModbusMaster è attivato lo Spy, in questo modo tramite una console di spionaggio (Fai riferimento al manuale) è possibile visualizzare i frame dati in transito. Questa soluzione è molto comoda per capire eventuali errori di protocollo (Screenshot).
-
AutorePost