一种上位设备和plc设备的通信方法及介质
技术领域
1.本发明涉及工业自动化技术,具体涉及一种上位设备和plc设备的通信方法及介质。
背景技术:2.采用监控系统对工业过程进行监控已得到广泛应用,监控系统包括上位设备与多个控制设备,上位设备通过读写各控制设备的数据和发送指令,对控制设备的运行状况实行监控。
3.ab plc是工业自动化中经常使用的一种控制设备,其功能强大、配置灵活,可以提供广泛的通信配置和内存选项;在实际应用中,上位设备需要通过厂家提供的rslinx软件和opc(ole for proecss control)协议与plc设备进行通信,目前rslinx软件和opc协议只支持windows操作系统,并且目前的rslinx软件不支持设备的分级分组管理,当单个上位设备需要管理大量plc设备时,需要进行二次开发来完成设备的管理。
技术实现要素:4.本发明目的在于提供一种上位设备和plc设备的通信方法及介质,解决了上位设备需要集成第三方软件且只能采用windows操作系统的局限性。
5.本发明通过下述技术方案实现:
6.第一方面提供一种上位设备和plc设备的通信方法,包括以下步骤:
7.基于cip协议,建立上述上位设备与plc设备的通信连接;
8.上述plc设备接收并执行上位设备发送的控制指令。
9.上述上位设备与plc设备通过cip协议实现通信,该cip协议与操作系统平台无关,且能够确保跨操作系统平台实现通信;
10.上述cip协议具有传输介质独立性,在实现不同网络通信时,通过采用通用的底层网络操作接口来完成上位设备与plc设备之间的数据交换,确保能够在不同的现场总线标准中实现通信;也可以开发特定网络的通信模块,以适应实际应用的现场总线标准或新推出的网络标准。
11.进一步的,在建立上述上位设备与plc设备的通信连接之前,还需要对上位设备进行配置,具体步骤如下:
12.获取plc设备信息,将上述plc设备进行组别划分,得到分组信息;
13.将上述分组信息存储于上位设备,用于确定上述上位设备发送的控制指令的路径;
14.上述分组信息包括该plc设备的识别码、该plc设备存储于上位设备的存储区间码、该plc设备的网络通信地址码;
15.上述识别码相同的plc设备,该plc设备的网络通信地址码相同。
16.进一步的,上述组别包括全局级、设备组级和设备级,上述全局级包括一个或多个
设备组级,上述设备组级包括一个或多个设备级;
17.一个上述设备级对应一个plc设备,上述设备级包含该plc设备的部分或全部数据。
18.具有相同plc设备识别码的各设备级具有相同的网络通信地址码以及不同的存储区间码,全局级包含全部设备组级,一个设备组级包含的多个设备级具有不同的plc设备的识别码;
19.当上述设备级包含该plc设备的全部数据时,上述设备组对该plc设备的全部数据进行处理;
20.当上述设备级包含该plc设备的部分数据时,上述设备组只对该plc设备含于该设备组的数据进行处理。
21.进一步的,一个上述plc设备对应一个或多个设备级。
22.在单个上述plc设备的数据规模较大的情况下,将该plc设备的数据分成几部分,将每部分的数据分别对应一个设备级,该设备级对对应的数据进行处理,实现上位设备对同一个plc设备的并行处理,进行高效的通信和控制,提高通信效率。
23.进一步的,在将上述plc设备进行组别划分,得到分组信息之后,还包括以下步骤:
24.根据上述上位设备的管理处理流程,设置优先级,得到优先级队列;
25.根据上述优先级队列和分组信息,确定上述上位设备发送的控制指令的路径。
26.一个设备组级包含的所有设备级的优先级队列相同,当需要时可以将设备组级内的多个设备级进行设备级分组,同一设备级分组内的所有设备级的优先级队列相同。
27.进一步的,上述plc设备接收到上位设备发送的读取控制指令后,上述plc设备将响应报文发送至上位设备,在上位设备中进行响应报文解析。
28.进一步的,上述plc设备接收到上位设备发送的写入控制指令后,上述plc设备写入数据,并将该数据发送至上位设备。
29.进一步的,上述plc设备接收到上位设备发送的连接控制指令后,建立上述plc设备与上位设备之间的tcp连接。
30.进一步的,上述plc设备接收到上位设备发送的结束通信指令后,断开上述plc设备与上位设备之间的tcp连接。
31.第二方面提供一种计算机可读存储介质,上述计算机可读存储介质存储计算机程序,上述计算机程序使计算机执行上述的通信方法。
32.本发明与现有技术相比,具有如下的优点和有益效果:
33.上述上位设备与plc设备通过cip协议实现通信,该cip协议与操作系统平台无关,且能够确保跨操作系统平台实现通信,解决了上位设备需要集成第三方软件且只能采用windows操作系统的局限性问题;
34.上述cip协议具有传输介质独立性,在实现不同网络通信时,通过采用通用的底层网络操作接口来完成上位设备与plc设备之间的数据交换,确保能够在不同的现场总线标准中实现通信;也可以开发特定网络的通信模块,以适应实际应用的现场总线标准或新推出的网络标准。
附图说明
35.为了更清楚地说明本发明示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在附图中:
36.图1为主流程图;
37.图2为上位设备的管理等级。
具体实施方式
38.为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
39.实施例1
40.本实施例1提供一种上位设备和plc设备的通信方法,如图1所示,包括以下步骤:
41.s1、基于cip协议,建立上述上位设备与plc设备的通信连接;
42.s2、上述plc设备接收并执行上位设备发送的控制指令。
43.上述上位设备与plc设备通过cip协议实现通信,该cip协议与操作系统平台无关,且能够确保跨操作系统平台实现通信;
44.上述cip协议具有传输介质独立性,在实现不同网络通信时,通过采用通用的底层网络操作接口来完成上位设备与plc设备之间的数据交换,确保能够在不同的现场总线标准中实现通信;也可以开发特定网络的通信模块,以适应实际应用的现场总线标准或新推出的网络标准。
45.具体的实施例,在建立上述上位设备与plc设备的通信连接之前,还需要对上位设备进行配置,具体步骤如下:
46.获取plc设备信息,将上述plc设备进行组别划分,得到分组信息;
47.将上述分组信息存储于上位设备,用于确定上述上位设备发送的控制指令的路径;
48.上述分组信息包括该plc设备的识别码、该plc设备存储于上位设备的存储区间码、该plc设备的网络通信地址码;
49.上述识别码相同的plc设备,该plc设备的网络通信地址码相同。
50.具体的实施例,如图2所示,上述组别包括全局级、设备组级和设备级,上述全局级包括一个或多个设备组级,上述设备组级包括一个或多个设备级;
51.一个上述设备级对应一个plc设备,上述设备级包含该plc设备的部分或全部数据。
52.当上述设备级包含该plc设备的全部数据时,上述设备组对该plc设备的全部数据进行处理;
53.当上述设备级包含该plc设备的部分数据时,上述设备组只对该plc设备含于该设备组的数据进行处理。
54.具体的实施例,一个上述plc设备对应一个或多个设备级。
55.在单个上述plc设备的数据规模较大的情况下,将该plc设备的数据分成几部分,将每部分的数据分别对应一个设备级,该设备级对对应的数据进行处理,实现上位设备对同一个plc设备的并行处理,进行高效的通信和控制,提高通信效率。
56.具体的实施例,在将上述plc设备进行组别划分,得到分组信息之后,还包括以下步骤:
57.根据上述上位设备的管理处理流程,设置优先级,得到优先级队列;
58.根据上述优先级队列和分组信息,确定上述上位设备发送的控制指令的路径。
59.具体的实施例,上述优先级队列包括全局级优先级队列和设备组级优先级队列;上述全局级优先级队列是针对全局级内的所有设备级,上述设备组级优先级队列是针对设备组级内的所有设备级。
60.具体的实施例,具有相同plc设备的识别码的各设备级具有相同的网络通信地址码以及不同的存储区间码,一个设备组级包含一个或多个设备级,一个设备组级包含的多个设备级具有不同的plc设备识别码,一个设备组级包含的所有设备级的优先级队列相同,当需要时可以将设备组级内的多个设备级进行设备级分组,同一设备级分组内的所有设备级的优先级队列相同,全局级包含全部设备组级。
61.具体的实施例,上述上位设备根据接收到的指令以及优先级队列,确定上位设备的控制指令发送的网络通信地址码,根据上述网络通信地址码将控制指令发送至相应的plc设备;
62.若接收到的指令是全局级的控制指令,则按照全局级优先级队列,通过网络向全局级内对应该网络通信地址码的所有设备级发送该控制指令;
63.若接收到的指令是对一设备组级的控制指令,则按照设备组级优先级队列,通过网络向设备组级内对应该网络通信地址码的所有设备级发送该控制指令;
64.若接收到的指令是对不同设备组级下的设备级的控制指令,则按照全局级优先级队列和设备组级优先级队列,通过cip协议网络向不同设备组级下对应该网络通信地址码的各设备级发送该控制指令。
65.具体的实施例,上述plc设备采用常见的ab plc设备。
66.实施例2
67.上述上位设备根据接收到的指令以及优先级队列,确定上位设备的控制指令发送的网络通信地址码,根据上述网络通信地址码将控制指令发送至相应的plc设备,上述上位设备与plc设备通信的具体流程如下:
68.(1)若上述上位设备接收到的指令是全局级的读取控制指令,则按照全局级优先级队列,确定上述上位设备应该将该读取控制指令发送到plc设备的网络通信地址码,根据上述网络通信地址码,通过网络向全局级内对应该网络通信地址码的所有设备级发送该读取控制指令;
69.上述plc设备接收到上位设备发送的读取控制指令后,上述plc设备将响应报文通过网络发送至上位设备,在上位设备中进行响应报文解析,判断解析是否成功;
70.若解析成功后,则刷新数据信息,得到响应报文数据;若解析失败,则进行错误处理,此处不做要求。
71.(2)若上述上位设备接收到的指令是全局级的写入控制指令,则按照全局级优先
级队列,确定上述上位设备应该将该写入控制指令发送到plc设备的网络通信地址码,根据上述网络通信地址码,通过网络向全局级内对应该网络通信地址码的所有设备级发送该写入控制指令;
72.上述plc设备接收到上位设备发送的写入控制指令后,从上述plc设备写入数据,并将该数据发送至上位设备,判断写入是否成功;若写入失败,则进行错误处理,此处不做要求。
73.(3)若上述上位设备接收到的指令是全局级的连接控制指令,则按照全局级优先级队列,确定上述上位设备应该将该连接控制指令发送到plc设备的网络通信地址码,根据上述网络通信地址码,通过网络向全局级内对应该网络通信地址码的所有设备级发送该连接控制指令;
74.上述plc设备接收到上位设备发送的连接控制指令后,建立上述plc设备与上位设备之间的tcp连接;向上述plc设备发送nop报文,用于检测tcp连接是否成功;
75.若tcp连接成功,则可继续实现信息交互;若tcp连接失败,则重新建立上述上位设备与plc设备的通信连接;
76.(4)若上述上位设备接收到的指令是全局级的结束通信指令,则按照全局级优先级队列,确定上述上位设备应该将该结束通信指令发送到plc设备的网络通信地址码,根据上述网络通信地址码,通过网络向全局级内对应该网络通信地址码的所有设备级发送该结束通信指令;
77.上述plc设备接收到上位设备发送的结束通信指令后,断开上述plc设备与上位设备之间的tcp连接;向上述plc设备发送注销会话报文,关闭上位设备与plc设备之间的tcp连接。
78.(5)若上述上位设备接收到的指令是设备组级的读取控制指令,则按照设备组级优先级队列,确定上述上位设备应该将该读取控制指令发送到plc设备的网络通信地址码,根据上述网络通信地址码,通过网络向该设备组级内对应该网络通信地址码的所有设备级发送该读取控制指令;
79.上述plc设备接收到上位设备发送的读取控制指令后,上述plc设备将响应报文通过网络发送至上位设备,在上位设备中进行响应报文解析,判断解析是否成功;
80.若解析成功后,则刷新数据信息,得到响应报文数据;若解析失败,则进行错误处理,此处不做要求。
81.(6)若上述上位设备接收到的指令是设备组级的写入控制指令,则按照设备组级优先级队列,确定上述上位设备应该将该写入控制指令发送到plc设备的网络通信地址码,根据上述网络通信地址码,通过网络向该设备组级内对应该网络通信地址码的所有设备级发送该写入控制指令;
82.上述plc设备接收到上位设备发送的写入控制指令后,从上述plc设备写入数据,并将该数据发送至上位设备,判断写入是否成功;若写入失败,则进行错误处理,此处不做要求。
83.(7)若上述上位设备接收到的指令是设备组级的连接控制指令,则按照设备组级优先级队列,确定上述上位设备应该将该连接控制指令发送到plc设备的网络通信地址码,根据上述网络通信地址码,通过网络向该设备组级内对应该网络通信地址码的所有设备级
发送该连接控制指令;
84.上述plc设备接收到上位设备发送的连接控制指令后,建立上述plc设备与上位设备之间的tcp连接;向上述plc设备发送nop报文,用于检测tcp连接是否成功;
85.若tcp连接成功,则可继续实现信息交互;若tcp连接失败,则重新建立上述上位设备与plc设备的通信连接;
86.(8)若上述上位设备接收到的指令是设备组级的结束通信指令,则按照设备组级优先级队列,确定上述上位设备应该将该结束通信指令发送到plc设备的网络通信地址码,根据上述网络通信地址码,通过网络向该设备组级内对应该网络通信地址码的所有设备级发送该结束通信指令;
87.上述plc设备接收到上位设备发送的结束通信指令后,断开上述plc设备与上位设备之间的tcp连接;向上述plc设备发送注销会话报文,关闭上位设备与plc设备之间的tcp连接。
88.(9)若上述上位设备接收到的指令是设备组级的读取控制指令,则按照全局级优先级队列和设备组级优先级队列,确定上述上位设备应该将该读取控制指令发送到plc设备的网络通信地址码,根据上述网络通信地址码,通过cip协议网络向不同设备组级下对应该网络通信地址码的各设备级发送该读取控制指令;
89.上述plc设备接收到上位设备发送的读取控制指令后,上述plc设备将响应报文通过网络发送至上位设备,在上位设备中进行响应报文解析,判断解析是否成功;
90.若解析成功后,则刷新数据信息,得到响应报文数据;若解析失败,则进行错误处理,此处不做要求。
91.(10)若上述上位设备接收到的指令是设备组级的写入控制指令,则按照全局级优先级队列和设备组级优先级队列,确定上述上位设备应该将该写入控制指令发送到plc设备的网络通信地址码,根据上述网络通信地址码,通过cip协议网络向不同设备组级下对应该网络通信地址码的各设备级发送该写入控制指令;
92.上述plc设备接收到上位设备发送的写入控制指令后,从上述plc设备写入数据,并将该数据发送至上位设备,判断写入是否成功;若写入失败,则进行错误处理,此处不做要求。
93.(11)若上述上位设备接收到的指令是设备组级的连接控制指令,则按照全局级优先级队列和设备组级优先级队列,确定上述上位设备应该将该连接控制指令发送到plc设备的网络通信地址码,根据上述网络通信地址码,通过cip协议网络向不同设备组级下对应该网络通信地址码的各设备级发送该连接控制指令;
94.上述plc设备接收到上位设备发送的连接控制指令后,建立上述plc设备与上位设备之间的tcp连接;向上述plc设备发送nop报文,用于检测tcp连接是否成功;
95.若tcp连接成功,则可继续实现信息交互;若tcp连接失败,则重新建立上述上位设备与plc设备的通信连接;
96.(12)若上述上位设备接收到的指令是设备组级的结束通信指令,则按照全局级优先级队列和设备组级优先级队列,确定上述上位设备应该将该结束通信指令发送到plc设备的网络通信地址码,根据上述网络通信地址码,通过cip协议网络向不同设备组级下对应该网络通信地址码的各设备级发送该结束通信指令;
97.上述plc设备接收到上位设备发送的结束通信指令后,断开上述plc设备与上位设备之间的tcp连接;向上述plc设备发送注销会话报文,关闭上位设备与plc设备之间的tcp连接。
98.实施例3
99.本实施例3提供一种计算机可读存储介质,上述计算机可读存储介质存储计算机程序,上述计算机程序使计算机执行上述的通信方法。
100.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。