第一章:Profibus DP通信简介

在项目中接触到Profibus总线的开发,由于这套协议相对比较封闭,编程资料比较少,规范文件非常枯燥乏味,晦涩难懂。所以出一个专栏总结一下。

第一章:Profibus DP通信简介
第二章:Profibus Dp诊断、参数、组态数据的定义
第三章:Profbus GSD文件详解
第四章:Profibus 单片机 软件模拟DP从机 ------ 以STM32为例
第五章:Profibus STM32 + SPC3方案硬件设计
第六章:Profibus STM32 + SPC3方案软件设计
第七章:Profibus 真实项目协议对接
第八章:Profibus 协议纯软方案测试记录

Profibus介绍

PROFIBUS (Process Fieldbus)的缩写,是一种国际化的、开放的、不依赖于设备生产商的现场总线标准。它广泛应用于制造业自动化、流程工业自动化和楼宇、交通、电力等其他工业自动化领域。
串行现场总线主要用来连接数字现场设备或中、低功能的系统,如传感器、执行机构、变送器、可编程序控制器(PLC)、数控装置(NC)、编程设备、本地人机接口等。

协议结构

层次结构基于 ISO/OSI 开放系统互连模型(ISO 7498),如图 1。 第一层(物理层,PHY)、第二层(数据链路层,FDL)和第七层(应用层)。第三到第六层未使用,以使系统开销最小和提高效率。
在这里插入图片描述
物理层(是一种介质,包括长度和拓扑结构、总线接口、站点数和在 9.6 kbit/s 到 1.5 Mbit/s之间可变的数据传输速率)可适应不同的应用。在用户接口上,具有共同的存取方式、传输协议和共同的服务。

协议内容

PROFIBUS 规范定义串行现场总线的技术和功能特性。串行现场总线的宗旨是解决数字现场设备或中、低功能系统的互连问题。这些设备或系统,诸如传感器、执行机构、变送器、可编程控制器(PLC)、数控装置(NC)、编程设备和本地人机接口等。
现场控制系统通常以一个中央控制和管理装置为基础,它与若干个分散在现场的设备和小系统相连接。在这种情况下,主要数据是集中地定向并循环的从现场设备传输到中央数据处理单元或上一级控制系统。
系统包括主站和从站。当主站获得存取权(称为令牌)时,它能控制这个总线,即它无须远程请求就可以传输报文,而从站仅能应答所接收的报文或在一个远程请求后传输数据。 令牌按照由主站形成的逻辑令牌环而循环。如果系统仅包括一个主站,如一个中央控制和管理站,则不需要令牌传递。这是一个纯单主/多从系统。最小配置包括一个主站和一个从站或两个主站。
物理层定义传输介质以适应不同的应用。它包括长度、拓扑、总线接口、站点数和从
9.6 kbits/s 到 1500 kbits/s 可变的数据传输速率等。在用户接口中,有共同的存取方式、传输协议和共同的服务。

协议帧

介质存取控制协议(MAC),数据传输服务和管理服务符合标准 DIN 1924 1-2, GB/T9469 (PROWAY C),ISO 8802-2 和 ISO/IEC JTC I/SC 6N 4960 (LLC 类型 1 和 LLC 类型 3)的定义。
八位位组(字符)格式是 UART 格式 FT 1.2(带起-停同步的异步传输),如同对远程控制设备和系统(IEC 870-5-1)定义的那样。传输协议定义基于标准 IEC 870-5-2。
定义如下几种数据传输服务:
发送数据需应答(SDA)
此服务允许用户给单个远程站发送数据。如果有错,将重复数据传输。
发送数据无需应答(SDN)
此服务允许用户同时给单个远程站、多个远程站(群播)或同时给全部远程站(广播)发送数据,不需要任何确认。
发送和请求数据需回答(SRD)
此服务允许用户给单个远程站发送数据,同时请求此远程站回答数据。如果有错误,将重复数据传输。
循环地发送和请求数据需回答(CSRD)
此服务允许用户循环地给远程站发送数据,同时请求此远程站回答数据。

令牌帧

在这里插入图片描述

无数据字段的固定长度的帧

在这里插入图片描述

有数据字段的固定长度的帧

在这里插入图片描述

有可变数据字段长度的帧

对可变的数据八位位组数,此长度也应在帧中传输。长度信息两次包含在帧开始的固
定的帧首部中。
在这里插入图片描述在这里插入图片描述

功能码 Function Code (FC)说明

在帧头部的控制八位位组指出帧的类型,如主动帧(请求帧,发送/请求帧),应答帧或回答帧。此外,控制八位位组包含功能和防止报文丢失和增多的控制信息或带有 FDL 状态的站类型。
在这里插入图片描述

地址扩展(EXT):

