Wie sieht eine Arbeitsliste aus?
There are no translations available.

 

Meine Arbeitslisten (jobs) sind neben der Objektbasiertheit DAS wesentliche Element meiner Software. Sie haben mit dem Bildschirm interaktiv einen Ablauf Schritt für Schritt definiert und dieser steht dann für einen automatischen Lauf zur Verfügung.

Die Prozesse sind in mehrere Arbeitslisten aufgeteilt. Alles was doppelt gemacht werden soll, ist eine Arbeistliste, die von einer anderen aufgerufen werden kann.

Es folgt ein Beispiel zum Start der Massenspektrometer-Datenaufnahme an der Karbonatanlage. Sie läuft in einer Endlosschleife  und immer, wenn der Karbo-Prozess eine Probe bereit hat, signalisiert er dies dieser Arbeitsliste (Schritt: Handler doGetRemoteStatus "","","1") Minütlich wird von diesem Unterprogramm (doGetRemoteStatus) mit der Karbonatanlage kommuniziert und synchronisiert.

Und der Punkt (Job 251_Karbo_Datenaufnahme 365 14679) ruft die Arbeitsliste für die Massenspektrometermessung auf. Die Karbonatanlage präpariert inzwischen die nächste Probe.

Das Schlüsselwort Handler ist der Aufruf eines in Hypertalk/Transscript geschriebenen Programms. So können beliebige eigene "lower-level" Routinen von Ihnen eingebunden werden.

Anmerkung: mein Webeditor löscht mir immer die von meinem Programm gemachten Einrückungen ind den IFs ind REPEATs

 

hier ein Pfad zu einigen gelisteten AL

 

 

 

Start_251_Karbo 366 14679 23.04.2008 8:32
-- Beginn eines Meßvorgangs
myWaitDoReset = 1
put eventStop
Handler doRemoteProgramInit
Job 251_SyS_SetVars 478 14679
myRwValue = 8
myRefPulsTime = 5
myDoSecRef = 0
myRemoteDevice = "nn"
-- myRefTime = 21600
myTemp = time_of_ReferenceInlet
-- check for new refgas
myDoRef = 1
IF myTemp > myRefTime
ask ,es müsste wieder ReferenzGas eingelassen werden?
-- nein
myDoRef = 0
end ask
-- einlassen
IF myDoRef = 1
Handler doFortschritt "start zero","Referenzgas-Einlass",
Job 251_Sys_AL_Refgas_Inlet 382 14679
END IF
END IF
REPEAT
Handler doFortschritt "start zero","Messung fertig, Abfrage der Anlagen nach Probengas!",
Handler doLockLoop
Handler doRemoteSet warte
Handler doGetRemoteStatus "","","1"
IF myRemoteDevice = "HyperCarbo"
Handler doRemoteSet select
REPEAT
Handler doFortschritt "","Probe im Kühlfinger, warte auf freien anderen Kühlfinger",
Handler doGetRemoteStatus "6","",""
IF myR_Karbo = "go"
EXIT repeat
END IF
WAIT 2 seconds
IF mySampleInWork < 25
CLOSE C-KF_L1 Kapi,400
ELSE
CLOSE C-KF_L2 Kapi,402
END IF
WAIT 2 seconds
END repeat
IF myRemoteDevice = "HyperCarbo"
Handler  doRemoteSet "carbo"
Job 251_Karbo_Datenaufnahme 365 14679
myRemoteDevice = 1
END IF
END IF
Handler doCompact
IF myDoSecRef = 1
Job 251_Ref-Ext 464 14679
myDoSecRef = 0
END IF
Job 251_Systemtest 364 14679
-- IF myRemoteDevice = 1
--   myRemoteDevice = nn
--   Job SYS_MS_Check 458 14679
-- END IF
Handler doFortschritt "","Messung fertig, warte 15 Sekunden bis zur nächsten Proben-Abfrage",
Handler doRemoteSet warte
myWaitSeconds = 15
-- Job SYS_DE_wait 452 14679
Handler doFortschritt "end","",
-- myVar = ( line 63 of fld id 102 )
Handler put doCheckVar ("myVar",line 63 of fld id 102,"") into myDummy
IF myVar > 650
Handler doDisplayError "Die Referenz-Gas-Masse 40 (Luft) ist zu hoch = myVar mV","",red
END IF
IF myVar > 5000
ask ,Die Referenz-Gas-Masse 40 = Luft = myVar mV ist zu groß!
STOP
END IF
END repeat






es folgt die AL zur Probenübernahme:

