/*********************************************************************************
* 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#

mbpoll Test FreeModbus TCP Demo的更多相关文章

  1. FreeModbus TCP

    一.Modbus TCP协议格式 Modbus TCP协议数据格式如下图所示: MBAP报文头: Modbus TCP与Modbus RTU相比,没有检验码,也没有所谓的地址码,并且在RTU协议的基础 ...

  2. python tcp .demo

    client: # -*- coding: utf- -*- import socket s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.co ...

  3. FreeModbus LINUXTCP Compile ERROR

    /********************************************************************************* * FreeModbus LINU ...

  4. 重新想象 Windows 8 Store Apps (62) - 通信: Socket TCP, Socket UDP

    [源码下载] 重新想象 Windows 8 Store Apps (62) - 通信: Socket TCP, Socket UDP 作者:webabcd 介绍重新想象 Windows 8 Store ...

  5. Android开发:如何实现TCP和UDP传输

    TCP和UDP在网络传输中非常重要,在Android开发中同样重要. 首先来看一下什么是TCP和UDP. 什么是TCP? TCP:Transmission Control Protocol 传输控制协 ...

  6. Android如何实现TCP和UDP传输

    TCP和UDP在网络传输中非常重要,在Android开发中同样重要. 首先我们来看一下什么是TCP和UDP. 什么是TCP? TCP:Transmission Control Protocol 传输控 ...

  7. FreeModbus undefined reference to `pthread_create'

    /********************************************************************************* * FreeModbus unde ...

  8. 重新想象 Windows 8 Store Apps 系列文章索引

    [源码下载][重新想象 Windows 8.1 Store Apps 系列文章] 重新想象 Windows 8 Store Apps 系列文章索引 作者:webabcd 1.重新想象 Windows ...

  9. Windows 8 Store Apps

    重新想象 Windows 8 Store Apps 系列文章索引 Posted on 2013-11-18 08:33 webabcd 阅读(672) 评论(3) 编辑 收藏 [源码下载] 重新想象 ...

随机推荐

  1. 十四、MVC的WEB框架(Structs2)

    一.Structs2中的Session 1.一个是传统的servlet包下的HttpSession,一个是Structs2中自己定义的Session Servlet下的Session获取方法:Serv ...

  2. TLS与SSL之间关系——SSL已经被IEFT组织废弃,你可以简单认为TLS是SSL的加强版

    TLS与SSL之间关系 原文地址:SSL vs. TLS - What's the Difference? from:https://juejin.im/post/5b213a0ae51d4506d4 ...

  3. 在springboot中验证表单信息(六)

    构建工程 创建一个springboot工程,由于用到了 web .thymeleaf.validator.el,引入相应的起步依赖和依赖,代码清单如下: 1 2 3 4 5 6 7 8 9 10 11 ...

  4. input实时监听

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  5. ElasticSearch安装部署(Windows)

    测试版本:elasticsearch-5.1.1 1.解压elasticsearch-5.1.1.zip. 2.执行elasticsearch.bat启动服务,启动画面如下: 3.访问ElasticS ...

  6. vs2017 Mariadb/mysql之旅

    记录vs2017使用 ef6+mysql的开发 填坑之旅.我的环境 vm+centos7+ docker-ce+mariadb+vs2017 总的原则是MySql.Data.Entity 要和 mys ...

  7. Web API之路由浅谈

    Web API的路由,是指明接口地址的方向,是照亮获取数据路上的灯塔,其重要性不言而喻. 本篇文章以vs2015为例,一步步说明路由的创建及使用,其中包括默认路由.自定义路由和特性路由. 一.默认路由 ...

  8. jmeter4.0 源码编译 二次开发

    准备: 1.jmeter4.0源码 - apache-jmeter-4.0_src.zip 2.IDE Eclipse - Oxygen.3 Release (4.7.3) 3.JDK - 1.8.0 ...

  9. 8.1 C++输入输出类的层次

    参考:http://www.weixueyuan.net/view/6407.html 总结: 在C++中,输入输出数据的传送过程我们称之为流,一个流就是一个字节序列,对流可以进行读或写操作. 输入输 ...

  10. translclude

    .transclude:true 启用transclude,启用以后,有两个地方会发生变化: ①.使用指令的元素内部的所有内容都会被保存起来.不妨先把这一段内容称为一坨. 比如指令元素是这样的: &l ...