1. TwinCAT 3程序编译及激活报错诊断

1.5. unknown type; cannot convert type ''to tye'';''is no componet of''

以上报警大概率是库文件异常导致,详细可以先检查reference中是否有感叹号标志的库

最常见都是visualization,因为它的版本变更最为频繁,有时同一个大版本下也会有多个不兼容的版本。

解决方法可以参考:https://tr.beckhoff.com.cn/mod/book/view.php?id=2903&chapterid=4725


如果使用的TwinCAT 3软件版本为4024.10-4024.17版本的,可以尝试先切到Local,弹出窗口选择切换到64平台,保存项目,然后关掉软件再打开,再编译就有概率恢复正常了。

另外,如果是将TwinCAT 2项目转换到TwinCAT 3,会有概率发生这个问题
因为TwinCAT 3通过ADR()读取指针地址,32位返回的是DWORD,64位返回的是LWORD。所以如果是在64位的控制器上使用了之前32位系统上的TwinCAT 2项目,会产生报错
建议用PVOID 来作为返回值, 会在 32、 64 位系统上自动调整相应长度

PROGRAM MAIN
VAR
       pSample : PVOID;
       pSample2 : POINTER TO dut; 
       nVar1 : dut;
       nVar2 : dut; 
END_VAR

       pSample := ADR(nVar1); 
       pSample2:=pSample; 
       nVar2 := pSample2^;




2022.8.22 罗晓晨 编辑