第 5 章 弊社 FA コンピュータ製品への組み込み 72
6.1 スロットイン電源モジュール, バッテリモジュール監視関数
6.1.2 個別説明
1. IfPsmGetModuleId
【機能】
システムに実装されたスロットイン電源モジュールのIDを取得します。
【書式】
#include <IFgen.h>
int IfPsmGetModuleId(
unsigned short *ModuleId );
【パラメータ】
ModuleId スロットイン電源モジュールのIDを格納する変数へのポインタを設定し
ます。
配列 説明
ModuleId[0] スロット1の電源モジュール種別
ModuleId[1] スロット2のスロットイン電源モジュール種別
ModuleId[2] スロット3のスロットイン電源モジュール種別
ModuleId[3] スロット4のスロットイン電源モジュール種別
ModuleId[4] スロット5のスロットイン電源モジュール種別
ModuleId[5] スロット6のスロットイン電源モジュール種別
配列のインデックス番号は、電源バックプレーン上に記載されているシルク番号(P 番号)と 一致しています。
※ 下記の①〜⑥はスロット1〜スロット6に対応しています。
製品によって図は異なります。
ID 型式 説明
05h JPS-2057 DC+12V入力モジュール(絶縁 80W)
06h JPS-2055 DC+24V入力モジュール(絶縁 80W)
08h JPS-2101 ATX出力モジュール(100W)
09h JPS-2001 AC100V/200V入力モジュール(絶縁 130W)
0Ah JPS-2053 DC+100V入力モジュール(絶縁 130W)
0Bh JPS-2051 DC+48V入力モジュール(絶縁 130W)
0Ch JPS-1059 DC+12/24V入力モジュール(非絶縁 130W)
0Dh JPS-105701 DC12V電源バス専用DC+12V入力モジュール(非絶縁 50W)
0Eh JPS-105501 DC+24V入力モジュール(非絶縁 150W)
0Fh 未実装 スロットイン電源モジュールが実装されていない
【戻り値】
0: 正常終了
-1: 異常終了(SMBusへのアクセスに失敗しました)
【備考】
注意
!
本機能は、スロットイン電源モジュール2スロットでは使用できません。
弊社FAコンピュータ製品では、製品選択時に「電源モジュール仕様」を選択すると、スロッ トイン電源モジュールが利用できます。この関数は、スロットイン電源モジュールのIDを検 出するためのものです。検出されたIDより型式を確認することができます。
なお、各製品の詳細仕様は、弊社Web site(を参照してください。
【使用例】
int r;
unsigned short ModuleId[6];
r = IfPsmGetModuleId(ModuleId);
if (r) {
printf("IfPsmGetModuleId ERROR ¥n");
} else {
printf("IfPsmGetModuleId – Slot1 Module ID %x¥n", ModuleId[0]);
printf("IfPsmGetModuleId – Slot2 Module ID %x¥n", ModuleId[1]);
printf("IfPsmGetModuleId – Slot3 Module ID %x¥n", ModuleId[2]);
printf("IfPsmGetModuleId – Slot4 Module ID %x¥n", ModuleId[3]);
printf("IfPsmGetModuleId – Slot5 Module ID %x¥n", ModuleId[4]);
printf("IfPsmGetModuleId – Slot6 Module ID %x¥n", ModuleId[5]);
}
ModuleId[0]は電源バックプレーン上のシルクP1のスロット番号に対応し、ModuleId[5]がシルク
P6となります。
Linux System 構築ガイド
2. IfPsmGetStatus
【機能】
システムに実装されたスロットイン電源モジュールの状態を取得します。
【書式】
#include <IFgen.h>
int IfPsmGetStatus(
unsigned short *Status );
【パラメータ】
Status ALM信号, FAIL信号の状態を格納する変数へのポインタを設定します。
配列 説明
Status[0] スロット1のスロットイン電源モジュール状態
Status[1] スロット2のスロットイン電源モジュール状態
Status[2] スロット3のスロットイン電源モジュール状態
Status[3] スロット4のスロットイン電源モジュール状態
Status[4] スロット5のスロットイン電源モジュール状態
Status[5] スロット6のスロットイン電源モジュール状態
※ 下記の①〜⑥はスロット1〜スロット6に対応しています。
製品によって図は異なります。
①
状態はビットアサインにて格納されています。
ビット 説 明
0 ALM信号の状態
0:正常, 1:異常
1 FAIL信号の状態
0:正常, 1:異常
2〜15 システム予約
※ 各信号の説明は、ご使用のスロットイン電源モジュールのユーザーズマニュアルを参照し てください。
【戻り値】
0: 正常終了
-1: 異常終了(SMBusへのアクセスに失敗しました)
【備考】
注意
!
本機能は、スロットイン電源モジュール2スロットでは使用できません。
弊社FAコンピュータ製品では、製品選択時に「電源モジュール仕様」を選択すると、スロッ トイン電源モジュールが利用できます。この関数は、このスロットイン電源モジュールの状 態を検出するためのものです。各スロットに実装されたスロットイン電源モジュールの状態 を取得することができます。
なお、各製品の詳細仕様は、弊社Web site(を参照してください。
【使用例】
int r;
unsigned short Status[6];
r = IfPsmGetStatus(Status);
if (r) {
printf("IfPsmGetStatus ERROR ¥n");
} else {
printf("IfPsmGetStatus – Slot1 Module Status %x¥n", Status[0]);
printf("IfPsmGetStatus – Slot2 Module Status %x¥n", Status[1]);
printf("IfPsmGetStatus – Slot3 Module Status %x¥n", Status[2]);
printf("IfPsmGetStatus – Slot4 Module Status %x¥n", Status[3]);
printf("IfPsmGetStatus – Slot5 Module Status %x¥n", Status[4]);
printf("IfPsmGetStatus – Slot6 Module Status %x¥n", Status[5]);
}
Linux System 構築ガイド
3. IfPsm2GetModuleId
【機能】
25スロットFAコンピュータの下段に実装されているスロットイン電源モジュールのIDを取得 します。
【書式】
#include <IFgen.h>
int IfPsm2GetModuleId(
unsigned short *ModuleId );
【パラメータ】
ModuleId スロットイン電源モジュールのIDを格納する変数へのポインタを設定し
ます。
配列 説明
ModuleId[0] スロット1のスロットイン電源モジュール種別
ModuleId[1] スロット2のスロットイン電源モジュール種別
ModuleId[2] スロット3のスロットイン電源モジュール種別
ModuleId[3] スロット4のスロットイン電源モジュール種別
ModuleId[4] スロット5のスロットイン電源モジュール種別
ModuleId[5] スロット6のスロットイン電源モジュール種別
配列のインデックス番号は、電源バックプレーン上に記載されているシルク番号(P 番号)と 一致しています。
※ 下記の①〜⑥はスロット1〜スロット6に対応しています。
製品によって図は異なります。
ID 型式 説明
05h JPS-2057 DC+12V入力モジュール(絶縁 80W)
06h JPS-2055 DC+24V入力モジュール(絶縁 80W)
08h JPS-2101 ATX出力モジュール(100W)
09h JPS-2001 AC100V/200V入力モジュール(絶縁 130W)
0Ah JPS-2053 DC+100V入力モジュール(絶縁 130W)
0Bh JPS-2051 DC+48V入力モジュール(絶縁 130W)
0Ch JPS-1059 DC+12/24V入力モジュール(非絶縁 130W)
0Dh JPS-105701 DC12V電源バス専用DC+12V入力モジュール(非絶縁 50W)
0Eh JPS-105501 DC+24V入力モジュール(非絶縁 150W)
0Fh 未実装 スロットイン電源モジュールが実装されていない
【戻り値】
0: 正常終了
-1: 異常終了(SMBusへのアクセスに失敗しました)
【備考】
この関数は、25スロットFAコンピュータの下段に実装されているスロットイン電源モジュー ルの種別を検出するためのものです。検出されたIDより型式を確認することができます。
25スロットFAコンピュータの上段および標準タイプのスロットイン電源については、
IfPsmGetModuleId関数(関数名に2は付きません)をご使用ください。
なお、各製品の詳細仕様は、弊社Web site(を参照してください。
【使用例】
●C言語 int r;
unsigned short ModuleId[6];
r = IfPsm2GetModuleId(ModuleId);
if (r) {
printf("IfPsm2GetModuleId ERROR ¥n");
} else {
printf("IfPsm2GetModuleId – Slot1 Module ID %x¥n", ModuleId[0]);
printf("IfPsm2GetModuleId – Slot2 Module ID %x¥n", ModuleId[1]);
printf("IfPsm2GetModuleId – Slot3 Module ID %x¥n", ModuleId[2]);
printf("IfPsm2GetModuleId – Slot4 Module ID %x¥n", ModuleId[3]);
printf("IfPsm2GetModuleId – Slot5 Module ID %x¥n", ModuleId[4]);
printf("IfPsm2GetModuleId – Slot6 Module ID %x¥n", ModuleId[5]);
}
ModuleId[0]は電源バックプレーン上のシルクP1のスロット番号に対応し、ModuleId[5]がシルク P6となります。
Linux System 構築ガイド
4. IfPsm2GetStatus
【機能】
25スロットFAコンピュータの下段に実装されているスロットイン電源モジュールの状態を取 得します。
【書式】
#include <IFgen.h>
int IfPsm2GetStatus(
unsigned short *Status );
【パラメータ】
Status ALM信号, FAIL信号の状態を格納する変数へのポインタを設定します。
配列 説明
Status[0] スロット1のスロットイン電源モジュール状態
Status[1] スロット2のスロットイン電源モジュール状態
Status[2] スロット3のスロットイン電源モジュール状態
Status[3] スロット4のスロットイン電源モジュール状態
Status[4] スロット5のスロットイン電源モジュール状態
Status[5] スロット6のスロットイン電源モジュール状態
※ 下記の①〜⑥はスロット1〜スロット6に対応しています。
製品によって図は異なります。
状態はビットアサインにて格納されています。
ビット 説 明
0 ALM信号の状態
0:正常, 1:異常
1 FAIL信号の状態
0:正常, 1:異常
2〜15 システム予約
※ 各信号の説明は、ご使用のスロットイン電源モジュールのユーザーズマニュアルを参照し てください。
【戻り値】
0: 正常終了
-1: 異常終了(SMBusへのアクセスに失敗しました)
【備考】
この関数は、25スロットFAコンピュータの下段に実装されているスロットイン電源モジュー ルの状態を検出するためのものです。各スロットに実装されたスロットイン電源モジュール の状態を取得することができます。
25スロットFAコンピュータの上段および標準タイプのスロットイン電源については、
IfPsmGetStatus関数(関数名に2は付きません)をご使用ください。
なお、各製品の詳細仕様は、弊社Web site(を参照してください。
【使用例】
int r;
unsigned short Status[6];
r = IfPsm2GetStatus(Status);
if (r) {
printf("IfPsm2GetStatus ERROR ¥n");
} else {
printf("IfPsm2GetStatus – Slot1 Module Status %x¥n", Status[0]);
printf("IfPsm2GetStatus – Slot2 Module Status %x¥n", Status[1]);
printf("IfPsm2GetStatus – Slot3 Module Status %x¥n", Status[2]);
printf("IfPsm2GetStatus – Slot4 Module Status %x¥n", Status[3]);
printf("IfPsm2GetStatus – Slot5 Module Status %x¥n", Status[4]);
printf("IfPsm2GetStatus – Slot6 Module Status %x¥n", Status[5]);
}
Linux System 構築ガイド
5. IfBatGetStatus
【機能】
システムに実装されているバッテリモジュールの状態を取得します。
【書式】
#include <IFgen.h>
int IfBatGetStatus(
unsigned short *Status );
【パラメータ】
Status バッテリの状態を格納する変数へのポインタを設定します。
ビット 説 明
0 バッテリ運用動作の検出
0: 通常運用, 1: バッテリ運用中
1 バッテリ電圧低下の検出
0: 正常, 1: 電圧低下
2〜15 システム予約
【戻り値】
0: 正常終了
-1: 異常終了(/dev/ttyS1へのアクセスに失敗しました)
【使用例】
int r;
unsigned short Status;
r = IfBatGetStatus(&Status);
if (r) {
printf("IfBatGetStatus ERROR ¥n");
}
注意
!
本関数は/dev/ttyS1を使用します。/dev/ttyS1を、他の用途で使用しないでください。
6. IfBatWordRead
【機能】
システムに実装されているバッテリから、コマンドコードで指定されたデータを読み出します。
【書式】
#include <IFgen.h>
int IfBatWordRead (
unsigned short command, unsigned short *data );
【パラメータ】
command バッテリへ送信するコマンドコードを設定します。
コマンドコード 説明
0x09 電圧測定値(mV)
0x0d 現在容量(%)
0x10 満充電容量(mAh)
0x18 公称容量(mAh)
【戻り値】
0: 正常終了
-1: 異常終了(/dev/ttyS1との通信に失敗しました)
【使用例】
int r;
unsigned short data;
r = IfBatWordRead(0x0d, &data);
if (r) {
printf("IfBatWordRead ERROR ¥n");
}
注意
!
本関数は/dev/ttyS1を使用します。/dev/ttyS1を、他の用途で使用しないでください。
Linux System 構築ガイド