标签: twincat

控制台应用程序未关闭

我正在开发一个console应该在WinCE 6.0和下运行的应用程序WinCE 7.0.我正在使用C#,Compact Framework 2.0出于不同的兼容性原因.

我的应用程序由一个名为TwinCAT(来自Beckhoff)的外部运行时启动.在这个应用程序中,我的队友使用了一个名为nt_startProcess(此处的文档)的功能块,负责根据需要启动我的应用程序.

我的问题 - 两种不同的行为取决于操作系统:

  1. cmd线路手动启动(不使用TwinCAT)时:

    我的应用程序在两个系统上都表现正常.这意味着,应用程序启动,显示"Hello World"然后返回到该cmd行.

  2. 从TwinCAT开始时:

    a)开WinCE 6.0,我可以看到一个cmd线开口,显示"Hello World"并立即关闭.对我来说是完美的行为

    b)开WinCE 7.0,我可以看到一个cmd线开口,显示"Hello World",但它永远保持打开状态.这是我的问题!

代码段:

using System;
using System.Collections.Generic;
using System.Text;

namespace MyBasicExample
{
  class Program
  {
    static void Main(string[] args)
    {
      Console.WriteLine("Hello World");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

编译信息

在Visual Studio 2008中,在项目编译的属性中:

  • 平台目标:任何CPU

附加说明:

请注意,运行WinCE 6.0的计算机使用的是i486处理器,而运行WinCE 7.0的计算机使用的是Freescale ArmCortex进程.

WinCE 6.0:
WinCE 6.0

WinCE …

.net c# windows-ce c#-2.0 twincat

18
推荐指数
1
解决办法
3393
查看次数

TwinCAT 中的 I/O 空闲任务和 PlcAux 任务有何作用?

有两个默认任务总是添加到新创建的 TwinCAT 项目中:I/O 空闲任务和 PlcAux 任务。我想知道这些任务的作用和职责是什么?例如,当我改变它们各自的循环时间时,会产生什么影响。

\n

Beckhoff 的 InfoSys 上没有关于这些任务的信息。我也向 Beckhoff 寻求支持,但只得到了以下简短的答复:

\n
\n
    \n
  • I/O 空闲任务:在创建 EtherCAT 主站时创建。与 CoE 读/写、文件下载等节点的异步通信。IO 空闲管理 EtherCAT 状态机(进入 PreOp、SafeOp、Op)。它不直接更新 IO。
  • \n
  • PlcAuxTask:具有非常低的优先级。任何类型的 ADS 通信。
  • \n
\n
\n

在互联网的其余部分,我只找到了德语的解释

\n
\n

IO-Idle Task ist ua zust\xc3\xa4ndig f\xc3\xbcr die StateMaschine des EtherCATs...\nF\xc3\xbcr die IOs selber(也称为 EtherCAT 触发和数据传输) ist sie nicht zust\xc3\xa4ndig。 \nAllgemein w\xc3\xbcrde ich mal sagen: Die Standard-Konfig ist eigentlich OK, viel langsamer als die 1msec w\xc3\xbcrde ich sie nicht machen da du …

twincat

10
推荐指数
1
解决办法
2446
查看次数

有没有办法增加 Twincat 3 中的堆栈大小

我遇到了堆栈溢出问题,我可以清楚地看到它是在引入一些新数组时发生的。我找不到增加机器上运行的软 PLC (Twincat) 堆栈大小的选项。

任何帮助表示赞赏

twincat

7
推荐指数
2
解决办法
3887
查看次数

Twincat ADS事件驱动的读取在一段时间后停止工作(Java)

我们开发了一个Java应用程序,该应用程序使用TwinCat ADS库(DLL)从Beckhoff PLC(CX5120)读取,写入和处理事件。我们已经成功地在多台机器上运行了该程序,但是不幸的是,当前遇到了一个事件处理突然停止的问题。这是我们经历的确切场景:

  • 读取,写入和事件得到正确处理。
  • 突然我们再也没有任何事件了,尽管读写仍然可以正常工作。
  • 将PLC替换为另一个PLC,再次成功开始工作。当时我们认为这是一个许可问题。
  • 经过一周的无人值守运行后,同样的问题再次出现,PLC / ADS库似乎不再触发事件,我们似乎也无法以任何方式使其再次正常工作。读/写仍然可以正常工作。

使用另一台带有Java应用程序的PC进行测试,同样的问题。因此,PLC中的某些内容似乎冻结/停止工作。

这是我们设置事件处理的方式:

// Implementation of the CallbackListenerAdsState interface
public class ADSEventController implements CallbackListenerAdsState {

......

// Register itself as listener for the ADS events (in constructor)
callObject = new AdsCallbackObject();
callObject.addListenerCallbackAdsState(this);

....

// Event handling
public void onEvent(AmsAddr addr, AdsNotificationHeader notification, long user) {
    log.info("Got ADS event for handle[{}] and with raw data[{}]", user, notification.getData());

......

// Registering notification handles for PLC variables
// If we already assigned a notification, delete …
Run Code Online (Sandbox Code Playgroud)

java twincat twincat-ads

5
推荐指数
1
解决办法
358
查看次数

通过 C# 应用程序使用 TwinCAT.Ads 编写结构数组

我正在使用 TwinCAT.Ads (TwinCAT 3) 通过 c# 应用程序进行 Beckhoff plc 通信。应用程序正在读取和写入少量 plc 变量。我收到一个错误:

“无法封送对象。参数名称:值”

在编写结构变量数组时。但是,应用程序正在读取它而没有任何错误。任何帮助将不胜感激。下面是我的代码示例。

Plc中的结构

TYPE Station :
    STRUCT
        ClusterID   : STRING[10];
        Tech_Type   : USINT;
        Status      : BOOL;
        Reject      : BOOL;
        Rej_Detail  : STRING[50];
        Rej_Catagory : USINT; 
    END_STRUCT
END_TYPE
Run Code Online (Sandbox Code Playgroud)

C#中的类

[StructLayout(LayoutKind.Sequential, Pack = 0)]
public class Station
{
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 11)]
    public string ClusterID;
    public byte Tech_Type;
    [MarshalAs(UnmanagedType.I1)]
    public bool Status;
    [MarshalAs(UnmanagedType.I1)]
    public bool Reject;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 51)]
    public string Rej_Detail;
    public byte Rej_Catagory;
}
Run Code Online (Sandbox Code Playgroud)

我正在用下面的代码编写,其中handles[0]是变量句柄, …

c# twincat twincat-ads twincat-ads-.net

4
推荐指数
1
解决办法
4037
查看次数

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

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

错误信息是:

严重性代码描述项目文件行抑制状态错误 2019 年 1 月 19 日上午 11:42:34 545 毫秒 | 'TwinCAT System' (10000): Sending ams command >> Init4\RTime: Start Interrupt: Ticker started >> AdsWarning: 4115 (0x1013, RTIME: system clock setup failed. 提示: 在 Windows8 系统及以上系统上,在 TwinCAT 中执行 win8settick.bat \3.1\系统作为管理员并重新启动。)<<失败!

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

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

twincat

4
推荐指数
2
解决办法
1万
查看次数

隔离 CPU 的 TwinCAT 实时启动失败

我目前在 Hyper V 虚拟机上运行 Twincat 3.1..4022.16。我能够正确构建我的项目,但是当激活配置时,我遇到实时启动隔离 cpu 故障。

附件是我的实时设置和错误。

在此输入图像描述

任何解决方案的线索都将受到高度赞赏。

twincat twincat-ads

4
推荐指数
1
解决办法
2万
查看次数

如何使功能块方法的输入可选?

调用功能块的方法时,是否可以使某些输入变量可选?如果我在没有对所有输入变量进行赋值的情况下调用 fbA.methA(),TwinCAT 会抛出错误:“函数 methA 需要精确的 'x' 个输入。” 有时某些输入是不必要或不相关的,但到目前为止,我必须为这些输入分配虚拟值才能编译代码。

twincat

4
推荐指数
1
解决办法
2049
查看次数

TwinCAT - 如何测量程序执行时间?

我想测量结构化文本(ST)程序的执行时间。与程序关联的任务运行时间为 10 毫秒。

如何衡量执行时间?

plc twincat

4
推荐指数
1
解决办法
1985
查看次数

将枚举器定义为 DUT 有什么好处?

据我了解,定义的主要目标enumerators是将变量分配给一些数字及其相等的字符串。

我们可以将 var 定义a为our或enum中的任何地方,如下所示:initializing sectionProgramFunction Block

a:(start,stop,operate);
Run Code Online (Sandbox Code Playgroud)

很难,我不知道为什么我们看不到这一点,tabular view但有一个大问题:

将枚举器定义为 DUT 有什么好处?

plc codesys st twincat

4
推荐指数
1
解决办法
778
查看次数

标签 统计

twincat ×10

twincat-ads ×3

c# ×2

plc ×2

.net ×1

c#-2.0 ×1

codesys ×1

java ×1

st ×1

twincat-ads-.net ×1

windows-ce ×1