基于ModBus-TCP/IT 台达PLC 通讯协议解析

客户端发送:19 B2 00 00 00 06 06 03 00 27 00 02

上面是modbus客户端发出的报文内容,为modbus tcp/ip协议格式,其前面的六个字节为头字节( header handle);

“19 B2 00 00 00 06”

19 B2 两个字节是Client发出的检验信息,Sever端只是需要将这两个字节的内容copy以后再放到response的报文的相应位子就可以了,可以自己定义;

00 00 两个字节是表示tcp/ip 的协议的modbus的协议;

00 06 两个字节表示的是header handle后面还有多长的字节,即表示的是该字节以后的字节长度(lengch),可以看到在00 06后面还有 “06 03 00 27 00 02”六个字节,所以这两个字节表示的就是6;

“06 03 00 27 00 02”

06 一个字节表示slave address;

03 为Fuction code ;

00 27 表示Client request的寄存器地址;

00 02 表示request 寄存器的长度;(寄存器个数)

服务端返回数据:19 B2 00 00 00 07 06 03 04 00 00 00 00

报头 : “ 19 B2 00 00 00 07”

19 B2 为Server返回的检验码,copy from Client request;

其它的表示与客户端的表示相同

报文:“ 06 03 04 00 00 00 00”

06 是Slave address,从地址数;

03是Function code ;

04表示了回复给Client request的需要读的寄存器的值的个数,这里因为主地址向从地址读了2个寄存器即2个16位的寄存器(2个字)所以这里为4个字节,因为2个字为4个字节,而04这个字节表示的就是从地址要回复给主地址的寄存器字节长度,

00 00 00 00 表示了4个字节的值

写多个寄存器

发送

响应

原文地址:https://www.cnblogs.com/fei2232/p/10067906.html

时间: 2024-10-30 08:30:57

基于ModBus-TCP/IT 台达PLC 通讯协议解析的相关文章

最完整的台达PLC培训教程(沈阳工大)学习笔记1

1) 可编程控制器的应用1 开关量逻辑控制:电动机启动与停止2 运动控制:对步进电动机或伺服电动机的单轴或多轴系统实现位置控制3 过程控制:对温度.压力.流量等连续变化的模拟量进行闭环控制4 数据处理:数据采集-运算-传送5 机械加工机床的数字控制:数控系统6 机器人控制:7 通信联网: PLC-计算机,PLC-PLC,PLC-人机界面 2) 可编程控制器的分类与特点1.4.1可编程控制器的分类1 按结构形式分类(1) 整体式:将电源.I/O点.CPU.储存器等做成1个整体(2) 模块式:将电源

台达PLC实现远程下载程序

台达PLC实现远程下载程序 日期:2019-04-27                    时间    08:33:57 让物联变得更简单 18-09-2411:25 明明在公司调试没问题的设备一到现场就状况百出,往往需要升级软件来解决问题.工程师就要满世界出差,项目成本增加不少.其实优更好的方案:可以通过为PLC配备远传串口终端实现PLC程序的异地远程下载和监控. 其原理如下: 在传统串口通信的基础上,通过搭载物联网技术实现串口数据的远程交互.常用作PLC远程下载程序.设备远程监控.实验数据

PLC无线通讯方案,支持西门子,三菱,欧姆龙,台达等各品牌PLC

在实际项目中,经常有多台PLC之间需要通讯,距离可能从几十米到几千米,也有的客户需要通过互联网来远距离监控PLC的状态. 在这里介绍一种PLC无线通讯的实现方法,采用巨控GRM200系列PLC专用无线通讯模块,支持通过PPI协议连接西门子S7200 PLC和通过MPI协议连接西门子S7300 /400 PLC, PLC侧都不需要编程,同时巨控PLC专用无线通讯模块还可直接支持的PLC包括三菱 PLC,,欧姆龙PLC,台达PLC,也可以通过modbus通讯连接松下PLC,永宏PLC,施耐德PLC,

组态王MODBUS TCP数据报格式

