〜 シンプル通信PLC For OMRON ライブラリ リファレンス 〜

 付属のライブラリのリファレンスマニュアルです。ライブラリを使ったサンプルは、sample5です。

 全ての関数の第一引数(Obj As Rs)には、シンプル通信LC For OMRONのコントロールを設定します。

データの読み出し関数
関数名 名称
ReadR 入出力リレー/内部補助リレー/特殊補助リレーエリア読み出し
ReadL LRリレーエリア読み出し
ReadH HRリレーエリア読み出し
ReadC タイマ/カウンタエリア読み出し
ReadG タイマ/カウンタアップデータ読み出し
ReadD DMエリア読み出し
ReadJ ARエリア読み出し
ReadE EMエリア読み出し
データの書き込み関数
関数名 名称
WriteR 入出力リレー/内部補助リレー/特殊補助リレーエリア書き込み
WriteL LRリレーエリア書き込み
WriteH HRリレーエリア書き込み
WriteC タイマ/カウンタエリア書き込み
WriteG タイマ/カウンタアップデータ書き込み
WriteD DMエリア書き込み
WriteJ ARエリア書き込み
WriteE EMエリア書き込み
データの一括読み出し関数
関数名 名称
WriteQQ 複合コマンド 読み出し登録
ReadQQ 複合コマンド 一括読み出し
その他の関数
関数名 名称
PlcXZ アボート関数
PlcInit イニシャル関数
PlcTS テスト関数
ReadMM 機種コード読み出し
ReadMF 故障情報読み出し
ReadMS ステータス読み出し
WriteSC ステータス書き込み

データの読み出し関数

ReadR (Obj As Rs, ByVal No%, ByVal CH As Long, ByVal DataNum As Long)
入出力リレー/内部補助リレー/特殊補助リレーエリア読み出し
No 号機No 号機Noを整数で指定します
CH 読出開始チャネル 読み出し開始チャネルを整数で指定します
DataNum 読出チャネル数 チャネル数を整数で指定します。範囲は、1〜30です。
戻り値
 関数の実行に成功した場合、10進数データの入った配列を返す。失敗した場合、配列0に-1を入れて返す。
例:
Dim d
d = ReadR(Rs1, 0, 10, 2)
If d(0) = -1 Then
 MsgBox "関数の実行に失敗しました"
Else
 Print d(0)
 Print d(1)
End If
ReadL (Obj As Rs, ByVal No%, ByVal CH As Long, ByVal DataNum As Long)
LRリレーエリア読み出し
No 号機No 号機Noを整数で指定します
CH 読出開始チャネル 読み出し開始チャネルを整数で指定します
DataNum 読出チャネル数 読み出しチャネル数を整数で指定します。範囲は、1〜30です。
戻り値
 関数の実行に成功した場合、10進数データの入った配列を返す。失敗した場合、配列0に-1を入れて返す。
例:
Dim d
d = ReadL(Rs1, 0, 10, 2)
If d(0) = -1 Then
 MsgBox "関数の実行に失敗しました"
Else
 Print d(0)
 Print d(1)
End If
ReadH (Obj As Rs, ByVal No%, ByVal CH As Long, ByVal DataNum As Long)
HRリレーエリア読み出し
No 号機No 号機Noを整数で指定します
CH 読出開始チャネル 読み出し開始チャネルを整数で指定します
DataNum 読出チャネル数 読み出しチャネル数を整数で指定します。範囲は、1〜30です。
戻り値
 関数の実行に成功した場合、10進数データの入った配列を返す。失敗した場合、配列0に-1を入れて返す。
例:
Dim d
d = ReadH(Rs1, 0, 10, 2)
If d(0) = -1 Then
 MsgBox "関数の実行に失敗しました"
Else
 Print d(0)
 Print d(1)
End If
ReadC (Obj As Rs, ByVal No%, ByVal CH As Long, ByVal DataNum As Long)
タイマ/カウンタエリア読み出し
No 号機No 号機Noを整数で指定します
CH 読出開始チャネル 読み出し開始チャネルを整数で指定します
DataNum 読出チャネル数 読み出しチャネル数を整数で指定します。範囲は、1〜30です。
戻り値
 関数の実行に成功した場合、10進数データの入った配列を返す。失敗した場合、配列0に-1を入れて返す。
例:
Dim d
d = ReadC(Rs1, 0, 10, 2)
If d(0) = -1 Then
 MsgBox "関数の実行に失敗しました"
Else
 Print d(0)
 Print d(1)