251_Karbo_Datenaufnahme 365 14679 08.05.2007 13:37
-- misst gas
myDoShowErr = 0
myTO1 to zero
myTO2 to zero
myTO3 to zero
myTO4 to zero
Job 251_Systemtest 364 14679
--  Handler doKarboValveStatus "","","399 446 286 274 448 401" 
Handler doCalculateKarboVolt
Handler doFortSchritt "", "gerechneter Probendruck = myCalcVolt [V]"
myWaitSeconds = theSystem14
myTemp = 0
myKf1ExFaktor = 5
myKf2ExFaktor = 3.7
myKf1ExGFaktor = 3.5
myKf2ExGFaktor = 4.1
myKFStayTime = 180
myMaxVolt = 6.5
myExpMarker = 0.95
OPEN V11 Sa,21
WAIT 5 seconds
Handler doGetCupBellow SA
myTO1 = myCupValue
OPEN V21 Ref,19
IF mySampleInWork < 25
myKfFaktor = 0.88
IF myCalcVolt > myMaxVolt
myCalcVolt = ( myCalcVolt / myKf1ExFaktor  )
Handler doFortSchritt "", "kleine Expansion = myCalcVolt [V]"
CLOSE C-Expansion L1,287
REPEAT
OPEN C-KF_L1 Exp.,447
WAIT 5 seconds
CLOSE C-KF_L1 Exp.,447
WAIT 5 seconds
myTemp INCR 1
IF myTemp > 7
EXIT repeat
END IF
END repeat
myExpMarker = 1.02
OPEN C-KF_L1 Exp.,447
Handler put K into line 217 of fld id 102
Job SYS_DE_wait 452 14679
IF myCalcVolt > myMaxVolt
Handler put G into line 217 of fld id 102
CLOSE C-KF_L1 Exp.,447
myExpMarker = 0.99
myCalcVolt = ( myCalcVolt / myKf1ExGFaktor )
Handler doFortSchritt "", "große Expansion = myCalcVolt [V]"
IF myCalcVolt > 6
myCalcVolt = ( myMaxVolt * 0.9 )
END IF
END IF
END IF
ELSE
myKfFaktor = 0.96
IF myCalcVolt > myMaxVolt
myCalcVolt = ( myCalcVolt / myKf2ExFaktor  )
Handler doFortSchritt "", "kleine Expansion = myCalcVolt [V]"
CLOSE C-Expansion L2,275
Handler put K into line 217 of fld id 102
REPEAT
OPEN C-KF_L2 Exp,449
WAIT 5 seconds
CLOSE C-KF_L2 Exp,449
WAIT 5 seconds
myTemp INCR 1
IF myTemp > 7
EXIT repeat
END IF
END repeat
myExpMarker = 1.02
OPEN C-KF_L2 Exp,449
Job SYS_DE_wait 452 14679
IF myCalcVolt > myMaxVolt
Handler put G into line 217 of fld id 102
CLOSE C-KF_L2 Exp,449
myExpMarker = 0.99
myCalcVolt = ( myCalcVolt  / myKf2ExGFaktor )
Handler doFortSchritt "", "große Expansion = myCalcVolt [V]"
IF myCalcVolt > 6
myCalcVolt = ( myMaxVolt * 0.9)
END IF
END IF
END IF
END IF
OPEN V11 Sa,21
WAIT 5 seconds
Handler doGetCupBellow SA
myTO2 = myCupValue
OPEN V21 Ref,19
Handler doFortSchritt "", "Errechne Ref-Gas Position myCalcVolt [V]"
myKfFaktor = ( myKfFaktor * myExpMarker )
mySollVolt = ( myKfFaktor * myCalcVolt )
Handler doGetPercent mySollVolt
IF myKarboAdjust < 17
Handler doFortSchritt "", "RefGasMenge wird nicht reichen = myKarboAdjust [%]"
myVolValue = 90
Job 251_Vol_Handling 312 14679
END IF
OPEN V11 Sa,21
WAIT 5 seconds
Handler doGetCupBellow SA
myTO3 = myCupValue
OPEN V21 Ref,19
IF myKarboAdjust > 90
Handler  doFortSchritt "", "RefGasMenge ist zu groß = myKarboAdjust [%]"
myVolValue = 5
Job 251_Vol_Handling 312 14679
END IF
OPEN V11 Sa,21
WAIT 5 seconds
Handler doGetCupBellow SA
myTO4 = myCupValue
OPEN V21 Ref,19
Handler doGetPercent mySollVolt
do VOLUME myKarboAdjust %
myWaitSeconds = 120
Job SYS_DE_wait 452 14679
myWaitSeconds = theSystem14
REPEAT
myTemp = time_of_WarmKf
IF myTemp > myKFStayTime
EXIT repeat
END IF
WAIT 2 seconds
END repeat
OPEN V11 Sa,21
CLOSE KF-ST_evac,245
WAIT 2 seconds
IF myTO1 > .2
myDoShowErr = 1
END IF
IF myTO2 > .2
myDoShowErr = 1
END IF
IF myTO3 > .2
myDoShowErr = 1
END IF
IF myTO4 > .2
myDoShowErr = 1
END IF
Handler doGetCupBellow SA
IF myCupValue > .2
myTO5 = myCupValue
myDoShowErr = 1
END IF
IF myDoShowErr = 1
--  Handler doDisplayError "Druck schon da T1: myTO1  T2:  myTO2 T3: myTO3 T4: myTO4 end: myCupValue ","",""
END IF
OPEN KF-Line ST,243
Handler  doMarkTimes
Handler  doFortSchritt "", "RefRefGasVentil wird geöffnet"
IF mySampleInWork < 25
OPEN C-KF_L1 Kapi,400
--  myKfFaktor = 0.88
ELSE
OPEN C-KF_L2 Kapi,402
--  myKfFaktor = 0.98
END IF
--  myKfFaktor = ( myKfFaktor * myExpMarker )
Handler  doFortSchritt "", "Sample-GasVentil wird geöffnet"
-- Handler doMarkTimes
myWaitSeconds = theSystem14
Job SYS_DE_wait 452 14679
-- Handler doGetPerTick
Handler doGetCupBellow SA
Handler  doFortSchritt "", "Probe hat myCupValue [V]"
Handler put myCupValue into line 219 of fld id 102
Handler doHandleKarboKFParams 1
IF myCupValue > myMaxVolt
IF mySampleInWork < 25
CLOSE C-KF_L1 Exp.,447
ELSE
CLOSE C-KF_L2 Exp,449
END IF
REPEAT
Handler doGetCupBellow SA
Handler doFortSchritt "", "Die Gasmenge ist zu groß! Warte bis myMaxVolt Volt jetzt: myCupValue V"
IF myCupValue < myMaxVolt
EXIT repeat
END IF
IF myCupValue > 7
myWaitSeconds = 120
ELSE
myWaitSeconds = theSystem14
END IF
CLOSE V11 Sa,21
Job SYS_DE_wait 452 14679
OPEN V11 Sa,21
WAIT 5 seconds
END repeat
Handler  doGetCupBellow SA
END IF
Handler doMarkTimes SPa
Handler  doGetCupBellow SA
myTemp = myKarboAdjust
mySollNew = ( myCupValue * myKfFaktor )
OPEN V21 Ref,19
Job SYS_DE_wait 452 14679
Handler doGetCupBellow Ref
Handler doGetPercent mySollNew ,"1"
IF mySampleInWork < 25
mySollTwo = ( mySollNew * .95)
ELSE
mySollTwo = ( mySollNew * .97)
END IF
Handler doGetPercent mySollTwo
myDoAdjust = 0
myAdOffset = ( mySollNew * .09 )
-- Handler doGetPercent mySollNew ,"1"
-- Handler doDisplayError  "%-te ist:  myTemP  % = myCupValue V -- neu:  myKarboAdjust  % mySollNew  V","warn","red"
IF myCupValue >  mySollNew
myDoAdjust = 1
END IF
IF myCupValue < ( mySollNew - myAdOffset )
myDoAdjust = 1
END IF
IF myDoAdjust > 0
OPEN KF-Line ST,243
--  myTempN = ( mySollNew * .95 )
--  Handler doGetPercent myTempN   
--  Handler doDisplayError  "Kein Druckabgleich beim 1. Mal. ist: myCupValue bei myTemp  % -- Soll: mySollNew  bei myKarboAdjust %","warn","red"
IF myKarboAdjust < 6
myKarboAdjust = 5
END IF
do VOLUME myKarboAdjust %
--   Job SYS_DE_wait 452 14679
--  IF myBellow > myKarboAdjust
myBellowDiff = (  myKarboAdjust - myBellow )
--  ELSE
--    myWaitSeconds = ( myKarboAdjust - myBellow )
--  END IF
--  myWaitSeconds = ( myWaitSeconds * 250 / myBellow )
--  IF myWaitSeconds > 45
myWaitSeconds = 10
--  END IF
--  IF myWaitSeconds < 5
--   myWaitSeconds = 5
--  END IF
Handler  doFortSchritt "", "mache einige Zyklen nach Feineinstellung"
Job SYS_DE_wait 452 14679
OPEN V11 Sa,21
Job SYS_DE_wait 452 14679
OPEN V21 Ref,19
Job SYS_DE_wait 452 14679
OPEN V11 Sa,21
Job SYS_DE_wait 452 14679
OPEN V21 Ref,19
Job SYS_DE_wait 452 14679
Handler put " myBellowDiff " after line 4 of fld id 102
END IF
IF myDoShowErr = 1
Handler put " myTO1 myTO2  myTO3  myTO4 myTO5 " after line 4 of fld id 102
END IF
myWaitSeconds = theSystem14
-- Handler doGetPercent mySollNew ,"1"
OPEN V11 Sa,21
Job SYS_DE_wait 452 14679
myTemp = 0
Handler doGetCupBellow SAmple
CLOSE KF-Line ST,243
IF mySampleInWork < 25
CLOSE C-KF_L1 Exp.,447
ELSE
CLOSE C-KF_L2 Exp,449
END IF
Handler doFortSchritt "", "Die Messung beginnt"
OPEN V21 Ref,19
Job SYS_DE_wait 452 14679
Handler doMarkTimes EPa
Job 251_doGetData 383 14679
OPEN V21 Ref,19
Handler doFortSchritt "", "Deltamessung beendet! Daten sichern und abgleichen"
Handler doUpDate
print 251 Karbo z1 324
save doSaveAllPrintValues
Handler doGetCupBellow "Ref"
Handler doEndMsRemote
IF myCupValue > 1
Handler doJumpMass "ex","","B"
Handler doNoteCalibration "44","2","","","","251"
END IF
CLOSE KF-Line ST,243
WAIT 1 seconds
OPEN KF-ST_evac,245
Handler doFortSchritt "end", "Daten sind gedruckt und gesichert. Kf wird evakuiert."
-- Handler doEndMsRemote
OPEN V21 Ref,19
-- Handler doKarboValveStatus "","","399 446 286 274 448 401"




