Vai al contenuto
PLC Forum


Modifica Prg Plc Selca 3045


stefano_

Messaggi consigliati

Salve a tutti,

dovrei efettuare una semplicissima modifica al programma plc di un centro di lavoro che monta un controllo selca 3045,

Accendedo al menu trovo il pulsante com e protetti, accendendo a questo menu trovo altri 2 pulsanti, memoria com e flash all'interno ci sono gli stessi programmi

-com

- macrom6

- presetln

-vertoln

quelli all'interno della flash non riesco a modificarli mentro riesco ad accedere e modificare quelli presenti in "memoria com".

Ora la mia domanda è dovendo togliere il soffio dell'aria durante il cambio utensile ( M71 ) posso tranquillamente eliminare questa riga ( o commentarla aggiungendo una parentesi quadra all'inizio ) ?

Fatto cio il plc deve essere ricompilato credo !

posso procedere in questo modo ?
oppure rischio di incasinare qualcosa ?

Grazie.

Link al commento
Condividi su altri siti


Stefano, premetto che non conosco il Selca, quindi prendi quello che ti dico con le molle, però:

Il programma di cambio utensile, che presumo sia "macrom6" presente nella "memoria com" è quello che effettivamente viene eseguito durante il cambio oppure ne esiste una copia esecutiva (magari protetta) da qualche altra parte?

Comunque puoi verificare al volo senza problemi commentando M71 e vedendo se funziona. Non è assolutamente necessario ricompilare il plc perchè la macro di M6 è in iso, quindi interpretata al momento dell'esecuzione.

P.S. Ma sei sicuro che per commentare occorra una parentesi quadra? Ti dico questo perchè i commenti, nello standard iso, sono fatti racchiudendoli tra 2 parentesi tonde.

M71 è scritto da solo in una riga iso o fa parte di una riga più complessa? Perchè, in questo secondo caso, non penso che sia possibile commentare solo M71 soprattutto se si trova non a fine riga.

Però, ripeto, ti parlo da non conoscitore di Selca, quindi perdonami se ho scritto baggianate.

Ciao

Link al commento
Condividi su altri siti

ciao e grazie per l'interessamento,

allora ecco un aparte del listato:

