新しいスクリプトエンジン
XScript の実行エンジンを新規開発し、既定エンジンに切り替えました。エラー検出が正確になり、コンパイル済みバイトコードで実行されます。
スクリプトエンジンを一から作り直し、ハードウェアなしでシーケンスを検証できるようにし、 画面・メッセージ・ライセンスを全面的に整理しました。2026 年に行った開発内容をすべて盛り込んだ正式版です。
4.0 で最も大きく変わった 8 点です。詳細は以下の項目別一覧をご覧ください。
XScript の実行エンジンを新規開発し、既定エンジンに切り替えました。エラー検出が正確になり、コンパイル済みバイトコードで実行されます。
オプション 1 つで IO・モータが仮想デバイスに切り替わります。実機がなくてもシーケンスを最初から最後まで動かせます。
スクリプトのソース (.xms) なしでコンパイル済み (.xmc) のみを配布できます。配布先では実行のみ可能で、編集はできません。
開発画面(メニュー・ツールバー・タブ・ダイアログ)を英語/韓国語に即座に切り替えます。コンパイルエラー一覧も翻訳されます。
チャート・アラーム一覧・シーケンス表示器・ローディングスピナーなど 15 種類以上を追加し、SVG ベクター画像に対応しました。
SQLite / MSSQL をスクリプトから DB["名前"] で直接操作し、Database Studio 画面でスキーマとクエリを管理します。
パスワードポリシー・アカウントロック・監査ログ・自動ログアウトを備えたアカウント体系に書き直しました。
体験版/無償開発/正規品の 3 段階に整理し、ドングルの接触不良でもラインが即停止しない猶予運転を導入しました。
言語そのものが大きく広がりました。既存のスクリプトはそのまま動作し、新しい構文は必要なときに使えます。
スクリプト実行エンジンの既定値が新エンジン(Bytecode)になりました。ツールオプション > Script Engine で Legacy に戻せます。
実行前にスクリプトをバイトコードにコンパイルします。ビルドキャッシュ (.xmc) により、ソースが変わらなければ再コンパイルしません。
稼働中のエンジンとバージョンをシステムログ・起動ログに表示します。スクリプトからは SYS.GetScriptEngine() で確認できます。
整数演算を 64 ビット精度で正確に処理します。非常に大きな値の計算・比較・ビット演算がずれません。
配列の範囲外に書き込むと暗黙に配列が伸びていた動作を、実行時エラーに統一しました。
char 型 — 文字定数 ('A')、文字比較、文字と数値の演算、文字列のインデックス参照 (str[i]) に対応。
byte 型と byte 配列 — バイナリ通信パケット処理用。範囲を超えると自動的にラップします。
switch 文 — case 1, 2 のようにカンマで複数値を一致判定し、自動 break します。
16 進数・2 進数リテラル — 0xFF、0b1111_1111。桁区切りの _ が使えます。
中かっこなしの 1 行文 — if(a) Log(a); のように C#/C++ スタイルで記述できます。
複数行にわたる文 — 行末のバックスラッシュなしで、かっこ内で自由に改行できます。
関数の戻り値型宣言 — FUNCTION bool Foo() / FUNCTION void Bar()。省略時は従来どおりです。
ref パラメータ — 値と成否を同時に返す関数を作れます。
短絡評価 — if(A && B()) で A により結果が確定すれば B() を呼び出しません。
C# enum の自動サポート — ドライバが提供する enum を 型名_値名 の定数としてそのまま使えます。
CONTROL["モジュール::コントロール"] — 画面コントロールのプロパティをスクリプトから読み書きします。
DRIVER["ドライバ名"] / LIB["名前"] — ドライバ固有機能とプロジェクト専用ライブラリを呼び出します。
DB["名前"] — データベースのクエリ・トランザクション・バックアップをスクリプトで処理します。
CONTAINER["名前"] — コンテナへの直接アクセス。ワーク管理が DEVICEMGR / CONTAINER / DEVICE の 3 階層に整理されました(従来の構文もそのまま動作)。
スレッド同期 — SYS.CreateEvent/WaitEvent、SYS.CreateSemaphore/WaitSemaphore。Sleep によるポーリングなしで完了を待てます。
表データのカーソル API — UseTable/AddRow/SetField/GetField でインデックス計算なしに行・フィールドを扱えます。
シリアル番号マネージャ — 規則の登録・発番・プレビューをスクリプトから行えます (SN.*)。
シーケンス状態の取得 — SYS.GetCurrentStep(module)、SYS.GetCurrentStepIndex(module)。
繰り返しログの一括抑制 — SYS.SetDebugLog(true/false)。
ジョブファイルの動的切り替え — SYS.ChangeJobFile("Default.JOB", false) で無音切り替え。
HTTP 送信 (SYS.SendHttpPost/Get/Patch/Delete) に呼び出し単位のタイムアウトを追加し、同時実行時の処理性能を大幅に改善しました。応答不要の状態報告用に SendHttpPostFireAndForget も追加しています。
未使用の通信機器を除外 — COM["名前"].SetUse(false) で自動接続と接続失敗通知を止められます。
これまで「実行してみないと分からなかった」誤りをビルド時に検出します。打ち間違いや引数ミスでラインが止まることが大幅に減ります。
オブジェクト名の誤り検出 — スクリプトに文字列定数で書いた IO・モータ・デバイス・モジュール名が実在するかをビルド時に検査します。大文字小文字だけが異なる場合はヒントを表示します。
プロパティ・引数の検査 — 存在しないプロパティ名、引数の個数違い、ref パラメータへの値渡しをエラーとして検出します。
型の検査 — bool 変数への文字列代入、bool への +=、戻り値型の不一致を検出します。
関数の二重宣言をビルドエラーとして通知します(従来は片方が黙って無視されていました)。
画面バインドの検証 — デザインコントロールの DataName の誤りを「名前なし」「型不一致」に分けて警告します。変数名を変更してもビルド時に自動で再接続されます。
IO・モータの関数リンク検証 — 打ち間違いや関数削除でリンクが切れた場合、ビルド警告で表示します。
コンパイルエラーの文言を韓国語/英語で表示します。表示言語を切り替えると一覧も即座に切り替わります。
F8 / Shift+F8 で次・前のエラー位置へ移動します。
エラー位置に実際の関数名・ステップ名とその中の行番号を表示し、ダブルクリックで該当スクリプトへ移動します。
同じエラーが連続する場合は 1 行にまとめ、繰り返し回数を (xN) で表示します。
スクリプトエディタのダーク/ライトテーマ対応(キーワード・コメント・文字列・数値・行番号・検索ハイライト)。
構文強調表示コントロール (SyntaxEditor) — 画面上に XScript / C# / C++ / HTML / JSON / XML のコードを強調表示できます。
検索結果を検索語ごとのタブで表示(最大 10 個、F3 / Shift+F3 で移動)。
コード補完を強化 — 配列メンバー、CONTROL[・DEVICE[・VISION[・DB[ の名前一覧、小文字 sys. → SYS. の自動補正、存在しないパラメータのその場での追加。
コード整形 (Ctrl+D) が中かっこなしの本文と } else { の表記を正しくインデントします。
保存時にセミコロンを自動挿入する機能を廃止しました。入力したソースがそのまま保存され、誤った位置のセミコロンは検査で警告として表示されます。
外部エディタで .xms / .xmd を編集すると自動検出し、確認後に再読み込みして編集中のタブとカーソル位置を復元します。
シミュレーションモード — プロジェクトオプションで有効にすると IO・モータが内蔵の仮想オブジェクトに切り替わり、ハードウェアなしでシーケンスを実行できます。仮想モータは速度・加減速の設定から移動時間を計算し、実ボードと同じように位置が進みます(原点復帰・ジョグ・停止・一時停止に対応)。仮想 IO は状態を記憶し、Wait 呼び出し時に期待状態を自動注入するため、シーケンスが自走します。タイトルバーに SIMULATION バナーが表示され、通常モードへ戻る際は全出力 OFF と全軸の再原点復帰を要求します。
メンテナンスモード — LOTO に近い安全作業モードです。移行すると全画面オーバーレイで操作を遮断し、モータ動作・イベント関数・外部スイッチ・ショートカットを無効化します。解除は Engineer 以上の権限でのみ可能です。スクリプト SYS.EnterMaintenance/ExitMaintenance で制御します。
トレイモード — 装置モードで起動した際、画面を出さずにシステムトレイでバックグラウンド動作します(トレイメニューの Show / Hide / Exit)。
Windows シャットダウン対応 — PC のシャットダウンやログオフ時に運転を停止し、ランデータを自動保存します。スクリプトイベント OnWindowsShutdown で終了を拒否することもできます(プロジェクトオプションで設定)。
装置モードのシステム問題通知 — ドライバ読み込み・設定データファイル・通信接続・スクリプトエラーを装置画面のダイアログで通知します(オプション、問題がなければ表示されません)。
運転開始 (Start) 時に Run 画面へ自動切り替えするオプションを追加しました(既定はオフ)。
チャート — 折れ線/棒 (XBarChart) /円 (XRadialChart)。X 軸ラベル書式・カテゴリ・表示間隔、棒上部の数量表示、系列タイトルの多言語対応。
アラーム・イベント一覧 (XAlarmListView / XEventListView) — 検索・フィルタ・CSV 出力・自動スクロール、Ack / Reset / 詳細ボタン、優先度カラーバッジ。
シーケンス表示器 (XSequenceDisplay) — モジュールの現在ステップ・サイクルタイム・ステップ別通過回数と最終実行時間を 1 画面に表示。
ローディングスピナー — 5 種類の形状 × 4 種類のアニメーション。値の連結で自動 On/Off。
方向ボタン (ArrowButton) — 上下左右/CW/CCW/Stop のベクターアイコン、Click / Momentary / Toggle モード、LED インジケータとラベル。
円形プログレスバー (XCircularProgressBar)、タイマー (XTimer、実行時は非表示)、タッチジェスチャ領域 (XTouchArea、スワイプ)、日付選択 (XDatePicker)、パスワード入力 (XPasswordBox)、円・楕円図形 (ShapeCircle)、項目リスト (XItemListBox)、シリアル規則エディタ (XSerialNumberRuleEditor)。
SVG ベクター画像に対応 — Image / ImageButton / ImageDisplay / AnimateImage で PNG と同じように .svg を選択できます(解像度によらず鮮明)。
DataGrid の列ソート — ヘッダークリックで昇順 → 降順 → 解除。ソート中は実時間更新を止めて並び順を保ちます。
値別の文字色・状態バッジ — セルの値に応じて文字色やピル形状のバッジで表示します。専用の編集ダイアログとテンプレートギャラリー(OK/NG、Traffic、Grade など)を用意しています。
条件付き書式 — テキスト含む、数値の超過/未満/以上/以下の規則に対応。
チェックボックス列、ヘッダーのチェックボックスによる全体トグル(3 状態)。
外枠ボーダー・角丸・行の高さ・スクロールバー表示などのデザインプロパティを追加しました。
列ヘッダーとコンボ項目の多言語対応(オプトイン、既存プロジェクトに影響なし)。
スクリプトからの強制更新 — CONTROL["モジュール::コントロール"].RefreshData()。
プロパティのカテゴリ分け — Layout / Appearance / Behavior / Data / Event の折りたたみグループに整理し、Name・Caption は常に最上部に表示します。折りたたみ状態を記憶し、Name / Category の並び順を選べます。
小さなコントロールを選択するとサイズ変更ハンドルが覆いかぶさってマウスで移動できなかった問題を解消し、選択中のコントロール上で移動カーソルを表示します。
デザインページに未知のコントロールがある場合、黙って消えていた動作を警告ダイアログで通知します(保存時に失われる可能性を告知)。
名前を変更したコントロールが RUN モードでのみ消える問題、コピー時に名前が _1_1_1 のように累積する問題を修正しました。
コントロールをダブルクリックすると、対応するイベントスクリプト関数が自動生成またはエディタで開かれます。
Show Design Window のプレビューが、画面より大きいデザインを比率を保って縮小し全体を表示します。
ビジョン画面 (XvDisplay) のマルチタッチ — 2 本指ピンチで拡大縮小、ドラッグで移動、ダブルタップで画面フィット。
仮想キーボードを大幅に改良しました。表示倍率 50〜300% の調整、韓/英切り替えボタンと物理キーボードの同期、キャレット移動・削除キー (Home/◀/▶/End/Del)、長押しの自動リピート、Enter での入力確定。1 回押したのに 2 回入力される、勝手に閉じるといったタッチ操作の問題も解消しました。
韓国語 IME がない OS でキートップが誤って韓国語表示になる問題を修正しました。
Tools メニュー > 表示言語(English / 한국어) — メニュー・ツールバー・タブ・ソリューションエクスプローラー・プロジェクトオプション・共通ダイアログが即座に切り替わります。すでに開いているタブ名も更新されます。
プロジェクト言語を変更してもメッセージが以前の言語のまま表示される問題(再起動が必要だった問題)を解消しました。
メッセージ表示言語の規則を統一しました — プロジェクト言語がカタログにない場合は英語で表示します。
すべての案内・確認メッセージをメッセージカタログベースに移行しました。Windows 標準のメッセージボックスを廃止し、約 380 か所のハードコード文言をメッセージコードに統一したため、韓/英の自動切り替えとプロジェクト単位の文言変更が可能になりました。
メッセージ・エラーエディタを JSON カタログエディタに一本化しました (Ctrl+4 / Ctrl+5)。ビルトイン/プロジェクトメッセージ/プロジェクトエラーを 1 画面で切り替え、カテゴリツリー・検索・多言語インライン編集・検証を提供します。
翻訳用 Excel の出力/取り込み — コード・原文・訳文の 3 列を 1 シートにまとめて翻訳者へ渡し、取り込み時に新規/変更/同一の件数をプレビューします。プレースホルダ ({0}) の一致検証と自動バックアップも行います。
ビルトインメッセージをプロジェクトへコピーするボタンを追加しました(プロジェクトにないコードのみ追加)。
複数行メッセージの扱いを整理しました — 編集欄に \n が文字として見える問題、エラーダイアログやログで改行が壊れる問題を解消しています。
アラーム状態遷移 — Active → Acknowledged → Cleared → ResetRequired → Resetting → Completed。Ack(認知)と Reset(復旧指令)の意味を分離しました(従来互換の Legacy モードは既定でオン)。
アラーム詳細ダイアログ — コード・時刻・モジュール・状態・優先度・確認者をヘッダーに構造化して表示し、本文(メッセージ/原因/処置)と全体コピーに対応します。
トースト通知 — ShowTimerMessage を非モーダルのトーストで表示します。位置・表示時間・フォント・色・同時表示数を設定でき、ライブプレビューで確認できます。
スクリプト関数 ShowWarning / RegisterAlarmHandler / ClearAlarm / LogEvent を追加しました。
カスタムテーマ — プロジェクトフォルダの Themes にあるテーマファイル (.xaml) を選んで適用します。専用のテーマエディタユーティリティ (QmsThemeEditor) も同梱しています。
ダーク・カスタムテーマで文字が背景に埋もれる問題を製品全体で整理しました(メニューのマウスオーバー、ボタンキャプション、タイトルバー、ツリーの選択項目、プロパティ見出し、入力欄など)。テーマファイルにない色は内蔵テーマから自動補完します。
使用していなかった Green テーマを削除しました。標準テーマは Light / Dark です。
スクリプトからの DB アクセス — DB["名前"] で SELECT・パラメータ付きクエリ・トランザクション・JSON スキーマによるテーブル作成・オンラインバックアップを処理します。SQLite と MSSQL に対応します。
Database Studio — Structure / Data / SQL の 3 タブ。スキーマを表形式で編集し(ドロップダウン・テンプレート・ワンクリック列)、SQL エディタで構文強調・F5 実行・選択実行・履歴を利用できます。
Database Connections — 接続をカード一覧で管理し、接続テストと自動バックアップを設定します。SQLite のパス変更時はファイルの移動/コピーを確認します。
Database Events — DB イベント 8 種(開始・終了・エラー・バックアップ・リモートなど)の実装状況を確認し、一括で追加できます。
DB[ の名前一覧とメンバーのコード補完に対応しました。
CSV 出力など DB 照会中にログを残さず終了する問題、テーブルスキーマ読み込み時に即座に終了する問題を解消しました。
アカウント体系の再構築 — パスワードを PBKDF2-SHA256 で保存し、ユーザーデータを AES-256 で暗号化します。監査ログ (Audit Trail) はハッシュチェーンで改ざんを検出します。
ポリシー設定 — パスワード最小長・有効期限・期限切れ事前警告・履歴の再利用禁止・ログイン失敗によるロック・未使用アカウントの無効化・管理者リセット後の変更強制。
自動ログアウト — 無操作時間と運転中のログアウト時間を分単位で設定します(0 で無効)。自動運転中は無視され、スクリプトから一時的に抑制できます。
ユーザー管理画面 — Users / Audit Log / Policy タブ、アカウント状態の色・バッジ表示、ロック解除と仮パスワード発行、変更発生時のリアルタイム更新。
スクリプトのログイン API — GUI.Login(id, pw)、GUI.IsLoggedIn、GUI.CurrentUserId/CurrentUserName、失敗理由の取得 (LastLoginResult / LastLoginMessage)。
要求権限レベルが Developer 未満で、該当ビルトインアカウントのパスワードが空の場合にログイン画面を出さずに通過するオプションが既定でオンになりました。常にログイン画面を表示したい場合はプロジェクトオプションで解除してください。Developer レベルはオプションに関係なく常に表示されます。
パスワード最小長の既定値が 8 から 0(制限なし)に変わりました。
ログイン画面・パスワード変更画面が多言語に対応し、プロジェクトのデザインフォントが適用されます。
一時停止/再開 — 移動中に減速停止し、再開すると本来の目標位置まで続けて移動します。即時減速停止 (MotionHold) と、進行中の移動を終えてから停止 (StepBoundary) のどちらかを選べます。原点復帰・センサ検索移動とガントリのスレーブ軸は対象外で、コンベアのように回り続ける軸はモータごとの PauseEnable で除外できます。
関数リンクの可視化 — モータ一覧に Check / PreHome / AfterHome のリンクランプと関数名、'Check Function' 列を追加しました。名前は指定済みでも未リンクの関数は淡色表示し、理由をツールチップで案内します。
モータ設定画面の +/X ボタンで Check / PreHome / AfterHome 関数をその場で作成・リンクできます。
モータテスト画面を整備しました — 最後の操作結果を示す STATUS 行、機能別カラーベクターアイコンのステータスヘッダー、'In Motion' 列の追加、未使用信号の自動非表示。
Motor Repeat / Cylinder Test で動作失敗時に原因メッセージ付きのエラーアラームを表示します。
MotorDisplay のステータスアイコン・ランプ色・各欄の表示有無をプロパティで調整できます。
IO エディタでの関数リンク — チェック/イベント関数を +/X ボタンで作成・リンクし、設定ファイルに保存します。一覧にリンク状態(緑の点+関数名)が表示され、エディタを開いたままビルドしても自動更新されます。
IO のチェック/イベント関数が (name, state) の第 2 引数で ON/OFF 値を直接受け取ります。
IO 状態監視を専用スレッドに分離し、イベントスクリプト内の Sleep で画面が止まらないようにしました。
カスタム IO モジュール — IN/OUT の方向と点数を直接入力して IN32OUT32、IN48OUT48 のような任意モジュールを作成できます(非対称点数に対応、1 モジュール最大 1000 点)。
IO 点数の多いモジュールを選択した際に一覧の動作が重くなる問題を解消しました。
マルチブザー対応 — ブザーモード(単一/4 チャンネル/15 組み合わせ)と K1〜K4 の IO、状態ごとのサウンド番号を設定します。スクリプト TOWERLAMP.SetBuzzerSound/PlayBuzzerSound も追加しました。
シグナルタワーエディタを整備しました — 色別ヘッダー背景、未使用色の自動非表示、削除確認、編集内容の消失や複製が原本まで変わる問題の解消。
ワークコンテナの機能を拡張しました — マップ座標検索 (GetDevicePos 系)、容量とマップサイズの設定、EmptyCount / IsFull / IsEmpty、移動先の受け入れ可否を事前確認する原子的なワーク移動。
EasyVision が QVision に名称変更されました(ドライバ名 "QVision"、サンプル QVisionSample)。
OCR ツール — 文字領域の分割と学習フォントのマッチングで文字を認識し、OCR 設定と文字パターンを 1 つのフォントファイルにまとめて保存・復元します。
形状サーチ (Find) の精度を改善 — エッジ極性マッチング(Normal / Inverse / Any など 6 モード)、モデルエッジ基準のスコア、エッジマッチング許容誤差、暗い低コントラスト背景向けの Canny 自動調整、学習した画像自体を再検索するとスコアが低く出る問題の解消。
ゲージを追加 — ひし形 (Rhombus) ゲージ、円形ゲージの表示改善。
ビジョンオブジェクトエディタを刷新 — カメラ/画像/ツールの一覧を 1 つのツリーに統合し、多言語に対応しました。保存確認なしに変更が失われる問題も解消しています。
RTSP/IP カメラドライバ (XRtspCamera) — CameraID に rtsp:// URL を入力して接続し、切断時は自動再接続します。低遅延オプションと GPU ハードウェアデコードに対応します。
USB カメラの自動復旧 — フレームの途切れを検出して再接続し、無応答時に過去のフレームが撮影され続ける問題を解消しました。
QR の総合グレード判定 (ISO 15415 / ISO 29158) に対応しました。
FCAT — Floware EtherCAT ベースのモーション/IO ドライバ。リミット・原点センサの取得、InPosition 信号、CiA402 原点復帰方式の指定、マスタ再起動・異常終了の検出に対応します。
LS PLC (XGT FEnet) — TCP クライアント。% なしで D7000、M100.5 のような簡易表記で入力できます。
Dynamark K300 プリンタ — インク残量・温度・電圧・RPM などの状態取得、ジョブ切り替え、5 言語のエラーメッセージ。
UV Controller (RS485)、Phoseon FireJet UV 硬化装置。
Web リモート制御 (QWebRemote) — スマートフォン・タブレット・PC のブラウザから接続して IO / モータ / シリンダを確認します。モータには方向別ジョグダイヤルと速度選択があり、装置の稼働中は操作が遮断され、通信が切れるとモータが自動停止します。
QMachineNet — ユニット別 RGB LED 制御、StallGuard の時系列収集、ファームウェアバージョンの取得。
Ajin モータドライバに加減速プロファイルモード(対称/非対称台形、疑似 S 字、対称/非対称 S 字)と S 字ジャーク設定を追加しました(既定値は従来どおり)。
Ajin EtherCAT のスレーブ欠落検出 — 設定軸数と実際に認識された軸数が異なる場合、明確なエラーログとともにモーションを遮断し、軸がずれて別の軸に指令が出る事故を防ぎます。
ModBus TCP/RTU の分割受信、TCP 再接続、LS PLC の応答照合など、通信の安定性を全般的に強化しました。
ドライバが依存 DLL(ネイティブランタイムを含む)をサブフォルダからも読み込めるよう検索パスを拡充しました。
配布ツールの刷新 — 17 個のチェックボックスの組み合わせに代えて、配布目的 4 種(Project Update / Project Full / Program Update / Full Package)を選ぶ方式にしました。予想・経過時間と進捗バーを表示し、完了時にフォルダを自動で開きます。開発用ファイル(.git、DevDocs、*.bak/tmp/log など)は自動的に除外されます。
バイナリ配布 — スクリプトのソース (.xms) なしでコンパイル済み (.xmc) のみを配布します。配布物は実行専用で、Studio への移行とコード編集はできません(スクリプトエンジンが Bytecode の場合のみ可能)。
Git 連携 — File メニューに Git Add / Revert / Push を追加しました。コミット画面で変更ファイルをチェックボックスで選んでそのままコミットでき、ファイル状態をベクターアイコン(変更・追加・削除・リネームなど)で区別し、ファイル名のダブルクリックで差分を確認できます。画面は韓国語/英語に対応します。
インストーラ (Inno Setup) — 韓国語/英語/日本語のセットアップウィザードと使用許諾契約書を提供します。インストール完了後に、選択した言語でこのリリースノートを開けます。
オープンソースライセンス表示 — Help メニューから使用中のオープンソースパッケージ・著作権・ライセンス全文を確認でき、配布物に Licenses フォルダが同梱されます。
リリースノートの表示 — Help メニューから本ドキュメントを英語・韓国語・日本語・中国語で開けます。
マシンアイコン (.ico) をプロジェクトオプションに登録すると、デスクトップのショートカットが自動生成されます(顧客ごとのアイコン)。
エディションの整理 — Trial(体験)/QMachineStudio Free(無償開発)/Licensed(正規品)の 3 段階に整理しました。新規プロジェクトの作成・編集・保存・ビルドはすべてのエディションで制限がなく、体験期間終了後も開発とシミュレーションは期間制限なく利用できます。
体験期間は 30 日です。
猶予運転 — 稼働中にドングルの接触が一瞬切れても 30 秒までは無視し、喪失が確定した場合は 48 時間の猶予運転を許可します(臨時稼働コードの発行中にラインが止まらないようにするため)。画面上部に残り猶予時間をバナー表示し、ドングルが再認識されると猶予は即解除されます。
ソフトウェアライセンスの登録 — 別プログラムなしで License ダイアログからシステムコードを確認・コピーし、発行ファイルを取り込んで登録できます。この PC 向けのファイルかを自動で検証します。
USB ドングル V2 フォーマット — 暗号化により改ざんを防ぎ、プロジェクトコードを内蔵します。既存の V1 ドングルもそのまま認識されます。
プロジェクト専用ライセンス — 特定プロジェクト専用に発行されたキーは、コードが一致するプロジェクトのみ実行します。プロジェクトオプションに Project Code タブが追加されました(Master キー装着時のみ表示)。
QMS License Studio — ライセンス発行ツールを新規に作成しました。複数ドングルの対象選択、書き込み前の変更確認、発行履歴の管理、発行仕様を含むテンプレート、多言語・ライト/ダークテーマに対応します。
ドングルの読み取り速度を大幅に高速化し(256 バイトで約 140ms → 約 16ms)、読み書き失敗時の自動リトライと書き込み後の再読み取り検証を追加しました。ドングル無応答でアプリケーションが固まる問題も解消しています。
ドングルが装着されていると軸数・プロジェクトコードの検査が無視される問題を修正しました。カメラ台数も併せて検査します。
About・スプラッシュ・ライセンス画面に現在のエディションとライセンス等級 (RunTime / Developer / Master) を表示します。
プロジェクトの起動・オープン時間 — IO / モータ / シリンダ / ビジョンの並列読み込み、デザインビューのコントロールスキャンキャッシュ共有、ファイルの二重パース排除、ツールボックス構築の遅延化、システムフォント一覧のバックグラウンド準備、スプラッシュのフェードアウト短縮(2 秒 → 0.5 秒)。
メモリリークの解消 — 開発者モードとランタイムモードの切り替えを繰り返すとメモリが増え続ける問題を解消しました(旧 RUN 画面世代の未解放、Window 型 ViewModule の未クローズ、点滅コントロールのグローバルイベント残留、メッセージ・アラームポップアップの蓄積、ビジョン画面世代の蓄積)。
スレッド安全性 — スクリプト配列の同時使用、乱数生成、DB の同時アクセス、ライセンスポーリングなどでまれに発生していたエラー・停止を排除しました。
ログの氾濫を抑制 — 同じステップエラーが繰り返される場合は初回のみ記録して回数を集計し、解除時に要約を残します。未接続機器の繰り返し失敗ログも一定間隔でのみ記録します。
異常終了の原因をログに記録 — 以前はログを残さず終了する場合がありましたが、原因が記録されるようになりました。ファイルダイアログやシェル拡張のエラーによる終了経路も防御しています。
モジュールを削除しても監視・シーケンススレッドが動作し続ける問題、データ表示コントロールの更新タイマーが重複登録されて CPU 使用率が上がる問題を解消しました。
プロジェクトを閉じて別のプロジェクトを開いた際に、モータ・IO・シリンダ・ページレベルのデータが前のプロジェクトのまま残る問題を解消しました。
プロジェクトの自動バックアップ — バックアップフォルダと保管世代数を指定し、最新 N 個を保持します(古いフォルダは自動整理)。
ScriptTutorial — XScript 学習用の 18 レッスンカリキュラム。左にコード、右に実行結果を表示する学習画面です。
ScriptSyntaxSample — 構文を分類別のボタンでテストし、同じコードを旧/新エンジンで実行して結果を比較できます。
SequenceSample — シーケンス学習用。ピッカー/コンベアの 5 モジュールが連動し、DEVICE の移動とシーケンス状態を画面で確認できます。
ChartDemo(チャート)、CameraSample(RTSP カメラ)、DB_Sqlite(DB の CRUD・トランザクション)、ModBus TCP クライアントのサンプル。
3.x のプロジェクトを 4.0 で開くと動作が変わる可能性のある項目です。現場適用の前にご確認ください。
スクリプトエンジンの既定値が新エンジン(Bytecode)になりました。ほとんどのスクリプトはそのまま動作しますが、これまで黙って通過していた誤りがコンパイルエラーとして表面化する場合があります。問題が生じた場合はツールオプション > Script Engine で Legacy に戻せます。
配布用 .xmc の形式が変わりました。バイナリ配布の前にスクリプトビルド (F6) で再生成してください。ソースが失われた .xmc は配布時に自動的に除外されます。
ステップと同名の関数があるとシーケンスステップが実行されない問題を、名前の分離により解消しました。同名の関数を二重に宣言するとビルドエラーになります。
配列の範囲外への書き込みは実行時エラーになります。配列サイズの変更は arr.Count の指定でのみ行ってください。
セミコロンの自動挿入は廃止されました。保存時に入力したソースがそのまま保持されます。
空パスワードの自動ログインオプションが既定でオンになり、パスワード最小長の既定値が 0 になりました。必要に応じてプロジェクトオプションで調整してください。
トーストの既定値が「上部中央 / フォントサイズ 20」に変わりました(プロジェクトオプション > Toast タブ)。
新規関数の既定の戻り値型は bool です(FUNCTION bool 名前() + return true)。
Green テーマが削除されました。Light / Dark またはカスタムテーマをご利用ください。
Map コンテナの行検索関数 (GetDeviceRow / GetDeviceRankRow / GetEmptyRow) が削除され、GetDevicePos 系に置き換わりました。
MOTION キーワードが削除されました。補間駆動は DRIVER["ドライバ名"] で呼び出してください。
名称変更 — EasyVision → QVision、JogArrowButton → ArrowButton(既存の保存ファイルは自動的に互換)、Message Editor → Message Error Editor。
シリアル規則ファイル (SerialRules.XDF) の場所がプロジェクトルートから XData フォルダへ移動します(プロジェクトを開く際に自動移動、作業は不要です)。
メッセージ/エラーの翻訳 Excel 形式が単一シート統合方式に変わりました(旧 3 シート形式も取り込み時に自動認識されます)。
スクリプト/デザインモジュールの削除は即時削除になりました(従来は Backup フォルダへ移動していました)。必要に応じてプロジェクトの自動バックアップオプションをご利用ください。