物联网的常用几种协议

最近公司组内要研究这个了 ,有个java大哥又弄个什么低代码的...可笑至极, 所以就发发总结一下 ,想做物联网关多支持点协议比什么不好~~ 老生常谈啊!! 大伙别喷我主要公司招人太水....

http tcp sqlserver这数据库什么的都不讲了没意义 ,不发流水账. 不知道是不是我标题不太违和~~ 反正mqtt lora也说 此篇更偏向工业化~~

---- 以下为一些国家和工业标准的协议 ,还有什么不全的大伙帮忙总结和分享哦 ,不对的请帮忙指

        正不有要给别人造成误解 多谢 ==  whaosoft aiot http://143ai.com 

IEC104

HJ/T212

CJT188

DLT645

BACnet

JTT808

ModBus

OPC

--------------------

## IEC104

IEC104规约是一个广泛应用于电力、城市轨道交通等行业的国际标准,规约由国际电工委员会制定。IEC104规约把IEC101的应用服务数据单元(ASDU)用网络规约TCP/IP进行传输的标准,该标准为远动信息的网络传输提供了通信规约依据。采用104规约组合101规约的ASDU的方式后,可很好的保证规约的标准化和通信的可靠性。

## HJ/T212

HJ/T212是由国家环保行业制定的数据传输标准协议,目前广泛使用的是HJ/T212-2005通信协议,该协议在2005年制定,并于2006年2月1日正式实施。 

《HJT 212-2017 污染源在线监控(监测)系统数据传输标准》和《HJT 212-2005 污染源在线监控(监测)系统数据传输标准》

 HJ/T212标准不规定数据采集传输仪与监控仪器仪表的通讯方式,可以采用RS232、RS485、GPRS、TCP/IP等通信方式。

 HJ/T212通讯协议数据结构中所有的通讯包都是由ACSII码字符组成(CRC校验码除外)。

数据段的字段与其值用“=”连接;在数据区中,同一项目的不同分类值间用“,”来分隔,不同项目之间用“;”来分隔。字段名要区分大小写,单词的首个字符为大写,其他部分为小写。数据段部分由请求编号QN,总包号PNUM,包号PN0,系统编号ST,命令编号CN,访问密码PW,设备唯一标识符MN,是否拆分包及应答标志Flag,指令参数CP等项目组成。

协议包组成 (待完善)

数据段结构组成  (待完善)

## CJT188

CJ/T-188 水表协议

以下为协议说明

    数据发送: 
        FE FE FE FE 68 10 44 33 22 11 00 33 78 01 03 1F 90 00 80 16 
        说明如下: 
            FE FE FE FE:协议头(1-4组)。 
            68:帧起始符。 
            10:仪表类型,此实例指冷水水表,还可定义为: 
                10:冷水水表 
                11:生活热水水表 
                12:直饮水水表 
                13:中水水表 
                20:热量表(记热量) 
                21:热量表(记冷量) 
                30:燃气表 
                40:电度表  
            44 33 22 11 00:倒序为0011223344(以BCD码形式看待),表示表号。 
            33 78:倒序为7833(以BCD码形式看待),表示厂家代码。 
            01:控制码表示读表计数据,后面跟固定数据域长度、数据标识和序列号。 
            03:数据域长度(固定)。  
            1F 90:数据标识(固定)。 
            00:序列号(固定)。 
            80:累加和,68+10+44+33+22+11+00+33+78+01+03+1F+90+00=80。 
            16;结束符。 

    回复数据: 
        FE FE FE FE 68 10 44 33 22 11 00 33 78 81 16 1F 90 00  00 77 66 55 2C 00 77 66 55 2C 31 01 22 11 05 15 20 21 84 08 16 
        说明如下: 
            FE FE FE FE:协议头(1-4组)。 
            68:帧起始符。 
            10:仪表类型。 
            44 33 22 11 00:倒序为0011223344(以BCD码形式看待),表示表号。 
            33 78:倒序为7833(以BCD码形式看待),表示厂家代码。 
            81:实际为控制码+80,我们可以简单认为只有81正确,非81均为异常,不进行解析。 
            16:数据域长度,为十进制22,表示后面有22个有效数据。 
            1F 90:数据标识(固定)。 
            00:序列号(固定)。 
             00 77 66 55 :倒序为556677.00 (以BCD码形式看待),表示 累计用量。 
            2C :立方米,其它单位见附1。 
             00 77 66 55 :倒序为556677.00 (以BCD码形式看待),表示 本月用量。
            2C :立方米,其它单位见附1。  
            31 01 22 11 05 15 20:2015-05-11 22:01:31,表示实时时间。
            21 84:状态,两字节,第1字节定义如下,第2字节由厂家自定义。

 
            68:累加和,68+10+44+33+22+11+00+33+78+81+16+1F+90+00+00+77+66+55+2C+00+77+66+55 2C+31+01+22+11+05+15+20+21+84=08。
            16;结束符。 
  

