PLC通信协议及编程
书籍作者:白海潮 |
ISBN:9787111729778 |
书籍语言:简体中文 |
连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 |
下载次数:2009 |
创建日期:2024-04-16 |
发布日期:2024-04-16 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
内容简介
本书主要讲解PLC的通信原理,并着重于实践:首先讲解基础通信理论,其次介绍PLC通信协议,然后使用C#作为开发工具,根据通信协议来开发对应的实例,实现计算机与PLC的通信,并且给出了实例代码和相关界面。这种理论联系实际的方式可以使读者在了解PLC通信协议的同时,了解串口和Socket编程,从而更加深刻地理解PLC的通信原理和实际应用。
编辑推荐
适读人群 :有一定计算机编程基础的工业控制从业人员
该书基于通信理论,详述PLC通信协议,涵盖大量实践,对从事PLC及通信协议读者具有很高的参考价值。
前言
前言
随着信息技术和网络技术的飞速发展,德国在2013年提出了工业4.0的概念,这也是未来制造业发展的主要方向。工业4.0包含多种技术和通信系统,各个系统之间需要非常精密的通信才能实现工厂的智能制造,这些通信系统也正是工业4.0的核心。通信系统负责消除各个系统、各个设备之间的壁垒,使系统与系统之间能够准确且无障碍地交流。这些通信系统使用了各种工业通信技术,例如现场总线、工业以太网、WiFi等。工业通信系统的主要目的是使工厂的设备、传感器和控制层的数据域与企业信息系统相融合,使得生产大数据传到云计算数据中心进行存储、分析,并形成决策,再反过来指导生产。
通信协议的表述,以及工厂大量的制造设备和生产线流程是通过PLC来控制的,那么工厂控制层的大数据系统就需要从生产线设备的控制核心PLC来采集数据,从而知道生产线上产品的制造信息和设备的状态信息。但是,现阶段每个工厂的生产线众多,造成了制造设备多种多样,进而制造设备的核心PLC也是各种品牌、各种型号林立,这就造成工厂控制层与设备层的通信变得复杂且多样。工厂控制层的数据采集系统大部分使用的是高级语言(例如C#、VB等),现在计算机高级语言与PLC通信时大部分使用欧姆龙、罗克韦尔(AB)、西门子、倍福(Beckhoff)等各大PLC厂商提供的中间软件作为OPC Server,或者使用官方提供的动态链接库。如果使用OPC Server或者动态链接库,那么有两个劣势:一是中间软件价格昂贵,二是通信速度慢。欧姆龙、AB、西门子、倍福等各大PLC厂商除了提供中间软件和动态链接库外,还提供官方支持的通信协议,计算机通过官方指定的协议可以直接与PLC进行通信,使通信更加简单、快捷、经济。
本书讲解欧姆龙、西门子、AB、倍福等PLC厂商官方公开的协议。欧姆龙部分主要讲解Hostlink协议,以及无协议、Socket通信服务等。Hostlink协议包括C-Mode和FINS两种命令格式。C-Mode相对简单,但是只能访问通道级别的数据,无法直接访问I/O点的数据。FINS与C-Mode相比稍复杂,但是可以直接访问I/O点的数据。无协议和Socket的通信内容没有固定的协议,可以自己编写,弊端是PLC端需要编写通信程序。AB部分主要讲解DF1、CIP、EtherNet/IP等协议。DF1协议在串口的全双工和半双工下有所区别,本书着重讲解全双工的DF1协议。CIP(Common Industrial Protocol,通用工业化协议)是国际性组织ODVA推出的一种通用工业协议。ODVA已经有350多个成员,所有成员都支持CIP。EtherNet/IP是ODVA和CI两大组织共同推出的基于标准以太网技术(IEEE 802.3与TCP/IP Socket相结合)的工业网络技术,使用标准以太网和TCP/IP技术来传输CIP通信数据包。CIP和EtherNet/IP这两个协议也是本书的一个难点。西门子部分主要讲解自由口通信、Modbus、开放式以太网通信等协议,这三种通信协议都需要在PLC端编程。倍福部分主要讲解ADS通信和TCP/IP通信。ADS通信是倍福官方推荐的通信方式,但是需要使用倍福官方的动态链接库。TCP/IP不需要动态链接库,但是需要在PLC端编程。读者在掌握这几种PLC通信协议后再开发计算机数据采集程序,就可以直接使用官方给出的协议与PLC进行通信。
本书从应用者的角度,以最有代表性的4种PLC作为实例,先把协议讲清楚,再把协议带到C#编程实例里来实现,然后把代码也写出来并做一定注解,让读者既理解了通信协议和通信方法,又学会了如何使用这些协议进行编程。
限于编者水平,书中难免有欠妥、疏漏和错误之处,恳请读者指正。
目录
目录
前言
第1章 串口通信基础 1
1.1 串口通信的原理 1
1.1.1 数据通信的基本原理 2
1.1.2 数据传输的分类 2
1.2 接口标准 5
1.3 PLC串口通信应用 7
第2章 欧姆龙PLC串口通信 10
2.1 欧姆龙PLC串口通信概述 10
2.1.1 欧姆龙PLC通信协议 10
2.1.2 计算机与PLC的连接方式 11
2.1.3 PLC通信参数设置 12
2.2 欧姆龙Hostlink通信协议 14
2.2.1 Hostlink协议介绍 14
2.2.2 Hostlink协议C-Mode编程举例 22
2.2.3 Hostlink发送FINS命令 26
2.2.4 Hostlink协议FINS编程举例 28
2.3 欧姆龙PLC无协议通信 34
2.3.1 无协议通信的基本步骤 34
2.3.2 计算机通过无协议与PLC通信举例 37
第3章 AB PLC串口通信 40
3.1 网络层的概念 40
3.1.1 DF1相关层介绍 41
3.1.2 DF1协议描述 43
3.1.3 DF1消息帧结构 49
3.1.4 应用层数据包 51
3.2 模块诊断 61
3.2.1 诊断计数器 61
3.2.2 消息包状态码 62
3.3 大型Control Logix系列PLC的DF1通信 63
3.4 DF1协议编程举例 65
3.4.1 计算机与Micro Logix1100通信举例 66
3.4.2 计算机与Logix5000通信举例 68
3.4.3 计算机软件的C#源代码 72
第4章 西门子PLC串口通信 73
4.1 自由口通信 73
4.1.1 自由口概述 74
4.1.2 自由口的工作原理 75
4.1.3 计算机通过自由口与PLC通信举例 83
4.2 PLC的Modbus通信协议 87
4.2.1 串行Modbus协议介绍 87
4.2.2 串行Modbus协议PLC指令库介绍 91
4.2.3 计算机通过Modbus RTU协议与PLC通信举例 97
第5章 欧姆龙PLC以太网通信 100
5.1 FINS通信概述 100
5.1.1 FINS通信网络层模型 101
5.1.2 FINS命令 102
5.1.3 FINS/TCP的连接方法 110
5.1.4 FINS/TCP的模式规范 114
5.1.5 计算机通过FINS/TCP与欧姆龙PLC通信举例 119
5.2 Socket通信服务 124
5.2.1 TCP通信 124
5.2.2 Socket服务 126
5.2.3 计算机通过Socket服务与PLC通信举例 136
第6章 CIP和EtherNet/IP 146
6.1 CIP对象 147
6.1.1 对象的定义 147
6.1.2 对象的寻址 148
6.2 CIP消息协议 153
6.2.1 连接建立概述 153
6.2.2 消息路由请求/应答的格式 155
6.3 CIP通信对象类 163
6.3.1 通过连接对象创建连接 163
6.3.2 通过连接管理器创建连接 164
6.3.3 连接生产者对象类的定义 164
6.3.4 连接消费者对象类的定义 165
6.3.5 连接对象类的定义 166
6.3.6 连接管理器对象 179
6.3.7 库对象 195
6.3.8 电子数据文档 196
6.4 EtherNet/IP介绍 199
第7章 AB PLC以太网通信 214
7.1 AB PLC以太网通信概述 215
7.1.1 CIP和EIP对PLC性能的最低要求 215
7.1.2 PLC需要处理的信息 216
7.1.3 计算机连接PLC的步骤 216
7.2 PCCC命令的EIP封装 217
7.2.1 EIP封装CIP消息帧结构 218
7.2.2 计算机通过PCCC对象访问AB PLC编程举例 223
7.3 AB PLC的CIP Data Table对象 231
7.3.1 Logix5500 PLC的标签和服务 231
7.3.2 计算机通过Data Table对象访问Logix5500 PLC编程举例 235
第8章 西门子PLC以太网通信 243
8.1 西门子开放式以太网TCP通信 245
8.1.1 开放式以太网TCP通信的指令和协议 246
8.1.2 PLC通过TCP指令块编程与计算机通信举例 256
8.2 Modbus TCP通信协议 265
8.2.1 Modbus TCP简介 265
8.2.2 计算机与西门子PLC Modbus TCP通信举例 275
第9章 倍福PLC以太网通信 283
9.1 TwinCAT系统 283
9.1.1 TwinCAT系统的结构 284
9.1.2 TwinCAT系统的变量和存储地址 287
9.2 TwinCAT ADS通信 287
9.2.1 TwinCAT ADS PLC设备 288
9.2.2 TwinCAT ADS设备标识和路由 290
9.2.3 ADS通信 294
9.2.4 ADS通信举例 297
9.3 TwinCAT TCP/IP通信 301
9.3.1 TwinCAT TCP/IP介绍 301
9.3.2 TwinCAT TCP/IP功能块介绍 302
9.3.3 TwinCAT TCP/IP编程举例 306
参考文献 311
短评
PLC通信协议及编程
在现代工业自动化领域,PLC(可编程逻辑控制器)扮演着至关重要的角色。它们被广泛应用于工厂、制造和流程控制系统中,用于自动化和监控各种工业过程。要使PLC成功执行其任务,通信协议和编程是两个关键要素。本文将探讨PLC通信协议及其编程方面的重要性和原理。
### 通信协议的作用
PLC通信协议是PLC与其他设备、系统或主机之间进行数据交换和通信的规则和标准。这些协议确保了设备之间的顺畅沟通,从而使整个自动化系统协同工作。通信协议的选择通常取决于具体的应用和所需的性能。以下是一些常见的PLC通信协议:
1. **Modbus协议**:Modbus是一种常见的串行通信协议,广泛用于PLC与各种设备之间的通信。它简单、可靠,支持多种传输介质,如串口、以太网等。
2. **Profibus协议**:Profibus是一种用于工业自动化的高性能通信协议,适用于大型工业系统。它支持高速数据传输和多个设备的连接。
3. **EtherNet/IP协议**:EtherNet/IP是基于以太网的通信协议,具有高速传输和广泛的设备兼容性。它通常用于需要实时数据传输的应用。
4. **CAN(Controller Area Network)**:CAN协议广泛用于汽车和机器控制领域。它具有高度可靠性和抗干扰性,适用于工业环境。
### 编程PLC
PLC编程是指创建和配置PLC以执行特定任务的过程。它通常采用类似于图形化编程语言的方法,其中用户可以创建逻辑和控制流程,以指导PLC的操作。以下是PLC编程的一般步骤:
1. **项目定义**:确定自动化任务的目标,识别所需的硬件和PLC型号。
2. **PLC硬件配置**:选择和配置所需的输入输出模块,以便PLC可以与外部设备通信。
3. **PLC编程**:使用PLC编程软件,创建逻辑控制程序。这可以包括逻辑元件(例如继电器、计数器、定时器)的配置和相互连接,以实现所需的功能。
4. **测试和调试**:在将PLC投入实际生产环境之前,进行详细的测试和调试。这包括验证逻辑的正确性和性能。
5. **部署和监控**:将编程好的PLC部署到实际工业环境中,并监控其运行情况。在运行过程中可能需要进行一些微调和维护。
### PLC通信协议与编程的关系
PLC通信协议和编程紧密相关,因为它们一起确保了自动化系统的协同工作。编程决定了PLC如何处理数据和执行任务,而通信协议允许PLC与其他设备进行数据交换,从而实现了集成和协同操作。
举个例子,如果一个工业自动化系统中有多个PLC,它们之间需要共享数据和信息。在这种情况下,选择适当的通信协议至关重要,以确保PLC之间的数据传输是可靠和高效的。编程要确保PLC能够正确解释和利用接收到的数据。
此外,PLC编程也可以包括通信协议的配置和设置,以确保PLC正确地与其他设备通信。这可能涉及到设置通信速率、地址分配和数据格式等参数。
总之,PLC通信协议和编程是工业自动化中的两个关键要素,它们共同推动了自动化系统的高效运行。正确选择和配置通信协议,并编写正确的PLC程序,将确保系统能够顺畅地执行任务,提高生产效率,并提供可靠的工业自动化解决方案。
2023-09-03 07:12:22