ProjectInfo (PRG)

PROGRAM ProjectInfo

Die Projektinfo ist eine Ansammlung zur Anwendung der Klasse im ProgrammCode.

Note

Die Beschreibung ist Beispielhaft und an das Projekt TPC Modbus Server angelehnt.

***********************************************************************************************************************************************************
  • Initalisierung -> Typische vorgehensweise:
1.) Einbinden der Bibliothek und Instanzierung des FB’s

VAR:
ELA_COMM           : HostComm.ModbusFb();

2.) Eigene IP-Adresse

Bei Geräten mit mehreren LAN- Adapter: Angabe der IP-Adresse des LAN-Adapters der verwendet werden soll:

VAR:
DeviceIP : STRING(19):= '192.168.5.58';

Code:
SetDeviceIP(DeviceIP);

bzw. die Zeile komplett ausgeschrieben:
ELA_COMM.Server[0].SetDeviceIP(DeviceIP);

Wird die Methode nicht verwendet, oder einmalig die Adresse ‘0.0.0.0’ gesetzt, ermittelt der Baustein die IP-Adresse
des ersten LAN-Adapters und arbeitet mit dieser Adresse.

3.) Eigener Port

VAR:
PortNo  : WORD := 502;

Code:
SetPortNo(PortNo);

Wird die Methode nicht verwendet, so gilt als Default Port 502

4.) Angabe des Dateinamen und Verzeichnis

Code:
SetCSVFileName('ModbusMapping.csv');
Code:
SetCSVFilePath('/home/plc_v3/'); // (* CoDeSys- Stammverzeichnis unter Linux *)
SetCSVFilePath('/Flashdisk/PLC_V3/'); // (* CoDeSys- Stammverzeichnis unter Windows *)

Werden die Methoden nicht verwendet, so gilt: '/home/plc_v3/ModbusMapping.csv'
Default- Path = ‘/home/plc_v3/’
Default- Filename = ‘ModbusMapping.csv’
Über den Aufbau der Datei wird weiter unten eingegangen.

5.) Device Nummer

Code:
SetDeviceNo(DeviceNo);

Setzt die Devicenummer unter der der Server erreichbar ist.
Da der Server, im Gegensatz zum Slave, verbindungsorientiert ist kann die Nummer ignoriert werden.
D.h. der Server antwortet unabhängig seiner eingestellen Devicenummer
auf jede Anfrage die der per TCP-IP erhält.

DeviceNo
0 Kommunikation ist ausgeschalten
1..255 Kommunikation ist eingeschalten


6.) Aufruf der Methode

ELA_COMM();

***********************************************************************************************************************************************************
  • Weitere, optionale Methoden
1.) Umschaltung zwischen MOTOROLA- und INTEL- Byteorder.

ELA_COMM.Server[0].SetByteOrder(MotorolaByteOrder:= FALSE);

* Beim Umschalten auf Motorola- ByteOrder werden die Nutzdaten gedreht. *

2.) Abfrage der IP-Adresse von verbundenen Clients

ELA_COMM.Server[0].GetClientIP(ClientNo);

* Als Rückgabe erhält man die IP-Adresse des verbundenen Slaves als STRING(19) *
* Der Client wird nach 65 Sekunden Inaktivität als verloren betrachtet und der Socket geschlossen. Rückgabewert ‘0.0.0.0’ *
* Die einzelnen Clients werden nacheinander zugebucht n:=n+1. Wird ein Client geschlossen entsteht ggf. *
* eine Luecke im Namensarray welche durch die nächte Clientverbindung neu belegt wird. * *

3.) Schliessen aller Sockets.

CloseSocketFromExtern();

Alle Socketverbindungen (Server im Listenmode und Datenverbindung zu den Clients) werden automatisch geschlossen bei:
+ Program-Neustart
+ Änderung der IP-Adresse
+ Änderung des Port
+ Änderung der DeviceNummer

Unter bestimmten Bedingungen ist es Empfehlenswert, wenn die Socketverbindungen manuell geschlossen werden.
+ Nach einem Systemereignis “Download done” (Neuer Code in Steuerung übertragen)
+ Nach einem Systemereignis “Stop done” (Steuerung ist in Zustand “Stop” übergegangen) *

Hier empfiehlt sich den Befehl manuell auszuführen.

***********************************************************************************************************************************************************
  • Direktzugriff in Bausteinvariablen
