FbusIO_SendMsgの使用
FbusIO_SendMsgを使用するには、フィールドバスマスター基板を実装してください。 FbusIO_SendMsgは、Explicitメッセージをデバイスに送ったり、その答えを取得したりするときに使われます。このコマンドは、プロトコルに基づいて機能します。
FbusIO_SendMsgの書式:
FbusIO_SendMsg bus, device, msgParam, sendBytes(), recvBytes()
引数の説明
この関数は2つの配列を引数に取ります。sendData配列は、デバイスに送られるByte型データを含みます。この配列は、送られるバイト数と同じ次元でなければなりません。Byte型データを送信しない場合は、パラメーターを"0"にしてください。recvData配列は、デバイスからの返答を受け取るByte型変数です。この配列は、受信したバイト数に応じた次元数に自動的に変換されます。
DeviceNetの場合、以下の例のように、コマンド, クラス, インスタンス, アトリビュートを含むsendDeta 配列を初期化してください。使用可能な値については、デバイスに添付されたマニュアルを参照してください。DeviceNetメッセージでは、msgParamパラメーターは常に"0"になります。
DeviceNet, Etheret/IPでの使用例:
以下の例では、MacID = 1のデバイスの情報取得を行っています。
' Send explicit message to the device
Byte sendData(5)
Byte recvData(10)
Integer i
sendData(0) = 14 ' Command (GetAttributeSingle)
sendData(1) = 1 ' Class
sendData(3) = 1 ' Instanc
sendData(5) = 7 ' Attribute
FbusIO_SendMsg 16, 1, 0, sendData(), recvData()
For i = 0 To UBound(recvData)
Print recvData(i)
Next i
PROFIBUS DPの場合、msgParamパラメーターにサービス番号を指定してください。サポートしているサービスについては、デバイスに添付されたマニュアルを参照してください。サービスによっては、送信バイトが"0"の場合もあります。この場合は、sendBytesパラメーターは"0"にしてください。
PROFIBUS DPでの使用例:
' Send message to Profibus device
Byte recvData(10)
Integer i
' Service 56 - read all inputs
' sendBytes = 0
FbusIO_SendMsg 1, 1, 56, 0, recvData()
For i = 0 To UBound(recvData)
Print recvData(i)
Next i