Vai al contenuto
PLC Forum


problema array SCL


dav99

Messaggi consigliati

Buongiorno, questa è la consegna dell'es che non riesco a risolvere (in un FB);

ci sono 4 ingressi : REAL_TO_LOAD [REAL], CMD_LOAD [BOOL], REAL_TO_UNLOAD[REAL], CMD_UNLOAD[BOOL].

2 uscite: ARRAY_EMPTY[BOOL], ARRAY_FULL[BOOL].

Ci sono 2 array da utilizzare di 10 caselle; uno real e l'altro bool.

Dopo aver creato una vat riesco a caricare un valore, poi il secondo lo carico ma non risulta leggibile e il terzo mi si carica nelle quarta casella.

Inoltre non si scarica il valore ed l'uscita ARRAY_EMPTY mi rimane accesa.

questo è il mio esercizio:

DATA_BLOCK DB100

    STRUCT
DATABASE: ARRAY[0..9] OF STRUCT
    NUMERO:REAL;
    STATO:BOOL;
END_STRUCT;

END_STRUCT
BEGIN

END_DATA_BLOCK

FUNCTION_BLOCK FB100

VAR_INPUT
 REAL_TO_LOAD : REAL;
 CMD_LOAD : BOOL;
 REAL_TO_UNLOAD : REAL;
 CMD_UNLOAD : BOOL;
END_VAR
VAR_OUTPUT
 ARRAY_EMPTY : BOOL;   
   ARRAY_FULL : BOOL; 
END_VAR  

VAR_TEMP
 INDICE : INT;   
 INDICE2 : INT;
END_VAR
VAR
NUMERO:REAL;
STATO:BOOL;  
INDICE1 : INT;
FRONTESALITA: BOOL;
MEMORIA: BOOL;
FRONTESALITA2 : BOOL;
MEMORIA2 : BOOL;

END_VAR
BEGIN
FRONTESALITA := CMD_LOAD AND NOT MEMORIA;
MEMORIA := CMD_LOAD;

FRONTESALITA2 := CMD_UNLOAD AND NOT MEMORIA2;
MEMORIA2 := CMD_UNLOAD;

IF INDICE1<0 THEN
   INDICE1 := 0;
END_IF;

IF INDICE1>9 THEN
   INDICE1 := 9;
END_IF;

IF FRONTESALITA THEN   
    IF DB100.DATABASE[INDICE1].STATO = FALSE THEN
       DB100.DATABASE[INDICE1].NUMERO := REAL_TO_LOAD; 
    INDICE1 := INDICE1+1;
ELSE
    INDICE1 := INDICE1+1;
END_IF;
END_IF;
IF FRONTESALITA2 THEN
    
 INDICE1:= INDICE1-1;           
  FOR INDICE:=0 TO 9  DO
       IF DB100.DATABASE[INDICE].NUMERO = REAL_TO_UNLOAD THEN
       DB100.DATABASE[INDICE].NUMERO := 0;
       DB100.DATABASE[INDICE].STATO := FALSE;
       EXIT;
       END_IF;     
            
END_FOR;

END_IF;

ARRAY_EMPTY := TRUE;
ARRAY_FULL := TRUE;
FOR INDICE2:=0 TO 9 DO
IF NOT DB100.DATABASE[INDICE2].STATO  THEN
    ARRAY_FULL := FALSE;
ELSE 
    ARRAY_EMPTY := FALSE;    
END_IF;
 END_FOR;  
 
    
END_FUNCTION_BLOCK
 

Grazie e arrivederci.

Davide.

Modificato: da dav99
Link al commento
Condividi su altri siti


Quote

riesce a risolverlo ?

 

Purtroppo dubito che troverai qualcuno disposto a leggere la tua funzione senza uno straccio di spiegazione, spaccarsi la testa per capire cosa non va e darti la soluzione. Gratis. 

Ma potrei sbagliarmi eh..

 

Nuovo utente, quindi cose già viste e riviste. Esercizio, risposta, e poi tanti saluti. 

 

In bocca al lupo per il tuo esercizio;)

 

 

Link al commento
Condividi su altri siti

Grazie mille.

Praticamente devo creare un sistema di carico e scarico numeri su un array di numeri reali a dieci caselle da 0 a 9 . 

in piu' c'è un altro array sottostante sempre da dieci caselle da 0 a 9 però booleano dove le caselle sono a false quando la caselle dell'array  sopra (dei numeri reali ) sono vuote e invece sono a true quando le caselle dell'array sopra contengono numeri.

