Vai al contenuto
PLC Forum


S7 200 + Modem Tc35 - INVIARE E RICEVERE MESSAGGI A/DA UN CELL


rddiego

Messaggi consigliati

Ciao a tutti sono Diego e programmo da pochi anni... ho acquisito un sacco di cose sul mondo dell'automazione e sul modo di programmare delle varie case. Ogni volta è come ricominciare e ciò mi stimola. Ora però il lavoro mi sta quasi opprimendo e non ho modo di studiare tutte le problematiche che mi si pongono di fronte. E' per questo che mi faccio vivo chiedendo a voi tutti un aiuto. Nella fattispecie ho impellenza di creare un software per S7 200 che invii messaggi SMS ad un cellulare attraverso un modem modello TC35. Premetto che S7 200 non l'ho mai visto, ma avendo ormai molta esperienza con STEP 7 non dovrei incontrare difficoltà. Più che altro la difficoltà sta nel gestire un modem... questo sì

Link al commento
Condividi su altri siti


Ciao a tutti sono Diego e programmo da pochi anni... ho acquisito un sacco di cose sul mondo dell'automazione e sul modo di programmare delle varie case. Ogni volta è come ricominciare e ciò mi stimola. Ora però il lavoro mi sta quasi opprimendo e non ho modo di studiare tutte le problematiche che mi si pongono di fronte. E' per questo che mi faccio vivo chiedendo a voi tutti un aiuto. Nella fattispecie ho impellenza di creare un software per S7 200 che invii messaggi SMS ad un cellulare attraverso un modem modello TC35. Premetto che S7 200 non l'ho mai visto, ma avendo ormai molta esperienza con STEP 7 non dovrei incontrare difficoltà. Più che altro la difficoltà sta nel gestire un modem... questo sì

Link al commento
Condividi su altri siti

Ti conviene cercare l'argomento tc35 che è già stato trattato. Comunque ci sono degli esempi che trovi sul sito della siemens. Sul sito ho trovato proprio l'esempio che trattava di invio sms, e-mail e fax, però non l'ho provato perché non faceva al caso mio. Ho trovato invece un esempio più attinente nel cd dei manuali fornito insieme al microwin s7-200 3.2 sp4: devo dire però che questo esempio presenta alcuni problemi:

