jfraire / Device-Modbus

Perl distribution to implement Modbus communications
Artistic License 2.0
8 stars 1 forks source link

modbus function 4 not consistent values #3

Closed sparvu closed 8 years ago

sparvu commented 8 years ago

Here is another simple example how I read values from one device with different results

root@raspberrypi:/opt/kronometrix/bin# ./rs485rec_2
^@Unit number is invalid at /opt/kronometrix/perl/lib/site_perl/5.20.3/Device/Modbus/RTU.pm line 105.
root@raspberrypi:/opt/kronometrix/bin# ./rs485rec_2
<-$VAR1 = bless( {
                 'unit' => 1,
                 'crc' => 22239,
                 'message' => bless( {
                                       'values' => [
                                                     17386,
                                                     32768,
                                                     16553,
                                                     39322,
                                                     16834,
                                                     26214,
                                                     16916,
                                                     26214,
                                                     469,
                                                     53,
                                                     243,
                                                     371
                                                   ],
                                       'code' => 4,
                                       'bytes' => 24,
                                       'function' => 'Read Input Registers'
                                     }, 'Device::Modbus::Response' )
               }, 'Device::Modbus::RTU::ADU' );
sparvu commented 8 years ago

The client RTU for this part is this:

use Device::Modbus::RTU::Client;
use strict;
use warnings;
use Data::Dumper;

my $client = Device::Modbus::RTU::Client->new(
    port     => '/dev/ttyUSB0',
    baudrate => 19200,
    parity   => 'none',
    stopbits => '1',
    timeout => '5'
 );

my $req = $client->read_input_registers(
    unit     => 1,
    address  => 0,
    quantity => 12
 );

# print '->' . Dumper($req);

$client->send_request($req);
my $resp = $client->receive_response;

print '<-' . Dumper($resp);

$client->disconnect;
sparvu commented 8 years ago

Im getting different things when I execute same code, two times. Why ?