Con il REAL_TO_LOAD carichi effettivamente il valore da inserire.

Con il CMD_LOAD è il comando per caricare e comunque si attiva solo nel fronte di salita.

Il REAL_TO_UNLOAD è il valore d'ingresso che si vuole scaricare e si andrà a confrontare all'array real.

Il CMD_UNLOAD è il comando per ativare lo scarico solo nel fronte di salita.

L'uscita ARRAY_EMPTY si attiva quando tutto l'array real è vuoto quindi tutte le caselle dell'array bool sono a false.

L'uscita ARRAY_FULL si attiva quando l'array real è pieno quindi tutte le caselle dell'array bool sono a true.

@step-80 ti sfido, vediamo se ci riesci! 😊

 

Link al commento
Condividi su altri siti

Quote

ti sfido, vediamo se ci riesci!

 

Ahaha carino il tentativo della sfida...ma non ne ho ne tempo ne voglia^_^.

 

Poi il 300 non è nemmeno la mia sezione, è solo che quando vedo il trinomio Nuovo Utente-pappardella senza capo ne coda ne spiegazione-saluti finali...non resisto e scrivo qualche boiata:superlol:.

 

In merito al tuo esercizio,mi spiace ma non posso aiutarti.

Link al commento
Condividi su altri siti

Giuseppe Signorella
4 ore fa, dav99 scrisse:

ti sfido, vediamo se ci riesci! 😊

 

Guarda che non funziona, 

Questo è esattamente il giusto atteggiamento per essere presi in giro e non farsi aiutare.

Piuttosto, vediamo quanta voglia hai nel riuscire a risolvere il problema e a far si che tu riceva il giusto aiuto.

Comincia nel descriverci come risolveresti il problema, poi si vedrà.

Link al commento
Condividi su altri siti

Ma si tratta di un esercizio scolastico, o di un lavoro vero?
Perché complicare inutilmente le cose con due array?
Perché non gestisci un solo array e un indice che punta al primo elemento libero dell'array, e che puoi usare quindi anche per sapere se l'array è pieno o vuoto?

Link al commento
Condividi su altri siti

16 minuti fa, batta scrisse:

Ma si tratta di un esercizio scolastico, o di un lavoro vero?
Perché complicare inutilmente le cose con due array?
Perché non gestisci un solo array e un indice che punta al primo elemento libero dell'array, e che puoi usare quindi anche per sapere se l'array è pieno o vuoto?

 

Buongiorno, è un lavoro scolastico,

La consegna dice di capire se si possa scrivere nell'array reale solamente grazie all'array booleano.

Ogni qualvolta si trovi l'uscita del booleano a "true" l'indice deve spostarsi nella casella successiva, altrimenti in caso di "false" viene occupata da un numero scelto da noi.

Grazie in anticipo. @batta

 

Davide.

 

Modificato: da dav99
Link al commento
Condividi su altri siti

Ripartiamo dall'inizio.
Step-80 forse è stato un po' duro, ma ti sei posto in modo decisamente sbagliato.
Prima di tutto, perché se pensi che il Forum sia un posto dove qualcuno risolve per te i tuoi problemi, hai capito male. Qui puoi trovare aiuto, non chi ti fa tutto il lavoro.
Trattandosi poi di un esercizio scolastico, questo concetto è ancora più valido: che valore avrebbe il tuo compito se fosse stato svolto da qualcun altro?
Anche il tuo tentativo di lanciare una sfida non pone a tuo favore. Siamo tutti abbastanza "sgamati" da non cadere in queste banali trappole.

Comunque, voglio provare a darti una mano.
Non ho analizzato il codice in modo approfondito, e non ho fatto test con simulatori od altro.
La prima cosa che noto però è che da nessuna parte scrivi TRUE negli elementi dell'array booleano dopo aver inserito un dato.

Correggi questo errore e fai ulteriori prove.
 

Link al commento
Condividi su altri siti

@dav99 

 

suppongo che 99 sia l'anno di nascita..sigh che bella età:P

 

Come ti è già stato detto, qui sul forum(ma mi sento di dire nei forum in generale) non funziona cosi. Devi dirci cosa non ti riesce, devi postare le tue prove e renderci piu partecipi. Nessuno si spaccherà la testa per il tuo problema perchè abbiamo tutti i nostri impegni e soprattutto abbiamo già i nostri di problemi. 

Il codice l'hai scritto tu? Se si, ti consiglio di abituarti a commentarlo, in questo modo lo rendi piu leggibile sia per te stesso che per noi. 

 

