Page 1 of 1

Erste Schritte mit Logi.CAD 3

Posted: 15 Dec 2016, 18:51
by Tom
Hallo Forum,

ich habe noch nie mit dieser Software gearbeitet. Ich habe sie nun installiert. Die Frage ist, was sind die nächsten Schritte. Gibt es ein Hello-World für den RevPi ?
Aber bitte keine YT-Videos, die werden Firewalltechnisch hier ausgesperrt. ;-)

Viele Grüße,
Tom

EDIT: Gerade gesehen: Im Benutzerhandbuch zu LogiCad 3 gibt es einen Abschnitt extra für den RevPi, daran hangele ich mich erstmal entlang, scheint mir ein guter Einstieg zu sein.
@Moderator: Bitte verschieben in logicals-Ordner.

Re: Erste Schritte mit Logi.CAD 3

Posted: 14 Apr 2017, 13:08
by volker
Hallo Tom,
konntest Du Dich inzwischen erfolgreich einarbeiten? Steuerst Du schon mit logi.cad3?

Re: Erste Schritte mit Logi.CAD 3

Posted: 14 Apr 2017, 16:19
by Ingo
Hi,

da ich schon eine Weile ganz gut mit Logicad3 arbeite habe ich mich anfangs auch sehr schwer getan diese zu benutzen. Aber mittlerweile wird es langsam wenn man die grundbegriffe vom Strukturierten Text versteht.
Da ich diese Hauptsächlich für meine Steuerrung verwende, (REVPI) ist Sps ersatz habe ich es noch nicht wirklich probiert "Hallo World" zu Probieren. Ist für mich nur Kinderkram.
Ich muss sagen LogiCad hat in den Letzten Versionen viel getan viele neue Bausteine drinne.
Wenn du echt mit LogiCad arbeiten willst dann versuche alles im Strukturierten Text zu schreibenm hat Vorteile gegenüber FUB KOP oder AWL.

Für den RevPi gibt es ein Projekt das für den PI ist das kannst du laden und dich dort etwas befassen. Ist zwar nur der Counter aber immerhin.
Wenn du ein eigenes Projekt erstellen willst musst du da etwas anders vorgehen. Projekt für den RevPI öffnen und dann unter Projekt/Local die LocaleConfiguration und unter RevolutionPI die RevolutionPIResource etwas ändern.

Beispiel:

Code: Select all

{
	CHANNEL RevolutionPiChannel
		TCP
			ADDRESS := deine IP vom PI;
			PORT    := 1534;
		END_TCP
	END_CHANNEL
}

