Claudio Monti Inserito: 22 febbraio 2008 Segnala Share Inserito: 22 febbraio 2008 Il calcolo della data di Pasqua e' un po' particolare.Nell'esempio che riporto e' stato sviluppato su Premium Telemecanique, la formula e' comunque esportabile ed utilizzabile in tutti i PLC.! (*Calcolo Pasqua*) (*by Claudio Monti*) IF App_cambio_anno<>Secolo_anno THEN SET Abil_calc_pasqua;END_IF; (*Al cambio anno*) App_cambio_anno:=Secolo_anno; App_anno_decimale:=((App_cambio_anno/16#00FF)/16*1000)+(App_cambio_anno AND 16#00FF); (*Passaggio anno in ESA->DEC*) IF Abil_calc_pasqua THEN A_easter:=App_anno_decimale/100; B_easter:=App_anno_decimale REM 100; C_easter:=(3*(A_easter+25))/4; D_easter:=(3*(A_easter+25))REM 4; E_easter:=(8*(A_easter+11))/25; F_easter:=(5*A_easter+B_easter)REM 19; G_easter:=(19*F_easter+C_easter-E_easter)REM 30; H_easter:=(F_easter+11*G_easter)/319; J_easter:=(60*(5-D_easter)+B_easter)/4; K_easter:=(60*(5-D_easter)+B_easter)REM 4; M_easter:=(2*J_easter-K_easter-G_easter+H_easter)REM 7; N_easter:=(G_easter-H_easter+M_easter+114)/31; P_easter:=(G_easter-H_easter+M_easter+114)REM 31; Day_easter:=P_easter+1; Month_easter:=N_easter; RESET Abil_calc_pasqua; END_IF; App_mesegiorno:=(N_easter*256)+(Day_easter/10*16)+(Day_easter REM 10); (*Riassegnazione MeseGiorno in ESA*)Spiegazione del codice:La variabile Secolo_anno e' una variabile di sistema interna al PLC (%SW53) espressa in BCD.Il valore dell'anno da passare alla formula deve essere convertito in decimale.Il calcolo viene eseguito solo 1 volta all'anno, nel momento di cambio data.In fondo c'e' la riassegnazione dei dati trovati in esadecimale, potete comunque utilizzare Day_easter e Month_easter cosi' come sono in decimale.Spero sia tutto chiaro Link al commento Condividi su altri siti More sharing options...
Michele Inserita: 8 gennaio 2009 Segnala Share Inserita: 8 gennaio 2009 ciao, analizzavo il codice ed non conoscendo nulla di Telemecanique e trovando poco o nulla su internet chiedevo cosa significa la dicitura REM 100 , REM 30 ...TIPO "B_easter:=App_anno_decimale REM 100;"GRAZIEMichele Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 8 gennaio 2009 Segnala Share Inserita: 8 gennaio 2009 REM = remainder è il resto di una divisioneè l'equivalente dell'istruzione MOD (modulo) su Unity ed altri software Link al commento Condividi su altri siti More sharing options...
MABE Inserita: 9 gennaio 2009 Segnala Share Inserita: 9 gennaio 2009 Ciaoma per svilupparlo in ladder (omron CJ1), come potrei procedere? Link al commento Condividi su altri siti More sharing options...
MAB Inserita: 30 ottobre 2009 Segnala Share Inserita: 30 ottobre 2009 Si ne sarei interessato anche io, si può svilupparlo in ladder? O il Ladder ha dei limiti... Link al commento Condividi su altri siti More sharing options...
Jtag Inserita: 1 novembre 2009 Segnala Share Inserita: 1 novembre 2009 Non so come funzioni l'Omron, ma per il ControlLogix5000 basta rifare le stesse operazioni descritte da Claudio Monti in Ladder. Non ho ancora testato il tutto su una PLC, quindi ci potrebbe essere quanlche inesattezza.... In allegato il PDF del ladder.CalcoloPasqua.PDF Link al commento Condividi su altri siti More sharing options...
Jtag Inserita: 2 novembre 2009 Segnala Share Inserita: 2 novembre 2009 .... ovviamente tutte la variabili sono dichiarate come INTeger, così che una divisione (DIV) dia come risultato solo la parte intera...... Link al commento Condividi su altri siti More sharing options...
MAB Inserita: 3 novembre 2009 Segnala Share Inserita: 3 novembre 2009 Scusa ma ovviamente non sono alivelli molto avanzati, ma mi sembra di capire che col Logo di Siemens questo Ladder quà non lo posso realizzare.... Link al commento Condividi su altri siti More sharing options...
Jtag Inserita: 3 novembre 2009 Segnala Share Inserita: 3 novembre 2009 Scusa ma ovviamente non sono alivelli molto avanzati, ma mi sembra di capire che col Logo di Siemens questo Ladder quà non lo posso realizzare....Non conosco bene il LOGO, ma guardando il manuale non mi sembra di aver visto funzioni matematiche "pure", solo quelle legate all'analogico. Link al commento Condividi su altri siti More sharing options...
MAB Inserita: 17 novembre 2009 Segnala Share Inserita: 17 novembre 2009 Scusa mi faccio vivo adesso perchè internet purtroppo mi va e mi viene non ho l' adsl ma quella Wifire per cui spesso ho problemi, mi dispiace non poter essere intervenuto prima, comunque se cei sempre in ascolto ti chiedo: ma che programmazione sarebbe quella con funzioni matematiche pure, cioè io conosco nomi tipo List, AWL ecc.... ma il linguaggio sopra mi ricorda tanto quando programmavo in Basic, potresti dirmi di che programmazione si tratta ciao e grazie. Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 18 novembre 2009 Segnala Share Inserita: 18 novembre 2009 si tratta del linguaggio ST = Structured Text (in questo esempio è per PLC Schneider Electric)se sei più avvezzo a PLC Siemens corrisponde al linguaggio S7-SCL (Structured Control Language)Sono linguaggi che credo derivino dal Pascal Link al commento Condividi su altri siti More sharing options...
biros66 Inserita: 27 novembre 2009 Segnala Share Inserita: 27 novembre 2009 esatto! Dal Pascal 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