Cosimo Streppone > Protocol-Modbus-0.10 > Protocol::Modbus

Download:
Protocol-Modbus-0.10.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  2
Open  3
View/Report Bugs
Module Version: 0.10   Source  

NAME ^

Protocol::Modbus - Implements Modbus protocol message generation and parsing

VERSION ^

This documentation relates to Protocol::Modbus version 0.01. API is surely going to change! Warning! Beta-version ahead!

SYNOPSIS ^

  use Protocol::Modbus;

  # Initialize protocol object
  my $proto = Protocol::Modbus->new( driver=>'TCP', transport=>'TCP' );

  # Get a request object
  my $request = $proto->request(
      function => Protocol::Modbus::FUNC_READ_COILS, # or 0x01
      address  => 0x1234,
      quantity => 1,
      #unit     => 0x07, # Not required for Modbus/TCP
  );
  
  # ... or another way
  my $request = $proto->readInputsRequest(
      address  => 0,
      quantity => 64,
      #unit    => 0x07, # Not required for Modbus/TCP
  );

  # Dump request as binary packets
  print unpack('H*', $request->pdu()), "\n";

  # Pretty-print request on stdout
  print $request . "\n";   # Modbus Request PDU(......)
  print $request->stringify() . "\n";

  # Parse responses...
  #
  # TODO...

DESCRIPTION ^

Object-oriented class to abstract generation and parsing of Modbus protocol messages. This class only handles protocol messages generation and parsing. It does not directly interface with your PLC devices. For that task, see the Device::PLC CPAN module (when that will be released).

Be sure to check out the examples folder to see some scripts that should work out of the box with a Modbus TCP server.

METHODS ^

Main methods are used to build Modbus requests.

readCoilsRequest
readInputsRequest
readHoldRegistersRequest
writeCoilRequest
writeRegisterRequest

STATUS ^

The set of classes is quite far from covering the whole Modbus protocol. In particular, aspects related to mantaining the state of the modbus server are completely skipped at this stage.

For now, there is only the main design and few more classes. I only implemented the necessary things to make the examples work, that is only simple requests with response parsing and coils status for example.

Further development will see the light when there's need and time... I wouldn't be surprised if it doesn't work for you out-of-the-box.

SEE ALSO ^

AUTHOR ^

Cosimo Streppone, <cosimo@cpan.org>

COPYRIGHT AND LICENSE ^

Copyright (C) 2007 by Cosimo Streppone

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.

syntax highlighting: