CODESYS - das IEC 61131-3 Programmiersystem

Willkommen im offiziellen CODESYS - Forum von 3S-Smart Software Solutions
Deutsche Version English version russian version 
Aktuelle Zeit: Fr Dez 15, 2017 8:19 am

Alle Zeiten sind UTC




Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Okt 17, 2015 6:48 am 
Offline

Registriert: Sa Jun 13, 2015 2:06 am
Beiträge: 35
Hallo,
Ich bin auf der suche nach der Fubktion, die sich bei step 7 Datenbaustein nennt.
Ich habe das licht in meinen Flur mit einen TON programmiert, das licht wird nach Ablauf des TON Bausteins automatisch ausgeschalten. Den wert kann ich in der webvisu verändern. jedoch habe ich das Problem, wenn ich den wert in der webvisu ändere, er beim einloggen meckert, das die Programme sps>Programmiergerät nicht identisch sind.

Gibt es eine Möglichkeit die werte so zu speichern, das diese bei login nicht immer wieder auf den alten stand der software eingestellt werden oder gar beim sps kalt reset verloren gehen?


Nach oben
   
BeitragVerfasst: So Okt 18, 2015 5:17 am 
Offline
Site Admin

Registriert: Mo Sep 05, 2005 8:42 am
Beiträge: 2330
Hi,
Zitat:
ich den wert in der webvisu ändere, er beim einloggen meckert, das die Programme sps>Programmiergerät nicht identisch sind

das hat erst mal nichts mit der Variable zu tun, sondern CODESYS will einen neuen Download machen
dadurch sind dann deine Werte wieder initialisiert. Bekommst du keinen "Online Change" angeboten?

Das Problem das deine geänderten WERTE nach dem Ausschalten der SPS weg sind und die Lösung dazu beschreibe ich mal hier:

Abhängig davon welche SPS du verwendest gibt's wie immer mehrere Möglichkeiten.
Du könntest Retain Variablen verwenden, hier müsstest du nur die variablen als "VAR RETAIN" oder VAR Retain Perisistent deklarieren dann werden die
automatisch vom System gesichert.
(Bedingung deine SPS muss ein NVRAM oder USV - also SPS fährt geregelt herunter und wird nicht nur ausgeschaltet)
Du hattest sonst immer zum Pi Fragen gestellt also nehme ich man an du bist auf dem PI.

Es ist so das der Raspberry Pi ja kein NVRAM hat und meist auch keine USV.
Jetzt gibt es eigentlich 5 Möglichkeiten (je nachdem was du genau für Anforderungen hast)so was zu realisieren.
1. USV nachrüsten -dann die Var Retain Persisiten verwenden (schau mal in die Hilfe wie man die verwendet)
2. ohne USV den selben Retain Mechanismus verwenden aber händisch getriggert in deiner Applikation die Retains in ein File schreiben und auch beim starten über Applikation wieder die retains laden - das tun wohl manche PI User dazu gibs im englischen CODESYS Pi Forum ein Applikationsbeispiel.
3. Application Composer - Persistente Variablen - schreibt - müsste ich dir ein Beispiel erstellen
4. du schreibst dir deine Variablen selber in ein File per CAA File oder aber SysFile Bibiothek - im Store gibs ein Beispiel wie man CAA File verwendet und lädst diese wieder beim initialisieren deiner Applikation
5. Rezeptur verwenden um deine Werte zu sichern und wieder herzustellen.

Was sind die vor und Nachteile der Möglichkeiten?
Für wirklich 100% zuverlässige Retains ist USV oder NVRAM notwendig!
Punkt 2 hat den Nachteil das man nur den Stand hat der gesichert wurde (manuell über Applikation) der kann sich ja unterscheiden von dem
vom Auschaltzeitpunkt.
2,3,4,5 haben auf dem Pi immer das Risiko das was schief geht wenn gerade geschrieben wird und dabei der Pi ausgeschaltet wird.
Grüße
Edwin


Nach oben
   
BeitragVerfasst: Sa Okt 28, 2017 1:08 am 
Offline

