工业控制系统基础知识入门(一)

1. 工业控制系统定义

​ 工业控制系统(Industrial Control Systems,ICS,简称工控系统),是由各种自动化控制组件以及对实时数据进行采集、监测的过程控制组件共同构成的确保工业基础设施自动化运行、过程控制与监控的业务流程管控系统。其核心组件包括数据采集与监控系统(Supervisory Control and Data Acquisition,SCADA)、分布式控制系统(Distributed Control Systems,DCS)、可编程控制器(Programmable Logic Controller,PLC)、远程终端(Remote Terminal Unit,RTU)、人机交互界面设备(Human Machine Interface,HMI),以及确保各组件通信的接口技术。

  1. 一个SCADA控制中心是长期对现场进行集中监控的通信网络,包括监控报警和处理状态数据。可以将自动化或操作者驱动的监控命令推送到远程站控制设备,远程站设备通常被称为现场设备。现场设备控制本地诸如打开和关闭阀门和断路器的操作,从传感器系统收集数据,以及监控当地环境的报警条件等。

  2. DCS集成为一个控制架构,包含监督多个集成子系统的监督级别的控制它们负责控制本地化流程的细节。DCS用于控制工业过程,如发电,油气炼油,水和废水处理,以及化学,食品和汽车生产。

  3. PLC是基于计算机的固态设备,用于控制工业设备和工艺。而PLC是整个SCADA和DCS系统中使用的控制系统组件,它们通常是较小的控制系统配置中的主要组件用于提供监管控制汽车装配线和发电厂吹灰器控制等离散工艺。 PLC是广泛应用于几乎所有的工业过程。

  4. HMI 也就是操作人员面前的显示屏,HMI和plc进行组态之后,可以通过HMI对PLC通信控制以达到控制终端设备的目的。

2. 工业控制中的通信协议

在众多公开或私有协议中可分为如下几类:
标准协议:国际标准或公认的标准协议,如Modbus、DNP3、IEC104等
私有公开:只有厂商自己设备支持并提供官方协议文档,如Omron FINS协议、三菱Melsec协议等
私有不公开:只有厂商自己设备支持且官方不提供协议文档,如S7、西门子PPI协议、GE SRTP等

序号   协议类型    源码下载    简介
1   Siemens S7  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-s7comm.c  西门子PLC支持的通讯协议
2   MMS(IEC61850)   https://github.com/wireshark/wireshark/tree/master/asn1/mms 输配电通讯协议
3   GOOSE(IEC61850) https://github.com/wireshark/wireshark/tree/master/asn1/goose   输配电通讯协议
4   SV(IEC61850)    https://github.com/wireshark/wireshark/tree/master/asn1/sv  输配电通讯协议
5   Modbus  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-mbtcp.c   工控标准协议
6   OPC DA  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-dcom.c    工控标准协议
7   FF HSE  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-ff.c  基金会现场总线以太网通信协定
8   IEC 104 https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-iec104.c  输配电通讯协议
9   Ethernet POWERLINK  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-epl.c 开放式实时以太网通信
10  OPC UA  https://github.com/wireshark/wireshark/tree/master/plugins/opcua/opcua.c    OPC新一代标准
11  HART-IP https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-hartip.c  高速可寻址远程传感器协议
12  CoAP    https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-coap.c    轻量应用层协议
13  Omron FINS  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-omron-fins.c  欧姆龙PLC支持的通讯协定
14  openSAFETY  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-opensafety.c  开源安全应用协议
15  EGD(Ethernet Global Data)   https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-egd.c GE Fanuc为PLC开发的通讯协定
16  DNP3    https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-dnp.c 分布式网络协议,主要用于电力行业
17  Sinec H1    https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-h1.c  西门子PLC支持的通讯协议
18  Profinet    https://github.com/wireshark/wireshark/tree/master/plugins/profinet/    开放式的工业以太网通讯协定
19  EtherCAT    https://github.com/wireshark/wireshark/tree/master/plugins/ethercat/    德国Beckhoff公司推动的开放式实时以太网通讯协定
20  SERCOS III  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-sercosiii.c   实时以太网通讯协定
21  RTPS    https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-rtps.c    实时流传输协议
22  TTEthernet  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-tte.c 实时以太网通讯协定
23  CDT https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-cdt.c 远动规约
24  EtherNet/IP https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-etherip.c 工业通讯协定(Industrial Protocol),是一种CIP的实现方式,由罗克韦尔自动化公司所设计
25  CIP https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-cip.c 通用工业协定
26  CIP Safety  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-cipsafety.c   安全通用工业协定
27  DeviceNet   https://github.com/wireshark/wireshark/tree/master/epan/dissectors/ packet-devicenet.c  一种CIP的实现方式,由Allen-Bradley公司所设计
28  BACnet  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-bacnet.c  楼宇自动控制网络数据通讯协议
29  KNXnet/IP   https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-knxnetip.c    住宅和楼宇控制标准
30  Lontalk https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-lon.c 埃施朗公司的LonWorks技术所使用的通讯协议
31  CANopen https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-canopen.c 控制局域网通讯协定
32  SAE J1939   https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-j1939.c   一种CAN的变种,适用在农业车辆及商用车辆
33  USITT DMX512-A  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-dmx.c 灯光控制数据传输协议
34  BSSAP/BSAP  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-bssap.c   由Bristol Babcock Inc发展的通讯协定
35  Gryphon https://github.com/wireshark/wireshark/tree/master/plugins/gryphon  车用通讯协定
36  ZigBee  https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-zbee.h    开放式的无线通讯协定

