Advertisement
kwasinski

Collector - fakeModBusServer.plx

Jun 17th, 2020
2,049
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.79 KB | None | 0 0
  1. #!perl -w
  2.  
  3. use Device::Modbus::TCP::Server;
  4. use strict;
  5. use warnings;
  6. use v5.10;
  7.  
  8. {
  9.     package My::Unit;
  10.     our @ISA = ('Device::Modbus::Unit');
  11.  
  12.     sub init_unit {
  13.         my $unit = shift;
  14.  
  15.     #                Zone            addr qty   method
  16.     #           -------------------  ---- ---  ---------
  17.     $unit->get('holding_registers',    2,  1,  'get_addr_2');
  18. }
  19.  
  20. sub get_addr_2 {
  21.     my ($unit, $server, $req, $addr, $qty) = @_;
  22.     $server->log(4,"Executed server routine for address 2");
  23.     return 3;
  24. }
  25. }
  26.  
  27. my $server = Device::Modbus::TCP::Server->new(
  28.     log_level => 4,
  29.     log_file  => 'logfile',
  30.     port        => 502,
  31.     host        => $ARGV[0],
  32.     ipv         => 4,
  33.     proto       => 'tcp'
  34. );
  35.  
  36. my $unit = My::Unit->new(id => 3);
  37. $server->add_server_unit($unit);
  38.  
  39. $server->start;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement