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。

参考:

1. 基于linux平台串行通信协议df1的c语言程序设计

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. 1.Servlet介绍 和 HTTP协议简述

    1. Servlet是什么? sun公司制订的一种用来扩展web服务器功能的组件规范. (1)扩展web服务器功能 注: 早期的web服务器只能处理静态资源的请求,即需要事先将 html文件准备好,并 ...

  2. TCP握手协议简述

    TCP握手协议简述在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器 ...

  3. DF1协议常用命令

    PCCC:Programmable Controller Communication Commands. AB PLC常用指令 根据http://www.iatips.com/pccc_tips.ht ...

  4. Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用

    Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...

  5. Http,Socket,TCP/IP 协议简述

    Http,Socket,TCP/IP 协议简述:https://blog.csdn.net/gordohu/article/details/54097841 TCP/IP协议,HTTP协议与webSo ...

  6. python网络编程01 /C/S架构|B/S架构、网络通信原理、五层协议、七层协议简述、端口映射技术

    python网络编程01 /C/S架构|B/S架构.网络通信原理.五层协议.七层协议简述.端口映射技术 目录 python网络编程01 /C/S架构|B/S架构.网络通信原理.五层协议.七层协议简述. ...

  7. FPGA实战操作(2) -- PCIe总线(协议简述)

    目录 1. PCIe基础知识 2. 事务层协议 2.1 数据包结构 2.2 帧头含义详述 3. 报文举例 3.1 寄存器读报文 3.2 完成报文 4. 机制简述 4.1 Non-Posted和Post ...

  8. websocket 协议简述

    WebSocket 是一种网络通信协议,RFC 6455 定义了它的通信标准,属于服务器推送技术的一种 由于 HTTP 无状态.无连接.单向通信的特性,导致 HTTP 协议无法实现服务器主动向客户端发 ...

  9. 即时聊天IM之一 XMPP协议简述

    合肥程序员群:49313181.    合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q  Q:408365330     E-Mail:egojit@qq.com  综述: ...

随机推荐

  1. openjdk11 stretch基础镜像无法找到对应openjdk dbg 包的问题

    今天在构建一个jdk perf 工具基于openjdk 11 发现8 的dbg 一直可以查找到,但是11的就是没有 参考issue https://github.com/docker-library/ ...

  2. 重装系统的jdk问题???

    重装系统了!!!! 之前因为不懂电脑,然后自己动手装了台台式机,简直太开心了,又自己装了个系统,一切都非常欢乐,来到了给电脑起名字的时候,我不知道有多少人会卡在起名字这里,但是我那个时候非常开心,就想 ...

  3. ASP.NET CoreMVC 中的视图

    ASP.NET Core MVC 中的视图 MVC 中的视图 用于显示Controller提供给它的 Model 的业务数据. 视图是带有嵌入 Razor 标记的 HTML 模板. 如果编程语言是 C ...

  4. 【2019.7.16 NOIP模拟赛 T2】折叠(fold)(动态规划)

    暴力\(DP\) 考虑暴力\(DP\),我们设\(f_{i,j}\)表示当前覆盖长度为\(i\),上一次折叠长度为\(j\)的方案数. 转移时需要再枚举这次的折叠长度\(k\)(\(k\ge j\)) ...

  5. [灯火阑珊] 关于cmd命令里的findstr匹配多个关键词

    no raining now go to school and play with code 你. findstr "\<go  code\>" 这样就能匹配输出包含g ...

  6. LeetCode 75. Sort Colors (颜色分类):三路快排

    Given an array with n objects colored red, white or blue, sort them in-place so that objects of the ...

  7. SpringBoot集成Spring Security(2)——自动登录

    在上一章:SpringBoot集成Spring Security(1)——入门程序中,我们实现了入门程序,本篇为该程序加上自动登录的功能. 文章目录 一.修改login.html二.两种实现方式 2. ...

  8. Let's Encrypt之acme.sh

    前言 Let's Encrypt 是一个证书颁发机构(CA).是由互联网安全研究小组(ISRG,Internet Security Research Group)主导并开发的一个新型数字证书认证机构( ...

  9. why’s kafka so fast

    As we all know that Kafka is very fast, much faster than most of its competitors. So what’s the reas ...

  10. MonkeyDev安装--逆向开发

    MonkeyDev是原有iOS OpenDev的升级,非越狱插件的开发集成神器! 可以使用Xcode开发CaptainHook Tweak.Logos Tweak 和 Command-line Too ...