## DLT645 

还是一个电能表通讯协议

DLT645是目前使用最多的多功能电能表通信规约,系统传输多采用串口通讯。适用于本地系统中多功能电能表的费率装置与手持单元(HHU)或其它数据终端设备进行点对点的或一主多从的数据交换方式,规定了它们之间的物理连接、通信链路及应用技术规范。

07版比97版增加了不少功能项,也有一定的区分,最明显的区别是信息地址从2个字节变成4个字节长度。具体协议信息,可以参考相关发行文档,我们用SymLink对其通讯过程作简单的介绍:

主站发送

68 01 00 00 00 00 00 68 11 04 33 33 3D 33BC 16

01 00 00 00 00 00 为电表物理地址,这里的物理地址实际是:000000000001

从站发送

68 01 00 00 00 00 00 68 91 08 33 33 3D 3333 33 33 33 0C 16

01 00 00 00 00 00 为从站返回的物理地址,和发送的一致

33 33 3D 33 33 33 33 33 代表电度数据,计算的时候每一个数据会减33H

通过通讯报文分析,可以很快的掌握协议通讯的基本信息,通讯过程采取问答式传输,主站询问指令包含电表的物理地址和电度信息地址,从站根据询问进行应答。

上面协议里面需要设置的一个参数为链路地址,一般在电表的前面板上能找到一个较长的数字就是,不足12个长度的,规定前面补A或者0。

准备工作


 

设备连接

& RS485通讯,远动设备的A端子对应连接SymLink的A端子、远动设备的B端子对应连接SymLink的B端子。

& 以太网通讯,远动设备的网口对应连接到同一网段的SymLink LAN口,如果含多台以太网设备,需要加交换机。

设备配置

参考实际的设备说明书:

a)         定义通讯接口参数。串口定义传输波特率,数据位,停止位,奇偶检验。默认一般为2400、8、偶、1。

b)         定义设备物理地址,一般为前面板查看。

c)         用厂家提供的测试软件,或者串口调试工具对设备进行通讯测试。

## BACnet

楼宇自动控制网络数据通讯协议(即: A Data Communication Protocol for Building Automation and Control Networks,简称《BACnet协议》)由美国暖通、空调和制冷工程师协会(ASHRAE ) 组织的 标准项目委员会135P (Standard Project Committee即SPC 135P)历经八年半时间开发的。

一般楼宇自控设备从功能上讲分为两部分:一部分专门处理设备的控制功能;另一部分专门处理设备的数据通信功能。而BACnet就是要建立一种统一的数据通信标准,使得设备可以互操作。BACnet协议只是规定了设备之间通信的规则,并不涉及实现细节。

BACnet协议模型为:

(1)所有的网络设备,除基于MS/TP协议的以外,都是完全对等的(peer to peer);

(2)每个设备都是一个“对象”的实体,每个对象用其“属性”描述,并提供了在网络中识别和访问设备的方法;设备相互通信是通过读/写某些设备对象的属性,以及利用协议提供的“服务”完成;

(3)设备的完善性(Sophistication),即其实现服务请求或理解对象类型种类的能力,由设备的“一致性类别”(Conformance Class)所反映。

1.1 BACnet的体系结构

BACnet是一种针对智能建筑的开放性的网络协议,遵循OSI模型体系结构,BACnet体系结构层次图如图1所示。BACnet协议从硬/软件实现、数据传输速率、系统兼容和网络应用等几方面考虑,目前支持五种组合类型的数据链路/物理层规范。其中主从/令牌传递(MS/TP)协议是专门针对楼宇自控设备设计的数据链路规范。BACnet在物理介质上,支持双绞线、同轴电缆和光缆。在拓扑结构上,支持星型和总线拓扑。

