5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【SetROBO】共通変数の作成と使い方

Last updated at Posted at 2022-11-29

はじめに

こんにちは。今年度から社内PCのキッティングに携わるようになった@Cheeeeeseです。

今日はSetROBOのグローバル変数(共通変数)について記載します。

SetROBOのコーディングには、SetROBOの関数とC#が使えて、変数の宣言とかはC#の書き方と一緒なんだけど、グローバル変数はC#の書き方では出来ないみたいなんです。

少し複雑だったので、ここに記録しておきます!

環境

  • Windows 11 Pro 21H2 (64bit)
  • SetROBO for Kitting V1.9.5体験版

SetROBOの共通変数とは

共通変数とは、Code間・Plan間をまたいで使用可能な変数のことです。
共通変数の値は、Code間・Plan間をまたいだ場合でも保持されます。
(引用:SetROBO for Kitting 入門ガイド Ver.2.4)

手順

01.共通変数を作成

SetROBOの場合、変数を宣言ではなく、関数で共通変数に値を格納します。
今回はint型のの「varInt」という共通変数に、「100」を格納します。

共通変数を作成するコード
// エラー内容を受け取る変数
PlayLib.GlobalErrorCode errCode;
// int型の共通変数「varInt」を作成し、int型の値「100」を格納する
PlayLib.GlobalSetInt("varInt", 100, out errCode);

ちなみに型によってそれぞれ関数が用意されています。

関数
Int型 PlayLib.GlobalSetInt(string name, int value, out GlabalErrorCode errCode)
Double型 PlayLib.GlobalSetDouble(string name, double value, out GlabalErrorCode errCode)
String型 PlayLib.GlobalSetString(string name, string value, out GlabalErrorCode errCode)
Bool型 PlayLib.GlobalSetBool(string name, bool value, out GlabalErrorCode errCode)

【引数】
 name:共通変数名
 value:格納するint型の共通変数の値
 out errCode:エラー内容を受け取る変数(正常に読み込めた場合は「OK」)

02.別のCodeで共通変数から値を取得

共通変数から値を取得する際も関数を使用します。
手順01で作成した共通変数「varInt」の値を取得します。

共通変数から値を取得するコード
// エラー内容を受け取る変数を宣言する
PlayLib.GlobalErrorCode errCode;
// int型の値を受け取る変数を宣言
int num = 0;
// int型の共通変数「varInt」の値を取得し、numに格納する
PlayLib.GlobalGetInt("varInt", out num, out errCode);

これも型によってそれぞれ関数が用意されています。

関数
Int型 PlayLib.GlobalGetInt(string name, out int value, out GlabalErrorCode errCode)
Double型 PlayLib.GlobalGetDouble(string name, out double value, out GlabalErrorCode errCode)
String型 PlayLib.GlobalGetString(string name, out string value, out GlabalErrorCode errCode)
Bool型 PlayLib.GlobalGetBool(string name, out bool value, out GlabalErrorCode errCode)

【引数】
 name 共通変数名
 out value 取得したint型の値を格納する変数
 out errCode エラー内容を受け取る変数(正常に読み込めた場合は「OK」)

03.実行確認

実行時はまず共通変数を作成したCodeを実行し、その後に共通変数から値を取得するCodeを実行します。

:warning: 必ず先に共通変数を作成したCodeを実行しないと、エラーが発生します。

応用

私の場合、設定値の取得によくCSVを使うので、CSVファイルのパスを共通変数にしています。
こうするとCSVのファイル名を変更した場合でも共通変数を作成したCodeだけので済みます。

設定値ファイルの共通変数作成
//変数宣言
PlayLib.GlobalErrorCode errCode;
	
// 設定値ファイル(csv)のパスを取得
string filePath = Path.Combine(Path.GetDirectoryName(Application.StartupPath), "Setting.csv");
// PCの製造番号を取得
string serialNumber = PCInfo.GetMySerialNumber();
		
//-------------------共通変数に格納-------------------
// 共通変数「gfilePath」に設定値ファイルのパスを格納
PlayLib.GlobalSetString("gFilePath", filePath, out errCode);
		
// 共通変数「gserialNumber」に製造番号を格納
PlayLib.GlobalSetString("gSerialNumber", serialNumber, out errCode);
共通変数から設定値ファイルを取得
// 変数宣言
PlayLib.GlobalErrorCode errCode;	//エラーコード
string sFilePath;	//設定値ファイルパス
string sSerialNumber;	//製造番号
		
// 設定値ファイルパスを取得
PlayLib.GlobalGetString("gFilePath", out sFilePath, out errCode);
// 製造番号を取得
PlayLib.GlobalGetString("gSerialNumber", out sSerialNumber, out errCode);
		
// 設定値ファイルから製造番号をキーにコンピューター名を取得
string pcName = CsvLib.GetField(sFilePath, "製造番号", sSerialNumber, "コンピューター名");
PlayLib.TestLog(pcName);

最後に

SetROBOの共通変数は関数を使用しなければいけないので、少しコーディングが面倒ですが、慣れれば便利です。

参考にしたサイト

5
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?