Blinklampe mit C#

Fragen zur Software PLC-Lab
Antworten
perfectgeorg
SPSTreff-Fortgeschrittener User
Beiträge: 14
Registriert: 26 Jul 2010, 17:01

Blinklampe mit C#

Beitrag 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?

Benutzeravatar
Weiss_MHJ
Site Admin
Beiträge: 639
Registriert: 13 Apr 2010, 16:34
Kontaktdaten:

Re: Blinklampe mit C#

Beitrag 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ß

Jonathan
SPSTreff-User
Beiträge: 4
Registriert: 20 Nov 2021, 15:36

Re: Blinklampe mit C#

Beitrag 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;
		}
	}
}


perfectgeorg
SPSTreff-Fortgeschrittener User
Beiträge: 14
Registriert: 26 Jul 2010, 17:01

Re: Blinklampe mit C#

Beitrag 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!
Dateianhänge
Kap 5.2 Bahnübergang mit C#.zip
(1013.25 KiB) 25-mal heruntergeladen

Antworten