modbus_new_rtu


機能

 

通信するスレーブデバイスと接続するCOMポートを指定し、ボーレート、パリティ等を設定し、Modbus/RTUとして初期化を行います。

 

書式

 

ctx = modbus_new_rtu( device , baud , parity , data_bit , stop_bit )

 

引数

 

device [ VB.NET: String ] [ C, C++: char * ] [ C#: string ] [ Python:ctypes.c_char_p ]

Modbusスレーブと通信するシリアルポート(COMポート)を指定して下さい。

COM番号において、10番以上を使用する場合は、"\\\\.\\COM10"のような形式で指定して下さい。

詳細は以下を参照ください。

https://learn.microsoft.com/ja-jp/windows/win32/fileio/naming-a-file?redirectedfrom=MSDN

 

baud[ VB.NET: Integer ] [ C, C++: int ] [ C#: int ] [ Python: ctypes.c_long ]

ボーレートを指定して下さい。

 

parity [ VB.NET: Sbyte ] [ C, C++: char  ] [ C#: sbyte ] [ Python: ctypes.c_char ]

パリティを以下で指定下さい。

 

定義

意味

N

パリティ無し

E

偶数パリティ

O

奇数パリティ

 

data_bit[ VB.NET: Integer ] [ C, C++: int ] [ C#: int ] [ Python: ctypes.c_int ]

データビットを5-8で指定下さい。

 

stop_bit[ VB.NET: Integer ] [ C, C++: int ] [ C#: int ] [ Python: ctypes.c_int ]

ストップビットを1-2で指定下さい。

 

戻り値

 

ctx [ VB.NET: IntPtr ] [ C, C++: modbus_t * ] [ C#: IntPtr ] [ Python: ctypes.POINTER(modbus_t) ]

成功時はmodbus_t構造体のポインタアドレスが入ります。

 

失敗時にはNULLが入ります。errnoには下記のエラーが格納されます。

 

定義

意味

EINVAL

IPアドレスが不正です。

ENOMEM

メモリ不足です。

 

説明

 

通信するスレーブデバイスと接続するCOMポートを指定し、ボーレート、パリティ等を設定し、Modbus/RTUとして初期化を行います。

 

使用例

 

COM1ポート、ボーレート 115200bps、パリティ無し、データビット8、ストップビット1を指定する例です。

 

VB.NET

Dim ctx As IntPtr

ctx = modbus_new_rtu("COM1", 115200, 'N', 8, 1)

 

C, C++

modbus_t *ctx;

ctx = modbus_new_rtu("COM1", 115200, 'N', 8, 1);
 

C#
 

IntPtr ctx;

ctx = modbustcp.NewRtu("COM1", 115200, 'N', 8, 1);
 

Python

ctx = ctypes.POINTER(modbus_t)

ctx = modbus_tcp.modbus_new_rtu("COM1", 115200, 'N', 8, 1)