DotNetSiemensPLCToolBoxLibrary (LibNoDave) Zugriff auf Dual-Port RAM / FB15

Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kann die Daten per FB5 ohne Probleme lesen aber beim lesen über die Lib bekommen ich als Value immer null zurückgeliefert
Bereich SGUD GUD-Variable _F_NCK_CL_ANG[0]
Step7:
Anhang anzeigen 44655
C#:
Anhang anzeigen 44656

Durch die Abfrage _gud.IsArray ? 0x0 : 0x1 bekommst du als Zeile 0.

Nun muss du noch die Nummer (Index+1) hinzuzählen.

ncVar.GetNckTag(0,1) für Index 0

ReadGudArray.png
 
Durch die Abfrage _gud.IsArray ? 0x0 : 0x1 bekommst du als Zeile 0.

Nun muss du noch die Nummer (Index+1) hinzuzählen.

ncVar.GetNckTag(0,1) für Index 0

Anhang anzeigen 44676

Perfekt, das war mein Fehler. Jetzt klappt alles ;)

Welchen ACX-File muss ich denn laden um die LUD's zu interpretieren?
bzw. welchen Code muss ich verwenden:
Code:
SGUD = 0x36,
PGUD = 0x36,    //= SGUD
GUD1 = 0x36     //= SGUD
LUD  = ???

Dann habe ich noch ein weiteres Problem bei dem ich anscheinend noch Fehler mache.
Ich bekomme keinen PI-Dienst gestartet. z.B. LOGIN oder LOGOUT bei meinen bisherigen Versuchen bekomme ich immer nur eine Exception.
Hier meine Versuche:
Code:
_myConn.PI_Service("_N_LOGIN_", new string[] { "P01","SUNRISE" });
_myConn.PI_Service("_N_LOGIN_", new string[] { "SUNRISE" });
_myConn.PI_Service("_N_LOGOFF", new string[] { "" });
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Welchen ACX-File muss ich denn laden um die LUD's zu interpretieren?
bzw. welchen Code muss ich verwenden:
Code:
SGUD = 0x36,
PGUD = 0x36,    //= SGUD
GUD1 = 0x36,    //= SGUD
LUD  = 0x18,

Dann habe ich noch ein weiteres Problem bei dem ich anscheinend noch Fehler mache.
Ich bekomme keinen PI-Dienst gestartet. z.B. LOGIN oder LOGOUT bei meinen bisherigen Versuchen bekomme ich immer nur eine Exception.
Hier meine Versuche:
Code:
_myConn.PI_Service("_N_LOGIN_", new string[] { "P01","SUNRISE" });
_myConn.PI_Service("_N_LOGIN_", new string[] { "SUNRISE" });
_myConn.PI_Service("_N_LOGOFF", new string[] { "" });
Code:
_myConn.PI_Service("_N_LOGIN_", new string[] { "001", "SUNRISE " });
_myConn.PI_Service("_N_LOGOUT", new string[] { "001" });
 
Super die PI-Kommandos klappen jetzt auch.
Woher bekommt ich den mal so eine Info das als 1. Parameter "001" übergeben werden muss, kann ich das auch irgendwo selbst in Erfahrung bringen?

Dann nochmal die frage wegen des ACX-Files für die LUD's welchen muss ich da nehmen um an die aktuellen Lokal Variablen zu kommen?

Danke schon mal für die tolle Unterstützung!
 
Super die PI-Kommandos klappen jetzt auch.
Woher bekommt ich den mal so eine Info das als 1. Parameter "001" übergeben werden muss, kann ich das auch irgendwo selbst in Erfahrung bringen?
DocOnCD


Dann nochmal die frage wegen des ACX-Files für die LUD's welchen muss ich da nehmen um an die aktuellen Lokal Variablen zu kommen?
Siehe oben! (LUD = 0x18)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In der DocOnCd habe ich mir das auch alles schon mehrfach angesehen.
Aber da steht auch nicht wie ich das Übergeben muss.
Auf der PLC Seite ist mit das schon klar. Aber das ich z.B. beim LOGOUT "001" übergeben muss und nicht nur "1" steht dort nirgends.
PI_DocOnCd.png
Das mit mit dem Bausteintyp (LUD = 0x18) verstehe ich schon. Aber wie komme ich an die Information welche
Lokal variablen gerade aktiv sind?
Operate_LUD.jpg
 
In der DocOnCd habe ich mir das auch alles schon mehrfach angesehen.
Aber da steht auch nicht wie ich das Übergeben muss.
Auf der PLC Seite ist mit das schon klar. Aber das ich z.B. beim LOGOUT "001" übergeben muss und nicht nur "1" steht dort nirgends.
Anhang anzeigen 44694

Ist immer eine 3-stellige Adresskennung aus BereichsID und Index.

Das mit mit dem Bausteintyp (LUD = 0x18) verstehe ich schon. Aber wie komme ich an die Information welche
Lokal variablen gerade aktiv sind?
Anhang anzeigen 44695

Die in der LUD Datei stehen sind aktiv. Analog zum HMI. Wenn du keinen Vorlaufstopp hast stehen hier eventuell die Variablen des Unterprogramms.
 
Ist immer eine 3-stellige Adresskennung aus BereichsID und Index.

OK, das muss man halt wissen, danke.

