Hi
I'm sorry to reanimate this thread, but it comes close to my problem: dealing with $LNSCH in KAREL
Code
PROGRAM trsptrkfrm
--------------------------------------------------------------------------------
--
-- Transpose Tracking Frame
--
--------------------------------------------------------------------------------
%COMMENT = 'Transpose Tracking Frame'
%NOLOCKGROUP
%NOBUSYLAMP
%NOPAUSE = ERROR + COMMAND + TPENABLE
%NOABORT = ERROR + COMMAND + TPENABLE
--------------------------------------------------------------------------------
--
-- local types & constants
--
--------------------------------------------------------------------------------
VAR
iSleepTime : INTEGER -- delay in ms
bShutdwnReq : BOOLEAN -- program abort requested status
fLntTrkFrame : XYZWPREXT -- line tracking frame
rRegVal : REAL -- GET_REG output
iRegVal, -- GET_REG output
iRegStatus : INTEGER -- GET_REG output
rRegFlg : BOOLEAN -- GET_REG output
entry: integer
status: integer
CONST
LOOP_HZ = 5 -- Main loop freq (Hz)
SHUTDWNREG = 461 -- Shutdown register
REGSUCCESS = 0 -- Success Status
LNTRKSCH = 1 -- Line Tracking Schedule Number
--------------------------------------------------------------------------------
--
-- Main program
--
--------------------------------------------------------------------------------
BEGIN
WRITE('START - Transpose Tracking Frame',CR)
bShutdwnReq = FALSE
iSleepTime = ROUND(1000.0 / LOOP_HZ)
WHILE (NOT bShutdwnReq) DO
fLntTrkFrame = $LNSCH[1].$TRK_FRAME
--GET_VAR(entry, '*SYSTEM*', '$LNSCH[1].$TRK_FRAME', fLntTrkFrame, status)
--IF (status <> REGSUCCESS) THEN
--WRITE('GET_VAR Failed',cr,' Status = ',status,cr)
--ENDIF
--fLntTrkFrame.z = fLntTrkFrame.z + 10
--SET_VAR(entry, '*SYSTEM*', '$LNSCH[1].$TRK_FRAME', fLntTrkFrame, status)
--IF (status <> REGSUCCESS) THEN
-- WRITE('SET_VAR Failed',cr,' Status = ',status,cr)
--ENDIF
--$LNSCH[1].$TRK_FRAME = fLntTrkFrame
DELAY iSleepTime
GET_REG(SHUTDWNREG, rRegFlg, iRegVal, rRegVal, iRegStatus)
IF (iRegStatus = REGSUCCESS) THEN
IF (iRegVal <> 0) THEN
bShutdwnReq = TRUE
WRITE('STOPPING - Transpose Tracking Frame',CR)
ENDIF
ELSE
WRITE('GET_REG Failed',cr,' Status = ',iRegStatus,cr)
ENDIF
ENDWHILE
-- Reset Outputs etc
SET_INT_REG(SHUTDWNREG, 0, iRegStatus)
IF (iRegStatus <> REGSUCCESS) THEN
WRITE('SET_INT_REG Failed',cr,' Status = ',iRegStatus,cr)
ENDIF
WRITE('STOPED - Transpose Tracking Frame',CR)
END trsptrkfrm
Display More
I'm triing to compile the code with following error message:
Code
C:\Program Files (x86)\FANUC\WinOLPC\bin>ktrans trsptrkfrm.ls /ver V8.20-1
Notice: Unable to find 'robot.ini',
Using basic KAREL support files.
KTRANS Version V8.20 (Build 11 6/19/2014)
Copyright (C) FANUC Robotics America Corporation, 1985 through 2012.
All Rights Reserved.
C:\Program Files (x86)\FANUC\WinOLPC\bin\trsptrkfrm.ls(49)
49 fLntTrkFrame = $LNSCH[1].$TRK_FRAME
^ ERROR
Id must be defined before this use. Id: $LNSCH
===============Translation not successful===============
Error executing KTrans: Error translating program: Code: 0xFFFFFFFF:
C:\Program Files (x86)\FANUC\WinOLPC\bin>
Display More
No matter what variable of $LNSCH i want to adress ($LNSCH[1].$SCALE), i allways get the same error: "Id must be defined before this use. Id: $LNSCH"
So may someone enlighten me... please