图1 BACnet体系结构层次图

BACnet没有严格规定网络拓扑结构,如图2所示。其中:网段(Segment)是多个物理网段通过中继器(R)连接形成的段落区间;网络是多个网段通过网桥(B)连接而成的,每个网络都形成一个MAC地址域;BACnet/Internet网络是将使用不同局域网技术的多个网络用路由器(RT)互联起来形成的网际网。

图2 BACnet网络结构图

在BACnet拓扑中设备之间只存在一条逻辑通路,无需广域网的路由算法;其次,BACnet具有单一的局部地址空间,所以BACnet参照OSI模型制定了简化的网络层协议,向应用层提供不确认无连接的数据单元传送服务。每个BACnet设备都被一个网络号码和一个MAC地址唯一确定。

网络层通过“路由器”实现两个或多个异类BACnet局域网(不同的数链层)的连接,并通过协议报文进行“路由器”的自动配置、路由表维护和拥塞控制。BACnet路由器与每个网络的连接处称为一个“端口”。路由表中包含端口的下列项目:端口所连接网络的MAC地址和网络号;端口可到达网络的网络号列表及与这些网络的连接状态。图2中,“1/2RT”是半路由器,由PTP连接形成一个完整的BACnet路由器,即BACnet网际网将广域网技术向应用层屏蔽。

BACnet应用层即BACnet应用实体,通过API(应用编程接口)为上层应用程序服务,并与对等应用层实体通信。应用实体由两部分组成:用户单元和应用服务单元(ASE)。ASE是一组特定内容的应用服务。而用户单元支持本地API、保存事务处理上下文信息、产生请求ID、记录ID对应的应用服务响应、维护超时重传机制所需的计数器以及将设备行为要求映射为对象。

BACnet应用层提供证实和非证实两种类型的服务。BACnet定义了四种服务原语:请求、指示、响应和证实,它们通过应用层协议数据单元(APDU)传递。由于BACnet建立在无连接的通信模式上,所以OSI模型提供端到端服务的传输层部分简化功能也由应用层实现,分别为:可靠的端到端传输和差错校验;报文分段和流量控制;报文重组和序列控制。

1.2 BACnet的对象、服务和功能组

BACnet采用面向对象技术,借此提供一种表示楼宇自控设备的标准。在BACnet中,对象就是在网络设备之间传输的一组数据结构,网络设备通过读取、修改封装在应用层APDU中的对象数据结构,实现互操作。BACnet目前定义了18个对象,如图3所示,每个对象都必须有三个属性:对象标志符(Object_Identifier)、对象名称(Object_Name)和对象类型(Object_Type)。其中,对象标志符用来唯一标识对象;BACnet设备可以通过广播自身包含的某个对象的对象名称,与包含相关对象的设备建立联系。BACnet协议要求每个设备都要包含“设备对象”,通过对其属性的读取可以让网络获得设备的全部信息。

图3 BACnet对象

在BACnet中,把对象的方法称为服务,对象及其属性提供了对一个楼宇自控设备“网络可见信息”的抽象描述,而服务提供了如何访问和操作这些信息的命令和方法。BACnet设备通过在网络中传递服务请求和服务应答报文实现服务。BACnet定义了35种服务,并将其划分为6个类别:
(1)报警与事件服务(Alarm and Event Services)包含8种服务处理环境状态的变化,提供了BACnet设备预设的请求值改变通告、请求报警或事件状态摘要、发送报警或事件通知、收到报警通知确认等方法;
(2)文件访问服务(File Access Services)包含2种服务,提供读写文件的方法,包括上/下载控制程序和数据库的能力;
(3)对象访问服务(Object Access Services)包含9种服务,提供了读、修改和写属性值以及增删对象的方法;
(4)远程设备管理服务(Remote Device Management Services)包含11种服务,提供对BACnet设备进行维护和故障检测的工具、方法;
(5)虚拟终端服务(Virtual Terminal Services)包含3种服务,提供了一种面向字符的数据双向交换机制,使其他具有专有特性的楼宇自控设备成为一个BACnet虚拟终端并使BACnet网络能对其进行重构;
(6)网络安全服务(Network Security Services)包含2种服务,提供对等实体验证、数据源验证、操作者验证和数据加密等功能。

