×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Contact US

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

TEXT VIEWER FOR RAPID

TEXT VIEWER FOR RAPID

TEXT VIEWER FOR RAPID

(OP)
Hi all,

In this string I am posting the key & certificate for rapid programming language for use with crimson editor. I would also like to know if any body would like to exchange robot programs in an effort that we may all see some new ways of doing things.  I,ll start it with a program for a Irb 6400 palletiser routine.


[-COMMENT-:GLOBAL]
# RAPID LANGUAGE SPECIFICATION FILE FOR CRIMSON EDITOR
# FIRST EDITED Kevin Day 22.07.02

[KEYWORDS0:GLOBAL]
MODULE
ENDMODULE
PROC
ENDPROC

[KEYWORDS1:GLOBAL]
robtarget
num
jointtarget
bool
tooldata
wobjdata
byte
clock
aiotrigg
confdata
errdomain
errnum
errtype
extjoint
intnum
iodev
loaddata
loadsession
mecunit
motsetdata
o_jointtarget
opnum
orient
o_robtarget
pos
pose
progdisp
robjoint
shapedata
signalxx
speeddata
stoppointdata
string
symnum
taskid
testsignal
tpnum
trapdata
triggdata
tunetype
wzstationary
WZtemporary
zonedata

[KEYWORDS2:GLOBAL]
AccSet
ActUnit
Add
AliasIO
Break
CallByVar
CancelLoad
Clear
ClearPath
ClearIOBuff
ClkReset
ClkStart
ClkStop
Close
ConfJ
ConfL
CONNECT
CirPathReori
DeactUnit
Decr
EOffsOff
EOffsOn
EOffsSet
ErrWrite
EXIT
ExitCycle
GetSysData
GetTrapData
GOTO
GripLoad
IDelete
IDisable
IEnable
IError
Incr
InvertDO
IODisable
IOEnable
ISignalAI
ISignalAO
ISignalDI
ISignalDO
ISleep
ITimer
IVarValue
IWatch
Load
MechUnitLoad
MoveAbsJ
MoveC
MoveCDO
MoveCSync
MoveJ
MoveJDO
MoveJSync
MoveL
MoveLDO
MoveLSync
Open
PathResol
PDispOff
PDispOn
PDispSet
PathAccLim
PulseDO
RAISE
ReadAnyBin
ReadErrData
Reset
RestoPath
RETRY
RETURN
Rewind
Save
SearchC
SearchL
Set
SetAO
SetDO
SetGO
SingArea
SkipWarn
SoftAct
SoftDeact
SpyStart
SpyStop
StartLoad
StartMove
Stop
StopMove
StorePath
TestSignDefine
TestSignReset
TPErase
TPReadFK
TPReadNUM
TPShow
TPWrite
TriggC
TriggCheckIO
TriggEquip
TriggInt
TriggIO
TriggL
TriggJ
TRYNEXT
TuneReset
TuneServo
UnLoad
WaitDI
WaitDO
WaitLoad
WarmStart
WaitTime
WaitUntil
VelSet
Write
WriteAnyBin
WriteBin
WriteStrBin
WZBoxDef
WZCylDef
WZDisable
WZDOSet
WZEnable
WZFree
WZLimSup
WZSphDef

[KEYWORDS3:GLOBAL]
Abs
ACos
AOutput
ASin
ATan
ATan2
ByteToStr
CalcJointT
CalcRobT
CDate
CJointT
ClkRead
Cos
CPos
CRotT
CTime
CTool
CWObj
DefDFrame
DefFrame
Dim
Distance
DotProd
DOutput
EulerZYX
Exp
FileTime
GOutpot
GetTime
IsPers
IsVar
MaxRobSpeed
MirPos
ModTime
NOrient
NumToStr
Offs
OpMode
OrientZYX
ORobT
PoseInv
PoseMult
PoseVect
Pow
Present
ReadBin
ReadMotor
ReadNum
ReadStr
ReadStrBin
Reltool
Round
Runmode
Sin
Sqrt
StrFind
StrLen
StrMap
StrMatch
StrMemb
StrOrder
StrPart
StrToByte
StrToVal
Tan
TestAndSet
TestDI
Trunc
TestSignRead
ValToStr
VectMagn

[KEYWORDS4:GLOBAL]
OR
AND
TRUE
FALSE

[KEYWORDS5:GLOBAL]
IF
ENDIF
THEN
ELSEIF
ELSE

