- R1.03 frozen on branch r1.03 / tag r1.03-final; README and CLAUDE.md explain which branch to use and the rules for the shared R1.05 server. - knowledge/version-differences.md: R1.03 -> R1.05 changes from the manual revision tables and a read-only comparison of installed files (install paths, eqt/eta IEC 104/61850 drivers, REST server, jupgutl, new pyTOOLS manual IM 36K10P40). - system-check re-checked read-only on the R1.05 test server. - progress.md: R1.05 re-check table per skill; document map lists R1.05 and R1.03 editions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
135 lines
8 KiB
Markdown
135 lines
8 KiB
Markdown
---
|
||
name: system-check
|
||
description: >-
|
||
Read-only check of a CI Server machine, run before any CI Server work. Use when
|
||
the user asks which CI Server version is installed, whether CI Server is running, where it is
|
||
installed, whether time is synchronized, or before starting any task in another skill.
|
||
Also covers starting CI Server (needs administrator rights). Target version R1.05 (R1.03 on branch r1.03).
|
||
version: R1.05 (first written for R1.03)
|
||
source: IM 36K10J10-01EN §1.2, §1.4, §3.6, §3.7; practiced on the R1.03 test system 2026-09-29/30 and the R1.05 test server 2026-10-08
|
||
status: verified on R1.03 (2026-09-30); sections 1, 2 and 4 verified on R1.05 (2026-10-08)
|
||
---
|
||
|
||
# System check
|
||
|
||
Run this read-only check before any CI Server work. It changes nothing.
|
||
|
||
## 1. Installed version
|
||
|
||
PowerShell:
|
||
|
||
```powershell
|
||
$keys = @('HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*','HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*')
|
||
foreach ($k in $keys) { foreach ($i in (Get-ItemProperty $k -ErrorAction SilentlyContinue)) { if ($i.DisplayName -match 'CI Server') { "{0} | {1}" -f $i.DisplayName, $i.DisplayVersion } } }
|
||
```
|
||
|
||
Expected for this branch: `CI Server R1.05.00 (r11609M)`. R1.03 (`CI Server R1.03.00 (r10200M)`):
|
||
switch to the repo branch `r1.03`. Anything else: warn the user that the repo targets R1.05
|
||
(see `knowledge/version-differences.md`).
|
||
|
||
**From the running system** (preferred when CI Server is running): export the local node
|
||
dataset and read `VERSION_MAJOR`, `VERSION_MINOR`, `VERSION_PACK` (1, 5, 0 = R1.05.00;
|
||
1, 3, 0 = R1.03.00).
|
||
|
||
```
|
||
dssqld -e local_node.qli -d LOCAL_NODE_DF -c -l local_node.lst
|
||
```
|
||
|
||
Run it in a scratch folder; it only reads. The same row shows the node name, node number and
|
||
licence state (`NAME`/`NODE_NAME` = `UNLICENCED` means no licence is registered).
|
||
`dssqld -f -l dict.lst` dumps the full data dictionary (all datasets and fields) if you need
|
||
to find another dataset.
|
||
|
||
**Per-component versions** (rewritten at every start): `%TLS_ALLUSERS_PATH%\lst\tls_versions.lst`,
|
||
one line per component: `<file>,<version>,<size>,<build date>`. On the R1.03 test system all 110
|
||
lines read `R1.03.00`; on the R1.05 test server 112 lines read `R1.05.00` and `jython-full`
|
||
reads `R1.04.00` (as installed). Other different versions usually mean a patch is installed.
|
||
|
||
**Message log**: `%TLS_LOG_PATH%\umhlog.log` holds CI Server messages
|
||
(`--> From: <PROCESS> (<node>) on <time>` then `<FAC>-<I|W|E>-<CODE>, <text>`). Read it after
|
||
starting CI Server to spot errors (e.g. `EQP-E-SLV_COM_BAD` = no communication with a
|
||
station). It can contain connection strings with passwords; never copy those into the repo.
|
||
|
||
## 2. Install paths (environment variables)
|
||
|
||
The paths differ between installations, so read them with `set TLS` (cmd) or
|
||
`Get-ChildItem env:TLS*` (PowerShell) and never assume them.
|
||
|
||
| Variable | R1.05 test server | R1.03 test system | Holds |
|
||
|---|---|---|---|
|
||
| `TLS_ROOT_PATH` / `TLS_ITROOT_PATH` | `C:\Yokogawa\CIServer` | `C:\Program Files (x86)\Yokogawa\CIServer` | Program: `tls\com` (start scripts), `tls\exe` (tools), `tls\sup` (setup files) |
|
||
| `TLS_ALLUSERS_PATH` | `C:\Yokogawa\CIServer\tls` | `C:\Users\Public\Yokogawa\tls` | Data root (manuals in `doc\EN`) |
|
||
| `TLS_DAT_PATH` | `…\tls\dat` | `…\tls\dat` | Database |
|
||
| `TLS_HIS_PATH` | `…\tls\his` | `…\tls\his` | History |
|
||
| `TLS_SAV_PATH` | `…\tls\sav` | `…\tls\sav` | Saved data |
|
||
| `TLS_LOG_PATH`, `TLS_LST_PATH` | `…\tls\log`, `…\tls\lst` | `…\tls\log`, `…\tls\lst` | Logs and listings |
|
||
| `TLS_WAP_PATH` | `…\tls\wap` | `…\tls\wap` | Web application files |
|
||
|
||
`tls\com` and `tls\exe` are on `PATH`, so tools such as `dssqld` and `itmval` run from any
|
||
prompt. Setup files (`*.sup`) are plain text (CRLF); edit them with the Setup File Editor.
|
||
|
||
## 3. Is CI Server running?
|
||
|
||
- Windows service `StartCIServer` ("CI Service"), start type Manual on the R1.03 test system,
|
||
Automatic (Delayed Start) on the R1.05 test server.
|
||
- Running processes live under `…\Yokogawa\CIServer\tls\exe`. None running = CI Server stopped.
|
||
- Most tools (`dssqld`, `itmval`, …) need CI Server running.
|
||
- Starting it needs administrator rights (the service runs as `.\CIX_PROCESS`, binary
|
||
`tls\exe\ciserv.exe`). From a non-elevated shell `Start-Service StartCIServer` fails with
|
||
"Cannot open StartCIServer service". Start it from an elevated prompt:
|
||
`Start-Service StartCIServer` (or Services › CI Service › Start).
|
||
- **Unlicensed systems shut down about 1 hour 10 minutes after start.** All CI Server processes exit, the
|
||
`StartCIServer` service still shows *Running*, and every tool fails with
|
||
`umh_panic: <tool>, license expired`. To recover, **stop then start** the CI Service
|
||
(elevated): `Stop-Service StartCIServer` then `Start-Service StartCIServer`. Before a long
|
||
task on an unlicensed system, note the start time (`(Get-Process ciserv).StartTime`) and
|
||
restart first if the hour is nearly up.
|
||
Time left is in the health snapshots: `License time left : <s>` in
|
||
`%TLS_LOG_PATH%\smd_<node>_LOW_smdsnp_general.log` (3600 s after a start, −600 per 10 min);
|
||
`*** license problem : 3 ***` once it has run out. The count pauses while the PC sleeps
|
||
(observed 2026-10-01: a run started 17:25 ran out at 09:52 the next morning after a sleep);
|
||
some processes (e.g. `umh`) stay attached, but `dssqld`/`itmval` fail and the log shows
|
||
`ISF-F-LIC_PROB, DATABASE Service is not licensed`.
|
||
- `Stop-Service StartCIServer` can fail with *Cannot stop StartCIServer service* although CI
|
||
Server does restart (seen 2026-10-01: the error was shown, the service stayed *Running*, and all
|
||
processes had new PIDs and a new `STARTUP_TIME` in `LOCAL_NODE_DF` within a minute). Check
|
||
`STARTUP_TIME` before retrying.
|
||
- **Close the Edit Module (and Engineering Module) before stopping CI Server.** A local Edit
|
||
Module is attached to the BUS Service (`JWUIGED<pid>`, a `java.exe` in the user's session) and
|
||
does not stop with the service. The next start then aborts at once; `%TLS_LOG_PATH%\ci_start.log`
|
||
shows `CI Server is already running` / `umh_panic: durwfp, CI Server has not been properly
|
||
stopped, kill the following processes …` with the list (seen 2026-10-01: `JWUIGED12760` kept
|
||
UMH, DURTIM, UMHLOG … listed). Fix: close the Edit Module (or end that `java.exe`), then start
|
||
again. Avoid `durstp -k -p *` unless the user approves. The Operator Interface (desktop) and the
|
||
HTML display connect through the web server and were not in the list.
|
||
|
||
## 4. Time synchronization
|
||
|
||
`w32tm /query /status` and `w32tm /query /configuration` (Windows Time must be running).
|
||
Check the source matches the design (domain controller, NTP server or `NOSYNC` on Vnet/IP).
|
||
|
||
## Test system results (2026-09-29)
|
||
|
||
- Version R1.03.00 (r10200M). Matches the repo.
|
||
- Environment variables and folders as in the table; all tools and setup files named in
|
||
IM 36K10J10 are present except `tmtime` (a Vnet/IP station tool, not expected here).
|
||
- CI Service stopped on 2026-09-29; started 2026-09-30 from an elevated session. About 100
|
||
processes then run (e.g. `ciserv`, `dssman`, `itm`, `alm`, `his`, `rptgen`, `opcexe`,
|
||
`durm_udp`, `eqpmdc`, `eqpmqtt`, `wfl*`).
|
||
- `LOCAL_NODE_DF`: version 1.3.0 (R1.03.00), node 1, **UNLICENCED**, router type Endpoint.
|
||
- Windows Time running, source `time.windows.com`; synchronized on 2026-09-30 (stratum 5).
|
||
|
||
## R1.05 test server results (2026-10-08)
|
||
|
||
Read-only check on the shared R1.05 test server (other projects run there).
|
||
|
||
- Version `CI Server R1.05.00 (r11609M)`; `LOCAL_NODE_DF` version 1.5.0, node 1, node name
|
||
`CORE_0001`, router type Endpoint, **licensed** (`NAME` = `THIS_NODE`, not `UNLICENCED`), so
|
||
the unlicensed 1-hour shutdown does not apply there.
|
||
- Paths as in the table (program and data both under `C:\Yokogawa\CIServer`).
|
||
- CI Service running, start type Automatic (Delayed Start), account `.\CIX_PROCESS`, binary
|
||
`C:\Yokogawa\CIServer\tls\exe\ciserv.exe`.
|
||
- Windows Time synchronized from the *VM IC Time Synchronization Provider* (virtual machine
|
||
host), stratum 4.
|
||
- Section 3 (starting and stopping) was not repeated: the server is shared and must not be
|
||
restarted for a test.
|