在有 DATA_UNIT 的帧中,EXT 位(扩展)指示目的和/或源地址扩展(DAE,SAE),它在 DATA_UNIT 中紧跟在 FC 字节之后。它区分存取地址(链服务存取点,LSAP)和区域/段地址。两种地址类型也可能同时发生,因此每个地址扩展还包含一个 EXT 位)。
在这里插入图片描述
对 LSAP 的传输可提供地址扩展 DAE 和 SAE。源服务存取点(SSAP)表示本地用户到此 FDL的存取地址,它在 SAE 字节中被传输。目的服务存取点(DSAP)表示远程用户到此 FDL 的一个或多个存取地址,它在 DAE 字节中被传输。SSAP 值从 0 到 62,而 DSAP 值可从 0 到 63 间选取,DSAP 值 63(DAE b1 到 b6=1)表示全局存取地址。
在这里插入图片描述

常见的报文格式

诊断报文
主机诊断请求报文
在这里插入图片描述
DP从机诊断应答
在这里插入图片描述
参数化报文
主机参数化请求报文
在这里插入图片描述
DP从机参数化应答

组态报文
主机组态请求报文
在这里插入图片描述DP从机组态应答

数据交换
数据交换在GSD文件中描述的输入输出数据一般都是指主站,所以主站输入数据即是从站的输出数据。

主站输出数据
在这里插入图片描述
主站输入数据(从站输出数据)
在这里插入图片描述

通信示例

主站发送> ,主站接收<。

> DC 00 00

主站间的令牌帧,主站的地址为0,00 00 表示地址为0的主站持有令牌。

> 10 01 00 49 4a 16

主站查询总线上激活的站点,从01地址开始轮询。

> 10 02 00 49 4b 16

主站查询总线上激活的站点,当前轮询地址为02。

> 10 03 00 49 4c 16
< 10 00 03 00 03 16

主站查询总线上激活的站点,当前轮询地址为03。主站收到从站响应,从咱地址为03。

> 68 05 05 68 83 80 6d 3c 3e ea 16
< 68 0b 0b 68 80 83 08 3e 3c 02 05 00 ff 00 08 93 16

主站发送诊断请求报文(3c 3e),查询从站3的诊断信息,此时的地址为扩展地址0x8X。从站响应诊断(3e 3c)信息: 02 05 00 ff 00 08。
02:表示从站还未准备好,需要重新参数化;
FF:表示从站从未参数化设置;
00 08:从站的ID号,GSD文件中Ident_Number=0x0008,非从站地址。

> 68 0c 0c 68 83 80 5d 3d 3e b8 fa 0a 0b 00 08 00  aa 16
< e5

主站发送参数化报文(3d 3e),参数:b8 fa 0a 0b 00 08 00
b8:表示主站锁定从站3,打开从站的SYNC、FREEZE模式和看门狗。其中看门狗系数为0a、0b,最小从站响应时间为0b,从站ID=0008,所属于组00。
从站应答短应答e5。

> 68 07 07 68 83 80 7d 3e 3e 1f 2f 4a 16
< e5

主站下发组态报文(3e 3e)。组态信息1f 2f。
1f 表示输入数据16字节。
2f表示输出数据16字节。(具体含义见第二章节GSD文件详解)
从站应答短应答e5。

> 68 05 05 68 83 80 5d 3c 3e ea 16
< 68 0b 0b 68 80 83 08 3e 3c 00 0c 00 00 00 08 99 16

主站发送诊断请求报文(3c 3e),查询从站3的诊断信息,此时的地址为扩展地址0x8X。从站响应诊断(3e 3c)信息: 00 0c 00 00 00 08 。
表示从站已经准备好,且主站地址为00。
00 08:从站的ID号,GSD文件中Ident_Number=0x0008,非从站地址。

> 68 13 13 68 03 00 7d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 16
< 68 13 13 68 00 03 08 00 00 00 00 00 00 00 00 00 00 00 00 00 28 00 0a 3d 16

主站输出16字节数据请求和从站交换数据。

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

从站返回16字节数据。

00 00 00 00 00 00 00 00 00 00 00 00 00 28 00 0a

简单的讲,Profibus总线DP主站和DP从站通信,主站首先检查从站的诊断信息,检查从站是否被参数化,参数是否正确,若没有,先进行参数化和组态配置。若参数化和组态成功后,进入数据交换。

具体每个字节的含义,更多通信架构可参考总线规范文档《PROFIBUS 规范》。

本专栏涉及的文档和demo的目的是学习Profibus总线编程思想(个人理解,有不足之处,请多多包涵),实际项目在完成学习后,可以定制性的增加一些协议相关的内容和更新。

本专栏涉及的文档和demo完整工程上架xianyu。后续可搜索本人用户昵称同号的xianyu账号,查找文章名称同名的链接。请多多包涵。

彩蛋
本着授人以鱼不如授人以渔的原则,本专栏没有给出完整的代码,但是总体描述了总体思路和需要注意的点。实在需要的朋友可以通过xianyu搜索本人用户昵称同号的xianyu账号,查找文章名称同名的链接。搜索用户名Geek__1992,或者搜索Profibus DP专栏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Geek__1992

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值