【问题标题】:PLC Programming with C# in Rockwell-automation using RSLINX(OPC server) - how should I connect it to the OPC server?使用 RSLINX(OPC 服务器)在 Rockwell 自动化中使用 C# 进行 PLC 编程 - 我应该如何将其连接到 OPC 服务器?
【发布时间】:2020-08-08 15:43:22
【问题描述】:

我是 PLC 编程的新手,我不知道它的基础。

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

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

【问题讨论】:

    标签: c# plc opc


    【解决方案1】:

    首先,要与任何 Rockwell 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 客户端。重要提示:有一个定义的结构来获取数据。知识库上的 Rockwell 提供了适用于 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 通信驱动程序转发到 Rockwell PLC。 OAS 和 Kepware 具有用于连接 Rockwell PLC 的 CIP 网络驱动程序。
    4. 如果您想使用 OPC UA,则必须使用 FactoryTalk Linx。
    5. 有一些教程可以在 C# 中创建 OPC UA 客户端,例如 OPC-UA - C# .Net,甚至在 NodeJS 中,例如 OPC-UA – NodeJS

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

    【讨论】:

    • 哇,你解释得很好。我会按照你所说的去做,并继续发布和更新你。非常感谢。
    • 您好,factorytalk linx 和 rslinx classic 有什么区别吗?
    • 这是个好问题。我知道罗克韦尔已经发布了 FactoryTalk Linx(以前的 FactoryTalk Gateway)。我认为 FTLinx 将成为 RSLinx 的新版本……我不太确定,因为我还没有参加他们的活动,看看他们是如何前进的。我可以向您确认的是:要将 OPC DA 和 DDE 主题用于旧固件版本,请转到 RSLogix。对于较新的固件版本和 OPC-UA,请选择 FactoryTalk Linx。我不知道他们是否会贬低 RSLinx 并用 FTLinx 替代,但这是我的猜测。
    • 好的,我已经使用 OPC UA 为我的 C# 客户端应用程序连接到 OPC 服务器 RSLINX Classic
    • 注意,要将 OPC UA 用作您的通信协议,您必须使用 FactoryTalk Linx 而不是 RSLinx Classic。理论上,您可以将 OPC-UA 用于 OPC DA,但您需要制作一个 com 包装器才能使其工作。我建议您使事情尽可能简单:使用 FactoryTalk Linx 并使用 OPC Foundation .Net 库。
    【解决方案2】:

    您可以在此处从 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 与控制器进行通信。

    【讨论】:

    • 感谢您的建议,但客户要求在运行我的软件并需要访问客户 PLC 的计算机上安装和配置 RSLinx Gateway 软件。
    • 如果您尝试直接连接到 opc 服务器,您可以查看 Advosol 的 OPC DA.Net 包装器。他们有一个评估版,但它不是免费的,但应该是你需要的。 advosol.com/product/1/opcda-net
    • 如果有效,请标记为正确答案。谢谢! :)
    • 很遗憾,他们的评估版有一些致命错误,无法安装
    猜你喜欢
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    相关资源
    最近更新 更多