metameta Inserito: 3 maggio 2009 Segnala Share Inserito: 3 maggio 2009 Salve a tutti .Sto realizzaundo un impianto dove uso un modem GSM per trasmettere degli allarmi.Il sistema funzione da PLC,però ho la necessità di inserire il numero di telefono ed il centro messaggi dal pannello operatore di tipo OP77A.Il problema è che il blocca FB48 (gestione SMS) vuole i numeri in formato string[31] mentre il pannello me li accettasolo "stringchar" e cioè dovrebbe essere un byte per carattere infatti vuole solo il byte iniziale se non ho visto male.Io avrei la necessità di convertire questi byte nell'intera stringa.Altra domanda. Come faccio a visualizzare le stringhe in on-line , anche per verificare eventuali risultati ?Vi ringrazio sin da ora , sperando di essere stato chiaro. Link al commento Condividi su altri siti More sharing options...
Matteo Montanari Inserita: 3 maggio 2009 Segnala Share Inserita: 3 maggio 2009 il formato stringa, come è riportato nel manuale on-line del Simatic Manager:Formato del tipo di dati STRING Tipo di dati -> STRING[n] oppure STRING Lunghezza (Byte) -> n+2 Formato -> Stringa di caratteri ASCII di lunghezza qualsiasi. n indica la lunghezza della stringa di caratteri: 254 caratteri rappresenta la lunghezza massima. Se non viene indicata, la lunghezza di default è di 254 caratteri. Tipo di dati (Esempi di formato) STRING[2] -> 'ab' STRING[55] -> 'La stringa di caratteri può consistere di un massimo di 55 caratteri'i primi due byte della stringa contengono:Byte 0 -> lunghezza massima della stringaByte 1 -> lunghezza attuale della stringaesempio hai "programmato" una stringa di 10 caratteri ma ne scrivi solamente 2Byte 0 = 10 (lunghezza massima della stringa)Byte 1 = 2 (lunghezza attuale della stringa)-----nel tuo programma devi dichiarare una stringa per scrivere "pippo"quindi 5 caratteri, la stringa per sicurezza la scrivi di 10 caratteri:Byte 00 = 10Byte 01 = 5Byte 02 = "p" carattere 01Byte 03 = "i" carattere 02Byte 04 = "p" carattere 03Byte 05 = "p" carattere 04Byte 06 = "o" carattere 05Byte 07 = " " carattere 06Byte 08 = " " carattere 07Byte 09 = " " carattere 08Byte 10 = " " carattere 09Byte 11 = " " carattere 10dal pannello puoi accedere ai byte anche singolarmente, puntando a quello che desideri Link al commento Condividi su altri siti More sharing options...
Savino Inserita: 4 maggio 2009 Segnala Share Inserita: 4 maggio 2009 (modificato) metameta,Il problema è che il blocca FB48 (gestione SMS) vuole i numeri in formato string[31] mentre il pannello me li accettaDovresti passare l'offset della stringa attraverso un formato puntatore.Per fare questo:1. Crea una DB, mettiamo DB45.2. Nel Box properties/Simbolic name scrivi DB45 IN STRING FORMAT3. Edita la DB :Address Name Type Initail value Comment 0.0 +0.0 BYTE_STR STRING[31] '' =34 4. Ingressa come parametro di input per il blocco come scritto sotto, esempio : Input_Param := "DB45 IN STRING FORMAT".BYTE_STR ( vuoldire puntatore alla DB(Nome),(Offset); P#DB45.DBXX0.0) 5. I dati vengono scritti cosi: DB45.DBB 0 DEC 31 DB45.DBB 1 DEC 31 DB45.DBB 2 "DB45 IN STRING FORMAT".BYTE_STR[1] CHARACTER '0' DB45.DBB 3 "DB45 IN STRING FORMAT".BYTE_STR[2] CHARACTER '1' DB45.DBB 4 "DB45 IN STRING FORMAT".BYTE_STR[3] CHARACTER '7' DB45.DBB 5 "DB45 IN STRING FORMAT".BYTE_STR[4] CHARACTER '3' DB45.DBB 6 "DB45 IN STRING FORMAT".BYTE_STR[5] CHARACTER '8' DB45.DBB 7 "DB45 IN STRING FORMAT".BYTE_STR[6] CHARACTER '6' DB45.DBB 8 "DB45 IN STRING FORMAT".BYTE_STR[7] CHARACTER '0' DB45.DBB 9 "DB45 IN STRING FORMAT".BYTE_STR[8] CHARACTER '0' DB45.DBB 10 "DB45 IN STRING FORMAT".BYTE_STR[9] CHARACTER '3' DB45.DBB 11 "DB45 IN STRING FORMAT".BYTE_STR[10] CHARACTER '1' DB45.DBB 12 "DB45 IN STRING FORMAT".BYTE_STR[11] CHARACTER '2' DB45.DBB 13 "DB45 IN STRING FORMAT".BYTE_STR[12] CHARACTER '1' DB45.DBB 14 "DB45 IN STRING FORMAT".BYTE_STR[13] CHARACTER '9' DB45.DBB 15 "DB45 IN STRING FORMAT".BYTE_STR[14] CHARACTER '0' DB45.DBB 16 "DB45 IN STRING FORMAT".BYTE_STR[15] CHARACTER '8' DB45.DBB 17 "DB45 IN STRING FORMAT".BYTE_STR[16] CHARACTER '7' DB45.DBB 18 "DB45 IN STRING FORMAT".BYTE_STR[17] CHARACTER '0' DB45.DBB 19 "DB45 IN STRING FORMAT".BYTE_STR[18] CHARACTER '6' DB45.DBB 20 "DB45 IN STRING FORMAT".BYTE_STR[19] CHARACTER '0' DB45.DBB 21 "DB45 IN STRING FORMAT".BYTE_STR[20] CHARACTER '7' DB45.DBB 22 "DB45 IN STRING FORMAT".BYTE_STR[21] CHARACTER '0' DB45.DBB 23 "DB45 IN STRING FORMAT".BYTE_STR[22] CHARACTER '1' DB45.DBB 24 "DB45 IN STRING FORMAT".BYTE_STR[23] CHARACTER '0' DB45.DBB 25 "DB45 IN STRING FORMAT".BYTE_STR[24] CHARACTER '5' DB45.DBB 26 "DB45 IN STRING FORMAT".BYTE_STR[25] CHARACTER '0' DB45.DBB 27 "DB45 IN STRING FORMAT".BYTE_STR[26] CHARACTER '7' DB45.DBB 28 "DB45 IN STRING FORMAT".BYTE_STR[27] CHARACTER '6' DB45.DBB 29 "DB45 IN STRING FORMAT".BYTE_STR[28] CHARACTER '5' DB45.DBB 30 "DB45 IN STRING FORMAT".BYTE_STR[29] CHARACTER '2' DB45.DBB 31 "DB45 IN STRING FORMAT".BYTE_STR[30] CHARACTER '0' DB45.DBB 32 "DB45 IN STRING FORMAT".BYTE_STR[31] CHARACTER '1' In questo caso, la lunghezza della stringa coincide con la lunghezza utilizzata (31), dichiarate nei due primi byte.N.B.: Certe info non la trovi sui manuali... ma si' su PLCForum.Forum Card : Link Modificato: 4 maggio 2009 da Savino Link al commento Condividi su altri siti More sharing options...
batta Inserita: 4 maggio 2009 Segnala Share Inserita: 4 maggio 2009 Altra possibile soluzione: nel plc al posto di una variabile di tipo "String" crei un array di variabili di tipo "Char" e nell'OP dichiari una variabile di tipo "StringChar" al posto di "String".Se il progetto OP è integrato, selezionando l'array di "Char" quando dichiari la variabile, il formato lo imposta in automatico.La variabile di tipo "StringChar" è però considerata vecchia. Il formato è mantenuto solo per compatibilità con i vecchi pannelli.Questa soluzione potrebbe quindi risultare un po' più facile, ma quella proposta da Savino è più corretta. Link al commento Condividi su altri siti More sharing options...
metameta Inserita: 4 maggio 2009 Autore Segnala Share Inserita: 4 maggio 2009 Grazie a tutti provo e poi faccio sapere. 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