Timer Time On Delay

Timer Time On Delay
Marek Tarnawa
  • Rejestracja:około 2 lata
  • Ostatnio:około 2 lata
  • Postów:2
0

Cześć, chciałbym zapytać jak zrobić timer TON (Time On Delay) w języku ASCII C?

edytowany 1x, ostatnio: Riddle
Marius.Maximus
Wklej tutaj do wątku zadanie z informatyki to zobaczymy co da się zrobić, warto by było napisać tez czy masz na myśli Windows czy Linux
KS
  • Rejestracja:prawie 4 lata
  • Ostatnio:około 13 godzin
  • Postów:619
1

Nie moze być posix? ;-(

Kopiuj
time_t  pause_end = time() + sec
while( pause_end > time() );

Koszmarne prawda? ;-)

edytowany 3x, ostatnio: ksh
enedil
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 21 godzin
  • Postów:1027
1

Co to jest TON? Wybacz, twoje pytanie wygląda jak zadane przez początkującego, który założył że skoro termin został mu podany na jakichś zajęciach, to znaczy że jesult uniwersalnie zrozumiany. Z czasem będziesz więcej wiedział czy należy wyjaśniać użyte terminy, czy nie ma takiej potrzeby. Tutaj imo by się to przydało.

BG
Google podpowiada coś z działki PLC...
Marius.Maximus
  • Rejestracja:ponad 14 lat
  • Ostatnio:dzień
  • Postów:2100
0

A co to za dialekt ten "ASCII C" ?


--
Nie przyjmuję reklamacji za moje rady, używasz na własną odpowiedzialność.
Programowanie bez formatowania to jak chodzenie ze spodniami spuszczonymi na kostki. Owszem da się ale po pierwsze nie wygodne, po drugie nieprzyzwoicie wygląda.
Przed zaczęciem nowego wątku przeczytam problem XY
kq
Pewnie niekompatybilny z częścią mainframe'ów ;)
Marek Tarnawa
  • Rejestracja:około 2 lata
  • Ostatnio:około 2 lata
  • Postów:2
0

Dobra, mam takie zadanie:
Napisać program sterowania automatycznym otwieraniem i zamykaniem drzwi przesuwnych. Otwieraniem drzwi steruje wyjście o nazwie OTWIERANIE, zamykaniem drzwi steruje wyjście o nazwie ZAMYKANIE. Wyłącznik krańcowy otwarcia (KR_O=1) wyłącza OTWIERANIE, wyłącznik krańcowy zamknięcia (KR_Z=1) wyłącza zamykanie. Są dwa detektory ruchu: wewnątrz budynku (CZ_WEWN) i na zewnątrz budynku (CZ_ZEWN). Drzwi muszą pozostać otwarte, dopóki ktokolwiek znajduje się w pobliżu (CZ_WEWN=1 lub CZ_ZEWN=1). Jeśli detektory ruchu przez 20 s nie wykrywają nikogo w pobliżu, to należy drzwi zamknąć.

Ma to być napisane w języku ASCII C, napisany kod kompiluje się w PACSystems C Toolkit i później w PAC Machine Edition można ten kod odpalić. Mój kod wygląda tak, nie mam tej części czasowej, której nie wiem jak zrobić:

Kopiuj
#include "PACRXPlc.h" 
#include "stdio.h"
#include "time.h"

// CZ_WEWN (%I00001);	CZ_ZEWN (%I00002);	KR_O (%I00003);	KR_Z (%I00004);	OTWIERANIE (%Q00001);	ZAMYKANIE (%Q00002)

int GefMain(void)
{
	int CZ_WEWN, CZ_ZEWN, KR_O, KR_Z;
	

	CZ_WEWN = BIT_TST_I(1);
	CZ_ZEWN = BIT_TST_I(2);
	KR_O = BIT_TST_I(3);
	KR_Z = BIT_TST_I(4);

	if((CZ_WEWN == 1) | (CZ_ZEWN == 1))	{BIT_SET_Q(1); BIT_CLR_Q(2);}
   // tu ta część z czasowa
	if((CZ_WEWN == 0) & (CZ_ZEWN == 0) & (KR_O ==1) &(odliczanie 20s - nie wiem jak to zrobić))	{BIT_CLR_Q(1); BIT_SET_Q(2);}
 
	if(KR_O == 1)	{BIT_CLR_Q(1);}
	if(KR_Z == 1)	{BIT_CLR_Q(2);}
}

Jeżeli robiłbym to na Ladderze to wstawiam sobie normalnie timer TON, ustawiam czas na 20 sekund i gdy CZ_WEWN=0, CZ_ZEWN=0 i KR_O=1 to po 20 sekundach setuje mi się wyjście Q2.
Znalazłem informacje że jest biblioteka time.h. Przeglądałem "C Programmer's Toolkit for PACSystems User Manual", ale nic konkretnego o timerach nie udało mi się znaleźć.
Jak widzicie za bardzo nie umiem programować w C, ale ten program jakiś trudny nie jest, jak ktoś ma pomysł jak taki timer można zrobić, albo coś podobnego co działałoby podobnie, to będę wdzięczny.

edytowany 1x, ostatnio: MarekR22
Marius.Maximus
  • Rejestracja:ponad 14 lat
  • Ostatnio:dzień
  • Postów:2100
0
  1. ANSI C ?
  2. Czytaj dokumentacje do platformy a nie tylko C bo jak nie wiesz jak Twoja platforma działa to nie masz szans coś napisać

--
Nie przyjmuję reklamacji za moje rady, używasz na własną odpowiedzialność.
Programowanie bez formatowania to jak chodzenie ze spodniami spuszczonymi na kostki. Owszem da się ale po pierwsze nie wygodne, po drugie nieprzyzwoicie wygląda.
Przed zaczęciem nowego wątku przeczytam problem XY

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.