krmx@raspberrypi:~ $ /opt/kronometrix/bin/rs485rec
timeout=2730.72916666667
timeout=2461.45833333333
timeout=2192.1875
timeout=1922.91666666667
timeout=1653.64583333333
timeout=1384.375
timeout=1115.10416666667
timeout=845.833333333333
timeout=576.5625
timeout=307.291666666667
timeout=38.0208333333334
timeout=-231.25
> 1-4-24-67-208-0-0-64-195-51-51-65-219-51-51-66-5-153-154-1-160-0-61-1-18-1-78-117-113-0-252-0-0-0-254-0-255-0-0-192-0-0-0-255-0-0-254-0-255-0-0-0-255-0-255-0-0-0-240-0-0-0-255-0-0-0-0-255-0-252-0-0-226-0-255-0-0-0-0-0-255-0-0-0-0-253-0-0-0-252-0-0-0-0-248-0-224-0-0-0-0-0-255-0-0-254-0-0-0-255-0-255-0-0-255-0-254-0-252-0-254-0-255-0-0-0-253-0-253-0-254-0-0-255-0-0-0-0-0-255-0-0-254-0-254-0-255-0-0-254-0-0-0-0-0-0-0-0-255-0-0-254-0-0-255-0-0-255-0-255-0-255-0-254-0-0-0-255-0-0-255-0-252-0-0-254-0-255-0-255-0-254-0-255-0-254-0-254-0-254-0-0-254-0-0-0-0-252-0-0-0-255-0-0-255-0-0-0-255-0-0-0-224-0-254-0-0-0-0-0-255-0-0-255-0-255-0-254-0-255-0-0-254-0-255-0-0-248-0-0-255-0-252-0-0-255-0-0-0-255-0-255-0-254-0-252-0-0-0-0-254-0-0-0-0-0-0-0-255-0-0-0-255-0-0-254-0-0-0-254-0-0-0-255-0-255-0-0-0-0-0-0-255-0-0-0-0-0-0-0-0-255-0-0-254-0-255-0-255-0-0-0-0-0-255-0-0-0-252-0-254-0-0-255-0-0-255-0-254-0-0-255-0-0-0-0-0-255-0-255-0-252-0-0-255-0-254-0-0-255-0-255-0-0-0-0-0-255-0-255-0-254-0-0-0-255-0-240-0-0-0-255-0-0-252-0-0-250-0-254-0-255-0-255-0-0-0-0-0-0-255-0-255-0-0-254-0-0-0-0-255-0-0-0-192-0-254-0-0-0-0-0-0-255-0-254-0-0-248-0-254-0-254-0-0-255-0-250-0-0-255-0-255-0-254-0-0-255-0-254-0-0-0-0-255-0-255-0-0-254-0-0-0-0-0-255-0-0-0-255-0-0-0-0-252-0-0-0-252-0-254-0-255-0-0-0-0-0-254-0-0-255-0-253-0-254-0-252-0-0-254-0-0-0-248-0-0-0-0-254-0-0-255-0-0-255-0-255-0-254-0-0-0-0-0-255-0-254-0-255-0-0-254-0-0-240-0-0-0-0-0-0-254-0-0-0-254-0-255-0-254-0-254-0-255-0-255-0-254-0-254-0-0-255-0-254-0-0-0-254-0-248-0-254-0-0-255-0-0-0-0-224-0-0-255-0-0-0-255-0-0-0-0-255-0-0-254-0-0-255-0-255-0-0-0-0-255-0-255-0-255-0-255-0-0-0-254-0-0-254-0-0-255-0-0-0-254-0-0-255-0-0-0-0-0-0-0-254-0-0-0-0-254-0-0-255-0-255-0-255-0-0-0-254-0-255-0-0-0-0-224-0-0-0-255-0-255-0-227-0-255-0-0-0-0-255-0-0-255-0-0-0-0-0-254-0-0-0-255-0-0-255-0-0-254-0-255-0-0-255-0-254-0-0-255-0-0-0-0-0-248-0-0-0-0-0-0-0-255-0-0-0-252-0-254-0-255-0-255-0-0-255-0-0-0-0-0-255-0-0-0-240-0-255-0-253-0-254-0-0-254-0-0-0-0-252-0-0-255-0-0-254-0-0-252-0-0-0-254-0-0-0-0-250-0-0-0-255-0-0-255-0-0-0-0-0-0-255-0-254-0-0-0-0-0-0-0-0-255-0-254-0-0-255-0-0-0-0-0-0-0-0-252-0-128-0-0-0-0-0-255-0-0-252-0-0-0-0-255-0-255-0-254-0-255-0-252-0-0-0-224-0-252-0-0-255-0-0-0-0-254-0-255-0-0-253-0-0-254-0-0-0-255-0-0-0-254-0-0-255-0-255-0-0-0-255-0-0-255-0-255-0-255-0-0-128-0-0-0-0-0-255-0-0-0-252-0-0-0-254-0-0-254-0-254-0-0-0-0-0-240-0-0-0-0-255-0-0-0-254-0-0-255-0-255-0-0-0-255-0-255-0-254-0-0-252-0-0-0-254-0-255-0-255-0-0-0-252-0-252-0-254-0-0-0-0-0-0-0-240-0-0-128-0-255-0-255-0-0-255-0-0-255-0-0-0-0-0-0-0-0-254-0-255-0-0-0-0-192-0-255-0-252-0-0-255-0-0-254-0-254-0-0-254-0-255-0-255-0-255-0-0-0-255-0-0-176-0-254-0-255-0-0-252-0-0-0-244-0-248-0-0-0-0-0-240-0-0-0-255-0-249-0-0-0-0-254-0-254-0-254-0-255-0-0-0-0-0-0-255-0-0-0-0-254-0-254-0-0-0-255-0-255-0-255-0-0-0-0-0-254-0-0-0-0-0-0-0-0-254-0-255-0-0-255-0-0-0-0-0-248-0-0-0-0-0-255-0-0-0-254-0-255-0-255-0-0-0-0-255-0-254-0-0-0-0-248-0-0-254-0-255-0-255-0-254-0-0-0-252-0-0-240-0-0-248-0-254-0-255-0-0-255-0-0-255-0-252-0-248-0-255-0-252-0-255-0-254-0-0-0-255-0-255-0-0-0-48-0-254-0-255-0-0-254-0-0-255-0-254-0-254-0-255-0-0-253-0-0-255-0-0-255-0-255-0-255-0-0-0-0-0-255-0-0-0-0-255-0-255-0-0-255-0-0-0-0-255-0-128-0-255-0-0-255-0-254-0-255-0-0-0-254-0-0-249-0-255-0-192-0-255-0-253-0-0-255-0-0-255-0-0-253-0-255-0-0-0-0-255-0-0-0-0-0-0-255-0-254-0-254-0-0-255-0-254-0-0-255-0-0-0-255-0-254-0-0-0-0-254-0-0-0-0-254-0-255-0-0-0-0-254-0-0-248-0-254-0-0-0-0-0-0-0-0-0-0-0-0-0-0-254-0-252-0-0-255-0-255-0-0-0-255-0-0-254-0-0-254-0-0-252-0-0-0-0-252-0-255-0-0-192-0-254-0-255-0-254-0-0-0-0-255-0-0-0-252-0-255-0-252-0-255-0-255-0-255-0-0-0-0-0-0-0-0-255-0-128-0-0-0-255-0-252-0-0-0-254-0-0-0-255-0-0-248-0-0-0-0-254-0-0-255-0-254-0-0-254-0-0-0-0-252-0-0-0-0-255-0-254-0-0-0-0-0-254-0-255-0-0-0-255-0-253-0-0-0-0-0-255-0-255-0-254-0-255-0-0-0-0-248-0-255-0-249-0-252-0-0-254-0-0-224-0-0-0-254-0-0-0-0-0-0-255-0-0-0-0-0-255-0-0-0-0-0-255-0-254-0-0-0-254-0-0-0-0-0-253-0-255-0-255-0-0-255-0-0-0-254-0-0-252-0-0-0-0-0-0-0-192-0-255-0-255-0-0-255-0-254-0-252-0-255-0-255-0-255-0-0-255-0-0-255-0-0-0-255-0-0-254-0-0-252-0-255-0-255-0-255-0-254-0-0-255-0-0-255-0-254-0-0-255-0-0-255-0-0-0-0-0-254-0-252-0-255-0-0-255-0-0-254-0-254-0-0-0-0-0-0-255-0-255-0-0-0-0-0-255-0-0-0-254-0-252-0-252-0-255-0-0-255-0-255-0-0-249-0-255-0-128-0-0-0-0-0-255-0-0-0-0-0-248-0-255-0-0-0-248-0-255-0-0-0-0-252-0-0-0-255-0-254-0-0-253-0-0-254-0-0-0-255-0-255-0-0-0-0-0-0-252-0-0-255-0-0-255-0-255-0-0-0-0-0-254-0-0-0-254-0-255-0-0-254-0-0-0-0-255-0-0-0-254-0-128-0-254-0-0-224-0-0-224-0-255-0-255-0-248-0-0-255-0-0-255-0-255-0-0-0-255-0-254-0-255-0-0-252-0-0-0-0-248-0-0-255-0-252-0-255-0-254-0-0-0-255-0-0-254-0-0-0-0-0-255-0-0-255-0-0-254-0-255-0-0-0-255-0-0-255-0-242-0-254-0-192-0-224-0-255-0-248-0-255-0-0-255-0-252-0-0-0-255-0-0-252-0-255-0-0-254-0-254-0-0-0-0-0-0-0-0-0-192-0-0-0-255-0-255-0-252-0-255-0-0-0-0-224-0-0-254-0-255-0-0-224-0-0-0-0-255-0-0-0-255-0-0-0-0-0-255-0-254-0-0-0-255-0-0-0-252-0-0-0-0-255-0-0-255-0-0-0-254-0-0-0-0-252-0-255-0-0-255-0-0-0-0-0-0-0-0-0-254-0-0-254-0-255-0-0-255-0-0-0-0-0-0-0-255-0-0-0-254-0-254-0-255-0-0-0-0-0-255-0-0-0-249-0-0-0-0-0-0-0-254-0-248-0-0-0-255-0-255-0-254-0-128-0-0-255-0-255-0-254-0-254-0-255-0-255-0-252-0-0-255-0-0-255-0-0-255-0-254-0-255-0-0-0-0-0-0-0-252-0-249-0-255-0-252-0-0-0-0-0-255-0-224-0-0-0-0-0-0-0-255-0-248-0-0-243-0-0-255-0-0-255-0-255-0-254-0-0-0-255-0-254-0-0-0-0-252-0-0-0-0-0-0-0-252-0-255-0-0-0-192-0-0-0-0-255-0-255-0-0-254-0-254-0-254-0-254-0-0-0-255-0-255-0-252-0-0-255-0-254-0-0-255-0-254-0-0-0-254-0-0-0-0-184-0-0-0-0-254-0-255-0-0-255-0-0-255-0-255-0-0-0-0-0-0-0-255-0-0-255-0-0-255-0-0-254-0-0-0-252-0-0-0-0-0-0-0-0-0-0-0-252-0-240-0-0-0-0-254-0-0-255-0-249-0-252-0-0-0-255-0-0-0-255-0-0-255-0-254-0-0-0-0-0-254-0-0-254-0-0-255-0-0-0-0-254-0-254-0-192-0-255-0-0-0-255-0-0-254-0-254-0-0-249-0-0-0-0-248-0-0-0-0-0-254-0-254-0-254-0-0-255-0-255-0-255-0-255-0-0-0-254-0-248-0-0-0-254-0-0-255-0-0-0-0-255-0-254-0-255-0-254-0-253-0-0-255-0-255-0-255-0-255-0-0-255-0-0-0-0-255-0-0-255-0-0-252-0-254-0-254-0-0-0-0-0-0-254-0-255-0-0-255-0-248-0-0-255-0-0-0-255-0-0-255-0-0-0-0-255-0-252-0-0-0-251-0-0-255-0-254-0-0-0-0-0-254-0-0-252-0-255-0-255-0-0-252-0-0-0-254-0-253-0-254-0-0-0-0-0-0-254-0-254-0-0-0-250-0-0-0-0-255-0-0-255-0-252-0-254-0-255-0-0-254-0-0-254-0-0-0-0-0-255-0-254-0-255-0-255-0-254-0-0-255-0-224-0-0-255-0-0-0-0-255-0-0-0-254-0-255-0-255-0-254-0-0-255-0-254-0-0-0-254-0-255-0-253-0-248-0-255-0-0-0-255-0-255-0-255-0-252-0-255-0-0-0-0-192-0-255-0-255-0-252-0-0-255-0-0-0-254-0-0-0-254-0-0-254-0-0-0-254-0-254-0-253-0-0-255-0-254-0-0-0-0-0-255-0-0-0-252-0-0-252-0-255-0-255-0-0-0-0-255-0-0-0-0-255-0-252-0-0-255-0-246-0-255-0-254-0-255-0-254-0-0-0-252-0-0-255-0-255-0-252-0-0-0-255-0-255-0-0-0-254-0-254-0-255-0-252-0-0-0-0-255-0-252-0-0-0-0-0-0-192-0-0-0-0-255-0-0-0-255-0-192-0-255-0-0-255-0-0-0-0-0-255-0-255-0-255-0-255-0-254-0-254-0-255-0-250-0-254-0-255-0-0-240-0-255-0-254-0-0-0-0-254-0-0-253-0-0-255-0-0-254-0-255-0-0-243-0-0-0-0-254-0-0-0-0-0-255-0-0-0-254-0-255-0-0-0-0-255-0-0-0-255-0-255-0-0-0-0-240-0-255-0-0-0-0-254-0-252-0-224-0-0-248-0-255-0-255-0-0-0-0-224-0-254-0-254-0-0-255-0-0-0-0-255-0-254-0-0-0-0-0-0-0-255-0-0-255-0-0-0-240-0-255-0-0-0-255-0-0-254-0-255-0-0-0-255-0-253-0-255-0-0-0-0-0-0-255-0-255-0-254-0-255-0-255-0-255-0-252-0-254-0-254-0-255-0-0-255-0-0-0-0-255-0-255-0-0-0-0-254-0-255-0-0-0-254-0-0-0-0-248-0-0-255-0-255-0-252-0-252-0-0-255-0-0-252-0-255-0-255-0-0-0-255-0-0-0-255-0-0-0-254-0-0-0-255-0-253-0-0-224-0-0-255-0-0-0-0-254-0-0-0-0-252-0-255-0-0-0-254-0-254-0-0-0-0-255-0-0-0-254-0-252-0-0-0-254-0-0-0-255-0-0-0-255-0-255-0
$VAR1 = bless( {
                 'crc' => 29045,
                 'unit' => 1,
                 'message' => bless( {
                                       'values' => [
                                                     17360,
                                                     0,
                                                     16579,
                                                     13107,
                                                     16859,
                                                     13107,
                                                     16901,
                                                     39322,
                                                     416,
                                                     61,
                                                     274,
                                                     334
                                                   ],
                                       'code' => 4,
                                       'bytes' => 24,
                                       'function' => 'Read Input Registers'
                                     }, 'Device::Modbus::Response' )
               }, 'Device::Modbus::RTU::ADU' );

