Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "s_tankready" := "i_tanklevel":P >= 17632;
- CASE "s_state" OF
- "state_wait":
- IF "i_athold" THEN
- "s_state" := "state_incoming";
- END_IF;
- "state_incoming":
- IF "s_statetimer" THEN
- "s_targetlevel" := "i_tanklevel":P - "ui_leveldiff" * 44 / 5;
- "s_state" := "state_fill";
- END_IF;
- "state_fill":
- IF "i_tanklevel":P <= "s_targetlevel" THEN
- "s_state" := "state_outgoing";
- "s_bottlecount" := "s_bottlecount" + 1;
- END_IF;
- "state_outgoing":
- IF "i_atend" THEN
- "s_state" := "state_idle";
- END_IF;
- "state_idle":
- IF "s_tankready" AND NOT "i_atend" THEN
- "s_state" := "state_wait";
- END_IF;
- END_CASE;
- "IEC_Timer_0_DB".TON(IN:="s_state" = "state_incoming",
- PT:=T#1s,
- Q=>"s_statetimer");
- "o_belt" := "s_state" <> "state_fill" AND "s_state" <> "state_idle";
- "o_hold" := "s_state" = "state_outgoing";
- "o_fill" := "s_state" = "state_fill" AND "i_athold";
- "o_supply" := "s_state" = "state_idle" AND NOT "s_tankready";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement