<< 前へ        次へ >>

ID : 5189

SysInfo

機能

コントローラのシステム情報を返します。

構文

SysInfo(インデックス番号)

指定項目

インデックス番号
インデックス番号を整数型データで指定します。

戻り値

バリアント(Variant)型で指定した変数に、インデックス番号に応じたデータ型のデータを返します

解説

下記のようなシステム情報を取得できます。

インデックス番号 システム情報 データ型
0 製造番号(コントローラのシリアル番号) 文字列型
1 コントローラ内蔵のネットワークカードのMACアドレス 文字列型
2

ペンダント接続状態

0:未接続
1:ティーチングペンダントが接続されている
2:ミニペンダントが接続されている

整数型
3

グローバル変数個数情報

配列の0~7の各要素は下に示す変数の個数を示す

0:I型
1:F型
2:D型
3:V型
4:P型
5:J型
6:T型
7:S型

整数型配列
4

CPU情報

0:不明(仮想環境)
2:ATOM
5:i7

整数型
5

ログイン ユーザ レベル

1000:オペレータ
2000:プログラマ
3000:メンテナ
3001以上:システム予約

整数型
6 特権タスク動作中
-1:動作中
0:動作中でない
整数型
7 操作盤表示中
-1:表示中
0:表示中でない
整数型
8 総通電時間(分) 整数型
9 総稼働時間(分) 整数型
10 累積通電時間(分) 整数型
11 累積稼働時間(分) 整数型
12 電源入り通電時間(分) 整数型
13 電源入り稼働時間(分) 整数型
14 モータON回数 整数型
15 エンコーダバッテリ点検日
-1:超えている
0:超えていない
整数型
16 コントローラバッテリ点検日
-1:超えている
0:超えていない
整数型
29 コントローラタイプ
0:RC8
1:RC8A
整数型
30 セーフティタイプ
0:なし
1:セーフティモーション仕様
整数型

インデックス番号6~16はVer.1.8.*から使用可能です。

インデックス番号29、30はVer.2.1.*から使用可能です。

注意事項

-

用例

用例1

'!TITLE "製造番号の取得"
'製造番号の取得と表示
Sub Sample_SysInfo
	Dim aaa As Variant
	'製造番号の取得
	aaa = SysInfo(0)
	'メッセージウィンドウに製造番号を表示
	PrintDbg aaa
End Sub

用例2

プログラムを、固有のコントローラでしか動作できないようにするプロテクトの例を下に示します。

以下の手順で実施します。

  1. プログラム作成者は、プログラム利用者から使用するコントローラのMacアドレスを入手し、プログラムに記述した計算式で解除コードを作成します。作成した解除コードは、プログラム利用者に連絡しておきます。
  2. プログラム作成者はプログラムを暗号化し、プログラム利用者に渡します。(暗号化操作は「ソースコードの暗号化」を参照)
  3. プログラム利用者は解除コードをグローバル変数"S0"に入力し、プログラムを実行します。実行時に、プログラムがコントローラのMacアドレスを読込み、解除コード"lic"を生成し、"S0"と比較しますので、正しいコントローラの場合のみ処理が実行されます。

Sub Main 
#pragma encrypt(on)
if IsLocked() Then Exit Sub

	'ここに処理を記述

#pragma encrypt(off)	
End Sub

#pragma encrypt(on)
Function IsLocked( ) As Integer
	Dim mac As Variant
	Dim lic As String
	Dim key As Variant
	Dim n As Integer
	
	key = Array( &HAA, &HF5, &H55, &H3C, &H57, &H81 ) 
	mac = split( SysInfo( 1 ), "-" ) ' X1-X2-X3-X4-X5-X6
	lic = ""
	For n = 0 To 5
		lic = lic + Hex( Val( "&H" & mac( n ) ) Xor key( n ) )
	Next
	'Debug.print "LIC = " & lic & ", MAC = " & SysInfo( 1 )
	
	If lic = S0 Then
		IsLocked = False
	Else
		IsLocked = True
	End If 
	
End Function
#pragma encrypt(off)

ID : 5189

<< 前へ        次へ >>