[KEYWORDS6:GLOBAL]
WHILE
ENDWHILE
DO
FOR
FROM
TO
ENDFOR

[KEYWORDS7:GLOBAL]
CONST
PERS
VAR

[KEYWORDS8:GLOBAL]
TEST
ENDTEST
CASE
DEFAULT

[KEYWORDS9:GLOBAL]
WObj
Rx
Ry
Rz
MaxTime
TimeFlag
InPos
On
Off
RL2
RL3
RL4
W
Single
DPos
DNeg
Dynamic
File
Conc
V
T
Z
Corr
Read
Write
Append
Bin
ExeP
Rot
High
PLength
Time
Task
FilePath
Stop
PStop
SStop
Sup
Flanks
SDelay
Wrist
MechUnit
Ramp
NoRegain
DIBreak
BreakFlag
Start
Time
DOp
GOp
AOp
ProcID
Inhib
DODelay
T2
T3
T4
T5
T6
Type
NoNewLine
Temp
Stat
Inside
Before
Outside


# RAPID LANGUAGE SPECIFICATION FILE FOR CRIMSON EDITOR
# FIRST EDITED Kevin Day 22.07.02
# derived from PHP.SPC, Geert van Boven (g.vanboven@dignion.com or gvb@vbit.nl) 26 sept. 2001

$CASESENSITIVE=NO
$DELIMITERS=(){}[]<>+-*/%"'~!@#&$^&|\?:=;,.
$KEYWORDPREFIX=
$QUOTATIONMARK1="
$QUOTATIONMARK2='
$LINECOMMENT=!
$PAIRS1=()
$PAIRS2=[]
$PAIRS3={}
$VARIABLEPREFIX=
$SHADOWON=[
$SHADOWOFF=]


%%%
  VERSION:1
  LANGUAGE:ENGLISH
%%%

