ProfiBus、ProfiNet现场总线通信协议讲解与C语言实现

一、基本认知
1、参考的网络资料
百度百科: https://baike.baidu.com/item/PROFIBUS/300216
个人博客: https://blog.csdn.net/byxdaz/article/details/78163470
个人博客: http://blog.chinaunix.net/uid-20801941-id-1839000.html
2、历史发展与现状
这里主要讲解的是PROFIBUS_DP,它的前身是1987年联邦德国合作开发的PROFIBUS_FMS;PROFIBUS_DP主要运用在PROFIBUS主站与远程从站之间的确定性通信( 就是网络中的每个设备都有固定的ID编号)。目前,PROFIBUS可以分为两种,分别是PROFIBUS_DP和PROFIBUS_PA;其中,DP的应用最为广泛。
3、PROFIBUS DP和PA的区别:
PROFIBUS DP:分布式周边,应用在工厂自动化应用中;可以由中央控制器控制许多传感器和执行器,也可以使用标准或选用的诊断机制得知各个模块的状态。
PROFIBUS PA:过程自动化,应用在过程自动化系统中, 可适用于防爆区域(工业防爆危险区分类中的Ex-zone0及Ex-zone1 其物理使用的线缆匹配IEC61158-2, 允许由通信线缆给现场设备供电,因此,一个PROFIBUS PA所可以连接的设备数量也受到限制。
共同特点:在通信协议方面,DP与PA遵循相同的通讯规范,PA只要有专业的转换设备就可以与DP联网;
4、PROFIBUS的网络协议架构:
OSI模型
PROFIBUS
 
 
 
 
7
应用层
DPV0
DPV1
DPV2
网络管理
6
表示层
--
5
会话层
4
传播层
3
网络层
2
数据链路层
FDL
1
物理层
EIA-485
光纤
MBP*
物理层:支持RS485传输和光纤线路传输。
应用层: (这些模式全部由下面介绍的基本数据帧组合来实现)
  • DP-V0:循环式的数据交换,诊断机能。
  • DP-V1:循环式及非循环式的数据交换,警告处理。
  • DP-V2:时钟同步数据模式,从机和从机之间的数据广播。
/
二、PROFIBUS DP通讯协议与数据报
在物理层 可以采用异步串口通信实现。也就是说,数据传输的格式是以UART数据格式来传输的, 基本格式包括:启始位(1bit)、数据位(8bit)、偶校验(1bit)和停止位(1bit),通信 支持的波特率为:9.6、19.2、45.45、93.75、187.5、500、1500、3000、6000、12000。
在应用层,Profibus dp协议主要支持 五种类型的数据报文,每种报文的数据帧格式都有所区别。 (这个是开发工程师最需要关心的
 
SD1:无数据域,用于查询总线上的激活的站点
ProfiBus、ProfiNet现场总线通信协议讲解与C语言实现_第1张图片该报文数据格式用于主站与从站间的站点查询;在线的从站收到查询本从站的请求帧,就要回应相应的应答帧;在实际的通讯过程中,主站会定时的发送查询帧,以确定总线上的从站是否可用。
SD2:可变数据域,参数最多,是Profibus中使用最频繁的数据帧。
用于大量数据的交换,在总线各个站点之间。
SD3:固定8字节的数据域,PDU数据部只传输一个字节
ProfiBus、ProfiNet现场总线通信协议讲解与C语言实现_第2张图片
SD4:令牌帧,用于 主站间的令牌传递。
ProfiBus、ProfiNet现场总线通信协议讲解与C语言实现_第3张图片
SD5:这个是从站接收主站消息后,最短的应答帧
ProfiBus、ProfiNet现场总线通信协议讲解与C语言实现_第4张图片
在这五种基础数据帧中,每一个数据域的含义如下
ProfiBus、ProfiNet现场总线通信协议讲解与C语言实现_第5张图片
FC所有功能码的定义 (重要)
FC功能把占用了数据帧的 一个字节,细化到该字节的 每个位的含义如下图所示:
ProfiBus、ProfiNet现场总线通信协议讲解与C语言实现_第6张图片
B6
B5(FCB)
B4(FCV)
含义
0(响应帧)
0
0
从站对主站的响应
0(响应帧)
0
1
主站告诉从站(或另一个主站),主站未准备好
0(响应帧)
1
0
主站告诉从站(或另一个主站),主站已经准备好,无令牌
0(响应帧)
1
1
主站告诉从站(或另一个主站),主站已经准备好,在令牌环上
1(请求帧)
0
 
FCB标记位不可以使用
1(请求帧)
1
 
FCB标记位可以使用
1(请求帧)
X
 
根据FCV来决定FCB是否可用
FC功能码低四位的含义
ProfiBus、ProfiNet现场总线通信协议讲解与C语言实现_第7张图片
注意: 这里说明一下数据帧中的DA和SA,其实就是通信双方的地址,各占用一个字节,但其中的最高位用来分别决定通信双方是否使用了扩展的地址(一个字节代表的设备数量有限)
DU中纯用户数据部分(PDU)内容的规定:未作实际测试验证,暂无法确认是否有固定的规范。
ProfiNet DP网络总线协议是基于TCP/IP网络协议的应用层协议,属于TCP/IO四层协议中的应用层,物理层上可以支持标准的网口或wifi无线信号传输
/
三、基于Linux系统编程的C语言实现
测试设备正在采购的路上,敬请期待测试结果和笔记的进一步完善。。。。。
/
 
 
 
 
 
 
 

你可能感兴趣的:(运动控制算法,C语言,网络通信)