BACnet功能组规定了实现特定控制功能所需的对象和服务的组合。BACnet已定义了13个功能组,包括时钟功能组、事件响应功能组、文件功能组、虚拟终端功能组、设备通信功能组等。

1.3 BACnet设备级别和设备等级说明

在实际的楼宇自动化系统中,没有必要也不可能所有的设备都支持、包含上述所有的对象和服务。因此,BACnet定义了6个一致性类别(设备级别)。一致性类别的分级编号为1~6,最低级别是类别1。每个类别都规定了设备要实现的最小服务子集,且包含低级别的所有服务。

为了帮助用户和工程人员确定不同BACnet设备之间的互操作性,需要厂商为每个设备提供标准格式文件以标识设备中己实现的BACnet标准的内容,即文件需包括设备符合BACnet等级的说明。这个文件就是PICS(Proto Implementation Conformance Statement),它包括:
(1)标识厂商和描述设备的基本信息;
(2)设备符合BACnet的级别;
(3)设备所支持的功能组;
(4)设备所支持的基于标准或专有的服务,设备启动或响应服务请求的能力;
(5)设备所支持的基于标准或专有的对象类型及其属性描述;
(6)设备支持的数据链路技术;
(7)设备支持的分段请求和响应。

2. BACnet的互联网扩展

目前,BACnet标准使用两种技术实现与Internet的互联。第一种技术附件H中称之为“隧道”技术,并将其设备称之为分组封装/拆装设备,简称PAD。其作用就像一个网关/路由器,这在图2中两个半路由器连接广域网形成一个完全的BACnet路由器有所体现。第二种技术附件J中称之为BACnet/IP,设备直接封装IP帧/包在BACnet网络和Internet上传输。

PAD将BACnet报文数据封装在IP协议数据包内传输,在目的BACnet网络解封。因此每个连接Internet的BACnet网络都要配置PAD网关/路由器。它可以是一个单独的设备,也可以是某种楼宇控制设备功能的一部分。

ASHPAE于1999年1月正式发布附件并成为美国国家标准。它规范了支持TCP/IP的设备组建BACnet网络的技术,并称之为BACnet/IP网络,简称B/IP,是一个或多个IP子网组成的集合,整体具有单独的BACnet网络号。BACnet/IP网络报文在网络层是IP包,在传输层是UDP数据报,从而实现与Internet的TCP/IP协议的融合。

##​​​​​​​JT/T808-2011

道路运输车辆卫星定位系统终端通讯协议

协议东西太多 不贴了啊~~ 

====== 以下就是俩种工业物联网用的协议了

如果有必要还要说一下 PLC Kepserver 及 RS485 232的请留言~

## Modbus

Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。

现在一般工业设备都会支持modbus。这个协议比较简单了可以电脑上模拟一下做实验.

Modbus协议是一个master/slave架构的协议。有一个节点是master节点,其他使用Modbus协议参与通信的节点是slave节点。每一个slave设备都有一个唯一的地址。在串行和MB+网络中,只有被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只有一个主节点设备启动指令)。
一个ModBus命令包含了打算执行的设备的Modbus地址。所有设备都会收到命令,但只有指定位置的设备会执行及回应指令(地址0例外,指定地址0的指令是广播指令,所有收到指令的设备都会运行,不过不回应指令)。所有的Modbus命令包含了检查码,以确定到达的命令没有被破坏。基本的ModBus命令能指令一个RTU改变它的寄存器的某个值,控制或者读取一个I/O端口,以及指挥设备回送一个或者多个其寄存器中的数据。
有许多modems和网关支持Modbus协议,因为Modbus协议很简单而且容易复制。它们当中一些为这个协议特别设计的。有使用有线、无线通信甚至短消息和GPRS的不同实现。不过设计者需要克服一些包括高延迟和时序的问题。

Modbus RTU通讯协议在数据通讯上采用主从应答的方式进行。只能由主机(PC,HMI等)通过唯一从机地址发起请求,从机(终端设备)根据主机请求进行响应,即半双工通讯。该协议只允许主机发起请求,从机进行被动响应,因此从机不会主动占用通讯线路造成数据冲突。

类似Modbus RTU协议的主从应答协议还有西门子的PPI、电表常用的DL/T645-2007等协议。

一、协议格式

信息传输为异步方式,使用16进制进行通讯,信息帧格式:

地址码

地址码是每个通讯信息帧的第一个字节,一般支持1到247,部分设备也支持0地址,用于接收主机的广播数据,每个从机在总线上地址必须唯一,只有与主机发送的地址码相符的从机才能响应返回数据。

功能码

功能码是每个通讯信息帧的第二个字节。主机发送,通过功能码告知从机设备应当执行何种操作。

常见的八种功能码:

数据区

数据区随功能码以及数据方向的不同而不同,这些数据可以是“寄存器首地址+读取寄存器数量”、“寄存器地址+操作数据”、“寄存器首地址+操作寄存数量+数据长度+数据”等不同的组合,在“功能码分析”详解不同功能码的数据区。

Modbus CRC校验

Modbus RTU协议常用与工业现场对数据传输的稳定性和正确性有较高的要求,因此通过CRC校验保证数据传输的正确性和完整性。

二、错误反馈

地址与CRC校验错误并不会收到从机的数据反馈,其他错误将向主机返回错误码。数据帧的第二位加上0X80表示请求发生错误(非法功能码、非法数据值等),错误数据帧如下:

常见错误码如下:

三、通讯信息传输过程

通讯命令由主机发送从机时,与主机发送的地址码相符的从机接收通讯命令,如果CRC校验无误,则执行相应的操作,然后把执行结果(数据)返回给主机。返回信息中包含地址码、功能码、执行后的数据以及CRC校验码。如果地址不匹配或者CRC校验出错就不返回任何信息。

四、功能码分析

功能码01H:读线圈

例如:主机要读取从机地址为01H,起始线圈地址为00H的1个线圈状态,主机发送:

如果从机寄存器00H线圈闭合,从机返回:

仿真演示:

功能码05H:写单个线圈

例如:主机要控制从机地址为01H,线圈地址为0000H的线圈状态,主机发送:

从机返回与主机请求相同;

仿真演示:

功能码0FH:写多个线圈

例如:主机要控制从机地址为01H,起始线圈地址为00H的4个线圈状态,主机发送:

功能码0FH操作,从机返回:

仿真演示:

功能码02H:读离散输入

例如:主机要读取从机地址为01H,起始离散量地址为00H的4个输入状态,主机发送:

如果从机首地址00H开始的4离散输入全部检测到输入,从机返回:

仿真演示:

功能码04H:读取输入寄存器

例如:主机要读取从机地址为01H,起始寄存器地址为02H的1个输入寄存器数据,主机发送:

如果从机输入寄存器02H的数据为3344H,从机返回:

仿真演示:

功能码03H:读保持寄存器

例如:主机要读取从机地址为01H,起始寄存器地址为05H的2个保持寄存器数据,主机发送:

如果从机保持寄存器05H、06H的数据为1122H、3344H,从机返回:

仿真演示:

功能码06H:写单个保持寄存器

例如:主机写入9988H的数据给从机地址为01H,寄存器地址为0050H的寄存器,主机发送:

从机返回与主机请求相同;

功能码10H:写多个保持寄存器

例如:主机要把数据0005H、2233H保存到从机地址为01H,起始寄存器地址为0020H的2个寄存器中,主机发送:

功能码10H操作,从机返回:

仿真演示:

## OPC

这个应该是用的最多的了吧, 不过有点麻烦,还要依托于其他软件

OPC(OLE for Process Control), 用于过程控制的OLE,是一个工业标准,管理这个标准的国际组织是OPC基金会,OPC基金会现有会员已超过220家。遍布全球,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。基于微软的OLE(现在的Active X)、COM (部件对象模型)和DCOM (分布式部件对象模型)技术。OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。

通过实现对 OPC 客户端的支持,SCADA 系统开发人员摆脱了为各种设备支持数百个驱动程序的需要,设备制造商通过添加 OPC 服务器,确信他们的产品可以被任何 SCADA 系统的用户使用。

OPC 技术包括多个标准,这些标准描述了用于特定目的的一组功能。

现行标准

  • OPC DA(数据访问)是最常见的标准,它描述了一组与 PLC、DCS、HMI、CNC 和其他设备进行实时数据交换的功能。
  • OPC HDA(历史数据访问)提供对已保存数据和历史的访问。
  • OPC AE(警报和事件)为各种事件提供按需通知功能:紧急情况、操作员操作、信息消息等。
  • OPC Batch提供工艺过程的步骤和配方控制功能。
  • OPC DX (Data eXchange)提供通过以太网在 OPC 服务器之间组织数据交换的功能。该标准的主要目的是为来自不同制造商的设备和程序之间的数据交换创建网关。
  • OPC 安全定义了组织客户端对 OPC 服务器数据的访问权限的功能。
  • OPC XML-DA(XML 数据访问)提供了一种灵活的、规则驱动的格式,用于通过 XML、SOAP 和 HTTP 交换数据。
  • OPC 复杂数据是一组针对 OPC DA 和 XML-DA 的附加规范,允许服务器处理复杂数据类型,例如二进制结构和 XML 文档。
  • OPC 命令是一组编程接口,允许 OPC 客户端和服务器识别、发送和控制在控制器或 I/O 模块中执行的命令。
  • OPC UA(统一架构)是不基于 Microsoft COM 技术的最新规范,它提供了跨平台兼容性。

最普遍的标准是 OPC DA,但它有一个明显的缺点。在其发展时,它建立在当时的现代 Windows 技术之上:OLE、ActiveX、COM/DCOM,但此后行业发生了变化,其他操作系统和技术也开始流行。因此,使 OPC 技术独立于平台,并在开放的跨平台技术上开发了 OPC UA(统一架构)标准。

使用 OPC 的地方

通常,OPC 技术用于在控制器和 SCADA 系统之间交换数据,但也可以在过程控制系统的不同级别组织复杂的系统。

OPC 由两部分组成:OPC 客户端和 OPC 服务器。OPC 服务器软件通过现场总线通过设备驱动程序轮询各种设备。OPC 客户端软件通常内置于 SCADA 系统中,旨在从 OPC 服务器接收数据。

在这里,我们可以将 ACS 的几个级别可视化

  • 较低的级别是现场总线和单独的控制器
  • 中间层是店铺网络
  • APCS 级别是 SCADA 类型系统的操作级别
  • MICS级别是企业资源管理应用、ERP、MES的级别

这些层中的每一层都可以由 OPC 服务器提供服务,将数据提供给更高层的 OPC 客户端或相邻设备。

OPC DA 服务器的工作原理

OPC DA 服务器在客户端程序(通常是 SCADA 系统)和终端设备之间提供数据交换(写入和读取)。OPC 中的数据是具有某些属性的标签变量。变量可以是 OLE 中允许的任何类型:各种整数和实数类型、布尔值、字符串、日期、数组等。属性可以是必需的、推荐的或自定义的。

必需的变量属性

  • 变量的当前值、它的类型和访问权限(读和/或写)。
  • 变量的质量取决于超出动态范围的测量值、数据缺失、通信错误和其他参数。通常采用值:好/坏/不确定和附加信息。
  • 时间戳报告时可变收到的给定值的时间。
  • OPC 服务器轮询变量的频率设置了更新变量值的时间。
  • 变量描述,其中包含有关此变量是什么的用户信息。

此外,可以指定可选属性,例如:值变化范围、测量单位和其他自定义参数。

可以使用多种模式从 OPC 服务器读取数据

  • 同步模式:客户端向服务器发送请求并等待它的响应。
  • 异步模式:客户端发送请求并立即继续执行其他任务。处理完请求后,服务器向客户端发送通知,客户端获取提供的数据。
  • 订阅模式:服务器只向客户端发送发生变化的标签。为了防止数据的噪声被误认为它们的变化,引入了“死区”的概念,它稍微超过了干扰的最大可能幅度。
  • 数据刷新模式:客户端调用所有活动标签的同时读取。除了那些被指定为“被动”的标签外,所有标签都被称为主动标签。标签的这种划分通过更新从物理设备接收到的数据来减少处理器的负载。

客户端从缓冲区或直接从终端设备接收来自 OPC 服务器的数据。从缓冲区读取速度更快,但其中的数据在读取时可能已过期。OPC 服务器通过从终端设备请求信息来定期更新数据。