MODULE P51_0709
  CONST robtarget InterStn5:=[[-1568.02,1704.4,512.95],[0.370196,-0.917579,0.042943,-0.13842],[1,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget p70:=[[1660.58,144.9,1636.85],[0.621451,-0.393809,0.362362,-0.572195],[0,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget SlipPlace6:=[[1728.93,95.03,420],[0.011104,-0.017464,0.707076,-0.706835],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget SlipPlace5:=[[585.94,-1577.12,-25.83],[0.004628,-0.004528,-0.706966,0.707219],[-1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget SlipPlace4:=[[-1580.53,1331.63,449.7],[0.707123,-0.706941,0.010223,-0.010363],[1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  PERS bool b2LSlipEachLayer:=TRUE;
  CONST robtarget pSynch:=[[2092.58,-0.42,2074.62],[0.70702,0.000231,0.707194,9E-05],[-1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget p220:=[[2092.59,-0.41,2074.62],[0.707025,0.000232,0.707189,9.5E-05],[-1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget InterStn4:=[[-754.25,-1353.92,2600.04],[0.458258,-0.408496,-0.534839,0.580584],[-2,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget InterStn1:=[[131.89,1939.07,2600],[0.724624,-0.688384,0.030306,-0.011373],[0,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget InterStn2:=[[1549.83,5.64,2600.02],[0.069247,-0.032496,0.713886,-0.696072],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget InterStn3:=[[-1063.31,-1460.03,2745.05],[0.203701,-0.215626,-0.654349,0.695585],[-2,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget p11:=[[-926.38,216.81,1669.46],[0.019993,0.690317,0.723221,-0.003889],[1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget p12:=[[-2198.23,267.24,409.98],[0.110128,-0.708042,-0.688217,0.11361],[1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget p13:=[[-2357.67,274.03,274.01],[0.026542,-0.712264,-0.700538,0.034955],[1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget p14:=[[-2530.34,257.24,337.06],[9E-05,-0.708431,-0.705762,0.005173],[1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget p190:=[[1382.42,1602.38,2549.87],[0.707335,-0.706829,0.005756,-0.006079],[0,-2,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget p21:=[[-200,1165.01,1615],[4.8E-05,-0.999994,0.003642,9.2E-05],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget p210:=[[-333.66,1170.21,1913.43],[0.000416,-0.999996,0.002944,0.000246],[1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget p21b:=[[-200,1165.56,1286.06],[0.067486,0.997714,-0.003662,0.000519],[1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget p22:=[[-200.00999,1145.12,492.5],[0.268531,0.963265,-0.003155,0.001748],[1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget p23:=[[-8.71,1210.21,-56.97],[0.699041,0.715051,-0.006679,0.000623],[1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget p30a:=[[-35,1588.41,1195.77],[2.1E-05,-1,-2.1E-05,5.7E-05],[1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget Pickup1:=[[-2316.86,250.73,484.5],[0.506512,-0.511049,-0.50272,0.479111],[1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget Pickup3:=[[-1303.63,-2262.97,366.93],[0.002113,-0.00354,0.707839,-0.706362],[-2,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget Place1A:=[[1329.15,1684.34,173.00999],[0.707107,-0.707082,0.004183,0.004182],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget Place2a:=[[1828,93.45,88.75],[0.000577,0.005811,-0.707159,0.707031],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget Place3b:=[[604.44,-1682.21,115],[0.006075,0.000681,0.709899,-0.704278],[-1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget SearchBag1:=[[-191.99,1250.02,255.12],[0.713446,0.700697,0.000707,-0.004239],[1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget SlipPlace1:=[[1382.37,1610,-150],[0.707323,-0.706841,0.005788,-0.006092],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget SlipPlace2:=[[1580,0,-168],[0.496625,-0.501485,0.500628,-0.501248],[-1,-1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget SlipPlace3:=[[590,-1570,-175.83],[0.004614,-0.004509,-0.706974,0.707211],[-1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget SSOrient1:=[[-2017.4,1264.6,1156.73],[0.707113,-0.706951,0.010232,-0.010359],[1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST robtarget SSstackBottom:=[[-1619.99,1349.16,-187.51],[0.70583,-0.708366,0.003256,-0.003524],[1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  CONST string line:="---------------------------------";
  PERS bool BagReq1:=FALSE;
  PERS bool DayFlag:=TRUE;
  PERS bool PalletiseReq1:=FALSE;
  PERS bool PalletiseReq3:=FALSE;
  PERS num bag1length:=1520;
  PERS num BagDrop:=0;
  PERS num BagDropOld:=0;
  PERS num BagOk:=59;
  PERS num BagOkayOld:=93;
  PERS num LayPadReq1:=0;
  PERS num LayPadReq2:=0;
  PERS num LayPadReq3:=0;
  PERS num MidOffset:=-8;
  PERS num PackCfgStn1:=42;
  PERS num PackCfgStn2:=0;
  PERS num posX:=1374.49;
  PERS num posY:=1585.45;
  PERS num ProductSelect1:=40593;
  PERS num ProductSelect3:=0;
  PERS num SlipOnPallet:=1;
  PERS num SSthickness:=2;
  PERS num Stn1BagCount:=3;
  PERS num Stn1BagHeight:=260;
  PERS num Stn1LayerOffset:=801;
  PERS num Stn1TotalBags:=9;
  PERS num Stn2BagCount:=0;
  PERS num Stn23BagHeight:=265;
  PERS num Stn2LayerOffset:=1068;
  PERS num Stn2TotalBags:=9;
  PERS num Stn3BagCount:=0;
  PERS num Stn3LayerOffset:=0;
  PERS num Stn3TotalBags:=9;
  PERS robtarget BagEnd1:=[[-191.972,1250.091,-21.3976],[0.713434,0.70071,0.000710547,-0.00429219],[1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  PERS robtarget p140:=[[-1933.87,1361.63,1156.78],[0.707127,-0.706935,0.0102727,-0.0104085],[1,0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  PERS string d:="D";
  PERS string string1:="E.  Next Screen";
  PERS tooldata BagGrip:=[TRUE,[[0,0,0],[1,0,0,0]],[25,[0,0,300],[1,0,0,0],20,20,20]];
  VAR bool BagOkay:=TRUE;
  VAR bool VacFlag:=FALSE;
  VAR iodev iodev1;
  VAR num BagMid:=0;
  VAR num BagZ:=0;
  VAR num check:=0;
  VAR num continue:=4;
  VAR num PosZ:=0;
  VAR num seln1:=0;
  VAR num seln2:=0;
  VAR num Stickout2:=0;
  VAR num stuck:=0;
  VAR pos pos1:=[0,0,0];
  VAR robtarget again2:=[[-1974.98,1435.15,502.02],[0.707122,-0.707085,0.002218,-0.002219],[1,-2,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  VAR robtarget BagLeft:=[[-30.84,-1201.61,-55.35],[0.00113,0.001733,-0.708687,-0.705521],[-2,-1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  VAR robtarget BagRight:=[[469.17,-1201.57,-55.35],[0.001146,0.001745,-0.708675,-0.705533],[-1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  VAR robtarget p16:=[[252.85,1676.23,978.63],[0.707201,-0.706974,-0.005273,0.005191],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
  VAR robtarget SlipSearch:=[[550.07,1084.86,888.23],[7.7E-05,0.404679,0.914459,8.5E-05],[0,-1,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
      !Variables for Vaccum Gripper
  PERS num nSet2:=5;
  PERS num nSet1:=1;
  PERS num nProduct:=1;
  PERS string strProduct:="P&N 2 Litre";
  CONST string strCurrProd:="Current Product = ";
  CONST string string4:="A.  Change product from ";
  PERS num BottleWidth:=130;
  PERS num BottleHeight:=320;
  PERS num LayerQty:=4;
  PERS num RowQty:=9;
  PERS num LayerCount:=0;
  PERS num LayerOffset:=0;
  PERS num RowOffset:=0;
  PERS num LayPadReq4:=0;  
  PERS bool PalletiseReq4:=FALSE;
   
    PROC Palletise4()
    !New program for palletising
    !bottles with vaccum gripper
start:
    VelSet 100,700;
    RowOffset:=(RowQty*BottleWidth)/2-(RowCount*BottleWidth)-BottleWidth;
    IF LayerQty-1=LayerCount AND RowCount>=RowQty THEN
      Incr LayerCount;
      LayerOffset:=(BottleHeight+SSthickness)*LayerCount;
      SearchSlip;
      PulseDO\PLength:=0.5,doPall3Compl;
      TPErase;
      TPWrite "Waiting for full pallet exit";
      WaitDI diPall3InPos,low;
      LayerCount:=0;
      LayerOffset:=0;
      RowCount:=0;
      RowOffset:=(RowQty*BottleWidth)/2-(RowCount*BottleWidth)-BottleWidth;
      MoveJ Offs(SSstackBottom,0,0,2900),v1500,z200,BagGrip;
      TPErase;
      TPWrite "Waiting for new pallet";
      WaitDI diPall3InPos,high;
      SearchSlip;
    ENDIF
    RowOffset:=(RowQty*BottleWidth)/2-(RowCount*BottleWidth)-BottleWidth;
    LayerOffset:=(BottleHeight+SSthickness)*LayerCount;
    IF RowCount>=RowQty THEN
      RowCount:=0;
      Incr LayerCount;
      PickSlip;
    ELSEIF RowCount=0 AND bForceSSPick=TRUE THEN
      PickSlip;
    ENDIF
    bForceSSPick:=FALSE;
    IF LayerOffset<370 THEN
      OffsetUp:=BottleHeight+75;
    ELSE
      OffsetUp:=BottleHeight+LayerOffset-395;
    ENDIF
    MoveJ Offs(Pickup,0,200,OffsetUp),vmax,z20,tcp0;
label10:
    TPErase;
    WHILE diPall3InPos=low DO
      TPWrite "Waiting for pallet in position";
      WaitTime 0.2;
      TPErase;
    ENDWHILE
    WHILE diPickReady=low DO
      TPWrite "Waiting to palletise layer "\Num:=LayerCount+1;
      TPWrite "                       row "\Num:=RowCount+1;
      WaitTime 0.1;
      TPErase;
    ENDWHILE
label20:
    MoveL Offs(Pickup,0,50,0),v2500,z10,tcp0;
    Set doPicking;
    MoveL Pickup,v500,fine,tcp0;
    Reset doAirBlast;
    Reset doBottVacSw;
    Set doVacuum;
    WaitDI diVacuum,high\MaxTime:=4\TimeFlag:=VacFlag;
    WaitTime 2;
    IF diVacuum=high GOTO label30;
    Reset doVacuum;
    Reset doPicking;
    Set doAirBlast;
    MoveL Offs(Pickup,0,50,0),v500,fine,tcp0;
    Reset doAirBlast;
    TPErase;
    TPReadFK continue,"Vacuum fault. Rectify then press OK","","","","","OK";
    GOTO label20;
label30:
    RowOffset:=(RowQty*BottleWidth)/2-(RowCount*BottleWidth)-BottleWidth;
    LayerOffset:=(BottleHeight+SSthickness)*LayerCount;
    TPErase;
    TPWrite "Palletising layer "\Num:=LayerCount+1;
    TPWrite "              row "\Num:=RowCount+1;
    MoveL Offs(Pickup,0,0,OffsetUp),v500,z50,tcp0;
    Reset doPicking;
    IF LayerOffset<500 AND RowCount<3 THEN
      MoveJ Offs(Place,RowOffset-200,0,800),v2000,z50,tcp0;
    ELSEIF LayerOffset<500 THEN
      MoveJ Offs(Place,RowOffset-50,0,800),v2000,z50,tcp0;
    ENDIF
    IF RowCount<2 OR (LayerOffset>900 AND RowCount<5) THEN
      MoveJ Offs(Place,RowOffset-200,0,LayerOffset+100),v2000,z50,tcp0;
    ELSE
      MoveJ Offs(Place,RowOffset-50,0,LayerOffset+BottleHeight+50),v2000,z50,tcp0;
    ENDIF
    IF LayerCount=0 AND RowCount=0 THEN
      MoveL Offs(Place,RowOffset-90,0,LayerOffset),v1000,fine,tcp0;
    ELSEIF LayerCount=0 AND RowCount=1 THEN
      MoveL Offs(Place,RowOffset-150,0,LayerOffset),v1000,fine,tcp0;
    ELSE
      MoveL Offs(Place,RowOffset-50,0,LayerOffset),v1000,fine,tcp0;
    ENDIF
    Reset doVacuum;
    Set doAirBlast;
    WaitDI diVacuum,low;
    IF LayerCount=0 AND RowCount=0 THEN
      WaitTime 0;
    ELSE
      MoveL Offs(Place,RowOffset,0,LayerOffset),v30,fine,tcp0;
      MoveL Offs(Place,RowOffset-50,0,LayerOffset),v80,fine,tcp0;
    ENDIF
    IF RowCount=0 OR (LayerOffset>900 AND RowCount<5) THEN
      MoveL Offs(Place,RowOffset-200,0,LayerOffset+BottleHeight+50),v1500,z30,tcp0;
    ELSE
      MoveL Offs(Place,RowOffset-50,0,LayerOffset+BottleHeight-100),v1500,z30,tcp0;
      MoveL Offs(Place,RowOffset-50,0,LayerOffset+BottleHeight+50),v1500,z30,tcp0;
    ENDIF
    Reset doAirBlast;
    IF LayerOffset<370 MoveJ Offs(Place,RowOffset-50,0,BottleHeight+440),v1500,z50,tcp0;
    Incr RowCount;
    PalletiseReq4=FALSE
    RETURN;
    MoveL Place,v500,fine,tcp0;
    MoveL Pickup,v500,z10,tcp0;
  ENDPROC
    
    
  ENDPROC
  
    PROC ProdSelect3()
    !New program for palletising
    !bottles with vaccum gripper
start;
    nSet1:=5;
    nSet2:=5;
    WHILE nSet1=5 AND nSet2=5 DO
      TPErase;
      TPWrite "A.  P&N 2 litre";
      TPWrite "B.  Product 2";
      TPWrite "C.  Product 3";
      TPWrite "D.  Product 4";
      TPReadFK nSet1,"Select Product or press Next.","A","B","C","D","Next";
      IF nSet1=5 THEN
        TPErase;
        TPWrite "E.  Product 5";
        TPWrite "F.  Product 6";
        TPWrite "G.  Product 7";
        TPWrite "H.  Product 8";
        TPReadFK nSet2,"Select Product or press Previous.","E","F","G","H","Previous";
      ENDIF
    ENDWHILE
    IF nSet1=5 THEN
      nProduct:=nSet2+4;
    ELSE
      nProduct:=nSet1;
    ENDIF
    TEST nProduct
    CASE 1:
      strProduct:="P&N 2 litre";
      BottleHeight:=320;
      BottleWidth:=130;
      LayerQty:=4;
      RowQty:=9;
    CASE 2:
      strProduct:="Product 2";
      BottleHeight:=294;
      BottleWidth:=150;
      LayerQty:=4;
      RowQty:=7;
    CASE 3:
      strProduct:="Product 3";
      BottleHeight:=283;
      BottleWidth:=135;
      LayerQty:=4;
      RowQty:=8;
    CASE 4:
      strProduct:="Product 4";
      BottleHeight:=300;
      BottleWidth:=161;
      LayerQty:=4;
      RowQty:=7;
    CASE 5:
      strProduct:="Product 5";
      BottleHeight:=255;
      BottleWidth:=161;
      LayerQty:=4;
      RowQty:=7;
    CASE 6:
      strProduct:="Product 6";
      BottleHeight:=237;
      BottleWidth:=135;
      LayerQty:=4;
      RowQty:=8;
    CASE 7:
      strProduct:="Product 7";
      BottleHeight:=277;
      BottleWidth:=114;
      LayerQty:=5;
      RowQty:=10;
    CASE 8:
      strProduct:="Product 8";
      BottleHeight:=340;
      BottleWidth:=117;
      LayerQty:=4;
      RowQty:=10;
    DEFAULT:
      TPErase;
      TPReadFK continue,"Packing selection fault. Press OK to continue.","","","","","OK";
      GOTO start;
    ENDTEST
    
    
  ENDPROC
  
    
    PROC HelpScreen()
HelpMenu:
    LayPadReq2:=0;
    LayPadReq3:=0;
    TPErase;
    TPWrite "Current Status on 4L Milk Line";
    TPWrite line;
    TPWrite "Product code ="\Num:=ProductSelect1;
    TPWrite "Bags on pallet ="\Num:=Stn1BagCount;
    IF LayPadReq1>0 THEN
      TPWrite "Slip sheet is required";
    ELSE
      TPWrite "Slip sheet is not required";
    ENDIF
    IF PalletiseReq1=TRUE THEN
      TPWrite "Bag ready for pickup";
      string1:="";
    ELSE
      TPWrite "Bag not ready for pickup";
      IF BagReq1=FALSE THEN
        string1:="Bag is on bagger";
      ELSE
        string1:="Bag is not on bagger";
      ENDIF
    ENDIF
    TPReadFK seln1,string1,"CHANGE","","","","OK";
    IF seln1=1 THEN
SubMenu1:
      TPErase;
      TPWrite "Bagger 1 parameters (screen 1)";
      TPWrite line;
      TPWrite "A.  Change product code from "\Num:=ProductSelect1;
      TPWrite "B.  Change pallet 1 quantity from "\Num:=Stn1BagCount;
      IF PalletiseReq1=TRUE THEN
        TPWrite "C.  Palletise bag";
        d:="";
      ELSE
        TPWrite "C.  No bag to be palletised";
        d:="D";
        IF BagReq1=TRUE THEN
          TPWrite "D.  Place bag on bagger";
        ELSE
          TPWrite "D.  Do not place bag on bagger";
        ENDIF
      ENDIF
      TPWrite "E.  Next Screen";
      TPReadFK seln2,"","A","B","C",d,"E";
      TEST seln2
      CASE 1:
        ProdSelect1;
      CASE 2:
        TPErase;
        TPWrite "Change pallet quantity from "\Num:=Stn1BagCount;
        TPReadNum Stn1BagCount,"Enter new pallet quantity";
      CASE 3:
        PalletiseReq1:=NOT PalletiseReq1;
      CASE 4:
        BagReq1:=NOT BagReq1;
      DEFAULT:
        TPErase;
      ENDTEST
      IF seln2<>5 GOTO SubMenu1;
submenu2:
      TPErase;
      TPWrite "Bagger 1 parameters (screen 2)";
      TPWrite line;
      TPWrite "A.  Previous screen";
      IF LayPadReq1=2 THEN
        TPWrite "B.  2 Slip sheets are required";
      ELSEIF LayPadReq1=1 THEN
        TPWrite "B.  1 Slip sheet is required";
      ELSE
        TPWrite "B.  Slip sheet is not required";
      ENDIF
      TPWrite "C.  Bag Length = "\Num:=bag1length;
      TPWrite "D.  Eject Pallet";
      string1:="E.  Next Screen";
      TPReadFK seln2,string1,"A","B","C","D","E";
    

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login


Resources

Low-Volume Rapid Injection Molding With 3D Printed Molds
Learn methods and guidelines for using stereolithography (SLA) 3D printed molds in the injection molding process to lower costs and lead time. Discover how this hybrid manufacturing process enables on-demand mold fabrication to quickly produce small batches of thermoplastic parts. Download Now
Design for Additive Manufacturing (DfAM)
Examine how the principles of DfAM upend many of the long-standing rules around manufacturability - allowing engineers and designers to place a part’s function at the center of their design considerations. Download Now
Taking Control of Engineering Documents
This ebook covers tips for creating and managing workflows, security best practices and protection of intellectual property, Cloud vs. on-premise software solutions, CAD file management, compliance, and more. Download Now

Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close