标签: twincat-ads

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
查看次数

隔离 CPU 的 TwinCAT 实时启动失败

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

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

在此输入图像描述

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

twincat twincat-ads

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

通过 ADS.Net 将数组从 C# 发送到 TwinCat 3

我想使用 TwinCat 3 制作一个自动图形喷泉来控制阀门,并使用 Visual Studio C# 来处理要在喷泉上显示的图像。

图像处理程序的最终形式是一个二进制数组图像(附): Image Processing Result 1图像处理结果2

我想使用图像处理的最终形式来控制机器上的阀门(阀门在为 1 时打开,阀门在为 0 时关闭)。我对 TwinCat 3 非常新,尤其是使用 ADS图书馆。

infosys beckhoff 的样本对我没有帮助,有人可以帮我吗?

谢谢你

.net c# plc visual-studio twincat-ads

3
推荐指数
1
解决办法
3180
查看次数

在twincat 2和twincat 3之间发布和订阅变量

我需要通过以太网从Twincat 3向Twincat 2发送一个变量.这可能吗?我怎么能这样做?

twincat twincat-ads

0
推荐指数
1
解决办法
370
查看次数

标签 统计

twincat-ads ×5

twincat ×4

c# ×2

.net ×1

java ×1

plc ×1

twincat-ads-.net ×1

visual-studio ×1