…vielleicht, kannst Du ja mal die Anleitung anhängen wo die Befehl mit drinnen stehen. Nach 100 Seiten hab ich diese nicht gefunden, wenn man nicht weis welches von den 1000 pdfs das richtige ist.:mad:
4.2 ASCII Command Protocol
The Barionet includes a built-in ASCII command protocol that allows you to send simple English-like commands over TCP/IP. The commands allow you to control Barionet outputs and to get the status of the inputs.
Warning: HTTP/1.1 404 ERROR in [Test estbarix] on line 3
Das Relais schaltet wunderbar über das Web Server CGI. Leider ist es aber nicht möglich über das Web Server CGI den Wert des Temperatursensor auszulesen.
Den Socket mit Port öffnen, eine Registervariable anlegen, diese mit dem Socket verbinden. Der Registervariable dein Script zuweisen.
ID des Socket = InstanzID deines Clientsocket, bitte eintragen. Vor dem Ausführen die Registervariable öffnen und auf Debug klicken und schauen, ob was zurück kommt.
CSCK_SendText(ID des Socket, 'setio,1,1'.chr(13));
CSCK_SendText(ID des Socket, 'setio,1,1'.chr(13));
das sollte so eigentlich funktionieren.
Das hast Du gemacht, sonst kommt nichts zurück.
If the TCP Protocol default Subscriptions parameter is set to „None“, state change messages are not sent by default. Instead, the „TCP Add I/O state Subscriptions“ parameter affects when state change messages are enabled. If the „TCP Add I/O state Subscriptions“ setting is set for „With getio/setio“, every time a getio or setio command is sent, state change messages are automatically enabled on the input or output addressed by the getio or setio command.
Wenn du dann alles beieinander hast Legst dir mal 3 Variablen an, Integer ist nicht schlecht . Und nimmst mal das Script.
if($_IPS['SENDER'] == "Execute") // wenn das Script von Hand ausgeführt wird
{
CSCK_SendText(14939,'setio,1,999'.chr(13)); // sende Befehl über den Clientsocket
}
if($_IPS['SENDER'] == "RegisterVariable") // wenn das Script von der Registervariable getriggert wurde
{
IPS_LogMessage($_IPS['SELF'], $_IPS['VALUE']); // Daten der Registervariable in den Meldungen mit den erhaltenen Werten loggen
$data = explode(",", $_IPS['VALUE']); // daten von Registervariable aufteilen in ein Array. Die Daten stehen in $_IPS['VALUE'] und sind nur zur Laufzeit verfügbar.
SetValue(12345, $data[0]); // Daten von Array in Variablen schreiben
SetValue(23456, $data[1]);
SetValue(45678, $data[2]);
}
Hier findest Du alle IPS Befehle und Erklärungen dazu.
Ich benutze schon seit längerem die Barionet 100, und bin recht begeistert von den Möglichkeiten dieses kleinen Teils.
Zu deiner Frage und dem Ganzen Socketwirrwar hier.
Die Barionet unterstützt das Modbus Protokoll und ist somit ganz einfach über das Modbus-Modul seitens IPS einbindbar.
Lediglich musst du bei der Schreib- und Leseadresse im Modbusmodul den jeweiligen Wert (-1) aus der Barionet Doku eintragen. Warum man da eine Adresse abziehen muss weiß ich selbst nicht, jedoch funktioniert alles ohne beanstandung.
Weiter kann in der Barionet auch im Internen Speicher eine .txt angelegt werden die alle benötigten Daten zur verfügung stellt, diese Metode ist aber recht kompliziert umzusetzen.
dei Ascii Methode über die Reg. Variable habe ich aus Gründen der Verarbeitungs- und Logingmöglichkeiten verworfen.