Closed sparvu closed 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;
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' );
This device is offering the metrics via function 4, read input registers. But sometimes I get read coils instead of it. Strange.
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.
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;
not an issue anymore. https://github.com/jfraire/Device-Modbus/issues/2
Here is another simple example how I read values from one device with different results