19 ore fa, dav99 scrisse:

VAR_TEMP
 INDICE : INT;   
 INDICE2 : INT;

A prima occhiata , questo mi sembra un grave errore. Entrambe le variabili INDICE sono dichiarate come TEMP e ciò significa che usano un'area di memoria che è a disposizione del sistema non appena viene effettuata l'uscita dal blocco.

Link al commento
Condividi su altri siti

54 minuti fa, batta scrisse:

.
Non ho analizzato il codice in modo approfondito, e non ho fatto test con simulatori od altro.
La prima cosa che noto però è che da nessuna parte scrivi TRUE negli elementi dell'array booleano dopo aver inserito un dato.

Correggi questo errore e fai ulteriori prove.
 

 

48 minuti fa, step-80 scrisse:

A prima occhiata , questo mi sembra un grave errore. Entrambe le variabili INDICE sono dichiarate come TEMP e ciò significa che usano un'area di memoria che è a disposizione del sistema non appena viene effettuata l'uscita dal blocco.

Ho capito, grazie del consiglio.

Buona giornata.

Modificato: da dav99
Link al commento
Condividi su altri siti

5 ore fa, step-80 scrisse:

Entrambe le variabili INDICE sono dichiarate come TEMP

Step-80, purtroppo ti devo contraddire. Nel caso in questione (se non mi è sfuggito qualcosa) queste due variabili sono usate solo nei cicli FOR e vengono quindi regolarmente inizializzate.

Link al commento
Condividi su altri siti

1 ora fa, batta scrisse:

Step-80, purtroppo ti devo contraddire. Nel caso in questione (se non mi è sfuggito qualcosa) queste due variabili sono usate solo nei cicli FOR e vengono quindi regolarmente inizializzate.

Hai perfettamente ragione. Per distrazione ho confuso INDICE1 (regolarmente dichiarato) con INDICE e INDICE2 dichiarati nelle TEMP.

Link al commento
Condividi su altri siti

Dunque, vediamo di partire dall'inizio..

 

Quote

FRONTESALITA := CMD_LOAD AND NOT MEMORIA;
MEMORIA := CMD_LOAD;

FRONTESALITA2 := CMD_UNLOAD AND NOT MEMORIA2;
MEMORIA2 := CMD_UNLOAD;

Se CMD_LOAD va ON, FRONTESALITA è alto per una scansione;

Se CMD_UNLOAD va ON,FRONTESALITA2 è alto per una scansione;

fin qui ci siamo. 

 

Quote

IF INDICE1<0 THEN
   INDICE1 := 0;
END_IF;

IF INDICE1>9 THEN
   INDICE1 := 9;
END_IF;

Qui fai un controllo su INDICE1. Se sfora i limiti, lo forzi ai limiti; 

 

Quote

IF FRONTESALITA THEN   
    IF DB100.DATABASE[INDICE1].STATO = FALSE THEN
       DB100.DATABASE[INDICE1].NUMERO := REAL_TO_LOAD; 
    INDICE1 := INDICE1+1;

Se FRONTESALITA va ad 1(qualcuno ha premuto CMD LOAD) 

