Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Febbraio 19, 2015 alle 11:22 am in risposta a: Apricancello da chiamata telefonica con database #38748
Sergio 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).
Febbraio 17, 2015 alle 11:33 am in risposta a: Disponibilità protocollo Modbus sullo SlimLine CODESYS #38738Sergio Bertana
Amministratore del forumA differenza della linea programmabile con LogicLab, dove abbiamo sviluppato e continuiamo a sviluppare, librerie e programmi di esempio, sulla linea CODESYS vista la grande diffusione dell’ambiente abbiamo una fertilità creativa inferiore. Gli utenti più smaliziati hanno già le loro librerie (Che utilizzano su altri prodotti programmabili in CODESYS) e/o trovano sulla rete spunti da cui partire.
Sul Modbus c’è parecchia letteratura in rete, per il momento mi sono cimentato nel porting del FB ModbusSlave dall’ambiente LogicLab all’ambiente CODESYS, ecco l’estratto del manuale. Ho realizzato un progetto CODESYS che contiene i due esempi riportati nel manuale (Nella cartella dell’esempio si trova la libreria con il blocco funzione) (Download progetto).
Febbraio 16, 2015 alle 10:22 am in risposta a: Connessione SlimLine in modalità Client TCP/IP #38737Sergio Bertana
Amministratore del forumNon mi dici che protocollo usano le marcatrici ma da quanto dici sembra che operano solo in TCP/IP e non in UDP. Come dicevo già nel post precedente la possibilità di connettersi in modalità Client è attualmente un work in progress, purtroppo non ho scadenze certe di tempi.
Allo stato attuale la soluzione con lo SlimLine in ambiente LogicLab è utilizzare un convertitore Ethernet-Seriale, in questo modo è possibile sviluppare l’FB di dialogo, che se il protocollo è Modbus TCP è già disponibile tra i blocchi funzione da noi forniti.
Se il protocollo è proprietario potete sviluppare una FB apposita e/o utilizzare quella già sviluppata per connettervi in seriale tenuto conto che la connessione sarà sempre comunque tramite uno stream di I/O (Tipo FILEP). Salvo poter poi nel futuro quando sarà diponibile la connessione Client solo cambiare il tipo di stream di I/O senza ulteriori modifiche alla FB di gestione protocollo.
Febbraio 16, 2015 alle 7:15 am in risposta a: Nuovo blocco funzione per richiesta pagina da Web server #38735Sergio Bertana
Amministratore del forumSi è proprio così, abbiamo realizzato questa FB per potersi connettere a server HTTP in attesa di implementare la modalità Client nel sistema operativo (E’ un lavoro attualmente in progress). Nel frattempo è possibile come escamotage utilizzare un qualsiasi convertitore Ethernet-Seriale per operare la connessione Client con il server.
Nell’esempio la scelta è caduta sull’ATC-3000 perchè supporta il DNS e quindi è possibile definire l’indirizzo del server con il nome anzichè con l’IP. Questo permette di connettersi anche a server che sono pubblicati su IP dinamici.
L’FB utilizza uno stream di I/O, nella fattispecie uno stream seriale, quindi è compatibile anche con le versioni MPS046A*00 dello SlimLine.
Sergio Bertana
Amministratore del forumLe versioni B sono hardware non compatibili con le versioni D. Le versioni B supportano tutte le releases del software SFW167**00, mentre le versioni D supportano tutte le releases del software SFW184**00. Le differenze di caratteristiche hardware tra le due versioni e indicata con la nota (5) nella tabella delle caratteristiche sulla pagina prodotto.
Questi prodotti OEM non sono da noi gestiti a magazzino per evitare immobilizzi di schede che normalmente utilizziamo nella produzione del prodotto finito. Ma proprio perchè li utilizziamo nel prodotto finito sono sempre disponibili e quindi siamo in grado di evadere l’ordine in tempi molto brevi (Se clicchi sul simbolo di disponibilità vedrai che indichiamo cautelativamente 1 settimana).
Le versioni CAN e RS485 sono due hardware diversi, cambia il driver di comunicazione, il sistema operativo riconosce il tipo di configurazione ed abilita la sola funzionalità della versione installata.
Sergio Bertana
Amministratore del forumAggiungo che se la marcatrice supporta il Modbus TCP basterà impostare il convertitore Ethernet-Seriale per connettersi alla porta 502 (La standard di Modbus) della marcatrice. Nel tuo programma utilizzando il FB ModbusMaster passando il FILEP della porta COM conessa al convertitore potrai gestire lo scambio dati in Modbus.
Sergio Bertana
Amministratore del forumLa tua domanda permette di allacciarmi ad argomenti già trattati nel forum e quindi ne approfitto per un riepilogo, la porta Ethernet dello SlimLine è autosensing (Topic) quindi puoi usare sia cavi diritti che cross per la connessione, il Ping è trattato in questo topic.
Per quanto riguarda la possibilità di aprire una connessione TCP/IP in modalità Client sugli SlimLine LogicLab è attualmente un lavoro in progress, mentre questa possibilità è disponibile sugli SlimLine CODESYS. Esistono due possibilità per aggirare il problema.
Connessione UDP
Se la marcatrice accetta connessioni UDP è possibile dialogare in UDP con la macchina, con il protocollo UDP non vi sono limitazioni puoi ricevere ed inviare pacchetti UDP con le funzioni SysUDPSktRcv e SysUDPSktSend (Topic).Connessione TCP/IP Client con convertitore
Per connetterti in TCP/IP in modalità client puoi utilizzare un convertitore Ethernet-Seriale (Esempio ATC-1000) connesso ad una porta seriale COM dello SlimLine. Il convertitore andrà impostato come Client e dovrai definire l’indirizzo IP e la porta del server a cui connettersi (Nel tuo caso la macchina marcatrice). Il convertitore cercherà di aprire e mantenere attiva una connessione con il server e tu potrai in questo modo inviare e ricevere i dati dalla porta COM. Un utilizzo di questa tecnica è in questo topic.Febbraio 13, 2015 alle 5:38 pm in risposta a: Esportare dati sul web da SlimLine (Usando Php) #38728Sergio Bertana
Amministratore del forumPer soluzionare il problema proposto consiglio di dare una occhiata e questa nuova FB (Topic).
Febbraio 13, 2015 alle 4:45 pm in risposta a: Nuovo blocco funzione per richiesta pagina da Web server #38727Sergio Bertana
Amministratore del forumPer testare il FB ho postato su un account gratuito presso Altervista uno script PHP Example.php che esegue la divisione tra due valori, è possibile richiamare lo script da un programma SlimLine passando i due valori e ricevendo nella pagina ritornata il risultato. Ecco il sorgente dello script.
echo “The result is: “.$_REQUEST[“Dividend”]/$_REQUEST[“Divisor”];
Il programma di esempio (Stampa), su di un sistema SlimLine, esegue la richiesta della pagina ogni 5 secondi passando i valori di Dividend e Divisor e ricevendo il risultato. Come si vede dallo screenshot passando i valori allo script viene eseguito il calcolo e ritornato il risultato. In HTTPStatus è ritornata l’intestazione inviata dal server, nel caso di errori sarà presente il codice di errore. Da debug è possibile variare i valori e verificare il risultato di ritorno (Download programma).
-
AutorePost