APP下载

基于网络继电器的物联网控制系统模型研究

2022-10-31

山西电子技术 2022年5期
关键词:控制指令数据包继电器

杜 彬

(山西职业技术学院,山西 太原 030006)

0 引言

电气设备的运行状态控制是当前物联网应用专业的重要技术领域之一,实现对物联网控制系统的结构、工作原理以及运行机制的全过程现场模拟演示,对加强大学生的技术积累、提升对物联网控制理论的理解能力有着重要的意义[1]。基于网络继电器设备构建的物联网控制系统在物联网教学过程中的应用,为高校自主建设优质的物联网教学环境、提升物联网应用专业技术人才培养的工作效率和质量提供了可靠的技术支持。

继电器设备作为传统的电路控制设备,被广泛应用于自动化控制领域中,其工作原理是通过弱电信号操控电子开关的工作状态间接完成对强电流电路的连接与断开控制,以此控制各类电气设备的电源电路的通断状态[2]。传统的继电器设备的控制信号为高低电平信号,在通过软件控制时,需要编程实现由计算机指令到控制电平的转换,同时还需要布设专用的线路,系统结构复杂且实现过程繁琐。随着计算机网络技术与微型芯片技术的高速发展,网络继电器作为一种整合了网络接口、微型处理器和电路控制器的新型设备,实现了通过网络远程接收控制信号的功能,无需布设专用的连接线路;同时微型处理器技术的引入,使网络继电器设备本身集成了从计算机应用层的指令到物理层的控制电平信号的复杂转换功能,计算机程序仅需要通过网络向继电器设备发送遵循TCP协议制订的控制指令集即可完成对继电器上的各个电子开关的实时控制,更加便于实现对各类电气设备的控制。

1 教学用物联网控制系统的特点与需求分析

高校所开设的物联网课程具有内容覆盖面广、课程案例多且类型复杂的特征,因此在实训教学中使用的物联网控制系统应具备控制方式简便化、架构模块化、工作流程简洁化的特点,使系统拥有足够的灵活性与可扩展性,以便能够根据不同阶段课程内容的变化对相应的功能进行快速调整[3]。同时,系统的设计还应充分考虑实训课程建设的成本控制问题,尽量在现有的网络环境与计算机硬件设备上完成系统核心模块的部署与实施。

关于物联网控制系统的功能需求分析如下:

1) 系统应具备同时接入并实时控制20个以上电气设备的启动或停止的能力,同时应具备进一步扩展设备接入数量的能力。

2) 系统的控制软件模块与硬件设备模块应实现良好的低耦合性,软件的控制指令应具备通用性,能够根据硬件设备数量的变化灵活调整,硬件设备根据课程内容所进行的调整与重组,不应引发软件的重构。

3) 系统运行过程中,用户对各个电气设备的操作过程应能够进行实时记录和可靠存储,以用于课后的总结和分析。

4) 系统的控制软件模块部署在服务器计算机中,控制指令通过RJ45接口接入以太网络发送,基于局域网络实现远程实时控制电气设备的功能。

2 物联网控制系统模型的设计

2.1 物联网控制系统模型的架构

本文所提出的物联网控制系统的结构如图1所示,由用户模块、服务模块、控制模块、设备模块四部分构成。其中用户模块作为控制终端,为用户提供设备控制指令的发送与操作日志的记录功能。服务模块由系统数据库和实时监测程序两部分组成,用户所发送的指令首先被记录在数据库中,再由实时监测程序负责读取并通过网络向控制模块发送TCP数据包。控制模块由多台网络继电器设备构成,网络继电器设备的数量根据设备模块中的电气设备数量灵活调整,控制模块作为系统运行的核心,负责与设备模块之间建立直接连接,接收并自动解析控制模块发送的数据包,根据解析后的命令控制各电气设备的电路通断状态。设备模块由多台电气设备构成,电气设备的类型与数量可根据物联网课程内容进行灵活的规划与调整,以准确模拟不同的物联网应用场景中的设备工作过程,各电气设备的启动电路接入到网络继电器所搭载的各个电子开关中,根据用户模块所发送的控制指令单独进行启动或停止操作。对于需要部署大量电气设备来实现的复杂应用场景,可通过在控制模块中增加网络继电器设备的方式提供更多的电子开关接口来完成。

图1 物联网控制系统模型架构图

2.2 各模块的实现原理

1) 用户模块中的指令发送与日志管理功能都基于JSP对数据库的访问机制实现,首先通过JSP页面向服务模块提交指令代码、发送时间等信息并存储于数据库的指令表中为服务模块的指令处理操作提供数据,而在生成操作日志时,将指令表中的相关内容下载至JSP页面中并显示。

