是否让PLC控制器侦听/发送自定义TCP数据包?

是否让PLC控制器侦听/发送自定义TCP数据包?,tcp,plc,Tcp,Plc,我希望能够与PLC控制器通信,以便在PLC上发送和接收自定义命令 我能够做到这一点的想法是在PLC上有一个TCP侦听器,它可以读取特定端口上的TCP传入数据包,并根据数据包中的命令执行例程。它还可以通过TCP/IP发送信息 这将允许我用多种语言编写软件,如C#、PHP、JavaScript等,以便软件可以在任何平台上使用,如Windows、iOS、Android等,向PLC发出命令。这也意味着您不需要PLC软件(可能很昂贵)来查看或控制PLC 我不是PLC程序员,所以我不知道PLC是否具有发送和

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

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

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

我不是PLC程序员,所以我不知道PLC是否具有发送和接收定制TCP数据包的能力。我想知道a)如果可能的话b)这样做的可行性有多大,c)我应该研究什么才能完成这项工作


谢谢。

这听起来有点像是重新发明轮子。你想做像KepServerEX这样的东西吗

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

还要记住,PLC的工作方式与其他软件不同。就其本身而言,没有函数、过程、类或对象,甚至没有真正的“命令”。PLC是一个系统,它执行一个连续的固定程序,其中大部分是原始逻辑规则和计算。HMI的典型接口包括直接读写逻辑位和字数据(即:硬件内存位置),这些数据表示机器的当前状态。OPC已经做得很好了,所以我不太确定你要做什么

如果您正在寻找一个便宜/免费的替代品,而不是一个完整的商业套餐,这里的一些东西可能适合您:


如果我理解正确,当提到“运行/停止”时,您的意思是PLC“启动”或“停止”扫描代码并更新其I/O。如果是这种情况,则完全适合在HMI控制的“启动”位的并行连接中添加扫描If On位(由TCP命令写入)。
这样,将有两种形式的“启动”由PLC控制的过程。HMI和TCP。

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