使用RSLINX(OPC服务器)在罗克韦尔自动化中使用C#进行PLC编程-如何将其连接到OPC服务器?

时间:2020-08-08 15:43:22

标签: c# plc opc

我是PLC编程的新手,我不了解它的基本知识。

我的任务是用C#编写一个代码,该代码从/向其通信服务器OPC服务器(RSLINX)发送和接收标签,该标签将连接到客户端的PLC。我已经在C#中找到了OPC CLient代码,但找不到如何将其连接到OPC服务器,并且是否有任何可用的测试模拟可以提供我将从客户端PLC接收到的测试数据。我可以给您参考客户的要求。这就是客户在电子邮件中所说的。

我们当前未在系统中现场安装RSLinx副本。我们的PLC和HMI之间的通讯固有地内置在设备中,并使用安装在我们的编程笔记本电脑上的RSLinx Enterprise进行配置。当我们想使用相应的编程软件访问PLC或HMI时,也可以在笔记本电脑上使用RSLinx。 为了使您的系统能够进入我们的PLC数据表,需要在正在运行您的软件并且需要访问我们的PLC的计算机上安装和配置RSLinx Gateway软件。
我希望这是有道理的。

2 个答案:

答案 0 :(得分:0)

您可以在此处从GitHub下载libplctag C类库,该库有助于连接和通信,以在AB PLC中读取/写入标签值:https://github.com/libplctag/libplctag,您可以观看一些youtube示例。 Mesta-Automation上有一篇不错的文章,介绍如何使用随附的视频来编译库,您可以在此处查看https://www.mesta-automation.com/how-to-communicate-to-an-allen-bradley-plc-with-c-and-libplctag-ethernet-ip-library/ 通过这种方法,您不需要RSLinx与控制器进行通信。

答案 1 :(得分:0)

首先,要与任何罗克韦尔PLC通信,必须至少具有RSLinx Classic。 RS Linx Enterprise或FactoryTalk Linx Enterprise(版本取决于您使用的FTV)将HMI客户端与PLC通信。 要启用OPC通信,您至少必须安装RSLinx Classic,它具有内置的OPC DA服务器。简而言之,RSLinx Classic所做的就是通过以太网/ IP(或其他通信协议)连接到PLC,并将数据桥接为OPC服务器,这可以从OPC客户端访问。

要设置通信,必须配置DDE / OPC主题并将其指向PLC控制器。该主题有一个名称,这对于交流很重要。 我已经做很久了,但是据我所记得,您在C#上设置了OPC客户端。重要提示:这里有一个定义的结构来获取数据。知识库中的罗克韦尔提供了VBA和Excel,甚至还有.Net的示例。

长话短说,要实现与PLC的通信并向C#应用程序获取数据,必须在系统上安装RSLinx Classis,设置DDE / OPC主题,C#应用程序必须启动与OPC的客户端连接RSLinx的服务器,然后设置读取或写入标签数据的方法。

如果您具有TechConnect有效用户,则可以搜索ID QA769以到达论坛主题:RSLinx Classic: Monitor Data in Excel using DDE。这不是针对C#的,但是,您可以在C#中获得更好的效果。

必须指出的事情:

  1. 如果您只想出于教育目的读写标签,这是理解如何对OPC客户端进行编程的好方法。
  2. 如果此应用程序是针对客户的解决方案,则可能不需要重新发明轮子。市场上有几种连接网关,例如Kepware和OAS,它们与所需的数据进行通信并发送到所需的目的地(例如SQL数据库)。
  3. 取决于哪个数据以及它对时间的紧迫性,不使用OPC DA或DDE主题。写入和读取的延迟是荒谬的。您必须将使用OPC UA协议或任何CIP Net通讯驱动程序转发给罗克韦尔PLC。 OAS和Kepware具有可与罗克韦尔PLC连接的CIP网络驱动程序。
  4. 如果要使用OPC UA,则必须使用FactoryTalk Linx。
  5. 有一些教程可以在C#中创建一个OPC UA客户端,例如OPC-UA - C# .Net,甚至在NodeJS中也可以创建OPC-UA – NodeJS

希望我能帮助您。如果您需要更多信息或有更多问题,请告诉我。 祝你好运。