数据以同步或异步模式写入终端设备,无需中间缓冲。在同步模式下,客户端写入数据并等待,直到收到终端设备对命令执行的确认。此过程可能需要很长时间,在此期间客户端正在等待。异步模式允许客户端向服务器发送请求并执行其他任务。录制结束后,服务器会向客户端发送通知。

OPC UA 标准

OPC UA(统一架构)是工业网络中数据传输的现代标准。它提供设备之间安全可靠的通信,同时独立于硬件和平台,允许不同操作系统的设备之间进行通信。

OPC UA 的优势在于面向对象的信息模型,它允许“查看”数据(以 Web 浏览器样式)和面向服务的架构 (SOA)。如果之前您必须使用多个 OPC 服务器:用于实时数据的 OPC DA、用于历史的 OPC HDA 和用于事件的 OPC AE,现在所有这些以及更多功能都可以在一个 OPC UA 标准中使用。现在引入了节点或对象的概念,而不是标签树。每个节点包括一个真实对象的变量、方法和其他数据结构。

数据交换现在通过二进制结构和 XML 文档进行。除了客户端/服务器模型,发布者/订阅者模型变得可用。该标准还定义了一种机制来支持冗余(如果一个客户端变得不可用,那么另一个客户端会取代它)并在发生故障时快速恢复通信。数据传输通过传输层 TCP、HTTP/SOAP 或 HTTPS 进行。OPC UA 支持数字证书和加密传输数据的能力,而不是 Windows 访问控制机制。

通过特殊的包装器和代理模块实现了与 OPC DA 的向后兼容性。为了通过路由器和防火墙传输数据,OPC DA 需要使用​​​​​​​中间件,而 OPC UA 在没有这种介质的情况下工作。OPC UA 规范包括几个部分,描述了服务器和客户端的操作逻辑。IEC 62541 标准中提供了该规范的详细版本。

OPC UA 服务器示例

OPC UA 服务器的一个示例是 MOXA 的 MX-AOPC UA Suite。

MX-AOPC UA Suite包括 3 个程序

  • 服务器是用于从 Modbus 设备接收数据的程序
  • 查看器是一个查看标签和服务器状态的程序(查看器内置于服务器中)
  • Logger 用于记录数据变化的历史,以及与数据库和云解决方案的集成

首先,MX-AOPC UA Server 专注于 MOXA I/O 模块,因为具有 Active Tag 功能,但它也通过 Modbus RTU 和 Modbus TCP 协议支持第三方设备。Active Tag 功能允许您在更改后立即更新通道的状态,而无需等待来自服务器的命令。

MX-AOPC UA Logger 允许您通过 ODBC 将数据发送到 Microsoft Azure Cloud 和​
Microsoft SQL Server、MySQL、Oracle、Microsoft Office 2003 Access 或 Excel 数据库。

MX-AOPC UA 通过使用 Basic128Rsa15 密钥进行加密并使用 X509 证书进行确认来实现数据保护。

使用 OPC 的缺点

使用 OPC 时的常见错误包括:

  • 过度依赖 OPC 技术
  • 在 APCS 中不必要地使用 WEB 技术
  • 在远程机械任务中使用实时协议

假设您已经了解了良好的 OPC 技术,并且正在努力仅用 OPC 替换所有低层协议。但是将 Modbus、Profibus 和任何其他工业协议转换为 PC 格式将需要额外的时间并浪费计算能力。测试表明,SCADA 系统直接使用工业协议的速度比通过中间 OPC 服务器快两倍。当然,有些系统不需要实时监控过程,但是在设计自动化过程控制系统时必须考虑到这一点。

缺点还包括设置 OPC 服务器的复杂性以及需要手动输入数千个标签。此外,OPC 服务器并不总是免费提供的,大多数情况下您必须为每台 PC 购买单独的许可证。

如果系统通过互联网将数据发送到云端,那么弱加密方案就可能成为潜在的漏洞和黑客攻击的目标,从而对整个ICS的安全性产生怀疑。

用于实时操作的 OPC UA

OPC UA over TSN旨在支持实时操作,这种 OPC UA 技术可以结合 TSN(时间敏感网络)技术使用发布者/订阅者模型(而不是客户端/服务器模型)。

