Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumL’eccezione DAT_ABORT (Data abort) si ha quando si tenta di accedere ad un indirizzo di memoria non esistente.
Giustamente come fai notare tu il programma sviluppato dall’utente è allocato dopo l’indirizzo 0x60000, agli indirizzi riportati nel file di log corrispondono funzioni del sistema operativo. Se hai la versione SFW184B000 ad indirizzo 0x000052C4 è allocata la funzione memcpy che è richiamata dalla funzione Sysmemmove, mentre ad indirizzo 0x000055E0 è allocata la funzione memset che è richiamata dalla funzione Sysmemset.
Queste funzioni operano con dei puntatori, in generale attenzione quando si usano puntatori se l’indirizzo caricato nel puntatore è sabagliato si può incorrere in questo tipo di eccezione.
Aggiungo inoltre che magari tu non stai usando direttamente queste funzioni ma utilizzi una funzione e/o un blocco funzione che a sua volta utilizza queste funzioni.
Sergio Bertana
Amministratore del forumIl router VPN eWon permette già l’accesso a tutti i dispositivi interni alla rete quindi configurandolo opportunamente tramite la sua VPN è possibile raggiungere sia il pannello operatore che il PLC. Non è necessario attivare l’EasyAccess sul terminale per questo.
L’EasyAccess serve proprio ad evitare l’utilizzo della VPN e del router eWon. Basta che il cliente abbia una connessione ad Internet e tramite l’EasyAccess è possibile passare attraverso il firewall del cliente e raggiungere il pannello operatore da Internet anche se la connessione del cliente non prevede IP pubblico.
Utilizzando il Pass-Trough è possibile configurare l’accesso sia al PLC Siemens che, semplicemente modificando l’indirizzo IP definito nel Pass-Trough, raggiungere qualsiasi altro dispositivo IP presente nella rete dal pannello operatore.
Sergio Bertana
Amministratore del forumProbabilmente il cliente non ha fatto una ricerca nel forum, perchè proprio in risposta al P.S. in questo topic c’è quello che richiede. Ed in molti altri topics può trovare suggerimenti per rispondere alla sua domanda. Ma visto che è meglio avere un esempio in più che in meno, ho preparato un esempio che comprende sia il programma sullo SlimLine per la acquisizione della Pt1000 che il programma sul terminale per la visualizzazione.
SlimLine
Ho realizzato un programma in FBD che utilizza il FB SysGetAnInp per acquisire la temperatura da una sonda Pt1000 (Screenshot). Come si vede l’acquisizione è effettuata dal canale “0” di un modulo acquisizione A/D con indirizzo “0”. Il valore acquisito in gradi centigradi è appoggiato nella variabile Temperature di tipo REAL che è allocata nella DB100 ad indirizzo 60.HMI
Nel progetto per comodità ho utilizzato un MT8050iE connesso in ethernet con lo SlimLine, per usare un MT6050iE occorrerà configurare una connessione seriale in alternativa alla connessione ethernet (Screenshot). Per la visualizzazione ho inserito due oggetti. Visualizzazione numerica per visualizzare il valore numericamente (Screenshot). Grafico angolare per visualizzare uno strumento virtuale (Screenshot).Come si vede dagli screenshots l’indirizzo Modbus è 40030, questo si calcola partendo dall’indirizzo della variabile (Allocata a indirizzo 60 della DB100) dividendolo per 2 e sommando 40000 (Topic). Allego il progetto con il programma SlimLine ed il programma HMI, ricordo che il programma HMI si può simulare sul PC con EasyBuilderPro (Download progetto).
Gennaio 21, 2016 alle 7:40 am in risposta a: Utilizzo di SlimLine come gateway ModBus RTU/ASCII #39298Sergio Bertana
Amministratore del forumSi certo mi sembra di capire che lo SlimLine dovrà agire come master Modbus verso entrambi i sistemi, il bloco funzione ModbusMaster fà esattamente questo. Certo dovrai utilizzare due istanze del FB connesse a due porte seriali diverse, una configurata come Modbus Ascii e l’altra come Modbus RTU.
Nella Lettura/Scrittura variabili dai due sistemi (Nel caso di variabili a 4 bytes, DWORD o REAL) potresti trovarti un problema di endiannes, il modbus non ha regole per le variabili a 4 bytes. In questo caso dovrai eseguire uno swap delle variabili (In questo topic c’è un esempio).
Immaginando di dover gestire più variabili su ogni sistema conviene realizzare un programma sequenziale dove all’istanza del FB ModbusMaster sono ciclicamente passati i parametri per la comunicazione (In questo topic trovi esempi al riguardo).
Certamente puoi interfacciare allo SlimLine un pannello operatore sia con lo schermo che cloud, la programmazione è praticamente la stessa. Ci sono oggetti grafici per storicizzare dati (Topic), per visualizzare grafici sia storici che in real time. Puoi anche esportare i dati in CSV per gestirli da PC (Topic).
Se utilizzi il terminale tramite EasyAccess 2.0 (Topic) potrai anche accedere al terminale da remoto via Internet e programmare sia il terminale che lo SlimLine.
Sergio Bertana
Amministratore del forumIn effetti la domanda sulla alimentazione e sulla connessione dei cavi mi era balenata… Ho fatto una veloce ricerca su internet ed ho trovato questo estratto manuale Cobra…
4.4 Baud Rate change
You can change the Baud Rate of the serial port used for communication with the PC (COM1) and of the Auxiliary
serial port (COM2). The two following specific settings are available: One for the Control unit set as /P One for the Control unit set as /TIf in /P, the preset speed is 57,600, S, 8, 1. Generally, changing the Baud Rate is not necessary. Other standard speeds can be selected with “keyboard programming”. If you select another speed (e.g.: 19,200), the polling port is initialised at 19,200, S, 8, 1.
The same port is used if the Control unit is set as “via Modem” (/T). If in /T, the preset speed is 19,200, N, 8, 1. Other standard speeds can be selected with “Keyboard programming”. If you select another speed (e.g.: 9,600), the Modem port is initialised at 9,600, N, 8, 1.
Sembrerebbe che la configurazione Space parity sia fissa, e quindi non utilizzata per la selezione Indirizzo/Dati, però esiste anche una modalità Modem che usa nessuna parità (Di solito i modem hanno 8 bit nessuna parità). Se tu dici che la soluzione funzionava con i convertitori Digitus a questo punto dovrebbe funzionare anche con gli ATC. Non è che si può utilizzare la modalità Modem ?
Come altri consigli proverei a “spiare” con un terminale (Hyperterminal o Toolly) i dati in transito sulla connessione seriale tra PC ed apparato, e poi sempre con il terminale proverei a vedere se gli stessi dati transitano in uscita dall’ATC…
Sergio Bertana
Amministratore del forumSi certo è possibile, in questo topic trovi ulteriori informazioni. Inserendo il Pen Drive ti troverai un nuovo disco “D”.
Non servono librerie particolari, accedendo al disco “D” andrai ad operare sul tuo Pen Drive. Per gestire un log su disco ti rimando a questo topic.
Sulle CPU della famiglia LogicLab abbiamo realizzato un file system ad Hoc, formattando il disco si definisce il numero di files che può contenere e la loro dimensione è la dimensione totale del disco divisa per il numero di files. E’ stata scelta questa opzione per avere un file system sicuro, quindi in grado di non corrompersi sullo spegnimento del sistema. Nella CPU CODESYS viene utilizzata una FAT classica, per evitare di corrompere i dati allo spegnimento c’è una riserva di energia che sullo spegnimento tiene viva la CPU per il tempo necessario a chiudere tutti i files aperti. Unica accortezza è di non lavorare con molti files aperti contemporaneamente perchè visti i tempi di accesso dei Pen Drives è possibile che la riserva di carica non sia sufficente a garantire la corretta chiusura.
Sergio Bertana
Amministratore del forumLa spia ACT dovrebbe lampeggiare stando a manuale sia per dati in uscita che in entrata dalla RS232.
Una domanda anche se ovvia, i parametri di comunicazione 57600, Space, 8, 1 li hai impostati anche su tutti due i convertitori ATC-1000 ?
Mi viene il dubbio che il bit di parità sia usato dal protocollo che lo scambia tra Mark e Space per indicare ad esempio Indirizzo/Dato. Leggi qui:
Il bit di parità a volte viene mantenuto sempre ad un livello prestabilito, per esempio in alcuni protocolli usati da macchine industriali. Ciò dà origine ad ulteriori due tipologie di parità, peraltro non molto comuni:
Mark: il bit di parità vale sempre mark
Space: il bit di parità vale sempre spaceTali configurazioni sono a volte usate per identificare la tipologia del byte trasmesso, per esempio potrebbe indicare se si tratta di un dato piuttosto che di un indirizzo.
Se è questo il tuo caso non è possibile gestirlo con due ATC-1000 incrociati, magari, ma non metterei la mano sul fuoco, potrebbe funzionare con un software di virtualizzazione (Virtual COM).
Sergio Bertana
Amministratore del forumIntanto complimenti ha fatto esattamente tutti i tests che devono essere fatti per determinare il funzionamento dei convertitori Ethernet-Seriale. La prova del tappo di loopback è la prova che consiglio a tutti i clienti che hanno problemi sia con il Virtual COM che nella configurazione Client/Server.
Ora nel tuo caso la connessione seriale è funzionante, il test del loopback con Hyperterminal o con il nostro Toolly lo ha dimostrato. Ora resta da capire perchè non funziona la connessione con l’apparato FAAC, e qui posso dare delle indicazioni:
Sei sicuro di avere impostato correttamente il baud rate, la parità, ed il numero di bits come richiesto da FAAC. La parità Space di solito non si usa. Parità può essere Pari (E), Dispari (O) o Nessuna (N).
Può essere che l’apparato FAAC controlla i criteri seriali RTS, CTS, DTR, ecc… questi segnali non sono gestiti nell’accopiamento tra due convertitori. Solitamente basta eseguire dei ponticelli sul connettore per superare il problema. Per essere certi che sia il software sul PC che l’apparato non usi i criteri RS232 puoi realizzare un cavo seriale collegando solo i pin 2, 3, 5 e verificando che con questo cavo seriale la connessione PC-Apparato funzioni.
Infine ricordo che il convertitore Ethernet-Seriale inserisce un ritardo nella comunicazione ed alcune volte questo ritardo può dare origine a problemi.
Gennaio 18, 2016 alle 10:23 am in risposta a: Errore in esecuzione programma su SlimLine CODESYS #39290Sergio Bertana
Amministratore del forumL’errore 5070 identifica un problema di accesso ad un modulo di uscita digitale ad indirizzo “0”. Questo può succedere se:
Il modulo di uscita digitale non è connesso al modulo CPU.
C’è più di un modulo di estensione connesso al sistema e due o più moduli hanno (Settato con i di dip switches) indirizzo “0”. L’indirizzo “0” è l’indirizzo di default con cui sono forniti i moduli.
Il modulo di uscita digitale ha un problema di funzionamento.Gennaio 18, 2016 alle 7:57 am in risposta a: Arrotondare numeri dopo la virgola in uno script #39289Sergio Bertana
Amministratore del forumCredo che per limitare i numeri dopo la virgola tu intenda il valore che esporti in un file csv per poi importarlo in Excel. Purtroppo non c’è una funzione di round nelle macro ed i numeri float non hanno un numero prestabilito di decimali.
Devi operare da Excel se vuoi limitare il numero di cifre decimali.
Sergio Bertana
Amministratore del forumLa soluzione più semplice è di utilizzare il PC come master Modbus TCP configurando i terminali come modbus slave (Topic) in questo modo il PC potrà scrivere e leggere registri dai vari pannelli.
Visto che utilizzi una base Linux (Magari in configurazione LAMP) ti posso consigliare di utilizzare il PHP per gestire la connessione modbus master, ho scritto una semplice classe per gestirlo (Topic). Così potrai gestire la comunicazione con i pannelli e/o eventuali PLC e poi appoggiare i dati su un database MySQL.
Gennaio 12, 2016 alle 11:25 am in risposta a: Utilizzare il Pass-Through tramite EasyAccess 2.0 #39287Sergio Bertana
Amministratore del forumIn questo screenshot cerco di illustrare le sequenze necessarie per attivare il Pass-through.
1: L’applicazione EasyAccess alla connessione (Dopo il login) elenca tutti i terminali che sono assegnati all’utente. Nel mio caso vi è un unico terminale (L’ho chiamato Temperature Control). Per ogni terminale è indicato se è OnLine oppure no. Facendo click sul pulsante con le due frecce ci si connette al terminale e si crea la VPN
2: A connessione avvenuta, viene visualizzato l’indirizzo IP assegnato al terminale remoto, tramite questo indirizzo si raggiunge il terminale, è possibile quindi sia programmarlo che raggiungerlo in FTP e/o con il viewer nel caso di terminale cloud HMI cMT-SVR. Il tasto VNC permette di avviare il VNC Viewer sul PC (Se installato) ed agire sul terminale remoto (Non è possibile sul cMT-SVR). Facendo click sulla scritta Pass-through si attiva la procedura.
3: Compare la finestra di definizione indirizzo IP che si vuole raggiungere, (Nel tuo caso 192.168.0.1 per il router o 192.168.0.2, 3, 4, 5 per le telecamere), naturalmente un indirizzo alla volta. Si conferma l’indirizzo con il tasto Imposta. Attenzione se il PC ha una scheda di rete nella stessa classe della rete definita nel Pass-through la scheda di rete locale viene disabilitata.
4: Ora si è connessi all’indirizzo IP del dispositivo remoto, è possibile accedervi con il programma che si desidera utilizzare (Per le telecamere ad esempio IP CamView). Per cambiare indirizzo IP occorre agire sul tasto Cancella, poi definire il nuovo IP e accedervi con il tasto Imposta.
Gennaio 12, 2016 alle 10:06 am in risposta a: Reperire l’hardware key su terminale Cloud HMI cMT-SVR #39286Sergio Bertana
Amministratore del forumIn effetti per attivare l’EasyAccess 2.0 sul pannello nel passato consigliavo di utilizzare un progetto fatto apposta (Topic), poi Weintek ha finalmente deciso di inserire nell’EasyBuilderPro alcune finestre “preconfezionate” atte allo scopo. Come si vede dallo screenshot le finestre 76 e 77 sono già predisposte alla gestione del servizio.
Quindi basta renderle accessibili nel proprio progetto e/o copiare gli oggetti che ci servono per trasferirli nelle proprie pagine per poterli utilizzare integrandoli con la nostra grafica.
Sergio Bertana
Amministratore del forumPer quanto riguarda far seguire alla notifica lo stato dell’allarme è una funzione aggiunta su EasyBuilderPro, non è disponibile su EasyBuilder 8000 (Quindi devi gestirla come hai fatto tu da SlimLine).
Per quanto rigurda la visualizzazione della barra allarmi puoi farne 2 in 2 pagine distinte richiamata come pagina diretta dai 2 bit specifici in modo da avere un filtro più selettivo (ovviamente le due pagine dirette non dovranno essere posizionate una sopra l’altra, altrimenti una copre l’altra).
Puoi usare un pulsante multistato switch abilitando la mappatura definita in modo da visualizzare nelle label 1-2-3 per 1000-10000-100000 (Progetto di esempio).
Gennaio 11, 2016 alle 4:37 pm in risposta a: Reperire l’hardware key su terminale Cloud HMI cMT-SVR #39282Sergio Bertana
Amministratore del forumPer attivare l’EasyAccess 2.0 è indispensabile conoscere l’Hardware Key del pannello come indicato in questo topic. Per conoscere l’HwKey nei pannelli provvisti di display si accede al menù di configurazione direttamente dal display, per i pannelli cloud come il Cloud HMI cMT-SVR occorre raggiungerlo tramite browser web.
Nel tuo caso, il pannello non ha l’EasyAccess abilitato, per abilitarlo occorre realizzare un semplice progetto con EasyBuilderPro e trasferirlo nel terminale. E’ anche possibile trasferire un progetto demo che si trova nella cartella di installazione di EasyBilderPro.
Trasferendo il progetto verrà trasferito automaticamente anche il software necessario alla attivazione di EasyAccess 2.0 e da questo momento sulla pagina web sarà visibile l’Hardware Key.
-
AutorePost