[KEKB Bunch Feedback Group]

株式会社チノー製ハイブリッド記録計システムMH3000用EPICS Device Support(Japanese)


by とびやま まこと(Makoto Tobiyama)/KEKB ビームモニターグループ

警告
以下の記述に関しては、意図する、しないに関わらず多くの誤り、誤解が含まれていると思われますので、決して信用してはいけません。これを信じて起きた損害に関しては、当方は一切責任を持ちません。


If you need contact with the author, please E-mail makoto.tobiyama@kek.jp.
目次

1.はじめに

MH3000は本体で最大30チャンネル入力、拡張ボックス(各30点入力可)を全部で9台までつなげられるハイブリッド記録計です。3点式白金抵抗体温度測定機能を使って温度測定を行います。

2.サポートする機能

MH3000は非常に多くの機能を持っており、それぞれGP-IB経由でコントロールする事ができますが、このデバイスサポートでサポートする機能はデータの読みとりのみです。設定機能は実装していません。

3.EPICS環境

本デバイスサポートは、EPICS R313で開発したものです。EPICSそのものに対する説明、入門出家入道遁世については専門家に帰依するなり、コントロールグループのページをご参照なさるなり勝手になさってください。動作はPPC750で確認していますが、PPC750の場合アクセスが速いのでGP-IBをだます特殊な対応が必要です。

4.コードの概要

GDLコードのみを以下に示します。devMH2000Gpibを少しだけ拡張しただけです。 なお、このシステムのGP-IBは規格に合っていないため、GP-IBアクセススピードが速くなると答えが返せなくなります。このため、一遍gdcでコンパイルして.cファイルを作り、その中の
static struct  devGpibParmBlock devSupParms = {
  &MH3000Debug, /* debugging flag pointer */
  -5,    /* device does not respond to writes */
  TIME_WINDOW,  /* # of clock ticks to skip after a device times out */
  NULL, /* hwpvt list head */
  gpibCmds,     /* GPIB command array */
  NUMPARAMS,    /* number of supported parameters */
  -1,           /* magic SRQ param number (-1 if none) */
  "devMH2000Gpib",      /* device support module type name */
  DMA_TIME,     /* # of clock ticks to wait for DMA completions */
  NULL, /* SRQ handler function (NULL if none) */
  NULL  /* secondary conversion routine (NULL if none) */
  ,(int) '\xff' /* End of String(eos) */
};

のように、/* device does not respond to writes */の所を-1から変えて、この場合4/60秒のwaitを入れます(つまり、強烈なwaitを入れなければ全然動作しない)。

dbdファイルの中で次のように定義します。(自動的にできるはず)

#MH3000 dbd list

device(ai,GPIB_IO,devAiMH3000Gpib,"MH3000")
device(ao,GPIB_IO,devAoMH3000Gpib,"MH3000")
device(bi,GPIB_IO,devBiMH3000Gpib,"MH3000")
device(bo,GPIB_IO,devBoMH3000Gpib,"MH3000")
device(stringin,GPIB_IO,devSiMH3000Gpib,"MH3000")
device(stringout,GPIB_IO,devSoMH3000Gpib,"MH3000")
device(longin,GPIB_IO,devLiMH3000Gpib,"MH3000")
device(longout,GPIB_IO,devLoMH3000Gpib,"MH3000")
device(mbbi,GPIB_IO,devMbbiMH3000Gpib,"MH3000")
device(mbbo,GPIB_IO,devMbboMH3000Gpib,"MH3000")
device(waveform,GPIB_IO,devWfMH3000Gpib,"MH3000")

5.EPICSデータベースサンプル

このデバイスサポートで使うデータベースの例(FB温度システム用)を示します。
DTYPRecordSignalNameFunctionRemarks
MH3000waveform0FBTEMP1:TEMP01ユニットの11〜10までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform1FBTEMP2:TEMP01ユニット1の11〜20までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform2FBTEMP3:TEMP01ユニット1の21〜30までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform3FBTEMP4:TEMP01ユニット2の1〜10までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform4FBTEMP5:TEMP01ユニット2の11〜20までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform5FBTEMP6:TEMP01ユニット2の21〜30までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform6FBTEMP7:TEMP01ユニット3の1〜10までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform7FBTEMP8:TEMP01ユニット3の11〜20までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform8FBTEMP9:TEMP01ユニット3の21〜30までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform9FBTEMP10:TEMP01ユニット4の1〜10までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform10FBTEMP11:TEMP01ユニット4の11〜20までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform11FBTEMP12:TEMP01ユニット4の21〜30までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform12FBTEMP13:TEMP01ユニット5の1〜10までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform13FBTEMP14:TEMP01ユニット5の11〜20までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform14FBTEMP15:TEMP01ユニット5の21〜30までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform15FBTEMP16:TEMP01ユニット6の1〜10までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform16FBTEMP17:TEMP01ユニット6の11〜20までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform17FBTEMP18:TEMP01ユニット6の21〜30までの温度scanは10秒より速くするとデータ転送しきれない
MH3000waveform18FBTEMP19:TEMP01ユニット7の1〜10までの温度scanは10秒より速くするとデータ転送しきれない
実際の各部の温度はこのままでは使いにくいので、subarrayで一遍1elementに変換し、さらにai等に名前変換をして使っています。

6.スタートアップファイルサンプル

通常通りのGP-IB設定をすればOKです。

7.おわりに

このデバイスサポートはMH2000用をほんのわずかに変更しただけで、太古の昔の趣を今に伝える情けない格好で実用に耐えています。とりあえず読めれば良いやという安易な極みの気持ちで作ったので最低限の読みとり機能しかもっていません。実際は、このハイブリッド記録計のパネル面での設定のユーザーインターフェースはお世辞にも使いやすいとは言えず(かなり控えめな言い方)、設定変更をしようとするとマニュアルを探したり、これ見よがしにしきりと出る悪魔のような設定エラーブザーやちょっとした操作ボタンの押し間違えで延々と入れたパラメータを一瞬で忘れられたりすることに激怒したりとたいがいオオゴトになります。特に、修理に出した後設定が完璧にリセットされていたのに気づき呆然と立ちつくしたこともあります。 せっかくならちゃんと設定出来るようにしておくべきだったと反省しています(しかし今更作るのもねぇ)。
Makoto Tobiyama
14/Mar/2001

Return to FB Home Page...