.. first line of object.rst template .. first line of pou-object.rst template .. first line of prg-object.rst template .. <% set key = ".fld-Projektinformationen.ProjectInfo" %> .. _`.fld-Projektinformationen.ProjectInfo`: .. <% merge "object.Defines" %> .. <% endmerge %> .. _`ProjectInfo`: ProjectInfo (PRG) ----------------- PROGRAM ProjectInfo .. <% merge "object.Doc" %> | 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. | .. table:: 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 ' | .. table:: Erläuterung des String "REQUEST-TELEGRAM +--------------+-------------------------------------------------+ | Element: | Bedeutung: | +==============+=================================================+ | REQ: | Request- (Anfrage-) Telegramm | +--------------+-------------------------------------------------+ | 07140: | Empfangscounter (0..9999) | +--------------+-------------------------------------------------+ | L012 | Telegrammlänge = 12 Byte | +--------------+-------------------------------------------------+ | --> | Es folgt der Telegramminhalt | +--------------+-------------------------------------------------+ | 1A | Transaktionsnummer (Highbyte) | +--------------+-------------------------------------------------+ | 09 | Transaktionsnummer (Lowbyte) =40181 | +--------------+-------------------------------------------------+ | 00 | Protokollkennzeichen (immer 0x00) | +--------------+-------------------------------------------------+ | 00 | Protokollkennzeichen (immer 0x00) | +--------------+-------------------------------------------------+ | 00 | Bytecount (Highbyte) | +--------------+-------------------------------------------------+ | 06 | Bytecount (des nun folgenden Modbus-Telegramm) | +--------------+-------------------------------------------------+ | 01 | DeviceNo | +--------------+-------------------------------------------------+ | 03 | FunctionCode | +--------------+-------------------------------------------------+ | 9C | RegisterStartadresse (Highbyte) | +--------------+-------------------------------------------------+ | F4 | RegisterStartadresse (Lowbyte) | +--------------+-------------------------------------------------+ | 00 | Anzahl von Registern (Highbyte) | +--------------+-------------------------------------------------+ | 01 | Anzahl von Registern (Lowbyte) = 1 | +--------------+-------------------------------------------------+ | | | ``GetDebugSendString();`` ( Server --> Client ) | | 'ANS:1358:L011-->1A 09 00 00 00 05 01 03 02 00 14 ' | .. table:: 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. | .. table:: Ü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** | .. table:: Unterstützte Variablentypen +--------------+----------------------+--------------------------------------------------------------------------------------+ | IEC | In CSV- Tabelle | Ergänzende Informationen | +==============+======================+======================================================================================+ | WORD | unsigned16 | | | UINT | | | +--------------+----------------------+--------------------------------------------------------------------------------------+ | INT | signed16 | | | | | | +--------------+----------------------+--------------------------------------------------------------------------------------+ | DWORD | unsigned32 | | | UDINT | | | +--------------+----------------------+--------------------------------------------------------------------------------------+ | 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** | .. table:: 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. | +--------------+----------------------+-----------------------------------------------------------------------------------------------------------+ .. <% endmerge %> .. <% merge "object.iotbl" %> .. <% endmerge %> .. last line of prg-object.rst template .. last line of pou-object.rst template .. last line of object.rst template