线下实训
HOME
线下实训
正文内容
plc modbus编程程序 PLC通讯MODBUS协议的应用及编程
发布时间 : 2024-10-09
作者 : 小编
访问数量 : 23
扫码分享至微信

PLC通讯MODBUS协议的应用及编程

叙述:现为大家讲解一下MODBUS的应用,现在工业控制上位机和下位机通信大部分采用通信协议为MODBUS.可想而知机器与机器通信的重要性。

一:MODBUS系统框架图

二:MODBUS运用

MODBUS 通讯的底层为 RS485 信号采用双绞线进行联接就可以了,因 此传输距离较远,可达 1000 米,抗干扰性能比较好,且成本低,在工业控制设备的通讯中被 广泛使用,现在众多厂家的变频器、控制器都采用了该协议

传送数据格式有 HEX 码数据和 ASCII 码两种,分别称为 MODBUS-RTU 和 MODBUS-ASCII 协 议,前者为数据直接传送,而后者需将数据变换为 ASCII 码后传送,因此 MODBUS-RTU 协议的 通讯效率较高,处理简单,使用得更多

MODBUS 为单主多从通讯方式,采用的是主问从答方式,每次通讯都是由主站首先发起, 从站被动应答。因此,如变频器之类的被控设备,一般内置的是从站协议,而 PLC 之类的控 制设备,则需具有主站协议、从站协议

现在以 MODBUS-RTU 协议为例,说明通讯帧的典型格式: 请求帧格式:从机地址+0x03+寄存器起始地址+寄存器数量+CRC 检验

正常响应帧格式:从机地址+0x03+字节数+寄存器值+CRC 检验

三:PLC 编程时应该注意以下信息:

从机地址:主站发送帧中,该地址表示目标接收从机的地址;从机应答帧中,表示本机 地址;从机地址的设定范围为 1~247,0 为广播通信地址。

操作类型:表示读或写操作;0x1=读线圈操作;0x03=读寄存器操作;0x05=改写线圈 操作;0x06=改写寄存器操作。

对于变频器而言,只支持 0x03 读、0x06 写的操作。 寄存器起始地址:表示对从机中要访问的寄存器地址,对于 MD280、MD320 系列变频器的 访问时,对应的就是"功能码号"、"命令地址"、"运行参数地址"; 数据个数:即从"寄存器起始地址"开始要连续访问的数据个数,对于寄存器变量,以 word 为单位。

寄存器参数(数据):要改写的数据(主机改写),或读取的数据(从机应答);

四: 程序编程编写及讲解

结论:以上是对PLC通信举得例子,只要设置这几个特殊寄存器就可以通信了,特别是要对RS通信指令的应用和对PLC通信中所用到的特殊寄存器等等。谢谢大家的阅读与支持,您的支持就是我创作的动力。

西门子PLC编程中的Modbus通讯,你知道怎么用吗?详细教程

(1)Modbus通讯

S7-200的Modbus通讯:

S7-200只支持Modbus RTU协议,不支持Modbus ASCII协议;

Modbus是一种单主站的主/从通信模式。一条Modbus网络上同时只能有一台主站,从站可以有若干个(如下图所示)。从站的地址范围为1-247;

一个Modbus通讯的传输字符应包括一个起始位,8个数据位,1个或0个校验位(奇偶校验或无校验可选择),以及一个停止位。

在S7-200 CPU通信口上实现的是RS485半双工通信,使用的是S7-200的自由口功能。

上图是一个典型的主站和从站的网络结构,对于Modbus主站而言可以对从站进行读或者写的操作,其中它所支持的功能码(FC,Function Code)包括主站左侧表格中所述功能,例如功能码为'01'时表示读取单个/多个线圈(DO)状态或功能码为'04'时表示读取单个/多个输入寄存器(AI)状态。

而对于从站,我们只需要把Modbus的标准地址和从站的地址对应关系建立好就可以了,S7-200的从站与Modbus标准的对应关系如从站右侧表格所示。

表中左侧是Modbus标准地址码,其中1-128对应于S7-200的Q0.0-Q15.7,10001-10128对应于S7-200的I0.0-I15.7,30001-30032对应于AIW0-AIW62,40001-4xxx对应的是S7-200的保持寄存器(V区),它的范围是T-T+2*(xxxx-1),T表示的是V区的起始地址,这一点由Modbus从站的指令所决定的。

Modbus的主站指令叫做MBUS_MSG,通过这条指令可以将Modbus的标准报文发给从站,例如在上图例子当中从站的第一个字节是03,表示的是从站的地址,FC功能码为03,表示的是读取单个/多个保存寄存器,Modbus标准地址是40001,长度是10。随着功能码的不同,报文的格式会发生相应的变化,具体的报文格式需要去参阅Modbus的通讯手册。

从站的指令时MBUS _SLAVE,在接到主站发给它的报文后会根据报文的需求返回报文,比如在上图例子中返回的格式是第一个字节为从站的地址,第二个为功能码,第三个是数据返回给主站,这样就完成了一次Modbus通讯的请求与应答的过程。

(2)Modbus库文件的安装和调用

