Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,906 a 1,920 (di 4,482 totali)
  • Autore
    Post
  • in risposta a: Lettura/scrittura variabile formato S5 Timer per Simatic S7-300 #40055
    Sergio Bertana
    Amministratore del forum

    Non sono un esperto di programmazione Siemens, per ovvi motivi utilizzo solo sistemi programmabili Elsist… Ma ho chiesto aiuto ad un nostro cliente che utilizza i pannelli Weintek sia con i nostri sistemi che con Siemens che mi ha dato una soluzione. Soluzione che ti giro così come mi è arrivata non conoscendo l’argomento.

    Il consiglio è di utilizzare un oggetto di introduzione numerica a 16bit BCD ed attivare la scalatura, in modo da avere ingresso minimo 0, ingresso massimo 999 mentre da/verso PLC valore minimo 1000 valore massimo 1999.

    in risposta a: Lettura stringa da lettore Barcode #40054
    Sergio Bertana
    Amministratore del forum

    Come ti ho scritto non ho fisiscamente il bar code reader in mano per fare delle prove, quindi ti ho dato un programma di esempio che deve essere una traccia per andare avanti nel tuo sviluppo. Nel progetto hai tutti i sorgenti, e questo dovrebbe essere più che sufficente per realizzare quallo che hai bisogno. Naturalmente io non conosco la tua esperienza in programmazione quindi vedo di darti altri indizi per la “caccia al tesoro” dove il tesoro è leggere il bar code.Come vedi dal programma in FBD (Screenshot), quando il FB BarcodeRead attiva l’uscita ReadOk si copia il valore in uscita nella variabile Code. Ma se guardi nel FB vedrai che l’uscita si attiva per un loop alla ricezione di un <CR> (Ho ipotizzato che la stringa del reader termini con <CR>). Ma se segui il flusso del programma vedrai che se dopo il <CR> arrivano altri caratteri questi saranno acquisiti e dopo 100mS che non si riceve più nulla si attiverà ancora l’uscita ReadOk. Se il reader invia la stringa letta seguita da un <CR> e poi altri caratteri tu vedrai in Code la stringa ma subito dopo gli altri caratteri ricevuti, quindi dovrai modificare il FB per adattarlo alle tue esigenze.Consiglio ad esempio di togliere il controllo sul <CR> e lasciare solo quello sul tempo, in questo modo in Code avrai la stringa numerica seguita da <CR> e da quello che viene inviato dopo. Poco male perchè se per convertire la stringa in un numero, visto che il numero dai tuoi esempi ha 8 cifre, puoi utilizzare la funzione SysVarsscanf trasferendo il numero in una variabile UDINT (Range massimo 4294967295). La funzione SysVarsscanf terminerà la conversione al primo carattere non numerico quindi si fermerà al <CR>.

    in risposta a: Problema con download progetto su cMT-SVR #40052
    Sergio Bertana
    Amministratore del forum

    Sinceramente non saprei che errore sia, non vorrei sia dovuto ad un conflitto sul PC, potresti provare a reinstallare EasyBuilderPro con con firewall e antivirus disabilitati. Con il sistema operativo Windows 10 capita ultimamente che aggiornamenti del sistema operativo provochino malfunzionamenti o blocchi sulle funzionalità di altri programmi installati.

    in risposta a: Lettura stringa da lettore Barcode #40051
    Sergio Bertana
    Amministratore del forum

    Si l’uscita dello scanner sono effettivamente stringhe ascii, non mi dici se sono terminate con un <CR><LF> oppure no. Sono partito dal programma che trovi illustrato in questo topic, in pratica nel programma veniva inviata una stringa di richiesta ed attesa la stringa di risposta, ho modificato il programma per gestire la sola ricezione della stringa di sposta.

    Come vedi dalla stampa il FB BarcodeRead controlla la ricezione dei caratteri dalla porta seriale e li trasferisce nella variabile Barcode. La lettura si arresta alla ricezione del <CR> oppure dopo 100mS che non si ricevono più dati. Al termine della ricezione si attiva per un loop di programma l’uscita ReadOk ed il programma utente può utilizzare il codice acquisito. Puoi scaricare il programma BarcodeReader e modificarlo per le tue esigenze (Download).

    in risposta a: Router cellulari 4G WLink (connessione da remoto) #40050
    Sergio Bertana
    Amministratore del forum

    In questo topic abbiamo già trattato l’argomento, in realtà dalla data in cui è stato scritto il topic alcune cose sono cambiate, a quanto ne sò ormai neanche TIM e Wind danno standard un IP pubblico sulle loro reti.  Mi risulta però che TIM per i Clienti con partita IVA possa fornire un abbonamento senza NAT (Mi sembra si chiami DeNAT) o qualcosa del genere, ma anche altri gestori possono fornire questo servizio.
    Un modo per poter accedere via Internet ai dispositivi connessi al router è di realizzare una VPN (Che tra l’altro crypta la comunicazione), ma in questo caso sarebbe il router a creare la VPN con un tuo router o PC e i dispositivi sarebbero visibili solo dalla rete endpoint della VPN e da nessun altro dispositivo in Internet.

    Però tu mi parli di videosorveglianza, ed oggi moltissime WebCam forniscono servizi cloud che ne permettono la visualizzazione anche se la videocamera si trova su rete NATtata, quindi nessun problema anche su connessione cellulari.

    in risposta a: Visualizzare layout di foratura su piastra #40049
    Sergio Bertana
    Amministratore del forum

    Utilizzando l’oggetto Dynamic Drawing puoi fare quello di cui hai bisogno, come vedi nello screenshot, utilizzando il progetto dimostrativo fornito da Weintek (Download) ho posizionato i vari fori in posizioni X (Attributes+5) ed in posizioni Y (Attributes+6), per disegnare il foro basta impostare 3 in Attributes+0, puoi impostare il colore del foro in Attributes+3.

    Naturalmente potrai oltre a disegnare i fori anche disegnare il rettangolo della piastra da forare sempre agendo sui vari parametri di Attributes. Per partire dalla ricetta e realizzare il layout grafico dovrai o appoggiarti a delle macro da eseguire sul terminale, oppure gestire la visualizzazione da PLC andando ad agire sulle words di Attributes dell’oggetto.

    in risposta a: Interfacciare un lettore badge ad un terminale #40048
    Sergio Bertana
    Amministratore del forum

    Il progetto riportato nel post è un progetto di esempio scaricabile dal sito Weintek, si tratta di un progetto compresso, quindi lo puoi aprire con qualsiasi versione di EasyBuilderPro, ma bisogna prima decomprimerlo. Con la nuova versione di EasyBuilderPro (6.00.xxx) utilizzi il menù File->Compress/Uncompress e ti trovi il file sorgente editabile, ho comunque provveduto a decomprimerlo (Download).

    Ti ricordo che utilizzando i nostri sistemi SlimLine puoi trovare molte possibilità di utilizzo di un lettore RFID, ti metto alcuni link, ma se cerchi RFID nel forum ne troverai altri (Topic, topic, topic).

    in risposta a: Cambio pagina da menù a tendina su CMT #39355
    Sergio Bertana
    Amministratore del forum

    La gestione pagine dei pannelli CMT è un pò più complessa di quella dei pannelli delle altre serie dove l’argomento è stato trattato nel topic. Nella serie CMT è possibile avere fino a 3 clients che operano sul pannello in modo indipendente uno dall’altro, quindi hai la possibilità di comandare il cambio pagina per tutti i clients oppure sul singolo client. Per poter gestire le operazioni sul singolo client è stato creato un nuovo tipo di variabili le PLW. Quindi le variabili LW sono comuni a tutti i clients, mentre le variabili PLW sono relative al solo sul client da cui stai operando. Ho realizzato il programma CMTPageChange (Download) che dimostra come funziona il cambio pagina. Come vedi dallo screenshot nella Common Window ho inserito un Option List che agisce sulla PLW 0 con la possibilità di selezionare 3 diverse pagine. Per cambiare la pagina ho utilizzato il PLC Control di cambio pagina collegandolo alla PLW 0, in questo modo quando un utente cambia il valore della sua PLW 0 la sua pagina verrà cambiata (Solo la sua). Se nel PLC Control si utilizzasse una LW oppure una variabile PLC modificandone il valore verranno cambiate le pagine di tutti i clients connessi.

    in risposta a: Domanda da principiante in riferimento al libro PLC in pratica #40044
    Sergio Bertana
    Amministratore del forum

    Il supporto al cliente è un punto nobilitante della nostra offerta, specificatamente ai prodotti programmabili (Famiglie SlimLine e Netsyst) abbiamo inaugurato e pubblicizzeremo sul sito l’offerta gratuita di 15-30 minuti di supporto tecnico On-Line con TeamViewer unitamente al primo acquisto di un prodotto. Per avere il supporto occorre utilizzare la nostra versione di TeamViewer (Scaricabile da qui), è una versione portabile, quindi può essere eseguita senza installazione. Contattandoci telefonicamente ci si accorda per l’assistenza, molte volte viene effettuata al momento (Dipende dall’impegno dei nostri tecnici).

    Riteniamo questa offerta interessante sia per chi si avvicina per la prima volta alla programmazione sia per chi ha già un po di esperienza, perchè è un modo per avere informazioni su come iniziare la programmazione dei nostri prodotti in ambiente LogicLab. Quindi disponendo di un nostro prodotto come primo cliente se vuoi puoi contattarci e vediamo insieme via TeamViewer di capire il tuo problema.

    in risposta a: Domanda da principiante in riferimento al libro PLC in pratica #40042
    Sergio Bertana
    Amministratore del forum

    Sul modulo CPU come pure su tutti i moduli di estensione i vari I/O sono sempre indicati con Di00, Di01, …, Do00, Do01, … perchè si fà riferimento al numero progressivo di I/O del modulo. Ma ogni modulo ha un suo indirizzo, nei moduli di estensione si imposta con dei dip switches posti sotto al frontale del modulo, mentre il modulo CPU ha indirizzo 255.

    Gli I/O secondo la normativa IEC61131 sono identificati con il prefisso %IX se ingressi o %QX se uscite, seguito dall’indirizzo del blocco di memoria (Che corrisponde all’indirizzo di modulo) seguito da I/O progressivo sul modulo.  Ecco perchè nel programma LogicLab si definisce come %IX255.0 l’ingresso Di00 del modulo CPU,  255 è l’indirizzo di modulo e 0 è l’ingresso Di00 del modulo, similarmente l’uscita 0 del modulo CPU sarà definita come %QX255.0. Se invece volessi riferirti ad I/O posti sui moduli di estensione dovresti utilizzare l’indirizzo del modulo seguito dal progressivo di I/O, ti rimando a questo topic per altre informazioni.

    Ora se il tuo programma funziona in simulazione, ed hai definito gli I/O come 255.x allora deve funzionare anche sul PLC reale.

    in risposta a: Come eseguire conversione di protocollo #40041
    Sergio Bertana
    Amministratore del forum

    Non abbiamo un convertitore che esegua la conversione tra ModbusTCP e COMLI, però se hai esperienza di programmazione con un modulo CPU SlimLine puoi facilmente svilupparti il convertitore che ti serve. Nel forum puoi trovare degli spunti di programma che ti possono aiutare a sviluppare il tuo programma di conversione. Ad  esempio in questo topic viene spiegato come realizzare un semplice protocollo di comunicazione. Il suggerimento è di realizzare un FB che esegue la conversione di protocollo (Come ad esempio il nostro ModbusTCPGateway), in questo topic ne viene spiegato l’utilizzo.

    Molto utile al tuo scopo può essere questo topic, dove viene spiegato come realizzare un FB di conversione tra protocollo Modbus RTU e Ascii.

    in risposta a: Effettuare il Ping di un indirizzo IP statico su internet #40040
    Sergio Bertana
    Amministratore del forum

    Non esiste una funzione specifica che permetta di conoscere il MAC address dei dispositivi in rete, ma tra le novità del nuovo sistema operativo SFW198C000 del modulo CPU Cortex M7, è prevista la possibilità di connettersi via TCP al local host (127.0.0.1) che può essere usato dalle applicazioni per comunicare con lo stesso sistema su cui sono in esecuzione.

    Questo permette di utilizzare il FB SysTCPClient per connettersi alla porta 23 (Telnet) dello stesso modulo CPU, in questo modo con il FB CLIManager (Topic) potrai autenticarti ed utilizzare il comando arp per conoscere i MAC address relativi agli indirizzi IP presenti in tabella ARP. Eseguendo il FB SysIPReach puoi forzare l’inserimento in tabella arp dell’indirizzo IP che desideri. Ecco un esempio di risposta al comando ARP (Ho oscurato alcuni numeri).

    [Admin]> arp
    IP:192.168.0.xxx MAC:00-xx-8C-xx-25-78 [118 (Sec)]
    IP:192.xxx.0.33 MAC:74-xx-EA-BC-36-xx [120 (Sec)]
    IP:192.168.xxx.xxx MAC:00-50-xx-C3-C4-xx [120 (Sec)]
    3 ARP entrie(s) found

    in risposta a: Variabile RETAIN da visualizzare in un watch #40038
    Sergio Bertana
    Amministratore del forum

    Probabilmente hai dichiarato la variabile ma non l’hai utilizzata in nessun program, nella compilazione LogicLab verifica che le variabili dichiarate siano effettivamente utilizzate e se non lo sono non le alloca risparmiando memoria. Naturalmente non essendo allocate le variabili non esistono fisicamente e quindi non possdono essere visualizzate nella finestra di watch.

    Linko questo topic che non centra con la visualizzazione in watch ma che spiega il funzionamento delle variabili RETAIN. Mentre in questo topic sono riportate informazioni sui limiti della finestra di watch.

    in risposta a: Acquisizione segnali digitali ed analogici #40037
    Sergio Bertana
    Amministratore del forum

    Per la gestione degli ingressi analogici si utilizza il FB SysGetAnInp, per la gestione delle uscite analogiche si utilizza il FB SysSetAnOut. Devi definire come parametro l’indirizzo hardware (Impostato con i dip switches) del modulo ed il canale da gestire. Nel parametro Mode per gli ingressi è possibile definire il modo di acquisizione (Corrente, tensione, temperatura, resistenza), per le uscite il tipo di uscita (Corrente, tensione).

    Aggiungo una nota per quanto riguarda gli I/O digitali, il sistema operativo li gestisce in immagine di processo allocandoli automaticamente nei data block di ingresso e di uscita. Quindi basta mappare gli ingressi come %IXmc e %QXmc per le uscite (m:Indirizzo di modulo, c:Canale), quindi l’ingresso 5 del modulo con indirizzo 1 sarà %IX1.5 mentre l’uscita 7 del modulo 4 sarà %QX4.7. Da ricordare che l’indirizzo modulo della CPU è 255, quindi l’ingresso 1 del modulo CPU sarà %IX255.1.

    Anche per gli I/O digitali è comunque possibile acquisire/gestire direttamente il valore utilizzando il FB SysGetPhrDI per la lettura degli ingressi e SysSetPhrDO per la gestione delle uscite. Consiglio la lettura di: topic, topic, topic.

    in risposta a: Modbus TCP su server remoto via DynDNS #40036
    Sergio Bertana
    Amministratore del forum

    No purtroppo nei terminali Weintek è possibile impostare solo l’indirizzo IP del server Modbus, non è possibile impostare degli URLs. Puoi però come dici giustamente tu utilizzare un ns sistema SlimLine per questo scopo, vediamo le diverse possibilità.

    Utilizzo FB ModbusMaster  (Estratto manuale): Istanzi una o più FB ModbusMaster che tramite FB TCPClient interrogano via ModbusTCP i tuoi dispositivi definendone l’URL, i dati letti o da scrivere dai/verso i dispositivi verranno appoggiati su variabili dello SlimLine ed il pannello Weintek agirà su di esse connettendosi via IP. Nel forum trovi molti esempi di utilizzo del FB ModbusMaster.

    Utilizzo FB DataStreamExch (Estratto manuale), Istanzi una o più FB DataStreamExch_v1, questo FB connette tra di loro due stream di comunicazione, su di uno attivi un server TCP e sull’altro connetti un TCPClient che connetterai definendone l’URL al tuo dispositivo remoto. Sul  pannello Weintek definirai uno i più PLC che in realtà saranno sempre lo SlimLine ma definendo diverse porte TCP potrai dialogare con i tuoi dispositivi remoti. Questa soluzione è molto valida perchè in pratica permette al pannello di cumunicare direttamente con il dispositivo remoto.

Stai visualizzando 15 post - dal 1,906 a 1,920 (di 4,482 totali)