Welche Libs nutzt du denn noch?
Und was muss ich bei einer S7-1200 alles vorbereiten für die Kommunikation?
Welche Libs nutzt du denn noch?
Und was muss ich bei einer S7-1200 alles vorbereiten für die Kommunikation?
Ich benutze IPS7LNK von Träger, AGLink von Deltalogic, LibNoDave und eine eigene DLL, welche aber noch nicht fertig ist (nur lesen zur Zeit).
Ich habe noch nichts mit einer S7-1200 zu tun gehabt. Man hört aber, dass LibNoDave nur teilweise funktioniert (SPS-Forum). Verbunden wird mit Rack und Slot = 0.
Ah...ja von deiner DLL hab ich bei SPS-Forum gelesen (heiße dort ja Mobi).
Welche von den 4 Möglichkeiten ist denn die beste?
Am besten ist natürlich AGLink, wahrscheinlich aber am teuersten. Ich würde einfach mal mit LibNoDave probieren und wenn es dann einfach nicht will, eine andere (kostenpflichtige) Variante wählen.
Hast du schon die Funktion _davePPIConnect gemacht für die 200er?
Nein, aber warum braucht man die?
Müsste doch genügen bei _daveNewInterface() das Protokoll $daveProtoPPI zu übergeben.
Ich hatte nur gedacht weil du schon TCPConnect und MPIConnect gemacht hast. Aber inzwischen hab ich gelesen, dass das sowieso mit USB-PPI nicht geht. Habs jetzt mal schon probiert mit der 1200er, das funktioniert super. Hoffe, dass du noch die UDF weiter supportest.
Wie kann ich denn einen DB auslesen von einem Zähler (CTU)?
Und dies beschreibt nur die ersten beiden Ausgänge vom Byte 1. Wieso?
[autoit]$Buffer = DllStructCreate("BYTE buf[1]")
$pBuffer = DllStructGetPtr($Buffer)
_LibNoDave_Put8($pBuffer, 255)
_LibNoDave_WriteBytes($hConnection, $LNDAVE_OUTPUTS, 0, 1, 1, $Buffer)
Hallo.
Anbei mal die aktuellste LibNoDave-UDF, die ich finden konnte.
Zitat von m-obiWie kann ich denn einen DB auslesen von einem Zähler (CTU)?
Du willst aktuelle Zählerwerte auslesen?
Das sollte mit _daveReadBytes() und _DaveGetCounterValue() gehen.
Zu zweitens. Keine Ahnung. Ich setze normalerweise keine Ausgänge, wenn dann Merker, die dann die Ausgänge setzen. Abe könnte es sein, dass die Ausgänge bereits im Programm verwendet wurden, dann werden sie natürlich von der SPS wieder überschrieben.
P.S.: Hast du alle Funktionen umbenannt??
Ich hab mir extra einen Bereich ausgewählt, welcher nicht verwendet wird.
Jap hab ich. Ich hab mir mal die Frechheit genommen und die UDF so umgeschrieben, dass sie "ordentlich" aussieht.
Auch die Konstanten und Variablen.
Hallo
Was mache ich falsch das ich den falschen wert angezeigt bekomme ?
Hallo
super habe's hin bekommen.
Könntest du mir noch sagen wie ich eine Variable schreibe ?
Ich möchte über Ping abfragen ob mein Handy im Heimnetzwerk angemeldet ist. Wenn dies der fall ist möchte ich in einem DB einen Bit setzen.
Hallo
da ich in AutoIT noch Anfänger bin wäre mir sehr geholfen wenn mir jemand erklären
könnte was ich zu einer Libnodave TCP Verbindung benötige.
Wie wurde das Script über TCP aussehen?
Das Demo Programm funktioniert bei mir, allerdings versteh ich im Script fast nichts.
Hallo
Der code mit dem kompletten byte schreiben funktioniert bei mir.
ich durch die zahl 32 könnte ich zb m22.5 einschalten .
nur beim ausschalten schaltet er immer das ganze byte könnte ich das reduzieren auf den einzelenen merker?
bzw nur das Bit schalten und die anderen in ruhe lassen
LG
Hallo und guten Morgen!
Ich habe für meine selbstgebaute Heizungsanlage eine Steuerung auf Basis einer Siemens LGOG! OBA7 (mit Ethernet) und dazu eine Visualisierung auf AutoIt.
Soweit funktioniert alles seeehr geil. Werte werden angezeigt, Schaltzustände werden angezeigt.
Über die LibNoDave UDF werden alle 0,5 sek zyklisch einige Register (Merker und DWord´s) von der LOGO! gelesen.
ABER (und jetzt zum Problem) :
Ich kann die AutoIt-Anwendung nicht ewig offen lassen, weil Windows sagt: " Ey kollege, die Anwendung frisst soo hammer viel Speicher, entweder beendest Du die jetzt oder Du stirbst".
Dann hab ich mich mir den Speicherbedarf von dem AutoIt-Task mal angesehen uns tatsächlich: mit jedem Zyklus in dem Daten von Logo! nach AutoIt geschaufelt werden, wächst der Speicherbedarf um ein paar Hundert Kilobyte.
Dann habe ich mal einen 3-Zeiler geschrieben in dem NUR von der LOGO! gelesen wird, um Fehler in meinem Skript auszuschließen - gleiches Symptom.
Hat jemand eine Idee?Visualisierung.jpg
Vermutlich öffnest du irgendwo Infos, löscht diese aber nicht richtig. Daher der Zuwachs an speicher.
Ohne Glaskugel oder Quellcode kann man dir da leider nicht helfen.
[quote='Kanashius','https://autoit.de/index.php/Thread/23507-LibNoDave-UDF-zur-Kommunikation-mit-Simatic-SPS/?postID=664383#post664383']
#include"LogAitDave_UDF.au3"
_LAD_SetIP("192.168.1.4")
#include <array.au3>
while 1
$arr[0] = _LAD_ReadWord(0)
$arr[1] = _LAD_ReadWord(2)
$arr[2] = _LAD_ReadWord(4)
$arr[3] = _LAD_ReadWord(6)
_ArrayDisplay($arr)
wend
Alles anzeigen
Dieses bischen reicht schon. Da wird nichts von mir gespeichert...
Naja, mit deinem Script kann hier niemand etwas anfangen, wichtige wäre, die FUNKTION, welche du aufrufst zu posten, also _LAD_ReadWord()
Generell ist es sinnvoll, alle nicht zu AutoIt gehörenden UDF´s mit anzuhängen!
Deswegen wär´s wohl sinnvoll, wenn sich das jemand anguckt, der sich mit der libnodave.dll schonmal auseinandergesetzt hat.
LibNodave kenn ich
Aber das Include-File und die Funktionen die du aufrufst habe ich noch nie gesehen. Ohne diese Datei(en) wird dir keiner hier helfen können.