/*********************************************************************************
* 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. (Nginx反向代理+NFS共享网页根目录)自动部署及可用性检测

    1.nginx反向代理安装配置 #!/usr/bin/bash if [ -e /etc/nginx/nginx.conf ] then echo 'Already installed' exit e ...

  2. [LeetCode] 108. Convert Sorted Array to Binary Search Tree ☆(升序数组转换成一个平衡二叉树)

    108. Convert Sorted Array to Binary Search Tree 描述 Given an array where elements are sorted in ascen ...

  3. Linux查看用户属于哪些组/查看用户组下有哪些用户

    一.关于/etc/group格式的讨论 在说/etc/group格式的时候,网上很多文章都会说是“组名:组密码:组ID:组下用户列表”,这说法对了解/etc/group格式是没问题的,但如果碰到“查看 ...

  4. Weblogic服务端请求伪造漏洞(SSRF)和反射型跨站请求伪造漏洞(CSS)修复教程

    一.服务端请求伪造漏洞 服务端请求伪造(Server-Side Request Forgery),是指Web服务提供从用户指定的URL读取数据并展示功能又未对用户输入的URL进行过滤,导致攻击者可借助 ...

  5. Redis入门第一课

    为什么需要NoSQL? 1High performance:web1.0不能点赞互动,web2.0可以互动,里面有很多高并发读写 2Huge Storage:海量数据的高效率存储和访问 3High  ...

  6. 【框架】用excel管理测试用例需要的参数数据(二)

    一.总体思路 以类为excel名,测试方法名为sheet名,建立excel文件.用jxl包里的方法去读取excel文件里的内容,然后用testng里的dataprovider,将数据传递给测试用例 二 ...

  7. 逆袭之旅DAY20.xia.师父指导.数据类型

    2018-07-16  09:35:57 基础是王道 从码农--软件工程师--软件架构师 String 首字母大写,特殊引用类型,常量类 二.数组 存钱罐(只能放钱) 数据兼容 数组的长度(定义后长度 ...

  8. UVA 11464 - Even Parity 状态压缩,分析 难度: 2

    题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...

  9. application Initialization设置导致处理程序ExtensionlessUrlHandler-Integrated-4.0在其模块列表中有一个错误模块问题的解决

    HTTP 错误 500.21 - Internal Server Error 处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“Ma ...

  10. Yii验证码简单使用及

    控制器:(写了貌似也没用,未解决验证码位数:位数可改核心代码) public $layout = false;//隐藏导航 public function actions(){ return [ // ...