euronograzie Inserito: 7 dicembre 2010 Segnala Inserito: 7 dicembre 2010 Buongiorno a tutti, stò utilizzando l'SFC217 della VIPA per trasmettere un telegramma con la funzione 10hex(16 dec).Queste sono le righe di codice://Formato messaggio Master// --------------------------------------------------------------------------------------------------------// |Indirizzo| Codice | Indirizzo 1° |N° Word da|n° byte |Val.1°word |Val.n°word | CRC |// | Slave |funzione|W. da scriv. | scrivere |dei dati |da scrivere |da scrivere | |// --------------------------------------------------------------------------------------------------------// | Byte | Byte | MSB | LSB | MSB |LSB | Byte | MSB | LSB | MSB | LSB | LSB | MSB|// ---------------------------------------------------------------------------------------------------------// Il CRC viene incluso nel telegramma dall'SFC217// quindi non è necessario calcolarlo// l'Indirizzi partono da 0 quindi è necessario sotrarre 1 L W#16#110 // slave 1 ,funzione 16 scrivi n words T DB20.DBW 0 L W#16#26AB // Indirizzo del 1° registro nel quale scrivere T DB20.DBW 2 L 6 // n.di registri(in word) da scrivere T DB20.DBW 4 L 12 T DB20.DBB 6 // n.di byte dei dati da scrivere L DB3.DBD 34 //valore del 1° e 2° registro T DB20.DBD 7 //Quota obiettivo L DB3.DBD 30 //valore del 3° e 4° registro T DB20.DBD 11 //Velocità di posizionamento L DB3.DBD 26 //valore del 5° e 6° registro T DB20.DBD 15 //Velocità manuale CALL SFC 217 // Send DataPtr:=P#DB20.DBX0.0 BYTE 19 // Lunghezza in byte del telegramma DataLen:=MW190 // Uso interno SFC RetVal :=MW192 // Return-CodeIl mio dubbio è quel "N° di byte dei dati", che guardano il protocollo standard Modbus dovrebbe essere inseritonel telegramma.Quindi la mia domanda è questa:Secondo voi è corretta la composizione del telegramma?Ma il parametro DataPtr avrà sempre una lunghezza dispari allora!!!
euronograzie Inserita: 7 dicembre 2010 Autore Segnala Inserita: 7 dicembre 2010 ma lo hai già provato?
0.0 Inserita: 7 dicembre 2010 Segnala Inserita: 7 dicembre 2010 Quindi la mia domanda è questa:Secondo voi è corretta la composizione del telegramma?Ma il parametro DataPtr avrà sempre una lunghezza dispari allora!!!Il messaggio del comando 16 è costituito da un numero dispari di byte.La costruzione che fai è corretta. Non ho mai usato Vipa, ma se il protocollo deve essere modbus RTU standard sei a posto.
euronograzie Inserita: 7 dicembre 2010 Autore Segnala Inserita: 7 dicembre 2010 Si il protocollo è Modbus RTUMi piacerebbe sapere se qualcuno ha già provato questo comando; Io purtroppo fin'ora ho solo provato a leggere con la funzione 03 ma non ho maisviluppato codice PLC per la funzione 16
euronograzie Inserita: 9 dicembre 2010 Autore Segnala Inserita: 9 dicembre 2010 SONO riuscito a testarla con esito positivo!!!!!Quindi il codice che vedete per la composizione del telegramma e OK !!!
Livio Orsini Inserita: 9 dicembre 2010 Segnala Inserita: 9 dicembre 2010 Ottimo! Anche per aver segnalato la soluzione del problema.
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