2016-06-20 80 views
0

Ich programmiere eine SPS mit einer C# -Anwendung mit NModbus4. (RS232)
Ich kann Daten mit master.ReadCoils(device, 8192, 1) lesen.NModbus4 startAddress ist mehr als ushort kann

Jetzt habe ich eine Adresse wie 149153. Dies ist zu lang für eine Ushort, so dass ich es nicht als Parameter an ReadCoils übergeben kann.

Wie kann ich das tun?

+0

Modbus-Adressen sind vorzeichenlose 16-Bit-Ganzzahlen. Es gibt keine Adresse wie 149153. Überprüfen Sie das Benutzerhandbuch der SPS, diese Adresse ist eine herstellerspezifische Adresse, sie müssen Details zur Zuordnung zu Modbus-Standard-Adressen angeben. – Ronaldo

+0

Ich habe die Click-Programmiersoftware verwendet, um die Adressen zu erhalten. In der Adressauswahl kann ich auf "Display MODBUS" -Adresse klicken. Wählen Sie dann zwischen 984 oder HEX Adressierung. Ich wählte die 984-Adressierung und so etwas wie CTD1. Dann lautet die MODBUS-Adresse: '449153 (03,06,16)'. Hast du eine Möglichkeit, die richtigen zu finden? –

+0

Vielleicht sagt Ihnen die erste Ziffer den Datentyp. Versuchen Sie, das Halteregister mit der Adresse 49153 zu lesen. Oder die Spulennummer 49153. Sind die zurückgegebenen Daten sinnvoll? – Ronaldo

Antwort

0

Die PLC wird mit einer sehr häufig Adreßschreibweise für Modbus (wenn auch nicht-Standard), wobei die erste Ziffer des Datentyp der Register definiert:

  • 0 (Spulen)
  • 1 (diskrete Eingänge)
  • 3 (Eingangsregister)
  • 4 (Halteregister)

So werden Daten an der Adresse 149.153 ist eigentlich der Digitaleingang an Adresse 49153.

+0

Vielen Dank für diese Information! Ich bin neu in der SPS-Programmierung und das machte es viel klarer! –

+0

Können Sie sich auch eine andere Frage ansehen? http://stackoverflow.com/questions/37989040/nmodbus4-read-txt-from-plc –