End If
ReadG (Obj As Rs, ByVal No%, ByVal CH As Long, ByVal DataNum As Long)
タイマ/カウンタアップデータ読み出し
No 号機No 号機Noを整数で指定します
CH 読出開始チャネル 読み出し開始チャネルを整数で指定します
DataNum 読出チャネル数 読み出しチャネル数を整数で指定します。範囲は、1〜120です。
戻り値
 関数の実行に成功した場合、10進数データの入った配列を返す。失敗した場合、配列0に-1を入れて返す。
例:
Dim d
d = ReadG(Rs1, 0, 10, 2)
If d(0) = -1 Then
 MsgBox "関数の実行に失敗しました"
Else
 Print d(0)
 Print d(1)
End If
ReadD (Obj As Rs, ByVal No%, ByVal CH As Long, ByVal DataNum As Long)
DMエリア読み出し
No 号機No 号機Noを整数で指定します
CH 読出開始チャネル 読み出し開始チャネルを整数で指定します
DataNum 読出チャネル数 読み出しチャネル数を整数で指定します。範囲は、1〜30です。
戻り値
 関数の実行に成功した場合、10進数データの入った配列を返す。失敗した場合、配列0に-1を入れて返す。
例:
Dim d
d = ReadD(Rs1, 0, 10, 2)
If d(0) = -1 Then
 MsgBox "関数の実行に失敗しました"
Else
 Print d(0)
 Print d(1)
End If
ReadJ (Obj As Rs, ByVal No%, ByVal CH As Long, ByVal DataNum As Long)
ARエリア読み出し
No 号機No 号機Noを整数で指定します
CH 読出開始チャネル 読み出し開始チャネルを整数で指定します
DataNum 読出チャネル数 読み出しチャネル数を整数で指定します。範囲は、1〜30です。
戻り値
 関数の実行に成功した場合、10進数データの入った配列を返す。失敗した場合、配列0に-1を入れて返す。
例:
Dim d
d = ReadJ(Rs1, 0, 10, 2)
If d(0) = -1 Then
 MsgBox "関数の実行に失敗しました"
Else
 Print d(0)
 Print d(1)
End If
ReadE (Obj As Rs, ByVal No%, ByVal BK%, ByVal CH%, ByVal DataNum%)
EMエリア読み出し 使用できない機種があります
No 号機No 号機Noを整数で指定します
BK バンク -1:カレントバンク
0〜15:指定のバンク(16進数の00〜0Fに対応します)
CH 読出開始チャネル 読み出し開始チャネルを整数で指定します
DataNum 読出チャネル数 読み出しチャネル数を整数で指定します。範囲は、1〜30です。
戻り値
 関数の実行に成功した場合、10進数データの入った配列を返す。失敗した場合、配列0に-1を入れて返す。
例: 0Bバンクの10チャネルから2チャネル分のデータを読み出します
Dim d
d = ReadE(Rs1, 0, 11, 10, 2)
If d(0) = -1 Then
 MsgBox "関数の実行に失敗しました"
Else
 Print d(0)
 Print d(1)
End If

データの書き込み関数

WriteR (Obj As Rs, ByVal No%, ByVal CH As Long, WrData() As Long, ByVal DataNum As Long) As Boolean
入出力リレー/内部補助リレー/特殊補助リレーエリア書き込み
No 号機No 号機Noを整数で指定します
CH 書込開始チャネル 書き込み開始チャネルを整数で指定します
WrData() 書込データ 書き込むデータを整数の配列で指定します
DataNum 書込チャネル数 チャネル数を整数で指定します。範囲は、1〜29です。
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。
例:
Dim d(2) As Long
d(0) = 12
d(1) = 13
If WriteR(Rs1, 0, 10, d, 2) = FALSE Then
 MsgBox "関数の実行に失敗しました"
Else
 MsgBox "関数の実行に成功しました"
End If
WriteL (Obj As Rs, ByVal No%, ByVal CH As Long, WrData() As Long, ByVal DataNum As Long) As Boolean
LRリレーエリア書き込み
No 号機No 号機Noを整数で指定します
CH 書込開始チャネル 書き込み開始チャネルを整数で指定します
WrData() 書込データ 書き込むデータを整数の配列で指定します
DataNum 書込チャネル数 チャネル数を整数で指定します。範囲は、1〜29です。
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。
例:
Dim d(2) As Long
d(0) = 12
d(1) = 13
If WriteL(Rs1, 0, 10, d, 2) = FALSE Then
 MsgBox "関数の実行に失敗しました"
Else
 MsgBox "関数の実行に成功しました"
