CN103401930B - 一种基于Web Service的工业监控方法及装置 - Google Patents
一种基于Web Service的工业监控方法及装置 Download PDFInfo
- Publication number
- CN103401930B CN103401930B CN201310337061.2A CN201310337061A CN103401930B CN 103401930 B CN103401930 B CN 103401930B CN 201310337061 A CN201310337061 A CN 201310337061A CN 103401930 B CN103401930 B CN 103401930B
- Authority
- CN
- China
- Prior art keywords
- data
- service data
- protocol
- resource
- name
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012544 monitoring process Methods 0.000 title claims abstract description 17
- 238000012806 monitoring device Methods 0.000 claims abstract description 11
- 230000010354 integration Effects 0.000 claims abstract description 6
- 230000006978 adaptation Effects 0.000 claims description 39
- 238000004806 packaging method and process Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 abstract description 15
- 238000006243 chemical reaction Methods 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 101000746134 Homo sapiens DNA endonuclease RBBP8 Proteins 0.000 description 1
- 101000969031 Homo sapiens Nuclear protein 1 Proteins 0.000 description 1
- 102100021133 Nuclear protein 1 Human genes 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种基于Web Service的工业监控方法,所述方法包括:接收到Web Service服务数据请求时,依据预设的服务生成规则描述表生成原始服务数据;对所述原始服务数据进行转换整合,并按协议类型将整合后服务数据封装为相应的协议格式数据包;将所述数据包发送给相应的可程序设计逻辑控制器PLC并接收所述PLC返回的资源数据;解析所述资源数据,将解析成功的资源数据封装为服务数据,并向请求方返回所述服务数据。本发明同时还公开了一种基于Web Service的工业监控装置。采用本发明的技术方案,实现了工业现场的实时监测和控制,便于集中控制和查看生产状态,还具有良好的可扩展性和稳定性,并且大大降低了企业的生产升本。
Description
技术领域
本发明涉及计算机信息处理技术,具体涉及一种基于Web Service的工业监控方法及装置。
背景技术
传统的工业制造企业在现场生产运作的方式,一般是由现场值班人员通过工业组态软件或者仪表对生产流水线的状态进行查看,当出现异常情况时,可通过控制一些阀门的闭合或设定一些参数达到对现场生产的有效控制。在这样的制造企业的运作流程中,由于生产基地的分散性,因而需要配备大量的值班人员对生产基地昼夜的监控,增加了成本的消耗,而且由于生产基地的固定性,只能通过本地设备对其进行监控,不能做到集中控制和移动查看。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于Web Service的工业监控方法及装置,能够实现工业现场的实时监测和控制,便于集中控制和查看生产状态,并且能够降低企业的生产升本。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种基于Web Service的工业监控方法,所述方法包括:
接收到Web Service服务数据请求时,依据预设的服务生成规则描述表生成原始服务数据;
对所述原始服务数据进行转换整合,并按协议类型将整合后的服务数据封装为相应的协议格式数据包;
将所述数据包发送给相应的可程序设计逻辑控制器(PLC,Programmable LogicController)并接收所述PLC返回的资源数据;
解析所述资源数据,将解析成功的资源数据封装为服务数据,并向请求方返回所述服务数据。
上述方案中,所述接收到Web Service服务数据请求时,依据预先设置的服务生成规则描述表生成原始服务数据,包括:
接收到Web Service服务数据请求,获取所述Web Service服务数据请求中的名字NAME字段或名字-值NAME-VALUE字段;将所述NAME字段在预设的服务生成规则描述表中进行匹配,在匹配成功时,获取所述服务生成规则描述表中记录的与匹配的所述NAME对应的DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE,将所获取的NAME、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE组合或NAME、VALUE、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE组合封装为原始服务数据。
上述方案中,所述对所述原始服务数据按预设规则进行转换整合,并按协议类型将整合后的服务数据封装为相应的协议格式数据包,包括:
抽取所述原始服务数据中的一个以上的字段,根据所述一个以上的字段在预设的资源状态描述表中进行匹配,匹配成功时获取与所述资源描述表中匹配到的与所述一个以上的字段对应的COM_ID、PLC_ID、SENSOR_ID、WORD_COUNT、DEVICE_NAME、DEVICE_PROTOCOL字段及对应的值,将获取的字段及对应的值与所述原始服务数据进行整合为新的服务数据;
获取所述新的服务数据中与资源相关的接口信息,根据所述资源相关的接口信息在预设的接口描述表进行匹配,匹配成功时获取所述新的服务数据中的设备信息,根据所述设备信息检索预设的协议列表,确定所述新的服务数据的协议类型,将所述整合后的服务数据封装为所确定协议格式的数据包。
上述方案中,所述将所述数据包发送给相应的PLC并接收所述PLC返回的资源数据,包括:
根据所述数据包中的COM_ID确定相应的串口数据通道处于打开状态时,根据所述数据包中的PLC_ID将所述数据包通过所述串口数据通道发送给相应的PLC;
所述PLC解析接收到的数据包,根据所述数据包中的SENSOR_ID获取对应传感器的资源数据,将所述资源数据封装在数据包中并返回。
上述方案中,所述解析所述资源数据,包括:
确定资源数据的头部及校验码正确,提取所述资源数据中Bytes Count对应的字段值,并确定返回的数据长度和要求的数据长度相等后,按照Bytes Count字段值截取资源数据中相同长度Data字段的字节数组;
检索资源状态描述表,判断所述字节数组中是否存在反高低字节,当判断的结果为否时,直接确定所述字节数组的值;当判断结果为是时,重新编排所述字节数组并确定重新编排后的字节数组的值;
判断所述字节数组的值的确定过程中是否存在偏移量或倍率确定操作,当判断结果为是时,确定偏移量和倍率而得到真实服务数据;当判断结果为否时,直接得到真实服务数据。
本发明还提供了一种基于Web Service的工业监控装置,所述装置包括:数据访问单元、协议适配单元和协议接入单元;其中
所述数据访问单元,用于接收到Web Service服务数据请求时,依据预设的服务生成规则描述表生成原始服务数据,将所述原始服务数据发送给所述协议适配单元;还用于向请求方返回所述协议适配单元发送的服务数据;
所述协议适配单元,用于将所述数据访问单元发送的原始服务数据进行转换整合,并按协议类型将整合后的服务数据封装为相应的协议格式数据包,将所述数据包发送给所述协议接入单元;还用于解析所述协议接入单元返回的资源数据,将解析成功的资源数据封装为服务数据,将所述服务数据发送给所述数据访问单元;
所述协议接入单元,用于将所述协议适配单元发送的数据包发送给相应的PLC并接收所述PLC返回的资源数据,将所述资源数据发送给所述协议适配单元。
上述方案中,所述数据访问单元包括:Web服务单元和数据生成单元;其中,
所述Web服务单元,用于接收到Web Service服务数据请求时,向所述数据生成单元发送Web Service服务数据请求消息;还用于接收所述协议适配单元发送的服务数据并返回所述服务数据;
所述数据生成单元,用于获取所述Web Service服务数据请求中的名字NAME字段或名字-值NAME-VALUE字段;将所述NAME字段在预设的服务生成规则描述表中进行匹配,在匹配成功时,获取所述服务生成规则描述表中记录的与匹配的所述NAME对应的DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE,将所获取的NAME、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE组合或NAME、VALUE、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE组合封装为原始服务数据,将所述原始服务数据发送给所述协议适配单元。
上述方案中,所述协议适配单元包括:整合单元和协议执行单元;其中,
所述整合单元,用于抽取所述原始服务数据中的一个以上的字段,根据所述一个以上的字段在预设的资源状态描述表中进行匹配,匹配成功时获取与所述资源描述表中匹配到的与所述一个以上的字段对应的COM_ID、PLC_ID、SENSOR_ID、WORD_COUNT、DEVICE_NAME、DEVICE_PROTOCOL字段及对应的值,将获取的字段及对应的值与所述原始服务数据进行整合为新的服务数据,将所述新的服务数据发送给所述协议执行单元;
所述协议执行单元,用于获取所述新的服务数据中与资源相关的接口信息,根据所述资源相关的接口信息在预设的接口描述表进行匹配,匹配成功时获取所述新的服务数据中的设备信息,根据所述设备信息检索预设的协议列表,确定所述新的服务数据的协议类型,将所述整合后的服务数据封装为所确定协议格式的数据包,将所述数据包发送给所述协议接入单元。
上述方案中,所述协议适配单元还包括解析单元,用于确定资源数据的头部及校验码正确,提取所述资源数据中Bytes Count对应的字段值,并确定返回的数据长度和要求的数据长度相等后,按照Bytes Count字段值截取资源数据中相同长度Data字段的字节数组;检索资源状态描述表,判断所述字节数组中是 否存在反高低字节,当判断的结果为否时,直接确定所述字节数组的值;当判断结果为是时,重新编排所述字节数组并确定重新编排后的字节数组的值;判断所述字节数组的值的确定过程中是否存在偏移量或倍率确定操作,当判断结果为是时,确定偏移量和倍率而得到真实服务数据;当判断结果为否时,直接得到真实服务数据,将所述服务数据发送给所述数据访问单元。
上述方案中,所述协议接入单元,具体用于根据所述数据包中的COM_ID确定相应的串口数据通道处于打开状态时,根据所述数据包中的PLC_ID将所述数据包通过所述串口数据通道发送给相应的PLC,并接收返回的资源数据,将所述资源数据发送给所述协议适配单元。
本发明提供的基于Web Service的工业监控方法及装置,接收到Web Service服务数据请求时,依据预设的服务生成规则描述表生成原始服务数据;对所述原始服务数据进行转换整合,并按协议类型将整合后服务数据封装为相应的协议格式数据包;将所述数据包发送给相应的PLC并接收所述PLC返回的资源数据;解析所述资源数据,将解析成功的资源数据封装为服务数据,并向请求方返回所述服务数据。如此,实现了工业现场的实时监测和控制,便于集中控制和查看生产状态,还具有良好的可扩展性和稳定性,并且大大降低了企业的生产升本。
附图说明
图1为本发明实施例的基于Web Service的工业监控方法的流程示意图;
图2为本发明实施例中依据预设的服务生成规则描述表生成原始服务数据的实现方法流程示意图;
图3为本发明实施例中将原始服务数据预设规则进行转换整合并按协议类型将整合后服务数据封装为相应的协议格式数据包的实现方法流程示意图;
图4为本发明实施例中解析资源数据的方法流程示意图;
图5为本发明实施例的基于Web Service的工业监控装置的组成结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细的说明。
图1为本发明实施例的基于Web Service的工业监控方法的流程示意图,如图1所示,包括以下步骤:
步骤101:接收到Web Service服务数据请求时,依据预设的服务生成规则描述表生成原始服务数据。
图2为本发明实施例中依据预设的服务生成规则描述表生成原始服务数据的实现方法流程示意图,如图2所示,所述接收到Web Service服务数据请求时,依据预先设置的服务生成规则描述表生成原始服务数据,包括以下步骤:
步骤1011:接收到Web Service服务数据请求,获取所述Web Service服务数据请求中的NAME字段或NAME-VALUE字段。
这里,用户可通过浏览器发送述Web Service请求或调用本地服务器中的数据发送Web Service数据请求;从所述Web Service服务数据请求的统一资源定位符(URL,Uniform Resource Locator)获取要读取的变量名称(NAME),或者获取要写入的变量名称(NAME)及要写入的值(VALUE),得到名称-值(NAME-VALUE)。
步骤1012~步骤1013:加载预设的服务生成规则描述表,将所述NAME字段在所述服务生成规则描述表中进行匹配,当匹配成功时,执行步骤1014~步骤1015;当匹配失败时,执行步骤1016。
步骤1014~步骤1015:获取所述服务生成规则描述表中记录的与匹配的所述NAME对应的DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE,将所获取的NAME、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE组合或NAME、VALUE、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE组合封装为原始服务数据。
这里,表1为本发明实施例中预设的服务生成规则描述表;其中,NAME表示变量名,DATA_TYPE表示变量的类型(模拟量或者开关量), CONTROL_TYPE表示变量的控制类型(1表示只读,2表示可读并可写),MEASURE_TYPE表示变量的中文名称。
NAME | DATA_TYPE | CONTROL_TYPE | MEASURE_TYPE |
temperature | analog | 1 | 室外温度 |
power | analog | 2 | 功率 |
value | digital | 2 | 阀门 |
表1
具体的,当只获取到名称(NAME)时,检索所述服务生成规则描述表,找到对应的NAME记录时,将所述服务生成规则描述表中对应的NAME、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE组合并封装为原始服务数据;当没有找到对应的NAME记录时,返回错误信息;
当获取到名称-值(NAME-VALUE)时,表示要修改变量NAME的值VALUE,检索所述服务生成规则描述表,找到对应的NAME记录时,判断CONTROL_TYPE的值是否为2,如果CONTROL_TYPE的值为1,说明与该Web Service服务数据只能读取,不能修改,返回错误信息;如果CONTROL_TYPE的值为2,则将所述服务生成规则描述表中对应的NAME、VALUE、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE并封装为原始服务数据;当没有找到对应的NAME记录时,返回错误信息。
步骤1016:提示无此类型数据,并返回。
步骤102:将所述原始服务数据按预设规则进行转换整合,并按预设协议规则封装为所述协议格式的数据包。
图3为本发明实施例中将原始服务数据封装为数据包的实现方法流程示意图,如图3所示,所述将所述原始服务数据按预设规则进行转换整合,并按预设的协议规则封装为所述协议格式的数据包,包括以下步骤:
步骤10201~步骤10202:抽取所述原始服务数据中的一个以上的字段,根据所述一个以上的字段在预设的资源状态描述表中进行匹配,判断匹配是否成功,若判断的结果为否,执行步骤10203:提示错误信息,资源不可用并返回;若判断的结果为是,执行步骤10204。
这里,表2为本发明实施例中的资源状态描述表,所述资源状态描述表描述了资源的相关属性信息,这些属性信息可以从备注中看到。
表2
具体的,所述原始服务数据,可以是访问的原始服务数据{NAME、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE},或是下发的原始服务数据{NAME、VALUE、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE},从所述原始服务数据中提取到NAME、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE等字段名所对应的值,根据上述字段检索资源状态描述表,判断资源是否可用,所述判断过程包括如下步骤:
根据提取到所述原始服务数据中的NAME、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE等字段名对应的值,搜索资源状态描述 表中相对应的字段,判断是否有纪录与之对应,若没有对应的记录,则提示错误信息,资源不可用并返回;
若有对应的记录,并且状态位STATUS为0,则提示错误信息,资源不可用并返回;当状态位STATUS为1时,则说明资源可用,进一步执行步骤10204。
步骤10204:获取与所述资源描述表中匹配到的与所述一个以上的字段对应的COM_ID、PLC_ID、SENSOR_ID、WORD_COUNT、DEVICE_NAME、DEVICE_PROTOCOL字段及对应的值,将获取的字段及对应的值与所述原始服务数据进行整合为新的服务数据;
具体的,检索所述资源状态描述表,获取所述原始服务数据中的相关字段如COM_ID、PLC_ID、SENSOR_ID、WORD_COUNT、DEVICE_NAME、DEVICE_PROTOCOL等字段对应的值,将所述相关字段、所述相关字段对应的值和所述原始服务数据进行整合,封装成一个新的服务数据。
步骤10205~步骤10206:获取所述新的服务数据中与资源相关的接口信息,根据所述资源相关的接口信息在预设的接口描述表进行匹配,判断匹配是否成功,若判断的结果为否,执行步骤10207;若判断的结果为是,执行步骤10208。
步骤10207:提示错误信息,接口不可用并返回。
这里,表3为本发明实施例中的接口描述表,从表2资源状态描述表和表3接口描述表可以看出,两个表中都有COM_ID这个字段,表2中的COM_ID字段表示了资源是通过指定的物理串口接入的;表3中的COM_ID字段表明主机有哪些物理串口,以及这些串口的使用情况,比如哪些串口可用,哪些串口已经打开了等等。根据从表2中获取的COM_ID字段对应的值检索接口描述表,若所述接口描述表里没有对应的字段,说明接口不可用,提示错误信息,接口不可用并返回;若所述接口描述表里有对应的字段,但状态位STATUS为0,说明接口不可用,则提示错误信息,接口不可用并返回;若所述接口描述表里有对应的字段,且状态位STATUS为1,说明接口可用,进一步执行步骤10208。
字段名 | 含义 | 备注 |
COM_ID | 串口号 | 表示物理的串口号 |
PORTNAME | 串口名称 | 表示物理的串口名,如COM1 |
BAUDRATE | 波特率 | 表示物理串口的波特率 |
FLOWCONTROLIN | 流入控制 | 表示通道的输入拥塞控制 |
FLOWCONTROLOUT | 流出控制 | 表示通道的输入拥塞控制 |
STARTBITS | 起始位 | 表示实际数据的起始位 |
DATABITS | 数据位 | 表示实际的有效数据位 |
StopBITS | 停止位 | 表示数据包的停止位 |
PARITY | 校验码 | 表示校验码,如奇偶校验等 |
STATUS | 状态 | 0表示不可用,1表示可用 |
OPEN | 开/闭合状态 | 0表示关闭,1表示打开 |
表3
步骤10208~步骤10209:获取所述新的服务数据中的设备信息,根据所述设备信息检索预设的协议列表,判断所述协议列表中是否有匹配项,若判断的结果为否,执行步骤10210;若判断的结果为是,执行步骤10211。
步骤10210:提示错误信息,协议匹配失败并返回。
表4为协议列表,如表4所示,DEVICE_NAME表示设备名称,即设备制造商,DEVICE_PROTOCOL表示设备所使用的协议,如MODBUS_RTU模式和MODBUS_ASCII码模式等等,因为同一种设备在不同的工作模式下所使用的协议也有所不同,如MODBUS总线协议是一种标准协议,不同的设备制造商可能对MODBUS协议有部分改动。因此,用设备名称(DEVICE_NAME)和设备使用的协议(DEVICE_PROTOCOL)可以唯一确定某种产品在某种工作模式下所使用的具体协议。
字段名 | 含义 | 备注 |
DEVICE_NAME | 设备名称 | 设备制造商,如西门子、台达、三星等 |
DEVICE_PROTOCOL | 设备协议 | 如MODBUS_RTU和MODBUS_ASCII码 |
表4
具体的,从所述原始服务数据中提取DEVICE_NAME和DEVICE_PROTOCOL字段对应的信息,搜索协议列表中对应的字段及相应的值,若没有该字段相应的值,则说明协议匹配失败,提示错误信息,协议匹配失败并返回;若有该字段对应的值,则说明协议匹配成功,继续执行步骤10211。
步骤10211:确定所述新的服务数据的协议类型,将所述整合后的服务数 据封装为所确定协议格式的数据包。
下面以具体的实施例对所述整合后的服务数据封装为所述协议格式的数据包进行具体说明。
以制造商为台达、设备协议为MODBUS_RTU协议为例。表5和表6分别为台达MODBUS_RTU协议下发数据包的格式示意表和台达MODBUS_RTU协议接收数据包的格式示意表。以读取资源中的模拟量数据为例,从表5中,可以根据整合后的服务数据中的相关字段进行封装协议数据包,具体方式如下:
提取所述整合后的服务数据中的PLC_ID、SENSOR_ID、WORD_COUNT等字段信息,依据表5中的格式,将PLC_ID对应于SLAVE ADDRESS,转换为16进制表示方式,占用一个字节;FUNCTION设为读取模拟量的功能码,用16进制表示,占用一个字节;将SENSOR_ID转换为16进制表示方式,截取高字节为START ADDRESS Hi,截取低字节为START ADDRESS Lo;将WORD_COUNT转换成两个字节的16进制表示形式,取高字节为Number of Points Hi,取低字节为Number of Points Lo;将数据包前面的6个字节进行CRC16校验,取校验码低字节为CRC(low byte),取校验码高字节为CRC(high byte),最终得到MODBUS_RTU协议格式的数据包。
表5
表6
步骤103:将所述数据包发送给相应的PLC并接收所述PLC返回的资源数据;
这里,所述将所述数据包发送给相应的PLC并接收返回的资源数据,包括:
根据所述数据包中的COM_ID确定相应的串口数据通道处于打开状态时,根据所述数据包中的PLC_ID将所述数据包通过所述串口数据通道发送给相应的PLC;
所述PLC解析接收到的数据包,根据所述数据包中的SENSOR_ID获取对应传感器的资源数据,将所述资源数据封装在数据包中并返回。
具体的,检查被保存的串口参数信息中OPEN字段的值,该字段标识了此串口的开/闭状态;如果OPEN为1,则表示串口已经打开,数据通道已经建立了,可以通过这个数据通道,将数据包直接发送给相应的PLC;如果OPEN为0,则表示串口未打开,数据通道未建立,需要先打开串口。按照保存的串口参数信息(PORTNAME、BAUDRATE、FLOWCONTROLIN、FLOWCONTROLOUT、STARBITS、DATABITS、STOPBITS、PARITY字段的信息)调用串口的API,如果打开成功,则可以将数据包直接发送给相应的PLC,并且更新接口描述表;否则就提示错误(串口打开失败)信息并返回。
确定串口打开后,数据包经串口数据通道发送至相应的PLC,从表2资源状态描述表和表3接口描述表可以看出,由COM_ID、PLC_ID、SENSOR_ID可以唯一确定某个资源,因此,通过这种方式,可以根据数据包中的COM_ID所表示的物理串口,下发数据包到指定的PLC_ID所表示的PLC。
所述PLC接收到数据包后,解析数据包,将所要读取的SENSOR_ID对应的寄存器地址中所保存的数据封装在协议数据包中,并将重新封装后的数据包 通过串口数据通道返回。
其中,所述串口包括RS-485接口或RS-232接口,通过不同的接口连接相应的PLC,例如,通过RS-232接口或RS-232接口连接西门子PLC或台达PLC。
其中,所述PLC可与多个设置在设备上的不同种类的传感器连接,通过所述多个传感器获取设备的物理状态,并将状态值存储在所述PLC中;所述传感器包括:温度传感器、压力传感器、频率传感器、功率传感器、浓度传感器、流速传感器等等。
步骤104:解析所述资源数据,将解析成功的资源数据封装成服务数据,并通过发布Web Service服务返回所述服务数据结果。
图4为本发明实施例中解析资源数据的方法流程示意图,如图4所示,所述解析所述资源数据,包括以下步骤:
步骤10401~步骤10402:校验资源数据的头部及校验码,并判断所述资源数据的头部及校验码是否正确,在判断的结果为否时,执行步骤10403:解析失败并返回;在判断的结果为是时,执行步骤10404。
具体的,校验数据包头部及校验码是否正确包括以下步骤:
提取所述资源数据中第一个字节和第二个字节,以及最后两个字节;判断第一个字节(即为SLAVE ADDRESS)的值是否与下发时的PLC_ID的值相等,如果不相等,解析失败;判断第二个字节(即为FUNCTION)的值是否与下发数据包的FUNCTION值相等,如果不相等,则解析失败;除最后两个字节外,对数据包其它字节进行校验码计算,比较计算结果是否与最后两个字节对应的值相等,如果不相等,则解析失败;如果上述判断结果都相等,则说明数据包头部以及检验码正确。
步骤10404~步骤10405:提取所述资源数据中Bytes Count对应的字段值,并判断返回的数据长度和要求的数据长度是否相等,若判断的结果为否,执行步骤10403:解析失败并返回;若判断的结果为是,执行步骤10406。
步骤10406:按照Bytes Count字段值截取资源数据中相同长度Data字段的字节数组。
这里,所述字节数组为所要求的原始数据,还需要进一步解析成所能理解的真实数据。
步骤10407~步骤10408:检索资源状态描述表,判断所述字节数组中是否存在反高低字节,当判断的结果为否时,执行步骤10409:直接确定所述字节数组的值,继续执行步骤10411;当判断结果为是时,执行步骤10410:重新编排所述字节数组并确定重新编排后的字节数组的值,继续执行步骤10411。
步骤10411:判断所述字节数组的值的确定过程中是否存在偏移量计算或倍率确定操作,若判断的结果为否,执行步骤10412:直接得到真实服务数据;若判断的结果为是时,执行步骤10413:确定偏移量和倍率而得到真实服务数据。
判断计算过程中是否存在偏移量计算和倍率计算操作,当判断结果为是时,经过相应的偏移量计算或倍率计算还原得到真实服务数据;当判断结果为否时,直接得到真实服务数据。
进一步的,将解析后的真实数据,包括资源的NAME和资源的VALUE等相关信息封装成服务数据,通过发布Web Service服务将VALUE值返回。
基于上述方法,本发明还记载了一种Web Service的工业监控装置,如图5所示,所述装置包括:数据访问单元51、协议适配单元52和协议接入单元53;其中
所述数据访问单元51,用于接收到Web Service服务数据请求时,依据预设的服务生成规则描述表生成原始服务数据,将所述原始服务数据发送给所述协议适配单元52;还用于向请求方返回所述协议适配单元52发送的服务数据;
所述协议适配单元52,用于将所述数据访问单元51发送的原始服务数据进行转换整合,并按协议类型将整合后的服务数据封装为相应的协议格式数据包,将所述数据包发送给所述协议接入单元53;还用于解析所述协议接入单元53返回的资源数据,将解析成功的资源数据封装为服务数据,将所述服务数据发送给所述数据访问单元51;
所述协议接入单元53,用于将所述协议适配单元52发送的数据包发送给 相应的PLC并接收所述PLC返回的资源数据,将所述资源数据发送给所述协议适配单元52。
这里,所述协议接入单元53可通过RS-485接口或RS-232接口与不同的PLC连接,如台达PLC、西门子PLC、三菱PLC等;由于不同的PLC的工作模式所需要的协议有所不同,比如:台达PLC的MODBUS-RTU模式,台达PLC的MODBUS-ASC码模式,西门子PLC的MODBUS-RTU模式,西门子PLC的MODBUS-ASC码模式等等,因此协议适配单元52需要将数据封装为与所述模式相适应的协议格式的数据包,再通过协议接入单元53相适应的接口发送给对应的PLC。
所述PLC可与多个设置在设备上的不同种类的传感器连接,通过所述多个传感器获取设备的物理状态,并将状态值存储在所述PLC中;所述传感器包括:温度传感器、压力传感器、频率传感器、功率传感器、浓度传感器、流速传感器等等。
进一步的,所述数据访问单元51包括:Web服务单元511和数据生成单元512;其中,
所述Web服务单元511,用于接收到Web Service服务数据请求时,向所述数据生成单元512发送Web Service服务数据请求消息;还用于接收所述协议适配单元52发送的服务数据并返回所述服务数据;
所述数据生成单元512,用于获取所述Web Service服务数据请求中的名字NAME字段或名字-值NAME-VALUE字段;将所述NAME字段在预设的服务生成规则描述表中进行匹配,在匹配成功时,获取所述服务生成规则描述表中记录的与匹配的所述NAME对应的DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE,将所获取的NAME、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE组合或NAME、VALUE、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE组合封装为原始服务数据,将所述原始服务数据发送给所述协议适配单元52。
进一步的,所述协议适配单元52包括:整合单元521和协议执行单元522; 其中,
所述整合单元521,用于抽取所述原始服务数据中的一个以上的字段,根据所述一个以上的字段在预设的资源状态描述表中进行匹配,匹配成功时获取与所述资源描述表中匹配到的与所述一个以上的字段对应的COM_ID、PLC_ID、SENSOR_ID、WORD_COUNT、DEVICE_NAME、DEVICE_PROTOCOL字段及对应的值,将获取的字段及对应的值与所述原始服务数据进行整合为新的服务数据,将所述新的服务数据发送给所述协议执行单元522;
所述协议执行单元522,用于获取所述新的服务数据中与资源相关的接口信息,根据所述资源相关的接口信息在预设的接口描述表进行匹配,匹配成功时获取所述新的服务数据中的设备信息,根据所述设备信息检索预设的协议列表,确定所述新的服务数据的协议类型,将所述整合后的服务数据封装为所确定协议格式的数据包,将所述数据包发送给所述协议接入单元53。
进一步的,所述协议适配单元52还包括解析单元523,用于确定资源数据的头部及校验码正确,提取所述资源数据中Bytes Count对应的字段值,并确定返回的数据长度和要求的数据长度相等后,按照Bytes Count字段值截取资源数据中相同长度Data字段的字节数组;检索资源状态描述表,判断所述字节数组中是否存在反高低字节,当判断的结果为否时,直接确定所述字节数组的值;当判断结果为是时,重新编排所述字节数组并确定重新编排后的字节数组的值;判断所述字节数组的值的确定过程中是否存在偏移量或倍率确定操作,当判断结果为是时,确定偏移量和倍率而得到真实服务数据;当判断结果为否时,直接得到真实服务数据,将所述服务数据发送给所述数据访问单元51。
进一步的,所述协议接入单元53,具体用于根据所述数据包中的COM_ID确定相应的串口数据通道处于打开状态时,根据所述数据包中的PLC_ID将所述数据包通过所述串口数据通道发送给相应的PLC,并接收返回的资源数据,将所述资源数据发送给所述协议适配单元52。
本领域技术人员应当理解,图5中所示的基于Web Service的工业监控装置 的各处理模块及其子模块的实现功能可参照前述基于Web Service的工业监控方法的相关描述而理解。本领域技术人员应当理解,图5所示的基于Web Service的工业监控装置中各模块及其子模块的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同和改进等,均包含在本发明的保护范围之内。
Claims (9)
1.一种基于Web Service的工业监控方法,其特征在于,所述方法包括:
接收到Web Service服务数据请求时,依据预设的服务生成规则描述表生成原始服务数据;
对所述原始服务数据进行转换整合,并按协议类型将整合后的服务数据封装为相应的协议格式数据包;
将所述数据包发送给相应的可程序设计逻辑控制器PLC并接收所述PLC返回的资源数据;
解析所述资源数据,将解析成功的资源数据封装为服务数据,并向请求方返回所述服务数据;
其中,所述对所述原始服务数据进行转换整合,包括:
抽取所述原始服务数据中的一个以上的字段,根据所述一个以上的字段在预设的资源状态描述表中进行匹配,匹配成功时获取与所述资源状态描述表中匹配到的与所述一个以上的字段对应的COM_ID、PLC_ID、SENSOR_ID、WORD_COUNT、DEVICE_NAME、DEVICE_PROTOCOL字段及对应的值,将获取的字段及对应的值与所述原始服务数据进行整合为新的服务数据;
所述解析所述资源数据,包括:确定资源数据的头部及校验码正确,提取所述资源数据中Bytes Count对应的字段值,并确定返回的数据长度和要求的数据长度相等后,按照Bytes Count字段值截取资源数据中相同长度Data字段的字节数组;
检索资源状态描述表,判断所述字节数组中是否存在反高低字节,当判断的结果为否时,直接确定所述字节数组的值;当判断结果为是时,重新编排所述字节数组并确定重新编排后的字节数组的值;
判断所述字节数组的值的确定过程中是否存在偏移量或倍率确定操作,当判断结果为是时,确定偏移量和倍率而得到真实服务数据;当判断结果为否时,直接得到真实服务数据。
2.根据权利要求1所述的工业监控方法,其特征在于,所述接收到WebService服务数据请求时,依据预先设置的服务生成规则描述表生成原始服务数据,包括:
接收到Web Service服务数据请求,获取所述Web Service服务数据请求中的名字NAME字段或名字-值NAME-VALUE字段;将所述NAME字段在预设的服务生成规则描述表中进行匹配,在匹配成功时,获取所述服务生成规则描述表中记录的与匹配的所述NAME对应的DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE,将所获取的NAME、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE组合或NAME、VALUE、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE组合封装为原始服务数据。
3.根据权利要求1所述的工业监控方法,其特征在于,所述按协议类型将整合后的服务数据封装为相应的协议格式数据包,包括:
获取所述新的服务数据中与资源相关的接口信息,根据所述资源相关的接口信息在预设的接口描述表进行匹配,匹配成功时获取所述新的服务数据中的设备信息,根据所述设备信息检索预设的协议列表,确定所述新的服务数据的协议类型,将所述整合后的服务数据封装为所确定协议格式的数据包。
4.根据权利要求1或3所述的工业监控方法,其特征在于,所述将所述数据包发送给相应的PLC并接收所述PLC返回的资源数据,包括:
根据所述数据包中的COM_ID确定相应的串口数据通道处于打开状态时,根据所述数据包中的PLC_ID将所述数据包通过所述串口数据通道发送给相应的PLC;
所述PLC解析接收到的数据包,根据所述数据包中的SENSOR_ID获取对应传感器的资源数据,将所述资源数据封装在数据包中并返回。
5.一种基于Web Service的工业监控装置,其特征在于,所述装置包括:数据访问单元、协议适配单元和协议接入单元;其中
所述数据访问单元,用于接收到Web Service服务数据请求时,依据预设的服务生成规则描述表生成原始服务数据,将所述原始服务数据发送给所述协议适配单元;还用于向请求方返回所述协议适配单元发送的服务数据;
所述协议适配单元,用于将所述数据访问单元发送的原始服务数据进行转换整合,并按协议类型将整合后的服务数据封装为相应的协议格式数据包,将所述数据包发送给所述协议接入单元;还用于解析所述协议接入单元返回的资源数据,将解析成功的资源数据封装为服务数据,将所述服务数据发送给所述数据访问单元;
所述协议接入单元,用于将所述协议适配单元发送的数据包发送给相应的PLC并接收所述PLC返回的资源数据,将所述资源数据发送给所述协议适配单元;
其中,所述协议适配单元,用于抽取所述原始服务数据中的一个以上的字段,根据所述一个以上的字段在预设的资源状态描述表中进行匹配,匹配成功时获取与所述资源状态描述表中匹配到的与所述一个以上的字段对应的COM_ID、PLC_ID、SENSOR_ID、WORD_COUNT、DEVICE_NAME、DEVICE_PROTOCOL字段及对应的值,将获取的字段及对应的值与所述原始服务数据进行整合为新的服务数据;
其中,所述协议适配单元,还用于确定资源数据的头部及校验码正确,提取所述资源数据中Bytes Count对应的字段值,并确定返回的数据长度和要求的数据长度相等后,按照Bytes Count字段值截取资源数据中相同长度Data字段的字节数组;检索资源状态描述表,判断所述字节数组中是否存在反高低字节,当判断的结果为否时,直接确定所述字节数组的值;当判断结果为是时,重新编排所述字节数组并确定重新编排后的字节数组的值;判断所述字节数组的值的确定过程中是否存在偏移量或倍率确定操作,当判断结果为是时,确定偏移量和倍率而得到真实服务数据;当判断结果为否时,直接得到真实服务数据。
6.根据权利要求5所述的工业监控装置,其特征在于,所述数据访问单元包括:Web服务单元和数据生成单元;其中,
所述Web服务单元,用于接收到Web Service服务数据请求时,向所述数据生成单元发送Web Service服务数据请求消息;还用于接收所述协议适配单元发送的服务数据并返回所述服务数据;
所述数据生成单元,用于获取所述Web Service服务数据请求中的名字NAME字段或名字-值NAME-VALUE字段;将所述NAME字段在预设的服务生成规则描述表中进行匹配,在匹配成功时,获取所述服务生成规则描述表中记录的与匹配的所述NAME对应的DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE,将所获取的NAME、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE组合或NAME、VALUE、DATA_TYPE、CONTROL_TYPE、MEASURE_TYPE组合封装为原始服务数据,将所述原始服务数据发送给所述协议适配单元。
7.根据权利要求5所述的工业监控装置,其特征在于,所述协议适配单元包括:整合单元和协议执行单元;其中,
所述整合单元,用于抽取所述原始服务数据中的一个以上的字段,根据所述一个以上的字段在预设的资源状态描述表中进行匹配,匹配成功时获取与所述资源状态描述表中匹配到的与所述一个以上的字段对应的COM_ID、PLC_ID、SENSOR_ID、WORD_COUNT、DEVICE_NAME、DEVICE_PROTOCOL字段及对应的值,将获取的字段及对应的值与所述原始服务数据进行整合为新的服务数据,将所述新的服务数据发送给所述协议执行单元;
所述协议执行单元,用于获取所述新的服务数据中与资源相关的接口信息,根据所述资源相关的接口信息在预设的接口描述表进行匹配,匹配成功时获取所述新的服务数据中的设备信息,根据所述设备信息检索预设的协议列表,确定所述新的服务数据的协议类型,将所述整合后的服务数据封装为所确定协议格式的数据包,将所述数据包发送给所述协议接入单元。
8.根据权利要求7所述的工业监控装置,其特征在于,所述协议适配单元还包括解析单元,用于确定资源数据的头部及校验码正确,提取所述资源数据中Bytes Count对应的字段值,并确定返回的数据长度和要求的数据长度相等后,按照Bytes Count字段值截取资源数据中相同长度Data字段的字节数组;检索资源状态描述表,判断所述字节数组中是否存在反高低字节,当判断的结果为否时,直接确定所述字节数组的值;当判断结果为是时,重新编排所述字节数组并确定重新编排后的字节数组的值;判断所述字节数组的值的确定过程中是否存在偏移量或倍率确定操作,当判断结果为是时,确定偏移量和倍率而得到真实服务数据;当判断结果为否时,直接得到真实服务数据,将所述服务数据发送给所述数据访问单元。
9.根据权利要求5所述的工业监控装置,其特征在于,所述协议接入单元,具体用于根据所述数据包中的COM_ID确定相应的串口数据通道处于打开状态时,根据所述数据包中的PLC_ID将所述数据包通过所述串口数据通道发送给相应的PLC,并接收返回的资源数据,将所述资源数据发送给所述协议适配单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310337061.2A CN103401930B (zh) | 2013-08-05 | 2013-08-05 | 一种基于Web Service的工业监控方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310337061.2A CN103401930B (zh) | 2013-08-05 | 2013-08-05 | 一种基于Web Service的工业监控方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103401930A CN103401930A (zh) | 2013-11-20 |
CN103401930B true CN103401930B (zh) | 2016-08-10 |
Family
ID=49565453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310337061.2A Expired - Fee Related CN103401930B (zh) | 2013-08-05 | 2013-08-05 | 一种基于Web Service的工业监控方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103401930B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111272255A (zh) * | 2018-12-05 | 2020-06-12 | 陕西思科锐迪网络安全技术有限责任公司 | 一种监测西门子s7-plc储水罐水位越界的方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104112228B (zh) * | 2014-08-04 | 2017-07-14 | 武汉金融资产交易所有限公司 | 用于小额贷款公司的监管数据采集系统及方法 |
CN108259267A (zh) * | 2017-12-29 | 2018-07-06 | 研祥智能科技股份有限公司 | 基于工业电脑实现监测数据采集的方法和装置 |
CN108415857B (zh) * | 2018-03-01 | 2021-03-23 | 合肥威艾尔智能技术有限公司 | 一种串口数据的通用处理方法 |
CN110941637B (zh) * | 2018-09-21 | 2023-06-02 | 北京神州泰岳软件股份有限公司 | 一种数据处理方法和装置 |
CN109756491A (zh) * | 2018-12-28 | 2019-05-14 | 北京星际荣耀空间科技有限公司 | 数据发送及接收方法、装置、电子设备 |
CN112350912B (zh) * | 2020-10-29 | 2021-07-27 | 山东八五信息技术有限公司 | 一种基于Modbus协议的数据采集方法、系统和装置 |
CN113568903A (zh) * | 2021-06-25 | 2021-10-29 | 邯郸钢铁集团有限责任公司 | 一种实时plc变量抽取应用方法 |
CN115866073B (zh) * | 2022-11-30 | 2024-04-19 | 重庆长安汽车股份有限公司 | 数据差量融合方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800766A (zh) * | 2009-12-30 | 2010-08-11 | 上海交通大学 | 基于Web的工业污水处理远程监控系统 |
CN102109838A (zh) * | 2009-12-28 | 2011-06-29 | 北京时代凌宇科技有限公司 | 一种工业监控系统及方法 |
CN202068444U (zh) * | 2011-04-23 | 2011-12-07 | 渤海大学 | 基于Web的PLC工业监控系统 |
CN102446314A (zh) * | 2011-09-07 | 2012-05-09 | 北京邮电大学 | 基于pda的煤矿人工瓦斯巡检系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1593107A4 (en) * | 2003-02-13 | 2010-08-18 | Nokia Corp | METHOD OF SIGNALING CLIENT RATING CAPACITY IN MULTIMEDIA STREAMING |
-
2013
- 2013-08-05 CN CN201310337061.2A patent/CN103401930B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102109838A (zh) * | 2009-12-28 | 2011-06-29 | 北京时代凌宇科技有限公司 | 一种工业监控系统及方法 |
CN101800766A (zh) * | 2009-12-30 | 2010-08-11 | 上海交通大学 | 基于Web的工业污水处理远程监控系统 |
CN202068444U (zh) * | 2011-04-23 | 2011-12-07 | 渤海大学 | 基于Web的PLC工业监控系统 |
CN102446314A (zh) * | 2011-09-07 | 2012-05-09 | 北京邮电大学 | 基于pda的煤矿人工瓦斯巡检系统及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111272255A (zh) * | 2018-12-05 | 2020-06-12 | 陕西思科锐迪网络安全技术有限责任公司 | 一种监测西门子s7-plc储水罐水位越界的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103401930A (zh) | 2013-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103401930B (zh) | 一种基于Web Service的工业监控方法及装置 | |
US10733088B1 (en) | Methods, systems, and computer readable media for testing a network node or a related application programming interface using source code metadata | |
US10769228B2 (en) | Systems and methods for web analytics testing and web development | |
US10797987B1 (en) | Systems and methods for switch stack emulation, monitoring, and control | |
CN110502467B (zh) | 一种基于串口modbus通信协议的通用采集接口软件系统 | |
WO2012157471A1 (ja) | 複数の制御システムの異常を検知する異常検知システム | |
KR20190017208A (ko) | 직렬 포트 기반 사이버 보안 취약점 점검 장치 및 그 방법 | |
CN109635564A (zh) | 一种检测暴力破解行为的方法、装置、介质及设备 | |
CN112671726A (zh) | 工业控制协议解析方法、装置、电子设备和存储介质 | |
CN110912782B (zh) | 一种数据采集方法、装置及存储介质 | |
CN105306463A (zh) | 基于支持向量机的Modbus TCP入侵检测方法 | |
WO2018165902A1 (zh) | 一种通信协议解析代码自动生成方法及系统 | |
CN111309734A (zh) | 自动生成表数据的方法及系统 | |
Dutertre | Formal modeling and analysis of the Modbus protocol | |
CN113572726A (zh) | 一种多模态网络控制-数据平面一致性校验方法及装置 | |
CN110275703B (zh) | 键值对数据的赋值方法、装置、计算机设备和存储介质 | |
CN117675913B (zh) | 实验室数据传输处理方法、装置、传输处理系统及介质 | |
CN111315026A (zh) | 信道的选择方法、装置、网关及计算机可读存储介质 | |
CN107133189B (zh) | 用于机器仪器的隔离通信结构 | |
US10950345B2 (en) | Methods, apparatus, and systems for integration of diagnostic laboratory devices | |
CN111124828A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN114095272B (zh) | 基于内外网安全架构的内网数据上链方法及装置 | |
CN115333872A (zh) | 安全网关解析功能验证方法、装置、终端设备及存储介质 | |
CN116932370A (zh) | 模糊测试方法、装置、电子设备、程序产品以及存储介质 | |
Kang et al. | Compartmentalization of protocols in SCADA communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160810 |
|
CF01 | Termination of patent right due to non-payment of annual fee |