Feldbuskoppler Kommunikationsbeispiel

Auf folgender Seite wird die Kommunikation zwischen einem Modbus TCP Feldbuskoppler und horstFX beschrieben.

Als Feldbuskoppler dient in diesem Beispiel der Wago 750-362 mit gesteckten Input- sowie Output-Karten. Dieses Beispiel ist jedoch sehr einfach auch auf andere Feldbuskoppler anderer Hersteller �bertragbar.

Der Roboter agiert hierbei als Client und der Feldbuskoppler als Server.

Der Feldbuskoppler kann unter anderem genutzt werden um die Anzahl der digitalen Ein- sowie Ausg�nge des Roboters zu erh�hen. 

Versionshinweis

Ab horstFX Version 2021.04

1. Herstellen der Kommunikation

Damit der Roboter mit dem Feldbuskoppler kommunizieren kann, m�ssen beide Teilnehmer in das gleiche Subnetz gebracht werden. D.h. die vorderen 3 Bereiche der IP-Adresse m�ssen identisch sein, und der letzte Bereich unterschiedlich. Wie die IP-Adresse des Roboters ge�ndert werden kann ist in folgendem Artikel beschrieben: IP-Adresse �ndern 

Die IP-Adresse des Feldbuskopplers kann �ber die Weboberfl�che bzw. den Dip-Schaltern eingestellt werden. Weitere Informationen dazu findet man in der Dokumentation des Feldbuskopplers.

Nach erfolgreicher Verbindung zwischen der vorderen RJ45 Buchse des Roboter-Schaltschranks sowie der RJ45 Buchse des Feldbuskopplers, k�nnen beide Teilnehmer nun miteinander kommunizieren.

2. Befehlssatz

Folgende Befehle stehen zur Kommunikation zur Verf�gung.

2.1 Herstellen der Verbindung

Mit folgendem Befehl kann die Verbindung hergestellt werden:

var modbusClient = modbusConnect(addr, port);

2.2 Lesen der Daten

Mit folgenden Befehlen k�nnen Daten des Feldbuskopplers gelesen werden. Informationen zur Adressverwaltung des Feldbuskopplers erh�lt man aus der zugeh�rigen Dokumentation bzw. dem Webinterface.

// Eingangskarten
var InputData = null;
 
InputData = modbusReadInputsDiscrete(modbusClient, ref, count);
InputData = modbusReadInputDiscrete(modbusClient, ref);
InputData = modbusReadInputRegisters(modbusClient, ref, count);
InputData = modbusReadInputRegister(modbusClient, ref);  

// Ausgangskarten
var OutputData = null;

OutputData = modbusReadCoils(modbusClient, ref, count);
OutputData = modbusReadCoil(modbusClient, ref);
OutputData = modbusReadRegisters(modbusClient, ref, count);
OutputData = modbusReadRegister(modbusClient, ref);

2.3  Schreiben der Daten

Mit folgenden Befehlen k�nnen Daten an den Feldbuskoppler gesendet werden. Informationen zur Adressverwaltung des Feldbuskopplers erh�lt man aus der zugeh�rigen Dokumentation bzw. dem Webinterface.

modbusWriteCoils(modbusClient, ref, values);
modbusWriteCoil(modbusClient, ref, value);
modbusWriteRegisters(modbusClient, ref, values);
modbusWriteRegister(modbusClient, ref, value);

3.  Programmierbeispiel

In folgendem Beispiel wird die Verbindung zu dem Feldbuskoppler hergestellt sowie Ausg�nge der Outputkarte beschrieben und Eing�nge der Inputkarte gelesen.

var ModbusServerAdrr = "192.168.1.2";
var Port = 502;
var InputData = null;
var modbusClient = modbusConnect(ModbusServerAdrr, Port);

try

{

// Setze dritten Output der Output-Karte
modbusWriteCoil(modbusClient, 2, true);


// Setze Outputs 1-4 der Output-Karte
modbusWriteCoils(modbusClient, 0, [false, false, true, true]);


// Lese Eingang 1-8 der Input-Karte
InputData = modbusReadInputsDiscrete(modbusClient, 0, 8);

showInfo("Eingang 1-8: " + InputData);

// Lese Eingang 1 der Input-Karte
InputData = modbusReadInputDiscrete(modbusClient, 0);

showInfo("Eingang 1: " + InputData);


}

finally

{
modbusClient.closeConnection()
}

Hier k�nnen Sie das Beispielprogramm herunterladen:

Modbus Wago Feldbuskoppler