Yaskawa Viewer
Basics | Viewer | Point editor | Robot 3D View | Settings | Plugins

▲ Yaskawa viewer (JBI editor)

A job is opened in the Yaskawa viewer (setting Add Yaskawa viewer automatically to *.jbi file). The viewer shows the instructions between NOP and END with syntax highlighting, indentation of IF / WHILE blocks, an icon at every motion line and the line markers of the syntax check. Keyword completion and templates of instructions are available as in the other editors of DReS.

Job header

By default the header of the job (/JOB, //POS with all points, //INST, ///ATTR, ///GROUP ...) is hidden and only the program is shown - the header icon in the first line shows it as a tooltip. The points are edited in the point table and the point editor; the header is rebuilt from them when the job is saved. The header can be shown in the text with Show header text in viewer (context menu or settings).

Tooltips: variables, I/O, macros

Moving the mouse over a word shows what the controller knows about it:
   
Global variable with its name and backup value; macro call with the macro job and its arguments.
The same names are shown in the long-text column on the right side of the viewer. Go to (context menu, or Ctrl+click) opens the called job - for a macro the macro job from MACRO.DAT. While Ctrl is held, a job name that exists in the backup (CALL JOB:CELL, JUMP JOB:..., MACRO1 MJ#(5)) or a label of a JUMP is underlined under the mouse and the cursor becomes a hand, as with a link.

Labels: go to, references

Context menu of JUMP *SCHW IF LB002<>2: go to the label, references of the label.
Tooltip of a label in a JUMP.
Labels are compared without case. JUMP JOB:... is a jump to a job (Go to opens it); JUMP LABEL: S000 and JUMP B000 take the label from a variable. The syntax check tests the labels as well.

Blocks: IFTHEN / ENDIF, WHILE / ENDWHILE ...

The instructions that open, divide and close a block belong together:
BlockOpeningMiddleClosing
IFIFTHEN, IFTHENEXPELSEIF, ELSEIFEXP, ELSEENDIF
WHILEWHILE, WHILEEXPENDWHILE
SWITCHSWITCHCASE, DEFAULTENDSWITCH
FORFORNEXT
Cursor on ENDIF (line 74): IFTHEN, ELSE and ENDIF of the block are highlighted, the status bar names the block.
A block with a closing line can be collapsed: the opening line (IFTHEN, WHILE, SWITCH, FOR) has a triangle at the right edge of the line number area. A click on it hides the lines of the block - the opening and the closing line (ENDIF, ENDWHILE ...) stay visible - a second click shows them again; Ctrl+click on a triangle collapses / expands all blocks. Nested blocks that were collapsed stay collapsed when the outer block is expanded. Go to or Ctrl+click to a hidden line expands the blocks above it, and a block whose closing line is removed or which gets a new line is expanded automatically. The line numbers stay the numbers of the lines of the job.
IFTHEN of line 66 and WHILE of line 85 collapsed (triangle pointing right) - ENDIF / ENDWHILE stay visible; the IFTHEN of line 77 is expanded.
Blocks that are not closed or have no opening line are reported by the syntax check.

Double-click and context menu

The context menu contains, besides the usual editing functions: Go to job / macro, Go to label and References of *label (Labels), Edit motion instruction..., Edit point C..... for every point of the line (or Point editor... on other lines), Show header text in viewer, Check full syntax and Viewer settings.

Yaskawa menu

▲ Point table

Under the viewer the point table lists all points of the //POS section of the job.
ColumnMeaning
NameC (robot), BC (base axis), EC (station), P / BP / EX (position variables)
Groupcontrol group of the point taken from the instruction that uses it (///GROUP1 ... with +MOVJ parts)
TypePULSE or RECTAN (BASE / ROBOT / USER / TOOL)
Tooltool of the point (///TOOL)
S, L, U, R, B, T ...values as in the file - pulses, or X, Y, Z, Rx, Ry, Rz for RECTAN
Context menu of the table:
Jump to C.....first instruction that uses the point
Edit motion instruction of C.....opens the motion instruction editor for that line
Point editor C.....opens the point editor
Copy C..... coordinatescopies C00002=-97993,1990,... to the clipboard
Assign coordinatesassigns the coordinates copied before to the selected point
Copy selected coordinates as plain texttable of the selected points (e.g. for Excel)
Set equal <axis> value for selected pointsone value of the column for all selected points
Axis difference [pulse]differences of two selected points axis by axis
Cartesian distancedistance of two RECTAN points (same frame and tool)
Select all

▲ Motion instruction editor

A double-click on the instruction of a motion line opens the editor of this line.

▲ Syntax check

Every line of the job is checked with the INFORM parser (ANTLR4) built according to the official documentation DX200 Options - Instructions for INFORM language (part number 165301-1CD), and the points are checked against the //POS section:
JUMP *SCHWX to a label that does not exist (error) - the label *SCHW is then not used (warning).
ENDWHILE commented out: the WHILE of line 85 is reported as "WHILE without ENDWHILE" and loses its fold triangle.
VJ=120.00 exceeds the allowed range 0.01 .. 100.
The result is shown by markers in the margin of the line numbers (tooltip with the message) and, for a full check, in the list of messages:
WhenSettingDefault
on demand - Check syntax F6, context menu Check full syntax-
when a job is openedCheck programm syntax on loadoff
before a job is savedCheck programm syntax on file saveon
while typing (after a short pause), markers only, no dialogCheck programm syntax on flow during editingoff
The check during editing waits for a pause: every change (a letter, Ctrl+Z, Ctrl+Y, paste) restarts a 0.5 s timer, and only when nothing changes for 0.5 s the job is checked once - typing 50 letters fast gives one check, not 50. After undoing the change that caused an error the marker disappears by itself. To check many jobs at once use the ANTLR Validator plugin.

▲ Saving a job

Ctrl+S writes the job in the format of the controller:


Basics | Viewer | Point editor | Robot 3D View | Settings | Plugins