scapy.contrib.modbus

class scapy.contrib.modbus.ModbusADURequest(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            TRANSID            |            PROTOID            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LEN              |     UNITID    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. ModbusADURequest                       
ModbusADURequest fields

transId

XShortField

'0'

protoId

XShortField

'0'

len

ShortField

'None'

unitId

XByteField

'255'

guess_payload_class(payload)
post_build(p, pay)
class scapy.contrib.modbus.ModbusADUResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            TRANSID            |            PROTOID            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              LEN              |     UNITID    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. ModbusADUResponse                      
ModbusADUResponse fields

transId

XShortField

'0'

protoId

XShortField

'0'

len

ShortField

'None'

unitId

XByteField

'255'

guess_payload_class(payload)
post_build(p, pay)
class scapy.contrib.modbus.ModbusByteEnumField(*args, **kwds)

Bases: scapy.fields.EnumField

E
d
defEnum
e
f
i2repr_one(pkt, x)
m
n
u
class scapy.contrib.modbus.ModbusObjectId(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       ID      |     LENGTH    |             VALUE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. ModbusObjectId                        
ModbusObjectId fields

id

ByteEnumField

'0'

length

BitFieldLenField (8 bits)

'None'

value

StrLenField

"b''"

guess_payload_class(payload)
class scapy.contrib.modbus.ModbusPDU01ReadCoilsError(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Fig. ModbusPDU01ReadCoilsError                  
ModbusPDU01ReadCoilsError fields

funcCode

XByteField

'129'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU01ReadCoilsRequest(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |           STARTADDR           |    QUANTITY   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                 Fig. ModbusPDU01ReadCoilsRequest                 
ModbusPDU01ReadCoilsRequest fields

funcCode

XByteField

'1'

startAddr

XShortField

'0'

quantity

XShortField

'1'

class scapy.contrib.modbus.ModbusPDU01ReadCoilsResponse(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   BYTECOUNT   |           COILSTATUS          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Fig. ModbusPDU01ReadCoilsResponse                 
ModbusPDU01ReadCoilsResponse fields

funcCode

XByteField

'1'

byteCount

BitFieldLenField (8 bits)

'None'

coilStatus

FieldListField

'[0]'

class scapy.contrib.modbus.ModbusPDU02ReadDiscreteInputsError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Fig. ModbusPDU02ReadDiscreteInputsError              
ModbusPDU02ReadDiscreteInputsError fields

funcCode

XByteField

'130'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU02ReadDiscreteInputsRequest(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |           STARTADDR           |    QUANTITY   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

            Fig. ModbusPDU02ReadDiscreteInputsRequest             
ModbusPDU02ReadDiscreteInputsRequest fields

funcCode

XByteField

'2'

startAddr

XShortField

'0'

quantity

XShortField

'1'

class scapy.contrib.modbus.ModbusPDU02ReadDiscreteInputsResponse(*args, **kargs)

Bases: scapy.packet.Packet

inputStatus: result is represented as bytes, padded with 0 to have a integer number of bytes. The field does not parse this result and present the bytes directly

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   BYTECOUNT   |          INPUTSTATUS          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Fig. ModbusPDU02ReadDiscreteInputsResponse            
ModbusPDU02ReadDiscreteInputsResponse fields

funcCode

XByteField

'2'

byteCount

BitFieldLenField (8 bits)

'None'

inputStatus

FieldListField

'[0]'

class scapy.contrib.modbus.ModbusPDU03ReadHoldingRegistersError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Fig. ModbusPDU03ReadHoldingRegistersError             
ModbusPDU03ReadHoldingRegistersError fields

funcCode

XByteField

'131'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU03ReadHoldingRegistersRequest(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |           STARTADDR           |    QUANTITY   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

           Fig. ModbusPDU03ReadHoldingRegistersRequest            
ModbusPDU03ReadHoldingRegistersRequest fields

funcCode

XByteField

'3'

startAddr

XShortField

'0'

quantity

XShortField

'1'

class scapy.contrib.modbus.ModbusPDU03ReadHoldingRegistersResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   BYTECOUNT   |          REGISTERVAL          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

           Fig. ModbusPDU03ReadHoldingRegistersResponse           
ModbusPDU03ReadHoldingRegistersResponse fields

funcCode

XByteField

'3'

byteCount

BitFieldLenField (8 bits)

'None'

registerVal

FieldListField

'[0]'

class scapy.contrib.modbus.ModbusPDU04ReadInputRegistersError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Fig. ModbusPDU04ReadInputRegistersError              
ModbusPDU04ReadInputRegistersError fields

funcCode

XByteField

'132'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU04ReadInputRegistersRequest(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |           STARTADDR           |    QUANTITY   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

            Fig. ModbusPDU04ReadInputRegistersRequest             
ModbusPDU04ReadInputRegistersRequest fields

funcCode

XByteField

'4'

startAddr

XShortField

'0'

quantity

XShortField

'1'

class scapy.contrib.modbus.ModbusPDU04ReadInputRegistersResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   BYTECOUNT   |          REGISTERVAL          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Fig. ModbusPDU04ReadInputRegistersResponse            
ModbusPDU04ReadInputRegistersResponse fields

funcCode

XByteField

'4'

byteCount

BitFieldLenField (8 bits)

'None'

registerVal

FieldListField

'[0]'

class scapy.contrib.modbus.ModbusPDU05WriteSingleCoilError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Fig. ModbusPDU05WriteSingleCoilError               
ModbusPDU05WriteSingleCoilError fields

funcCode

XByteField

'133'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU05WriteSingleCoilRequest(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |           OUTPUTADDR          |  OUTPUTVALUE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

              Fig. ModbusPDU05WriteSingleCoilRequest              
ModbusPDU05WriteSingleCoilRequest fields

funcCode

XByteField

'5'

outputAddr

XShortField

'0'

outputValue

XShortField

'0'

class scapy.contrib.modbus.ModbusPDU05WriteSingleCoilResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |           OUTPUTADDR          |  OUTPUTVALUE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

             Fig. ModbusPDU05WriteSingleCoilResponse              
ModbusPDU05WriteSingleCoilResponse fields

funcCode

XByteField

'5'

outputAddr

XShortField

'0'

outputValue

XShortField

'0'

class scapy.contrib.modbus.ModbusPDU06WriteSingleRegisterError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Fig. ModbusPDU06WriteSingleRegisterError             
ModbusPDU06WriteSingleRegisterError fields

funcCode

XByteField

'134'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU06WriteSingleRegisterRequest(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |          REGISTERADDR         | REGISTERVALUE |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

            Fig. ModbusPDU06WriteSingleRegisterRequest            
ModbusPDU06WriteSingleRegisterRequest fields

funcCode

XByteField

'6'

registerAddr

XShortField

'0'

registerValue

XShortField

'0'

class scapy.contrib.modbus.ModbusPDU06WriteSingleRegisterResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |          REGISTERADDR         | REGISTERVALUE |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

           Fig. ModbusPDU06WriteSingleRegisterResponse            
ModbusPDU06WriteSingleRegisterResponse fields

funcCode

XByteField

'6'

registerAddr

XShortField

'0'

registerValue

XShortField

'0'

class scapy.contrib.modbus.ModbusPDU07ReadExceptionStatusError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Fig. ModbusPDU07ReadExceptionStatusError             
ModbusPDU07ReadExceptionStatusError fields

funcCode

XByteField

'135'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU07ReadExceptionStatusRequest(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |
+-+-+-+-+-+-+-+-+

            Fig. ModbusPDU07ReadExceptionStatusRequest            
ModbusPDU07ReadExceptionStatusRequest fields

funcCode

XByteField

'7'

class scapy.contrib.modbus.ModbusPDU07ReadExceptionStatusResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   STARTADDR   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

           Fig. ModbusPDU07ReadExceptionStatusResponse            
ModbusPDU07ReadExceptionStatusResponse fields

funcCode

XByteField

'7'

startAddr

XByteField

'0'

class scapy.contrib.modbus.ModbusPDU08DiagnosticsError(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   | EXCEPTIONCODE |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                 Fig. ModbusPDU08DiagnosticsError                 
ModbusPDU08DiagnosticsError fields

funcCode

XByteField

'136'

exceptionCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU08DiagnosticsRequest(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |            SUBFUNC            |      DATA     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                Fig. ModbusPDU08DiagnosticsRequest                
ModbusPDU08DiagnosticsRequest fields

funcCode

XByteField

'8'

subFunc

XShortEnumField

'0'

data

FieldListField

'[0]'

class scapy.contrib.modbus.ModbusPDU08DiagnosticsResponse(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |            SUBFUNC            |      DATA     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

               Fig. ModbusPDU08DiagnosticsResponse                
ModbusPDU08DiagnosticsResponse fields

funcCode

XByteField

'8'

subFunc

XShortEnumField

'0'

data

FieldListField

'[0]'

class scapy.contrib.modbus.ModbusPDU0BGetCommEventCounterError(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   | EXCEPTIONCODE |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Fig. ModbusPDU0BGetCommEventCounterError             
ModbusPDU0BGetCommEventCounterError fields

funcCode

XByteField

'139'

exceptionCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU0BGetCommEventCounterRequest(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |
+-+-+-+-+-+-+-+-+

            Fig. ModbusPDU0BGetCommEventCounterRequest            
ModbusPDU0BGetCommEventCounterRequest fields

funcCode

XByteField

'11'

class scapy.contrib.modbus.ModbusPDU0BGetCommEventCounterResponse(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |             STATUS            |   EVENTCOUNT  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

           Fig. ModbusPDU0BGetCommEventCounterResponse            
ModbusPDU0BGetCommEventCounterResponse fields

funcCode

XByteField

'11'

status

XShortField

'0'

eventCount

XShortField

'65535'

class scapy.contrib.modbus.ModbusPDU0CGetCommEventLogError(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   | EXCEPTIONCODE |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Fig. ModbusPDU0CGetCommEventLogError               
ModbusPDU0CGetCommEventLogError fields

funcCode

XByteField

'140'

exceptionCode

XByteField

'1'

class scapy.contrib.modbus.ModbusPDU0CGetCommEventLogRequest(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |
+-+-+-+-+-+-+-+-+

              Fig. ModbusPDU0CGetCommEventLogRequest              
ModbusPDU0CGetCommEventLogRequest fields

funcCode

XByteField

'12'

class scapy.contrib.modbus.ModbusPDU0CGetCommEventLogResponse(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   BYTECOUNT   |             STATUS            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           EVENTCOUNT          |          MESSAGECOUNT         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             EVENT             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Fig. ModbusPDU0CGetCommEventLogResponse              
ModbusPDU0CGetCommEventLogResponse fields

funcCode

XByteField

'12'

byteCount

ByteField

'8'

status

XShortField

'0'

eventCount

XShortField

'264'

messageCount

XShortField

'289'

event

FieldListField

'[32, 0]'

class scapy.contrib.modbus.ModbusPDU0FWriteMultipleCoilsError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Fig. ModbusPDU0FWriteMultipleCoilsError              
ModbusPDU0FWriteMultipleCoilsError fields

funcCode

XByteField

'143'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU0FWriteMultipleCoilsRequest(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |           STARTADDR           | QUANTITYOUTPUT|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |   BYTECOUNT   |          OUTPUTSVALUE         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Fig. ModbusPDU0FWriteMultipleCoilsRequest             
ModbusPDU0FWriteMultipleCoilsRequest fields

funcCode

XByteField

'15'

startAddr

XShortField

'0'

quantityOutput

XShortField

'1'

byteCount

BitFieldLenField (8 bits)

'None'

outputsValue

FieldListField

'[0]'

class scapy.contrib.modbus.ModbusPDU0FWriteMultipleCoilsResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |           STARTADDR           | QUANTITYOUTPUT|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

            Fig. ModbusPDU0FWriteMultipleCoilsResponse            
ModbusPDU0FWriteMultipleCoilsResponse fields

funcCode

XByteField

'15'

startAddr

XShortField

'0'

quantityOutput

XShortField

'1'

class scapy.contrib.modbus.ModbusPDU10WriteMultipleRegistersError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

           Fig. ModbusPDU10WriteMultipleRegistersError            
ModbusPDU10WriteMultipleRegistersError fields

funcCode

XByteField

'144'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU10WriteMultipleRegistersRequest(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |           STARTADDR           |QUANTITYREGISTE|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |   BYTECOUNT   |          OUTPUTSVALUE         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

          Fig. ModbusPDU10WriteMultipleRegistersRequest           
ModbusPDU10WriteMultipleRegistersRequest fields

funcCode

XByteField

'16'

startAddr

XShortField

'0'

quantityRegisters

BitFieldLenField (16 bits)

'None'

byteCount

BitFieldLenField (8 bits)

'None'

outputsValue

FieldListField

'[0]'

class scapy.contrib.modbus.ModbusPDU10WriteMultipleRegistersResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |           STARTADDR           |QUANTITYREGISTE|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

          Fig. ModbusPDU10WriteMultipleRegistersResponse          
ModbusPDU10WriteMultipleRegistersResponse fields

funcCode

XByteField

'16'

startAddr

XShortField

'0'

quantityRegisters

XShortField

'1'

class scapy.contrib.modbus.ModbusPDU11ReportSlaveIdError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Fig. ModbusPDU11ReportSlaveIdError                
ModbusPDU11ReportSlaveIdError fields

funcCode

XByteField

'145'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU11ReportSlaveIdRequest(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |
+-+-+-+-+-+-+-+-+

               Fig. ModbusPDU11ReportSlaveIdRequest               
ModbusPDU11ReportSlaveIdRequest fields

funcCode

XByteField

'17'

class scapy.contrib.modbus.ModbusPDU11ReportSlaveIdResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   BYTECOUNT   |            SLAVEID            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|RUNIDICATORSTAT|
+-+-+-+-+-+-+-+-+

              Fig. ModbusPDU11ReportSlaveIdResponse               
ModbusPDU11ReportSlaveIdResponse fields

funcCode

XByteField

'17'

byteCount

BitFieldLenField (8 bits)

'None'

slaveId

StrLenField (Cond)

"b''"

runIdicatorStatus

XByteField (Cond)

'0'

class scapy.contrib.modbus.ModbusPDU14ReadFileRecordError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Fig. ModbusPDU14ReadFileRecordError                
ModbusPDU14ReadFileRecordError fields

funcCode

XByteField

'148'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU14ReadFileRecordRequest(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   BYTECOUNT   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

              Fig. ModbusPDU14ReadFileRecordRequest               
ModbusPDU14ReadFileRecordRequest fields

funcCode

XByteField

'20'

byteCount

ByteField

'None'

guess_payload_class(payload)
post_build(p, pay)
class scapy.contrib.modbus.ModbusPDU14ReadFileRecordResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   DATALENGTH  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

              Fig. ModbusPDU14ReadFileRecordResponse              
ModbusPDU14ReadFileRecordResponse fields

funcCode

XByteField

'20'

dataLength

ByteField

'None'

guess_payload_class(payload)
post_build(p, pay)
class scapy.contrib.modbus.ModbusPDU15WriteFileRecordError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Fig. ModbusPDU15WriteFileRecordError               
ModbusPDU15WriteFileRecordError fields

funcCode

XByteField

'149'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU15WriteFileRecordRequest(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   DATALENGTH  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

              Fig. ModbusPDU15WriteFileRecordRequest              
ModbusPDU15WriteFileRecordRequest fields

funcCode

XByteField

'21'

dataLength

ByteField

'None'

guess_payload_class(payload)
post_build(p, pay)
class scapy.contrib.modbus.ModbusPDU15WriteFileRecordResponse(*args, **kargs)

Bases: scapy.contrib.modbus.ModbusPDU15WriteFileRecordRequest

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   DATALENGTH  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Fig. ModbusPDU15WriteFileRecordResponse              
ModbusPDU15WriteFileRecordResponse fields

funcCode

XByteField

'21'

dataLength

ByteField

'None'

guess_payload_class(payload)
class scapy.contrib.modbus.ModbusPDU16MaskWriteRegisterError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

              Fig. ModbusPDU16MaskWriteRegisterError              
ModbusPDU16MaskWriteRegisterError fields

funcCode

XByteField

'150'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU16MaskWriteRegisterRequest(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |            REFADDR            |    ANDMASK    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |             ORMASK            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Fig. ModbusPDU16MaskWriteRegisterRequest             
ModbusPDU16MaskWriteRegisterRequest fields

funcCode

XByteField

'22'

refAddr

XShortField

'0'

andMask

XShortField

'65535'

orMask

XShortField

'0'

class scapy.contrib.modbus.ModbusPDU16MaskWriteRegisterResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |            REFADDR            |    ANDMASK    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |             ORMASK            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Fig. ModbusPDU16MaskWriteRegisterResponse             
ModbusPDU16MaskWriteRegisterResponse fields

funcCode

XByteField

'22'

refAddr

XShortField

'0'

andMask

XShortField

'65535'

orMask

XShortField

'0'

class scapy.contrib.modbus.ModbusPDU17ReadWriteMultipleRegistersError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Fig. ModbusPDU17ReadWriteMultipleRegistersError          
ModbusPDU17ReadWriteMultipleRegistersError fields

funcCode

XByteField

'151'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU17ReadWriteMultipleRegistersRequest(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |        READSTARTINGADDR       |READQUANTITYREG|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |       WRITESTARTINGADDR       |WRITEQUANTITYRE|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |   BYTECOUNT   |      WRITEREGISTERSVALUE      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

        Fig. ModbusPDU17ReadWriteMultipleRegistersRequest         
ModbusPDU17ReadWriteMultipleRegistersRequest fields

funcCode

XByteField

'23'

readStartingAddr

XShortField

'0'

readQuantityRegisters

XShortField

'1'

writeStartingAddr

XShortField

'0'

writeQuantityRegisters

BitFieldLenField (16 bits)

'None'

byteCount

BitFieldLenField (8 bits)

'None'

writeRegistersValue

FieldListField

'[0]'

class scapy.contrib.modbus.ModbusPDU17ReadWriteMultipleRegistersResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   BYTECOUNT   |          REGISTERVAL          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

        Fig. ModbusPDU17ReadWriteMultipleRegistersResponse        
ModbusPDU17ReadWriteMultipleRegistersResponse fields

funcCode

XByteField

'23'

byteCount

BitFieldLenField (8 bits)

'None'

registerVal

FieldListField

'[0]'

class scapy.contrib.modbus.ModbusPDU18ReadFIFOQueueError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Fig. ModbusPDU18ReadFIFOQueueError                
ModbusPDU18ReadFIFOQueueError fields

funcCode

XByteField

'152'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU18ReadFIFOQueueRequest(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |        FIFOPOINTERADDR        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Fig. ModbusPDU18ReadFIFOQueueRequest               
ModbusPDU18ReadFIFOQueueRequest fields

funcCode

XByteField

'24'

FIFOPointerAddr

XShortField

'0'

class scapy.contrib.modbus.ModbusPDU18ReadFIFOQueueResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |           BYTECOUNT           |   FIFOCOUNT   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            FIFOVAL            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

              Fig. ModbusPDU18ReadFIFOQueueResponse               
ModbusPDU18ReadFIFOQueueResponse fields

funcCode

XByteField

'24'

byteCount

BitFieldLenField (16 bits)

'None'

FIFOCount

BitFieldLenField (16 bits)

'None'

FIFOVal

FieldListField

'[]'

class scapy.contrib.modbus.ModbusPDU2B0EReadDeviceIdentificationError(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |   EXCEPTCODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Fig. ModbusPDU2B0EReadDeviceIdentificationError          
ModbusPDU2B0EReadDeviceIdentificationError fields

funcCode

XByteField

'171'

exceptCode

ByteEnumField

'1'

class scapy.contrib.modbus.ModbusPDU2B0EReadDeviceIdentificationRequest(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |    MEITYPE    |    READCODE   |    OBJECTID   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

        Fig. ModbusPDU2B0EReadDeviceIdentificationRequest         
ModbusPDU2B0EReadDeviceIdentificationRequest fields

funcCode

XByteField

'43'

MEIType

XByteField

'14'

readCode

ByteEnumField

'1'

objectId

ByteEnumField

'0'

class scapy.contrib.modbus.ModbusPDU2B0EReadDeviceIdentificationResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |    MEITYPE    |    READCODE   |CONFORMITYLEVEL|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      MORE     |   NEXTOBJID   |    OBJCOUNT   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

        Fig. ModbusPDU2B0EReadDeviceIdentificationResponse        
ModbusPDU2B0EReadDeviceIdentificationResponse fields

funcCode

XByteField

'43'

MEIType

XByteField

'14'

readCode

ByteEnumField

'4'

conformityLevel

ByteEnumField

'1'

more

ByteEnumField

'0'

nextObjId

ByteEnumField

'0'

objCount

ByteField

'0'

guess_payload_class(payload)
class scapy.contrib.modbus.ModbusPDUReservedFunctionCodeError(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |            PAYLOAD            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Fig. ModbusPDUReservedFunctionCodeError              
ModbusPDUReservedFunctionCodeError fields

funcCode

ByteEnumField

'0'

payload

StrFixedLenField

"b''"

mysummary()
class scapy.contrib.modbus.ModbusPDUReservedFunctionCodeRequest(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |            PAYLOAD            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Fig. ModbusPDUReservedFunctionCodeRequest             
ModbusPDUReservedFunctionCodeRequest fields

funcCode

ByteEnumField

'0'

payload

StrFixedLenField

"b''"

mysummary()
class scapy.contrib.modbus.ModbusPDUReservedFunctionCodeResponse(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |            PAYLOAD            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Fig. ModbusPDUReservedFunctionCodeResponse            
ModbusPDUReservedFunctionCodeResponse fields

funcCode

ByteEnumField

'0'

payload

StrFixedLenField

"b''"

mysummary()
class scapy.contrib.modbus.ModbusPDUUserDefinedFunctionCodeError(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |            PAYLOAD            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Fig. ModbusPDUUserDefinedFunctionCodeError            
ModbusPDUUserDefinedFunctionCodeError fields

funcCode

ModbusByteEnumField

'0'

payload

StrFixedLenField

"b''"

mysummary()
class scapy.contrib.modbus.ModbusPDUUserDefinedFunctionCodeRequest(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |            PAYLOAD            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

           Fig. ModbusPDUUserDefinedFunctionCodeRequest           
ModbusPDUUserDefinedFunctionCodeRequest fields

funcCode

ModbusByteEnumField

'0'

payload

StrFixedLenField

"b''"

mysummary()
class scapy.contrib.modbus.ModbusPDUUserDefinedFunctionCodeResponse(*args, **kargs)

Bases: scapy.contrib.modbus._ModbusPDUNoPayload

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    FUNCCODE   |            PAYLOAD            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

          Fig. ModbusPDUUserDefinedFunctionCodeResponse           
ModbusPDUUserDefinedFunctionCodeResponse fields

funcCode

ModbusByteEnumField

'0'

payload

StrFixedLenField

"b''"

mysummary()
class scapy.contrib.modbus.ModbusReadFileSubRequest(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    REFTYPE    |           FILENUMBER          |  RECORDNUMBER |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |          RECORDLENGTH         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Fig. ModbusReadFileSubRequest                   
ModbusReadFileSubRequest fields

refType

ByteField

'6'

fileNumber

ShortField

'1'

recordNumber

ShortField

'0'

recordLength

ShortField

'1'

guess_payload_class(payload)
class scapy.contrib.modbus.ModbusReadFileSubResponse(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   RESPLENGTH  |    REFTYPE    |            RECDATA            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Fig. ModbusReadFileSubResponse                  
ModbusReadFileSubResponse fields

respLength

BitFieldLenField (8 bits)

'None'

refType

ByteField

'6'

recData

FieldListField

'[0]'

guess_payload_class(payload)
class scapy.contrib.modbus.ModbusWriteFileSubRequest(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    REFTYPE    |           FILENUMBER          |  RECORDNUMBER |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |          RECORDLENGTH         |   RECORDDATA  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                  Fig. ModbusWriteFileSubRequest                  
ModbusWriteFileSubRequest fields

refType

ByteField

'6'

fileNumber

ShortField

'1'

recordNumber

ShortField

'0'

recordLength

BitFieldLenField (16 bits)

'None'

recordData

FieldListField

'[0]'

guess_payload_class(payload)
class scapy.contrib.modbus.ModbusWriteFileSubResponse(*args, **kargs)

Bases: scapy.contrib.modbus.ModbusWriteFileSubRequest

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    REFTYPE    |           FILENUMBER          |  RECORDNUMBER |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |          RECORDLENGTH         |   RECORDDATA  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                 Fig. ModbusWriteFileSubResponse                  
ModbusWriteFileSubResponse fields

refType

ByteField

'6'

fileNumber

ShortField

'1'

recordNumber

ShortField

'0'

recordLength

BitFieldLenField (16 bits)

'None'

recordData

FieldListField

'[0]'

guess_payload_class(payload)