问题标签 [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.
twincat - 记事本关闭时发出信号
我试图识别记事本会话何时关闭,以便每次发生这种情况时我都可以运行程序。我正在使用一个 Windows Embedded Standard 7 环境,该环境是用 Microsoft Visual Studio 中的 TwinCAT3 开发的。有谁知道在会话关闭时捕获的方法?
plc - (Twincat 结构文本)根据 LED 上的 LED 计数按下的按钮
我正在用 Twincat 结构化文本做一个类似于 Simon Game 的记忆游戏。我有一个问题,我将如何检查按钮是否与 LED 相同,并计算按下了多少按钮以防你按错?提前致谢。这是我的代码:
我确实创建了分配给 4 个 LED 的随机数,这是 1 个蓝色 LED 的代码,其余 LED 相同。数字为 1、2、3、4,LED 为蓝色、绿色、红色、黄色。RUN var 是激活随机数生成器
generics - 在结构和功能块中使用泛型
我想创建一个类型泛型STRUCT
和一个接受和返回泛型类型变量的配对Function Block
(假设ANY_NUM
)。
这是希望使用可能属于该类型的泛型数字类型以相同格式将许多现有STRUCT
和对压缩为单个泛型对。FB
ANY_NUM
在 C++ 中,通用结构将通过 a 来完成Template Class
,但我在结构化文本中找不到类似的结构。
我在 Beckhoff 的 ANY/ANY_(TYPE) 页面上尝试了通用功能块,但很快就失败了convert type 'LREAL' to type '__SYSTEM.AnyType'
。
问题:
在结构化文本中我能在多大程度上实现这一目标?
编辑:
我错误地认为这ANY
是唯一相关的 ST 泛型。我被指示输入 T_Arg作为潜在可行的候选人。
尝试的示例格式:
结构:
功能块:
(实现将绑定value_struct.Value
到value_struct.min_
and之间value_struct.max_
)
memory - 访问使用内存位置声明的变量
像这样声明的变量
可以通过使用 ADS 读取或写入 FB 从另一个 PLC 访问。其他程序,如 HMI Movicon,使用 .tpy 文件来获取可用变量的列表。不幸的是,在 TPY 文件中不存在使用上述内存位置声明的变量,并且无法从 HMI 软件中读取。如果 Twincat 本身能够使用 ADS 读取这些变量,为什么会发生这种情况?(HMI 也使用 ADS..)
serial-port - Beckhoff PLC 串行通讯
我有一个关于与倍福的 CP6606 进行串行通信的问题。我正在将 Twincat 3 版本 4022.16 与 HMI 上的 Windows CE 7 compact 结合使用。我已经安装了所有许可证。
对于学校,我必须通过集成 Sick CLV 610 条形码扫描仪来编程拾取和放置。(RS232)首先我需要用字符串“K”触发扫描仪。然后扫描仪将扫描并返回扫描结果。为了停止扫描,我将字符串“I”写入设备。
我将扫描仪连接到 CP6606 上的 Onboard Com1。我在 twincat 3 中使用以下配置:配置扫描仪。使用 RS232 好还是我应该使用 RS485 来完成这项工作?我的仿真模式对吗?
我使用 2 个任务。1 个标准任务和一个快速任务。快速任务将来自硬件的数据放在缓冲区中。标准任务处理来自缓冲区的数据。快速任务的配置可以在这里找到:FastTask
在我的快速任务程序中,我使用了这个功能块:FB_SerialLineControl
为了发送我的触发器“K”,我使用以下 2 个功能块:SendReceive。sSerial_SendText 包含字符串“K”,在 2 秒超时后,它将使用字符串“I”来停止进程。
我的程序没有任何错误。触发器只是没有到达扫描仪。我找不到任何适用于 Windows CE 7.0(仅 5.0 和 6.0)的 Com 端口分析器。我的 Com 设备的 IO 配置似乎有问题。
运行时版本会影响这个问题吗?在我的 PC 上,我使用 twincat 3 v4022.16(最新),在 CP 6606 上运行版本 4022.2。
我用一个名为“putty”的程序测试了硬件。当我在键盘上按“K”时,扫描仪会工作并在终端中显示代码。
我用一个名为“Terminal CE”的程序(与putty相同,但用于Windows CE)进行了相同的测试。测试也成功了,所以我认为问题不在硬件上,而在软件上。
您可以在此链接上找到该项目的源文件。 https://drive.google.com/file/d/1UjvCwl1u3sF9GF553zxO4dvl6VLIRLQx/view?usp=sharing
我希望有一个人可以帮助我。提前致谢!
position - twincat 2 轴 - 跟随更新目标位置
我有一个轴需要遵循不断变化的给定位置。问题是如果我使用“MC_MoveAbsolute”FB,那么我无法更新目标位置。我必须等待动作完成(或停止),一旦完成,我就可以给出新的目标位置。这样做的问题是,如果 cahnge 很大,和/或在相反的方向上,轴可能会落后很多。只要它与当前分配的位置不同,我就需要它来更新目标位置。它也不应该有一个苛刻的停止,所以像开始、停止、重新开始这样的事情不是一个解决方案。机芯应尽可能流畅,并尽可能保持最新。
我有两种可能的解决方案:
1)我做了许多与前一个混合的小动作,所以我可以改变目标位置例如每毫米并快速更新
2) 我使用两个不同的 FB 进行移动,并用作 mc_aborting 模式,这样我就可以覆盖前一个移动命令。
什么解决方案是最好的?
twincat - Twincat 运行模式错误 1861
尝试启动运行模式后,我在目标系统上收到一个致命错误:
Init7\IO: Set State TComObj PREOP OP >> AdsWarning: 1861 (0x745, ADS ERROR: timeout elapsed) 你们中有人知道如何解决吗?
plc - Twincat 3:如何将 4 个 HEX 数组转换为浮点数?
我们正在接收(通过 UDP 数据报)一个由 4 字节十六进制数组编码的浮点值。
我们需要将 4 个十六进制字节转换为浮点数。
在给定的例子中,正确的等价,经过变换,udp_data 等价于-0.24499:
Twincat 3 PLC 中的最佳转换是什么?也许一些图书馆?对于这种类型,我们需要一次执行 52 次转换。
我附上了一个来自在线计算器的例子:
谢谢!!
string - Twincat 3 PLC: UDP data frame is being cut from its original length
we are trying to process a 152 bytes UDP data frame from a remote service. By following the PeerToPeer Beckhoff infosys example (https://infosys.beckhoff.com/content/1033/tf6310_tc3_tcpip/18014398593720075.html?id=9052404215823027436) we are not able to see the entire 152 bytes message, just a couple of bytes.
Is it possible that the String variable would be only showing the characters until the first 00 bytes or similar (null delimiter)?
In the image below you can see the full UDP frame and what we get as message.
Thanks in advance.
plc - TwinCAT:在隔离内核上运行失败
我试图在本地 PC 上激活我的配置,但失败了。我试过:
- 在我的电脑上隔离 1 或 2 个内核(在 SYSTEM > Real-Time 下并重新启动 PC)并在这些内核上运行 PLC 任务。当我这样做时,我收到以下错误:
'TwinCAT System' (10000): 发送 ams 命令>> Init4\RTime: 开始中断: Ticker 已启动>> AdsWarning: 4118 (0x1016, RTIME: 隔离 CPU 启动失败!) << 失败!
- 然后我尝试在普通的 Windows 专用 CPU 上运行它(因此没有一个 CPU 被隔离)。当我激活配置(并在 BIOS 中启用虚拟化)时,我收到以下错误消息:
无法使用 KB4056894 将 TwinCAT 设置为运行模式
卸载 KB4056894
或者
仅使用隔离内核激活解决方案
我找不到安装在我的电脑上的 KB4056894。还有其他解决方案吗?
我在 Windows 10 下使用 TwinCAT 3 Build 4022.14。