and then a bit later, after 5-10 seconds:

krmx@raspberrypi:~ $ /opt/kronometrix/bin/rs485rec
timeout=2730.72916666667
timeout=2461.45833333333
timeout=2192.1875
timeout=1922.91666666667
timeout=1653.64583333333
timeout=1384.375
timeout=1115.10416666667
timeout=845.833333333333
timeout=576.5625
timeout=307.291666666667
timeout=38.0208333333334
timeout=-231.25
> 254-1-4-24-67-208-0-0-64-201-153-154-65-219-51-51-66-5-153-154-1-160-0-63-1-18-1-78-56-224-0-254-0-0-0-254-0-254-0-0-0-252-0-0-252-0-128-0-0-240-0-0-254-0-0-0-255-0-255-0-255-0-0-255-0-0-0-254-0-0-0-0-0-0-255-0-0-0-0-0-0-0-255-0-0-0-255-0-0-0-0-254-0-255-0-252-0-255-0-0-0-0-0-0-255-0-0-255-0-0-0-0-0-252-0-255-0-0-0-255-0-252-0-252-0-0-255-0-0-254-0-255-0-0-255-0-255-0-0-255-0-0-255-0-252-0-254-0-0-0-255-0-240-0-255-0-254-0-255-0-0-255-0-0-255-0-255-0-254-0-252-0-255-0-0-255-0-255-0-0-248-0-255-0-254-0-255-0-0-252-0-0-255-0-255-0-128-0-0-255-0-0-240-0-0-252-0-255-0-255-0-0-255-0-254-0-254-0-0-0-240-0-0-0-0-0-0-254-0-255-0-248-0-255-0-0-240-0-0-255-0-255-0-0-0-0-0-254-0-255-0-0-0-0-0-252-0-255-0-0-255-0-253-0-255-0-0-255-0-248-0-254-0-0-0-0-0-0-254-0-0-0-0-0-0-0-255-0-0-240-0-255-0-0-253-0-255-0-0-0-0-192-0-255-0-0-255-0-208-0-254-0-0-254-0-0-255-0-0-0-253-0-0-255-0-0-255-0-254-0-254-0-0-0-0-0-254-0-0-254-0-254-0-0-0-0-254-0-254-0-255-0-0-254-0-248-0-0-255-0-254-0-0-0-255-0-0-0-254-0-0-128-0-0-240-0-255-0-255-0-254-0-0-255-0-0-0-0-0-0-0-0-0-255-0-0-240-0-0-0-254-0-254-0-0-0-0-254-0-255-0-0-255-0-0-0-0-0-0-0-0-252-0-254-0-254-0-0-255-0-254-0-0-248-0-0-0-0-254-0-244-0-255-0-0-0-255-0-0-252-0-255-0-0-254-0-254-0-0-255-0-255-0-254-0-0-252-0-255-0-0-0-0-255-0-252-0-255-0-0-0-255-0-252-0-254-0-254-0-0-254-0-254-0-0-255-0-0-254-0-0-0-0-0-255-0-0-0-0-0-255-0-254-0-248-0-0-0-0-254-0-0-255-0-228-0-0-0-0-0-128-0-0-0-254-0-0-0-0-0-255-0-0-254-0-0-255-0-0-0-0-0-254-0-0-0-254-0-0-0-254-0-0-254-0-0-255-0-0-253-0-0-0-0-0-0-0-0-255-0-255-0-254-0-255-0-255-0-253-0-253-0-0-0-0-0-254-0-254-0-0-254-0-255-0-240-0-0-0-0-255-0-0-0-0-0-255-0-0-0-0-0-254-0-255-0-252-0-0-0-0-255-0-252-0-0-0-0-0-0-252-0-0-254-0-248-0-254-0-254-0-255-0-0-0-255-0-254-0-254-0-0-254-0-0-0-254-0-254-0-0-254-0-0-0-0-0-0-0-0-0-0-0-255-0-0-0-255-0-224-0-255-0-0-0-0-0-254-0-0-0-255-0-254-0-0-255-0-255-0-0-0-254-0-255-0-255-0-252-0-0-252-0-0-0-255-0-254-0-255-0-0-0-255-0-254-0-254-0-255-0-0-0-255-0-0-224-0-254-0-254-0-0-0-0-254-0-0-255-0-0-0-0-0-0-0-254-0-0-252-0-0-254-0-0-0-240-0-254-0-255-0-255-0-248-0-255-0-255-0-0-0-0-0-0-255-0-254-0-254-0-0-128-0-0-0-254-0-252-0-252-0-0-0-255-0-0-0-0-0-0-0-0-255-0-254-0-0-0-0-255-0-255-0-255-0-254-0-254-0-0-0-254-0-254-0-255-0-0-0-254-0-255-0-255-0-255-0-254-0-192-0-0-224-0-255-0-252-0-254-0-0-0-254-0-0-255-0-0-254-0-254-0-0-254-0-254-0-0-0-255-0-255-0-254-0-0-0-0-255-0-0-0-254-0-252-0-0-0-0-0-0-0-0-252-0-0-0-0-0-0-255-0-0-0-0-0-252-0-254-0-0-0-254-0-0-252-0-0-255-0-0-0-0-0-254-0-254-0-0-0-0-252-0-0-255-0-0-0-255-0-0-249-0-0-0-0-255-0-255-0-0-0-0-0-0-0-0-254-0-254-0-254-0-255-0-255-0-255-0-254-0-254-0-0-0-0-248-0-255-0-254-0-0-254-0-0-252-0-0-255-0-255-0-0-255-0-255-0-0-255-0-0-0-255-0-0-0-224-0-0-252-0-255-0-0-0-0-0-0-0-254-0-248-0-0-255-0-255-0-255-0-254-0-0-0-0-254-0-255-0-255-0-255-0-0-0-0-0-0-254-0-255-0-0-192-0-253-0-0-0-0-0-0-0-0-0-0-255-0-0-241-0-0-0-255-0-0-255-0-254-0-192-0-252-0-0-192-0-0-0-252-0-254-0-0-255-0-0-0-0-0-0-254-0-0-0-0-254-0-0-0-255-0-229-0-0-254-0-0-0-0-0-254-0-0-0-255-0-254-0-0-0-254-0-252-0-0-0-255-0-254-0-0-254-0-255-0-255-0-0-0-252-0-0-0-0-254-0-255-0-0-0-0-254-0-0-0-255-0-0-254-0-254-0-0-0-255-0-255-0-255-0-0-254-0-0-0-252-0-255-0-252-0-255-0-233-0-0-0-254-0-0-255-0-0-0-255-0-254-0-252-0-0-0-0-0-0-0-0-254-0-255-0-255-0-252-0-0-254-0-255-0-0-0-0-254-0-0-0-254-0-0-240-0-0-254-0-255-0-0-255-0-0-0-253-0-0-254-0-0-255-0-0-252-0-0-0-0-255-0-0-255-0-255-0-252-0-248-0-254-0-0-249-0-255-0-253-0-252-0-254-0-0-0-255-0-255-0-0-0-0-255-0-0-0-254-0-255-0-0-0-254-0-0-0-248-0-192-0-0-0-255-0-0-248-0-0-0-0-254-0-0-0-0-254-0-0-0-255-0-0-252-0-0-0-254-0-0-254-0-0-254-0-0-254-0-0-0-254-0-0-255-0-255-0-0-0-249-0-249-0-0-254-0-0-248-0-0-0-254-0-254-0-0-0-0-255-0-252-0-0-0-0-0-0-0-255-0-0-254-0-254-0-0-254-0-254-0-0-0-0-0-255-0-255-0-0-0-0-0-254-0-248-0-0-0-0-0-0-254-0-0-0-0-0-252-0-0-0-0-255-0-0-0-0-0-0-252-0-0-254-0-0-0-0-0-252-0-252-0-255-0-254-0-254-0-255-0-254-0-0-255-0-0-253-0-0-254-0-0-252-0-255-0-254-0-254-0-0-254-0-254-0-0-255-0-0-255-0-0-0-255-0-0-0-0-0-255-0-254-0-254-0-0-0-255-0-254-0-0-255-0-0-0-254-0-253-0-254-0-255-0-254-0-0-255-0-0-0-255-0-240-0-254-0-0-0-248-0-0-0-255-0-252-0-254-0-0-0-0-0-0-0-0-0-254-0-0-0-0-255-0-254-0-252-0-255-0-0-254-0-0-0-0-0-0-255-0-255-0-255-0-248-0-0-0-255-0-255-0-0-252-0-0-255-0-0-255-0-0-0-0-255-0-0-254-0-254-0-255-0-0-0-0-254-0-255-0-0-0-0-254-0-0-255-0-0-0-0-0-252-0-240-0-0-254-0-254-0-0-0-254-0-0-0-0-254-0-0-0-0-0-254-0-252-0-255-0-254-0-0-255-0-0-0-255-0-0-0-0-0-0-255-0-0-254-0-0-0-0-255-0-0-0-255-0-0-0-244-0-255-0-0-0-0-255-0-255-0-255-0-255-0-0-192-0-0-0-0-0-0-254-0-0-255-0-255-0-252-0-254-0-0-0-255-0-0-0-255-0-0-254-0-0-0-255-0-0-224-0-0-0-255-0-0-254-0-0-0-0-255-0-254-0-0-254-0-254-0-0-254-0-255-0-254-0-255-0-0-0-0-255-0-254-0-0-244-0-0-255-0-0-255-0-0-0-0-0-255-0-0-0-253-0-0-0-0-0-255-0-0-0-0-0-0-255-0-255-0-0-0-0-0-0-255-0-0-255-0-252-0-0-0-254-0-0-0-254-0-0-0-255-0-255-0-0-0-252-0-255-0-0-0-254-0-0-255-0-0-0-254-0-255-0-248-0-0-252-0-0-254-0-255-0-0-0-255-0-0-0-254-0-254-0-255-0-254-0-240-0-0-0-252-0-0-255-0-254-0-0-0-0-255-0-0-252-0-254-0-0-255-0-0-254-0-255-0-0-254-0-0-0-255-0-0-255-0-252-0-0-254-0-0-246-0-0-255-0-0-0-250-0-0-252-0-255-0-252-0-0-254-0-0-0-0-252-0-0-0-255-0-0-0-252-0-0-0-255-0-0-255-0-255-0-0-255-0-0-0-0-0-0-255-0-0-0-252-0-0-0-255-0-0-255-0-0-0-254-0-0-254-0-0-255-0-254-0-0-255-0-249-0-0-255-0-254-0-0-255-0-0-0-255-0-255-0-0-0-0-252-0-253-0-0-255-0-0-0-255-0-254-0-252-0-255-0-0-0-0-248-0-254-0-0-0-0-0-254-0-255-0-0-254-0-255-0-0-255-0-254-0-0-0-0-128-0-0-0-248-0-254-0-0-253-0-0-255-0-252-0-0-0-255-0-0-0-0-255-0-255-0-0-0-0-0-254-0-254-0-0-254-0-255-0-255-0-0-255-0-0-255-0-0-254-0-0-255-0-254-0-0-0-255-0-0-0-0-0-0-0-0-0-255-0-0-0-0-252-0-0-0-0-255-0-0-252-0-0-0-254-0-255-0-0-0-0-0-254-0-255-0-0-0-0-251-0-0-253-0-0-0-0-254-0-0-0-0-254-0-0-255-0-0-0-254-0-0-0-0-0-0-0-254-0-255-0-0-0-0-254-0-255-0-254-0-0-0-0-0-0-254-0-0-252-0-0-0-0-0-0-240-0-255-0-255-0-0-254-0-253-0-254-0-254-0-254-0-254-0-0-0-0-255-0-0-255-0-0-0-0-0-0-0-255-0-255-0-0-128-0-0-255-0-252-0-255-0-253-0-254-0-0-0-255-0-0-254-0-0-0-255-0-254-0-254-0-0-0-255-0-0-255-0-255-0-254-0-0-254-0-254-0-255-0-255-0-0-240-0-0-0-0-0-0-253-0-254-0-255-0-0-0-0-0-255-0-254-0-0-0-0-0-0-224-0-0-0-0-0-0-0-0-0-240-0-0-254-0-255-0-0-0-0-254-0-254-0-252-0-0-255-0-255-0-0-254-0-0-0-255-0-0-254-0-0-0-0-0-254-0-0-0-0-0-0-0-0-0-254-0-252-0-0-254-0-255-0-255-0-252-0-0-0-0-254-0-0-0-0-253-0-254-0-0-0-254-0-252-0-0-254-0-0-0-0-252-0-0-0-0-0-0-255-0-0-0-0-0-0-0-255-0-0-254-0-254-0-224-0-0-255-0-254-0-255-0-0-0-0-255-0-0-254-0-0-0-255-0-0-254-0-0-192-0-253-0-255-0-253-0-255-0-0-0-0-254-0-247-0-0-0-0-254-0-0-0-0-0-254-0-0-0-0-255-0-254-0-0-0-0-252-0-0-0-252-0-255-0-255-0-0-0-0-0-0-255-0-0-0-255-0-0-254-0-240-0-226-0-255-0-254-0-0-0-253-0-0-0-0-0-0-255-0-240-0-0-0-0-0-255-0-252-0-0-0-0-255-0-0-0-0-254-0-254-0-255-0-0-254-0-255-0-0-252-0-0-252-0-0-224-0-0-255-0-255-0-0-0-0-253-0-254-0-254-0-0-0-0-255-0-255-0-255-0-254-0-0-0-252-0-0-254-0-0-192-0-252-0-0-255-0-240-0-0-0-255-0-0-252-0-255-0-0-255-0-254-0-254-0-0-248-0-255-0-254-0-0-255-0-0-0-0-255-0-255-0-252-0-254-0-254-0-0-255-0-0-0-254-0-0-0-0-0-0-255-0-254-0-255-0-0-255-0-0-0-252-0-255-0-0-0-252-0-0-0-0-255-0-0-0-0-255-0-0-0-255-0-0-255-0-0-255-0-254-0-0-0-254-0-0-248-0-255-0-254-0-0-255-0-0-254-0-254-0-255-0-0-252-0-0-255-0-0-254-0-0-255-0-0-254-0-254-0-0-255-0-0-255-0-0-0-255-0-0-0-254-0-255-0-254-0-255-0-254-0-254-0-255-0-0-0-254-0-254-0-254-0-255-0-254-0-0-0-255-0-240-0-254-0-0-254-0-252-0-0-255-0-0-255-0-0-255-0-255-0-0-0-0-0-0-252-0-255-0-0-0-0-0-0-0-0-254-0-0-248-0-255-0-0-0-254-0-255-0-0-0-0-254-0-0-0-254-0-255-0-255-0-0
$VAR1 = bless( {
                 'unit' => 254,
                 'message' => bless( {
                                       'bytes' => 4,
                                       'function' => 'Read Coils',
                                       'code' => 1,
                                       'values' => [
                                                     '0',
                                                     '0',
                                                     '0',
                                                     '1',
                                                     '1',
                                                     '0',
                                                     '0',
                                                     '0',
                                                     '1',
                                                     '1',
                                                     '0',
                                                     '0',
                                                     '0',
                                                     '0',
                                                     '1',
                                                     '0',
                                                     '0',
                                                     '0',
                                                     '0',
                                                     '0',
                                                     '1',
                                                     '0',
                                                     '1',
                                                     '1',
                                                     '0',
                                                     '0',
                                                     '0',
                                                     '0',
                                                     '0',
                                                     '0',
                                                     '0',
                                                     '0'
                                                   ]
                                     }, 'Device::Modbus::Response' ),
                 'crc' => 16384
               }, 'Device::Modbus::RTU::ADU' );
