Language agnostic 如何将消息传递给PLC

Language agnostic 如何将消息传递给PLC,language-agnostic,communication,plc,Language Agnostic,Communication,Plc,我没有PLC的任何经验,但对于我将要做的下一个项目,我将不得不开发一个与PLC通信的应用程序。基本上,我将得到一条XML消息,我必须将其转发给PLC。我不会开发PLC代码,但我想了解如何设计PLC数据结构(尽可能类似于xml模式)并向PLC发送消息 尚未选择应用程序的编程语言,因此任何语言的示例都可以。这将根据您使用的语言、平台和PLC类型有所不同。一般界面如下所示: communication OPC/COM/ protocol

我没有PLC的任何经验,但对于我将要做的下一个项目,我将不得不开发一个与PLC通信的应用程序。基本上,我将得到一条XML消息,我必须将其转发给PLC。我不会开发PLC代码,但我想了解如何设计PLC数据结构(尽可能类似于xml模式)并向PLC发送消息


尚未选择应用程序的编程语言,因此任何语言的示例都可以。

这将根据您使用的语言、平台和PLC类型有所不同。一般界面如下所示:

      communication                    OPC/COM/
        protocol                       OLE/ETC
[PLC] <-----------> [tag/data server] <-------> [YourGUIApp]
通信OPC/COM/ 协议OLE/ETC [PLC][tag/data server][YourGUIApp] 一般的想法是,PLC有一组用于位、字和其他数据类型的工作内存。通过某些通信协议(Modbus、FINS、KSequence等),HMI/PC上的本地系统服务将保留PLC中特定、用户定义的一组内存区域的本地图像,应用程序需要读取或写入该区域。与服务器关联的是一个开发库,您可以将其导入到项目中,并使用该库通过此本地服务访问PLC

通常,您将有一些方法从PLC中的内存位置进行读取、写入,例如,许多库也可以在数据更改时引发事件,因此您所需要做的就是挂接事件并获取每个感兴趣的数据点的数据


不幸的是,在选择PLC和语言之前,可能很难确定数据的优化结构。在制造商之间,上述流程的工作方式存在相当大的差异。在不知道这一点的情况下,我认为您可以在应用程序中创建您喜欢的任何结构,您可能只需要在某个点添加另一层,以便在数据结构和调用PLC库之间完成最后一步。最后,您实际上只是在来回传递简单变量—布尔、整数、浮点等。

这将根据您使用的语言、平台和PLC类型有所不同。一般界面如下所示:

      communication                    OPC/COM/
        protocol                       OLE/ETC
[PLC] <-----------> [tag/data server] <-------> [YourGUIApp]
通信OPC/COM/ 协议OLE/ETC [PLC][tag/data server][YourGUIApp] 一般的想法是,PLC有一组用于位、字和其他数据类型的工作内存。通过某些通信协议(Modbus、FINS、KSequence等),HMI/PC上的本地系统服务将保留PLC中特定、用户定义的一组内存区域的本地图像,应用程序需要读取或写入该区域。与服务器关联的是一个开发库,您可以将其导入到项目中,并使用该库通过此本地服务访问PLC

通常,您将有一些方法从PLC中的内存位置进行读取、写入,例如,许多库也可以在数据更改时引发事件,因此您所需要做的就是挂接事件并获取每个感兴趣的数据点的数据

不幸的是,在选择PLC和语言之前,可能很难确定数据的优化结构。在制造商之间,上述流程的工作方式存在相当大的差异。在不知道这一点的情况下,我认为您可以在应用程序中创建您喜欢的任何结构,您可能只需要在某个点添加另一层,以便在数据结构和调用PLC库之间完成最后一步。最后,您实际上只是来回传递简单的变量——布尔、整数、浮点等