mbpoll Test FreeModbus TCP Demo

时间:2023-03-09 15:43:14
mbpoll Test FreeModbus TCP Demo
/*********************************************************************************
* mbpoll Test FreeModbus TCP Demo
* 说明:
* 使用mbpoll工具对FreeModbus进行测试,本文仅仅涉及编译以及简单测试。FreeModbus
* 默认没有打开网络传输功能,需要手动打开。
*
* 2018-1-2 深圳 南山平山村 曾剑锋
********************************************************************************/ 一、参考文档:
epsilonrt/mbpoll
https://github.com/epsilonrt/mbpoll 二、Compile/Install:
root@localhost:/home/zengjf/freemodbus# git clone https://github.com/epsilonrt/mbpoll.git
Cloning into 'mbpoll'...
remote: Counting objects: , done.
remote: Total (delta ), reused (delta ), pack-reused
Receiving objects: % (/), 6.23 MiB | bytes/s, done.
Resolving deltas: % (/), done.
Checking connectivity... done.
root@localhost:/home/zengjf/freemodbus# cd mbpoll
root@localhost:/home/zengjf/freemodbus/mbpoll# ls
3rdparty CMakeLists.txt LICENCE NEWS README_FR.md mbpoll.pro mbpo
AUTHORS INSTALL LICENSE README.md TODO mbpoll.project pack
root@localhost:/home/zengjf/freemodbus/mbpoll# mkdir build
root@localhost:/home/zengjf/freemodbus/mbpoll# cd build/
root@localhost:/home/zengjf/freemodbus/mbpoll/build# cmake ..
-- The C compiler identification is GNU 4.9.
-- The CXX compiler identification is GNU 5.4.
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/zengjf/freemodbus/mbpoll/build
root@localhost:/home/zengjf/freemodbus/mbpoll/build# ls
CMakeCache.txt CPackConfig.cmake Makefile
CMakeFiles CPackSourceConfig.cmake cmake_install.cmake
root@localhost:/home/zengjf/freemodbus/mbpoll/build# make
Scanning dependencies of target mbpoll
[ %] Building C object CMakeFiles/mbpoll.dir/src/mbpoll.c.o
[ %] Building C object CMakeFiles/mbpoll.dir/3rdparty/modbus/modbus.c.o
[ %] Building C object CMakeFiles/mbpoll.dir/3rdparty/modbus/modbus-data.c.o
[ %] Building C object CMakeFiles/mbpoll.dir/3rdparty/modbus/modbus-tcp.c.o
[ %] Building C object CMakeFiles/mbpoll.dir/3rdparty/modbus/modbus-rtu.c.o
[ %] Building C object CMakeFiles/mbpoll.dir/3rdparty/sysio/delay.c.o
[ %] Building C object CMakeFiles/mbpoll.dir/3rdparty/sysio/serial.c.o
[%] Linking C executable mbpoll
[%] Built target mbpoll
root@localhost:/home/zengjf/freemodbus/mbpoll/build# make install
[%] Built target mbpoll
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/bin/mbpoll
root@localhost:/home/zengjf/freemodbus/mbpoll/build# mbpoll -h
usage : mbpoll [ options ] device|host [ writevalues... ] [ options ] ModBus Master Simulator. It allows to read and write in ModBus slave registers
connected by serial (RTU only) or TCP. Arguments :
device Serial port when using ModBus RTU protocol
COM1, COM2 ... on Windows
/dev/ttyS0, /dev/ttyS1 ... on Linux
/dev/ser1, /dev/ser2 ... on QNX
host Host name or dotted IP address when using ModBus/TCP protocol
writevalues List of values to be written.
If none specified (default) mbpoll reads data.
If negative numbers are provided, it will precede the list of
data to be written by two dashes ('--'). for example :
mbpoll -t4:int /dev/ttyUSB0 -- - -
General options :
-m # mode (rtu or tcp, TCP is default)
-a # Slave address (- for rtu, - for tcp, is default)
for reading, it is possible to give an address list
separated by commas or colons, for example :
-a ,,,: read [,,,,,,,]
-r # Start reference ( is default)
-c # Number of values to read (-, is default)
-u Read the description of the type, the current status, and other
information specific to a remote device (RTU only)
-t Discrete output (coil) data type (binary or )
-t Discrete input data type (binary or )
-t -bit input register data type
-t :hex -bit input register data type with hex display
-t :int -bit integer data type in input register table
-t :float -bit float data type in input register table
-t -bit output (holding) register data type (default)
-t :hex -bit output (holding) register data type with hex display
-t :int -bit integer data type in output (holding) register table
-t :float -bit float data type in output (holding) register table
- First reference is (PDU addressing) instead
-B Big endian word order for -bit integer and float
- Poll only once only, otherwise every poll rate interval
-l # Poll rate in ms, ( > , is default)
-o # Time-out in seconds (0.01 - 10.00, 1.00 s is default)
Options for ModBus / TCP :
-p # TCP port number ( is default)
Options for ModBus RTU :
-b # Baudrate (-, is default)
-d # Databits ( or , for RTU)
-s # Stopbits ( or , is default)
-P # Parity (none, even, odd, even is default)
- RS- mode (/RTS on after sending)
- RS- mode (/RTS on when sending) -h Print this help summary page
-V Print version and exit
-v Verbose mode. Causes mbpoll to print debugging messages about
its progress. This is helpful in debugging connection...
root@localhost:/home/zengjf/freemodbus/mbpoll/build# 三、Test Example:
root@localhost:/home/zengjf/freemodbus/mbpoll/build# ./mbpoll -m TCP -t -r -c localhost
mbpoll 0.1- - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) epsilonRT, All rights reserved.
This software is governed by the CeCILL license <http://www.cecill.info> Protocol configuration: Modbus TCP
Slave configuration...: address = []
start reference = , count =
Communication.........: localhost, port , t/o 1.00 s, poll rate ms
Data type.............: -bit register, input register table -- Polling slave ... Ctrl-C to stop)
[]:
-- Polling slave ... Ctrl-C to stop)
[]:
-- Polling slave ... Ctrl-C to stop)
[]:
-- Polling slave ... Ctrl-C to stop)
[]:
-- Polling slave ... Ctrl-C to stop)
[]:
-- Polling slave ... Ctrl-C to stop)
[]:
-- Polling slave ... Ctrl-C to stop)
[]:
-- Polling slave ... Ctrl-C to stop)
[]:
-- Polling slave ... Ctrl-C to stop)
[]:
-- Polling slave ... Ctrl-C to stop)
[]:
-- Polling slave ... Ctrl-C to stop)
[]:
-- Polling slave ... Ctrl-C to stop)
[]:
^C--- localhost poll statistics ---
frames transmitted, received, errors, 0.0% frame loss everything was closed.
Have a nice day !
root@localhost:/home/zengjf/freemodbus/mbpoll/build#