Seite 1 von 1

Blinklampe mit C#

Verfasst: 10 Jul 2022, 12:18
von perfectgeorg
Hallo,
ich bin dabei PLC-Lab mit C# zu erlernen. Im Projekt möchte ich eine
blinkende Lampe programmieren. Wenn ein Endschalter (Öffner) be
tätigt wird (bei mir Get_DebugS1() ) soll die Lampe (Set_DebugLampe )
blinken. Wollte es mit delay versuchen, aber beim using System.Threading.Task
bekomme ich schon eine Fehlermeldung.
Kann mir jemand helfen?

Re: Blinklampe mit C#

Verfasst: 10 Jul 2022, 17:09
von Weiss_MHJ
Hallo,

das C#-Script wir ja im Zyklus von PLC-Lab aufgerufen und bearbeitet. Ein delay ist dabei keine gute Idee, da dies den gesamten Zyklus verlangsamt.
Auf der Hilfeseite von PLC-Lab zu C# finden Sie verschiedene Beispiel, dabei sind auch Beispiele dabei, bei denen Zeitfunktionen zum Einsatz kommen:
https://www.mhj-wiki.de/de/plc-lab/CSha ... example_03

Gruß

Re: Blinklampe mit C#

Verfasst: 10 Jul 2022, 18:39
von Jonathan
Hallo,

hier ein Beispiel für eine Takterzeugung mitels DateTime:

Code: Alles auswählen

using System;
using Mhj.Plc_Lab.Scripting;

namespace Mhj.Plc_Lab.Scripting {
	public class PlcLabScript {
		bool Takt=true; 
		DateTime dt=DateTime.Now;		
		/// <summary>
		/// This method is called cyclically
		/// </summary>
		public void Loop() {
			if (DateTime.Now - dt > TimeSpan.FromMilliseconds(500)){ //Zeitvergleich T=500ms
				Takt=!Takt; //toggle Takt
				dt=DateTime.Now; //aktuelle Zeit merken
			}
			//
			//Fill in your code here
			//

			//write a message to the output window
			if (G.LoopCount == 0) {
				G.DebugMessage("FIRST LOOP!");
			}			
			Set_IMLampe_2(Takt); //Takt der Lampe zuweisen
		}

		//
		//Defined read functions
		//
		////DO NOT CHANGE THE FOLLOWING LINE
		//{{{PLC-Lab-Read}}}

		//
		//Defined write functions
		//
		////DO NOT CHANGE THE FOLLOWING LINE
		//{{{PLC-Lab-Write}}}
		void Set_IMLampe_2(bool value) { G.Write("IM.Lampe_2", value); }

		//
		//DO NOT CHANGE THE FOLLOWING LINES
		//
		public PlcLabScriptHost G;
		public void Init(PlcLabScriptHost host) {
			G = host;
		}
	}
}


Re: Blinklampe mit C#

Verfasst: 11 Jul 2022, 11:57
von perfectgeorg
Danke für die schnelle Antwort.
Habe es hinbekommen. Ich sende mal das
Projekt mit dem C#-Code. Vielleicht ist der Code zu
vereinfachen?! Da ich beim Lernen bin wäre ich dankbar!