1-la stringa che serve per inizializzare il modem è invertita (per correggere il problema basta entrare nell'editor del blocco dati e sostituire tutte le linee VD con VB)-> infatti se dichiari VD 0 'ciao' ottieni VB0='o' VB1 ='a' VB2='i' e VB3='c', quindi trovi tutti i byte invertiti; se invece dichiari VB 0 'ciao' ottieni il risultato corretto.

2-la funzione che serve per inviare gli sms non funziona! Siccome non avevo questa necessità non sono andato a fondo... Sembrerebbe un problema di lunghezza del numero del centro servizi, ma non ne sono sicuro

Spero di essere stato utile

Saluti, Oscar

Link al commento
Condividi su altri siti

Ti conviene cercare l'argomento tc35 che è già stato trattato. Comunque ci sono degli esempi che trovi sul sito della siemens. Sul sito ho trovato proprio l'esempio che trattava di invio sms, e-mail e fax, però non l'ho provato perché non faceva al caso mio. Ho trovato invece un esempio più attinente nel cd dei manuali fornito insieme al microwin s7-200 3.2 sp4: devo dire però che questo esempio presenta alcuni problemi:

1-la stringa che serve per inizializzare il modem è invertita (per correggere il problema basta entrare nell'editor del blocco dati e sostituire tutte le linee VD con VB)-> infatti se dichiari VD 0 'ciao' ottieni VB0='o' VB1 ='a' VB2='i' e VB3='c', quindi trovi tutti i byte invertiti; se invece dichiari VB 0 'ciao' ottieni il risultato corretto.

2-la funzione che serve per inviare gli sms non funziona! Siccome non avevo questa necessità non sono andato a fondo... Sembrerebbe un problema di lunghezza del numero del centro servizi, ma non ne sono sicuro

Spero di essere stato utile

Saluti, Oscar

Link al commento
Condividi su altri siti

+ che del numero del centro servizi, il problema sta aL NUMERO DI TELEFONO a cui inviare l'sms

nell'esempietto è riportato un numero a 11 cifre, mentre qui in italia sono 10

quindi bisogna contare i byte necessari per il n. di tel (in questo caso toglierne 1)

e di conseguenza spostare anticipando di 1 byte anche il comando di enter che si da al modem che altrimenti non arriverebbe mai....

ciao

Alessandro Fedrighini

Link al commento
Condividi su altri siti

+ che del numero del centro servizi, il problema sta aL NUMERO DI TELEFONO a cui inviare l'sms

nell'esempietto è riportato un numero a 11 cifre, mentre qui in italia sono 10

quindi bisogna contare i byte necessari per il n. di tel (in questo caso toglierne 1)

e di conseguenza spostare anticipando di 1 byte anche il comando di enter che si da al modem che altrimenti non arriverebbe mai....

ciao

Alessandro Fedrighini

Link al commento
Condividi su altri siti

ciao rddiego :D

per far si che il modem comunichi bisogna , oltre a le poche cose da fare col configuratore assistente ,

crearsi un piccolo protocollino sopra al protocollo PPI (cavo di programmazione che si usa per la programmazione

e anche per eventuali comunicazioni tra s7-200 ed altre apparecchiature).

il protocollino all'interno del software dovra fare in modo di trasmettere tramite la funzione scrivi in rete (xmt)

la stringa o le stringhe da mandare al modem.

come per il protocollo freeport anche questo dovra scrivere le stringhe che saranno spedite dal modem

"trasformando" la scritta che vorrai spedire in formato codice ascii

(esempio la "A" sara 63 se no sbaglio ect.

c'e' tutta una documentazione che si trova su manuali specifici ,ma che troverai anche nel cd documentazione

sotto la voce trips& tricks che viene distribuito insieme al microwin .

la funzione xmt richiede la porta di com. e il buffer di trasmissione che dovrai opportunamente preparare .

;)

ciao

WALTER :lol::lol:

Link al commento
Condividi su altri siti

ciao rddiego :D

per far si che il modem comunichi bisogna , oltre a le poche cose da fare col configuratore assistente ,

crearsi un piccolo protocollino sopra al protocollo PPI (cavo di programmazione che si usa per la programmazione

e anche per eventuali comunicazioni tra s7-200 ed altre apparecchiature).

il protocollino all'interno del software dovra fare in modo di trasmettere tramite la funzione scrivi in rete (xmt)

la stringa o le stringhe da mandare al modem.

come per il protocollo freeport anche questo dovra scrivere le stringhe che saranno spedite dal modem

"trasformando" la scritta che vorrai spedire in formato codice ascii

(esempio la "A" sara 63 se no sbaglio ect.

c'e' tutta una documentazione che si trova su manuali specifici ,ma che troverai anche nel cd documentazione

sotto la voce trips& tricks che viene distribuito insieme al microwin .

la funzione xmt richiede la porta di com. e il buffer di trasmissione che dovrai opportunamente preparare .

;)

ciao

WALTER :lol::lol:

Link al commento
Condividi su altri siti

  • 2 weeks later...

Scusate il ritardo, ma ero in trasferta in Germania per un altro impianto... Ad ogni modo ho risolto il tutto... i problemi che avevo erano derivati semplicemente dal cavo utilizzato. Ora invio messaggi a chiunque col piccolo s7200. Grazie a tutti.

P.s. Ciao Walter...

Link al commento
Condividi su altri siti

Scusate il ritardo, ma ero in trasferta in Germania per un altro impianto... Ad ogni modo ho risolto il tutto... i problemi che avevo erano derivati semplicemente dal cavo utilizzato. Ora invio messaggi a chiunque col piccolo s7200. Grazie a tutti.

P.s. Ciao Walter...

Link al commento
Condividi su altri siti

  • 4 years later...

Ciao a tutti

Dovrei controllare che 8 sensori si spengano quando non lavorano.

I sensori non si spengono tutti insieme e alcuni potrebbero riaccendersi mentre gli altri si spengono.

Pensavo di scrivere FF in un merker byte e poi resettare i singoli bit del byte con i sensori off. Se il byte rimane diverso da zero ne è rimasto almeno uno acceso.

C'è un modo più "elegante"?

Ciao

Link al commento
Condividi su altri siti

C'è un modo più "elegante"?
:lol:

Non so cosa intendi tu con FF (fifo?).

Io farei così:

Se i sensori sono tutti sullo stesso byte di ingresso , è la soluzione più semplice e pulita:

L EBxx  //byte ingressi a controllare
L     0
==I   
=     M    xx //merker che segnala lo stato ingressi tutti a zero
Se i sensori sono bit disseminati sui vari byte di ingresso:
UN sensore 1
UN sensore 2
UN sensore 3
UN sensore 4
UN sensore 5
UN sensore 6
UN sensore 7
UN sensore 8
= Mxx //merker che segnala lo stato ingressi tutti a zero

Se sia abbastanza elegante non lo sò , ma è semplice ed intuitivo ,cosa a mio avviso, molto più importante dell'eleganza.

Ivan

Link al commento
Condividi su altri siti

Ciao

FF sta per b#16#FF

Comunque un semplice confronto del byte con zero non funziona perchè i sensori non si spengono tutti nello stesso momento.

Non mi piace molto ma ormai l'ho fatto come descritto sopra.

Link al commento
Condividi su altri siti

Aiutami a capire .

Quando dici:

confronto del byte con zero non funziona perchè i sensori non si spengono tutti nello stesso momento.

Ma tu hai bisogno di un bit per lo stato OFF di un byte o dello stato "quasi/OFF" , spiegati bene perchè la vedo dura nel secondo caso. :lol:

Fare un and tra un byte e un valore HEX : FF, come penso che tu abbia fatto o fare la comparazione ugale a zero , sono 2 cose completamente diverse.

Del resto io avevo presente ciò che dicevi nel prmo post:

Dovrei controllare che 8 sensori si spengano

Specifica meglio la cosa, sono curioso.

Ciao

Ivan

Link al commento
Condividi su altri siti

Forse sono stato troppo sintetico nel primo post:

Ho una navetta che entra ed esce da una stazione, sulla navetta ci sono 8 pezzi.

Ho 8 sensori nella stazione che controllano la presenza pezzo sulla navetta.

Devo controllare che all'uscita della navetta i sensori si spengano.

Potrei non vederli spenti tutti insieme perchè mentre una navetta esce ce ne può essere una in coda.

Allo start uscita della navetta accendo tutti gli 8 bit di un byte merker (scrivo FF nel byte).

Ogni sensore off resetta un bit del byte merker.

All'entrata della prossima navetta se il byte merker è diverso da zero un sensore non si è spento.

Non ho postato il codice perchè è fatto in kop, l'awl sarebbe lungo.

Ciao

Link al commento
Condividi su altri siti

  • 1 month later...

Potresti caricare a 1 tutti i bit di un byte con il fronte positivo dell'avvio

ciclo di cambio navetta... e resettare i singoli bit con i sensori OFF.

Alla fine del cambio navetta vai a controllare i singoli bit per attivare l'allarme

Tipo così:

U "CAMBIO IN CORSO"

FP "AUX_FRONTE_POSITIVO"

SPBN ATTI

L #FF

T MB120

ATTI: NOP 0

U "CAMBIO IN CORSO"

UN "SENS.1"

R M 120.0

U "CAMBIO IN CORSO"

UN "SENS.2"

R M 120.1

....

U "CAMBIO IN CORSO"

FN "AUX FRONTE NEGATIVO"

U M 120.0

S "ALLARME SENSORE 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...