Vai al contenuto
PLC Forum


Ingressi digitali come numero binario


borisiano

Messaggi consigliati

15 hours ago, leleviola said:

Beh confronto al 1200 era un giocattolino ma per il tempo in cui uscì il Texas non era affatto male e ha tirato avanti dignitosamente un bel po', i Texas non li ho mai avuto sottomano i 200 invece dai primi anni 20

Elsist è un valido prodotto poi il sig Cotoia è molto disponibile.. non essendo un grande marchio internazionale però ha supporto ottimo !!!

Link al commento
Condividi su altri siti


Per fsvore non quotare l'intero messaggio perchè in questo modo la discussione diventa illeggibile; limita la quotatura ad una frase significativa.

Link al commento
Condividi su altri siti

 

1 ora fa, Livio Orsini ha scritto:

non quotare l'intero messaggio

Chiedo scusa. Sono un principiante anche in questo. Spero di imparare presto.

Link al commento
Condividi su altri siti

LD     V0.0        //Caso 1
MOVB   IB0, VB30
LDB=   VB30, 20
=      V40.0
LD     V0.1        //Caso 2
MOVB   IB0, VB30
LDB=   VB30, 12
=      V40.1
LD     V0.2        //Caso 3
MOVB   IB0, VB30
LDB=   VB30, 18
=      V40.2
LD     V0.3        //Caso 4
MOVB   IB0, VB30
LDB=   VB30, 10
=      V40.3

NETWORK 4       //Attivazione uscita Q0.5 se configurazione byte corretta solo su ogni caso
LD     V40.0
A      V0.0
=      V50.0
LD     V40.1
A      V0.1
=      V50.1
LD     V40.2
A      V0.2
=      V50.2
LD     V40.3
A      V0.3
=      V50.3

LD     V50.0
O      V50.1
O      V50.2
O      V50.3
=      Q0.5

 

Questo è come ho risolto il problema alla fine. Così funziona, anche se forse un po' contorto come codice.

Immagino vi siano soluzioni migliori.

Caso 1, Caso 2, Caso 3 e Caso 4 vanno a 1 quando nel resto del programma si entra nelle dovute condizioni.

Nel caso sapete indicarmi una soluzione più da programmatore? Così magari imparo qualcosa.

Comunque sia i vostri cosnigli sono stati preziosi.

 

Link al commento
Condividi su altri siti

A parte essere piuttosto contorto, è anche sbagliato, perché non tieni conto dello stato che potrebbero assumere gli ingressi I0.5, I0.6, I0.7.

Prova così:

// Segmento 1: Lettura e mascheramento byte ingressi IB0
LD     SM0.0
MOVB   IB0, VB30
ANDB   2#11111, VB30

// SEgmento 2: Attivazione uscita
LD     V0.0
AB=    VB30, 2#10100
LD     V0.1
AB=    VB30, 2#1100
OLD
LD     V0.2
AB=    VB30, 2#10010
OLD
LD     V0.3
AB=    VB30, 2#1010
OLD
=      Q0.5

Che poi, per quanto io sia abituato ad usare molto AWL con S7-300, trovo l'AWL del 200 poco intuitivo, e mi pare più chiaro così:

immagine.png.bcda366ee12c5689fc0d2ecc1943d4f5.png

Link al commento
Condividi su altri siti

26 minuti fa, batta ha scritto:

è anche sbagliato, perché non tieni conto dello stato che potrebbero assumere gli ingressi I0.5, I0.6, I0.7

Ti ringrazio per il consiglio.

Non è sbagliato perché al momento gli ingressi I0.5, I0.6 e I0.7 non sono utilizzati e quindi sempre a 0, perciò avevo omesso quella parte, ma la tua considerazione è giusta per un eventuale uso futuro di questi e comunque certamente sempre consigliabile.

Il tuo codice è sicuramente più snello e leggibile e Lunedì lo proverò cercando di capire le istruzioni e la logica che hai usato.

E' un modo per imparare qualche buona tecnica.

Grazie ancora e buon fine settimana a tutti.

Link al commento
Condividi su altri siti

Il 17/4/2020 alle 18:03 , batta ha scritto:

ANDB 2#11111, VB30

Grazie mille.

Ho provato la tua tecnica e funziona a perfezione ed ho anche messo il mascheramento dei bit per IB0 come hai suggerito e realizzato.

A proposito di questo volevo chiederti perché nel mio Micro/WIN versione 3.1, i binari mi vengono automaticamente trasformati in esadecimali sul listato.

2#11111 diventa in automatico 16#1F. Questo mi causa una leggibilità peggiore del mio software.

C'è un modo per farlo lasciare in binario?

Link al commento
Condividi su altri siti

33 minuti fa, borisiano ha scritto:

C'è un modo per farlo lasciare in binario?

Non ne ho idea. Io ho la versione 4.09, non so come si comporti la 3.1.

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