1.简述

工业控制中一般采用PLC进行一些简单的运动控制和IO控制,很多时候需要PC端能够操作PLC一些数据。在1979年MODICON公司定义了一种工业现场总线协议标准——Modbus(最初的Modbus协议一般是走串口),后来在1996年施耐德公司基于以太网TCP/IP协议重新对MODBUS协议进行定义——MODBUSTCP。

该协议实现了外部设备与PLC进行简单通讯功能,其中主要包括寄存器读取和写入,通过此功能结合PLC内部实现从而实现联合编程目的。
优势:相比于PLC内部的TCP通讯MODBUS直接对PLC寄存器进行操作,更加高效、方便等,无需再在PLC端开通TCP通讯口,一般PLC都会开放一个端口作为MODBUS服务器以供触摸屏等外部设备交互。

三菱PLC较为特殊,可以走MODBUS但是没必要(因为三菱较为NB,自己开发定义了一个比MODBUS更方便的协议SLMP协议),一般三菱PLC网口连接触摸屏都采用SLMP接口(FX5U)

台达PLC通讯建议使用MOUBUSTCP通讯(在这里说一点,台达PLC和三菱比较起来很多功能指令封装较差,但是自由度高,台达编程软件用起来真的难受,强烈推荐三菱GX3【应该本行业里面最在意用户体验最佳的软件】)

另外再说一点,MODBUSRTU协议一般用于串口的MODBUS通讯,其中有一点需要注意是需要加入校验,校验方法为CRC16。具体协议此处不深入。

2.MOUBUSTCP数据组成

MODBUSTCP在TCP发送中数据主要分为两个部分:报文头(MBAP)+帧结构(PDU)。其中报文头由事务处理标识+协议标识+长度+单元标识符,帧结构由功能码+数据组成

最终数据:事务处理标识+协议标识+长度+单元标识符+功能码+数据

事务处理标识
数据序列号,用于区别多次通讯数据(每次加一就好)

协议标识符
表示采用哪种通讯协议,其中MODBUSTCP用00 00表示

长度
后面数据长度(用于保证数据完整性)

单元标识符
设备地址,应该是串口遗留位(没啥用,搞个00就可以了)

功能码
0x01:读线圈
0x05:写单个线圈
0x0F:写多个线圈
0x02:读离散量输入
0x04:读输入寄存器
0x03:读保持寄存器
0x06:写单个保持寄存器
0x10:写多个保持寄存器

数据
读取数据:起始地址(两个byte)+需要读取的数据量(两个byte)
写入单个线圈:地址(两个byte)+请求数据(0xFF00请求输出为ON,0x000请求输出为OFF)

写入多个线圈:起始地址(两个byte)+写入数量(两个byte)+后面字节长度(一个byte)+十六进制表示的线圈值(ox03———11000000)

写入多个寄存器:起始地址(两个byte)+写入数量(两个byte)+后面字节长度(一个byte)+寄存器值(一个寄存器值对应两个字节)

其他可参考参考1

3.实例(验证PLC 台达AS228T)

通过以上介绍看下面的实例(将D0和D1值都改为15):

    QByteArray array1;array1[0]=0x00;   //事务处理标识array1[1]=0x00;array1[2]=0x00;    //协议标识array1[3]=0x00;array1[4]=0x00;  //长度array1[5]=0x0B;array1[6]=0x01;    //站号array1[7]=0x10;    //功能码array1[8]=0x00;   //起始地址array1[9]=0x00;array1[10]=0x00; //写入长度array1[11]=0x02;array1[12]=0x04;    //后面数据长度array1[13]=0x00;   //首个数据值array1[14]=0x0F;array1[15]=0x00;   //第二个数据值array1[16]=0x0F;

将M0和M1继电器置位

    array1[0]=0x00;array1[1]=0x00;array1[2]=0x00;array1[3]=0x00;array1[4]=0x00;array1[5]=0x08;array1[6]=0x01;array1[7]=0x0F;array1[8]=0x00;array1[9]=0x00;array1[10]=0x00;array1[11]=0x02;array1[12]=0x01;array1[13]=0x03;