N94 [sCAMBIO UT TRA MAND. E MAGAZZ.
N95 L=6
N96 {P33=1}L61
N97 {P33=2}L62
N98 {P33=3}L63
N99 {P33=4}L64
N100 L=61
N101 [DA MG1 A MG1
N102 M9501 [VERIFICA SE MAGAZZ. E' IN AUTOMATICO
N103 YP1R
N104 M19 [ORIENTAMENTO MANDR. MAGAZZ. 1
N105 {P6=-999}L92
N106 XP6R
N107 L=92
N108 M9101 [POSIZ. MAGAZZ. PER SCARICO,NON BLOCCA MAPR
N109 ZP2R [POSIZ.ASSI
N110 M9201 [VERIFICA SE OK M19OK1+SQCU
N111 M9102 [COMANDA USCITA MAGAZZ.
N112 M9103 [sBLOCCA UTENSILE
N113 M71
N114 ZP3R [sALITA Z IN QUOTA ROT. MAG.
N115 M9111 [ROT. MAGAZZ. +SOFFIO A TEMPO
N116 M9205 [VERIFICA SE POSCOM=POSACT+SQCU

quindi confermo che il commento si effettua mediante [

confermo anche che l'M71 è solo in una riga (N113)

ci sono 2 file chiamati macrom6 uno risiede in "programmi com" e l'altro in "flash" quello residente in flash non è possibile modificarlo !!!

grazie infinite faccio delle prove poi ti aggiorno.

ciao

Link al commento
Condividi su altri siti

eccomi di nuovo,

ti spiego bene cosa mi serve così mi puoi aiutare meglio !!

A volte capita che vada dello sporco nel cono utensile e quindi l'utensile mi giri decentrato con tutti i problemi del caso,

in pratica per ovviare al problema pensavo di ovviare inserendo queste righe di codice prima dell'm71

M7 attivo il refrigerante proprio quanto l'ut è sotto il mandrino pronto per essere preso

G04 K50 aspetto 5 secondi

M9 disattivo il refrigerante

M71 ecc... ecc.. ecc.. proseguo con il cambio UT.

Il problema è che il refrigerante del mandrino quello che normalmente parte con l'm13 non va !!! Ne con M7 e ne con M8 !!!!!

Hai qualche consiglio a riguardo ???

Grazie.

Link al commento
Condividi su altri siti

Bisognerebbe vedere come è fatto il plc.

Un'ipotesi potrebbe essere che M7 e M8 funzionino solo con il mandrino in rotazione, anche se mi sembra una scelta strana.

Oppure, più probabile, non funzionano con il mandrino sbloccato.

Potresti provare (se hai la funzione ausiliaria apposita) a:

- Ribloccare il mandrino

- Programmare M7

- Attendere qualche secondo

- Togliere M7 (con M9 forse?)

- Sbloccare il mandrino

- Soffiare

- Proseguire con il cambio utensile

Occhio però a non entrare con il braccio con il mandrino bloccato! :smile:

Secondo me potresti verificare prima il funzionamento del tutto in MDI.

In ogni caso, perchè il tutto funzioni, è indispensabile che lo sviluppatore del plc abbia previsto questo tipo di funzionamento altrimenti non c'è nulla da fare, occorre modificare il plc.

Ma di che tipo di centro di lavoro stiamo parlando?

Ciao

Link al commento
Condividi su altri siti

Grazie dell'idea,

Non c'è il braccetto il centro è un vecchio sigma mission 3 ed il CUT non è random,

Ho provato in mdi quindi con it in mandrino e di conseguenza mandrino bloccato ma niente da fare !!

Credo proprio che non sia previsto dalla logica !!!

Comunque farò qualche altra prova !!

Oppure dovrò installare una pompa a parte utilizzando un M libera ( sperando che ci sia ) richiamandola dal solito programma macrom6

Ciao

Link al commento
Condividi su altri siti

Oppure dovrò installare una pompa a parte utilizzando un M libera ( sperando che ci sia ) richiamandola dal solito programma macrom6

Però in questo caso dovrai sempre modificare il plc, a meno che Sigma non abbia gia previsto delle M che settano direttamente delle uscite.

Quindi...

Link al commento
Condividi su altri siti

azz.... proprio ora ho controllato cio !!!!

di solito lasciano delle M libere per eventuali usi da parte dell'utente ( nell'altro centro famup 120 E ci sono !!! ) ma in questo no,

ci sono degli ingressi e delle uscite plc lasciate libere ma come faccio ad abbinare una M ad un uscita fisica del plc ?
Per es. ho l'uscita U23 libera che corrisponde ad un relì da circuito stampato nel QE ma come faccio con una M ad attivare tale relè ??

E' fattibile tutto cio ?

Grazie infinite !!
Accidenti ero sicuro ci fossero delle M libere !!!!

Link al commento
Condividi su altri siti

ok,

ma cosa intendi per modificare il plc ?
nel senso che guardando il programma plc non c'è nessun punto in cui viene associata M7 all'uscita 12 del plc oppure M8 all'uscita xx ecc.. ecc...

credo sia una cosa interna del controllo !!!

Quindi a questo punto cosa dovrei modificare ?

O meglio come faccio ad assegnare una M personale ( per esempio M100 ) all'uscita 23 del plc ?
Grazie.

Link al commento
Condividi su altri siti

Purtroppo, come ti ho detto, non conosco il Selca. Posso però dirti che, nei controlli che conosco, le funzioni M sono gestite in genere in due modi:

Funzioni M codificate (sono quelle standard iso, ad es. M3, M4, M5, M7, ecc. ecc.)

In questo caso ad ogni M corrisponde un segnale, di solito un bit, dell'area di scambio tra il cnc e il plc (output cnc --> input plc). L'indirizzo di questi segnali va cercato nei manuali sviluppatore.

Funzioni M non codificate (M generiche, ad es. M60, M100, ecc.)

Quì di solito si utilizza un'area di scambio sufficiente a contenere il valore della funzione M, (ad es. 100 nel caso della M100), di solito si tratta di una word. In più c'è un bit di strobe che segnala al plc che un nuovo codice M è stato emesso dal cnc.

Anche in questo caso devi riferirti al manuale sviluppatore per conoscerne l'indirizzo.

Però, come avrai ben capito, non esistono standard in questi argomenti. Il Selca magari funziona diversamente.

Per capirci un po di più prova a fare una ricerca inversa: individua nel plc dove viene settata l'elettrovalvola di M7 e cerca di capire con che variabili viene settata.

Modificato: da lucios
Link al commento
Condividi su altri siti

GraIe lucios ma anche dovessi trovare la variabile cosa me ne faccio ?

Io ho bisogno delle M non codificate credi che un M100 mi vada comunque a settare un bit di qualche word ?

E se così fosse come dovrei procedere ?

Se per es m100 mi va a settare il primo bit di kmw1 come faccio a " collegare " questo bit all'uscita fisica del plc ?

Dovrei scrivere una cosa del tipo

se il bit 0 di kmw1 =1 allora mi attivi l'uscita 23 ??

Grazie infinite

Link al commento
Condividi su altri siti

Facciamo le cose con ordine:

1- Hai la manualistica Selca di sviluppo del plc o te la puoi procurare?

Perchè altrimenti si possono fare solo supposizioni e si procede alla cieca (a meno dell'intervento di qualcun'altro di questo forum che conosca il Selca).

2- Hai la possibilità di effettuare modifiche al plc (e te la senti)?

Se no è inutile continuare perchè, in ogni caso non potresti risolvere il problema.

3- Se hai i manuali prova a cercare di capire come vengono gestite le funzioni ausiliarie a livello di plc.

Nel Fanuc ad es. c'è una word dell'area di scambio cnc-plc in cui il controllo scrive il codice numerico corrispondente alla M emessa.

Il compito dello sviluppatore del plc è decodificare il codice e compiere l'azione voluta. Ti faccio un esempio letterale (molto semplificato) in linguaggio inventato:

If <CodiceM = 100> set uscita 1

else if <CodiceM = 101> set merker 5

else if <CodiceM = 102> fai qualcos'altro

ecc. ecc.

Però, ripeto, non so come funziona Selca. Per questo ti ho consigliato di fare il percorso inverso: invece di cercare la M prova a vedere come viene settata l'uscita dell'attuatore. Per es. guarda le condizioni di settaggio dell'elettrovalvola di M7.

Per ultimo:

Hai provato a contattare la Sigma? Magari hanno già pronta una soluzione al tuo problema o possono studiarla.

Ciao

Link al commento
Condividi su altri siti

1- no

2 - di

3- no

Potrei contattare la selca stessa ma loro puntano sempre a far venire un tecnico che mi costerebbe un esagerazione!!

Comunque ora provo a vedere le condizioni che mi attivano m7 ma non credo che questo mi aiuti a trovare l'area di memoria utilizzata nel senso che credo di trovare

Se mandrino bloccato And mandrino gira And ecc ecc ecc allora setta m7

Sbaglio ?

Link al commento
Condividi su altri siti

Se mandrino bloccato And mandrino gira And ecc ecc ecc allora setta m7

Sbaglio ?

Veramente dovresti avere M7 che, combinato con altre condizioni (es. mandrino bloccato, ecc.) ti setta l'elettrovalvola e la pompa del refrigerante alta pressione. Tutto deve per forza partire dalla funzione M emessa dal cnc verso il plc.

Link al commento
Condividi su altri siti

[ GESTIONE REFRIGERANTE
YVM8=(REFMN~REFNC&RM8)&AAM&"RM6&(MM~(CICFI=84))
KM7=RM7&REFNC&AAM&(MM~(CICFI=84))
YVM7=KM7
ATTFLU=YVM7&"TSPFU&"RAPI
VM12=REFNC&YVM7&"TSPFU&TSTRU&"RAPI&$
"ESCFLU~VM12&"BRKA&"START&REFNC
TSPFI(KMW(15))=SPRF
TSTRI(KMW(16))=YVM7&"VM12

dove
km7 = refrigerante forz. teleruttore
yvm7 = refr. forz. valvola
sprf = flusso M7 OK
rm7 = appoggio M7
refnc = refrigerante in automatico
aam = abilitazione mandrino
mm = mandrino in moto
cicfi = 84 ed in un punto del programma plc c'è scritto : G84=(CICFI=84)

questo è quello che ho trovato riguardo all'M7 e come puoi vedere per attrivarsi l'M7 ci deve essere,

il comando M7, il refrigerante in automatico , l'abilitazione del mandrino, il ( mandrino in moto OPPURE CICFI=84 ) che non so cosa siglifichi credo significhi che ci deve essere un G84 in corso ( maschiatura )

infatti sotto trovo scritto

G84=(CICFI=84)

quindi no mandrino in moto no M7 .

ciao.

Link al commento
Condividi su altri siti

Si ho visto, sembra abbastanza chiaro.

La cosa che si potrebbe fare è di utilizzare un'altra funzione M non utilizzata e metterla in OR con tutto il resto nell'equazione che setta KM7.

Ma, per curiosità, prova a cercare dove viene settato rm7, che magari riusciamo a capire come sono decodificate le funzioni M.

Link al commento
Condividi su altri siti

ciao,

allora qui

[ ROUTINE RESET
RESET:$
WDOG=0
RORMA=0; RANMA=0
SPORI=0
RM7=0

viene resettata

e qui viene settata

[ GESTIONE FASI
CAUT:$
IF(OPERCU=6) ALTSEQ=1
IF(OPERCU=-34) CUATT=0;UTEVEC=0;LIFE=0 [FINE
RTS
[
GEFUM:$
WNDINT(1)=AUXM
[iF (AUXM=0); RTS
[iF (AUXM=1)
[iF (AUXM=2)
IF (AUXM=3) M03
IF (AUXM=4) M04
IF (AUXM=5) M05
IF ((AUXM=6)&"TASTO) M6PGM=1;RTS[++++++++++++++
IF (AUXM=7) RM7=1; RTS
IF (AUXM=8) RM8=1; RTS
IF (AUXM=9) RM7=0; RM8=0;ESCFLU=0; RM70=0; RTS

se non erro wndint(1) che ho riportato in grassetto è la word interessata giusto ??

Link al commento
Condividi su altri siti

ciao lucios, ho trovato il manuale della logica plc !!

Ps:

ma wndint(1) per esempio è una word dint wndint(2) un altra word dint ecc... ecc.. ? O sbaglio ?

Grazie.

Link al commento
Condividi su altri siti

Mi dispiace ma non conosco la sintassi di questo linguaggio.

Però sembra che AUXM sia la word di emissione del codice M infatti:

IF (AUXM=7) RM7=1; RTS

parrebbe significare che quando AUXM assume il valore 7 viene settata a 1 la variabile RM7 che è quella che scatena il refrigerante alta pressione (come evidenziato nel frammento di codice relativo alla gestione refrigeranti che hai postato).

La variabile ritorna a 0 infatti con (AUXM=9) come è logico.

Ignoro cosa sia RTS.

Potresti provare in MDI a programmare una M qualsiasi non utilizzata per es. M40 (ma verifica che non sia usata) e vedere se AUXM assume il valore 40.

Se così fosse potresti provare a scrivere qualcosa del genere:

IF (AUXM=40) VARTUA=1

IF (AUXM=41) VARTUA=0

VARTUA (nome di fantasia) è una variabile nuova che dovresti penso dichiarare da qualche parte, ma non so come si fa con Selca.

Dopo di che verificare che si setti con M40 e si resetti con M41.

Se funziona non ti resta che metterla in OR (che sembrerebbe il simbolo ~) nell'equazione del KM7, quindi programmare M40 e M41 come più ti aggrada nelle righe della macro iso di cambio utensile.

Importante:

verifica però che non ci siano controindicazioni settando M7 con il mandrino sbloccato o fermo (tenute idrauliche, problemi di pressione e via dicendo) perchè se Sigma lo ha inibito in certe condizioni ci sarà un motivo...

Ciao

Link al commento
Condividi su altri siti

Da come è scritto sembrerebbe che la word sia wndin e che auxm sia solo una variabile di appoggio che prende il valore di wndint

Sbaglio ?

Ho fatto prove in mdi e wndint assume il valore della m programmata, e quindi credo anche auxm

6 per M6. 30 per M 30 e via dicendo !!

Off topic on:

Ricordi questa discussione ?

Bene ho visto che la variabile che contiene il numero utensile è wndint(5)

Ora dovrei capire come convertire in binario tale numero e buttarlo fuori attraverso 7bit = 7 uscite plc !!!

Grazie

Link al commento
Condividi su altri siti

Da come è scritto sembrerebbe che la word sia wndin e che auxm sia solo una variabile di appoggio che prende il valore di wndint

Sbaglio ?

A me sembra l'esatto contrario

WNDINT(1)=AUXM

secondo me significa caricare il valore letto da AUXM in WNDINT(1), quindi il cnc scrive in AUXM

Ricordi questa discussione ?

Bene ho visto che la variabile che contiene il numero utensile è wndint(5)

Ora dovrei capire come convertire in binario tale numero e buttarlo fuori attraverso 7bit = 7 uscite plc !!!

La sono andata a rivedere.

Non so con Selca ma probabilmente in wndint(5) hai già il valore in binario, quindi ti basta copiarlo pari pari sulle uscite però gestite come byte.

Sei sicuro che bastano 7 bit (perchè proprio 7 e non 8?).

Le variabili wndint come si evince dal nome non è che sono integer (o word)? Perchè, se così fosse, non ti bastano 7 bit ma te ne occorrono 16.

P.S.

Siccome siamo OT rispetto alla discussione originaria, ti consiglio di aprirne una nuova. Gli amministratori quì sono cattiiivi ma tanto cattiiiiiiiiivi :lol: :lol: :lol:

Link al commento
Condividi su altri siti

Scusa lucios ma in un certo punto del PRG leggo

Wndint(5) =Tool

In questo caso Tool non è una variabile bensì una parola chiave ( fammi passare il termine) proprietaria del controllo selca

giusto?

Link al commento
Condividi su altri siti

Probabilmente in Tool hai l codice T emesso, ma senza manuali è difficile dirlo.

Quello che non capisco è cosa serve:

Wndint(5) =Tool

Visto che poi Wndint(5) non è usato da nessuna parte.

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...