NEWS
Siemens LOGO!8 FS04
-
Ach ja was macht man(n) nicht alles für sein Hobby [emoji12] `
aber dem WAF nicht vergessen :lol:Damit kann ich auch nur bestätigen "DB1 0.0" muss da sein ! `
Auch wichtig bei Word oder Dword die Adresse immer geradzahlig wählen. -
Habe nun Umrechner! Es gibt leider kein Widget, das eine solche Umrechnung "im Bauch" hat (vielleicht bin ich ja auch nur nicht fündig geworden), deshalb Umweg über Javascript:
Im ioBroker.admin den Adapter "Scripte" installieren. In der neuen Lasche Scripte im Order Common u.a. Zeilen einfügen und speichern und Script auf Play stellen. In diesem Fall wollte ich den Sonnenaufgang richtig darstellen (sunrisenf:ohne Formatierung, sunrise: mit Formatierung - mit Doppelpunkt). Natürlich ist Sunrise nur 3 stellig (weil morgens), deshalb habe ich auch für 4stellige Uhrzeiten Zeile eingefügt und für diesen Fall auskommentiert. In der Visu dann ein Widget mit Stringvariablen auswählen und als Obekt ID gewünschte Variable einfügen. Hier: sunrise bzw. sunrisenf. Diese werden wie die S7 Variablen im Objektexplorer im Ordner javascript.0 geführt.
Achtung: Script wird nur bei Änderung ausgeführt!!(change: "ne") `
Super!!! Dankeschön!!!Jetzt sehe ich die Uhr richtig. Leider kann ich die nicht über ioBroker einstellen. Mache ich was falsch oder ist der Script nur zum auslesen?
Schöne Grüße `
Script zum Schreiben wird noch folgen, ich forsche….melde mich wieder!
-
Ja, klar. Bin schon gespant.
Hast wahrscheinlich schon geseh, aber so sieht das bei LogoControl aus:
<calculation id="time"><valuetotext calculation="{Floor(LogoDec2Hex([value])/100)}:{if(LogoDec2Hex([value])%100>9,'','0')}{LogoDec2Hex([value])%100}"><texttovalue valueparseregex="(\d+):(\d+)" calculation="{LogoHex2Dec([value1]*100+[value2])}"></texttovalue></valuetotext></calculation>
wäre super wenn man das im S7 Adapter einbauen könnte, unter Rolle z.B. LOGO!Time
-
So, nun ist auch der Weg analoger Werte von ioBroker nach Logo! fertig.
Wichtig: Variable muss im Adapter "RW" angehakt werden und als "switch" in der Spalte "Rolle" deklariert werden (ja, auch analoge Werte werden geschaltet )
Als Widget dient "Input"
Leider muss für einlesen und schreiben ein eigener Script geschrieben werden. Vielleicht findet jemand einen Weg beides in einem zu machen.
Weiters wäre es toll, diese Funktion in ein Widget zu integrieren….Vielleicht gibt es ja einen Editor für Widgets?
__/**
- Beschreibe diese Funktion …
*/
createState('ZeitEinnf_in', 0);
on({id: "javascript.0.ZeitEinnf_in"/ZeitEinnf_in/, change: "ne"}, function (obj) {
(function(){
var ConvertBase = function (num) {
return {
from : function (baseFrom) {
return {
to : function (baseTo) {
return parseInt(num, baseFrom).toString(baseTo);
}
};
}
};
};
// hexadecimal to decimal
ConvertBase.hex2dec = function (num) {
return ConvertBase(num).from(16).to(10);
};
this.ConvertBase = ConvertBase;
})(this);
setState("s7.1.DBs.DB1.ZeitEin",ConvertBase.hex2dec(getState("javascript.0.ZeitEinnf_in"/ZeitEinnf_in/).val));
});__
-
Super! Es funktioniert
@gramlgu:Weiters wäre es toll, diese Funktion in ein Widget zu integrieren… `
oder direkt im Adapter -
Hallo komm grad nicht mehr weiter
hab die unten aufgeführte Steuerung kann den Netzwerkschalter auch schalten nur beim Ausgang zeigt er mir nichts an.
Kann ich den Q1 evtl auch unter den Ausgängen nutzen oder nur unter Dbs?
oder auch die Interne Nummer des NQ1 also 1246.0
2787_bildschirmfoto_2017-09-04_um_19.38.21.png
2787_bildschirmfoto_2017-09-04_um_19.36.22.png
2787_bildschirmfoto_2017-09-04_um_19.41.54.png
2787_bildschirmfoto_2017-09-04_um_19.42.08.png -
vielleicht hilft http://forum.iobroker.net/viewtopic.php?p=72322#p72322
@gramlgu:Bei mir scheiterte es daran dass ich die Adresse "DB1 0.0" in die Variablenliste einfügen musste, obwohl ich diese gar nicht verwende. Danach werden alle Variablen von/zu Logo übertragen, auch Merker/Eingänge/Ausgänge laut der Variablenliste von "Frickelzeugs" `
-
Danke hat schon mal funktioniert teilweise.
Wenn ich aber Q1 in DBs mit der Nummer DB1 1064.0 eintrage wechselt leider aber der Zustand nicht
Wenn ich den nachgeschalteten NQ1 abfrage funktioniert es. Möchte aber ungern in mein Programm immer noch einen zusätzlichen Netzwerkeingang einfügen wollen
wäre es auch möglich die Ausgänge unter Ausgänge und nicht auf DBs eintragen zu können?
-
Danke hat schon mal funktioniert teilweise.
Wenn ich aber Q1 in DBs mit der Nummer DB1 1064.0 eintrage wechselt leider aber der Zustand nicht `
die feste Speicheradressen sind nur zum auslesenwäre es auch möglich die Ausgänge unter Ausgänge und nicht auf DBs eintragen zu können? `
leider funktioniert das im mit dem Adapter nicht. Eventuel bei LOGO 7. Die VM-Adressen von LOGO 7 und 8 sind unterschiedlich und im Adapter kann mann nicht zwischen 7 und 8 wählen. Es ist nur eine Vermutung, habe keine LOGO 7 zum testen. -
Hallo,
ich kann sowohl Ausgänge auslesen, also auch Netzwerkeingänge schalten. Ich habe eine Logo 8.
Ich habe z.B. den Ausgang Q1 wie folgt beschrieben
Adresse: 0.0
Typ: BOOL
Netzwerkeingang NI3 (unter DBs) ist:
Adresse: DB0 0.2
Typ: Bool
Ich habe den S7-Adapter manuell auf die Version 0.3.0 geupdatet. Evtl. hilft das.
-
ich kann sowohl Ausgänge auslesen `
unter DBs oder Ausgänge?Eigentlich geht das um die reservierte http://www.frickelzeugs.de/logo-programmierung/vm-adressen-der-logo/
-
unter Ausgänge
Der Adapter für ioBroker hat gewisse Ähnlichkeit mit dem FHEM-Modul für S7: https://wiki.fhem.de/wiki/S7#Defines_f. … ns_LOGO.21
Dort kann man die VMs nicht direkt ansprechen.
3428_unbenannt.jpg -
hab das grad getestet, die mussen 0.0 0.1 haben. Mit 1.0 1.1 funktioniert das nicht. Auser dem zeig mein DB1 100 Vor-Rückwärtszähler nicht mehr 0 bis 100 sondern 0 bis 25600. Und der DB1 104 TH Breite zeigt 5394 und nicht 21. Nee dann bleibe ich liber bei den DBs, mit den kann man auch die reservierte VM-Adressen auslesen.
-
Bei mir scheiterte es daran dass ich die Adresse "DB1 0.0" in die Variablenliste einfügen musste, obwohl ich diese gar nicht verwende. Danach werden alle Variablen von/zu Logo übertragen, auch Merker/Eingänge/Ausgänge laut der Variablenliste von "Frickelzeugs" `
Ich glaube Bluefox hat das mit der v0.3.2 gefixt, dafür meinen herzlichen Dank. Kann das noch jemand testen? https://github.com/ioBroker/ioBroker.s7 … /README.mdZum Thema Eingänge/Ausgänge/Merker und DB im Adapter.
Wenn ich das richtig verstanden habe http://settimino.sourceforge.net/comp_logo.html
` > The LOGO memory that we can Read/Write is the V area that is seen by all HMI (and Snap7 too) as DB 1.Into it are mapped all LOGO resources organized by bit, byte or word. `
funktioniert das bei der LOGO nur mit DB1. Wenn das so ist, dann erklärt dass einiges und der Bug ist nicht im Adapter sondern 30 cm vor dem MonitorJetzt fehlt nur noch der Widget mit dem Dez->Hex->Dez Converter
Schöne Grüße
-
Danke hat schon mal funktioniert teilweise.
Wenn ich aber Q1 in DBs mit der Nummer DB1 1064.0 eintrage wechselt leider aber der Zustand nicht
Wenn ich den nachgeschalteten NQ1 abfrage funktioniert es. Möchte aber ungern in mein Programm immer noch einen zusätzlichen Netzwerkeingang einfügen wollen
wäre es auch möglich die Ausgänge unter Ausgänge und nicht auf DBs eintragen zu können? `
Man kann bei keiner SPS(Logo) einen Ausgang aus 2 Quellen beschreiben. 1mal wird Q aus Programm beschrieben(auch wenn Q1 nicht programmiert ist, Logo schreibt dann immer "0" darauf). Du musst mit einem Merker(bzw. Frickelzeugslistendb) verwenden und im Programm Merker auf auf Ausgang verknüpfen.
-
Hallo gramlgu,
habe dein Script ein bisschen modifiziert
! /**
! * Beschreibe diese Funktion …
! */
! createState("LOGO.Uhr1-1_Ein", 0);
! createState("LOGO.Uhr1-1_Eintmp", 0);
! on({id: "s7.0.DBs.DB1.B023-a1", change: "ne"}, function (obj) {
! (function(){
! var ConvertBase = function (num) {
! return {
! from : function (baseFrom) {
! return {
! to : function (baseTo) {
! return parseInt(num, baseFrom).toString(baseTo);
! }
! };
! }
! };
! };
! // decimal to hexadecimal
! ConvertBase.dec2hex = function (num) {
! return ConvertBase(num).from(10).to(16)
! };
! this.ConvertBase = ConvertBase;
! })(this);
! setState("javascript.0.LOGO.Uhr1-1_Eintmp",ConvertBase.dec2hex(getState("s7.0.DBs.DB1.B023-a1").val));
! var Zeittmp= ConvertBase.dec2hex(getState("s7.0.DBs.DB1.B023-a1").val).toString();
! if (getState ("javascript.0.LOGO.Uhr1-1_Eintmp").val < 1000) {
! setState("javascript.0.LOGO.Uhr1-1_Ein",Zeittmp.slice(0, 1) + String(":") + Zeittmp.slice(1, 3)) ;
! } else {
! setState("javascript.0.LOGO.Uhr1-1_Ein",Zeittmp.slice(0, 2) + String(":") + Zeittmp.slice(2, 4)) ;
! }
! }); -
Und dank paul53 geht es noch einfacher
dieser http://forum.iobroker.net/viewtopic.php?p=107344#p107344 ins gobal
und diese http://forum.iobroker.net/viewtopic.php?p=107359#p107359, anzahl nach Bedarf, ins common
Schöne Grüße
-
Ich stlle mal anders die Frage.
Mit dem S7 Adapter habe ich eine Verbindung zu die LOGO. Kann die Rollläden hoch und runter fahren, sehe die Position von den Rollläden. Was ich nicht sehe sind die Zeitwerte der Schaltuhr. Wünschen wurde ich das ich die Zeitwerte der Schaltuhr über ioBroker ändern könnte.
Mit dem Modbus Adapter bekomme ich keine Verbindung zu die LOGO.
Schöne Grüße `
Hallo,
darf ich fragen ob Du an der Logo auch noch irgendwelche einstellungen vorgenommen/geändert hast?
Ich komme nicht auf die Logo obwohl ich diese im Netzwerk sehen kann
Gruß
Markus
-
Hallo,
welche LOGO hast Du?
Schöne Grüße
-
Hi,
ein OBA8.
es ist verrückt, ich bekomme die Plöppels nicht dauerhaft auf grün.
Vorhin hatte ich noch ein wenig rumprobiert und danach war wenigstens ganz kurz nach Adapterstart beide auf Grün (vielleicht eine Sekunde….)
Gruß
Markus