客户端/服务器模型在点对点连接的情况下工作正常,但如果有很多设备,则数据更新会出现延迟。发布者/订阅者模型提供了一对多和多对多的关系。服务器将其数据发送到网络(发布),每个客户端都可以接收此数据(订阅)。

采用 TSN 技术的以太网在服务质量 (QoS) 方面补充了现有的以太网设施,包括带宽分配、定时、低延迟保证和冗余。数据由各种设备通过以太网以流的形式传输。带有 TSN 的以太网交换机允许您为每个流分配自己的带宽并确保其实时传输。多个流可以组合(称为网络融合)并通过同一网络实时发送。事实证明,如果没有 TSN 技术,一个以太网网络只能传输一种实时协议,而使用 TSN 则可以传输多种实时协议。

OPC UA over TSN 技术的组合允许组织不同制造商生产的设备之间的通信,并确保实时连续接收数据。

OPC 基金会计划使用 OPC UA 不仅在控制器和 SCADA 系统之间传输数据,而且在现场级别从传感器和物联网设备到控制器,以及从云中的本地系统传输数据。为此,他们计划将 OPC UA 标准分为 4 个部分,具体取决于设备的性能及其所需的功能

  • Nano Embedded Device Server:适用于最小的传感器
  • 微型嵌入式设备服务器:适用于廉价的 PLC
  • 嵌入式UA Server:适用于更强大的PLC和边界网关
  • 标准 UA 服务器:支持所有功能的成熟实现

OPC UA 观点

可以肯定地说,尽管 OPC DA 标准仍在广泛使用,但它已不再满足现代自动化要求。它基于遗留技术,难以配置,不符合现代安全标准。它被现代 OPC UA 标准所取代,具有加密数据和构建从传感器到云的统一数据传输系统的能力。OPC UA 与 TSN 的联合使用显着扩展了实时数据传输技术的能力。

-- 最后总结啊~ 上面都是墨迹一下概述​​​​​​​

我们通用使用ua结合中间件-比如kepserver去连某PLC, da好像是只能Windows太久忘了,

当然你也可以直连plc那你就自己解析协议把, 如果不想麻烦拿着点表去装中间件吧 ,但这些都是要钱的~~ 大伙要想办法拉 你们明白的, 说到这里每家PLC梯形图可不是通用的~~ 而且就说kepserver也不是所有plc都支持 好多山寨或垃圾都没有~~ 还是要自己解析... 说到物联网关 我想就是支持越多的PLC越好~~  当然了触摸屏那种485的 你可以接线到自己那解析以后或是开关值你就去猜~  说到这世面上还有一堆 可以连比如西门子PLC的软件~~

GitHub - s7connector/s7connector: S7 PLC Connector for java​​​​​​​ 一个java连西门子的

上图俩接西门子的~  接plc时还要看是接网口还是485 还有更老的 是232(还丢包...)

只用过 ua 和da

opc是基础,Ua就是利用不同的客户端连接,Da的话是直接入库。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
http协议与工业通讯协议是两种不同的通信协议,它们在应用领域、通信方式和功能特点等方面有着一些区别。 HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种用于在计算机网络上传输超文本的应用层协议。它是互联网的基础,通过客户端和服务器之间的请求和响应来实现数据的传输和交互。HTTP协议使用TCP/IP作为传输协议,并且是无连接、无状态的,每次请求都是独立的,服务器不会保存客户端的任何信息。HTTP协议多用于Web浏览器和Web服务器之间的通信,用于获取和传输网页中的数据、图片、视频等。 工业通讯协议是用于工业自动化领域的通信协议,用于从传感器、执行器和其他设备中收集数据,并将数据传输到上位机或其他控制设备进行处理和操作。工业通讯协议是在工业环境中使用的特定通信标准,具有实时性、稳定性和可靠性的要求。常见的工业通讯协议包括Modbus、Profibus、CAN等。这些协议通常使用RS-485、Ethernet等物理介质进行数据传输,可以实现设备之间的数据交换、控制和监测。 总的来说,HTTP协议主要用于互联网上的数据传输和Web应用,而工业通讯协议主要用于工业自动化领域的设备和控制系统之间的数据交换和通信。两者在应用场景、通信方式、功能特点等方面存在差异,分别服务于不同的领域和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值