【问题标题】:Have PLC Controller Listen/Send Custom TCP Packets?PLC 控制器是否监听/发送自定义 TCP 数据包?
【发布时间】:2012-03-20 05:39:01
【问题描述】:

我希望能够与 PLC 控制器通信,以便我可以在 PLC 上发送和接收自定义命令。

我能够做到这一点的想法是在 PLC 上安装一个 TCP 侦听器,它可以读取特定端口上的 TCP 传入数据包,并根据数据包中的命令执行例程。它还可以通过 TCP/IP 发回信息。

这将允许我用多种语言编写软件,例如 C#、PHP、JavaScript 等,以便软件可以在 Windows、iOS、Android 等任何平台上向 PLC 发出命令。这也意味着您不需要 PLC 软件(可能很昂贵)来查看或控制 PLC。

我不是PLC程序员,所以我不知道PLC是否有发送和接收自定义TCP数据包的能力。我想知道 a) 如果有可能 b) 这样做的可行性和 c) 我应该研究什么才能做到这一点。

谢谢。

【问题讨论】:

    标签: tcp plc


    【解决方案1】:

    这听起来有点像重新发明轮子。你想制作类似 KepServerEX 的东西吗?

    http://www.kepware.com/kepserverex/

    还有两件事情需要考虑 - 一是与 PLC 接口以共享数据的能力(即:用于自定义 HMI),二是对 PLC 进行编程。对于后者,您仍然需要制造商提供的控制软件,除非您愿意进行逆向工程并从头开始重新编写它。

    另外请记住,PLC 的工作方式与其他软件不同。本身没有函数、过程、类或对象,甚至没有任何“命令”。 PLC 是一个系统,它执行主要是原始逻辑规则和计算的连续固定程序。 HMI 的典型接口包括直接读取和写入代表机器当前状态的逻辑位和字数据(即:硬件存储器位置)。 OPC 已经很好地做到了这一点,所以我不太确定你想要什么。

    如果您正在寻找完整商业套餐的廉价/免费替代品,这里的东西可能适合您:

    http://www.opcconnect.com/freesrv.php

    【讨论】:

    • 这可能是合适的。我知道你会用 C# 编写一个程序来与 KEPServerEX 通信,然后与 PLC 通信?是否可以不使用 3rd 方软件,这样就没有成本,并且可以通过自定义 TCP 消息严格与 PLC 对话?
    • 我敢肯定,如果您想折磨自己或将其作为学术练习来进行,那么这是可能的,但我怀疑您是否能找到一种经济的方法来做到这一点——这肯定会在开发人员中花费更多是时候重新编写所有内容,而不仅仅是购买已经符合 OPC 标准的适当解决方案。一般来说,如果您需要工业 PLC 的功能,那么与停机和设备故障的风险以及其他资本成本相比,软件的成本可能应该是最低的。当您谈论 > 100 万美元的设备时,2000 美元是花生......
    • 我希望通过 TCP 对 PLC 的控制是最小的。例如,我可能只希望 PLC 能够监听一对 TCP 消息,例如运行和停止。因此,让一台服务器运行以与只需要知道几条消息的单个 PLC 进行通信似乎有点过头了。
    • 所以,这是完全不同的野兽。 OPC 只允许您与 PLC 交换数据 - 它不允许任何执行控制(即:更改运行模式、重新编程等)。事实上,如果您的 PLC 用于任何远程重要的事情,这通常是一个非常糟糕的主意。这些类型的功能的通信协议是专有的,而且,afaik,不是公开的。你到底想做什么?你怎么能买得起 Allan Bradley PLC 而不是 RSLogix? HMI 软件永远不需要停止或启动 PLC - 这可能意味着您的方法是错误的。
    • 我们有一个带有 RSLogix 软件的 AB 控制器。您必须运行使用 Rockwell 软件制作的 HMI 来控制 PLC。这意味着任何想要在 PLC 上打开或关闭控件的人都需要一台装有 Rockwell 软件和 HMI 的计算机。我想做的是让 PLC 在端口上侦听简单的 TCP 消息。然后我可以用 C# 或 PHP 编写一个简单的 exe,这样人们就可以从没有 Rockwell 软件的计算机上向控制器发送简单的“运行/停止”消息,甚至可以说是他们的手机。
    【解决方案2】:

    如果我理解正确,当提到“运行/停止”时,您的意思是 PLC“开始”或“停止”扫描代码并更新其 I/O。如果是这种情况,最好添加一个 Scan_If_On 位(将由 TCP 命令写入)与 HMI 控制的“开始”位并行连接。 这样,将有两种形式的“启动”由 PLC 控制的过程。人机界面和 TCP。

    【讨论】:

      猜你喜欢
      • 2012-03-30
      • 1970-01-01
      • 2020-03-18
      • 1970-01-01
      • 2012-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      相关资源
      最近更新 更多