如何将数据库的数据转为OPC服务端,供上位机读取

文章介绍了IGT-DSER智能网关如何作为中间件,实现OPC客户端协议与SQL数据库及三菱Q系列PLC之间的数据转换。网关支持将PLC和数据库的数据转换为OPCUA服务端,允许上位机通过OPCUA协议读取。配置示例包括PLC的IP地址、端口和数据库的IP及端口,以及数据配置表和网关的OPC服务设置。

        经常碰到上位机只支持OPC客户端协议,要读取SQL数据库或者PLC设备内的数据,需要协议转换,IGT-DSER智能网关正好支持将数据库的数据和PLC的数据读取后转为OPCUA的服务端,下面是相关案例配置和测试截图。

        案例中的IGT-DSER智能网关对接的是三菱Q系列PLC,IP地址为192.168.1.101,在PLC内配置了两个通讯端口分别为4998、4999;数据库服务器是SQLServer,服务器的IP地址为192.168.2.202,开启远程访问用默认端口1433。

        主要实现IGT-DSER采集三菱Q系列PLC的数据上报的数据库(INSERT方式根据数据变化上报),同时查询数据库的数据转为OPC标签;也有部分PLC数据不用上报到数据库直接转为OPC标签的,这里通过Softing opc client软件的OPCUA客户端连接网关测试,如下图:

        IGT-DSER智能网关的数据配置表如下图(软件下载):

         上图中的数据配置表的数据根据 'IP/站号/组' 分成了0、1、2三个组(相同的序号即为同一个组):

        组0:当PLC寄存器D200的值有变化时,读取PLC的W区域的3个数据后上报到数据库,数值插入到数据表plctable中的data1、data2、data3三个字段,D200只做触发使用不上报;同时上位机也可以通过OPC客户端读取这些数据;

        组1: IGT-DSER智能网关实时读取PLC的D区域的寄存器,转为OPC标签,便于上位机中OPCUA的客户端读取;

        组2: 每间隔5秒根据设备名称(QJ71E71)查询数据库的opctable表中的data11、data12、data13对应的数据,便于上位机中OPCUA的客户端读取;

        三组数据都能被上位机OPCUA方式访问到,另外网关内还需要开启OPC服务,通过'功能'->'网口参数编辑'打开如下页面:

         网关模块也支持边缘计算(手册下载),可以将数据进行预处理后上报,同时集成了多种PLC协议,以下是常用的PLC类型:

         ◆ FX:   三菱FX系列PLC                                        ◆ QL:   三菱Q/L/R系列PLC
         ◆ AS:   三菱A系列PLC                                          ◆ OM:   欧姆龙全系列PLC
         ◆ S72S:   西门子S7-200/Smart系列PLC               ◆ S734:   西门子S7-300/400系列PLC
         ◆ S71K:   西门子S7-1200/1500系列PLC               ◆ MBS:   施耐德等Modbus兼容PLC
         ◆ DVP:   台达、信捷PLC                                       ◆ NAIS:   松下全系列PLC
         ◆ KVS:   基恩士全系列PLC                                    ◆ FTK:   永宏全系列PLC
         ◆ ABM:   AB MicroLogix系列PLC                           ◆ ABC:   AB Compact/Control系列PLC
         ◆ INO:   汇川全系列PLC                                        ◆ GE:   GE PAC/PLC系统

### 3.1 使用 OPC UA 客户端连接服务端读取数据 在工业自动化领域,OPC UA(Open Platform Communications Unified Architecture)是一种标准化的通信协议,广泛用于客户端与服务端之间的数据交换。客户端连接 OPC UA 服务端并获取数据的过程通常包括以下几个关键步骤: 首先,客户端需要指定 OPC UA 服务端的 URL,建立连接。该连接可以基于 TCP 协议,并支持多种认证方式,如匿名认证、用户名/密码认证等。若服务端要求认证,则客户端需提相应的用户凭证信息 [^2]。 建立连接后,客户端可以通过服务端的节点(Node)访问所需数据。每个节点都有唯一的标识符(Node ID),例如 `ns=4;i=1` 表示命名空间为 4、ID 为 1 的节点 [^5]。通过这些节点标识符,客户端可以调用 OPC UA 的读取接口获取数据。 以下是一个使用 C# 实现 OPC UA 客户端读取服务端数据的示例代码: ```csharp using Opc.Ua.Client; using Opc.Ua; class Program { static async Task Main(string[] args) { // OPC UA 服务端地址 string serverUrl = "opc.tcp://localhost:4840"; // 创建应用配置 ApplicationConfiguration config = new ApplicationConfiguration() { ApplicationName = "OPC UA Client", ApplicationType = ApplicationType.Client, SecurityConfiguration = new SecurityConfiguration { ApplicationCertificate = new CertificateIdentifier() } }; // 创建会话 var session = await Session.Create(config, new ConfiguredEndpoint(null, new Uri(serverUrl)), false, true, "MySession", 15000, null, null); // 读取节点数据 NodeId nodeId = NodeId.Parse("ns=4;i=1"); // 指定节点 ID DataValue value = await session.ReadValueAsync(nodeId); // 输出读取到的数据 Console.WriteLine($"Node Value: {value.WrappedValue}"); } } ``` 此代码片段展示了如何创建 OPC UA 客户端会话、连接到服务端读取特定节点的数据 [^1]。 --- ### 3.2 使用 OPC UA 客户端工具读写数据 除了编程方式,还可以使用现成的 OPC UA 客户端工具实现数据读写。例如,Softing OPC Client 和 UaExpert 是两个常用的 OPC UA 客户端工具,支持连接 OPC UA 服务端并进行数据读写操作。 使用 UaExpert 时,用户可以通过以下方式添加 OPC UA 服务端: - 打开 **Add Server**,在 **Discovery** 标签页中选择已发现的服务端,或在 **Custom Discovery** 下手动添加服务端 URL。 - 若服务端启用了安全认证,需在 **Advanced** 标签页中配置用户名、密码等信息 [^3]。 连接成功后,用户可展开服务端节点树,选择特定节点进行读写操作。Softing OPC Client 的使用方式类似,支持多种连接方式和认证机制 [^2]。 --- ### 3.3 从 PLC 采集数据并通过 OPC UA 上报 在工业控制场景中,OPC UA 客户端常用于从 PLC(可编程逻辑控制器)采集数据。典型的应用场景包括使用 SIMATIC PLCSIM Advanced、TIA Portal、KEPServerEX 等工具搭建仿真环境,并通过 OPC UA 协议将数据从 PLC 传输至上位机 [^4]。 在此类架构中,PLC 作为 TCP 服务器运行,KEPServerEX 作为 OPC 服务器和客户端,负责与 PLC 通信并提 OPC UA 接口。UAExpert 等客户端工具可连接 KEPServerEX,读取 PLC 的实时数据。 --- ###
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值