1、深圳市矩形科技有限公司深圳市矩形科技有限公司矩形矩形PLCPLC国产国产PLC的优秀代表!的优秀代表!深圳市矩形科技有限公司深圳市矩形科技有限公司矩形矩形PLC编程介绍编程介绍 之之 ModbusModbus协议说明协议说明深圳市矩形科技有限公司深圳市矩形科技有限公司目录1.Modbus协议的发展历史2.Modbus协议的报文帧格式3.Modbus协议的物理层实现4.矩形PLC的Modbus梯形图编程5.附例:矩形PLC与易能变频器通过Modbus通讯6.Modbus通讯调试工具深圳市矩形科技有限公司深圳市矩形科技有限公司1 1、ModbusModbus协议发展历史协议发展历史深圳市矩形科技有
2、限公司深圳市矩形科技有限公司ModbusModbus协议发展历史协议发展历史oModbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。o目前施耐德公司已将Modbus协议的所有权移交给IDA(分布式自动化接口)组织,在中国,Modbus已经成为国家标准GB/T19582-2008。o据不完全统计:截止到2007年,Modbus的节点安装数量已经超过了1000万个。Modbus是工业领域通信协议的业界标准,是工业电子设备之间相当常用的连接方式。oModbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本,最常见的是
3、RTU、ASCII、TCP三种版本。o大多数Modbus设备通信,通过串口485物理层进行。深圳市矩形科技有限公司深圳市矩形科技有限公司ModbusModbus协议特点协议特点ModBus网络为一主多从,仅唯一的设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备命令作出相应反应。A.只有一个主机,所有通信都由它发出。B.理论上,可支持247个之多的从设备,但使用数量因看实际情况来定。优点:(1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。(2)Modbus只定义了命令报文结构,而不管它们是经过何种物理网络进行通信的,因而可以支持多
4、种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。(3)Modbus只描述了如下过程:主设备如何请求访问从设备、从设备如何回应主设备的请求、以及怎样侦测错误并记录。因而,Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。深圳市矩形科技有限公司深圳市矩形科技有限公司2、Modbus协议的报文帧格式深圳市矩形科技有限公司深圳市矩形科技有限公司Modbus协议通讯过程示意图同一时刻,同一时刻,只能存在一只能存在一对主从机进对主从机进行数据传输行数据传输通讯只能由主机发起,通讯只能由主机发起,从机只能被动的响应从机只能被动的响应主机的请求命
5、令主机的请求命令从站之间,从站之间,不能通讯不能通讯深圳市矩形科技有限公司深圳市矩形科技有限公司一次典型的Modbus通讯示意图PLC为主站,变频器为5号从站。主PLC发出请求报文帧,5号从站(变频器)被动的发出响应报文帧注意:主站,不需要站地址注意:主站,不需要站地址,从站站地址:从从站站地址:从1开始开始 247深圳市矩形科技有限公司深圳市矩形科技有限公司Modbus-RTU 报文帧格式从站地址:1247读写线圈、保持寄存器等起始地址+长度+数据校验:CRC算法注意:报文帧中的数据,都是二进制格式注意:报文帧中的数据,都是二进制格式深圳市矩形科技有限公司深圳市矩形科技有限公司Modbus-
6、RTU协议报文帧:站地址MODBUS-RTU协议的站地址,由8个二进制bit组成,占一个字节一个字节, 指示出哪个从站,应去接收由主站所传送来的报文。每个从站必须指定一个唯一唯一的站地址, 而唯有报文地址与该从站的地址相同时,该从站才会响应主站的通信。从站站地址范围:从站站地址范围:1247从站送出的响应报文中,含有从站自身的站地址,用来告诉主站,是哪一个从站正在和它通讯。广播报文的地址是零广播报文的地址是零,所有的从站都将接收此报文的指令,但接收到报文的从站都不会应答主站。主站在通信中不需要站地址。主站在通信中不需要站地址。深圳市矩形科技有限公司深圳市矩形科技有限公司Modbus-RTU协议
7、报文帧:功能码功能码指示,被寻址到的从站应该做什么响应,占一个字节01 读取一组逻辑线圈的当前状态,典型操作对象是(PLC的数字量输出)02 读取一组开关输入的当前状态,(PLC的数字量输入)03 读取一个或多个输出寄存器的二进制值,(PLC的模拟量输出)04 读取一个或多个输入寄存器的二进制值,(PLC的模拟量输入)05 改变一个逻辑线圈的当前状态,(PLC的数字量输出)06 改变单个输出寄存器的二进制值,(PLC的模拟量输出)15 改变多个连续线圈的开关状态,(PLC的数字量输出)16 指定多个连续的输出寄存器的二进制值,(PLC的模拟量输出)以上功能码0116都为十进制值,在RTU模式下
8、,必须转化为二进制(十六进制)深圳市矩形科技有限公司深圳市矩形科技有限公司Modbus-RTU协议报文帧:数据区报文为主站发给从站的命令时:包含从站欲执行特定功能时所需要的信息,比如起始地址、欲取得的数据多少等 。报文为从站回给主站的响应时:包含从站被询问后所应答给主站的必要信息,比如返回数据的长度、具体的数据等。 具体的数据区格式,每个功能码有所不同,请参考详细的N80N80和和PPCPPC系系列可编程控制器列可编程控制器 MODBUS MODBUS通讯协议通讯协议。数据区传输的顺序:因为数据区传输的顺序:因为Modbus-Rtu协议为串口传输,每次只能传输一个协议为串口传输,每次只能传输一
9、个字节(字节(8bit),而寄存器为),而寄存器为16 bit,因此,有如下规则:,因此,有如下规则:同一个寄存器:高字节数据先被传输,低字节数据后被传输。寄存器之间,低地址寄存器先被传输,高地址寄存器后被传输。深圳市矩形科技有限公司深圳市矩形科技有限公司Modbus-RTU协议报文帧:校验RTU的错误校验采用 “冗余循环码(CRC)”,包含2个字节,即16位二进制。CRC码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的 CRC码,比较计算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。CRC码的计算方法是,先预置16位寄存器全为1。再逐步把每8位数据
10、信息进行处理。在进行CRC码计算时只计算8位数据位,起始位及停止位、奇偶校验位都不参与CRC码计算。矩形PLC指令提供了一个功能块指令来计算循环冗余校验码,名称为CRC;CRC计算方法的高级语言(C/C#/VC/VB等)实现,请自行百度搜索。深圳市矩形科技有限公司深圳市矩形科技有限公司Modbus-RTU 报文帧传输顺序传输顺序示意图如下所示:报文帧全为二进制编码二进制编码,每次传输一个字节(8bit),请注意其传输先后顺序,均为站地址-功能码-数据-校验。深圳市矩形科技有限公司深圳市矩形科技有限公司3 3、ModbusModbus协议的物理层实现协议的物理层实现深圳市矩形科技有限公司深圳市矩
11、形科技有限公司Modbus-Rtu的物理层实现标准的Modbus-Rtu,其物理层采用RS232、485等异步串行标准,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。常见设置是(1位起始位,8位数据位,1位停止位,偶校验)串口线路,每次传输一个字节(8bit)数据,加上1位起始位、1位停止位、1位奇偶位,共11位。1位起始位、位起始位、1位停止位,及位停止位,及1位奇位奇/偶校验位,是串口发送硬件加上偶校验位,是串口发送硬件加上去的,接收端硬件会自动解析,我们只要按设备说明书设置好即可去的,接收端硬件会自动解析,我们只要按设备说明书设置好即可,在编程里面不用关心其实现。,在编程里面
12、不用关心其实现。通讯参数必须相同:同一串口连接的同一线路通讯参数必须相同:同一串口连接的同一线路,所有设备,包括主站、从站,他们的波特率、停止位、校正位等等串口通讯参数,必须设置为相同值,才能正常通讯。深圳市矩形科技有限公司深圳市矩形科技有限公司Modbus协议物理连接层对照深圳市矩形科技有限公司深圳市矩形科技有限公司RS-232与485的接线示意图232口,需要交叉连线,用于一对一传输场合。485口,接线是正接正,负接负,一个主站可以接多个从站。深圳市矩形科技有限公司深圳市矩形科技有限公司4、矩形PLC的Modbus梯形图编程当用VB、VC等编写上位机界面时,需要了解各个读写功能码的具体报文
13、帧格式,请参考N80N80和和PPCPPC系列可编程控制器系列可编程控制器 MODBUSMODBUS通讯协议通讯协议。由于矩形PLC的梯形图编程,只要傻瓜式的填写参数,而不需只要傻瓜式的填写参数,而不需要关心报文格式、校正、传输顺序等要关心报文格式、校正、传输顺序等,这里不再深入研究。深圳市矩形科技有限公司深圳市矩形科技有限公司硬件连接一览图深圳市矩形科技有限公司深圳市矩形科技有限公司矩形矩形PLC的的Modbus-rtu编程编程矩形PLC的Modbus-rtu通讯很简单方便,用户只要填写指令功能块相填写指令功能块相对应的参数即可对应的参数即可,而不用关心01、03、16等各个功能码的报文帧格
14、式、传送顺序、CRC校正等具体细节,省时省力,傻瓜式编程。傻瓜式编程。N80系列小型PLC提供了以下两个Modbus功能块指令: SADDRSADDR 设置从站的站地址 M_BUS M_BUS 进行Modbus-RTU通讯深圳市矩形科技有限公司深圳市矩形科技有限公司设置从站的站地址设置从站的站地址 功能块名称:功能块名称:SADDRSADDR注意:矩形矩形PLC为纵向扫描为纵向扫描,SADDR应放到最右边应放到最右边,帮助手册里的示例是放在下面,有可能会导致通讯错误。红色框红色框09925,上电初始化深圳市矩形科技有限公司深圳市矩形科技有限公司 Modbus通讯功能块:M_ _Bus上节点:#
15、0 代表主站“读读”, #1 代表主站“写写”中节点:代表当前要操作的从站站地址从站站地址下节点:Modbus通讯参数设置区_首地址首地址I1、I2、I3:选择当前接入的是PLC的哪个串口,含义见下一页矩形PLC的四路串口引脚示意图:矩形PLC标配1路232、1路485,另外可定制扩展额外2路485。深圳市矩形科技有限公司深圳市矩形科技有限公司矩形PLC串口对应示意图串口串口1RS232串口串口2RS485 串口串口3RS485串口串口4RS485引脚 端口1 2R,3T,5GND端口2 2+,3- PIN端口2 6+,9- PIN端口1 6+,9- PINI1 导通导通导通导通I2 断开导通
16、断开导通I3 断开断开导通导通串口串口1 1串口串口2 2串口串口3 3串口串口4 4串口号与引脚的对应关系如左表,或参考上一页的示意图。注意:这个对应关系是固定死了的,如M21Mad,只有2路485没有232,则它只有串口2、串口3,而没有串口1。 为了与电脑的串口com1、com2区分,一般直接称呼一般直接称呼PLCPLC串口为串口串口为串口(汉字),而不称呼为(汉字),而不称呼为comcom口口。M_Bus功能块 输入控制与串口的对应 示意图深圳市矩形科技有限公司深圳市矩形科技有限公司M_BUS功能块的参数设置区参数设置区参数设置区:参数设置区: 共7个连续地址的寄存器个连续地址的寄存器
17、,依次是:通讯是否正常状态的显示、主机变量类型、主机变量偏移量、从机数据类型、从机数据偏移量、所要传输的数据个数、通讯重试次数。如下图所示:注意:M_BUS的下节点,比如上图中的41021,是参数设置区的首地址,是反映通讯是否正常的状态寄存器,用户不应该修改它的值。它的值,通讯正常的时候应该是5(正在处理)和6(处理完成),其他数字都是不正常,具体含义可参看帮助手册。注意:矩形矩形PLC为纵向扫描为纵向扫描,M_BUS功能块应放到最右边功能块应放到最右边,而不能放在下面,帮助手册里的示例是放在下面,有可能会导致通讯错误。深圳市矩形科技有限公司深圳市矩形科技有限公司PLC地址和Modbus地址的
18、转换 矩形矩形PLCPLC变量地址变量地址:由5 5位十进制数字位十进制数字组成,如40187,可看成40187,即第187个4类型的变量。注意:矩形PLC的偏移量,都是从00010001开始的。因此,矩形因此,矩形PLCPLC变量地址,对应于变量地址,对应于M_BusM_Bus功能块功能块通讯设置区的通讯设置区的 ,如:下图中传送的主站变量,如:下图中传送的主站变量的地址,应该是前两个寄存器的数值的组合:的地址,应该是前两个寄存器的数值的组合:40789,而不是41022或41023.深圳市矩形科技有限公司深圳市矩形科技有限公司PLC地址和Modbus地址的转换已知Modbus地址为1000
19、H,则先化成十进制数得到4096,然后再加1得到4097,如上图所示。当然,也可以直接用十六进制数字再加1,1000H加1为1001H,则move #1001H 到41025。 ModbusModbus地址地址:由4 4位十六进制数字位十六进制数字组成,如1001H、2003H等,这4位数字实质就是从站数据偏移量,但要化成从站数据偏移量,但要化成1010进制并加进制并加1 1。注意:Modbus地址,都是从00000000开始的,而PLC地址是从0001开始的,因此,modbus地址转化成PLC梯形图的地址时,要加1.从机数据类型:从机数据类型:4类型为保持寄存器,即模拟量输出,如变频器输出频
20、率深圳市矩形科技有限公司深圳市矩形科技有限公司5、附例:矩形附例:矩形 N80-M21Mad PLC N80-M21Mad PLC 与与易能易能 EDS1000 EDS1000系列系列 变频器变频器ModbusModbus通讯示例通讯示例深圳市矩形科技有限公司深圳市矩形科技有限公司矩形N80-M21Mad PLC的串口图N80-M21Mad,没有232口,只有两个485口,这里,我们选择使用第二路串口的引脚,既使用串口2。深圳市矩形科技有限公司深圳市矩形科技有限公司变频器的RS485接口示意图易能EDS1000系列变频器,有一个RS485口。深圳市矩形科技有限公司深圳市矩形科技有限公司 确定物
21、理线缆连接正常通讯硬件接口为RS485,RS485接口工作于异步串行、半双工模式、数据信号采用差分传输方式。为避免通讯信号受外界干扰,通讯连线建议使用双绞线,尽量避免使用平行线。 当需要远距离通信时,建议采用屏蔽电缆,并将屏蔽层接入变频器通讯地。PLC PLC +N80-M21Mad -PLC与变频器接线示意图+深圳市矩形科技有限公司深圳市矩形科技有限公司设置好变频器的串口通讯参数 变频器的输出频率,应该设置为“外部串口给定”,因此,应更改变频器的功能码“F0.00-频率输入通道选择”的值为“10”“串行口给定(掉电保持)”修改为10,由串行口给定,并掉电保存深圳市矩形科技有限公司深圳市矩形科
22、技有限公司设置好变频器的串口通讯参数默认值为默认值为003003,我们修,我们修改成改成014014,即变频器应,即变频器应答数据包,答数据包,1-8-11-8-1格式,格式,偶校验,偶校验,19200Bps19200Bps站地址按默认设置即可,站地址按默认设置即可,即为即为1 1号从站号从站深圳市矩形科技有限公司深圳市矩形科技有限公司 查找变频器参数的Modbus地址 启停、正反转、复位的modbus地址为:2000H 频率设置的Modbus地址为:2001H深圳市矩形科技有限公司深圳市矩形科技有限公司 PLC读写变频器编程 示例:示例:PLC启动变频器正转运行,并输出25Hz的频率,我们来
23、看看梯形图编写:A.在梯形图中,设置本次通讯的串口参数,并设置从站(变频器)的站地址。注意:主站PLC,是不需要站地址的,此处SADDR设置的是从站的站地址。在前面设置变频器通讯参数时,我们已经确定此次串口通讯参数:【站地址为1,波特率19200Bps、起始位1位、数据位8位、停止位1位、偶校验】等。因串口通讯必须使用相同的参数,因此,PLC梯形图的参数设置如上所示。#4:19200Bps #0:偶校验#2:1个停止位深圳市矩形科技有限公司深圳市矩形科技有限公司示例:示例:PLC与变频器modbus通讯编程B.PLC通过Modbus启动变频器从站从站PLCPLC地址:地址:通过前面查找变频器手
24、册可知,变频器启动的modbus地址是2000H,正转运行的值是7;变频器频率给定的modbus地址是20001H。转化为PLC地址要加1,而且,变频器输出给电机属于保持型寄存器,从站变量类型应该为4变量,我们得到,变频器启动的PLC从站地址应为42001H,频率设定的从站PLC地址应该为42002H。PLCPLC启动变频器正转运行并输出启动变频器正转运行并输出25HZ25HZ的流程是:的流程是:a.先把40100的值变为7,再送到从站地址42001H;b.把40101的值变为2500,再送到从站42002H;其梯形图如下:深圳市矩形科技有限公司深圳市矩形科技有限公司示例:示例:PLC与变频器
25、modbus通讯编程连的PLC的串口2把主站40100的值,通过modbus传到从站地址42001H把主站40101的值,通过modbus传到从站地址42002H主站40100的值变为7,40101的值变为2500#1:代表写从站#1:1号从站深圳市矩形科技有限公司深圳市矩形科技有限公司6.modbus通讯调试工具通讯调试工具当碰到PLC无法和变频器、触摸屏、仪表无法通信时,很难判断到底是PLC编程问题还是变频器等设备的问题。此时可以在PC端采用串口调试助手(该软件可在网上下载)等软件协助诊断。调试时,系统连线如下图所示(一般PC都无RS485接口,需外接USB转RS485模块)。串口调试软件可以同时监控到PLC等设备发送的报文和变频器回复的报文,通过分析报文即可得知问题所在。深圳市矩形科技有限公司深圳市矩形科技有限公司6. modbus通讯调试工具通讯调试工具ModScan32:用来模拟主设备。它可以发送指令到从机设备中,从机响应之后,就可以在界面上返回相应寄存器的数据。ModSim32:用来模拟从设备。它可以模拟采用ModBus协议的从机。ModSim32 和ModScan32可以在同一台电脑中运行,用来模拟应用Modbus协议的设备的数据收发过程。ModScan32下载:http:/ 下载:http:/ 各编程功能块含义简介!各编程功能块含义简介!
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。