Verifico che DB100.DATABASE[INDICE1].STATO = FALSE (dato che INDICE1 dovrebbe essere 0, verifico il primo elemento [0] dell'array di bool); se condizione soddisfatta carico il numero che l'operatore aveva caricato in REAL_TO_LOAD dentro DB100.DATABASE[INDICE1].NUMERO. 

Successivamente incremento INDICE1 . Tutto ok sin qua, ma manca l'operazione fondamentale: devi mettere ad 1 il relativo bool dell'array (DB100.DATABASE[INDICE1].STATO) MA LO DEVI FARE PRIMA DELL'OPERAZIONE DI INCREMENTO. 

 

Tipo:

IF FRONTESALITA THEN   
    IF DB100.DATABASE[INDICE1].STATO = FALSE THEN
       DB100.DATABASE[INDICE1].NUMERO := REAL_TO_LOAD; 

       DB100.DATABASE[INDICE1].STATO := TRUE;    //Qui metti a TRUE l'elemento dell'array
    INDICE1 := INDICE1+1;
 

Quote

ELSE
    INDICE1 := INDICE1+1;
END_IF;
END_IF;

Se l elemento è True , incrementa solo l’indice(ok).

 

Quote

IF FRONTESALITA2 THEN
    
 INDICE1:= INDICE1-1;           
  FOR INDICE:=0 TO 9  DO
       IF DB100.DATABASE[INDICE].NUMERO = REAL_TO_UNLOAD THEN
       DB100.DATABASE[INDICE].NUMERO := 0;
       DB100.DATABASE[INDICE].STATO := FALSE;
       EXIT;
       END_IF;     
            
END_FOR;

Se qualcuno preme CMD UNLOAD , (FRONTESALITA2==TRUE per una scansione) , per prima cosa viene immediatamente decrementato INDICE1. (Questa istruzione la metterei DOPO il For). 

Successivamente viene scansionato l'array di REAL per vedere se un elemento è == al valore REAL_TO_UNLOAD; se condizione soddisfatta:

-scarico l'elemento(ok) ;

-Abbasso elemento array bool rispettivo(ok);

Esco dal FOR.

 

Quote

ARRAY_EMPTY := TRUE;
ARRAY_FULL := TRUE;

Qui vengono incondizionatamente messe a TRUE le due uscite dell'FB 

 

Quote

FOR INDICE2:=0 TO 9 DO
IF NOT DB100.DATABASE[INDICE2].STATO  THEN
    ARRAY_FULL := FALSE;
ELSE 
    ARRAY_EMPTY := FALSE;    
END_IF;
 END_FOR;  

Qui viene scansionato l'array di bool:

Se trovi un elemento == FALSE, abbassi ARRAY_FULL (ok);

altrimenti abbassi ARRAY_EMPTY(ok).

Io tuttavia modificherei con una cosa piu chiara tipo:

FOR INDICE2:=0 TO 9 DO
IF NOT DB100.DATABASE[INDICE2].STATO  THEN
    ARRAY_FULL := FALSE;

    ARRAY_EMPTY := TRUE;
ELSE 

    ARRAY_FULL := TRUE;
    ARRAY_EMPTY := FALSE;    
END_IF;
 END_FOR;

 

eliminando  la parte dove alzi le uscite incondizionatamente.

 

 

Quote

Grazie e arrivederci.

Ecco, era meglio se mettevi un Padre Nostro.:roflmao:

 

Sicuramente io ho i miei limiti, ma mi sembra che ci sia un po di casino. 

Per prima cosa, aggiungi(come diceva Batta) l'istruzione di SET dell'elemento bool dell'array quando carichi un REAL. 

 

Prova cosi e poi magari facci sapere.

 

Questo è l'umile aiuto che sono riuscito a darti. Tieni presente che potrei anche averti detto un sacco di fregnacce(spero di no) ma questo me lo diranno altri se intervengono. 

 

Buona serata

Matteo

Modificato: da step-80
Link al commento
Condividi su altri siti

12 ore fa, step-80 scrisse:

Prova cosi e poi magari facci sapere.

Buongiorno, grazie dei consigli.

Li ho provati a mettere in pratica però quando apro una VAT riesco a caricare il primo valore e me ne compare subito un altro appena sotto.

Quando carico il secondo valore mi viene un numero indecifrabile e la stessa cosa ripetuta per il terzo e il quarto.

Grazie in anticipo.

Buona giornata.

Davide.

es prova plc (vat)1.PNG

Modificato: da dav99
Link al commento
Condividi su altri siti

dav99.thumb.png.8eedfaf05459183f80e9ae1e2cd8b2b1.png

 

E' un problema di sovrapposizione di variabili. 

E' solo un errore di distrazione nella creazione della VAT..al posto di DB100.DBD 6 scrivi DB102.DBD 6,altrimenti vai a sporcare l'array di REAL

 

Facci sapere

Ciao

 

Matteo

Modificato: da step-80
Link al commento
Condividi su altri siti

Come ti ha già risposto Step-80, stai puntando gli indirizzi sbagliati.
Perché non apri il DB e controlli quali sono gli indirizzi effettivi? Da come hai creato la struttura, gli indirizzi sono quelli che usi nel DB102 (che poi non si sa da dove venga né cosa sia).
Hai creato un array di STRUCT, la quale STRUCT è composta da un REAL e da un BOOL. Il REAL occupa 4 byte. Dopo la variabiel BOOL, anche se usi un solo bit, devi ripartire col prossimo indirizzo pari. Quindi, il primo elemento dell'array occupa i byte da 0 a 3 per la variabile REAL, ed il bit 4.0 per la variabile BOOL. Il secondo elemento dell'array partirà dal byte 6.
Però, mi chiedo: perché complicarsi la vita con gli indirizzi quando si può usare il simbolico?
 

Tornando all'esercizio...

Vedo che, quando scrivi un dato, utilizzi un indice che vai ad incrementare ad ogni scrittura, e decrementi quando estrai un dato.
Questo è quello che si fa normalmente in un registro FIFO, ma il tuo esercizio è diverso: per ogni elemento dell'array hai a disposizione una variabile che contiene il dato, ed una che indica se quell'elemento è libero o è occupato. Non devi quindi gestire un indice che si incrementa/decrementa, ma cercare il primo elemento libero quando scrivi.
Prova a pensarci: tu inserisci dati. Poi estrai un dato, che potrebbe essere uno qualsiasi di tutti quelli inseriti, o nessuno di essi (fai una ricerca del valore). Non è detto che il dato che andrai ad estrarre sia l'ultimo, potrebbe essere uno qualsiasi dei dati inseriti. Se decrementi l'indice, alla successiva scrittura vai a puntare all'elemento sbagliato.
Abbandona incremento/decremento dell'indice. Devi, anche per la scrittura, fare un ciclo FOR e cercare il primo elemento libero. Quando hai trovato un elemento libero, fai la scrittura del valore, imposti a TRUE lo stato, ed esci dal ciclo FOR.
Quando leggi, sempre con un ciclo FOR (come hai fatto), se trovi il valore che stavi cercando, leggi il valore e imposti lo stato FALSE.

 

Un consiglio generale: usa dei nomi significativi per le variabili (FRONTESALITA, MEMORIA, non dicono nulla), e commenta il codice. Una regola generale dice che un programma dovrebbe essere costituito da almeno il 50% di commenti. Nel tuo programma i commenti sono zero.

Link al commento
Condividi su altri siti

@batta non sappiamo nemmeno se il codice è stato scritto da lui. Potrebbe averlo copiaincollato da qualsiasi documento in rete, o potrebbe essere un esercizio dato a scuola che ha brutalmente copiato da un suo compagno.

Dico ciò perchè in parecchi post non c'è il minimo accenno al codice da parte sua, solo la perenne constatazione che non va. Sembra solo il momentaneo ed impellente bisogno di farlo in qualche modo funzionare, ma non sembra ci sia la reale intenzione di capire cosa ci sia che non va. 

 

Naturalmente sono sempre qui che aspetto di essere smentito, del resto mica fai un dispetto a noi se non lo sai risolvere..noi ci abbiam sbattuto la testa sui nostri di problemi fino a farla diventare quadrata   :D

Link al commento
Condividi su altri siti

19 minuti fa, step-80 scrisse:

Sembra solo il momentaneo ed impellente bisogno di farlo in qualche modo funzionare, ma non sembra ci sia la reale intenzione di capire cosa ci sia che non va. 

Anche a me sta dando la stessa impressione. Proprio per questo ho dato delle indicazioni, ma non ho fornito esempi di codice.
Gli sto ancora concedendo il beneficio del dubbio.

Link al commento
Condividi su altri siti

3 ore fa, batta scrisse:

Anche a me sta dando la stessa impressione

 

E la filosofia dell'arraffare un voto sufficiente con qualsiasi mezzo. E abbastanza diffusa nell'età adoscelenziale, poi maturando si capisce che è sbagliato. Qualcuno non lo capisce mai e per tutta la vita cerca di arraffare qaulche cosa con qualsiasi mezzo.

Link al commento
Condividi su altri siti

Quote

E la filosofia dell'arraffare un voto sufficiente con qualsiasi mezzo.

 

Sono OT, ma lo dico comunque. 

Ragazza sui 30 anni, oggi viene a fare un colloquio da noi per un posto di lavoro. Curriculum alla mano, il solito elemento che salta di qua e di la per le aziende con contratti da 1 mese alla volta,in qualche occasione anche meno.  Dato il bisogno di manodopera tentiamo ugualmente il colloquio, anche perchè speriamo sempre di trovarci davanti qualcuno che ci fa rimpiangere di aver dato un giudizio affrettato.

Cercavamo una figura addetta al confezionamento di prodotti cosmetici, quindi si richiedeva una buona manualità e velocità oltre che pulizia , rispetto delle regole e puntualità. L'ambiente di lavoro non è certo quello che si può definire stressante o pesante, anzi. Sale climatizzate ovunque e rigorosa pulizia (ci teniamo particolarmente).

La ragazza si presenta piena di piercing, tatuaggi, unghie curatissime e lunghissime. Qualcuno di voi potrà dire che non si giudica dalle apparenze ma chiunque si trovi per lavoro a valutare candidati sa benissimo che la prima impressione spesso è più importante del colloquio stesso. Personalmente ho imparato-per esempio-che chi esordisce gettando fango sul posto di lavoro precedente o sui titolari precedenti con noi ha ben poche chances, anche se è un drago. 

La solfa è sempre la stessa: bisogno di lavorare assoluto bla bla bla. Sono disponibile da subito bla bla bla. Mi adeguo a qualsiasi realtà lavorativa bla bla bla. 

Ok allora, ci vediamo domani mattina alle 8:00. 

...

Il tempo che esce dal cancello e chiama al telefono. Risponde la segretaria che poi ci riferisce quanto segue: la ragazza si è 'informata' e ha altri 30 gg di disoccupazione, e quindi preferisce percepire quelli. 

...

Mi piacerebbe capire dove si è 'informata' e se non avesse potuto 'informarsi' prima di venire al colloquio e farci perdere tempo. Mi piacerebbe capire perchè vengono ai colloqui, se poi sanno già che non ne hanno voglia. La ragazza è solo l'ultima della lista. Provengo da 3 anni buoni di ricerca serrata che hanno portato alla scoperta di soli 2 elementi 'discreti'. I restanti(almeno 30-35) hanno rasentato il ridicolo. Chi veniva al colloquio per far contenti i genitori, chi non si presentava nemmeno(chi al colloquio e chi al primo giorno di lavoro),chi sembrava spaccasse il mondo e dopo 2 giorni mi diceva 'non ce la faccio, non ce la farò mai, ci rinuncio'. 

 

Sono abbastanza affranto da tutto ciò. Cerco di trasmettere la mia stessa passione ed il mio stesso entusiasmo agli altri ma evidentemente c'è qualcosa di sbagliato perchè mi accorgo che poi vengo solo deriso e preso in giro.

 

La cosa buffa è che molti si licenziano da me per andare in posti che so per certo essere dei veri e propri lager con orari e richieste impossibili, attirati da una manciata di euro in piu a fine mese(ma proprio una manciata) , senza possibilità di crescere, dove sei solo un numero e come tale vieni trattato. Boh io le persone c'ho rinunciato a capirle, o sono io che non capisco. 

Che non mi vengano però più a dire che in Italia non c'è lavoro .

 

Scusate OT.

Modificato: da step-80
Link al commento
Condividi su altri siti

38 minuti fa, acquaman scrisse:

Tranquillo, adesso c'è il reddito di cittadinanza gente così non te ne capita più sono già tutti sistemati.

 

La prendo come una battuta:D.

A parte gli scherzi, noi lavoravamo benissimo con le agenzie interinali. Un lavoro come il nostro che ha dei picchi stagionali e/o dovuti al fluttuare continuo della richiesta di mercato rende molto faticoso per noi assumere a tempo indeterminato, per i motivi che conoscete bene. Con le agenzie potevamo assumere con proroghe anche giornaliere e a noi andava molto bene. Capiamoci, la giostra non era gratis: le agenzie si fanno pagare e anche bene per fare un lavoro che una volta svolgevano con cura: la ricerca del personale.

Dico una volta perchè ormai anche loro fanno semplicemente da tramite fra te ed il lavoratore, se io faccio richiesta ad esempio per un mulettista e ho la fortuna che il giorno prima un mulettista ha portato il curriculum in agenzia, ho qualche speranza. Ma se il mulettista è passato la settimana prima il suo cv è finito chissà dove e a me vogliono per forza affibbiare uno che fino  a ieri ha impastato pizza. 

 

Non vorrei che qualcuno pensasse alla mia come una visione molto egoistica della cosa. Della serie:chi mi serve per quanto mi serve e poi fuori dalle scatole,alla faccia del precariato. 

In realtà è esattamente l'opposto: sono io che ho disperato bisogno di loro e una azienda, quando trova qualcuno di sveglio, fidatevi che è la prima a non volerselo lasciar scappare. State quindi certi che quel ragazzo/a se dimostra buona volontà e capacità non rimarrà precario a lungo. 

Il problema è trovarli..

 

Sempre della serie M5S , il Decreto Dignità mi dice che non posso rinnovare il contratto per più di 2 anni ad un lavoratore . Voi direte sono tanti... Io dico che non sono niente, perchè dopo 2 anni ancora sono li che mi chiedo se certe persone ci sono o ci fanno , o se mi prendono in giro. 

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...