这个答案非常具体针对2014年和2015年的情况。截至2016年,它包含不正确的信息。现在仍然要离开,提供背景资料。
您可以非常合理地使用Codesys编写代码,该代码将JSON数据包放在一起并将其发送到其他地方的服务器。 JSON只是文本,Codesys可以以与C非常相似的方式处理文本。在Codesys中有许多以太网协议可以使用Wago提供的插件库。
因为你似乎是Wago的新手和一般的Codesys哲学......一段短暂的历史。
Codesys用于构建和部署 的 硬实时 强> 执行环境,重要的是要理解利用库而不完全理解后果可能会破坏整个系统的性能(使Codesys陷入困境并在程序中抛出看门狗错误)。请记住,许多PLC是控制设备,如果它崩溃了可以杀死某人。
Wago喜欢使用Linux为低级任务调度提供抢占式RT内核,然后配置Codesys以利用通常伴随linux的大部分标准C库。 Wago已经这么做了很长一段时间,但他们永远不会允许你 剥掉盖子 没有经过Codesys(这意味着使用IEC 61131语言,其中不包括C ++),这是为了您自己的安全(及其产品形象)。如果你想在Wago上使用linux的强大功能,你必须得到一个带有完全裸机的特殊PLC,几乎没有手动或支持,并且放弃整个Codesys运行时。
新的PFC200比最新型号拥有更多的RAM和内存,允许更多的标准Linux 的 用户区堆栈 强> (ssh,ftp,http,...)在不影响Codesys运行时的情况下被包括在内,并且他们做了这个广告。 的 但... 强> 他们仍然关注编译工具和编译和链接到Codesys库或访问专用硬件所需的头文件(Wago KBUS,它与I / O模块接口)。
Codesys不一定了解或关心Wago。您可以获得针对运行Linux操作系统的英特尔处理器的Codesys的目标平台。 CODESYS 的 支持 强> 访问外部库(反向通信很危险),但是他们经常需要一个C风格的接口,你只能通过定义Codesys将要分析的C-header来访问这些库,所以你可能需要做一些魔术来获得C ++无助地工作。你可以做的是创建一个C ++和Codesys访问的共享内存段,这就是它们传递信息的方式(同步是另一个问题)。
你可以得到一个 打开 Wago PLC,在Linux上运行Codesys。 Wago的IPC专门为此目的而制作。它们通常具有更多的功率,内存和通信能力;但它们的成本比典型的Wago PLC高出一倍多。
如果你想要攻击Wago的想法,你需要撕掉Codesys的手册(它有自己的手册),Wago IPC的手册,并且已经熟悉linux风格的进程间通信和/或动态库。
此外,有一个较旧的Wago PLC,其上有裸机Linux 750-8 ??。它还有一个非常好的手册,介绍如何使用提供的标头访问Wago硬件。
您必须首先了解Codesys希望如何与其目标操作系统进行通信。然后你向后工作,让它与生活在该操作系统上的Wago特定图书馆交谈。你必须小心不要劫持Codesys。
你额外的C ++库应该有助于Codesys,而不是接管它。例如,在同一设备上托管sqlite数据库,并使用C ++管理数据库,并提供Codesys可以使用的非常简单的接口。所有Codesys都会这样做调用一个函数并传递一些值,但是你的C ++实际上会构建一个SQL查询并将其发送到数据库(Codesys不需要知道为什么或如何发生这种情况)。
我希望至少有一段在某种程度上有所帮助。