【问题标题】:Beckhoff How to Open and Read a file in TWINCAT 3 C++ in a CycleUpdate?Beckhoff 如何在 CycleUpdate 中使用 TWINCAT 3 C++ 打开和读取文件?
【发布时间】:2018-08-30 23:43:49
【问题描述】:

我正在学习在 C++ 中使用 TWINCAT 3,作为我的第一个工作,我决定打开一个 .txt 文件并在其中获取一个数字,然后放入一个字符串或一个整数。

我已阅读所有文档并有很多问题。我发现我不能使用 C++ 库,只能使用 TWINCAT 函数。然后我迷路了。

首先:使用 C++ 在 TWINCAT 3 中打开文件的具体步骤是什么?

第二:如何读取文件中的数据并放入字符串或整数?

我想在 CycleUpdate 中这样做。

如果是菜鸟问题,我很抱歉。

【问题讨论】:

  • 您好,欢迎来到 Stack Overflow。如果您可以将帖子集中在一个问题上,并包含您在尝试解决问题时编写的任何代码,您将获得更好的帮助。
  • 只是出于好奇,为什么是 C++?是否不能使用任何 IEC61131-3 语言,例如结构化文本?虽然可以在 TwinCAT 中使用 C++,但它通常有一些注意事项,所以如果您没有任何特定要求或理由使用 C++,我建议您使用 ST,在这种情况下,您将使用 FB_FileOpen、FB_FileWrite、 TwinCAT 中的 FB_FileClose 功能块。

标签: c++ twincat


【解决方案1】:

首先,您必须了解 TwinCAT 正在为您提供具有实时功能的 PLC。这意味着您编写的每个任务都需要在每个循环中执行:您的任务不得超过一定的持续时间。

对操作系统的许多访问需要大量等待时间,而您不会在实时系统中保留这些时间。为此,您会发现大多数功能块都配备了“Execute”布尔输入(或类似的)和“Busy”、“Done”和“Error”(甚至“ErrorID”)等输出。这些是为了启动一个过程并定期(即在每个周期中)检查该过程是否完成。

您无法在单个 CycleUpdate 中管理文件的打开、读取、写入或关闭(操作系统功能)。此外,这也是确保实时能力的成本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    相关资源
    最近更新 更多