Opcja pierwsza:
OUT_LIGHT_SPIZARNIA := NOT IN_KONTAKTRON_SPIZARNIA;
jeżeli kontaktron spiżarni jest rozwarty (NOT ...) to OUT_LIGHT_SPIZARNIA ma być stanem wysokim. Bez "NOT" działało by na odwrót, kontaktron zwarty, światło się świeci.
Opcja druga:
Inna możliwość, to wychwycenie zbocza narastającego i opadającego, czyli momentów przełączenia stanu.
Musisz dodać dwie definicje nowych zmiennych:
spizarnia_rtrig : R_TRIG;
spizarnia_ftrig : F_TRIG;
Następnie w kodzie przypisać wejście kontaktrona jako sygnał sterujący dla R_TRIG i F_TRIG:
spizarnia_rtrig ( CLK := IN_KONTAKTRON_SPIZARNIA);
spizarnia_ftrig ( CLK := IN_KONTAKTRON_SPIZARNIA);
Dalej w kodzie musisz użyć dwóch warunków do wychwycenia momentów przełączenia kontaktrona:
IF (spizarnia_rtrig.Q) THEN
(* .... kontaktron przechodzi w stan wysoki *)
END_IF;
IF (spizarnia_ftrig.Q) THEN
(* .... kontaktron przechodzi w stan niski *)
END_IF;
Zwróć uwagę, że warunki "IF" będą wykonane tylko JEDEN raz w momencie przełączenia stanu.