トップ » IROHA2ポータルサイト

IROHA2ポータルサイト

What's new

  • 2025.07.04 IROHA2.10.1の情報を追加
  • 2025.06.20 IROHA2.9.3およびIROHA2.10.0の情報を追加
  • 2025.04.16 IROHA2.9.2の情報を追加

IROHA2とは

IROHA2はJ-PARC MLFに設置された実験装置の制御や自動測定を行うためのソフトウェアフレームワークである。IROHA2はデバイス制御サーバー、装置管理サーバー、シーケンス管理サーバー、統合制御サーバーから構成される。これらのサーバーはすべてWebユーザーインターフェイス(Web UI)を持ち、ユーザーはWebブラウザから操作を行うことができる。

デバイス制御サーバー

デバイス制御サーバーは実験に用いる機器の監視および操作を行う。 機器に応じた制御プログラム(デバイスモジュール)を作成し、サーバーに登録することで、 Web UIを通して機器への接続や操作を行うことができる。

また、サーバーの操作に関するログ(操作ログ)、機器のステータスのログ(監視ログ)、 測定中の機器のステータスのログ(測定ログ)を保存する。 これらのログはWeb UI上で確認することが可能で、 測定ログについてはグラフとして可視化することが可能である。

装置管理サーバー

装置管理サーバーはデバイス制御サーバーで制御する機器の管理およびDAQシステムによる測定の制御を行う。 複数のデバイス制御サーバーと接続し、デバイス制御サーバーの状態の監視や 測定に用いる機器の構成(デバイス構成)の作成を行う。 装置管理サーバーから測定を行うことで、測定データに加えて機器の構成情報、設定値および 測定ログを保存することができる。

また、IROHA2のユーザーアカウントの管理や認証なども行う。 後述するシーケンス管理サーバーや統合制御サーバーからのリクエストを処理し、 デバイス制御サーバーへの指令を送る、ハブ的な役割を担っているサーバーである。

シーケンス管理サーバー

シーケンス管理サーバーは実験の自動化を実現するサーバーである。 機器の制御およびDAQシステムによる測定を実行するコマンド(ファサード)を組み合わせてスクリプトとし、 そのスクリプトを実行することで自動的に実験を実施することができる(測定シーケンス)。

Web UIを利用してスクリプトの作成や編集、測定シーケンスの実行が可能である。 また、測定シーケンスは動的に変更が可能であり、未実行のコマンドの順番を変更したり、 未実行のコマンドの途中に追加のコマンドを差し込むことも可能である。

統合制御サーバー

統合制御サーバーは装置管理サーバーおよびシーケンス管理サーバーから情報を収集し、 装置全体の情報を統合的に監視、制御するためのサーバーである。 Web UIのカスタマイズにより必要な情報を選択して表示することが可能である。

遠隔操作・監視

IROHA2の4種のサーバーはすべてWeb UIを持ち、ネットワーク内(JLAN)の任意のマシンからアクセスして操作を行うことができる。 IROHA2を実行しているマシンでの操作はもちろんのこと、そのマシンと同一のネットワーク内のマシンであれば操作が可能である。 これにより、例えば、J-PARC研究棟からIROHA2を操作し、実験をリモートで進めることも可能である。

また、統合制御サーバーおよびシーケンス管理サーバーは静的HTMLを出力する機能を持ち、 これを外部公開用サーバーに登録することでJLAN外から実験ステータスを監視することができる。

ドキュメンテーション

オンラインマニュアル

各種情報

バージョン情報

バージョン2.10.1

  • 暗号化モードでログインした場合のみ実験課題情報を取得できるように変更
  • 統合制御サーバーおよびシーケンス管理サーバーにおいて実験課題ユーザーで静的HTMLを出力する際のバグの修正
  • シーケンス管理サーバーのダッシュボードに試料情報を表示する際のバグの修正
  • 装置管理サーバーのメニューの表示に関するバグの修正
  • 装置管理サーバーにおけるモニタリングサーバーの情報取集に関するバグの修正

バージョン2.10.0

  • 装置管理サーバーおよび統合制御サーバーに外部サービス向けAPIの追加
  • 装置管理サーバーで測定毎に作成するログフォルダの書き込み権限を変更する機能を追加
  • デバイス監視ログ収集サーバーにおいて収集を開始するログの日時を指定する機能を追加
  • 試料管理データベースから課題情報および試料情報を取得する機能を追加
  • シーケンス管理サーバーのスクリプトの自動チェックの仕様変更
  • デバイス監視ログ収集サーバーの設定を設定ファイルで行うように変更
  • 統合制御サーバーのログイン画面が表示できないエラーが生じた際に、対処方法を表示するように修正

バージョン2.9.3

  • デバイス制御サーバーの隣接デバイスを共有する機能(SharedObject)について、SharedObjectを削除する関数を追加
  • デバイス制御サーバー起動時に各デバイスのEnable/Disableを復元する機能のバグを修正
  • シーケンス管理サーバーにおいて、未保存のスクリプトを予約する際のバグを修正

バージョン2.9.2

  • run.shで起動する際にpyenvコマンドを使用しないように変更
  • インストールマニュアルについて現行バージョンと旧バージョンとの説明を分離
  • 装置管理サーバーのWeb UI上の説明文を修正

バージョン2.9.1

  • Elasticsearchの状態を取得するスクリプトの追加
  • 装置管理サーバーのRunInfoを取得するAPIの修正
  • ソースコードの動的importに関する修正

