PLC programmering

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Bittämjaren
Inlägg: 219
Blev medlem: 2 februari 2013, 17:50:41
Ort: BORÅS

Re: PLC programmering

Inlägg av Bittämjaren »

Magnus_K du har rätt, det går naturligtvis att göra på det sättet också.
Jag har använt modulen för att läsa signaler från intilliggande maskiner.
Ritningarna blir lite enklare också.
Micke_71
Inlägg: 947
Blev medlem: 18 september 2004, 22:47:23

Re: PLC programmering

Inlägg av Micke_71 »

Testade lite snabbt (15min) o göra som mitt förslag var. Den enkla lösningen ville inte fungera så provade flera andra varianter. Fick inte till något enkelt.

Problemet var att de räknare jag hade i mitt plc program inte hade en separata ingångar för upp och ner utan en count och en "upp/down" Provade att lägga på lite logik för att få till upp och ned ingångar men det ville sig inte ändå. Vart instabilt o hamnade på något sätt i självsvängning. Kanske bara PLC mjukvaran för jag kan inte för allt i världen se hur det kunde bli så.
Användarvisningsbild
ojz0r
Inlägg: 281
Blev medlem: 14 september 2007, 19:38:04
Ort: Småland

Re: PLC programmering

Inlägg av ojz0r »

Jag hade tänkt klistra in ett ladderdiagram men code taggen verkar inte alls vara mono space som den borde vara så det såg ut som skit.

Jag bifogar en txt fil istället, använd typsnitt Lucida Console i notepad så ser det okej ut.

Jag reserverar mig mot missar ;P
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
rawsezx
EF Sponsor
Inlägg: 165
Blev medlem: 29 juni 2005, 00:36:25
Ort: Sala
Kontakt:

Re: PLC programmering

Inlägg av rawsezx »

Dammar kanske av en gammal tråd i forat, men om du fortfarande söker efter funktionen och använder CoDeSys så kan du i sådana fall skapa ett eget funktionsblock och sedan använda dig av följande
i ST.

Kod: Markera allt

PROGRAM PLC_PRG
VAR
	OnePush					: R_TRIG;
	Timer_3_Sec_Reset		: TON;
	AddTime					: TIME;
	Timer_Set_Solenoid	: TP;
	RunCycle					: BOOL;
	Solenoid					: BOOL;
	Knapp						: BOOL;
END_VAR


(* Timer för att dra solenoid *)
Timer_Set_Solenoid(IN:=RunCycle, PT:=AddTime);

(* Utgång för solenoid, när Timern är aktiverad, och inom tidsramen så drar utgången *)
Solenoid := Timer_Set_Solenoid.Q;

(* R_TRIG funktion för att endast detekera en puls på knappen *)
OnePush(CLK := Knapp);

(* När Timern för solenoiden har räknat upp så nollställs timerfunktionen *)
RunCycle := Timer_Set_Solenoid.Q;

(* IF sats för att kontrollera att knappen har tryckts in och att tiden inte överstiger 50 sekunder *)
IF (OnePush.Q = TRUE) AND (Addtime < T#50s) THEN
	(* Adderar 10 sekunder per tryck *)
	AddTime := AddTime + T#10s;
	(* Om inte timern har startat så sätts den till aktiv *)
	RunCycle := TRUE;
END_IF;

(* Timer för att kontrollera hur länge knappen hålls in, 3 sekunder aktiverar timerns utgång *)
Timer_3_Sec_Reset(IN:=Knapp, PT:=T#3s);

(* När 3 sekunders timern är aktiverad och tiden uppfylld så nollställs allt. *)
IF Timer_3_Sec_Reset.Q = TRUE THEN
	(* Nollställer den akumlerade tiden *)
	AddTime := T#0s;
	(* Nollställer solenoiden och timern om denna är aktiverad *)
	RunCycle := FALSE;
END_IF;



Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: PLC programmering

Inlägg av Magnus_K »

Tack så mycket för din post raw. Ser fantastiskt lovande ut.
Än så länge har jag lyckats göra just den funktionen i CFC men jag börjar få lite ont om utrymme i min PLC så ST tar förhoppningsvis lite mindre plats... eller?

Ledsen om det tar tid innan jag svarar men det händer lite annat i livet just nu.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: PLC programmering

Inlägg av Magnus_K »

Hej och hå, här ska man inte stressa!

@ojz0r: Tack för att du tagit dig tid. Jag känner mig väldigt otacksam men jag kör nog på strukturerad text istället.

@rawsezx: Jag gjorde ett eget FB som du sa (framför allt för att flera knappar ska använda den här funktionen). Koden fungerade UTMÄRKT och precis det jag efterfrågade. Tack!
En liten efterfråga, vilket programspråk är det här egentligen? Jag har för mig att jag läste någonstans att det är Pascal man ska plugga om man ska skriva ST enligt IEC 61131-3, stämmer det eller har jag drömt?
Skriv svar