问题标签 [twincat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1201 浏览

c# - 如何从控制台/C# 程序启动/关闭 TwinCAT 系统?

如何从控制台或 C# 应用程序启动/重新启动/关闭 TwinCAT 系统运行时?我需要一个与右下角的 TwinCAT 工具栏按钮 System Start/Restart 等效的功能。谢谢。

0 投票
2 回答
1797 浏览

c# - 没有 Visual Studio 的 TwinCAT 3.0 自动化接口?

我需要从 C# 应用程序启动/关闭 TwinCAT 3.0。正如如何从控制台/C# 程序启动/关闭 TwinCAT 系统?我可以使用 TwinCAT 自动化接口。而在 TC 2.0 中,可以简单地实例化自动化接口:

在 TC 3 中,它给了我上述运行时错误。

看来我需要在 PC 上使用 Visual Studio 实例来使用自动化接口。具有自动化功能的平板电脑在机器上,并且没有安装 VS。

是否可以使用自动化接口,或者以编程方式启动/关闭 TC 3.0,而无需在机器上安装 Visual Studio?谢谢。

0 投票
6 回答
17261 浏览

twincat - TwinCAT3 AdsWarning 4115:系统时钟设置失败

当我尝试激活 TC3 时,我遇到了 TwinCAT3 (Win10 64bit) 的问题。

错误信息是:

严重性代码描述项目文件行抑制状态错误 19-Jan-19 11:42:34 AM 545 ms | 'TwinCAT System' (10000): Sending ams command >> Init4\RTime: Start Interrupt: Ticker started >> AdsWarning: 4115 (0x1013, RTIME: 系统时钟设置失败。提示:在 Windows8 及以上系统上,在 TwinCAT 中执行 win8settick.bat \3.1\System 以管理员身份并重新启动。)<< 失败!

我也尝试运行“win8settick.bat”并重新启动 TC,但它不起作用!

有什么建议可以解决这个问题吗?非常感谢!

0 投票
1 回答
493 浏览

twincat - TwinCAT 3 用户控制

是否可以使用 Hmi 用户控件创建库? https://infosys.beckhoff.com/english.php?content=../content/1033/te2000_tc3_hmi_engineering/18014401986701963.html&id=

我用功能块和数据结构为 plc 创建了一个库。

我的用户控件是用我的 plcLib 计算的。如果可以在每个项目中使用此设置,那就太好了

0 投票
1 回答
1144 浏览

twincat - 仅运行 TwinCAT 3 ADS(无 XAR)

我有一个可用的 C 项目,它使用 ADS C API 与本地或远程 TwinCAT 3 系统通信(在线示例也很好用)。

但是,我们现在正尝试将程序部署到仅安装了 TwinCAT ADS 的另一台机器上(如仅安装 TwinCAT 3 ADS”下所述)。我们在两台机器上都添加了路由。为了简化测试,我们甚至在 ADS 机器和运行时机器上都完全禁用了防火墙。但我仍然无法将数据返回到应用程序。

我从 ADS 得到的错误是 10051,这基本上是一个Winsock 错误

网络不可达。尝试对无法访问的网络进行套接字操作。这通常意味着本地软件不知道到达远程主机的路由。

但是,我很确定这些路线是有效的。它们是使用广播搜索添加的,我可以在 Wireshark 中看到两个系统都在不断地交换 ADS 读/写请求(如果我删除任何 PC 上的路由,交换就会停止)。

一个细节是仅 ADS 系统未处于启动模式,即我无法将其置于“启动”状态,尽管这可能是正常的,因为那里没有运行时?

我的问题是:

  • 仅 ADS 系统是否也必须使用托盘图标(“启动/重新启动”)切换到启动模式?即这个操作是否也会影响消息路由器?因为如果我在 ADS 系统上尝试这个,我会得到一个错误,所以我不确定这是因为那台 PC 上没有运行时,还是有错误。事件查看器显示错误:“启动 TCRTSOBJECTS 服务器时出错。系统找不到指定的路径”,没有其他线索。

  • 除了配置路由之外,在仅 ADS 的系统上是否还有其他必须完成的设置?

0 投票
2 回答
228 浏览

stl - twincat3 和 azure 之间的 Pub/Sub 通信

我是这个领域的新手。我的条件是,我有一台使用 Twincat3 软件的 Beckhoff PLC。我正在使用 OPC UA 将数据上传到 OPC UA 服务器,然后通过 Azure IoT Hub 将数据发送到云端(Azure SQL 数据库)。我想进行发布/订阅通信。接下来的步骤,我会用power bi分析数据,并以不同类型的信息显示在几台power bi手机上。问题是我对如何在此连接中应用 Pub/Sub 通信有点困惑。我已阅读有关 MQTT 和 AMPQ 的信息,但是否需要编写代码才能应用 Pub/Sub 通信?谢谢!

0 投票
1 回答
486 浏览

plc - TwinCAT3:在隔离内核上运行失败

我正在twincat3.1.4020.32使用windows10. 我尝试了一个简单的代码:i:= i+1;

但我收到以下错误:

'TwinCAT System' (10000): 发送 ams 命令>> Init4\RTime: 开始中断: Ticker 已启动>> AdsWarning: 4118 (0x1016, RTIME: 隔离 CPU 启动失败!) << 失败!

在此处输入图像描述

我试图解决这个问题,但它根本没有用。我在这里发现了同样的问题,但我正在使用twincat3.1.4020.32我在第一个问题中所说的。

任何帮助,将不胜感激。

0 投票
1 回答
407 浏览

plc - 将 Excel 数据导入 TwinCat3

我想将大量数据twincat3作为数组输入。我有 6000*2 矩阵(一列作为时间,另一列是函数的对应值)。

我读了这个链接,Beckhoff但对我来说有点模糊。我正在寻找一个简单的例子来说明如何在twincat3.

任何帮助,将不胜感激。

0 投票
2 回答
171 浏览

string - Beckhoff - 从另一个查询的结果构建查询

我想从 Twicat3 PLC 环境中的查询结果构建一个 SELECT 语句。

当变量被硬编码时查询可以正确执行,但当变量从另一个查询的结果传递时无法执行。定义的数据类型是相同的。InformationLog 视图中的错误表示“字典中不存在给定的键”。当使用第一个查询的结果执行查询时。

我希望 zone_queryRes 在执行 zone_dest 作为硬编码值时与从 conv_queryRes 数组中提取时相同。我不确定这是否是数据类型问题。执行时,查询字符串似乎具有正确的语法。

- - - - - - - 编辑 - - - - - - - - - - - - - - - - - - ------------------------------

包括 SQL 功能块。

0 投票
2 回答
164 浏览

mqtt - 如何使用 Tc3_IoTBase 在 TwinCAT 中处理大量 MQTT 订阅主题

我可以使用代码阅读多个订阅主题。但是,我订阅了许多不同的主题,而且长长的 if 语句正在减慢我的代码速度。我已经不得不在 PlcTask 中将循环滴答的数量增加到 20(这可能是矫枉过正,但 10 还不够)。我正在寻找一种更智能的解决方案,它可以在更少的周期滴答声中发挥作用。在下面显示的代码中,可以清楚地看到这个 IF 语句有多长,这甚至不是整个 if 语句(仅针对主题 machine 和 motion1)。

我的主题是像“motion1/position”、“motion1/acceleration”、“motion2/acceleration”等(我希望你明白)。所以我已经能够通过订阅“motion1/#”来订阅所有的motion1主题。因此,我尝试使用 fb.Message.CompareTopic(sTopic:='motion1/#') 来查找属于 motion1 的主题,而不是识别主题“motion1/somethingsomething”的 if 语句。但是 fb.Message.CompareTopic(sTopic:='motion1/#') 无法识别 motion1 主题。

所以我展示的第一个代码确实从 MQTT 读取了我需要的所有消息,这真的很好。但是,应该有一种更有效的方法来做到这一点。我尝试了第二个代码中显示的方法,但是没有用。