バージョン2.9.0

  • シーケンス管理サーバーのファサード作成機能において複数引数を持つファサードを作成する機能を追加
  • 統合制御サーバーのサマリーパネル一覧画面およびデバイスパネル一覧画面においてパネルを一番上・一番下に移動するボタンを追加
  • 統合制御サーバーのデバイスパネル編集画面においてパラメータの表示・非表示を一括で切り替えるボタンを追加
  • 統合制御サーバーのデバイスパネル編集画面においてパラメータを一番上・一番下に移動するボタンを追加
  • 統合制御サーバーのデバイスパネルの表示幅を変更する機能を追加
  • 統合制御サーバーのダッシュボードにおいてデバイスパネルをサマリーパネルと同様に整列させるモードを追加
  • 測定リトライ時のルーチンを変更
  • デバイス制御サーバーにおいてAdminモードでもログを閲覧できるように変更
  • シーケンス管理サーバーのファサード引数ダイアログにおいて戻り値を返さないファサードについてはReturnの入力欄を表示しないように変更
  • シーケンス管理サーバーにおいてファサードを階層分けした際にファサードツリーに反映されない不具合の修正
  • シーケンス管理サーバーにおいてloopファサード使用時にloop内のファサードの引数が空の場合にループ変数の値が代入されてしまう不具合の修正
  • シーケンス管理サーバーおよび統合制御サーバーに非予約ユーザーでログインした際のログメッセージをInfoからWarningに修正

バージョン2.8.3

  • ユーティリティスクリプトを追加
    • デバイス制御モジュールのparams.tplの内容をチェックするスクリプト
    • Elasticsearchの管理用スクリプト
  • 現在のRun Noを取得するファサードを追加
  • ElasticsearchおよびGrafana用のDocker compose設定ファイルを追加
  • シーケンス管理サーバーのスクリプト編集パネルにおけるSave asボタンの挙動を修正

バージョン2.8.2

  • LakeShore340にオプションセンサー(C, D)を追加したデバイス制御モジュールを追加
  • 統合制御サーバーのDAQモジュール情報パネルを折りたためるように変更

バージョン2.8.1

  • デバイス制御サーバーのデバイス毎のHELPページが表示できない不具合を修正
  • 各サーバーのHELPページの表記を修正

バージョン2.8.0

  • 設定ファイルによるKickerコンポーネント名の指定
  • 統合制御サーバーへのDAQモジュール情報パネルの追加
  • Python2環境へのサポート停止(デバイス制御サーバー以外)
  • 装置管理サーバーのServer画面のUpdateボタンに関する不具合修正
  • 装置管理サーバーのDevelopment画面におけるMonitor Deviceの表示の修正
  • シーケンス管理サーバーのAdd&Now機能の不具合修正
  • Python3.9対応
  • 非推奨モジュールimpおよびその他非推奨メソッドの置き換え

バージョン2.7.3

  • Python2環境でのシーケンス管理サーバーのファサード読み込みに関するバグの修正
  • デバイスモジュールLSTempCOntEachHeater_350へパラメータ追加

バージョン2.7.2

  • デバイス制御サーバーでdevsettingファイルを読み込む際の例外処理の修正
  • 装置管理サーバーの一部ログメッセージのレベルを変更

バージョン2.7.1

  • DNA用LS350モジュールにヒーター出力取得のコマンド追加
  • run.shでの起動時にPythonの詳細なバージョン情報を表示するように変更
  • 統合制御サーバーでEnd conditionを使用した測定時に起きるエラーへの対応
  • ファサード作成機能の修正

バージョン2.7.0

  • デバイス監視ログ可視化機能の追加
  • デバイスインスタンス削除時のメソッド追加
  • デバイスモジュールのparams.tplにdefault属性を追加
  • デバイス制御サーバーにサーバー停止ボタンを追加
  • シーケンス管理サーバーのWeb UI改良
  • ログフィルター機能の強化
  • LS350およびLS336デバイスモジュールにランピング時にInProgressを無視するモードを追加
  • 測定情報におけるユーザー定義情報の表示・更新機能の追加
  • 測定ログ作成に関する仕様変更
  • シーケンス管理サーバーのスクリプトおよびファサードの読み込みに関する修正
  • デバイス制御サーバーのAllowed Hosts設定に関する修正

これ以前のバージョンについてはコード変更履歴を参照のこと。

動作環境

バージョン2.8から2.10

項目 バージョン等
OS Linux(RHEL8系, 9系、AlmaLinux8, 9を推奨)
Python 3.9(デバイス制御サーバーのみPython2.7でも動作可能)
Webブラウザ Firefox推奨

バージョン2.7

項目 バージョン等
OS Linux(RHEL7系, 8系、CentOS7を推奨)
Python 2.7(2.7.6以上を推奨), 3.6
Webブラウザ Firefox推奨

ダウンロード

IROHA2はRed Hat Enterprise Linuxおよびその派生ディストリビューションで動作することを想定している。 インストーラーやパッケージによるインストールではなく、ソースコードを任意のディレクトリに展開し、起動スクリプトで実行する。詳細についてはマニュアルを参照のこと。

ソースコードはJ-PARCユーザーに限り無償提供を行っているため、ダウンロード先の公開は行っていない。入手方法については開発担当者に問い合わせのこと。

バージョン 公開日 入手方法
2.10.1 2025.06.27 担当者問い合わせ
2.9.3 2025.05.29 担当者問い合わせ
2.8.3 2024.06.19 担当者問い合わせ
2.7.3 2024.01.18 担当者問い合わせ

問い合わせ先

開発担当:長谷美宏幸(JAEA J-PARCセンター)