描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111729778丛书名: 工业自动化与智能化丛书
编辑推荐
该书基于通信理论,详述PLC通信协议,涵盖大量实践,对从事PLC及通信协议读者具有很高的参考价值。
内容简介
本书主要讲解PLC的通信原理,并着重于实践:首先讲解基础通信理论,其次介绍PLC通信协议,然后使用C#作为开发工具,根据通信协议来开发对应的实例,实现计算机与PLC的通信,并且给出了实例代码和相关界面。这种理论联系实际的方式可以使读者在了解PLC通信协议的同时,了解串口和Socket编程,从而更加深刻地理解PLC的通信原理和实际应用。
目 录
目录
前言
第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
前言
第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
前 言
前言
随着信息技术和网络技术的飞速发展,德国在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#编程实例里来实现,然后把代码也写出来并做一定注解,让读者既理解了通信协议和通信方法,又学会了如何使用这些协议进行编程。
限于编者水平,书中难免有欠妥、疏漏和错误之处,恳请读者指正。
随着信息技术和网络技术的飞速发展,德国在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#编程实例里来实现,然后把代码也写出来并做一定注解,让读者既理解了通信协议和通信方法,又学会了如何使用这些协议进行编程。
限于编者水平,书中难免有欠妥、疏漏和错误之处,恳请读者指正。
评论
还没有评论。