modbus tcp协议TCP两条命令之间需要间隔一定时间吗?

支援 Modbus over TCP/IP 通f定
支援 Modbus over TCP/IP 通f定
发布时间: &(来源:锦泰美文网)
Chapter 2 OSI 分层模型与TCP/IP 通讯协定组 目标 本章结束后,您将能够:了解 OSI 分层模型的架构了解 OSI 分层模型中的各分层及其功能了解 TCP/IP 通讯协定组的架构区别 OSI...
篇名 TCP/IP通讯协定浅谈 作者 张哲玮。私立中山工商职业学校。综合高中。三年七班 TCP/IP 通讯协定浅谈 - 1 - 壹前言 TCP/IP(传输控制协定-网际网路协定:Transmission ...
支援 FATEK 或Modbus-TCP 通讯协定 IP 存取限制安全防护机制 230.4Kbps 高速串列传输速率 自动检测建构设定 规格 网路界面-10BaseT 网路协定-TCP/IP 应用协定-FATEK, ...
(2) TCP/IP协议栈在操作系统内核当中,应用程 序通过操作系统的系统调用和协议栈来进行通讯,这样TCP/IP的协议栈就限定于特定的操作系统内核了。 此法理论上可以实现,但代...
系列人机与各厂牌连线说明 V1.01 Revision November,
Modbus TCP/IP 人机默认值 控制器 IP 地址:192.168.0.1 控制器通讯端口:502 控制器站号:1 控制区/状态区:...
闭路监控系统 | AutoDome TCP/IP 通信模块 TCP/IP 通信模块是博世 AutoDome 模块化摄像机系统不可或 缺的组成部分,为所有 AutoDome 100、200、300 或500i 系 列摄像机添加...
PROFIBUS 到MODBUS TCP/IP 协议总线桥 PB-G-ETH 产品手册 V 1.0 北京鼎实创新科技有限公司 2011-1 北京鼎实创新科技有限公司 tel: 010- web: www.....
Modbus TCP Modbus TCP Modbus TCP Modbus TCP 默认 默认 默认 默认端口 端口 端口... 3 3 3 3 串口 串口 串口 串口 A A A A 对应的 对应的 对应的 对应的 TCP/IP TCP/IP TCP/IP ...
串列式通讯协定的乙太网路,两者之间的差异在 於串列式协定需要计算校验和,以做为确认资料的方式,而乙太网路版本则无须如 此。 研华产品大多支援 Modbus TCP/IP,因为它...
4.1 MODBUS 组件结构模型 用户应用 通讯 应用层 MODBUS 客户接口 MODBUS 客户接口 MODBUS客户机 MODBUS服务器 TCP 管理层 栈参数化 连接管理 访问控制 TCP/IP栈资...
利用TCP/IP实现Windows与Vxworks的通信 李峰 应宏 重庆三峡学院数学与计算机科学学院 重庆 404000 张军 中国空气动力研究与发展中心 四川绵阳 621000 摘要:结合 TCP/IP 在...
服务威胁 服务威胁&&TELNET Telnet被设计用来实现跨平台主机 之间的通讯 Telnet提供基于明文的终端接入, 通常登录Telnet服务需要用户名和 密码. 标准 标准 标准 标准TCP/IP...
Modbus TCP Modbus TCP 网关功能 网关功能 网关功能 网关功能 内置 内置 内置 内置 IP ... 支持虚拟串口及 支持虚拟串口及 支持虚拟串口及 Socket Socket Socket Socket 两种通讯...
&TCP/IP网络原理与应用&第一次作业 在设计计算机网络体系结构时,引入分层思想带来了哪些好处? 假设一个系统具有n层协议,其中应用进程生成长度为m字节的数据,在每层...
Cisco CCNA 最新认证应考手册 126 3-1 TCP/IP设定的重点提示 IP位址的分段,A、B、C... 统称ARPANET。ARPANET 使用一个称为Network Control Protocol(NCP) 的通讯协定。...
使用TCP/IP协议栈进行网络通信的数据,在发送时都要以此按照每层协议的约定进行封装... 数据链路层协议之PPP协议 PPP协议链路建立过程创建PPP链路:将对基本的通讯方式...
寄存器地址是 801。32 位电能值的对应地址是 2801(参考表 1)。 操作步骤如下: 1) 在变量管理中添加Modbus TCP/IP驱动 IA&DT Service & Support Page 3-6 2) 建立通讯连接 ...
introduced NFS and RPC over sockets.In 1986, AT&T introduced the Transport Layer Interface (TLI) with socket-like functionality but more network independent. TCP/IP Network ...
C C N1AS N1AS N1AS N1AS 特点: : : : RS485/422到TCP/IP 转换器(工业级 10M) &具有 TCP Server,TCP Client、UDP、虚拟串口、点 对点连接等五...
串口服务器用户手册 1 1 产品简介 1.1 产品特色 COM2NET 系列嵌入式 TCP/IP 协议串口服务器是 RS232 串口到以太网 TCP/IP 协议的双向转换传输设备, 变传统的 串口通讯为网...
C C N2S1 N2S1 N2S1 N2S1 特点: : : : RS232到TCP/IP(工业级10M/100M) &具有 TCP Server,TCP Client、UDP、虚拟串口、点 对点连接等五种操作...
C C N1AS N1AS N1AS N1AS 特点: : : : RS485/422到TCP/IP 转换器(工业级 10M) &具有 TCP Server,TCP Client、UDP、虚拟串口、点 对点连接等五...
- 1 - CAN 总线 TCP/IP 协议转换器说明书-1--2--2-目录一. 概述-1 二. 技术参数-3 三. 接口及显示-4 四. 应用举例-7 1. 连接 2 个CAN 网络 7 2. 对CAN 网络进行监控-8 五. 使用指南-9 1. ...
VxWorks 中基于 TCP/IP 的网络通信应用研究 李国友,钟乐海,陈亚军,范恩魁 (西华师范大学 计算机学院,四川 南充 637002) 摘要:本文结合嵌入式实时操作系统 VxWorks ...
SeeBeyond Proprietary and Confidential TCP/IP eWay Intelligent Adapter User's Guide Release 5.0.2 TCP/IP eWay Intelligent Adapter User's Guide 2 SeeBe
brings security concerns & Usage of IP-based protocols & Modbus/TCP, DNP3 over TCP, Ethernet/IP & Modbus/TCP & Widely used automation protocol & TCP/IP variation of ...
Errata for TCP/IP Sockets in C: Practical Guide for Programmers, Second Edition Page 24: The struct in addr in Section 2.4.3 should be struct in6_addr { uint8_t s6_addr[16
LAN 局域网 2000系统 基于数字音视频技术和TCP/IP协议的 超大型社区联网解决方案 围墙门主机 单元子系统n 单元子系统1 AS02 17 17 2000系统大型小区(社区)联网图 管理中...
A TCP/IP Lab Course Magda El ZarkiDept. of ICSUC, Irvineelzarki@uci.edu Outline of Presentation AcknowledgmentMotivationCourse LayoutLab Set UpSample
TCP/IP was initially built into the UNIX& operating system and is now used by the Internet and operating systems around the world, making it the standard for transmitting data over ...
相关阅读: & & & & &
读了《支援 Modbus over TCP/IP 通f定》的人还读了:
1、2、3、4、5、6、7、8、9、10、MODBUS中使用RTU 模式,消息发送至少要以3.5 个字符时间的停顿间隔开始。 这句话是什么意思?_百度知道
MODBUS中使用RTU 模式,消息发送至少要以3.5 个字符时间的停顿间隔开始。 这句话是什么意思?
程序中怎么体现?
我有更好的答案
要间隔3,MODBUS每两个命令之间在数据量较大的时候.5位或以上的停顿(即保持0或1的状态)以上回答你满意么
PLC程序怎么体现,?要先发送4个1吗?
其他类似问题
为您推荐:
modbus的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Modbus网关-MGate
产品名称:
Modbus网关
型  号:
MGate MB80
价  格:
品  牌:
产品介绍:
概述MB3180,MB3280和MB3480是标准的Modbus网关,它可以完成Modbus TCP和Modbus RTU/ASCII协议之间的转换。同时支持16个Modbus TCP master连接,每个端口可以连接31个RTU/ASCII slaves设备,对于RTU/ASCII master最大可以支持 32个 TCP slave。
整合标准的Modbus网络MGate MB3000标准产品包含MB3180,MB3280和MB3480,它是为快速整合Modbus TCP和RTU/ASCII 网络而设计的。使用这些产品,Modbus串口slave设备可以无缝地整合到现有的Modbus TCP网络中,并且Modbus TCP slave也可以和serial master正常通讯。MB3180,MB3280和MB3480提供轻松快速整合,灵活的特点,兼容性强。
可组建高密度网络,有效降低网关成本MGate MB3000可以轻松完成高密度Modbus节点网络的集成。使用MB3280最多可以管理62个串口slave节点,而使用MB3480通过RS-233/422/485串口可以管理到124个,甚至可以为每个通道的Modbus RTU或Modbus ASCII 配置不同的波特率,允许不同的Modbus网络整合到一个ModbusTCP网络上来。
完成 Modbus TCP 和 Modbus RTU/ASCII 协议之间的转换
提供 1 个以太网口 和最多4个RS-232/422/485 串口
同时支持 16 个TCP master 连接,每个master最大同时支持32个命令请求
命令超时自动调整功能,节省70%的配置时间
使用智能路由功能,无需改变现有架构
10/100 Mbps, RJ45, 自动侦测MDI/MDIX
内建 1.5 KV 电磁隔离保护
RS-232/422/485(软件可选)
MB3180: 1MB3280: 2MB3480: 4
RS-232: TxD, RxD, RTS, CTS, DTR, DSR, DCD, GNDRS-422: Tx+, Tx-, Rx+, Rx-, GNDRS-485 (2线): Data+, Data-, GNDRS-485 (4线): Rx+, Tx-, Rx+, GND
串口通讯参数
None, Even, Odd, Space, Mark
RTS/CTS, XON/XOFF
50 至 921.6 Kbps
RTU Slave, RTU Master, ASCII Slave, ASCII Master
MGate Manager Suite for Windows 98/ME/NT/2000/XP/2003/Vista
多master、多点连接
Master 模式: 最大 32 TCP slave Slave 模式: 16 TCP master, 每个master允许同时32个命令请求
12 至 48 VDC
MB3180: power jack MB3280: power jack带有紧固螺丝和接线端子MB3480: power jack带有紧固螺丝和接线端子
电源线保护
1 KV Burst (EFT), EN0.5 KV Surge, EN
MB3180: 铝制 (1 mm)MB3280: 铝制 (1 mm)MB3480: SECC钢板(0.8 mm)
0 至 55°C (32 至 131°F), 5 至 95% RH(60)
-20 至 85°C (-4 至 185°F), 5 至 95% RH
CE: EN550022 Class A / EN550024FCC: FCC Part 15 subpart B, Class A
TUV: EN60950-1Shock: IECFreefall: IECVibration: IEC
关 键 词:MGate
公司名称:
联 系 人:
电  话:
传  真:
地  址:
杭州是假山路99号5-1-901
邮  编:
主  页:
该厂商相关产品:
工控网客服热线:9
版权所有 中华工控网&Copyright&, All Rights Reserved后使用快捷导航没有帐号?
查看: 4421|回复: 5
helper2416_modbus_主从机测试_支持TCP/RTU
在线时间1114 小时
威望4585 分
芯币3654 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4585, 距离下一级还需 1415 积分
五彩晶圆(中级), 积分 4585, 距离下一级还需 1415 积分
Modbus是一种串行通信协议,是Modicon于1979年为使用可编程逻辑控制器PLC而发表的.
MODBUS是工业领域通信协议的业界标准,并且现在是工业电子设备之间相当常用的连接方式.
Modbus比其他通信协议使用的更广泛的主要原因有:
& && &1)公开发表并且无版税要求
& && &2)相对容易的工业网络部署
& && &3)对供应商来说,修改移动原生的位元或字节没有很多限制
Modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机.
在数据采集与监视控制系统SCADA中,Modbus通常用来连接监控计算机和remote terminal unit (RTU).
细节可以参考wiki百科或相关资料,总的来讲modbus是一个非常靠谱的工业上大量使用的应用层通讯协议,能够让各个厂家的设备能够通讯,只要被支持就可以了。
一、协议版本
Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本.大多数Modbus设备通信通过串口EIA-485物理层进行.
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同.Modbus RTU是一种紧凑的,采用二进制表示数据的方式.
Modbus ASCII是一种人类可读的,冗长的表示方式.这两个变种都使用串行通讯serial communication方式.
RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和.
被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。
对于通过TCP/IP的连接,存在多个Modbus/TCP变种,这种方式不需要校验和的计算.
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的.
Modbus有一个扩展版本Modbus Plus(Modbus+或者MB+),不过此协定是Modicon专有的和Modbus不同.
它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转,它使用1Mbit/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置.
连接Modbus Plus到计算机需要特别的接口,通常是支持ISA,PCI或者PCMCIA总线的板卡.
二、通信和设备
Modbus协议是一个master/slave架构的协议,有一个节点是master节点,其他使用Modbus协议参与通信的节点是slave节点.
每一个slave设备都有一个唯一的地址,在串行和MB+网络中,只有被指定为主节点的节点可以启动一个命令.
在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只有一个主节点设备启动指令.
一个ModBus命令包含了打算执行的设备的Modbus地址,所有设备都会收到命令,但只有指定位置的设备会执行及回应指令.
地址0例外,指定地址0的指令是广播指令,所有收到指令的设备都会执行,不过不回应指令.
所有的Modbus命令包含了检查码,以确定到达的命令没有被破坏.
基本的ModBus命令能指令一个RTU改变它的寄存器的某个值,控制或者读取一个I/O端口,以及指挥设备回送一个或者多个其寄存器中的数据.
有许多modems和网关支持Modbus协议,因为Modbus协议很简单而且容易复制.它们当中一些为这个协议特别设计的.
有使用有线、无线通信甚至短消息和GPRS的不同实现,不过设计者需要克服一些包括高延迟和时序的问题.
相关说明,图片形式,下面会有用的,直观一点吧:
modbus栈结构
modbus帧,这个好好看看,下面调试会用到
典型的cs结构
公共功能码
三、libmodbus库安装
1、下载源码包libmodbus-3.0.6.tar.gz
2、libmodbus移植
1)交叉编译--prefix参数
嵌入式开发板:
# ./configure --build=i686 --host=arm-linux --enable-static --prefix=$(pwd)/libmodbus-install
& & & & # make
& & & & # make install复制代码
2)如果在嵌入式开发板上运行类似unit-test-xxx测试程序时,首先要测试tcp的就要修改两个文件中的IP地址,默认是回环测试的
其次要测试rtu的就要修改两个文件中的串口设备文件名,嵌入式开发板上一般是ttySx,我们的板子是ttySACx
unit-test-server.c
& & & & if (use_backend == TCP) {&&
& & & & & & & & ctx = modbus_new_tcp(&192.168.1.200&, 1502);&&
& & & & & & & & query = malloc(MODBUS_TCP_MAX_ADU_LENGTH);&&
& & & & } else if (use_backend == TCP_PI) {&&
& & & & & & & & ctx = modbus_new_tcp_pi(&::0&, &1502&);&&
& & & & & & & & query = malloc(MODBUS_TCP_MAX_ADU_LENGTH);&&
& & & & } else {&&
& & & & & & & & ctx = modbus_new_rtu(&/dev/ttySAC1&, 115200, 'N', 8, 1);&&
& & & & & & & & modbus_set_slave(ctx, SERVER_ID);&&
& & & & & & & & query = malloc(MODBUS_RTU_MAX_ADU_LENGTH);&&
& & & & }复制代码
unit-test-client.c
if (use_backend == TCP) {&&
& & & & & & & & ctx = modbus_new_tcp(&192.168.1.200&, 1502);&&
& & & & } else if (use_backend == TCP_PI) {&&
& & & & & & & & ctx = modbus_new_tcp_pi(&::1&, &1502&);&&
& & & & } else {&&
& & & & & & & & ctx = modbus_new_rtu(&/dev/ttySAC1&, 115200, 'N', 8, 1);&&
& & & & }&&
复制代码
3)在tests目录下的类似unit-test-server这个不是可执行文件,而是一个脚本.
他会调用tests目录下的.lib/下的unit-test-server可执行文件,在PC中需要执行对应的脚本文件,而在嵌入式平台上直接执行tests/.lib可执行文件.
默认生成的测试可执行文件是在隐藏文件夹中的如下操作后可在samba映射中看到
# cd ./tests/
& & & & # cp .lib/ test-bin/
& & & & # cd test-bin/复制代码
4)以上为基本的测试,如果想实际的使用这个库,可以自行写客户端或者服务器程序,调试可以使用对应的Modbus Poll/Slave这是windows下的可视化调试工具.
四、windows下的可视化调试软件
主要两个软件modbus poll和modbus slave,当然如果想先了解modbus通讯协议可以参考协议spec然后用vspd来连接这两个软件,先在pc上面做一些基础的实验,我想是个很好的入门方法。
注意以下软件仅仅用于学习评估,安装测试后删除。
安装软件如下:
PC上测试软件
注意这里我们课使用localhost作为测试,选择tcp方式,方便一点不需要vspd的
串口的连接方式
五、libmodbus测试程序
可以先在板子上面测试,如下
server程序
client测试
六、使用可视化工具来调试modbus嵌入式程序
& && & 这里我偷懒了,直接使用自带的tests下面的程序来演示如何去做这个事情吧,大家可以动手写自己的modbus主机和从机程序了,方法很简单,不懂的看docs下面的文档还有就是tests下面的例子个个都很不错,我这个帖子不是深入的教学帖子,就不进行详细的代码级别的教学了,主要是说个思路大家自己发挥吧,想搞啥搞啥,没有局限,linux是自由的。当然了实际项目完全按照这个步骤来run没问题的。
我们来看一下unit-test-client.c这个文件中的我们来分析的部分,我也只做了这部分与可视化界面的通讯演示
& & /** COIL BITS **/
& & /* Single */
& & rc = modbus_write_bit(ctx, UT_BITS_ADDRESS, ON);
& & printf(&1/2 modbus_write_bit: &);
& & if (rc == 1) {
& && &&&printf(&OK\n&);
& & } else {
& && &&&printf(&FAILED\n&);
& && &&&
& & }
& & rc = modbus_read_bits(ctx, UT_BITS_ADDRESS, 1, tab_rp_bits);
& & printf(&2/2 modbus_read_bits: &);
& & if (rc != 1) {
& && &&&printf(&FAILED (nb points %d)\n&, rc);
& && &&&
& & }
& & if (tab_rp_bits[0] != ON) {
& && &&&printf(&FAILED (%0X = != %0X)\n&, tab_rp_bits[0], ON);
& && &&&
& & }
& & printf(&OK\n&);
& & /* End single */复制代码
我们看几个函数说明
modbus_new_rtu
modbus_set_slave
modbus_write_bit
好了需要注意unit_test.h文件中关于server-id和address的定义信息,后面需要用到
#define SERVER_ID& && && &17
#define INVALID_SERVER_ID 18
const uint16_t UT_BITS_ADDRESS = 0x13;
const uint16_t UT_BITS_NB = 0x25;
const uint8_t UT_BITS_TAB[] = { 0xCD, 0x6B, 0xB2, 0x0E, 0x1B };复制代码这有两个地址一个是设备地址一个是modbus的地址域,还比较好懂吧,一主多从,典型的rs485通信链路。
测试图,细节可以看图片中的文字说明:
1)设置slave,这里可以理解为是一个服务,是个从机
2)配置通信,注意我使用板子的COM2
3)测试中,打开通信调试,原始数据,可比对前面的帧结构一个个对应上,还有就是后面那副图中的调试数据
4)板子中跑的程序可以理解为主机,他对设备地址为17=0x11的从机进行bits读写操作
好了,写个帖子有点累,要说的东西很多,大家有问题跟帖说明吧,我会做出解答。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
在线时间1114 小时
威望4585 分
芯币3654 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4585, 距离下一级还需 1415 积分
五彩晶圆(中级), 积分 4585, 距离下一级还需 1415 积分
还有个打算,这里说一下
准备给raw-os移植这个modbus组件,毕竟工业上使用的还是很多的。
还有一点想说的,希望大伙能针对raw-os做一些测试和优化的工作,当然了我也想把每个模块进行划分,不要整合在一个大工程中,毕竟每个人的需求就不一样,太大了不适合学习。
或者仅仅一个raw-os的清爽一点,这样也不错。当然了也有os+lwip这种,就是各种组合吧,挺好的我觉得。
或者弄一个可视化的配置界面或者menuconfig什么的,可以借鉴rt thread的那个工具具体记不得了什么scon还是什么的。
在线时间362 小时
威望617 分
芯币1538 枚
TA的帖子TA的资源
篇篇精彩!强烈支持raw-os+menuconfig!
My dreams will go on...
在线时间13 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 16, 距离下一级还需 -11 积分
一粒金砂(初级), 积分 16, 距离下一级还需 -11 积分
您好,我看了这篇文章后对libmodbus移植,在编译tests里的测试代码时出现一些问题:
undefined reference to 'modbus_new_tcp'
undefined reference to 'modbus_set_debug'
这是没有找到库文件吗,可以帮忙解答一下吗,另外使用make命令后,为什么.lib文件夹里的是可执行代码,如果想自己编程实现怎么编译呢?(makefile目前还看不懂,请多多指教)
非常感谢!
自己研究一下,慢慢的
感觉自己写的已经蛮清楚的了,如果是太新手了,估计要补一下基础&
在线时间1114 小时
威望4585 分
芯币3654 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4585, 距离下一级还需 1415 积分
五彩晶圆(中级), 积分 4585, 距离下一级还需 1415 积分
您好,我看了这篇文章后对libmodbus移植,在编译tests里的测试代码时出现一些问题:
undefined reference to 'modbus_new_tcp'
undefined reference to 'modbus_set_debug'
这是没有找到库文件吗,可以帮忙解答一下吗,另外使用make命令后,为什么.lib文件夹里的是可执行代码,如果想自己编程实现怎么编译呢?(makefile目前还看不懂,请多多指教)
非常感谢!
自己研究一下,慢慢的
感觉自己写的已经蛮清楚的了,如果是太新手了,估计要补一下基础
在线时间13 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 16, 距离下一级还需 -11 积分
一粒金砂(初级), 积分 16, 距离下一级还需 -11 积分
恩,好的,谢谢
Powered by
逛了这许久,何不进去瞧瞧?

我要回帖

更多关于 modbus tcp调试助手 的文章

 

随机推荐