DF1协议简述
DF1协议
1. 概述
可编程控制器(PLC)因编程方便,抗干扰能力强,被广泛应用于各种领域。DF1协议是AB公司可编程控制器系统广泛支持的数据链路层通信协议,各系列可编程控制器及装有RSLinx通信软件的计算机均支持DF1协议。它的物理层建立在RS232和RS485等电气标准之上,针对不同的设备建立不同的应用层命令。综合物理层、数据链路层和应用层后能够完成基于DF1协议的通信。
2. 网络模型

相较于OSI网络模型,DF1协议应用涉及物理层、数据链路层和应用层。
DF1协议最大的特点是联合了ANSI x3.28规范中的D1(数据透明性)和F1(双向同时传输兼内部响应)。数据透明性是指报文格式简单和数据的可读性,双向同时传输兼内部响应是指在物理层的RXD和TXD上数据是同时传输的。DF支持全双工或半双工通信,对应不同的物理层网络拓补,全双工通信需要基于RS232/RS422等网络部署,半双工通信需要基于RS485网络部署。
3. DF1协议
3.1 DF1协议应用分类
DF1协议主要分两类:DF1半双工协议(主从通信)和DF1全双工协议(点对点通信)。
DF1半双工主从协议提供一种多支路单主多从网络,主机通过定时轮询从机启动通信。半双工协议是一种支持一主多从通信方式的协议,允许2到255个节点通过modems同时连接到单一链路上。如果只有一个从站,从站可以直接与主站相连。DF1全双工协议是点对点的通信协议,主要特定有:1)在点对点链路中允许同时收发数据;2)在多支路链路中的交互模块具有数据仲裁功能;3)高性能的协议实现程序应该尽可能的从传输媒介中获得大的数据流量。当通过AB通信模块连接交互模块时,通信模块自动完成仲裁功能。如果系统对实时性要求不高则采用半双工通信模式,反之采用全双工方式。
全双工和半双工通信的控制字符、数据帧格式、数据处理流程均不同,需区别处理。
3.2 DF1控制字符
DF1协议采用的是异步通信方式,数据是一帧一帧地发送。DF1协议的控制字符是ASCII码控制字符,通常由7位组成,需要在前面添加一位构成8位数据。DF1协议就是通过组合一些控制字符,构成特殊的控制信号和数据信号的。组成控制信号和数据信号的控制字符必须连续发送,中间不要再有其他字符。控制信号是固定不变的组合,而数据信号的内容是可变的。
全双工传送信号与半双工传送信号相比DLE NAK在这里没有reset作用,DLE ENQ也不是轮询报文开始标识,而是要求对方重新发送的标识,其他标识含义相同。半双工传送信号比全上工传送信号多出了DLE SOH(10 01)、DLE EOT(10 04)、STN等标识。DF1全双工主要通过两个主程序:发送主程序和接收主程序来实现发和收同时进行,这就体现了DF1的双向同时传输的特点。关于DF1全双工的实现流程比较简单,基本是一发一收,发送报文后通过收到的反馈情况来判断是否正确执行,若没有则重发,或显示错误等操作。
3.3 DF1报文帧格式
半双工协议使用下面3种报文帧格式:

全双工协议一般只使用半双工协议的第三种报文帧格式:从报文帧,格式如下:

一般情况下,应用消息帧格式如下:

DF1提供两种校验方式:BCC和CRC校验,BCC是一种累加校验算法,简单但功能有限,一般使用CRC校验。CF1的CRC校验虽然采用CRC-16标准,但与常用的CRC-16略有不同,其CRC初始寄存器值为0x0000H,而不是0XFFFFH。
参考:
2. 基于DF1协议的通讯在铝厂烟气净化监控系统中的应用实践
3. https://github.com/leicht/Df1
4. 基于AB DF1串口协议的无线控制方案在南京地铁BAS系统远程监控中的应用
5. DF1 Protocol and Command Set Reference Manual
6. Allen-Bradley on DF1
7. How to Connect to an Allen-Bradley SLC 500 PLC
8. 罗克韦尔官网
9. http://www.iatips.com/pccc_tips.html
DF1协议简述的更多相关文章
- 1.Servlet介绍 和 HTTP协议简述
1. Servlet是什么? sun公司制订的一种用来扩展web服务器功能的组件规范. (1)扩展web服务器功能 注: 早期的web服务器只能处理静态资源的请求,即需要事先将 html文件准备好,并 ...
- TCP握手协议简述
TCP握手协议简述在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器 ...
- DF1协议常用命令
PCCC:Programmable Controller Communication Commands. AB PLC常用指令 根据http://www.iatips.com/pccc_tips.ht ...
- Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用
Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...
- Http,Socket,TCP/IP 协议简述
Http,Socket,TCP/IP 协议简述:https://blog.csdn.net/gordohu/article/details/54097841 TCP/IP协议,HTTP协议与webSo ...
- python网络编程01 /C/S架构|B/S架构、网络通信原理、五层协议、七层协议简述、端口映射技术
python网络编程01 /C/S架构|B/S架构.网络通信原理.五层协议.七层协议简述.端口映射技术 目录 python网络编程01 /C/S架构|B/S架构.网络通信原理.五层协议.七层协议简述. ...
- FPGA实战操作(2) -- PCIe总线(协议简述)
目录 1. PCIe基础知识 2. 事务层协议 2.1 数据包结构 2.2 帧头含义详述 3. 报文举例 3.1 寄存器读报文 3.2 完成报文 4. 机制简述 4.1 Non-Posted和Post ...
- websocket 协议简述
WebSocket 是一种网络通信协议,RFC 6455 定义了它的通信标准,属于服务器推送技术的一种 由于 HTTP 无状态.无连接.单向通信的特性,导致 HTTP 协议无法实现服务器主动向客户端发 ...
- 即时聊天IM之一 XMPP协议简述
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 综述: ...
随机推荐
- sql初——基础
1.JDBC: Java数据库连接(Java Database Connectivity,JDBC),是一种用于执行SQL语句的Java API,它由一组用Java编程语言编写的类和接口组成. JDB ...
- 跨交换机VLAN之间的通信(基于Cisco模拟器)
实验要求: 拓扑结构如下 1.交换机2台:主机4台:网线若干. 2.把主机.交换机进行互联. 3.给2台交换机重命名为A.B. 4.设置2台交换机及主机的ip.注意IP要不冲突 5.在2台交换机上分别 ...
- docker--发布docker镜像
前戏 前面我们自己做了个docker镜像,我们可以上传到docker hub,别人就可以下载使用了 发布到docker hub 我们前面使用docker search 查找的镜像都是从docker h ...
- 禁用Chrome的“请停用以开发者模式运行的扩展程序”提示
1.前言 每次启动都会有一个烦人的“请停用以开发者模式运行的扩展程序”提示,这个提示有多烦人,接触过的人都知道,启动的时候它不立即提示,等过了几秒钟等你打开某个网页开始执行某些操作时它突然弹出来干扰你 ...
- swagger Unable to render this definition
Unable to render this definition The provided definition does not specify a valid version field. Ple ...
- spring boot打包为war包,引入外部jar包
1,在src/main/resource下新建目录jar,将外部jar包放在该目录下 2,在pom.xml中添加依赖 groupId,artifactId,version可随便写 <depend ...
- sync 异步编程
using System; using System.Net; using System.Threading; using System.Threading.Tasks; namespace Cons ...
- setInterval()调用其他函数时候报错
(function(){ function shortcut() { // 配件优化 window.topValue = 0// 上次滚动条到顶部的距离 window.interval = null; ...
- luogu p2705 小球
题目部分 题目描述 有 R 个红色盒子和 B 个蓝色盒子,还有 R 个红色小球和 B 个蓝色小球.每个盒子只能装一个小球,每个小球都要放在一个盒子里. 如果把一个红色小球放在一个红色盒子里,那么得分是 ...
- [转帖]Select count(*)和Count(1)的区别和执行方式
Select count(*)和Count(1)的区别和执行方式 https://www.cnblogs.com/VicLiu/p/11672303.html 在SQL Server中Count(*) ...