Language support for Yaskawa INFORM II robot jobs (DX100 / DX200 / YRC1000 / YRC1000micro), made to work on .JBI files directly in VS Code.
English · Italiano
Features
| Area |
Status |
Syntax highlighting: 155 INFORM II instructions for YRC1000, /JOB and // /// sections, labels (including numeric *1), variables (B/I/D/R/S/P/BP/EX/FL), position data (C/BC/EC), signals and files (IN#, OT#, MPF#, WEV#, CLF#, PRESSCL#, ...), tags (VJ=, PL=, PLIN=, COORD=, U/D=, ...), valueless tags (FPT, CHK, SRCH, PICK, TWC-A, ...), strings, comments, deactivated instructions COMM, multi-group tags +MOVJ |
✅ |
Snippets for jobs, subroutines, motion, structured blocks (IFTHEN/ELSE/ENDIF, WHILE, SWITCH/CASE, FOR) and I/O |
✅ |
Comments (' and end-of-line //), automatic indentation, block folding |
✅ |
| Instruction completion at the beginning of a line (with signature and documentation) |
✅ |
Structured language: snippets and indentation for IFTHENEXP/ELSEIFEXP/ELSE/ENDIF, WHILEEXP/WHILE … DO/ENDWHILE, FOR/NEXT (also with STEP), SWITCH/CASE/DEFAULT/ENDSWITCH and label + JUMP loops; block folding |
✅ |
Label completion after JUMP *, workspace jobs after CALL JOB: / JUMP JOB:, job variables |
✅ |
| Hover on instructions, tags, variables, position data, signals, labels, sections, condition keywords |
✅ |
Job outline (sections + labels) and Workspace Symbols across all .JBI files |
✅ |
Step numbers (virtual): every line of the instruction section is labelled with its step, starting at 0000 on the NOP line, exactly like the controller job list. The numbers are decorations: they are never written into the file. Two modes (lines = comments and labels counted, instructions = only instructions) and a Go to step command |
✅ |
| Controller (FTP): browse the job folders of the controller in a dedicated view of the Explorer, download a job and open it, upload the file back (overwrite confirmation), download to a local file, create folders and delete remote files. The password is kept in the VS Code keychain, never in the settings |
✅ |
"Go to definition" from JUMP *LABEL, CALL JOB:NAME, JUMP JOB:NAME |
✅ |
| Static diagnostics: missing final END, structured-language block balance, duplicate/undefined labels, parentheses, unknown instructions |
✅ |
Argument validation: unknown tags or tags not allowed for the instruction, out-of-range values (PL 0‑8, VJ 0.01‑100 %, V 0.1‑1500, T ±327.67, ACC/DEC, SMODE), variable indices (P/BP/EX 0‑127), required arguments (position, signal, element), user alarm codes (SETUALM 8000‑8999) |
✅ |
Arc welding (chapter 2.7 of the manual): tag documentation (AC=, AV=, AVP=, AN3=/AN4=, RETRY, REPLAY, WELDn), argument validation with instruction-specific ranges and snippets (arcon, arcof, arcset, wvon, wvof, the saldatura block) |
✅ |
Motor-gun spot welding (manual RE-CSO-A054): SVSPOT, SVGUNCL, SVSPOTMOV, SVDRESMOV, GUNCHG, DRESSON, DRESSOF with their tags (GUN#, PRESS#, PRESSCL#, DRS#, CLF#, WP=, WTM=, WST=, PLIN=/PLOUT=, TWC-A…TWC-BE, PICK/PLACE, BCOFF), validated ranges and dedicated snippets |
✅ |
Arc monitor and weaving change: ARCMONON/ARCMONOF (AMF#), WVCHG/SWVCHG (AMPV=, AMPH=, DIS=) |
✅ |
| Alarm list (1,334 controller alarm codes): hover on alarm codes inside comments + search command |
✅ |
Commands: INFORM II: Insert instruction from reference, INFORM II: Search alarm code, INFORM II: Go to step |
✅ |
| Localized UI: English / Italian |
✅ |
Requirements
- VS Code 1.90 or newer.
- Node.js 18+ and npm — needed only to build (
npm install + npm run compile), not at runtime: the extension has no runtime dependency other than vscode.
- Jobs saved on disk as
.JBI files: that is the only extension associated with the language. The controllers save each job as one .JBI file (all the production jobs this extension was validated against are .JBI); the INFORM manuals do not document any other job-file extension.
- A sample job in
samples/ESEMPIO.JBI to try out highlighting, completion and diagnostics.
Quick start (development)
npm install
npm run compile # generates the grammar + compiles TypeScript
Then press F5 to open an Extension Development Host window with the extension active, and open a .JBI file.
Two debug configurations are available:
- Esegui estensione INFORM II (usa out/ precompilato) — starts immediately from the content already present in
out/, without npm; handy when you only change grammar, snippets or language-configuration.json.
- Esegui estensione INFORM II (con build) — runs
npm: compile before launching; use it when you change the sources in src/.
Available tasks: npm: compile (build), npm: watch (continuous compilation), npm: typecheck (type checking only).
Settings
| Setting |
Default |
Description |
inform2.diagnostics.enable |
true |
Enables static diagnostics on jobs. |
inform2.diagnostics.unknownInstruction |
off |
Severity for instructions outside the catalogue: off, information, warning. |
inform2.diagnostics.arguments |
true |
Validates arguments: allowed tags, value ranges, variable indices, required arguments. |
inform2.completion.enable |
true |
Enables completion. |
inform2.workspaceJobs.enable |
true |
Looks up jobs in the workspace for CALL JOB: and definitions. |
inform2.lineNumbers.enable |
true |
Shows the step number beside every line of the instruction section. |
inform2.lineNumbers.mode |
lines |
Which lines get a step number: lines counts every line of the instruction section (comments and labels included), instructions counts only instruction lines. |
inform2.lineNumbers.start |
0 |
First step number, assigned to the first line of the instruction section (normally NOP). |
inform2.ftp.host |
(empty) |
Address of the controller whose FTP server holds the job files. |
inform2.ftp.port |
21 |
FTP port of the controller. |
inform2.ftp.username |
(empty) |
FTP user name configured on the controller. |
inform2.ftp.remotePath |
/ |
Remote folder shown first in the Controller view (for example / or /JOB). |
inform2.ftp.timeout |
15000 |
Timeout for FTP operations, in milliseconds. |
inform2.diagnostics.unknownInstruction is off by default so that instructions from options not covered by the loaded manuals are not reported. The catalogue covers every standard YRC1000 instruction: you can set it to warning to highlight unexpected instructions.
Project structure
.
├─ package.json # manifest: language, grammar, snippets, settings, commands
├─ language-configuration.json # comments, brackets, folding, indentation
├─ src/
│ ├─ extension.ts # activation and provider registration
│ ├─ data/
│ │ ├─ instructions.json # instruction catalogue (155 entries)
│ │ ├─ arguments.json # argument validation rules
│ │ ├─ alarms.json # controller alarm list (code -> name/description)
│ │ └─ reference.ts # variable types, I/O signals, sections, tags
│ ├─ language/
│ │ ├─ inform.ts # line-by-line job parsing
│ │ ├─ arguments.ts # argument validation engine (no vscode dependency)
│ │ ├─ alarms.ts # alarm search
│ │ ├─ jobIndex.ts # workspace job index
│ │ └─ docs.ts # Markdown documentation for hover/completion
│ └─ providers/ # completion, hover, symbols, diagnostics, folding, definition
├─ scripts/build-grammar.mjs # generates syntaxes/inform2.tmLanguage.json from the catalogue
├─ tools/ # manual extraction, analysis and validation scripts (Python)
├─ snippets/inform2.json
└─ l10n/ # runtime translations (Italian)
Extending the instruction catalogue
All instruction knowledge lives in src/data/instructions.json. Adding an entry:
{
"name": "MOVJ",
"category": "move",
"signature": "MOVJ <position> VJ=<speed> [PL=<level>] [UF#(<n>)] [TF]",
"summary": "Moves to the target position with joint interpolation.",
"verified": true
}
automatically gives you highlighting, completion, hover and diagnostic recognition. The grammar is regenerated by npm run generate:grammar (included in npm run compile).
Optional fields:
"pattern": regular expression used instead of the name, for instructions with a numeric suffix (e.g. MACRO uses "MACRO[0-9]{1,2}").
"verified": set to true only for entries confirmed by the manual; while missing, hover and completion show a "provisional description" note.
"usage": forms observed in real job files, shown in the hover for instructions that are not documented in the loaded manuals.
"markers": file-format keywords that are not instructions (e.g. COMM for deactivated instructions), documented but excluded from completion.
Commands
| Command |
Description |
INFORM II: Insert instruction from reference |
List of instructions with signature and description; press Enter to insert the name into the job. |
INFORM II: Search alarm code |
Search by code or name in the controller alarm list; press Enter to insert AL<code> into the active job. |
INFORM II: Go to step |
Asks for a step number and moves the cursor to that line of the instruction section (useful to jump where the pendant shows an error). |
INFORM II: Connect to the controller |
Opens the FTP connection (it asks the address if inform2.ftp.host is empty) and fills the Controller view. |
INFORM II: Refresh the controller folder |
Re-reads the remote folder. |
INFORM II: Open job from the controller |
Downloads the job and opens it in the editor. |
INFORM II: Download job to a local file |
Saves the remote job where you choose. |
INFORM II: Upload file to controller |
Writes the file of the active editor to the controller, after a confirmation. |
INFORM II: New folder on the controller |
Creates a folder in the selected remote folder. |
INFORM II: Delete on the controller |
Deletes the selected remote file or folder, after a confirmation. |
INFORM II: Forget the controller password |
Removes the password kept in the VS Code keychain. |
Controller (FTP)
The controller has an FTP server with the job folders. To use it you need version 0.8.0 or newer of the extension.
Step 0 — check the version
Extensions panel → INFORM II (Yaskawa) → the version must be 0.8.0 or newer. If it is older, run:
code --install-extension "inform2-yaskawa-0.8.1.vsix"
then Ctrl+Shift+P → Developer: Reload Window. Without this update the inform2.ftp.* settings do not exist and VS Code will not accept them.
Step 1 — set the parameters (guided, recommended)
Ctrl+Shift+P → INFORM II: Configure the controller connection, or click the gear in the title of the Controller (FTP) view (Explorer).
Answer the questions:
| Question |
Example |
What to write |
| Address of the controller (IP or host name) |
192.168.1.10 |
the controller on the network |
| FTP port of the controller |
21 |
keep 21 unless the controller uses another port |
| FTP user name configured on the controller |
user |
the FTP user enabled on the controller |
| Folder to show first (for example / or /JOB) |
/ |
/JOB to open directly on the jobs |
| Password |
— |
leave empty to be asked at every connection |
Then choose User settings (all your projects) or Workspace settings (only this folder) and confirm with Connect now.
Step 1 (alternative) — set the parameters by hand
Ctrl+Shift+P → Preferences: Open User Settings (JSON) and add:
"inform2.ftp.host": "192.168.1.10",
"inform2.ftp.port": 21,
"inform2.ftp.username": "user",
"inform2.ftp.remotePath": "/"
In the graphical Settings window search for inform2 (not "ftp"): the whole INFORM II group appears, with the five ftp.* settings.
Step 2 — connect and work
Ctrl+Shift+P → INFORM II: Connect to the controller, or the plug icon in the view title. The view fills with the remote folders. Then:
- click a job to open it: it is copied to a local working folder, so highlighting, step numbers and diagnostics work as usual;
- INFORM II: Upload file to controller writes the file you are editing back to the controller (it asks the remote path and a confirmation, because the remote file is overwritten);
- right click on an element for the other actions: download to a local file, new folder, delete.
Step 3 — if something does not work
| Symptom |
Cause and fix |
The inform2.ftp.* settings do not appear, or VS Code says they are unknown |
the installed version is older than 0.8.0, or the extension is disabled: update it and reload the window |
| The command Configure the controller connection is missing from the Command Palette |
same cause: update the extension and reload the window |
Connection to <address> failed: … |
wrong address or port, wrong user or password, or the FTP server is not enabled on the controller |
Notes:
- the connection is opened only when you ask for it: nothing happens on startup and the extension works offline as before;
- the password stays in the VS Code keychain, never in
settings.json and never in the messages; remove it with INFORM II: Forget the controller password;
- transfers use passive mode (
PASV) and binary type (TYPE I), the ones needed for .JBI files.
Hovering an alarm code also works inside comments of a job (e.g. 'AL4414 excess segment), where they are usually noted.
Manuals and copyright notes
Yaskawa manuals are protected material: this extension does not embed their text. The descriptions shown (hover, completion) are original summaries based on the official manuals, with a reference to the manual chapter.
Data derived from the manuals is limited to factual information (instruction lists, allowed ranges, alarm codes and names), acting as a browsable index. Entries marked as "provisional description" come from options not documented in the loaded manuals (e.g. COMARCON, MEMON, MACRO): for those, hover also shows the forms observed in real jobs.
Known limitations
- Catalogue descriptions and the entries in
src/data/reference.ts are currently in Italian (the user interface is English/Italian).
- Alarm names are extracted automatically from the alarm list: some entries may be incomplete or merged.
- Argument validation covers the documented rules (ranges for
PL, VJ, V, T, ACC, DEC, indices P/BP/EX, required arguments of the main instructions). Variable types are not checked in every context.
- Diagnostics are purely static: they do not validate execution logic or controller state.
- Syntax may vary between controller generations: the current profile is YRC1000 / YRC1000micro.
Roadmap
- [x] Phase 1 — foundation: language, editor features, static diagnostics.
- [x] Phase 2 — manuals: complete YRC1000 instruction catalogue derived from the official Yaskawa manuals (RE-CKI-A466, RE-CSO-A052/A053/A054/A055) and validated against real production jobs (not included in the package).
- [x] Phase 3 — arguments and alarms: argument validation (tags, ranges, indices, required arguments), alarm list (1,334 codes) with hover and search command, signatures of optional instructions derived from real usage.
- [x] Phase 4 — full manual coverage: 155 instructions, no manual table or index entry left out; added the motor-gun spot welding, arc monitor and weaving change families.
- [x] Phase 5 — structured language: snippets, indentation, folding and diagnostics for every loop and selection type (
IFTHENEXP, WHILEEXP, FOR/NEXT, SWITCH/CASE, label loops).
- [x] Phase 6 — step numbering: virtual step number (0 =
NOP) beside every line of the instruction section, Go to step command and lines/instructions counting modes.
- [x] Phase 7 — controller connection (FTP): controller view with remote folders, download/upload of jobs, new folder, delete; password in the VS Code keychain.
- [ ] Phase 8 — per-controller instruction library: separate profiles for DX200 / YRC1000 / YRC1000micro; integration of the manuals of still uncovered options (COM-ARC, Memory Play, Macro Command, search functions, handling).
- [ ] Phase 9 — job tools: job comparison, import/export, renumbering of a job.
Supporto linguistico per i job robot Yaskawa INFORM II (DX100/DX200/YRC1000/YRC1000micro), pensato per lavorare sui file .JBI direttamente in VS Code.
English · Italiano
Funzionalità
| Area |
Stato |
Evidenziazione sintassi: 155 istruzioni INFORM II per YRC1000, sezioni /JOB //////, etichette (anche numeriche *1), variabili (B/I/D/R/S/P/BP/EX/FL), dati di posizione (C/BC/EC), segnali e file (IN#, OT#, MPF#, WEV#, CLF#, PRESSCL#, ...), tag (VJ=, PL=, PLIN=, COORD=, U/D=, ...), tag senza valore (FPT, CHK, SRCH, PICK, TWC-A, ...), stringhe, commenti, istruzioni disattivate COMM, tag multi-gruppo +MOVJ |
✅ |
Snippet per job, sottoprogrammi, movimenti, blocchi strutturati (IFTHEN/ELSE/ENDIF, WHILE, SWITCH/CASE, FOR) e I/O |
✅ |
Commenti (', // a fine riga), indentazione automatica, folding sui blocchi |
✅ |
| Completamento istruzioni a inizio riga (con firma e documentazione) |
✅ |
Linguaggio strutturato: snippet e rientri per IFTHENEXP/ELSEIFEXP/ELSE/ENDIF, WHILEEXP/WHILE … DO/ENDWHILE, FOR/NEXT (anche con STEP), SWITCH/CASE/DEFAULT/ENDSWITCH e ripetizioni con etichetta e JUMP; piegatura dei blocchi |
✅ |
Completamento etichette dopo JUMP *, job del workspace dopo CALL JOB: / JUMP JOB:, variabili del job |
✅ |
| Hover su istruzioni, tag, variabili, dati di posizione, segnali, etichette, sezioni, parole chiave di condizione |
✅ |
Outline del job (sezioni + etichette) e Workspace Symbols su tutti i .JBI |
✅ |
Numeri di passo (virtuali): ogni riga della sezione istruzioni mostra il proprio passo, da 0000 sulla riga NOP, come nell'elenco del job sull'insegnatore. I numeri sono decorazioni: non vengono mai scritti nel file. Due modalità (lines = conta anche commenti ed etichette, instructions = solo istruzioni) e comando Vai al passo |
✅ |
| Controller (FTP): sfoglia le cartelle dei job del controller in una vista dedicata dell'Explorer, scarica un job e aprilo, ricarica il file modificato (con conferma di sovrascrittura), salva su file locale, crea cartelle ed elimina file remoti. La password resta nel portachiavi di VS Code, mai nelle impostazioni |
✅ |
"Vai alla definizione" da JUMP *LABEL, CALL JOB:NAME, JUMP JOB:NAME |
✅ |
| Diagnostica statica: END finale, blocchi del linguaggio strutturato, etichette duplicate/inesistenti, parentesi, istruzioni non note |
✅ |
Validazione argomenti: tag sconosciuti o non ammessi per l'istruzione, valori fuori intervallo (PL 0‑8, VJ 0.01‑100 %, V 0.1‑1500, T ±327.67, ACC/DEC, SMODE), indici variabili (P/BP/EX 0‑127), argomenti obbligatori (posizione, segnale, elemento), codici allarme utente (SETUALM 8000‑8999) |
✅ |
Saldatura ad arco (sezione 2.7 del manuale): documentazione dei tag (AC=, AV=, AVP=, AN3=/AN4=, RETRY, REPLAY, WELDn), validazione argomenti con intervalli specifici e snippet (arcon, arcof, arcset, wvon, wvof, blocco saldatura) |
✅ |
Saldatura a punti con pistola a motore (manuale RE-CSO-A054): SVSPOT, SVGUNCL, SVSPOTMOV, SVDRESMOV, GUNCHG, DRESSON, DRESSOF con i loro tag (GUN#, PRESS#, PRESSCL#, DRS#, CLF#, WP=, WTM=, WST=, PLIN=/PLOUT=, TWC-A…TWC-BE, PICK/PLACE, BCOFF), intervalli validati e snippet dedicati |
✅ |
Monitor d'arco e cambio oscillazione: ARCMONON/ARCMONOF (AMF#), WVCHG/SWVCHG (AMPV=, AMPH=, DIS=) |
✅ |
| Lista allarmi (1.334 codici dal manuale allarmi del controller): hover sul codice allarme nei commenti + comando di ricerca |
✅ |
Comandi: INFORM II: Inserisci istruzione dal riferimento, INFORM II: Cerca codice allarme, INFORM II: Vai al passo |
✅ |
| Interfaccia localizzata IT / EN |
✅ |
Requisiti
- VS Code 1.90 o superiore.
- Node.js 18+ e npm — servono solo per compilare (
npm install + npm run compile), non a runtime: l'estensione non ha dipendenze runtime oltre a vscode.
- Job salvati su disco come file
.JBI: è l'unica estensione associata al linguaggio. I controller salvano ogni job in un file .JBI (tutti i job di produzione su cui l'estensione è stata validata sono .JBI); i manuali INFORM non documentano altre estensioni per i file di job.
- Un job di prova in
samples/ESEMPIO.JBI per verificare evidenziazione, completamento e diagnostica.
Avvio rapido (sviluppo)
npm install
npm run compile # genera la grammar + compila TypeScript
Poi F5 per aprire una finestra Extension Development Host con l'estensione attiva, e aprire un file .JBI.
Sono disponibili due configurazioni di debug:
- Esegui estensione INFORM II (usa out/ precompilato) — avvia subito usando il contenuto già presente in
out/, senza bisogno di npm; adatta se modifichi solo grammar, snippet o language-configuration.json.
- Esegui estensione INFORM II (con build) — esegue
npm: compile prima dell'avvio; usala quando modifichi i sorgenti in src/.
Task disponibili: npm: compile (build), npm: watch (compilazione continua), npm: typecheck (solo controllo dei tipi).
Impostazioni
| Impostazione |
Default |
Descrizione |
inform2.diagnostics.enable |
true |
Abilita la diagnostica statica dei job. |
inform2.diagnostics.unknownInstruction |
off |
Gravità per istruzioni fuori catalogo: off, information, warning. |
inform2.diagnostics.arguments |
true |
Valida gli argomenti: tag ammessi, intervalli di valore, indici variabili, argomenti obbligatori. |
inform2.completion.enable |
true |
Abilita il completamento. |
inform2.workspaceJobs.enable |
true |
Cerca i job nel workspace per CALL JOB: e le definizioni. |
inform2.lineNumbers.enable |
true |
Mostra il numero di passo accanto a ogni riga della sezione istruzioni. |
inform2.lineNumbers.mode |
lines |
Quali righe ricevono il numero: lines conta ogni riga della sezione istruzioni (commenti ed etichette compresi), instructions conta solo le righe di istruzione. |
inform2.lineNumbers.start |
0 |
Primo numero di passo, assegnato alla prima riga della sezione istruzioni (di norma NOP). |
inform2.ftp.host |
(vuoto) |
Indirizzo del controller il cui server FTP contiene i file di job. |
inform2.ftp.port |
21 |
Porta FTP del controller. |
inform2.ftp.username |
(vuoto) |
Nome utente FTP configurato sul controller. |
inform2.ftp.remotePath |
/ |
Cartella remota mostrata all'apertura della vista Controller (ad esempio / oppure /JOB). |
inform2.ftp.timeout |
15000 |
Timeout delle operazioni FTP, in millisecondi. |
inform2.diagnostics.unknownInstruction è disattivato di default per non segnalare istruzioni di opzioni non incluse nei manuali caricati. Il catalogo copre tutte le istruzioni standard YRC1000: puoi impostare warning per evidenziare eventuali istruzioni estranee.
Struttura del progetto
.
├─ package.json # manifest: linguaggio, grammar, snippet, impostazioni, comandi
├─ language-configuration.json # commenti, parentesi, folding, indentazione
├─ src/
│ ├─ extension.ts # attivazione e registrazione dei provider
│ ├─ data/
│ │ ├─ instructions.json # catalogo istruzioni (155 voci)
│ │ ├─ arguments.json # regole di validazione degli argomenti
│ │ ├─ alarms.json # lista allarmi del controller (codice -> nome/descrizione)
│ │ └─ reference.ts # tipi variabile, segnali I/O, sezioni, tag
│ ├─ language/
│ │ ├─ inform.ts # parsing riga per riga dei job
│ │ ├─ arguments.ts # motore di validazione argomenti (senza dipendenze da vscode)
│ │ ├─ alarms.ts # ricerca allarmi
│ │ ├─ jobIndex.ts # indice dei job del workspace
│ │ └─ docs.ts # documentazione Markdown per hover/completamento
│ └─ providers/ # completion, hover, symbols, diagnostics, folding, definition
├─ scripts/build-grammar.mjs # genera syntaxes/inform2.tmLanguage.json dal catalogo
├─ tools/ # script di estrazione, analisi e validazione dei manuali (Python)
├─ snippets/inform2.json
└─ l10n/ # traduzioni runtime (italiano)
Come estendere il catalogo istruzioni
Tutta la conoscenza delle istruzioni vive in src/data/instructions.json. Aggiungendo una voce:
{
"name": "MOVJ",
"category": "move",
"signature": "MOVJ <posizione> VJ=<velocità> [PL=<livello>] [UF#(<n>)] [TF]",
"summary": "Movimento verso la posizione di destinazione con interpolazione articolare.",
"verified": true
}
si ottengono automaticamente: evidenziazione, completamento, hover, riconoscimento nella diagnostica. La grammar viene rigenerata da npm run generate:grammar (incluso in npm run compile).
Campi opzionali:
"pattern": espressione regolare usata al posto del nome, per le istruzioni con suffisso numerico (es. MACRO usa "MACRO[0-9]{1,2}").
"verified": impostare true solo per le voci confermate sul manuale; finché è assente, hover e completamento mostrano la nota "descrizione provvisoria".
"usage": forme osservate nei job reali, mostrate nell'hover per le istruzioni non documentate nei manuali caricati.
"markers": parole chiave del formato file che non sono istruzioni (es. COMM per le istruzioni disattivate), documentate ma escluse dal completamento.
Comandi
| Comando |
Descrizione |
INFORM II: Inserisci istruzione dal riferimento |
Elenco delle istruzioni con firma e descrizione; invio per inserire il nome nel job. |
INFORM II: Cerca codice allarme |
Ricerca per codice o nome nella lista allarmi del controller; invio per inserire AL<codice> nel job attivo. |
INFORM II: Vai al passo |
Chiede un numero di passo e porta il cursore su quella riga della sezione istruzioni (utile per raggiungere il punto indicato dall'insegnatore dopo un allarme). |
INFORM II: Connetti al controller |
Apre la connessione FTP (chiede l'indirizzo se inform2.ftp.host è vuoto) e popola la vista Controller. |
INFORM II: Aggiorna la cartella del controller |
Rilegge la cartella remota. |
INFORM II: Apri un job dal controller |
Scarica il job e lo apre nell'editor. |
INFORM II: Scarica il job in un file locale |
Salva il job remoto dove scegli tu. |
INFORM II: Carica il file sul controller |
Scrive nel controller il file dell'editor attivo, dopo una conferma. |
INFORM II: Nuova cartella sul controller |
Crea una cartella nella cartella remota selezionata. |
INFORM II: Elimina sul controller |
Elimina il file o la cartella remota selezionata, dopo una conferma. |
INFORM II: Dimentica la password del controller |
Cancella la password conservata nel portachiavi di VS Code. |
Controller (FTP)
Il controller espone un server FTP con le cartelle dei job. Per usarlo serve la versione 0.8.0 o successiva dell'estensione.
Passo 0 — controlla la versione
Pannello Estensioni → INFORM II (Yaskawa) → la versione deve essere 0.8.0 o successiva. Se è più vecchia, esegui:
code --install-extension "inform2-yaskawa-0.8.1.vsix"
poi Ctrl+Shift+P → Developer: Reload Window. Senza questo aggiornamento le impostazioni inform2.ftp.* non esistono e VS Code non le accetta.
Passo 1 — imposta i parametri (guidato, consigliato)
Ctrl+Shift+P → INFORM II: Configura la connessione al controller, oppure clicca l'ingranaggio nel titolo della vista Controller (FTP) (nell'Explorer).
Rispondi alle domande:
| Domanda |
Esempio |
Cosa scrivere |
| Indirizzo del controller (IP o nome host) |
192.168.1.10 |
il controller sulla rete |
| Porta FTP del controller |
21 |
lascia 21 se il controller non usa un'altra porta |
| Nome utente FTP configurato sul controller |
utente |
l'utente FTP abilitato sul controller |
| Cartella da mostrare all'apertura (ad esempio / oppure /JOB) |
/ |
/JOB per aprire direttamente i job |
| Password |
— |
lascia vuoto per inserirla a ogni connessione |
Poi scegli Impostazioni utente (tutti i tuoi progetti) o Impostazioni del workspace (solo questa cartella) e conferma con Connetti ora.
Passo 1 (alternativa) — imposta i parametri a mano
Ctrl+Shift+P → Preferences: Open User Settings (JSON) e aggiungi:
"inform2.ftp.host": "192.168.1.10",
"inform2.ftp.port": 21,
"inform2.ftp.username": "utente",
"inform2.ftp.remotePath": "/"
Nella finestra grafica delle impostazioni cerca inform2 (non "ftp"): compare tutto il gruppo INFORM II, con le cinque impostazioni ftp.*.
Passo 2 — connettiti e lavora
Ctrl+Shift+P → INFORM II: Connetti al controller, oppure l'icona della spina nel titolo della vista. La vista si popola con le cartelle remote. Poi:
- clicca un job per aprirlo: viene copiato in una cartella di lavoro locale, quindi evidenziazione, numeri di passo e diagnostica funzionano come sempre;
- INFORM II: Carica il file sul controller riscrive nel controller il file che stai modificando (chiede il percorso remoto e una conferma, perché il file remoto viene sovrascritto);
- con il tasto destro su un elemento trovi le altre azioni: scarica in un file locale, nuova cartella, elimina.
Passo 3 — se qualcosa non funziona
| Sintomo |
Causa e rimedio |
Le impostazioni inform2.ftp.* non compaiono, o VS Code dice che non esistono |
la versione installata è precedente alla 0.8.0, oppure l'estensione è disattivata: aggiornala e ricarica la finestra |
| Il comando Configura la connessione al controller non c'è nel Command Palette |
stessa causa: aggiorna l'estensione e ricarica la finestra |
Connection to <indirizzo> failed: … |
indirizzo o porta sbagliati, utente o password errati, oppure il server FTP non è abilitato sul controller |
Note:
- la connessione viene aperta solo su tua richiesta: all'avvio non cambia nulla e l'estensione continua a funzionare anche senza rete;
- la password resta nel portachiavi di VS Code, mai in
settings.json e mai nei messaggi; si cancella con INFORM II: Dimentica la password del controller;
- i trasferimenti usano la modalità passiva (
PASV) e il tipo binario (TYPE I), quelli richiesti dai file .JBI.
L'hover sul codice di allarme funziona anche dentro i commenti dei job (es. 'AL4414 eccesso di segmento), dove di solito vengono annotati.
Note su manuali e copyright
I manuali Yaskawa sono materiale protetto: l'estensione non ne incorpora il testo. Le descrizioni mostrate (hover, completamento) sono sintesi redazionali proprie, basate sui manuali ufficiali ma riscritte, con riferimento al capitolo del manuale.
I dati derivati dai manuali sono limitati a informazioni fattuali (elenchi di istruzioni, intervalli ammessi, codici di allarme e relativi nomi), come un indice consultabile. Le voci marcate come "descrizione provvisoria" derivano da opzioni non documentate nei manuali caricati (es. COMARCON, MEMON, MACRO): per queste l'hover mostra anche le forme d'uso rilevate nei job.
Limiti noti
- Le descrizioni del catalogo e i riferimenti in
src/data/reference.ts sono attualmente in italiano (l'interfaccia è IT/EN).
- I nomi degli allarmi sono estratti automaticamente dalla lista allarmi: alcune voci possono risultare incomplete o accorpate.
- La validazione degli argomenti copre le regole documentate (intervalli di
PL, VJ, V, T, ACC, DEC, indici P/BP/EX, argomenti obbligatori delle istruzioni principali). Non sono verificati i tipi di variabile in ogni contesto.
- La diagnostica è puramente statica: non valida la logica di esecuzione né lo stato del controller.
- La sintassi può variare tra generazioni di controller: il profilo attuale è quello YRC1000 / YRC1000micro.
Roadmap
- [x] Fase 1 — fondazione: linguaggio, editor, diagnostica statica.
- [x] Fase 2 — manuali: catalogo completo delle istruzioni YRC1000 ricavato dai manuali ufficiali Yaskawa (RE-CKI-A466, RE-CSO-A052/A053/A054/A055) e validato su job di produzione reali (non inclusi nel pacchetto).
- [x] Fase 3 — argomenti e allarmi: validazione degli argomenti (tag, intervalli, indici, argomenti obbligatori), lista allarmi (1.334 codici) con hover e comando di ricerca, firme delle istruzioni opzionali ricavate dall'uso reale.
- [x] Fase 4 — copertura totale dei manuali: 155 istruzioni, nessuna voce di tabella o di indice dei manuali fuori catalogo; aggiunte le famiglie della saldatura a punti con pistola a motore, del monitor d'arco e del cambio oscillazione.
- [x] Fase 5 — linguaggio strutturato: snippet, rientri, piegatura e diagnostica per tutti i tipi di ciclo e selezione (
IFTHENEXP, WHILEEXP, FOR/NEXT, SWITCH/CASE, cicli con etichetta).
- [x] Fase 6 — numeri di passo: numero virtuale (0 =
NOP) accanto a ogni riga della sezione istruzioni, comando Vai al passo e modalità di conteggio lines/instructions.
- [x] Fase 6 — numeri di passo: numero virtuale (0 =
NOP) accanto a ogni riga della sezione istruzioni, comando Vai al passo e modalità di conteggio lines/instructions.
- [x] Fase 7 — collegamento al controller (FTP): vista del controller con cartelle remote, scaricamento e caricamento dei job, nuova cartella, eliminazione; password nel portachiavi di VS Code.
- [ ] Fase 8 — libreria istruzioni per controller: profili separati per DX200 / YRC1000 / YRC1000micro; completamento dei manuali delle opzioni non coperte (COM-ARC, Memory Play, Macro Command, funzioni di ricerca, movimentazione).
- [ ] Fase 9 — strumenti di job: confronto tra job, import/export, rinumerazione di un job.
| |