Autor |
Beitrag |
einheit141
Hält's aus hier
Beiträge: 1
|
Verfasst: Di 22.03.11 13: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 08:25
|
|
Voxe
      
Beiträge: 41
Win XP, Win 7
Delphi 7 prof
|
Verfasst: So 05.06.11 18: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: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 05.06.11 18:53
Kompatibilitätseinstellungen? XPMode? Geht das alles nicht?
|
|
Rogi
Hält's aus hier
Beiträge: 4
|
Verfasst: Di 07.06.11 16: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:
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; |
Moderiert von Martok: Delphi-Tags hinzugefügt
|
|
Rogi
Hält's aus hier
Beiträge: 4
|
Verfasst: Mi 08.06.11 15:42
Hi Leute,
unter Win7 funktioniert es auch.
|
|
ggeiser
Hält's aus hier
Beiträge: 1
|
Verfasst: Mo 15.08.11 23: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 15:01
Hi,
hier ist die Code:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| function TForm1.Eingang(AdrEingang:Integer):Boolean; var ReadBuffer : 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; |
Moderiert von 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 11: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
|
|