Die in der LUD Datei stehen sind aktiv. Analog zum HMI. Wenn du keinen Vorlaufstopp hast stehen hier eventuell die Variablen des Unterprogramms.
Genau das ist ja meine frage, in welcher Datei _N_??_???_ACX stehen denn die aktuellen LUD's.
Wenn z.B. ein Unterprogramm mit Lokal variablen in einem M0 steht, kann ich mir das ja im Operate ansehen. Diese Liste mit den LUD's müsste ich ja abfragen können oder?
 
Beim PI-Dienst _N_F_OPER scheint aber auch ein Fehler in der Doku zu sein. Laut Beschreibung besitzt dieser keine Parameter, aber meiner Meinung nach gibt es einen Parameter mit dem Dateinamen.

Vielleicht gucke ich ja auch immer an den falschen stellen aber in welcher Doku steht denn überhaupt was dazu? Ich finde den PI-Dienst "_N_F_OPER" weder in DocOnCd oder in der Doku vom Programmierpaket.
 
OK, das muss man halt wissen, danke.
Oder richtige Doku lesen ;-)

Genau das ist ja meine frage, in welcher Datei _N_??_???_ACX stehen denn die aktuellen LUD's.
Wenn z.B. ein Unterprogramm mit Lokal variablen in einem M0 steht, kann ich mir das ja im Operate ansehen. Diese Liste mit den LUD's müsste ich ja abfragen können oder?
_N_CH1_LUD_ACX

M0 allein hält nur den Kanal aber nicht den Vorlauf an.

M0
Stopre

oder es sind sowieso schon Befehle verwendet die einen Vorlaufstopp auslösen. (z.B. Cancel, Wait...)

Um aber den richtigen Wert auszulesen ist der STOPRE zwingend (analog zu GUDs)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Oder richtige Doku lesen ;-)

Die Doku will ich mal sehen wo das drin steht? :ROFLMAO:
Gib mir mal eine Tipp wo ich das finde, also in DocOnCd hab ich da keine weiteren Infos gefunden
oder steht eventuell in älteren ausgaben mehr?

_N_CH1_LUD_ACX

M0 allein hält nur den Kanal aber nicht den Vorlauf an.

M0
Stopre

oder es sind sowieso schon Befehle verwendet die einen Vorlaufstopp auslösen. (z.B. Cancel, Wait...)

Um aber den richtigen Wert auszulesen ist der STOPRE zwingend (analog zu GUDs)

Super jetzt klappt das mit den LUD's auch. Das mit dem Vorlaufstopp hab ich schon verstanden. Danke
 
Vielleicht gucke ich ja auch immer an den falschen stellen aber in welcher Doku steht denn überhaupt was dazu? Ich finde den PI-Dienst "_N_F_OPER" weder in DocOnCd oder in der Doku vom Programmierpaket.

Wenn du z.B. das Sinumerik-Addon für WinCC flexible installiert hast, dann wird eine Dokumentation mitinstalliert in der auch die PI-Dienste beschrieben sind. Die Datei hat im Siemens-Forum mal jemand angehängt:
https://support.industry.siemens.com/tf/WW/en/posts/pi-services-parameters-information/106222
 
Beim PI-Dienst _N_F_OPER scheint aber auch ein Fehler in der Doku zu sein. Laut Beschreibung besitzt dieser keine Parameter, aber meiner Meinung nach gibt es einen Parameter mit dem Dateinamen.
In der Doku ist nicht nur einer drin ;-)

Ich hab diesen PI-Dienst jedoch noch nicht gesehen. Hab gerade ein bisschen mit gehört, es wird jedoch nur der "_N_F_OPEN" geschickt, auch wenn die Datei aktiv und somit geschützt ist.
 
Ich hab diesen PI-Dienst jedoch noch nicht gesehen. Hab gerade ein bisschen mit gehört, es wird jedoch nur der "_N_F_OPEN" geschickt, auch wenn die Datei aktiv und somit geschützt ist.

Ist ein einer deiner Aufzeichnungen vorhanden, in der aus diesem Thread:
https://www.sps-forum.de/hochsprachen-opc/87089-siemens-840dsl-alarme-auslesen-2.html#post655147

Was ist eigentlich an Dateien mit Acx so besonders? Bei anderen Dateitransfers ist ja der Dateiname ein String mit einem Newline am Ende. Aktuell suche ich einfach nach dem Newline und übernehme alles bis dahin als Dateiname. Bei Dateinamen mit Acx folgt dort aber direkt eine \0 und dann etliche weitere Werte bis dann auch irgendwann ein Newline kommt.
 
Was ist eigentlich an Dateien mit Acx so besonders? Bei anderen Dateitransfers ist ja der Dateiname ein String mit einem Newline am Ende. Aktuell suche ich einfach nach dem Newline und übernehme alles bis dahin als Dateiname. Bei Dateinamen mit Acx folgt dort aber direkt eine \0 und dann etliche weitere Werte bis dann auch irgendwann ein Newline kommt.

Wie schon mehrfach geschrieben sind die Acx keine normalen Dateien aus dem Dateisystem. Diese sind eher pseudo Dateien die die NC oder auch der Antrieb zum Übertragen von ganzen Paketen verwendet. Diese sind Binär codiert und speicher optimiert.

z.B. alle GUD Adressen aus einem Bereich

Daher auch kein PI-Dienst für den Upload
 
Zurück
Oben