1.) Information des Sende- und Empfangstelegramm mit Zusatzinformationen

GetDebugRecvString(); ( Client –> Server )

z.B. ‘REQ:0714:L012–>1A 09 00 00 00 06 01 03 9C F5 00 01 ‘



GetDebugSendString(); ( Server –> Client )

‘ANS:1358:L011–>1A 09 00 00 00 05 01 03 02 00 14 ‘

Erläuterung des String “ANSWER-TELEGRAM
Element: Bedeutung:
ANS: Answer- (Antwort-) Telegramm
07140: Sendecounter (0..9999)
L011 Telegrammlänge = 11 Byte
–> Es folgt der Telegramminhalt
1A Transaktionsnummer (Highbyte)
09 Transaktionsnummer (Lowbyte)
00 Protokollkennzeichen (immer 0x00)
00 Protokollkennzeichen (immer 0x00)
00 Bytecount (Highbyte)
05 Bytecount (des nun folgenden Modbus-Telegramm)
01 DeviceNo
03 FunctionCode
02 Bytecount (Der nun folgenden Registerinhalte
00 RegisterInhalt (Highbyte)
14 RegisterInhalt (Lowbyte) =20


2.) Zeitstempel des letzten Client-Request

GetLastClientRequest(ClientNo);

Um ein genauen Timeout der Request-Anfragen generieren zu können, ist es möglich
auf die Zeit der letzten Anfrage zurück zu greifen.


***********************************************************************************************************************************************************

CSV- Datei ( Rangierungstabelle ) am Beispiel:

Auf folgende Variablen soll im IEC- Code zugegriffen werden:

PROGRAM ModbusTest
VAR
C_SPC              : UINT := 40;
C_STC              : UINT := 41;
C_TOC              : UINT := 42;
C_OFL              : UINT := 43;
C_ONL              : UINT := 44;
C_CFF              : UINT := 45;
C_TAR              : UINT := 46;
C_ALC              : UINT := 47;
C_VOM              : UINT := 48;
C_MAM              : UINT := 49;
C_RFD              : UINT := 50;
C_RFE              : UINT := 51;
C_RFL              : UINT := 52;
IFS                : REAL := 21.73;
BGN                : REAL := 1.11;
FSS                : REAL := 2.22;
MFP                : REAL := 3.33;
MFS                : REAL := 4.44;
ELM                : REAL := 5.55;
CDC                : REAL := 6.66;
RHS                : REAL := 7.77;
RLS                : REAL := 8.88;
SPS                : REAL := 9.99;
ADS                : UDINT := 10;
MPS                : UDINT := 11;
RQS                : UDINT := 12;
RDT                : UDINT := 13;
SS1                : UDINT := 14;
DH1                : UDINT := 15;
DL1                : UDINT := 16;
RS1                : UDINT := 17;
DHS                : UDINT := 18;
DLS                : UDINT := 19;
RSR                : STRING(4) :='Text';
PS4                : UDINT := 200;
ASR                : UDINT := 201;
CFF                : REAL := 22.3;
MSD                : REAL := 23.4;
MFA                : REAL := 24.5;
NWA                : REAL := 25.6;
DC1                : REAL := 26.7;
DCA                : REAL := 27.8;
TOA                : REAL := 28.9;
SGW                : UINT := 10;
SPA                : UINT := 20;
SP1                : UINT := 30;
END_VAR

Diese Variablen müssen in der Symbolkonfiguration angewählt und das Projekt übersetzt werden.
Nun ist hierzu eine CSV-Datei zu erstellen, welche auf dem Gerät hinterlegt wird.