3. 协议详述

  • modbus

Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。协议详解

  • PROFIBUS

一种用于工厂自动化车间级监控和现场设备层数据通信与控制的现场总线技术,可实现现场设备层到车间级监控的分散式数字控制和现场通信网络

  • OPC-DA

为了便于自动化行业不同厂家的设备和应用程序能相互交换数据,定义了一个统一的接口函数,就是OPC协议规范。OPC服务器的功能就是与下位机进行数据的交换,其中包含了大量的通讯程序和数据存贮程序。有了OPC就可以使用统一的方式去访问不同设备厂商的产品数据。其他的软件商只需开发面对服务器的程序即可,不用对不同的硬件设备开发不同的硬件驱动程序。减小了工作量,也方便了使用。

OPC基金会前前后后规定了不同的接口定义,如下:

• OPC DA (Data Access, exchange of real-time values)
• OPC A&E (Alarms & Events, exchange of alarms and events)
• OPC HDA (Historical Data Access, exchange of historical values)
• OPC XML DA (XML-based exchange of real-time values)

以上所有的接口定义,我们现在都统称为OPC。OPC是基于WINDOWS COM/DCOM接口技术来规定的。

  • OPC UA

为了应对标准化和跨平台的趋势,为了更好的推广OPC,OPC基金会近些年在之前OPC成功应用的基础上推出了一个新的OPC标准-OPC UA。OPC UA接口协议包含了之前的 A&E, DA,OPC XML DA or HDA,只使用一个地址空间就能访问之前所有的对象,而且不受WINDOWS平台限制,因为它是从传输层Scoket以上来定义的,导致了灵活性和安全性比之前的OPC都提升了。

OPC UA的优势:
1.一个通用接口集成了之前所有OPC的特性和信息,A&E, DA,OPC XML DA or HDA

2.更加开放,平台无关性,WINDOWS,LINUX都能兼容

3.扩展了对象类型,支持更复杂的数据类型比如变量,方法和事件

4.在协议和应用层集成了安全功能,更加安全

5.易于配置和使用

核心的区别是因为OPC和OPC UA协议使用的TCP层不一样,如下:

OPC是基于DOM/COM上,应用层最顶层;OPC UA是基于TCP IP scoket 传输层.

其他一些区别:
OPC虽然通过配置COM/DOM来提供数据加密和签名功能,配置防火墙,用户权限来让数据访问变得更加安全,但是会增加额外的工作量,尤其是对非IT的工程师来说;对于OPC UA,数据加密和签名,防火墙等都是默认的功能。比如基于DOM的OPC使用的动态端口分配,端口不固定,让防火墙难以确定,而OPC UA的端口都是唯一的,比如SINUMERIK 840D是PORT 4840,SIMATIC S7是PORT 4845。DOM/COM也可以生成不同级别的事件日志,但日志内容不够详细,只会提供“谁连接上服务器”这种,而对于OPC UA来说都是默认的功能,生成的日志内容更全面。e

