程序员开发实例大全宝库

网站首页 > 编程文章 正文

modbus通讯:相关指令讲解~系列17(modbus指令有哪些)

zazugpt 2024-08-27 00:35:03 编程文章 18 ℃ 0 评论

1、概述

自由口需要讲的内容已经给大家全部讲完了,RS485通讯中的基础知识也全部给大家梳理了一遍,那么从本篇文章开始我就具体和大家把RS485通讯中的modbus RTU协议和大家具体讲解一下。

首先大家要明确一点,目前为止modbus RTU协议是在工业控制中RS485硬件层面最常用的协议之一,我这里的目标主要有两点,第一帮助大家掌握S7-200modbus库的使用,第二帮助大家搞清楚modbus RTU协议的报文格式。

2、modbus RTU协议特点

我们首先熟悉一下modbusRTU 协议的特点。

1) modbus RTU是一种主从、半双工通讯方式协议,整个网络中只能有一个主站存在,主站在modbusRTU网络中没有地址,从站的实际地址范围是1~247

2) modbus RTU协议的报文长度是不固定的,报文与报文之间最小间隔是3.5个字符传输时间长度。

3) modbus RTU协议的校验方式是crc校验。

3 、modbus库介绍

3.1 主站指令

MBUS_CTRL指令:

EN:使能,要保证每一周期都使能(sm0.0)。

Mode:模式选择,1 = modbus协议,0 = PPI协议

Baud:波特率设定。

Parity:字符校验,0 = 无校验;1 = 奇校验;2 = 偶校验

Timeout:超时。主站等待从站响应的时间,以毫秒为单位,允许设置范围为1~32767.

Done:初始化完成标志位,初始化完成此位自动置1。

Error:如果初始化错误,存放错误代码。

MBUS_MSG指令:

EN:使能,同一时刻只能有一个读写功能。

First:读写请求,要使用沿触发。

Slave:从站地址,范围1 ~247

RW:读写操作,0 = 读,1 = 写。

Addr:读写从站的数据地址。

Count:数据个数(位或者字的个数)。注意最大数据量为120个字。

DataPtr:数据缓冲区首地址(指针类型)。如果是读指令,读回的数据放到这个数据区中;如果是写指令,要写出的数据放到这个数据区中。

Done:读写功能完成位。功能完成此为置1。

Error:读写功能错误代码。Done位为1时有效。

3.2 从站指令

MBUS_INIT指令:

EN:初始化,首次扫描执行一次(SM0.1)

Mode:模式,0 = PPI,1 = Modbus

Addr:从站地址,取值1 ~247。

Baud:波特率。

Parity:奇偶校验。

Delay:附加字符间延时。

MaxAIQ:参与通信的最大I/O点数,S7-200的I/O映像区为128/128缺省值为128。

MaxAI:参与通信的最大AI通道数。

MaxHold:参与通信的V存储区字节(VW)。

HoldStart:保持寄存器区起始地址(指针形式)。

Done:初始化完成标志位。

Error:如果初始化错误存放错误代码。

MBUS_SLAVE指令:

EN:使能。每次扫描执行(sm0.0)

Done:通讯中时置1,不处于通讯过程中时为0。

Error:存放错误代码, 0 = 无错误。

作者:马乐,版权为技成所有,未经同意盗取必究!

往期优秀文章回顾:

「RS485」如何把crc校验加入到程序里?系列16

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表