Registriert: Sa Jun 13, 2015 2:06 am
Beiträge: 35
Habe Jetzt umgebaut auf wago 750-8202 ( PFC200)

Hätten sie mal ein Beispiel für mich, wie ich Die Variable so sichere, das sie immer gespeichert bleibt? Habe beim erstellen einen haken bei retain und Perisistent rein geklickt. Jetzt bekomme ich eine Warnung:
Zitat:
------ Übersetzungslauf gestartet: Applikation: Device.Application -------
Code typisieren ...
Code erzeugen...
[INFORMATION] Code für __VAR__PERSISTENT__WRITE__MAINTASK erzeugen...
[INFORMATION] Code für __IMPLICITREFERENCETYPESINIT erzeugen...
[INFORMATION] Code für __CYCLE__CODE__MAINTASK erzeugen...
[INFORMATION] Code für HWR__4971__GVL__INIT erzeugen...
[INFORMATION] Code für HWR erzeugen...
[INFORMATION] Code für EINSTELLUNGEN__INP__VIS.EXECUTEMOUSECLICK erzeugen...
[INFORMATION] Code für EINSTELLUNGEN__VIS.UPDATE erzeugen...
globale Initialisierungen erzeugen...
Code-Initialisierung erzeugen...
Relokationen erzeugen...
[WARNUNG] wagopfc 200 Denny: HWR [Device: SPS-Logik: Application](Zeile 30 (Dekl)): C0244: Kein passender Instanzpfad gefunden für Variable HWR.Licht_Zeit_HWR in der VAR_PERSISTENT-Liste. Verwenden Sie den Befehl "Alle Instanzpfade hinzufügen" um der VAR_PERSISTENT-Liste alle Instanzpfade hinzuzufügen. (siehe Onlinehilfe für Details).
[INFORMATION] Größe des erzeugten Codes: 2373232 Bytes
[INFORMATION] Größe der globalen Daten: 881700 Bytes
[INFORMATION] Gesamter allozierter Speicherumfang für Code und Daten: 3691500 bytes
[INFORMATION] Speicherbereich 0 enthält Daten, Eingang, Ausgang, Speicher und Nicht-sichere Daten: Größe: 1253304 Bytes , höchste verwendete Adresse: 964080, größte zusammenhängende Speicherlücke: 289224 Bytes (23 %)
[INFORMATION] Speicherbereich 1 enthält Retain-Daten: Größe: 1000 Bytes , höchste verwendete Adresse: 196, größte zusammenhängende Speicherlücke: 804 Bytes (80 %)
[INFORMATION] Speicherbereich 2 enthält Persistente Daten: Größe: 1000 Bytes , höchste verwendete Adresse: 88, größte zusammenhängende Speicherlücke: 912 Bytes (91 %)
[INFORMATION] Speicherbereich 3 enthält Code: Größe: 3545630 Bytes , höchste verwendete Adresse: 2727408, größte zusammenhängende Speicherlücke: 818222 Bytes (23 %)
Übersetzung abgeschlossen -- 0 Fehler, 1 Warnungen : Bereit für Download


Gibt es eine Möglichkeit, die Gespeicherten/nachträglich eingeben Werte von der Steuerung in das Programm zu kopieren, ohne sie Abtippen zu müssen?

Bei Step 7 kann man ja einfach den Datenbaustein im Online Modus von der der Steuerung in das Projekt kopieren, schon sind alle werte wieder Aktuell und ein Austausch der SPS steht nichts mehr im Wege.


Nach oben
   
BeitragVerfasst: Sa Okt 28, 2017 5:47 am 
Offline
Site Admin

Registriert: Mo Sep 05, 2005 8:42 am
Beiträge: 2330
Hi,
du musst die Variablen
VAR_GLOBAL PERSISTENT RETAIN
byPersitent: BYTE;
END_VAR

und dann in dieser Globalen PersitenzVarliste einfügen lassen durch CODESYS.
Siehe Screenshot.

Grüße
Edwin


Dateianhänge:
PersistentVars.jpg
PersistentVars.jpg [ 135.18 KiB | 248 mal betrachtet ]
Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de