Documentation
FieldTalk Modbus Master Library for .NET
MbusMasterFunctionsreadDeviceIdentification Method |
Modbus function 43 (hex 2B) subfunction 14 (hex 0E), Read Device Identification
Namespace: FieldTalk.Modbus.Master
Assembly: FieldTalk.Modbus.Master (in FieldTalk.Modbus.Master.dll) Version: 2.15.2-eval+3d8362b4bb861c05760d48b11d303e954bb8597c
public int readDeviceIdentification( int slaveAddr, int accessType, ref int objId, out MbusMasterFunctionsDeviceIdObject[] objArr )
Parameters
- slaveAddr
- Type: SystemInt32
Modbus address of slave device or unit identifier (Range: 1 - 255 for serial, 0 - 255 for TCP) - accessType
- Type: SystemInt32
Category type (1=only mandatory basic objects, 2=all regular objects, 3=include vendor specfic objects, 4=single object) - objId
- Type: SystemInt32
An object ID from above table. Returns -1 if all objects were retrieved the object ID for the next group of objects to follow. - objArr
- Type: FieldTalk.Modbus.MasterMbusMasterFunctionsDeviceIdObject
An empty container which will receive the retrieved objects.
Return Value
Type: Int32BusProtocolErrors.FTALK_SUCCESS on success or error code. See BusProtocolErrors for possible error codes.
This function allows a master to retrieve various objects with
meta information about a slave device.
The data type of the objects returned is a ASCII string.
| Object Id | Object Name / Description |
| 0x00 | VendorName |
| 0x01 | ProductCode |
| 0x02 | MajorMinorRevision |
| 0x03 | VendorUrl |
| 0x04 | ProductName |
| 0x05 | ModelName |
| 0x06 | UserApplicationName |
| 0x07 - 0x7F | Reserved |
| 0x80 - 0xFF | Vendor specific private objects |
| No broadcast supported |
Example retrieving all Device ID strings of basic device identification level (level 1):
C#
MbusMasterFunctions.DeviceIdObject[] objs = null; int objId = 0; // Start with object 0 Console.WriteLine("Read Device Identification Object List:"); do { result = mbusProtocol.readDeviceIdentification(1, 1, ref objId, out objs); if (result != FTALK_SUCCESS) { Console.WriteLine(BusProtocolErrors.getBusProtocolErrorText(result) + "!"); } else { foreach (MbusMasterFunctions.DeviceIdObject item in objs) { Console.WriteLine(" [{0}]: {1}", item.id, item.data); } } } while (objId > 0);