使用 RSLINX(OPC 服务器)在罗克韦尔自动化中使用 C# 进行 PLC 编程 - 我应该如何将它连接到 OPC 服务器?
PLC Programming with C# in Rockwell-automation using RSLINX(OPC server) - how should I connect it to the OPC server?
我是PLC编程的新手,对它的基础知识一窍不通。
我的任务是用 C# 编写代码来发送和接收标签 from/to 他们的通信服务器 OPC 服务器)RSLINX 将连接到客户端的 PLC。我在 C# 中找到了 OPC 客户端代码,但我找不到如何将它连接到 OPC 服务器,是否有任何可用的测试模拟可以给我从客户端 PLC 接收的测试数据。我可以给你一个客户要求的参考。这是客户在邮件中说的。
我们目前没有在现场系统中安装 RSLinx 的副本。我们的 PLC 和 HMI 之间的通信本质上内置于设备中,并使用安装在我们的编程笔记本电脑上的 RSLinx Enterprise 进行配置。当我们想使用相应的编程软件访问 PLC 或 HMI 时,我们也会在笔记本电脑上使用 RSLinx。
为了让您的系统访问我们的 PLC 数据 table,需要在您的计算机上安装和配置 RSLinx Gateway 软件,这是 运行 您的软件并且需要访问我们的 PLC。
我希望这是有道理的。
您可以从 GitHub 此处下载 libplctag C class 库,这些库有助于 AB PLC 内 reading/writing 标签值的连接和通信: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 即可与控制器通信。
首先,要与任何罗克韦尔 PLC 通信,必须至少拥有 RSLinx Classic。 RS Linx Enterprise 或 FactoryTalk Linx Enterprise(版本取决于您使用的 FTV)用于将 HMI 客户端与 PLC 进行通信。
要启用 OPC 通信,您必须至少安装 RSLinx Classic,它有一个内置的 OPC DA 服务器。 RSLinx Classic 所做的粗略来说是通过 Ethernet/IP(或其他通信协议)连接到 PLC,并将数据桥接为 OPC 服务器,可以从 OPC 客户端访问。
要设置通信,您必须配置一个 DDE/OPC 主题并将其指向 PLC 控制器。这个主题有一个名字,这对交流很重要。
我很久以前就这样做过,但据我所知,您在 C# 上设置了一个 OPC 客户端。重要提示:有一个定义的结构来获取数据。知识库上的 Rockwell 有 VBA 和 Excel 的示例,可能还有 .Net 的示例。
长话短说,要实现与 PLC 的通信并将数据传输到您的 C# 应用程序,您必须在您的系统上安装 RSLinx Classis,设置一个 DDE/OPC 主题,您的 C# 应用程序必须启动一个客户端从 RSLinx 连接到 OPC 服务器,然后设置读取或写入标签数据的方法。
如果您有TechConnect 有效用户,您可以搜索ID QA769 到达论坛主题:RSLinx Classic: Monitor Data in Excel using DDE。这不适用于 C#,但是,您可以在 C# 中制作更好的图片。
有几点必须指出:
- 如果您只是为了教育目的而读写标签,这是理解如何对 OPC 客户端进行编程的好方法。
- 如果此应用程序是针对客户的解决方案,那么您可能不需要重新发明轮子。市场上有几种连接网关,例如 Kepware 和 OAS,它们与您需要的数据进行通信并发送到您需要的目的地(例如 SQL 数据库)。
- 根据哪些数据以及如何 time-critical 不使用 OPC DA 或 DDE 主题。写入和读取的延迟是荒谬的。您必须将使用 OPC UA 协议或任何 CIP Net 通信驱动程序转发到罗克韦尔 PLC。 OAS 和 Kepware 有 CIP 网络驱动程序来连接罗克韦尔 PLC。
- 如果你想使用 OPC UA,你必须有 FactoryTalk Linx。
- 有一些在 C# 中创建 OPC UA 客户端的教程,比如这个 OPC-UA - C# .Net, even in NodeJS such as this one OPC-UA – NodeJS
希望能帮到你。如果您需要更多信息或有更多问题,请告诉我。
祝你好运。
我是PLC编程的新手,对它的基础知识一窍不通。
我的任务是用 C# 编写代码来发送和接收标签 from/to 他们的通信服务器 OPC 服务器)RSLINX 将连接到客户端的 PLC。我在 C# 中找到了 OPC 客户端代码,但我找不到如何将它连接到 OPC 服务器,是否有任何可用的测试模拟可以给我从客户端 PLC 接收的测试数据。我可以给你一个客户要求的参考。这是客户在邮件中说的。
我们目前没有在现场系统中安装 RSLinx 的副本。我们的 PLC 和 HMI 之间的通信本质上内置于设备中,并使用安装在我们的编程笔记本电脑上的 RSLinx Enterprise 进行配置。当我们想使用相应的编程软件访问 PLC 或 HMI 时,我们也会在笔记本电脑上使用 RSLinx。
为了让您的系统访问我们的 PLC 数据 table,需要在您的计算机上安装和配置 RSLinx Gateway 软件,这是 运行 您的软件并且需要访问我们的 PLC。
我希望这是有道理的。
您可以从 GitHub 此处下载 libplctag C class 库,这些库有助于 AB PLC 内 reading/writing 标签值的连接和通信: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 即可与控制器通信。
首先,要与任何罗克韦尔 PLC 通信,必须至少拥有 RSLinx Classic。 RS Linx Enterprise 或 FactoryTalk Linx Enterprise(版本取决于您使用的 FTV)用于将 HMI 客户端与 PLC 进行通信。 要启用 OPC 通信,您必须至少安装 RSLinx Classic,它有一个内置的 OPC DA 服务器。 RSLinx Classic 所做的粗略来说是通过 Ethernet/IP(或其他通信协议)连接到 PLC,并将数据桥接为 OPC 服务器,可以从 OPC 客户端访问。
要设置通信,您必须配置一个 DDE/OPC 主题并将其指向 PLC 控制器。这个主题有一个名字,这对交流很重要。 我很久以前就这样做过,但据我所知,您在 C# 上设置了一个 OPC 客户端。重要提示:有一个定义的结构来获取数据。知识库上的 Rockwell 有 VBA 和 Excel 的示例,可能还有 .Net 的示例。
长话短说,要实现与 PLC 的通信并将数据传输到您的 C# 应用程序,您必须在您的系统上安装 RSLinx Classis,设置一个 DDE/OPC 主题,您的 C# 应用程序必须启动一个客户端从 RSLinx 连接到 OPC 服务器,然后设置读取或写入标签数据的方法。
如果您有TechConnect 有效用户,您可以搜索ID QA769 到达论坛主题:RSLinx Classic: Monitor Data in Excel using DDE。这不适用于 C#,但是,您可以在 C# 中制作更好的图片。
有几点必须指出:
- 如果您只是为了教育目的而读写标签,这是理解如何对 OPC 客户端进行编程的好方法。
- 如果此应用程序是针对客户的解决方案,那么您可能不需要重新发明轮子。市场上有几种连接网关,例如 Kepware 和 OAS,它们与您需要的数据进行通信并发送到您需要的目的地(例如 SQL 数据库)。
- 根据哪些数据以及如何 time-critical 不使用 OPC DA 或 DDE 主题。写入和读取的延迟是荒谬的。您必须将使用 OPC UA 协议或任何 CIP Net 通信驱动程序转发到罗克韦尔 PLC。 OAS 和 Kepware 有 CIP 网络驱动程序来连接罗克韦尔 PLC。
- 如果你想使用 OPC UA,你必须有 FactoryTalk Linx。
- 有一些在 C# 中创建 OPC UA 客户端的教程,比如这个 OPC-UA - C# .Net, even in NodeJS such as this one OPC-UA – NodeJS
希望能帮到你。如果您需要更多信息或有更多问题,请告诉我。 祝你好运。