在大家通读Modbus协议时,总是会碰到一些容易混淆的名词,从而导致对于协议的解读出现问题,在本文中,我 们对于Modbus协议中可能会给大家造成困惑的名词作相关的解释. 1.功能码:功能码在modbus协议用于表示信息帧的功能,常用的功能码有03,04,06,16等,其中03功能码的作 用是读保持寄存器内容,04功能码的作用是读输入寄存器内容(输入寄存器和保持寄存器的区别看下文),06功 能码的内容是预置单个保持寄存器,16功能码的内容则是预置多个保持寄存器. 2.输入寄存器和保持寄存器:04

台达wplsoft2.34指令表

常用: LD 载入 A 接点 LDI 载入 B 接点 AND 串联 A 接点 ANI 串联 B 接点 OR 并联 A 接点 ORI 并联 B 接点 ANB 串联回路方块 ORB 并联回路方块 MPS 存入堆栈 MRD 堆栈读取 (指针不动) MPP 读出堆栈 输出指令: OUT 驱动线圈 SET 动作保持 (ON) RST 接点或寄存器清除 定时器,计数器: TMR 16 位定时器 CNT 16 位计数器 DCNT 32 位计数器 主控指令: MC 公共串联接点的连接 MCR 公共串联接点的解除

PC高级语言与施耐德、罗克韦尔、台达等PLC的Modbus通讯源代码(ModbusTCP.DLL/ModbusRTU.DLL)

1.0  通讯组件概述 该类通讯组件适用于基于PC高级语言的工业自动化控制系统,用于PC与可编程控制器(PLC).智能仪表等进行数据通讯.组件采用动态链接库文件(*.DLL)的形式,在PC系统的项目工程里引用该组件,调用相应的属性与方法函数,即可快速实现PC与PLC的数据高效交换. DLL通讯组件无须安装,直接复制到工程文件目录,方便打包安装部署:无须任何配置,直接调用函数,与应用开发无缝衔接:多年工程经验的软件团队开发测试,经过本公司及客户的海量实际应用检验,稳定可靠:采用稳定高效的内部协议,

Modbus tcp 格式说明 通讯机制 附C#测试工具用于学习,测试

前言: 之前的博客介绍了如何用C#来读写modbus tcp服务器的数据,文章:http://www.cnblogs.com/dathlin/p/7885368.html 当然也有如何创建一个服务器文章:http://www.cnblogs.com/dathlin/p/7782315.html 但是上面的两篇文章是已经封装好的API,只要调用就可以实现功能了,对于想了解modbus tcp的原理的人可能就不适合了,最近有不少网友的想要了解这个协议,所以在这里再写一篇介绍Modbus tcp的文章

[Modbus] 如何看懂 Modbus TCP 通讯协定

最近笔者接了一个工控系统,其中PLC所使用的是Modbus TCP的通讯协定. 由于这个部分因为从来没有接触过,所以花了一点时间研究. 趁著现在记忆犹新,赶紧写下来,方便日后对照,也让读者们能够快速看懂Modbus TCP协定. Modbus为工业上常用的通讯协定之一,也是目前工业领域通讯协定常用的标准协定. 一般来说,Modbus主要可以再细分为两种协定(Modbus?RTU?.Modbus ASCII .Modbus TCP) Modbus?RTU?是一种为使用二进制表示法来进行数据的传递与

基于LWIP的Modbus TCP粘包处理

最近在做Modbus TCP时,碰到了TCP粘包问题,由于客户端发送包的字节数较少并且速度也很快(10ms/次),导致了服务器端一下收到了好几个包! 一般粘包情况存在以下几种: 很多人在处理TCP粘包时,都会定义一个帧的数据结构,包含标识,长度,数据等信息. 本人认为Modbus TCP的帧结构就很好,能广泛应用于电力,机房电源监控等领域也不是没有道理的. 以下就Modbus TCP粘包问题作出处理,直接上代码: 1 //ADU和RTU合二为一结构体 2 struct adu_rtu 3 { 4