ModbusTCP通讯协议学习及实践(台达三菱PLC通讯)相关推荐

  1. 西门子plc与台达变频器通讯程序 西门子plc200smart与台达变频器modbus通讯程序

    西门子plc与台达变频器通讯程序 西门子plc200smart与台达变频器modbus通讯程序,可以帮你学会modbus通讯,是程序,说明书,接线定义,参数调试! ID:481260527513290 ...

  2. tk6071iq怎么恢复出厂设置_威纶触摸屏TK6071IQ与三菱PLC通讯怎么设置

    威纶触摸屏TK6071IQ与三菱PLC通讯怎么设置威纶通触摸屏和三菱PLC通讯不上,老是提示PLC没反应,该怎么设置呢? 解决思路: 你设置同样的波特率,同样的位数,同样的停止位,站号不能相同,就是说 ...

  3. 台达DVP系列PLC与台达DTA温控器modbus通讯案例功能:采用台达DVP ES型号PLC,对台达DTA温控器通过485方式,modbus协议,进行温度的设定

    台达DVP系列PLC与台达DTA温控器modbus通讯案例功能:采用台达DVP ES型号PLC,对台达DTA温控器通过485方式,modbus协议,进行温度的设定,温度探头型号设定,实际温度读取. 硬 ...

  4. ethercat如何编程 台达50mc_台达/Delta PLC DVP-50MC系列 DVP50MC11T内建多种通讯口

    台达/Delta PLC DVP-EX2主机系列 DVP20EX200R DVP20EX200R的产品简介:DVP30EX2提供模拟/温控整合型控制器,内置16-bit3AI/1AO搭配内置温度PID ...

  5. 不用PLC Smart触摸屏与多台变频器通信 变频器通讯西门子触摸屏直接与台达VFD-S1和松下VF100变频器MODBUS RTU通讯,

    不用PLC Smart触摸屏与多台变频器通信 变频器通讯西门子触摸屏直接与台达VFD-S1和松下VF100变频器MODBUS RTU通讯,实现启动, smart 700 smart 700IE sma ...

  6. 西门子1200与台达MS300变频器通讯程序

    西门子1200与台达MS300变频器通讯程序 器件:西门子1200 PLC,台达ms300变频器,西门子KTP700 Basic Pn触摸屏,昆仑通态触摸屏(带以太网),中途可以加路由器 控制方式:触 ...

  7. 威纶tk6070ik与台达变频器vdf-s485通讯程序 自己编写的威纶触摸屏与台达变频器的通讯

    威纶tk6070ik与台达变频器vdf-s485通讯程序 自己编写的威纶触摸屏与台达变频器的通讯程序,可以直接控制变频器正反转,启动停止,监视变频器的电流电压等及错误代码等. ID:981558944 ...

  8. 西门子1200 plc与台达14ES plc之间modbus 通讯实战程序 西门子1200plc做主站,台达DVP plc做从站,进行数据交换

    西门子1200 plc与台达14ES plc之间modbus 通讯实战程序 西门子1200plc做主站,台达DVP plc做从站,进行数据交换. 功能:通过MODBUS指令,通过西门子CM1241 4 ...

  9. 485之modbus通讯协议学习笔记

    485之modbus通讯协议学习笔记 这里主要探讨两个寄存器 03 读保持寄存器 04读输入寄存器 输入寄存器其中的温度值和湿度值分别各占两个字节,一个字节八位使用十六进制00 01表示两个字节的寄存 ...

  10. 西门子smart200与台达MS300变频器通讯程序 触摸屏与plc以太网通讯,PLC与变频器通讯485口相连

    西门子smart200与台达MS300变频器通讯程序 器件:西门子s7 200 smart PLC,台达MS300变频器,昆仑通态触摸屏(带以太网),中途可以加路由器 控制方式:触摸屏与plc以太网通 ...

最新文章

  1. 边缘计算:智慧城市的下一个浪潮
  2. 机器学习算法源码全解析(三)-范数规则化之核范数与规则项参数选择
  3. 错误日志的实时抓取保证代码质量
  4. 简述Intel的MESI缓存一致性协议
  5. oracle表空间放在别的服务器,OracleXE的APEX可以访问同一服务器上的另一个Oracle数据库(10g),还是受限于XE数据库中的那些用户/表空间?...
  6. 浅谈 Linux 高负载的系统化分析
  7. python 参数个数 同名函数_Python——函数的参数
  8. C# Regex 深入正则表达式
  9. org.apache.catalina.loader.StandardClassLoader@1af33d6
  10. 剑指offer面试题[34]丑数
  11. linux dlopen 源码,采用dlopen、dlsym、dlclose加载动态链接库
  12. linux zsh 终端,linux 终端命令加速-zsh让终端更优雅
  13. visio如何使箭头指向图中的任意位置
  14. 病毒手动查杀(威金 q盗 熊猫烧香)
  15. 物理学的过去、现在与未来
  16. yolov5导出onnx用netron.app可视化搜索
  17. 1088: 手机短号 (多实例)
  18. 如何让IE窗口打开时就自动默认为最大化
  19. 旧闻新思-重新审视人际关系
  20. MySQL存储生僻字解决方案

热门文章

  1. 计算机密码输入正确,Win10输入正确密码却提示“密码不正确”如何解决
  2. CanBus的数据帧的获取和初始解析
  3. 如何让paraview GUI软件启动时不弹出Welcome to paraview窗口
  4. python标准库需不需要导入_Python标准库需要导入吗_后端开发
  5. 华硕aura完全卸载_这把键盘,或是顶级光轴键盘!华硕TUF GAMING K7光轴机械键盘...
  6. FTP下载文件夹到windows
  7. OFD格式及OFD阅读器
  8. Kotlin教程,从入门到精通
  9. 【AHP】层次分析法 | 过程解读 案例实践
  10. python画中国的轮廓_利用python绘制中国地图(含省界、河流等)