End If
WriteH (Obj As Rs, ByVal No%, ByVal CH As Long, WrData() As Long, ByVal DataNum As Long) As Boolean
HRリレーエリア書き込み
No 号機No 号機Noを整数で指定します
CH 書込開始チャネル 書き込み開始チャネルを整数で指定します
WrData() 書込データ 書き込むデータを整数の配列で指定します
DataNum 書込チャネル数 チャネル数を整数で指定します。範囲は、1〜29です。
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。
例:
Dim d(2) As Long
d(0) = 12
d(1) = 13
If WriteH(Rs1, 0, 10, d, 2) = FALSE Then
 MsgBox "関数の実行に失敗しました"
Else
 MsgBox "関数の実行に成功しました"
End If
WriteC (Obj As Rs, ByVal No%, ByVal CH As Long, WrData() As Long, ByVal DataNum As Long) As Boolean
タイマ/カウンタエリア書き込み
No 号機No 号機Noを整数で指定します
CH 書込開始チャネル 書き込み開始チャネルを整数で指定します
WrData() 書込データ 書き込むデータを整数の配列で指定します
DataNum 書込チャネル数 チャネル数を整数で指定します。範囲は、1〜29です。
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。
例:
Dim d(2) As Long
d(0) = 12
d(1) = 13
If WriteC(Rs1, 0, 10, d, 2) = FALSE Then
 MsgBox "関数の実行に失敗しました"
Else
 MsgBox "関数の実行に成功しました"
End If
WriteG (Obj As Rs, ByVal No%, ByVal CH As Long, WrData() As Long, ByVal DataNum As Long) As Boolean
タイマ/カウンタアップデータ書き込み
No 号機No 号機Noを整数で指定します
CH 書込開始チャネル 書き込み開始チャネルを整数で指定します
WrData() 書込データ 書き込むデータを整数の配列で指定します。値は、0または、1のみです。
DataNum 書込チャネル数 チャネル数を整数で指定します。範囲は、1〜118です。
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。
例:
Dim d(2) As Long
d(0) = 1
d(1) = 0
If WriteG(Rs1, 0, 10, d, 2) = FALSE Then
 MsgBox "関数の実行に失敗しました"
Else
 MsgBox "関数の実行に成功しました"
End If
WriteD (Obj As Rs, ByVal No%, ByVal CH As Long, WrData() As Long, ByVal DataNum As Long) As Boolean
DMエリア書き込み
No 号機No 号機Noを整数で指定します
CH 書込開始チャネル 書き込み開始チャネルを整数で指定します
WrData() 書込データ 書き込むデータを整数の配列で指定します
DataNum 書込チャネル数 チャネル数を整数で指定します。範囲は、1〜29です。
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。
例:
Dim d(2) As Long
d(0) = 12
d(1) = 13
If WriteD(Rs1, 0, 10, d, 2) = FALSE Then
 MsgBox "関数の実行に失敗しました"
Else
 MsgBox "関数の実行に成功しました"
End If
WriteJ (Obj As Rs, ByVal No%, ByVal CH As Long, WrData() As Long, ByVal DataNum As Long) As Boolean
ARエリア書き込み
No 号機No 号機Noを整数で指定します
CH 書込開始チャネル 書き込み開始チャネルを整数で指定します
WrData() 書込データ 書き込むデータを整数の配列で指定します
DataNum 書込チャネル数 チャネル数を整数で指定します。範囲は、1〜29です。
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。
例:
Dim d(2) As Long
d(0) = 12
d(1) = 13
If WriteJ(Rs1, 0, 10, d, 2) = FALSE Then
 MsgBox "関数の実行に失敗しました"
Else
 MsgBox "関数の実行に成功しました"
End If
WriteE (Obj As Rs, ByVal No%, ByVal BK%, ByVal CH As Long, WrData() As Long, ByVal DataNum%) As Boolean
EMエリア書き込み 使用できない機種があります
No 号機No 号機Noを整数で指定します
BK バンク -1:カレントバンク
0〜15:指定のバンク(16進数の00〜0Fに対応します)
CH 書込開始チャネル 書き込み開始チャネルを整数で指定します
WrData() 書込データ 書き込むデータを整数の配列で指定します
DataNum 書込チャネル数 チャネル数を整数で指定します。範囲は、1〜29です。
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。
例: カレントバンクの10チャネルから2チャネル分のデータを書き込み
Dim d(2) As Long
d(0) = 12
d(1) = 13
If WriteE(Rs1, 0, -1, 10, d, 2) = FALSE Then
 MsgBox "関数の実行に失敗しました"
Else
 MsgBox "関数の実行に成功しました"
End If

データの一括読み出し関数

