- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我目前正在熟悉 PLC,尤其是 WAGO 750-8206 PLC。它提供了一个 linux 操作系统并且可以运行 CoDeSys 程序。有一些 I/O 模块连接到 Controller :750-530、750-430 和 750-600。我想知道的是:
是否可以编写在 PLC 上运行并获取/设置数字输入和输出的 C++ Linux 应用程序?
甚至更好:我可以编写一个 CoDeSys 程序来“与 I/O 对话”并处理所有逻辑,同时可以由 C++ linux 程序访问吗?这个想法是这样的:我希望 CoDeSys 程序能够检查两个数字输入。如果两者都很高,则应将变量设置为定义的值。 Linux 应用程序应该能够读取该变量并进行进一步处理(例如将 JSON 数据发送到服务器或类似的)。
此外,我需要能够从 Linux 应用程序向 CoDeSys 程序发送命令,以便在 Linux 应用程序接收到触发命令的消息时切换数字输出(或设置模拟输出值等)。
非常感谢关于这个主题的任何想法和评论,因为我对这个主题是全新的。提前致谢!
最佳答案
实际的情况已经改变为与之前答案的相反。
WAGO 最新的板级支持包和文档积极支持您对 PLC200 系列进行更改和扩展。特别是 WAGO 750-8206 和 17(截至 2016 年 3 月)其他 PLC:
wago.us -> Products -> Components for Automation -> Modular WAGO-I/O-SYSTEM, IP 20 (750/753 Series)
您需要做的是与他们取得联系,并要求他们为 PLC200 系列提供最新的板级支持包 (BSP)。
我引用了之前的答案并标记了更改,我的添加以粗体显示。
Synopsis
- Could you hack a PFC200 and get custom binaries executed?
ProbablyAbsolutely yes. As long as the program is content to run on the Linux-3.6.11 kernel and glibc-2.16 and is compiled for the "armhf" API, any existing ARM application, provided you also copy the libraries it uses as well, will just run without even compiling it specifically for the PFC200.- Would it be easy or quick?
No. Yes, if you have no fear of the Linux Command line. It is as easy as using the Cross Compiler provided by the Board Support Package (BSP) with the provided C-libraries and then run this to transfer your program to the PFC's flash and run it:scp your-program root@PFC200:/usr/binssh root@FC200 /usr/bin/your-programOf course, you can use Eclipse CDT with the Cross Toolchain for the PFC200 and configure Eclipse to do do remote run and debug.- Will this change in the future?
Maybe. Remember that PFC200 is fairly new in North America.It has, PFC200 has appeared in September 2014
公众HOWTO Building FORTE for Wago描述了如何使用初始 BSP 运行 FORTE,这是 4DIAC 的 IEC 61499 运行时环境(链接:sf.net/projects/fordiac),一个开源 PLC 环境,允许实现工业以供应商中立的方式控制解决方案。 4DIAC 实现 IEC 61499 扩展 IEC 61131-3,更好地支持 Controller 到 Controller 的通信和动态重新配置。
如果您想直接访问 KBUS(与 I/O 对话),您必须知道目前只有一个应用程序可以负责 KBUS。
因此,CODESYS、FORTE 或您自己的 KBUS 应用程序都可以负责 KBUS。
2015 年的 BSP 有许多示例和演示如何使用 PLC200 的所有 I/O(KBUS、CAN、MODBUS、PROFIBUS 以及直接在 PFC200 上的开关和 LED)。内核和所有内核驱动程序的源代码以及其他开源组件在板级支持包 (BSP) 中提供和编译。
但是,不提供由 WAGO 从头开始开发且不基于 GPL/开源代码的库和工具的源代码:这些包括应用设备接口(interface) (ADI)/设备抽象层 (DAL) 库CANopen、PROFIBUS-Slave 和 KBus(用于连接到主 PLC 单元的所有 PLC I/O 模块)
虽然 CANopen 使用标准的 Linux Socketcan API 与内核通信,您可以使用提供的 libsocketcan 编写一个普通的 socketcan 程序,但 KBus API 是 WAGO 特定的发明,在那里,您必须做一些如果您不想使用 WAGO 的 DAL 访问 PLC 的所有电气 I/O,请进行逆向工程,但 DAL 已记录在案,BSP 中提供了如何使用它的示例。
但是,如果您使用 CODESYS,则有一个“codesys_lib_demo-0.1”示例库,它展示了如何为 CODESYS 提供一个库以供使用。
关于c++ - 在基于 Linux 的 WAGO PFC200 PLC 上与 CoDeSys 程序通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30030620/
大多数语言都支持双向进程通信。例如,在 Python 中,我可以(草率地)执行以下操作: >>> from subprocess import * >>> p = Popen('nslookup',
致力于使用 C++ 在 arduino 和 PC (Win 7) 之间进行通信。使用 WriteFile 和 ReadFile 创建通信或简单地发送或接收数据没有问题。但是当我想以某种方式“协调”沟通
我们正在开发一个基于微服务的应用程序。它们将使用 Helm Package Manager 部署到 kubernetes,并且它们都存储了自己的存储库和 helm chart。以下是我们微服务的名称。
我正在开发一个大型 MVVM 应用程序。我为此使用了 MVVM 轻量级工具包。该应用程序就像一个带有后退和前进按钮的网络浏览器。主视图是一个用户控件。我在主视图用户控件中放置了后退和前进按钮。主视图又
我在 java 和 freepascal(lazarus) 应用程序之间的通信有问题。我使用套接字。它们正确连接。一切都很顺利,直到我想从一个应用程序向另一个应用程序发送一些东西。在java而不是“a
我已经使用客户端套接字和服务器套接字使用C#编写了群聊。 当我使用VS 2017在自己的PC中运行程序(服务器和客户端)时,客户端和服务器之间的通信工作正常。 当我在笔记本电脑中运行客户端程序,并在自
Kubernetes 中两个不同 Pod 之间的通信是如何发生的? 就我而言,我有两个 Pod:前端和后端,它们都有不同的容器。 我希望我的前端 pod 与后端 pod 通信,但我不想使用后端 pod
我正在尝试在浏览器中嵌入的 flash 实例与在 C# WinForms 应用程序中运行的 flash 实例之间进行通信...我收到一个编译错误,内容为: 1119 Access of possibl
鉴于网络上缺乏信息,请问一个问题:我要在 Android 中创建一个应用程序,使用一个数据库应用程序 rails 。为此,我需要一个手动 session 。所以如果有人准备好了示例/教程显示通信 an
我正在编写一个应用程序,它将通过 MySQL 数据库对用户进行身份验证。我已经用 Java (android) 编写了它,但现在正在移植到 Windows 手机。 PHP 文件使用 $get 然后回显
是否可以通过互联网在两个不同设备上的两个不同应用程序之间建立通信。我想从设备 A 上的应用程序点击一个设备 B 上的应用程序,然后从设备 B 上的应用程序获取数据到设备 A 上的应用程序。如果可能,如
这是脚本: 它被放置在其他网站上。 com 并显示一个 iframe。如果有人点击 iframe 中的某个内容,脚本应该将一个 div 写入 othersite 。 com. 所以我的问题是如何做到
你好我是 php 的新手,我用 c++ 编写了整个代码并想在 php 中使用这段代码。所以我为我的代码制作了 dll 以使用它。但是我不能在 php 中使用这个 dll,可以谁能给我完整的代码来使用
我确定之前已经有人问过(并回答过)此类问题,所以如果是这样,请将我链接到之前的讨论... 在 C++ 中,假设我有一个 ClassA 类型的对象,其中包含一个 ClassB 类型的私有(private
我正在尝试使用 ATmega32 进行串行通信。首先,我使用 RS232,使用 USB-to-RS232 建立使用串行终端的接收和传输(在我的例子中是 tera 术语)。无论我从串行终端 Atmega
我找不到适用于 Ruby 的 SSL 实现。 我的部分项目需要服务器和客户端之间的安全通信链接,我希望为此使用 SSL 以创建安全 session 。 谢谢 最佳答案 如果你使用 Ruby 1.9.x
我正在尝试在客户端/服务器之间进行 SSL 通信。 到目前为止,我已经从 keystore 创建了 java.security.cert.X509Certificate。接下来我应该怎么做才能使这次沟
我在与 Windows 上的 USB 设备 通信时遇到问题。我不能使用 libusb 或 WinUSB,因为我有一个特定的驱动程序(Silabs USB 到 UART,这是一个 USB 到串口的桥接器
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我发现 xcom 实际上是将数据写入数据库并从其他任务中提取数据。我的数据集很大,将其腌制并写入数据库会导致一些不必要的延迟。有没有办法在不使用 xcom 的情况下在同一 Airflow Dag 中的
我是一名优秀的程序员,十分优秀!