Main.st 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. PROGRAM _INIT
  2. RTInfo_0(enable:=1);
  3. END_PROGRAM
  4. PROGRAM _CYCLIC
  5. (* #############################################################################################################
  6. ############################# Stopper Tisch 3 #####################################
  7. ############################################################################################################# *)
  8. IF gTisch_3.Cmd.Stopper = KMD_AUSFAHREN THEN
  9. gTisch_3.Outputs.Stopper_einfahren := FALSE;
  10. gTisch_3.Times.Stopper_AusZeit := TRUE;
  11. gTisch_3.Times.Stopper_EinZeit := FALSE;
  12. gTisch_3.Cmd.Stopper := KMD_FERTIG;
  13. gTisch_3.Status.Stopper := STATUS_BUSY;
  14. END_IF
  15. IF gTisch_3.Cmd.Stopper = KMD_EINFAHREN THEN
  16. gTisch_3.Outputs.Stopper_einfahren := TRUE;
  17. gTisch_3.Times.Stopper_AusZeit := FALSE;
  18. gTisch_3.Times.Stopper_EinZeit := TRUE;
  19. gTisch_3.Cmd.Stopper := KMD_FERTIG;
  20. gTisch_3.Status.Stopper := STATUS_BUSY;
  21. END_IF
  22. (* Status, Zylinderposition ausgeben *)
  23. IF (gTisch_3.Inputs.Stopper_eingefahren = TRUE) AND (gTisch_3.Inputs.Stopper_ausgefahren = FALSE) THEN
  24. gTisch_3.Status.Stopper := STATUS_EINGEFAHREN;
  25. ELSIF (gTisch_3.Inputs.Stopper_eingefahren = FALSE) AND (gTisch_3.Inputs.Stopper_ausgefahren = TRUE) THEN
  26. gTisch_3.Status.Stopper := STATUS_AUSGEFAHREN;
  27. ELSE
  28. gTisch_3.Status.Stopper := STATUS_BUSY;
  29. END_IF
  30. (* Zeitüberwachung Eingefahren*)
  31. IF (gTisch_3.Times.Stopper_EinZeit = TRUE AND gTisch_3.Status.Stopper <> STATUS_EINGEFAHREN) OR (gTisch_3.Times.Stopper_AusZeit = TRUE AND gTisch_3.Status.Stopper <> STATUS_AUSGEFAHREN) THEN
  32. gTisch_3.Times.Stopper_ZeitRun := gTisch_3.Times.Stopper_ZeitRun + (RTInfo_0.cycle_time/1000);
  33. IF (gTisch_3.Times.Stopper_EinZeit = TRUE AND gTisch_3.Status.Stopper = STATUS_EINGEFAHREN)
  34. OR (gTisch_3.Times.Stopper_AusZeit = TRUE AND gTisch_3.Status.Stopper = STATUS_AUSGEFAHREN)THEN
  35. (* lPortal_Mittelanschlag_EinZeit := FALSE;
  36. lPortal_Mittelanschlag_AusZeit := FALSE; *)
  37. gTisch_3.Times.Stopper_ZeitRun := 0;
  38. END_IF
  39. IF gTisch_3.Times.Stopper_ZeitRun >= 5000 THEN
  40. gTisch_3.Status.Stopper := STATUS_ERROR;
  41. IF gTisch_3.Times.Stopper_EinZeit = TRUE THEN
  42. gError[0] := 1;
  43. END_IF
  44. IF gTisch_3.Times.Stopper_AusZeit = TRUE THEN
  45. gError[1] := 1;
  46. END_IF
  47. END_IF
  48. ELSE
  49. gTisch_3.Times.Stopper_ZeitRun := 0;
  50. END_IF
  51. (* #############################################################################################################
  52. ############################# VorStopper Tisch 3 #####################################
  53. ############################################################################################################# *)
  54. IF gTisch_3.Cmd.Vorstopper = KMD_AUSFAHREN THEN
  55. gTisch_3.Outputs.Vorstopper_einfahren := FALSE;
  56. gTisch_3.Times.Vorstopper_AusZeit := TRUE;
  57. gTisch_3.Times.Vorstopper_EinZeit := FALSE;
  58. gTisch_3.Cmd.Vorstopper := KMD_FERTIG;
  59. gTisch_3.Status.Vorstopper := STATUS_BUSY;
  60. END_IF
  61. IF gTisch_3.Cmd.Vorstopper = KMD_EINFAHREN THEN
  62. gTisch_3.Outputs.Vorstopper_einfahren := TRUE;
  63. gTisch_3.Times.Vorstopper_AusZeit := FALSE;
  64. gTisch_3.Times.Vorstopper_EinZeit := TRUE;
  65. gTisch_3.Cmd.Vorstopper := KMD_FERTIG;
  66. gTisch_3.Status.Vorstopper := STATUS_BUSY;
  67. END_IF
  68. (* Status, Zylinderposition ausgeben *)
  69. IF (gTisch_3.Inputs.Vorstopper_eingefahren = TRUE) AND (gTisch_3.Inputs.Vorstopper_ausgefahren = FALSE) THEN
  70. gTisch_3.Status.Vorstopper := STATUS_EINGEFAHREN;
  71. ELSIF (gTisch_3.Inputs.Vorstopper_eingefahren = FALSE) AND (gTisch_3.Inputs.Vorstopper_ausgefahren = TRUE) THEN
  72. gTisch_3.Status.Vorstopper := STATUS_AUSGEFAHREN;
  73. ELSE
  74. gTisch_3.Status.Vorstopper := STATUS_BUSY;
  75. END_IF
  76. (* Zeitüberwachung Eingefahren*)
  77. IF (gTisch_3.Times.Vorstopper_EinZeit = TRUE AND gTisch_3.Status.Vorstopper <> STATUS_EINGEFAHREN) OR (gTisch_3.Times.Vorstopper_AusZeit = TRUE AND gTisch_3.Status.Vorstopper <> STATUS_AUSGEFAHREN) THEN
  78. gTisch_3.Times.Vorstopper_ZeitRun := gTisch_3.Times.Vorstopper_ZeitRun + (RTInfo_0.cycle_time/1000);
  79. IF (gTisch_3.Times.Vorstopper_EinZeit = TRUE AND gTisch_3.Status.Vorstopper = STATUS_EINGEFAHREN)
  80. OR (gTisch_3.Times.Vorstopper_AusZeit = TRUE AND gTisch_3.Status.Vorstopper = STATUS_AUSGEFAHREN)THEN
  81. (* lPortal_Mittelanschlag_EinZeit := FALSE;
  82. lPortal_Mittelanschlag_AusZeit := FALSE; *)
  83. gTisch_3.Times.Vorstopper_ZeitRun := 0;
  84. END_IF
  85. IF gTisch_3.Times.Vorstopper_ZeitRun >= 5000 THEN
  86. gTisch_3.Status.Vorstopper := STATUS_ERROR;
  87. IF gTisch_3.Times.Vorstopper_EinZeit = TRUE THEN
  88. gError[0] := 1;
  89. END_IF
  90. IF gTisch_3.Times.Vorstopper_AusZeit = TRUE THEN
  91. gError[1] := 1;
  92. END_IF
  93. END_IF
  94. ELSE
  95. gTisch_3.Times.Vorstopper_ZeitRun := 0;
  96. END_IF
  97. END_PROGRAM
  98. PROGRAM _EXIT
  99. (* Insert code here *)
  100. END_PROGRAM