Übersicht z.B. In Excel
Adresse Name DataType Access Register BitNr Bezeichnung
40100 Application.ModbusTest.C_SPC unsigned16 w 1 -99 Bit 1 Dosierer Stop
40101 Application.ModbusTest.C_SPC unsigned16 w 1 -99 Bit 2 Dosierer Start
40102 Application.ModbusTest.C_TOC unsigned16 w 1 -99 Bit 3 Dosierer Totalisator löschen
40103 Application.ModbusTest.C_OFL unsigned16 w 1 -99 Bit 4 Dosierer Lokal
40104 Application.ModbusTest.C_ONL unsigned16 w 1 -99 Bit 5 Dosierer Verhältnis
40105 Application.ModbusTest.C_CFF unsigned16 w 1 -99 Bit 8 Kalibrieren
40106 Application.ModbusTest.C_TAR unsigned16 w 1 -99 Bit 9 Tarieren
40107 Application.ModbusTest.C_ALC unsigned16 w 1 -99 Bit 12 Alarm löschen
40108 Application.ModbusTest.C_VOM unsigned16 w 1 -99 Bit 16 Betriebsart Volumetrisch
40109 Application.ModbusTest.C_MAM unsigned16 w 1 -99 Bit 17 Betriebsart Gravimetrisch
40110 Application.ModbusTest.C_RFD unsigned16 w 1 -99 Bit 20 Nachfüllen Stop
40111 Application.ModbusTest.C_RFE unsigned16 w 1 -99 Bit 21 Nachfüllen Start
40112 Application.ModbusTest.C_RFL unsigned16 w 1 -99 Bit 22 Nachfüllen Freigabe
40120 Application.ModbusTest.IFS float rw 2 -99 Dosierfaktor Start Sollwert
40122 Application.ModbusTest.BGN float rw 2 -99 Durchsatz Filter Sollwert
40124 Application.ModbusTest.FSS float rw 2 -99 Durchsatz Nominal Sollwert
40126 Application.ModbusTest.MFP float rw 2 -99 Durchsatz Prozent Sollwert
40128 Application.ModbusTest.MFS float rw 2 -99 Durchsatz Sollwert
40130 Application.ModbusTest.ELM float rw 2 -99 Gewicht Alarmlimit leer Sollwert
40132 Application.ModbusTest.CDC float rw 2 -99 Kalibration Stellbefehl Sollwert
40134 Application.ModbusTest.RHS float rw 2 -99 Nachfüllpegel Max Sollwert
40136 Application.ModbusTest.RLS float rw 2 -99 Nachfüllpegel Min Sollwert
40138 Application.ModbusTest.SPS float rw 1   Steilheit Sollwert
40140 Application.ModbusTest.ADS unsigned32 rw 1   Alarmverzögerung Sollwert
40142 Application.ModbusTest.MPS unsigned32 rw 1   Durchsatz Alarmlimit Max Sollwert
40144 Application.ModbusTest.RQS unsigned32 rw 1   Nachfüllmenge Sollwert
40146 Application.ModbusTest.RDT unsigned32 rw 1   Nachfüllumschaltungszeit Sollwert
40148 Application.ModbusTest.SS1 unsigned32 rw 1   Paddel fester Sollwert
40150 Application.ModbusTest.DH1 unsigned32 rw 1   Paddel Stellbefehl Alarmlimit Max Sollwert
40152 Application.ModbusTest.DL1 unsigned32 rw 1   Paddel Stellbefehl Alarmlimit Min Sollwert
40154 Application.ModbusTest.RS1 unsigned32 rw 1   Verhältnis Sollwert
40156 Application.ModbusTest.DHS unsigned32 rw 1   Stellbefehl Alarmlimit Max Sollwert
40158 Application.ModbusTest.DLS unsigned32 rw 1   Stellbefehl Alarmlimit Min Sollwert
40160 Application.ModbusTest.RSR string rw 7   Materialname Rezept
40160 Application.ModbusTest.RSR string rw 7   Materialname Rezept
40162 Application.ModbusTest.PS4 unsigned32 r 1 0 Bit 0 Dosierer Freigegeben
40162 Application.ModbusTest.PS4 unsigned32 r 1 1 BIT 1 Dosierer in Betrieb
40162 Application.ModbusTest.PS4 unsigned32 r 1 4 Bit 4 Dosierer im Lokalbetrieb
40162 Application.ModbusTest.PS4 unsigned32 r 1 5 Bit 5 Dosierer im Verhältnisbetrieb
40162 Application.ModbusTest.PS4 unsigned32 r 1 8 Bit 8 Kalibrieren läuft
40162 Application.ModbusTest.PS4 unsigned32 r 1 13 Bit 13 Alarm Abschaltung aktiv
40162 Application.ModbusTest.PS4 unsigned32 r 1 16 Bit 16 Betriebsart Volumetrisch
40162 Application.ModbusTest.PS4 unsigned32 r 1 17 Bit 17 Betriebsart Gravimetrisch
40162 Application.ModbusTest.PS4 unsigned32 r 1 22 Bit 22 Nachfüllen Freigegeben
40162 Application.ModbusTest.PS4 unsigned32 r 1 14 Bit 24 Gewicht über Nachfüllpegel Min
40164 Application.ModbusTest.ASR unsigned32 r 1 0 Bit 0 Motor Alarm
40164 Application.ModbusTest.ASR unsigned32 r 1 4 Bit 4 Stellbefehl > Max
40164 Application.ModbusTest.ASR unsigned32 r 1 5 Bit 5 Stellbefehl < Min
40164 Application.ModbusTest.ASR unsigned32 r 1 7 Bit 7 Durchsatz > Max
40164 Application.ModbusTest.ASR unsigned32 r 1 8 Bit 8 Durchsatz < Min
40164 Application.ModbusTest.ASR unsigned32 r 1 10 Bit 10 Waagenstörgröße > Max
40164 Application.ModbusTest.ASR unsigned32 r 1 14 Bit 14 Gewicht < Min
40164 Application.ModbusTest.ASR unsigned32 r 1 16 Bit 16 Wägezelle Überlast
40164 Application.ModbusTest.ASR unsigned32 r 1 18 Bit 18 Wägezelle Alarm
40164 Application.ModbusTest.ASR unsigned32 r 1 20 Bit 20 Nachfüllzeit abgelaufen
40164 Application.ModbusTest.ASR unsigned32 r 1 24 Bit 24 Paddel Motor Alarm
40164 Application.ModbusTest.ASR unsigned32 r 1 28 Bit 28 Paddel Stellbefehl > Max
40164 Application.ModbusTest.ASR unsigned32 r 1 29 Bit 29 Paddel Stellbefehl < Min
40166 Application.ModbusTest.CFF float r 2 -99 Dosierfaktor Istwert
40168 Application.ModbusTest.MSD float r 2 -99 Durchsatz Abweichung Istwert
40170 Application.ModbusTest.MFA float r 2 -99 Durchsatz Istwert
40172 Application.ModbusTest.NWA float r 2 -99 Nettogewicht Istwert
40174 Application.ModbusTest.DC1 float r 2 -99 Paddel Stellbefehl Istwert
40176 Application.ModbusTest.DCA float r 2 -99 Stellbefehl Istwert
40178 Application.ModbusTest.TOA float r 2 -99 Verbrauch Istwert
40180 Application.ModbusTest.SGW unsigned16 r 2 -99 Waagenbereich Istwert
40181 Application.ModbusTest.SPA unsigned16 r 1 -99 Motor Drehzahl Istwert
40182 Application.ModbusTest.SP1 unsigned16 r 2 -99 Paddel Motor Drehzahl Istwert
-99 -99 -99 -99 -99 -99 -99