工业控制系统基础知识入门(一)相关推荐

  1. 虚拟专题:知识图谱 | 流程工业控制系统的知识图谱构建

    来源:智能科学与技术学报 流程工业控制系统的知识图谱构建 牟天昊1, 李少远1,2 1 上海交通大学电子信息与电气工程学院 2 上海交通大学系统控制与信息处理教育部重点实验室 摘要:近年来,工业控制系 ...

  2. swift5.x基础知识入门

    swift5.x基础知识入门 源码在我的主页下,欢迎下载,我非常喜欢swift和oc的语法,两者相似,我坚信天下没有学不会的技术. 基本介绍 ///这里只介绍一些初学swift的基本概念,需要提前了解 ...

  3. 学习笔记:Java 并发编程①_基础知识入门

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 视频下载: ...

  4. GIS地图基础知识--入门教程

    wenzhanhttp://www.gisbbs.net/viewthread.php?tid=106&extra=page%3D1 GIS地图基础知识--入门教程 GIS 地 图 知 识 1 ...

  5. C语言基础知识入门和C语言入门基础知识大全

    一.C语言基础知识入门 C语言一出现,就以其丰富的功能.强大的表达能力.灵活性.方便性和广泛的应用,在世界范围内迅速普及和普及.C语言不仅高效而且可移植.它可以用来开发应用软件.驱动程序.操作系统等. ...

  6. JavaScript 基础知识 - 入门篇(二)

    11. 函数 11.1 函数的基础知识 为什么会有函数? 在写代码的时候,有一些常用的代码需要书写很多次,如果直接复制粘贴的话,会造成大量的代码冗余: 函数可以封装一段重复的javascript代码, ...

  7. R语言基础知识入门学习(一)

    目录 系列文章目录 一.软件下载 二.基本知识 1. 对象 2. 向量 3. 向量化 4. 因子 总结 系列文章目录 R语言基础知识入门学习(一) 一.软件下载 我们可以通过这个网址对R语言软件进行下 ...

  8. 网络安全基础知识入门!网络安全学习教程

    当我们学习网络安全的时候,需要对它的基础知识做一个简单的了解,这样对以后的学习和工作都会有很大的帮助.本篇文章为大家总结了网络安全基础知识入门的内容,快跟着小编来学习吧. 计算机网络 计算机网络是利用 ...

  9. 计算机网络建设中涉及到哪些硬件,网络基础知识入门

    网络基础知识入门 导语:随着计算机的广泛应用和网络的流行,我们应该要知道一些网络基础知识,下面是小编收集整理的网络基础入门知识,欢迎参考! 计算机网络是什么 这是首先必须解决的一个问题,绝对是核心概念 ...

  10. Python基础知识入门(二)

    Python基础知识入门(一) Python基础知识入门(三) Python基础知识入门(四) Python基础知识入门(五) 一.数字类型 Python 数字数据类型用于存储数值.数据类型是不允许改 ...

最新文章

  1. Django博客系统(推荐文章数据展示)
  2. java 句子拆分_java – 将段落拆分为单个句子.我在这里覆盖了所有的基地吗?
  3. 在Ubuntu上通过命令行安装Elisa KDE音乐播放器
  4. QT:触摸屏支持手指触摸,增加touch事件touchevent,记录前后touch坐标并处理
  5. centos7下端口映射
  6. php调用hive,如何进行hive的简单操作
  7. Android 欢迎页面的编写
  8. LeetCode 594. 最长和谐子序列(map)
  9. 用unity制作能量护盾(3)
  10. mysql实际是用命令还是图形化_那些你不常用却非常有用的MySql语句和命令
  11. hdu 4320 Arcane Numbers 1 多校联合赛(三)第一题
  12. sqldr load 以及extract data 的中文问题--
  13. android定位!每个程序员都必须掌握的8种数据结构!完整版开放下载
  14. vue4 跳转外部链接_vue项目跳转到外部链接
  15. 判断手机是否有虚拟键盘
  16. vue项目引入高德地图
  17. SSH Tunneling
  18. HTML开发者工具抓取所有图片,利用Chrome开发者工具功能进行网页整页截图的方法...
  19. 如何设计一个API快速开发平台?
  20. HDU 6194 String String String (后缀数组+线段树, 2017 ACM/ICPC Asia Regional Shenyang Online)

热门文章

  1. Java处理图片报错:two SOF markers
  2. 注册表方法删除WINDOWS右键多余扩展项
  3. 基于深度学习模型(1D CNN)实现钓鱼网站检测
  4. Linux创建WIFI热点
  5. 最简单、最傻瓜化的虚拟主机管理软件-LuManager主机管理系统
  6. Python中的yield from语法
  7. 2021年安全员-C证(陕西省)考试资料及安全员-C证(陕西省)免费试题
  8. Ubuntu下vsftpd - 虚拟账户配置
  9. 黎曼 zeta 函数与黎曼猜想
  10. SpringBoot基础