Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 2,656 a 2,670 (di 4,367 totali)
  • Autore
    Post
  • in risposta a: Disponibilità protocollo Modbus sullo SlimLine CODESYS #38738
    Sergio Bertana
    Amministratore del forum

    A 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).

    in risposta a: Connessione SlimLine in modalità Client TCP/IP #38737
    Sergio Bertana
    Amministratore del forum

    Non 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.

    in risposta a: Nuovo blocco funzione per richiesta pagina da Web server #38735
    Sergio Bertana
    Amministratore del forum

    Si è 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.

    in risposta a: Differenze tra moduli CPU e moduli OEMs #38732
    Sergio Bertana
    Amministratore del forum

    Le 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.

    in risposta a: Connessione SlimLine in modalità Client TCP/IP #38730
    Sergio Bertana
    Amministratore del forum

    Aggiungo 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.

    in risposta a: Connessione SlimLine in modalità Client TCP/IP #38729
    Sergio Bertana
    Amministratore del forum

    La 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.

    in risposta a: Esportare dati sul web da SlimLine (Usando Php) #38728
    Sergio Bertana
    Amministratore del forum

    Per soluzionare il problema proposto consiglio di dare una occhiata e questa nuova FB (Topic).

    in risposta a: Nuovo blocco funzione per richiesta pagina da Web server #38727
    Sergio Bertana
    Amministratore del forum

    Per 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).

    in risposta a: Utilizzare il Manufacturer ID per proteggere il programma #37471
    Sergio Bertana
    Amministratore del forum

    Aggiungo l’ultima risposta, LogicLab permette la scrittura di funzioni e blocchi funzioni (In tutti e 5 i linguaggi della IEC61131) che poi possono essere utilizzati come oggetti nei programmi (Topic).

    E’ possibile criptare le funzioni e i FB, e distribuirli all’interno di librerie proprio come facciamo noi con le librerie a corredo della installazione di LogicLab (Topic).

    in risposta a: Utilizzare il Manufacturer ID per proteggere il programma #38726
    Sergio Bertana
    Amministratore del forum

    Utilizzare il MID per sproteggere FB
    Acquistando il MID, vi verrà fornita una password per ognuno dei FB di cui il MID prevede lo sblocco, nel vostro progetto allo startup con la funzione SysPCodeAccept (O da pagina web) dovrete inserire le password di slocco. Così il programnma potrà utilizzare i FB su tutti i dispositivi provvisti di MID.

    Utilizzare il MID per proteggere il proprio programma
    I programmi, le funzioni e/o i FB che costituiscono la “parte nobile” del progetto al loro interno eseguono il controllo se valore della variabile SysMfcCode è uguale al MID acquistato. Se il controllo non passa si può decidere di non eseguire e/o eseguire per un certo tempo le operazioni. Questi oggetti vengono poi criptati con l’opzione Crypt di LogicLab (Screenshot).

    Questo permette dare al cliente finale il progetto permettendo una facile gestione degli upgrades, il cliente potrà anche intervenire autonomamente sul suo programma per le parti che non sono state protette. Quello che interessa al progettista è salvaguardare le “parti nobili” dove risiede il know-how e dove probabilmente ha speso il maggior tempo nello sviluppo.

    L’abbinamento criptatura e MID garantisce che il Vostro cliente finale pur disponendo dei sorgenti debba necessariamente acquistare da voi il prodotto su cui eseguire il programma perchè Elsist venderà solo a voi il prodotto con il vostro MID. Ecco quindi che se la Vostra fornitura prevede il pagamento di royalties il cliente finale non potrà trovare alcun escamotage per aggirarne il pagamento.

    in risposta a: Utilizzare il Manufacturer ID per proteggere il programma #38725
    Sergio Bertana
    Amministratore del forum

    Il Manufacturer ID (MID) è la soluzione che proponiamo come unica sicura per la protezione della proprietà intellettuale del software, richiedendo un intervento di programmazione del prodotto da parte nostra ha dei costi (Vedi articolo). Esistono anche metodi meno efficaci che possono essere messi in pratica senza costi dall’utente (Topic). Ora veniamo alle domande.

    Il MID ha un costo una tantum, nel momento in cui lo si richiede si indicano i prodotti in cui verrà utilizzato e noi forniremo una eMail con le passwords (Ogni codice prodotto ha un suo codice da 20 caratteri) da inserire nel programma per testarlo con la funzione SysPCodeAccept (Estratto manuale). L’attivazione del MID sul prodotto ha un costo applicato ad ogni prodotto acquistato.

    Se si decide di utilizzare lo stesso MID per altri prodotti basterà richiederlo, e se applicabile, invieremo la eMail con la password di attivazione per il codice di prodotto richiesto senza ulteriori costi.

    in risposta a: Programma demo modbus TCP/IP slave #38724
    Sergio Bertana
    Amministratore del forum

    Certo che è possibile, naturalmente dovrai agire sulle stesse variabili da entrambe le istanze Modbus, in pratica da Mobus RTU la tua schedina scrive/legge le stesse variabili che sono scritte/lette da Modbus TCP/IP.

    Se prendiamo ad esempio la variabile UINT DB 100.16 (Address Modbus 40008) potrai scrivere il valore da Modbus RTU e leggerlo da Modbus TCP/IP e viceversa.

    Se la tua schedina può operare come slave Modbus RTU puoi anche utilizzare l’FB ModbusTCPGateway (Topic) per accedervi da Modbus TCP/IP.

    in risposta a: Aggiornamento automatico pagine web con AJAX #38722
    Sergio Bertana
    Amministratore del forum

    Ho provato a verificare il funzionamento dell’esempio con Google Chrome e funziona correttamente. Il punto che tu indichi AJAXSendRequest(b) è una funzione javascript di richiesta pagina HTM (La pagina richiesta è quella indicata nella chiamata).

    La funzione viene eseguita automaticamente ogni 3 secondi body onLoad=”setInterval(‘AJAXSendRequest(‘Values.htm’)’, 3000)”, e come vedi viene richiesta la pagina Values.htm che deve essere nella stessa cartella della pagina AjaxPage.htm.

    Tu hai trasferito nella cartella Storage entrambe le pagine HTM ?

    AJAX non è altro che una tecnica di richiesta pagine al server HTTP (Tramite la funzione AJAXSendRequest) che si comporta come un browser, alla ricezione della pagina viene eseguita la funzione SetupValues a cui è passato il contenuto della pagina richiesta PContent.

    La pagina Values.htm contiene Tags che saranno valorizzare con i valori, se tu provi ad aprire la pagina Values.htm da un browser riceverai i 3 valori separati dal simbolo “|”.

    in risposta a: Utilizzo porte seriali in modalità Full-Duplex #38720
    Sergio Bertana
    Amministratore del forum

    L’ambiente CODESYS ha sicuramente dalla sua il fatto di essere utilizzato da diversi costruttori di PLC e quindi dispone di maggiori fonti di informazioni. L’ambiente LogicLab pur avendo come ambiente di sviluppo nulla da invidiare al CODESYS 2 (Anzi per alcune cose lo preferisco) è presente su PLC e drivers di alcuni costruttori che a differenza di CODESYS non ne enfatizzano l’utilizzo.

    Ecco quindi il nostro maggiore sforzo documentativo su questo ambiente che offre buone possibilità ma dove le fonti di informazioni sono molto ridotte. Tra le altre cose ricordo che LogicLab importa i files scritti in ST di CODESYS (Topic).

    Ad oggi CODESYS ha dalla sua la possibilità di operare anche come client TCP cosa che nei sistemi programmabili da LogicLab è ancora in fase di sviluppo. Mentre non ci sono problemi ad operare come server TCP.

    Altro vantaggio di CODESYS è la disponibilità del WebVisu (Topic), su LogicLab abbiamo le pagine web dinamiche (Topic).

    in risposta a: Utilizzo porte seriali in modalità Full-Duplex #38718
    Sergio Bertana
    Amministratore del forum

    Certo che è possibile gestire le comunicazioni seriali nel modo che più ti aggrada, dopo avere aperto la porta con la funzione Sysfopen disponi di un file pointer che puoi utilizzare nelle funzioni:

    Sysfgetc, get character from file,
    Sysfputc, put character to file,
    Sysfread, read data from file,
    Sysfwrite, write data to file,
    Ecc…

    Il problema è il Modbus TCP che sulla CPU CODESYS non è nativo ma devi cotruirti e/o cercare su Internet un gestore. Se invece utilizzi la versione SlimLine per LogicLab hai le stesse identiche funzioni ed in più hai anche disponibile il supporto di 3 server Modbus TCP.

    Per la versione LogicLab puoi trovare nel forum molti esempi applicativi, semplice programma echo, sambio dati seriale/UDP, semplice convertitore Ethernet/Seriale. Ma usando il search nel forum troverai molti altri esempi in codice sorgente. Tutti gli esempi per LogicLab possono comunque essere adattati all’ambiente CODESYS.

Stai visualizzando 15 post - dal 2,656 a 2,670 (di 4,367 totali)