samumcr Inserita: 24 maggio 2005 Segnala Share Inserita: 24 maggio 2005 Ho visto che ci sono dei blocchi, per esempio la gestione dei motori passo passo, che sono scritti in C e che l'utente può richiamare e utilizzare. anch'io non ho trovato niente di più. Nella prova fatta hai utilizzato i blocchi per i motori passo passo? Nella documentazione non ho trovato la frequenza degli ingressi encoder, ne sapete qualcosa? Sto valutando di provarne uno. grazie. Link al commento Condividi su altri siti More sharing options...
Lorenzo B Inserita: 25 maggio 2005 Segnala Share Inserita: 25 maggio 2005 Ciao a tutti,Nel "set di istruzioni" di Flash . è indicato che puoi fare una chiamata C_CALL LABEL; è una chiamata di subroutine scritta in linguaggio C. L'utente comunque le utilizza in modo automatico e senza entrare nella programmazione C o in una libreria C. L'utente indica, secondo il programma alla condizione del ramo 'acceso' (ON), di eseguire questa SubRoutine. Automaticamente il compilatore provvederà a fare il resto. C_CALL step_ramp ;; Chiamata di una funzione esterna in linguaggio 'C' Nella pagina di "FUNZIONI SPECIALI" "Motore Passo-Passo" di Flash . sono indicati i data corrispondenti che puoi leggere o scrivere, oppure i flag che puoi leggere o scrivere, per descrivere il movimento.Se in successione cambi questi dati e fai ripartire il motore farà movimenti diversi.DATA_990/991 Numero di passi Corrente Controllo Motore Passo (long 32 bit) DATA_988/989 Numero di passi Target Controllo Motore Passo (long 32 bit) DATA_987 Frequenza Massima impulsi Controllo Motore Passo [Hz] DATA_986 Numero impulsi rampa addelerazione Controllo Motore Passo DATA_985 Numero impulsi rampa decelerazione Controllo Motore PassoSYS_48 Funzione step attiva, solo per uso internoSYS_49 Posizionamento in corsoSYS_50 Posizionamento finitocon il VTP_402 l'uscita in frequenza è Step Out OUT_09 Esempio di programmazione:LD INP_00 ; condizione prima di iniziare il movimentoMOV #12000,DATA_988 ;Numero di passi da effettuare = 12000 MOV #1000,DATA_987 ;Frequenza massima = 1000 Hz MOV #400,DATA_986 ;Rampa di accelerazione = 400 impulsi MOV #200,DATA_985 ;Rampa di decelerazione = 200 impulsi LD INP_01 ; condizione di comando movimentoC_CALL STEP_RAMP ;chiamata della funzione LD SYS_49 ;Durante il posizionamento OUT LED_01 ;Accende LED_01 LD KEY_05 ;se key_05 (TASTO F5) premuto, C_CALL STEP_MANUAL ;esegue posizionamento manual Lorenzo B. Link al commento Condividi su altri siti More sharing options...
Lorenzo B Inserita: 25 maggio 2005 Segnala Share Inserita: 25 maggio 2005 Ciao a tutti,Nella documentazione del VTP402 ho trovato che la frequenza per ogniuno di tutti e due gli ingressi encoder bidirezionali è di Max Freq: 10KHzIngressi dedicati INP_08, INP_09, INP_07,INP_10.vedi documentazione Funzioni speciali in Flash .Lorenzo B. Link al commento Condividi su altri siti More sharing options...
samumcr Inserita: 25 maggio 2005 Segnala Share Inserita: 25 maggio 2005 A proposito del controllo dei motori passo passo con questi DLC : dovendo controllare un asse legando la sua velocità a quella di un mandrino, che a sua volta riceve un riferimento analogico da un pedale, come posso cambiare il riferimento di velocità all'asse senza interruzioni del moto? Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 25 maggio 2005 Segnala Share Inserita: 25 maggio 2005 vengono salvate su eprom automaticamente ogni tanti millisecondiMi sembra strano che il programma salvi ogni x millisecondi su eeprom in quanto che le eeprom hanno una certa vita media e se gli scrivi sopra ogni x millisecondi rischi di non arrivare a fine anno con tale memoria (e' lo stesso problema dei PC industriali con dischi a stato solido che se gli scrivi in continuazione log di ricette & co rischi di ammazzarli prematuramente ...).Probabilmente usano degli altri accorgimenti ...Ciao Link al commento Condividi su altri siti More sharing options...
Lorenzo B Inserita: 26 maggio 2005 Segnala Share Inserita: 26 maggio 2005 Ciao a tutti,e Ciao a SamumcrFra le chiamate a una funzione esterna in linguaggio 'C' c'è anche la C_CALL step_manual, per fare girare sempre il motore passo-passo (con il VTP_402 l'uscita in frequenza è StepOut OUT_09), inoltre viene passato un flag di run, che puoi lasciare sempre attivo.Se sei interessato ad affrontare in modo semplice il problema puoi guardare gli indirizzi sul sito di KernelSistemi e mandi una e-mail in sede o ad un solution providers. Lorenzo B. Link al commento Condividi su altri siti More sharing options...
Lorenzo B Inserita: 26 maggio 2005 Segnala Share Inserita: 26 maggio 2005 Caio a tuttie Ciao a IfachsoftwareHai ragione su eeprom il numero di scritture è limitato (100.000 o 1.000.000 a seconda dei tipi [che Kernel usa]) e dopo si brucia e non funziona piu'. Rettifico e correggo quanto scritto alla parte A) del Messaggio #20A ) Nei DLC Kernel ha il Sistema operativo e il programma utente residente in eeprom; .) I data-utente da DATA_0 a DATA_1023 sono manipolati all'immediato in memoria RAM interna del processore. Un certo numero di questi sono dedicati alle funzioni speciali. .) Le locazioni da DATA_0 a DATA_431 sono volatili..) Le locazioni da DATA_432 a DATA_511 sono automaticamente copiate nella RAM tamponata dell'orologio calendario ogni 100 msec e ricaricate alla accensione con l'ultimo valore memorizzato (se e' attivato SYS_18)..) Le locazioni da DATA_512 a DATA_1023 sono automaticamente copiate in EEPROM esterna se scritte dal lato terminale-visualizzatore al comando da tastiera e sono pertanto non volatili, alla riaccensione del DLC riprendono l' ultimo valore memorizzato. Dal lato del programma PLC e' possibile salvare il valore in EEPROM con un semplice comando.(SET SYS_20; flag di scrittura in eeprom, ... deve essere attivato dal PLC con una operazione di SET, viene resettato automaticamente al termine della operazione. Il DATA_22 deve contenere l' indirizzo del primo DATA da salvare. Il DATA_23 deve contenere l' indirizzo dell'ultimo DATA da salvare. esempio LD #610,DATA_22LD #620,DATA_23SET SYS_20; salva in eeprom dal DATA_610 al DATA_620 .) i flag-utente, da FLAG_128 a FLAG_255 sono volatilii flag-utente, da FLAG_0 a FLAG_127 sono automaticamente copiate nella RAM tamponata dell'orologio calendario ogni 100 msec e ricaricate alla accensione con l'ultimo valore memorizzato..) i data-delle-ricette fino a 16 KByte o a 64 KBytes a seconda dei modelli.E' possibile utilizzare la eeprom esterna per memorizzare ricette o programmi di lavorazione (blocchi). Una ricetta (o blocco) e' costituita da un insieme contiguo di DATA memory, ciascuno con il suo significato. Esistono delle funzioni per leggere/scrivere un blocco di DATA memory sulla eeprom attivate dai relativi flag di sistema. SYS_58 flag di scrittura in eeprom, deve essere attivato dal PLC son una operazione di SET, viene resettato automaticamente al termine della operazioneSYS_59 flag di lettura dalla eeprom, deve essere attivato dal PLC son una operazione di SET, viene resettato automaticamente al termine della operazione DATA_22 deve contenere l' indirizzo del primo DATA da salvareDATA_23 deve contenere la dimensione del blocco (numero di DATA memory) DATA_24 deve contenere il numero del bloccoesempio #MOV #80,DATA_22 #MOV #14,DATA_23 RISE KEY_02 MOV #1,DATA_24 SET SYS_58 ;salva su block n. 1;alla condizione di RISE(fronte di salita) del tasto F2 (KEY_02) esegue l'operazione;salva il DATA_80 e i seguenti (contandone in tutto) 14, sul blocco 1 delle ricette .) L'altra parte di RAM viene utilizzata per le operazioni immediate e per l'orologioLorenzo B. Link al commento Condividi su altri siti More sharing options...
samumcr Inserita: 31 maggio 2005 Segnala Share Inserita: 31 maggio 2005 Ciao,mi rivolgo a Lorenzo B, che vedo ferrato sull'argomento: i 5kHz dell'uscita per il controllo dei motori passo passo non mi bastano. devo quindi buttarmi su una comunicazione seriale. L'azionamento riceve stringhe numeriche esadecimali (vorrei usare un azionamento serie APSN della SHS). esiste la possibilità di comunicare con questo azionamento con un DLC Kernel? Link al commento Condividi su altri siti More sharing options...
MrC Inserita: 1 giugno 2005 Segnala Share Inserita: 1 giugno 2005 Io ti so dire che il DLC ha il protocollo Modbus master, che uso abitualmente per ampliare gli I/O disponibili mediante I/O in Modbus Link al commento Condividi su altri siti More sharing options...
samumcr Inserita: 1 giugno 2005 Segnala Share Inserita: 1 giugno 2005 Io vorrei utilizzare la seriale a bordo (VTP804), per passare e ricevere quote all'azionamento (che ho conosciuto da poco, ma ritengo buoni prodotti e con una buona documentazione, disponibile in rete dove si possono trovare i protocolli di comunicazione) comandi etc.. Si dovrebbe utilizzare un protocollo libero a quanto vedo, devo costruirmi delle stringhe esadecimali da inviare all'azionamento. Mi chiedo se è possibile fare ciò. Link al commento Condividi su altri siti More sharing options...
Lorenzo B Inserita: 1 giugno 2005 Segnala Share Inserita: 1 giugno 2005 (modificato) Ciao a tutti,Ciao a samumcr,Conosco gli SHS, ma non conosco il protocollo; un anno fà abbiamo chiesto se era implementato il Modbus e ci fu risposto che a breve sarebbe stato possibile; a tutt'oggi li abbiamo usati con altri sistemi ma non con seriale.Con un DLC Kernel puoi comunicare con protocolli dedicati, (come ad esempio con il protocollo Kernel, con MODBUS DI MODICON in RTU mode, con Hostlink di Omron). Invece per avere un protocollo libero (trasmettere una stringa interamente costruita da te) è meglio che chiedi ai responsabili assistenza Kernel.Dal lato Visualizzatore-Display la lettura-scrittura è automatica, scritto quale è il canale della Com. e scritto qual'e' il DATA_ del dispositivo esterno, impostato nel progetto il protocollo, la stringa di trasmissione viene completata dal DLC.Dal lato del PLC diverse cose sono automatiche, comunque una parte della stringa deve essere costruito dal programma, e dal programma devono essere dati i comandi di partenza della trasmissione. Nell' . in linea di Flash trovi scritto che:Comunicazione con dispositivi esterni.E' possibile collegare un DLC con altri dispositivi esterni dotati di linea seriale (termoregolatori, espansioni, inverters, etc) per scambiare comandi e parametri. La comunicazione avviene sempre attivando alcuni flag di sistema e appoggiando le variabili su alcuni DATA memory.Sono possibili due operazioni: lettura e scrittura. La lettura puo' essere singola o a blocchi mentre la scrittura e' solo singola. La comunicazione avviene secondo il protocollo selezionato in opzioni progetto, il DLC si comporta in questo caso da master, e' pertanto possibile collegare piu' dispositivi slave in una rete master/slave, ciascuno con il suo indirizzo di nodo. La comunicazione avviene in background, senza rallentare il ciclo del PLC e viene sincronizzata per mezzo dei flag di sistema. SYS_51 Comando lettura su COM_0SYS_52 Comando di scrittura su COM_0DATA_33 Scambio dati per lettura su COM_0 : indirizzo PLC esternoDATA_34 Indirizzo di memoria da leggereDATA_35 numero locazioni da leggereDATA_36 dato letto (lettura singola)DATA_37 puntatore a blocco dati letto ( lettura multipla)DATA_38 indirizzo di memoria da scrivereDATA_39 dato da scrivere (solo scrittura singola) SYS_53 Comando lettura su COM_1SYS_54 Comando di scrittura su COM_1DATA_40 Scambio dati per lettura su COM_1 : indirizzo PLC esternoDATA_41 Indirizzo di memoria da leggereDATA_42 numero locazioni da leggereDATA_43 dato letto (lettura singola)DATA_44 puntatore a blocco dati letto ( lettura multipla)DATA_45 indirizzo di memoria da scrivereDATA_46 dato da scrivere (solo scrittura singola) Vedere anche gli esempi di programmazione: Lettura/scrittura su COM_0;;;;;; rw com 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SBR RW_COM_0 LD SYS_16 ;ogni 100 msec MOV #1,DATA_33 ;legge dal PLC_addr 1 MOV #10,DATA_34 ;all'indirizzo 10 MOV #4,DATA_35 ;per 4 word MOV #40,DATA_37 ;risultato dal DATA_40 SET SYS_51 LD KEY_05 ;alla pressione di F_5 MOV #1,DATA_33 ;scrive sul PLC_addr 1 MOV #10,DATA_38 ;all'indirizzo 10 MOV DATA_512,DATA_39 ;il contenuto di DATA_512 SET SYS_52 ENDSBRLorenzo B. Modificato: 1 giugno 2005 da Lorenzo B Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora