Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update for electrical interlocking and other improvements #5

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .env
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
MAXIMUM_POSITION=270000
USER_CONFIG=settings.json
IP_ADDRESS=192.168.0.10
IP_ADDRESS=192.168.0.157
DEFAULT_REQUESTED_POSITION=180000
STANDBY_POSITION=120000
SPEED=20000
SPEED=7500
SPEED_OUT=20000
SOFTWARE_VERSION=2.0
382 changes: 160 additions & 222 deletions dmc/merlin_new.dmc → dmc/merlin0.dmc
Original file line number Diff line number Diff line change
@@ -1,222 +1,160 @@
#AUTO
OB1, 1

AG0
YA 16
SH
WT50

merspeed=20000
merspeec=20000
merin=0
lmerin=0
merstat=0
meroff=0
decel=2000000
req_pos=0
stdbypos=0

IF (_LRX=0)
MG "Moving off limit"
JS#HOME2
ENDIF

JS#HOME
JS#PNEU

AC1000000
DC=decel

JP#LOOP

#LOOP
'MG "Loop"
IF (merin <> lmerin)
lmerin=merin
'MG "Mer changed"
'MG merin
IF (merin=1)
IF ((@IN[1]=0)
OB1, 1
merin=0
ELSE
JS #MOIN
ENDIF
ELSE
IF (merin=2)
IF ((@IN[1]=0)
OB1, 1
merin=0
ELSE
JS #STP
ENDIF
ELSE
IF (merin=3)
IF ((@IN[1]=0)
OB1, 1
merin=0
ELSE
JS #STDBY
ENDIF
ELSE
JS #HOME
ENDIF
ENDIF
ENDIF

JS#SETOP
ENDIF
WT1000
JP#LOOP
EN


#STP
'MG "Stop"
#Q
IF (merin <> 2)
JS #LOOP
ENDIF
JP#Q, _LRX = 0, _LFX = 0
MO
merstat=3
'MG "Stopped"
EN

#HOME
'MG "move out"
merstat=2
SH
DCX=decel
JGX=-1*merspeec
BGX
#L
IF (merin <> 0)
STX
AMX
JS #LOOP
ENDIF
JP#L, _LRX = 1
STX
AMX
#HOME2
DCX=67107840
JGX=500
BGX
#M
IF (merin <> 0)
DCX=decel
STX
AMX
JS #LOOP
ENDIF
JP#M, _LRX = 0
STX
AMX
DP0
MO
merstat=0
MG "Homed"
EN

#MOIN
'MG "move in"
merstat=2
SH
DCX=decel
JGX=merspeed
PA req_pos
BGX
'MF req_pos
#A
IF (merin <> 1)
STX
AMX
JS #LOOP
ENDIF
JP#A, _BGX = 1
AMX
merstat=1
'MG "Moved"
MO
EN

#STDBY
'MG "Going to standby"
merstat=2
SH
DCX=decel
JGX=merspeed
PA stdbypos
BGX
#AA
IF (merin <> 3)
STX
AMX
JS #LOOP
ENDIF
JP#AA, _BGX = 1
AMX
merstat=4
'MG "In Standby"
MO
EN

#ININT
'MG "Int"
WT10
JS#SETOP

IF @IN[1]=1
trigger=0
ELSE
trigger=1
ENDIF
ZS
II1,,,trigger
IF ((merin=0)&(merstat=2))
JS#HOME
lmerin=0
JS#SETOP
ENDIF
JP#LOOP
EN
RI0

#PNEU
JS#SETOP
IF @IN[1]=1
trigger=0
ELSE
trigger=1
ENDIF
II1,,,trigger
EN

#SETOP
IF ((@IN[1]=0)&(_RPA>10))
OB1, 1
IF (merin=1)
STX
AMX
merin=0
ELSE
IF (merin=2)
STX
AMX
merin=0
ELSE
IF (merin=3)
STX
AMX
merin=0
ENDIF
ENDIF
ENDIF
ELSE
IF ((merin=0)&(merstat=2))
WT2000
ENDIF
OB1, 0
ENDIF
EN
#AUTO

safe=0
unsafe=1



AG0
YA 16
SH
WT50

merspeed=7500
merspeec=20000
merin=0
lmerin=0
merstat=0
meroff=0
decel=2000000
req_pos=0
stdbypos=0

IF (_LRX=0)
MG "Moving off limit"
JS#HOME2
ENDIF

JS#HOME
'JS#PNEU

AC1000000
DC=decel

JP#LOOP

#LOOP
'MG "Loop"
IF (merin <> lmerin)
lmerin=merin
'MG "Mer changed"
'MG merin
IF (merin=1)

JS #MOIN

ELSE
IF (merin=2)
JS #STP
ELSE
IF (merin=3)
JS #STDBY
ELSE
JS #HOME
ENDIF
ENDIF
ENDIF
'JS#SETOP
ENDIF
WT1000

ENDIF
JP#LOOP
EN


#STP
'MG "Stop"
#Q
IF (merin <> 2)
JS #LOOP
ENDIF
JP#Q, _LRX = 0, _LFX = 0
MO
merstat=3
'MG "Stopped"
EN

#HOME
'MG "move out"

merstat=2
SH
DCX=decel
JGX=-1*merspeec
BGX
#L
IF (merin <> 0)
STX
AMX
JS #LOOP
ENDIF
JP#L, _LRX = 1
STX
AMX
#HOME2
DCX=67107840
JGX=500
BGX
#M
IF (merin <> 0)
DCX=decel
STX
AMX
JS #LOOP
ENDIF
JP#M, _LRX = 0
STX
AMX
DP0
MO
merstat=0
MG "Homed"
EN

#MOIN
'MG "move in"

merstat=2
SH
DCX=decel
JGX=merspeed
PA req_pos
BGX
'MF req_pos

#A
IF (merin <> 1)
STX
AMX
JS #LOOP
ENDIF
JP#A, _BGX = 1
AMX
merstat=1
'MG "Moved"
MO

EN

#STDBY
'MG "Going to standby"
merstat=2
SH
DCX=decel
JGX=merspeed
PA stdbypos
BGX
#AA
IF (merin <> 3)
STX
AMX
JS #LOOP
ENDIF
JP#AA, _BGX = 1
AMX
merstat=4
'MG "In Standby"
MO
EN

Loading