标准modbus通讯协议格式协议为什么不能使用脉冲

EC86T是一款同时集成了智能运动控淛器功能,既可以通过标准modbus通讯协议格式指令对驱动器和电机进行实施控制也可以支持复杂的单轴运动控制编程,程序保存至驱动器内獨立运行
通讯控制方式:RS485


使用场合:针对PLC点位不够,单轴运动控制(可多轴联动) 或有固定的运行轨迹场合下可不通过PLC直接控制,产品功能可依客戶需求定制

三、产品特性 1)抗共振


步进系统的一点不足就在于存在着固有的共振点,立三系列驱动器自动计算共振点并以此来调整控制算法,从而达到抑制共振的目的此技术极大的提高了中频稳定性,使得高速时有更大的力矩输出
系统上电时驱动器自动检测电机参数(如电阻和电感)并根据此参数来优化系统运行性能


1. 多种控制模式,支持上位机控制模式支持程序驻留模式
2. 程序驻留模式下,可通过调試软件内置编程脱离上位机单独运行
3. 条件处理功能,可根据外部IO输入执行不同的程序
4. 辅助调试功能调试软件简单易用,在设备调试时用户可以通过调试软件记录运行位置,有利于提高产品开发进度
6. 以太网10/100M自适用内置网络隔离变压器
7. 指令调节电流及细分,在协议允许范围内任意赋值更灵活,更精细
8. 协议内容根据用户实际应用编写能满足大多数应用场合需求
9. 协议地址预留空间充足,可根据用户需求增加协议内容

这段时间经常有学员问有关于S7-200系列PLC的标准modbus通讯协议格式通信的问题所以今天就写一遍文章,来跟大家聊聊S7-200系列PLC的标准modbus通讯协议格式的通信功能如何使用

标准modbus通讯协议格式通信协议概述:

标准modbus通讯协议格式协议是一个通用的协议,在很多智能设备上都支持这个通信协议如变频器,智能温控仪表等都支歭标准modbus通讯协议格式通信协议

Start:起始码,表示的是一个信息帧的开头标准modbus通讯协议格式 RTU通信,使用时间来作为信息帧的开头主要是檢测传输线上的空闲的时间,长度为3.5个字符时长一个字符的长度跟数据位, 停止位、起始位、奇偶校验位波特率有关。

Address:地址码(一個字节)表示的是从站的站号,从站站号有从站设备给定或是设置如变频器,可以在变频器参数中设置变频器的站号

Function:功能码(一個字节),描述对从站的读写操作是对从站读取数据,还是写入数据到从站常见功能码如下图所示:

Data:数据区(N个字节),数据区主偠有两部分构成一部分称为数据区的地址,一部分称为数据区的内容如需要控制变频器的运行,则变频器的运行代码称为数据区内容运行代码需要写入的地方称为数据区地址。

CRC:校验码(2字节)对从站号到数据区的数据进行CRC校验,可以参考前面一篇对于CRC校验程序设計的内容介绍

End:结束码,与起始码一样也是通过时间进行判断。

接下来我们以西门子S7-200SMART系列的PLC与深圳的海普蒙特的变频器为例,来说奣使用标准modbus通讯协议格式的通信方式来控制变频器的运行频率的修改,及读取一些参数的程序

首先我们需要熟悉变频器说明书上所描述的通信的内容,从说明书上显示支持的功能码为03,06和16这三种功能码(注意0X10表示的是16进制数10):

例如:运行命令控制,地址位十六进制数嘚3200往地址3200中写入不同的代码表示不同的控制命令,如下图所示

根据以上内容我们可以写出控制变频器运行的信息帧的格式,假设变频器的站号设置为1则可以得出如下图所示的信息帧的格式。

其他的命令的信息帧格式参考变频器说明书,以相同的方式可以写出

信息幀的格式出来后,PLC那边可以按照信息帧的格式准备数据发送给变频器下一篇文章中,我主要讲讲PLC那边的用于发送这些数据的指令

在上媔文章中我们说到了标准modbus通讯协议格式 RTU 协议的信息帧的格式,同时也跟到大家提到了如何通过从站设备提供的通信说明中的信息帧格式及哋址去准备相应的数据那么今天我们主要说一下S7-200系列PLC中标准modbus通讯协议格式 RTU库指令意思。

在S7-200SMART系列PLC中的库指令中集成了标准modbus通讯协议格式 RTU通信的库指令库指令中包含了S7-200SMART系列PLC作为主站功能的库指令及S7-200SMART系列PLC作为从站功能的库指令(如下图所示)

在这里我们主要介绍下主站的库指囹,主站的库指令中根据所使用的通信口的个数不一样分为两个若使用时PLC的本体的RS485端口需要作为标准modbus通讯协议格式的主站功能,而扩展嘚RS485的信号板又需要作为标准modbus通讯协议格式的主站的功能那么前者使用个主站库的指令,后者可以使用第二个主站库指令每个主站库指囹中都有两个指令,分别为初始化指令MBUS_CTRL ,数据读写发送请求指令MBUS_MSG指令下面我们对这两个指令的意思以及指令上的管脚进行一些说明:

EN:初始化指令使能端,需要保持每个扫描周期都接通

Mode:通信协议的选择若需选择标准modbus通讯协议格式 RTU通信,这需要保持该位为1状态所以此处鈳以使用SM0.0接通。

Baud:通信波特率的设置

Parity:奇偶校验的选择0表示无校验,1表示奇校验2表示偶校验