2) 服务模块,本文选用MySQL数据库在服务模块中保存各种操作指令,基于Python设计的管理程序以1秒钟为间隔不断读取数据库中指令表的内容,指令表的数据格式如表1所示。在发现有新的未执行指令被提交时,立即对指令内容进行解析,获取网络继电器的IP地址、电子开关序号和开关状态码后,向指定的网络继电器IP地址发送TCP数据包,控制网络继电器中指定的电子开关的状态。TCP数据包发送完成后,将数据表中该指令的处理状态设置为1,表示为“已处理”。

表1 操作指令表构成

3) 控制模块与设备模块的实现原理如图2所示,以物联网控制系统中常见的驱动电机设备的启动过程为例,首先将驱动电机的电源供电线路截断后接入到网络继电器上的某一电子开关接口中,电子开关在默认情况下为断开状态,此时驱动电机因供电线路中断而处于静止待命状态;当网络继电器的RJ45接口从网络中接收到包含控制指令的TCP数据包后,自动解析数据包并获取电子开关编号与状态码,开启指定的电子开关使驱动电机的供电线路处于连通状态,从而启动驱动电机并开始运转。

图2 控制模块与设备模块实现原理图

2.3 关键实现技术分析

本文所提出的物联网控制系统模型方案中,网络继电器设备选用了海凌科电子的HLKSW16A型16路网络继电器,单个设备可提供16个电子开关,每个开关均支持220 V电压和10 A电流的电路,能够对现有的物联网教学中所使用到的绝大部分电气设备的供电电路进行控制。同时,该型设备支持修改本机IP地址,当物联网系统中需要扩展接入更多的电气设备时,在系统所在的以太网络中接入多台网络继电器设备并设置相应的IP地址即可。

系统数据库采用MySQL设计,用户模块的数据访问操作基于JSP-jdbc实现,而控制模块的数据访问操作基于Python-MySQLdb实现,向网络继电器发送TCP数据包的操作基于Python-Socket实现。

1) JSP中实现访问MySQL数据库的关键代码

<%@ page import="java.sql.*"%> //调用数据库访问接口,*号表示调用该接口下的所有类

String Drstr="com.mysql.jdbc.Driver"; //指定

jdbc数据库访问驱动程序

Class.forName(Drstr); //加载驱动程序

Connection Cs=DriverManager.getConnection("数据库访问地址/库名称","账号","密码"); //连接数据库

Statement Reqobj=Cs.createStatement(); //创建数据库访问对象

String Cmd="select fd1fd2…fdnfrom cmdtable"; //创建SQL命令,其中fd为字段序列

ResultSet datas=Reqobj.executeQuery(cmd); //执行SQL命令并返回结果

2) Python中实现访问MySQL数据库的关键代码

Import MySQLdb //调用数据库访问模块

Cs=MySQLdb.connect("数据库访问地址","用户名","密码","库名称",charset=′utf8 ′) //连接数据库

Crs=Cs.cursor() //创建数据库游标

Crs.execute("select fd1fd2…fdnfrom cmdtable") //执行SQL命令

Datas=Crs.fetchone() //从游标中获取数据

3) Python中实现发送TCP数据包的关键代码

import socket //调用socket模块

Skobj=socket.socket(socket.AF_INET,socket.SOCK_STREAM) //创建Socket对象

Skobj.connect((′网络继电器IP地址′,′ 端口号′)) //建立与网络继电器之间的TCP连接

while True:

Cmd=′1201′ //设置控制指令:电子开关序号为12,状态为1(开启)

Skobj.send(cmd) //发送控制指令

Skobj.close()#关闭TCP连接

3 结语

本文以网络继电器技术为基础,整合了计算机网络技术与软件开发技术,构建了物联网控制系统模型,系统采用模块化的设计方案,在实现了对电气设备的远程控制功能的同时,还具备良好的结构扩展能力,便于在使用过程中根据教学内容灵活调整系统架构与扩展硬件设备数量及种类。

猜你喜欢

控制指令数据包继电器
二维隐蔽时间信道构建的研究*
城轨车辆控制指令试验装置研制
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
继电器控制及诊断在电动汽车动力电池包的应用
便携式继电器测试台的研制和应用
宏指令控制的多轴系统研究及实现
计算机联锁复示继电器电路改进方案探讨
SmartSniff
高速公路隧道通风、照明联动控制方案探讨
泓格科技继电器输出模块-87061PW