Vai al contenuto
PLC Forum


Cpu Omron C200hx E Stringa Ascii - Capire il programma


jumpier

Messaggi consigliati

Ciao a tutti!

Dunque, ho aperto oggi per la prima volta SysWin 3.4 e mi trovo a dover interpretare un programma realizzato per una cpu CPUxx modello C200HX (almeno così c'è scritto nella finestra "Impostazioni di progetto"). Il mio problema è il seguente: questa cpu dovrebbe avere una o più porte RS-232 attraverso la quale invia una stringa ASCII ad evento gestito dal programma. Qualcuno gentilmente sarebbe in grado di spiegarmi brevemente quali sono le istruzioni utilizzate dal programma per l'invio di tale stringa e su quale porta? Premetto che a me non interessa comprendere il programma (so che l'approccio non è il massimo ma ... come al solito il tempo è poco ed il committente vuole il lavoro in tempo record :(:( ), ma vorrei solo risalire alla codifica della stringa ASCII inviata con certezza. E' anche vero che posso collegarmi con Hyper terminal alla porta della cpu (che però si trova a ore di macchina), ma per sicurezza vorrei leggere tale stringa da codice e poi interpretarla. Grazie a tutti per l'aiuto e per qualsiasi informazione utile in merito (es. impostazione porta seriale, configurazioni hardware software ecc.). Dimenticavo di aggiungere che dalla pagina "Parametri di comunicazione seriale" leggo come impostazioni porta=COM1, velocità=19200 e protocollo =ASCII 7 bit parità pari 2 bit di stop, mentre dalla pagina "Setup PLC serie C" se richiedo i dati relativi a "Impostazione porta RS-232C" i parametri sono: velocità 9600, Dati=7, Bit di stop=2, Parità=pari, Byte Ricevuti=256, Tipo di comunicazione=RS-232C. I parametri sopracitati si riferiscono alla stessa porta? e se si (essendo differenti) quali vengono eseguiti dalla cpu? Grazie ancora.

Ciao e buon lavoro.

Modificato: da jumpier
Link al commento
Condividi su altri siti


OK, sono riuscito a capire qualcosina in più da solo. Ma ora, un nuovo dubbio: ho trovato delle struzioni SBS(91) - Subroutine Enter con un numero variabile da 0 a "n". Cosa servono? E cosa indica il numero da 0 a "n" inserito? Sono routine definite dall'utente? E dove? Sono molte domande ma sono proprio nelle canne!!! :(:(

Grazie a tutti per l'aiuto.

Ciao!

Link al commento
Condividi su altri siti

partiamo dal tuo ultimo post: SBS come hai intuito e' la chiamata di una subroutine, che poi viene definita verso la fine del programma tramite la coppia di istruzioni SBN/RET, prima dell'istruzione END. Il numero che vedi alla destra della SBS definisce il numero di subroutine da richiamare, se questo e' compreso tra 0 e 15 e nel rack e' presente la scheda C200H-INT01, gli ingressi collegati a questa scheda sono associati automaticamente alle SBN0...15. Se invece non e' presente questa scheda speciale le subroutine sono definite a piacere dal programmatore, inoltre la SBS(99) e' una sub ciclica e che percio' puo' essere programmata per essere attivata a intervalli regolari. Mi scuso in anticipo se le informazioni date sono incomplete, ma non ho la manualistica del C200HX sottomano e sto andando a memoria...

Link al commento
Condividi su altri siti

OK, grazie della dritta! Nel frattempo mi sono imbattuto in una nuova istruzione: TXD(--). Qualcuno potrebbe spiegarmi aulcosina in più su tale funzione? Nell'. in linea c'è proprio poco e mi mancano ancora alcune info per finire di risolvere il problema. Mi spiego: capisco che il primo parametro della TXD(--) è la prima word che contine il mio dato da trasmettere; il secondo parametro è la Control Word ma a COSA SERVE?? Il terzo parametro è il numero di byte che vengono letti e trasferiti ma come mai nel programma ho un valore numerico espresso in BCD? Per ultima forse la domanda più importante: siccome la funzione usata è TXD(48), dall'. in linea capisco che il "48" si riferisce all'impostazione della porta utilizzata, ma a questo punto dove trovo l'impostazione di questo valore (48 per l'appunto) associato alla porta seriale della cpu? Grazie ancora per l'aiuo.

Buon lavoro a tutti!

Link al commento
Condividi su altri siti

per venire al problema della comunicazione:

- il menu "Parametri di comunicazione seriale" si riferisce al collegamento tra PC e PLC, che nel caso del C200HX puo' avvenire via porta periferica, porta RS232, scheda comunicazione oppure scheda HostLink;

- il C200HX di base ha porta RS232 e porta periferica, il cui settaggio viene effettuato tramite il menu Setup PLC. Dalla tua descrizione non mi sembra che la CPU abbia una scheda seriale COMxx, altrimenti dovresti vedere una o due altre porte subito su uno dei fianchi della CPU.

- la porta seriale del tuo PLC e' stata configurata come RS232, ossia protocollo libero definito dal programmatore, quindi l'uscita viene gestita con le istruzioni RXD o TXD. Ciascuna istruzione accetta 3 operandi, il cui significato e' il seguente:

1o operando: sorgente o destinazione dei dati da trasmettere/ricevere

2o operando: identificatore della porta seriale (di solito e' una costante, per la RS232 e' 0000 mentre se usi la periferica e' 1000);

3o operando: numero di bytes da trasmettere, escluso start o fine codice che puoi impostare nel Setup, oppure numero di bytes da ricevere, che puo' essere una costante oppure puo' essere il canale AR10;

dovresti ora essere in grado di capire come viene emesso (oppure ricevuto) il messaggio.

buon lavoro,

Luigi/Hong Kong

Link al commento
Condividi su altri siti

I numeri tra parentesi nelle istruzioni Omron rappresentano il codice interno della istruzione, nel tuo caso 48 corrisponde a TXD. Questo accade perche' alcune istruzioni non sono presenti in partenza nella CPU, ma possono essere definite e caricate a parte, le c.d. "istruzioni estese". TXD e RXD fanno parte di questo gruppo di istruzioni.

Luigi/Hong Kong

Link al commento
Condividi su altri siti

mi scuso per l'ultima frettolosa risposta alla tua domanda su TXD. Il fatto di vedere il contenuto del canale di ricezione/trasmissione in BCD dipende solamente dal fatto che SYSWIN di default visualizza il valore come BCD. Se vuoi vedere cosa c'e' scritto puoi aprire il pannello di monitoraggio, inserire il numero del primo canale della tua zona di ricezione/trasmissione e specificare nei dettagli di visualizzazione come lo vuoi vedere (HEX, ASCII...). Oppure apri l'editore dei dati, ti scarichi o monitorizzi i canali nell'area che ti interessa e come sopra, specifichi quale visualizzazione vuoi fare, ci sono dei bottoncini che specificano quale formato usare.

Luigi/Hong Kong

Link al commento
Condividi su altri siti

Grazie 1000 IFCC, sei stato gentilissimo!!! Non posso dire di aver risolto ma ho capito molte cose in più; ora vedo di tradurre tutta la mia brava sringa da esadecimale a ASCII o CHAR e poi inizio a confrontarla con quella datami dal committente. Se sono diverse o cado in problematich varie magari Ti ridisturbo. Grazie ancora per la disponibilità e buon lavoro.

Link al commento
Condividi su altri siti

Ciao IFCC; la notte purtroppo ... non ha portato consiglio :(:( !!!

Dunque, ancora un paio di chiarimenti:

1)-per quanto riguarda il tuo ultimo post mi è tutto chiaro. Io non ho la posibilità di cambiare la visualizzazione da bcd a hex ecc.. perchè non sono online con il processore e neppure so come è fatto. Forse non mi sono spiegato bene e vedo di provvedere ora; mi è arrivato il progetto via mail con una breve spiegazione di quello che devo cercare di fare; quindi non so neppure dirti se ha porte aggiuntive e quante perchè .... NON L'HO MAI VISTO :ph34r: ;

2)-come faccio a capire il secondo operando della istruzione TXD(--)? O meglio, da quale finestra ricavo se è stata impostata la RS232 o la periferica (a cui corrisponde 1000)?

3)-per quanto riguarda il terzo operando, ho capito che rappresenta il numero di byte letti a partire dalla word di partenza (specificata nel primo operando del TXD), e può essere espresso in vari modi. Ok anche per la costante, ma cos'è il canale AR10? E come faccio a capire se trasmette anche il primo byte o lo esclude?

Lo so, sono veramente un sacco di domande e rispondere a tutte fa perdere un sacco di tempo.

Se non puoi, non preoccuparti; magari se conoscessi un link per scaricare un minimo di manualistica più chiara proverei a darci un'occhiata per capire da solo. COme se non bastasse, oggi SysWin e WinXP Prof Sp1 hanno iniziato a dare dei problemi e quindi ..... sono proprio alla frutta!!

Grazie ancora e buon lavoro!

Link al commento
Condividi su altri siti

ti do' una risposta veloce per quel che riguarda dove reperire la manualistica: www.oeiweb.omron.com (e' il sito americano, quindi troverai tutto in inglese, ma anche se andassi in www.omron.it e segui i link sulla documentazione non e' che trovi tanto in italiano), quindi vai su "document library" e da li su "programmable logic controllers": tutta la documentazione Omron sui PLC e le varie schede e' disponibile al download.

Il cambio di visualizzazione non necessita la connessione online, se chi ti ha spedito il programma ti ha inviato anche il file di backup memoria (il nome e' lo stesso del programma principale, l'estensione e' DDM), puoi caricarlo tranquillamente nell'editor dati e "cambiare" la visualizzazione al volo. Naturalmente questa funzione ha piu' senso online, ma se sei sicuro o ti hanno detto che le aree dati non sono aggiornate di frequente puo' sempre andare bene.

e ora nel merito delle domande:

1- proviamo a dare per scontato che la CPU sia senza la scheda di comunicazione aggiuntiva COMxx. In questo caso hai di sicuro due porte, una periferica (detta anche porta di programmazione perche' Omron la usa per connettere le tastierine di programmazione o interfacce seriali proprietarie), e una RS232 normale.

2-Per vedere quale delle due e' usata, vai nel menu "Setup PLC" e quindi scegli la voce "porta periferica" oppure "RS232". Tra i vari parametri vedi subito la modalita' di comunicazione usata: se e' scritto "Host Link" come di default, allora la porta viene usata per la comunicazione con Syswin. Se la modalita' e' come "RS232" allora significa che la porta viene usata con le istruzioni RXD-TXD. Attenzione comunque che chi ti invia il programma deve PER FORZA aver letto l'area setup del PLC e averla salvata, altrimenti quello che vedi non ha nessun legame con quello che effettivamente il settaggio del PLC,

3-AR10 tiene conto di quanti caratteri sono stati ricevuti in ricezione, esclusi gli eventuali caratteri di inizio stringa o fine stringa, che vengono definiti nella stessa finestra di setup plc menzionata al punto 2. Di solito si consiglia di metterlo come terzo parametro della RXD per evitare di definire un numero fisso di bytes in ricezione.

Un suggerimento veloce veloce: se chi ti ha spedito il programma conosce bene come operare con il C200HX, potresti chiedergli di spedirti oltre al programma, anche copia delle aree dati (DM di solito) e copia del PLC setup, in questo modo puoi guardarti con piu' calma il programma.

Come vedi dalla mia firma non sono in Italia, quindi chiedo scusa in anticipo se a causa del fuso orario (+6 ore ) non riesco a risponderti in fretta. Se mi dai un recapito email posso mandarti i PDF del manuale di programmazione C200HX e quello utente del Syswin, sono in inglese ma almeno non sei costretto a muoverti al buio...

buon lavoro

Luigi/Hong Kong

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