sparvu commented 8 years ago

This device is offering the metrics via function 4, read input registers. But sometimes I get read coils instead of it. Strange.

sparvu commented 8 years ago

or then I get something like this:

krmx@raspberrypi:~ $ /opt/kronometrix/bin/rs485rec
> 255-0-192-0-252-0-255-0-248-0-0-0-0-0-0-252-0-0-254-0-0-255-0-248-0-0-0-0-255-0-254-0-0-0-0-248-0-0-254-0-255-0-255-0-254-0-255-0-0-0-0-0-255-0-0-0-0-252-0-255-0-255-0-240-0-0-0-0-0-0-0-0-254-0-0-0-0-0-254-0-255-0-0-0-0-254-0-0-0-255-0-0-0-254-0-252-0-0-255-0-0-252-0-255-0-255-0-0-252-0-254-0-0-0-255-0-255-0-255-0-254-0-254-0-0-255-0-0-0-254-0-0-255-0-255-0-255-0-224-0-0-0-255-0-253-0-0-0-252-0-0-255-0-254-0-255-0-0-192-0-252-0-0-0-248-0-0-240-0-0-128-0-0-255-0-250-0-255-0-255-0-0-0-0-255-0-254-0-0-254-0-0-0-255-0-0-0-255-0-0-0-254-0-255-0-254-0-0-224-0-0-0-252-0-0-255-0-255-0-0-254-0-255-0-255-0-254-0-254-0-0-254-0-255-0-255-0-0-0-0-252-0-0-254-0-0-0-252-0-254-0-255-0-0-254-0-255-0-0-240-0-255-0-255-0-0-0-0-0-254-0-255-0-0-0-0-0-0-0-0-0-255-0-0-0-0-0-0-0-0-255-0-0-254-0-192-0-0-0-192-0-254-0-0-0-255-0-0-255-0-0-0-0-255-0-0-0-254-0-0-0-255-0-0-0-0-254-0-252-0-0-0-255-0-0-0-0-255-0-248-0-0-0-254-0-0-255-0-254-0-252-0-254-0-0-0-0-0-0-0-0-0-0-0-0-255-0-254-0-254-0-0-0-0-0-254-0-255-0-0-0-0-248-0-0-253-0-0-0-255-0-254-0-0-248-0-254-0-0-0-0-255-0-255-0-0-254-0-0-0-255-0-255-0-0-254-0-255-0-255-0-0-0-254-0-0-0-0-0-0-255-0-0-0-0-255-0-0-255-0-0-255-0-252-0-0-254-0-0-0-232-0-252-0-254-0-252-0-255-0-255-0-0-0-0-255-0-252-0-0-0-0-0-254-0-255-0-0-0-0-254-0-0-249-0-0-255-0-255-0-255-0-0-0-255-0-0-240-0-0-0-0-0-254-0-255-0-0-192-0-0-0-0-0-0-254-0-0-255-0-255-0-0-254-0-0-0-254-0-252-0-252-0-0-240-0-254-0-254-0-255-0-0-255-0-0-255-0-252-0-0-0-254-0-252-0-255-0-254-0-254-0-0-255-0-0-0-255-0-0-255-0-0-254-0-0-0-0-0-255-0-255-0-0-252-0-255-0-0-252-0-254-0-255-0-255-0-0-0-252-0-254-0-255-0-0-0-0-255-0-0-0-0-255-0-254-0-0-254-0-0-255-0-0-0-0-255-0-255-0-255-0-0-0-254-0-255-0-254-0-254-0-0-254-0-255-0-255-0-255-0-255-0-253-0-254-0-255-0-252-0-255-0-0-255-0-0-255-0-0-0-255-0-0-252-0-0-0-255-0-224-0-0-0-0-253-0-252-0-0-255-0-0-255-0-0-0-255-0-0-254-0-252-0-0-255-0-0-0-0-255-0-0-0-0-255-0-252-0-0-0-255-0-0-0-255-0-0-0-255-0-0-0-0-0-0-0-0-0-254-0-252-0-0-0-0-0-0-0-255-0-0-0-255-0-255-0-255-0-254-0-240-0-252-0-254-0-252-0-0-0-254-0-255-0-254-0-0-254-0-255-0-0-0-255-0-254-0-255-0-0-248-0-252-0-0-0-0-255-0-0-0-0-255-0-255-0-255-0-0-0-255-0-0-255-0-0-0-255-0-252-0-0-255-0-254-0-254-0-0-0-0-255-0-0-0-254-0-0-254-0-255-0-0-254-0-254-0-0-0-255-0-0-254-0-0-255-0-0-255-0-254-0-0-0-253-0-0-254-0-0-255-0-0-0-0-0-0-0-255-0-255-0-0-96-0-254-0-255-0-0-0-255-0-255-0-255-0-0-255-0-0-0-254-0-254-0-0-254-0-224-0-0-0-0-0-0-254-0-0-0-252-0-255-0-0-255-0-0-0-0-0-255-0-0-0-0-0-255-0-255-0-253-0-255-0-0-0-254-0-255-0-0-0-255-0-254-0-0-0-254-0-0-255-0-0-254-0-0-0-0-255-0-0-0-0-254-0-252-0-0-252-0-0-0-0-0-0-0-255-0-0-255-0-0-254-0-255-0-0-0-0-0-0-255-0-0-254-0-255-0-255-0-0-255-0-255-0-0-0-0-0-0-255-0-255-0-254-0-253-0-0-254-0-0-0-0-254-0-255-0-0-254-0-0-0-255-0-0-255-0-0-254-0-0-254-0-254-0-255-0-0-255-0-0-0-255-0-0-0-255-0-0-254-0-254-0-0-0-255-0-0-0-255-0-253-0-255-0-0-252-0-0-0-0-0-255-0-0-0-0-0-0-0-254-0-0-254-0-248-0-0-254-0-255-0-255-0-255-0-255-0-0-255-0-0-255-0-254-0-254-0-0-254-0-0-0-255-0-254-0-0-252-0-255-0-0-255-0-0-192-0-254-0-254-0-255-0-0-0-252-0-0-255-0-252-0-0-0-254-0-0-0-0-0-255-0-0-0-254-0-255-0-0-0-255-0-255-0-255-0-0-0-0-255-0-254-0-255-0-255-0-0-254-0-255-0-0-0-0-255-0-240-0-0-0-0-252-0-248-0-254-0-255-0-254-0-0-0-0-0-0-255-0-255-0-254-0-0-255-0-0-0-0-0-0-0-254-0-0-255-0-0-0-0-254-0-254-0-0-255-0-0-0-0-0-128-0-240-0-255-0-0-0-254-0-255-0-0-255-0-0-254-0-255-0-0-254-0-224-0-0-0-0-0-0-255-0-254-0-252-0-0-255-0-0-0-0-0-254-0-0-254-0-252-0-0-0-0-252-0-255-0-0-0-0-0-0-0-0-254-0-0-0-255-0-0-0-0-0-0-0-254-0-254-0-0-255-0-0-249-0-0-0-0-0-0-248-0-0-255-0-0-254-0-253-0-250-0-0-252-0-0-255-0-0-254-0-0-0-0-255-0-248-0-254-0-248-0-255-0-0-0-0-255-0-0-252-0-241-0-0-255-0-0-0-0-254-0-0-0-255-0-0-0-0-0-0-192-0-252-0-0-255-0-0-0-0-0-255-0-0-0-0-255-0-0-255-0-254-0-0-0-254-0-255-0-0-255-0-255-0-253-0-224-0-0-0-255-0-0-0-0-0-0-0-0-255-0-254-0-224-0-254-0-254-0-248-0-254-0-250-0-0-0-255-0-0-252-0-0-0-128-0-0-0-0-255-0-0-0-254-0-254-0-0-0-254-0-0-0-0-0-0-0-0-0-255-0-0-255-0-240-0-251-0-192-0-0-0-0-248-0-254-0-255-0-0-0-0-0-255-0-0-0-0-0-254-0-0-0-0-0-0-0-255-0-0-0-255-0-0-255-0-255-0-253-0-255-0-252-0-0-254-0-0-0-255-0-255-0-0-254-0-0-0-0-240-0-254-0-254-0-254-0-254-0-0-240-0-254-0-0-252-0-255-0-240-0-0-255-0-0-0-0-0-254-0-0-0-252-0-255-0-254-0-0-0-255-0-0-254-0-0-0-0-0-254-0-0-255-0-255-0-254-0-240-0-254-0-255-0-0-255-0-0-255-0-255-0-0-0-0-255-0-254-0-255-0-255-0-0-0-0-252-0-252-0-255-0-0-0-226-0-0-254-0-254-0-254-0-0-0-254-0-0-255-0-0-0-0-0-254-0-252-0-128-0-0-254-0-254-0-0-254-0-0-0-0-255-0-252-0-255-0-248-0-0-0-0-0-0-0-0-0-252-0-0-0-255-0-0-0-0-254-0-254-0-255-0-0-254-0-0-0-0-252-0-0-255-0-254-0-255-0-0-254-0-248-0-255-0-255-0-252-0-0-0-0-254-0-0-254-0-255-0-0-254-0-0-0-0-0-254-0-232-0-0-252-0-254-0-240-0-255-0-254-0-0-0-255-0-0-0-0-240-0-0-0-0-0-0-224-0-254-0-253-0-254-0-255-0-0-255-0-255-0-252-0-0-255-0-0-0-0-0-255-0-254-0-0-252-0-252-0-0-0-0-254-0-255-0-252-0-0-0-253-0-0-255-0-0-0-254-0-252-0-254-0-255-0-254-0-254-0-0-0-254-0-0-0-254-0-0-252-0-255-0-0-0-254-0-0-254-0-0-0-0-0-0-0-254-0-0-255-0-254-0-0-0-255-0-0-0-0-255-0-240-0-255-0-0-0-0-254-0-0-0-0-0-0-0-255-0-0-0-0-254-0-240-0-255-0-0-255-0-0-0-0-0-254-0-0-0-0-0-254-0-255-0-255-0-0-255-0-0-254-0-0-254-0-254-0-255-0-0-254-0-254-0-254-0-0-254-0-0-240-0-0-254-0-255-0-0-0-255-0-0-255-0-0-255-0-254-0-254-0-0-252-0-0-0-255-0-254-0-0-0-0-0-0-0-0-255-0-255-0-0-0-252-0-255-0-0-0-0-255-0-255-0-0-0-0-0-0-0-0-255-0-0-252-0-248-0-255-0-0-255-0-0-0-248-0-0-0-255-0-0-255-0-254-0-255-0-255-0-0-248-0-0-0-255-0-0-254-0-252-0-255-0-0-255-0-0-0-254-0-0-254-0-0-0-0-254-0-255-0-0-254-0-0-0-240-0-0-128-0-255-0-255-0-255-0-0-0-0-255-0-0-0-0-0-255-0-0-0-255-0-0-0-255-0-255-0-0-0-249-0-0-254-0-0-0-0-255-0-0-0-0-0-255-0-0-252-0-248-0-254-0-254-0-0-252-0-0-255-0-255-0-0-0-0-0-255-0-254-0-254-0-254-0-0-0-0-0-0-0-0-255-0-0-0-254-0-0-255-0-0-0-254-0-254-0-254-0-0-254-0-0-255-0-254-0-0-0-0-0-0-255-0-0-0-252-0-0-0-252-0-0-0-0-0-0-128-0-0-255-0-0-0-0-0-0-0-240-0-255-0-254-0-0-0-0-255-0-252-0-128-0-255-0-0-0-0-0-255-0-255-0-0-255-0-0-0-255-0-254-0-0-0-255-0-0-254-0-0-255-0-255-0-255-0-0-255-0-0-0-0-254-0-252-0-255-0-0-254-0-255-0-0-255-0-255-0-0-255-0-254-0-254-0-255-0-0-0-0-0-0-0-0-255-0-254-0-248-0-0-254-0-0-255-0-254-0-0-0-255-0-0-248-0-0-240-0-254-0-254-0-255-0-0-254-0-0-0-0-253-0-0-0-0-0-0-0-0-248-0-254-0-0-0-0-254-0-0-0-0-254-0-0-0-0-255-0-0-0-0-0-0-254-0-252-0-254-0-254-0-254-0-252-0-0-0-0-0-0-0-0-0-0-254-0-0-0-254-0-255-0-0-255-0-0-0-0-0-255-0-0-0-248-0-0-0-0-254-0-0-0-252-0-0-254-0-255-0-254-0-254-0-0-0-0-0-0-0-0-252-0-0-0-0-255-0-0-0-255-0-0-254-0-255-0-252-0-0-0-0-252-0-0-0-0-254-0-0-0-248-0-255-0-0-0-248-0-255-0-254-0-0-0-0-252-0-0-0-0-0-0-0-0-0-0-255-0-0-252-0-255-0-0-254-0-0-253-0-0-0-0-254-0-254-0-0-252-0-0-0-0-0-0-0-0-0-255-0-0-0-255-0-0-0-0-253-0-255-0-0-255-0-0-254-0-255-0-0-255-0-255-0-255-0-255-0-255-0-0-255-0-254-0-255-0-254-0-0-0-0-0-0-0-0-0-0-0-0-0-192-0-0-0-240-0-255-0-0-0-254-0-0-0-254-0-254-0-0-0-0-0-252-0-255-0-0-255-0
Unimplemented function: <0> at /opt/kronometrix/bin/rs485rec line 24.
sparvu commented 8 years ago

This is the code for the above messages:

use Device::Modbus::RTU::Client;
use strict;
use warnings;
use Data::Dumper;

my $client = Device::Modbus::RTU::Client->new(
    port     => '/dev/ttyUSB0',
    baudrate => 9600,
    parity   => 'none',
    stopbits => '1',
    timeout => '5'
 );

# function 4
my $req = $client->read_input_registers(
    unit     => 1,
    address  => 0,
    quantity => 12
);

$client->send_request($req);
my $resp = $client->receive_response;

print Dumper($resp);

$client->disconnect;
sparvu commented 8 years ago

not an issue anymore. https://github.com/jfraire/Device-Modbus/issues/2