In den folgenden Kapiteln werden verschiedene Beispielprogramme f�r die Modbus-Kommunikation via SPS (Simatic S7-1200, TIA Portal v16) beschrieben.
1. horstFX Bool-Register lesen
Hier wird gezeigt, wie im Siemens TIA Portal (v16) ein Bool-Wert aus einem Modbus-Coil (Adresse 1000) ausgelesen werden kann.
1.1 Funktionsbaustein
Mit Hilfe des Funktionsblocks MB_CLIENT wird ein Bool (1-Bit) aus den Modbus Coils gelesen.
Bei diesem Funktionsblock f�ngt das Modbus-Coil-Register bei der MV_DATA_ADDR 1 an, dies entspricht dem Coil Eintrag Nummer 0.
Da die Bool-Register bei Adresse 1000 beginnen, muss diesem Funktionsblock die MV_DATA_ADDR 1001 �bergeben werden (1 + 1000) um den Wert des Bool-Registers 0 abzufragen.
Der Wert wird beim erfolgreichen auslesen in die Variable MB_DATA_PTR geschrieben. Diese muss vom Typ real sein.
1.2 Datenbaustein
Der Vollst�ndigkeit halber findet sich nachfolgend der f�r dieses Beispiel genutzte Datenbaustein.
Die Parameter f�r den Verbindungsaufbau finden sich unter der Variable MB_Connection.
Der Wert des Bool-Register 0 wird in die Variable horsFX_BoolRegister_0 geschrieben.
Das zugeh�rige TIA Projekt kann hier heruntergeladen werden:
2. horstFX Float-Register auslesen
Hier wird gezeigt, wie im Siemens TIA Portal (v16) ein 32Bit-Gleitkomma-Wert aus zwei Modbus-Holding-Registern (Adresse 2000 und 2001) ausgelesen werden kann.
2.1 Funktionsblock
Mit Hilfe des Funktionsblocks MB_CLIENT werden zwei Word (4-Byte) aus den Modbus Registern gelesen.
Bei diesem Funktionsblock f�ngt das Modbus-Holding-Register bei der MV_DATA_ADDR 40001 an, dies entspricht dem Holding-Register Eintrag Nummer 0.
Da die Float-Register bei Adresse 2000 beginnen, muss diesem Funktionsblock die MV_DATA_ADDR 42001 �bergeben werden (40001 + 2000) um den Wert des Float-Registers 0 abzufragen.
Da zwei Register gelesen werden m�ssen betr�gt die MB_DATA_LEN 2.
Der Wert wird beim erfolgreichen auslesen in die Variable MB_DATA_PTR geschrieben. Diese muss vom Typ real sein.
2.2 Datenbaustein
Der Vollst�ndigkeit halber findet sich nachfolgend der f�r dieses Beispiel genutzte Datenbaustein.
Die Parameter f�r den Verbindungsaufbau finden sich unter der Variable MB_Connection.
Der Wert des Float-Register 0 wird in die Variable horsFX_FloatRegister_0 geschrieben.
Das zugeh�rige TIA Projekt kann hier heruntergeladen werden:
3. horstFX Int-Register auslesen
Hier wird gezeigt, wie im Siemens TIA Portal (v16) ein 32Bit-Ganzzahl-Wert aus zwei Modbus-Holding-Registern (Adresse 1000 und 1001) ausgelesen werden kann.
3.1 Funktionsblock
Mit Hilfe des Funktionsblocks MB_CLIENT werden zwei Word (4-Byte) aus den Modbus Registern gelesen.
Bei diesem Funktionsblock f�ngt das Modbus-Holding-Register bei der MV_DATA_ADDR 40001 an, dies entspricht dem Holding-Register Eintrag Nummer 0.
Da die Integer-Register bei Adresse 1000 beginnen, muss diesem Funktionsblock die MV_DATA_ADDR 41001 �bergeben werden (40001 + 1000) um den Wert des Integer-Registers 0 abzufragen.
Da zwei Register gelesen werden m�ssen betr�gt die MB_DATA_LEN 2.
Der Wert wird beim erfolgreichen auslesen in die Variable MB_DATA_PTR geschrieben. Diese muss vom Typ DInt sein.
3.2 Datenbaustein
Der Vollst�ndigkeit halber findet sich nachfolgend der f�r dieses Beispiel genutzte Datenbaustein.
Die Parameter f�r den Verbindungsaufbau finden sich unter der Variable MB_Connection.
Der Wert des Integer-Register 0 wird in die Variable horsFX_IntRegister_0 geschrieben.
Das zugeh�rige TIA Projekt kann hier heruntergeladen werden: