Modbus TCP通信概述
MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的MODBUS系列通讯协议的派生产品,显而易见,它覆盖了使用TCP/IP协议的“Intranet”和“Internet”环境中MODBUS报文的用途。协议的最通用用途是为诸如PLC’s,I/O模块,以及连接其它简单域总线或I/O模块的网关服务的。

MODBUS/TCP 使MODBUS_RTU协议运行于以太网,MODBUS TCP使用TCP/IP和以太网在站点间传送MODBUS报文,MODBUS TCP结合了以太网物理网络和网络标准TCP/IP以及以MODBUS作为应用协议标准的数据表示方法。MODBUS TCP通信报文被封装于以太网TCP/IP数据包中。与传统的串口方式,MODBUS TCP插入一个标准的MODBUS报文到TCP报文中,不再带有数据校验和地址。

  1. 通讯所使用的以太网参考模型
    Modbus TCP传输过程中使用了TCP/IP以太网参考模型的5层:

第一层:物理层,提供设备物理接口,与市售介质/网络适配器相兼容

第二层:数据链路层,格式化信号到源/目硬件址数据帧

第三层:网络层,实现带有32位IP址IP报文包

第四层:传输层,实现可靠性连接、传输、查错、重发、端口服务、传输调度

第五层:应用层,Modbus协议报文

  1. Modbus TCP数据帧
    Modbus数据在TCP/IP以太网上传输,支持Ethernet II和802.3两种帧格式,Modbus TCP数据帧包含报文头、功能代码和数据3部分,MBAP报文头(MBAP、Modbus Application Protocol、Modbus应用协议)分4个域,共7个字节,如图1所示:

    图1: MODBUS TCP报文

由于使用以太网TCP/IP数据链路层的校验机制而保证了数据的完整性,MODBUS TCP 报文中不再带有数据校验”CHECKSUM”,原有报文中的“ADDRESS”也被“UNIT ID”替代而加在MODBUS应用协议报文头中。

  1. Modbus TCP使用的通讯资源端口号
    在Modbus服务器中按缺省协议使用Port 502 通信端口,在Modbus客户器程序中设置任意通信端口,为避免与其他通讯协议的冲突一般建议2000开始可以使用。

  2. Modbus TCP使用的功能代码
    按照使用的通途区分,共有3种类型分别为:

  1. 公共功能代码:已定义好功能码,保证其唯一性,由Modbus.org认可;

  2. 用户自定义功能代码有两组,分别为65~72和100~110,无需认可,但不保证代码使用唯一性,如变为公共代码,需交RFC认可;

  3. 保留功能代码,由某些公司使用某些传统设备代码,不可作为公共用途。

按照应用深浅,可分为3个类别:

  1. 类别0,客户机/服务器最小可用子集:读多个保持寄存器(fc.3);写多个保持寄存器(fc.16)。

  2. 类别1,可实现基本互易操作常用代码:读线圈(fc.1);读开关量输入(fc.2);读输入寄存器(fc.4);写线圈(fc.5);写单一寄存器(fc.6)。

  3. 类别2,用于人机界面、监控系统例行操作和数据传送功能:强制多个线圈(fc.15);读通用寄存器(fc.20);写通用寄存器(fc.21);屏蔽写寄存器(fc.22);读写寄存器(fc.23)。

  1. Modbus TCP通讯应用举例
    在读寄存器的过程中,以Modbus TCP请求报文为例,具体的数据传输过程如下:
  1. Modbus TCP客户端实况,用Connect()命令建立目标设备TCP 502端口连接数据通信过程;

  2. 准备Modbus报文,包括7个字节MBAP内请求;

  3. 使用send()命令发送;

  4. 同一连接等待应答;

  5. 同recv()读报文,完成一次数据交换过程;

  6. 当通信任务结束时,关闭TCP连接,使服务器可以为其他服务。

Modbus TCP 通讯区
BC9000 和 BC9050能通讯的区域为 %M ,Holding Register偏移量为16385
BK9000 能通讯的区域为 %I Inpute Register , %Q Holding Register
PC、CX 安装Modbus TCP Server 后 能通讯的区域为 %I Inpute Register , %Q Holding Register
BC9050
Modbus TCP通讯
图片:
[删除]
BC9050 用Modbus TCP能够读写的寄存器为 M区,ModScan参数如下。
偏移量16385,03 Holding Register。
寄存器 4386是 watchdog 标志 默认为1 打开。可关闭。

倍福PLC Modbus通信区相关推荐

  1. 倍福PLC的Modbus-TCP Server入门教程

    倍福PLC的Modbus-TCP Server入门教程 一.实验目的 二.实验环境 三.需要的软件 四.操作步骤 五.问题 作者:SAM 一.实验目的 1.使用倍福TwinCAT3作为Modbus-T ...

  2. 倍福PLC和C#通过ADS通信传输Bool数组变量

    在倍福PLC和C#通信,采用ADS通信,本文讲解C#如何读取和写入bool类型数组变量. 操作流程 1.1. PLC程序设计 首先定义相关的变量,如下所示,激活配置: 1.2. C#程序设计 关于C# ...

  3. 倍福PLC和C#通过ADS通信传输int类型变量

    在倍福PLC和C#通信,采用ADS通信,本文讲解C#如何读取和写入int类型变量. 操作流程 1.1. PLC程序设计 首先定义相关的变量,如下所示,激活配置: 1.2. C#程序设计 关于C#和倍福 ...

  4. 倍福PLC的C++ ADS通讯定义数据类型时注意事项

    在C++程序与倍福PLC通过ADS通讯时,如果C++程序中定义的变量与PLC程序中相应变量定义的数据类型不对应时,可能会出现数据读取或者写入错误,以下为调试过程中容易出错的实践总结记录. 1.向PLC ...

  5. 倍福PLC和C#通过ADS通信传输bool类型变量

    在倍福PLC和C#通信,采用ADS通信,本文讲解C#如何读取和写入bool类型变量. 操作流程 1.1. PLC程序设计 首先定义相关的变量,如下所示,激活配置: 1.2. C#程序设计 关于C#和倍 ...

  6. 线扫描枪条码测试机程序,完整倍福PLC程序完整beckhoff倍福PLC ST 语言

    线扫描枪条码测试机程序,完整倍福PLC程序完整beckhoff倍福PLC ST 语言ethercat总 线扫描枪条码测试机程序 和MES系统通讯 和Wenglor 扫描枪 RS232通讯 FB块可以直 ...

  7. 上位机使用C++通过ADS协议与倍福PLC通信例程-字符串变量读取

    前言 建议初学者先看这一章节内容,里面包括一些基础的环境配置和项目建立流程,以后开发项目这些流程是通用的,务必掌握并熟练. 链接: 上位机使用C++通过ADS协议与倍福PLC通信例程-布尔变量的读取 ...

  8. C# TCP/IP通讯协议的整理(三)附带——与倍福PLC通讯

    首先,需要一个和倍福PLC通讯的dll,一般厂家会提供 添加到引用后,直接创建通讯类 using System; using System.Collections.Generic; using Sys ...

  9. 倍福PLC串口模块使用

    之前使用的EL6021模块,如果使用PLC自带的COM口,则ST代码编写方面需要做一些修改: 1.将COMIN和OUT的类型修改 修改为: 2.将功能块的调用Mode修改: 修改为: 此外,COM口设 ...

最新文章

  1. python word 1_Python word | 学步园
  2. java关闭inputstream_关闭Java InputStreams
  3. java filehelper_Spring 发送邮件 使用File指定附件
  4. 习题7 7-7 字符排队
  5. 计算机如何查找目标,如何使用命令行查找计算机地理位置? | MOS86
  6. 金山云服务器内网带宽,金山云-文档中心-配置弹性网卡
  7. Docker容器的简单操作及应用部署
  8. matlab 散点图 线性回归图_吴恩达机器学习编程作业ex1-Matlab版
  9. UVa 1588 换抵挡装置
  10. python打开控制台运行_如何在IPython控制台中默认运行文件而不是终端?
  11. python phpstudy_phpStudy后门分析及复现
  12. Syncfusion的社区许可及免费电子书和白皮书
  13. json字符串-单、双引号
  14. word论文排版,页码和页眉
  15. python3读取dbf文件_python下用dbfread操作DBF文件
  16. mp3转为pcm工具
  17. rabbitmq连接特别慢 一直连接超时 An unexpected connection driver error occured
  18. 320、Vue学习笔记26 -【生产环境部署】 2020.04.20
  19. G-sensor概述及常用芯片整理(转)
  20. 题目:分别统计字符串中大写字母和小写字母的个数。

热门文章

  1. 【多模态】Multi-modal chemical information reconstruction from images and texts for exploring the
  2. Linux中安装IDA
  3. sql中向下取整怎么取_Sql Server 里的向上取整、向下取整、四舍五入取整的实例!...
  4. 18-windows10如何将电脑图标显示在桌面
  5. 都用无线技术,差距咋就这么大呢
  6. android p新功能_android 11 android的11大新功能
  7. 云原生应用实践与未来趋势
  8. 职场上情商高的人有什么特征,盘点职场上情商高的人必做的3件事
  9. MFC+opencv实现摄像头的打开与关闭
  10. 数据治理【主数据管理】