CONFIGURATION RevolutionPi
	RESOURCE RevolutionPiResource ON RevolutionPi { ON_CHANNEL := RevolutionPiChannel }
		{ INCLUDE_GLOBALS Variablen}
		{IO} TASK DefaultTask(INTERVAL := TIME#20ms, PRIORITY := 38229);
     PROGRAM Programm WITH DefaultTask :
		"Programm Name";
	END_RESOURCE
END_CONFIGURATION
damit solltest du arbeiten können.

Ich bin auch nur Anfänger was das angeht aber habe mich schon eingearbeitet soweit wie es geht.

Re: Erste Schritte mit Logi.CAD 3

Posted: 14 Apr 2017, 20:19
by volker
Hi Ingo,
ab der nächsten Version von log.cad3 wird alles bequemer: Man muss dann nicht mehr umständlich die globals über Export aus PiCtory holen, sondern es wird in logi.cals einen Menüpunkt geben, bei dem man dann einfach klickt um um direkt ins PiCtory zu kommen. Wenn man da auf Speichern geht, werden die Globals dann direkt in das logi.cals Projekt übernommen.

Re: Erste Schritte mit Logi.CAD 3

Posted: 15 Apr 2017, 08:54
by Ingo
Hallo Volker,

das hört sich doch schon sehr gut an. Kann ich dann für Spätere Projekte ganz gut verwenden. Da mein Projekt im großen und ganzen Abgeschlossen ist und nurnoch feinheiten zu machen sind musste ich leider den umweg gehen.

P.S.
Es gibt nun auch die möglichkeit in LogiCad Zustände zu schreiben und zu lesen, nennen sich LOADRETAINDATA und SAVERETAINDATA. Somit kann man nun die Zustände vom REVPI Sichern bei einem Netzaufall und wieder zu lesen um den ist zustand wiederherstellen zu können. Vorrausgesetzt man hat eine USV mit Schaltausgang oder überwacht das ganze mit einem Kontakt und und einem ELKO *ggg


gruß
Ingo

Idee: (neues) USV - Retained Daten Modul

Posted: 18 Apr 2017, 10:02
by Walter
Hallo,

das Schönste für den Anwender wäre hier ein Hutschienenmodul, welches das kann.
Alternativ dazu eine Anleitung eines Anwenders, der sowas schon mal mit einem bereits erhältlichen Modul umgesetzt hat.
Aus meiner Sicht reicht eine 24Volt Hutschienen USV. Ein Digital-Eingang überwacht die Versorgungsspannung.

schöne Grüße
Walter

Re: Erste Schritte mit Logi.CAD 3

Posted: 18 Apr 2017, 13:16
by volker
Ja,ja, wenn wir doch einfach noch mehr Manpower hätten...
Also dann plaudere ich mal aus dem Nähkästle:
Wir haben seit Jahresbeginn ein Modul in Planung, welches nicht nur als USV mit LiPo (Alternativ mti Blei-Gel) an 24V arbeitet, sondern über die Pibridge dem System genaue zustandsdaten zur Stromversorgung ins Prozessabbild liefert. Wenn 24 V ausfallen, dann teilt das Modul dem Core mit, wie lange es noch bei der aktuellen Strombelastung Energie bereitstellen kann. Außerdem wird der Akku so überwacht, dass auch bei alterung die aktuelle kapazität immer sehr genau berechnet werdne kann. Der Core (oder ein logi.CAD3 ST-Programm) kann dann entscheiden, ob und wann er das System geordnet herunterfahren will.
Jtzt kommt aber der Clou an dem Modul: Es ist auch mit einer Watchdogschaltung ausgestattet: Wenn der core nicht alle n sekunden über dei piBridge ein WD-Reset zu dem Modul überträgt (n ist ein konfigurierbares Zeitintervall), dann dreht das USV-Modul dem Core den saft ab und sorgt so fü ein Reboot des Systems. Dieser "overall watchdog" ist die sicherste methode bei einem System, welches remote irgendwo in der Pampa steht, immer einen SSH Zugriff aus der Ferne zu behalten. Gerade für Wind- und Solar-Kraftwerke und ähnliche Installationen ist somit selbst bei einem graviereden Systemabsturz (z.B. memory leak in einer Softwarekomponente, das zu einem Systemcrash mit frozen system führt) sichergestellt, dass das System erreichbar bleibt.

Leider kann ich für die Markteinführung noch keinen Termin nennen. Aber wir wollen es definitiv noch dieses Jahr auf den Markt bringen.

Re: Erste Schritte mit Logi.CAD 3

Posted: 18 Apr 2017, 13:56
by Walter
Hallo Volker,

das klingt nach einer super Lösung, die kaum Wünsche offen lässt!

Danke und mfg
Walter

Re: Erste Schritte mit Logi.CAD 3

Posted: 19 Apr 2017, 22:59
by Ingo
Hallo Walter,

ein Erfolgserlebniss mit eurem neuen Baustein Save_Load_Retain.

Nach etwas Umbauen im FBS hat es nun doch ningehauen und ich kann getrostet mit einer USV "PP208 USV Phoenix Contact Quint DC-UPS 24V/10A" arbeiten.
Es hat zwar heute nochmal 3h gedauert bis es so Funtionierte wie es sollte aber das ergebniss kann sich sehen lassen. Er schreibt die Daten wie abgelaufene Zeit seit Start und Schreibt sie auch wieder zurück.
Hier mal eine Version zum Testen zum Baustein.

Code: Select all

FUNCTION_BLOCK RC_Glied
VAR_INPUT
	On : BOOL := FALSE; // Einschalten
	Off: BOOL := FALSE; // Ausschalten
	oldstate  : BOOL; // Alter Status
	I1		  : BOOL; // Eingang 1
	I2		  : BOOL; // Eingang 2
	I3		  : BOOL; // Eingang 3
END_VAR

VAR_OUTPUT
	Q_On :BOOL; // Ausgang 1 Einschalten
	Q_Off:BOOL; // Ausgang 2 Ausschalten
	Q_newstate : BOOL; // neuer Status
	
END_VAR
VAR
END_VAR
Q_On  := On or oldstate; // Schalte Ausgang an, wenn schalter auf an oder alter status auf an
// Schalte ausgang aus, wenn Wartung, winterbetrieb, hauptstrom_ok falsch schalter aus gedrückt   
Q_Off := (I1 OR I2 OR I3 OR Off ); 

Q_newstate := oldstate; // alter status auf neuen kopieren
IF ( Q_on ) THEN // wenn an, dann setze neuen status auf an => anlage läuft
  Q_newstate := true;
ELSE
  Q_Off := TRUE;
  return;
END_IF;

IF ( Q_off ) THEN  // Wenn aus, dann setze status auf stop, und schalte anlage auf aus
  Q_newstate := false;
  Q_On       := false;
END_IF;
END_FUNCTION_BLOCK
Die oldstate und Q_newstate wird mit einer Globale Merker Variable ( RC ) die in Der Retain Variable deklariert sein muss Belegt.

I1 - I3 sind Eingänge die zum Ausschalten benutzen werden können, wie z.b wenn störungen oder Fehler auftreten.
und hier der etwas abgeänderte LOAD_SAVE_RETAIN_DATA Baustein.

Code: Select all

FUNCTION_BLOCK Load_Save_Retain_Data { vNameAlignment := "center"; width := 500; bgColor := "lightblue"; }

  VAR_INPUT
  	WRITE : BOOL; // Zum Schreiben in die Persisten.csv / USV Anschluss oder anderen Schaltkontakt
  	READ  : BOOL; 
  	
  END_VAR


  
  VAR_OUTPUT
  	loadRetainRC : UDINT;
  	saveRetainRC : UDINT;
  	init          : BOOL;
  	term          : BOOL;
  	nrNonLoaded   : INT;
  END_VAR
  
  VAR
    loadRetainENO : BOOL;
    saveRetainENO : BOOL;
  END_VAR
  
  	RTSCycleInfo   ( Init => init, Term => term ); // RTSLoader abfragen ob start und ende
  	LoadRetainData ( EN := init, fileName := 'Persistent.csv', nrNonLoaded => nrNonLoaded, RC => loadRetainRC, ENO => loadRetainENO );
  	SaveRetainData ( EN := term, fileName := 'Persistent.csv', RC => saveRetainRC, ENO => saveRetainENO );
  	
  	if (READ) THEN // Wenn gelesen werden soll !!
  		LoadRetainData ( EN := init, fileName := 'Persistent.csv', nrNonLoaded => nrNonLoaded, RC => loadRetainRC, ENO => loadRetainENO );
  	END_IF;
   	if (WRITE) THEN // Wenn geschrieben werden soll dann schreiben !!
  		SaveRetainData ( EN := true, fileName := 'Persistent.csv', RC => saveRetainRC, ENO => saveRetainENO );
  	END_IF;

END_FUNCTION_BLOCK
Gruß
Ingo

wer Fehler findet kann sie ja verbessern und hier posten *fg

Re: Erste Schritte mit Logi.CAD 3

Posted: 19 Apr 2017, 23:11
by volker
Sehr schön...