如果想要应用Modbus指令库,那么首先需要到因特网上或者向西门子的客服人员申请名称为'Toolbox_V32-STEP 7-Micro WIN' 的指令库,将它解压并且安装到Micro WIN当中就可以使用了,安装后会在Micro WIN的库文件当中出现上图标记的三个库,其中Port0和Port1都可以做Modbus Master,而Slave只有Port0口可以做。

(3)Modbus库文件的使用

使用方法很简单,打开Modbus主站指令库会有相应的指令块出现,直接把指令块拖拽到程序当中进行调用就可以了。

在调用Modbus库指令的时候,需要注意一定记得为Modbus库文件分配库存储区。具体的方法是右键单击库,然后选择库存储区,在弹出来的对话框当中可以选择建议地址,自动分配一个程序里面不会用到的地址区间,也可以人为地手动填写起始地址,这个区间在程序当中不可以和其他的数据区相冲突,否则Modbus功能将不正常。

所谓的库存储区其实就是Modbus指令库能够正常工作所必须的一部分背景数据,只要给它分配好区间并保证不与程序当中其他的地址相冲突就可以了。

(4)Modbus从站指令

从站指令一共有两条,第一条是从站的初始化指令(MBUS_INIT),另一条是MBUS_SLAVE从站指令,在Modbus从站的初始化指令当中涉及哪些内容呢?

首先,第一个引脚Mode表示等于1的时候是启动Modbus,等于0的时候是关闭Modbus,Addr表示的是这个从站的从站地址,Baud表示波特率,Parity是奇偶校验,0是无校验,1是奇校验,2是偶校验,Delay是附加字符之间的延迟,MaxIQ表示的是最大I/Q地址(默认128),MaxAI表示的是最大AI长度(默认32),MaxHold表示的是最大的V存储区(VW),最关键的是HoldStart,表示的是V区起始地址(对应40001),在之前已经提到过S7-200作为从站的时候,它的V区地址对应于Modbus标准地址的起始地址是可更改的,那么就在这里进行设定,在本例中如果HoldStart写的是VB0,那么40001对应的地址就是VW0,40002对应的地址是VW2,40003对应的地址是VW4,以此类推,每一个标准的Modbus地址码对应的是一个Word,以字为单位,同样如果这里设的是VB100,那么40001对应的就是VW100,40002对应的是VW102,以此类推。

这一条初始化指令只需要调用一次就可以了,所以在上图中用的是SM0.1在上电的时候执行一次就可以了。

MBUS_SLAVE这个功能块必须要用前面的条件必须是一直为1的,上图中用SM0.0。

相关问答

labview怎么通过modbus和plc通讯?

在LabVIEW中通过Modbus与PLC进行通信,可以使用NI的Modbus库或第三方库来实现。下面是一般的步骤:1.准备硬件:首先,连接您的PLC设备和计算机。通常使用串口...

如何用PC机通过modbus协议与PLC通信,并记录通信数据?

高级语言用串行通迅,MODBUS是最简单的总线对话协议,网上可搜到详细格式。PLC也要支持MODBUS的,可能在PLC还要编应答程序高级语言用串行通迅,MODBUS是最简单...

怎样用西门子300plcCPU自带接口实现MODBUS通讯?

s7-300自带的mpi口,不支持modbus通讯协议。如果要进行modbus通讯,需要添加cp341串行通讯模块s7-300自带的mpi口,不支持modbus通讯协议。如果要进行modbus通讯....

松下plcmodbusrtu通信程序详解?

松下PLCModbusRTU通信程序是一种用于实现PLC与其他设备之间数据交换的通信协议。它基于Modbus协议,使用串行通信方式进行数据传输。程序的详解包括设置PLC的...

PLC怎么和485modbus通讯?

第一plc自身带485通讯模块或者是plc可以添加485模块,这需要你知道你自己的plc品牌型号,查看手册是否支持扩展485通讯。例如三菱的fx系列plcfx1s系列是不支持...

带modbusrtu的温控器怎样和plc通讯?

走485通信,接两根线就可以了。温控器与PLC通信站号,通信格式,通信模式。设置一至。然后在PLC中编程MODBUS程度。编写程序的内容主要是写:站号,功能码,通信...

modbus和plc通讯不了?

关于这个问题,可能的原因有以下几点:1.通讯方式不一致:Modbus协议和PLC通讯协议不同,需要使用相应的通讯方式来进行通讯。如果使用的通讯方式不正确,则无...

s7200modbus指令怎么安装?

要使用西门子的标准指令库,必须先安装西门子的指令库软件包InstructionLibrary。安装了InstructionLibrary之后,只要安装的STEP7-Micro/WIN版...

两个plc做modbus通讯才用从站指令吗?

两个PLC进行Modbus通讯,不一定只用从站指令。具体实现方式取决于PLC的配置和功能需求。一般来说,两个PLC可以设置为主站和从站,也可以设置为两个主站进行通信...

欧姆龙plc+modbus通讯用甚么指令?

一般有两种指令,一种是接收。一般需要把你要发的数据转换成PLC里定义的数据格式。然后按照你设定的条件,PLC会在满足时发出。需要你定义发送的端口。接收也需...

 胎芽胎心  birzzle 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部