Standard Logic

LANGUAGE: Karel

CREATED: 2019-10-15

MODIFIED: 2019-11-21

CODE    tag icon

/PROG  BGLOGIC1
/ATTR
OWNER  = MNEDITOR;
COMMENT  = “StandardLogic”;
PROG_SIZE = 2679;
CREATE  = DATE 19-10-15  TIME 12:57:46;
MODIFIED = DATE 19-11-21  TIME 11:34:16;
FILE_NAME = BGLOGIC1;
VERSION  = 0;
LINE_COUNT = 73;
MEMORY_SIZE = 3079;
PROTECT  = READ_WRITE;
TCD:  STACK_SIZE = 0,
TASK_PRIORITY = 50,
TIME_SLICE = 0,
BUSY_LAMP_OFF = 0,
ABORT_REQUEST = 0,
PAUSE_REQUEST = 0;
DEFAULT_GROUP = *,*,*,*,*;
CONTROL_CODE = 00000000 00000000;
/APPL

AUTO_SINGULARITY_HEADER;
ENABLE_SINGULARITY_AVOIDANCE   : TRUE;
/MN
1:  –eg:Copyright (c) 2019 DIY-Robotics.com All rights reserved. ;
2:  –eg: ;
3:  –eg:Redistribution and use in source and binary forms, with or without ;
4:  –eg:modification, are permitted provided that the following conditions
:  are ;
5:  –eg:met: ;
6:  –eg: ;
7:  –eg:Redistributions of source code must retain the above copyright ;
8:  –eg:notice, this list of conditions and the following disclaimer. ;
9:  –eg:Redistributions in binary form must reproduce the above ;
10:  –eg:copyright notice, this list of conditions and the following
:  disclaimer ;
11:  –eg:in the documentation and/or other materials provided with the ;
12:  –eg:distribution. ;
13:  –eg:Neither the name of DIY-Robotics.com nor the names of its ;
14:  –eg:contributors may be used to endorse or promote products derived from ;
15:  –eg:this software without specific prior written permission. ;
16:  –eg: ;
17:  !Stop Production ;
18:  IF (DI[4:StopBtn] AND UO[3:Prg running]),F[14:StopProdReq]=(ON) ;
19:  IF (!UO[3:Prg running] AND !UO[4:Prg paused]),F[14:StopProdReq]=(OFF) ;
20:   ;
21:  !STATUS FLAG ;
22:  F[10:MemTeachOff]=(SO[7:TP enabled]) ;
23:  F[5:ModeStepEnbl]=($SSR.$SingleStep) ;
24:  IF (!UO[3:Prg running] AND !UO[4:Prg paused]) THEN ;
25:  F[11:RobotAborted]=(ON) ;
26:  ELSE ;
27:  F[11:RobotAborted]=(OFF) ;
28:  ENDIF ;
29:  F[90:UnlockProdChange]=(!UO[3:Prg running] AND UO[7:At perch]) ;
30:   ;
31:  –eg:Reset des flags ;
32:  IF (F[1024:UIStart]),F[1024:UIStart]=PULSE,0.5sec ;
33:  IF (F[1023:UIReset] AND !DI[3:ResetBtn]),F[1023:UIReset]=PULSE,0.5sec ;
34:  IF (F[1022:UIStop]),F[1022:UIStop]=PULSE,0.5sec ;
35:   ;
36:  –eg:Calcul des flags de pulse ;
37:  IF (TIMER[19]>.5) THEN ;
38:  F[8:Pulse0.5s]=(!F[8:Pulse0.5s]) ;
39:  $TIMER[19].$TIMER_VAL=0 ;
40:  ENDIF ;
41:  IF (TIMER[19]>.25) THEN ;
42:  F[9:Pulse0.25s]=(ON) ;
43:  ELSE ;
44:  F[9:Pulse0.25s]=(OFF) ;
45:  ENDIF ;
46:   ;
47:  –eg:Ajustement des variables de vitesse pour les macros ;
48:  IF (SO[7:TP enabled]),$SCR.$RUNOVLIM=(50) ;
49:  IF (!SO[7:TP enabled]),$SCR.$RUNOVLIM=(100) ;
50:   ;
51:  –eg:Declaration du flag de Space Check pour la Machine1 ;
52:  F[3:SpaceChk1Enb]=($RSPACE1[1].$ENABLED) ;
53:  –eg:Declaration du flag de Space Check pour la Machine2 ;
54:  F[4:SpaceChk2Enb]=($RSPACE1[2].$ENABLED) ;
55:   ;
56:  –eg:=== EUROMAP 67 === ;
57:  –eg:=== MACHINE 1 === ;
58:  IF (DI[214:PressInAuto] AND DI[209:MoldOpen] AND F[1:NewPartMachine1]),DO[210:EnbMoldClose]=(OFF) ;
59:  IF (DI[214:PressInAuto] AND DI[215:MoldClosed]),DO[212:EnbEjectorBack]=(OFF) ;
60:  IF (DI[214:PressInAuto] AND DI[215:MoldClosed]),DO[213:EnbEjectorFwd]=(OFF) ;
61:  IF (DI[214:PressInAuto] AND DI[215:MoldClosed] AND !DI[209:MoldOpen]),F[1:NewPartMachine1]=(ON) ;
62:  IF (UO[7:At perch] AND DO[209:MoldAreaFree] AND !UO[3:Prg running] AND !DO[511:CtrlAutoMode]),F[1:NewPartMachine1]=(OFF) ;
63:   ;
64:  IF (UO[7:At perch] AND DO[209:MoldAreaFree] AND !UO[3:Prg running] AND !DO[511:CtrlAutoMode]),DO[210:EnbMoldClose]=(ON) ;
65:  IF (UO[7:At perch] AND DO[209:MoldAreaFree] AND !UO[3:Prg running] AND !DO[511:CtrlAutoMode]),DO[212:EnbEjectorBack]=(ON) ;
66:  IF (UO[7:At perch] AND DO[209:MoldAreaFree] AND !UO[3:Prg running] AND !DO[511:CtrlAutoMode]),DO[213:EnbEjectorFwd]=(ON) ;
67:  IF (UO[7:At perch] AND DO[209:MoldAreaFree] AND !UO[3:Prg running] AND !DO[511:CtrlAutoMode]),DO[214:CorePull1Pos1]=(ON) ;
68:  IF (UO[7:At perch] AND DO[209:MoldAreaFree] AND !UO[3:Prg running] AND !DO[511:CtrlAutoMode]),DO[215:CorePull1Pos2]=(ON) ;
69:  IF (UO[7:At perch] AND DO[209:MoldAreaFree] AND !UO[3:Prg running] AND !DO[511:CtrlAutoMode]),DO[216:CorePull2Pos1]=(ON) ;
70:  IF (UO[7:At perch] AND DO[209:MoldAreaFree] AND !UO[3:Prg running] AND !DO[511:CtrlAutoMode]),DO[217:CorePull2Pos2]=(ON) ;
71:   ;
72:  !Sample Respect ;
73:  IF (DI[3:ResetBtn] AND !DI[209:MoldOpen] AND UO[3:Prg running]),F[15:SampleRequest]=(ON) ;
/POS
/END