Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumProbabilmente usi due variabili Fp locali definite nei due programmi, quindi nella task di Boot esegui correttamente il set della porta seriale, ma poi nella task in Slow essa viene riaperta con il baud rate di default 115200, e, 8, 1.
Ti consiglio di usare la variabile Fp definita come globale e non eseguire più la open della porta nel file eseguito in Slow.
Altro consiglio è di gestire le porte seriali nella task di Back, è inutile caricare di lavoro le task Fast e Slow per gestire la comunicazione.
Allego un programma di esempio per il download.
Sergio Bertana
Amministratore del forumGli I/O presenti sul modulo CPU dello SlimLine non sono mappati in memoria in immagine di processo come tutti gli altri I/O dei moduli di estensione.
Per acquisire gli ingressi occorre utilizzare la funzione embedded SysGetPhrDI, get peripheral digital input definendo Address 255 e Mode DI_8_LL.
Per gestire le uscite occorre utilizzare la funzione embedded SysSetPhrDO, set peripheral digital output definendo Address 255 e Mode DO_8_LL.
Nella libreria PLCUtyLib, si trova il blocco funzione CPUModuleIO, CPU module I/O management che gestisce sia la acquisizione degli ingressi che la gestione delle uscite.
Nel guida Sline programming help che si attiva da LogicLab evidenziando la funzione ed agendo con il tasto F1, è possibile trovare esempi di utilizzo sia delle funzioni embedded che del blocco funzione.
Maggio 27, 2011 alle 12:32 pm in risposta a: Conversione da formato esadecimale a decimale (Hex to Dec) #36753Sergio Bertana
Amministratore del forumNon capisco bene la domanda, cerco di interpretarla. Immagino che tu debba con un comando di read da protocollo Hostlink, restituire il valore di variabili in memoria PLC.
A questo scopo dovrai allocare le variabili nella memoria del PLC ad indirizzi noti, per uniformarsi al protocollo Modbus nativo di SlimLine, potremo dire che da protocollo HostLink andiamo a leggere variabili allocate in DB 100, magari interponendo un offset sull’indirizzamento. Per quanto riguarda la conversione del valore indirizzo e numero di variabili dalla stringa ricevuta in variabili nel formato esadecimale, consiglio questi semplici statements.
Address:=TO_UINT(RxString[5]-16#30)*4096; (* Variable address *)
Address:=Address+TO_UINT(RxString[6]-16#30)*256; (* Variable address *)
Address:=Address+TO_UINT(RxString[7]-16#30)*16; (* Variable address *)
Address:=Address+TO_UINT(RxString[8]-16#30); (* Variable address *)NrOfVars:=TO_UINT(RxString[9]-16#30)*4096; (* Numero variabili da leggere *)
NrOfVars:=NrOfVars+TO_UINT(RxString[10]-16#30)*256; (* Numero variabili da leggere *)
NrOfVars:=NrOfVars+TO_UINT(RxString[11]-16#30)*16; (* Numero variabili da leggere *)
NrOfVars:=NrOfVars+TO_UINT(RxString[12]-16#30); (* Numero variabili da leggere *)Per ottenere il valore in decimale, dovrai moltiplicare per 1000, 100, 10 al posto di 4096, 256, 16.
Per inviare su seriale i dati letti dalla memoria consiglio questi statements:Ptr:=ADR(%MX100.0)+Address; (* Pointer *)
FOR i:=0 TO TO_INT(NrOfVars) DO
Ch:=Sysfputc(TO_INT(@Ptr), Fp); (* Character *)
Ptr:=Ptr+1; (* Pointer *)
END_FOR;Allego un programma di esempio per il download.
Sergio Bertana
Amministratore del forumUlteriori informazioni in questo post.
Maggio 20, 2011 alle 4:29 pm in risposta a: Connessione di un terminale a più sistemi SlimLine #36751Sergio Bertana
Amministratore del forumTutti i terminali operatore Weintek permettono la connessione contemporanea a più sistemi PLC sia dello stesso tipo che di tipi diversi. Vediamo di descrivere come si configura la comunicazione con più di un sistema. Versioni seriali. Se si utilizza una connessione multidrop RS485 occorre definire nel menù Edit -> Parametri di sistema -> Dispositivo il dispositivo con cui si vuole comunicare (Nel caso di SlimLine Opzione Modbus RTU). Occorre poi definire i parametri di comunicazione, il valore di stazione PLC non ha importanza. Nei vari oggetti di visualizzazione posti sulla pagina del terminale occorrerà definire come indirizzo della variabile il numero di nodo modbus seguito dall’indirizzo (Esempio 12#40016, 14#41024, ecc). Se si utilizzano più porte seriali occorre definire nel menù Edit -> Parametri di sistema -> Dispositivo i vari dispositivi con cui si vuole comunicare (Nel caso di SlimLine Opzione Modbus RTU) definendo i parametri di comunicazione ed il corretto valore di stazione PLC. In questo caso è possibile configurare diversi tipi di PLC ognuno connesso alla propria porta seriale. Nei vari oggetti di visualizzazione posti sulla pagina del terminale occorrerà definire come nome PLC il nome dato alla connessione configurata per il PLC desiderato e l’indirizzo della variabile. Versioni Ethernet. Occorre definire nel menù Edit -> Parametri di sistema -> Dispositivo i vari dispositivi con cui si vuole comunicare (Nel caso di SlimLine Opzione Modbus TCP/IP) definendo l’indirizzo IP, la porta ed il corretto valore di stazione PLC. E’ possibile configurare diversi tipi di PLC con il proprio indirizzo IP. Nei vari oggetti di visualizzazione posti sulla pagina del terminale occorrerà definire come nome PLC il nome dato alla connessione configurata per il PLC desiderato e l’indirizzo della variabile.
Maggio 19, 2011 alle 12:01 pm in risposta a: Collegamento inverter PowerOne convertitore Ethernet/Seriale #36750Sergio Bertana
Amministratore del forumIl cliente è iscritto al forum, vede tutti i posts se vuole può dare le risposte direttamente qui sul forum.In merito alla resistenza, posso rispondere io, si tratta della resistenza terminatrice delle reti RS485, in pratica una rete RS485 va terminata all’inizio ed alla fine con una resistenza da 120 Ohm. In pratica va inserita una resistenza sul convertitore ATC-1000 e va chiuso lo switch di terminazione sull’ultimo inverter della rete. Consiglio la lettura della nostra nota applicativa sul corretto cablaggio delle reti RS485 (Download).
Maggio 19, 2011 alle 10:19 am in risposta a: Collegamento inverter PowerOne convertitore Ethernet/Seriale #36748Sergio Bertana
Amministratore del forumRiporto informazioni che ho avuto da un nostro cliente molto esperto sull’argomento. Il consiglio è di non usare il software virtual COM, cioè di non installare la porta seriale virtuale, ma di configurare l’Aurora Communicator ad operare direttamente in TCP/IP. Ma anche qui ci sono alcuni accorgimenti o meglio dei workarounds per fare operare il programma. Sembra che l’Aurora Communicator desideri avere almeno una porta COM presente anche se non la utilizza (L’ideale e la COM1). Se il tuo PC ha almeno una porta seriale COM non dovrebbero esserci problemi, in caso contrario installane una, va bene anche un convertitore USB-Seriale con il suo driver. Nel menù Configurazione -> Configura comunicazione, scegli Seriale ed imposta la porta seriale COM presente nel tuo PC, conferma con Ok. Rientra nel menù Configurazione -> Configura comunicazione, scegli TCP/IP definendo l’indirizzo IP e porta del convertitore ATC-1000, conferma con Ok. A questo punto esegui la scansione e dovresti trovare gli inverter. Attenzione! se la porta COM del PC non è la COM1, ogni volta che avvii il programma Aurora Communicator devi ripetere i punti riportati sopra, se invece è la COM1 non è necessario. Due note sulla connessione RS485, se si ha un solo inverter puoi usare una connessione a due fili (Senza la connessione di massa) ma se gli inverter sono più di due, prove pratiche impongono di connettere tra di loro le masse dei due inverter ed anche la massa del convertitore ATC-1000 (Pin GND).
Maggio 17, 2011 alle 4:52 pm in risposta a: Raggiungere un convertitore ethernet/seriale da IP pubblico #36746Sergio Bertana
Amministratore del forumAlcune domande non mi sono chiare, vedo di rispondere con logica, partendo dalla porta 23 assegnata di default. La porta 23 è la porta a cui occore connettersi da Hyperterminal in TCP/IP (Vedi foto) o da qualunque altro programma da cui si voglia gestire la comunicazione. In pratica i dati ricevuti da questa connessione saranno inviati sulla uscita seriale e viceversa.
Naturalmente perchè il convertitore sia raggiungibile da Hyperterminal (Che agisce da client TCP/IP) occorre che sia settato in modalita Server. La modalità Client serve per effettuare la connessione ad un altro convertitore, definendo Client viene richiesto l’indirizzo IP del convertitore a cui connettersi. In pratica due convertitori ATC-1000 lavorano su rete estendendo la linea seriale.
L’opzione Disable, serve a disabilitare la connessione TCP/IP è và usata se si vuole operare in UDP, naturalmente bisognerà abilitare l’UDP.
La porta 80 è la porta del server HTTP e viene utilizzata per la gestione della pagina web di configurazione, non è usata per lo scambio dati.
Utilizzando la connessione TC/IP diretta senza virtual COM, l’unico modo per impostare i parametri di comunicazione è dalla pagina web di configurazione.
Sergio Bertana
Amministratore del forumSi ho fatto prove su una macchina XP, come dici tu la versione 2.0.9 non mantiene la configurazione, spegnendo e riaccendendo il PC occorre riconfigurare la porta COM.
Ho provato con la versione 3.6 ed effetivamente con questa versione una volta configurata la porta COM se si attiva l’esecuzione automatica, spegnendo e riaccendendo il PC la porta viene automaticamente ricreata.
Sergio Bertana
Amministratore del forumHo provveduto ad inserire sul nostro sito, nella sezione di download posta in fondo alla pagina del prodotto, oltre al link per il download dell’ultima versione del software VCOMM anche quello della versione 2.9.
Sergio Bertana
Amministratore del forumLe macro possono essere eseguite ad esempio su comando da pulsante, per eseguire una macro in modo automatico a tempo occorre definire un oggetto Imposta bit, nella pagina Common window, in modo che sia sempre eseguito.
Nell’oggetto Imposta bit, definiremo lo stile Toggle periodico definendo il tempo di esecuzione relativo. Andrà messo il tick nella opzione Esegui macro, e si potrà definire la macro da eseguire (Screenshot).
Maggio 12, 2011 alle 1:42 pm in risposta a: Regolazione luminosità retroilluminazione pannello #36740Sergio Bertana
Amministratore del forumTutti i terminali touch screen Serie i supportano la connessione con i più comuni PLC di mercato, a tal proposito rimando alla guida connessioni PLC che si può scaricare dal sito (Sezione download nella pagina del terminale).
In particolare è gestito il protocollo modbus TCP, è lo stesso che utilizziamo per connettersi ai nostri prodotti serie SlimLine.
La luminosità della lampada di backlight è gestibile sia da pannello che da PLC agendo su appositi registri riservati.
LB-9040 Set ON to increase the brightness of CCFL backlight.
LB-9041 Set ON to decrease the brightness of CCFL backlight.
LW-9040 Backlight Brightness Level:0~31 When first time using HMI, users can adjust brightness to 0 or 31 as the start.Da pannello è possibile anche attivare il pannello di controllo ed impostare la luminosità.
Il software di programmazione è gratuito ed è scaricabile dal sito. Particolarità interessante è che il software di programmazione è in grado di emulare il funzionamento del pannello anche in connessione con il PLC. Pertanto si può realizzare la propria applicazione e poi testarla direttamente in emulazione senza avere il terminale.
Per i costi, è possibile registrarsi al sito, così tutti i prezzi sono palesati ed è possibile eseguire il download di tutta la documentazione. In alternativa per gli utenti non registrati, accanto ad ogni voce di listino c’è il simbolo di €, agendo sul simbolo si compila una richiesta di quotazione automatica che è possibile farsi inviare al proprio indirizzo di posta elettronica.
Sergio Bertana
Amministratore del forumTi ricordo che per effettuare la lettura del registro da mofbus puoi definire un protocollo modbus ed utilizzare questa macro molto più semplice.
macro_command main()
short Data// Invio comando modbus lettura registro 40016.
// Occorre dividere indirizzo per 2.GetData(Data, “MODBUS RTU”, 3x, 40008, 1)
SetData(Data, “Local HMI”, LW,100,1)end macro_command
Se occorre gestire la comunicazione con più dispositivi con diversi nodi modbus è possibile definire il numero di nodo nel modo.
GetData(Data, “MODBUS RTU”, 3x, 01#40008, 1) //Nodo 1
GetData(Data, “MODBUS RTU”, 3x, 02#40008, 1) //Nodo 2
GetData(Data, “MODBUS RTU”, 3x, 64#40008, 1) //Nodo 64Sergio Bertana
Amministratore del forumLa macro è corretta, il tuo problema e nella conversione dei dati ricevuti dalla risposta modbus da formato 8 bit char, a formato 16 bit short. I singoli dati char sono considerati con segno, il manuale di riferemto macro riporta Char 8 bits (byte) ±127, quindi valori superiori a 127 sono considerati negativi. Per risolvere il problema devi dichiarare le variabili di tipo unsigned char 8 bits (byte) 0 to 255.
unsigned char Command[32], Response[32]
Così facendo il programma funziona correttamente. Allego un programma diviso in una sezione terminale ed una sezione SlimLine per download.
Sergio Bertana
Amministratore del forumIn merito all’utilizzo del software VCOM occorre prestare attenzione alla compatibilità tra le versioni del software VCOM e le versioni del firmware presente sul convertitore ATC-1000.
Le versioni di firmware fino alla 1.42 non supportano i drivers di Windows 7, su queste versioni occorre utilizzare il software VCOM fino alla versione 2.9.
Le versioni di firmware a partire dalla 1.43 supportano i drivers di Windows 7, ed è possibile utilizzare il software VCOM dalla versione 3.0.
Per rilevare la versione del firmware installato sul modulo, occorre aprire la pagina web di System Status o di Administrator Setting (Dipende dalla versione di firmware), nella pagina è visualizzata la versione firmware (Printscreen).
-
AutorePost