| Autor | Beitrag | 
| einheit141 Hält's aus hier
 Beiträge: 1
 
 
 
 
 | 
Verfasst: Di 22.03.11 12:18 
 
Hallo zusammen!
 Ich bin eigentlich kompletter SPS Neuling. Wir haben bei uns einen WAGO 750-841, der bei uns Haustechnik steuert. Das ganze System ist von einer Fa. eingebaut und eingerichtet worden. Lediglich die GUI zur Steuerung ist sehr gewöhnungsbedürftig und nicht wirklich auf unsere Bedürfnisse angepasst. Da ich mich mit SPS Programmierung (CoDeSys ist vorhanden) nicht wirklich auskenne, sondern mein Wissen sich eher auf Delphi bezieht, habe ich mich schlau gemacht, wie man eine eigenes Programm mit eigener GUI realisieren kann. Die benötigte MBT.dll von Wago ist auch vorhanden und ich habe die Verbindung zu unserem WAGO Knoten herstellen können. Auch das Auslesen der Momentanzustände funktioniert. Lediglich wenn ich einen Binärwert von 0 auf 1 setzen möchte, funktioniert das nicht. Die Anweisung läuft praktisch ins Leere. Ist das irgendwie eine Frage der Berechtigung zum schreiben auf dem Controller oder eine Konfigurationseinstellung? Wäre schön, wenn mir da jemand helfen könnte, der sich auch etwas mit der Kommunikation Wago <-> Delphi auskennt. Kann euch auch gerne den Quelltext mal posten. Hat jemand von euch sowas schon mal selbst geschrieben?
 
 Grüße einheit141
 | 
|  | 
| Rogi Hält's aus hier
 Beiträge: 4
 
 
 
 
 | 
Verfasst: Di 31.05.11 07:25 
 | 
|  | 
| Voxe 
          Beiträge: 41
 
 Win XP, Win 7
 Delphi 7 prof
 
 | 
Verfasst: So 05.06.11 17:15 
 
Hallo,
 eine dumme Frage, welches Betriebssystems des PC's setzt du ein. Meine Erfahrungen mit Win7 sind, das es ein Zufallsprodukt ist. Aussage von Wago, die DLL unterstützt Win7 nicht. Meine Erfahrung, stimmt. Mit XP kein Problem.
 
 Liebe Grüße
 | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: So 05.06.11 17:53 
 
Kompatibilitätseinstellungen? XPMode? Geht das alles nicht? | 
|  | 
| Rogi Hält's aus hier
 Beiträge: 4
 
 
 
 
 | 
Verfasst: Di 07.06.11 15:34 
 
Hallo,
 ich hab XP. demnächst will ich mit Win7 zugriff auf WagoI/O programmieren. Und noch was die Ausgang ist eine Konstante und Deklaration sieht so aus:
 		Moderiert von                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 
 | const
 DEFAULT_SERVER_NAME     : array[0..15] of Char = '192.168.1.2';   DEFAULT_PORT            : Word = 502;
 DEFAULT_PROTOCOL        : Boolean = True;     DEFAULT_REQUEST_TIMEOUT : LongWord = 1000;
 
 Eingang1: Byte = 0;            Eingang2: Byte = 1;            Eingang3: Byte = 2;            Eingang4: Byte = 3;           Eingang5 : Byte = 4;            Eingang6 : Byte = 5;            Eingang7 : Byte = 6;            Eingang8 : Byte = 7;
 
 Ausgang1 : Byte = 0;            Ausgang2 : Byte = 1;            Ausgang3 : Byte = 2;            Ausgang4 : Byte = 3;            Ausgang5 : Byte = 4;            Ausgang6 : Byte = 5;
 |   Martok: Delphi-Tags hinzugefügt | 
|  | 
| Rogi Hält's aus hier
 Beiträge: 4
 
 
 
 
 | 
Verfasst: Mi 08.06.11 14:42 
 
Hi Leute,
 unter Win7 funktioniert es auch.
 | 
|  | 
| ggeiser Hält's aus hier
 Beiträge: 1
 
 
 
 
 | 
Verfasst: Mo 15.08.11 22:15 
 
Hallo!
 Ich versuche mich momentan auch damit, eine WAGO 750-841 mittels Delphi auszulesen bzw. zu beschreiben. Ich scheitere aber leider schon am Auslesen. Bis zum Verbindungsaufbau funktioniert alles wunderbar. Ich kann auch die Schreib- bzw. Lesebefehle aus der mbt.dll ohne Fehlermeldung ausführen. Nur passiert bei den Schreibbefehlen nichts und beim Lesen ändert sich die Variable nicht.
 
 Ich bin leider noch kompletter Anfänger mit der WAGO und wäre daher sehr dankbar, wenn mir jemand ein kurzes und simples Programm zur Verfügung stellen könnte, aus welchem ich den richtigen Einsatz der Befehle aus der mbt.dll ableiten könnte.
 
 Vielen Dank im Voraus!
 | 
|  | 
| Rogi Hält's aus hier
 Beiträge: 4
 
 
 
 
 | 
Verfasst: Fr 30.09.11 14:01 
 
Hi,
 hier ist die Code:
 		Moderiert von                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 
 | function TForm1.Eingang(AdrEingang:Integer):Boolean; varReadBuffer  : array[0..250] of Byte;
 begin
 If (MBTReadCoils(hSocket, MODBUSTCP_TABLE_OUTPUT_COIL,AdrEingang, 1, @ReadBuffer, nil, 0) = S_OK) then
 begin
 Case ReadBuffer[0] of
 0: Eingang := False;                  1: Eingang := True;                 end;
 end else begin                           Application.MessageBox('Es ist ein Fehler beim WagoI/O aufgetreten !', 'write error', MB_OK);
 end;
 end;
 |   Narses: Delphi-Tags hinzugefügt | 
|  | 
| BigAl 
          Beiträge: 31
 
 XP, Vista, 7, 2000+ Server
 RAD Studio XE / XE2 EP/Prof., C#, MSSQL, HTML, PHP, Step 7...
 
 | 
Verfasst: Di 04.10.11 10:47 
 
Hallo zusammen,
 bin gerade etwas verwirrt. Ich nutze auch schon seit ein paar Jahren die WAGO-Module mit Delphi. Das Ganze mach ich auch über die mbt.dll (Modbus). Weiterhin nutze ich die MBT.PAS (Schnittstelle zur DLL) und die MBTObj.pas (objektorientierte Schale zu MBT.pas). Mit Sockets usw. muss ich mich - dank der MBTObj.pas) nicht rumärgern. Die Deklaration von ReadCoils sieht z.B. so aus:
 
 TModBusConnection.ReadCoils(Address, Count: Cardinal; var Value: Boolean): Cardinal;
 
 oder um mehrere Eingänge zu lesen:
 
 TModBusConnection.ReadCoils(Address, Count: Cardinal; var Data: TDynBoolArray): Cardinal;
 
 Das Objekt hat natürlich die gesamte Funktionalität um Werte zu lesen, zu schreiben usw.. Ich nutze neben den digitalen auch die analogen Funktionen. Die analogen Funktionen sind in meiner Applikation momentan aber nur lesend... Habe die in der Vergangenheit aber auch schon geschrieben...
 
 Gruß
 Alex
 | 
|  |