mbusd, 开放源 Modbus TCP网关( RS 232/485) 网关)

分享于 

7分钟阅读

GitHub

  繁體 雙語
OpenMODBUS/TCP to RS-232/485 MODBUS RTU gateway
  • 源代码名称:mbusd
  • 源代码网址:http://www.github.com/3cky/mbusd
  • mbusd源代码文档
  • mbusd源代码下载
  • Git URL:
    git://www.github.com/3cky/mbusd.git
    Git Clone代码到本地:
    git clone http://www.github.com/3cky/mbusd
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/3cky/mbusd
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    关于 mbusd

    Build Status

    mbusd 为 Modbus RTU ( rs-232/485 ) 网关提供

    插件功能:

    • 小型足迹- 适合于在嵌入式设备上运行,如 树莓派
    • 多主主机多主机接入网利用同一网关接入RTU网络
    • 健壮性- 可以使用不匹配响应CRC重试请求
    • 灵活的RTU模式- speed/parity/stop-bits/timeouts 可以配置为RTU网络
    • 对 RS-485 收发器的自动和手动( 使用RTS位) 方向控制类型的支持

    支持的函数代码:

    • 01: 读取线圈状态
    • 02: 读取输入状态
    • 03: 读取保存寄存器
    • 04: 读取输入寄存器
    • 05: 强制单个线圈
    • 06: 预设单 register
    • 07: 读取异常状态
    • 15: 强制多个线圈
    • 16: 预置多个寄存器

    请注意所有其他 function codes (including vendor-specific extensions) 都支持"最佳工作",并且很可能会失败。

    安装指令:

    
    $ git clone https://github.com/3cky/mbusd.git mbusd.git
    
    
    $ cd mbusd.git
    
    
    $ mkdir -p build && cd build
    
    
    $ cmake -DCMAKE_INSTALL_PREFIX=/usr.. 
    
    
    $ make
    
    
    $ sudo make install
    
    
    
    

    使用以下工具,可以在多种方式中使用下列工具修改编译时间选项:

    • ccmake - 通常在软件包cmake-curses-gui中
    • cmake-gui - 通常在包cmake-qt-gui中

    用法:

    
     mbusd [-h] [-d] [-L logfile] [-v level] [-c cfgfile] [-p device] [-s speed] [-m mode]
    
    
     [-t] [-y file] [-Y file] [-P port] [-C maxconn] [-N retries]
    
    
     [-R pause] [-W wait] [-T timeout]
    
    
    
     -h Usage help.
    
    
     -d Instruct mbusd not to fork itself (non-daemonize).
    
    
     -L logfile
    
    
     Specifies log file name ('-' for logging to STDOUT only, default is/var/log/mbusd.log).
    
    
     -v level
    
    
     Specifies log verbosity level (0 for errors only, 1 for warnings
    
    
     and 2 for also information messages.) If mbusd was compiled in debug mode,
    
    
     valid log levels are up to 9, where log levels 上面 2 forces
    
    
     logging of information about additional internal events.
    
    
     -c cfgfile
    
    
     Read configuration from cfgfile.
    
    
     -p device
    
    
     Specifies serial port device name.
    
    
     -s speed
    
    
     Specifies serial port speed.
    
    
     -m mode
    
    
     Specifies serial port mode (like 8N1).
    
    
     -t Enable RTS RS-485 data direction control (if not disabled while compile).
    
    
     -y file
    
    
     Enable RS-485 direction data direction control by writing '1' to file
    
    
     for transmitter enable and '0' to file for transmitter disable
    
    
     -Y file
    
    
     Enable RS-485 direction data direction control by writing '0' to file
    
    
     for transmitter enable and '1' to file for transmitter disable
    
    
     -P port
    
    
     Specifies TCP port number (default 502).
    
    
     -C maxconn
    
    
     Specifies maximum number of simultaneous TCP connections.
    
    
     -N retries
    
    
     Specifies maximum number of request retries (0 disables retries).
    
    
     -R pause
    
    
     Specifies pause between requests in milliseconds.
    
    
     -W wait
    
    
     Specifies response wait time in milliseconds.
    
    
     -T timeout
    
    
     Specifies connection timeout value in seconds (0 disables timeout).
    
    
    
    

    请注意,在默认的Modbus TCP端口( 502 ) 上运行 mbusd 需要 root 权限 !

    配置 file:

    mbusd 可以从 -c 命令行 标志指定的文件中读取配置。 请参见示例配置文件以获得可用配置选项的完整列表。

    systemd:

    mbusd 具有 systemd 支持。 构建系统检测系统是否有 systemd,然后 sudo make install 在有systemd活动的系统上安装 mbusd@.service 文件。

    可以通过以下方式启动 mbusd 服务:

    
    # systemctl start mbusd@<serial port>.service
    
    
    
    

    其中 <serial port> 是串行端口设备 NAME ( 像 ttyUSB0 )。

    由systemd启动的mbusd 将从名为 /etc/mbusd/mbusd-<serial port>.conf 这样,就可以用不同的配置运行多个 mbusd 实例。

    要查看 mbusd 服务状态:

    
    # systemctl status mbusd@<serial port>.service
    
    
    
    

    要监视 mbusd 服务:

    
    # journalctl -u mbusd@<serial port>.service -f -n 10
    
    
    
    

    要在系统引导时启动 mbusd 服务,请执行以下操作:

    
    # systemctl enable mbusd@<serial port>.service
    
    
    
    

    请检查systemd文档以获得其他有用的systemd 命令

    报告 Bug:

    请在 verbose issue中,以详细的( -v9 ) 模式( i.e.: ),将问题文件

    
     # mbusd -L/tmp/mbusd.log -p/dev/ttyUSB0 -s 9600 -P 502 -d -v9
    
    
    
    

    除非你收到提示或者有另外一个相关的原因( 比如。 GitHub无法接受 Bug 报告),请不要通过个人电子邮件发送 Bug 报告。

    :

    • fork 并克隆分支存储库
    • 创建你的特征分支( git checkout -b my-new-feature )
    • 更改你的更改
    • 提交你的更改( git commit -am 'Add some feature' )
    • 推送到分支( git push origin my-new-feature )
    • 创建新的拉请求

    作者:

    Victor Antonovich ( v.antonovich@gmail.com )

    贡献者:

    Denysenko ( nitr0@seti.kr.ua ):

    • RTS RS-485 数据方向控制
    • 基于长度的RTU响应

    James Jarvis ( jj@aprsworld.com ):

    • 基于文件的RS-485 数据方向控制

    Luuk Loeffen ( luukloeffen@hotmail.com ):

    • 支持 systemd

    Nick Mayerhofer ( nick.mayerhofer@enchant.at ):

    • 概念创建系统

    许可证:

    这个项目是在BSD许可下发布的。 查看许可证以获得完整许可证文本。


    Source  开源  TCP  GATE  Gateway  Modbus  
    相关文章