Note

Achtung: Beim Abspeichern unter Excel in CSV- Format werden, je nach Office-Version, die Semikolon am Ende der Teile durch CR ersetzt. Es ist daher Empfohlen dies z.B. unter OpenOffice abzuspeichern, oder die CSV Datei abschließend im Editor zu überprüfen.


  • Tabelle geöffnet mit Editor:

Adresse;Name;DataType;Access;Register;BitNr;Bezeichnung;
40100;Application.ModbusTest.C_SPC;unsigned16;w;1;-99;Bit 1 Dosierer Stop;
40101;Application.ModbusTest.C_STC;unsigned16;w;1;-99;Bit 2 Dosierer Start;
40102;Application.ModbusTest.C_TOC;unsigned16;w;1;-99;Bit 3 Dosierer Totalisator löschen;
40103;Application.ModbusTest.C_OFL;unsigned16;w;1;-99;Bit 4 Dosierer Lokal;
40104;Application.ModbusTest.C_ONL;unsigned16;w;1;-99;Bit 5 Dosierer Verhältnis;
40105;Application.ModbusTest.C_CFF;unsigned16;w;1;-99;Bit 8 Kalibrieren;
40106;Application.ModbusTest.C_TAR;unsigned16;w;1;-99;Bit 9 Tarieren;
40107;Application.ModbusTest.C_ALC;unsigned16;w;1;-99;Bit 12 Alarm löschen;
40108;Application.ModbusTest.C_VOM;unsigned16;w;1;-99;Bit 16 Betriebsart Volumetrisch;
40109;Application.ModbusTest.C_MAM;unsigned16;w;1;-99;Bit 17 Betriebsart Gravimetrisch;
40110;Application.ModbusTest.C_RFD;unsigned16;w;1;-99;Bit 20 Nachfüllen Stop;
40111;Application.ModbusTest.C_RFE;unsigned16;w;1;-99;Bit 21 Nachfüllen Start;
40112;Application.ModbusTest.C_RFL;unsigned16;w;1;-99;Bit 22 Nachfüllen Freigabe;
40120;Application.ModbusTest.IFS;float;rw;2;-99;Dosierfaktor Start Sollwert;
40122;Application.ModbusTest.BGN;float;rw;2;-99;Durchsatz Filter Sollwert;
40124;Application.ModbusTest.FSS;float;rw;2;-99;Durchsatz Nominal Sollwert;
40126;Application.ModbusTest.MFP;float;rw;2;-99;Durchsatz Prozent Sollwert;
40128;Application.ModbusTest.MFS;float;rw;2;-99;Durchsatz Sollwert;
40130;Application.ModbusTest.ELM;float;rw;2;-99;Gewicht Alarmlimit leer Sollwert;
40132;Application.ModbusTest.CDC;float;rw;2;-99;Kalibration Stellbefehl Sollwert;
40134;Application.ModbusTest.RHS;float;rw;2;-99;Nachfüllpegel Max Sollwert;
40136;Application.ModbusTest.RLS;float;rw;2;-99;Nachfüllpegel Min Sollwert;
40138;Application.ModbusTest.SPS;float;rw;2;-99;Steilheit Sollwert;
40140;Application.ModbusTest.ADS;unsigned32;rw;1;-99;Alarmverzögerung Sollwert;
40142;Application.ModbusTest.MPS;unsigned32;rw;1;-99;Durchsatz Alarmlimit Max Sollwert;
40144;Application.ModbusTest.RQS;unsigned32;rw;1;-99;Nachfüllmenge Sollwert;
40146;Application.ModbusTest.RDT;unsigned32;rw;1;-99;Nachfüllumschaltungszeit Sollwert;
40148;Application.ModbusTest.SS1;unsigned32;rw;1;-99;Paddel fester Sollwert;
40150;Application.ModbusTest.DH1;unsigned32;rw;1;-99;Paddel Stellbefehl Alarmlimit Max Sollwert;
40152;Application.ModbusTest.DL1;unsigned32;rw;1;-99;Paddel Stellbefehl Alarmlimit Min Sollwert;
40154;Application.ModbusTest.RS1;unsigned32;rw;1;-99;Paddel Verhältnis Sollwert;
40156;Application.ModbusTest.DHS;unsigned32;rw;1;-99;Stellbefehl Alarmlimit Max Sollwert;
40158;Application.ModbusTest.DLS;unsigned32;rw;1;-99;Stellbefehl Alarmlimit Min Sollwert;
40160;Application.ModbusTest.RSR;string;rw;7;-99;Materialname Rezept;
40162;Application.ModbusTest.PS4;unsigned32;r;1;0;Bit 0 Dosierer Freigegeben;
40162;Application.ModbusTest.PS4;unsigned32;R;1;1;BIT 1 Dosierer in Betrieb;
40162;Application.ModbusTest.PS4;unsigned32;r;1;4;Bit 4 Dosierer im Lokalbetrieb;
40162;Application.ModbusTest.PS4;unsigned32;r;1;5;Bit 5 Dosierer im Verhältnisbetrieb;
40162;Application.ModbusTest.PS4;unsigned32;r;1;8;Bit 8 Kalibrieren läuft;
40162;Application.ModbusTest.PS4;unsigned32;r;1;13;Bit 13 Alarm Abschaltung aktiv;
40162;Application.ModbusTest.PS4;unsigned32;r;1;16;Bit 16 Betriebsart Volumetrisch;
40162;Application.ModbusTest.PS4;unsigned32;r;1;17;Bit 17 Betriebsart Gravimetrisch;
40162;Application.ModbusTest.PS4;unsigned32;r;1;22;Bit 22 Nachfüllen Freigegeben;
40162;Application.ModbusTest.PS4;unsigned32;r;1;24;Bit 24 Gewicht über Nachfüllpegel Min;
40164;Application.ModbusTest.ASR;unsigned32;r;1;0;Bit 0 Motor Alarm;
40164;Application.ModbusTest.ASR;unsigned32;r;1;4;Bit 4 Stellbefehl > Max;
40164;Application.ModbusTest.ASR;unsigned32;r;1;5;Bit 5 Stellbefehl < Min;
40164;Application.ModbusTest.ASR;unsigned32;r;1;7;Bit 7 Durchsatz > Max;
40164;Application.ModbusTest.ASR;unsigned32;r;1;8;Bit 8 Durchsatz < Min;
40164;Application.ModbusTest.ASR;unsigned32;r;1;10;Bit 10 Waagenstörgröße > Max;
40164;Application.ModbusTest.ASR;unsigned32;r;1;14;Bit 14 Gewicht < Min;
40164;Application.ModbusTest.ASR;unsigned32;r;1;16;Bit 16 Wägezelle Überlast;
40164;Application.ModbusTest.ASR;unsigned32;r;1;18;Bit 18 Wägezelle Alarm;
40164;Application.ModbusTest.ASR;unsigned32;r;1;20;Bit 20 Nachfüllzeit abgelaufen;
40164;Application.ModbusTest.ASR;unsigned32;r;1;24;Bit 24 Paddel Motor Alarm;
40164;Application.ModbusTest.ASR;unsigned32;r;1;28;Bit 28 Paddel Stellbefehl > Max;
40164;Application.ModbusTest.ASR;unsigned32;r;1;29;Bit 29 Paddel Stellbefehl < Min;
40166;Application.ModbusTest.CFF;float;r;2;-99;Dosierfaktor Istwert;
40168;Application.ModbusTest.MSD;float;r;2;-99;Durchsatz Abweichung Istwert;
40170;Application.ModbusTest.MFA;float;r;2;-99;Durchsatz Istwert;
40172;Application.ModbusTest.NWA;float;r;2;-99;Nettogewicht Istwert;
40174;Application.ModbusTest.DC1;float;r;2;-99;Paddel Stellbefehl Istwert;
40176;Application.ModbusTest.DCA;float;r;2;-99;Stellbefehl Istwert;
40178;Application.ModbusTest.TOA;float;r;2;-99;Verbrauch Istwert;
40180;Application.ModbusTest.SGW;unsigned16;r;2;-99;Waagenbereich Istwert;
40181;Application.ModbusTest.SPA;unsigned16;r;1;-99;Motor Drehzahl Istwert;
40182;Application.ModbusTest.SP1;unsigned16;r;1;-99;Paddel Motor Drehzahl Istwert;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;
-99;-99;-99;-99;-99;-99;-99;

Der Eintrag -99 an Stelle der Modbus-Registeradresse markiert das Ende des Tabelleneintrag.
Laden Sie nun die Datei auf die Steuerung und geben sie den Dateinamen und den Pfad dem IEC-Code bekannt. (Siehe oben)
(Siehe oben)
Bei IEC-Code Start wird diese Tabelle geladen.

***********************************************************************************************************************************************************
  • Unterstützte Variablentypen

Unterstützte Variablentypen
IEC In CSV- Tabelle Ergänzende Informationen
WORD UINT unsigned16  
INT signed16  
DWORD UDINT unsigned32  
DINT signed32  
REAL float  
String string String(1..255)

Note

Bit’s(BOOL) innerhalt eines UNSINGNED16/32 können zwar in der Tabelle nacheinander angegeben werden, jedoch wird das Register “normal” übertragen und behandelt. Eine Mehrfachnennung eines Registers wird bei der Übertragung ignoriert. Im Beispiel: Modbusregister 40162 wird 1x regulär als 32bit Variable übertragen. der Bitzugriff in die Unsigned32- Variable muß manuell erfolgen.



***********************************************************************************************************************************************************
  • ERROR- Codes

Erläuterung der ERROR- Codes
Error-Code Bedeutung Norm Bedeutung hier
01 ILLEGAL FUNCTION Der FC des Request-Telegramm wird vom Server nicht unterstützt Bsp.: Anfrage mit FC1
02 ILLEGAL DATA ADDRESS Die Angefragte Startadresse wurde in der Tabelle nicht gefunden Bsp.: Hier Anfrage ab Adresse 40118, Diese existiert nicht in Tabelle
03 ILLEGAL DATA VALUE Die Abfragelänge ist länger als das letzte Register in der Tabelle Bsp.: Abfrage ab Register 40180 mit der Länge 20. Das letzte existierende Register ist 40182
04 SLAVE DEVICE FAILURE Die Tabelle Konnte nicht geladen werden. Über Modbus können keine Daten bereitgestellt werden.