und auch noch die zur Datenaufnahme:


251_doGetData 383 14679 29.04.2005 12:34
-- Datenaufnahme über Arbeitsliste
-- Druckabgleich erfolgt
-- Handler doMarkTimes  SCo
myWaitSeconds = ( theSystem14 - 1 )
myWaitDoReset = 1
Handler doFortSchritt "zero", "Datenaufnahme der Rohdaten, Probenspannung herstellen"
myStopAcq = "Start"
Handler doFortSchritt "", "Info-Felder aktualisieren"
Handler doUpDateInfoField
Handler doGetCupBellow SA
Handler  doMarkTimes SCo
IF myCupValue < .8
Handler doInitALAcq
Handler doFortSchritt "", "Vor Beginn der Rohdatenaufnahme noch einige Wechsel"
Handler doSetLowVoltCondition
myWaitSeconds =  theSystem14
IF myCupValue < .4
Handler doSetLowVoltCondition "1"
myWaitSeconds = theSystem14
END IF
ELSE
Handler doInitALAcq
END IF
myCounter = 0
-- REPEAT
--  OPEN V11 Sa,21
--  Job SYS_DE_wait 452 14679
--   Handler doGetCupBellow SA
--  OPEN V21 Ref,19
--   Job SYS_DE_wait 452 14679
--  Handler doGetCupBellow Ref
--   myCounter INCR 1
--   IF myCounter = 2
--     EXIT repeat
--   END IF
-- END repeat
Handler doGetBackGround "","","18","R"
Handler doFortSchritt "", "Die" && myCycles && "Zyklen beginnen"
Job SYS_DE_wait 452 14679
Handler doTigerAcq "R"
REPEAT
Handler doBringMeTofront
Job SYS_DE_wait 452 14679
Handler doTigerAcq
IF myStopAcq = "end"
EXIT repeat
END IF
myCycles DECR .5
Handler doFortSchritt "", "Noch" && myCycles && "Zyklen nach"
END repeat
Handler doFortSchritt "", "Alle Zyklen durch!"
Job SYS_DE_wait 452 14679
Handler doTigerAcq
Handler doGetBackGround
OPEN V11 Sa,21
Handler doMarkTimes ECo
-- Job SYS_DE_wait 452 14679
Handler doFortSchritt "", "Rohdatenaufnahme beendet"
CLOSE KF-Line ST,243
UPDATE Raumtemperatur,216
-- OPEN KF-ST_evac,245
Handler doStopAcq




 

 
Deutsch (DE-CH-AT)English (United Kingdom)

Kontakt

Hans Heinrich Cordt · IRMS-ctrl
Loher Weg 18 · 24787 Fockbek
Germany
Telefon +49 (0) 151-15 77 23 83

Kontaktformular...