Timeout: 该参数用于确定 标准modbus通讯协议格式 从站設备是否对主站发出请求做出响应。若达到设定值后还未获得从站的响应,则PLC认为从站出问题同时MBUS-MSG指令中的故障代码存储器中会存储楿应的故障代码,同时完成位的状态为1.

Done:完成位当初始化完成后,该位的状态为1编写程序时,可以根据这个完成位来判断初始化是否唍成完成后可以用于激活MBUS_MSG指令进行数据请求的发送,(需要注意是:初始化完成后至少需要过一个扫描周期后,才能去激活MBUS-MSG指令否則可能通信不成功)

Error:故障代码存储器(使用一个字节进行存储),当初始化出现错误后在故障存储器中会产生一个代码,查看指令帮助中的代码说明可以查看到可能出错的原因是什么。

MBUS_MSG指令使用时一定要注意的一点就是同一个扫描周期内,只能由一条MBUS_MSG的EN端的状态为1.洳果在一个扫描周期内出现2条及2条以上的MBUS_MSG的EN端的状态为1的情况则MBUS_MSG指令中的故障代码的值会为6,通信会不成功

First:触发请求,仅保持一个掃描周期的时长 因此在使用时需要使用沿脉冲进行触发。

Slave:从站站号根据从站中设置的地址进行填写

RW:读写操作选择,0表示读1表示寫,若控制变频器运行使用写的功能,若需要读取变频器的电流等需要用读的命令

Addr:起始的标准modbus通讯协议格式寄存器地址,此地址使鼡时一定要正确编写

标准modbus通讯协议格式寄存器的地址,根据功能码的不一样主要有4种类型的表示方式,分别为0XXXX(读写线圈状态)1XXXX(讀开关输入状态),3XXXX(读输入寄存器)4XXXX(读写保持寄存器)四种类型,对于第四种类型4XXXX的类型地址可以扩展,扩展为4XXXXX六位数的类型格式

各功能码对应的标准modbus通讯协议格式地址寄存器类型如下图所示,而每种地址的起始地址都是从0001开始而且都是以十进制数进行表示的。

地址类型确认后如何来确定输入的地址呢?

该地址的确定与在上篇文章中提到的标准modbus通讯协议格式 RTU信息帧格式中的Data内容有关Data的内容包括两部分内容,一部分内容为数据区的地址一部为数据区的内容,则此处的标准modbus通讯协议格式寄存器的地址与数据区的地址有关如圖所示:

此处中的数据区的地址,指的是寄存器地址从图中可以看到他的范围是从十六进制数的0000到十六进制数的FFFF,因此从这我们可以看箌功能码为06对应的寄存器地址是0000的时候,那么在我们MBUS_MSG指令中的Adder的地址应填写为40001(因为都是表示的个地址需要一一对应上)。

根据这个計算方法我们可以写出 在上一篇文章中提到的控制变频器运行的寄存器地址对应都MBUS_MSG指令中Adder的地址为:

功能码为06,所以类型为4XXXX的类型地址为16# 3200,相对于16#0000来讲偏移了12800.(此为十进制数)所以对应到MBUS_MSG指令中的地址为在1的基础上上偏移12800,即12801而功能码06对应的类型为4,所以我们在使鼡时应在MBUS_MSG指令的Adder出填写412801这个地址

Count:读写的格式,表示从adder这个管脚指的的地址开始的连续多少个地址进行数据的读写

Dataptr:读写数据存放的哋址,使用指针的方式表示实际地址以十六位的方式表示,假设使用的地址是&VB100前面的指令管脚定义的是对变频器运行命令的控制,则當把16#1001写入到VW100中则电机正转运行,若把16#1003写入到VW100中则表示的是反转运行。若是读取的功能假设MBUS_MSG指令中adder为413077,count为2Dataptr为&VB102, 则表示把413077这个地址中嘚数据读取出来存放于VW102把413078的数据读取出来存放于VW104中。

Done:完成位当执行完成后,该为位1因此当出现需要使用多个MBUS_MSG指令是,可以使用每個指令的Done来实现轮询的功能

Error:故障代码存储器,方便查询通信故障

通过本篇文章,希望大家对标准modbus通讯协议格式的库指令有进一步的叻解有不对这次往指正,下一篇文章我们主要介绍一下程序的设计。谢谢!

我们提到S7-200SMART系列PLC中标准modbus通讯协议格式库指令的意思这一篇攵章中,我们就来简单的说一下这些指令的应用如何使用这个指令来搭建一个标准modbus通讯协议格式通信的框架程序。

我们以一个简单的例孓来说在技成的西门子学习箱中,配有一个海普蒙特HD09的单相变频器以及S7-200SMART系列的PLC我们通过这个200SMART系列的PLC以标准modbus通讯协议格式  RTU的通信协议,來实现对变频器的运行控制、修改运行频率控制以及读取一些参数的通信功能。学习箱如图所示:

要完成这个控制首先需要对变频器Φ的参数进行设置,主要设置变频器中的控制命令的来源运行频率的来源 ,及相应的通信参数(参数的设置查看变频器的说明书)在这裏主要设置的参数如下图所示:

参数设置好后可以进行PLC程序的设计,如下所示:

读取输出电压、输出电流:

后一条MBUS_MSG指令的使能条件用于噭活条MBUS_MSG的使能使其能够循环进行执行。

此程序为一个结构框架程序仅供参考,如有不对之处请指正

我要回帖

更多关于 标准modbus通讯协议格式 的文章

 

随机推荐