WriteQQ(Obj As Rs, ByVal No%, Area() As Integer, CH() As Integer, DataType() As Integer, ByVal DataNum%) As Boolean
複合コマンド 読み出し登録
No 号機No 号機Noを整数で指定します
Area() オペレーション 読み出したいエリアを整数で指定します
1:入出力リレー、内部補助リレー、特殊補助リレー
2:リンクリレー
3:保持リレー
4:補助記憶リレー
5:タイマ
6:高速タイマ
7:カウンタ
8:可逆カウンタ
9:データメモリ
以下は、機種に依存します
20:積算タイマ
99:拡張メモリエリア(カレント)
100〜115:拡張メモリエリア(バンク指定 100が0、115が0Fに対応)
CH() チャネル 読み出すチャネルを整数で指定します
DataType() オペラント 読み出すデータの形式を整数で指定します
0〜15: 接点の指定
-1: チャネルデータ
DataNum 読出チャネル数 チャネル数を整数で指定します。範囲は、1〜10です。
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。

例: リレーの0チャネルと、DMの0チャネルを一括して読み出すための登録
Dim a(2) As Integer, c(2) As Integer, t(2) As Integer
配列の添え字の等しいものが、同じチャネルの設定となります。例では、0がリレー、1がDMの設定を示します。
a(0) = 1 1は、リレーを意味します
c(0) = 0 チャネルの番号
t(0) = -1 -1は、チャネルの値を意味します。0〜15を指定すると、指定のビットのみを読み出せます。
a(1) = 9 9は、DMを意味します
c(1) = 0 
t(1) = -1 
If WriteQQ(Rs1, 0, a, c, t, 2) = False Then
  MsgBox "関数の実行に失敗しました"
Else
  MsgBox "OK"
End If
ReadQQ(Obj As Rs, ByVal No%, ByRef DataNum As Integer)
複合コマンド 一括読み出し
No 号機No 号機Noを整数で指定します
DataNum 読出チャネル数 読み出したチャネル数が整数で返ります。
戻り値
 関数の実行に成功した場合、文字列データの入った配列を返す。失敗した場合、配列0に文字列”FALSE”を入れて返す。例:R(0)=”FALSE”

例: 上記の設定(WriteQQの例)を行い、一括してデータを読み出す
Dim Ret, n%, i%

Ret = ReadQQ(Rs1, 0, n)
If Ret(0) = "FALSE" Then
 MsgBox "関数の実行に失敗しました"
Else
 For i = 0 To n - 1
  Print Ret(i)
 Next
End If

その他の関数

PlcXZ(Obj As Rs, ByVal No%)
アボート関数 処理中の上位リンク機能を中断し、新しいコマンドを受け付け可能にする
No 号機No 号機Noを整数で指定します
戻り値 なし
PlcInit(Obj As Rs)
イニシャル関数 全号機Noを初期状態に戻す
戻り値 なし
PlcTS(Obj As Rs, ByVal No%, ByVal SendData$, ByRef RecData$) As Boolean
テスト関数 送信データが、受信できるかをテストします。
データを送信し、同じデータが返ってくるかを確認する場合に使います。
No 号機No 号機Noを整数で指定します
SendData 送信データ 送信データの文字列を指定します
RecData 受信データ 受信データの文字列が返ります
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。
ReadMM(Obj As Rs, ByVal No%, ByRef StData1$, ByRef StData2$) As Boolean
機種コード読み出し関数
No 号機No 号機Noを整数で指定します
StData1 機種コード 16進数2桁の文字列が返ります
StData2 機種名 機種名の文字列が返ります
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。
ReadMF(Obj As Rs, ByVal No%, ByVal OnOff%, ByRef StData1$, ByRef StData2$) As Boolean
故障情報読み出し
No 号機No 号機Noを整数で指定します
OnOff 異常解除 1:異常解除する
0:異常解除しない
StData1 ステータスデータ1 16進数4桁の文字列が返ります
StData2 ステータスデータ2 16進数4桁の文字列が返ります
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。
ReadMS(Obj As Rs, ByVal No%, ByRef StData$, ByRef StMsg$) As Boolean
ステータス読み出し
No 号機No 号機Noを整数で指定します
StData ステータスデータ 16進数4桁の文字列が返ります
StMsg メッセージ ステータスに関するメッセージ(文字列)が返ります
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。
WriteSC(Obj As Rs, ByVal No%, ByVal StData$) As Boolean
ステータス書き込み
No 号機No 号機Noを整数で指定します
StData ステータスデータ 16進数2桁の文字列を指定します。
例:CQM1では、
 00:プログラムモード
 02:モニタモード
 03:運転モード
のみ有効です。
戻り値
 関数の実行に成功した場合、TRUEを返す。失敗した場合、FALSEを返す。