Vai al contenuto

Aiuto impostazione comunicazione seriale RS485

Home Forum Discussioni su problematiche generali Aiuto impostazione comunicazione seriale RS485

Stai visualizzando 5 post - dal 1 a 5 (di 5 totali)
  • Autore
    Post
  • #35697
    Anonimo
    Inattivo

    Scrivo per chiedere chiarimenti riguardo a come instaurare un collegamento tra due CPU SlimLine mediante RS485 con protocollo ModbusRTU. Ho due CPU, una master ed una slave, voglio settare un registro (un bit, ad esempio %MX100.100) sullo slave in base al valore di un registro (sempre un bit, e sempre %MX100.100) del master.

    Sul master ho messo la funzione Sysfopen (COM2, r/w), SetSMode(115200 , E , 8 , 1 DTR_AUTO_WO_TIMES ) ed il blocco ModbusMaster. Ho settato lo slave come nodo 2 ed il master nodo 1.

    Che FCode devo mettere in ModbusMaster (io avevo settato 16#0F) ? Che indirizzo ? Ed inoltre in buffer ho messo lindirizzo di %MX100.100 ; è giusto ?

    Vi ringrazio anticipatamente per i suggerimenti.

    P.S.: Non si può inserire un file, o link ad esso caricato su un sito di hosting, nel forum ?

    #38617
    Sergio Bertana
    Amministratore del forum

    Quello che hai fatto lato CPU master è corretto, però ti ricordo che lato slave tu stai utilizzando la gestione Modbus slave embedded nel sistema la quale opera con il nodo modbus 01, questa impostazione è modificabile da pagina web (Screenshot).

    In una comunicazione modbus il nodo master non ha indirizzo, si indirizzano solo i nodi slaves.

    Ora dovendo trasferire uno o più variabili BOOL devi definire in FCode il comando modbus 16#0F (Force multiple coils), come indirizzo dovendo agire sul bit %MX100.100 dello slave devi scrivere in Address il valore 40100. In Buffer devi definire ADR(%MX100.100) come hai fatto correttamente. In Points potrai definire il numero di variabili BOOL da trasferire (Nel tuo caso 1). In questo topic viene trattato un argomento simile al tuo.

    Per visualizzare i comandi Modbus puoi attivare il parametro SpyOn e visualizzare i dati tramite la console di spionaggio (Topic).

    #38618
    Sergio Bertana
    Amministratore del forum

    Non è previsto eseguire upload di file nel forum da parte degli utenti ma è posibile inserire links a file esterni nel post, sarà poi nostra cura verificare i links e trasferire se il caso il file linkato nel forum.

    Se invece vuoi inviare un programma per una nostra verifica, ti ricordo che puoi utilizzare l’indirizzo email del supporto tecnico (Pagina web).

    #38619
    Anonimo
    Inattivo

    Per prima cosa vi ringrazio dell’aiuto!

    Il sistema adesso funziona però solo il primo ciclo, il programma che ho fatto è così (Screenshot). Il bit %MX100.32 sullo slave viene settato correttamente soltanto in base al valore contenuto nella variabile (in questo caso %MX100.100) quando viene eseguita la prima volta la FB ModbusMaster. Probabilmente sbaglio nell’impostazione dell’enable.

    #38620
    Sergio Bertana
    Amministratore del forum

    Si il tuo errore è proprio nella gestione dell’Enable, per poter gestire più istanze in cascata l’FB esegue il comando sulla attivazione dell’Enable, terminata l’esecuzione si attiva il Done. Ed il comando non verrà più eseguito se non viene disabilitato Enable e poi riabilitato.

    Questa tecnica comune a tutte le FB che possono essere eseguite in cascata permette appunto di collegare il Done della FB all’Enable della FB da eseguire successivamente, e così di seguito fino all’ultima FB della serie. Il Done negato dell’ultima FB andrà poi connesso all’Enable della prima FB.

    Quindi usando una sola istanza della FB basta connettere il negato del Done sul suo Enable, in pratica devi realizzare questo (Screenshot).

Stai visualizzando 5 post - dal 1 a 5 (di 5 totali)
  • Devi essere connesso per rispondere a questo topic.